diff --git a/build/ArbitraryExcitation/ArbitraryExcitation.html b/build/ArbitraryExcitation/ArbitraryExcitation.html deleted file mode 100755 index a882a8b..0000000 --- a/build/ArbitraryExcitation/ArbitraryExcitation.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - Response Of SDOF System To Arbitrary Excitation - - - - - - - - - - - - - -
- -
-
-
- - Control Panel - -

- - - kg -

-

- - - N/m -

-

- - - N.s/m -

-

- - - N.s/m -

-

- - - Km/h -

-

- - - rad/s -

-
-
-
- - -
-
-
-
-

- - -

-

- - - m -

- -
-
-
- -
- - - - - -
-
- - diff --git a/build/ArbitraryExcitation/content.html b/build/ArbitraryExcitation/content.html deleted file mode 100755 index 8b969e6..0000000 --- a/build/ArbitraryExcitation/content.html +++ /dev/null @@ -1,4702 +0,0 @@ - - -
- -
- - - -
- -
- -
-
-
-SDOF System - Arbitrary Excitation
- - - -
- -
-
- - -
- -
- Aim -
- -

Aim

- -

         To observe the response of a single degree of freedom (SDOF) system subjected to excition.

- -

A. Background:

- -

- This is experiment is about response of a single degree of freedom (SDOF) system subjected to excition which is non-periodic (aperiodic) but deterministic with respect to time. The type of excitation seen in Experiment No. 2 is periodic and moreover, harmonic or sinusoidal. Such type of excitation has a fixed amplitude and a particular frequency. Mathematically, its value, as a function of time, t, is expressed by the expression f(t)=F0 sin(wt), where, F0 is the amplitude and w is the frequency of the force excitation. In case of support excitation (Experiment No 3 ), it is . Such kind of excitation is observed in case of machine running at constant speed and having a rotating unbalance. - -

       However, many times, the excitation is non-periodic or aperiodic, and, of course, non-sinusoidal. It may be applied suddenly and for a very short time but having a large value or it may have a moderate value but applied suddenly and for a finite period of time. Or, It may be applied for a short duration but with gradual increase in its value, starting with zero; And there are many more such possibilities. The excitation can be a force excitation or a support excitation having variation with respect to time as stated above. The force (or motion of the support) may vary continuously though it is aperiodic but following some relationship with time (i.e. it is deterministic in nature) and is called an arbitrary forcing function. The study of response of a single degree of freedom system (SDOF System) to such a force or support excitation is the basis of this experiment. - -

      An impulse is a large force, F0, acting for a very short interval of time, Δt. It is measured by the product F0*Δt = I. Response of SDOF system to an impulse is obtained easily. It follows the principle of conservation of momentum and response of SDOF system to initial velocity. If the mass of the system is initially at rest, its momentum, immediately after the application of impulsive force, is obtained from I = Mv-Mu. Where M is the mass, u is initial velocity, v is velocity immediately after the application of the impulse, and I is the impulse, I = F0*Δt. If initial velocity u is zero (i.e. if the mass is at rest, initially), the velocity of the mass, immediately after application of impulse, is obtained as
-
This can be considered as the initial velocity given to the system and the response of the system is written as

-
If damping is very small, and hence neglected, we write and get the response of undamped SDOF system to impulse as -



-

The symbols carry their usual meanings as explained in earlier experiments and also given on the next page. - -

Consider a SDOF system falling from a height 'h' on the ground with support touching the ground first. The motion of the mass can also be considered to be with initial velocity but a sudden and continuous force equal to weight of the mass acting on it after the hit. -

The response is given by



-

      The first term in the above expression is due to initial velocity V0 given by V0 =(2gh)0.5, where h is the height through which the system falls down and the support hits the ground. -

      The second term is due to the fact that the weight of the mass, Mg, starts acting on the mass suddenly and continuously after the support hits the ground. -

     In case of an undamped system with ζ =0, the above expression reduces to -
M = Mass of system idealised as rigid lump mass, -
K = Stiffness of spring; the spring represents the resilient material or component present in actual, real-life system, like a cork sheet, - rubber support, etc. -
C = Damping coefficient of damping material present in the system; the resilient materials themselves mentioned above provide the - damping -
ωn = Undamped natural frequency = (K/M)0.5 -
Cc = Critical damping coefficient =2(KM)0.5 -
ζ = damping coefficient factor = C/Cc ; whose value is considered to be less than 1 as the system is under-damped -
ωd = Damped natural frequency = (1-ζ 2) ωn - - -

- - - - - -

B. About The Experiment:

- -

- -The experiment considers motion of body of a car after falling into a ditch of depth ‘h’ or after passing over a hump of a selected shape. The car-body is modelled as a single rigid lumped mass supported over the axle through the suspension (shock absorber). The suspension is represented by the spring and the viscous damper. The motion of the body of the car is obtained using expression given earlier and shown in the simulator. The motion is also shown graphically as a function of time. There is facility to select the values of different parameters and dimensions of either the ditch or hump. This is an example of support excitation of SDOF which is aperiodic but deterministic. By aperiodic, we mean, not repeating after a fixed interval of time, and by deterministic, we mean its value can be obtained exactly for any given value of time.The animation of car showing same concept is given below; - -

- -


-

-
- -
-
- - -
-
- Simulator -
-
-
-
-
- - -
-
- Procedure -
-
-

-

- -

Aim : To observe the response of a single degree of freedom (SDOF) system subjected to excition. -


-Please read ‘Background’ related to this experiment. This section explains the procedure related to the experiment. -

This experiment models a car as a single degree of freedom system passing over a hump of given shape or falling into a ditch (or from a step) of depth h. -You must provide the values of system parameters such as masse of body of the car, M, stiffness of the suspension, K, and coefficient of damping of the suspension, C, and velocity of the car. Also, you need to choose the dimensions and the shape of the hump or the depth of ditch (or step). To view the response of the car, run the simulator and observe the motion of car and plot of displacement of the car versus time after the car passes over hump or the step. - -

Follow the steps given below: - -
-

- -
    -
  1. On clicking the tab ‘Simulator’, you will be directed to another screen displaying a hyperlink “Click here to open the Simulator”. Click on the hyperlink to open the Simulator.
  2. -
-

 

-
    -
  1. There are two smaller screens and smaller windows provided to input the values of different parameters. Also given are some notes and massages; read them. Out of the two smaller screens, the one on the left is for viewing the animation of motion of the car – a small clip of motion of an animated car can be viewed in this window. The screen on the right will show a plot of displacement of the car body versus time after the car has passed over the hump or fallen from the step ( or into a ditch).
  2. -
-

 

-
    -
  1. Input the values of parameters in the smaller windows. See the suggested ranges that appear in the windows and choose any value that lie within the range suggested.
  2. -
-

 

-
    -
  1. Click on ‘Calculate’ to get the values of undamped natural frequency, ωn , critical damping coefficient Cc, and the damping factor, ζ. Ensure that the value of ζ is less than 1 - The system is under-damped.
    -
  2. -
-

 

-
    -
  1. Click on the button ‘Run’. The animation on the left screen will begin. The first part exhibits the process of system-modelling wherein we move from a real-life situation to a physical model. In this animation, you will see a car being transformed into a physical model. Near the end of animation, the wheel is seen to fall from a step (or pass over a hump). The shape and size of the hump/step was already selected before starting the simulation.
  2. -
-

 

-
    -
  1. As soon as the animation is complete, you would see the graph of displacement of the mass, x(t), (representing the body of the car) versus time, t, as the response to excitation provided by hump/step.
    -
  2. -
-

 

-
    -
  1. Study the graph and observe the maximum values of displacement and time taken to die out the oscillations to a sufficiently low value.
  2. -
-

 

-
    -
  1. Repeat the experiment trying different set of values of parameters and compare the motion and graphs obtained every time.
  2. -
-

 

-
    -
  1. Provide feedback on your experiment informing us what your liked and the aspect of experiment needing improvement.
    -
  2. -
- -

 

-
- - -
-
- - -
-
- Review Questions -
-

- - - -

-

1.    -Arbitrary excitations are those which are: -
     a. periodic and harmonic -
     b. aperiodic but known functions of time -
     c. aperiodic but non-deterministic -
     d. non-linear -

-

 

-

2.    -Response of SDOF systems to arbitrary excitations are studied fundamentally by studying the response of the system to -
     a. a unit impulse -
     b. a step excitation -
     c. harmonic forcing function -
     d. none of the above -

-

 

-

3.    -The oscillation of the mass in a damped SDOF system subject to an impulse excitation die out after a period of time because -
     a. the excitation is an impulse -
     b. the system is damped -
     c. it is a single degree of freedom system -
     d. the oscillation will not die out in case of the impulse excitation -

-

 

-

4.    -If the damping factor is smaller, response of a SDOF system subject to an impulse will be -
     a. considerable for a longer interval of time -
     b. negligible after a short interval of time -
     c. continue for ever -
     d. can not be predicted -

-

 

-

5.   -After falling from a height, the oscillations of an electronic equipment packed in a box and surrounded by some resilient material can be modeled as -
     a. response of a SDOF system subjected to an impulsive force -
     b. response of a SDOF system whose support is subject to an initial velocity and a step excitation force given to the mass -
     c. response of a SDOF system subjected to a step input alone -
     d. a ramp excitation given to the mass -

-

-

 

-

-

 

-

 

-

- - - - - - - - - -

-

      

-

 

- -

 

-
- -
-
-
- diff --git a/build/ArbitraryExcitation/css/AE.css b/build/ArbitraryExcitation/css/AE.css deleted file mode 100755 index 4a11992..0000000 --- a/build/ArbitraryExcitation/css/AE.css +++ /dev/null @@ -1,232 +0,0 @@ -* { - margin: 0; - padding: 0; -} -#tabs { - height: 738px; - left: 0; - top: 0; - width: -moz-fit-content; -} -#uservalues fieldset legend { - color: highlight; - font-size: 16px; - text-shadow: 0 1px 1px #FFFFFF; -} -#uservalues fieldset input { - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px; - font: italic 15px Georgia, "Times New Roman", Times, serif; - height: 18px; - margin: 5px 5px 3px 17px; - outline: medium none; - padding: 5px; -} -#uservalues fieldset label { - margin-left: 5px; -} -#uservalues fieldset { - border-color: black; - border-radius: 9px; - color: #384313; - font-size: 13px; - font-weight: bold; - height: 450px; - margin-top: 15px; - padding-bottom: 10px; - text-shadow: 0 1px 1px #C0D576; - margin-left: 10px; - padding-left: 12px; - width: 230px; -} -#uservalues fieldset p { - background: #b9cf6a; - background: #6DC9FB; - border-color: #e3ebc3; - border-color: rgba(25, 180, 180, 0.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 16px; - list-style: none; - padding: 1px 8px; - height: 50px; - margin-left: -2px; - margin-top: 10px; - width: 200px; -} -#diagram { - border-width: 2px; - height: 450px; - margin-left: 271px; - margin-top: -521px; - width: 500px; - border: 2px double #000000; - border-radius: 10px; -} -#graph { - border: 2px double #000000; - height: 450px; - margin-left: 800px; - margin-top: -452px; - width: 500px; - position: absolute; - border-radius: 10px; -} -#Ccval { - font: 13px /17px Verdana, Arial, sans-serif; - margin-left: 18px; - margin-top: 3px; - padding-top: 3px; -} -#playDiv p { - background: #6DC9FB; - border-color: #e3ebc3; - border-color: rgba(25, 180, 180, 0.6); - border-style: solid; - border-width: 2px; - border-radius: 5px; - line-height: 16px; - list-style: none; - padding: 1px 8px; - height: 50px; - margin-left: -282px; - width: 160px; - padding-top: 6px; - margin-top: -18px; -} -#selectShape { - color: #384313; - font-weight: 100; - text-shadow: 0 1px 1px #C0D576; - font-size: 14px; -} -#playDiv label { - color: #384313; - font-weight: 100; - text-shadow: 0 1px 1px #C0D576; - font-size: 14px; -} -#selectShape select { - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px; - font: italic 15px Georgia, "Times New Roman", Times, serif; - margin-bottom: 4px; - padding: 4px; - width: 120px; - margin-left: 28px; - margin-top: 3px; -} -#play { - border: 5px outset #000000; - border-radius: 10px; - margin-bottom: 35px; - margin-left: 111px; - margin-top: -62px; - height: 53px; - width: 70px; -} -button { - text-decoration: none; - text-shadow: 0 1px 0 #fff; - font: 11px /17px Comic Sans MS, Arial, sans-serif; - color: #FFFFFF; - line-height: 17px; - height: 18px; - display: inline-block; - padding: 5px 6px 4px 6px; - background: #F3F3F3; - border: solid 1px #D9D9D9; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -webkit-transition: border-color .20s; - -moz-transition: border-color .20s; - -o-transition: border-color .20s; - transition: border-color .20s; - height: 29px !important; - cursor: pointer; -} -button.greenbtn { - border: 1px solid #29691D !important; - background: #3A8E00; - background: -webkit-linear-gradient(top, #3C9300, #398A00); - background: -moz-linear-gradient(top, #3C9300, #398A00); - background: -ms-linear-gradient(top, #3C9300, #398A00); - background: -o-linear-gradient(top, #3C9300, #398A00); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.greenbtn:hover { - border: 1px solid #2D6200 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #3C9300, #368200); - background: -moz-linear-gradient(top, #3C9300, #368200); - background: -ms-linear-gradient(top, #3C9300, #368200); - background: -o-linear-gradient(top, #3C9300, #368200); -} -button.redbtn { - border: 1px solid #D14836 !important; - background: #D64937; - background: -webkit-linear-gradient(top, #DC4A38, #D14836); - background: -moz-linear-gradient(top, #DC4A38, #D14836); - background: -ms-linear-gradient(top, #DC4A38, #D14836); - background: -o-linear-gradient(top, #DC4A38, #D14836); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.redbtn:hover { - border: 1px solid #B0281A !important; - background: #D14130; - background: -webkit-linear-gradient(top, #DC4A38, #C53727); - background: -moz-linear-gradient(top, #DC4A38, #C53727); - background: -ms-linear-gradient(top, #DC4A38, #C53727); - background: -o-linear-gradient(top, #DC4A38, #C53727); -} -button.action:hover { - -moz-box-shadow: 0 1px 0px #DDD; - -webkit-box-shadow: 0 1px 0px #DDD; - box-shadow: iset 0 1px 0px #DDD; -} -button.action:active { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - border-color: #C6C6C6 !important; -} -#omegan { - font: 13px /17px Verdana, Arial, sans-serif; - margin-left: 17px; - padding-top: 3px; -} -#FormulaDiv { - height: 50px; - margin-left: 15px; - margin-top: 30px; - width: 230px; -} -#playDiv { - margin-left: 553px; - margin-top: 26px; - width: 200px; -} -#playDiv p input { - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px; - font: italic 15px Georgia, "Times New Roman", Times, serif; - outline: medium none; - padding: 5px; - margin-left: 18px; - width: 110px; - height: 18px; - margin-top: 4px; -} diff --git a/build/ArbitraryExcitation/css/images/new play.jpg b/build/ArbitraryExcitation/css/images/new play.jpg deleted file mode 100755 index 6a7eec2..0000000 Binary files a/build/ArbitraryExcitation/css/images/new play.jpg and /dev/null differ diff --git a/build/ArbitraryExcitation/css/images/play_button.jpg b/build/ArbitraryExcitation/css/images/play_button.jpg deleted file mode 100755 index 1b47683..0000000 Binary files a/build/ArbitraryExcitation/css/images/play_button.jpg and /dev/null differ diff --git a/build/ArbitraryExcitation/css/images/playbutton.jpg b/build/ArbitraryExcitation/css/images/playbutton.jpg deleted file mode 100755 index 2e929ab..0000000 Binary files a/build/ArbitraryExcitation/css/images/playbutton.jpg and /dev/null differ diff --git a/build/ArbitraryExcitation/css/images/small.jpg b/build/ArbitraryExcitation/css/images/small.jpg deleted file mode 100755 index 364d9fb..0000000 Binary files a/build/ArbitraryExcitation/css/images/small.jpg and /dev/null differ diff --git a/build/ArbitraryExcitation/css/images/tyre.jpg b/build/ArbitraryExcitation/css/images/tyre.jpg deleted file mode 100755 index 9f38d23..0000000 Binary files a/build/ArbitraryExcitation/css/images/tyre.jpg and /dev/null differ diff --git a/build/ArbitraryExcitation/css/images/tyre01.jpg b/build/ArbitraryExcitation/css/images/tyre01.jpg deleted file mode 100755 index 897cd30..0000000 Binary files a/build/ArbitraryExcitation/css/images/tyre01.jpg and /dev/null differ diff --git a/build/ArbitraryExcitation/css/images/tyre0111.jpg b/build/ArbitraryExcitation/css/images/tyre0111.jpg deleted file mode 100755 index debfd91..0000000 Binary files a/build/ArbitraryExcitation/css/images/tyre0111.jpg and /dev/null differ diff --git a/build/ArbitraryExcitation/css/images/tyre1.jpg b/build/ArbitraryExcitation/css/images/tyre1.jpg deleted file mode 100755 index 160283f..0000000 Binary files a/build/ArbitraryExcitation/css/images/tyre1.jpg and /dev/null differ diff --git a/build/ArbitraryExcitation/css/images/tyre2.jpg b/build/ArbitraryExcitation/css/images/tyre2.jpg deleted file mode 100755 index 07565ff..0000000 Binary files a/build/ArbitraryExcitation/css/images/tyre2.jpg and /dev/null differ diff --git a/build/ArbitraryExcitation/css/jsxGraph.css b/build/ArbitraryExcitation/css/jsxGraph.css deleted file mode 100755 index 299dfe5..0000000 --- a/build/ArbitraryExcitation/css/jsxGraph.css +++ /dev/null @@ -1,36 +0,0 @@ -.jxgbox { - position: relative; /* for IE 7 */ - overflow: hidden; - background-color: #ffffff; - border-style: solid; - border-width: 1px; - border-color: #356AA0; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} -.JXGtext { - background-color: transparent; - font-family: Arial, Helvetica, Geneva; - padding: 0px; - margin: 0px; -} -.navbar { - color: #aaaaaa; - background-color: #f5f5f5; - padding: 2px; - position: absolute; - font-size: 10px; - cursor: pointer; - z-index: 100; - right: 5px; - bottom: 5px; -} -#graph_jxgBoard_infobox { - background-color: black; -} -.JXGinfobox { - background-color: black; -} -.jxgbox { - position: relative; -} \ No newline at end of file diff --git a/build/ArbitraryExcitation/default.html b/build/ArbitraryExcitation/default.html deleted file mode 100755 index f770b6e..0000000 --- a/build/ArbitraryExcitation/default.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - -
- - - -
- - - - - - - -
- - - -
- - - -
- - Simple Pendulum - -
- - - - - -
- - -
- -
- - -
- - -
- Introduction -
- - -
-

- In this module, basic concepts of simple oscillator - are explained. Initially, an example of simple - pendulum is taken and the basic terminology i.e., - what is initial displacement, - initial velocity,natural frequency - and time period are explained. - Each of these terms is illustrated by giving an - example, where user can enter his value and observe - the behavior of structure for his input. -

- -

- Simple harmonic oscillator consists of a - mass (m) hanging from a string of - length (l), fixed at a pivot point P. - When the mass is displaced from its mean - position by giving some initial displacement - (angle), oscillator starts swinging back and fourth - with periodic motion. -

- - pendulum -
- - -
- - -
- -
- - -
- - -
- Theory -
- - - -
-

- There are two solutions to \(ax^2 + bx + c = 0\) and - they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - By applying Newton's second law for - rotational systems, the equation of motion for the - pendulum may be obtained. -

- -

- Where, τ = Torque ; I = - Moment of Inertia; α = - Angular Velocity. m is mass of the - oscillator, l is the length of the oscillator and theta is initial - displacement. The above equation can be rearranged as -

- -

- If the amplitude of - angular displacement is - small then we can use the approximation - (sinθ ≈ θ). - By considering the above approximation, the equation - of motion reduces to : -

- -

- The solution for equation of simple harmonic oscillator is -

- -

- where, θ(t) is the history of oscillation, - θ0 is the initial angle, - &omega=(g/l)1/2 is the - natural frequency of - the motion. -

-
-
- - -
- -
- - -
- -
- Objective -
- -
-

- Objective of simple harmonic oscillator experiment - is to understand the concept of time period - (natural frequency) in harmonic - oscillations . -

- -
- -
- - -
- -
- - -
- -
- Experiment -
- -
-

- -

-
- -
- -
- -
- - -
- -
- Manual -
- -
-

- Start the experiment with the default values of - length, mass and intial displacement (in angle). - Pause the experiment after few cycles and note - the observation. -

- -

Observation 1:

-
    - -
  1. - Find the time period of the pendulum by noting the - time interval of any one complete cycle from the - response graph. -
  2. - -
  3. - You may note that this time period value is same - for any complete cycle. - Read More -
  4. - -
- -
- -
- -
- -
- - -
- -
- Quizzes -
- -
- -

- - Q1. - Time taken for one complete oscillation - is called Time Period of the oscillator.
- - True
- - False

- - Q2. - Time period of the oscillator is constant for - given values of mass, length and initial - conditions.
- - True
- - False

- - Q3. - Value of Time period depends on initial - conditions.
- - True
- - False

- - Q4. - Value of time period depends on mass.
- - True
- - False

- - Q5. - Value of time period depends on length of the - oscillator.
- - True
- - False

- -

- -
- -
- -
- -
- - -
- -
- Procedure -
- -
-

- Procedure for the experiment is as follows -

-
- -
- - -
- -
- - -
- -
- Further Readings -
- -
- -
- -
- -
- - - - - - - -
- -
- -
- - - - - -
- - - diff --git a/build/ArbitraryExcitation/index.html b/build/ArbitraryExcitation/index.html deleted file mode 100755 index 294c518..0000000 --- a/build/ArbitraryExcitation/index.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - diff --git a/build/ArbitraryExcitation/js/ArbitraryRaphael.js b/build/ArbitraryExcitation/js/ArbitraryRaphael.js deleted file mode 100755 index df0b244..0000000 --- a/build/ArbitraryExcitation/js/ArbitraryRaphael.js +++ /dev/null @@ -1,481 +0,0 @@ -var paper; -var weight; -var springHookUp; -var springHookUp; -var spring; -var damp; -var dampEllips; -var dampHookUp; -var dampHookDown; -var springHookDown; -var connector1; -var connector2; -var road; -var newStepRoad; -var newHumpRoad; -var tyreImage1; -var tyreImage2; -var springMove; -var springMove1; -var moveSet; -var roadLines; -var height; -var weightHt; -var springHookUpHt; -var spingHt; -var springHookDownHt; -var conHt1; -var conHt2; -var dampHookUpHt; -var dampHt; -var dampHookDownHt; -var dampEllipsHt; -var move; -var u; -var roadSet; -var stepRoad; -var humpRoad; -var bounceVal; -var stepLines; -var line; -var fixRoad; -var fixedRoadLines = []; -var stepRoadLines = []; -var stepRoadLines1 = []; -var stepRoadLines2 = []; -var newStepRoadLines = []; -var verticalStepLines = []; -var humpRoadLines = []; -var sec = 500; -var bounceTime = 300; -var time = 0; -var y = 100; -var dx = 0; -var flag = false; -stop = false; -shape = ""; -stop = false; -flag1 = false; -flag2 = false; -flag3 = false; -flag4 = false; - -function getHeight() { - height = parseFloat($("#stepHeight").val()); - stepLines = ((height * 100) + 240); - - if(height >= 0.1 && height <= 0.24) { - weightHt = 30; - springHookUpHt = 20; - spingHt = 60; - springHookDownHt = 130; - conHt1 = 160; - conHt2 = 180; - dampHookUpHt = 20; - dampHt = 70; - dampHookDownHt = 135; - dampEllipsHt = 90; - move = 8; - bounceVal = 2; - } else if(height >= 0.25 && height <= 0.35) { - weightHt = 10; - springHookUpHt = 40; - spingHt = 80; - springHookDownHt = 150; - conHt1 = 180; - conHt2 = 200; - dampHookUpHt = 40; - dampHt = 90; - dampHookDownHt = 155; - dampEllipsHt = 110; - move = 8; - bounceVal = 2.5; - } else if(height >= 0.36 && height <= 0.44) { - weightHt = 5; - springHookUpHt = 45; - spingHt = 85; - springHookDownHt = 155; - conHt1 = 185; - conHt2 = 205; - dampHookUpHt = 45; - dampHt = 95; - dampHookDownHt = 160; - dampEllipsHt = 115; - move = 8; - bounceVal = 3; - } else if(height >= 0.45 && height <= 0.54) { - weightHt = 0; - springHookUpHt = 50; - spingHt = 90; - springHookDownHt = 160; - conHt1 = 190; - conHt2 = 210; - dampHookUpHt = 50; - dampHt = 100; - dampHookDownHt = 165; - dampEllipsHt = 120; - move = 8; - bounceVal = 3.5; - } else if(height >= 0.55 && height <= 0.64) { - weightHt = -10; - springHookUpHt = 60; - spingHt = 100; - springHookDownHt = 170; - conHt1 = 200; - conHt2 = 220; - dampHookUpHt = 60; - dampHt = 110; - dampHookDownHt = 175; - dampEllipsHt = 130; - move = 8; - bounceVal = 4; - } else if(height >= 0.65 && height <= 0.69) { - weightHt = -20; - springHookUpHt = 70; - spingHt = 110; - springHookDownHt = 180; - conHt1 = 210; - conHt2 = 230; - dampHookUpHt = 70; - dampHt = 120; - dampHookDownHt = 185; - dampEllipsHt = 140; - move = 8; - bounceVal = 4.5; - } else if(height >= 0.70 && height <= 0.75) { - weightHt = -30; - springHookUpHt = 80; - spingHt = 120; - springHookDownHt = 190; - conHt1 = 220; - conHt2 = 240; - dampHookUpHt = 80; - dampHt = 130; - dampHookDownHt = 195; - dampEllipsHt = 150; - move = 12; - bounceVal = 5; - } -} - -function diagram() { - paper = new Raphael(document.getElementById('diagram'), 500, 450); - weight = paper.path("M 50 50 l 130 0 l 0 50 l -130 0 z").attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - tyreImage2 = paper.image("css/images/tyre01.jpg", 40, 190, 150, 150); - tyreImage1 = paper.image("css/images/tyre01.jpg", 40, 190, 150, 150); - springHookUp = paper.path("M 70 " + y + " l 0 40").attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - spring = paper.path("M 70 " + (y + 40) + " l -15 8 l 30 8 l -30 8 l 30 8 l -30 8 l 30 8 l -30 8 l 30 8 -16 8").attr({ - "stroke-width" : 2 - }); - damp = paper.path("M 145 " + (y + 50) + " l 30 0 l 0 65 l -30 0 z").attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - dampEllips = paper.ellipse(160, (y + 70), 15, 5).attr({ - 'stroke-width' : 2, - 'fill' : ' #606060' - }); - dampHookUp = paper.path("M 160 " + y + " l 0 70").attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - dampHookDown = paper.path("M 160 " + (y + 115) + " l 0 25").attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - springHookDown = paper.path("M 70 " + (y + 112) + " l 0 28").attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - connector1 = paper.path("M 70 " + (y + 140) + " l 30 25").attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - connector2 = paper.path("M 130 " + (y + 165) + " l 30 -25").attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - fixRoad = paper.path("M 0 " + (y + 240) + " l 500 0 ").attr({ - "stroke-width" : 2 - }); - stepRoad = paper.path("M 0 " + (y + 240) + " l 285 0 l 0 30 l 220 0").attr({ - "stroke-width" : 2 - }); - humpRoad = paper.path("M 0 " + (y + 240) + " l 225 0 q 85 -65 180 0 l 95 0 ").attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - line = paper.path("M 225 340 l 180 0").attr({ - "stroke-width" : 2 - }); - line.hide(); - stepRoad.hide(); - humpRoad.hide(); - for(var i = 0; i < 510; i = i + 10) { - fixedRoadLines[i] = paper.path("M" + i + " " + (y + 240) + " l -10 10").attr({ - "stroke-width" : 2 - }); - } - //alert(spring.getTotalLength()); - $('#shape').change(function() { - shape = $("#shape").val(); - switch(shape) { - case "Step" : - drawStep(); - break; - case "Hump" : - drawHump(); - break; - } - }); -} - -function drawStep() { - fixRoad.hide(); - line.hide(); - humpRoad.hide(); - stepRoad.show(); - for(var i = 0; i < 510; i = i + 10) { - fixedRoadLines[i].remove(); - if(flag == true) { - humpRoadLines[i].remove(); - } - } - for(var i = 0; i < 285; i = i + 10) { - stepRoadLines[i] = paper.path("M" + i + " " + (y + 240) + " l -10 10").attr({ - "stroke-width" : 2 - }); - stepRoadLines1[i] = paper.path("M" + (i + 286) + " " + (y + 270) + " l -10 10").attr({ - "stroke-width" : 2 - }); - } - for(var i = 0; i < 20; i = i + 10) { - stepRoadLines2[i] = paper.path("M" + (285) + " " + (y + (i + 248)) + " l -10 10").attr({ - "stroke-width" : 2 - }); - } -} - -function drawHump() { - flag = true; - fixRoad.show(); - stepRoad.hide(); - line.show(); - humpRoad.show(); - for(var i = 0; i < 510; i = i + 10) { - humpRoadLines[i] = paper.path("M" + i + " " + (y + 240) + " l -10 10").attr({ - "stroke-width" : 3 - }); - } -} - -function stepAnimation() { - stepRoad.hide(); - newStepRoad = paper.path("M 0 " + (y + 240) + " l 285 0 l 0 " + (height * 100) + " l 220 0").attr({ - "stroke-width" : 2 - }); - for(var i = 0; i <= 220; i = i + 10) { - stepRoadLines1[i].remove(); - } - for(var i = 0; i < 20; i = i + 10) { - stepRoadLines2[i].remove(); - } - for(var i = 0; i < 285; i = i + 10) { - newStepRoadLines[i] = paper.path("M" + (i + 286) + " " + (y + stepLines) + " l -10 10").attr({ - "stroke-width" : 2 - }); - } - for(var i = 0; i <= ((height * 100) - 10); i = i + 10) { - verticalStepLines[i] = paper.path("M" + (285) + " " + (y + (i + 248)) + " l -10 10").attr({ - "stroke-width" : 2 - }); - } - springMove = tyreImage1.animate({ - rotation : 360, - translation : 250 - }, 1000); - springMove1 = tyreImage2.animate({ - rotation : -360, - translation : 250 - }, 1000); - moveSet = paper.set(); - moveSet.push(weight, springHookUp, spring, springHookDown, dampHookUp, damp, dampHookDown, dampEllips, connector1, connector2); - moveSet.animate({ - rotation : 0, - translation : 250 - }, 1000); - u = 8; - setTimeout("bounce()", 1000); -} - -function bounce() { - time++; - var Diff = 0; - springMove.hide(); - - if(flag3 == true) { - Diff += 1; - flag4 = true; - } else if(flag1 == true) { - Diff += bounceVal; - flag2 = true; - } else { - Diff += 10; - } - - var tyreBounce = springMove1.animate({ - rotation : 360, - translation : '0 0', - x : (290 + dx), - y : (190 + (height * 100)) - }, bounceTime); - var sp = spring.animate({ - path : "M " + (320 + dx) + " " + (y + spingHt + Diff) + " l -15 " + (u - 3.5) + " l 30 " + (u - 3) + " l -30 " + (u - 2) + " l 30 " + (u - 1) + " l -30 " + u + " l 30 " + u + " l -30 " + u + " l 30 " + u + " -16 " + u + "" - }, bounceTime); - var w = weight.animateWith(sp, { - path : "M " + (300 + dx) + " " + (y - weightHt + Diff) + " l 130 0 l 0 50 l -130 0 z" - }, bounceTime); - var shu = springHookUp.animateWith(sp, { - path : "M " + (320 + dx) + " " + (y + springHookUpHt + Diff) + " l 0 40" - }, bounceTime); - var c1 = connector1.animateWith(sp, { - path : "M " + (320 + dx) + " " + (y + conHt1) + " l 30 20" - }, bounceTime); - var c2 = connector2.animateWith(sp, { - path : "M " + (380 + dx) + " " + (y + conHt2) + " l 30 -20" - }, bounceTime); - var dhu = dampHookUp.animateWith(sp, { - path : "M " + (410 + dx) + " " + (y + dampHookUpHt + Diff) + " l 0 70" - }, bounceTime); - var d = damp.animateWith(sp, { - path : "M " + (395 + dx) + " " + (y + dampHt) + " l 30 0 l 0 65 l -30 0 z" - }, bounceTime); - var de = dampEllips.animateWith(sp, { - cx : (410 + dx), - cy : (y + dampEllipsHt + Diff) - }, bounceTime); - var dhd = dampHookDown.animateWith(sp, { - path : "M " + (410 + dx) + " " + (y + dampHookDownHt) + " l 0 25" - }, bounceTime); - tyreBounce.animate({ - rotation : 0, - translation : 0 - }, 3500); - - if(flag1 == true) { - u += 0.5; - var shd = springHookDown.animateWith(sp, { - path : "M " + (320 + dx) + " " + ((y - 6) + springHookDownHt) + " l 0 36.5" - }, bounceTime); - } else { - u += 2; - var shd = springHookDown.animateWith(sp, { - path : "M " + (320 + dx) + " " + (y + springHookDownHt) + " l 0 30" - }, bounceTime); - } - - if(dx >= 44) { - dx = 44; - } else { - dx += 11; - } - - if(time != move && stop != true) { - setTimeout("bounceUp()", sec); - } -} - -function bounceUp() { - var Diff = 0; - - if(flag4 == true) { - Diff -= 1; - } else if(flag2 == true) { - Diff -= bounceVal; - flag3 = true; - } else { - Diff -= 10; - flag1 = true; - } - - var tyreBounce = springMove1.animate({ - rotation : 360, - translation : '0 0', - x : (290 + dx), - y : (190 + (height * 100)) - }, bounceTime); - var sp = spring.animate({ - path : "M " + (320 + dx) + " " + (y + spingHt + Diff) + " l -15 " + (u - 3.5) + " l 30 " + (u - 3) + " l -30 " + (u - 2) + " l 30 " + (u - 1) + " l -30 " + u + " l 30 " + u + " l -30 " + u + " l 30 " + u + " -16 " + u + "" - }, bounceTime); - var w = weight.animateWith(sp, { - path : "M " + (300 + dx) + " " + (y - weightHt + Diff) + " l 130 0 l 0 50 l -130 0 z" - }, bounceTime); - var shu = springHookUp.animateWith(sp, { - path : "M " + (320 + dx) + " " + (y + springHookUpHt + Diff) + " l 0 40" - }, bounceTime); - var c1 = connector1.animateWith(sp, { - path : "M " + (320 + dx) + " " + (y + conHt1) + " l 30 20" - }, bounceTime); - var c2 = connector2.animateWith(sp, { - path : "M " + (380 + dx) + " " + (y + conHt2) + " l 30 -20" - }, bounceTime); - var dhu = dampHookUp.animateWith(sp, { - path : "M " + (410 + dx) + " " + (y + dampHookUpHt + Diff) + " l 0 70" - }, bounceTime); - var d = damp.animateWith(sp, { - path : "M " + (395 + dx) + " " + (y + dampHt) + " l 30 0 l 0 65 l -30 0 z" - }, bounceTime); - var de = dampEllips.animateWith(sp, { - cx : (410 + dx), - cy : (y + dampEllipsHt + Diff) - }, bounceTime); - var dhd = dampHookDown.animateWith(sp, { - path : "M " + (410 + dx) + " " + (y + dampHookDownHt) + " l 0 25" - }, bounceTime); - tyreBounce.animate({ - rotation : 0, - translation : 0 - }, 3500); - - if(flag2 == true) { - u -= 0.5; - var shd = springHookDown.animateWith(sp, { - path : "M " + (320 + dx) + " " + ((y - 6) + springHookDownHt) + " l 0 36.5" - }, bounceTime); - } else { - u -= 2; - var shd = springHookDown.animateWith(sp, { - path : "M " + (320 + dx) + " " + (y + springHookDownHt) + " l 0 30" - }, bounceTime); - } - - if(dx >= 44) { - dx = 44; - } else { - dx += 11; - } - - if(time != move && stop != true) { - setTimeout("bounce()", sec); - } -} - -function humpAnimation() { - tyreImage2.hide(); - springMove = tyreImage1.animate({ - rotation : 360, - translation : 80 - }, 1500); - moveSet = paper.set(); - moveSet.push(weight, springHookUp, spring, springHookDown, dampHookUp, damp, dampHookDown, dampEllips, connector1, connector2); - moveSet.animate({ - rotation : 0, - translation : 80 - }, 1500); -} \ No newline at end of file diff --git a/build/ArbitraryExcitation/js/Calculations.js b/build/ArbitraryExcitation/js/Calculations.js deleted file mode 100755 index ac889de..0000000 --- a/build/ArbitraryExcitation/js/Calculations.js +++ /dev/null @@ -1,196 +0,0 @@ -var m; -var k; -var Cc; -var c; -var f0; -var v; -var check = 0; -var omegaN; -var omegaD; -var zeta; -var brd; -var H; -var A; -var V0; -var g = 9.81; -var THITA; -var t; -var d = 0; -var ti = []; -var X = []; -var p1 = []; -var plot; -var selectShape; -function createGraph() { - brd = JXG.JSXGraph.initBoard('graph', { - originX : 50, - originY : 310, - unitX : 100, // sec - unitY : 100, // y(t) - showCopyright : false, - }); - axisx = brd.create('axis', [[0, 0], [1, 0]]); - axisy = brd.create('axis', [[0, 0], [0, 1]]); - - var text_Y = brd.create('text', [-0.4, 3.5, 'y(t)'], { - style : 5 - }); - var text_X = brd.create('text', [3.8, -0.3, 'time(sec)'], { - style : 5 - }); -} - -function showFormula(msg) { - $("#Formula").html(msg); - $("#Formula").dialog(); -} - -function calcCc() { - m = parseFloat($("#m").val()); - k = parseFloat($('#k').val()); - Cc = 2 * Math.sqrt(k * m); - $("#cc").val(Cc.toFixed(3)); -} - -function showDialog(msg) { - $("#Formula1").html(msg) - $("#Formula1").dialog(); -} - -function calculate() { - var errorMsg = ""; - m = parseFloat($("#m").val()); - if((m != null || m != 0 ) && (m >= 50 && m <= 100)) { - m = m; - check += 1; - } else { - errorMsg += "Please Enter m between 50-100
"; - showDialog(errorMsg); - check = 0; - } - k = parseFloat($("#k").val()); - if((k != null || k != 0 ) && (k >= 20000 && k <= 100000)) { - k = k; - check += 1; - } else { - errorMsg += "Please Enter k between 20000-100000
"; - showDialog(errorMsg); - check = 0; - } - c = parseFloat($("#c").val()); - if((c != null || c != 0 ) && (c >= 1000 && c <= 2500)) { - c = c; - check += 1; - } else { - errorMsg += "Please Enter C between 1000-2500
"; - showDialog(errorMsg); - check = 0; - } - H = parseFloat($("#stepHeight").val()); - if((H != null || H != 0 ) && (H >= 0.1 && H <= 0.75)) { - H = H; - check += 1; - } else { - errorMsg += "Please Enter H between 0.1-0.75
"; - showDialog(errorMsg); - check = 0; - } - selectShape = $('#shape :selected').val(); - if((selectShape == "Step" || selectShape == "Hump" )) { - selectShape = selectShape; - check += 1; - } else { - errorMsg += "Please Select the Shape
"; - showDialog(errorMsg); - check = 0; - } - // Formulae calculations - omegaN = Math.sqrt(k / m).toFixed(6); - Cc = 2 * Math.sqrt(k * m); - zeta = c / Cc; - omegaD = Math.sqrt(1 - (zeta * zeta)) * omegaN; - V0 = Math.sqrt(2 * g * H); - A = Math.sqrt((H * H) + (((V0 + (zeta * omegaN * H)) / omegaD) * ((V0 + (zeta * omegaN * H)) / omegaD))); - THITA = Math.atan((H * omegaD) / (V0 * zeta * omegaN * H)); - -} - -function calculateOmegaN() { - m = parseFloat($("#m").val()); - k = parseFloat($("#k").val()); - omegaN = Math.sqrt(k / m).toFixed(6); - $("#omeganVal").val(omegaN); -} - -function plotData() { - d = 40; - ti[0] = 0; - ti[1] = 4 / ((d * 10) / 2); - for(var i = 1; i < d; i++) { - ti[i] = ti[i - 1] + 4 / ((d * 10) / 2); - } - - for(var i = 0; i < d; i++) { - X[i] = ((Math.exp(-zeta * omegaN * ti[i]) * A * Math.sin((omegaD * ti[i]) + THITA)) * 10).toFixed(2); - //console.log(" X for :" + X[i]); - } - - var i = 0; - setInterval(function() { - if(i < ti.length) { - var t1 = ti[i]; - var y1 = X[i]; - //console.log(t1 + "," + y1); - plot1 = brd.createElement('point', [t1, y1], { - name : '', - style : 0.1, - strokeColor : 'white', - fixed : true - }); - if(X[i] == 0.00) { - stop = true; - } - i++; - } - }, 500); - p1[i] = brd.create('curve', [ti, X], { - size : 4 - }); - plot2 = brd.create('spline', [ti, X], p1, { - strokeColor : 'green', - strokeWidth : 2, - fixed : true - }); -} - - -$(document).ready(function() { - - $("#Showf").click(function() { - $("#Formula").show(); - var msg = '' - showFormula(msg); - }); - - $("#Hidef").click(function() { - $("#Formula").hide(); - }); - - $("#reload").click(function() { - window.location.reload(true); - }); - - $("#play").click(function() { - if(check == 5) { - getHeight(); - if(shape == "Step") { - stepAnimation(); - plotData(); - } else if(shape == "Hump") { - humpAnimation(); - } - $("#play").attr("disabled", "disabled"); - $("#shape").attr("disabled", "disabled"); - } - }); -}); diff --git a/build/ArbitraryExcitation/js/jquery-1.5.1.min.js b/build/ArbitraryExcitation/js/jquery-1.5.1.min.js deleted file mode 100755 index 6437874..0000000 --- a/build/ArbitraryExcitation/js/jquery-1.5.1.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * jQuery JavaScript Library v1.5.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: Wed Feb 23 13:55:29 2011 -0500 - */ -(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="
a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="
";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div
","
"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file diff --git a/build/ArbitraryExcitation/js/jquery-1.6.2.min.js b/build/ArbitraryExcitation/js/jquery-1.6.2.min.js deleted file mode 100755 index 48590ec..0000000 --- a/build/ArbitraryExcitation/js/jquery-1.6.2.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6.2 - * 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: Thu Jun 30 14:16:56 2011 -0400 - */ -(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},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(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. -shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j -)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/build/ArbitraryExcitation/js/jquery-1.7.1.min.js b/build/ArbitraryExcitation/js/jquery-1.7.1.min.js deleted file mode 100755 index 198b3ff..0000000 --- a/build/ArbitraryExcitation/js/jquery-1.7.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.1 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; -f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() -{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/build/ArbitraryExcitation/js/jquery-ui-1.8.14.custom.min.js b/build/ArbitraryExcitation/js/jquery-ui-1.8.14.custom.min.js deleted file mode 100755 index f9e4f1e..0000000 --- a/build/ArbitraryExcitation/js/jquery-ui-1.8.14.custom.min.js +++ /dev/null @@ -1,789 +0,0 @@ -/*! - * jQuery UI 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.14", -keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus(); -b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this, -"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", -function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth, -outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,"tabindex"),d=isNaN(b); -return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e= -0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= -false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -;/* - * jQuery UI Position 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Position - */ -(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, -left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= -k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= -m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= -d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= -a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), -g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); -;/* - * jQuery UI Draggable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;this.helper= -this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); -this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true}, -_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b= -false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration, -10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle|| -!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&& -a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent= -this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"), -10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"), -10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, -(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!= -"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"), -10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+ -this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&& -!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.leftg[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.topg[3])?h:!(h-this.offset.click.topg[2])?e:!(e-this.offset.click.left=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= -i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); -var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= -false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); -this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= -{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; -if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false}, -_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f, -{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight: -Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(cb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left= -null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ -a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+ -c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]); -b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.14"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(), -10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top- -f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType? -e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a= -e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing, -step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= -e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset; -var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left: -a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top- -d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition, -f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, -display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b= -e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height= -d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); -;/* - * jQuery UI Selectable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", -c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= -this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a=== -"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&& -!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, -left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); -return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], -e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); -c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): -this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, -toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); -if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), -this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= -this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= -d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| -0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", -a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- -f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- -this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, -this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", -a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); -a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", -function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= -this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); -b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); -a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ -c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; -if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); -if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), -e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| -e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", -"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.14", -animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); -f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", -paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); -;/* - * jQuery UI Autocomplete 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.position.js - */ -(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g= -false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= -a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; -this.menu=d("
    ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& -a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); -d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& -b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= -this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, -"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); -(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); -this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b, -this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("");e.secondary&&a.append("");if(!this.options.text){d.push(f?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")=== -"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); -b.Widget.prototype.destroy.call(this)}})})(jQuery); -;/* - * jQuery UI Dialog 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.button.js - * jquery.ui.draggable.js - * jquery.ui.mouse.js - * jquery.ui.position.js - * jquery.ui.resizable.js - */ -(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, -position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
    ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= -1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== -f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
    ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, -function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", -handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, -originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", -f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): -[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); -if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): -e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= -this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.14",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), -create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), -height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(a.range==="min"||a.range==="max"?" ui-slider-range-"+a.range:""))}for(var j=c.length;j"); -this.handles=c.add(d(e.join("")).appendTo(b.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", -g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!b.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");i=b._start(g,l);if(i===false)return}break}m=b.options.step;i=b.options.values&&b.options.values.length? -(h=b.values(l)):(h=b.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=b._valueMin();break;case d.ui.keyCode.END:h=b._valueMax();break;case d.ui.keyCode.PAGE_UP:h=b._trimAlignValue(i+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(i-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===b._valueMax())return;h=b._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===b._valueMin())return;h=b._trimAlignValue(i- -m);break}b._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(g,k);b._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); -return this},_mouseCapture:function(b){var a=this.options,c,f,e,j,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(a.range===true&&this.values(1)===a.min){g+=1;e=d(this.handles[g])}if(this._start(b,g)===false)return false; -this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();a=e.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-e.width()/2,top:b.pageY-a.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(b){var a= -this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;if(this.orientation==="horizontal"){a= -this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a); -c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var f;if(this.options.values&&this.options.values.length){f=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>f||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, -_refreshValue:function(){var b=this.options.range,a=this.options,c=this,f=!this._animateOff?a.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},a.animate); -if(h===1)c.range[f?"animate":"css"]({width:e-g+"%"},{queue:false,duration:a.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},a.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:a.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, -1)[f?"animate":"css"]({width:e+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Tabs 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
    ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.14"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k'))}function N(a){return a.bind("mouseout",function(b){b= -d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b.addClass("ui-state-hover"); -b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.14"}});var A=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){H(this._defaults, -a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0, -selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('
    '))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]= -h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c= -this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a, -"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", -function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput); -a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left", -this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus", -this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b= -b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5", -cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a); -d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c= -d.datepicker._get(b,"beforeShow");H(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c= -{left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover"); -if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv); -J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"); -a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]|| -c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+ -i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b= -this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute", -left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&& -d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth= -b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear= -!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a); -a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a)); -d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()% -100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=B+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y", -TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay= -a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(), -b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n= -this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+s+"":f?"":''+s+"";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
    '+(c?h:"")+(this._isInRange(a,s)?'":"")+(c?"":h)+"
    ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),B= -this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right": -"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='
    '+(/all|left/.test(t)&&x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,B,v)+'
    ';var z=j?'": -"";for(t=0;t<7;t++){var r=(t+h)%7;z+="=5?' class="ui-datepicker-week-end"':"")+'>'+q[r]+""}y+=z+"";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q";var R=!j?"":'";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&ro;R+='";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+""}g++;if(g>11){g=0;m++}y+="
    '+this._get(a,"weekHeader")+"
    '+ -this._get(a,"calculateWeek")(r)+""+(F&&!D?" ":L?''+r.getDate()+"":''+ -r.getDate()+"")+"
    "+(l?""+(i[0]>0&&G==i[1]-1?'
    ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"), -l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
    ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()): -g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
    ";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c== -"Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear"); -if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); -c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, -"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= -function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker, -[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.14";window["DP_jQuery_"+A]=d})(jQuery); -;/* - * jQuery UI Progressbar 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
    ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* -this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Effects 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/ - */ -jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], -16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, -a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= -a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", -"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, -0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, -211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, -d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; -f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, -[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.14",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}); -c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c, -a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments); -a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%", -"pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d* -((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/= -e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/= -e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); -;/* - * jQuery UI Effects Fade 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fade - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Fold 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * jquery.effects.core.js - */ -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], -10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); -;/* - * jQuery UI Effects Highlight 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Pulsate 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * jquery.effects.core.js - */ -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); -b.dequeue()})})}})(jQuery); -; \ No newline at end of file diff --git a/build/ArbitraryExcitation/js/raphael.js b/build/ArbitraryExcitation/js/raphael.js deleted file mode 100755 index 6688d5e..0000000 --- a/build/ArbitraryExcitation/js/raphael.js +++ /dev/null @@ -1,3725 +0,0 @@ -/*! - * Raphael 1.5.2 - JavaScript Vector Library - * - * Copyright (c) 2010 Dmitry Baranovskiy (http://raphaeljs.com) - * Licensed under the MIT (http://raphaeljs.com/license.html) license. - */ -(function () { - function R() { - if (R.is(arguments[0], array)) { - var a = arguments[0], - cnv = create[apply](R, a.splice(0, 3 + R.is(a[0], nu))), - res = cnv.set(); - for (var i = 0, ii = a[length]; i < ii; i++) { - var j = a[i] || {}; - elements[has](j.type) && res[push](cnv[j.type]().attr(j)); - } - return res; - } - return create[apply](R, arguments); - } - R.version = "1.5.2"; - var separator = /[, ]+/, - elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1}, - formatrg = /\{(\d+)\}/g, - proto = "prototype", - has = "hasOwnProperty", - doc = document, - win = window, - oldRaphael = { - was: Object[proto][has].call(win, "Raphael"), - is: win.Raphael - }, - Paper = function () { - this.customAttributes = {}; - }, - paperproto, - appendChild = "appendChild", - apply = "apply", - concat = "concat", - supportsTouch = "createTouch" in doc, - E = "", - S = " ", - Str = String, - split = "split", - events = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend"[split](S), - touchMap = { - mousedown: "touchstart", - mousemove: "touchmove", - mouseup: "touchend" - }, - join = "join", - length = "length", - lowerCase = Str[proto].toLowerCase, - math = Math, - mmax = math.max, - mmin = math.min, - abs = math.abs, - pow = math.pow, - PI = math.PI, - nu = "number", - string = "string", - array = "array", - toString = "toString", - fillString = "fill", - objectToString = Object[proto][toString], - paper = {}, - push = "push", - ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i, - colourRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i, - isnan = {"NaN": 1, "Infinity": 1, "-Infinity": 1}, - bezierrg = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/, - round = math.round, - setAttribute = "setAttribute", - toFloat = parseFloat, - toInt = parseInt, - ms = " progid:DXImageTransform.Microsoft", - upperCase = Str[proto].toUpperCase, - availableAttrs = {blur: 0, "clip-rect": "0 0 1e9 1e9", cursor: "default", cx: 0, cy: 0, fill: "#fff", "fill-opacity": 1, font: '10px "Arial"', "font-family": '"Arial"', "font-size": "10", "font-style": "normal", "font-weight": 400, gradient: 0, height: 0, href: "http://raphaeljs.com/", opacity: 1, path: "M0,0", r: 0, rotation: 0, rx: 0, ry: 0, scale: "1 1", src: "", stroke: "#000", "stroke-dasharray": "", "stroke-linecap": "butt", "stroke-linejoin": "butt", "stroke-miterlimit": 0, "stroke-opacity": 1, "stroke-width": 1, target: "_blank", "text-anchor": "middle", title: "Raphael", translation: "0 0", width: 0, x: 0, y: 0}, - availableAnimAttrs = {along: "along", blur: nu, "clip-rect": "csv", cx: nu, cy: nu, fill: "colour", "fill-opacity": nu, "font-size": nu, height: nu, opacity: nu, path: "path", r: nu, rotation: "csv", rx: nu, ry: nu, scale: "csv", stroke: "colour", "stroke-opacity": nu, "stroke-width": nu, translation: "csv", width: nu, x: nu, y: nu}, - rp = "replace", - animKeyFrames= /^(from|to|\d+%?)$/, - commaSpaces = /\s*,\s*/, - hsrg = {hs: 1, rg: 1}, - p2s = /,?([achlmqrstvxz]),?/gi, - pathCommand = /([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig, - pathValues = /(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig, - radial_gradient = /^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/, - sortByKey = function (a, b) { - return a.key - b.key; - }; - - R.type = (win.SVGAngle || doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML"); - if (R.type == "VML") { - var d = doc.createElement("div"), - b; - d.innerHTML = ''; - b = d.firstChild; - b.style.behavior = "url(#default#VML)"; - if (!(b && typeof b.adj == "object")) { - return R.type = null; - } - d = null; - } - R.svg = !(R.vml = R.type == "VML"); - Paper[proto] = R[proto]; - paperproto = Paper[proto]; - R._id = 0; - R._oid = 0; - R.fn = {}; - R.is = function (o, type) { - type = lowerCase.call(type); - if (type == "finite") { - return !isnan[has](+o); - } - return (type == "null" && o === null) || - (type == typeof o) || - (type == "object" && o === Object(o)) || - (type == "array" && Array.isArray && Array.isArray(o)) || - objectToString.call(o).slice(8, -1).toLowerCase() == type; - }; - R.angle = function (x1, y1, x2, y2, x3, y3) { - if (x3 == null) { - var x = x1 - x2, - y = y1 - y2; - if (!x && !y) { - return 0; - } - return ((x < 0) * 180 + math.atan(-y / -x) * 180 / PI + 360) % 360; - } else { - return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3); - } - }; - R.rad = function (deg) { - return deg % 360 * PI / 180; - }; - R.deg = function (rad) { - return rad * 180 / PI % 360; - }; - R.snapTo = function (values, value, tolerance) { - tolerance = R.is(tolerance, "finite") ? tolerance : 10; - if (R.is(values, array)) { - var i = values.length; - while (i--) if (abs(values[i] - value) <= tolerance) { - return values[i]; - } - } else { - values = +values; - var rem = value % values; - if (rem < tolerance) { - return value - rem; - } - if (rem > values - tolerance) { - return value - rem + values; - } - } - return value; - }; - function createUUID() { - // http://www.ietf.org/rfc/rfc4122.txt - var s = [], - i = 0; - for (; i < 32; i++) { - s[i] = (~~(math.random() * 16))[toString](16); - } - s[12] = 4; // bits 12-15 of the time_hi_and_version field to 0010 - s[16] = ((s[16] & 3) | 8)[toString](16); // bits 6-7 of the clock_seq_hi_and_reserved to 01 - return "r-" + s[join](""); - } - - R.setWindow = function (newwin) { - win = newwin; - doc = win.document; - }; - // colour utilities - var toHex = function (color) { - if (R.vml) { - // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/ - var trim = /^\s+|\s+$/g; - var bod; - try { - var docum = new ActiveXObject("htmlfile"); - docum.write(""); - docum.close(); - bod = docum.body; - } catch(e) { - bod = createPopup().document.body; - } - var range = bod.createTextRange(); - toHex = cacher(function (color) { - try { - bod.style.color = Str(color)[rp](trim, E); - var value = range.queryCommandValue("ForeColor"); - value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16); - return "#" + ("000000" + value[toString](16)).slice(-6); - } catch(e) { - return "none"; - } - }); - } else { - var i = doc.createElement("i"); - i.title = "Rapha\xebl Colour Picker"; - i.style.display = "none"; - doc.body[appendChild](i); - toHex = cacher(function (color) { - i.style.color = color; - return doc.defaultView.getComputedStyle(i, E).getPropertyValue("color"); - }); - } - return toHex(color); - }, - hsbtoString = function () { - return "hsb(" + [this.h, this.s, this.b] + ")"; - }, - hsltoString = function () { - return "hsl(" + [this.h, this.s, this.l] + ")"; - }, - rgbtoString = function () { - return this.hex; - }; - R.hsb2rgb = function (h, s, b, o) { - if (R.is(h, "object") && "h" in h && "s" in h && "b" in h) { - b = h.b; - s = h.s; - h = h.h; - o = h.o; - } - return R.hsl2rgb(h, s, b / 2, o); - }; - R.hsl2rgb = function (h, s, l, o) { - if (R.is(h, "object") && "h" in h && "s" in h && "l" in h) { - l = h.l; - s = h.s; - h = h.h; - } - if (h > 1 || s > 1 || l > 1) { - h /= 360; - s /= 100; - l /= 100; - } - var rgb = {}, - channels = ["r", "g", "b"], - t2, t1, t3, r, g, b; - if (!s) { - rgb = { - r: l, - g: l, - b: l - }; - } else { - if (l < .5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } - t1 = 2 * l - t2; - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - t3 < 0 && t3++; - t3 > 1 && t3--; - if (t3 * 6 < 1) { - rgb[channels[i]] = t1 + (t2 - t1) * 6 * t3; - } else if (t3 * 2 < 1) { - rgb[channels[i]] = t2; - } else if (t3 * 3 < 2) { - rgb[channels[i]] = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - rgb[channels[i]] = t1; - } - } - } - rgb.r *= 255; - rgb.g *= 255; - rgb.b *= 255; - rgb.hex = "#" + (16777216 | rgb.b | (rgb.g << 8) | (rgb.r << 16)).toString(16).slice(1); - R.is(o, "finite") && (rgb.opacity = o); - rgb.toString = rgbtoString; - return rgb; - }; - R.rgb2hsb = function (red, green, blue) { - if (green == null && R.is(red, "object") && "r" in red && "g" in red && "b" in red) { - blue = red.b; - green = red.g; - red = red.r; - } - if (green == null && R.is(red, string)) { - var clr = R.getRGB(red); - red = clr.r; - green = clr.g; - blue = clr.b; - } - if (red > 1 || green > 1 || blue > 1) { - red /= 255; - green /= 255; - blue /= 255; - } - var max = mmax(red, green, blue), - min = mmin(red, green, blue), - hue, - saturation, - brightness = max; - if (min == max) { - return {h: 0, s: 0, b: max, toString: hsbtoString}; - } else { - var delta = (max - min); - saturation = delta / max; - if (red == max) { - hue = (green - blue) / delta; - } else if (green == max) { - hue = 2 + ((blue - red) / delta); - } else { - hue = 4 + ((red - green) / delta); - } - hue /= 6; - hue < 0 && hue++; - hue > 1 && hue--; - } - return {h: hue, s: saturation, b: brightness, toString: hsbtoString}; - }; - R.rgb2hsl = function (red, green, blue) { - if (green == null && R.is(red, "object") && "r" in red && "g" in red && "b" in red) { - blue = red.b; - green = red.g; - red = red.r; - } - if (green == null && R.is(red, string)) { - var clr = R.getRGB(red); - red = clr.r; - green = clr.g; - blue = clr.b; - } - if (red > 1 || green > 1 || blue > 1) { - red /= 255; - green /= 255; - blue /= 255; - } - var max = mmax(red, green, blue), - min = mmin(red, green, blue), - h, - s, - l = (max + min) / 2, - hsl; - if (min == max) { - hsl = {h: 0, s: 0, l: l}; - } else { - var delta = max - min; - s = l < .5 ? delta / (max + min) : delta / (2 - max - min); - if (red == max) { - h = (green - blue) / delta; - } else if (green == max) { - h = 2 + (blue - red) / delta; - } else { - h = 4 + (red - green) / delta; - } - h /= 6; - h < 0 && h++; - h > 1 && h--; - hsl = {h: h, s: s, l: l}; - } - hsl.toString = hsltoString; - return hsl; - }; - R._path2string = function () { - return this.join(",")[rp](p2s, "$1"); - }; - function cacher(f, scope, postprocessor) { - function newf() { - var arg = Array[proto].slice.call(arguments, 0), - args = arg[join]("\u25ba"), - cache = newf.cache = newf.cache || {}, - count = newf.count = newf.count || []; - if (cache[has](args)) { - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - count[length] >= 1e3 && delete cache[count.shift()]; - count[push](args); - cache[args] = f[apply](scope, arg); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - return newf; - } - - R.getRGB = cacher(function (colour) { - if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1}; - } - if (colour == "none") { - return {r: -1, g: -1, b: -1, hex: "none"}; - } - !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour)); - var res, - red, - green, - blue, - opacity, - t, - values, - rgb = colour.match(colourRegExp); - if (rgb) { - if (rgb[2]) { - blue = toInt(rgb[2].substring(5), 16); - green = toInt(rgb[2].substring(3, 5), 16); - red = toInt(rgb[2].substring(1, 3), 16); - } - if (rgb[3]) { - blue = toInt((t = rgb[3].charAt(3)) + t, 16); - green = toInt((t = rgb[3].charAt(2)) + t, 16); - red = toInt((t = rgb[3].charAt(1)) + t, 16); - } - if (rgb[4]) { - values = rgb[4][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - } - if (rgb[5]) { - values = rgb[5][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsb2rgb(red, green, blue, opacity); - } - if (rgb[6]) { - values = rgb[6][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsl2rgb(red, green, blue, opacity); - } - rgb = {r: red, g: green, b: blue}; - rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1); - R.is(opacity, "finite") && (rgb.opacity = opacity); - return rgb; - } - return {r: -1, g: -1, b: -1, hex: "none", error: 1}; - }, R); - R.getColor = function (value) { - var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75}, - rgb = this.hsb2rgb(start.h, start.s, start.b); - start.h += .075; - if (start.h > 1) { - start.h = 0; - start.s -= .2; - start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b}); - } - return rgb.hex; - }; - R.getColor.reset = function () { - delete this.start; - }; - // path utilities - R.parsePathString = cacher(function (pathString) { - if (!pathString) { - return null; - } - var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0}, - data = []; - if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption - data = pathClone(pathString); - } - if (!data[length]) { - Str(pathString)[rp](pathCommand, function (a, b, c) { - var params = [], - name = lowerCase.call(b); - c[rp](pathValues, function (a, b) { - b && params[push](+b); - }); - if (name == "m" && params[length] > 2) { - data[push]([b][concat](params.splice(0, 2))); - name = "l"; - b = b == "m" ? "l" : "L"; - } - while (params[length] >= paramCounts[name]) { - data[push]([b][concat](params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - }); - } - data[toString] = R._path2string; - return data; - }); - R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t, - x = pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y = pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y, - mx = p1x + 2 * t * (c1x - p1x) + t * t * (c2x - 2 * c1x + p1x), - my = p1y + 2 * t * (c1y - p1y) + t * t * (c2y - 2 * c1y + p1y), - nx = c1x + 2 * t * (c2x - c1x) + t * t * (p2x - 2 * c2x + c1x), - ny = c1y + 2 * t * (c2y - c1y) + t * t * (p2y - 2 * c2y + c1y), - ax = (1 - t) * p1x + t * c1x, - ay = (1 - t) * p1y + t * c1y, - cx = (1 - t) * c2x + t * p2x, - cy = (1 - t) * c2y + t * p2y, - alpha = (90 - math.atan((mx - nx) / (my - ny)) * 180 / PI); - (mx > nx || my < ny) && (alpha += 180); - return {x: x, y: y, m: {x: mx, y: my}, n: {x: nx, y: ny}, start: {x: ax, y: ay}, end: {x: cx, y: cy}, alpha: alpha}; - }; - var pathDimensions = cacher(function (path) { - if (!path) { - return {x: 0, y: 0, width: 0, height: 0}; - } - path = path2curve(path); - var x = 0, - y = 0, - X = [], - Y = [], - p; - for (var i = 0, ii = path[length]; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = p[1]; - y = p[2]; - X[push](x); - Y[push](y); - } else { - var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - X = X[concat](dim.min.x, dim.max.x); - Y = Y[concat](dim.min.y, dim.max.y); - x = p[5]; - y = p[6]; - } - } - var xmin = mmin[apply](0, X), - ymin = mmin[apply](0, Y); - return { - x: xmin, - y: ymin, - width: mmax[apply](0, X) - xmin, - height: mmax[apply](0, Y) - ymin - }; - }), - pathClone = function (pathArray) { - var res = []; - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - for (var i = 0, ii = pathArray[length]; i < ii; i++) { - res[i] = []; - for (var j = 0, jj = pathArray[i][length]; j < jj; j++) { - res[i][j] = pathArray[i][j]; - } - } - res[toString] = R._path2string; - return res; - }, - pathToRelative = cacher(function (pathArray) { - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = pathArray[0][1]; - y = pathArray[0][2]; - mx = x; - my = y; - start++; - res[push](["M", x, y]); - } - for (var i = start, ii = pathArray[length]; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != lowerCase.call(pa[0])) { - r[0] = lowerCase.call(pa[0]); - switch (r[0]) { - case "a": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] - x).toFixed(3); - r[7] = +(pa[7] - y).toFixed(3); - break; - case "v": - r[1] = +(pa[1] - y).toFixed(3); - break; - case "m": - mx = pa[1]; - my = pa[2]; - default: - for (var j = 1, jj = pa[length]; j < jj; j++) { - r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3); - } - } - } else { - r = res[i] = []; - if (pa[0] == "m") { - mx = pa[1] + x; - my = pa[2] + y; - } - for (var k = 0, kk = pa[length]; k < kk; k++) { - res[i][k] = pa[k]; - } - } - var len = res[i][length]; - switch (res[i][0]) { - case "z": - x = mx; - y = my; - break; - case "h": - x += +res[i][len - 1]; - break; - case "v": - y += +res[i][len - 1]; - break; - default: - x += +res[i][len - 2]; - y += +res[i][len - 1]; - } - } - res[toString] = R._path2string; - return res; - }, 0, pathClone), - pathToAbsolute = cacher(function (pathArray) { - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = +pathArray[0][1]; - y = +pathArray[0][2]; - mx = x; - my = y; - start++; - res[0] = ["M", x, y]; - } - for (var i = start, ii = pathArray[length]; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != upperCase.call(pa[0])) { - r[0] = upperCase.call(pa[0]); - switch (r[0]) { - case "A": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] + x); - r[7] = +(pa[7] + y); - break; - case "V": - r[1] = +pa[1] + y; - break; - case "H": - r[1] = +pa[1] + x; - break; - case "M": - mx = +pa[1] + x; - my = +pa[2] + y; - default: - for (var j = 1, jj = pa[length]; j < jj; j++) { - r[j] = +pa[j] + ((j % 2) ? x : y); - } - } - } else { - for (var k = 0, kk = pa[length]; k < kk; k++) { - res[i][k] = pa[k]; - } - } - switch (r[0]) { - case "Z": - x = mx; - y = my; - break; - case "H": - x = r[1]; - break; - case "V": - y = r[1]; - break; - case "M": - mx = res[i][res[i][length] - 2]; - my = res[i][res[i][length] - 1]; - default: - x = res[i][res[i][length] - 2]; - y = res[i][res[i][length] - 1]; - } - } - res[toString] = R._path2string; - return res; - }, null, pathClone), - l2c = function (x1, y1, x2, y2) { - return [x1, y1, x2, y2, x2, y2]; - }, - q2c = function (x1, y1, ax, ay, x2, y2) { - var _13 = 1 / 3, - _23 = 2 / 3; - return [ - _13 * x1 + _23 * ax, - _13 * y1 + _23 * ay, - _13 * x2 + _23 * ax, - _13 * y2 + _23 * ay, - x2, - y2 - ]; - }, - a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { - // for more information of where this math came from visit: - // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes - var _120 = PI * 120 / 180, - rad = PI / 180 * (+angle || 0), - res = [], - xy, - rotate = cacher(function (x, y, rad) { - var X = x * math.cos(rad) - y * math.sin(rad), - Y = x * math.sin(rad) + y * math.cos(rad); - return {x: X, y: Y}; - }); - if (!recursive) { - xy = rotate(x1, y1, -rad); - x1 = xy.x; - y1 = xy.y; - xy = rotate(x2, y2, -rad); - x2 = xy.x; - y2 = xy.y; - var cos = math.cos(PI / 180 * angle), - sin = math.sin(PI / 180 * angle), - x = (x1 - x2) / 2, - y = (y1 - y2) / 2; - var h = (x * x) / (rx * rx) + (y * y) / (ry * ry); - if (h > 1) { - h = math.sqrt(h); - rx = h * rx; - ry = h * ry; - } - var rx2 = rx * rx, - ry2 = ry * ry, - k = (large_arc_flag == sweep_flag ? -1 : 1) * - math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))), - cx = k * rx * y / ry + (x1 + x2) / 2, - cy = k * -ry * x / rx + (y1 + y2) / 2, - f1 = math.asin(((y1 - cy) / ry).toFixed(9)), - f2 = math.asin(((y2 - cy) / ry).toFixed(9)); - - f1 = x1 < cx ? PI - f1 : f1; - f2 = x2 < cx ? PI - f2 : f2; - f1 < 0 && (f1 = PI * 2 + f1); - f2 < 0 && (f2 = PI * 2 + f2); - if (sweep_flag && f1 > f2) { - f1 = f1 - PI * 2; - } - if (!sweep_flag && f2 > f1) { - f2 = f2 - PI * 2; - } - } else { - f1 = recursive[0]; - f2 = recursive[1]; - cx = recursive[2]; - cy = recursive[3]; - } - var df = f2 - f1; - if (abs(df) > _120) { - var f2old = f2, - x2old = x2, - y2old = y2; - f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); - x2 = cx + rx * math.cos(f2); - y2 = cy + ry * math.sin(f2); - res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); - } - df = f2 - f1; - var c1 = math.cos(f1), - s1 = math.sin(f1), - c2 = math.cos(f2), - s2 = math.sin(f2), - t = math.tan(df / 4), - hx = 4 / 3 * rx * t, - hy = 4 / 3 * ry * t, - m1 = [x1, y1], - m2 = [x1 + hx * s1, y1 - hy * c1], - m3 = [x2 + hx * s2, y2 - hy * c2], - m4 = [x2, y2]; - m2[0] = 2 * m1[0] - m2[0]; - m2[1] = 2 * m1[1] - m2[1]; - if (recursive) { - return [m2, m3, m4][concat](res); - } else { - res = [m2, m3, m4][concat](res)[join]()[split](","); - var newres = []; - for (var i = 0, ii = res[length]; i < ii; i++) { - newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; - } - return newres; - } - }, - findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t; - return { - x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y - }; - }, - curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x), - b = 2 * (c1x - p1x) - 2 * (c2x - c1x), - c = p1x - c1x, - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a, - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a, - y = [p1y, p2y], - x = [p1x, p2x], - dot; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x[push](dot.x); - y[push](dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x[push](dot.x); - y[push](dot.y); - } - a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y); - b = 2 * (c1y - p1y) - 2 * (c2y - c1y); - c = p1y - c1y; - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a; - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x[push](dot.x); - y[push](dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x[push](dot.x); - y[push](dot.y); - } - return { - min: {x: mmin[apply](0, x), y: mmin[apply](0, y)}, - max: {x: mmax[apply](0, x), y: mmax[apply](0, y)} - }; - }), - path2curve = cacher(function (path, path2) { - var p = pathToAbsolute(path), - p2 = path2 && pathToAbsolute(path2), - attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - processPath = function (path, d) { - var nx, ny; - if (!path) { - return ["C", d.x, d.y, d.x, d.y, d.x, d.y]; - } - !(path[0] in {T:1, Q:1}) && (d.qx = d.qy = null); - switch (path[0]) { - case "M": - d.X = path[1]; - d.Y = path[2]; - break; - case "A": - path = ["C"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1)))); - break; - case "S": - nx = d.x + (d.x - (d.bx || d.x)); - ny = d.y + (d.y - (d.by || d.y)); - path = ["C", nx, ny][concat](path.slice(1)); - break; - case "T": - d.qx = d.x + (d.x - (d.qx || d.x)); - d.qy = d.y + (d.y - (d.qy || d.y)); - path = ["C"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])); - break; - case "Q": - d.qx = path[1]; - d.qy = path[2]; - path = ["C"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4])); - break; - case "L": - path = ["C"][concat](l2c(d.x, d.y, path[1], path[2])); - break; - case "H": - path = ["C"][concat](l2c(d.x, d.y, path[1], d.y)); - break; - case "V": - path = ["C"][concat](l2c(d.x, d.y, d.x, path[1])); - break; - case "Z": - path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y)); - break; - } - return path; - }, - fixArc = function (pp, i) { - if (pp[i][length] > 7) { - pp[i].shift(); - var pi = pp[i]; - while (pi[length]) { - pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6))); - } - pp.splice(i, 1); - ii = mmax(p[length], p2 && p2[length] || 0); - } - }, - fixM = function (path1, path2, a1, a2, i) { - if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") { - path2.splice(i, 0, ["M", a2.x, a2.y]); - a1.bx = 0; - a1.by = 0; - a1.x = path1[i][1]; - a1.y = path1[i][2]; - ii = mmax(p[length], p2 && p2[length] || 0); - } - }; - for (var i = 0, ii = mmax(p[length], p2 && p2[length] || 0); i < ii; i++) { - p[i] = processPath(p[i], attrs); - fixArc(p, i); - p2 && (p2[i] = processPath(p2[i], attrs2)); - p2 && fixArc(p2, i); - fixM(p, p2, attrs, attrs2, i); - fixM(p2, p, attrs2, attrs, i); - var seg = p[i], - seg2 = p2 && p2[i], - seglen = seg[length], - seg2len = p2 && seg2[length]; - attrs.x = seg[seglen - 2]; - attrs.y = seg[seglen - 1]; - attrs.bx = toFloat(seg[seglen - 4]) || attrs.x; - attrs.by = toFloat(seg[seglen - 3]) || attrs.y; - attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x); - attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y); - attrs2.x = p2 && seg2[seg2len - 2]; - attrs2.y = p2 && seg2[seg2len - 1]; - } - return p2 ? [p, p2] : p; - }, null, pathClone), - parseDots = cacher(function (gradient) { - var dots = []; - for (var i = 0, ii = gradient[length]; i < ii; i++) { - var dot = {}, - par = gradient[i].match(/^([^:]*):?([\d\.]*)/); - dot.color = R.getRGB(par[1]); - if (dot.color.error) { - return null; - } - dot.color = dot.color.hex; - par[2] && (dot.offset = par[2] + "%"); - dots[push](dot); - } - for (i = 1, ii = dots[length] - 1; i < ii; i++) { - if (!dots[i].offset) { - var start = toFloat(dots[i - 1].offset || 0), - end = 0; - for (var j = i + 1; j < ii; j++) { - if (dots[j].offset) { - end = dots[j].offset; - break; - } - } - if (!end) { - end = 100; - j = ii; - } - end = toFloat(end); - var d = (end - start) / (j - i + 1); - for (; i < j; i++) { - start += d; - dots[i].offset = start + "%"; - } - } - } - return dots; - }), - getContainer = function (x, y, w, h) { - var container; - if (R.is(x, string) || R.is(x, "object")) { - container = R.is(x, string) ? doc.getElementById(x) : x; - if (container.tagName) { - if (y == null) { - return { - container: container, - width: container.style.pixelWidth || container.offsetWidth, - height: container.style.pixelHeight || container.offsetHeight - }; - } else { - return {container: container, width: y, height: w}; - } - } - } else { - return {container: 1, x: x, y: y, width: w, height: h}; - } - }, - plugins = function (con, add) { - var that = this; - for (var prop in add) { - if (add[has](prop) && !(prop in con)) { - switch (typeof add[prop]) { - case "function": - (function (f) { - con[prop] = con === that ? f : function () { return f[apply](that, arguments); }; - })(add[prop]); - break; - case "object": - con[prop] = con[prop] || {}; - plugins.call(this, con[prop], add[prop]); - break; - default: - con[prop] = add[prop]; - break; - } - } - } - }, - tear = function (el, paper) { - el == paper.top && (paper.top = el.prev); - el == paper.bottom && (paper.bottom = el.next); - el.next && (el.next.prev = el.prev); - el.prev && (el.prev.next = el.next); - }, - tofront = function (el, paper) { - if (paper.top === el) { - return; - } - tear(el, paper); - el.next = null; - el.prev = paper.top; - paper.top.next = el; - paper.top = el; - }, - toback = function (el, paper) { - if (paper.bottom === el) { - return; - } - tear(el, paper); - el.next = paper.bottom; - el.prev = null; - paper.bottom.prev = el; - paper.bottom = el; - }, - insertafter = function (el, el2, paper) { - tear(el, paper); - el2 == paper.top && (paper.top = el); - el2.next && (el2.next.prev = el); - el.next = el2.next; - el.prev = el2; - el2.next = el; - }, - insertbefore = function (el, el2, paper) { - tear(el, paper); - el2 == paper.bottom && (paper.bottom = el); - el2.prev && (el2.prev.next = el); - el.prev = el2.prev; - el2.prev = el; - el.next = el2; - }, - removed = function (methodname) { - return function () { - throw new Error("Rapha\xebl: you are calling to method \u201c" + methodname + "\u201d of removed object"); - }; - }; - R.pathToRelative = pathToRelative; - // SVG - if (R.svg) { - paperproto.svgns = "http://www.w3.org/2000/svg"; - paperproto.xlink = "http://www.w3.org/1999/xlink"; - round = function (num) { - return +num + (~~num === num) * .5; - }; - var $ = function (el, attr) { - if (attr) { - for (var key in attr) { - if (attr[has](key)) { - el[setAttribute](key, Str(attr[key])); - } - } - } else { - el = doc.createElementNS(paperproto.svgns, el); - el.style.webkitTapHighlightColor = "rgba(0,0,0,0)"; - return el; - } - }; - R[toString] = function () { - return "Your browser supports SVG.\nYou are running Rapha\xebl " + this.version; - }; - var thePath = function (pathString, SVG) { - var el = $("path"); - SVG.canvas && SVG.canvas[appendChild](el); - var p = new Element(el, SVG); - p.type = "path"; - setFillAndStroke(p, {fill: "none", stroke: "#000", path: pathString}); - return p; - }; - var addGradientFill = function (o, gradient, SVG) { - var type = "linear", - fx = .5, fy = .5, - s = o.style; - gradient = Str(gradient)[rp](radial_gradient, function (all, _fx, _fy) { - type = "radial"; - if (_fx && _fy) { - fx = toFloat(_fx); - fy = toFloat(_fy); - var dir = ((fy > .5) * 2 - 1); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && - (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) && - fy != .5 && - (fy = fy.toFixed(5) - 1e-5 * dir); - } - return E; - }); - gradient = gradient[split](/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - var vector = [0, 0, math.cos(angle * PI / 180), math.sin(angle * PI / 180)], - max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1); - vector[2] *= max; - vector[3] *= max; - if (vector[2] < 0) { - vector[0] = -vector[2]; - vector[2] = 0; - } - if (vector[3] < 0) { - vector[1] = -vector[3]; - vector[3] = 0; - } - } - var dots = parseDots(gradient); - if (!dots) { - return null; - } - var id = o.getAttribute(fillString); - id = id.match(/^url\(#(.*)\)$/); - id && SVG.defs.removeChild(doc.getElementById(id[1])); - - var el = $(type + "Gradient"); - el.id = createUUID(); - $(el, type == "radial" ? {fx: fx, fy: fy} : {x1: vector[0], y1: vector[1], x2: vector[2], y2: vector[3]}); - SVG.defs[appendChild](el); - for (var i = 0, ii = dots[length]; i < ii; i++) { - var stop = $("stop"); - $(stop, { - offset: dots[i].offset ? dots[i].offset : !i ? "0%" : "100%", - "stop-color": dots[i].color || "#fff" - }); - el[appendChild](stop); - } - $(o, { - fill: "url(#" + el.id + ")", - opacity: 1, - "fill-opacity": 1 - }); - s.fill = E; - s.opacity = 1; - s.fillOpacity = 1; - return 1; - }; - var updatePosition = function (o) { - var bbox = o.getBBox(); - $(o.pattern, {patternTransform: R.format("translate({0},{1})", bbox.x, bbox.y)}); - }; - var setFillAndStroke = function (o, params) { - var dasharray = { - "": [0], - "none": [0], - "-": [3, 1], - ".": [1, 1], - "-.": [3, 1, 1, 1], - "-..": [3, 1, 1, 1, 1, 1], - ". ": [1, 3], - "- ": [4, 3], - "--": [8, 3], - "- .": [4, 3, 1, 3], - "--.": [8, 3, 1, 3], - "--..": [8, 3, 1, 3, 1, 3] - }, - node = o.node, - attrs = o.attrs, - rot = o.rotate(), - addDashes = function (o, value) { - value = dasharray[lowerCase.call(value)]; - if (value) { - var width = o.attrs["stroke-width"] || "1", - butt = {round: width, square: width, butt: 0}[o.attrs["stroke-linecap"] || params["stroke-linecap"]] || 0, - dashes = []; - var i = value[length]; - while (i--) { - dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt; - } - $(node, {"stroke-dasharray": dashes[join](",")}); - } - }; - params[has]("rotation") && (rot = params.rotation); - var rotxy = Str(rot)[split](separator); - if (!(rotxy.length - 1)) { - rotxy = null; - } else { - rotxy[1] = +rotxy[1]; - rotxy[2] = +rotxy[2]; - } - toFloat(rot) && o.rotate(0, true); - for (var att in params) { - if (params[has](att)) { - if (!availableAttrs[has](att)) { - continue; - } - var value = params[att]; - attrs[att] = value; - switch (att) { - case "blur": - o.blur(value); - break; - case "rotation": - o.rotate(value, true); - break; - case "href": - case "title": - case "target": - var pn = node.parentNode; - if (lowerCase.call(pn.tagName) != "a") { - var hl = $("a"); - pn.insertBefore(hl, node); - hl[appendChild](node); - pn = hl; - } - if (att == "target" && value == "blank") { - pn.setAttributeNS(o.paper.xlink, "show", "new"); - } else { - pn.setAttributeNS(o.paper.xlink, att, value); - } - break; - case "cursor": - node.style.cursor = value; - break; - case "clip-rect": - var rect = Str(value)[split](separator); - if (rect[length] == 4) { - o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode); - var el = $("clipPath"), - rc = $("rect"); - el.id = createUUID(); - $(rc, { - x: rect[0], - y: rect[1], - width: rect[2], - height: rect[3] - }); - el[appendChild](rc); - o.paper.defs[appendChild](el); - $(node, {"clip-path": "url(#" + el.id + ")"}); - o.clip = rc; - } - if (!value) { - var clip = doc.getElementById(node.getAttribute("clip-path")[rp](/(^url\(#|\)$)/g, E)); - clip && clip.parentNode.removeChild(clip); - $(node, {"clip-path": E}); - delete o.clip; - } - break; - case "path": - if (o.type == "path") { - $(node, {d: value ? attrs.path = pathToAbsolute(value) : "M0,0"}); - } - break; - case "width": - node[setAttribute](att, value); - if (attrs.fx) { - att = "x"; - value = attrs.x; - } else { - break; - } - case "x": - if (attrs.fx) { - value = -attrs.x - (attrs.width || 0); - } - case "rx": - if (att == "rx" && o.type == "rect") { - break; - } - case "cx": - rotxy && (att == "x" || att == "cx") && (rotxy[1] += value - attrs[att]); - node[setAttribute](att, value); - o.pattern && updatePosition(o); - break; - case "height": - node[setAttribute](att, value); - if (attrs.fy) { - att = "y"; - value = attrs.y; - } else { - break; - } - case "y": - if (attrs.fy) { - value = -attrs.y - (attrs.height || 0); - } - case "ry": - if (att == "ry" && o.type == "rect") { - break; - } - case "cy": - rotxy && (att == "y" || att == "cy") && (rotxy[2] += value - attrs[att]); - node[setAttribute](att, value); - o.pattern && updatePosition(o); - break; - case "r": - if (o.type == "rect") { - $(node, {rx: value, ry: value}); - } else { - node[setAttribute](att, value); - } - break; - case "src": - if (o.type == "image") { - node.setAttributeNS(o.paper.xlink, "href", value); - } - break; - case "stroke-width": - node.style.strokeWidth = value; - // Need following line for Firefox - node[setAttribute](att, value); - if (attrs["stroke-dasharray"]) { - addDashes(o, attrs["stroke-dasharray"]); - } - break; - case "stroke-dasharray": - addDashes(o, value); - break; - case "translation": - var xy = Str(value)[split](separator); - xy[0] = +xy[0] || 0; - xy[1] = +xy[1] || 0; - if (rotxy) { - rotxy[1] += xy[0]; - rotxy[2] += xy[1]; - } - translate.call(o, xy[0], xy[1]); - break; - case "scale": - xy = Str(value)[split](separator); - o.scale(+xy[0] || 1, +xy[1] || +xy[0] || 1, isNaN(toFloat(xy[2])) ? null : +xy[2], isNaN(toFloat(xy[3])) ? null : +xy[3]); - break; - case fillString: - var isURL = Str(value).match(ISURL); - if (isURL) { - el = $("pattern"); - var ig = $("image"); - el.id = createUUID(); - $(el, {x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1}); - $(ig, {x: 0, y: 0}); - ig.setAttributeNS(o.paper.xlink, "href", isURL[1]); - el[appendChild](ig); - - var img = doc.createElement("img"); - img.style.cssText = "position:absolute;left:-9999em;top-9999em"; - img.onload = function () { - $(el, {width: this.offsetWidth, height: this.offsetHeight}); - $(ig, {width: this.offsetWidth, height: this.offsetHeight}); - doc.body.removeChild(this); - o.paper.safari(); - }; - doc.body[appendChild](img); - img.src = isURL[1]; - o.paper.defs[appendChild](el); - node.style.fill = "url(#" + el.id + ")"; - $(node, {fill: "url(#" + el.id + ")"}); - o.pattern = el; - o.pattern && updatePosition(o); - break; - } - var clr = R.getRGB(value); - if (!clr.error) { - delete params.gradient; - delete attrs.gradient; - !R.is(attrs.opacity, "undefined") && - R.is(params.opacity, "undefined") && - $(node, {opacity: attrs.opacity}); - !R.is(attrs["fill-opacity"], "undefined") && - R.is(params["fill-opacity"], "undefined") && - $(node, {"fill-opacity": attrs["fill-opacity"]}); - } else if ((({circle: 1, ellipse: 1})[has](o.type) || Str(value).charAt() != "r") && addGradientFill(node, value, o.paper)) { - attrs.gradient = value; - attrs.fill = "none"; - break; - } - clr[has]("opacity") && $(node, {"fill-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - case "stroke": - clr = R.getRGB(value); - node[setAttribute](att, clr.hex); - att == "stroke" && clr[has]("opacity") && $(node, {"stroke-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - break; - case "gradient": - (({circle: 1, ellipse: 1})[has](o.type) || Str(value).charAt() != "r") && addGradientFill(node, value, o.paper); - break; - case "opacity": - if (attrs.gradient && !attrs[has]("stroke-opacity")) { - $(node, {"stroke-opacity": value > 1 ? value / 100 : value}); - } - // fall - case "fill-opacity": - if (attrs.gradient) { - var gradient = doc.getElementById(node.getAttribute(fillString)[rp](/^url\(#|\)$/g, E)); - if (gradient) { - var stops = gradient.getElementsByTagName("stop"); - stops[stops[length] - 1][setAttribute]("stop-opacity", value); - } - break; - } - default: - att == "font-size" && (value = toInt(value, 10) + "px"); - var cssrule = att[rp](/(\-.)/g, function (w) { - return upperCase.call(w.substring(1)); - }); - node.style[cssrule] = value; - // Need following line for Firefox - node[setAttribute](att, value); - break; - } - } - } - - tuneText(o, params); - if (rotxy) { - o.rotate(rotxy.join(S)); - } else { - toFloat(rot) && o.rotate(rot, true); - } - }; - var leading = 1.2, - tuneText = function (el, params) { - if (el.type != "text" || !(params[has]("text") || params[has]("font") || params[has]("font-size") || params[has]("x") || params[has]("y"))) { - return; - } - var a = el.attrs, - node = el.node, - fontSize = node.firstChild ? toInt(doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue("font-size"), 10) : 10; - - if (params[has]("text")) { - a.text = params.text; - while (node.firstChild) { - node.removeChild(node.firstChild); - } - var texts = Str(params.text)[split]("\n"); - for (var i = 0, ii = texts[length]; i < ii; i++) if (texts[i]) { - var tspan = $("tspan"); - i && $(tspan, {dy: fontSize * leading, x: a.x}); - tspan[appendChild](doc.createTextNode(texts[i])); - node[appendChild](tspan); - } - } else { - texts = node.getElementsByTagName("tspan"); - for (i = 0, ii = texts[length]; i < ii; i++) { - i && $(texts[i], {dy: fontSize * leading, x: a.x}); - } - } - $(node, {y: a.y}); - var bb = el.getBBox(), - dif = a.y - (bb.y + bb.height / 2); - dif && R.is(dif, "finite") && $(node, {y: a.y + dif}); - }, - Element = function (node, svg) { - var X = 0, - Y = 0; - this[0] = node; - this.id = R._oid++; - this.node = node; - node.raphael = this; - this.paper = svg; - this.attrs = this.attrs || {}; - this.transformations = []; // rotate, translate, scale - this._ = { - tx: 0, - ty: 0, - rt: {deg: 0, cx: 0, cy: 0}, - sx: 1, - sy: 1 - }; - !svg.bottom && (svg.bottom = this); - this.prev = svg.top; - svg.top && (svg.top.next = this); - svg.top = this; - this.next = null; - }; - var elproto = Element[proto]; - Element[proto].rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - if (deg == null) { - if (this._.rt.cx) { - return [this._.rt.deg, this._.rt.cx, this._.rt.cy][join](S); - } - return this._.rt.deg; - } - var bbox = this.getBBox(); - deg = Str(deg)[split](separator); - if (deg[length] - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - if (cx != null && cx !== false) { - this._.rt.deg = deg; - } else { - this._.rt.deg += deg; - } - (cy == null) && (cx = null); - this._.rt.cx = cx; - this._.rt.cy = cy; - cx = cx == null ? bbox.x + bbox.width / 2 : cx; - cy = cy == null ? bbox.y + bbox.height / 2 : cy; - if (this._.rt.deg) { - this.transformations[0] = R.format("rotate({0} {1} {2})", this._.rt.deg, cx, cy); - this.clip && $(this.clip, {transform: R.format("rotate({0} {1} {2})", -this._.rt.deg, cx, cy)}); - } else { - this.transformations[0] = E; - this.clip && $(this.clip, {transform: E}); - } - $(this.node, {transform: this.transformations[join](S)}); - return this; - }; - Element[proto].hide = function () { - !this.removed && (this.node.style.display = "none"); - return this; - }; - Element[proto].show = function () { - !this.removed && (this.node.style.display = ""); - return this; - }; - Element[proto].remove = function () { - if (this.removed) { - return; - } - tear(this, this.paper); - this.node.parentNode.removeChild(this.node); - for (var i in this) { - delete this[i]; - } - this.removed = true; - }; - Element[proto].getBBox = function () { - if (this.removed) { - return this; - } - if (this.type == "path") { - return pathDimensions(this.attrs.path); - } - if (this.node.style.display == "none") { - this.show(); - var hide = true; - } - var bbox = {}; - try { - bbox = this.node.getBBox(); - } catch(e) { - // Firefox 3.0.x plays badly here - } finally { - bbox = bbox || {}; - } - if (this.type == "text") { - bbox = {x: bbox.x, y: Infinity, width: 0, height: 0}; - for (var i = 0, ii = this.node.getNumberOfChars(); i < ii; i++) { - var bb = this.node.getExtentOfChar(i); - (bb.y < bbox.y) && (bbox.y = bb.y); - (bb.y + bb.height - bbox.y > bbox.height) && (bbox.height = bb.y + bb.height - bbox.y); - (bb.x + bb.width - bbox.x > bbox.width) && (bbox.width = bb.x + bb.width - bbox.x); - } - } - hide && this.hide(); - return bbox; - }; - Element[proto].attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var i in this.attrs) if (this.attrs[has](i)) { - res[i] = this.attrs[i]; - } - this._.rt.deg && (res.rotation = this.rotate()); - (this._.sx != 1 || this._.sy != 1) && (res.scale = this.scale()); - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - return res; - } - if (value == null && R.is(name, string)) { - if (name == "translation") { - return translate.call(this); - } - if (name == "rotation") { - return this.rotate(); - } - if (name == "scale") { - return this.scale(); - } - if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - return this.attrs[name]; - } - if (value == null && R.is(name, array)) { - var values = {}; - for (var j = 0, jj = name.length; j < jj; j++) { - values[name[j]] = this.attr(name[j]); - } - return values; - } - if (value != null) { - var params = {}; - params[name] = value; - } else if (name != null && R.is(name, "object")) { - params = name; - } - for (var key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [][concat](params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - setFillAndStroke(this, params); - return this; - }; - Element[proto].toFront = function () { - if (this.removed) { - return this; - } - this.node.parentNode[appendChild](this.node); - var svg = this.paper; - svg.top != this && tofront(this, svg); - return this; - }; - Element[proto].toBack = function () { - if (this.removed) { - return this; - } - if (this.node.parentNode.firstChild != this.node) { - this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild); - toback(this, this.paper); - var svg = this.paper; - } - return this; - }; - Element[proto].insertAfter = function (element) { - if (this.removed) { - return this; - } - var node = element.node || element[element.length - 1].node; - if (node.nextSibling) { - node.parentNode.insertBefore(this.node, node.nextSibling); - } else { - node.parentNode[appendChild](this.node); - } - insertafter(this, element, this.paper); - return this; - }; - Element[proto].insertBefore = function (element) { - if (this.removed) { - return this; - } - var node = element.node || element[0].node; - node.parentNode.insertBefore(this.node, node); - insertbefore(this, element, this.paper); - return this; - }; - Element[proto].blur = function (size) { - // Experimental. No Safari support. Use it on your own risk. - var t = this; - if (+size !== 0) { - var fltr = $("filter"), - blur = $("feGaussianBlur"); - t.attrs.blur = size; - fltr.id = createUUID(); - $(blur, {stdDeviation: +size || 1.5}); - fltr.appendChild(blur); - t.paper.defs.appendChild(fltr); - t._blur = fltr; - $(t.node, {filter: "url(#" + fltr.id + ")"}); - } else { - if (t._blur) { - t._blur.parentNode.removeChild(t._blur); - delete t._blur; - delete t.attrs.blur; - } - t.node.removeAttribute("filter"); - } - }; - var theCircle = function (svg, x, y, r) { - var el = $("circle"); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, r: r, fill: "none", stroke: "#000"}; - res.type = "circle"; - $(el, res.attrs); - return res; - }, - theRect = function (svg, x, y, w, h, r) { - var el = $("rect"); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, r: r || 0, rx: r || 0, ry: r || 0, fill: "none", stroke: "#000"}; - res.type = "rect"; - $(el, res.attrs); - return res; - }, - theEllipse = function (svg, x, y, rx, ry) { - var el = $("ellipse"); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000"}; - res.type = "ellipse"; - $(el, res.attrs); - return res; - }, - theImage = function (svg, src, x, y, w, h) { - var el = $("image"); - $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: "none"}); - el.setAttributeNS(svg.xlink, "href", src); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, src: src}; - res.type = "image"; - return res; - }, - theText = function (svg, x, y, text) { - var el = $("text"); - $(el, {x: x, y: y, "text-anchor": "middle"}); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, "text-anchor": "middle", text: text, font: availableAttrs.font, stroke: "none", fill: "#000"}; - res.type = "text"; - setFillAndStroke(res, res.attrs); - return res; - }, - setSize = function (width, height) { - this.width = width || this.width; - this.height = height || this.height; - this.canvas[setAttribute]("width", this.width); - this.canvas[setAttribute]("height", this.height); - return this; - }, - create = function () { - var con = getContainer[apply](0, arguments), - container = con && con.container, - x = con.x, - y = con.y, - width = con.width, - height = con.height; - if (!container) { - throw new Error("SVG container not found."); - } - var cnvs = $("svg"); - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - $(cnvs, { - xmlns: "http://www.w3.org/2000/svg", - version: 1.1, - width: width, - height: height - }); - if (container == 1) { - cnvs.style.cssText = "position:absolute;left:" + x + "px;top:" + y + "px"; - doc.body[appendChild](cnvs); - } else { - if (container.firstChild) { - container.insertBefore(cnvs, container.firstChild); - } else { - container[appendChild](cnvs); - } - } - container = new Paper; - container.width = width; - container.height = height; - container.canvas = cnvs; - plugins.call(container, container, R.fn); - container.clear(); - return container; - }; - paperproto.clear = function () { - var c = this.canvas; - while (c.firstChild) { - c.removeChild(c.firstChild); - } - this.bottom = this.top = null; - (this.desc = $("desc"))[appendChild](doc.createTextNode("Created with Rapha\xebl")); - c[appendChild](this.desc); - c[appendChild](this.defs = $("defs")); - }; - paperproto.remove = function () { - this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = removed(i); - } - }; - } - - // VML - if (R.vml) { - var map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"}, - bites = /([clmz]),?([^clmz]*)/gi, - blurregexp = / progid:\S+Blur\([^\)]+\)/g, - val = /-?[^,\s-]+/g, - coordsize = 1e3 + S + 1e3, - zoom = 10, - pathlike = {path: 1, rect: 1}, - path2vml = function (path) { - var total = /[ahqstv]/ig, - command = pathToAbsolute; - Str(path).match(total) && (command = path2curve); - total = /[clmz]/g; - if (command == pathToAbsolute && !Str(path).match(total)) { - var res = Str(path)[rp](bites, function (all, command, args) { - var vals = [], - isMove = lowerCase.call(command) == "m", - res = map[command]; - args[rp](val, function (value) { - if (isMove && vals[length] == 2) { - res += vals + map[command == "m" ? "l" : "L"]; - vals = []; - } - vals[push](round(value * zoom)); - }); - return res + vals; - }); - return res; - } - var pa = command(path), p, r; - res = []; - for (var i = 0, ii = pa[length]; i < ii; i++) { - p = pa[i]; - r = lowerCase.call(pa[i][0]); - r == "z" && (r = "x"); - for (var j = 1, jj = p[length]; j < jj; j++) { - r += round(p[j] * zoom) + (j != jj - 1 ? "," : E); - } - res[push](r); - } - return res[join](S); - }; - - R[toString] = function () { - return "Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl " + this.version; - }; - thePath = function (pathString, vml) { - var g = createNode("group"); - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = vml.coordsize; - g.coordorigin = vml.coordorigin; - var el = createNode("shape"), ol = el.style; - ol.width = vml.width + "px"; - ol.height = vml.height + "px"; - el.coordsize = coordsize; - el.coordorigin = vml.coordorigin; - g[appendChild](el); - var p = new Element(el, g, vml), - attr = {fill: "none", stroke: "#000"}; - pathString && (attr.path = pathString); - p.type = "path"; - p.path = []; - p.Path = E; - setFillAndStroke(p, attr); - vml.canvas[appendChild](g); - return p; - }; - setFillAndStroke = function (o, params) { - o.attrs = o.attrs || {}; - var node = o.node, - a = o.attrs, - s = node.style, - xy, - newpath = (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.r != a.r) && o.type == "rect", - res = o; - - for (var par in params) if (params[has](par)) { - a[par] = params[par]; - } - if (newpath) { - a.path = rectPath(a.x, a.y, a.width, a.height, a.r); - o.X = a.x; - o.Y = a.y; - o.W = a.width; - o.H = a.height; - } - params.href && (node.href = params.href); - params.title && (node.title = params.title); - params.target && (node.target = params.target); - params.cursor && (s.cursor = params.cursor); - "blur" in params && o.blur(params.blur); - if (params.path && o.type == "path" || newpath) { - node.path = path2vml(a.path); - } - if (params.rotation != null) { - o.rotate(params.rotation, true); - } - if (params.translation) { - xy = Str(params.translation)[split](separator); - translate.call(o, xy[0], xy[1]); - if (o._.rt.cx != null) { - o._.rt.cx +=+ xy[0]; - o._.rt.cy +=+ xy[1]; - o.setBox(o.attrs, xy[0], xy[1]); - } - } - if (params.scale) { - xy = Str(params.scale)[split](separator); - o.scale(+xy[0] || 1, +xy[1] || +xy[0] || 1, +xy[2] || null, +xy[3] || null); - } - if ("clip-rect" in params) { - var rect = Str(params["clip-rect"])[split](separator); - if (rect[length] == 4) { - rect[2] = +rect[2] + (+rect[0]); - rect[3] = +rect[3] + (+rect[1]); - var div = node.clipRect || doc.createElement("div"), - dstyle = div.style, - group = node.parentNode; - dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect); - if (!node.clipRect) { - dstyle.position = "absolute"; - dstyle.top = 0; - dstyle.left = 0; - dstyle.width = o.paper.width + "px"; - dstyle.height = o.paper.height + "px"; - group.parentNode.insertBefore(div, group); - div[appendChild](group); - node.clipRect = div; - } - } - if (!params["clip-rect"]) { - node.clipRect && (node.clipRect.style.clip = E); - } - } - if (o.type == "image" && params.src) { - node.src = params.src; - } - if (o.type == "image" && params.opacity) { - node.filterOpacity = ms + ".Alpha(opacity=" + (params.opacity * 100) + ")"; - s.filter = (node.filterMatrix || E) + (node.filterOpacity || E); - } - params.font && (s.font = params.font); - params["font-family"] && (s.fontFamily = '"' + params["font-family"][split](",")[0][rp](/^['"]+|['"]+$/g, E) + '"'); - params["font-size"] && (s.fontSize = params["font-size"]); - params["font-weight"] && (s.fontWeight = params["font-weight"]); - params["font-style"] && (s.fontStyle = params["font-style"]); - if (params.opacity != null || - params["stroke-width"] != null || - params.fill != null || - params.stroke != null || - params["stroke-width"] != null || - params["stroke-opacity"] != null || - params["fill-opacity"] != null || - params["stroke-dasharray"] != null || - params["stroke-miterlimit"] != null || - params["stroke-linejoin"] != null || - params["stroke-linecap"] != null) { - node = o.shape || node; - var fill = (node.getElementsByTagName(fillString) && node.getElementsByTagName(fillString)[0]), - newfill = false; - !fill && (newfill = fill = createNode(fillString)); - if ("fill-opacity" in params || "opacity" in params) { - var opacity = ((+a["fill-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1); - opacity = mmin(mmax(opacity, 0), 1); - fill.opacity = opacity; - } - params.fill && (fill.on = true); - if (fill.on == null || params.fill == "none") { - fill.on = false; - } - if (fill.on && params.fill) { - var isURL = params.fill.match(ISURL); - if (isURL) { - fill.src = isURL[1]; - fill.type = "tile"; - } else { - fill.color = R.getRGB(params.fill).hex; - fill.src = E; - fill.type = "solid"; - if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != "r") && addGradientFill(res, params.fill)) { - a.fill = "none"; - a.gradient = params.fill; - } - } - } - newfill && node[appendChild](fill); - var stroke = (node.getElementsByTagName("stroke") && node.getElementsByTagName("stroke")[0]), - newstroke = false; - !stroke && (newstroke = stroke = createNode("stroke")); - if ((params.stroke && params.stroke != "none") || - params["stroke-width"] || - params["stroke-opacity"] != null || - params["stroke-dasharray"] || - params["stroke-miterlimit"] || - params["stroke-linejoin"] || - params["stroke-linecap"]) { - stroke.on = true; - } - (params.stroke == "none" || stroke.on == null || params.stroke == 0 || params["stroke-width"] == 0) && (stroke.on = false); - var strokeColor = R.getRGB(params.stroke); - stroke.on && params.stroke && (stroke.color = strokeColor.hex); - opacity = ((+a["stroke-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1); - var width = (toFloat(params["stroke-width"]) || 1) * .75; - opacity = mmin(mmax(opacity, 0), 1); - params["stroke-width"] == null && (width = a["stroke-width"]); - params["stroke-width"] && (stroke.weight = width); - width && width < 1 && (opacity *= width) && (stroke.weight = 1); - stroke.opacity = opacity; - - params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter"); - stroke.miterlimit = params["stroke-miterlimit"] || 8; - params["stroke-linecap"] && (stroke.endcap = params["stroke-linecap"] == "butt" ? "flat" : params["stroke-linecap"] == "square" ? "square" : "round"); - if (params["stroke-dasharray"]) { - var dasharray = { - "-": "shortdash", - ".": "shortdot", - "-.": "shortdashdot", - "-..": "shortdashdotdot", - ". ": "dot", - "- ": "dash", - "--": "longdash", - "- .": "dashdot", - "--.": "longdashdot", - "--..": "longdashdotdot" - }; - stroke.dashstyle = dasharray[has](params["stroke-dasharray"]) ? dasharray[params["stroke-dasharray"]] : E; - } - newstroke && node[appendChild](stroke); - } - if (res.type == "text") { - s = res.paper.span.style; - a.font && (s.font = a.font); - a["font-family"] && (s.fontFamily = a["font-family"]); - a["font-size"] && (s.fontSize = a["font-size"]); - a["font-weight"] && (s.fontWeight = a["font-weight"]); - a["font-style"] && (s.fontStyle = a["font-style"]); - res.node.string && (res.paper.span.innerHTML = Str(res.node.string)[rp](/")); - res.W = a.w = res.paper.span.offsetWidth; - res.H = a.h = res.paper.span.offsetHeight; - res.X = a.x; - res.Y = a.y + round(res.H / 2); - - // text-anchor emulationm - switch (a["text-anchor"]) { - case "start": - res.node.style["v-text-align"] = "left"; - res.bbx = round(res.W / 2); - break; - case "end": - res.node.style["v-text-align"] = "right"; - res.bbx = -round(res.W / 2); - break; - default: - res.node.style["v-text-align"] = "center"; - break; - } - } - }; - addGradientFill = function (o, gradient) { - o.attrs = o.attrs || {}; - var attrs = o.attrs, - fill, - type = "linear", - fxfy = ".5 .5"; - o.attrs.gradient = gradient; - gradient = Str(gradient)[rp](radial_gradient, function (all, fx, fy) { - type = "radial"; - if (fx && fy) { - fx = toFloat(fx); - fy = toFloat(fy); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5); - fxfy = fx + S + fy; - } - return E; - }); - gradient = gradient[split](/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - } - var dots = parseDots(gradient); - if (!dots) { - return null; - } - o = o.shape || o.node; - fill = o.getElementsByTagName(fillString)[0] || createNode(fillString); - !fill.parentNode && o.appendChild(fill); - if (dots[length]) { - fill.on = true; - fill.method = "none"; - fill.color = dots[0].color; - fill.color2 = dots[dots[length] - 1].color; - var clrs = []; - for (var i = 0, ii = dots[length]; i < ii; i++) { - dots[i].offset && clrs[push](dots[i].offset + S + dots[i].color); - } - fill.colors && (fill.colors.value = clrs[length] ? clrs[join]() : "0% " + fill.color); - if (type == "radial") { - fill.type = "gradientradial"; - fill.focus = "100%"; - fill.focussize = fxfy; - fill.focusposition = fxfy; - } else { - fill.type = "gradient"; - fill.angle = (270 - angle) % 360; - } - } - return 1; - }; - Element = function (node, group, vml) { - var Rotation = 0, - RotX = 0, - RotY = 0, - Scale = 1; - this[0] = node; - this.id = R._oid++; - this.node = node; - node.raphael = this; - this.X = 0; - this.Y = 0; - this.attrs = {}; - this.Group = group; - this.paper = vml; - this._ = { - tx: 0, - ty: 0, - rt: {deg:0}, - sx: 1, - sy: 1 - }; - !vml.bottom && (vml.bottom = this); - this.prev = vml.top; - vml.top && (vml.top.next = this); - vml.top = this; - this.next = null; - }; - elproto = Element[proto]; - elproto.rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - if (deg == null) { - if (this._.rt.cx) { - return [this._.rt.deg, this._.rt.cx, this._.rt.cy][join](S); - } - return this._.rt.deg; - } - deg = Str(deg)[split](separator); - if (deg[length] - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - if (cx != null) { - this._.rt.deg = deg; - } else { - this._.rt.deg += deg; - } - cy == null && (cx = null); - this._.rt.cx = cx; - this._.rt.cy = cy; - this.setBox(this.attrs, cx, cy); - this.Group.style.rotation = this._.rt.deg; - // gradient fix for rotation. TODO - // var fill = (this.shape || this.node).getElementsByTagName(fillString); - // fill = fill[0] || {}; - // var b = ((360 - this._.rt.deg) - 270) % 360; - // !R.is(fill.angle, "undefined") && (fill.angle = b); - return this; - }; - elproto.setBox = function (params, cx, cy) { - if (this.removed) { - return this; - } - var gs = this.Group.style, - os = (this.shape && this.shape.style) || this.node.style; - params = params || {}; - for (var i in params) if (params[has](i)) { - this.attrs[i] = params[i]; - } - cx = cx || this._.rt.cx; - cy = cy || this._.rt.cy; - var attr = this.attrs, - x, - y, - w, - h; - switch (this.type) { - case "circle": - x = attr.cx - attr.r; - y = attr.cy - attr.r; - w = h = attr.r * 2; - break; - case "ellipse": - x = attr.cx - attr.rx; - y = attr.cy - attr.ry; - w = attr.rx * 2; - h = attr.ry * 2; - break; - case "image": - x = +attr.x; - y = +attr.y; - w = attr.width || 0; - h = attr.height || 0; - break; - case "text": - this.textpath.v = ["m", round(attr.x), ", ", round(attr.y - 2), "l", round(attr.x) + 1, ", ", round(attr.y - 2)][join](E); - x = attr.x - round(this.W / 2); - y = attr.y - this.H / 2; - w = this.W; - h = this.H; - break; - case "rect": - case "path": - if (!this.attrs.path) { - x = 0; - y = 0; - w = this.paper.width; - h = this.paper.height; - } else { - var dim = pathDimensions(this.attrs.path); - x = dim.x; - y = dim.y; - w = dim.width; - h = dim.height; - } - break; - default: - x = 0; - y = 0; - w = this.paper.width; - h = this.paper.height; - break; - } - cx = (cx == null) ? x + w / 2 : cx; - cy = (cy == null) ? y + h / 2 : cy; - var left = cx - this.paper.width / 2, - top = cy - this.paper.height / 2, t; - gs.left != (t = left + "px") && (gs.left = t); - gs.top != (t = top + "px") && (gs.top = t); - this.X = pathlike[has](this.type) ? -left : x; - this.Y = pathlike[has](this.type) ? -top : y; - this.W = w; - this.H = h; - if (pathlike[has](this.type)) { - os.left != (t = -left * zoom + "px") && (os.left = t); - os.top != (t = -top * zoom + "px") && (os.top = t); - } else if (this.type == "text") { - os.left != (t = -left + "px") && (os.left = t); - os.top != (t = -top + "px") && (os.top = t); - } else { - gs.width != (t = this.paper.width + "px") && (gs.width = t); - gs.height != (t = this.paper.height + "px") && (gs.height = t); - os.left != (t = x - left + "px") && (os.left = t); - os.top != (t = y - top + "px") && (os.top = t); - os.width != (t = w + "px") && (os.width = t); - os.height != (t = h + "px") && (os.height = t); - } - }; - elproto.hide = function () { - !this.removed && (this.Group.style.display = "none"); - return this; - }; - elproto.show = function () { - !this.removed && (this.Group.style.display = "block"); - return this; - }; - elproto.getBBox = function () { - if (this.removed) { - return this; - } - if (pathlike[has](this.type)) { - return pathDimensions(this.attrs.path); - } - return { - x: this.X + (this.bbx || 0), - y: this.Y, - width: this.W, - height: this.H - }; - }; - elproto.remove = function () { - if (this.removed) { - return; - } - tear(this, this.paper); - this.node.parentNode.removeChild(this.node); - this.Group.parentNode.removeChild(this.Group); - this.shape && this.shape.parentNode.removeChild(this.shape); - for (var i in this) { - delete this[i]; - } - this.removed = true; - }; - elproto.attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var i in this.attrs) if (this.attrs[has](i)) { - res[i] = this.attrs[i]; - } - this._.rt.deg && (res.rotation = this.rotate()); - (this._.sx != 1 || this._.sy != 1) && (res.scale = this.scale()); - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - return res; - } - if (value == null && R.is(name, "string")) { - if (name == "translation") { - return translate.call(this); - } - if (name == "rotation") { - return this.rotate(); - } - if (name == "scale") { - return this.scale(); - } - if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - return this.attrs[name]; - } - if (this.attrs && value == null && R.is(name, array)) { - var ii, values = {}; - for (i = 0, ii = name[length]; i < ii; i++) { - values[name[i]] = this.attr(name[i]); - } - return values; - } - var params; - if (value != null) { - params = {}; - params[name] = value; - } - value == null && R.is(name, "object") && (params = name); - if (params) { - for (var key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [][concat](params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - if (params.text && this.type == "text") { - this.node.string = params.text; - } - setFillAndStroke(this, params); - if (params.gradient && (({circle: 1, ellipse: 1})[has](this.type) || Str(params.gradient).charAt() != "r")) { - addGradientFill(this, params.gradient); - } - (!pathlike[has](this.type) || this._.rt.deg) && this.setBox(this.attrs); - } - return this; - }; - elproto.toFront = function () { - !this.removed && this.Group.parentNode[appendChild](this.Group); - this.paper.top != this && tofront(this, this.paper); - return this; - }; - elproto.toBack = function () { - if (this.removed) { - return this; - } - if (this.Group.parentNode.firstChild != this.Group) { - this.Group.parentNode.insertBefore(this.Group, this.Group.parentNode.firstChild); - toback(this, this.paper); - } - return this; - }; - elproto.insertAfter = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == Set) { - element = element[element.length - 1]; - } - if (element.Group.nextSibling) { - element.Group.parentNode.insertBefore(this.Group, element.Group.nextSibling); - } else { - element.Group.parentNode[appendChild](this.Group); - } - insertafter(this, element, this.paper); - return this; - }; - elproto.insertBefore = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == Set) { - element = element[0]; - } - element.Group.parentNode.insertBefore(this.Group, element.Group); - insertbefore(this, element, this.paper); - return this; - }; - elproto.blur = function (size) { - var s = this.node.runtimeStyle, - f = s.filter; - f = f.replace(blurregexp, E); - if (+size !== 0) { - this.attrs.blur = size; - s.filter = f + S + ms + ".Blur(pixelradius=" + (+size || 1.5) + ")"; - s.margin = R.format("-{0}px 0 0 -{0}px", round(+size || 1.5)); - } else { - s.filter = f; - s.margin = 0; - delete this.attrs.blur; - } - }; - - theCircle = function (vml, x, y, r) { - var g = createNode("group"), - o = createNode("oval"), - ol = o.style; - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - g[appendChild](o); - var res = new Element(o, g, vml); - res.type = "circle"; - setFillAndStroke(res, {stroke: "#000", fill: "none"}); - res.attrs.cx = x; - res.attrs.cy = y; - res.attrs.r = r; - res.setBox({x: x - r, y: y - r, width: r * 2, height: r * 2}); - vml.canvas[appendChild](g); - return res; - }; - function rectPath(x, y, w, h, r) { - if (r) { - return R.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z", x + r, y, w - r * 2, r, -r, h - r * 2, r * 2 - w, r * 2 - h); - } else { - return R.format("M{0},{1}l{2},0,0,{3},{4},0z", x, y, w, h, -w); - } - } - theRect = function (vml, x, y, w, h, r) { - var path = rectPath(x, y, w, h, r), - res = vml.path(path), - a = res.attrs; - res.X = a.x = x; - res.Y = a.y = y; - res.W = a.width = w; - res.H = a.height = h; - a.r = r; - a.path = path; - res.type = "rect"; - return res; - }; - theEllipse = function (vml, x, y, rx, ry) { - var g = createNode("group"), - o = createNode("oval"), - ol = o.style; - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - g[appendChild](o); - var res = new Element(o, g, vml); - res.type = "ellipse"; - setFillAndStroke(res, {stroke: "#000"}); - res.attrs.cx = x; - res.attrs.cy = y; - res.attrs.rx = rx; - res.attrs.ry = ry; - res.setBox({x: x - rx, y: y - ry, width: rx * 2, height: ry * 2}); - vml.canvas[appendChild](g); - return res; - }; - theImage = function (vml, src, x, y, w, h) { - var g = createNode("group"), - o = createNode("image"); - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - o.src = src; - g[appendChild](o); - var res = new Element(o, g, vml); - res.type = "image"; - res.attrs.src = src; - res.attrs.x = x; - res.attrs.y = y; - res.attrs.w = w; - res.attrs.h = h; - res.setBox({x: x, y: y, width: w, height: h}); - vml.canvas[appendChild](g); - return res; - }; - theText = function (vml, x, y, text) { - var g = createNode("group"), - el = createNode("shape"), - ol = el.style, - path = createNode("path"), - ps = path.style, - o = createNode("textpath"); - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - path.v = R.format("m{0},{1}l{2},{1}", round(x * 10), round(y * 10), round(x * 10) + 1); - path.textpathok = true; - ol.width = vml.width; - ol.height = vml.height; - o.string = Str(text); - o.on = true; - el[appendChild](o); - el[appendChild](path); - g[appendChild](el); - var res = new Element(o, g, vml); - res.shape = el; - res.textpath = path; - res.type = "text"; - res.attrs.text = text; - res.attrs.x = x; - res.attrs.y = y; - res.attrs.w = 1; - res.attrs.h = 1; - setFillAndStroke(res, {font: availableAttrs.font, stroke: "none", fill: "#000"}); - res.setBox(); - vml.canvas[appendChild](g); - return res; - }; - setSize = function (width, height) { - var cs = this.canvas.style; - width == +width && (width += "px"); - height == +height && (height += "px"); - cs.width = width; - cs.height = height; - cs.clip = "rect(0 " + width + " " + height + " 0)"; - return this; - }; - var createNode; - doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"); - try { - !doc.namespaces.rvml && doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"); - createNode = function (tagName) { - return doc.createElement(''); - }; - } catch (e) { - createNode = function (tagName) { - return doc.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">'); - }; - } - create = function () { - var con = getContainer[apply](0, arguments), - container = con.container, - height = con.height, - s, - width = con.width, - x = con.x, - y = con.y; - if (!container) { - throw new Error("VML container not found."); - } - var res = new Paper, - c = res.canvas = doc.createElement("div"), - cs = c.style; - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - width == +width && (width += "px"); - height == +height && (height += "px"); - res.width = 1e3; - res.height = 1e3; - res.coordsize = zoom * 1e3 + S + zoom * 1e3; - res.coordorigin = "0 0"; - res.span = doc.createElement("span"); - res.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; - c[appendChild](res.span); - cs.cssText = R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", width, height); - if (container == 1) { - doc.body[appendChild](c); - cs.left = x + "px"; - cs.top = y + "px"; - cs.position = "absolute"; - } else { - if (container.firstChild) { - container.insertBefore(c, container.firstChild); - } else { - container[appendChild](c); - } - } - plugins.call(res, res, R.fn); - return res; - }; - paperproto.clear = function () { - this.canvas.innerHTML = E; - this.span = doc.createElement("span"); - this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; - this.canvas[appendChild](this.span); - this.bottom = this.top = null; - }; - paperproto.remove = function () { - this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = removed(i); - } - return true; - }; - } - - // rest - // WebKit rendering bug workaround method - var version = navigator.userAgent.match(/Version\/(.*?)\s/); - if ((navigator.vendor == "Apple Computer, Inc.") && (version && version[1] < 4 || navigator.platform.slice(0, 2) == "iP")) { - paperproto.safari = function () { - var rect = this.rect(-99, -99, this.width + 99, this.height + 99).attr({stroke: "none"}); - win.setTimeout(function () {rect.remove();}); - }; - } else { - paperproto.safari = function () {}; - } - - // Events - var preventDefault = function () { - this.returnValue = false; - }, - preventTouch = function () { - return this.originalEvent.preventDefault(); - }, - stopPropagation = function () { - this.cancelBubble = true; - }, - stopTouch = function () { - return this.originalEvent.stopPropagation(); - }, - addEvent = (function () { - if (doc.addEventListener) { - return function (obj, type, fn, element) { - var realName = supportsTouch && touchMap[type] ? touchMap[type] : type; - var f = function (e) { - if (supportsTouch && touchMap[has](type)) { - for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) { - if (e.targetTouches[i].target == obj) { - var olde = e; - e = e.targetTouches[i]; - e.originalEvent = olde; - e.preventDefault = preventTouch; - e.stopPropagation = stopTouch; - break; - } - } - } - return fn.call(element, e); - }; - obj.addEventListener(realName, f, false); - return function () { - obj.removeEventListener(realName, f, false); - return true; - }; - }; - } else if (doc.attachEvent) { - return function (obj, type, fn, element) { - var f = function (e) { - e = e || win.event; - e.preventDefault = e.preventDefault || preventDefault; - e.stopPropagation = e.stopPropagation || stopPropagation; - return fn.call(element, e); - }; - obj.attachEvent("on" + type, f); - var detacher = function () { - obj.detachEvent("on" + type, f); - return true; - }; - return detacher; - }; - } - })(), - drag = [], - dragMove = function (e) { - var x = e.clientX, - y = e.clientY, - scrollY = doc.documentElement.scrollTop || doc.body.scrollTop, - scrollX = doc.documentElement.scrollLeft || doc.body.scrollLeft, - dragi, - j = drag.length; - while (j--) { - dragi = drag[j]; - if (supportsTouch) { - var i = e.touches.length, - touch; - while (i--) { - touch = e.touches[i]; - if (touch.identifier == dragi.el._drag.id) { - x = touch.clientX; - y = touch.clientY; - (e.originalEvent ? e.originalEvent : e).preventDefault(); - break; - } - } - } else { - e.preventDefault(); - } - x += scrollX; - y += scrollY; - dragi.move && dragi.move.call(dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e); - } - }, - dragUp = function (e) { - R.unmousemove(dragMove).unmouseup(dragUp); - var i = drag.length, - dragi; - while (i--) { - dragi = drag[i]; - dragi.el._drag = {}; - dragi.end && dragi.end.call(dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e); - } - drag = []; - }; - for (var i = events[length]; i--;) { - (function (eventName) { - R[eventName] = Element[proto][eventName] = function (fn, scope) { - if (R.is(fn, "function")) { - this.events = this.events || []; - this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || doc, eventName, fn, scope || this)}); - } - return this; - }; - R["un" + eventName] = Element[proto]["un" + eventName] = function (fn) { - var events = this.events, - l = events[length]; - while (l--) if (events[l].name == eventName && events[l].f == fn) { - events[l].unbind(); - events.splice(l, 1); - !events.length && delete this.events; - return this; - } - return this; - }; - })(events[i]); - } - elproto.hover = function (f_in, f_out, scope_in, scope_out) { - return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in); - }; - elproto.unhover = function (f_in, f_out) { - return this.unmouseover(f_in).unmouseout(f_out); - }; - elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) { - this._drag = {}; - this.mousedown(function (e) { - (e.originalEvent || e).preventDefault(); - var scrollY = doc.documentElement.scrollTop || doc.body.scrollTop, - scrollX = doc.documentElement.scrollLeft || doc.body.scrollLeft; - this._drag.x = e.clientX + scrollX; - this._drag.y = e.clientY + scrollY; - this._drag.id = e.identifier; - onstart && onstart.call(start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e); - !drag.length && R.mousemove(dragMove).mouseup(dragUp); - drag.push({el: this, move: onmove, end: onend, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope}); - }); - return this; - }; - elproto.undrag = function (onmove, onstart, onend) { - var i = drag.length; - while (i--) { - drag[i].el == this && (drag[i].move == onmove && drag[i].end == onend) && drag.splice(i++, 1); - } - !drag.length && R.unmousemove(dragMove).unmouseup(dragUp); - }; - paperproto.circle = function (x, y, r) { - return theCircle(this, x || 0, y || 0, r || 0); - }; - paperproto.rect = function (x, y, w, h, r) { - return theRect(this, x || 0, y || 0, w || 0, h || 0, r || 0); - }; - paperproto.ellipse = function (x, y, rx, ry) { - return theEllipse(this, x || 0, y || 0, rx || 0, ry || 0); - }; - paperproto.path = function (pathString) { - pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E); - return thePath(R.format[apply](R, arguments), this); - }; - paperproto.image = function (src, x, y, w, h) { - return theImage(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0); - }; - paperproto.text = function (x, y, text) { - return theText(this, x || 0, y || 0, Str(text)); - }; - paperproto.set = function (itemsArray) { - arguments[length] > 1 && (itemsArray = Array[proto].splice.call(arguments, 0, arguments[length])); - return new Set(itemsArray); - }; - paperproto.setSize = setSize; - paperproto.top = paperproto.bottom = null; - paperproto.raphael = R; - function x_y() { - return this.x + S + this.y; - } - elproto.resetScale = function () { - if (this.removed) { - return this; - } - this._.sx = 1; - this._.sy = 1; - this.attrs.scale = "1 1"; - }; - elproto.scale = function (x, y, cx, cy) { - if (this.removed) { - return this; - } - if (x == null && y == null) { - return { - x: this._.sx, - y: this._.sy, - toString: x_y - }; - } - y = y || x; - !+y && (y = x); - var dx, - dy, - dcx, - dcy, - a = this.attrs; - if (x != 0) { - var bb = this.getBBox(), - rcx = bb.x + bb.width / 2, - rcy = bb.y + bb.height / 2, - kx = abs(x / this._.sx), - ky = abs(y / this._.sy); - cx = (+cx || cx == 0) ? cx : rcx; - cy = (+cy || cy == 0) ? cy : rcy; - var posx = this._.sx > 0, - posy = this._.sy > 0, - dirx = ~~(x / abs(x)), - diry = ~~(y / abs(y)), - dkx = kx * dirx, - dky = ky * diry, - s = this.node.style, - ncx = cx + abs(rcx - cx) * dkx * (rcx > cx == posx ? 1 : -1), - ncy = cy + abs(rcy - cy) * dky * (rcy > cy == posy ? 1 : -1), - fr = (x * dirx > y * diry ? ky : kx); - switch (this.type) { - case "rect": - case "image": - var neww = a.width * kx, - newh = a.height * ky; - this.attr({ - height: newh, - r: a.r * fr, - width: neww, - x: ncx - neww / 2, - y: ncy - newh / 2 - }); - break; - case "circle": - case "ellipse": - this.attr({ - rx: a.rx * kx, - ry: a.ry * ky, - r: a.r * fr, - cx: ncx, - cy: ncy - }); - break; - case "text": - this.attr({ - x: ncx, - y: ncy - }); - break; - case "path": - var path = pathToRelative(a.path), - skip = true, - fx = posx ? dkx : kx, - fy = posy ? dky : ky; - for (var i = 0, ii = path[length]; i < ii; i++) { - var p = path[i], - P0 = upperCase.call(p[0]); - if (P0 == "M" && skip) { - continue; - } else { - skip = false; - } - if (P0 == "A") { - p[path[i][length] - 2] *= fx; - p[path[i][length] - 1] *= fy; - p[1] *= kx; - p[2] *= ky; - p[5] = +(dirx + diry ? !!+p[5] : !+p[5]); - } else if (P0 == "H") { - for (var j = 1, jj = p[length]; j < jj; j++) { - p[j] *= fx; - } - } else if (P0 == "V") { - for (j = 1, jj = p[length]; j < jj; j++) { - p[j] *= fy; - } - } else { - for (j = 1, jj = p[length]; j < jj; j++) { - p[j] *= (j % 2) ? fx : fy; - } - } - } - var dim2 = pathDimensions(path); - dx = ncx - dim2.x - dim2.width / 2; - dy = ncy - dim2.y - dim2.height / 2; - path[0][1] += dx; - path[0][2] += dy; - this.attr({path: path}); - break; - } - if (this.type in {text: 1, image:1} && (dirx != 1 || diry != 1)) { - if (this.transformations) { - this.transformations[2] = "scale("[concat](dirx, ",", diry, ")"); - this.node[setAttribute]("transform", this.transformations[join](S)); - dx = (dirx == -1) ? -a.x - (neww || 0) : a.x; - dy = (diry == -1) ? -a.y - (newh || 0) : a.y; - this.attr({x: dx, y: dy}); - a.fx = dirx - 1; - a.fy = diry - 1; - } else { - this.node.filterMatrix = ms + ".Matrix(M11="[concat](dirx, - ", M12=0, M21=0, M22=", diry, - ", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')"); - s.filter = (this.node.filterMatrix || E) + (this.node.filterOpacity || E); - } - } else { - if (this.transformations) { - this.transformations[2] = E; - this.node[setAttribute]("transform", this.transformations[join](S)); - a.fx = 0; - a.fy = 0; - } else { - this.node.filterMatrix = E; - s.filter = (this.node.filterMatrix || E) + (this.node.filterOpacity || E); - } - } - a.scale = [x, y, cx, cy][join](S); - this._.sx = x; - this._.sy = y; - } - return this; - }; - elproto.clone = function () { - if (this.removed) { - return null; - } - var attr = this.attr(); - delete attr.scale; - delete attr.translation; - return this.paper[this.type]().attr(attr); - }; - var curveslengths = {}, - getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) { - var len = 0, - precision = 100, - name = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y].join(), - cache = curveslengths[name], - old, dot; - !cache && (curveslengths[name] = cache = {data: []}); - cache.timer && clearTimeout(cache.timer); - cache.timer = setTimeout(function () {delete curveslengths[name];}, 2000); - if (length != null) { - var total = getPointAtSegmentLength(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y); - precision = ~~total * 10; - } - for (var i = 0; i < precision + 1; i++) { - if (cache.data[length] > i) { - dot = cache.data[i * precision]; - } else { - dot = R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, i / precision); - cache.data[i] = dot; - } - i && (len += pow(pow(old.x - dot.x, 2) + pow(old.y - dot.y, 2), .5)); - if (length != null && len >= length) { - return dot; - } - old = dot; - } - if (length == null) { - return len; - } - }, - getLengthFactory = function (istotal, subpath) { - return function (path, length, onlystart) { - path = path2curve(path); - var x, y, p, l, sp = "", subpaths = {}, point, - len = 0; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = +p[1]; - y = +p[2]; - } else { - l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - if (len + l > length) { - if (subpath && !subpaths.start) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - sp += ["C", point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y]; - if (onlystart) {return sp;} - subpaths.start = sp; - sp = ["M", point.x, point.y + "C", point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]][join](); - len += l; - x = +p[5]; - y = +p[6]; - continue; - } - if (!istotal && !subpath) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - return {x: point.x, y: point.y, alpha: point.alpha}; - } - } - len += l; - x = +p[5]; - y = +p[6]; - } - sp += p; - } - subpaths.end = sp; - point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[1], p[2], p[3], p[4], p[5], p[6], 1); - point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha}); - return point; - }; - }; - var getTotalLength = getLengthFactory(1), - getPointAtLength = getLengthFactory(), - getSubpathsAtLength = getLengthFactory(0, 1); - elproto.getTotalLength = function () { - if (this.type != "path") {return;} - if (this.node.getTotalLength) { - return this.node.getTotalLength(); - } - return getTotalLength(this.attrs.path); - }; - elproto.getPointAtLength = function (length) { - if (this.type != "path") {return;} - return getPointAtLength(this.attrs.path, length); - }; - elproto.getSubpath = function (from, to) { - if (this.type != "path") {return;} - if (abs(this.getTotalLength() - to) < "1e-6") { - return getSubpathsAtLength(this.attrs.path, from).end; - } - var a = getSubpathsAtLength(this.attrs.path, to, 1); - return from ? getSubpathsAtLength(a, from).end : a; - }; - - // animation easing formulas - R.easing_formulas = { - linear: function (n) { - return n; - }, - "<": function (n) { - return pow(n, 3); - }, - ">": function (n) { - return pow(n - 1, 3) + 1; - }, - "<>": function (n) { - n = n * 2; - if (n < 1) { - return pow(n, 3) / 2; - } - n -= 2; - return (pow(n, 3) + 2) / 2; - }, - backIn: function (n) { - var s = 1.70158; - return n * n * ((s + 1) * n - s); - }, - backOut: function (n) { - n = n - 1; - var s = 1.70158; - return n * n * ((s + 1) * n + s) + 1; - }, - elastic: function (n) { - if (n == 0 || n == 1) { - return n; - } - var p = .3, - s = p / 4; - return pow(2, -10 * n) * math.sin((n - s) * (2 * PI) / p) + 1; - }, - bounce: function (n) { - var s = 7.5625, - p = 2.75, - l; - if (n < (1 / p)) { - l = s * n * n; - } else { - if (n < (2 / p)) { - n -= (1.5 / p); - l = s * n * n + .75; - } else { - if (n < (2.5 / p)) { - n -= (2.25 / p); - l = s * n * n + .9375; - } else { - n -= (2.625 / p); - l = s * n * n + .984375; - } - } - } - return l; - } - }; - - var animationElements = [], - animation = function () { - var Now = +new Date; - for (var l = 0; l < animationElements[length]; l++) { - var e = animationElements[l]; - if (e.stop || e.el.removed) { - continue; - } - var time = Now - e.start, - ms = e.ms, - easing = e.easing, - from = e.from, - diff = e.diff, - to = e.to, - t = e.t, - that = e.el, - set = {}, - now; - if (time < ms) { - var pos = easing(time / ms); - for (var attr in from) if (from[has](attr)) { - switch (availableAnimAttrs[attr]) { - case "along": - now = pos * ms * diff[attr]; - to.back && (now = to.len - now); - var point = getPointAtLength(to[attr], now); - that.translate(diff.sx - diff.x || 0, diff.sy - diff.y || 0); - diff.x = point.x; - diff.y = point.y; - that.translate(point.x - diff.sx, point.y - diff.sy); - to.rot && that.rotate(diff.r + point.alpha, point.x, point.y); - break; - case nu: - now = +from[attr] + pos * ms * diff[attr]; - break; - case "colour": - now = "rgb(" + [ - upto255(round(from[attr].r + pos * ms * diff[attr].r)), - upto255(round(from[attr].g + pos * ms * diff[attr].g)), - upto255(round(from[attr].b + pos * ms * diff[attr].b)) - ][join](",") + ")"; - break; - case "path": - now = []; - for (var i = 0, ii = from[attr][length]; i < ii; i++) { - now[i] = [from[attr][i][0]]; - for (var j = 1, jj = from[attr][i][length]; j < jj; j++) { - now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j]; - } - now[i] = now[i][join](S); - } - now = now[join](S); - break; - case "csv": - switch (attr) { - case "translation": - var x = pos * ms * diff[attr][0] - t.x, - y = pos * ms * diff[attr][1] - t.y; - t.x += x; - t.y += y; - now = x + S + y; - break; - case "rotation": - now = +from[attr][0] + pos * ms * diff[attr][0]; - from[attr][1] && (now += "," + from[attr][1] + "," + from[attr][2]); - break; - case "scale": - now = [+from[attr][0] + pos * ms * diff[attr][0], +from[attr][1] + pos * ms * diff[attr][1], (2 in to[attr] ? to[attr][2] : E), (3 in to[attr] ? to[attr][3] : E)][join](S); - break; - case "clip-rect": - now = []; - i = 4; - while (i--) { - now[i] = +from[attr][i] + pos * ms * diff[attr][i]; - } - break; - } - break; - default: - var from2 = [].concat(from[attr]); - now = []; - i = that.paper.customAttributes[attr].length; - while (i--) { - now[i] = +from2[i] + pos * ms * diff[attr][i]; - } - break; - } - set[attr] = now; - } - that.attr(set); - that._run && that._run.call(that); - } else { - if (to.along) { - point = getPointAtLength(to.along, to.len * !to.back); - that.translate(diff.sx - (diff.x || 0) + point.x - diff.sx, diff.sy - (diff.y || 0) + point.y - diff.sy); - to.rot && that.rotate(diff.r + point.alpha, point.x, point.y); - } - (t.x || t.y) && that.translate(-t.x, -t.y); - to.scale && (to.scale += E); - that.attr(to); - animationElements.splice(l--, 1); - } - } - R.svg && that && that.paper && that.paper.safari(); - animationElements[length] && setTimeout(animation); - }, - keyframesRun = function (attr, element, time, prev, prevcallback) { - var dif = time - prev; - element.timeouts.push(setTimeout(function () { - R.is(prevcallback, "function") && prevcallback.call(element); - element.animate(attr, dif, attr.easing); - }, prev)); - }, - upto255 = function (color) { - return mmax(mmin(color, 255), 0); - }, - translate = function (x, y) { - if (x == null) { - return {x: this._.tx, y: this._.ty, toString: x_y}; - } - this._.tx += +x; - this._.ty += +y; - switch (this.type) { - case "circle": - case "ellipse": - this.attr({cx: +x + this.attrs.cx, cy: +y + this.attrs.cy}); - break; - case "rect": - case "image": - case "text": - this.attr({x: +x + this.attrs.x, y: +y + this.attrs.y}); - break; - case "path": - var path = pathToRelative(this.attrs.path); - path[0][1] += +x; - path[0][2] += +y; - this.attr({path: path}); - break; - } - return this; - }; - elproto.animateWith = function (element, params, ms, easing, callback) { - for (var i = 0, ii = animationElements.length; i < ii; i++) { - if (animationElements[i].el.id == element.id) { - params.start = animationElements[i].start; - } - } - return this.animate(params, ms, easing, callback); - }; - elproto.animateAlong = along(); - elproto.animateAlongBack = along(1); - function along(isBack) { - return function (path, ms, rotate, callback) { - var params = {back: isBack}; - R.is(rotate, "function") ? (callback = rotate) : (params.rot = rotate); - path && path.constructor == Element && (path = path.attrs.path); - path && (params.along = path); - return this.animate(params, ms, callback); - }; - } - function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) { - var cx = 3 * p1x, - bx = 3 * (p2x - p1x) - cx, - ax = 1 - cx - bx, - cy = 3 * p1y, - by = 3 * (p2y - p1y) - cy, - ay = 1 - cy - by; - function sampleCurveX(t) { - return ((ax * t + bx) * t + cx) * t; - } - function solve(x, epsilon) { - var t = solveCurveX(x, epsilon); - return ((ay * t + by) * t + cy) * t; - } - function solveCurveX(x, epsilon) { - var t0, t1, t2, x2, d2, i; - for(t2 = x, i = 0; i < 8; i++) { - x2 = sampleCurveX(t2) - x; - if (abs(x2) < epsilon) { - return t2; - } - d2 = (3 * ax * t2 + 2 * bx) * t2 + cx; - if (abs(d2) < 1e-6) { - break; - } - t2 = t2 - x2 / d2; - } - t0 = 0; - t1 = 1; - t2 = x; - if (t2 < t0) { - return t0; - } - if (t2 > t1) { - return t1; - } - while (t0 < t1) { - x2 = sampleCurveX(t2); - if (abs(x2 - x) < epsilon) { - return t2; - } - if (x > x2) { - t0 = t2; - } else { - t1 = t2; - } - t2 = (t1 - t0) / 2 + t0; - } - return t2; - } - return solve(t, 1 / (200 * duration)); - } - elproto.onAnimation = function (f) { - this._run = f || 0; - return this; - }; - elproto.animate = function (params, ms, easing, callback) { - var element = this; - element.timeouts = element.timeouts || []; - if (R.is(easing, "function") || !easing) { - callback = easing || null; - } - if (element.removed) { - callback && callback.call(element); - return element; - } - var from = {}, - to = {}, - animateable = false, - diff = {}; - for (var attr in params) if (params[has](attr)) { - if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) { - animateable = true; - from[attr] = element.attr(attr); - (from[attr] == null) && (from[attr] = availableAttrs[attr]); - to[attr] = params[attr]; - switch (availableAnimAttrs[attr]) { - case "along": - var len = getTotalLength(params[attr]); - var point = getPointAtLength(params[attr], len * !!params.back); - var bb = element.getBBox(); - diff[attr] = len / ms; - diff.tx = bb.x; - diff.ty = bb.y; - diff.sx = point.x; - diff.sy = point.y; - to.rot = params.rot; - to.back = params.back; - to.len = len; - params.rot && (diff.r = toFloat(element.rotate()) || 0); - break; - case nu: - diff[attr] = (to[attr] - from[attr]) / ms; - break; - case "colour": - from[attr] = R.getRGB(from[attr]); - var toColour = R.getRGB(to[attr]); - diff[attr] = { - r: (toColour.r - from[attr].r) / ms, - g: (toColour.g - from[attr].g) / ms, - b: (toColour.b - from[attr].b) / ms - }; - break; - case "path": - var pathes = path2curve(from[attr], to[attr]); - from[attr] = pathes[0]; - var toPath = pathes[1]; - diff[attr] = []; - for (var i = 0, ii = from[attr][length]; i < ii; i++) { - diff[attr][i] = [0]; - for (var j = 1, jj = from[attr][i][length]; j < jj; j++) { - diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms; - } - } - break; - case "csv": - var values = Str(params[attr])[split](separator), - from2 = Str(from[attr])[split](separator); - switch (attr) { - case "translation": - from[attr] = [0, 0]; - diff[attr] = [values[0] / ms, values[1] / ms]; - break; - case "rotation": - from[attr] = (from2[1] == values[1] && from2[2] == values[2]) ? from2 : [0, values[1], values[2]]; - diff[attr] = [(values[0] - from[attr][0]) / ms, 0, 0]; - break; - case "scale": - params[attr] = values; - from[attr] = Str(from[attr])[split](separator); - diff[attr] = [(values[0] - from[attr][0]) / ms, (values[1] - from[attr][1]) / ms, 0, 0]; - break; - case "clip-rect": - from[attr] = Str(from[attr])[split](separator); - diff[attr] = []; - i = 4; - while (i--) { - diff[attr][i] = (values[i] - from[attr][i]) / ms; - } - break; - } - to[attr] = values; - break; - default: - values = [].concat(params[attr]); - from2 = [].concat(from[attr]); - diff[attr] = []; - i = element.paper.customAttributes[attr][length]; - while (i--) { - diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms; - } - break; - } - } - } - if (!animateable) { - var attrs = [], - lastcall; - for (var key in params) if (params[has](key) && animKeyFrames.test(key)) { - attr = {value: params[key]}; - key == "from" && (key = 0); - key == "to" && (key = 100); - attr.key = toInt(key, 10); - attrs.push(attr); - } - attrs.sort(sortByKey); - if (attrs[0].key) { - attrs.unshift({key: 0, value: element.attrs}); - } - for (i = 0, ii = attrs[length]; i < ii; i++) { - keyframesRun(attrs[i].value, element, ms / 100 * attrs[i].key, ms / 100 * (attrs[i - 1] && attrs[i - 1].key || 0), attrs[i - 1] && attrs[i - 1].value.callback); - } - lastcall = attrs[attrs[length] - 1].value.callback; - if (lastcall) { - element.timeouts.push(setTimeout(function () {lastcall.call(element);}, ms)); - } - } else { - var easyeasy = R.easing_formulas[easing]; - if (!easyeasy) { - easyeasy = Str(easing).match(bezierrg); - if (easyeasy && easyeasy[length] == 5) { - var curve = easyeasy; - easyeasy = function (t) { - return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms); - }; - } else { - easyeasy = function (t) { - return t; - }; - } - } - animationElements.push({ - start: params.start || +new Date, - ms: ms, - easing: easyeasy, - from: from, - diff: diff, - to: to, - el: element, - t: {x: 0, y: 0} - }); - R.is(callback, "function") && (element._ac = setTimeout(function () { - callback.call(element); - }, ms)); - animationElements[length] == 1 && setTimeout(animation); - } - return this; - }; - elproto.stop = function () { - for (var i = 0; i < animationElements.length; i++) { - animationElements[i].el.id == this.id && animationElements.splice(i--, 1); - } - for (i = 0, ii = this.timeouts && this.timeouts.length; i < ii; i++) { - clearTimeout(this.timeouts[i]); - } - this.timeouts = []; - clearTimeout(this._ac); - delete this._ac; - return this; - }; - elproto.translate = function (x, y) { - return this.attr({translation: x + " " + y}); - }; - elproto[toString] = function () { - return "Rapha\xebl\u2019s object"; - }; - R.ae = animationElements; - - // Set - var Set = function (items) { - this.items = []; - this[length] = 0; - this.type = "set"; - if (items) { - for (var i = 0, ii = items[length]; i < ii; i++) { - if (items[i] && (items[i].constructor == Element || items[i].constructor == Set)) { - this[this.items[length]] = this.items[this.items[length]] = items[i]; - this[length]++; - } - } - } - }; - Set[proto][push] = function () { - var item, - len; - for (var i = 0, ii = arguments[length]; i < ii; i++) { - item = arguments[i]; - if (item && (item.constructor == Element || item.constructor == Set)) { - len = this.items[length]; - this[len] = this.items[len] = item; - this[length]++; - } - } - return this; - }; - Set[proto].pop = function () { - delete this[this[length]--]; - return this.items.pop(); - }; - for (var method in elproto) if (elproto[has](method)) { - Set[proto][method] = (function (methodname) { - return function () { - for (var i = 0, ii = this.items[length]; i < ii; i++) { - this.items[i][methodname][apply](this.items[i], arguments); - } - return this; - }; - })(method); - } - Set[proto].attr = function (name, value) { - if (name && R.is(name, array) && R.is(name[0], "object")) { - for (var j = 0, jj = name[length]; j < jj; j++) { - this.items[j].attr(name[j]); - } - } else { - for (var i = 0, ii = this.items[length]; i < ii; i++) { - this.items[i].attr(name, value); - } - } - return this; - }; - Set[proto].animate = function (params, ms, easing, callback) { - (R.is(easing, "function") || !easing) && (callback = easing || null); - var len = this.items[length], - i = len, - item, - set = this, - collector; - callback && (collector = function () { - !--len && callback.call(set); - }); - easing = R.is(easing, string) ? easing : collector; - item = this.items[--i].animate(params, ms, easing, collector); - while (i--) { - this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, params, ms, easing, collector); - } - return this; - }; - Set[proto].insertAfter = function (el) { - var i = this.items[length]; - while (i--) { - this.items[i].insertAfter(el); - } - return this; - }; - Set[proto].getBBox = function () { - var x = [], - y = [], - w = [], - h = []; - for (var i = this.items[length]; i--;) { - var box = this.items[i].getBBox(); - x[push](box.x); - y[push](box.y); - w[push](box.x + box.width); - h[push](box.y + box.height); - } - x = mmin[apply](0, x); - y = mmin[apply](0, y); - return { - x: x, - y: y, - width: mmax[apply](0, w) - x, - height: mmax[apply](0, h) - y - }; - }; - Set[proto].clone = function (s) { - s = new Set; - for (var i = 0, ii = this.items[length]; i < ii; i++) { - s[push](this.items[i].clone()); - } - return s; - }; - - R.registerFont = function (font) { - if (!font.face) { - return font; - } - this.fonts = this.fonts || {}; - var fontcopy = { - w: font.w, - face: {}, - glyphs: {} - }, - family = font.face["font-family"]; - for (var prop in font.face) if (font.face[has](prop)) { - fontcopy.face[prop] = font.face[prop]; - } - if (this.fonts[family]) { - this.fonts[family][push](fontcopy); - } else { - this.fonts[family] = [fontcopy]; - } - if (!font.svg) { - fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10); - for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) { - var path = font.glyphs[glyph]; - fontcopy.glyphs[glyph] = { - w: path.w, - k: {}, - d: path.d && "M" + path.d[rp](/[mlcxtrv]/g, function (command) { - return {l: "L", c: "C", x: "z", t: "m", r: "l", v: "c"}[command] || "M"; - }) + "z" - }; - if (path.k) { - for (var k in path.k) if (path[has](k)) { - fontcopy.glyphs[glyph].k[k] = path.k[k]; - } - } - } - } - return font; - }; - paperproto.getFont = function (family, weight, style, stretch) { - stretch = stretch || "normal"; - style = style || "normal"; - weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400; - if (!R.fonts) { - return; - } - var font = R.fonts[family]; - if (!font) { - var name = new RegExp("(^|\\s)" + family[rp](/[^\w\d\s+!~.:_-]/g, E) + "(\\s|$)", "i"); - for (var fontName in R.fonts) if (R.fonts[has](fontName)) { - if (name.test(fontName)) { - font = R.fonts[fontName]; - break; - } - } - } - var thefont; - if (font) { - for (var i = 0, ii = font[length]; i < ii; i++) { - thefont = font[i]; - if (thefont.face["font-weight"] == weight && (thefont.face["font-style"] == style || !thefont.face["font-style"]) && thefont.face["font-stretch"] == stretch) { - break; - } - } - } - return thefont; - }; - paperproto.print = function (x, y, string, font, size, origin, letter_spacing) { - origin = origin || "middle"; // baseline|middle - letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1); - var out = this.set(), - letters = Str(string)[split](E), - shift = 0, - path = E, - scale; - R.is(font, string) && (font = this.getFont(font)); - if (font) { - scale = (size || 16) / font.face["units-per-em"]; - var bb = font.face.bbox.split(separator), - top = +bb[0], - height = +bb[1] + (origin == "baseline" ? bb[3] - bb[1] + (+font.face.descent) : (bb[3] - bb[1]) / 2); - for (var i = 0, ii = letters[length]; i < ii; i++) { - var prev = i && font.glyphs[letters[i - 1]] || {}, - curr = font.glyphs[letters[i]]; - shift += i ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0; - curr && curr.d && out[push](this.path(curr.d).attr({fill: "#000", stroke: "none", translation: [shift, 0]})); - } - out.scale(scale, scale, top, height).translate(x - top, y - height); - } - return out; - }; - - R.format = function (token, params) { - var args = R.is(params, array) ? [0][concat](params) : arguments; - token && R.is(token, string) && args[length] - 1 && (token = token[rp](formatrg, function (str, i) { - return args[++i] == null ? E : args[i]; - })); - return token || E; - }; - R.ninja = function () { - oldRaphael.was ? (win.Raphael = oldRaphael.is) : delete Raphael; - return R; - }; - R.el = elproto; - R.st = Set[proto]; - - oldRaphael.was ? (win.Raphael = R) : (Raphael = R); -})(); \ No newline at end of file diff --git a/build/HarmonicExcitationSDOF/HarmonicExcitationSDOF.html b/build/HarmonicExcitationSDOF/HarmonicExcitationSDOF.html deleted file mode 100755 index 399a42b..0000000 --- a/build/HarmonicExcitationSDOF/HarmonicExcitationSDOF.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - Harmonic Excitation - Mechanical - - - - - - - - - - - - - - - - - -
    -
    - - -
    -
      -

      Forced Response of SDOF system : Harmonic Excitation

      -
    -
    -
    -
    ω :
    -
    - - -
    -
    -
    - Control Panel -

    - - kg -

    -

    - - N/m -

    -

    - - N.s/m -

    -

    - - N.s/m -

    -

    - - N -

    -

    - - rad/s -

    -
    - -
    -
    -

    - - - - - - -

    -
    - - -
    -
    - - - -
    m - -
    -
    - -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -
    -
    -
    - - -
    - -
    -
    - - - - \ No newline at end of file diff --git a/build/HarmonicExcitationSDOF/content.html b/build/HarmonicExcitationSDOF/content.html deleted file mode 100755 index d4f5e84..0000000 --- a/build/HarmonicExcitationSDOF/content.html +++ /dev/null @@ -1,9139 +0,0 @@ - - -
    - -
    - - - -
    - -
    - -
    -
    -
    Forced response of SDOF
    - - - -
    - -
    -
    - - -
    - -
    - Aim -
    - -

    Aim

    - -

             To study, experimentally, the response of a SDOF system to harmonic excitation applied to the mass for different values of damping factor

    - -

    Importance of studying response of a SDOF system to harmonic excitation

    - -

      -     Life of components and their joints in an assembly under vibration greatly depends on amplitude of vibration. Hence, it is important to know the amplitude of vibration. Amplitude of vibration tends to be high particularly at and near resonance that occur when the excitation frequency is close to the natural frequency of a system. And therefore, the natural frequency of vibration must be separated considerably from the excitation frequency. -
         A Spring-Mass-Damper arrangement is considered in this experiment for finding its response to a harmonic excitation. Resonance is characterized by high value of amplitude of vibration. The Spring-Mass-Damper arrangement is an idealized model of a machine resting on resilient pad or sheet. The machine, say a lathe-bed and its accessories, can be considered rigid representing the mass in the SDOF system, and the resilient pad, a spring and damper together. The concepts developed while studying a SDOF system are fundamental and useful for studying complex systems also. -

    - -


    -

    -
    - -
    -
    - - -
    -
    - Theory -
    -

    -

     

    -

    Vibratory systems around us - - -

    Here are some examples of physical systems where the vibrations are prominent and can be observed easily. In musical instruments the vibrations are intentional. The parts of musical instruments are designed so that they generate sounds that are pleasant to listen. In many cases the vibrations are unwanted and we try to minimize them.

    -

     

    -

    1.   A chandelier hanging from ceiling oscillates to and fro following an initial disturbance; maybe due to a breeze of air.

    -

     

    -

    2.   The oscillations of the chandelier at cathedral of Pisa, Italy, were studied by the famous scientist Galileo Galilee.

    -

     

    -

    3.   A load attached at end of a wire-rope of a crane oscillates to and fro due to initial disturbance; maybe due to sudden stopping of carriage of the crane while revolving about the vertical axis.

    -

     

    -

    4.   The pendulum used in clock of olden days used to oscillate to and fro once every second. i.e. it had a period of oscillation of one second.

    -

     

    -

    5.   String of a guitar, when plucked and left to its own, vibrates and makes a musical sound. It comes to rest after a while; the vibrations die out. Similarly, the diaphragm of a table vibrates when hit and left to its own. It also comes to rest after some time. -

    - -

    -     All these are examples of vibratory systems that are set into vibration following an initial disturbance. All these systems have three components: mass, due to which the system possesses inertia; elasticity, due to which potential energy can be stored; and components that dissipate energy causing the vibratory motion to be damped which bring them to rest after some time.
    -      Vibration or vibratory systems are classified in number of ways. Some of the classifications are given below: -

    -

     

    -

     Free and forced vibration - A free vibration occurs due to initial displacement or velocity, or both, applied to the system only initially. There is no external force acting on the system when the system is vibrating. A forced vibration occurs when the system vibrates in response to external force applied continuously. When the force applied is periodic, i.e. it repeats itself after a fixed interval of time, the forced vibration is called periodic. If the periodic force and hence the resulting vibration varies sinusoidally with respect to time, the vibration is called harmonic. If the force is not periodic, the forced vibration is called aperiodic or random.

    - -

    -

     Damped and undamped vibration -
    -When the vibratory system has elements that offer resistance to motion, energy is continuously dissipated and the free vibrations of such systems come to halt after some time. This is called damped vibration and such systems are called damped systems. Forced vibration of a damped system continues as long as the force acts but some of the work done by the external force is lost in overcoming the resistance offered by the damping elements. Systems without damping elements are called undamped systems and their vibrations are called undamped vibrations. All systems in nature have some or the other damping element and their natural vibrations are damped. Hence they come to rest after some time following free vibrations. Nevertheless, we study the vibration of undamped systems because the concepts developed in studying them are useful in analyzing and understanding the phenomena occurring in vibration of damped as well as complicated systems. When the force of resistance offered by a damping element is proportional to velocity of mass of the system, it is termed as viscous damping and the damping element is called a viscous damper. If the force of resistance has a constant value, it is termed as Coulomb damping. Damping due to dry friction shows this kind of behavior. Coulomb damping can occur when the system has components rubbing over each other. There are other types of damping also which shall be discussed later.

    -

    - -

    -

    -

    - -

    -

    -

    -

    Degrees of freedom : The vibratory systems are classified as single-degree-of-freedom systems, Multi-degree-of-freedom-systems or continuous systems. The number of degrees of freedom corresponds to the number of independent co-ordinates required to completely describe the motion of the system. In fact, it is the sum of the possible ways each mass can move independently of other masses. The translation of a mass along the three axes, X, Y and Z, and the three rotations about each of these axes constitute possible ways of motion of a mass. Many times, many of these six motions of a mass are restricted and a mass can have one or two degrees of freedom, i.e. only translation or translation and rotation of a single mass about any one of the axes.
    -
    -Linear and Non-linear Vibrations : Vibration is said to be linear if the damping force is proportional to velocity, inertia force is proportional to mass, and restoring force is proportional to displacement. If any of this proportionality is not satisfied, the system is said to be non-linear.
    -
    - Solving engineering problems : Analytical methods are usually applied to models of actual systems. We carry out experiments on models if physical systems are not available for testing. While preparing such models, we exclude superfluous details of the system but include all essential and important features of the actual system. While doing so, we idealize and approximate important behaviour of the system without affecting much the accuracy in predicting the behaviour. The system model so developed provides ease of application of analytical and experimental techniques. Once a satisfactory model is developed, laws of Physics can be applied which give a set of mathematical equations relating the properties and variables of the system. Such a set of mathematical equations is called mathematical model of the system. Solving the set of equations (or a single mathematical equation) provides expression for the system variable in terms of location and time. We call this as ‘solution’ of the problem. As an illustration of the concepts described above, see the example given below.
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    Physical system

    -
    -

    These days we have number of towering buildings.  Many a times the residential part of such a building is supported on a tall concrete structure.  One of such buildings is the ‘Milad Tower’, situated in Tehran, Iran.  Its head consists of a large pod with 12 floors and below is a staircase and elevators to reach the area.

    -

    The oscillations of such tall buildings, in response to earthquake and wind, are important from design point of view.  And to study these oscillations, we must know the characteristics of its natural vibration. 

    -

    Analysis of such a physical system can be very much complicated.  To obtain first rough estimate of the natural frequency of vibration, the problem can be stated and the physical system can be modeled in a simple way as described below.

    -
    -

    Problem statement

    -
    -

    To find natural frequency of oscillation of the tower in the direction perpendicular to the vertical axis (i.e. natural frequency of transverse oscillation of the tower) and position of the head at any given time.

    -
    -

    Physical model of the system

    -
    -

    - - - - - - - -
    -
    -

    M

    -
    -
    -
    - - - - - - -
    -
    -

       

    -
    -
    -
    -

     

    -
    -

    The physical model for the system under consideration can be as shown in This is the simplest model.  Only the mass of the building at the top is considered and it is considered to be concentrated at one point.  The mass of the vertical pillar supporting the buiding is neglected and is considered to be a cantilever offering only elesticity.

    -

    Thus it becomes a single degree of freedom system with single mass and only one way of motion of the mass: translation in direction perpendicular to the vertical axis of the building.  Further we assume that the amplitude of this motion to be small.

    -

    The equivalent stiffness of the cantilever is given by

    -

    .  The symbols carry their usual meanings.

    -

     

    -
    -

    Mathematical model

    -
    -

    Using Newton’s second law of motion, the equation of motion of the mass is written as

    -

     

    -

    The first term is the inertia force which is equal to mass multiplied by acceleration and the second term is the spring force given by stiffness of the spring multiplied by its elongation or compression.

    -

    The differential equation is a mathematical model of the system.

    -

     

    -
    -

    General Solution

    -
    -

    The solution to the above differential equation is given by

    -

      

    -

    A and B are constants that depend the initial conditions, i.e. the displacement and velocity of the mass when we started measuring our time.

    -

    These are known as initial conditions.

    -

     is the natural frequency in radians per second and is given by

    -

    -
    -

    Particular solution obtained from the initial conditions

    -
    -

    Substituting the initial conditions in above expression, we can obtain the values of A and B.  Thus if X0 and V0 are the initial displacement and velocity, respectively, given to the mass, the above expression will yield values of A and B as  and  

    -

     

    -

    Now the expression for x becomes

    -

    -

    And we can obtain the value of x at any time t from this expression.

    -

    Thus we have obtained the expressions for natural frequency and position of the head at any given time ‘t and the problem stated by the problem statement is solved.

    -
    -

     

    -
    - - -
    -
    - - -
    -
    - Simulator -
    -
    -
    - -
    -
    - - -
    -
    - Procedure -
    -
    - -

    -

    -

     

    -

     (a) Experimental Set up and Procedure

    -

    -You see a physical model of a Spring-Mass-Damper system, supported at bottom (Spring and damper grounded and supporting a mass). Values of mass, spring stiffness, and damping coefficient are entered in the windows provided for the purpose. A vertical force whose magnitude varies sinusoidaly with respect to time is applied on the mass i.e. a harmonic excitation is given to the system acting on the mass. The amplitude of the force is entered. The range of frequencies of the harmonic force is prescribed by entering the lowest and highest values of the range of frequencies. The frequency is increased in steps, dwelling at each frequency for some time and reaching the highest frequency of the range. An accelerometer is shown mounted on the mass to measure its acceleration and in turn its displacement. Output of the accelerometer goes to vibration analyzer displaying displacement (twice integrated from acceleration) versus time. By clicking the button ‘start’, the harmonic force starts acting on the mass. The plot of amplitude of vibration of the mass, X v/s ω, and its phase difference with respect to the excitation-force can is seen in the windows. The mass can be seen vibrating. Observation of the plot are made and analyzed later. Results will be tallied with some numerical calculations. The set of observations will be made for different dampers, i.e. for different values of damping factor, ζ. -

    - - -

     (b) Observation and analysis:

    -

    -1. Observe the plot X v/s ω (or X/X0 v/s ω/ωn). Note that X increases gradually till it reaches a certain value of ω and then decreases. Values of X are smaller for greater ζ (or C) and also the peak occurs at slightly changed ω ( ). -

    2. Compare the plots for different values of damping factors and note the reduced response and slight change in resonance frequency. Hence note that resonance is damping-controlled and amplitude of vibration can be considerably reduced by damping. -

    3. Use the values of frequency of resonance, ωR, and damping factor, ζ, to find ωn from . Tally the value so obtained with the value obtained from . -

    - - -

     (c) Try this and observe what happens and why

    -

    -1.Compare the plots obtained through the experiments with the plots given in the books on Mechanical Vibration. -

    2.How does an over-damped system respond to a harmonic excitation, i.e. the value of damping coefficient C is greater than CC, or the value of ζ is greater than 1.? Refer to the text. Record/Comment yourself on the observations -

    -

     

    -
    - - - -
    -
    - - -
    -
    - Review Questions -
    -

    - - - -

    -

    A ]   State true or false

    - -

    1.    While carrying out the sine-sweep the natural frequency of the system need not fall in the frequency range of excitation

    - -

    2.    The amplitude of response of the system to harmonic excitation mainly depends on the damping

    - -

    3.    Resonance which is characterized by high value of response occurs when the frequency of excitation is equal to natural frequency of the system

    - -

    4.    If frequency of excitation cannot be changed, the resonance can be avoided by changing stiffness or mass but it requires change in basic design of the system.

    -

     

    -

    B ]   Why do we add damping to the system?

    -

     

    -

    C ]   How can we increase damping in the system? Explain taking example of a machine mounted on a resilient pad and the machine has a rotating imbalance

    - -

    -

     

    -

    -

     

    -

     

    -

    - - - - - - - - - -

    -

          

    - - -
    -
    - -
    -
    -
    - diff --git a/build/HarmonicExcitationSDOF/css/SMD.css b/build/HarmonicExcitationSDOF/css/SMD.css deleted file mode 100755 index 7f90504..0000000 --- a/build/HarmonicExcitationSDOF/css/SMD.css +++ /dev/null @@ -1,338 +0,0 @@ -*{ - margin:0; - padding:0; - -} - -#tabs{ - height: 600px; - width:1340px; - padding: 0; -} -#tabs-1{ - background: none repeat scroll 0 0 #EEEEEE; - height: 620px; - padding-bottom: 20px; - } -#diagram{ - width: 214px; - margin-left: -10px; -} -#CcVal { - margin-left: 20px; - margin-top: 4px; -} -#ef{ - width:350px; -} -#uservalues fieldset legend { - - text-shadow: 0 1px 1px #c0d576; -} -#note{ - margin-left: 489px; - width: 650px; -} -#omegaGen fieldset input{ - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px 3px 3px 3px; - font: italic 13px Georgia,"Times New Roman",Times,serif; - margin-bottom: 3px; - margin-left: 2px; - margin-right: 1px; - outline: medium none; - padding: 5px; -} - - -#uservalues fieldset input { - margin-bottom: 3px; - margin-left: 17px; - margin-right: 5px; - background: #ffffff; - border: none; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -khtml-border-radius: 3px; - border-radius: 3px; - font: italic 15px Georgia, "Times New Roman", Times, serif; - outline: none; - padding: 5px; - margin-top: 5px; - height: 27px; -} -#uservalues fieldset label -{ - margin-left: 5px; -} -#omegaGen fieldset p { - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - padding: 0px 2px; - margin-bottom: 1px; - - - border-bottom-width: 2px; - border-top-width: 2px; - - margin-top: -26px; - padding-top: 0; -} -#omegaGen fieldset{ - - border: medium none; - height: 62px; - margin-top: 16px; -} -#reload{ - margin-left: 156px; - margin-top: 39px; -} - - -#uservalues fieldset p -{ - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - padding: 0px 2px; - - -} -#uservalues fieldset{ - border: medium none; - color: #384313; - font-size: 13px; - font-weight: bold; - margin-top: 15px; - padding-bottom: 10px; - text-shadow: 0 1px 1px #C0D576 - - /*border: none; - margin-top: 15px; - color: #384313; - font-size: 13px; - font-weight: bold; - padding-bottom: 10px; - text-shadow: 0 1px 1px #c0d576;*/ -} -#uservalues{ - margin-left: 256px; - margin-top: 125px; - position: absolute; - top: 1px; - width: 203px; -} - -#m{ - left:55px; - top:50px; - width:auto; - height:auto; -} -#k{ - left:55px; - top:80px; - width:auto; - height:auto; -} -#c{ - left:55px; - top:110px; - width:auto; - height:auto; -} -#f{ - left:55px; - top:140px; - width:auto; - height:auto; -} -#omega1{ - left:55px; - top:200px; - width:auto; - height:auto; -} -#omega2{ - left:55px; - top:230px; - width:auto; - height:auto; -} -#run{ - margin-left: 54px; -} -#displayvalues{ - background: none repeat scroll 0 0 rgba(23, 150, 230, 0.3); - border: 2px solid rgba(255, 255, 255, 0.6); - border-radius: 5px 5px 5px 5px; - top: 660px; - line-height: 30px; - list-style: none outside none; - margin-bottom: 1px; - margin-left: 256px; - margin-top: -18px; - padding: 0 2px; - position: absolute; - width: 195px; - height: 95px; - padding-bottom: 20px; -} -#ctrpan{ - position:absolute; - left:49px; - top:-10px; - width:auto; - height:auto; -} -#conpan{ - text-align: center; -} -#xst{ - margin: 10px 0 0 5px; -} -#xstVal{ - border: 1px solid gray; - float: right; - height: 24px; - width: 89px; - margin-right: 61px; -} -#displayvalues label{ - margin-left: 0; - padding-bottom: 0; - -} -#displayvalues1 label{ - margin-left : -40px; -} - -#displayvalues span{ - float: right; - color : #696969; - margin-right: -107px; - margin-top: -2px; -} -#zetal{ - height: auto; - left: 45px; - position: absolute; - top: 54px; - width: auto; -} -#zetaVal{ - border: 1px solid gray; - height: 26px; - position: absolute; - width: 89px; - left: 45px; - top: 83px; -} -#omegan{ - margin-left: 16px; - margin-top: 3px; -} -#omeganVal{ - left:55px; - top:170px; - width:119px; - height:23px; - border:1px solid gray; -} -#displayvalues fieldset{ - border: none; -} -#graphHE1{ - position: absolute; - left: 60px; - bottom: 0px; - width: 423px; - height:528px; - border:1px solid gray; - margin-top: 5px; -} -#graphHE2{ - position:absolute; - left:34px; - bottom:0px; - width:423px; - height:528px; - border:1px solid gray; - top:30px; - margin-top: 5px; -} -#graph1 - { - bottom: 0; - height: 473px; - left: 423px; - position: absolute; - width: 454px; - top:156px; - } -#graph2 - { - bottom: 0; - height: 473px; - left: 880px; - position: absolute; - width: 454px; - } -#omegaGen{ - margin-left: 256px; - position: absolute; - top: 584px; - width: 203px; - height: 60px; -} -#omegaDisplayLabel{ - position:absolute; - font-size: 19px; - left: 136px; - top: 406px; - width: 28px; - height:20px; -} -#omegaDisplayValue{ - left: 165px; - top: 408px; - width: 80px; - position: absolute; - width: 94px; -} -.placeholder{ -/* color: D6D6D6;*/ -} - -#Showf{ - margin-left: 13px; - margin-top: 0px; - position: absolute; - top: 680px; -} -#errortext{ - font: italic 13px Georgia, "Times New Roman", Times, serif; -/* font-color: #335588;*/ -} - -#Box1 -{} \ No newline at end of file diff --git a/build/HarmonicExcitationSDOF/css/gstyle_buttons.css b/build/HarmonicExcitationSDOF/css/gstyle_buttons.css deleted file mode 100755 index a791a12..0000000 --- a/build/HarmonicExcitationSDOF/css/gstyle_buttons.css +++ /dev/null @@ -1,187 +0,0 @@ - -/*------------------------------------*\ - $WRAPPER -\*------------------------------------*/ -.buttons {/* Style as you wish (toolbar) */ -} -/* The Magnificent CLEARFIX */ -.buttons:before, .buttons:after { - content: "\0020"; - display: block; - height: 0; - visibility: hidden; -} -.buttons:after { - clear: both; -} -.buttons { - zoom: 1; -} -/* ------------------------ */ - - -/*------------------------------------*\ - $BUTTON -\*------------------------------------*/ -button { - text-decoration: none; - text-shadow: 0 1px 0 #fff; - font: bold 11px Helvetica, Arial, sans-serif; - color: #444; - line-height: 17px; - height: 18px; - display: inline-block; - padding: 5px 6px 4px 6px; - background: #F3F3F3; - border: solid 1px #D9D9D9; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -webkit-transition: border-color .20s; - -moz-transition: border-color .20s; - -o-transition: border-color .20s; - transition: border-color .20s; - height: 29px !important; - cursor: pointer; -} -button:hover { - background: #F4F4F4; - border-color: #C0C0C0; - color: #333; -} -button:active { - border-color: #4D90FE; - color: #4D90FE; - -moz-box-shadow:inset 0 0 10px #D4D4D4; - -webkit-box-shadow:inset 0 0 10px #D4D4D4; - box-shadow:inset 0 0 10px #D4D4D4; -} -button.bluebtn { - border: 1px solid #3079ED !important; - background: #4B8DF8; - background: -webkit-linear-gradient(top, #4C8FFD, #4787ED); - background: -moz-linear-gradient(top, #4C8FFD, #4787ED); - background: -ms-linear-gradient(top, #4C8FFD, #4787ED); - background: -o-linear-gradient(top, #4C8FFD, #4787ED); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.bluebtn:hover { - border: 1px solid #2F5BB7 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #4D90FE, #357AE8); - background: -moz-linear-gradient(top, #4D90FE, #357AE8); - background: -ms-linear-gradient(top, #4D90FE, #357AE8); - background: -o-linear-gradient(top, #4D90FE, #357AE8); -} -button.greenbtn { - border: 1px solid #29691D !important; - background: #3A8E00; - background: -webkit-linear-gradient(top, #3C9300, #398A00); - background: -moz-linear-gradient(top, #3C9300, #398A00); - background: -ms-linear-gradient(top, #3C9300, #398A00); - background: -o-linear-gradient(top, #3C9300, #398A00); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.greenbtn:hover { - border: 1px solid #2D6200 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #3C9300, #368200); - background: -moz-linear-gradient(top, #3C9300, #368200); - background: -ms-linear-gradient(top, #3C9300, #368200); - background: -o-linear-gradient(top, #3C9300, #368200); -} -button.redbtn { - border: 1px solid #D14836 !important; - background: #D64937; - background: -webkit-linear-gradient(top, #DC4A38, #D14836); - background: -moz-linear-gradient(top, #DC4A38, #D14836); - background: -ms-linear-gradient(top, #DC4A38, #D14836); - background: -o-linear-gradient(top, #DC4A38, #D14836); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.redbtn:hover { - border: 1px solid #B0281A !important; - background: #D14130; - background: -webkit-linear-gradient(top, #DC4A38, #C53727); - background: -moz-linear-gradient(top, #DC4A38, #C53727); - background: -ms-linear-gradient(top, #DC4A38, #C53727); - background: -o-linear-gradient(top, #DC4A38, #C53727); -} -button.action:hover { - -moz-box-shadow: 0 1px 0px #DDD; - -webkit-box-shadow: 0 1px 0px #DDD; - box-shadow:iset 0 1px 0px #DDD; -} -button.action:active { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - border-color: #C6C6C6 !important; -} -button.bluebtn:active { - border-color: #2F5BB7 !important; -} -button.greenbtn:active { - border-color: #2D6200 !important; -} -button.redbtn:active { - border-color: #B0281A !important; -} -/*------------------------------------*\ - $BUTTON LABEL -\*------------------------------------*/ - button span.label { - display: inline-block; - float: left; - line-height: 17px; - height: 18px; - padding: 0 1px; - overflow: hidden; - color: #444; - -webkit-transition: color .20s; - -moz-transition: color .20s; - -o-transition: color .20s; - transition: color .20s; -} -button span.label { - line-height: 15px !important; -} -button:hover .label.bluebtn { - color: #7090C8; -} -button:hover .label.greenbtn { - color: #42B449; -} -button:hover .label.yellow { - color: #F7CB38; -} -button.bluebtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2F5BB7 !important; -} -button.greenbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2D6200 !important; -} -button.redbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #B0281A !important; -} -button.action .label { - padding: 0 17px !important; -} -button.action:active .label { - color: #333 !important; -} -button.bluebtn:active .label, button.greenbtn:active .label, button.redbtn:active .label { - color: #FFF !important; -} diff --git a/build/HarmonicExcitationSDOF/css/images/Thumbs.db b/build/HarmonicExcitationSDOF/css/images/Thumbs.db deleted file mode 100755 index c3f2cf4..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/Thumbs.db and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/build/HarmonicExcitationSDOF/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png deleted file mode 100755 index 954e22d..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-bg_diagonals-thick_20_666666_40x40.png b/build/HarmonicExcitationSDOF/css/images/ui-bg_diagonals-thick_20_666666_40x40.png deleted file mode 100755 index 64ece57..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-bg_diagonals-thick_20_666666_40x40.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-bg_flat_10_000000_40x100.png b/build/HarmonicExcitationSDOF/css/images/ui-bg_flat_10_000000_40x100.png deleted file mode 100755 index abdc010..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-bg_flat_10_000000_40x100.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-bg_glass_100_f6f6f6_1x400.png b/build/HarmonicExcitationSDOF/css/images/ui-bg_glass_100_f6f6f6_1x400.png deleted file mode 100755 index 9b383f4..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-bg_glass_100_f6f6f6_1x400.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-bg_glass_100_fdf5ce_1x400.png b/build/HarmonicExcitationSDOF/css/images/ui-bg_glass_100_fdf5ce_1x400.png deleted file mode 100755 index a23baad..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-bg_glass_100_fdf5ce_1x400.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-bg_glass_65_ffffff_1x400.png b/build/HarmonicExcitationSDOF/css/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100755 index 42ccba2..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/build/HarmonicExcitationSDOF/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png deleted file mode 100755 index 39d5824..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/build/HarmonicExcitationSDOF/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png deleted file mode 100755 index f127367..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/build/HarmonicExcitationSDOF/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png deleted file mode 100755 index 359397a..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-icons_222222_256x240.png b/build/HarmonicExcitationSDOF/css/images/ui-icons_222222_256x240.png deleted file mode 100755 index b273ff1..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-icons_222222_256x240.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-icons_228ef1_256x240.png b/build/HarmonicExcitationSDOF/css/images/ui-icons_228ef1_256x240.png deleted file mode 100755 index a641a37..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-icons_228ef1_256x240.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-icons_ef8c08_256x240.png b/build/HarmonicExcitationSDOF/css/images/ui-icons_ef8c08_256x240.png deleted file mode 100755 index 85e63e9..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-icons_ef8c08_256x240.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-icons_ffd27a_256x240.png b/build/HarmonicExcitationSDOF/css/images/ui-icons_ffd27a_256x240.png deleted file mode 100755 index e117eff..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-icons_ffd27a_256x240.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/images/ui-icons_ffffff_256x240.png b/build/HarmonicExcitationSDOF/css/images/ui-icons_ffffff_256x240.png deleted file mode 100755 index 42f8f99..0000000 Binary files a/build/HarmonicExcitationSDOF/css/images/ui-icons_ffffff_256x240.png and /dev/null differ diff --git a/build/HarmonicExcitationSDOF/css/jquery-ui-1.8.11.custom.css b/build/HarmonicExcitationSDOF/css/jquery-ui-1.8.11.custom.css deleted file mode 100755 index 87f47a9..0000000 --- a/build/HarmonicExcitationSDOF/css/jquery-ui-1.8.11.custom.css +++ /dev/null @@ -1,312 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip, rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family:Calibri, Calibri-serif; font-size:16px; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family:Calibri, Calibri-serif; font-size: 16px; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* - * jQuery UI Tabs 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/build/HarmonicExcitationSDOF/css/jsxgraph.css b/build/HarmonicExcitationSDOF/css/jsxgraph.css deleted file mode 100755 index 4dd0e56..0000000 --- a/build/HarmonicExcitationSDOF/css/jsxgraph.css +++ /dev/null @@ -1,46 +0,0 @@ -/* -*/ -.jxgbox { - position:relative; /* for IE 7 */ - overflow:hidden; - background-color:#ffffff; - border-style:solid; - border-width:1px; - border-color:#356AA0; - -moz-border-radius:10px; - -webkit-border-radius:10px; - - /* - -moz-box-shadow:black 2px 2px 2px -2px, #151A10 4px 4px; - -webkit-box-shadow:4px 4px 3px #151A10; - */ -} - -.JXGtext { - background-color:transparent; - font-family: Arial, Helvetica, Geneva; - padding:0px; - margin:0px; - /*line-height:100%;*/ /* This has to be commented out. Otherwise subscripts are not visible in IE */ - /*border-style:dotted;*/ - /*border-width:0.4px;*/ -} - -.navbar { - color: #aaaaaa; - background-color: #f5f5f5; - padding: 2px; - position: absolute; - font-size: 10px; - cursor: pointer; - z-index: 100; - right: 5px; - bottom: 5px; -} -#graphHE1_jxgBoard1_infobox -{ - background-color: black; -} -.JXGinfobox{ - background-color: black; -} diff --git a/build/HarmonicExcitationSDOF/default.html b/build/HarmonicExcitationSDOF/default.html deleted file mode 100755 index f770b6e..0000000 --- a/build/HarmonicExcitationSDOF/default.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - -
    - - - -
    - - - - - - - -
    - - - -
    - - - -
    - - Simple Pendulum - -
    - - - - - -
    - - -
    - -
    - - -
    - - -
    - Introduction -
    - - -
    -

    - In this module, basic concepts of simple oscillator - are explained. Initially, an example of simple - pendulum is taken and the basic terminology i.e., - what is initial displacement, - initial velocity,natural frequency - and time period are explained. - Each of these terms is illustrated by giving an - example, where user can enter his value and observe - the behavior of structure for his input. -

    - -

    - Simple harmonic oscillator consists of a - mass (m) hanging from a string of - length (l), fixed at a pivot point P. - When the mass is displaced from its mean - position by giving some initial displacement - (angle), oscillator starts swinging back and fourth - with periodic motion. -

    - - pendulum -
    - - -
    - - -
    - -
    - - -
    - - -
    - Theory -
    - - - -
    -

    - There are two solutions to \(ax^2 + bx + c = 0\) and - they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - By applying Newton's second law for - rotational systems, the equation of motion for the - pendulum may be obtained. -

    - -

    - Where, τ = Torque ; I = - Moment of Inertia; α = - Angular Velocity. m is mass of the - oscillator, l is the length of the oscillator and theta is initial - displacement. The above equation can be rearranged as -

    - -

    - If the amplitude of - angular displacement is - small then we can use the approximation - (sinθ ≈ θ). - By considering the above approximation, the equation - of motion reduces to : -

    - -

    - The solution for equation of simple harmonic oscillator is -

    - -

    - where, θ(t) is the history of oscillation, - θ0 is the initial angle, - &omega=(g/l)1/2 is the - natural frequency of - the motion. -

    -
    -
    - - -
    - -
    - - -
    - -
    - Objective -
    - -
    -

    - Objective of simple harmonic oscillator experiment - is to understand the concept of time period - (natural frequency) in harmonic - oscillations . -

    - -
    - -
    - - -
    - -
    - - -
    - -
    - Experiment -
    - -
    -

    - -

    -
    - -
    - -
    - -
    - - -
    - -
    - Manual -
    - -
    -

    - Start the experiment with the default values of - length, mass and intial displacement (in angle). - Pause the experiment after few cycles and note - the observation. -

    - -

    Observation 1:

    -
      - -
    1. - Find the time period of the pendulum by noting the - time interval of any one complete cycle from the - response graph. -
    2. - -
    3. - You may note that this time period value is same - for any complete cycle. - Read More -
    4. - -
    - -
    - -
    - -
    - -
    - - -
    - -
    - Quizzes -
    - -
    - -

    - - Q1. - Time taken for one complete oscillation - is called Time Period of the oscillator.
    - - True
    - - False

    - - Q2. - Time period of the oscillator is constant for - given values of mass, length and initial - conditions.
    - - True
    - - False

    - - Q3. - Value of Time period depends on initial - conditions.
    - - True
    - - False

    - - Q4. - Value of time period depends on mass.
    - - True
    - - False

    - - Q5. - Value of time period depends on length of the - oscillator.
    - - True
    - - False

    - -

    - -
    - -
    - -
    - -
    - - -
    - -
    - Procedure -
    - -
    -

    - Procedure for the experiment is as follows -

    -
    - -
    - - -
    - -
    - - -
    - -
    - Further Readings -
    - -
    - -
    - -
    - -
    - - - - - - - -
    - -
    - -
    - - - -
    - -
    - -
    - - - diff --git a/build/HarmonicExcitationSDOF/index.html b/build/HarmonicExcitationSDOF/index.html deleted file mode 100755 index 294c518..0000000 --- a/build/HarmonicExcitationSDOF/index.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - diff --git a/build/HarmonicExcitationSDOF/js/jQueryOperations.js b/build/HarmonicExcitationSDOF/js/jQueryOperations.js deleted file mode 100755 index ccb0f12..0000000 --- a/build/HarmonicExcitationSDOF/js/jQueryOperations.js +++ /dev/null @@ -1,295 +0,0 @@ -var brd; -var m,k,c,f0,omega1,omega2; -var Cc,zeta,omegaN,Xst; -var x=[]; -var y=[]; -var ti=[]; -var smd_wave; -var brd; -var in_dataarray=[]; -var start_pt=[]; -var nr=0; -var maxX = 0.0; -var maxY = 0.0; -var minY = 10.0; -var p1=[]; -var p2=[]; -var d; -var omega=[]; -var X=[]; -var pie=[]; -var Xx=[]; -var Oomega=[]; -var check=0; - -function createGraph1() -{ - brd1 = JXG.JSXGraph.initBoard('graphHE1', { - originX: 50, - originY: 400, - unitX: 100,// WEIGHT - unitY: 100, // VOLTAGE - showCopyright:false, - //grid:true, - }); -//var grid = brd1.create('grid',[],{hasGrid:true,gridX:1}); - axisx = brd1.create('axis', [ - [0, 0], - [1, 0] - ]); - - axisy = brd1.create('axis', [ - [0, 0], - [0, 1] - ]); - - var text_Y = brd1.create('text', [-0.4, 3.5, 'X/Xst'], { - style: 5 - }); - var text_X = brd1.create('text', [3.2, -0.2, 'ω / ωn'], { - style: 5 - }); - /* var scale1=brd1.create('text', [25, 2, 'Scale:'], { - style: 5 - }); - var scale2=brd1.create('text', [25, 1.8, 'X axis: 1 unit = 1 sec'], { - style: 5 - }); - var scale3=brd1.create('text', [25, 1.6, 'Y axis: 1 unit = 5 mm'], { - style: 5 - });*/ -} - -function createGraph2() -{ -brd2 = JXG.JSXGraph.initBoard('graphHE2', { - originX: 50, - originY: 400, - unitX: 100,// WEIGHT - unitY: 100, // VOLTAGE, - showCopyright:false, - //grid:true, - }); -var grid = brd2.create('grid',[],{hasGrid:true,gridX:0.5}); - axisx = brd2.create('axis', [ - [0, 0], - [1, 0] - ]); - - axisy = brd2.create('axis', [ - [0, 0], - [0, 1] - ]); - - var text_Y = brd2.create('text', [-0.4, 3.5, 'φRad'], { - style: 5 - }); - var text_X = brd2.create('text', [3.2, -0.2, 'ω/ωn'], { - style: 5 - }); - /* var scale1=brd2.create('text', [7, 2, 'Scale:'], { - style: 5 - }); - var scale2=brd2.create('text', [8, 1.8, 'X axis: 1 unit = 5 unit'], { - style: 5 - }); - var scale3=brd2.create('text', [8, 1.6, 'Y axis: 1 unit = 5 unit'], { - style: 5 - });*/ -} - -function calcCc() { - m = parseFloat($("#m").val()); - k = parseFloat($('#k').val()); - Cc = 2 * Math.sqrt(k * m); - $("#cc").val(Cc.toFixed(3)); -} -function showDialog(msg) { - $("#Formula1").html(msg) - $("#Formula1").dialog(); -} -function calculate() -{ - //$("#Box1").html(""); - $("#note").html("Move the Cursor on the points[red dots] plotted on the graph to see X and Y coordinates"); - var errorMsg = ""; - m=parseFloat($("#m").val()); - if( ( m!=null || m!=0 )&&(m>=50&&m<=100) ) - { - m=m; - check+=1; - } - else - { - errorMsg += "Please Enter m between 50-100
    "; - //$("#Box1").append("Please Enter m between 50-100
    ") - showDialog(errorMsg); - check=0; - } - k=parseFloat($("#k").val()); - if( ( k!=null || k!=0 )&&(k>=20000&&k<=100000)) - { - k=k; - check+=1; - } - else - { - errorMsg += "Please Enter 'k' between 20000-100000
    "; - showDialog(errorMsg); - check=0; - } - c=parseFloat($("#c").val()); - if( ( c!=null || c!=0 )&&(c>=1000&&c<=2500)) - { - c=c; - check+=1; - } - else - { - errorMsg += "Please Enter C between 2000-2500
    "; - showDialog(errorMsg); - // $("#Box1").append("Please Enter C between 2000-2500
    ") - check=0; - } - f0=parseFloat($("#f").val()); - fa=parseFloat($("#f").val()); - if( ( f0!=null || f0!=0 )&&(f0>=100&&f0<=1000)) - { - if(f0>500){ - f0=500; - check+=1; - }else{ - f0=f0; - check+=1; - } - - } - else - { - errorMsg += "Please Enter f0 between 100-1000
    "; - showDialog(errorMsg); - //$("#Box1").append("Please Enter f0 between 100-1000
    ") - check=0; - } - omega1=parseFloat($("#omega1").val()); - omega2=parseFloat($("#omega2").val()); - omegaChange=omega1; - omegaChange1=omega1; - Xst=f0/k; - Xst1=fa/k; - //omegaN=Math.sqrt(k/m); - d=(omega2-omega1)/5000; - Cc=2*Math.sqrt(k*m); - //zeta = 0.1; - zeta=c/Cc; - for(var i=1;i<5000;i++) - { - omega[i]=omega1+(i-1)*d; - } - for(var i=1;i=50&&m<=100) ){ - m = m; - check += 1; - }else{ - check = 0; - errorMsg += "Please Enter m between 50-100
    "; - showDialog(errorMsg); - } - - k = parseFloat($("#k").val()); - if( ( k!= null || k!=0 )&&(k!=0) && !isNaN(k)){ - k = k; - check += 1; - }else{ - check = 0; - errorMsg += "Please give the k values except 0
    "; - showDialog(errorMsg); - } - c=parseFloat($("#c").val()); - if( ( c!=null || c!=0 )&&(c>=2000&&c<=2500)) - { - c=c; - check+=1; - } - else - { - check=0; - errorMsg +="Please Enter C between 2000-2500
    "; - showDialog(errorMsg); - } - f0=parseFloat($("#f").val()); - if( ( f0!=null || f0!=0 )&&(f0>=100&&f0<=1000)) - { - f0=f0; - check+=1; - } - else - { - errorMsg += "Please Enter f0 between 100-1000"; - showDialog(errorMsg); - } - omega1=parseFloat($("#omega1").val()); - omega2=parseFloat($("#omega2").val()); - omegaChange=omega1; - Xst=f0/k; - d=(omega2-omega1)/5000; - Cc=2*Math.sqrt(k*m); - zeta=c/Cc; - for(var i=1;i<5000;i++) - { - omega[i]=omega1+(i-1)*d; - } - for(var i=1;i").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="
    a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
    ",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div
    ","
    "]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
    ").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
    ";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file diff --git a/build/HarmonicExcitationSDOF/js/jquery-ui-1.8.11.custom.min.js b/build/HarmonicExcitationSDOF/js/jquery-ui-1.8.11.custom.min.js deleted file mode 100755 index 2615584..0000000 --- a/build/HarmonicExcitationSDOF/js/jquery-ui-1.8.11.custom.min.js +++ /dev/null @@ -1,68 +0,0 @@ -/*! - * jQuery UI 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.11",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, -NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, -"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); -if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, -"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, -d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); -c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a
    ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.11"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k. -*/ - var JXG={};(function(){var d,e;JXG.countDrawings=0;JXG.countTime=0;JXG.require=function(f){};JXG.rendererFiles=[];JXG.rendererFiles.svg="SVGRenderer";JXG.rendererFiles.vml="VMLRenderer";JXG.rendererFiles.canvas="CanvasRenderer";JXG.baseFiles=null;JXG.requirePath="";for(d=0;d0?h[0].length:0,w=h.length,v=this.matrix(q,p),u,t,x,r;for(u=0;u0?r[0].length:0;l=this.matrix(q,h);for(p=0;pz){z=d.abs(m[v][u]);h=v}}if(z<=e.Math.eps){return false}if(h>u){for(t=0;tm||j<0){return NaN}j=d.floor(j);m=d.floor(m);if(j===0||j===m){return 1}h=1;for(l=0;l0){return d.exp(h*d.log(d.abs(j)))}else{return NaN}}},squampow:function(k,j){var h;if(d.floor(j)===j){h=1;if(j<0){k=1/k;j*=-1}while(j!=0){if(j&1){h*=k}j>>=1;k*=k}return h}else{return this.pow(k,j)}},normalize:function(k){var h=2*k[3],l=k[4]/(h),m,j;k[5]=l;k[6]=-k[1]/h;k[7]=-k[2]/h;if(l===Infinity||isNaN(l)){m=d.sqrt(k[1]*k[1]+k[2]*k[2]);k[0]/=m;k[1]/=m;k[2]/=m;k[3]=0;k[4]=1}else{if(d.abs(l)>=1){k[0]=(k[6]*k[6]+k[7]*k[7]-l*l)/(2*l);k[1]=-k[6]/l;k[2]=-k[7]/l;k[3]=1/(2*l);k[4]=1}else{j=(l<=0)?(-1):(1);k[0]=j*(k[6]*k[6]+k[7]*k[7]-l*l)*0.5;k[1]=-j*k[6];k[2]=-j*k[7];k[3]=j/2;k[4]=j*l}}return k}}})(JXG,Math);JXG.Math.Numerics=(function(e,d){var f={rk4:{s:4,A:[[0,0,0,0],[0.5,0,0,0],[0,0.5,0,0],[0,0,1,0]],b:[1/6,1/3,1/3,1/6],c:[0,0.5,0.5,1]},heun:{s:2,A:[[0,0],[1,0]],b:[0.5,0.5],c:[0,1]},euler:{s:1,A:[[0]],b:[1],c:[0]}};return{Gauss:function(g,s){var u=e.Math.eps,h=g.length>0?g[0].length:0,q,t,r,p,m,l=function(v,n){var k=this[v];this[v]=this[n];this[n]=k};if((h!==s.length)||(h!==g.length)){throw new Error("JXG.Math.Numerics.Gauss: Dimensions don't match. A must be a square matrix and b must be of the same length as A.")}q=new Array(h);t=s.slice(0,h);for(r=0;rp;r--){if(d.abs(q[r][p])>u){if(d.abs(q[p][p])0?r[0].length:0;for(p=g-1;p>=0;p--){for(l=s-1;l>p;l--){h[p]-=r[p][l]*h[l]}h[p]/=r[p][p]}return h},gaussBareiss:function(v){var l,u,y,q,m,g,h,r,w,x=e.Math.eps;h=v.length;if(h<=0){return 0}if(v[0].length=x){break}}if(q==h){return 0}for(m=l;mr){r=g}v+=g;if(g>=B){g=d.atan2(2*h[s][q],h[s][s]-h[q][q])*0.5;t=d.sin(g);y=d.cos(g);for(p=0;pB&&u<2000);return[h,m]},NewtonCotes:function(g,k,h){var l=0,q=h&&typeof h.number_of_nodes==="number"?h.number_of_nodes:28,n={trapez:true,simpson:true,milne:true},r=h&&h.integration_type&&n.hasOwnProperty(h.integration_type)&&n[h.integration_type]?h.integration_type:"milne",p=(g[1]-g[0])/q,m,j,s;switch(r){case"trapez":l=(k(g[0])+k(g[1]))*0.5;m=g[0];for(j=0;j0){throw new Error("JSXGraph: INT_SIMPSON requires config.number_of_nodes dividable by 2.")}s=q/2;l=k(g[0])+k(g[1]);m=g[0];for(j=0;j0){throw new Error("JSXGraph: Error in INT_MILNE: config.number_of_nodes must be a multiple of 4")}s=q*0.25;l=7*(k(g[0])+k(g[1]));m=g[0];for(j=0;jm){q=this.D(p,j)(g);l+=2;if(d.abs(q)>m){g-=n/q}else{g+=(d.random()*0.2-1)}n=p.apply(j,[g]);l++;k++}return g},root:function(j,g,h){return this.fzero(j,g,h)},Neville:function(l){var h=[],g=function(m){return function(x,n){var q,w,y,z=e.Math.binomial,v=l.length,p=v-1,r=0,u=0;if(!n){y=1;for(q=0;q=0;m--){u[m]=(q[m]-(v[m+1]*u[m+1]))/p[m]}for(m=g-3;m>=0;m--){u[m+1]=u[m]}u[0]=0;u[g-1]=0;return u},splineEval:function(h,z,v,B){var k=d.min(z.length,v.length),p=1,m=false,A=[],r,q,w,u,t,s,g;if(e.isArray(h)){p=h.length;m=true}else{h=[h]}for(r=0;rz[k-1])){return NaN}for(q=1;q=0;k--){l=l.concat(["(",g[k].toPrecision(j),")"]);if(k>1){l=l.concat(["*",h,"",k,"<","/sup> + "])}else{if(k===1){l=l.concat(["*",h," + "])}}}return l.join("")},lagrangePolynomial:function(j){var g=[],h=function(w,l){var p,m,t,v,y,q=0,r=0,u,n;t=j.length;if(!l){for(p=0;p0&&e.isPoint(q[0])){j=1}else{throw new Error("JSXGraph: Can't create regressionPolynomial. Wrong parameters.")}}r=function(G,t){var w,v,D,A,F,u,E,H,C,z=q.length;C=d.floor(h());if(!t){if(j===1){n=[];m=[];for(w=0;w=0;w--){H=(H*G+g[w])}return H};r.getTerm=function(){return k};return r},bezier:function(j){var g,h=function(k){return function(m,l){var q=d.floor(m)*3,p=m%1,n=1-p;if(!l){g=d.floor(j.length/3)}if(m<0){return j[0][k]()}if(m>=g){return j[j.length-1][k]()}if(isNaN(m)){return NaN}return n*n*(n*j[q][k]()+3*p*j[q+1][k]())+(3*n*j[q+2][k]()+p*j[q+3][k]())*p*p}};return[h("X"),h("Y"),0,function(){return d.floor(j.length/3)}]},bspline:function(k,g){var l,n=[],m=function(s,p){var q,r=[];for(q=0;q=A){w=0}else{w=v[r+1]}y=B[r+u-1]-B[r];if(y==0){v[r]=0}else{v[r]=(z-B[r])/y*x}y=B[r+u]-B[r+1];if(y!=0){v[r]+=(B[r+u]-z)/y*w}}}return v},h=function(p){return function(w,r){var q=k.length,A,v,x,z=q-1,u=g;if(z<=0){return NaN}if(z+2<=u){u=z+1}if(w<=0){return k[0][p]()}if(w>=z-u+2){return k[z][p]()}l=m(z,u);x=d.floor(w)+u-1;n=j(w,l,z,u,x);A=0;for(v=x-u+1;v<=x;v++){if(v=0){A+=k[v][p]()*n[v]}}return A}};return[h("X"),h("Y"),0,function(){return k.length-1}]},D:function(k,l){var j=0.00001,g=1/(j*2);if(arguments.length==1||(arguments.length>1&&!e.exists(arguments[1]))){return function(h,m){return(k(h+j,m)-k(h-j,m))*g}}else{return function(h,m){return(k.apply(l,[h+j,m])-k.apply(l,[h-j,m]))*g}}},riemann:function(s,m,t,k,p){var l=[],A=[],r,q=0,z,w=k,u,h,v,g;m=d.floor(m);l[q]=w;A[q]=0;if(m>0){z=(p-k)/m;g=z*0.01;for(r=0;ru){u=v}}}}}}q++;l[q]=w;A[q]=u;q++;w+=z;if(t==="trapezodial"){u=s(w)}l[q]=w;A[q]=u;q++;l[q]=w;A[q]=0}}return[l,A]},riemannsum:function(p,k,r,j,l){var q=0,m,v,u=j,s,h,t,g;k=d.floor(k);if(k>0){v=(l-j)/k;g=v*0.01;for(m=0;ms){s=t}}}}}}}q+=v*s;u+=v}}return q},rungeKutta:function(g,H,p,m,G){var q=[],n=[],F=(p[1]-p[0])/m,v=p[0],J,E,D,B,A,C=H.length,w,u=[],z=0;if(e.isString(g)){g=f[g]||f.euler}w=g.s;for(J=0;J0){if(e.isArray(H)){return this.fminbr(G,[K,J],M)}else{return this.Newton(G,K,M)}}I=K;w=A;while(y=F&&d.abs(A)>d.abs(x)){t=I-J;if(K==I){l=x/A;v=t*l;s=1-l}else{s=A/w;l=x/w;k=x/A;v=k*(t*s*(s-l)-(J-K)*(l-1));s=(s-1)*(l-1)*(k-1)}if(v>0){s=-s}else{v=-v}if(v<(0.75*t*s-d.abs(F*s)*0.5)&&v0){m=F}else{m=-F}}K=J;A=x;J+=m;x=G.apply(M,[J]);B++;if((x>0&&w>0)||(x<0&&w<0)){I=K;w=A}y++}e.debug("fzero: maxiter="+g+" reached.");return J},fminbr:function(I,J,N){var M,K,m,u,s,h,k,j,A=(3-d.sqrt(5))*0.5,F=e.Math.eps,C=d.sqrt(e.Math.eps),g=50,E=0,z,L,H,n,D,B,y,l,G=0;if(!e.isArray(J)||J.length<2){throw new Error("JXG.Math.Numerics.fminbr: length of array x0 has to be at least two.")}M=J[0];K=J[1];u=M+A*(K-M);k=I.apply(N,[u]);G++;m=u;s=u;h=k;j=k;while(E=H){y=(m-s)*(h-k);B=(m-u)*(h-j);D=(m-u)*B-(m-s)*y;B=2*(B-y);if(B>0){D=-D}else{B=-B}if(d.abs(D)B*(M-m+2*H)&&D0){n=H}else{n=-H}}y=m+n;l=I.apply(N,[y]);G++;if(l<=h){if(y0){return this.sum(d)/d.length}else{return 0}};JXG.Math.Statistics.median=function(e){var f,d;if(e.length>0){f=e.slice(0,e.length);f.sort(function(h,g){return h-g});d=f.length;if(d%2==1){return f[parseInt(d*0.5)]}else{return(f[d*0.5-1]+f[d*0.5])*0.5}}else{return 0}};JXG.Math.Statistics.variance=function(f){var e,h,g,d;if(f.length>1){e=this.mean(f);h=0;for(g=0,d=f.length;g0){return this.mean(this.multiply(d,e))}else{return 0}};JXG.Math.Statistics.max=function(e){var g,f,d;if(e.length==0){return NaN}g=e[0];for(f=1,d=e.length;fg)?(e[f]):g}return g};JXG.Math.Statistics.min=function(e){var g,f,d;if(e.length==0){return NaN}g=e[0];for(f=1,d=e.length;f0){l=m[q].generatePolynomial();for(g=0;g0)){if((y.toOrigin!==e)&&(y.toOrigin!=null)&&C(y.toOrigin.id,n.listOfFreePoints)){k=y.toOrigin}else{k=n.listOfFreePoints[0]}v=k.symbolic.x;t=k.symbolic.y;for(D=0;D1)){if((y.to10!==e)&&(y.to10!=null)&&(y.to10.id!=y.toOrigin.id)&&C(y.to10.id,n.listOfFreePoints)){j=y.to10}else{if(n.listOfFreePoints[0].id==k.id){j=n.listOfFreePoints[1]}else{j=n.listOfFreePoints[0]}}p=d.Math.Geometry.rad([1,0],[0,0],[j.symbolic.x,j.symbolic.y]);E=Math.cos(-p);x=Math.sin(-p);for(D=0;Dd.Math.eps)){G=j.symbolic.x;for(D=0;Ds){l+=Math.PI}r=Math.cos(l)+q[1];p=Math.sin(l)+q[2];return new JXG.Coords(JXG.COORDS_BY_USER,[r,p],m)},reflection:function(q,m,f){var h=m.coords.usrCoords,r=q.point1.coords.usrCoords,g=q.point2.coords.usrCoords,e,l,d,j,n,k,p;if(!JXG.exists(f)){f=m.board}n=g[1]-r[1];k=g[2]-r[2];e=h[1]-r[1];l=h[2]-r[2];p=(n*l-k*e)/(n*n+k*k);d=h[1]+2*p*k;j=h[2]-2*p*n;return new JXG.Coords(JXG.COORDS_BY_USER,[d,j],f)},rotation:function(d,p,h,j){var l=p.coords.usrCoords,e=d.coords.usrCoords,g,n,k,q,f,m;if(!JXG.exists(j)){j=p.board}g=l[1]-e[1];n=l[2]-e[2];k=Math.cos(h);q=Math.sin(h);f=g*k-n*q+e[1];m=g*q+n*k+e[2];return new JXG.Coords(JXG.COORDS_BY_USER,[f,m],j)},perpendicular:function(s,q,j){var h=s.point1.coords.usrCoords,g=s.point2.coords.usrCoords,e=q.coords.usrCoords,n,m,l,r,k,f,d,p;if(!JXG.exists(j)){j=q.board}if(q==s.point1){n=h[1]+g[2]-h[2];m=h[2]-g[1]+h[1];l=true}else{if(q==s.point2){n=g[1]+h[2]-g[2];m=g[2]-h[1]+g[1];l=false}else{if(((Math.abs(h[1]-g[1])>JXG.Math.eps)&&(Math.abs(e[2]-(h[2]-g[2])*(e[1]-h[1])/(h[1]-g[1])-h[2])JXG.Math.eps&&(Math.abs(f[0])0){e=m.midpoint.Dist(z.point1);K=m.midpoint.Dist(z.point2);I=((e*e)+(D*D)-(K*K))/(2*D);B=(e*e)-(I*I);B=(B<0)?0:B;G=Math.sqrt(B);E=m.Radius();p=Math.sqrt((E*E)-G*G);C=J[1]-L[1];A=J[2]-L[2];k=g[1]+(G/D)*A;j=g[2]-(G/D)*C;e=(J[1]*A)-(J[2]*C);K=(k*C)+(j*A);F=(A*A)+(C*C);if(Math.abs(F)r){return[0]}else{if(v=d&&Math.abs(e[3])=d){return this.meetLineCircle(g,e,f,h)}else{return this.meetCircleCircle(g,e,f,h)}}}},meetLineLine:function(e,d,f,h){var g=JXG.Math.crossProduct(e,d);if(Math.abs(g[0])>JXG.Math.eps){g[1]/=g[0];g[2]/=g[0];g[0]=1}return new JXG.Coords(JXG.COORDS_BY_USER,g,h)},meetLineCircle:function(j,e,p,q){var v,u,s,r,l,h,g,f,m,w;if(e[4]=0){m=Math.sqrt(m);w=[(-g+m)/(2*h),(-g-m)/(2*h)];return((p==0)?new JXG.Coords(JXG.COORDS_BY_USER,[-w[0]*(-l[1])-r*l[0],-w[0]*l[0]-r*l[1]],q):new JXG.Coords(JXG.COORDS_BY_USER,[-w[1]*(-l[1])-r*l[0],-w[1]*l[0]-r*l[1]],q))}else{return new JXG.Coords(JXG.COORDS_BY_USER,[NaN,NaN],q)}},meetCircleCircle:function(f,d,e,g){var h;if(f[4]JXG.Math.eps&&m<10){B=A(q);z=-y(p);x=k(q);w=-j(p);g=B*w-z*x;q-=(w*v-z*u)/g;p-=(B*u-x*v)/g;v=t.X(q)-s.X(p);u=t.Y(q)-s.Y(p);r=v*v+u*u;m++}arguments.callee.t1memo=q;arguments.callee.t2memo=p;if(Math.abs(q)0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1)){v=20;w=(g.maxX()-g.minX())/v;x=g.minX();for(u=0;u0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1){break}x+=w}}p=l;arguments.callee.t2memo=p}if(Math.abs(h(p))>JXG.Math.eps){k=0}else{k=1}return(new JXG.Coords(JXG.COORDS_BY_USER,[k,g.X(p),g.Y(p)],j))},projectPointToCircle:function(m,d,f){var j=m.coords.distance(JXG.COORDS_BY_USER,d.midpoint.coords),e=m.coords.usrCoords,g=d.midpoint.coords.usrCoords,l,k,h;if(!JXG.exists(f)){f=m.board}if(Math.abs(j)r.maxX()){q=r.minX()+q-r.maxX()}C=new JXG.Coords(JXG.COORDS_BY_USER,[r.X(q),r.Y(q)],h)}else{if(r.curveType=="plot"){B=p;for(v=0;v=JXG.Math.eps){g=(A*z+e*d)/k;s=Math.sqrt(A*A+e*e-g*(A*z+e*d))}else{g=0;s=Math.sqrt(A*A+e*e)}if(g>=0&&g<=1&&sJXG.Math.eps){for(h=2;h>0;h--){v[l][h]/=v[l][0]}v[l][0]=1}}e=false;d=false;if(!r&&q.scrCoords[1]>=0&&q.scrCoords[1]<=g.board.canvasWidth&&q.scrCoords[2]>=0&&q.scrCoords[2]<=g.board.canvasHeight){e=true}if(!f&&p.scrCoords[1]>=0&&p.scrCoords[1]<=g.board.canvasWidth&&p.scrCoords[2]>=0&&p.scrCoords[2]<=g.board.canvasHeight){d=true}if(Math.abs(v[1][0])g.board.canvasHeight){k=v[2]}else{k=v[3]}}else{if(v[1][2]>g.board.canvasHeight){m=v[2];if(v[3][2]<0){k=v[0]}else{k=v[3]}}else{m=v[1];if(v[3][2]<0){k=v[0]}else{if(v[3][2]>g.board.canvasHeight){k=v[2]}else{k=v[3]}}}}}}m=new JXG.Coords(JXG.COORDS_BY_SCREEN,m.slice(1),g.board);k=new JXG.Coords(JXG.COORDS_BY_SCREEN,k.slice(1),g.board);if(!e&&!d){if(!r&&f&&!this.isSameDirection(q,p,m)&&!this.isSameDirection(q,p,k)){return}else{if(r&&!f&&!this.isSameDirection(p,q,m)&&!this.isSameDirection(p,q,k)){return}}}if(!e){if(!d){if(this.isSameDirection(q,p,m)){if(!this.isSameDirection(q,p,k)){t=m;u=k}else{if(JXG.Math.Geometry.affineDistance(p.usrCoords,m.usrCoords)=0&&k>=0){if((d>=0&&j>=0)||(d<=0&&j<=0)){g=true}}else{if(e<=0&&k<=0){if((d>=0&&j>=0)||(d<=0&&j<=0)){g=true}}}return g},updateTicks:function(e,g,d,h,f){},removeTicks:function(d){this.remove(this.getElementById(d.id+"_ticks"))},drawCurve:function(d){this.appendChildPrim(this.createPrim("path",d.id),d.layer);this.appendNodesToElement(d,"path");this.updateVisual(d,{shadow:true},true);this.updateCurve(d)},updateCurve:function(d){this.updateVisual(d);this.updatePathPrim(d.rendNode,this.updatePathStringPrim(d),d.board);this.makeArrows(d)},drawCircle:function(d){this.appendChildPrim(this.createPrim("ellipse",d.id),d.layer);this.appendNodesToElement(d,"ellipse");this.updateCircle(d)},updateCircle:function(e){this.updateVisual(e);var d=e.Radius();if(d>0&&!isNaN(d+e.midpoint.coords.scrCoords[1]+e.midpoint.coords.scrCoords[2])&&d*e.board.stretchX<20000){this.updateEllipsePrim(e.rendNode,e.midpoint.coords.scrCoords[1],e.midpoint.coords.scrCoords[2],(d*e.board.stretchX),(d*e.board.stretchY))}},drawPolygon:function(d){this.appendChildPrim(this.createPrim("polygon",d.id),d.layer);this.appendNodesToElement(d,"polygon");this.updatePolygon(d)},updatePolygon:function(d){this.updateVisual(d,{stroke:true,dash:true});this.updatePolygonPrim(d.rendNode,d)},drawText:function(d){var e;if(d.display=="html"){e=this.container.ownerDocument.createElement("div");e.style.position="absolute";e.style.color=d.visProp.strokeColor;e.className="JXGtext";e.style.zIndex="10";this.container.appendChild(e);e.setAttribute("id",this.container.id+"_"+d.id)}else{e=this.drawInternalText(d)}e.style.fontSize=d.board.options.text.fontSize+"px";d.rendNode=e;d.htmlStr="";this.updateText(d)},drawInternalText:function(d){},updateText:function(d){if(!d.visProp.visible){return}if(isNaN(d.coords.scrCoords[1]+d.coords.scrCoords[2])){return}this.updateTextStyle(d);if(d.display=="html"){d.rendNode.style.left=(d.coords.scrCoords[1])+"px";d.rendNode.style.top=(d.coords.scrCoords[2]-this.vOffsetText)+"px";d.updateText();if(d.htmlStr!=d.plaintextStr){d.rendNode.innerHTML=d.plaintextStr;if(d.board.options.text.useASCIIMathML){AMprocessNode(d.rendNode,false)}d.htmlStr=d.plaintextStr;if(d.board.options.text.useMathJax){MathJax.Hub.Typeset(d.rendNode)}}this.transformImage(d,d.transformations)}else{this.updateInternalText(d)}},updateInternalText:function(d){},updateTextStyle:function(e){var d;if(e.visProp.fontSize){if(typeof e.visProp.fontSize=="function"){d=e.visProp.fontSize();e.rendNode.style.fontSize=(d>0?d:0)}else{e.rendNode.style.fontSize=(e.visProp.fontSize)}}},drawImage:function(d){},updateImageURL:function(d){},updateImage:function(d){this.updateRectPrim(d.rendNode,d.coords.scrCoords[1],d.coords.scrCoords[2]-d.size[1],d.size[0],d.size[1]);this.updateImageURL(d);this.transformImage(d,d.transformations);this.updateVisual(d,{stroke:true,dash:true},true)},joinTransforms:function(d,n){var g=[[1,0,0],[0,1,0],[0,0,1]],l=[[1,0,0],[-d.board.origin.scrCoords[1],1,0],[-d.board.origin.scrCoords[2],0,1]],k=[[1,0,0],[0,1/d.board.stretchX,0],[0,0,-1/d.board.stretchY]],e=[[1,0,0],[0,d.board.stretchX,0],[0,0,-d.board.stretchY]],f=[[1,0,0],[d.board.origin.scrCoords[1],1,0],[d.board.origin.scrCoords[2],0,1]],h,j=n.length;for(h=0;hs.usrCoords[1]){y=n-1;break}}m=Math.ceil(s.usrCoords[2]);e=0;for(n=0;n<=p+1;n++){if(m-n/pg.usrCoords[2]){f=n-1;break}}x=Math.round((1/q)*t.stretchX);w=Math.round((1/p)*t.stretchY);u=new JXG.Coords(JXG.COORDS_BY_USER,[Math.ceil(g.usrCoords[1])-h/q,Math.floor(g.usrCoords[2])+f/p],t);r=new JXG.Coords(JXG.COORDS_BY_USER,[Math.floor(s.usrCoords[1])+y/q,Math.ceil(s.usrCoords[2])-e/p],t);v=this.drawVerticalGrid(u,r,x,t);this.appendChildPrim(v,t.options.layer.grid);if(!t.options.grid.snapToGrid){d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridx";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,t.options.grid.gridColor,t.options.grid.gridOpacity)}else{d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridx";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,"#FF8080",0.5)}this.setPropertyPrim(v,"stroke-width","0.4px");if(t.options.grid.gridDash){this.setGridDash("gridx")}v=this.drawHorizontalGrid(u,r,w,t);this.appendChildPrim(v,t.options.layer.grid);if(!t.options.grid.snapToGrid){d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridy";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,t.options.grid.gridColor,t.options.grid.gridOpacity)}else{d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridy";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,"#FF8080",0.5)}this.setPropertyPrim(v,"stroke-width","0.4px");if(t.options.grid.gridDash){this.setGridDash("gridy")}},removeGrid:function(d){this.remove(this.getElementById("gridx"));this.remove(this.getElementById("gridy"));d.options.grid.hasGrid=false},hide:function(d){},show:function(d){},setObjectStrokeWidth:function(e,d){},setObjectStrokeColor:function(f,d,e){},setObjectFillColor:function(f,d,e){},setDraft:function(e){if(!e.visProp.draft){return}var d=e.board.options.elements.draft.color,f=e.board.options.elements.draft.opacity;if(e.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(e,d,f)}else{if(e.elementClass==JXG.OBJECT_CLASS_POINT){this.setObjectFillColor(e,d,f)}else{this.setObjectFillColor(e,"none",0)}this.setObjectStrokeColor(e,d,f);this.setObjectStrokeWidth(e,e.board.options.elements.draft.strokeWidth)}},removeDraft:function(d){if(d.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(d,d.visProp.fillColor,d.visProp.fillColorOpacity)}else{if(d.type==JXG.OBJECT_CLASS_POINT){this.setObjectFillColor(d,d.visProp.fillColor,d.visProp.fillColorOpacity)}this.setObjectStrokeColor(d,d.visProp.strokeColor,d.visProp.strokeColorOpacity);this.setObjectStrokeWidth(d,d.visProp.strokeWidth)}},highlight:function(e){var d;if(!e.visProp.draft){if(e.type==JXG.OBJECT_CLASS_POINT){this.setObjectStrokeColor(e,e.visProp.highlightStrokeColor,e.visProp.highlightStrokeOpacity);this.setObjectFillColor(e,e.visProp.highlightStrokeColor,e.visProp.highlightStrokeOpacity)}else{if(e.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(e,e.visProp.highlightFillColor,e.visProp.highlightFillOpacity);for(d=0;d=JXG.Math.eps){e=(h*g+u*s)/t;q=h*h+u*u-e*(h*g+u*s)}else{e=0;q=h*h+u*u}if(e<0){q=h*h+u*u}else{if(e>1){h=v[1]-w[1];u=v[2]-w[2];q=h*h+u*u}}if(q>r){r=q;p=l}}return[Math.sqrt(r),p]},RDP:function(k,h,g,e,f){var d=this.findSplit(k,h,g);if(d[0]>e){this.RDP(k,h,d[1],e,f);this.RDP(k,d[1],g,e,f)}else{f.push(k[g])}},RamenDouglasPeuker:function(j,e){var g=[],h,f,d;d=j.length;h=0;while(hh&&isNaN(j[f].scrCoords[1]+j[f].scrCoords[2])){f--}if(!(h>f||h==d)){g[0]=j[h];this.RDP(j,h,f,e,g)}return g},setShadow:function(d){},updatePathStringPoint:function(f,d,e){},evaluate:function(d){if(JXG.isFunction(d)){return d()}else{return d}},setBuffering:function(){}}};JXG.FileReader=new function(){this.parseFileContent=function(d,f,h){this.request=false;var g;try{this.request=new XMLHttpRequest();if(h.toLowerCase()=="raw"){this.request.overrideMimeType("text/plain; charset=iso-8859-1")}else{this.request.overrideMimeType("text/xml; charset=iso-8859-1")}}catch(g){try{this.request=new ActiveXObject("Msxml2.XMLHTTP")}catch(g){try{this.request=new ActiveXObject("Microsoft.XMLHTTP")}catch(g){this.request=false}}}if(!this.request){alert("AJAX not activated!");return}this.request.open("GET",d,true);if(h.toLowerCase()=="raw"){this.cbp=function(){var e=this.request;if(e.readyState==4){f(e.responseText)}}}else{this.cbp=function(){var e=this.request;if(e.readyState==4){var j="";if(typeof e.responseStream!="undefined"&&(e.responseText.slice(0,2)=="PK"||JXG.Util.asciiCharCodeAt(e.responseText.slice(0,1),0)==31)){j=JXG.Util.Base64.decode(BinFileReader(e))}else{j=e.responseText}this.parseString(j,f,h,false)}}}this.cb=JXG.bind(this.cbp,this);this.request.onreadystatechange=this.cb;try{this.request.send(null)}catch(g){throw new Error("JSXGraph: problems opening "+d+" !")}};this.cleanWhitespace=function(d){var e=d.firstChild;while(e!=null){if(e.nodeType==3&&!/\S/.test(e.nodeValue)){d.removeChild(e)}else{if(e.nodeType==1){this.cleanWhitespace(e)}}e=e.nextSibling}};this.stringToXMLTree=function(e){if(typeof DOMParser=="undefined"){DOMParser=function(){};DOMParser.prototype.parseFromString=function(h,j){if(typeof ActiveXObject!="undefined"){var g=new ActiveXObject("MSXML.DomDocument");g.loadXML(h);return g}}}var f=new DOMParser();var d=f.parseFromString(e,"text/xml");this.cleanWhitespace(d);return d};this.parseString=function(h,f,j,e){var d,g;if(j.toLowerCase()=="cdy"||j.toLowerCase()=="cinderella"){if(e){h=JXG.Util.Base64.decode(h)}h=JXG.CinderellaReader.readCinderella(h,f);f.xmlString=h;return}if(j.toLowerCase()=="graph"){h=JXG.GraphReader.readGraph(h,f,false);return}if(j.toLowerCase()=="digraph"){h=JXG.GraphReader.readGraph(h,f,true);return}if(j.toLowerCase()=="geonext"){h=JXG.GeonextReader.prepareString(h)}if(j.toLowerCase()=="geogebra"){e=h.slice(0,2)!=="PK";h=JXG.GeogebraReader.prepareString(h,e)}if(j.toLowerCase()=="intergeo"){if(e){h=JXG.Util.Base64.decode(h)}h=JXG.IntergeoReader.prepareString(h)}f.xmlString=h;d=this.stringToXMLTree(h);this.readElements(d,f,j)};this.readElements=function(d,e,f){if(f.toLowerCase()=="geonext"){e.suspendUpdate();if(d.getElementsByTagName("GEONEXT").length!=0){JXG.GeonextReader.readGeonext(d,e)}e.unsuspendUpdate()}else{if(d.getElementsByTagName("geogebra").length!=0){JXG.GeogebraReader.readGeogebra(d,e)}else{if(f.toLowerCase()=="intergeo"){JXG.IntergeoReader.readIntergeo(d,e)}}}}};if(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent)){document.write(' - - - - - - - - - - - - - - - -
    -
      -
      - - -
      -

      Modal Analysis On A Cantilever

      -
    -
    -
    -
    -
    -
    -
    -
    -

    CONTROL PANEL

    -
    -
    - -
    -
    -
    -
    Width(b)
    -
    Height(d)
    -
    Length(L)
    -
    - -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    : Hz
    -
    : Hz
    -
    : Hz
    -
    -
    - -
    - -
    -
    - - - - - - - - diff --git a/build/ImpactTestCantilever/content.html b/build/ImpactTestCantilever/content.html deleted file mode 100755 index cee3ae3..0000000 --- a/build/ImpactTestCantilever/content.html +++ /dev/null @@ -1,9277 +0,0 @@ - - -
    - -
    - - - -
    - -
    - -
    -
    -
    -Impact test on cantilever Modal analysis
    - - - -
    - -
    -
    - - -
    - -
    - Aim -
    - -

    Aim

    -

             To find first few natural frequencies of a cantilever by impact test.

    - -

    -A. Background:
    - - -

    - -

    - a. Beams and Cantilever
            Beams are structural members that have smaller dimensions of cross sections compared to its length (its axis) and are subjected to loads perpendicular to its axis; i.e. they are subjected to transverse loads. The whole beam deforms in the plane containing the axis and the transverse loads. We say that the beam bends. The beams are usually supported at both ends and they are termed differently depending on the support conditions. - When one end of a beam is fixed, and the other free, it is called a Cantilever beam, or simply a Cantilever. When both end-supports re simple, the beam is called a Simply Supported Beam. If both ends of a beam are fixed, it is a Fixed-Fixed Beam or simply a Fixed Beam. - -

    - -

    - b. Physical systems that can be modeled as cantilever:
            The diving board on a swimming pool, the slab on a porch, wall mounted structures, overhanging booms of cranes, etc can be modeled as cantilever. These physical systems can be idealized with loss of some accuracy and generalization but ability and simplicity of analysis. The vibration characteristics of these systems can be very well understood by knowing the vibrations of its cantilever model. -

    As explained in the general theory, the characteristics of natural vibration are extremely important in knowing the response of the systems to forced excitations. - -

    In this experiment, we shall find out the natural frequencies of a cantilever from its response to harmonic support-excitation. -

    - -

    - c. Natural Vibration of a Cantilever - Natural frequencies and mode shapes
            - A Cantilever is a continuous system-its mass and elasticity are distributed all over its volume. It can be considered to have infinite very small masses connected by infinite very small springs resist the banding of the Cantilevers. Hence there are infinite degrees of freedom and infinite natural frequencies. And also, corresponding to every natural frequency, it has a particular shape of vibration, called Mode Shape. The lowest natural frequency is called Fundamental natural frequency and corresponding mode, fundamental mode or simply the first mode. Here are animations for first three modes of vibration of a Cantilever. Click on the figures to see the modes.

    -

    - - - - - - - - - - - - - -
    -

    -
    -

    -
    -

    -
    -

    Mode - I

    -
    -

    Mode - II

    -
    -

    Mode - III

    -
    - - -

    -         A cantilever of rectangular cross section bxd; Area of cross-section, A = bxd; and length L is shown in the figure. Cross-sectional dimensions are small compared to its length. -

    -

     

    - -Let us consider its natural vibration in vertical plane, perpendicular to its length L. Let I be the second moment of the area of cross section about neutral axis perpendicular to the plane of vibration; - -
    -Let E be the modulus of elasticity of the material from which the cantilever is made. For steel value E is taken as E = 210GPa (210x109 N/m2) and for Aluminum, it is 70 GPa -Let ρ be the density of the material; for steel, ρ = 7800 kg/m3; for Aluminum, ρ = kg/m3

    - - -

    - -d. Equation of Motion -
           Once disturbed from its position of equilibrium and left to its own, the cantilever will vibrate naturally; it will perform natural vibration. From theory, we know that the vibration of a cantilever is governed by the equation -


    at x = 0 (i.e. at fixed end): Deflection v(0,t) = 0 and Slope dv(0,t)/dx = 0, at all t -and at x = L (i.e. at free end), Bending moment -
    and Shear force
    -The initial condition is v(x,0) = 0 - As both, boundary conditions and initial conditions, are specified, the problem is said to be of mixed initial value and boundary value problem. -
    For small amplitudes of vibration of the cantilever, the motion can be assumed to be harmonic and we can write this equation in terms of amplitude of vibration as a function of x alone. The equation is as follows: -
    and Shear force
    -
        There are infinite sets of V(x) and λ which together satisfy the above equation. Such problems are called Eigenvalue problems and the solutions are called eigenvalues λi, and eigenvectors V(x)i. -    
    V(x) is function of x that shows shape of the cantilever (Amplitudes of vibration at different values of x) corresponding to the respective frequencies of natural vibration λi. The shape of cantilever vibrating with certain natural frequency is called mode shape of cantilever for that frequency. Three of them were shown in figures earlier. -

    - -

    - e. Impact test, excited modes and natural frequencies
            When a cantilever is given an impact at some point, it is set into vibration. In general, the cantilever will not vibrate in any one single natural mode with corresponding single natural frequency of vibration. Rather, number of modes will participate in its vibration depending on the point of impact with corresponding natural frequencies as components of the periodic vibration. In an impact test, an accelerator is fitted at some point on the cantilever and the cantilever is hit with an impact hammer giving an impulse to the cantilever. FFT analysis of the signal received from the load cell fitted at the tip of the impact hammer reveals that it contains all frequencies over a range. Similarly, the FFT analysis of the signal will also reveal that it contains all those frequencies but amplitude of vibration corresponding to the natural frequencies will be high. Exactly this phenomenon is used to identify the natural frequencies of the cantilever by impact test. Ratio of signals received from the accelerometer and that of the impact hammer is taken in frequency domain which is called FRF (Frequency Response Function). The accelerometer is fixed at one point on the cantilever and impulse is given at predetermined points with the impulse hammer. Corresponding FRFs are computed using the softwares of modal analysis. Using techniques of curve fitting, Modal Identification Function is generated that shows peaks at the natural frequencies with the selected range of frequencies. And thus the natural frequencies of the cantilever are found by the impact test. -

    -


    -

    -
    - - - - - -
    -
    - - -
    -
    - Theory -
    -

    -

     

    -

    Vibratory systems around us - - -

    Here are some examples of physical systems where the vibrations are prominent and can be observed easily. In musical instruments the vibrations are intentional. The parts of musical instruments are designed so that they generate sounds that are pleasant to listen. In many cases the vibrations are unwanted and we try to minimize them.

    -

     

    -

    1.   A chandelier hanging from ceiling oscillates to and fro following an initial disturbance; maybe due to a breeze of air.

    -

     

    -

    2.   The oscillations of the chandelier at cathedral of Pisa, Italy, were studied by the famous scientist Galileo Galilee.

    -

     

    -

    3.   A load attached at end of a wire-rope of a crane oscillates to and fro due to initial disturbance; maybe due to sudden stopping of carriage of the crane while revolving about the vertical axis.

    -

     

    -

    4.   The pendulum used in clock of olden days used to oscillate to and fro once every second. i.e. it had a period of oscillation of one second.

    -

     

    -

    5.   String of a guitar, when plucked and left to its own, vibrates and makes a musical sound. It comes to rest after a while; the vibrations die out. Similarly, the diaphragm of a table vibrates when hit and left to its own. It also comes to rest after some time. -

    - -

    -     All these are examples of vibratory systems that are set into vibration following an initial disturbance. All these systems have three components: mass, due to which the system possesses inertia; elasticity, due to which potential energy can be stored; and components that dissipate energy causing the vibratory motion to be damped which bring them to rest after some time.
    -      Vibration or vibratory systems are classified in number of ways. Some of the classifications are given below: -

    -

     

    -

     Free and forced vibration - A free vibration occurs due to initial displacement or velocity, or both, applied to the system only initially. There is no external force acting on the system when the system is vibrating. A forced vibration occurs when the system vibrates in response to external force applied continuously. When the force applied is periodic, i.e. it repeats itself after a fixed interval of time, the forced vibration is called periodic. If the periodic force and hence the resulting vibration varies sinusoidally with respect to time, the vibration is called harmonic. If the force is not periodic, the forced vibration is called aperiodic or random.

    - -

    -

     Damped and undamped vibration -
    -When the vibratory system has elements that offer resistance to motion, energy is continuously dissipated and the free vibrations of such systems come to halt after some time. This is called damped vibration and such systems are called damped systems. Forced vibration of a damped system continues as long as the force acts but some of the work done by the external force is lost in overcoming the resistance offered by the damping elements. Systems without damping elements are called undamped systems and their vibrations are called undamped vibrations. All systems in nature have some or the other damping element and their natural vibrations are damped. Hence they come to rest after some time following free vibrations. Nevertheless, we study the vibration of undamped systems because the concepts developed in studying them are useful in analyzing and understanding the phenomena occurring in vibration of damped as well as complicated systems. When the force of resistance offered by a damping element is proportional to velocity of mass of the system, it is termed as viscous damping and the damping element is called a viscous damper. If the force of resistance has a constant value, it is termed as Coulomb damping. Damping due to dry friction shows this kind of behavior. Coulomb damping can occur when the system has components rubbing over each other. There are other types of damping also which shall be discussed later.

    -

    - -

    -

    -

    - -

    -

    -

    -

    Degrees of freedom : The vibratory systems are classified as single-degree-of-freedom systems, Multi-degree-of-freedom-systems or continuous systems. The number of degrees of freedom corresponds to the number of independent co-ordinates required to completely describe the motion of the system. In fact, it is the sum of the possible ways each mass can move independently of other masses. The translation of a mass along the three axes, X, Y and Z, and the three rotations about each of these axes constitute possible ways of motion of a mass. Many times, many of these six motions of a mass are restricted and a mass can have one or two degrees of freedom, i.e. only translation or translation and rotation of a single mass about any one of the axes.
    -
    -Linear and Non-linear Vibrations : Vibration is said to be linear if the damping force is proportional to velocity, inertia force is proportional to mass, and restoring force is proportional to displacement. If any of this proportionality is not satisfied, the system is said to be non-linear.
    -
    - Solving engineering problems : Analytical methods are usually applied to models of actual systems. We carry out experiments on models if physical systems are not available for testing. While preparing such models, we exclude superfluous details of the system but include all essential and important features of the actual system. While doing so, we idealize and approximate important behaviour of the system without affecting much the accuracy in predicting the behaviour. The system model so developed provides ease of application of analytical and experimental techniques. Once a satisfactory model is developed, laws of Physics can be applied which give a set of mathematical equations relating the properties and variables of the system. Such a set of mathematical equations is called mathematical model of the system. Solving the set of equations (or a single mathematical equation) provides expression for the system variable in terms of location and time. We call this as ‘solution’ of the problem. As an illustration of the concepts described above, see the example given below.
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    Physical system

    -
    -

    These days we have number of towering buildings.  Many a times the residential part of such a building is supported on a tall concrete structure.  One of such buildings is the ‘Milad Tower’, situated in Tehran, Iran.  Its head consists of a large pod with 12 floors and below is a staircase and elevators to reach the area.

    -

    The oscillations of such tall buildings, in response to earthquake and wind, are important from design point of view.  And to study these oscillations, we must know the characteristics of its natural vibration. 

    -

    Analysis of such a physical system can be very much complicated.  To obtain first rough estimate of the natural frequency of vibration, the problem can be stated and the physical system can be modeled in a simple way as described below.

    -
    -

    Problem statement

    -
    -

    To find natural frequency of oscillation of the tower in the direction perpendicular to the vertical axis (i.e. natural frequency of transverse oscillation of the tower) and position of the head at any given time.

    -
    -

    Physical model of the system

    -
    -

    - - - - - - - -
    -
    -

    M

    -
    -
    -
    - - - - - - -
    -
    -

       

    -
    -
    -
    -

     

    -
    -

    The physical model for the system under consideration can be as shown in This is the simplest model.  Only the mass of the building at the top is considered and it is considered to be concentrated at one point.  The mass of the vertical pillar supporting the buiding is neglected and is considered to be a cantilever offering only elesticity.

    -

    Thus it becomes a single degree of freedom system with single mass and only one way of motion of the mass: translation in direction perpendicular to the vertical axis of the building.  Further we assume that the amplitude of this motion to be small.

    -

    The equivalent stiffness of the cantilever is given by

    -

    .  The symbols carry their usual meanings.

    -

     

    -
    -

    Mathematical model

    -
    -

    Using Newton’s second law of motion, the equation of motion of the mass is written as

    -

     

    -

    The first term is the inertia force which is equal to mass multiplied by acceleration and the second term is the spring force given by stiffness of the spring multiplied by its elongation or compression.

    -

    The differential equation is a mathematical model of the system.

    -

     

    -
    -

    General Solution

    -
    -

    The solution to the above differential equation is given by

    -

      

    -

    A and B are constants that depend the initial conditions, i.e. the displacement and velocity of the mass when we started measuring our time.

    -

    These are known as initial conditions.

    -

     is the natural frequency in radians per second and is given by

    -

    -
    -

    Particular solution obtained from the initial conditions

    -
    -

    Substituting the initial conditions in above expression, we can obtain the values of A and B.  Thus if X0 and V0 are the initial displacement and velocity, respectively, given to the mass, the above expression will yield values of A and B as  and  

    -

     

    -

    Now the expression for x becomes

    -

    -

    And we can obtain the value of x at any time t from this expression.

    -

    Thus we have obtained the expressions for natural frequency and position of the head at any given time ‘t and the problem stated by the problem statement is solved.

    -
    -

     

    -
    -
    -
    - - -
    -
    - Simulator -
    -
    -
    -
    -
    - - -
    -
    - Procedure -
    -
    - -

    -

    - -

    Aim: To find first few natural frequencies of a cantilever by ‘Impact Test’ -

    -Please read ‘General Theory’ and ‘Background’ related to this experiment. -
    This section explains the experimental setup, procedure, observations and analysis related to the experiment. - -

    -

    -
    2. Experimental set-up
    -A. Apparatus:

    - - -

    -Following apparatus will be used to perform the real experiment:
    -a.Impact Hammer
    -b.Accelerometer
    -c.Multi-channel Vibration Analyzer (At least two-channel)
    -d.A PC or a Laptop loaded with software for modal analysis.
    -e.Test-specimen (A cantilever held in a fixture)
    -f.Power supply for the PC and vibration analyzer, connecting cables for the impact hammer and accelerometer, fasteners and spanner to fix the specimen in the fixture, and adhesive/wax to fix the accelerometer). -
    -
    -B. Brief information about the important apparatus used in real experiment:
    -a.Impact Hammer: This looks like an ordinary hammer but its head is fitted with a load cell and contains electronic circuitry and an out put cable that can be connected to vibration analyzer. On hitting the impact hammer on any structure an impulsive force is applied to the structure which is a cantilever in our case. An equal and opposite force is sensed by the load cell fitted in the head of the hammer. This generates an electric signal that is given to vibration analyzer which analyzes the signal, compares with the signal received from accelerometer fixed o the structure, nd this information is used to develop FRF (Frequency Response Function) and finally the natural frequencies of the structure are found. -

    b.Accelerometer: An accelerometer is a device (a transducer) which when attached to a vibrating structure gives out electric signal proportional to the acceleration. This signal is given to a vibration analyzer which processes and analyzes the signal. In case of this experiment, the signal coming from accelerometer fitted to the cantilever is analyzed with respect to the one received from the impact hammer in order to find the natural frequencies of the cantilever. -

    c.Vibration Analyzer: Vibration Analyzer is an electronic device that processes and analyzes the signals received fro transducers used in vibration measurement like impact hammer, accelerometer, digital tachometer, etc. It has number of channels, i.e. it can receive number of electric signals simultaneously. Four-channel vibration analyzer is quite common. The vibration analyzer has very sophisticated electronic circuits and works together with a computer. Fast Fourier Transform (FFT) is an algorithm frequently used for analysis of the electric signals which provide frequency components and their corresponding amplitudes present in the signals. -

    d.A PC or a Laptop loaded with a software for modal analysis: In addition to the software used alongwith the vibration analyzer, softwares are available now-a-days devoted exclusively to the modal analysis. Such softwares facilitates inputting data to the computer related to geometry of the structure, location of fixing of the accelerometer on the structure as well as points of hitting of the impact hammer, their directions, and so on. Also, there are facilities to select type of analysis required, ranges of various parameters of interest, and so on. Such softwares essentially process the signals received from the impact hammer and accelerometer, carrying out their FFTs, finding FRF, obtaining Mode Indicator Function, carrying out curve fitting over a selected range of frequencies, and finally providing the natural frequencies, mod shapes, and modal damping factors. -

    e.Fixture and Test-Specimen: A fixture holds the Steel bar of rectangular cross section firmly at one end so that the specimen can be considered as a cantilever. The cross sectional dimensions of the cantilever are 11.8 x 3.175 mm and length 150 mm. The fixture holds the bar firmly at one end and the fixture rests on a table. A small (miniature) accelerometer is attached at the point, marked as node 5, using an adhesive, Locktite. -

    -3. Procedure – Real experiment -
    -a.   Prepare the cantilever: Measure the length on the fixture that holds the steel bar and leave a margin of that length on the steel bar. Divide the remaining length of the steel bar into six parts and mark node numbers at each division – from 1 through 7. Let node 7 be the free end and node 1 the fixed one. Fix the accelerometer to the steel bar at node 4 but on the face of the bar opposite to the markings. Ensuring that face of bar with markings and node numbers up, fix the bar into the slot on the fixture so that a cantilever is formed. -
    b.   Connect the wires and cables: Make connections of the vibration analyzer, PC or laptop, accelerometer and the impact hammer as given in the manuals or under guidance of experts. -
    c.   Switch on the power supply. Open the softwares of vibration analysis and experimental modal analysis installed on the PC/laptop. Provide necessary inputs and make necessary settings in the softwares. Ensure that there is proper supply and communication between the devices connected. -
    d.   Now we shall provide impacts by the impact hammer on the nodes marked on the cantilever one by one. Impacts will be given on nodes 2, 3, 4, 5, 6, and 7; node 1 is fixed. Accelerometer is connected at node 5. Signals from the impact hammer and the accelerometer will be received by the vibration analyzer for each impact provided one by one and will be compared and analyzed by the softwares. Curve known as Frequency Response Function (FRF) will be generated by the software that is used to find the natural frequencies of the cantilever. -
    e.   Observe the curve and read frequencies that correspond to peaks of the FRF. - - -

    4. Procedure – Virtual experiment
    -A cantilever will be seen on the screen of your PC, held in a fixture at one end, thereby making its one end fixed. It is divided into six equal parts and seven points are marked from 1 to 7 due to this division. An accelerometer is seen fixed at point 5. Point 7 is at free end. The point at which the hammer is to be hit can be selected by choosing it from the button ‘choose’ and the hit can be performed by clicking on the button ‘hit’. Dimensions and material of cantilever are given. The FRF is displaced in the window after every hit. At the end Mode Identification Function is seen from which the natural frequencies can be identified. Follow the steps given below to find the natural frequencies of the cantilever by impact test: -
    a. Choose point 2 from the button for the hit; the hammer will move just above that point. Perform the hit by clicking on the button ‘hit’. The cantilever will be seen vibrating for some time and corresponding FRF (input at point 2 at which hammer is hit and output from point 4 at which the accelerometer is fixed) will be displayed in the window. -
    b. Repeat step ‘a’ for hits at all other points from 3 to 7. -
    c. Click on the button ‘obtain FRF’; Modal indicator Function will be displayed. -
    d. Observe the graph marking frequencies corresponding to the peaks. The peaks correspond to the natural frequencies. -

    -5. Observations and analysis: -
    1. Observe FRF (Mode Identification Function) -
    2. Note the frequencies that correspond to the peaks of amplitude. These correspond to the natural frequencies of the cantilever. In fact, they correspond to the natural frequencies of the principal modes of the cantilever that were excited, or participated in vibration of the cantilever due to impacts. -
    3. Compare these values with those obtained from formulae given in the ‘background’ of this experiment -
    4. Ponder on the difference in values obtained from these two sources – Experimental and Analytical. -

    - - -

     

    -
    - - - - - -
    -
    - - -
    -
    - Review Questions -
    -

    - - - -

    -

    1.    -How many natural frequencies does a cantilever have?
    -    a. One b. Two c. Infinite d. Cannot be predicted - -

    -

     

    -

    2.    -Theoretically, how many frequency components does an impulse of very short duration and large amplitude have? -
        a. Only one b. All over a range of frequencies c. few selected frequencies d. cannot be said -

    -

     

    -

    3.    -Which method of finding natural frequencies did we use in the current experiment -
        a. Fixed accelerometer and roving hammer -
        b. Hammer at fixed point and roving accelerometer -
        c. Hammer and accelerometer both at fixed point -
        d. Hammer and accelerometer both roving -

    -

     

    -

    4.    -What is FRF (Frequency Response Function) -
        a. Response of a point to an excitation of single frequency -
        b. Ratio of output from accelerometer (response at a point) to input by impact hammer (excitation at some point) in frequency domain -
        c. Response of a point to harmonic excitation with frequency varied in step - -

    -

     

    -

    5.   -Why is the FRF complex? -
        a. Because it is ratio of quantities that may not be in-phase -
        b. It is ratio of quantities that are complex themselves -
        c. FRF is not necessarily complex. - -

    - -

     

    -

    5.   -How do we find natural frequencies of a cantilever from the FRF or Modal indicator Function? -
        a. FRF gives the natural frequencies directly in a tabular form -
        b. The shape of the curve of FRF (or MIF) consists of number of peaks and each peak corresponds to a natural frequency of the cantilever -
        c. Natural frequencies cannot be found from the FRF (or MIF) -

    -

     

    -

    -

     

    -

     

    -

    - - - - - - - -
    -
    -

    -

    -

     

    -

    - - -
    - -
    -
    -
    - diff --git a/build/ImpactTestCantilever/css/CL.css b/build/ImpactTestCantilever/css/CL.css deleted file mode 100755 index adcdecd..0000000 --- a/build/ImpactTestCantilever/css/CL.css +++ /dev/null @@ -1,117 +0,0 @@ - - #tabs - {position:absolute;left:0px;top:0px;width:1342px;height:1008px;} - - #tabs-1 - {position:absolute;left:4px;top:160px;width:1335px;height:791px;border:2px solid gray;} - #diagram - {position:absolute;left:1px;top:1px;width:900px;height:544px;border:2px solid gray;} - - #controlpane - {position:absolute;left:906px;top:1px;width:424px;height:544px;border:2px solid gray;} - #ctrLab - {position:absolute;left:6px;top:-12px;color:blue;} - fieldset - {position:absolute;left:6px;top:35px;width:390px;height:70px;border:1px solid gray;} - legend - {border:1px solid #CCCCCC;color:#330033;} - - #widthT - {position:absolute;left:4px;top:35px;} - #heightT - {position:absolute;left:104px;top:35px;} - #lengthT - {position:absolute;left:204px;top:35px;} - #widthL - {position:absolute;left:10px;top:64px;} - #heightL - {position:absolute;left:110px;top:64px;} - #lengthL - {position:absolute;left:210px;top:64px;} - #calculat - {position:absolute;left:310px;top:35px;} - button - { color: white;background-color: #0066CC;} - #areaFormula - { color: white;background-color: #339966;} - #inertiaFormula - { color: white;background-color: #339966;} - #hitH - { width:230px; font-size:20px;color: white;background-color:#CC66FF;} - #area - {position:absolute;left:6px;top:130px;width:410px;height:30px;} - #areaL - {position:absolute;left:6px;top:5px;} - #areaT - {position:absolute;left:160px;top:3px;} - #areaB - {position:absolute;left:329px;top:1px;} - #inertia - {position:absolute;left:6px;top:170px;width:410px;height:30px;} - #inertiaL - {position:absolute;left:6px;top:5px;} - #inertiaT - {position:absolute;left:160px;top:3px;} - #inertiaB - {position:absolute;left:329px;top:1px;} - #material - {position:absolute;left:6px;top:210px;width:410px;height:30px;} - #materialL - {position:absolute;left:6px;top:5px;} - #materialT - {position:absolute;left:160px;top:3px;} - #density - {position:absolute;left:6px;top:250px;width:410px;height:30px;} - #densityL - {position:absolute;left:6px;top:5px;} - #densityT - {position:absolute;left:160px;top:3px;} - #young - {position:absolute;left:6px;top:290px;width:410px;height:30px;} - #youngL - {position:absolute;left:6px;top:5px;} - #youngT - {position:absolute;left:160px;top:3px;} - #disp - {position:absolute;left:6px;top:335px;width:410px;height:20px;color:#0066CC;}/*border:1px solid gray;}*/ - #hit - {position:absolute;left:6px;top:370px;width:410px;height:30px;} - #hitB - {position:absolute;left:6px;top:0px;} - #node - {position:absolute;left:250px;top:2px;} - #FRFD - {position:absolute;left:6px;top:420px;width:410px;height:50px;} - #FRFB - {position:absolute;left:10px;top:0px;width:50px;} - #resetB - {position:absolute;left:130px;top:0px;width:50px;} - #FRF - { width:120px; color: white;background-color: #330033;} - #reset - { width:100px; color: white;background-color: #330033;} - #errormsg - {position:absolute;left:6px;top:480px;width:410px;height:60px;color:red;} - #analyzerUp - {position:absolute;left:540px;top:43px;width:342px;height:230px;overflow:auto;} - #analyzerDown - {position:absolute;left:540px;top:276px;width:342px;height:230px;overflow:auto;} - #underExtra - {position:absolute;left:1px;top:550px;width:1329px;height:236px;border:2px solid gray;} - #underLabel - {position:absolute;left:1px;top:10px;width:1320px;height:20px;color:#006600;font-size:14px;} - #naturalButton - { position:absolute;left:400px;top:30px;width:80px;height:30px; color: white;background-color: #330066;} - #textArea - {position:absolute;left:20px;top:450px;width:429px;height:86px;} - #tArea - {position:absolute;left:10px;top:30px;width:199px;height:46px;} - #textVal - {position:absolute;left:2px;;height:35px; top: -49px;width: 489px;} - #fn1 - {position:absolute;left:450px;top:70px;width:420px;height:30px;} - #fn2 - {position:absolute;left:450px;top:130px;width:420px;height:30px;} - #fn3 - {position:absolute;left:450px;top:190px;width:420px;height:30px;} - \ No newline at end of file diff --git a/build/ImpactTestCantilever/css/images/Thumbs.db b/build/ImpactTestCantilever/css/images/Thumbs.db deleted file mode 100755 index c3f2cf4..0000000 Binary files a/build/ImpactTestCantilever/css/images/Thumbs.db and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/build/ImpactTestCantilever/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png deleted file mode 100755 index 954e22d..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-bg_diagonals-thick_20_666666_40x40.png b/build/ImpactTestCantilever/css/images/ui-bg_diagonals-thick_20_666666_40x40.png deleted file mode 100755 index 64ece57..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-bg_diagonals-thick_20_666666_40x40.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-bg_flat_10_000000_40x100.png b/build/ImpactTestCantilever/css/images/ui-bg_flat_10_000000_40x100.png deleted file mode 100755 index abdc010..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-bg_flat_10_000000_40x100.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-bg_glass_100_f6f6f6_1x400.png b/build/ImpactTestCantilever/css/images/ui-bg_glass_100_f6f6f6_1x400.png deleted file mode 100755 index 9b383f4..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-bg_glass_100_f6f6f6_1x400.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-bg_glass_100_fdf5ce_1x400.png b/build/ImpactTestCantilever/css/images/ui-bg_glass_100_fdf5ce_1x400.png deleted file mode 100755 index a23baad..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-bg_glass_100_fdf5ce_1x400.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-bg_glass_65_ffffff_1x400.png b/build/ImpactTestCantilever/css/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100755 index 42ccba2..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/build/ImpactTestCantilever/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png deleted file mode 100755 index 39d5824..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/build/ImpactTestCantilever/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png deleted file mode 100755 index f127367..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/build/ImpactTestCantilever/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png deleted file mode 100755 index 359397a..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-icons_222222_256x240.png b/build/ImpactTestCantilever/css/images/ui-icons_222222_256x240.png deleted file mode 100755 index b273ff1..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-icons_222222_256x240.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-icons_228ef1_256x240.png b/build/ImpactTestCantilever/css/images/ui-icons_228ef1_256x240.png deleted file mode 100755 index a641a37..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-icons_228ef1_256x240.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-icons_ef8c08_256x240.png b/build/ImpactTestCantilever/css/images/ui-icons_ef8c08_256x240.png deleted file mode 100755 index 85e63e9..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-icons_ef8c08_256x240.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-icons_ffd27a_256x240.png b/build/ImpactTestCantilever/css/images/ui-icons_ffd27a_256x240.png deleted file mode 100755 index e117eff..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-icons_ffd27a_256x240.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/images/ui-icons_ffffff_256x240.png b/build/ImpactTestCantilever/css/images/ui-icons_ffffff_256x240.png deleted file mode 100755 index 42f8f99..0000000 Binary files a/build/ImpactTestCantilever/css/images/ui-icons_ffffff_256x240.png and /dev/null differ diff --git a/build/ImpactTestCantilever/css/jquery-ui-1.8.11.custom.css b/build/ImpactTestCantilever/css/jquery-ui-1.8.11.custom.css deleted file mode 100755 index 863fea4..0000000 --- a/build/ImpactTestCantilever/css/jquery-ui-1.8.11.custom.css +++ /dev/null @@ -1,312 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family:Calibri, Calibri-serif; font-size:16px; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family:Calibri, Calibri-serif; font-size: 16px; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* - * jQuery UI Tabs 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/build/ImpactTestCantilever/css/jsxgraph.css b/build/ImpactTestCantilever/css/jsxgraph.css deleted file mode 100755 index 7710b4d..0000000 --- a/build/ImpactTestCantilever/css/jsxgraph.css +++ /dev/null @@ -1,39 +0,0 @@ -/* -*/ -.jxgbox { - position:relative; /* for IE 7 */ - overflow:hidden; - background-color:#ffffff; - border-style:solid; - border-width:1px; - border-color:#356AA0; - -moz-border-radius:10px; - -webkit-border-radius:10px; - /* - -moz-box-shadow:black 2px 2px 2px -2px, #151A10 4px 4px; - -webkit-box-shadow:4px 4px 3px #151A10; - */ -} - -.JXGtext { - background-color:transparent; - font-family: Arial, Helvetica, Geneva; - padding:0px; - margin:0px; - /*line-height:100%;*/ /* This has to be commented out. Otherwise subscripts are not visible in IE */ - /*border-style:dotted;*/ - /*border-width:0.4px;*/ -} - -.navbar { - color: #aaaaaa; - background-color: #f5f5f5; - padding: 2px; - position: absolute; - font-size: 10px; - cursor: pointer; - z-index: 100; - right: 5px; - bottom: 5px; -} - diff --git a/build/ImpactTestCantilever/default.html b/build/ImpactTestCantilever/default.html deleted file mode 100755 index f770b6e..0000000 --- a/build/ImpactTestCantilever/default.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - -
    - - - -
    - - - - - - - -
    - - - -
    - - - -
    - - Simple Pendulum - -
    - - - - - -
    - - -
    - -
    - - -
    - - -
    - Introduction -
    - - -
    -

    - In this module, basic concepts of simple oscillator - are explained. Initially, an example of simple - pendulum is taken and the basic terminology i.e., - what is initial displacement, - initial velocity,natural frequency - and time period are explained. - Each of these terms is illustrated by giving an - example, where user can enter his value and observe - the behavior of structure for his input. -

    - -

    - Simple harmonic oscillator consists of a - mass (m) hanging from a string of - length (l), fixed at a pivot point P. - When the mass is displaced from its mean - position by giving some initial displacement - (angle), oscillator starts swinging back and fourth - with periodic motion. -

    - - pendulum -
    - - -
    - - -
    - -
    - - -
    - - -
    - Theory -
    - - - -
    -

    - There are two solutions to \(ax^2 + bx + c = 0\) and - they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - By applying Newton's second law for - rotational systems, the equation of motion for the - pendulum may be obtained. -

    - -

    - Where, τ = Torque ; I = - Moment of Inertia; α = - Angular Velocity. m is mass of the - oscillator, l is the length of the oscillator and theta is initial - displacement. The above equation can be rearranged as -

    - -

    - If the amplitude of - angular displacement is - small then we can use the approximation - (sinθ ≈ θ). - By considering the above approximation, the equation - of motion reduces to : -

    - -

    - The solution for equation of simple harmonic oscillator is -

    - -

    - where, θ(t) is the history of oscillation, - θ0 is the initial angle, - &omega=(g/l)1/2 is the - natural frequency of - the motion. -

    -
    -
    - - -
    - -
    - - -
    - -
    - Objective -
    - -
    -

    - Objective of simple harmonic oscillator experiment - is to understand the concept of time period - (natural frequency) in harmonic - oscillations . -

    - -
    - -
    - - -
    - -
    - - -
    - -
    - Experiment -
    - -
    -

    - -

    -
    - -
    - -
    - -
    - - -
    - -
    - Manual -
    - -
    -

    - Start the experiment with the default values of - length, mass and intial displacement (in angle). - Pause the experiment after few cycles and note - the observation. -

    - -

    Observation 1:

    -
      - -
    1. - Find the time period of the pendulum by noting the - time interval of any one complete cycle from the - response graph. -
    2. - -
    3. - You may note that this time period value is same - for any complete cycle. - Read More -
    4. - -
    - -
    - -
    - -
    - -
    - - -
    - -
    - Quizzes -
    - -
    - -

    - - Q1. - Time taken for one complete oscillation - is called Time Period of the oscillator.
    - - True
    - - False

    - - Q2. - Time period of the oscillator is constant for - given values of mass, length and initial - conditions.
    - - True
    - - False

    - - Q3. - Value of Time period depends on initial - conditions.
    - - True
    - - False

    - - Q4. - Value of time period depends on mass.
    - - True
    - - False

    - - Q5. - Value of time period depends on length of the - oscillator.
    - - True
    - - False

    - -

    - -
    - -
    - -
    - -
    - - -
    - -
    - Procedure -
    - -
    -

    - Procedure for the experiment is as follows -

    -
    - -
    - - -
    - -
    - - -
    - -
    - Further Readings -
    - -
    - -
    - -
    - -
    - - - - - - - -
    - -
    - -
    - - - -
    - -
    - -
    - - - diff --git a/build/ImpactTestCantilever/images/FRF Magnitude.jpg b/build/ImpactTestCantilever/images/FRF Magnitude.jpg deleted file mode 100755 index dd5acb5..0000000 Binary files a/build/ImpactTestCantilever/images/FRF Magnitude.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/FRF Phase.jpg b/build/ImpactTestCantilever/images/FRF Phase.jpg deleted file mode 100755 index 01c9018..0000000 Binary files a/build/ImpactTestCantilever/images/FRF Phase.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Hit at node1.jpg b/build/ImpactTestCantilever/images/Hit at node1.jpg deleted file mode 100755 index 7905c37..0000000 Binary files a/build/ImpactTestCantilever/images/Hit at node1.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Hit at node2.jpg b/build/ImpactTestCantilever/images/Hit at node2.jpg deleted file mode 100755 index d9f07a3..0000000 Binary files a/build/ImpactTestCantilever/images/Hit at node2.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Hit at node3.jpg b/build/ImpactTestCantilever/images/Hit at node3.jpg deleted file mode 100755 index 8d528b2..0000000 Binary files a/build/ImpactTestCantilever/images/Hit at node3.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Hit at node4.jpg b/build/ImpactTestCantilever/images/Hit at node4.jpg deleted file mode 100755 index cc03f0e..0000000 Binary files a/build/ImpactTestCantilever/images/Hit at node4.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Hit at node5.jpg b/build/ImpactTestCantilever/images/Hit at node5.jpg deleted file mode 100755 index 662b788..0000000 Binary files a/build/ImpactTestCantilever/images/Hit at node5.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Hit at node6.jpg b/build/ImpactTestCantilever/images/Hit at node6.jpg deleted file mode 100755 index 005771c..0000000 Binary files a/build/ImpactTestCantilever/images/Hit at node6.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Hit at node7.jpg b/build/ImpactTestCantilever/images/Hit at node7.jpg deleted file mode 100755 index 73c46dd..0000000 Binary files a/build/ImpactTestCantilever/images/Hit at node7.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Node1.jpg b/build/ImpactTestCantilever/images/Node1.jpg deleted file mode 100755 index 16a4b5c..0000000 Binary files a/build/ImpactTestCantilever/images/Node1.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Node2.jpg b/build/ImpactTestCantilever/images/Node2.jpg deleted file mode 100755 index c2ca77c..0000000 Binary files a/build/ImpactTestCantilever/images/Node2.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Node3.jpg b/build/ImpactTestCantilever/images/Node3.jpg deleted file mode 100755 index 70371fd..0000000 Binary files a/build/ImpactTestCantilever/images/Node3.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Node4.jpg b/build/ImpactTestCantilever/images/Node4.jpg deleted file mode 100755 index c058a6d..0000000 Binary files a/build/ImpactTestCantilever/images/Node4.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Node5.jpg b/build/ImpactTestCantilever/images/Node5.jpg deleted file mode 100755 index 21aec6b..0000000 Binary files a/build/ImpactTestCantilever/images/Node5.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Node6.jpg b/build/ImpactTestCantilever/images/Node6.jpg deleted file mode 100755 index e3d3fe4..0000000 Binary files a/build/ImpactTestCantilever/images/Node6.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/images/Node7.jpg b/build/ImpactTestCantilever/images/Node7.jpg deleted file mode 100755 index a07376d..0000000 Binary files a/build/ImpactTestCantilever/images/Node7.jpg and /dev/null differ diff --git a/build/ImpactTestCantilever/index.html b/build/ImpactTestCantilever/index.html deleted file mode 100755 index 294c518..0000000 --- a/build/ImpactTestCantilever/index.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - diff --git a/build/ImpactTestCantilever/js/jquery-1.5.1.min.js b/build/ImpactTestCantilever/js/jquery-1.5.1.min.js deleted file mode 100755 index 6437874..0000000 --- a/build/ImpactTestCantilever/js/jquery-1.5.1.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * jQuery JavaScript Library v1.5.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: Wed Feb 23 13:55:29 2011 -0500 - */ -(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="
    a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
    ",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div
    ","
    "]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
    ").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
    ";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file diff --git a/build/ImpactTestCantilever/js/jquery-ui-1.8.11.custom.min.js b/build/ImpactTestCantilever/js/jquery-ui-1.8.11.custom.min.js deleted file mode 100755 index 2615584..0000000 --- a/build/ImpactTestCantilever/js/jquery-ui-1.8.11.custom.min.js +++ /dev/null @@ -1,68 +0,0 @@ -/*! - * jQuery UI 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.11",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, -NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, -"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); -if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, -"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, -d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); -c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.11"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k. -*/ - var JXG={};(function(){var d,e;JXG.countDrawings=0;JXG.countTime=0;JXG.require=function(f){};JXG.rendererFiles=[];JXG.rendererFiles.svg="SVGRenderer";JXG.rendererFiles.vml="VMLRenderer";JXG.rendererFiles.canvas="CanvasRenderer";JXG.baseFiles=null;JXG.requirePath="";for(d=0;d0?h[0].length:0,w=h.length,v=this.matrix(q,p),u,t,x,r;for(u=0;u0?r[0].length:0;l=this.matrix(q,h);for(p=0;pz){z=d.abs(m[v][u]);h=v}}if(z<=e.Math.eps){return false}if(h>u){for(t=0;tm||j<0){return NaN}j=d.floor(j);m=d.floor(m);if(j===0||j===m){return 1}h=1;for(l=0;l0){return d.exp(h*d.log(d.abs(j)))}else{return NaN}}},squampow:function(k,j){var h;if(d.floor(j)===j){h=1;if(j<0){k=1/k;j*=-1}while(j!=0){if(j&1){h*=k}j>>=1;k*=k}return h}else{return this.pow(k,j)}},normalize:function(k){var h=2*k[3],l=k[4]/(h),m,j;k[5]=l;k[6]=-k[1]/h;k[7]=-k[2]/h;if(l===Infinity||isNaN(l)){m=d.sqrt(k[1]*k[1]+k[2]*k[2]);k[0]/=m;k[1]/=m;k[2]/=m;k[3]=0;k[4]=1}else{if(d.abs(l)>=1){k[0]=(k[6]*k[6]+k[7]*k[7]-l*l)/(2*l);k[1]=-k[6]/l;k[2]=-k[7]/l;k[3]=1/(2*l);k[4]=1}else{j=(l<=0)?(-1):(1);k[0]=j*(k[6]*k[6]+k[7]*k[7]-l*l)*0.5;k[1]=-j*k[6];k[2]=-j*k[7];k[3]=j/2;k[4]=j*l}}return k}}})(JXG,Math);JXG.Math.Numerics=(function(e,d){var f={rk4:{s:4,A:[[0,0,0,0],[0.5,0,0,0],[0,0.5,0,0],[0,0,1,0]],b:[1/6,1/3,1/3,1/6],c:[0,0.5,0.5,1]},heun:{s:2,A:[[0,0],[1,0]],b:[0.5,0.5],c:[0,1]},euler:{s:1,A:[[0]],b:[1],c:[0]}};return{Gauss:function(g,s){var u=e.Math.eps,h=g.length>0?g[0].length:0,q,t,r,p,m,l=function(v,n){var k=this[v];this[v]=this[n];this[n]=k};if((h!==s.length)||(h!==g.length)){throw new Error("JXG.Math.Numerics.Gauss: Dimensions don't match. A must be a square matrix and b must be of the same length as A.")}q=new Array(h);t=s.slice(0,h);for(r=0;rp;r--){if(d.abs(q[r][p])>u){if(d.abs(q[p][p])0?r[0].length:0;for(p=g-1;p>=0;p--){for(l=s-1;l>p;l--){h[p]-=r[p][l]*h[l]}h[p]/=r[p][p]}return h},gaussBareiss:function(v){var l,u,y,q,m,g,h,r,w,x=e.Math.eps;h=v.length;if(h<=0){return 0}if(v[0].length=x){break}}if(q==h){return 0}for(m=l;mr){r=g}v+=g;if(g>=B){g=d.atan2(2*h[s][q],h[s][s]-h[q][q])*0.5;t=d.sin(g);y=d.cos(g);for(p=0;pB&&u<2000);return[h,m]},NewtonCotes:function(g,k,h){var l=0,q=h&&typeof h.number_of_nodes==="number"?h.number_of_nodes:28,n={trapez:true,simpson:true,milne:true},r=h&&h.integration_type&&n.hasOwnProperty(h.integration_type)&&n[h.integration_type]?h.integration_type:"milne",p=(g[1]-g[0])/q,m,j,s;switch(r){case"trapez":l=(k(g[0])+k(g[1]))*0.5;m=g[0];for(j=0;j0){throw new Error("JSXGraph: INT_SIMPSON requires config.number_of_nodes dividable by 2.")}s=q/2;l=k(g[0])+k(g[1]);m=g[0];for(j=0;j0){throw new Error("JSXGraph: Error in INT_MILNE: config.number_of_nodes must be a multiple of 4")}s=q*0.25;l=7*(k(g[0])+k(g[1]));m=g[0];for(j=0;jm){q=this.D(p,j)(g);l+=2;if(d.abs(q)>m){g-=n/q}else{g+=(d.random()*0.2-1)}n=p.apply(j,[g]);l++;k++}return g},root:function(j,g,h){return this.fzero(j,g,h)},Neville:function(l){var h=[],g=function(m){return function(x,n){var q,w,y,z=e.Math.binomial,v=l.length,p=v-1,r=0,u=0;if(!n){y=1;for(q=0;q=0;m--){u[m]=(q[m]-(v[m+1]*u[m+1]))/p[m]}for(m=g-3;m>=0;m--){u[m+1]=u[m]}u[0]=0;u[g-1]=0;return u},splineEval:function(h,z,v,B){var k=d.min(z.length,v.length),p=1,m=false,A=[],r,q,w,u,t,s,g;if(e.isArray(h)){p=h.length;m=true}else{h=[h]}for(r=0;rz[k-1])){return NaN}for(q=1;q=0;k--){l=l.concat(["(",g[k].toPrecision(j),")"]);if(k>1){l=l.concat(["*",h,"",k,"<","/sup> + "])}else{if(k===1){l=l.concat(["*",h," + "])}}}return l.join("")},lagrangePolynomial:function(j){var g=[],h=function(w,l){var p,m,t,v,y,q=0,r=0,u,n;t=j.length;if(!l){for(p=0;p0&&e.isPoint(q[0])){j=1}else{throw new Error("JSXGraph: Can't create regressionPolynomial. Wrong parameters.")}}r=function(G,t){var w,v,D,A,F,u,E,H,C,z=q.length;C=d.floor(h());if(!t){if(j===1){n=[];m=[];for(w=0;w=0;w--){H=(H*G+g[w])}return H};r.getTerm=function(){return k};return r},bezier:function(j){var g,h=function(k){return function(m,l){var q=d.floor(m)*3,p=m%1,n=1-p;if(!l){g=d.floor(j.length/3)}if(m<0){return j[0][k]()}if(m>=g){return j[j.length-1][k]()}if(isNaN(m)){return NaN}return n*n*(n*j[q][k]()+3*p*j[q+1][k]())+(3*n*j[q+2][k]()+p*j[q+3][k]())*p*p}};return[h("X"),h("Y"),0,function(){return d.floor(j.length/3)}]},bspline:function(k,g){var l,n=[],m=function(s,p){var q,r=[];for(q=0;q=A){w=0}else{w=v[r+1]}y=B[r+u-1]-B[r];if(y==0){v[r]=0}else{v[r]=(z-B[r])/y*x}y=B[r+u]-B[r+1];if(y!=0){v[r]+=(B[r+u]-z)/y*w}}}return v},h=function(p){return function(w,r){var q=k.length,A,v,x,z=q-1,u=g;if(z<=0){return NaN}if(z+2<=u){u=z+1}if(w<=0){return k[0][p]()}if(w>=z-u+2){return k[z][p]()}l=m(z,u);x=d.floor(w)+u-1;n=j(w,l,z,u,x);A=0;for(v=x-u+1;v<=x;v++){if(v=0){A+=k[v][p]()*n[v]}}return A}};return[h("X"),h("Y"),0,function(){return k.length-1}]},D:function(k,l){var j=0.00001,g=1/(j*2);if(arguments.length==1||(arguments.length>1&&!e.exists(arguments[1]))){return function(h,m){return(k(h+j,m)-k(h-j,m))*g}}else{return function(h,m){return(k.apply(l,[h+j,m])-k.apply(l,[h-j,m]))*g}}},riemann:function(s,m,t,k,p){var l=[],A=[],r,q=0,z,w=k,u,h,v,g;m=d.floor(m);l[q]=w;A[q]=0;if(m>0){z=(p-k)/m;g=z*0.01;for(r=0;ru){u=v}}}}}}q++;l[q]=w;A[q]=u;q++;w+=z;if(t==="trapezodial"){u=s(w)}l[q]=w;A[q]=u;q++;l[q]=w;A[q]=0}}return[l,A]},riemannsum:function(p,k,r,j,l){var q=0,m,v,u=j,s,h,t,g;k=d.floor(k);if(k>0){v=(l-j)/k;g=v*0.01;for(m=0;ms){s=t}}}}}}}q+=v*s;u+=v}}return q},rungeKutta:function(g,H,p,m,G){var q=[],n=[],F=(p[1]-p[0])/m,v=p[0],J,E,D,B,A,C=H.length,w,u=[],z=0;if(e.isString(g)){g=f[g]||f.euler}w=g.s;for(J=0;J0){if(e.isArray(H)){return this.fminbr(G,[K,J],M)}else{return this.Newton(G,K,M)}}I=K;w=A;while(y=F&&d.abs(A)>d.abs(x)){t=I-J;if(K==I){l=x/A;v=t*l;s=1-l}else{s=A/w;l=x/w;k=x/A;v=k*(t*s*(s-l)-(J-K)*(l-1));s=(s-1)*(l-1)*(k-1)}if(v>0){s=-s}else{v=-v}if(v<(0.75*t*s-d.abs(F*s)*0.5)&&v0){m=F}else{m=-F}}K=J;A=x;J+=m;x=G.apply(M,[J]);B++;if((x>0&&w>0)||(x<0&&w<0)){I=K;w=A}y++}e.debug("fzero: maxiter="+g+" reached.");return J},fminbr:function(I,J,N){var M,K,m,u,s,h,k,j,A=(3-d.sqrt(5))*0.5,F=e.Math.eps,C=d.sqrt(e.Math.eps),g=50,E=0,z,L,H,n,D,B,y,l,G=0;if(!e.isArray(J)||J.length<2){throw new Error("JXG.Math.Numerics.fminbr: length of array x0 has to be at least two.")}M=J[0];K=J[1];u=M+A*(K-M);k=I.apply(N,[u]);G++;m=u;s=u;h=k;j=k;while(E=H){y=(m-s)*(h-k);B=(m-u)*(h-j);D=(m-u)*B-(m-s)*y;B=2*(B-y);if(B>0){D=-D}else{B=-B}if(d.abs(D)B*(M-m+2*H)&&D0){n=H}else{n=-H}}y=m+n;l=I.apply(N,[y]);G++;if(l<=h){if(y0){return this.sum(d)/d.length}else{return 0}};JXG.Math.Statistics.median=function(e){var f,d;if(e.length>0){f=e.slice(0,e.length);f.sort(function(h,g){return h-g});d=f.length;if(d%2==1){return f[parseInt(d*0.5)]}else{return(f[d*0.5-1]+f[d*0.5])*0.5}}else{return 0}};JXG.Math.Statistics.variance=function(f){var e,h,g,d;if(f.length>1){e=this.mean(f);h=0;for(g=0,d=f.length;g0){return this.mean(this.multiply(d,e))}else{return 0}};JXG.Math.Statistics.max=function(e){var g,f,d;if(e.length==0){return NaN}g=e[0];for(f=1,d=e.length;fg)?(e[f]):g}return g};JXG.Math.Statistics.min=function(e){var g,f,d;if(e.length==0){return NaN}g=e[0];for(f=1,d=e.length;f0){l=m[q].generatePolynomial();for(g=0;g0)){if((y.toOrigin!==e)&&(y.toOrigin!=null)&&C(y.toOrigin.id,n.listOfFreePoints)){k=y.toOrigin}else{k=n.listOfFreePoints[0]}v=k.symbolic.x;t=k.symbolic.y;for(D=0;D1)){if((y.to10!==e)&&(y.to10!=null)&&(y.to10.id!=y.toOrigin.id)&&C(y.to10.id,n.listOfFreePoints)){j=y.to10}else{if(n.listOfFreePoints[0].id==k.id){j=n.listOfFreePoints[1]}else{j=n.listOfFreePoints[0]}}p=d.Math.Geometry.rad([1,0],[0,0],[j.symbolic.x,j.symbolic.y]);E=Math.cos(-p);x=Math.sin(-p);for(D=0;Dd.Math.eps)){G=j.symbolic.x;for(D=0;Ds){l+=Math.PI}r=Math.cos(l)+q[1];p=Math.sin(l)+q[2];return new JXG.Coords(JXG.COORDS_BY_USER,[r,p],m)},reflection:function(q,m,f){var h=m.coords.usrCoords,r=q.point1.coords.usrCoords,g=q.point2.coords.usrCoords,e,l,d,j,n,k,p;if(!JXG.exists(f)){f=m.board}n=g[1]-r[1];k=g[2]-r[2];e=h[1]-r[1];l=h[2]-r[2];p=(n*l-k*e)/(n*n+k*k);d=h[1]+2*p*k;j=h[2]-2*p*n;return new JXG.Coords(JXG.COORDS_BY_USER,[d,j],f)},rotation:function(d,p,h,j){var l=p.coords.usrCoords,e=d.coords.usrCoords,g,n,k,q,f,m;if(!JXG.exists(j)){j=p.board}g=l[1]-e[1];n=l[2]-e[2];k=Math.cos(h);q=Math.sin(h);f=g*k-n*q+e[1];m=g*q+n*k+e[2];return new JXG.Coords(JXG.COORDS_BY_USER,[f,m],j)},perpendicular:function(s,q,j){var h=s.point1.coords.usrCoords,g=s.point2.coords.usrCoords,e=q.coords.usrCoords,n,m,l,r,k,f,d,p;if(!JXG.exists(j)){j=q.board}if(q==s.point1){n=h[1]+g[2]-h[2];m=h[2]-g[1]+h[1];l=true}else{if(q==s.point2){n=g[1]+h[2]-g[2];m=g[2]-h[1]+g[1];l=false}else{if(((Math.abs(h[1]-g[1])>JXG.Math.eps)&&(Math.abs(e[2]-(h[2]-g[2])*(e[1]-h[1])/(h[1]-g[1])-h[2])JXG.Math.eps&&(Math.abs(f[0])0){e=m.midpoint.Dist(z.point1);K=m.midpoint.Dist(z.point2);I=((e*e)+(D*D)-(K*K))/(2*D);B=(e*e)-(I*I);B=(B<0)?0:B;G=Math.sqrt(B);E=m.Radius();p=Math.sqrt((E*E)-G*G);C=J[1]-L[1];A=J[2]-L[2];k=g[1]+(G/D)*A;j=g[2]-(G/D)*C;e=(J[1]*A)-(J[2]*C);K=(k*C)+(j*A);F=(A*A)+(C*C);if(Math.abs(F)r){return[0]}else{if(v=d&&Math.abs(e[3])=d){return this.meetLineCircle(g,e,f,h)}else{return this.meetCircleCircle(g,e,f,h)}}}},meetLineLine:function(e,d,f,h){var g=JXG.Math.crossProduct(e,d);if(Math.abs(g[0])>JXG.Math.eps){g[1]/=g[0];g[2]/=g[0];g[0]=1}return new JXG.Coords(JXG.COORDS_BY_USER,g,h)},meetLineCircle:function(j,e,p,q){var v,u,s,r,l,h,g,f,m,w;if(e[4]=0){m=Math.sqrt(m);w=[(-g+m)/(2*h),(-g-m)/(2*h)];return((p==0)?new JXG.Coords(JXG.COORDS_BY_USER,[-w[0]*(-l[1])-r*l[0],-w[0]*l[0]-r*l[1]],q):new JXG.Coords(JXG.COORDS_BY_USER,[-w[1]*(-l[1])-r*l[0],-w[1]*l[0]-r*l[1]],q))}else{return new JXG.Coords(JXG.COORDS_BY_USER,[NaN,NaN],q)}},meetCircleCircle:function(f,d,e,g){var h;if(f[4]JXG.Math.eps&&m<10){B=A(q);z=-y(p);x=k(q);w=-j(p);g=B*w-z*x;q-=(w*v-z*u)/g;p-=(B*u-x*v)/g;v=t.X(q)-s.X(p);u=t.Y(q)-s.Y(p);r=v*v+u*u;m++}arguments.callee.t1memo=q;arguments.callee.t2memo=p;if(Math.abs(q)0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1)){v=20;w=(g.maxX()-g.minX())/v;x=g.minX();for(u=0;u0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1){break}x+=w}}p=l;arguments.callee.t2memo=p}if(Math.abs(h(p))>JXG.Math.eps){k=0}else{k=1}return(new JXG.Coords(JXG.COORDS_BY_USER,[k,g.X(p),g.Y(p)],j))},projectPointToCircle:function(m,d,f){var j=m.coords.distance(JXG.COORDS_BY_USER,d.midpoint.coords),e=m.coords.usrCoords,g=d.midpoint.coords.usrCoords,l,k,h;if(!JXG.exists(f)){f=m.board}if(Math.abs(j)r.maxX()){q=r.minX()+q-r.maxX()}C=new JXG.Coords(JXG.COORDS_BY_USER,[r.X(q),r.Y(q)],h)}else{if(r.curveType=="plot"){B=p;for(v=0;v=JXG.Math.eps){g=(A*z+e*d)/k;s=Math.sqrt(A*A+e*e-g*(A*z+e*d))}else{g=0;s=Math.sqrt(A*A+e*e)}if(g>=0&&g<=1&&sJXG.Math.eps){for(h=2;h>0;h--){v[l][h]/=v[l][0]}v[l][0]=1}}e=false;d=false;if(!r&&q.scrCoords[1]>=0&&q.scrCoords[1]<=g.board.canvasWidth&&q.scrCoords[2]>=0&&q.scrCoords[2]<=g.board.canvasHeight){e=true}if(!f&&p.scrCoords[1]>=0&&p.scrCoords[1]<=g.board.canvasWidth&&p.scrCoords[2]>=0&&p.scrCoords[2]<=g.board.canvasHeight){d=true}if(Math.abs(v[1][0])g.board.canvasHeight){k=v[2]}else{k=v[3]}}else{if(v[1][2]>g.board.canvasHeight){m=v[2];if(v[3][2]<0){k=v[0]}else{k=v[3]}}else{m=v[1];if(v[3][2]<0){k=v[0]}else{if(v[3][2]>g.board.canvasHeight){k=v[2]}else{k=v[3]}}}}}}m=new JXG.Coords(JXG.COORDS_BY_SCREEN,m.slice(1),g.board);k=new JXG.Coords(JXG.COORDS_BY_SCREEN,k.slice(1),g.board);if(!e&&!d){if(!r&&f&&!this.isSameDirection(q,p,m)&&!this.isSameDirection(q,p,k)){return}else{if(r&&!f&&!this.isSameDirection(p,q,m)&&!this.isSameDirection(p,q,k)){return}}}if(!e){if(!d){if(this.isSameDirection(q,p,m)){if(!this.isSameDirection(q,p,k)){t=m;u=k}else{if(JXG.Math.Geometry.affineDistance(p.usrCoords,m.usrCoords)=0&&k>=0){if((d>=0&&j>=0)||(d<=0&&j<=0)){g=true}}else{if(e<=0&&k<=0){if((d>=0&&j>=0)||(d<=0&&j<=0)){g=true}}}return g},updateTicks:function(e,g,d,h,f){},removeTicks:function(d){this.remove(this.getElementById(d.id+"_ticks"))},drawCurve:function(d){this.appendChildPrim(this.createPrim("path",d.id),d.layer);this.appendNodesToElement(d,"path");this.updateVisual(d,{shadow:true},true);this.updateCurve(d)},updateCurve:function(d){this.updateVisual(d);this.updatePathPrim(d.rendNode,this.updatePathStringPrim(d),d.board);this.makeArrows(d)},drawCircle:function(d){this.appendChildPrim(this.createPrim("ellipse",d.id),d.layer);this.appendNodesToElement(d,"ellipse");this.updateCircle(d)},updateCircle:function(e){this.updateVisual(e);var d=e.Radius();if(d>0&&!isNaN(d+e.midpoint.coords.scrCoords[1]+e.midpoint.coords.scrCoords[2])&&d*e.board.stretchX<20000){this.updateEllipsePrim(e.rendNode,e.midpoint.coords.scrCoords[1],e.midpoint.coords.scrCoords[2],(d*e.board.stretchX),(d*e.board.stretchY))}},drawPolygon:function(d){this.appendChildPrim(this.createPrim("polygon",d.id),d.layer);this.appendNodesToElement(d,"polygon");this.updatePolygon(d)},updatePolygon:function(d){this.updateVisual(d,{stroke:true,dash:true});this.updatePolygonPrim(d.rendNode,d)},drawText:function(d){var e;if(d.display=="html"){e=this.container.ownerDocument.createElement("div");e.style.position="absolute";e.style.color=d.visProp.strokeColor;e.className="JXGtext";e.style.zIndex="10";this.container.appendChild(e);e.setAttribute("id",this.container.id+"_"+d.id)}else{e=this.drawInternalText(d)}e.style.fontSize=d.board.options.text.fontSize+"px";d.rendNode=e;d.htmlStr="";this.updateText(d)},drawInternalText:function(d){},updateText:function(d){if(!d.visProp.visible){return}if(isNaN(d.coords.scrCoords[1]+d.coords.scrCoords[2])){return}this.updateTextStyle(d);if(d.display=="html"){d.rendNode.style.left=(d.coords.scrCoords[1])+"px";d.rendNode.style.top=(d.coords.scrCoords[2]-this.vOffsetText)+"px";d.updateText();if(d.htmlStr!=d.plaintextStr){d.rendNode.innerHTML=d.plaintextStr;if(d.board.options.text.useASCIIMathML){AMprocessNode(d.rendNode,false)}d.htmlStr=d.plaintextStr;if(d.board.options.text.useMathJax){MathJax.Hub.Typeset(d.rendNode)}}this.transformImage(d,d.transformations)}else{this.updateInternalText(d)}},updateInternalText:function(d){},updateTextStyle:function(e){var d;if(e.visProp.fontSize){if(typeof e.visProp.fontSize=="function"){d=e.visProp.fontSize();e.rendNode.style.fontSize=(d>0?d:0)}else{e.rendNode.style.fontSize=(e.visProp.fontSize)}}},drawImage:function(d){},updateImageURL:function(d){},updateImage:function(d){this.updateRectPrim(d.rendNode,d.coords.scrCoords[1],d.coords.scrCoords[2]-d.size[1],d.size[0],d.size[1]);this.updateImageURL(d);this.transformImage(d,d.transformations);this.updateVisual(d,{stroke:true,dash:true},true)},joinTransforms:function(d,n){var g=[[1,0,0],[0,1,0],[0,0,1]],l=[[1,0,0],[-d.board.origin.scrCoords[1],1,0],[-d.board.origin.scrCoords[2],0,1]],k=[[1,0,0],[0,1/d.board.stretchX,0],[0,0,-1/d.board.stretchY]],e=[[1,0,0],[0,d.board.stretchX,0],[0,0,-d.board.stretchY]],f=[[1,0,0],[d.board.origin.scrCoords[1],1,0],[d.board.origin.scrCoords[2],0,1]],h,j=n.length;for(h=0;hs.usrCoords[1]){y=n-1;break}}m=Math.ceil(s.usrCoords[2]);e=0;for(n=0;n<=p+1;n++){if(m-n/pg.usrCoords[2]){f=n-1;break}}x=Math.round((1/q)*t.stretchX);w=Math.round((1/p)*t.stretchY);u=new JXG.Coords(JXG.COORDS_BY_USER,[Math.ceil(g.usrCoords[1])-h/q,Math.floor(g.usrCoords[2])+f/p],t);r=new JXG.Coords(JXG.COORDS_BY_USER,[Math.floor(s.usrCoords[1])+y/q,Math.ceil(s.usrCoords[2])-e/p],t);v=this.drawVerticalGrid(u,r,x,t);this.appendChildPrim(v,t.options.layer.grid);if(!t.options.grid.snapToGrid){d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridx";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,t.options.grid.gridColor,t.options.grid.gridOpacity)}else{d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridx";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,"#FF8080",0.5)}this.setPropertyPrim(v,"stroke-width","0.4px");if(t.options.grid.gridDash){this.setGridDash("gridx")}v=this.drawHorizontalGrid(u,r,w,t);this.appendChildPrim(v,t.options.layer.grid);if(!t.options.grid.snapToGrid){d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridy";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,t.options.grid.gridColor,t.options.grid.gridOpacity)}else{d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridy";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,"#FF8080",0.5)}this.setPropertyPrim(v,"stroke-width","0.4px");if(t.options.grid.gridDash){this.setGridDash("gridy")}},removeGrid:function(d){this.remove(this.getElementById("gridx"));this.remove(this.getElementById("gridy"));d.options.grid.hasGrid=false},hide:function(d){},show:function(d){},setObjectStrokeWidth:function(e,d){},setObjectStrokeColor:function(f,d,e){},setObjectFillColor:function(f,d,e){},setDraft:function(e){if(!e.visProp.draft){return}var d=e.board.options.elements.draft.color,f=e.board.options.elements.draft.opacity;if(e.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(e,d,f)}else{if(e.elementClass==JXG.OBJECT_CLASS_POINT){this.setObjectFillColor(e,d,f)}else{this.setObjectFillColor(e,"none",0)}this.setObjectStrokeColor(e,d,f);this.setObjectStrokeWidth(e,e.board.options.elements.draft.strokeWidth)}},removeDraft:function(d){if(d.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(d,d.visProp.fillColor,d.visProp.fillColorOpacity)}else{if(d.type==JXG.OBJECT_CLASS_POINT){this.setObjectFillColor(d,d.visProp.fillColor,d.visProp.fillColorOpacity)}this.setObjectStrokeColor(d,d.visProp.strokeColor,d.visProp.strokeColorOpacity);this.setObjectStrokeWidth(d,d.visProp.strokeWidth)}},highlight:function(e){var d;if(!e.visProp.draft){if(e.type==JXG.OBJECT_CLASS_POINT){this.setObjectStrokeColor(e,e.visProp.highlightStrokeColor,e.visProp.highlightStrokeOpacity);this.setObjectFillColor(e,e.visProp.highlightStrokeColor,e.visProp.highlightStrokeOpacity)}else{if(e.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(e,e.visProp.highlightFillColor,e.visProp.highlightFillOpacity);for(d=0;d=JXG.Math.eps){e=(h*g+u*s)/t;q=h*h+u*u-e*(h*g+u*s)}else{e=0;q=h*h+u*u}if(e<0){q=h*h+u*u}else{if(e>1){h=v[1]-w[1];u=v[2]-w[2];q=h*h+u*u}}if(q>r){r=q;p=l}}return[Math.sqrt(r),p]},RDP:function(k,h,g,e,f){var d=this.findSplit(k,h,g);if(d[0]>e){this.RDP(k,h,d[1],e,f);this.RDP(k,d[1],g,e,f)}else{f.push(k[g])}},RamenDouglasPeuker:function(j,e){var g=[],h,f,d;d=j.length;h=0;while(hh&&isNaN(j[f].scrCoords[1]+j[f].scrCoords[2])){f--}if(!(h>f||h==d)){g[0]=j[h];this.RDP(j,h,f,e,g)}return g},setShadow:function(d){},updatePathStringPoint:function(f,d,e){},evaluate:function(d){if(JXG.isFunction(d)){return d()}else{return d}},setBuffering:function(){}}};JXG.FileReader=new function(){this.parseFileContent=function(d,f,h){this.request=false;var g;try{this.request=new XMLHttpRequest();if(h.toLowerCase()=="raw"){this.request.overrideMimeType("text/plain; charset=iso-8859-1")}else{this.request.overrideMimeType("text/xml; charset=iso-8859-1")}}catch(g){try{this.request=new ActiveXObject("Msxml2.XMLHTTP")}catch(g){try{this.request=new ActiveXObject("Microsoft.XMLHTTP")}catch(g){this.request=false}}}if(!this.request){alert("AJAX not activated!");return}this.request.open("GET",d,true);if(h.toLowerCase()=="raw"){this.cbp=function(){var e=this.request;if(e.readyState==4){f(e.responseText)}}}else{this.cbp=function(){var e=this.request;if(e.readyState==4){var j="";if(typeof e.responseStream!="undefined"&&(e.responseText.slice(0,2)=="PK"||JXG.Util.asciiCharCodeAt(e.responseText.slice(0,1),0)==31)){j=JXG.Util.Base64.decode(BinFileReader(e))}else{j=e.responseText}this.parseString(j,f,h,false)}}}this.cb=JXG.bind(this.cbp,this);this.request.onreadystatechange=this.cb;try{this.request.send(null)}catch(g){throw new Error("JSXGraph: problems opening "+d+" !")}};this.cleanWhitespace=function(d){var e=d.firstChild;while(e!=null){if(e.nodeType==3&&!/\S/.test(e.nodeValue)){d.removeChild(e)}else{if(e.nodeType==1){this.cleanWhitespace(e)}}e=e.nextSibling}};this.stringToXMLTree=function(e){if(typeof DOMParser=="undefined"){DOMParser=function(){};DOMParser.prototype.parseFromString=function(h,j){if(typeof ActiveXObject!="undefined"){var g=new ActiveXObject("MSXML.DomDocument");g.loadXML(h);return g}}}var f=new DOMParser();var d=f.parseFromString(e,"text/xml");this.cleanWhitespace(d);return d};this.parseString=function(h,f,j,e){var d,g;if(j.toLowerCase()=="cdy"||j.toLowerCase()=="cinderella"){if(e){h=JXG.Util.Base64.decode(h)}h=JXG.CinderellaReader.readCinderella(h,f);f.xmlString=h;return}if(j.toLowerCase()=="graph"){h=JXG.GraphReader.readGraph(h,f,false);return}if(j.toLowerCase()=="digraph"){h=JXG.GraphReader.readGraph(h,f,true);return}if(j.toLowerCase()=="geonext"){h=JXG.GeonextReader.prepareString(h)}if(j.toLowerCase()=="geogebra"){e=h.slice(0,2)!=="PK";h=JXG.GeogebraReader.prepareString(h,e)}if(j.toLowerCase()=="intergeo"){if(e){h=JXG.Util.Base64.decode(h)}h=JXG.IntergeoReader.prepareString(h)}f.xmlString=h;d=this.stringToXMLTree(h);this.readElements(d,f,j)};this.readElements=function(d,e,f){if(f.toLowerCase()=="geonext"){e.suspendUpdate();if(d.getElementsByTagName("GEONEXT").length!=0){JXG.GeonextReader.readGeonext(d,e)}e.unsuspendUpdate()}else{if(d.getElementsByTagName("geogebra").length!=0){JXG.GeogebraReader.readGeogebra(d,e)}else{if(f.toLowerCase()=="intergeo"){JXG.IntergeoReader.readIntergeo(d,e)}}}}};if(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent)){document.write(' - - - - - - - - - -
    -
      -
      - - -
      -

      Moment Of Inertia-Connecting Rod

      -
    -
    -
    -
    - - kg
    - - m
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    Period of 10
    Oscillations
    Period of 1
    Oscillations(t/10)
    ss
    ss
    ss
    -
    - - - -

    - - -

    - - - - -
    -
    - -
    - - - - diff --git a/build/MIofConnectingRod/content.html b/build/MIofConnectingRod/content.html deleted file mode 100755 index af6475c..0000000 --- a/build/MIofConnectingRod/content.html +++ /dev/null @@ -1,9221 +0,0 @@ - - -
    - -
    - - - -
    - -
    - -
    -
    -
    MI of Connecting Rod
    - - - -
    - -
    -
    - - -
    - -
    - Aim -
    - -

    Aim

    - -

             To find mass moment of inertia of a connecting rod from its vibration as a compound pendulum.

    - -

    Background:-

    - - - - - - - - - - - -
    -
    Simple pendulum: A bob attached to a thread or string hanging from a pivot constitutes a simple pendulum. As the size of the bob is small compared to the length of the thread, the mass of the bob can be considered to be concentrated at its centre and treated as a point mass. The mass of the thread is very small compared to that of the bob, it is neglected. Also, the thread is considered inelastic and inextensible and effects due to these properties are neglected while studying the oscillations of the bob about the pivot. Thus, the bob oscillates about the pivot when disturbed from its equilibrium position and left to its own. The period of such oscillations is given by 
    -
    -
    -

    These oscillations are undamped natural vibration of the simple pendulum.  Physical systems like a swing in children’s park, load hanging from a cable of a crane, can be modelled as simple pendulum.

    -
    -
    -
    Compound Pendulum: Consider the oscillations of a solid body about the point of suspension ‘O’ (pivot) as shown in the figure. 
    -
    The pivot is at point O and the centre of mass of the body is at G. Let the distance between the pivot and the centre of mass of the body be L. When the body is displaced from its equilibrium position and left to its own, it oscillates about O. Such an arrangement is called compound pendulum. Unlike simple pendulum, the mass is distributed all along the length of the oscillating body and takes part in the oscillations. Equation of motion of the compound pendulum is derived by taking moments of the inertia-force and force due to gravity about the pivot ‘O’ and is given by
    -
    -

    Where, J0, M, and θ are respectively the mass moment of inertia of the oscillating body about the pivot, total mass of the oscillating body, and angle of oscillation (angle between the line OG while oscillating and the vertical position of equilibrium).  The period of oscillation of a compound pendulum is obtained from solution of above equation and is given by,
    -

    -
    -
    -

    (Period of oscillation = Time required to complete one oscillation)

    -

    Mass moment of inertia about the centre of mass, ‘G’, is given by 

    -
    -
    -
    -

    Mass Moment of Inertia: Moment of a point mass m about another point or a line is given by the product of the mass m and distance between another point or perpendicular distance between the line and location of the mass.  For a solid body, its mass is distributed all over its volume.  So when we want to calculate its mass moment of inertia about a point, every elemental mass of the body is at different distance from the point about which we want to take its moment.  So we resort to use of calculus and find the mass moment of the body by integrating the product of the elemental mass and its square of its distance from the another point under consideration.  Another point of consideration is usually the centre of gravity of the body itself and we find the mass moment of inertia of the body about its own centre of gravity.  Thus for a slender rod, which can be considered as one-dimensional body, the mass moment about its centre of gravity is given by,

    -
    -
     
    -
    -
     
    -
     
    -
    - - - - - - -
    -

     

    -
    -
     
    -
     
    -
     
    -
     
    -
     
    -
     
    -

     

    -
    Similarly, we can find mass moment of inertia for a two or three dimensional solids using double or triple integration. However, finding mass moment of inertia of solids using analytical expressions as above is possible only for solids of regular geometry like a cylinder and sphere. For solids of irregular geometry like a connecting rod or any link use in a mechanism of any machine, the analytical method cannot be used and we need to use an experimental method as discussed in the present experiment.
    -
     
    -
     
    -
    Importance of knowing mass moment of inertia: Machines have several parts (links) connected to each other that have linear or angular motion with changing acceleration which result in inertia forces and moments. In order to calculate the moments due to inertia, we must know the mass moment of inertia of the part that has angular motion about a point. The mass moment of inertia of the part (or a link) can be found from period of oscillation of the compound pendulum formed by pivoting the link and setting it into oscillations as explained earlier.
    -
    -
    -
    - -


    -

    -
    - - -
    -
    - - -
    -
    - Theory -
    -

    -

     

    -

    Vibratory systems around us - - -

    Here are some examples of physical systems where the vibrations are prominent and can be observed easily. In musical instruments the vibrations are intentional. The parts of musical instruments are designed so that they generate sounds that are pleasant to listen. In many cases the vibrations are unwanted and we try to minimize them.

    -

     

    -

    1.   A chandelier hanging from ceiling oscillates to and fro following an initial disturbance; maybe due to a breeze of air.

    -

     

    -

    2.   The oscillations of the chandelier at cathedral of Pisa, Italy, were studied by the famous scientist Galileo Galilee.

    -

     

    -

    3.   A load attached at end of a wire-rope of a crane oscillates to and fro due to initial disturbance; maybe due to sudden stopping of carriage of the crane while revolving about the vertical axis.

    -

     

    -

    4.   The pendulum used in clock of olden days used to oscillate to and fro once every second. i.e. it had a period of oscillation of one second.

    -

     

    -

    5.   String of a guitar, when plucked and left to its own, vibrates and makes a musical sound. It comes to rest after a while; the vibrations die out. Similarly, the diaphragm of a table vibrates when hit and left to its own. It also comes to rest after some time. -

    - -

    -     All these are examples of vibratory systems that are set into vibration following an initial disturbance. All these systems have three components: mass, due to which the system possesses inertia; elasticity, due to which potential energy can be stored; and components that dissipate energy causing the vibratory motion to be damped which bring them to rest after some time.
    -      Vibration or vibratory systems are classified in number of ways. Some of the classifications are given below: -

    -

     

    -

     Free and forced vibration - A free vibration occurs due to initial displacement or velocity, or both, applied to the system only initially. There is no external force acting on the system when the system is vibrating. A forced vibration occurs when the system vibrates in response to external force applied continuously. When the force applied is periodic, i.e. it repeats itself after a fixed interval of time, the forced vibration is called periodic. If the periodic force and hence the resulting vibration varies sinusoidally with respect to time, the vibration is called harmonic. If the force is not periodic, the forced vibration is called aperiodic or random.

    - -

    -

     Damped and undamped vibration -
    -When the vibratory system has elements that offer resistance to motion, energy is continuously dissipated and the free vibrations of such systems come to halt after some time. This is called damped vibration and such systems are called damped systems. Forced vibration of a damped system continues as long as the force acts but some of the work done by the external force is lost in overcoming the resistance offered by the damping elements. Systems without damping elements are called undamped systems and their vibrations are called undamped vibrations. All systems in nature have some or the other damping element and their natural vibrations are damped. Hence they come to rest after some time following free vibrations. Nevertheless, we study the vibration of undamped systems because the concepts developed in studying them are useful in analyzing and understanding the phenomena occurring in vibration of damped as well as complicated systems. When the force of resistance offered by a damping element is proportional to velocity of mass of the system, it is termed as viscous damping and the damping element is called a viscous damper. If the force of resistance has a constant value, it is termed as Coulomb damping. Damping due to dry friction shows this kind of behavior. Coulomb damping can occur when the system has components rubbing over each other. There are other types of damping also which shall be discussed later.

    -

    - -

    -

    -

    - -

    -

    -

    -

    Degrees of freedom : The vibratory systems are classified as single-degree-of-freedom systems, Multi-degree-of-freedom-systems or continuous systems. The number of degrees of freedom corresponds to the number of independent co-ordinates required to completely describe the motion of the system. In fact, it is the sum of the possible ways each mass can move independently of other masses. The translation of a mass along the three axes, X, Y and Z, and the three rotations about each of these axes constitute possible ways of motion of a mass. Many times, many of these six motions of a mass are restricted and a mass can have one or two degrees of freedom, i.e. only translation or translation and rotation of a single mass about any one of the axes.
    -
    -Linear and Non-linear Vibrations : Vibration is said to be linear if the damping force is proportional to velocity, inertia force is proportional to mass, and restoring force is proportional to displacement. If any of this proportionality is not satisfied, the system is said to be non-linear.
    -
    - Solving engineering problems : Analytical methods are usually applied to models of actual systems. We carry out experiments on models if physical systems are not available for testing. While preparing such models, we exclude superfluous details of the system but include all essential and important features of the actual system. While doing so, we idealize and approximate important behaviour of the system without affecting much the accuracy in predicting the behaviour. The system model so developed provides ease of application of analytical and experimental techniques. Once a satisfactory model is developed, laws of Physics can be applied which give a set of mathematical equations relating the properties and variables of the system. Such a set of mathematical equations is called mathematical model of the system. Solving the set of equations (or a single mathematical equation) provides expression for the system variable in terms of location and time. We call this as ‘solution’ of the problem. As an illustration of the concepts described above, see the example given below.
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    Physical system

    -
    -

    These days we have number of towering buildings.  Many a times the residential part of such a building is supported on a tall concrete structure.  One of such buildings is the ‘Milad Tower’, situated in Tehran, Iran.  Its head consists of a large pod with 12 floors and below is a staircase and elevators to reach the area.

    -

    The oscillations of such tall buildings, in response to earthquake and wind, are important from design point of view.  And to study these oscillations, we must know the characteristics of its natural vibration. 

    -

    Analysis of such a physical system can be very much complicated.  To obtain first rough estimate of the natural frequency of vibration, the problem can be stated and the physical system can be modeled in a simple way as described below.

    -
    -

    Problem statement

    -
    -

    To find natural frequency of oscillation of the tower in the direction perpendicular to the vertical axis (i.e. natural frequency of transverse oscillation of the tower) and position of the head at any given time.

    -
    -

    Physical model of the system

    -
    -

    - - - - - - - -
    -
    -

    M

    -
    -
    -
    - - - - - - -
    -
    -

       

    -
    -
    -
    -

     

    -
    -

    The physical model for the system under consideration can be as shown in This is the simplest model.  Only the mass of the building at the top is considered and it is considered to be concentrated at one point.  The mass of the vertical pillar supporting the buiding is neglected and is considered to be a cantilever offering only elesticity.

    -

    Thus it becomes a single degree of freedom system with single mass and only one way of motion of the mass: translation in direction perpendicular to the vertical axis of the building.  Further we assume that the amplitude of this motion to be small.

    -

    The equivalent stiffness of the cantilever is given by

    -

    .  The symbols carry their usual meanings.

    -

     

    -
    -

    Mathematical model

    -
    -

    Using Newton’s second law of motion, the equation of motion of the mass is written as

    -

     

    -

    The first term is the inertia force which is equal to mass multiplied by acceleration and the second term is the spring force given by stiffness of the spring multiplied by its elongation or compression.

    -

    The differential equation is a mathematical model of the system.

    -

     

    -
    -

    General Solution

    -
    -

    The solution to the above differential equation is given by

    -

      

    -

    A and B are constants that depend the initial conditions, i.e. the displacement and velocity of the mass when we started measuring our time.

    -

    These are known as initial conditions.

    -

     is the natural frequency in radians per second and is given by

    -

    -
    -

    Particular solution obtained from the initial conditions

    -
    -

    Substituting the initial conditions in above expression, we can obtain the values of A and B.  Thus if X0 and V0 are the initial displacement and velocity, respectively, given to the mass, the above expression will yield values of A and B as  and  

    -

     

    -

    Now the expression for x becomes

    -

    -

    And we can obtain the value of x at any time t from this expression.

    -

    Thus we have obtained the expressions for natural frequency and position of the head at any given time ‘t and the problem stated by the problem statement is solved.

    -
    - -

     

    -
    -
    -
    - - -
    -
    - Simulator -
    -
    -
    -
    -
    - - -
    -
    - Procedure -
    -
    -

    -

    -

    Aim: To find mass moment of inertia of a connecting rod from its vibration as a compound pendulum 

    -

     

    -

    Procedure:

    -

     

    -
      -
    1. Weigh the connecting rod using a balance available in the laboratory and record its mass, M.
      Find location of the centre of gravity of the connecting rod and mark it as G.
    2. -
    -

     

    -
      -
    1. Rest the connecting rod on the peg fitted on the wall. Leave enough clearance between the connecting rod and the wall so that the connecting rod can oscillate freely in vertical plane. This forms a compound pendulum.
    2. -
    -

     

    -
      -
    1. Measure the distance between the centre of gravity and the point ‘O’ on the connecting rod on which it is supported on the peg. Record the distance OG as L.
    2. -
    -

     

    -
      -
    1. Displace the connecting rod by a small angle in the vertical plane and leave it to its own to oscillate. -
    2. -
    -

     

    -
      -
    1. Using the stop watch, measure and record the time required to complete ten oscillations of the connecting rod.
    2. -
    -

     

    -
      -
    1. Repeat the process thrice and take average of the time taken for ten oscillations. This is to average out the errors in measurement. Since time taken for ten oscillations is recorded, one tenth of this time is the time period of oscillations of the connecting rod, the compound pendulum. Record this period as T.
      -
    2. -
    -

     

    -
      -
    1. Calculate the moment of inertia of the connecting rod about the pivot, i.e. point ‘O’ from the expression
    2. -
    -

     

    -
      -
    1. Calculate mass moment of inertia of the connecting rod about its centre of gravity, G, from
    2. -
      - -
    -

     

    -
      -
    1. Minimum 3 calculations are necessary to plot the graph.
      -
      -
    2. -
    - - -

     

    -
    - - - -
    -
    - - -
    -
    - Review Questions -
    -

    - - - -

    -

    1.    How is moment of inertia of a rod of uniform section can be found?

    -

     

    -

    2.    Why is it important to find moment of inertia of a body of irregular shape (e.g. an oscillating link of irregular shape used in a mechanism of a machine)?

    -

     

    -

    3.    Write the formula that relates period of oscillation of a compound pendulum and its moment of inertia and dimensions.

    -

     

    -

    4.    Why do we use a triangular peg resembling a knife-edge as support for suspension of the connecting rod rather than an object of any other shape? -- To minimize friction and to ensure purely oscillating motion

    -

     

    -

    5.   List three sources of errors that can occur during conduct of the real experiment (in real laboratory situation).

    - -

    -

     

    -

    - -

    - - - - - - - -
    -
    - -

    -

     

    -

    - - - -
    -
    - -
    -
    -
    - diff --git a/build/MIofConnectingRod/css/gstyle_buttons.css b/build/MIofConnectingRod/css/gstyle_buttons.css deleted file mode 100755 index a791a12..0000000 --- a/build/MIofConnectingRod/css/gstyle_buttons.css +++ /dev/null @@ -1,187 +0,0 @@ - -/*------------------------------------*\ - $WRAPPER -\*------------------------------------*/ -.buttons {/* Style as you wish (toolbar) */ -} -/* The Magnificent CLEARFIX */ -.buttons:before, .buttons:after { - content: "\0020"; - display: block; - height: 0; - visibility: hidden; -} -.buttons:after { - clear: both; -} -.buttons { - zoom: 1; -} -/* ------------------------ */ - - -/*------------------------------------*\ - $BUTTON -\*------------------------------------*/ -button { - text-decoration: none; - text-shadow: 0 1px 0 #fff; - font: bold 11px Helvetica, Arial, sans-serif; - color: #444; - line-height: 17px; - height: 18px; - display: inline-block; - padding: 5px 6px 4px 6px; - background: #F3F3F3; - border: solid 1px #D9D9D9; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -webkit-transition: border-color .20s; - -moz-transition: border-color .20s; - -o-transition: border-color .20s; - transition: border-color .20s; - height: 29px !important; - cursor: pointer; -} -button:hover { - background: #F4F4F4; - border-color: #C0C0C0; - color: #333; -} -button:active { - border-color: #4D90FE; - color: #4D90FE; - -moz-box-shadow:inset 0 0 10px #D4D4D4; - -webkit-box-shadow:inset 0 0 10px #D4D4D4; - box-shadow:inset 0 0 10px #D4D4D4; -} -button.bluebtn { - border: 1px solid #3079ED !important; - background: #4B8DF8; - background: -webkit-linear-gradient(top, #4C8FFD, #4787ED); - background: -moz-linear-gradient(top, #4C8FFD, #4787ED); - background: -ms-linear-gradient(top, #4C8FFD, #4787ED); - background: -o-linear-gradient(top, #4C8FFD, #4787ED); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.bluebtn:hover { - border: 1px solid #2F5BB7 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #4D90FE, #357AE8); - background: -moz-linear-gradient(top, #4D90FE, #357AE8); - background: -ms-linear-gradient(top, #4D90FE, #357AE8); - background: -o-linear-gradient(top, #4D90FE, #357AE8); -} -button.greenbtn { - border: 1px solid #29691D !important; - background: #3A8E00; - background: -webkit-linear-gradient(top, #3C9300, #398A00); - background: -moz-linear-gradient(top, #3C9300, #398A00); - background: -ms-linear-gradient(top, #3C9300, #398A00); - background: -o-linear-gradient(top, #3C9300, #398A00); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.greenbtn:hover { - border: 1px solid #2D6200 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #3C9300, #368200); - background: -moz-linear-gradient(top, #3C9300, #368200); - background: -ms-linear-gradient(top, #3C9300, #368200); - background: -o-linear-gradient(top, #3C9300, #368200); -} -button.redbtn { - border: 1px solid #D14836 !important; - background: #D64937; - background: -webkit-linear-gradient(top, #DC4A38, #D14836); - background: -moz-linear-gradient(top, #DC4A38, #D14836); - background: -ms-linear-gradient(top, #DC4A38, #D14836); - background: -o-linear-gradient(top, #DC4A38, #D14836); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.redbtn:hover { - border: 1px solid #B0281A !important; - background: #D14130; - background: -webkit-linear-gradient(top, #DC4A38, #C53727); - background: -moz-linear-gradient(top, #DC4A38, #C53727); - background: -ms-linear-gradient(top, #DC4A38, #C53727); - background: -o-linear-gradient(top, #DC4A38, #C53727); -} -button.action:hover { - -moz-box-shadow: 0 1px 0px #DDD; - -webkit-box-shadow: 0 1px 0px #DDD; - box-shadow:iset 0 1px 0px #DDD; -} -button.action:active { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - border-color: #C6C6C6 !important; -} -button.bluebtn:active { - border-color: #2F5BB7 !important; -} -button.greenbtn:active { - border-color: #2D6200 !important; -} -button.redbtn:active { - border-color: #B0281A !important; -} -/*------------------------------------*\ - $BUTTON LABEL -\*------------------------------------*/ - button span.label { - display: inline-block; - float: left; - line-height: 17px; - height: 18px; - padding: 0 1px; - overflow: hidden; - color: #444; - -webkit-transition: color .20s; - -moz-transition: color .20s; - -o-transition: color .20s; - transition: color .20s; -} -button span.label { - line-height: 15px !important; -} -button:hover .label.bluebtn { - color: #7090C8; -} -button:hover .label.greenbtn { - color: #42B449; -} -button:hover .label.yellow { - color: #F7CB38; -} -button.bluebtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2F5BB7 !important; -} -button.greenbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2D6200 !important; -} -button.redbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #B0281A !important; -} -button.action .label { - padding: 0 17px !important; -} -button.action:active .label { - color: #333 !important; -} -button.bluebtn:active .label, button.greenbtn:active .label, button.redbtn:active .label { - color: #FFF !important; -} diff --git a/build/MIofConnectingRod/css/newfile.css b/build/MIofConnectingRod/css/newfile.css deleted file mode 100755 index a5651b8..0000000 --- a/build/MIofConnectingRod/css/newfile.css +++ /dev/null @@ -1,99 +0,0 @@ -*{ - margin:0; - padding:0; -} -#tabs{ - height: 675px; - left: 0; - top: 0; -} -#box1{ - position:absolute; - left:0px; - top:144px; - width:1322px; - height:520px; - border:2px solid gray; -} -#fieldset1{ - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - margin-bottom: 5px; - padding-bottom: 9px; - margin-top: 18px; - border:none; -} -#fieldset1 input{ - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px 3px 3px 3px; - font: 15px Georgia,"Times New Roman",Times,serif; - margin-bottom: 0px; - padding: 5px; - width: 120px; - margin-top:5px; -} -#fieldset1 label{ - margin-left: 15px; - font: bold 12px Georgia, "Times New Roman", Times, serif; - outline: none; - padding: 3px; -} -.place_label{ - margin-left: 10px; -} -.textfield_set{ -} -#fieldset2 { - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 16px; - list-style: none; - border:none; - font-size: 14px; - padding-bottom: 102px; -} -#diagram{ -} -#fieldset2 input{ - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px 3px 3px 3px; - font: 15px Georgia,"Times New Roman",Times,serif; - margin: 0px 5px 0 10px; - padding: 5px; - width: 120px; -} -#calculation{ - left: 738px; - position: absolute; - top: 145px; - width: 519px; -} - -#fieldset2 button{ - margin-left:10px; -} -#textbox1{ - margin-left:10px; -} -#textbox2{ - margin-left: 124px; -} - diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png deleted file mode 100755 index 954e22d..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png deleted file mode 100755 index 64ece57..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png deleted file mode 100755 index abdc010..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png deleted file mode 100755 index 9b383f4..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png deleted file mode 100755 index a23baad..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100755 index 42ccba2..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png deleted file mode 100755 index 39d5824..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png deleted file mode 100755 index f127367..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png deleted file mode 100755 index 359397a..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_222222_256x240.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_222222_256x240.png deleted file mode 100755 index b273ff1..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_222222_256x240.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_228ef1_256x240.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_228ef1_256x240.png deleted file mode 100755 index a641a37..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_228ef1_256x240.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_ef8c08_256x240.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_ef8c08_256x240.png deleted file mode 100755 index 85e63e9..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_ef8c08_256x240.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_ffd27a_256x240.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_ffd27a_256x240.png deleted file mode 100755 index e117eff..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_ffd27a_256x240.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_ffffff_256x240.png b/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_ffffff_256x240.png deleted file mode 100755 index 42f8f99..0000000 Binary files a/build/MIofConnectingRod/css/ui-lightness/images/ui-icons_ffffff_256x240.png and /dev/null differ diff --git a/build/MIofConnectingRod/css/ui-lightness/jquery-ui-1.8.14.custom.css b/build/MIofConnectingRod/css/ui-lightness/jquery-ui-1.8.14.custom.css deleted file mode 100755 index 59125c3..0000000 --- a/build/MIofConnectingRod/css/ui-lightness/jquery-ui-1.8.14.custom.css +++ /dev/null @@ -1,568 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -/*.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }*/ -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family:Calibri; font-size: 16px; } -.ui-widget .ui-widget { font-size: 16px; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family:Calibri; font-size: 1em; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* - * jQuery UI Resizable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * jQuery UI Accordion 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } -/* - * jQuery UI Autocomplete 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.14 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * jQuery UI Button 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Dialog 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * jQuery UI Slider 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * jQuery UI Tabs 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } -/* - * jQuery UI Datepicker 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * jQuery UI Progressbar 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/build/MIofConnectingRod/default.html b/build/MIofConnectingRod/default.html deleted file mode 100755 index f770b6e..0000000 --- a/build/MIofConnectingRod/default.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - -
    - - - -
    - - - - - - - -
    - - - -
    - - - -
    - - Simple Pendulum - -
    - - - - - -
    - - -
    - -
    - - -
    - - -
    - Introduction -
    - - -
    -

    - In this module, basic concepts of simple oscillator - are explained. Initially, an example of simple - pendulum is taken and the basic terminology i.e., - what is initial displacement, - initial velocity,natural frequency - and time period are explained. - Each of these terms is illustrated by giving an - example, where user can enter his value and observe - the behavior of structure for his input. -

    - -

    - Simple harmonic oscillator consists of a - mass (m) hanging from a string of - length (l), fixed at a pivot point P. - When the mass is displaced from its mean - position by giving some initial displacement - (angle), oscillator starts swinging back and fourth - with periodic motion. -

    - - pendulum -
    - - -
    - - -
    - -
    - - -
    - - -
    - Theory -
    - - - -
    -

    - There are two solutions to \(ax^2 + bx + c = 0\) and - they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - By applying Newton's second law for - rotational systems, the equation of motion for the - pendulum may be obtained. -

    - -

    - Where, τ = Torque ; I = - Moment of Inertia; α = - Angular Velocity. m is mass of the - oscillator, l is the length of the oscillator and theta is initial - displacement. The above equation can be rearranged as -

    - -

    - If the amplitude of - angular displacement is - small then we can use the approximation - (sinθ ≈ θ). - By considering the above approximation, the equation - of motion reduces to : -

    - -

    - The solution for equation of simple harmonic oscillator is -

    - -

    - where, θ(t) is the history of oscillation, - θ0 is the initial angle, - &omega=(g/l)1/2 is the - natural frequency of - the motion. -

    -
    -
    - - -
    - -
    - - -
    - -
    - Objective -
    - -
    -

    - Objective of simple harmonic oscillator experiment - is to understand the concept of time period - (natural frequency) in harmonic - oscillations . -

    - -
    - -
    - - -
    - -
    - - -
    - -
    - Experiment -
    - -
    -

    - -

    -
    - -
    - -
    - -
    - - -
    - -
    - Manual -
    - -
    -

    - Start the experiment with the default values of - length, mass and intial displacement (in angle). - Pause the experiment after few cycles and note - the observation. -

    - -

    Observation 1:

    -
      - -
    1. - Find the time period of the pendulum by noting the - time interval of any one complete cycle from the - response graph. -
    2. - -
    3. - You may note that this time period value is same - for any complete cycle. - Read More -
    4. - -
    - -
    - -
    - -
    - -
    - - -
    - -
    - Quizzes -
    - -
    - -

    - - Q1. - Time taken for one complete oscillation - is called Time Period of the oscillator.
    - - True
    - - False

    - - Q2. - Time period of the oscillator is constant for - given values of mass, length and initial - conditions.
    - - True
    - - False

    - - Q3. - Value of Time period depends on initial - conditions.
    - - True
    - - False

    - - Q4. - Value of time period depends on mass.
    - - True
    - - False

    - - Q5. - Value of time period depends on length of the - oscillator.
    - - True
    - - False

    - -

    - -
    - -
    - -
    - -
    - - -
    - -
    - Procedure -
    - -
    -

    - Procedure for the experiment is as follows -

    -
    - -
    - - -
    - -
    - - -
    - -
    - Further Readings -
    - -
    - -
    - -
    - -
    - - - - - - - -
    - -
    - -
    - - - -
    - -
    - -
    - - - diff --git a/build/MIofConnectingRod/index.html b/build/MIofConnectingRod/index.html deleted file mode 100755 index 294c518..0000000 --- a/build/MIofConnectingRod/index.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - diff --git a/build/MIofConnectingRod/js/code for picture.js b/build/MIofConnectingRod/js/code for picture.js deleted file mode 100755 index bd91ef4..0000000 --- a/build/MIofConnectingRod/js/code for picture.js +++ /dev/null @@ -1,129 +0,0 @@ -var leftScrew; -var rightScrew; -var outlineRod; -var lowerCircle; -var upperCircle; -var outerRect; -var innerRect; -var smallRect; -var pendulum; -var check; -var sec=700; -var secs=700; -function picture() -{ -r=new Raphael(document.getElementById('picture'),800,520); -pendulum=r.set(); -leftScrew = r.path("M235 322 l15 0 , l-5 40, l-5 0, l-5 -40").attr({fill:"black"}); - -rightScrew = r.path("M450 322 l15 0 , l-5 40, l-5 0, l-5 -40").attr({fill:"black"}); -outlineRod = r.path("M320 93 l-45,230 s-3,10 -10,10 , l-40 0 ,s -20,15 15,12 ,l 70 ,0 ,l-84,0 , s -20,15 15,12 , l 27 ,0 , s60,110 170,1 , l 40 ,-0 ,s 20,-15 -18,-12 , l -70,0 ,l85,-0 , s 20,-15 -15,-12 ,l-20 0 ,s -10,2 -10,-10, l-50,-230, s-30,-40 -60,0 ").attr({fill:"grey"}); - -lowerCircle = r.circle(350, 340, 40).attr({fill:"white"}); - -upperCircle = r.circle(350, 100, 20).attr({fill:"white"}); - -outerRect= r.path("M340 140 l-25,150 l 70 ,0, l-25,-150, l-20,0").attr({fill:"#6D6968"}); - -innerRect= r.path("M345 145 l-23,140 l 55 ,0, l-23,-140, l-10,0").attr({fill:"white"}); - -//leftScrew.translate(160,20) -//leftScrew.rotate(-35); - -//rightScrew.translate(-159,23) -//rightScrew.rotate(35); - -//outerRect.translate(-65,-20) -//outerRect.rotate(35); - -//innerRect.translate(-65,-20) -//innerRect.rotate(35); - -//lowerCircle.translate(-100,-50) -//lowerCircle.rotate(45); - - -smallRect= r.path("M350 80 l-8,15,l15,0, l-7,-15").attr({fill:"black"}); -//pendulum.push(outlineRod,lowerCircle,upperCircle,outerRect,innerRect,smallRect); -//outlineRod.translate(-80,-20) -//outlineRod.rotate(35); - -//leftScrew2 = r.path("M128 221 l12 10 ,l-26 28, l-5 -2 l19 -35").attr({fill:"black"}); -//rightScrew2 = r.path("M305 345 l12 9,l-29 29 l-4 -4 ,l20 -33").attr({fill:"black"}); - -//outlineRod2= r.path("M320 90 l-155,150 , s-8,10 -20,2 ,l-30 -20 s -28,-1 14,23, l 55 ,35 , l -74 ,-49 s -30,-1 14,25 ,l 12 ,10, s-8,130 140,96, l 28 ,22, s 25,4 7,-10 l -65 ,-45 ,l 68 ,47 ,s 12,4 5,-11, l -29 ,-20 ,s -10,0 -1,-15, l90,-214 , s-7,-67 -59,-25 "); - -//outerRect2 = r.path("M320 128 l-106,108, l 57 ,40, l66,-137, l-17,-12").attr({fill:"#6D6968"}); -//innerRect2 = r.path("M321 135 l-100,102 ,l 46 ,30, l61,-127,l-8,-5").attr({fill:"white"}); -//lowerCircle2 = r.circle(216, 303, 40).attr({fill:"white"}); - -//right picture - -//outlineRod.translate(80,-20) -//outlineRod.rotate(-35); - -//outerRect.translate(65,-20) -//outerRect.rotate(-35); - -//innerRect.translate(65,-20) -//innerRect.rotate(-35); - -//rightScrew.translate(120,-100) -//rightScrew.rotate(-35); -//outlineRod3 = r.path("M320 115 l 95,214,s5,14 -9,19,l-25 18, s -10,21 14,4 , l 65 ,-45 ,l -74 ,52,s 1,15 14,5 ,l 30 ,-22,s108,60 139,-97,l 30 ,-20,s 14,-20 -10,-8 l -67 ,47 ,l 70 ,-48,s 7,-19 -12,-7 , l -25 ,18,s -7,4 -14,-6,l-170,-157,s-50,-20 -50,35"); -//outerRect3 = r.path("M364 140 l65,136,l 57 ,-40,l-107,-108,l-15,11"); -//innerRect3 = r.path("M370 140 l63,129,l 45 ,-33,l-100,-100,l-8,5"); -//leftScrew3 = r.path("M385 350 l12 -10 ,l18 36,l-3 5,l-28 -32"); -//rightScrew3 = r.path("M560 230 l12 -10,l19 37,l-4 4 ,l-26 -30"); -//lowerCircle3 = r.circle(493, 303, 40).attr({fill:"white"}); -//lower curve -var c = r.path("M130 430 s160,100 452,0,l 0,11,s-250,100 -452,3,l 0,-14").attr({fill:"#C8BBBE"}); -var c = r.path("M350 487 l 0,-14"); -var c = r.path("M280 470 l -2,14"); -var c = r.path("M210 459 l -2,14"); -var c = r.path("M150 440 l -2,14"); -var c = r.path("M555 437 l 2,14"); -var c = r.path("M490 455 l 2,14"); -var c = r.path("M425 467 l 2,14"); -//first(); -} -function first() -{ - check=1; - var an1=outlineRod.animate({path:"M320 90 l-155,150 , s-8,10 -20,2 ,l-30 -20 s -28,-1 14,23, l 55 ,35 , l -74 ,-49 s -30,-1 14,25 ,l 12 ,10, s-8,130 140,96, l 28 ,22, s 25,4 7,-10 l -65 ,-45 ,l 68 ,47 ,s 12,4 5,-11, l -29 ,-20 ,s -10,0 -1,-15, l90,-214 , s-7,-67 -59,-25 "},sec) - var an2=lowerCircle.animateWith(an1,{cx:216,cy:303},sec); - var an3=innerRect.animateWith(an1,{path:"M321 135 l-100,102 ,l 46 ,30, l61,-127,l-8,-5"},sec); - var an4=outerRect.animateWith(an1,{path:"M320 128 l-106,108, l 57 ,40, l66,-137, l-17,-12"},sec); - var an5=leftScrew.animateWith(an1,{path:"M128 221 l12 10 ,l-26 28, l-5 -2 l19 -35"},sec); - var an6=rightScrew.animateWith(an1,{path:"M305 345 l12 9,l-29 29 l-4 -4 ,l20 -33"},sec); - setTimeout("third()",secs); -} -function second() -{ - check=2; - var an1=outlineRod.animate({path:"M320 115 l 95,214,s5,14 -9,19,l-25 18, s -10,21 14,4 , l 65 ,-45 ,l -74 ,52,s 1,15 14,5 ,l 30 ,-22,s108,60 139,-97,l 30 ,-20,s 14,-20 -10,-8 l -67 ,47 ,l 70 ,-48,s 7,-19 -12,-7 , l -25 ,18,s -7,4 -14,-6,l-170,-157,s-50,-20 -50,35"},sec); - var an2=lowerCircle.animateWith(an1,{cx:493,cy:303},sec); - var an3=innerRect.animateWith(an1,{path:"M370 140 l63,129,l 45 ,-33,l-100,-100,l-8,5"},sec); - var an4=outerRect.animateWith(an1,{path:"M364 140 l65,136,l 57 ,-40,l-107,-108,l-15,11"},sec); - var an5=leftScrew.animateWith(an1,{path:"M385 350 l12 -10 ,l18 36,l-3 5,l-28 -32"},sec); - var an6=rightScrew.animateWith(an1,{path:"M560 230 l12 -10,l19 37,l-4 4 ,l-26 -30"},sec); - setTimeout("third()",secs); - secs-=20; -} -function third() -{ - var an1=outlineRod.animate({path:"M320 93 l-45,230 s-3,10 -10,10 , l-40 0 ,s -20,15 15,12 l 70 ,0 ,l-84,0 , s -20,15 15,12 , l 27 ,0 , s60,110 170,1 , l 40 ,-0 ,s 20,-15 -18,-12 , l -70,0 ,l85,-0 , s 20,-15 -15,-12 ,l-20 0 ,s -10,2 -10,-10, l-50,-230, s-30,-40 -60,0" },sec); - var an2=lowerCircle.animateWith(an1,{cx:350,cy:340},sec); - var an3=innerRect.animateWith(an1,{path:"M345 145 l-23,140 l 55 ,0, l-23,-140, l-10,0"},sec); - var an4=outerRect.animateWith(an1,{path:"M340 140 l-25,150 l 70 ,0, l-25,-150, l-20,0"},sec); - var an5=leftScrew.animateWith(an1,{path:"M235 322 l15 0 , l-5 40, l-5 0, l-5 -40"},sec); - var an6=rightScrew.animateWith(an1,{path:"M450 322 l15 0 , l-5 40, l-5 0, l-5 -40"},sec); - if(secs>0) - { - if(check==1) - setTimeout("second()",secs-5); - else - setTimeout("first()",secs-5); - } - -} \ No newline at end of file diff --git a/build/MIofConnectingRod/js/jquery-1.5.1.min.js b/build/MIofConnectingRod/js/jquery-1.5.1.min.js deleted file mode 100755 index 6437874..0000000 --- a/build/MIofConnectingRod/js/jquery-1.5.1.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * jQuery JavaScript Library v1.5.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: Wed Feb 23 13:55:29 2011 -0500 - */ -(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="
    a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
    ",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div
    ","
    "]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
    ").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
    ";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file diff --git a/build/MIofConnectingRod/js/jquery-ui-1.8.14.custom.min.js b/build/MIofConnectingRod/js/jquery-ui-1.8.14.custom.min.js deleted file mode 100755 index f9e4f1e..0000000 --- a/build/MIofConnectingRod/js/jquery-ui-1.8.14.custom.min.js +++ /dev/null @@ -1,789 +0,0 @@ -/*! - * jQuery UI 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.14", -keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus(); -b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this, -"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", -function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth, -outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,"tabindex"),d=isNaN(b); -return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e= -0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= -false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -;/* - * jQuery UI Position 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Position - */ -(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, -left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= -k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= -m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= -d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= -a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), -g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); -;/* - * jQuery UI Draggable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;this.helper= -this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); -this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true}, -_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b= -false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration, -10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle|| -!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&& -a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent= -this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"), -10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"), -10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, -(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!= -"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"), -10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+ -this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&& -!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.leftg[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.topg[3])?h:!(h-this.offset.click.topg[2])?e:!(e-this.offset.click.left=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= -i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); -var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= -false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); -this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= -{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; -if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false}, -_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f, -{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight: -Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(cb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left= -null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ -a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+ -c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]); -b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.14"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(), -10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top- -f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType? -e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a= -e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing, -step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= -e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset; -var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left: -a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top- -d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition, -f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, -display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b= -e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height= -d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); -;/* - * jQuery UI Selectable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
    ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", -c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= -this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a=== -"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&& -!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, -left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); -return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], -e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); -c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): -this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, -toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); -if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), -this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= -this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= -d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| -0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", -a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- -f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- -this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, -this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", -a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); -a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", -function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= -this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); -b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); -a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ -c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; -if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); -if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), -e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| -e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", -"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.14", -animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); -f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", -paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); -;/* - * jQuery UI Autocomplete 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.position.js - */ -(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g= -false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= -a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; -this.menu=d("
      ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& -a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); -d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& -b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= -this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, -"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); -(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); -this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b, -this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("");e.secondary&&a.append("");if(!this.options.text){d.push(f?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")=== -"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); -b.Widget.prototype.destroy.call(this)}})})(jQuery); -;/* - * jQuery UI Dialog 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.button.js - * jquery.ui.draggable.js - * jquery.ui.mouse.js - * jquery.ui.position.js - * jquery.ui.resizable.js - */ -(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, -position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
      ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= -1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== -f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
      ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, -function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", -handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, -originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", -f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): -[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); -if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): -e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= -this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.14",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), -create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), -height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(a.range==="min"||a.range==="max"?" ui-slider-range-"+a.range:""))}for(var j=c.length;j"); -this.handles=c.add(d(e.join("")).appendTo(b.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", -g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!b.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");i=b._start(g,l);if(i===false)return}break}m=b.options.step;i=b.options.values&&b.options.values.length? -(h=b.values(l)):(h=b.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=b._valueMin();break;case d.ui.keyCode.END:h=b._valueMax();break;case d.ui.keyCode.PAGE_UP:h=b._trimAlignValue(i+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(i-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===b._valueMax())return;h=b._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===b._valueMin())return;h=b._trimAlignValue(i- -m);break}b._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(g,k);b._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); -return this},_mouseCapture:function(b){var a=this.options,c,f,e,j,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(a.range===true&&this.values(1)===a.min){g+=1;e=d(this.handles[g])}if(this._start(b,g)===false)return false; -this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();a=e.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-e.width()/2,top:b.pageY-a.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(b){var a= -this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;if(this.orientation==="horizontal"){a= -this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a); -c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var f;if(this.options.values&&this.options.values.length){f=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>f||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, -_refreshValue:function(){var b=this.options.range,a=this.options,c=this,f=!this._animateOff?a.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},a.animate); -if(h===1)c.range[f?"animate":"css"]({width:e-g+"%"},{queue:false,duration:a.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},a.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:a.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, -1)[f?"animate":"css"]({width:e+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Tabs 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
      ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
    • #{label}
    • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.14"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k'))}function N(a){return a.bind("mouseout",function(b){b= -d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b.addClass("ui-state-hover"); -b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.14"}});var A=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){H(this._defaults, -a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0, -selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('
      '))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]= -h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c= -this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a, -"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", -function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput); -a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left", -this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus", -this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b= -b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5", -cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a); -d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c= -d.datepicker._get(b,"beforeShow");H(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c= -{left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover"); -if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv); -J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"); -a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]|| -c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+ -i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b= -this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute", -left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&& -d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth= -b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear= -!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a); -a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a)); -d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()% -100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=B+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y", -TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay= -a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(), -b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n= -this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+s+"":f?"":''+s+"";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
      '+(c?h:"")+(this._isInRange(a,s)?'":"")+(c?"":h)+"
      ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),B= -this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right": -"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='
      '+(/all|left/.test(t)&&x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,B,v)+'
      ';var z=j?'": -"";for(t=0;t<7;t++){var r=(t+h)%7;z+="=5?' class="ui-datepicker-week-end"':"")+'>'+q[r]+""}y+=z+"";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q";var R=!j?"":'";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&ro;R+='";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+""}g++;if(g>11){g=0;m++}y+="
      '+this._get(a,"weekHeader")+"
      '+ -this._get(a,"calculateWeek")(r)+""+(F&&!D?" ":L?''+r.getDate()+"":''+ -r.getDate()+"")+"
      "+(l?""+(i[0]>0&&G==i[1]-1?'
      ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"), -l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
      ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()): -g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
      ";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c== -"Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear"); -if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); -c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, -"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= -function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker, -[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.14";window["DP_jQuery_"+A]=d})(jQuery); -;/* - * jQuery UI Progressbar 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
      ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* -this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Effects 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/ - */ -jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], -16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, -a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= -a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", -"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, -0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, -211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, -d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; -f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, -[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.14",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}); -c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c, -a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments); -a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%", -"pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d* -((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/= -e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/= -e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); -;/* - * jQuery UI Effects Fade 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fade - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Fold 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * jquery.effects.core.js - */ -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], -10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); -;/* - * jQuery UI Effects Highlight 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Pulsate 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * jquery.effects.core.js - */ -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); -b.dequeue()})})}})(jQuery); -; \ No newline at end of file diff --git a/build/MIofConnectingRod/js/moment.js b/build/MIofConnectingRod/js/moment.js deleted file mode 100755 index 1647915..0000000 --- a/build/MIofConnectingRod/js/moment.js +++ /dev/null @@ -1,104 +0,0 @@ -var t1,t2,t3,t4,t5,t6,m,l,T,pi,J; -var g=9.81; -var L=0.30; -var pi=22/7; -var timeTen1,timeTen2,timeTen3; -var time1,time2,time3; -var Jg; -var t,clicked; - -$(document).ready(function() -{ -picture(); - $("#submit1,#submit2").attr("disabled",true); - $("#reload").click(function(){ - $("#textbox3").val(""); - $("#textbox4").val(""); - $("#textbox5").val(""); - $("#textbox6").val(""); - $("#textbox7").val(""); - $("#textbox8").val(""); - $("#textbox10").val(""); - $("#textbox9").val(""); - $("#textbox11").val(""); - window.location.href=window.location.href; - }) -}); - -function calculateTime() -{ -t2=parseFloat($("#textbox4").val()); -t4=parseFloat($("#textbox6").val()); -t6=parseFloat($("#textbox8").val()); -T=((t2+t4+t6)/3).toFixed(5); -$("#textbox10").val(T); -} - -function moment() -{ -m=parseFloat($("#textbox1").val()); -l=parseFloat($("#textbox2").val()); -t1=parseFloat($("#textbox3").val()); -t2=parseFloat($("#textbox4").val()); -t3=parseFloat($("#textbox5").val()); -t4=parseFloat($("#textbox6").val()); -t5=parseFloat($("#textbox7").val()); -t6=parseFloat($("#textbox8").val()); -J=((m*g*L*T*T)/(4*pi*pi)).toFixed(3); -$("#textbox9").val(J); -} -function clickTrial1() -{ - clicked = "trialOne"; - $("#submit,#submit1,#submit2").attr("disabled",true); - $("#submit,#submit1,#submit2").removeClass('bluebtn'); - timeTen1=14.2; - time1=1.42; - r.remove(); - picture(); - oscillation(); - -} - -function clickTrial2() -{ - clicked = "trialTwo"; - $("#submit,#submit1,#submit2").attr("disabled",true); - $("#submit1,#submit2").removeClass('bluebtn'); - timeTen2=14.8; - time2=1.48; - r.remove(); - picture(); - oscillation(); -} -function clickTrial3() -{ - clicked = "trialThree"; - $("#submit,#submit1,#submit2").attr("disabled",true); - $("#submit2").addClass('bluebtn'); - timeTen3=13.9; - time3=1.39; - r.remove(); - picture(); - oscillation(); -} -function click1() -{ - document.getElementById('textbox3').value=timeTen1; - document.getElementById('textbox4').value=time1; -} -function click2() -{ - document.getElementById('textbox5').value=timeTen2; - document.getElementById('textbox6').value=time2; -} -function click3() -{ - document.getElementById('textbox7').value=timeTen3; - document.getElementById('textbox8').value=time3; -} -function calculateCg() -{ - Jg=J-(m*l*l).toFixed(5); - $("#textbox11").val(Jg); -} diff --git a/build/MIofConnectingRod/js/raphael.js b/build/MIofConnectingRod/js/raphael.js deleted file mode 100755 index 6688d5e..0000000 --- a/build/MIofConnectingRod/js/raphael.js +++ /dev/null @@ -1,3725 +0,0 @@ -/*! - * Raphael 1.5.2 - JavaScript Vector Library - * - * Copyright (c) 2010 Dmitry Baranovskiy (http://raphaeljs.com) - * Licensed under the MIT (http://raphaeljs.com/license.html) license. - */ -(function () { - function R() { - if (R.is(arguments[0], array)) { - var a = arguments[0], - cnv = create[apply](R, a.splice(0, 3 + R.is(a[0], nu))), - res = cnv.set(); - for (var i = 0, ii = a[length]; i < ii; i++) { - var j = a[i] || {}; - elements[has](j.type) && res[push](cnv[j.type]().attr(j)); - } - return res; - } - return create[apply](R, arguments); - } - R.version = "1.5.2"; - var separator = /[, ]+/, - elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1}, - formatrg = /\{(\d+)\}/g, - proto = "prototype", - has = "hasOwnProperty", - doc = document, - win = window, - oldRaphael = { - was: Object[proto][has].call(win, "Raphael"), - is: win.Raphael - }, - Paper = function () { - this.customAttributes = {}; - }, - paperproto, - appendChild = "appendChild", - apply = "apply", - concat = "concat", - supportsTouch = "createTouch" in doc, - E = "", - S = " ", - Str = String, - split = "split", - events = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend"[split](S), - touchMap = { - mousedown: "touchstart", - mousemove: "touchmove", - mouseup: "touchend" - }, - join = "join", - length = "length", - lowerCase = Str[proto].toLowerCase, - math = Math, - mmax = math.max, - mmin = math.min, - abs = math.abs, - pow = math.pow, - PI = math.PI, - nu = "number", - string = "string", - array = "array", - toString = "toString", - fillString = "fill", - objectToString = Object[proto][toString], - paper = {}, - push = "push", - ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i, - colourRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i, - isnan = {"NaN": 1, "Infinity": 1, "-Infinity": 1}, - bezierrg = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/, - round = math.round, - setAttribute = "setAttribute", - toFloat = parseFloat, - toInt = parseInt, - ms = " progid:DXImageTransform.Microsoft", - upperCase = Str[proto].toUpperCase, - availableAttrs = {blur: 0, "clip-rect": "0 0 1e9 1e9", cursor: "default", cx: 0, cy: 0, fill: "#fff", "fill-opacity": 1, font: '10px "Arial"', "font-family": '"Arial"', "font-size": "10", "font-style": "normal", "font-weight": 400, gradient: 0, height: 0, href: "http://raphaeljs.com/", opacity: 1, path: "M0,0", r: 0, rotation: 0, rx: 0, ry: 0, scale: "1 1", src: "", stroke: "#000", "stroke-dasharray": "", "stroke-linecap": "butt", "stroke-linejoin": "butt", "stroke-miterlimit": 0, "stroke-opacity": 1, "stroke-width": 1, target: "_blank", "text-anchor": "middle", title: "Raphael", translation: "0 0", width: 0, x: 0, y: 0}, - availableAnimAttrs = {along: "along", blur: nu, "clip-rect": "csv", cx: nu, cy: nu, fill: "colour", "fill-opacity": nu, "font-size": nu, height: nu, opacity: nu, path: "path", r: nu, rotation: "csv", rx: nu, ry: nu, scale: "csv", stroke: "colour", "stroke-opacity": nu, "stroke-width": nu, translation: "csv", width: nu, x: nu, y: nu}, - rp = "replace", - animKeyFrames= /^(from|to|\d+%?)$/, - commaSpaces = /\s*,\s*/, - hsrg = {hs: 1, rg: 1}, - p2s = /,?([achlmqrstvxz]),?/gi, - pathCommand = /([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig, - pathValues = /(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig, - radial_gradient = /^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/, - sortByKey = function (a, b) { - return a.key - b.key; - }; - - R.type = (win.SVGAngle || doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML"); - if (R.type == "VML") { - var d = doc.createElement("div"), - b; - d.innerHTML = ''; - b = d.firstChild; - b.style.behavior = "url(#default#VML)"; - if (!(b && typeof b.adj == "object")) { - return R.type = null; - } - d = null; - } - R.svg = !(R.vml = R.type == "VML"); - Paper[proto] = R[proto]; - paperproto = Paper[proto]; - R._id = 0; - R._oid = 0; - R.fn = {}; - R.is = function (o, type) { - type = lowerCase.call(type); - if (type == "finite") { - return !isnan[has](+o); - } - return (type == "null" && o === null) || - (type == typeof o) || - (type == "object" && o === Object(o)) || - (type == "array" && Array.isArray && Array.isArray(o)) || - objectToString.call(o).slice(8, -1).toLowerCase() == type; - }; - R.angle = function (x1, y1, x2, y2, x3, y3) { - if (x3 == null) { - var x = x1 - x2, - y = y1 - y2; - if (!x && !y) { - return 0; - } - return ((x < 0) * 180 + math.atan(-y / -x) * 180 / PI + 360) % 360; - } else { - return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3); - } - }; - R.rad = function (deg) { - return deg % 360 * PI / 180; - }; - R.deg = function (rad) { - return rad * 180 / PI % 360; - }; - R.snapTo = function (values, value, tolerance) { - tolerance = R.is(tolerance, "finite") ? tolerance : 10; - if (R.is(values, array)) { - var i = values.length; - while (i--) if (abs(values[i] - value) <= tolerance) { - return values[i]; - } - } else { - values = +values; - var rem = value % values; - if (rem < tolerance) { - return value - rem; - } - if (rem > values - tolerance) { - return value - rem + values; - } - } - return value; - }; - function createUUID() { - // http://www.ietf.org/rfc/rfc4122.txt - var s = [], - i = 0; - for (; i < 32; i++) { - s[i] = (~~(math.random() * 16))[toString](16); - } - s[12] = 4; // bits 12-15 of the time_hi_and_version field to 0010 - s[16] = ((s[16] & 3) | 8)[toString](16); // bits 6-7 of the clock_seq_hi_and_reserved to 01 - return "r-" + s[join](""); - } - - R.setWindow = function (newwin) { - win = newwin; - doc = win.document; - }; - // colour utilities - var toHex = function (color) { - if (R.vml) { - // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/ - var trim = /^\s+|\s+$/g; - var bod; - try { - var docum = new ActiveXObject("htmlfile"); - docum.write(""); - docum.close(); - bod = docum.body; - } catch(e) { - bod = createPopup().document.body; - } - var range = bod.createTextRange(); - toHex = cacher(function (color) { - try { - bod.style.color = Str(color)[rp](trim, E); - var value = range.queryCommandValue("ForeColor"); - value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16); - return "#" + ("000000" + value[toString](16)).slice(-6); - } catch(e) { - return "none"; - } - }); - } else { - var i = doc.createElement("i"); - i.title = "Rapha\xebl Colour Picker"; - i.style.display = "none"; - doc.body[appendChild](i); - toHex = cacher(function (color) { - i.style.color = color; - return doc.defaultView.getComputedStyle(i, E).getPropertyValue("color"); - }); - } - return toHex(color); - }, - hsbtoString = function () { - return "hsb(" + [this.h, this.s, this.b] + ")"; - }, - hsltoString = function () { - return "hsl(" + [this.h, this.s, this.l] + ")"; - }, - rgbtoString = function () { - return this.hex; - }; - R.hsb2rgb = function (h, s, b, o) { - if (R.is(h, "object") && "h" in h && "s" in h && "b" in h) { - b = h.b; - s = h.s; - h = h.h; - o = h.o; - } - return R.hsl2rgb(h, s, b / 2, o); - }; - R.hsl2rgb = function (h, s, l, o) { - if (R.is(h, "object") && "h" in h && "s" in h && "l" in h) { - l = h.l; - s = h.s; - h = h.h; - } - if (h > 1 || s > 1 || l > 1) { - h /= 360; - s /= 100; - l /= 100; - } - var rgb = {}, - channels = ["r", "g", "b"], - t2, t1, t3, r, g, b; - if (!s) { - rgb = { - r: l, - g: l, - b: l - }; - } else { - if (l < .5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } - t1 = 2 * l - t2; - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - t3 < 0 && t3++; - t3 > 1 && t3--; - if (t3 * 6 < 1) { - rgb[channels[i]] = t1 + (t2 - t1) * 6 * t3; - } else if (t3 * 2 < 1) { - rgb[channels[i]] = t2; - } else if (t3 * 3 < 2) { - rgb[channels[i]] = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - rgb[channels[i]] = t1; - } - } - } - rgb.r *= 255; - rgb.g *= 255; - rgb.b *= 255; - rgb.hex = "#" + (16777216 | rgb.b | (rgb.g << 8) | (rgb.r << 16)).toString(16).slice(1); - R.is(o, "finite") && (rgb.opacity = o); - rgb.toString = rgbtoString; - return rgb; - }; - R.rgb2hsb = function (red, green, blue) { - if (green == null && R.is(red, "object") && "r" in red && "g" in red && "b" in red) { - blue = red.b; - green = red.g; - red = red.r; - } - if (green == null && R.is(red, string)) { - var clr = R.getRGB(red); - red = clr.r; - green = clr.g; - blue = clr.b; - } - if (red > 1 || green > 1 || blue > 1) { - red /= 255; - green /= 255; - blue /= 255; - } - var max = mmax(red, green, blue), - min = mmin(red, green, blue), - hue, - saturation, - brightness = max; - if (min == max) { - return {h: 0, s: 0, b: max, toString: hsbtoString}; - } else { - var delta = (max - min); - saturation = delta / max; - if (red == max) { - hue = (green - blue) / delta; - } else if (green == max) { - hue = 2 + ((blue - red) / delta); - } else { - hue = 4 + ((red - green) / delta); - } - hue /= 6; - hue < 0 && hue++; - hue > 1 && hue--; - } - return {h: hue, s: saturation, b: brightness, toString: hsbtoString}; - }; - R.rgb2hsl = function (red, green, blue) { - if (green == null && R.is(red, "object") && "r" in red && "g" in red && "b" in red) { - blue = red.b; - green = red.g; - red = red.r; - } - if (green == null && R.is(red, string)) { - var clr = R.getRGB(red); - red = clr.r; - green = clr.g; - blue = clr.b; - } - if (red > 1 || green > 1 || blue > 1) { - red /= 255; - green /= 255; - blue /= 255; - } - var max = mmax(red, green, blue), - min = mmin(red, green, blue), - h, - s, - l = (max + min) / 2, - hsl; - if (min == max) { - hsl = {h: 0, s: 0, l: l}; - } else { - var delta = max - min; - s = l < .5 ? delta / (max + min) : delta / (2 - max - min); - if (red == max) { - h = (green - blue) / delta; - } else if (green == max) { - h = 2 + (blue - red) / delta; - } else { - h = 4 + (red - green) / delta; - } - h /= 6; - h < 0 && h++; - h > 1 && h--; - hsl = {h: h, s: s, l: l}; - } - hsl.toString = hsltoString; - return hsl; - }; - R._path2string = function () { - return this.join(",")[rp](p2s, "$1"); - }; - function cacher(f, scope, postprocessor) { - function newf() { - var arg = Array[proto].slice.call(arguments, 0), - args = arg[join]("\u25ba"), - cache = newf.cache = newf.cache || {}, - count = newf.count = newf.count || []; - if (cache[has](args)) { - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - count[length] >= 1e3 && delete cache[count.shift()]; - count[push](args); - cache[args] = f[apply](scope, arg); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - return newf; - } - - R.getRGB = cacher(function (colour) { - if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1}; - } - if (colour == "none") { - return {r: -1, g: -1, b: -1, hex: "none"}; - } - !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour)); - var res, - red, - green, - blue, - opacity, - t, - values, - rgb = colour.match(colourRegExp); - if (rgb) { - if (rgb[2]) { - blue = toInt(rgb[2].substring(5), 16); - green = toInt(rgb[2].substring(3, 5), 16); - red = toInt(rgb[2].substring(1, 3), 16); - } - if (rgb[3]) { - blue = toInt((t = rgb[3].charAt(3)) + t, 16); - green = toInt((t = rgb[3].charAt(2)) + t, 16); - red = toInt((t = rgb[3].charAt(1)) + t, 16); - } - if (rgb[4]) { - values = rgb[4][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - } - if (rgb[5]) { - values = rgb[5][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsb2rgb(red, green, blue, opacity); - } - if (rgb[6]) { - values = rgb[6][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsl2rgb(red, green, blue, opacity); - } - rgb = {r: red, g: green, b: blue}; - rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1); - R.is(opacity, "finite") && (rgb.opacity = opacity); - return rgb; - } - return {r: -1, g: -1, b: -1, hex: "none", error: 1}; - }, R); - R.getColor = function (value) { - var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75}, - rgb = this.hsb2rgb(start.h, start.s, start.b); - start.h += .075; - if (start.h > 1) { - start.h = 0; - start.s -= .2; - start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b}); - } - return rgb.hex; - }; - R.getColor.reset = function () { - delete this.start; - }; - // path utilities - R.parsePathString = cacher(function (pathString) { - if (!pathString) { - return null; - } - var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0}, - data = []; - if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption - data = pathClone(pathString); - } - if (!data[length]) { - Str(pathString)[rp](pathCommand, function (a, b, c) { - var params = [], - name = lowerCase.call(b); - c[rp](pathValues, function (a, b) { - b && params[push](+b); - }); - if (name == "m" && params[length] > 2) { - data[push]([b][concat](params.splice(0, 2))); - name = "l"; - b = b == "m" ? "l" : "L"; - } - while (params[length] >= paramCounts[name]) { - data[push]([b][concat](params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - }); - } - data[toString] = R._path2string; - return data; - }); - R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t, - x = pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y = pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y, - mx = p1x + 2 * t * (c1x - p1x) + t * t * (c2x - 2 * c1x + p1x), - my = p1y + 2 * t * (c1y - p1y) + t * t * (c2y - 2 * c1y + p1y), - nx = c1x + 2 * t * (c2x - c1x) + t * t * (p2x - 2 * c2x + c1x), - ny = c1y + 2 * t * (c2y - c1y) + t * t * (p2y - 2 * c2y + c1y), - ax = (1 - t) * p1x + t * c1x, - ay = (1 - t) * p1y + t * c1y, - cx = (1 - t) * c2x + t * p2x, - cy = (1 - t) * c2y + t * p2y, - alpha = (90 - math.atan((mx - nx) / (my - ny)) * 180 / PI); - (mx > nx || my < ny) && (alpha += 180); - return {x: x, y: y, m: {x: mx, y: my}, n: {x: nx, y: ny}, start: {x: ax, y: ay}, end: {x: cx, y: cy}, alpha: alpha}; - }; - var pathDimensions = cacher(function (path) { - if (!path) { - return {x: 0, y: 0, width: 0, height: 0}; - } - path = path2curve(path); - var x = 0, - y = 0, - X = [], - Y = [], - p; - for (var i = 0, ii = path[length]; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = p[1]; - y = p[2]; - X[push](x); - Y[push](y); - } else { - var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - X = X[concat](dim.min.x, dim.max.x); - Y = Y[concat](dim.min.y, dim.max.y); - x = p[5]; - y = p[6]; - } - } - var xmin = mmin[apply](0, X), - ymin = mmin[apply](0, Y); - return { - x: xmin, - y: ymin, - width: mmax[apply](0, X) - xmin, - height: mmax[apply](0, Y) - ymin - }; - }), - pathClone = function (pathArray) { - var res = []; - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - for (var i = 0, ii = pathArray[length]; i < ii; i++) { - res[i] = []; - for (var j = 0, jj = pathArray[i][length]; j < jj; j++) { - res[i][j] = pathArray[i][j]; - } - } - res[toString] = R._path2string; - return res; - }, - pathToRelative = cacher(function (pathArray) { - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = pathArray[0][1]; - y = pathArray[0][2]; - mx = x; - my = y; - start++; - res[push](["M", x, y]); - } - for (var i = start, ii = pathArray[length]; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != lowerCase.call(pa[0])) { - r[0] = lowerCase.call(pa[0]); - switch (r[0]) { - case "a": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] - x).toFixed(3); - r[7] = +(pa[7] - y).toFixed(3); - break; - case "v": - r[1] = +(pa[1] - y).toFixed(3); - break; - case "m": - mx = pa[1]; - my = pa[2]; - default: - for (var j = 1, jj = pa[length]; j < jj; j++) { - r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3); - } - } - } else { - r = res[i] = []; - if (pa[0] == "m") { - mx = pa[1] + x; - my = pa[2] + y; - } - for (var k = 0, kk = pa[length]; k < kk; k++) { - res[i][k] = pa[k]; - } - } - var len = res[i][length]; - switch (res[i][0]) { - case "z": - x = mx; - y = my; - break; - case "h": - x += +res[i][len - 1]; - break; - case "v": - y += +res[i][len - 1]; - break; - default: - x += +res[i][len - 2]; - y += +res[i][len - 1]; - } - } - res[toString] = R._path2string; - return res; - }, 0, pathClone), - pathToAbsolute = cacher(function (pathArray) { - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = +pathArray[0][1]; - y = +pathArray[0][2]; - mx = x; - my = y; - start++; - res[0] = ["M", x, y]; - } - for (var i = start, ii = pathArray[length]; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != upperCase.call(pa[0])) { - r[0] = upperCase.call(pa[0]); - switch (r[0]) { - case "A": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] + x); - r[7] = +(pa[7] + y); - break; - case "V": - r[1] = +pa[1] + y; - break; - case "H": - r[1] = +pa[1] + x; - break; - case "M": - mx = +pa[1] + x; - my = +pa[2] + y; - default: - for (var j = 1, jj = pa[length]; j < jj; j++) { - r[j] = +pa[j] + ((j % 2) ? x : y); - } - } - } else { - for (var k = 0, kk = pa[length]; k < kk; k++) { - res[i][k] = pa[k]; - } - } - switch (r[0]) { - case "Z": - x = mx; - y = my; - break; - case "H": - x = r[1]; - break; - case "V": - y = r[1]; - break; - case "M": - mx = res[i][res[i][length] - 2]; - my = res[i][res[i][length] - 1]; - default: - x = res[i][res[i][length] - 2]; - y = res[i][res[i][length] - 1]; - } - } - res[toString] = R._path2string; - return res; - }, null, pathClone), - l2c = function (x1, y1, x2, y2) { - return [x1, y1, x2, y2, x2, y2]; - }, - q2c = function (x1, y1, ax, ay, x2, y2) { - var _13 = 1 / 3, - _23 = 2 / 3; - return [ - _13 * x1 + _23 * ax, - _13 * y1 + _23 * ay, - _13 * x2 + _23 * ax, - _13 * y2 + _23 * ay, - x2, - y2 - ]; - }, - a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { - // for more information of where this math came from visit: - // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes - var _120 = PI * 120 / 180, - rad = PI / 180 * (+angle || 0), - res = [], - xy, - rotate = cacher(function (x, y, rad) { - var X = x * math.cos(rad) - y * math.sin(rad), - Y = x * math.sin(rad) + y * math.cos(rad); - return {x: X, y: Y}; - }); - if (!recursive) { - xy = rotate(x1, y1, -rad); - x1 = xy.x; - y1 = xy.y; - xy = rotate(x2, y2, -rad); - x2 = xy.x; - y2 = xy.y; - var cos = math.cos(PI / 180 * angle), - sin = math.sin(PI / 180 * angle), - x = (x1 - x2) / 2, - y = (y1 - y2) / 2; - var h = (x * x) / (rx * rx) + (y * y) / (ry * ry); - if (h > 1) { - h = math.sqrt(h); - rx = h * rx; - ry = h * ry; - } - var rx2 = rx * rx, - ry2 = ry * ry, - k = (large_arc_flag == sweep_flag ? -1 : 1) * - math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))), - cx = k * rx * y / ry + (x1 + x2) / 2, - cy = k * -ry * x / rx + (y1 + y2) / 2, - f1 = math.asin(((y1 - cy) / ry).toFixed(9)), - f2 = math.asin(((y2 - cy) / ry).toFixed(9)); - - f1 = x1 < cx ? PI - f1 : f1; - f2 = x2 < cx ? PI - f2 : f2; - f1 < 0 && (f1 = PI * 2 + f1); - f2 < 0 && (f2 = PI * 2 + f2); - if (sweep_flag && f1 > f2) { - f1 = f1 - PI * 2; - } - if (!sweep_flag && f2 > f1) { - f2 = f2 - PI * 2; - } - } else { - f1 = recursive[0]; - f2 = recursive[1]; - cx = recursive[2]; - cy = recursive[3]; - } - var df = f2 - f1; - if (abs(df) > _120) { - var f2old = f2, - x2old = x2, - y2old = y2; - f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); - x2 = cx + rx * math.cos(f2); - y2 = cy + ry * math.sin(f2); - res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); - } - df = f2 - f1; - var c1 = math.cos(f1), - s1 = math.sin(f1), - c2 = math.cos(f2), - s2 = math.sin(f2), - t = math.tan(df / 4), - hx = 4 / 3 * rx * t, - hy = 4 / 3 * ry * t, - m1 = [x1, y1], - m2 = [x1 + hx * s1, y1 - hy * c1], - m3 = [x2 + hx * s2, y2 - hy * c2], - m4 = [x2, y2]; - m2[0] = 2 * m1[0] - m2[0]; - m2[1] = 2 * m1[1] - m2[1]; - if (recursive) { - return [m2, m3, m4][concat](res); - } else { - res = [m2, m3, m4][concat](res)[join]()[split](","); - var newres = []; - for (var i = 0, ii = res[length]; i < ii; i++) { - newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; - } - return newres; - } - }, - findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t; - return { - x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y - }; - }, - curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x), - b = 2 * (c1x - p1x) - 2 * (c2x - c1x), - c = p1x - c1x, - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a, - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a, - y = [p1y, p2y], - x = [p1x, p2x], - dot; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x[push](dot.x); - y[push](dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x[push](dot.x); - y[push](dot.y); - } - a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y); - b = 2 * (c1y - p1y) - 2 * (c2y - c1y); - c = p1y - c1y; - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a; - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x[push](dot.x); - y[push](dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x[push](dot.x); - y[push](dot.y); - } - return { - min: {x: mmin[apply](0, x), y: mmin[apply](0, y)}, - max: {x: mmax[apply](0, x), y: mmax[apply](0, y)} - }; - }), - path2curve = cacher(function (path, path2) { - var p = pathToAbsolute(path), - p2 = path2 && pathToAbsolute(path2), - attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - processPath = function (path, d) { - var nx, ny; - if (!path) { - return ["C", d.x, d.y, d.x, d.y, d.x, d.y]; - } - !(path[0] in {T:1, Q:1}) && (d.qx = d.qy = null); - switch (path[0]) { - case "M": - d.X = path[1]; - d.Y = path[2]; - break; - case "A": - path = ["C"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1)))); - break; - case "S": - nx = d.x + (d.x - (d.bx || d.x)); - ny = d.y + (d.y - (d.by || d.y)); - path = ["C", nx, ny][concat](path.slice(1)); - break; - case "T": - d.qx = d.x + (d.x - (d.qx || d.x)); - d.qy = d.y + (d.y - (d.qy || d.y)); - path = ["C"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])); - break; - case "Q": - d.qx = path[1]; - d.qy = path[2]; - path = ["C"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4])); - break; - case "L": - path = ["C"][concat](l2c(d.x, d.y, path[1], path[2])); - break; - case "H": - path = ["C"][concat](l2c(d.x, d.y, path[1], d.y)); - break; - case "V": - path = ["C"][concat](l2c(d.x, d.y, d.x, path[1])); - break; - case "Z": - path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y)); - break; - } - return path; - }, - fixArc = function (pp, i) { - if (pp[i][length] > 7) { - pp[i].shift(); - var pi = pp[i]; - while (pi[length]) { - pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6))); - } - pp.splice(i, 1); - ii = mmax(p[length], p2 && p2[length] || 0); - } - }, - fixM = function (path1, path2, a1, a2, i) { - if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") { - path2.splice(i, 0, ["M", a2.x, a2.y]); - a1.bx = 0; - a1.by = 0; - a1.x = path1[i][1]; - a1.y = path1[i][2]; - ii = mmax(p[length], p2 && p2[length] || 0); - } - }; - for (var i = 0, ii = mmax(p[length], p2 && p2[length] || 0); i < ii; i++) { - p[i] = processPath(p[i], attrs); - fixArc(p, i); - p2 && (p2[i] = processPath(p2[i], attrs2)); - p2 && fixArc(p2, i); - fixM(p, p2, attrs, attrs2, i); - fixM(p2, p, attrs2, attrs, i); - var seg = p[i], - seg2 = p2 && p2[i], - seglen = seg[length], - seg2len = p2 && seg2[length]; - attrs.x = seg[seglen - 2]; - attrs.y = seg[seglen - 1]; - attrs.bx = toFloat(seg[seglen - 4]) || attrs.x; - attrs.by = toFloat(seg[seglen - 3]) || attrs.y; - attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x); - attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y); - attrs2.x = p2 && seg2[seg2len - 2]; - attrs2.y = p2 && seg2[seg2len - 1]; - } - return p2 ? [p, p2] : p; - }, null, pathClone), - parseDots = cacher(function (gradient) { - var dots = []; - for (var i = 0, ii = gradient[length]; i < ii; i++) { - var dot = {}, - par = gradient[i].match(/^([^:]*):?([\d\.]*)/); - dot.color = R.getRGB(par[1]); - if (dot.color.error) { - return null; - } - dot.color = dot.color.hex; - par[2] && (dot.offset = par[2] + "%"); - dots[push](dot); - } - for (i = 1, ii = dots[length] - 1; i < ii; i++) { - if (!dots[i].offset) { - var start = toFloat(dots[i - 1].offset || 0), - end = 0; - for (var j = i + 1; j < ii; j++) { - if (dots[j].offset) { - end = dots[j].offset; - break; - } - } - if (!end) { - end = 100; - j = ii; - } - end = toFloat(end); - var d = (end - start) / (j - i + 1); - for (; i < j; i++) { - start += d; - dots[i].offset = start + "%"; - } - } - } - return dots; - }), - getContainer = function (x, y, w, h) { - var container; - if (R.is(x, string) || R.is(x, "object")) { - container = R.is(x, string) ? doc.getElementById(x) : x; - if (container.tagName) { - if (y == null) { - return { - container: container, - width: container.style.pixelWidth || container.offsetWidth, - height: container.style.pixelHeight || container.offsetHeight - }; - } else { - return {container: container, width: y, height: w}; - } - } - } else { - return {container: 1, x: x, y: y, width: w, height: h}; - } - }, - plugins = function (con, add) { - var that = this; - for (var prop in add) { - if (add[has](prop) && !(prop in con)) { - switch (typeof add[prop]) { - case "function": - (function (f) { - con[prop] = con === that ? f : function () { return f[apply](that, arguments); }; - })(add[prop]); - break; - case "object": - con[prop] = con[prop] || {}; - plugins.call(this, con[prop], add[prop]); - break; - default: - con[prop] = add[prop]; - break; - } - } - } - }, - tear = function (el, paper) { - el == paper.top && (paper.top = el.prev); - el == paper.bottom && (paper.bottom = el.next); - el.next && (el.next.prev = el.prev); - el.prev && (el.prev.next = el.next); - }, - tofront = function (el, paper) { - if (paper.top === el) { - return; - } - tear(el, paper); - el.next = null; - el.prev = paper.top; - paper.top.next = el; - paper.top = el; - }, - toback = function (el, paper) { - if (paper.bottom === el) { - return; - } - tear(el, paper); - el.next = paper.bottom; - el.prev = null; - paper.bottom.prev = el; - paper.bottom = el; - }, - insertafter = function (el, el2, paper) { - tear(el, paper); - el2 == paper.top && (paper.top = el); - el2.next && (el2.next.prev = el); - el.next = el2.next; - el.prev = el2; - el2.next = el; - }, - insertbefore = function (el, el2, paper) { - tear(el, paper); - el2 == paper.bottom && (paper.bottom = el); - el2.prev && (el2.prev.next = el); - el.prev = el2.prev; - el2.prev = el; - el.next = el2; - }, - removed = function (methodname) { - return function () { - throw new Error("Rapha\xebl: you are calling to method \u201c" + methodname + "\u201d of removed object"); - }; - }; - R.pathToRelative = pathToRelative; - // SVG - if (R.svg) { - paperproto.svgns = "http://www.w3.org/2000/svg"; - paperproto.xlink = "http://www.w3.org/1999/xlink"; - round = function (num) { - return +num + (~~num === num) * .5; - }; - var $ = function (el, attr) { - if (attr) { - for (var key in attr) { - if (attr[has](key)) { - el[setAttribute](key, Str(attr[key])); - } - } - } else { - el = doc.createElementNS(paperproto.svgns, el); - el.style.webkitTapHighlightColor = "rgba(0,0,0,0)"; - return el; - } - }; - R[toString] = function () { - return "Your browser supports SVG.\nYou are running Rapha\xebl " + this.version; - }; - var thePath = function (pathString, SVG) { - var el = $("path"); - SVG.canvas && SVG.canvas[appendChild](el); - var p = new Element(el, SVG); - p.type = "path"; - setFillAndStroke(p, {fill: "none", stroke: "#000", path: pathString}); - return p; - }; - var addGradientFill = function (o, gradient, SVG) { - var type = "linear", - fx = .5, fy = .5, - s = o.style; - gradient = Str(gradient)[rp](radial_gradient, function (all, _fx, _fy) { - type = "radial"; - if (_fx && _fy) { - fx = toFloat(_fx); - fy = toFloat(_fy); - var dir = ((fy > .5) * 2 - 1); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && - (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) && - fy != .5 && - (fy = fy.toFixed(5) - 1e-5 * dir); - } - return E; - }); - gradient = gradient[split](/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - var vector = [0, 0, math.cos(angle * PI / 180), math.sin(angle * PI / 180)], - max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1); - vector[2] *= max; - vector[3] *= max; - if (vector[2] < 0) { - vector[0] = -vector[2]; - vector[2] = 0; - } - if (vector[3] < 0) { - vector[1] = -vector[3]; - vector[3] = 0; - } - } - var dots = parseDots(gradient); - if (!dots) { - return null; - } - var id = o.getAttribute(fillString); - id = id.match(/^url\(#(.*)\)$/); - id && SVG.defs.removeChild(doc.getElementById(id[1])); - - var el = $(type + "Gradient"); - el.id = createUUID(); - $(el, type == "radial" ? {fx: fx, fy: fy} : {x1: vector[0], y1: vector[1], x2: vector[2], y2: vector[3]}); - SVG.defs[appendChild](el); - for (var i = 0, ii = dots[length]; i < ii; i++) { - var stop = $("stop"); - $(stop, { - offset: dots[i].offset ? dots[i].offset : !i ? "0%" : "100%", - "stop-color": dots[i].color || "#fff" - }); - el[appendChild](stop); - } - $(o, { - fill: "url(#" + el.id + ")", - opacity: 1, - "fill-opacity": 1 - }); - s.fill = E; - s.opacity = 1; - s.fillOpacity = 1; - return 1; - }; - var updatePosition = function (o) { - var bbox = o.getBBox(); - $(o.pattern, {patternTransform: R.format("translate({0},{1})", bbox.x, bbox.y)}); - }; - var setFillAndStroke = function (o, params) { - var dasharray = { - "": [0], - "none": [0], - "-": [3, 1], - ".": [1, 1], - "-.": [3, 1, 1, 1], - "-..": [3, 1, 1, 1, 1, 1], - ". ": [1, 3], - "- ": [4, 3], - "--": [8, 3], - "- .": [4, 3, 1, 3], - "--.": [8, 3, 1, 3], - "--..": [8, 3, 1, 3, 1, 3] - }, - node = o.node, - attrs = o.attrs, - rot = o.rotate(), - addDashes = function (o, value) { - value = dasharray[lowerCase.call(value)]; - if (value) { - var width = o.attrs["stroke-width"] || "1", - butt = {round: width, square: width, butt: 0}[o.attrs["stroke-linecap"] || params["stroke-linecap"]] || 0, - dashes = []; - var i = value[length]; - while (i--) { - dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt; - } - $(node, {"stroke-dasharray": dashes[join](",")}); - } - }; - params[has]("rotation") && (rot = params.rotation); - var rotxy = Str(rot)[split](separator); - if (!(rotxy.length - 1)) { - rotxy = null; - } else { - rotxy[1] = +rotxy[1]; - rotxy[2] = +rotxy[2]; - } - toFloat(rot) && o.rotate(0, true); - for (var att in params) { - if (params[has](att)) { - if (!availableAttrs[has](att)) { - continue; - } - var value = params[att]; - attrs[att] = value; - switch (att) { - case "blur": - o.blur(value); - break; - case "rotation": - o.rotate(value, true); - break; - case "href": - case "title": - case "target": - var pn = node.parentNode; - if (lowerCase.call(pn.tagName) != "a") { - var hl = $("a"); - pn.insertBefore(hl, node); - hl[appendChild](node); - pn = hl; - } - if (att == "target" && value == "blank") { - pn.setAttributeNS(o.paper.xlink, "show", "new"); - } else { - pn.setAttributeNS(o.paper.xlink, att, value); - } - break; - case "cursor": - node.style.cursor = value; - break; - case "clip-rect": - var rect = Str(value)[split](separator); - if (rect[length] == 4) { - o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode); - var el = $("clipPath"), - rc = $("rect"); - el.id = createUUID(); - $(rc, { - x: rect[0], - y: rect[1], - width: rect[2], - height: rect[3] - }); - el[appendChild](rc); - o.paper.defs[appendChild](el); - $(node, {"clip-path": "url(#" + el.id + ")"}); - o.clip = rc; - } - if (!value) { - var clip = doc.getElementById(node.getAttribute("clip-path")[rp](/(^url\(#|\)$)/g, E)); - clip && clip.parentNode.removeChild(clip); - $(node, {"clip-path": E}); - delete o.clip; - } - break; - case "path": - if (o.type == "path") { - $(node, {d: value ? attrs.path = pathToAbsolute(value) : "M0,0"}); - } - break; - case "width": - node[setAttribute](att, value); - if (attrs.fx) { - att = "x"; - value = attrs.x; - } else { - break; - } - case "x": - if (attrs.fx) { - value = -attrs.x - (attrs.width || 0); - } - case "rx": - if (att == "rx" && o.type == "rect") { - break; - } - case "cx": - rotxy && (att == "x" || att == "cx") && (rotxy[1] += value - attrs[att]); - node[setAttribute](att, value); - o.pattern && updatePosition(o); - break; - case "height": - node[setAttribute](att, value); - if (attrs.fy) { - att = "y"; - value = attrs.y; - } else { - break; - } - case "y": - if (attrs.fy) { - value = -attrs.y - (attrs.height || 0); - } - case "ry": - if (att == "ry" && o.type == "rect") { - break; - } - case "cy": - rotxy && (att == "y" || att == "cy") && (rotxy[2] += value - attrs[att]); - node[setAttribute](att, value); - o.pattern && updatePosition(o); - break; - case "r": - if (o.type == "rect") { - $(node, {rx: value, ry: value}); - } else { - node[setAttribute](att, value); - } - break; - case "src": - if (o.type == "image") { - node.setAttributeNS(o.paper.xlink, "href", value); - } - break; - case "stroke-width": - node.style.strokeWidth = value; - // Need following line for Firefox - node[setAttribute](att, value); - if (attrs["stroke-dasharray"]) { - addDashes(o, attrs["stroke-dasharray"]); - } - break; - case "stroke-dasharray": - addDashes(o, value); - break; - case "translation": - var xy = Str(value)[split](separator); - xy[0] = +xy[0] || 0; - xy[1] = +xy[1] || 0; - if (rotxy) { - rotxy[1] += xy[0]; - rotxy[2] += xy[1]; - } - translate.call(o, xy[0], xy[1]); - break; - case "scale": - xy = Str(value)[split](separator); - o.scale(+xy[0] || 1, +xy[1] || +xy[0] || 1, isNaN(toFloat(xy[2])) ? null : +xy[2], isNaN(toFloat(xy[3])) ? null : +xy[3]); - break; - case fillString: - var isURL = Str(value).match(ISURL); - if (isURL) { - el = $("pattern"); - var ig = $("image"); - el.id = createUUID(); - $(el, {x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1}); - $(ig, {x: 0, y: 0}); - ig.setAttributeNS(o.paper.xlink, "href", isURL[1]); - el[appendChild](ig); - - var img = doc.createElement("img"); - img.style.cssText = "position:absolute;left:-9999em;top-9999em"; - img.onload = function () { - $(el, {width: this.offsetWidth, height: this.offsetHeight}); - $(ig, {width: this.offsetWidth, height: this.offsetHeight}); - doc.body.removeChild(this); - o.paper.safari(); - }; - doc.body[appendChild](img); - img.src = isURL[1]; - o.paper.defs[appendChild](el); - node.style.fill = "url(#" + el.id + ")"; - $(node, {fill: "url(#" + el.id + ")"}); - o.pattern = el; - o.pattern && updatePosition(o); - break; - } - var clr = R.getRGB(value); - if (!clr.error) { - delete params.gradient; - delete attrs.gradient; - !R.is(attrs.opacity, "undefined") && - R.is(params.opacity, "undefined") && - $(node, {opacity: attrs.opacity}); - !R.is(attrs["fill-opacity"], "undefined") && - R.is(params["fill-opacity"], "undefined") && - $(node, {"fill-opacity": attrs["fill-opacity"]}); - } else if ((({circle: 1, ellipse: 1})[has](o.type) || Str(value).charAt() != "r") && addGradientFill(node, value, o.paper)) { - attrs.gradient = value; - attrs.fill = "none"; - break; - } - clr[has]("opacity") && $(node, {"fill-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - case "stroke": - clr = R.getRGB(value); - node[setAttribute](att, clr.hex); - att == "stroke" && clr[has]("opacity") && $(node, {"stroke-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - break; - case "gradient": - (({circle: 1, ellipse: 1})[has](o.type) || Str(value).charAt() != "r") && addGradientFill(node, value, o.paper); - break; - case "opacity": - if (attrs.gradient && !attrs[has]("stroke-opacity")) { - $(node, {"stroke-opacity": value > 1 ? value / 100 : value}); - } - // fall - case "fill-opacity": - if (attrs.gradient) { - var gradient = doc.getElementById(node.getAttribute(fillString)[rp](/^url\(#|\)$/g, E)); - if (gradient) { - var stops = gradient.getElementsByTagName("stop"); - stops[stops[length] - 1][setAttribute]("stop-opacity", value); - } - break; - } - default: - att == "font-size" && (value = toInt(value, 10) + "px"); - var cssrule = att[rp](/(\-.)/g, function (w) { - return upperCase.call(w.substring(1)); - }); - node.style[cssrule] = value; - // Need following line for Firefox - node[setAttribute](att, value); - break; - } - } - } - - tuneText(o, params); - if (rotxy) { - o.rotate(rotxy.join(S)); - } else { - toFloat(rot) && o.rotate(rot, true); - } - }; - var leading = 1.2, - tuneText = function (el, params) { - if (el.type != "text" || !(params[has]("text") || params[has]("font") || params[has]("font-size") || params[has]("x") || params[has]("y"))) { - return; - } - var a = el.attrs, - node = el.node, - fontSize = node.firstChild ? toInt(doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue("font-size"), 10) : 10; - - if (params[has]("text")) { - a.text = params.text; - while (node.firstChild) { - node.removeChild(node.firstChild); - } - var texts = Str(params.text)[split]("\n"); - for (var i = 0, ii = texts[length]; i < ii; i++) if (texts[i]) { - var tspan = $("tspan"); - i && $(tspan, {dy: fontSize * leading, x: a.x}); - tspan[appendChild](doc.createTextNode(texts[i])); - node[appendChild](tspan); - } - } else { - texts = node.getElementsByTagName("tspan"); - for (i = 0, ii = texts[length]; i < ii; i++) { - i && $(texts[i], {dy: fontSize * leading, x: a.x}); - } - } - $(node, {y: a.y}); - var bb = el.getBBox(), - dif = a.y - (bb.y + bb.height / 2); - dif && R.is(dif, "finite") && $(node, {y: a.y + dif}); - }, - Element = function (node, svg) { - var X = 0, - Y = 0; - this[0] = node; - this.id = R._oid++; - this.node = node; - node.raphael = this; - this.paper = svg; - this.attrs = this.attrs || {}; - this.transformations = []; // rotate, translate, scale - this._ = { - tx: 0, - ty: 0, - rt: {deg: 0, cx: 0, cy: 0}, - sx: 1, - sy: 1 - }; - !svg.bottom && (svg.bottom = this); - this.prev = svg.top; - svg.top && (svg.top.next = this); - svg.top = this; - this.next = null; - }; - var elproto = Element[proto]; - Element[proto].rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - if (deg == null) { - if (this._.rt.cx) { - return [this._.rt.deg, this._.rt.cx, this._.rt.cy][join](S); - } - return this._.rt.deg; - } - var bbox = this.getBBox(); - deg = Str(deg)[split](separator); - if (deg[length] - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - if (cx != null && cx !== false) { - this._.rt.deg = deg; - } else { - this._.rt.deg += deg; - } - (cy == null) && (cx = null); - this._.rt.cx = cx; - this._.rt.cy = cy; - cx = cx == null ? bbox.x + bbox.width / 2 : cx; - cy = cy == null ? bbox.y + bbox.height / 2 : cy; - if (this._.rt.deg) { - this.transformations[0] = R.format("rotate({0} {1} {2})", this._.rt.deg, cx, cy); - this.clip && $(this.clip, {transform: R.format("rotate({0} {1} {2})", -this._.rt.deg, cx, cy)}); - } else { - this.transformations[0] = E; - this.clip && $(this.clip, {transform: E}); - } - $(this.node, {transform: this.transformations[join](S)}); - return this; - }; - Element[proto].hide = function () { - !this.removed && (this.node.style.display = "none"); - return this; - }; - Element[proto].show = function () { - !this.removed && (this.node.style.display = ""); - return this; - }; - Element[proto].remove = function () { - if (this.removed) { - return; - } - tear(this, this.paper); - this.node.parentNode.removeChild(this.node); - for (var i in this) { - delete this[i]; - } - this.removed = true; - }; - Element[proto].getBBox = function () { - if (this.removed) { - return this; - } - if (this.type == "path") { - return pathDimensions(this.attrs.path); - } - if (this.node.style.display == "none") { - this.show(); - var hide = true; - } - var bbox = {}; - try { - bbox = this.node.getBBox(); - } catch(e) { - // Firefox 3.0.x plays badly here - } finally { - bbox = bbox || {}; - } - if (this.type == "text") { - bbox = {x: bbox.x, y: Infinity, width: 0, height: 0}; - for (var i = 0, ii = this.node.getNumberOfChars(); i < ii; i++) { - var bb = this.node.getExtentOfChar(i); - (bb.y < bbox.y) && (bbox.y = bb.y); - (bb.y + bb.height - bbox.y > bbox.height) && (bbox.height = bb.y + bb.height - bbox.y); - (bb.x + bb.width - bbox.x > bbox.width) && (bbox.width = bb.x + bb.width - bbox.x); - } - } - hide && this.hide(); - return bbox; - }; - Element[proto].attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var i in this.attrs) if (this.attrs[has](i)) { - res[i] = this.attrs[i]; - } - this._.rt.deg && (res.rotation = this.rotate()); - (this._.sx != 1 || this._.sy != 1) && (res.scale = this.scale()); - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - return res; - } - if (value == null && R.is(name, string)) { - if (name == "translation") { - return translate.call(this); - } - if (name == "rotation") { - return this.rotate(); - } - if (name == "scale") { - return this.scale(); - } - if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - return this.attrs[name]; - } - if (value == null && R.is(name, array)) { - var values = {}; - for (var j = 0, jj = name.length; j < jj; j++) { - values[name[j]] = this.attr(name[j]); - } - return values; - } - if (value != null) { - var params = {}; - params[name] = value; - } else if (name != null && R.is(name, "object")) { - params = name; - } - for (var key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [][concat](params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - setFillAndStroke(this, params); - return this; - }; - Element[proto].toFront = function () { - if (this.removed) { - return this; - } - this.node.parentNode[appendChild](this.node); - var svg = this.paper; - svg.top != this && tofront(this, svg); - return this; - }; - Element[proto].toBack = function () { - if (this.removed) { - return this; - } - if (this.node.parentNode.firstChild != this.node) { - this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild); - toback(this, this.paper); - var svg = this.paper; - } - return this; - }; - Element[proto].insertAfter = function (element) { - if (this.removed) { - return this; - } - var node = element.node || element[element.length - 1].node; - if (node.nextSibling) { - node.parentNode.insertBefore(this.node, node.nextSibling); - } else { - node.parentNode[appendChild](this.node); - } - insertafter(this, element, this.paper); - return this; - }; - Element[proto].insertBefore = function (element) { - if (this.removed) { - return this; - } - var node = element.node || element[0].node; - node.parentNode.insertBefore(this.node, node); - insertbefore(this, element, this.paper); - return this; - }; - Element[proto].blur = function (size) { - // Experimental. No Safari support. Use it on your own risk. - var t = this; - if (+size !== 0) { - var fltr = $("filter"), - blur = $("feGaussianBlur"); - t.attrs.blur = size; - fltr.id = createUUID(); - $(blur, {stdDeviation: +size || 1.5}); - fltr.appendChild(blur); - t.paper.defs.appendChild(fltr); - t._blur = fltr; - $(t.node, {filter: "url(#" + fltr.id + ")"}); - } else { - if (t._blur) { - t._blur.parentNode.removeChild(t._blur); - delete t._blur; - delete t.attrs.blur; - } - t.node.removeAttribute("filter"); - } - }; - var theCircle = function (svg, x, y, r) { - var el = $("circle"); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, r: r, fill: "none", stroke: "#000"}; - res.type = "circle"; - $(el, res.attrs); - return res; - }, - theRect = function (svg, x, y, w, h, r) { - var el = $("rect"); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, r: r || 0, rx: r || 0, ry: r || 0, fill: "none", stroke: "#000"}; - res.type = "rect"; - $(el, res.attrs); - return res; - }, - theEllipse = function (svg, x, y, rx, ry) { - var el = $("ellipse"); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000"}; - res.type = "ellipse"; - $(el, res.attrs); - return res; - }, - theImage = function (svg, src, x, y, w, h) { - var el = $("image"); - $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: "none"}); - el.setAttributeNS(svg.xlink, "href", src); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, src: src}; - res.type = "image"; - return res; - }, - theText = function (svg, x, y, text) { - var el = $("text"); - $(el, {x: x, y: y, "text-anchor": "middle"}); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, "text-anchor": "middle", text: text, font: availableAttrs.font, stroke: "none", fill: "#000"}; - res.type = "text"; - setFillAndStroke(res, res.attrs); - return res; - }, - setSize = function (width, height) { - this.width = width || this.width; - this.height = height || this.height; - this.canvas[setAttribute]("width", this.width); - this.canvas[setAttribute]("height", this.height); - return this; - }, - create = function () { - var con = getContainer[apply](0, arguments), - container = con && con.container, - x = con.x, - y = con.y, - width = con.width, - height = con.height; - if (!container) { - throw new Error("SVG container not found."); - } - var cnvs = $("svg"); - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - $(cnvs, { - xmlns: "http://www.w3.org/2000/svg", - version: 1.1, - width: width, - height: height - }); - if (container == 1) { - cnvs.style.cssText = "position:absolute;left:" + x + "px;top:" + y + "px"; - doc.body[appendChild](cnvs); - } else { - if (container.firstChild) { - container.insertBefore(cnvs, container.firstChild); - } else { - container[appendChild](cnvs); - } - } - container = new Paper; - container.width = width; - container.height = height; - container.canvas = cnvs; - plugins.call(container, container, R.fn); - container.clear(); - return container; - }; - paperproto.clear = function () { - var c = this.canvas; - while (c.firstChild) { - c.removeChild(c.firstChild); - } - this.bottom = this.top = null; - (this.desc = $("desc"))[appendChild](doc.createTextNode("Created with Rapha\xebl")); - c[appendChild](this.desc); - c[appendChild](this.defs = $("defs")); - }; - paperproto.remove = function () { - this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = removed(i); - } - }; - } - - // VML - if (R.vml) { - var map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"}, - bites = /([clmz]),?([^clmz]*)/gi, - blurregexp = / progid:\S+Blur\([^\)]+\)/g, - val = /-?[^,\s-]+/g, - coordsize = 1e3 + S + 1e3, - zoom = 10, - pathlike = {path: 1, rect: 1}, - path2vml = function (path) { - var total = /[ahqstv]/ig, - command = pathToAbsolute; - Str(path).match(total) && (command = path2curve); - total = /[clmz]/g; - if (command == pathToAbsolute && !Str(path).match(total)) { - var res = Str(path)[rp](bites, function (all, command, args) { - var vals = [], - isMove = lowerCase.call(command) == "m", - res = map[command]; - args[rp](val, function (value) { - if (isMove && vals[length] == 2) { - res += vals + map[command == "m" ? "l" : "L"]; - vals = []; - } - vals[push](round(value * zoom)); - }); - return res + vals; - }); - return res; - } - var pa = command(path), p, r; - res = []; - for (var i = 0, ii = pa[length]; i < ii; i++) { - p = pa[i]; - r = lowerCase.call(pa[i][0]); - r == "z" && (r = "x"); - for (var j = 1, jj = p[length]; j < jj; j++) { - r += round(p[j] * zoom) + (j != jj - 1 ? "," : E); - } - res[push](r); - } - return res[join](S); - }; - - R[toString] = function () { - return "Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl " + this.version; - }; - thePath = function (pathString, vml) { - var g = createNode("group"); - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = vml.coordsize; - g.coordorigin = vml.coordorigin; - var el = createNode("shape"), ol = el.style; - ol.width = vml.width + "px"; - ol.height = vml.height + "px"; - el.coordsize = coordsize; - el.coordorigin = vml.coordorigin; - g[appendChild](el); - var p = new Element(el, g, vml), - attr = {fill: "none", stroke: "#000"}; - pathString && (attr.path = pathString); - p.type = "path"; - p.path = []; - p.Path = E; - setFillAndStroke(p, attr); - vml.canvas[appendChild](g); - return p; - }; - setFillAndStroke = function (o, params) { - o.attrs = o.attrs || {}; - var node = o.node, - a = o.attrs, - s = node.style, - xy, - newpath = (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.r != a.r) && o.type == "rect", - res = o; - - for (var par in params) if (params[has](par)) { - a[par] = params[par]; - } - if (newpath) { - a.path = rectPath(a.x, a.y, a.width, a.height, a.r); - o.X = a.x; - o.Y = a.y; - o.W = a.width; - o.H = a.height; - } - params.href && (node.href = params.href); - params.title && (node.title = params.title); - params.target && (node.target = params.target); - params.cursor && (s.cursor = params.cursor); - "blur" in params && o.blur(params.blur); - if (params.path && o.type == "path" || newpath) { - node.path = path2vml(a.path); - } - if (params.rotation != null) { - o.rotate(params.rotation, true); - } - if (params.translation) { - xy = Str(params.translation)[split](separator); - translate.call(o, xy[0], xy[1]); - if (o._.rt.cx != null) { - o._.rt.cx +=+ xy[0]; - o._.rt.cy +=+ xy[1]; - o.setBox(o.attrs, xy[0], xy[1]); - } - } - if (params.scale) { - xy = Str(params.scale)[split](separator); - o.scale(+xy[0] || 1, +xy[1] || +xy[0] || 1, +xy[2] || null, +xy[3] || null); - } - if ("clip-rect" in params) { - var rect = Str(params["clip-rect"])[split](separator); - if (rect[length] == 4) { - rect[2] = +rect[2] + (+rect[0]); - rect[3] = +rect[3] + (+rect[1]); - var div = node.clipRect || doc.createElement("div"), - dstyle = div.style, - group = node.parentNode; - dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect); - if (!node.clipRect) { - dstyle.position = "absolute"; - dstyle.top = 0; - dstyle.left = 0; - dstyle.width = o.paper.width + "px"; - dstyle.height = o.paper.height + "px"; - group.parentNode.insertBefore(div, group); - div[appendChild](group); - node.clipRect = div; - } - } - if (!params["clip-rect"]) { - node.clipRect && (node.clipRect.style.clip = E); - } - } - if (o.type == "image" && params.src) { - node.src = params.src; - } - if (o.type == "image" && params.opacity) { - node.filterOpacity = ms + ".Alpha(opacity=" + (params.opacity * 100) + ")"; - s.filter = (node.filterMatrix || E) + (node.filterOpacity || E); - } - params.font && (s.font = params.font); - params["font-family"] && (s.fontFamily = '"' + params["font-family"][split](",")[0][rp](/^['"]+|['"]+$/g, E) + '"'); - params["font-size"] && (s.fontSize = params["font-size"]); - params["font-weight"] && (s.fontWeight = params["font-weight"]); - params["font-style"] && (s.fontStyle = params["font-style"]); - if (params.opacity != null || - params["stroke-width"] != null || - params.fill != null || - params.stroke != null || - params["stroke-width"] != null || - params["stroke-opacity"] != null || - params["fill-opacity"] != null || - params["stroke-dasharray"] != null || - params["stroke-miterlimit"] != null || - params["stroke-linejoin"] != null || - params["stroke-linecap"] != null) { - node = o.shape || node; - var fill = (node.getElementsByTagName(fillString) && node.getElementsByTagName(fillString)[0]), - newfill = false; - !fill && (newfill = fill = createNode(fillString)); - if ("fill-opacity" in params || "opacity" in params) { - var opacity = ((+a["fill-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1); - opacity = mmin(mmax(opacity, 0), 1); - fill.opacity = opacity; - } - params.fill && (fill.on = true); - if (fill.on == null || params.fill == "none") { - fill.on = false; - } - if (fill.on && params.fill) { - var isURL = params.fill.match(ISURL); - if (isURL) { - fill.src = isURL[1]; - fill.type = "tile"; - } else { - fill.color = R.getRGB(params.fill).hex; - fill.src = E; - fill.type = "solid"; - if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != "r") && addGradientFill(res, params.fill)) { - a.fill = "none"; - a.gradient = params.fill; - } - } - } - newfill && node[appendChild](fill); - var stroke = (node.getElementsByTagName("stroke") && node.getElementsByTagName("stroke")[0]), - newstroke = false; - !stroke && (newstroke = stroke = createNode("stroke")); - if ((params.stroke && params.stroke != "none") || - params["stroke-width"] || - params["stroke-opacity"] != null || - params["stroke-dasharray"] || - params["stroke-miterlimit"] || - params["stroke-linejoin"] || - params["stroke-linecap"]) { - stroke.on = true; - } - (params.stroke == "none" || stroke.on == null || params.stroke == 0 || params["stroke-width"] == 0) && (stroke.on = false); - var strokeColor = R.getRGB(params.stroke); - stroke.on && params.stroke && (stroke.color = strokeColor.hex); - opacity = ((+a["stroke-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1); - var width = (toFloat(params["stroke-width"]) || 1) * .75; - opacity = mmin(mmax(opacity, 0), 1); - params["stroke-width"] == null && (width = a["stroke-width"]); - params["stroke-width"] && (stroke.weight = width); - width && width < 1 && (opacity *= width) && (stroke.weight = 1); - stroke.opacity = opacity; - - params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter"); - stroke.miterlimit = params["stroke-miterlimit"] || 8; - params["stroke-linecap"] && (stroke.endcap = params["stroke-linecap"] == "butt" ? "flat" : params["stroke-linecap"] == "square" ? "square" : "round"); - if (params["stroke-dasharray"]) { - var dasharray = { - "-": "shortdash", - ".": "shortdot", - "-.": "shortdashdot", - "-..": "shortdashdotdot", - ". ": "dot", - "- ": "dash", - "--": "longdash", - "- .": "dashdot", - "--.": "longdashdot", - "--..": "longdashdotdot" - }; - stroke.dashstyle = dasharray[has](params["stroke-dasharray"]) ? dasharray[params["stroke-dasharray"]] : E; - } - newstroke && node[appendChild](stroke); - } - if (res.type == "text") { - s = res.paper.span.style; - a.font && (s.font = a.font); - a["font-family"] && (s.fontFamily = a["font-family"]); - a["font-size"] && (s.fontSize = a["font-size"]); - a["font-weight"] && (s.fontWeight = a["font-weight"]); - a["font-style"] && (s.fontStyle = a["font-style"]); - res.node.string && (res.paper.span.innerHTML = Str(res.node.string)[rp](/")); - res.W = a.w = res.paper.span.offsetWidth; - res.H = a.h = res.paper.span.offsetHeight; - res.X = a.x; - res.Y = a.y + round(res.H / 2); - - // text-anchor emulationm - switch (a["text-anchor"]) { - case "start": - res.node.style["v-text-align"] = "left"; - res.bbx = round(res.W / 2); - break; - case "end": - res.node.style["v-text-align"] = "right"; - res.bbx = -round(res.W / 2); - break; - default: - res.node.style["v-text-align"] = "center"; - break; - } - } - }; - addGradientFill = function (o, gradient) { - o.attrs = o.attrs || {}; - var attrs = o.attrs, - fill, - type = "linear", - fxfy = ".5 .5"; - o.attrs.gradient = gradient; - gradient = Str(gradient)[rp](radial_gradient, function (all, fx, fy) { - type = "radial"; - if (fx && fy) { - fx = toFloat(fx); - fy = toFloat(fy); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5); - fxfy = fx + S + fy; - } - return E; - }); - gradient = gradient[split](/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - } - var dots = parseDots(gradient); - if (!dots) { - return null; - } - o = o.shape || o.node; - fill = o.getElementsByTagName(fillString)[0] || createNode(fillString); - !fill.parentNode && o.appendChild(fill); - if (dots[length]) { - fill.on = true; - fill.method = "none"; - fill.color = dots[0].color; - fill.color2 = dots[dots[length] - 1].color; - var clrs = []; - for (var i = 0, ii = dots[length]; i < ii; i++) { - dots[i].offset && clrs[push](dots[i].offset + S + dots[i].color); - } - fill.colors && (fill.colors.value = clrs[length] ? clrs[join]() : "0% " + fill.color); - if (type == "radial") { - fill.type = "gradientradial"; - fill.focus = "100%"; - fill.focussize = fxfy; - fill.focusposition = fxfy; - } else { - fill.type = "gradient"; - fill.angle = (270 - angle) % 360; - } - } - return 1; - }; - Element = function (node, group, vml) { - var Rotation = 0, - RotX = 0, - RotY = 0, - Scale = 1; - this[0] = node; - this.id = R._oid++; - this.node = node; - node.raphael = this; - this.X = 0; - this.Y = 0; - this.attrs = {}; - this.Group = group; - this.paper = vml; - this._ = { - tx: 0, - ty: 0, - rt: {deg:0}, - sx: 1, - sy: 1 - }; - !vml.bottom && (vml.bottom = this); - this.prev = vml.top; - vml.top && (vml.top.next = this); - vml.top = this; - this.next = null; - }; - elproto = Element[proto]; - elproto.rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - if (deg == null) { - if (this._.rt.cx) { - return [this._.rt.deg, this._.rt.cx, this._.rt.cy][join](S); - } - return this._.rt.deg; - } - deg = Str(deg)[split](separator); - if (deg[length] - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - if (cx != null) { - this._.rt.deg = deg; - } else { - this._.rt.deg += deg; - } - cy == null && (cx = null); - this._.rt.cx = cx; - this._.rt.cy = cy; - this.setBox(this.attrs, cx, cy); - this.Group.style.rotation = this._.rt.deg; - // gradient fix for rotation. TODO - // var fill = (this.shape || this.node).getElementsByTagName(fillString); - // fill = fill[0] || {}; - // var b = ((360 - this._.rt.deg) - 270) % 360; - // !R.is(fill.angle, "undefined") && (fill.angle = b); - return this; - }; - elproto.setBox = function (params, cx, cy) { - if (this.removed) { - return this; - } - var gs = this.Group.style, - os = (this.shape && this.shape.style) || this.node.style; - params = params || {}; - for (var i in params) if (params[has](i)) { - this.attrs[i] = params[i]; - } - cx = cx || this._.rt.cx; - cy = cy || this._.rt.cy; - var attr = this.attrs, - x, - y, - w, - h; - switch (this.type) { - case "circle": - x = attr.cx - attr.r; - y = attr.cy - attr.r; - w = h = attr.r * 2; - break; - case "ellipse": - x = attr.cx - attr.rx; - y = attr.cy - attr.ry; - w = attr.rx * 2; - h = attr.ry * 2; - break; - case "image": - x = +attr.x; - y = +attr.y; - w = attr.width || 0; - h = attr.height || 0; - break; - case "text": - this.textpath.v = ["m", round(attr.x), ", ", round(attr.y - 2), "l", round(attr.x) + 1, ", ", round(attr.y - 2)][join](E); - x = attr.x - round(this.W / 2); - y = attr.y - this.H / 2; - w = this.W; - h = this.H; - break; - case "rect": - case "path": - if (!this.attrs.path) { - x = 0; - y = 0; - w = this.paper.width; - h = this.paper.height; - } else { - var dim = pathDimensions(this.attrs.path); - x = dim.x; - y = dim.y; - w = dim.width; - h = dim.height; - } - break; - default: - x = 0; - y = 0; - w = this.paper.width; - h = this.paper.height; - break; - } - cx = (cx == null) ? x + w / 2 : cx; - cy = (cy == null) ? y + h / 2 : cy; - var left = cx - this.paper.width / 2, - top = cy - this.paper.height / 2, t; - gs.left != (t = left + "px") && (gs.left = t); - gs.top != (t = top + "px") && (gs.top = t); - this.X = pathlike[has](this.type) ? -left : x; - this.Y = pathlike[has](this.type) ? -top : y; - this.W = w; - this.H = h; - if (pathlike[has](this.type)) { - os.left != (t = -left * zoom + "px") && (os.left = t); - os.top != (t = -top * zoom + "px") && (os.top = t); - } else if (this.type == "text") { - os.left != (t = -left + "px") && (os.left = t); - os.top != (t = -top + "px") && (os.top = t); - } else { - gs.width != (t = this.paper.width + "px") && (gs.width = t); - gs.height != (t = this.paper.height + "px") && (gs.height = t); - os.left != (t = x - left + "px") && (os.left = t); - os.top != (t = y - top + "px") && (os.top = t); - os.width != (t = w + "px") && (os.width = t); - os.height != (t = h + "px") && (os.height = t); - } - }; - elproto.hide = function () { - !this.removed && (this.Group.style.display = "none"); - return this; - }; - elproto.show = function () { - !this.removed && (this.Group.style.display = "block"); - return this; - }; - elproto.getBBox = function () { - if (this.removed) { - return this; - } - if (pathlike[has](this.type)) { - return pathDimensions(this.attrs.path); - } - return { - x: this.X + (this.bbx || 0), - y: this.Y, - width: this.W, - height: this.H - }; - }; - elproto.remove = function () { - if (this.removed) { - return; - } - tear(this, this.paper); - this.node.parentNode.removeChild(this.node); - this.Group.parentNode.removeChild(this.Group); - this.shape && this.shape.parentNode.removeChild(this.shape); - for (var i in this) { - delete this[i]; - } - this.removed = true; - }; - elproto.attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var i in this.attrs) if (this.attrs[has](i)) { - res[i] = this.attrs[i]; - } - this._.rt.deg && (res.rotation = this.rotate()); - (this._.sx != 1 || this._.sy != 1) && (res.scale = this.scale()); - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - return res; - } - if (value == null && R.is(name, "string")) { - if (name == "translation") { - return translate.call(this); - } - if (name == "rotation") { - return this.rotate(); - } - if (name == "scale") { - return this.scale(); - } - if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - return this.attrs[name]; - } - if (this.attrs && value == null && R.is(name, array)) { - var ii, values = {}; - for (i = 0, ii = name[length]; i < ii; i++) { - values[name[i]] = this.attr(name[i]); - } - return values; - } - var params; - if (value != null) { - params = {}; - params[name] = value; - } - value == null && R.is(name, "object") && (params = name); - if (params) { - for (var key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [][concat](params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - if (params.text && this.type == "text") { - this.node.string = params.text; - } - setFillAndStroke(this, params); - if (params.gradient && (({circle: 1, ellipse: 1})[has](this.type) || Str(params.gradient).charAt() != "r")) { - addGradientFill(this, params.gradient); - } - (!pathlike[has](this.type) || this._.rt.deg) && this.setBox(this.attrs); - } - return this; - }; - elproto.toFront = function () { - !this.removed && this.Group.parentNode[appendChild](this.Group); - this.paper.top != this && tofront(this, this.paper); - return this; - }; - elproto.toBack = function () { - if (this.removed) { - return this; - } - if (this.Group.parentNode.firstChild != this.Group) { - this.Group.parentNode.insertBefore(this.Group, this.Group.parentNode.firstChild); - toback(this, this.paper); - } - return this; - }; - elproto.insertAfter = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == Set) { - element = element[element.length - 1]; - } - if (element.Group.nextSibling) { - element.Group.parentNode.insertBefore(this.Group, element.Group.nextSibling); - } else { - element.Group.parentNode[appendChild](this.Group); - } - insertafter(this, element, this.paper); - return this; - }; - elproto.insertBefore = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == Set) { - element = element[0]; - } - element.Group.parentNode.insertBefore(this.Group, element.Group); - insertbefore(this, element, this.paper); - return this; - }; - elproto.blur = function (size) { - var s = this.node.runtimeStyle, - f = s.filter; - f = f.replace(blurregexp, E); - if (+size !== 0) { - this.attrs.blur = size; - s.filter = f + S + ms + ".Blur(pixelradius=" + (+size || 1.5) + ")"; - s.margin = R.format("-{0}px 0 0 -{0}px", round(+size || 1.5)); - } else { - s.filter = f; - s.margin = 0; - delete this.attrs.blur; - } - }; - - theCircle = function (vml, x, y, r) { - var g = createNode("group"), - o = createNode("oval"), - ol = o.style; - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - g[appendChild](o); - var res = new Element(o, g, vml); - res.type = "circle"; - setFillAndStroke(res, {stroke: "#000", fill: "none"}); - res.attrs.cx = x; - res.attrs.cy = y; - res.attrs.r = r; - res.setBox({x: x - r, y: y - r, width: r * 2, height: r * 2}); - vml.canvas[appendChild](g); - return res; - }; - function rectPath(x, y, w, h, r) { - if (r) { - return R.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z", x + r, y, w - r * 2, r, -r, h - r * 2, r * 2 - w, r * 2 - h); - } else { - return R.format("M{0},{1}l{2},0,0,{3},{4},0z", x, y, w, h, -w); - } - } - theRect = function (vml, x, y, w, h, r) { - var path = rectPath(x, y, w, h, r), - res = vml.path(path), - a = res.attrs; - res.X = a.x = x; - res.Y = a.y = y; - res.W = a.width = w; - res.H = a.height = h; - a.r = r; - a.path = path; - res.type = "rect"; - return res; - }; - theEllipse = function (vml, x, y, rx, ry) { - var g = createNode("group"), - o = createNode("oval"), - ol = o.style; - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - g[appendChild](o); - var res = new Element(o, g, vml); - res.type = "ellipse"; - setFillAndStroke(res, {stroke: "#000"}); - res.attrs.cx = x; - res.attrs.cy = y; - res.attrs.rx = rx; - res.attrs.ry = ry; - res.setBox({x: x - rx, y: y - ry, width: rx * 2, height: ry * 2}); - vml.canvas[appendChild](g); - return res; - }; - theImage = function (vml, src, x, y, w, h) { - var g = createNode("group"), - o = createNode("image"); - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - o.src = src; - g[appendChild](o); - var res = new Element(o, g, vml); - res.type = "image"; - res.attrs.src = src; - res.attrs.x = x; - res.attrs.y = y; - res.attrs.w = w; - res.attrs.h = h; - res.setBox({x: x, y: y, width: w, height: h}); - vml.canvas[appendChild](g); - return res; - }; - theText = function (vml, x, y, text) { - var g = createNode("group"), - el = createNode("shape"), - ol = el.style, - path = createNode("path"), - ps = path.style, - o = createNode("textpath"); - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - path.v = R.format("m{0},{1}l{2},{1}", round(x * 10), round(y * 10), round(x * 10) + 1); - path.textpathok = true; - ol.width = vml.width; - ol.height = vml.height; - o.string = Str(text); - o.on = true; - el[appendChild](o); - el[appendChild](path); - g[appendChild](el); - var res = new Element(o, g, vml); - res.shape = el; - res.textpath = path; - res.type = "text"; - res.attrs.text = text; - res.attrs.x = x; - res.attrs.y = y; - res.attrs.w = 1; - res.attrs.h = 1; - setFillAndStroke(res, {font: availableAttrs.font, stroke: "none", fill: "#000"}); - res.setBox(); - vml.canvas[appendChild](g); - return res; - }; - setSize = function (width, height) { - var cs = this.canvas.style; - width == +width && (width += "px"); - height == +height && (height += "px"); - cs.width = width; - cs.height = height; - cs.clip = "rect(0 " + width + " " + height + " 0)"; - return this; - }; - var createNode; - doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"); - try { - !doc.namespaces.rvml && doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"); - createNode = function (tagName) { - return doc.createElement(''); - }; - } catch (e) { - createNode = function (tagName) { - return doc.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">'); - }; - } - create = function () { - var con = getContainer[apply](0, arguments), - container = con.container, - height = con.height, - s, - width = con.width, - x = con.x, - y = con.y; - if (!container) { - throw new Error("VML container not found."); - } - var res = new Paper, - c = res.canvas = doc.createElement("div"), - cs = c.style; - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - width == +width && (width += "px"); - height == +height && (height += "px"); - res.width = 1e3; - res.height = 1e3; - res.coordsize = zoom * 1e3 + S + zoom * 1e3; - res.coordorigin = "0 0"; - res.span = doc.createElement("span"); - res.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; - c[appendChild](res.span); - cs.cssText = R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", width, height); - if (container == 1) { - doc.body[appendChild](c); - cs.left = x + "px"; - cs.top = y + "px"; - cs.position = "absolute"; - } else { - if (container.firstChild) { - container.insertBefore(c, container.firstChild); - } else { - container[appendChild](c); - } - } - plugins.call(res, res, R.fn); - return res; - }; - paperproto.clear = function () { - this.canvas.innerHTML = E; - this.span = doc.createElement("span"); - this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; - this.canvas[appendChild](this.span); - this.bottom = this.top = null; - }; - paperproto.remove = function () { - this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = removed(i); - } - return true; - }; - } - - // rest - // WebKit rendering bug workaround method - var version = navigator.userAgent.match(/Version\/(.*?)\s/); - if ((navigator.vendor == "Apple Computer, Inc.") && (version && version[1] < 4 || navigator.platform.slice(0, 2) == "iP")) { - paperproto.safari = function () { - var rect = this.rect(-99, -99, this.width + 99, this.height + 99).attr({stroke: "none"}); - win.setTimeout(function () {rect.remove();}); - }; - } else { - paperproto.safari = function () {}; - } - - // Events - var preventDefault = function () { - this.returnValue = false; - }, - preventTouch = function () { - return this.originalEvent.preventDefault(); - }, - stopPropagation = function () { - this.cancelBubble = true; - }, - stopTouch = function () { - return this.originalEvent.stopPropagation(); - }, - addEvent = (function () { - if (doc.addEventListener) { - return function (obj, type, fn, element) { - var realName = supportsTouch && touchMap[type] ? touchMap[type] : type; - var f = function (e) { - if (supportsTouch && touchMap[has](type)) { - for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) { - if (e.targetTouches[i].target == obj) { - var olde = e; - e = e.targetTouches[i]; - e.originalEvent = olde; - e.preventDefault = preventTouch; - e.stopPropagation = stopTouch; - break; - } - } - } - return fn.call(element, e); - }; - obj.addEventListener(realName, f, false); - return function () { - obj.removeEventListener(realName, f, false); - return true; - }; - }; - } else if (doc.attachEvent) { - return function (obj, type, fn, element) { - var f = function (e) { - e = e || win.event; - e.preventDefault = e.preventDefault || preventDefault; - e.stopPropagation = e.stopPropagation || stopPropagation; - return fn.call(element, e); - }; - obj.attachEvent("on" + type, f); - var detacher = function () { - obj.detachEvent("on" + type, f); - return true; - }; - return detacher; - }; - } - })(), - drag = [], - dragMove = function (e) { - var x = e.clientX, - y = e.clientY, - scrollY = doc.documentElement.scrollTop || doc.body.scrollTop, - scrollX = doc.documentElement.scrollLeft || doc.body.scrollLeft, - dragi, - j = drag.length; - while (j--) { - dragi = drag[j]; - if (supportsTouch) { - var i = e.touches.length, - touch; - while (i--) { - touch = e.touches[i]; - if (touch.identifier == dragi.el._drag.id) { - x = touch.clientX; - y = touch.clientY; - (e.originalEvent ? e.originalEvent : e).preventDefault(); - break; - } - } - } else { - e.preventDefault(); - } - x += scrollX; - y += scrollY; - dragi.move && dragi.move.call(dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e); - } - }, - dragUp = function (e) { - R.unmousemove(dragMove).unmouseup(dragUp); - var i = drag.length, - dragi; - while (i--) { - dragi = drag[i]; - dragi.el._drag = {}; - dragi.end && dragi.end.call(dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e); - } - drag = []; - }; - for (var i = events[length]; i--;) { - (function (eventName) { - R[eventName] = Element[proto][eventName] = function (fn, scope) { - if (R.is(fn, "function")) { - this.events = this.events || []; - this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || doc, eventName, fn, scope || this)}); - } - return this; - }; - R["un" + eventName] = Element[proto]["un" + eventName] = function (fn) { - var events = this.events, - l = events[length]; - while (l--) if (events[l].name == eventName && events[l].f == fn) { - events[l].unbind(); - events.splice(l, 1); - !events.length && delete this.events; - return this; - } - return this; - }; - })(events[i]); - } - elproto.hover = function (f_in, f_out, scope_in, scope_out) { - return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in); - }; - elproto.unhover = function (f_in, f_out) { - return this.unmouseover(f_in).unmouseout(f_out); - }; - elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) { - this._drag = {}; - this.mousedown(function (e) { - (e.originalEvent || e).preventDefault(); - var scrollY = doc.documentElement.scrollTop || doc.body.scrollTop, - scrollX = doc.documentElement.scrollLeft || doc.body.scrollLeft; - this._drag.x = e.clientX + scrollX; - this._drag.y = e.clientY + scrollY; - this._drag.id = e.identifier; - onstart && onstart.call(start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e); - !drag.length && R.mousemove(dragMove).mouseup(dragUp); - drag.push({el: this, move: onmove, end: onend, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope}); - }); - return this; - }; - elproto.undrag = function (onmove, onstart, onend) { - var i = drag.length; - while (i--) { - drag[i].el == this && (drag[i].move == onmove && drag[i].end == onend) && drag.splice(i++, 1); - } - !drag.length && R.unmousemove(dragMove).unmouseup(dragUp); - }; - paperproto.circle = function (x, y, r) { - return theCircle(this, x || 0, y || 0, r || 0); - }; - paperproto.rect = function (x, y, w, h, r) { - return theRect(this, x || 0, y || 0, w || 0, h || 0, r || 0); - }; - paperproto.ellipse = function (x, y, rx, ry) { - return theEllipse(this, x || 0, y || 0, rx || 0, ry || 0); - }; - paperproto.path = function (pathString) { - pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E); - return thePath(R.format[apply](R, arguments), this); - }; - paperproto.image = function (src, x, y, w, h) { - return theImage(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0); - }; - paperproto.text = function (x, y, text) { - return theText(this, x || 0, y || 0, Str(text)); - }; - paperproto.set = function (itemsArray) { - arguments[length] > 1 && (itemsArray = Array[proto].splice.call(arguments, 0, arguments[length])); - return new Set(itemsArray); - }; - paperproto.setSize = setSize; - paperproto.top = paperproto.bottom = null; - paperproto.raphael = R; - function x_y() { - return this.x + S + this.y; - } - elproto.resetScale = function () { - if (this.removed) { - return this; - } - this._.sx = 1; - this._.sy = 1; - this.attrs.scale = "1 1"; - }; - elproto.scale = function (x, y, cx, cy) { - if (this.removed) { - return this; - } - if (x == null && y == null) { - return { - x: this._.sx, - y: this._.sy, - toString: x_y - }; - } - y = y || x; - !+y && (y = x); - var dx, - dy, - dcx, - dcy, - a = this.attrs; - if (x != 0) { - var bb = this.getBBox(), - rcx = bb.x + bb.width / 2, - rcy = bb.y + bb.height / 2, - kx = abs(x / this._.sx), - ky = abs(y / this._.sy); - cx = (+cx || cx == 0) ? cx : rcx; - cy = (+cy || cy == 0) ? cy : rcy; - var posx = this._.sx > 0, - posy = this._.sy > 0, - dirx = ~~(x / abs(x)), - diry = ~~(y / abs(y)), - dkx = kx * dirx, - dky = ky * diry, - s = this.node.style, - ncx = cx + abs(rcx - cx) * dkx * (rcx > cx == posx ? 1 : -1), - ncy = cy + abs(rcy - cy) * dky * (rcy > cy == posy ? 1 : -1), - fr = (x * dirx > y * diry ? ky : kx); - switch (this.type) { - case "rect": - case "image": - var neww = a.width * kx, - newh = a.height * ky; - this.attr({ - height: newh, - r: a.r * fr, - width: neww, - x: ncx - neww / 2, - y: ncy - newh / 2 - }); - break; - case "circle": - case "ellipse": - this.attr({ - rx: a.rx * kx, - ry: a.ry * ky, - r: a.r * fr, - cx: ncx, - cy: ncy - }); - break; - case "text": - this.attr({ - x: ncx, - y: ncy - }); - break; - case "path": - var path = pathToRelative(a.path), - skip = true, - fx = posx ? dkx : kx, - fy = posy ? dky : ky; - for (var i = 0, ii = path[length]; i < ii; i++) { - var p = path[i], - P0 = upperCase.call(p[0]); - if (P0 == "M" && skip) { - continue; - } else { - skip = false; - } - if (P0 == "A") { - p[path[i][length] - 2] *= fx; - p[path[i][length] - 1] *= fy; - p[1] *= kx; - p[2] *= ky; - p[5] = +(dirx + diry ? !!+p[5] : !+p[5]); - } else if (P0 == "H") { - for (var j = 1, jj = p[length]; j < jj; j++) { - p[j] *= fx; - } - } else if (P0 == "V") { - for (j = 1, jj = p[length]; j < jj; j++) { - p[j] *= fy; - } - } else { - for (j = 1, jj = p[length]; j < jj; j++) { - p[j] *= (j % 2) ? fx : fy; - } - } - } - var dim2 = pathDimensions(path); - dx = ncx - dim2.x - dim2.width / 2; - dy = ncy - dim2.y - dim2.height / 2; - path[0][1] += dx; - path[0][2] += dy; - this.attr({path: path}); - break; - } - if (this.type in {text: 1, image:1} && (dirx != 1 || diry != 1)) { - if (this.transformations) { - this.transformations[2] = "scale("[concat](dirx, ",", diry, ")"); - this.node[setAttribute]("transform", this.transformations[join](S)); - dx = (dirx == -1) ? -a.x - (neww || 0) : a.x; - dy = (diry == -1) ? -a.y - (newh || 0) : a.y; - this.attr({x: dx, y: dy}); - a.fx = dirx - 1; - a.fy = diry - 1; - } else { - this.node.filterMatrix = ms + ".Matrix(M11="[concat](dirx, - ", M12=0, M21=0, M22=", diry, - ", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')"); - s.filter = (this.node.filterMatrix || E) + (this.node.filterOpacity || E); - } - } else { - if (this.transformations) { - this.transformations[2] = E; - this.node[setAttribute]("transform", this.transformations[join](S)); - a.fx = 0; - a.fy = 0; - } else { - this.node.filterMatrix = E; - s.filter = (this.node.filterMatrix || E) + (this.node.filterOpacity || E); - } - } - a.scale = [x, y, cx, cy][join](S); - this._.sx = x; - this._.sy = y; - } - return this; - }; - elproto.clone = function () { - if (this.removed) { - return null; - } - var attr = this.attr(); - delete attr.scale; - delete attr.translation; - return this.paper[this.type]().attr(attr); - }; - var curveslengths = {}, - getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) { - var len = 0, - precision = 100, - name = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y].join(), - cache = curveslengths[name], - old, dot; - !cache && (curveslengths[name] = cache = {data: []}); - cache.timer && clearTimeout(cache.timer); - cache.timer = setTimeout(function () {delete curveslengths[name];}, 2000); - if (length != null) { - var total = getPointAtSegmentLength(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y); - precision = ~~total * 10; - } - for (var i = 0; i < precision + 1; i++) { - if (cache.data[length] > i) { - dot = cache.data[i * precision]; - } else { - dot = R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, i / precision); - cache.data[i] = dot; - } - i && (len += pow(pow(old.x - dot.x, 2) + pow(old.y - dot.y, 2), .5)); - if (length != null && len >= length) { - return dot; - } - old = dot; - } - if (length == null) { - return len; - } - }, - getLengthFactory = function (istotal, subpath) { - return function (path, length, onlystart) { - path = path2curve(path); - var x, y, p, l, sp = "", subpaths = {}, point, - len = 0; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = +p[1]; - y = +p[2]; - } else { - l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - if (len + l > length) { - if (subpath && !subpaths.start) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - sp += ["C", point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y]; - if (onlystart) {return sp;} - subpaths.start = sp; - sp = ["M", point.x, point.y + "C", point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]][join](); - len += l; - x = +p[5]; - y = +p[6]; - continue; - } - if (!istotal && !subpath) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - return {x: point.x, y: point.y, alpha: point.alpha}; - } - } - len += l; - x = +p[5]; - y = +p[6]; - } - sp += p; - } - subpaths.end = sp; - point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[1], p[2], p[3], p[4], p[5], p[6], 1); - point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha}); - return point; - }; - }; - var getTotalLength = getLengthFactory(1), - getPointAtLength = getLengthFactory(), - getSubpathsAtLength = getLengthFactory(0, 1); - elproto.getTotalLength = function () { - if (this.type != "path") {return;} - if (this.node.getTotalLength) { - return this.node.getTotalLength(); - } - return getTotalLength(this.attrs.path); - }; - elproto.getPointAtLength = function (length) { - if (this.type != "path") {return;} - return getPointAtLength(this.attrs.path, length); - }; - elproto.getSubpath = function (from, to) { - if (this.type != "path") {return;} - if (abs(this.getTotalLength() - to) < "1e-6") { - return getSubpathsAtLength(this.attrs.path, from).end; - } - var a = getSubpathsAtLength(this.attrs.path, to, 1); - return from ? getSubpathsAtLength(a, from).end : a; - }; - - // animation easing formulas - R.easing_formulas = { - linear: function (n) { - return n; - }, - "<": function (n) { - return pow(n, 3); - }, - ">": function (n) { - return pow(n - 1, 3) + 1; - }, - "<>": function (n) { - n = n * 2; - if (n < 1) { - return pow(n, 3) / 2; - } - n -= 2; - return (pow(n, 3) + 2) / 2; - }, - backIn: function (n) { - var s = 1.70158; - return n * n * ((s + 1) * n - s); - }, - backOut: function (n) { - n = n - 1; - var s = 1.70158; - return n * n * ((s + 1) * n + s) + 1; - }, - elastic: function (n) { - if (n == 0 || n == 1) { - return n; - } - var p = .3, - s = p / 4; - return pow(2, -10 * n) * math.sin((n - s) * (2 * PI) / p) + 1; - }, - bounce: function (n) { - var s = 7.5625, - p = 2.75, - l; - if (n < (1 / p)) { - l = s * n * n; - } else { - if (n < (2 / p)) { - n -= (1.5 / p); - l = s * n * n + .75; - } else { - if (n < (2.5 / p)) { - n -= (2.25 / p); - l = s * n * n + .9375; - } else { - n -= (2.625 / p); - l = s * n * n + .984375; - } - } - } - return l; - } - }; - - var animationElements = [], - animation = function () { - var Now = +new Date; - for (var l = 0; l < animationElements[length]; l++) { - var e = animationElements[l]; - if (e.stop || e.el.removed) { - continue; - } - var time = Now - e.start, - ms = e.ms, - easing = e.easing, - from = e.from, - diff = e.diff, - to = e.to, - t = e.t, - that = e.el, - set = {}, - now; - if (time < ms) { - var pos = easing(time / ms); - for (var attr in from) if (from[has](attr)) { - switch (availableAnimAttrs[attr]) { - case "along": - now = pos * ms * diff[attr]; - to.back && (now = to.len - now); - var point = getPointAtLength(to[attr], now); - that.translate(diff.sx - diff.x || 0, diff.sy - diff.y || 0); - diff.x = point.x; - diff.y = point.y; - that.translate(point.x - diff.sx, point.y - diff.sy); - to.rot && that.rotate(diff.r + point.alpha, point.x, point.y); - break; - case nu: - now = +from[attr] + pos * ms * diff[attr]; - break; - case "colour": - now = "rgb(" + [ - upto255(round(from[attr].r + pos * ms * diff[attr].r)), - upto255(round(from[attr].g + pos * ms * diff[attr].g)), - upto255(round(from[attr].b + pos * ms * diff[attr].b)) - ][join](",") + ")"; - break; - case "path": - now = []; - for (var i = 0, ii = from[attr][length]; i < ii; i++) { - now[i] = [from[attr][i][0]]; - for (var j = 1, jj = from[attr][i][length]; j < jj; j++) { - now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j]; - } - now[i] = now[i][join](S); - } - now = now[join](S); - break; - case "csv": - switch (attr) { - case "translation": - var x = pos * ms * diff[attr][0] - t.x, - y = pos * ms * diff[attr][1] - t.y; - t.x += x; - t.y += y; - now = x + S + y; - break; - case "rotation": - now = +from[attr][0] + pos * ms * diff[attr][0]; - from[attr][1] && (now += "," + from[attr][1] + "," + from[attr][2]); - break; - case "scale": - now = [+from[attr][0] + pos * ms * diff[attr][0], +from[attr][1] + pos * ms * diff[attr][1], (2 in to[attr] ? to[attr][2] : E), (3 in to[attr] ? to[attr][3] : E)][join](S); - break; - case "clip-rect": - now = []; - i = 4; - while (i--) { - now[i] = +from[attr][i] + pos * ms * diff[attr][i]; - } - break; - } - break; - default: - var from2 = [].concat(from[attr]); - now = []; - i = that.paper.customAttributes[attr].length; - while (i--) { - now[i] = +from2[i] + pos * ms * diff[attr][i]; - } - break; - } - set[attr] = now; - } - that.attr(set); - that._run && that._run.call(that); - } else { - if (to.along) { - point = getPointAtLength(to.along, to.len * !to.back); - that.translate(diff.sx - (diff.x || 0) + point.x - diff.sx, diff.sy - (diff.y || 0) + point.y - diff.sy); - to.rot && that.rotate(diff.r + point.alpha, point.x, point.y); - } - (t.x || t.y) && that.translate(-t.x, -t.y); - to.scale && (to.scale += E); - that.attr(to); - animationElements.splice(l--, 1); - } - } - R.svg && that && that.paper && that.paper.safari(); - animationElements[length] && setTimeout(animation); - }, - keyframesRun = function (attr, element, time, prev, prevcallback) { - var dif = time - prev; - element.timeouts.push(setTimeout(function () { - R.is(prevcallback, "function") && prevcallback.call(element); - element.animate(attr, dif, attr.easing); - }, prev)); - }, - upto255 = function (color) { - return mmax(mmin(color, 255), 0); - }, - translate = function (x, y) { - if (x == null) { - return {x: this._.tx, y: this._.ty, toString: x_y}; - } - this._.tx += +x; - this._.ty += +y; - switch (this.type) { - case "circle": - case "ellipse": - this.attr({cx: +x + this.attrs.cx, cy: +y + this.attrs.cy}); - break; - case "rect": - case "image": - case "text": - this.attr({x: +x + this.attrs.x, y: +y + this.attrs.y}); - break; - case "path": - var path = pathToRelative(this.attrs.path); - path[0][1] += +x; - path[0][2] += +y; - this.attr({path: path}); - break; - } - return this; - }; - elproto.animateWith = function (element, params, ms, easing, callback) { - for (var i = 0, ii = animationElements.length; i < ii; i++) { - if (animationElements[i].el.id == element.id) { - params.start = animationElements[i].start; - } - } - return this.animate(params, ms, easing, callback); - }; - elproto.animateAlong = along(); - elproto.animateAlongBack = along(1); - function along(isBack) { - return function (path, ms, rotate, callback) { - var params = {back: isBack}; - R.is(rotate, "function") ? (callback = rotate) : (params.rot = rotate); - path && path.constructor == Element && (path = path.attrs.path); - path && (params.along = path); - return this.animate(params, ms, callback); - }; - } - function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) { - var cx = 3 * p1x, - bx = 3 * (p2x - p1x) - cx, - ax = 1 - cx - bx, - cy = 3 * p1y, - by = 3 * (p2y - p1y) - cy, - ay = 1 - cy - by; - function sampleCurveX(t) { - return ((ax * t + bx) * t + cx) * t; - } - function solve(x, epsilon) { - var t = solveCurveX(x, epsilon); - return ((ay * t + by) * t + cy) * t; - } - function solveCurveX(x, epsilon) { - var t0, t1, t2, x2, d2, i; - for(t2 = x, i = 0; i < 8; i++) { - x2 = sampleCurveX(t2) - x; - if (abs(x2) < epsilon) { - return t2; - } - d2 = (3 * ax * t2 + 2 * bx) * t2 + cx; - if (abs(d2) < 1e-6) { - break; - } - t2 = t2 - x2 / d2; - } - t0 = 0; - t1 = 1; - t2 = x; - if (t2 < t0) { - return t0; - } - if (t2 > t1) { - return t1; - } - while (t0 < t1) { - x2 = sampleCurveX(t2); - if (abs(x2 - x) < epsilon) { - return t2; - } - if (x > x2) { - t0 = t2; - } else { - t1 = t2; - } - t2 = (t1 - t0) / 2 + t0; - } - return t2; - } - return solve(t, 1 / (200 * duration)); - } - elproto.onAnimation = function (f) { - this._run = f || 0; - return this; - }; - elproto.animate = function (params, ms, easing, callback) { - var element = this; - element.timeouts = element.timeouts || []; - if (R.is(easing, "function") || !easing) { - callback = easing || null; - } - if (element.removed) { - callback && callback.call(element); - return element; - } - var from = {}, - to = {}, - animateable = false, - diff = {}; - for (var attr in params) if (params[has](attr)) { - if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) { - animateable = true; - from[attr] = element.attr(attr); - (from[attr] == null) && (from[attr] = availableAttrs[attr]); - to[attr] = params[attr]; - switch (availableAnimAttrs[attr]) { - case "along": - var len = getTotalLength(params[attr]); - var point = getPointAtLength(params[attr], len * !!params.back); - var bb = element.getBBox(); - diff[attr] = len / ms; - diff.tx = bb.x; - diff.ty = bb.y; - diff.sx = point.x; - diff.sy = point.y; - to.rot = params.rot; - to.back = params.back; - to.len = len; - params.rot && (diff.r = toFloat(element.rotate()) || 0); - break; - case nu: - diff[attr] = (to[attr] - from[attr]) / ms; - break; - case "colour": - from[attr] = R.getRGB(from[attr]); - var toColour = R.getRGB(to[attr]); - diff[attr] = { - r: (toColour.r - from[attr].r) / ms, - g: (toColour.g - from[attr].g) / ms, - b: (toColour.b - from[attr].b) / ms - }; - break; - case "path": - var pathes = path2curve(from[attr], to[attr]); - from[attr] = pathes[0]; - var toPath = pathes[1]; - diff[attr] = []; - for (var i = 0, ii = from[attr][length]; i < ii; i++) { - diff[attr][i] = [0]; - for (var j = 1, jj = from[attr][i][length]; j < jj; j++) { - diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms; - } - } - break; - case "csv": - var values = Str(params[attr])[split](separator), - from2 = Str(from[attr])[split](separator); - switch (attr) { - case "translation": - from[attr] = [0, 0]; - diff[attr] = [values[0] / ms, values[1] / ms]; - break; - case "rotation": - from[attr] = (from2[1] == values[1] && from2[2] == values[2]) ? from2 : [0, values[1], values[2]]; - diff[attr] = [(values[0] - from[attr][0]) / ms, 0, 0]; - break; - case "scale": - params[attr] = values; - from[attr] = Str(from[attr])[split](separator); - diff[attr] = [(values[0] - from[attr][0]) / ms, (values[1] - from[attr][1]) / ms, 0, 0]; - break; - case "clip-rect": - from[attr] = Str(from[attr])[split](separator); - diff[attr] = []; - i = 4; - while (i--) { - diff[attr][i] = (values[i] - from[attr][i]) / ms; - } - break; - } - to[attr] = values; - break; - default: - values = [].concat(params[attr]); - from2 = [].concat(from[attr]); - diff[attr] = []; - i = element.paper.customAttributes[attr][length]; - while (i--) { - diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms; - } - break; - } - } - } - if (!animateable) { - var attrs = [], - lastcall; - for (var key in params) if (params[has](key) && animKeyFrames.test(key)) { - attr = {value: params[key]}; - key == "from" && (key = 0); - key == "to" && (key = 100); - attr.key = toInt(key, 10); - attrs.push(attr); - } - attrs.sort(sortByKey); - if (attrs[0].key) { - attrs.unshift({key: 0, value: element.attrs}); - } - for (i = 0, ii = attrs[length]; i < ii; i++) { - keyframesRun(attrs[i].value, element, ms / 100 * attrs[i].key, ms / 100 * (attrs[i - 1] && attrs[i - 1].key || 0), attrs[i - 1] && attrs[i - 1].value.callback); - } - lastcall = attrs[attrs[length] - 1].value.callback; - if (lastcall) { - element.timeouts.push(setTimeout(function () {lastcall.call(element);}, ms)); - } - } else { - var easyeasy = R.easing_formulas[easing]; - if (!easyeasy) { - easyeasy = Str(easing).match(bezierrg); - if (easyeasy && easyeasy[length] == 5) { - var curve = easyeasy; - easyeasy = function (t) { - return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms); - }; - } else { - easyeasy = function (t) { - return t; - }; - } - } - animationElements.push({ - start: params.start || +new Date, - ms: ms, - easing: easyeasy, - from: from, - diff: diff, - to: to, - el: element, - t: {x: 0, y: 0} - }); - R.is(callback, "function") && (element._ac = setTimeout(function () { - callback.call(element); - }, ms)); - animationElements[length] == 1 && setTimeout(animation); - } - return this; - }; - elproto.stop = function () { - for (var i = 0; i < animationElements.length; i++) { - animationElements[i].el.id == this.id && animationElements.splice(i--, 1); - } - for (i = 0, ii = this.timeouts && this.timeouts.length; i < ii; i++) { - clearTimeout(this.timeouts[i]); - } - this.timeouts = []; - clearTimeout(this._ac); - delete this._ac; - return this; - }; - elproto.translate = function (x, y) { - return this.attr({translation: x + " " + y}); - }; - elproto[toString] = function () { - return "Rapha\xebl\u2019s object"; - }; - R.ae = animationElements; - - // Set - var Set = function (items) { - this.items = []; - this[length] = 0; - this.type = "set"; - if (items) { - for (var i = 0, ii = items[length]; i < ii; i++) { - if (items[i] && (items[i].constructor == Element || items[i].constructor == Set)) { - this[this.items[length]] = this.items[this.items[length]] = items[i]; - this[length]++; - } - } - } - }; - Set[proto][push] = function () { - var item, - len; - for (var i = 0, ii = arguments[length]; i < ii; i++) { - item = arguments[i]; - if (item && (item.constructor == Element || item.constructor == Set)) { - len = this.items[length]; - this[len] = this.items[len] = item; - this[length]++; - } - } - return this; - }; - Set[proto].pop = function () { - delete this[this[length]--]; - return this.items.pop(); - }; - for (var method in elproto) if (elproto[has](method)) { - Set[proto][method] = (function (methodname) { - return function () { - for (var i = 0, ii = this.items[length]; i < ii; i++) { - this.items[i][methodname][apply](this.items[i], arguments); - } - return this; - }; - })(method); - } - Set[proto].attr = function (name, value) { - if (name && R.is(name, array) && R.is(name[0], "object")) { - for (var j = 0, jj = name[length]; j < jj; j++) { - this.items[j].attr(name[j]); - } - } else { - for (var i = 0, ii = this.items[length]; i < ii; i++) { - this.items[i].attr(name, value); - } - } - return this; - }; - Set[proto].animate = function (params, ms, easing, callback) { - (R.is(easing, "function") || !easing) && (callback = easing || null); - var len = this.items[length], - i = len, - item, - set = this, - collector; - callback && (collector = function () { - !--len && callback.call(set); - }); - easing = R.is(easing, string) ? easing : collector; - item = this.items[--i].animate(params, ms, easing, collector); - while (i--) { - this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, params, ms, easing, collector); - } - return this; - }; - Set[proto].insertAfter = function (el) { - var i = this.items[length]; - while (i--) { - this.items[i].insertAfter(el); - } - return this; - }; - Set[proto].getBBox = function () { - var x = [], - y = [], - w = [], - h = []; - for (var i = this.items[length]; i--;) { - var box = this.items[i].getBBox(); - x[push](box.x); - y[push](box.y); - w[push](box.x + box.width); - h[push](box.y + box.height); - } - x = mmin[apply](0, x); - y = mmin[apply](0, y); - return { - x: x, - y: y, - width: mmax[apply](0, w) - x, - height: mmax[apply](0, h) - y - }; - }; - Set[proto].clone = function (s) { - s = new Set; - for (var i = 0, ii = this.items[length]; i < ii; i++) { - s[push](this.items[i].clone()); - } - return s; - }; - - R.registerFont = function (font) { - if (!font.face) { - return font; - } - this.fonts = this.fonts || {}; - var fontcopy = { - w: font.w, - face: {}, - glyphs: {} - }, - family = font.face["font-family"]; - for (var prop in font.face) if (font.face[has](prop)) { - fontcopy.face[prop] = font.face[prop]; - } - if (this.fonts[family]) { - this.fonts[family][push](fontcopy); - } else { - this.fonts[family] = [fontcopy]; - } - if (!font.svg) { - fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10); - for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) { - var path = font.glyphs[glyph]; - fontcopy.glyphs[glyph] = { - w: path.w, - k: {}, - d: path.d && "M" + path.d[rp](/[mlcxtrv]/g, function (command) { - return {l: "L", c: "C", x: "z", t: "m", r: "l", v: "c"}[command] || "M"; - }) + "z" - }; - if (path.k) { - for (var k in path.k) if (path[has](k)) { - fontcopy.glyphs[glyph].k[k] = path.k[k]; - } - } - } - } - return font; - }; - paperproto.getFont = function (family, weight, style, stretch) { - stretch = stretch || "normal"; - style = style || "normal"; - weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400; - if (!R.fonts) { - return; - } - var font = R.fonts[family]; - if (!font) { - var name = new RegExp("(^|\\s)" + family[rp](/[^\w\d\s+!~.:_-]/g, E) + "(\\s|$)", "i"); - for (var fontName in R.fonts) if (R.fonts[has](fontName)) { - if (name.test(fontName)) { - font = R.fonts[fontName]; - break; - } - } - } - var thefont; - if (font) { - for (var i = 0, ii = font[length]; i < ii; i++) { - thefont = font[i]; - if (thefont.face["font-weight"] == weight && (thefont.face["font-style"] == style || !thefont.face["font-style"]) && thefont.face["font-stretch"] == stretch) { - break; - } - } - } - return thefont; - }; - paperproto.print = function (x, y, string, font, size, origin, letter_spacing) { - origin = origin || "middle"; // baseline|middle - letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1); - var out = this.set(), - letters = Str(string)[split](E), - shift = 0, - path = E, - scale; - R.is(font, string) && (font = this.getFont(font)); - if (font) { - scale = (size || 16) / font.face["units-per-em"]; - var bb = font.face.bbox.split(separator), - top = +bb[0], - height = +bb[1] + (origin == "baseline" ? bb[3] - bb[1] + (+font.face.descent) : (bb[3] - bb[1]) / 2); - for (var i = 0, ii = letters[length]; i < ii; i++) { - var prev = i && font.glyphs[letters[i - 1]] || {}, - curr = font.glyphs[letters[i]]; - shift += i ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0; - curr && curr.d && out[push](this.path(curr.d).attr({fill: "#000", stroke: "none", translation: [shift, 0]})); - } - out.scale(scale, scale, top, height).translate(x - top, y - height); - } - return out; - }; - - R.format = function (token, params) { - var args = R.is(params, array) ? [0][concat](params) : arguments; - token && R.is(token, string) && args[length] - 1 && (token = token[rp](formatrg, function (str, i) { - return args[++i] == null ? E : args[i]; - })); - return token || E; - }; - R.ninja = function () { - oldRaphael.was ? (win.Raphael = oldRaphael.is) : delete Raphael; - return R; - }; - R.el = elproto; - R.st = Set[proto]; - - oldRaphael.was ? (win.Raphael = R) : (Raphael = R); -})(); \ No newline at end of file diff --git a/build/MIofConnectingRod/js/raphaelpicture.js b/build/MIofConnectingRod/js/raphaelpicture.js deleted file mode 100755 index ccc3828..0000000 --- a/build/MIofConnectingRod/js/raphaelpicture.js +++ /dev/null @@ -1,200 +0,0 @@ -var screwX; -var screwY; -var outlineRod; -var lowerCircle; -var upperCircle; -var outerRect; -var innerRect; -var smallRect; -var pendulum; -var check; -var sec; -var secs; -var ruler; -var rotationDegree; -var centerX; -var centerY; -var topTriangle; -var topMiddleCircle; -var topOuterCircle; -var bottomMiddleCircle; -var bottomOuterCircle; -var outLine; -var check; -function picture() -{ - sec=500; - secs=500; - rotationDegree=20; - r=new Raphael(document.getElementById('picture'),805,520); - outLine=r.path("M385 35 l-20,355 l70,0 l-20,-355 l-30,0").attr({fill:"#484848"}); - gText=r.text(400,250,"G").attr({'font-size':14}); - rText=r.text(400,260,"+").attr({'font-size':14}); - topOuterCircle=r.circle(400,35,20).attr({fill:"#808080"}); - r.text(400,7,"O").attr({'font-size':14}); - topMiddleCircle=r.circle(400,35,15).attr({'stroke-width':4,fill:"white"}); - topTriangle=r.path("M400,20 l5,10 l-10,0 l5,-10").attr({fill:"black"}); - screwPath=r.path("M330 365 l5,0 l0,-10 l20,0 l0,10 l90,0 l0,-10 l20,0 l0,10 l5,0 l0,60 l-5,0 l0,3 l-4,0 l0,3 l-4,0 l0,3 l-4,0 l0,-3 l-4,0 l0,-3 l-4,0 l0,-3 l-90,0 l0,3 l-4,0 l0,3 l-4,0 l0,3 l-4,0 l0,-3 l-4,0 l0,-3 l-4,0 l0,-3 l-5,0 l0,-60").attr({fill:" #404040"}); - bottomOuterCircle=r.circle(400,390,50).attr({fill:"#808080"}); - rulerPath1=r.path("M650 395 s-250,176,-512,-10,"); - rulerPath2=r.path("M657 408 s-252,178,-526,-8,"); - bottomMiddleCircle=r.circle(400,390,35).attr({'stroke-width':5,fill:"#EEEEEE"}); - ruler(); -} - -function oscillation() -{ - switch(rotationDegree) - { - case 35: - xPosition=105; - xPosition1=115; - yPosition=32; - centerX=193; - centerY=327; - screwX=211; - screwY=63; - break; - - case 30: - xPosition=90; - xPosition1=100; - yPosition=24; - centerX=220; - centerY=342; - screwX=183; - screwY=47; - break; - - case 25: - xPosition=75; - xPosition1=85; - yPosition=16; - centerX=250; - centerY=357; - screwX=153; - screwY=32; - break; - - case 20: - xPosition=59; - xPosition1=69; - yPosition=9; - centerX=280; - centerY=370; - screwX=122; - screwY=19; - break; - - case 15: - xPosition=45; - xPosition1=55; - yPosition=6; - centerX=308; - centerY=377; - screwX=95; - screwY=11; - break; - - case 10: - xPosition=30; - xPosition1=40; - yPosition=3; - centerX=337; - centerY=385; - screwX=64; - screwY=5; - break; - - case 5: - xPosition=15; - xPosition1=25; - yPosition=2; - centerX=369; - centerY=390; - screwX=32; - screwY=0; - break; - } - v=outLine.animate({rotation:""+rotationDegree,translation:"-"+xPosition+",-"+yPosition},500); - var g=gText.animate({rotation:""+rotationDegree,translation:"-"+xPosition1+",-"+yPosition},500); - var r=rText.animate({rotation:""+rotationDegree,translation:"-"+xPosition1+",-"+yPosition},500); - var an2=bottomOuterCircle.animateWith(v,{cx:centerX,cy:centerY},500); - var an3=bottomMiddleCircle.animateWith(v,{cx:centerX,cy:centerY},500); - var an4=screwPath.animateWith(v,{rotation:""+rotationDegree,translation:"-"+screwX+",-"+screwY},500); - setTimeout(function(){ - second(); - },500); -} - -function first() -{ - v=outLine.animate({rotation:"-"+rotationDegree,translation:""+xPosition+",-"+yPosition},500); - var g=gText.animate({rotation:"-"+rotationDegree,translation:""+xPosition1+",-"+yPosition},500); - var r=rText.animate({rotation:"-"+rotationDegree,translation:""+xPosition1+",-"+yPosition},500); - var an2=bottomOuterCircle.animateWith(v,{cx:(400-centerX)+400,cy:centerY},500); - var an3=bottomMiddleCircle.animateWith(v,{cx:(400-centerX)+400,cy:centerY},500); - var an4=screwPath.animateWith(v,{rotation:"-"+rotationDegree,translation:""+screwX+",-"+screwY},500); - setTimeout(function(){ - third(); - },500); -} -function second() -{ - v=outLine.animate({rotation:"0",translation:""+xPosition+","+yPosition},500); - var g=gText.animate({rotation:"0",translation:""+xPosition1+","+yPosition},500); - var r=rText.animate({rotation:"0",translation:""+xPosition1+","+yPosition},500); - var an2=bottomOuterCircle.animateWith(v,{cx:400,cy:390},500); - var an3=bottomMiddleCircle.animateWith(v,{cx:400,cy:390},500); - var an4=screwPath.animateWith(v,{rotation:"0",translation:""+screwX+","+screwY},500); - setTimeout(function(){ - first(); - },500); -} -function third() -{ - v=outLine.animate({rotation:"0",translation:"-"+xPosition+","+yPosition},500); - var g=gText.animate({rotation:"0",translation:"-"+xPosition1+","+yPosition},500); - var r=rText.animate({rotation:"0",translation:"-"+xPosition1+","+yPosition},500); - var an2=bottomOuterCircle.animateWith(v,{cx:400,cy:390},500); - var an3=bottomMiddleCircle.animateWith(v,{cx:400,cy:390},500); - var an4=screwPath.animateWith(v,{rotation:"0",translation:"-"+screwX+","+screwY},500); - rotationDegree-=5; - if(rotationDegree>0){ - setTimeout(function(){ - oscillation(); - },500) - } - else{ - setTimeout(function(){ - setSubmitButton(); - },2000); - } -} - -function setSubmitButton() -{ - if(clicked == "trialOne"){ - $("#textbox3").val(timeTen1); - $("#textbox4").val(time1); - $("#submit1").attr("disabled",false); - $("#submit,#submit1").addClass('bluebtn'); - - } else if(clicked == "trialTwo"){ - $("#textbox5").val(timeTen2); - $("#textbox6").val(time2); - $("#submit2").attr("disabled",false); - $("#submit2,#submit1").addClass('bluebtn'); - } else if(clicked == "trialThree"){ - $("#textbox7").val(timeTen3); - $("#textbox8").val(time3); - $("#submit2,#submit1","#submit").addClass('bluebtn'); - } - $("#submit").attr("disabled",false); - $("#submit1").attr("disabled",false); - $("#submit2").attr("disabled",false); -} - - - - diff --git a/build/MIofConnectingRod/js/rulerDiagram.js b/build/MIofConnectingRod/js/rulerDiagram.js deleted file mode 100755 index f319e82..0000000 --- a/build/MIofConnectingRod/js/rulerDiagram.js +++ /dev/null @@ -1,36 +0,0 @@ -function ruler() -{ -ruleLine0=r.path("M400,470 l0,15"); -ruleline5=r.path("M367,468 l-2,15"); -ruleline10=r.path("M323,464 l-2,15"); -ruleline15=r.path("M282,455 l-3,15"); -ruleline20=r.path("M248,443 l-5,15"); -ruleline25=r.path("M208,427 l-5,15"); -ruleline30=r.path("M177,410 l-8,14"); -ruleline35=r.path("M141,386 l-8,14"); -ruleline_5=r.path("M433,469 l2,15"); -ruleline_10=r.path("M477,464 l2,15"); -ruleline_15=r.path("M518,453 l3,15"); -ruleline_20=r.path("M552,443 l5,15"); -ruleline_25=r.path("M587,428 l5,15"); -ruleline_30=r.path("M617,413 l8,14"); -ruleline_35=r.path("M647,395 l8,14"); -text0=r.text(400,493,"0").attr({'font-size':14}); -text5=r.text(367,491,"5").attr({'font-size':14}); -text10=r.text(323,486,"10").attr({'font-size':14}); -text15=r.text(282,482,"15").attr({'font-size':14}); -text20=r.text(250,470,"20").attr({'font-size':14}); -text25=r.text(209,456,"25").attr({'font-size':14}); -text30=r.text(170,437,"30").attr({'font-size':14}); -text35=r.text(135,417,"35").attr({'font-size':14}); - -text_5=r.text(433,491,"-5").attr({'font-size':14}); -text_10=r.text(477,486,"-10").attr({'font-size':14}); -text_15=r.text(516,480,"-15").attr({'font-size':14}); -text_20=r.text(550,470,"-20").attr({'font-size':14}); -text_25=r.text(591,456,"-25").attr({'font-size':14}); -text_30=r.text(622,442,"-30").attr({'font-size':14}); -text_35=r.text(656,422,"-35").attr({'font-size':14}); -//ruleCircle=r.circle(400,20,465); -//ruleCircle=r.circle(400,20,450); -} \ No newline at end of file diff --git a/build/NaturalVibrationSDOF/NaturalVibrationSDOF.html b/build/NaturalVibrationSDOF/NaturalVibrationSDOF.html deleted file mode 100755 index 0ac3523..0000000 --- a/build/NaturalVibrationSDOF/NaturalVibrationSDOF.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - Spring Mass Damper System - - - - - - - - - - - - - - - - - - - -
      -
        -
        - - -

        Spring Mass Damper System : Natural Vibration

        - -
        -
      -
      -
      - - - -
      -
      -
      - - Control Panel - -

      -
      - mm -

      -

      -
      - kg -

      -

      - - N/m -

      -

      - - N.s/m -

      - -

      - - N.s/m -

      -

      -
      - s - -

      - -
      - -
      - -
      -
      - Constant Values -

      - -
      - - rad/s
      - - rad/s -

      -
      -
      - -
      -
      -
      -
      -
      -
      - -
      -
      - - - - - \ No newline at end of file diff --git a/build/NaturalVibrationSDOF/content.html b/build/NaturalVibrationSDOF/content.html deleted file mode 100755 index 5a6eb27..0000000 --- a/build/NaturalVibrationSDOF/content.html +++ /dev/null @@ -1,9184 +0,0 @@ - - -
      - -
      - - - -
      - -
      - -
      -
      -
      -Free response of SDOF
      - - - -
      - -
      -
      - - -
      - -
      - Aim -
      - -

      Aim

      - -

            To find damping coefficient and damped and undamped natural frequencies of an under-damped single degree of freedom system from its response to an initial displacement

      - -

      (b) Importance of knowing vibration damping coefficient, and damped and undamped natural frequencies of a vibratory system

      - -

      -     A machine resting on a resilient pad or sheet may be modeled as a spring-mass-damper arrangement. The machine, say a lathe-bed and its accessories, can be considered rigid representing the mass M kg with motion only in vertical direction. The resilient pad can be considered to be a spring and a damper together. Let the spring constant of the pad be K N/m and its coefficient of damping C N.s/m. Since there is only one mass and only one probable motion (motion in vertical direction) the system is a single degree of freedom system. The damping will be assumed to be viscous, i.e. the resistance to motion is proportional to the velocity of mass of the system. -

           Let this type of single degree of freedom system be acted upon by a harmonic force; i.e. the value of a force varies with respect to time following the equation or . When the frequency of such harmonic force acting on the system equals the natural frequency of the system, the amplitude of motion of the mass of the system is large and resonance is said to occur. Amplitude of forced vibration tends to be large when the difference between the frequency of the harmonic force acting on the vibratory system and the natural frequency of the system is small. -

           Value of amplitude at and near resonance depends on amount of damping present in the system; the damping factor is a measure of the amount of damping. Variation of amplitude of vibration of a single degree of freedom system and frequency of the harmonic force acting on the system, for various values of damping factor, is shown in fig.1, plotted as X/Xst versus ; X is amplitude of displacement; Xst is the displacement of mass under action of static force F0 , amplitude of the harmonic force ; is frequency of the harmonic force; and is the undamped natural frequency of the system. The ratio X/Xst is called Magnification Factor (MF). -

      -

      -Fig. 1. Plot X/Xst versus for different values of damping of factor for different values of damping of factor. -

      Large amplitude of forced vibration at and near resonance can be dangerous to the system because it may lead to failure of its components and joints. In order to have small amplitude of vibration of a system excited harmonically, either the difference between the natural frequency of the system and the excitation frequency must be large or the damping factor for the system must be sufficiently high. So we must know the natural frequency of the system and the damping factor to predict the amplitude of vibration when a harmonic force acts on the system. This experiment demonstrates a method to find these parameters from natural vibration of the system. -
      A system consisting of a spring, a mass and a damper is considered for the purpose. An initial displacement X is given to the mass; No initial velocity is given. Displacement of the mass with respect to time is recorded. A typical plot of such a record is as shown in fig. 2 and is given by the equation . is damped natural frequency given by ; is the damping factor which is ratio of damping coefficient C to critical damping coefficient Cc. Critical damping coefficient . K is stiffness constant of the spring used in the system and M is the mass. - 
      -
      -Fig. 2. Plots of displacement ‘x’ versus time ‘t’ for two values of damping factor, . Initial displacement, X0, as well as undamped natural frequency of vibration, fn, are taken as 1. -
      -Observe that the amplitude reduces exponentially with respect to time;
      -Amplitude = .
      -The natural logarithm (logarithm to the base e) of the ratio of amplitudes of two successive cycles is constant which is known as logarithmic decrement, denoted by δ; -
      -

      - -


      -

      -
      - - - -
      -
      - - -
      -
      - Theory -
      -

      -

       

      -

      Vibratory systems around us - - -

      Here are some examples of physical systems where the vibrations are prominent and can be observed easily. In musical instruments the vibrations are intentional. The parts of musical instruments are designed so that they generate sounds that are pleasant to listen. In many cases the vibrations are unwanted and we try to minimize them.

      -

       

      -

      1.   A chandelier hanging from ceiling oscillates to and fro following an initial disturbance; maybe due to a breeze of air.

      -

       

      -

      2.   The oscillations of the chandelier at cathedral of Pisa, Italy, were studied by the famous scientist Galileo Galilee.

      -

       

      -

      3.   A load attached at end of a wire-rope of a crane oscillates to and fro due to initial disturbance; maybe due to sudden stopping of carriage of the crane while revolving about the vertical axis.

      -

       

      -

      4.   The pendulum used in clock of olden days used to oscillate to and fro once every second. i.e. it had a period of oscillation of one second.

      -

       

      -

      5.   String of a guitar, when plucked and left to its own, vibrates and makes a musical sound. It comes to rest after a while; the vibrations die out. Similarly, the diaphragm of a table vibrates when hit and left to its own. It also comes to rest after some time. -

      - -

      -     All these are examples of vibratory systems that are set into vibration following an initial disturbance. All these systems have three components: mass, due to which the system possesses inertia; elasticity, due to which potential energy can be stored; and components that dissipate energy causing the vibratory motion to be damped which bring them to rest after some time.
      -      Vibration or vibratory systems are classified in number of ways. Some of the classifications are given below: -

      -

       

      -

       Free and forced vibration - A free vibration occurs due to initial displacement or velocity, or both, applied to the system only initially. There is no external force acting on the system when the system is vibrating. A forced vibration occurs when the system vibrates in response to external force applied continuously. When the force applied is periodic, i.e. it repeats itself after a fixed interval of time, the forced vibration is called periodic. If the periodic force and hence the resulting vibration varies sinusoidally with respect to time, the vibration is called harmonic. If the force is not periodic, the forced vibration is called aperiodic or random.

      - -

      -

       Damped and undamped vibration -
      -When the vibratory system has elements that offer resistance to motion, energy is continuously dissipated and the free vibrations of such systems come to halt after some time. This is called damped vibration and such systems are called damped systems. Forced vibration of a damped system continues as long as the force acts but some of the work done by the external force is lost in overcoming the resistance offered by the damping elements. Systems without damping elements are called undamped systems and their vibrations are called undamped vibrations. All systems in nature have some or the other damping element and their natural vibrations are damped. Hence they come to rest after some time following free vibrations. Nevertheless, we study the vibration of undamped systems because the concepts developed in studying them are useful in analyzing and understanding the phenomena occurring in vibration of damped as well as complicated systems. When the force of resistance offered by a damping element is proportional to velocity of mass of the system, it is termed as viscous damping and the damping element is called a viscous damper. If the force of resistance has a constant value, it is termed as Coulomb damping. Damping due to dry friction shows this kind of behavior. Coulomb damping can occur when the system has components rubbing over each other. There are other types of damping also which shall be discussed later.

      -

      - -

      -

      -

      - -

      -

      -

      -

      Degrees of freedom : The vibratory systems are classified as single-degree-of-freedom systems, Multi-degree-of-freedom-systems or continuous systems. The number of degrees of freedom corresponds to the number of independent co-ordinates required to completely describe the motion of the system. In fact, it is the sum of the possible ways each mass can move independently of other masses. The translation of a mass along the three axes, X, Y and Z, and the three rotations about each of these axes constitute possible ways of motion of a mass. Many times, many of these six motions of a mass are restricted and a mass can have one or two degrees of freedom, i.e. only translation or translation and rotation of a single mass about any one of the axes.
      -
      -Linear and Non-linear Vibrations : Vibration is said to be linear if the damping force is proportional to velocity, inertia force is proportional to mass, and restoring force is proportional to displacement. If any of this proportionality is not satisfied, the system is said to be non-linear.
      -
      - Solving engineering problems : Analytical methods are usually applied to models of actual systems. We carry out experiments on models if physical systems are not available for testing. While preparing such models, we exclude superfluous details of the system but include all essential and important features of the actual system. While doing so, we idealize and approximate important behaviour of the system without affecting much the accuracy in predicting the behaviour. The system model so developed provides ease of application of analytical and experimental techniques. Once a satisfactory model is developed, laws of Physics can be applied which give a set of mathematical equations relating the properties and variables of the system. Such a set of mathematical equations is called mathematical model of the system. Solving the set of equations (or a single mathematical equation) provides expression for the system variable in terms of location and time. We call this as ‘solution’ of the problem. As an illustration of the concepts described above, see the example given below.
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -

      Physical system

      -
      -

      These days we have number of towering buildings.  Many a times the residential part of such a building is supported on a tall concrete structure.  One of such buildings is the ‘Milad Tower’, situated in Tehran, Iran.  Its head consists of a large pod with 12 floors and below is a staircase and elevators to reach the area.

      -

      The oscillations of such tall buildings, in response to earthquake and wind, are important from design point of view.  And to study these oscillations, we must know the characteristics of its natural vibration. 

      -

      Analysis of such a physical system can be very much complicated.  To obtain first rough estimate of the natural frequency of vibration, the problem can be stated and the physical system can be modeled in a simple way as described below.

      -
      -

      Problem statement

      -
      -

      To find natural frequency of oscillation of the tower in the direction perpendicular to the vertical axis (i.e. natural frequency of transverse oscillation of the tower) and position of the head at any given time.

      -
      -

      Physical model of the system

      -
      -

      - - - - - - - -
      -
      -

      M

      -
      -
      -
      - - - - - - -
      -
      -

         

      -
      -
      -
      -

       

      -
      -

      The physical model for the system under consideration can be as shown in This is the simplest model.  Only the mass of the building at the top is considered and it is considered to be concentrated at one point.  The mass of the vertical pillar supporting the buiding is neglected and is considered to be a cantilever offering only elesticity.

      -

      Thus it becomes a single degree of freedom system with single mass and only one way of motion of the mass: translation in direction perpendicular to the vertical axis of the building.  Further we assume that the amplitude of this motion to be small.

      -

      The equivalent stiffness of the cantilever is given by

      -

      .  The symbols carry their usual meanings.

      -

       

      -
      -

      Mathematical model

      -
      -

      Using Newton’s second law of motion, the equation of motion of the mass is written as

      -

       

      -

      The first term is the inertia force which is equal to mass multiplied by acceleration and the second term is the spring force given by stiffness of the spring multiplied by its elongation or compression.

      -

      The differential equation is a mathematical model of the system.

      -

       

      -
      -

      General Solution

      -
      -

      The solution to the above differential equation is given by

      -

        

      -

      A and B are constants that depend the initial conditions, i.e. the displacement and velocity of the mass when we started measuring our time.

      -

      These are known as initial conditions.

      -

       is the natural frequency in radians per second and is given by

      -

      -
      -

      Particular solution obtained from the initial conditions

      -
      -

      Substituting the initial conditions in above expression, we can obtain the values of A and B.  Thus if X0 and V0 are the initial displacement and velocity, respectively, given to the mass, the above expression will yield values of A and B as  and  

      -

       

      -

      Now the expression for x becomes

      -

      -

      And we can obtain the value of x at any time t from this expression.

      -

      Thus we have obtained the expressions for natural frequency and position of the head at any given time ‘t and the problem stated by the problem statement is solved.

      -
      -

       

      -
      -
      -
      - - -
      -
      - Simulator -
      -
      -
      -
      -
      - - -
      -
      - Procedure -
      -
      -

      -

      - -

       (a) Experimental set up and procedure

      -

      -      You see a Spring-Mass-Damper system supported at bottom (spring and damper are grounded and they support a mass). The values of K, M and C can be entered by using the buttons provided on the screen by typing numerical values. Similarly, value of initial displacement X to be given to the can be entered. Click the ‘run’ button with icon and leave. This is like releasing the mass that was pressed through X m. On leaving, the mass will vibrate up and down. These are damped natural vibration because the mass is vibrating in response to the initial disturbance alone without any external force acting continuously and damping is present. The displacement of the mass with respect to its equilibrium position (i.e. the position before the initial displacement was given) will be as shown in the plot. Make the following observation from the plot and use the data obtained from the plot to obtain values of damping factor and damped natural frequency of the system. - -

      -

       

      -

      (b) Observation and analysis:

      -

       

      -
        -
      1. Observe the plot x v/s t, particularly the amplitude of x. Note that the amplitude is exponentially decaying with respect to time, t. Time taken to complete one cycle, i.e. the time period τ, is constant.
      2. -
      -

       

      -
        -
      1. Measure the time period, τ, (the difference between time of similar points of two consecutive cycles) thrice and take average -
      2. -
      -

       

      -
        -
      1. Measure amplitudes of any two successive cycles and take natural logarithm of ratio the amplitudes, greater amplitude to the smaller one. This is called logarithmic decrement, δ. Repeat this thrice and take average.
      2. -
      -

       

      -
        -

      1. -
      2. -
      -

       

      -
        -
      1. Use following formulae to find damping factor, ζ, and damped natural frequency of the system, ωd, from the values of τ and δobtained from the steps above. - and -
      2. -
      -

       

      -
        -
      1. Substitute the values of δ and τ above and find out damped natural frequency, ωd, and damping factor, ζ, for the system.
        -
      2. -
      -

       

      -
        -
      1. Change value of coefficient of damping C on the screen. This will change the value of damping factor, ζ. But take care that it remains less than 1 so that the system is under-damped and the foregoing discussion is valid.
      2. -
      -

       

      -
        -
      1. Repeat the procedure from steps 1 through 6.
      2. -
      -

       

      -
        -
      1. - Note the changes in time period τ, and logarithmic decrement, δ, -

        -You will find that the time period decreases with increasing ζ, i.e. damped natural frequency decreases with increasing ζ. And the rate of decay of amplitude increases with increase in value of the damping factor, ζ.
        -
      2. -
      - -

      (c) Do This

      -

      - Use the values of damped natural frequency, ωd, and damping factor, ζ, and find undamped natural frequency, ωn and damping coefficient, C, - 

      -

       

      -
      - - -
      -
      - - -
      -
      - Review Questions -
      -

      - - - -

      -

      1.    What is the importance of knowing the natural frequency and damping factor of a vibratory system?

      -

       

      -

      2.    Describe an actual physical system which you know that can be modeled as a single degree of freedom system. If you do not know any, observe it in nature around you, in an industry you visit, in the laboratory or workshop of your college.

      -

       

      -

      3.    What is special about natural logarithm of ratio of amplitudes of displacement of two successive cycles of a damped single degree of freedom system?

      -

       

      -

      4.    What is the effect of damping factor on damped natural frequency and logarithmic decrement of a viscously damped single degree of freedom system?

      -

       

      -

      5.   In case of resonance occurring in a single degree of freedom system, what can be done to lower the amplitude of resulting displacement of mass?

      - -

      -

       

      -

      - -

      - - - - - - - - - -

      -

            

      - -
      -
      - -
      -
      -
      - diff --git a/build/NaturalVibrationSDOF/css/SMD.css b/build/NaturalVibrationSDOF/css/SMD.css deleted file mode 100755 index 73ad150..0000000 --- a/build/NaturalVibrationSDOF/css/SMD.css +++ /dev/null @@ -1,171 +0,0 @@ -*{ - margin:0; - padding:0; -} - -.imag{ - background: url("../../../images/ui-bg_gloss-wave_35_f6a828_500x100.png") repeat scroll 0 0 transparent; - float: left; - margin-bottom: 15px; - margin-left: 0; - border : 1px solid #E78F08; - border-radius: 5px 5px 5px 5px; -} - -.imag img{ - margin-left: 741px; -} -.placeholder{ - color: gray; -} - -.headStyle{ - color: #FFFFFF; - height: 62px; - line-height: 0px; - margin-top: -1.8em; - text-align: left; - text-shadow: 0 1px 0 #0096C5; -} - -#uservalues fieldset legend { - text-shadow: 0 1px 1px #c0d576; -} -#uservalues fieldset input { - margin-bottom: 1px; - margin-left: 17px; - margin-right: 5px; - background: #ffffff; - border: none; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -khtml-border-radius: 3px; - border-radius: 3px; - font: italic 13px Georgia, "Times New Roman", Times, serif; - outline: none; - padding: 5px; -} -#uservalues fieldset p{ - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - padding: 0px 2px; - margin-bottom: -1px; -} -#uservalues fieldset{ - border: none; - color: #384313; - font-size: 13px; - font-weight: bold; - padding-bottom: 10px; - text-shadow: 0 1px 1px #c0d576; -} -#uservalues fieldset label -{ - margin-left: 10px; -} -#tabs{ - margin-left: auto; - margin-right: auto; - width: 1302px; - height: 730px; -} -#tabs-1{ - /*height: 552px; - overflow: hidden;*/ -} -#diagram{ - margin-bottom: 28px; - top: -4px; - width: 347px; -} -#uservalues{ - margin-left: 313px; - margin-top: -576px; - position: absolute; - width: 221px; -} -#run{ - margin-left:10px; - margin-top:10px; -} -#displayvalues{ - margin-left: 313px; - margin-top: -139px; - position: absolute; - width: 221px; -} -#displayvalues fieldset p{ - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - padding: 0px 2px; - margin-bottom: 1px; -} -#displayvalues input{ - background: #ffffff; - border: none; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -khtml-border-radius: 3px; - border-radius: 3px; - font: italic 13px Georgia, "Times New Roman", Times, serif; - outline: none; - padding: 5px; - margin-left: 5px; -} -#displayvalues fieldset{ - border: none; - color: #384313; - font-size: 13px; - font-weight: bold; - padding-bottom: 10px; - text-shadow: 0 1px 1px #c0d576; -} -#displayvalues label{ - margin-left : 25px; -} -#note{ - margin-left: 543px; - margin-top: -550px; - width: 650px; -} -#graphSMD{ - height: 520px; - left: 537px; - top: -556px; - width: 758px; -} -#CcVal{ - margin-left: 32px; -} -#zetaVal{ - margin-left: 15px; -} -#omeganVal{ - margin-left: 15px; -} -#omegadVal{ - margin-left:15px; -} - -#Showf{ - margin-left: 23px; - margin-top: -22px; -} \ No newline at end of file diff --git a/build/NaturalVibrationSDOF/css/gstyle_buttons.css b/build/NaturalVibrationSDOF/css/gstyle_buttons.css deleted file mode 100755 index a791a12..0000000 --- a/build/NaturalVibrationSDOF/css/gstyle_buttons.css +++ /dev/null @@ -1,187 +0,0 @@ - -/*------------------------------------*\ - $WRAPPER -\*------------------------------------*/ -.buttons {/* Style as you wish (toolbar) */ -} -/* The Magnificent CLEARFIX */ -.buttons:before, .buttons:after { - content: "\0020"; - display: block; - height: 0; - visibility: hidden; -} -.buttons:after { - clear: both; -} -.buttons { - zoom: 1; -} -/* ------------------------ */ - - -/*------------------------------------*\ - $BUTTON -\*------------------------------------*/ -button { - text-decoration: none; - text-shadow: 0 1px 0 #fff; - font: bold 11px Helvetica, Arial, sans-serif; - color: #444; - line-height: 17px; - height: 18px; - display: inline-block; - padding: 5px 6px 4px 6px; - background: #F3F3F3; - border: solid 1px #D9D9D9; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -webkit-transition: border-color .20s; - -moz-transition: border-color .20s; - -o-transition: border-color .20s; - transition: border-color .20s; - height: 29px !important; - cursor: pointer; -} -button:hover { - background: #F4F4F4; - border-color: #C0C0C0; - color: #333; -} -button:active { - border-color: #4D90FE; - color: #4D90FE; - -moz-box-shadow:inset 0 0 10px #D4D4D4; - -webkit-box-shadow:inset 0 0 10px #D4D4D4; - box-shadow:inset 0 0 10px #D4D4D4; -} -button.bluebtn { - border: 1px solid #3079ED !important; - background: #4B8DF8; - background: -webkit-linear-gradient(top, #4C8FFD, #4787ED); - background: -moz-linear-gradient(top, #4C8FFD, #4787ED); - background: -ms-linear-gradient(top, #4C8FFD, #4787ED); - background: -o-linear-gradient(top, #4C8FFD, #4787ED); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.bluebtn:hover { - border: 1px solid #2F5BB7 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #4D90FE, #357AE8); - background: -moz-linear-gradient(top, #4D90FE, #357AE8); - background: -ms-linear-gradient(top, #4D90FE, #357AE8); - background: -o-linear-gradient(top, #4D90FE, #357AE8); -} -button.greenbtn { - border: 1px solid #29691D !important; - background: #3A8E00; - background: -webkit-linear-gradient(top, #3C9300, #398A00); - background: -moz-linear-gradient(top, #3C9300, #398A00); - background: -ms-linear-gradient(top, #3C9300, #398A00); - background: -o-linear-gradient(top, #3C9300, #398A00); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.greenbtn:hover { - border: 1px solid #2D6200 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #3C9300, #368200); - background: -moz-linear-gradient(top, #3C9300, #368200); - background: -ms-linear-gradient(top, #3C9300, #368200); - background: -o-linear-gradient(top, #3C9300, #368200); -} -button.redbtn { - border: 1px solid #D14836 !important; - background: #D64937; - background: -webkit-linear-gradient(top, #DC4A38, #D14836); - background: -moz-linear-gradient(top, #DC4A38, #D14836); - background: -ms-linear-gradient(top, #DC4A38, #D14836); - background: -o-linear-gradient(top, #DC4A38, #D14836); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.redbtn:hover { - border: 1px solid #B0281A !important; - background: #D14130; - background: -webkit-linear-gradient(top, #DC4A38, #C53727); - background: -moz-linear-gradient(top, #DC4A38, #C53727); - background: -ms-linear-gradient(top, #DC4A38, #C53727); - background: -o-linear-gradient(top, #DC4A38, #C53727); -} -button.action:hover { - -moz-box-shadow: 0 1px 0px #DDD; - -webkit-box-shadow: 0 1px 0px #DDD; - box-shadow:iset 0 1px 0px #DDD; -} -button.action:active { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - border-color: #C6C6C6 !important; -} -button.bluebtn:active { - border-color: #2F5BB7 !important; -} -button.greenbtn:active { - border-color: #2D6200 !important; -} -button.redbtn:active { - border-color: #B0281A !important; -} -/*------------------------------------*\ - $BUTTON LABEL -\*------------------------------------*/ - button span.label { - display: inline-block; - float: left; - line-height: 17px; - height: 18px; - padding: 0 1px; - overflow: hidden; - color: #444; - -webkit-transition: color .20s; - -moz-transition: color .20s; - -o-transition: color .20s; - transition: color .20s; -} -button span.label { - line-height: 15px !important; -} -button:hover .label.bluebtn { - color: #7090C8; -} -button:hover .label.greenbtn { - color: #42B449; -} -button:hover .label.yellow { - color: #F7CB38; -} -button.bluebtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2F5BB7 !important; -} -button.greenbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2D6200 !important; -} -button.redbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #B0281A !important; -} -button.action .label { - padding: 0 17px !important; -} -button.action:active .label { - color: #333 !important; -} -button.bluebtn:active .label, button.greenbtn:active .label, button.redbtn:active .label { - color: #FFF !important; -} diff --git a/build/NaturalVibrationSDOF/css/jsxgraph.css b/build/NaturalVibrationSDOF/css/jsxgraph.css deleted file mode 100755 index 72e544a..0000000 --- a/build/NaturalVibrationSDOF/css/jsxgraph.css +++ /dev/null @@ -1,29 +0,0 @@ -/* -*/ -.jxgbox { - position:absolute; - overflow:hidden; - background-color:#ffffff; -} - -.JXGtext { - background-color:transparent; - font-family: Arial, Helvetica, Geneva; - padding:0px; - margin:0px; -} - -.navbar { - color: #aaaaaa; - background-color: #f5f5f5; - padding: 2px; - position: absolute; - font-size: 10px; - cursor: pointer; - z-index: 100; - right: 5px; - bottom: 5px; -} -#graphSMD_jxgBoard1_infobox{ - background-color: black; -} diff --git a/build/NaturalVibrationSDOF/default.html b/build/NaturalVibrationSDOF/default.html deleted file mode 100755 index f770b6e..0000000 --- a/build/NaturalVibrationSDOF/default.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - -
      - - - -
      - - - - - - - -
      - - - -
      - - - -
      - - Simple Pendulum - -
      - - - - - -
      - - -
      - -
      - - -
      - - -
      - Introduction -
      - - -
      -

      - In this module, basic concepts of simple oscillator - are explained. Initially, an example of simple - pendulum is taken and the basic terminology i.e., - what is initial displacement, - initial velocity,natural frequency - and time period are explained. - Each of these terms is illustrated by giving an - example, where user can enter his value and observe - the behavior of structure for his input. -

      - -

      - Simple harmonic oscillator consists of a - mass (m) hanging from a string of - length (l), fixed at a pivot point P. - When the mass is displaced from its mean - position by giving some initial displacement - (angle), oscillator starts swinging back and fourth - with periodic motion. -

      - - pendulum -
      - - -
      - - -
      - -
      - - -
      - - -
      - Theory -
      - - - -
      -

      - There are two solutions to \(ax^2 + bx + c = 0\) and - they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - By applying Newton's second law for - rotational systems, the equation of motion for the - pendulum may be obtained. -

      - -

      - Where, τ = Torque ; I = - Moment of Inertia; α = - Angular Velocity. m is mass of the - oscillator, l is the length of the oscillator and theta is initial - displacement. The above equation can be rearranged as -

      - -

      - If the amplitude of - angular displacement is - small then we can use the approximation - (sinθ ≈ θ). - By considering the above approximation, the equation - of motion reduces to : -

      - -

      - The solution for equation of simple harmonic oscillator is -

      - -

      - where, θ(t) is the history of oscillation, - θ0 is the initial angle, - &omega=(g/l)1/2 is the - natural frequency of - the motion. -

      -
      -
      - - -
      - -
      - - -
      - -
      - Objective -
      - -
      -

      - Objective of simple harmonic oscillator experiment - is to understand the concept of time period - (natural frequency) in harmonic - oscillations . -

      - -
      - -
      - - -
      - -
      - - -
      - -
      - Experiment -
      - -
      -

      - -

      -
      - -
      - -
      - -
      - - -
      - -
      - Manual -
      - -
      -

      - Start the experiment with the default values of - length, mass and intial displacement (in angle). - Pause the experiment after few cycles and note - the observation. -

      - -

      Observation 1:

      -
        - -
      1. - Find the time period of the pendulum by noting the - time interval of any one complete cycle from the - response graph. -
      2. - -
      3. - You may note that this time period value is same - for any complete cycle. - Read More -
      4. - -
      - -
      - -
      - -
      - -
      - - -
      - -
      - Quizzes -
      - -
      - -

      - - Q1. - Time taken for one complete oscillation - is called Time Period of the oscillator.
      - - True
      - - False

      - - Q2. - Time period of the oscillator is constant for - given values of mass, length and initial - conditions.
      - - True
      - - False

      - - Q3. - Value of Time period depends on initial - conditions.
      - - True
      - - False

      - - Q4. - Value of time period depends on mass.
      - - True
      - - False

      - - Q5. - Value of time period depends on length of the - oscillator.
      - - True
      - - False

      - -

      - -
      - -
      - -
      - -
      - - -
      - -
      - Procedure -
      - -
      -

      - Procedure for the experiment is as follows -

      -
      - -
      - - -
      - -
      - - -
      - -
      - Further Readings -
      - -
      - -
      - -
      - -
      - - - - - - - -
      - -
      - -
      - - - -
      - -
      - -
      - - - diff --git a/build/NaturalVibrationSDOF/index.html b/build/NaturalVibrationSDOF/index.html deleted file mode 100755 index 294c518..0000000 --- a/build/NaturalVibrationSDOF/index.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      - - - - - - - - - - - - diff --git a/build/NaturalVibrationSDOF/js/jQueryOperations.js b/build/NaturalVibrationSDOF/js/jQueryOperations.js deleted file mode 100755 index 2c87759..0000000 --- a/build/NaturalVibrationSDOF/js/jQueryOperations.js +++ /dev/null @@ -1,233 +0,0 @@ - - -var createGraph = function () { - - brd = JXG.JSXGraph.initBoard('graphSMD', { - originX: 50, - originY: 300, - unitX: 90, - unitY: 20, - showCopyright: false, - //grid: true, - }); - var grid = brd.create('grid',[],{hasGrid:true,gridX:0.5}); - - axisx = brd.create('axis', [ - [0, 0], - [1, 0] - ], { - name: "Weight (kg)", - withLabel: false - }); - - axisy = brd.create('axis', [ - [0, 0], - [0, 1] - ], { - name: "V", - withLabel: false - }); - - var text_Y = brd.create('text', [-0.5, 13, 'x (mm)'], { - style: 5 - }); - var text_X = brd.create('text', [7.3, 0.8, 't (sec)'], { - style: 5 - }); - var scale1 = brd.create('text', [6, 10, 'Scale:'], { - style: 5 - }); - var scale2 = brd.create('text', [6.5, 9, 'X axis: 1 unit = 1 sec'], { - style: 5 - }); - var scale3 = brd.create('text', [6.5, 8, 'Y axis: 1 unit = 5 mm'], { - style: 5 - }); - } - -function calcCc() { - m = parseFloat($("#m").val()); - k = parseFloat($('#k').val()); - Cc = 2 * Math.sqrt(k * m); - $("#cc").val(Cc); -} - -function calculate() { - $("#note").html("Move the Cursor on the points[red dots] plotted on the graph to see X and Y coordinates"); - var errorMsg = ""; - x0 = parseFloat($("#Xo").val()); - if ((x0 != null || x0 != 0) && (x0 >= 4 && x0 <= 8)) { - x0 = x0; - check1 += 1; - } else { - errorMsg += "Please Enter 'xo' between 4-8
      "; - showDialog(errorMsg); - check1 = 0; - } - - m = parseFloat($("#m").val()); - - if ((m != null || m != 0) && (m >= 4 && m <= 8)) { - m = m; - check1 += 1; - } else { - - errorMsg += "Please Enter 'm' between 4-8
      "; - showDialog(errorMsg); - check1 = 0; - } - k = parseFloat($('#k').val()); - - if ((k != null || k != 0) && (k >= 100 && k <= 200)) { - k = k; - check1 += 1; - } else { - errorMsg += "Please Enter 'k' between 100-200
      "; - showDialog(errorMsg); - check1 = 0; - } - c = parseFloat($("#c").val()); - - if (c <= Cc) { - c = c; - check1 += 1; - - } else { - errorMsg += "Please Enter 'c' Less than Cc
      "; - showDialog(errorMsg); - check1 = 0; - } - t = parseFloat($("#t").val()); - - - if ((t != null || t != 0) && (t >= 7 && t <= 12)) { - t = t; - check1 += 1; - } else { - errorMsg += "Please Enter 't' between 7-12
      "; - showDialog(errorMsg); - check1 = 0; - } - zeta = c / Cc; - omegaN = Math.sqrt(k / m); - omegaD = Math.sqrt(1 - (zeta * zeta)) * omegaN; - pie = Math.atan(zeta / Math.sqrt(1 - (zeta * zeta))); - - if (check1 == 5) { - display(); - init(); - update(); - $("#run").attr('disabled', true); - } -} -function showDialog(msg) { - $("#Formula").html(msg) - $("#Formula").dialog(); -} -function showTitle(msg) { - $("#Formula1").html(msg) - $("#Formula1").dialog(); -} - -function display() { - $("#zetaVal").val(zeta.toFixed(9)); - $("#omeganVal").val(omegaN.toFixed(9)); - $("#omegadVal").val(omegaD.toFixed(9)); -} - -function update(){ - d = t * 10; - ti[0] = t / d; - for (var i = 1; i < d; i++) { - ti[i] = ti[i - 1] + t / d; - } -} -/*function plotData() { - for (var i = 0; i < d; i++) { - y[i] = x0 * Math.exp(-zeta * omegaN * ti[i]) * (Math.cos(omegaD * ti[i]) + (zeta / Math.sqrt(1 - (zeta * zeta))) * Math.sin(omegaD * ti[i])); - } - - for (var i = 0; i < ti.length; i++) { - var t1 = ti[i]; - var y1 = y[i]; - p1[i] = brd.createElement('point', [ti[i], y[i]], { - name: '', - style: 3, - strokeColor: 'white', - fixed: true - }); - } - var li1 = brd.create('curve', [ti, y], { - strokeColor: 'green', - strokeWidth: 2, - fixed: true - }); - -}*/ - -function plotData() { - for (var i = 0; i < d; i++) { - y[i] = x0 * Math.exp(-zeta * omegaN * ti[i]) * (Math.cos(omegaD * ti[i]) + (zeta / Math.sqrt(1 - (zeta * zeta))) * Math.sin(omegaD * ti[i])); - //console.log("red dot= "+y[i]); - } - var i =0; - setInterval(function(){ - if(i. -*/ - var JXG={};(function(){var d,e;JXG.countDrawings=0;JXG.countTime=0;JXG.require=function(f){};JXG.rendererFiles=[];JXG.rendererFiles.svg="SVGRenderer";JXG.rendererFiles.vml="VMLRenderer";JXG.rendererFiles.canvas="CanvasRenderer";JXG.baseFiles=null;JXG.requirePath="";for(d=0;d0?h[0].length:0,w=h.length,v=this.matrix(q,p),u,t,x,r;for(u=0;u0?r[0].length:0;l=this.matrix(q,h);for(p=0;pz){z=d.abs(m[v][u]);h=v}}if(z<=e.Math.eps){return false}if(h>u){for(t=0;tm||j<0){return NaN}j=d.floor(j);m=d.floor(m);if(j===0||j===m){return 1}h=1;for(l=0;l0){return d.exp(h*d.log(d.abs(j)))}else{return NaN}}},squampow:function(k,j){var h;if(d.floor(j)===j){h=1;if(j<0){k=1/k;j*=-1}while(j!=0){if(j&1){h*=k}j>>=1;k*=k}return h}else{return this.pow(k,j)}},normalize:function(k){var h=2*k[3],l=k[4]/(h),m,j;k[5]=l;k[6]=-k[1]/h;k[7]=-k[2]/h;if(l===Infinity||isNaN(l)){m=d.sqrt(k[1]*k[1]+k[2]*k[2]);k[0]/=m;k[1]/=m;k[2]/=m;k[3]=0;k[4]=1}else{if(d.abs(l)>=1){k[0]=(k[6]*k[6]+k[7]*k[7]-l*l)/(2*l);k[1]=-k[6]/l;k[2]=-k[7]/l;k[3]=1/(2*l);k[4]=1}else{j=(l<=0)?(-1):(1);k[0]=j*(k[6]*k[6]+k[7]*k[7]-l*l)*0.5;k[1]=-j*k[6];k[2]=-j*k[7];k[3]=j/2;k[4]=j*l}}return k}}})(JXG,Math);JXG.Math.Numerics=(function(e,d){var f={rk4:{s:4,A:[[0,0,0,0],[0.5,0,0,0],[0,0.5,0,0],[0,0,1,0]],b:[1/6,1/3,1/3,1/6],c:[0,0.5,0.5,1]},heun:{s:2,A:[[0,0],[1,0]],b:[0.5,0.5],c:[0,1]},euler:{s:1,A:[[0]],b:[1],c:[0]}};return{Gauss:function(g,s){var u=e.Math.eps,h=g.length>0?g[0].length:0,q,t,r,p,m,l=function(v,n){var k=this[v];this[v]=this[n];this[n]=k};if((h!==s.length)||(h!==g.length)){throw new Error("JXG.Math.Numerics.Gauss: Dimensions don't match. A must be a square matrix and b must be of the same length as A.")}q=new Array(h);t=s.slice(0,h);for(r=0;rp;r--){if(d.abs(q[r][p])>u){if(d.abs(q[p][p])0?r[0].length:0;for(p=g-1;p>=0;p--){for(l=s-1;l>p;l--){h[p]-=r[p][l]*h[l]}h[p]/=r[p][p]}return h},gaussBareiss:function(v){var l,u,y,q,m,g,h,r,w,x=e.Math.eps;h=v.length;if(h<=0){return 0}if(v[0].length=x){break}}if(q==h){return 0}for(m=l;mr){r=g}v+=g;if(g>=B){g=d.atan2(2*h[s][q],h[s][s]-h[q][q])*0.5;t=d.sin(g);y=d.cos(g);for(p=0;pB&&u<2000);return[h,m]},NewtonCotes:function(g,k,h){var l=0,q=h&&typeof h.number_of_nodes==="number"?h.number_of_nodes:28,n={trapez:true,simpson:true,milne:true},r=h&&h.integration_type&&n.hasOwnProperty(h.integration_type)&&n[h.integration_type]?h.integration_type:"milne",p=(g[1]-g[0])/q,m,j,s;switch(r){case"trapez":l=(k(g[0])+k(g[1]))*0.5;m=g[0];for(j=0;j0){throw new Error("JSXGraph: INT_SIMPSON requires config.number_of_nodes dividable by 2.")}s=q/2;l=k(g[0])+k(g[1]);m=g[0];for(j=0;j0){throw new Error("JSXGraph: Error in INT_MILNE: config.number_of_nodes must be a multiple of 4")}s=q*0.25;l=7*(k(g[0])+k(g[1]));m=g[0];for(j=0;jm){q=this.D(p,j)(g);l+=2;if(d.abs(q)>m){g-=n/q}else{g+=(d.random()*0.2-1)}n=p.apply(j,[g]);l++;k++}return g},root:function(j,g,h){return this.fzero(j,g,h)},Neville:function(l){var h=[],g=function(m){return function(x,n){var q,w,y,z=e.Math.binomial,v=l.length,p=v-1,r=0,u=0;if(!n){y=1;for(q=0;q=0;m--){u[m]=(q[m]-(v[m+1]*u[m+1]))/p[m]}for(m=g-3;m>=0;m--){u[m+1]=u[m]}u[0]=0;u[g-1]=0;return u},splineEval:function(h,z,v,B){var k=d.min(z.length,v.length),p=1,m=false,A=[],r,q,w,u,t,s,g;if(e.isArray(h)){p=h.length;m=true}else{h=[h]}for(r=0;rz[k-1])){return NaN}for(q=1;q=0;k--){l=l.concat(["(",g[k].toPrecision(j),")"]);if(k>1){l=l.concat(["*",h,"",k,"<","/sup> + "])}else{if(k===1){l=l.concat(["*",h," + "])}}}return l.join("")},lagrangePolynomial:function(j){var g=[],h=function(w,l){var p,m,t,v,y,q=0,r=0,u,n;t=j.length;if(!l){for(p=0;p0&&e.isPoint(q[0])){j=1}else{throw new Error("JSXGraph: Can't create regressionPolynomial. Wrong parameters.")}}r=function(G,t){var w,v,D,A,F,u,E,H,C,z=q.length;C=d.floor(h());if(!t){if(j===1){n=[];m=[];for(w=0;w=0;w--){H=(H*G+g[w])}return H};r.getTerm=function(){return k};return r},bezier:function(j){var g,h=function(k){return function(m,l){var q=d.floor(m)*3,p=m%1,n=1-p;if(!l){g=d.floor(j.length/3)}if(m<0){return j[0][k]()}if(m>=g){return j[j.length-1][k]()}if(isNaN(m)){return NaN}return n*n*(n*j[q][k]()+3*p*j[q+1][k]())+(3*n*j[q+2][k]()+p*j[q+3][k]())*p*p}};return[h("X"),h("Y"),0,function(){return d.floor(j.length/3)}]},bspline:function(k,g){var l,n=[],m=function(s,p){var q,r=[];for(q=0;q=A){w=0}else{w=v[r+1]}y=B[r+u-1]-B[r];if(y==0){v[r]=0}else{v[r]=(z-B[r])/y*x}y=B[r+u]-B[r+1];if(y!=0){v[r]+=(B[r+u]-z)/y*w}}}return v},h=function(p){return function(w,r){var q=k.length,A,v,x,z=q-1,u=g;if(z<=0){return NaN}if(z+2<=u){u=z+1}if(w<=0){return k[0][p]()}if(w>=z-u+2){return k[z][p]()}l=m(z,u);x=d.floor(w)+u-1;n=j(w,l,z,u,x);A=0;for(v=x-u+1;v<=x;v++){if(v=0){A+=k[v][p]()*n[v]}}return A}};return[h("X"),h("Y"),0,function(){return k.length-1}]},D:function(k,l){var j=0.00001,g=1/(j*2);if(arguments.length==1||(arguments.length>1&&!e.exists(arguments[1]))){return function(h,m){return(k(h+j,m)-k(h-j,m))*g}}else{return function(h,m){return(k.apply(l,[h+j,m])-k.apply(l,[h-j,m]))*g}}},riemann:function(s,m,t,k,p){var l=[],A=[],r,q=0,z,w=k,u,h,v,g;m=d.floor(m);l[q]=w;A[q]=0;if(m>0){z=(p-k)/m;g=z*0.01;for(r=0;ru){u=v}}}}}}q++;l[q]=w;A[q]=u;q++;w+=z;if(t==="trapezodial"){u=s(w)}l[q]=w;A[q]=u;q++;l[q]=w;A[q]=0}}return[l,A]},riemannsum:function(p,k,r,j,l){var q=0,m,v,u=j,s,h,t,g;k=d.floor(k);if(k>0){v=(l-j)/k;g=v*0.01;for(m=0;ms){s=t}}}}}}}q+=v*s;u+=v}}return q},rungeKutta:function(g,H,p,m,G){var q=[],n=[],F=(p[1]-p[0])/m,v=p[0],J,E,D,B,A,C=H.length,w,u=[],z=0;if(e.isString(g)){g=f[g]||f.euler}w=g.s;for(J=0;J0){if(e.isArray(H)){return this.fminbr(G,[K,J],M)}else{return this.Newton(G,K,M)}}I=K;w=A;while(y=F&&d.abs(A)>d.abs(x)){t=I-J;if(K==I){l=x/A;v=t*l;s=1-l}else{s=A/w;l=x/w;k=x/A;v=k*(t*s*(s-l)-(J-K)*(l-1));s=(s-1)*(l-1)*(k-1)}if(v>0){s=-s}else{v=-v}if(v<(0.75*t*s-d.abs(F*s)*0.5)&&v0){m=F}else{m=-F}}K=J;A=x;J+=m;x=G.apply(M,[J]);B++;if((x>0&&w>0)||(x<0&&w<0)){I=K;w=A}y++}e.debug("fzero: maxiter="+g+" reached.");return J},fminbr:function(I,J,N){var M,K,m,u,s,h,k,j,A=(3-d.sqrt(5))*0.5,F=e.Math.eps,C=d.sqrt(e.Math.eps),g=50,E=0,z,L,H,n,D,B,y,l,G=0;if(!e.isArray(J)||J.length<2){throw new Error("JXG.Math.Numerics.fminbr: length of array x0 has to be at least two.")}M=J[0];K=J[1];u=M+A*(K-M);k=I.apply(N,[u]);G++;m=u;s=u;h=k;j=k;while(E=H){y=(m-s)*(h-k);B=(m-u)*(h-j);D=(m-u)*B-(m-s)*y;B=2*(B-y);if(B>0){D=-D}else{B=-B}if(d.abs(D)B*(M-m+2*H)&&D0){n=H}else{n=-H}}y=m+n;l=I.apply(N,[y]);G++;if(l<=h){if(y0){return this.sum(d)/d.length}else{return 0}};JXG.Math.Statistics.median=function(e){var f,d;if(e.length>0){f=e.slice(0,e.length);f.sort(function(h,g){return h-g});d=f.length;if(d%2==1){return f[parseInt(d*0.5)]}else{return(f[d*0.5-1]+f[d*0.5])*0.5}}else{return 0}};JXG.Math.Statistics.variance=function(f){var e,h,g,d;if(f.length>1){e=this.mean(f);h=0;for(g=0,d=f.length;g0){return this.mean(this.multiply(d,e))}else{return 0}};JXG.Math.Statistics.max=function(e){var g,f,d;if(e.length==0){return NaN}g=e[0];for(f=1,d=e.length;fg)?(e[f]):g}return g};JXG.Math.Statistics.min=function(e){var g,f,d;if(e.length==0){return NaN}g=e[0];for(f=1,d=e.length;f0){l=m[q].generatePolynomial();for(g=0;g0)){if((y.toOrigin!==e)&&(y.toOrigin!=null)&&C(y.toOrigin.id,n.listOfFreePoints)){k=y.toOrigin}else{k=n.listOfFreePoints[0]}v=k.symbolic.x;t=k.symbolic.y;for(D=0;D1)){if((y.to10!==e)&&(y.to10!=null)&&(y.to10.id!=y.toOrigin.id)&&C(y.to10.id,n.listOfFreePoints)){j=y.to10}else{if(n.listOfFreePoints[0].id==k.id){j=n.listOfFreePoints[1]}else{j=n.listOfFreePoints[0]}}p=d.Math.Geometry.rad([1,0],[0,0],[j.symbolic.x,j.symbolic.y]);E=Math.cos(-p);x=Math.sin(-p);for(D=0;Dd.Math.eps)){G=j.symbolic.x;for(D=0;Ds){l+=Math.PI}r=Math.cos(l)+q[1];p=Math.sin(l)+q[2];return new JXG.Coords(JXG.COORDS_BY_USER,[r,p],m)},reflection:function(q,m,f){var h=m.coords.usrCoords,r=q.point1.coords.usrCoords,g=q.point2.coords.usrCoords,e,l,d,j,n,k,p;if(!JXG.exists(f)){f=m.board}n=g[1]-r[1];k=g[2]-r[2];e=h[1]-r[1];l=h[2]-r[2];p=(n*l-k*e)/(n*n+k*k);d=h[1]+2*p*k;j=h[2]-2*p*n;return new JXG.Coords(JXG.COORDS_BY_USER,[d,j],f)},rotation:function(d,p,h,j){var l=p.coords.usrCoords,e=d.coords.usrCoords,g,n,k,q,f,m;if(!JXG.exists(j)){j=p.board}g=l[1]-e[1];n=l[2]-e[2];k=Math.cos(h);q=Math.sin(h);f=g*k-n*q+e[1];m=g*q+n*k+e[2];return new JXG.Coords(JXG.COORDS_BY_USER,[f,m],j)},perpendicular:function(s,q,j){var h=s.point1.coords.usrCoords,g=s.point2.coords.usrCoords,e=q.coords.usrCoords,n,m,l,r,k,f,d,p;if(!JXG.exists(j)){j=q.board}if(q==s.point1){n=h[1]+g[2]-h[2];m=h[2]-g[1]+h[1];l=true}else{if(q==s.point2){n=g[1]+h[2]-g[2];m=g[2]-h[1]+g[1];l=false}else{if(((Math.abs(h[1]-g[1])>JXG.Math.eps)&&(Math.abs(e[2]-(h[2]-g[2])*(e[1]-h[1])/(h[1]-g[1])-h[2])JXG.Math.eps&&(Math.abs(f[0])0){e=m.midpoint.Dist(z.point1);K=m.midpoint.Dist(z.point2);I=((e*e)+(D*D)-(K*K))/(2*D);B=(e*e)-(I*I);B=(B<0)?0:B;G=Math.sqrt(B);E=m.Radius();p=Math.sqrt((E*E)-G*G);C=J[1]-L[1];A=J[2]-L[2];k=g[1]+(G/D)*A;j=g[2]-(G/D)*C;e=(J[1]*A)-(J[2]*C);K=(k*C)+(j*A);F=(A*A)+(C*C);if(Math.abs(F)r){return[0]}else{if(v=d&&Math.abs(e[3])=d){return this.meetLineCircle(g,e,f,h)}else{return this.meetCircleCircle(g,e,f,h)}}}},meetLineLine:function(e,d,f,h){var g=JXG.Math.crossProduct(e,d);if(Math.abs(g[0])>JXG.Math.eps){g[1]/=g[0];g[2]/=g[0];g[0]=1}return new JXG.Coords(JXG.COORDS_BY_USER,g,h)},meetLineCircle:function(j,e,p,q){var v,u,s,r,l,h,g,f,m,w;if(e[4]=0){m=Math.sqrt(m);w=[(-g+m)/(2*h),(-g-m)/(2*h)];return((p==0)?new JXG.Coords(JXG.COORDS_BY_USER,[-w[0]*(-l[1])-r*l[0],-w[0]*l[0]-r*l[1]],q):new JXG.Coords(JXG.COORDS_BY_USER,[-w[1]*(-l[1])-r*l[0],-w[1]*l[0]-r*l[1]],q))}else{return new JXG.Coords(JXG.COORDS_BY_USER,[NaN,NaN],q)}},meetCircleCircle:function(f,d,e,g){var h;if(f[4]JXG.Math.eps&&m<10){B=A(q);z=-y(p);x=k(q);w=-j(p);g=B*w-z*x;q-=(w*v-z*u)/g;p-=(B*u-x*v)/g;v=t.X(q)-s.X(p);u=t.Y(q)-s.Y(p);r=v*v+u*u;m++}arguments.callee.t1memo=q;arguments.callee.t2memo=p;if(Math.abs(q)0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1)){v=20;w=(g.maxX()-g.minX())/v;x=g.minX();for(u=0;u0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1){break}x+=w}}p=l;arguments.callee.t2memo=p}if(Math.abs(h(p))>JXG.Math.eps){k=0}else{k=1}return(new JXG.Coords(JXG.COORDS_BY_USER,[k,g.X(p),g.Y(p)],j))},projectPointToCircle:function(m,d,f){var j=m.coords.distance(JXG.COORDS_BY_USER,d.midpoint.coords),e=m.coords.usrCoords,g=d.midpoint.coords.usrCoords,l,k,h;if(!JXG.exists(f)){f=m.board}if(Math.abs(j)r.maxX()){q=r.minX()+q-r.maxX()}C=new JXG.Coords(JXG.COORDS_BY_USER,[r.X(q),r.Y(q)],h)}else{if(r.curveType=="plot"){B=p;for(v=0;v=JXG.Math.eps){g=(A*z+e*d)/k;s=Math.sqrt(A*A+e*e-g*(A*z+e*d))}else{g=0;s=Math.sqrt(A*A+e*e)}if(g>=0&&g<=1&&sJXG.Math.eps){for(h=2;h>0;h--){v[l][h]/=v[l][0]}v[l][0]=1}}e=false;d=false;if(!r&&q.scrCoords[1]>=0&&q.scrCoords[1]<=g.board.canvasWidth&&q.scrCoords[2]>=0&&q.scrCoords[2]<=g.board.canvasHeight){e=true}if(!f&&p.scrCoords[1]>=0&&p.scrCoords[1]<=g.board.canvasWidth&&p.scrCoords[2]>=0&&p.scrCoords[2]<=g.board.canvasHeight){d=true}if(Math.abs(v[1][0])g.board.canvasHeight){k=v[2]}else{k=v[3]}}else{if(v[1][2]>g.board.canvasHeight){m=v[2];if(v[3][2]<0){k=v[0]}else{k=v[3]}}else{m=v[1];if(v[3][2]<0){k=v[0]}else{if(v[3][2]>g.board.canvasHeight){k=v[2]}else{k=v[3]}}}}}}m=new JXG.Coords(JXG.COORDS_BY_SCREEN,m.slice(1),g.board);k=new JXG.Coords(JXG.COORDS_BY_SCREEN,k.slice(1),g.board);if(!e&&!d){if(!r&&f&&!this.isSameDirection(q,p,m)&&!this.isSameDirection(q,p,k)){return}else{if(r&&!f&&!this.isSameDirection(p,q,m)&&!this.isSameDirection(p,q,k)){return}}}if(!e){if(!d){if(this.isSameDirection(q,p,m)){if(!this.isSameDirection(q,p,k)){t=m;u=k}else{if(JXG.Math.Geometry.affineDistance(p.usrCoords,m.usrCoords)=0&&k>=0){if((d>=0&&j>=0)||(d<=0&&j<=0)){g=true}}else{if(e<=0&&k<=0){if((d>=0&&j>=0)||(d<=0&&j<=0)){g=true}}}return g},updateTicks:function(e,g,d,h,f){},removeTicks:function(d){this.remove(this.getElementById(d.id+"_ticks"))},drawCurve:function(d){this.appendChildPrim(this.createPrim("path",d.id),d.layer);this.appendNodesToElement(d,"path");this.updateVisual(d,{shadow:true},true);this.updateCurve(d)},updateCurve:function(d){this.updateVisual(d);this.updatePathPrim(d.rendNode,this.updatePathStringPrim(d),d.board);this.makeArrows(d)},drawCircle:function(d){this.appendChildPrim(this.createPrim("ellipse",d.id),d.layer);this.appendNodesToElement(d,"ellipse");this.updateCircle(d)},updateCircle:function(e){this.updateVisual(e);var d=e.Radius();if(d>0&&!isNaN(d+e.midpoint.coords.scrCoords[1]+e.midpoint.coords.scrCoords[2])&&d*e.board.stretchX<20000){this.updateEllipsePrim(e.rendNode,e.midpoint.coords.scrCoords[1],e.midpoint.coords.scrCoords[2],(d*e.board.stretchX),(d*e.board.stretchY))}},drawPolygon:function(d){this.appendChildPrim(this.createPrim("polygon",d.id),d.layer);this.appendNodesToElement(d,"polygon");this.updatePolygon(d)},updatePolygon:function(d){this.updateVisual(d,{stroke:true,dash:true});this.updatePolygonPrim(d.rendNode,d)},drawText:function(d){var e;if(d.display=="html"){e=this.container.ownerDocument.createElement("div");e.style.position="absolute";e.style.color=d.visProp.strokeColor;e.className="JXGtext";e.style.zIndex="10";this.container.appendChild(e);e.setAttribute("id",this.container.id+"_"+d.id)}else{e=this.drawInternalText(d)}e.style.fontSize=d.board.options.text.fontSize+"px";d.rendNode=e;d.htmlStr="";this.updateText(d)},drawInternalText:function(d){},updateText:function(d){if(!d.visProp.visible){return}if(isNaN(d.coords.scrCoords[1]+d.coords.scrCoords[2])){return}this.updateTextStyle(d);if(d.display=="html"){d.rendNode.style.left=(d.coords.scrCoords[1])+"px";d.rendNode.style.top=(d.coords.scrCoords[2]-this.vOffsetText)+"px";d.updateText();if(d.htmlStr!=d.plaintextStr){d.rendNode.innerHTML=d.plaintextStr;if(d.board.options.text.useASCIIMathML){AMprocessNode(d.rendNode,false)}d.htmlStr=d.plaintextStr;if(d.board.options.text.useMathJax){MathJax.Hub.Typeset(d.rendNode)}}this.transformImage(d,d.transformations)}else{this.updateInternalText(d)}},updateInternalText:function(d){},updateTextStyle:function(e){var d;if(e.visProp.fontSize){if(typeof e.visProp.fontSize=="function"){d=e.visProp.fontSize();e.rendNode.style.fontSize=(d>0?d:0)}else{e.rendNode.style.fontSize=(e.visProp.fontSize)}}},drawImage:function(d){},updateImageURL:function(d){},updateImage:function(d){this.updateRectPrim(d.rendNode,d.coords.scrCoords[1],d.coords.scrCoords[2]-d.size[1],d.size[0],d.size[1]);this.updateImageURL(d);this.transformImage(d,d.transformations);this.updateVisual(d,{stroke:true,dash:true},true)},joinTransforms:function(d,n){var g=[[1,0,0],[0,1,0],[0,0,1]],l=[[1,0,0],[-d.board.origin.scrCoords[1],1,0],[-d.board.origin.scrCoords[2],0,1]],k=[[1,0,0],[0,1/d.board.stretchX,0],[0,0,-1/d.board.stretchY]],e=[[1,0,0],[0,d.board.stretchX,0],[0,0,-d.board.stretchY]],f=[[1,0,0],[d.board.origin.scrCoords[1],1,0],[d.board.origin.scrCoords[2],0,1]],h,j=n.length;for(h=0;hs.usrCoords[1]){y=n-1;break}}m=Math.ceil(s.usrCoords[2]);e=0;for(n=0;n<=p+1;n++){if(m-n/pg.usrCoords[2]){f=n-1;break}}x=Math.round((1/q)*t.stretchX);w=Math.round((1/p)*t.stretchY);u=new JXG.Coords(JXG.COORDS_BY_USER,[Math.ceil(g.usrCoords[1])-h/q,Math.floor(g.usrCoords[2])+f/p],t);r=new JXG.Coords(JXG.COORDS_BY_USER,[Math.floor(s.usrCoords[1])+y/q,Math.ceil(s.usrCoords[2])-e/p],t);v=this.drawVerticalGrid(u,r,x,t);this.appendChildPrim(v,t.options.layer.grid);if(!t.options.grid.snapToGrid){d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridx";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,t.options.grid.gridColor,t.options.grid.gridOpacity)}else{d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridx";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,"#FF8080",0.5)}this.setPropertyPrim(v,"stroke-width","0.4px");if(t.options.grid.gridDash){this.setGridDash("gridx")}v=this.drawHorizontalGrid(u,r,w,t);this.appendChildPrim(v,t.options.layer.grid);if(!t.options.grid.snapToGrid){d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridy";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,t.options.grid.gridColor,t.options.grid.gridOpacity)}else{d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridy";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,"#FF8080",0.5)}this.setPropertyPrim(v,"stroke-width","0.4px");if(t.options.grid.gridDash){this.setGridDash("gridy")}},removeGrid:function(d){this.remove(this.getElementById("gridx"));this.remove(this.getElementById("gridy"));d.options.grid.hasGrid=false},hide:function(d){},show:function(d){},setObjectStrokeWidth:function(e,d){},setObjectStrokeColor:function(f,d,e){},setObjectFillColor:function(f,d,e){},setDraft:function(e){if(!e.visProp.draft){return}var d=e.board.options.elements.draft.color,f=e.board.options.elements.draft.opacity;if(e.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(e,d,f)}else{if(e.elementClass==JXG.OBJECT_CLASS_POINT){this.setObjectFillColor(e,d,f)}else{this.setObjectFillColor(e,"none",0)}this.setObjectStrokeColor(e,d,f);this.setObjectStrokeWidth(e,e.board.options.elements.draft.strokeWidth)}},removeDraft:function(d){if(d.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(d,d.visProp.fillColor,d.visProp.fillColorOpacity)}else{if(d.type==JXG.OBJECT_CLASS_POINT){this.setObjectFillColor(d,d.visProp.fillColor,d.visProp.fillColorOpacity)}this.setObjectStrokeColor(d,d.visProp.strokeColor,d.visProp.strokeColorOpacity);this.setObjectStrokeWidth(d,d.visProp.strokeWidth)}},highlight:function(e){var d;if(!e.visProp.draft){if(e.type==JXG.OBJECT_CLASS_POINT){this.setObjectStrokeColor(e,e.visProp.highlightStrokeColor,e.visProp.highlightStrokeOpacity);this.setObjectFillColor(e,e.visProp.highlightStrokeColor,e.visProp.highlightStrokeOpacity)}else{if(e.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(e,e.visProp.highlightFillColor,e.visProp.highlightFillOpacity);for(d=0;d=JXG.Math.eps){e=(h*g+u*s)/t;q=h*h+u*u-e*(h*g+u*s)}else{e=0;q=h*h+u*u}if(e<0){q=h*h+u*u}else{if(e>1){h=v[1]-w[1];u=v[2]-w[2];q=h*h+u*u}}if(q>r){r=q;p=l}}return[Math.sqrt(r),p]},RDP:function(k,h,g,e,f){var d=this.findSplit(k,h,g);if(d[0]>e){this.RDP(k,h,d[1],e,f);this.RDP(k,d[1],g,e,f)}else{f.push(k[g])}},RamenDouglasPeuker:function(j,e){var g=[],h,f,d;d=j.length;h=0;while(hh&&isNaN(j[f].scrCoords[1]+j[f].scrCoords[2])){f--}if(!(h>f||h==d)){g[0]=j[h];this.RDP(j,h,f,e,g)}return g},setShadow:function(d){},updatePathStringPoint:function(f,d,e){},evaluate:function(d){if(JXG.isFunction(d)){return d()}else{return d}},setBuffering:function(){}}};JXG.FileReader=new function(){this.parseFileContent=function(d,f,h){this.request=false;var g;try{this.request=new XMLHttpRequest();if(h.toLowerCase()=="raw"){this.request.overrideMimeType("text/plain; charset=iso-8859-1")}else{this.request.overrideMimeType("text/xml; charset=iso-8859-1")}}catch(g){try{this.request=new ActiveXObject("Msxml2.XMLHTTP")}catch(g){try{this.request=new ActiveXObject("Microsoft.XMLHTTP")}catch(g){this.request=false}}}if(!this.request){alert("AJAX not activated!");return}this.request.open("GET",d,true);if(h.toLowerCase()=="raw"){this.cbp=function(){var e=this.request;if(e.readyState==4){f(e.responseText)}}}else{this.cbp=function(){var e=this.request;if(e.readyState==4){var j="";if(typeof e.responseStream!="undefined"&&(e.responseText.slice(0,2)=="PK"||JXG.Util.asciiCharCodeAt(e.responseText.slice(0,1),0)==31)){j=JXG.Util.Base64.decode(BinFileReader(e))}else{j=e.responseText}this.parseString(j,f,h,false)}}}this.cb=JXG.bind(this.cbp,this);this.request.onreadystatechange=this.cb;try{this.request.send(null)}catch(g){throw new Error("JSXGraph: problems opening "+d+" !")}};this.cleanWhitespace=function(d){var e=d.firstChild;while(e!=null){if(e.nodeType==3&&!/\S/.test(e.nodeValue)){d.removeChild(e)}else{if(e.nodeType==1){this.cleanWhitespace(e)}}e=e.nextSibling}};this.stringToXMLTree=function(e){if(typeof DOMParser=="undefined"){DOMParser=function(){};DOMParser.prototype.parseFromString=function(h,j){if(typeof ActiveXObject!="undefined"){var g=new ActiveXObject("MSXML.DomDocument");g.loadXML(h);return g}}}var f=new DOMParser();var d=f.parseFromString(e,"text/xml");this.cleanWhitespace(d);return d};this.parseString=function(h,f,j,e){var d,g;if(j.toLowerCase()=="cdy"||j.toLowerCase()=="cinderella"){if(e){h=JXG.Util.Base64.decode(h)}h=JXG.CinderellaReader.readCinderella(h,f);f.xmlString=h;return}if(j.toLowerCase()=="graph"){h=JXG.GraphReader.readGraph(h,f,false);return}if(j.toLowerCase()=="digraph"){h=JXG.GraphReader.readGraph(h,f,true);return}if(j.toLowerCase()=="geonext"){h=JXG.GeonextReader.prepareString(h)}if(j.toLowerCase()=="geogebra"){e=h.slice(0,2)!=="PK";h=JXG.GeogebraReader.prepareString(h,e)}if(j.toLowerCase()=="intergeo"){if(e){h=JXG.Util.Base64.decode(h)}h=JXG.IntergeoReader.prepareString(h)}f.xmlString=h;d=this.stringToXMLTree(h);this.readElements(d,f,j)};this.readElements=function(d,e,f){if(f.toLowerCase()=="geonext"){e.suspendUpdate();if(d.getElementsByTagName("GEONEXT").length!=0){JXG.GeonextReader.readGeonext(d,e)}e.unsuspendUpdate()}else{if(d.getElementsByTagName("geogebra").length!=0){JXG.GeogebraReader.readGeogebra(d,e)}else{if(f.toLowerCase()=="intergeo"){JXG.IntergeoReader.readIntergeo(d,e)}}}}};if(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent)){document.write(' - - - - - - - - - - -
      -
      - -
      -
        -

        Cantilever-Harmonic Excitation

        -
      -
      -
      -
      -
      -
      -
      - -
      -
      -
      - -
      - - Cross Section - - m - m - m
      - - - - - -
      -
      -

      - - m2 - - - m4 - - - -
      - - kg/m3
      - - x 109 N/m2 -
      - - - -

      -
      -
      -

      - - Hz
      - - Hz
      - - Hz
      - - -

      -
      -
      -
      -
      -					 	
      -
      -

      -
      -
      -
      -
      -
      -
      -
      - -
      - -
      - -
      -
      - -
      - - diff --git a/build/SineSweepCantilever/content.html b/build/SineSweepCantilever/content.html deleted file mode 100755 index 1cdeb1c..0000000 --- a/build/SineSweepCantilever/content.html +++ /dev/null @@ -1,9218 +0,0 @@ - - -
      - -
      - - - -
      - -
      - -
      -
      -
      Sine Sweep of base excitation of cantilever
      - - - -
      - -
      -
      - - -
      - -
      - Aim -
      - -

      - -

      A. Beams and Cantilever

      -

      -      Beams are structural members that have smaller dimensions of cross sections compared to its length (its axis) and are subjected to loads perpendicular to its axis; i.e. they are subjected to transverse loads. The whole beam deforms in the plane containing the axis and the transverse loads. We say that the beam bends. The beams are usually supported at both ends and they are termed differently depending on the support conditions. -
            When one end of a beam is fixed, and the other free, it is called a Cantilever beam, or simply a Cantilever. When both end-supports re simple, the beam is called a Simply Supported Beam. If both ends of a beam are fixed, it is a Fixed-Fixed Beam or simply a Fixed Beam. -

      - - -

      B. Physical systems that can be modeled as cantilever:

      -

      -      The diving board on a swimming pool, the slab on a porch, wall mounted structures, overhanging booms of cranes, etc can be modeled as cantilever. These physical systems can be idealized with loss of some accuracy and generalization but ability and simplicity of analysis. The vibration characteristics of these systems can be very well understood by knowing the vibrations of its cantilever model. -      
      As explained in the general theory, the characteristics of natural vibration are extremely important in knowing the response of the systems to forced excitations. -

      -       In this experiment, we shall find out the natural frequencies of a cantilever from its response to harmonic support-excitation.

      - - -

      C. Natural Vibration of a Cantilever - Natural frequencies and mode shapes

      -

      -      A Cantilever is a continuous system-its mass and elasticity are distributed all over its volume. It can be considered to have infinite very small masses connected by infinite very small springs resist the banding of the Cantilevers. Hence there are infinite degrees of freedom and infinite natural frequencies. And also, corresponding to every natural frequency, it has a particular shape of vibration, called Mode Shape. The lowest natural frequency is called Fundamental natural frequency and corresponding mode, fundamental mode or simply the first mode. Here are animations for first three modes of vibration of a Cantilever. Click on the figures to see the modes. -

      - - - - - - - - - - - - - -
      -

      -
      -

      -
      -

      -
      -

      Mode - I

      -
      -

      Mode - II

      -
      -

      Mode - III

      -
      - - -

      -

      -      A cantilever of rectangular cross section bxd; Area of cross-section, A = bxd; and length L is shown in the figure. Cross-sectional dimensions are small compared to its length. -
      -
      - Let us consider its natural vibration in vertical plane, perpendicular to its length L. Let I be the second moment of the area of cross section about neutral axis perpendicular to the plane of vibration; -
      -Let E be the modulus of elasticity of the material from which the cantilever is made. For steel value E is taken as E = 210GPa (210x109 N/m2) and for Aluminum, it is 70 GPa -
      Let ρ be the density of the material; for steel, ρ = 7800 kg/m3; for Aluminum, ρ = kg/m3 -

      - -

      D. Equation of Motion

      -

      -      Once disturbed from its position of equilibrium and left to its own, the cantilever will vibrate naturally; it will perform natural vibration. From theory, we know that the vibration of a cantilever is governed by the equation - ; with the boundary conditions: - -at x = 0 (i.e. at fixed end): Deflection v(0,t) = 0 and Slope dv(0,t)/dx = 0, at all t -and at x = L (i.e. at free end), Bending moment and Shear force
      -The initial condition is v(x,0) = 0 -
                 As both, boundary conditions and initial conditions, are specified, the problem is said to be of mixed initial value and boundary value problem. -
                 For small amplitudes of vibration of the cantilever, the motion can be assumed to be harmonic and we can write this equation in terms of amplitude of vibration as a function of x alone. The equation is as follows: - or -
          There are infinite sets of V(x) and λ which together satisfy the above equation. Such problems are called Eigenvalue problems and the solutions are called eigenvalues λi, and eigenvectors V(x)i. -
           V(x) is function of x that shows shape of the cantilever (Amplitudes of vibration at different values of x) corresponding to the respective frequencies of natural vibration λi. The shape of cantilever vibrating with certain natural frequency is called mode shape of cantilever for that frequency. Three of them were shown in figures earlier. -

      - -

      E. Harmonic excitation, Resonance and Natural frequency

      -

      -    When the cantilever is subject to forced vibration, it will vibrate. This can be done by holding the cantilever in a fixture, firmly mounting the fixture on a table of vibration shaker, and vibrating the shaker harmonically up and down with a known frequency. If we gradually change the frequency of vibration of the table within a range, say from 20 Hz to 2000 Hz, and note the amplitude of vibration of the tip of cantilever, we can plot a graph of amplitude of vibration of the cantilever versus frequency of excitation. We know that when the frequency of excitation matches with the natural frequency, the amplitude of response is large. Thus the frequencies in the graph mentioned just now corresponding to high values of response must correspond to the natural frequencies of the cantilever in the selected range of excitation frequencies. Thus, we find first few natural frequencies of the cantilever under test by exciting the support harmonically and carrying out the “Sine-Sweep” -

      -


      -
      - - - -
      -
      - - -
      -
      - Theory -
      -

      -

       

      -

      Vibratory systems around us - - -

      Here are some examples of physical systems where the vibrations are prominent and can be observed easily. In musical instruments the vibrations are intentional. The parts of musical instruments are designed so that they generate sounds that are pleasant to listen. In many cases the vibrations are unwanted and we try to minimize them.

      -

       

      -

      1.   A chandelier hanging from ceiling oscillates to and fro following an initial disturbance; maybe due to a breeze of air.

      -

       

      -

      2.   The oscillations of the chandelier at cathedral of Pisa, Italy, were studied by the famous scientist Galileo Galilee.

      -

       

      -

      3.   A load attached at end of a wire-rope of a crane oscillates to and fro due to initial disturbance; maybe due to sudden stopping of carriage of the crane while revolving about the vertical axis.

      -

       

      -

      4.   The pendulum used in clock of olden days used to oscillate to and fro once every second. i.e. it had a period of oscillation of one second.

      -

       

      -

      5.   String of a guitar, when plucked and left to its own, vibrates and makes a musical sound. It comes to rest after a while; the vibrations die out. Similarly, the diaphragm of a table vibrates when hit and left to its own. It also comes to rest after some time. -

      - -

      -     All these are examples of vibratory systems that are set into vibration following an initial disturbance. All these systems have three components: mass, due to which the system possesses inertia; elasticity, due to which potential energy can be stored; and components that dissipate energy causing the vibratory motion to be damped which bring them to rest after some time.
      -      Vibration or vibratory systems are classified in number of ways. Some of the classifications are given below: -

      -

       

      -

       Free and forced vibration - A free vibration occurs due to initial displacement or velocity, or both, applied to the system only initially. There is no external force acting on the system when the system is vibrating. A forced vibration occurs when the system vibrates in response to external force applied continuously. When the force applied is periodic, i.e. it repeats itself after a fixed interval of time, the forced vibration is called periodic. If the periodic force and hence the resulting vibration varies sinusoidally with respect to time, the vibration is called harmonic. If the force is not periodic, the forced vibration is called aperiodic or random.

      - -

      -

       Damped and undamped vibration -
      -When the vibratory system has elements that offer resistance to motion, energy is continuously dissipated and the free vibrations of such systems come to halt after some time. This is called damped vibration and such systems are called damped systems. Forced vibration of a damped system continues as long as the force acts but some of the work done by the external force is lost in overcoming the resistance offered by the damping elements. Systems without damping elements are called undamped systems and their vibrations are called undamped vibrations. All systems in nature have some or the other damping element and their natural vibrations are damped. Hence they come to rest after some time following free vibrations. Nevertheless, we study the vibration of undamped systems because the concepts developed in studying them are useful in analyzing and understanding the phenomena occurring in vibration of damped as well as complicated systems. When the force of resistance offered by a damping element is proportional to velocity of mass of the system, it is termed as viscous damping and the damping element is called a viscous damper. If the force of resistance has a constant value, it is termed as Coulomb damping. Damping due to dry friction shows this kind of behavior. Coulomb damping can occur when the system has components rubbing over each other. There are other types of damping also which shall be discussed later.

      -

      - -

      -

      -

      - -

      -

      -

      -

      Degrees of freedom : The vibratory systems are classified as single-degree-of-freedom systems, Multi-degree-of-freedom-systems or continuous systems. The number of degrees of freedom corresponds to the number of independent co-ordinates required to completely describe the motion of the system. In fact, it is the sum of the possible ways each mass can move independently of other masses. The translation of a mass along the three axes, X, Y and Z, and the three rotations about each of these axes constitute possible ways of motion of a mass. Many times, many of these six motions of a mass are restricted and a mass can have one or two degrees of freedom, i.e. only translation or translation and rotation of a single mass about any one of the axes.
      -
      -Linear and Non-linear Vibrations : Vibration is said to be linear if the damping force is proportional to velocity, inertia force is proportional to mass, and restoring force is proportional to displacement. If any of this proportionality is not satisfied, the system is said to be non-linear.
      -
      - Solving engineering problems : Analytical methods are usually applied to models of actual systems. We carry out experiments on models if physical systems are not available for testing. While preparing such models, we exclude superfluous details of the system but include all essential and important features of the actual system. While doing so, we idealize and approximate important behaviour of the system without affecting much the accuracy in predicting the behaviour. The system model so developed provides ease of application of analytical and experimental techniques. Once a satisfactory model is developed, laws of Physics can be applied which give a set of mathematical equations relating the properties and variables of the system. Such a set of mathematical equations is called mathematical model of the system. Solving the set of equations (or a single mathematical equation) provides expression for the system variable in terms of location and time. We call this as ‘solution’ of the problem. As an illustration of the concepts described above, see the example given below.
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -

      Physical system

      -
      -

      These days we have number of towering buildings.  Many a times the residential part of such a building is supported on a tall concrete structure.  One of such buildings is the ‘Milad Tower’, situated in Tehran, Iran.  Its head consists of a large pod with 12 floors and below is a staircase and elevators to reach the area.

      -

      The oscillations of such tall buildings, in response to earthquake and wind, are important from design point of view.  And to study these oscillations, we must know the characteristics of its natural vibration. 

      -

      Analysis of such a physical system can be very much complicated.  To obtain first rough estimate of the natural frequency of vibration, the problem can be stated and the physical system can be modeled in a simple way as described below.

      -
      -

      Problem statement

      -
      -

      To find natural frequency of oscillation of the tower in the direction perpendicular to the vertical axis (i.e. natural frequency of transverse oscillation of the tower) and position of the head at any given time.

      -
      -

      Physical model of the system

      -
      -

      - - - - - - - -
      -
      -

      M

      -
      -
      -
      - - - - - - -
      -
      -

         

      -
      -
      -
      -

       

      -
      -

      The physical model for the system under consideration can be as shown in This is the simplest model.  Only the mass of the building at the top is considered and it is considered to be concentrated at one point.  The mass of the vertical pillar supporting the buiding is neglected and is considered to be a cantilever offering only elesticity.

      -

      Thus it becomes a single degree of freedom system with single mass and only one way of motion of the mass: translation in direction perpendicular to the vertical axis of the building.  Further we assume that the amplitude of this motion to be small.

      -

      The equivalent stiffness of the cantilever is given by

      -

      .  The symbols carry their usual meanings.

      -

       

      -
      -

      Mathematical model

      -
      -

      Using Newton’s second law of motion, the equation of motion of the mass is written as

      -

       

      -

      The first term is the inertia force which is equal to mass multiplied by acceleration and the second term is the spring force given by stiffness of the spring multiplied by its elongation or compression.

      -

      The differential equation is a mathematical model of the system.

      -

       

      -
      -

      General Solution

      -
      -

      The solution to the above differential equation is given by

      -

        

      -

      A and B are constants that depend the initial conditions, i.e. the displacement and velocity of the mass when we started measuring our time.

      -

      These are known as initial conditions.

      -

       is the natural frequency in radians per second and is given by

      -

      -
      -

      Particular solution obtained from the initial conditions

      -
      -

      Substituting the initial conditions in above expression, we can obtain the values of A and B.  Thus if X0 and V0 are the initial displacement and velocity, respectively, given to the mass, the above expression will yield values of A and B as  and  

      -

       

      -

      Now the expression for x becomes

      -

      -

      And we can obtain the value of x at any time t from this expression.

      -

      Thus we have obtained the expressions for natural frequency and position of the head at any given time ‘t and the problem stated by the problem statement is solved.

      -
      - -

       

      -
      -
      -
      - - -
      -
      - Simulator -
      -
      -
      -
      -
      - - -
      -
      - Procedure -
      -
      -

      -

      - -

       

      -

      (a) Experimental Set-up

      - - -       A physical model of a cantilever held in a fixture that rests on a table of a shaker is seen on the screen. The values of amplitude and frequency of vibration of the shaker table can be entered. The shaker is made to vibrate harmonically over a frequency range with suitable step size of frequency. It vibrates at the lowest frequency for some time, jumps to next frequency obtained through the step-size of frequency and vibrates at that frequency for some time and jumps to next frequency, and so on. It continues to do so till it reaches the highest frequency of the range provided. Thus a sine-sweep is carried out over the frequency range. As the cantilever alongwith the fixture is mounted on the shaker table, vibration of shaker table provides excitation to fixed end of the cantilever, i.e. support-excitation to the cantilever. An accelerometer is shown mounted at suitable place on the cantilever. Output of the accelerometer goes to vibration analyzer displaying displacement (twice integrated from acceleration) versus real time. The frequency of excitation, in Hz, amplitude of vibration of the point where the accelerometer is attached and its phase difference with respect to the excitation are displayed in the window. The whole assembly, cantilever, exciter, accelerometer can be seen vibrating. The frequency of excitation is swept through a suitable range and a plot of amplitude and phase difference of vibration of free end versus excitation-frequency can be seen plotted. Observation of the plot are made and analyzed. Results are tallied with relevant numerical calculations. - - -

      (b) Procedure:

      - - -1.Enter the dimensions of the cantilever in metre – The length, and width and thickness of cross section of the cantilever. -
      2.Press the button ’calculate’ which will calculate the area and moment of inertia of the cross section of the cantilever. -
      3.Select the material of the cantilever. The density and Young’s Modulus of the material will be displayed immediately. -
      4.Press the button ‘Vibrate’. The shaker table will start vibrating alongwith the fixture and the cantilever. -
      5.An accelerometer is shown attached to the cantilever at the free-end of the cantilever. This is connected to vibration analyzer. Thus the magnitude of vibration of the free end can be measured. A plot of magnitude of vibration of the free end of the cantilever (i.e. the response) and the frequency of vibration of shaker table (i.e. the excitation) is obtained. Observations of the plot are made and analyzed. - -
      - - -

      (c) Observation and analysis:

      - - -1.Enter the dimensions of the cantilever in metre – The length, and width and thickness of cross section of the cantilever. -Observe the plotx v/s ω. Note that it has number of peaks. These peaks correspond to resonances, i.e. when the frequency of excitation matches with one of the natural frequencies of the cantilever. Thus the excitation frequencies corresponding to the peaks are natural frequencies of vibration of the cantilever. The lowest one is the fundamental frequency. - - -

      (d) Do This

      - - -Compare the values of frequencies of resonance with those obtained from analytical formulae from books. Ponder on differences in the values, if any. Remember that formulae are derived from idealization of actual systems. - -

       

      -
      - - - - - -
      -
      - - -
      -
      - Review Questions -
      -

      - - - -

      -

      1.    How is moment of inertia of a rod of uniform section can be found?

      -

       

      -

      2.    Why is it important to find moment of inertia of a body of irregular shape (e.g. an oscillating link of irregular shape used in a mechanism of a machine)?

      -

       

      -

      3.    Write the formula that relates period of oscillation of a compound pendulum and its moment of inertia and dimensions.

      -

       

      -

      4.    Why do we use a triangular peg resembling a knife-edge as support for suspension of the connecting rod rather than an object of any other shape? -- To minimize friction and to ensure purely oscillating motion

      -

       

      -

      5.   List three sources of errors that can occur during conduct of the real experiment (in real laboratory situation).

      - -

      -

       

      -

      - -

      - - - - - - - -
      -
      - -

      -

       

      -

      - - - -
      -
      - -
      -
      -
      - diff --git a/build/SineSweepCantilever/css/CL.css b/build/SineSweepCantilever/css/CL.css deleted file mode 100755 index 36b54bc..0000000 --- a/build/SineSweepCantilever/css/CL.css +++ /dev/null @@ -1,211 +0,0 @@ -*{ - margin:0; - padding:0; -} -#tabs{ - height: 700px; - margin-bottom: 0; - margin-left: auto; - margin-right: auto; - width:1335px; -} -#tabs-1{ - overflow: hidden; -} -#fieldset1 { - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - margin-bottom: 1px; - padding-bottom: 2px; - border:none; -} -#fieldset2 { - padding-bottom: 2px; - border: none; -} -#fieldset3 { - padding-bottom: 2px; - border: none; -} -#fieldset1 legend{ - margin-bottom: 0px; - margin-left: 0px; - text-align:center; - text-shadow: 0 1px 1px #C0D576; -} -#fieldset1 p { - -} - -#fieldset1 label{ - margin-left: 33px; - font: bold 12px Georgia, "Times New Roman", Times, serif; - outline: none; - padding: 5px; -} -#fieldset2 p { - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - padding: 0px 2px; - margin-bottom: 1px; -} -#fieldset2 label{ - margin-bottom: 3px; - margin-left: 17px; - margin-right: 5px; - font: bold 12px Georgia, "Times New Roman", Times, serif; - outline: none; - padding: 5px; -} -#fieldset2 input{ - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px 3px 3px 3px; - font: normal 15px Georgia,"Times New Roman",Times,serif; - margin-bottom: 4px; - margin-left: 14px; - margin-right: -1px; - outline: medium none; - padding: 5px; - width: 110px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} -#fieldset1 button{ - margin-left: 122px; -} -#fieldset2 select{ - width: 150px; - font: italic 15px Georgia,"Times New Roman",Times,serif; - margin-bottom: 4px; - border: medium none; - border-radius: 3px 3px 3px 3px; - margin-left: -7px; - padding: 4px; - width: 120px; - background: none repeat scroll 0 0 #FFFFFF; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} -#fieldset1 input{ - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px 3px 3px 3px; - font: italic 15px Georgia,"Times New Roman",Times,serif; - margin-bottom: 4px; - margin-left: 24px; - margin-right: 1px; - outline: medium none; - padding: 5px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} -#fieldset3 input{ - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px 3px 3px 3px; - font: italic 15px Georgia,"Times New Roman",Times,serif; - margin: 7px 5px 6px 9px; - outline: medium none; - padding: 5px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} -#fieldset3 label{ - margin-left: 17px; - margin-right: 14px; - font: bold 14px Georgia, "Times New Roman", Times, serif; - outline: none; - padding: 5px; -} -#fieldset3 p { - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - padding: 0px 2px; - margin-bottom: 1px; -} -#diagram{ - width:900px; - height:550px; -} -#controlpane{ - margin-left: 900px; - margin-top: -535px; - position: absolute; - width: 435px; -} -#ctrLab{ - position:absolute; - left:6px; - top:-12px; - color:blue; -} -#analyzerUp{ - height: 200px; - top: 194px; - width: 333px; - left: 546px; - overflow: auto; - position: absolute; -} -#analyzerDown{ - height: 216px; - left: 545px; - overflow: auto; - position: absolute; - top: 395px; - width: 333px; - margin-top: 8px; -} -#textArea{ - margin-left: 10px; - margin-top: -1207px; -} -#Showf{ - float: right; - margin-right: 29px; - margin-top: -76px; -} -#showList{ - background-color: #65E4FF; - border: 6px outset royalblue; - height: 172px; - left: 380px; - position: absolute; - top: 200px; - width: 267px; -} -#naturalButton{ - float: right; - margin-right: 4px; - margin-top: -115px; - } - - \ No newline at end of file diff --git a/build/SineSweepCantilever/css/gstyle_buttons.css b/build/SineSweepCantilever/css/gstyle_buttons.css deleted file mode 100755 index a791a12..0000000 --- a/build/SineSweepCantilever/css/gstyle_buttons.css +++ /dev/null @@ -1,187 +0,0 @@ - -/*------------------------------------*\ - $WRAPPER -\*------------------------------------*/ -.buttons {/* Style as you wish (toolbar) */ -} -/* The Magnificent CLEARFIX */ -.buttons:before, .buttons:after { - content: "\0020"; - display: block; - height: 0; - visibility: hidden; -} -.buttons:after { - clear: both; -} -.buttons { - zoom: 1; -} -/* ------------------------ */ - - -/*------------------------------------*\ - $BUTTON -\*------------------------------------*/ -button { - text-decoration: none; - text-shadow: 0 1px 0 #fff; - font: bold 11px Helvetica, Arial, sans-serif; - color: #444; - line-height: 17px; - height: 18px; - display: inline-block; - padding: 5px 6px 4px 6px; - background: #F3F3F3; - border: solid 1px #D9D9D9; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -webkit-transition: border-color .20s; - -moz-transition: border-color .20s; - -o-transition: border-color .20s; - transition: border-color .20s; - height: 29px !important; - cursor: pointer; -} -button:hover { - background: #F4F4F4; - border-color: #C0C0C0; - color: #333; -} -button:active { - border-color: #4D90FE; - color: #4D90FE; - -moz-box-shadow:inset 0 0 10px #D4D4D4; - -webkit-box-shadow:inset 0 0 10px #D4D4D4; - box-shadow:inset 0 0 10px #D4D4D4; -} -button.bluebtn { - border: 1px solid #3079ED !important; - background: #4B8DF8; - background: -webkit-linear-gradient(top, #4C8FFD, #4787ED); - background: -moz-linear-gradient(top, #4C8FFD, #4787ED); - background: -ms-linear-gradient(top, #4C8FFD, #4787ED); - background: -o-linear-gradient(top, #4C8FFD, #4787ED); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.bluebtn:hover { - border: 1px solid #2F5BB7 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #4D90FE, #357AE8); - background: -moz-linear-gradient(top, #4D90FE, #357AE8); - background: -ms-linear-gradient(top, #4D90FE, #357AE8); - background: -o-linear-gradient(top, #4D90FE, #357AE8); -} -button.greenbtn { - border: 1px solid #29691D !important; - background: #3A8E00; - background: -webkit-linear-gradient(top, #3C9300, #398A00); - background: -moz-linear-gradient(top, #3C9300, #398A00); - background: -ms-linear-gradient(top, #3C9300, #398A00); - background: -o-linear-gradient(top, #3C9300, #398A00); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.greenbtn:hover { - border: 1px solid #2D6200 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #3C9300, #368200); - background: -moz-linear-gradient(top, #3C9300, #368200); - background: -ms-linear-gradient(top, #3C9300, #368200); - background: -o-linear-gradient(top, #3C9300, #368200); -} -button.redbtn { - border: 1px solid #D14836 !important; - background: #D64937; - background: -webkit-linear-gradient(top, #DC4A38, #D14836); - background: -moz-linear-gradient(top, #DC4A38, #D14836); - background: -ms-linear-gradient(top, #DC4A38, #D14836); - background: -o-linear-gradient(top, #DC4A38, #D14836); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.redbtn:hover { - border: 1px solid #B0281A !important; - background: #D14130; - background: -webkit-linear-gradient(top, #DC4A38, #C53727); - background: -moz-linear-gradient(top, #DC4A38, #C53727); - background: -ms-linear-gradient(top, #DC4A38, #C53727); - background: -o-linear-gradient(top, #DC4A38, #C53727); -} -button.action:hover { - -moz-box-shadow: 0 1px 0px #DDD; - -webkit-box-shadow: 0 1px 0px #DDD; - box-shadow:iset 0 1px 0px #DDD; -} -button.action:active { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - border-color: #C6C6C6 !important; -} -button.bluebtn:active { - border-color: #2F5BB7 !important; -} -button.greenbtn:active { - border-color: #2D6200 !important; -} -button.redbtn:active { - border-color: #B0281A !important; -} -/*------------------------------------*\ - $BUTTON LABEL -\*------------------------------------*/ - button span.label { - display: inline-block; - float: left; - line-height: 17px; - height: 18px; - padding: 0 1px; - overflow: hidden; - color: #444; - -webkit-transition: color .20s; - -moz-transition: color .20s; - -o-transition: color .20s; - transition: color .20s; -} -button span.label { - line-height: 15px !important; -} -button:hover .label.bluebtn { - color: #7090C8; -} -button:hover .label.greenbtn { - color: #42B449; -} -button:hover .label.yellow { - color: #F7CB38; -} -button.bluebtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2F5BB7 !important; -} -button.greenbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2D6200 !important; -} -button.redbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #B0281A !important; -} -button.action .label { - padding: 0 17px !important; -} -button.action:active .label { - color: #333 !important; -} -button.bluebtn:active .label, button.greenbtn:active .label, button.redbtn:active .label { - color: #FFF !important; -} diff --git a/build/SineSweepCantilever/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/build/SineSweepCantilever/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png deleted file mode 100755 index 954e22d..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-bg_diagonals-thick_20_666666_40x40.png b/build/SineSweepCantilever/css/images/ui-bg_diagonals-thick_20_666666_40x40.png deleted file mode 100755 index 64ece57..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-bg_diagonals-thick_20_666666_40x40.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-bg_flat_10_000000_40x100.png b/build/SineSweepCantilever/css/images/ui-bg_flat_10_000000_40x100.png deleted file mode 100755 index abdc010..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-bg_flat_10_000000_40x100.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-bg_glass_100_f6f6f6_1x400.png b/build/SineSweepCantilever/css/images/ui-bg_glass_100_f6f6f6_1x400.png deleted file mode 100755 index 9b383f4..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-bg_glass_100_f6f6f6_1x400.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-bg_glass_100_fdf5ce_1x400.png b/build/SineSweepCantilever/css/images/ui-bg_glass_100_fdf5ce_1x400.png deleted file mode 100755 index a23baad..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-bg_glass_100_fdf5ce_1x400.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-bg_glass_65_ffffff_1x400.png b/build/SineSweepCantilever/css/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100755 index 42ccba2..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/build/SineSweepCantilever/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png deleted file mode 100755 index 39d5824..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/build/SineSweepCantilever/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png deleted file mode 100755 index f127367..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/build/SineSweepCantilever/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png deleted file mode 100755 index 359397a..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-icons_222222_256x240.png b/build/SineSweepCantilever/css/images/ui-icons_222222_256x240.png deleted file mode 100755 index b273ff1..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-icons_222222_256x240.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-icons_228ef1_256x240.png b/build/SineSweepCantilever/css/images/ui-icons_228ef1_256x240.png deleted file mode 100755 index a641a37..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-icons_228ef1_256x240.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-icons_ef8c08_256x240.png b/build/SineSweepCantilever/css/images/ui-icons_ef8c08_256x240.png deleted file mode 100755 index 85e63e9..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-icons_ef8c08_256x240.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-icons_ffd27a_256x240.png b/build/SineSweepCantilever/css/images/ui-icons_ffd27a_256x240.png deleted file mode 100755 index e117eff..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-icons_ffd27a_256x240.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/images/ui-icons_ffffff_256x240.png b/build/SineSweepCantilever/css/images/ui-icons_ffffff_256x240.png deleted file mode 100755 index 42f8f99..0000000 Binary files a/build/SineSweepCantilever/css/images/ui-icons_ffffff_256x240.png and /dev/null differ diff --git a/build/SineSweepCantilever/css/jquery-ui-1.8.11.custom.css b/build/SineSweepCantilever/css/jquery-ui-1.8.11.custom.css deleted file mode 100755 index 863fea4..0000000 --- a/build/SineSweepCantilever/css/jquery-ui-1.8.11.custom.css +++ /dev/null @@ -1,312 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family:Calibri, Calibri-serif; font-size:16px; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family:Calibri, Calibri-serif; font-size: 16px; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* - * jQuery UI Tabs 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/build/SineSweepCantilever/css/jsxgraph.css b/build/SineSweepCantilever/css/jsxgraph.css deleted file mode 100755 index 7710b4d..0000000 --- a/build/SineSweepCantilever/css/jsxgraph.css +++ /dev/null @@ -1,39 +0,0 @@ -/* -*/ -.jxgbox { - position:relative; /* for IE 7 */ - overflow:hidden; - background-color:#ffffff; - border-style:solid; - border-width:1px; - border-color:#356AA0; - -moz-border-radius:10px; - -webkit-border-radius:10px; - /* - -moz-box-shadow:black 2px 2px 2px -2px, #151A10 4px 4px; - -webkit-box-shadow:4px 4px 3px #151A10; - */ -} - -.JXGtext { - background-color:transparent; - font-family: Arial, Helvetica, Geneva; - padding:0px; - margin:0px; - /*line-height:100%;*/ /* This has to be commented out. Otherwise subscripts are not visible in IE */ - /*border-style:dotted;*/ - /*border-width:0.4px;*/ -} - -.navbar { - color: #aaaaaa; - background-color: #f5f5f5; - padding: 2px; - position: absolute; - font-size: 10px; - cursor: pointer; - z-index: 100; - right: 5px; - bottom: 5px; -} - diff --git a/build/SineSweepCantilever/default.html b/build/SineSweepCantilever/default.html deleted file mode 100755 index f770b6e..0000000 --- a/build/SineSweepCantilever/default.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - -
      - - - -
      - - - - - - - -
      - - - -
      - - - -
      - - Simple Pendulum - -
      - - - - - -
      - - -
      - -
      - - -
      - - -
      - Introduction -
      - - -
      -

      - In this module, basic concepts of simple oscillator - are explained. Initially, an example of simple - pendulum is taken and the basic terminology i.e., - what is initial displacement, - initial velocity,natural frequency - and time period are explained. - Each of these terms is illustrated by giving an - example, where user can enter his value and observe - the behavior of structure for his input. -

      - -

      - Simple harmonic oscillator consists of a - mass (m) hanging from a string of - length (l), fixed at a pivot point P. - When the mass is displaced from its mean - position by giving some initial displacement - (angle), oscillator starts swinging back and fourth - with periodic motion. -

      - - pendulum -
      - - -
      - - -
      - -
      - - -
      - - -
      - Theory -
      - - - -
      -

      - There are two solutions to \(ax^2 + bx + c = 0\) and - they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - By applying Newton's second law for - rotational systems, the equation of motion for the - pendulum may be obtained. -

      - -

      - Where, τ = Torque ; I = - Moment of Inertia; α = - Angular Velocity. m is mass of the - oscillator, l is the length of the oscillator and theta is initial - displacement. The above equation can be rearranged as -

      - -

      - If the amplitude of - angular displacement is - small then we can use the approximation - (sinθ ≈ θ). - By considering the above approximation, the equation - of motion reduces to : -

      - -

      - The solution for equation of simple harmonic oscillator is -

      - -

      - where, θ(t) is the history of oscillation, - θ0 is the initial angle, - &omega=(g/l)1/2 is the - natural frequency of - the motion. -

      -
      -
      - - -
      - -
      - - -
      - -
      - Objective -
      - -
      -

      - Objective of simple harmonic oscillator experiment - is to understand the concept of time period - (natural frequency) in harmonic - oscillations . -

      - -
      - -
      - - -
      - -
      - - -
      - -
      - Experiment -
      - -
      -

      - -

      -
      - -
      - -
      - -
      - - -
      - -
      - Manual -
      - -
      -

      - Start the experiment with the default values of - length, mass and intial displacement (in angle). - Pause the experiment after few cycles and note - the observation. -

      - -

      Observation 1:

      -
        - -
      1. - Find the time period of the pendulum by noting the - time interval of any one complete cycle from the - response graph. -
      2. - -
      3. - You may note that this time period value is same - for any complete cycle. - Read More -
      4. - -
      - -
      - -
      - -
      - -
      - - -
      - -
      - Quizzes -
      - -
      - -

      - - Q1. - Time taken for one complete oscillation - is called Time Period of the oscillator.
      - - True
      - - False

      - - Q2. - Time period of the oscillator is constant for - given values of mass, length and initial - conditions.
      - - True
      - - False

      - - Q3. - Value of Time period depends on initial - conditions.
      - - True
      - - False

      - - Q4. - Value of time period depends on mass.
      - - True
      - - False

      - - Q5. - Value of time period depends on length of the - oscillator.
      - - True
      - - False

      - -

      - -
      - -
      - -
      - -
      - - -
      - -
      - Procedure -
      - -
      -

      - Procedure for the experiment is as follows -

      -
      - -
      - - -
      - -
      - - -
      - -
      - Further Readings -
      - -
      - -
      - -
      - -
      - - - - - - - -
      - -
      - -
      - - - -
      - -
      - -
      - - - diff --git a/build/SineSweepCantilever/images/Button-Close-icon.jpg b/build/SineSweepCantilever/images/Button-Close-icon.jpg deleted file mode 100755 index 79d0c26..0000000 Binary files a/build/SineSweepCantilever/images/Button-Close-icon.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/FRF Magnitude.jpg b/build/SineSweepCantilever/images/FRF Magnitude.jpg deleted file mode 100755 index dd5acb5..0000000 Binary files a/build/SineSweepCantilever/images/FRF Magnitude.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/FRF Phase.jpg b/build/SineSweepCantilever/images/FRF Phase.jpg deleted file mode 100755 index 01c9018..0000000 Binary files a/build/SineSweepCantilever/images/FRF Phase.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Hit at node1.jpg b/build/SineSweepCantilever/images/Hit at node1.jpg deleted file mode 100755 index 7905c37..0000000 Binary files a/build/SineSweepCantilever/images/Hit at node1.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Hit at node2.jpg b/build/SineSweepCantilever/images/Hit at node2.jpg deleted file mode 100755 index d9f07a3..0000000 Binary files a/build/SineSweepCantilever/images/Hit at node2.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Hit at node3.jpg b/build/SineSweepCantilever/images/Hit at node3.jpg deleted file mode 100755 index 8d528b2..0000000 Binary files a/build/SineSweepCantilever/images/Hit at node3.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Hit at node4.jpg b/build/SineSweepCantilever/images/Hit at node4.jpg deleted file mode 100755 index cc03f0e..0000000 Binary files a/build/SineSweepCantilever/images/Hit at node4.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Hit at node5.jpg b/build/SineSweepCantilever/images/Hit at node5.jpg deleted file mode 100755 index 662b788..0000000 Binary files a/build/SineSweepCantilever/images/Hit at node5.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Hit at node6.jpg b/build/SineSweepCantilever/images/Hit at node6.jpg deleted file mode 100755 index 005771c..0000000 Binary files a/build/SineSweepCantilever/images/Hit at node6.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Hit at node7.jpg b/build/SineSweepCantilever/images/Hit at node7.jpg deleted file mode 100755 index 73c46dd..0000000 Binary files a/build/SineSweepCantilever/images/Hit at node7.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Node1.jpg b/build/SineSweepCantilever/images/Node1.jpg deleted file mode 100755 index 16a4b5c..0000000 Binary files a/build/SineSweepCantilever/images/Node1.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Node2.jpg b/build/SineSweepCantilever/images/Node2.jpg deleted file mode 100755 index c2ca77c..0000000 Binary files a/build/SineSweepCantilever/images/Node2.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Node3.jpg b/build/SineSweepCantilever/images/Node3.jpg deleted file mode 100755 index 70371fd..0000000 Binary files a/build/SineSweepCantilever/images/Node3.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Node4.jpg b/build/SineSweepCantilever/images/Node4.jpg deleted file mode 100755 index c058a6d..0000000 Binary files a/build/SineSweepCantilever/images/Node4.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Node5.jpg b/build/SineSweepCantilever/images/Node5.jpg deleted file mode 100755 index 21aec6b..0000000 Binary files a/build/SineSweepCantilever/images/Node5.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Node6.jpg b/build/SineSweepCantilever/images/Node6.jpg deleted file mode 100755 index e3d3fe4..0000000 Binary files a/build/SineSweepCantilever/images/Node6.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Node7.jpg b/build/SineSweepCantilever/images/Node7.jpg deleted file mode 100755 index a07376d..0000000 Binary files a/build/SineSweepCantilever/images/Node7.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/Thumbs.db b/build/SineSweepCantilever/images/Thumbs.db deleted file mode 100755 index 2bad388..0000000 Binary files a/build/SineSweepCantilever/images/Thumbs.db and /dev/null differ diff --git a/build/SineSweepCantilever/images/close.jpg b/build/SineSweepCantilever/images/close.jpg deleted file mode 100755 index 963b72d..0000000 Binary files a/build/SineSweepCantilever/images/close.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/close_button-icon.gif b/build/SineSweepCantilever/images/close_button-icon.gif deleted file mode 100755 index eb7e4f7..0000000 Binary files a/build/SineSweepCantilever/images/close_button-icon.gif and /dev/null differ diff --git a/build/SineSweepCantilever/images/green-close-button-hi.gif b/build/SineSweepCantilever/images/green-close-button-hi.gif deleted file mode 100755 index 588e90a..0000000 Binary files a/build/SineSweepCantilever/images/green-close-button-hi.gif and /dev/null differ diff --git a/build/SineSweepCantilever/images/lowerImg.jpg b/build/SineSweepCantilever/images/lowerImg.jpg deleted file mode 100755 index ef9bcac..0000000 Binary files a/build/SineSweepCantilever/images/lowerImg.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/images/upperImg.jpg b/build/SineSweepCantilever/images/upperImg.jpg deleted file mode 100755 index dd1575d..0000000 Binary files a/build/SineSweepCantilever/images/upperImg.jpg and /dev/null differ diff --git a/build/SineSweepCantilever/index.html b/build/SineSweepCantilever/index.html deleted file mode 100755 index 294c518..0000000 --- a/build/SineSweepCantilever/index.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      - - - - - - - - - - - - diff --git a/build/SineSweepCantilever/js/jquery-1.5.1.min.js b/build/SineSweepCantilever/js/jquery-1.5.1.min.js deleted file mode 100755 index 6437874..0000000 --- a/build/SineSweepCantilever/js/jquery-1.5.1.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * jQuery JavaScript Library v1.5.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: Wed Feb 23 13:55:29 2011 -0500 - */ -(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="
      a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
      ",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
      t
      ";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div
      ","
      "]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
      ").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
      ";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file diff --git a/build/SineSweepCantilever/js/jquery-ui-1.8.11.custom.min.js b/build/SineSweepCantilever/js/jquery-ui-1.8.11.custom.min.js deleted file mode 100755 index 2615584..0000000 --- a/build/SineSweepCantilever/js/jquery-ui-1.8.11.custom.min.js +++ /dev/null @@ -1,68 +0,0 @@ -/*! - * jQuery UI 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.11",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, -NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, -"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); -if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, -"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, -d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); -c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a
      ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
    • #{label}
    • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.11"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k. -*/ - var JXG={};(function(){var d,e;JXG.countDrawings=0;JXG.countTime=0;JXG.require=function(f){};JXG.rendererFiles=[];JXG.rendererFiles.svg="SVGRenderer";JXG.rendererFiles.vml="VMLRenderer";JXG.rendererFiles.canvas="CanvasRenderer";JXG.baseFiles=null;JXG.requirePath="";for(d=0;d0?h[0].length:0,w=h.length,v=this.matrix(q,p),u,t,x,r;for(u=0;u0?r[0].length:0;l=this.matrix(q,h);for(p=0;pz){z=d.abs(m[v][u]);h=v}}if(z<=e.Math.eps){return false}if(h>u){for(t=0;tm||j<0){return NaN}j=d.floor(j);m=d.floor(m);if(j===0||j===m){return 1}h=1;for(l=0;l0){return d.exp(h*d.log(d.abs(j)))}else{return NaN}}},squampow:function(k,j){var h;if(d.floor(j)===j){h=1;if(j<0){k=1/k;j*=-1}while(j!=0){if(j&1){h*=k}j>>=1;k*=k}return h}else{return this.pow(k,j)}},normalize:function(k){var h=2*k[3],l=k[4]/(h),m,j;k[5]=l;k[6]=-k[1]/h;k[7]=-k[2]/h;if(l===Infinity||isNaN(l)){m=d.sqrt(k[1]*k[1]+k[2]*k[2]);k[0]/=m;k[1]/=m;k[2]/=m;k[3]=0;k[4]=1}else{if(d.abs(l)>=1){k[0]=(k[6]*k[6]+k[7]*k[7]-l*l)/(2*l);k[1]=-k[6]/l;k[2]=-k[7]/l;k[3]=1/(2*l);k[4]=1}else{j=(l<=0)?(-1):(1);k[0]=j*(k[6]*k[6]+k[7]*k[7]-l*l)*0.5;k[1]=-j*k[6];k[2]=-j*k[7];k[3]=j/2;k[4]=j*l}}return k}}})(JXG,Math);JXG.Math.Numerics=(function(e,d){var f={rk4:{s:4,A:[[0,0,0,0],[0.5,0,0,0],[0,0.5,0,0],[0,0,1,0]],b:[1/6,1/3,1/3,1/6],c:[0,0.5,0.5,1]},heun:{s:2,A:[[0,0],[1,0]],b:[0.5,0.5],c:[0,1]},euler:{s:1,A:[[0]],b:[1],c:[0]}};return{Gauss:function(g,s){var u=e.Math.eps,h=g.length>0?g[0].length:0,q,t,r,p,m,l=function(v,n){var k=this[v];this[v]=this[n];this[n]=k};if((h!==s.length)||(h!==g.length)){throw new Error("JXG.Math.Numerics.Gauss: Dimensions don't match. A must be a square matrix and b must be of the same length as A.")}q=new Array(h);t=s.slice(0,h);for(r=0;rp;r--){if(d.abs(q[r][p])>u){if(d.abs(q[p][p])0?r[0].length:0;for(p=g-1;p>=0;p--){for(l=s-1;l>p;l--){h[p]-=r[p][l]*h[l]}h[p]/=r[p][p]}return h},gaussBareiss:function(v){var l,u,y,q,m,g,h,r,w,x=e.Math.eps;h=v.length;if(h<=0){return 0}if(v[0].length=x){break}}if(q==h){return 0}for(m=l;mr){r=g}v+=g;if(g>=B){g=d.atan2(2*h[s][q],h[s][s]-h[q][q])*0.5;t=d.sin(g);y=d.cos(g);for(p=0;pB&&u<2000);return[h,m]},NewtonCotes:function(g,k,h){var l=0,q=h&&typeof h.number_of_nodes==="number"?h.number_of_nodes:28,n={trapez:true,simpson:true,milne:true},r=h&&h.integration_type&&n.hasOwnProperty(h.integration_type)&&n[h.integration_type]?h.integration_type:"milne",p=(g[1]-g[0])/q,m,j,s;switch(r){case"trapez":l=(k(g[0])+k(g[1]))*0.5;m=g[0];for(j=0;j0){throw new Error("JSXGraph: INT_SIMPSON requires config.number_of_nodes dividable by 2.")}s=q/2;l=k(g[0])+k(g[1]);m=g[0];for(j=0;j0){throw new Error("JSXGraph: Error in INT_MILNE: config.number_of_nodes must be a multiple of 4")}s=q*0.25;l=7*(k(g[0])+k(g[1]));m=g[0];for(j=0;jm){q=this.D(p,j)(g);l+=2;if(d.abs(q)>m){g-=n/q}else{g+=(d.random()*0.2-1)}n=p.apply(j,[g]);l++;k++}return g},root:function(j,g,h){return this.fzero(j,g,h)},Neville:function(l){var h=[],g=function(m){return function(x,n){var q,w,y,z=e.Math.binomial,v=l.length,p=v-1,r=0,u=0;if(!n){y=1;for(q=0;q=0;m--){u[m]=(q[m]-(v[m+1]*u[m+1]))/p[m]}for(m=g-3;m>=0;m--){u[m+1]=u[m]}u[0]=0;u[g-1]=0;return u},splineEval:function(h,z,v,B){var k=d.min(z.length,v.length),p=1,m=false,A=[],r,q,w,u,t,s,g;if(e.isArray(h)){p=h.length;m=true}else{h=[h]}for(r=0;rz[k-1])){return NaN}for(q=1;q=0;k--){l=l.concat(["(",g[k].toPrecision(j),")"]);if(k>1){l=l.concat(["*",h,"",k,"<","/sup> + "])}else{if(k===1){l=l.concat(["*",h," + "])}}}return l.join("")},lagrangePolynomial:function(j){var g=[],h=function(w,l){var p,m,t,v,y,q=0,r=0,u,n;t=j.length;if(!l){for(p=0;p0&&e.isPoint(q[0])){j=1}else{throw new Error("JSXGraph: Can't create regressionPolynomial. Wrong parameters.")}}r=function(G,t){var w,v,D,A,F,u,E,H,C,z=q.length;C=d.floor(h());if(!t){if(j===1){n=[];m=[];for(w=0;w=0;w--){H=(H*G+g[w])}return H};r.getTerm=function(){return k};return r},bezier:function(j){var g,h=function(k){return function(m,l){var q=d.floor(m)*3,p=m%1,n=1-p;if(!l){g=d.floor(j.length/3)}if(m<0){return j[0][k]()}if(m>=g){return j[j.length-1][k]()}if(isNaN(m)){return NaN}return n*n*(n*j[q][k]()+3*p*j[q+1][k]())+(3*n*j[q+2][k]()+p*j[q+3][k]())*p*p}};return[h("X"),h("Y"),0,function(){return d.floor(j.length/3)}]},bspline:function(k,g){var l,n=[],m=function(s,p){var q,r=[];for(q=0;q=A){w=0}else{w=v[r+1]}y=B[r+u-1]-B[r];if(y==0){v[r]=0}else{v[r]=(z-B[r])/y*x}y=B[r+u]-B[r+1];if(y!=0){v[r]+=(B[r+u]-z)/y*w}}}return v},h=function(p){return function(w,r){var q=k.length,A,v,x,z=q-1,u=g;if(z<=0){return NaN}if(z+2<=u){u=z+1}if(w<=0){return k[0][p]()}if(w>=z-u+2){return k[z][p]()}l=m(z,u);x=d.floor(w)+u-1;n=j(w,l,z,u,x);A=0;for(v=x-u+1;v<=x;v++){if(v=0){A+=k[v][p]()*n[v]}}return A}};return[h("X"),h("Y"),0,function(){return k.length-1}]},D:function(k,l){var j=0.00001,g=1/(j*2);if(arguments.length==1||(arguments.length>1&&!e.exists(arguments[1]))){return function(h,m){return(k(h+j,m)-k(h-j,m))*g}}else{return function(h,m){return(k.apply(l,[h+j,m])-k.apply(l,[h-j,m]))*g}}},riemann:function(s,m,t,k,p){var l=[],A=[],r,q=0,z,w=k,u,h,v,g;m=d.floor(m);l[q]=w;A[q]=0;if(m>0){z=(p-k)/m;g=z*0.01;for(r=0;ru){u=v}}}}}}q++;l[q]=w;A[q]=u;q++;w+=z;if(t==="trapezodial"){u=s(w)}l[q]=w;A[q]=u;q++;l[q]=w;A[q]=0}}return[l,A]},riemannsum:function(p,k,r,j,l){var q=0,m,v,u=j,s,h,t,g;k=d.floor(k);if(k>0){v=(l-j)/k;g=v*0.01;for(m=0;ms){s=t}}}}}}}q+=v*s;u+=v}}return q},rungeKutta:function(g,H,p,m,G){var q=[],n=[],F=(p[1]-p[0])/m,v=p[0],J,E,D,B,A,C=H.length,w,u=[],z=0;if(e.isString(g)){g=f[g]||f.euler}w=g.s;for(J=0;J0){if(e.isArray(H)){return this.fminbr(G,[K,J],M)}else{return this.Newton(G,K,M)}}I=K;w=A;while(y=F&&d.abs(A)>d.abs(x)){t=I-J;if(K==I){l=x/A;v=t*l;s=1-l}else{s=A/w;l=x/w;k=x/A;v=k*(t*s*(s-l)-(J-K)*(l-1));s=(s-1)*(l-1)*(k-1)}if(v>0){s=-s}else{v=-v}if(v<(0.75*t*s-d.abs(F*s)*0.5)&&v0){m=F}else{m=-F}}K=J;A=x;J+=m;x=G.apply(M,[J]);B++;if((x>0&&w>0)||(x<0&&w<0)){I=K;w=A}y++}e.debug("fzero: maxiter="+g+" reached.");return J},fminbr:function(I,J,N){var M,K,m,u,s,h,k,j,A=(3-d.sqrt(5))*0.5,F=e.Math.eps,C=d.sqrt(e.Math.eps),g=50,E=0,z,L,H,n,D,B,y,l,G=0;if(!e.isArray(J)||J.length<2){throw new Error("JXG.Math.Numerics.fminbr: length of array x0 has to be at least two.")}M=J[0];K=J[1];u=M+A*(K-M);k=I.apply(N,[u]);G++;m=u;s=u;h=k;j=k;while(E=H){y=(m-s)*(h-k);B=(m-u)*(h-j);D=(m-u)*B-(m-s)*y;B=2*(B-y);if(B>0){D=-D}else{B=-B}if(d.abs(D)B*(M-m+2*H)&&D0){n=H}else{n=-H}}y=m+n;l=I.apply(N,[y]);G++;if(l<=h){if(y0){return this.sum(d)/d.length}else{return 0}};JXG.Math.Statistics.median=function(e){var f,d;if(e.length>0){f=e.slice(0,e.length);f.sort(function(h,g){return h-g});d=f.length;if(d%2==1){return f[parseInt(d*0.5)]}else{return(f[d*0.5-1]+f[d*0.5])*0.5}}else{return 0}};JXG.Math.Statistics.variance=function(f){var e,h,g,d;if(f.length>1){e=this.mean(f);h=0;for(g=0,d=f.length;g0){return this.mean(this.multiply(d,e))}else{return 0}};JXG.Math.Statistics.max=function(e){var g,f,d;if(e.length==0){return NaN}g=e[0];for(f=1,d=e.length;fg)?(e[f]):g}return g};JXG.Math.Statistics.min=function(e){var g,f,d;if(e.length==0){return NaN}g=e[0];for(f=1,d=e.length;f0){l=m[q].generatePolynomial();for(g=0;g0)){if((y.toOrigin!==e)&&(y.toOrigin!=null)&&C(y.toOrigin.id,n.listOfFreePoints)){k=y.toOrigin}else{k=n.listOfFreePoints[0]}v=k.symbolic.x;t=k.symbolic.y;for(D=0;D1)){if((y.to10!==e)&&(y.to10!=null)&&(y.to10.id!=y.toOrigin.id)&&C(y.to10.id,n.listOfFreePoints)){j=y.to10}else{if(n.listOfFreePoints[0].id==k.id){j=n.listOfFreePoints[1]}else{j=n.listOfFreePoints[0]}}p=d.Math.Geometry.rad([1,0],[0,0],[j.symbolic.x,j.symbolic.y]);E=Math.cos(-p);x=Math.sin(-p);for(D=0;Dd.Math.eps)){G=j.symbolic.x;for(D=0;Ds){l+=Math.PI}r=Math.cos(l)+q[1];p=Math.sin(l)+q[2];return new JXG.Coords(JXG.COORDS_BY_USER,[r,p],m)},reflection:function(q,m,f){var h=m.coords.usrCoords,r=q.point1.coords.usrCoords,g=q.point2.coords.usrCoords,e,l,d,j,n,k,p;if(!JXG.exists(f)){f=m.board}n=g[1]-r[1];k=g[2]-r[2];e=h[1]-r[1];l=h[2]-r[2];p=(n*l-k*e)/(n*n+k*k);d=h[1]+2*p*k;j=h[2]-2*p*n;return new JXG.Coords(JXG.COORDS_BY_USER,[d,j],f)},rotation:function(d,p,h,j){var l=p.coords.usrCoords,e=d.coords.usrCoords,g,n,k,q,f,m;if(!JXG.exists(j)){j=p.board}g=l[1]-e[1];n=l[2]-e[2];k=Math.cos(h);q=Math.sin(h);f=g*k-n*q+e[1];m=g*q+n*k+e[2];return new JXG.Coords(JXG.COORDS_BY_USER,[f,m],j)},perpendicular:function(s,q,j){var h=s.point1.coords.usrCoords,g=s.point2.coords.usrCoords,e=q.coords.usrCoords,n,m,l,r,k,f,d,p;if(!JXG.exists(j)){j=q.board}if(q==s.point1){n=h[1]+g[2]-h[2];m=h[2]-g[1]+h[1];l=true}else{if(q==s.point2){n=g[1]+h[2]-g[2];m=g[2]-h[1]+g[1];l=false}else{if(((Math.abs(h[1]-g[1])>JXG.Math.eps)&&(Math.abs(e[2]-(h[2]-g[2])*(e[1]-h[1])/(h[1]-g[1])-h[2])JXG.Math.eps&&(Math.abs(f[0])0){e=m.midpoint.Dist(z.point1);K=m.midpoint.Dist(z.point2);I=((e*e)+(D*D)-(K*K))/(2*D);B=(e*e)-(I*I);B=(B<0)?0:B;G=Math.sqrt(B);E=m.Radius();p=Math.sqrt((E*E)-G*G);C=J[1]-L[1];A=J[2]-L[2];k=g[1]+(G/D)*A;j=g[2]-(G/D)*C;e=(J[1]*A)-(J[2]*C);K=(k*C)+(j*A);F=(A*A)+(C*C);if(Math.abs(F)r){return[0]}else{if(v=d&&Math.abs(e[3])=d){return this.meetLineCircle(g,e,f,h)}else{return this.meetCircleCircle(g,e,f,h)}}}},meetLineLine:function(e,d,f,h){var g=JXG.Math.crossProduct(e,d);if(Math.abs(g[0])>JXG.Math.eps){g[1]/=g[0];g[2]/=g[0];g[0]=1}return new JXG.Coords(JXG.COORDS_BY_USER,g,h)},meetLineCircle:function(j,e,p,q){var v,u,s,r,l,h,g,f,m,w;if(e[4]=0){m=Math.sqrt(m);w=[(-g+m)/(2*h),(-g-m)/(2*h)];return((p==0)?new JXG.Coords(JXG.COORDS_BY_USER,[-w[0]*(-l[1])-r*l[0],-w[0]*l[0]-r*l[1]],q):new JXG.Coords(JXG.COORDS_BY_USER,[-w[1]*(-l[1])-r*l[0],-w[1]*l[0]-r*l[1]],q))}else{return new JXG.Coords(JXG.COORDS_BY_USER,[NaN,NaN],q)}},meetCircleCircle:function(f,d,e,g){var h;if(f[4]JXG.Math.eps&&m<10){B=A(q);z=-y(p);x=k(q);w=-j(p);g=B*w-z*x;q-=(w*v-z*u)/g;p-=(B*u-x*v)/g;v=t.X(q)-s.X(p);u=t.Y(q)-s.Y(p);r=v*v+u*u;m++}arguments.callee.t1memo=q;arguments.callee.t2memo=p;if(Math.abs(q)0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1)){v=20;w=(g.maxX()-g.minX())/v;x=g.minX();for(u=0;u0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1){break}x+=w}}p=l;arguments.callee.t2memo=p}if(Math.abs(h(p))>JXG.Math.eps){k=0}else{k=1}return(new JXG.Coords(JXG.COORDS_BY_USER,[k,g.X(p),g.Y(p)],j))},projectPointToCircle:function(m,d,f){var j=m.coords.distance(JXG.COORDS_BY_USER,d.midpoint.coords),e=m.coords.usrCoords,g=d.midpoint.coords.usrCoords,l,k,h;if(!JXG.exists(f)){f=m.board}if(Math.abs(j)r.maxX()){q=r.minX()+q-r.maxX()}C=new JXG.Coords(JXG.COORDS_BY_USER,[r.X(q),r.Y(q)],h)}else{if(r.curveType=="plot"){B=p;for(v=0;v=JXG.Math.eps){g=(A*z+e*d)/k;s=Math.sqrt(A*A+e*e-g*(A*z+e*d))}else{g=0;s=Math.sqrt(A*A+e*e)}if(g>=0&&g<=1&&sJXG.Math.eps){for(h=2;h>0;h--){v[l][h]/=v[l][0]}v[l][0]=1}}e=false;d=false;if(!r&&q.scrCoords[1]>=0&&q.scrCoords[1]<=g.board.canvasWidth&&q.scrCoords[2]>=0&&q.scrCoords[2]<=g.board.canvasHeight){e=true}if(!f&&p.scrCoords[1]>=0&&p.scrCoords[1]<=g.board.canvasWidth&&p.scrCoords[2]>=0&&p.scrCoords[2]<=g.board.canvasHeight){d=true}if(Math.abs(v[1][0])g.board.canvasHeight){k=v[2]}else{k=v[3]}}else{if(v[1][2]>g.board.canvasHeight){m=v[2];if(v[3][2]<0){k=v[0]}else{k=v[3]}}else{m=v[1];if(v[3][2]<0){k=v[0]}else{if(v[3][2]>g.board.canvasHeight){k=v[2]}else{k=v[3]}}}}}}m=new JXG.Coords(JXG.COORDS_BY_SCREEN,m.slice(1),g.board);k=new JXG.Coords(JXG.COORDS_BY_SCREEN,k.slice(1),g.board);if(!e&&!d){if(!r&&f&&!this.isSameDirection(q,p,m)&&!this.isSameDirection(q,p,k)){return}else{if(r&&!f&&!this.isSameDirection(p,q,m)&&!this.isSameDirection(p,q,k)){return}}}if(!e){if(!d){if(this.isSameDirection(q,p,m)){if(!this.isSameDirection(q,p,k)){t=m;u=k}else{if(JXG.Math.Geometry.affineDistance(p.usrCoords,m.usrCoords)=0&&k>=0){if((d>=0&&j>=0)||(d<=0&&j<=0)){g=true}}else{if(e<=0&&k<=0){if((d>=0&&j>=0)||(d<=0&&j<=0)){g=true}}}return g},updateTicks:function(e,g,d,h,f){},removeTicks:function(d){this.remove(this.getElementById(d.id+"_ticks"))},drawCurve:function(d){this.appendChildPrim(this.createPrim("path",d.id),d.layer);this.appendNodesToElement(d,"path");this.updateVisual(d,{shadow:true},true);this.updateCurve(d)},updateCurve:function(d){this.updateVisual(d);this.updatePathPrim(d.rendNode,this.updatePathStringPrim(d),d.board);this.makeArrows(d)},drawCircle:function(d){this.appendChildPrim(this.createPrim("ellipse",d.id),d.layer);this.appendNodesToElement(d,"ellipse");this.updateCircle(d)},updateCircle:function(e){this.updateVisual(e);var d=e.Radius();if(d>0&&!isNaN(d+e.midpoint.coords.scrCoords[1]+e.midpoint.coords.scrCoords[2])&&d*e.board.stretchX<20000){this.updateEllipsePrim(e.rendNode,e.midpoint.coords.scrCoords[1],e.midpoint.coords.scrCoords[2],(d*e.board.stretchX),(d*e.board.stretchY))}},drawPolygon:function(d){this.appendChildPrim(this.createPrim("polygon",d.id),d.layer);this.appendNodesToElement(d,"polygon");this.updatePolygon(d)},updatePolygon:function(d){this.updateVisual(d,{stroke:true,dash:true});this.updatePolygonPrim(d.rendNode,d)},drawText:function(d){var e;if(d.display=="html"){e=this.container.ownerDocument.createElement("div");e.style.position="absolute";e.style.color=d.visProp.strokeColor;e.className="JXGtext";e.style.zIndex="10";this.container.appendChild(e);e.setAttribute("id",this.container.id+"_"+d.id)}else{e=this.drawInternalText(d)}e.style.fontSize=d.board.options.text.fontSize+"px";d.rendNode=e;d.htmlStr="";this.updateText(d)},drawInternalText:function(d){},updateText:function(d){if(!d.visProp.visible){return}if(isNaN(d.coords.scrCoords[1]+d.coords.scrCoords[2])){return}this.updateTextStyle(d);if(d.display=="html"){d.rendNode.style.left=(d.coords.scrCoords[1])+"px";d.rendNode.style.top=(d.coords.scrCoords[2]-this.vOffsetText)+"px";d.updateText();if(d.htmlStr!=d.plaintextStr){d.rendNode.innerHTML=d.plaintextStr;if(d.board.options.text.useASCIIMathML){AMprocessNode(d.rendNode,false)}d.htmlStr=d.plaintextStr;if(d.board.options.text.useMathJax){MathJax.Hub.Typeset(d.rendNode)}}this.transformImage(d,d.transformations)}else{this.updateInternalText(d)}},updateInternalText:function(d){},updateTextStyle:function(e){var d;if(e.visProp.fontSize){if(typeof e.visProp.fontSize=="function"){d=e.visProp.fontSize();e.rendNode.style.fontSize=(d>0?d:0)}else{e.rendNode.style.fontSize=(e.visProp.fontSize)}}},drawImage:function(d){},updateImageURL:function(d){},updateImage:function(d){this.updateRectPrim(d.rendNode,d.coords.scrCoords[1],d.coords.scrCoords[2]-d.size[1],d.size[0],d.size[1]);this.updateImageURL(d);this.transformImage(d,d.transformations);this.updateVisual(d,{stroke:true,dash:true},true)},joinTransforms:function(d,n){var g=[[1,0,0],[0,1,0],[0,0,1]],l=[[1,0,0],[-d.board.origin.scrCoords[1],1,0],[-d.board.origin.scrCoords[2],0,1]],k=[[1,0,0],[0,1/d.board.stretchX,0],[0,0,-1/d.board.stretchY]],e=[[1,0,0],[0,d.board.stretchX,0],[0,0,-d.board.stretchY]],f=[[1,0,0],[d.board.origin.scrCoords[1],1,0],[d.board.origin.scrCoords[2],0,1]],h,j=n.length;for(h=0;hs.usrCoords[1]){y=n-1;break}}m=Math.ceil(s.usrCoords[2]);e=0;for(n=0;n<=p+1;n++){if(m-n/pg.usrCoords[2]){f=n-1;break}}x=Math.round((1/q)*t.stretchX);w=Math.round((1/p)*t.stretchY);u=new JXG.Coords(JXG.COORDS_BY_USER,[Math.ceil(g.usrCoords[1])-h/q,Math.floor(g.usrCoords[2])+f/p],t);r=new JXG.Coords(JXG.COORDS_BY_USER,[Math.floor(s.usrCoords[1])+y/q,Math.ceil(s.usrCoords[2])-e/p],t);v=this.drawVerticalGrid(u,r,x,t);this.appendChildPrim(v,t.options.layer.grid);if(!t.options.grid.snapToGrid){d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridx";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,t.options.grid.gridColor,t.options.grid.gridOpacity)}else{d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridx";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,"#FF8080",0.5)}this.setPropertyPrim(v,"stroke-width","0.4px");if(t.options.grid.gridDash){this.setGridDash("gridx")}v=this.drawHorizontalGrid(u,r,w,t);this.appendChildPrim(v,t.options.layer.grid);if(!t.options.grid.snapToGrid){d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridy";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,t.options.grid.gridColor,t.options.grid.gridOpacity)}else{d=new Object();d.visProp={};d.rendNode=v;d.elementClass=JXG.OBJECT_CLASS_LINE;d.id="gridy";JXG.clearVisPropOld(d);this.setObjectStrokeColor(d,"#FF8080",0.5)}this.setPropertyPrim(v,"stroke-width","0.4px");if(t.options.grid.gridDash){this.setGridDash("gridy")}},removeGrid:function(d){this.remove(this.getElementById("gridx"));this.remove(this.getElementById("gridy"));d.options.grid.hasGrid=false},hide:function(d){},show:function(d){},setObjectStrokeWidth:function(e,d){},setObjectStrokeColor:function(f,d,e){},setObjectFillColor:function(f,d,e){},setDraft:function(e){if(!e.visProp.draft){return}var d=e.board.options.elements.draft.color,f=e.board.options.elements.draft.opacity;if(e.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(e,d,f)}else{if(e.elementClass==JXG.OBJECT_CLASS_POINT){this.setObjectFillColor(e,d,f)}else{this.setObjectFillColor(e,"none",0)}this.setObjectStrokeColor(e,d,f);this.setObjectStrokeWidth(e,e.board.options.elements.draft.strokeWidth)}},removeDraft:function(d){if(d.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(d,d.visProp.fillColor,d.visProp.fillColorOpacity)}else{if(d.type==JXG.OBJECT_CLASS_POINT){this.setObjectFillColor(d,d.visProp.fillColor,d.visProp.fillColorOpacity)}this.setObjectStrokeColor(d,d.visProp.strokeColor,d.visProp.strokeColorOpacity);this.setObjectStrokeWidth(d,d.visProp.strokeWidth)}},highlight:function(e){var d;if(!e.visProp.draft){if(e.type==JXG.OBJECT_CLASS_POINT){this.setObjectStrokeColor(e,e.visProp.highlightStrokeColor,e.visProp.highlightStrokeOpacity);this.setObjectFillColor(e,e.visProp.highlightStrokeColor,e.visProp.highlightStrokeOpacity)}else{if(e.type==JXG.OBJECT_TYPE_POLYGON){this.setObjectFillColor(e,e.visProp.highlightFillColor,e.visProp.highlightFillOpacity);for(d=0;d=JXG.Math.eps){e=(h*g+u*s)/t;q=h*h+u*u-e*(h*g+u*s)}else{e=0;q=h*h+u*u}if(e<0){q=h*h+u*u}else{if(e>1){h=v[1]-w[1];u=v[2]-w[2];q=h*h+u*u}}if(q>r){r=q;p=l}}return[Math.sqrt(r),p]},RDP:function(k,h,g,e,f){var d=this.findSplit(k,h,g);if(d[0]>e){this.RDP(k,h,d[1],e,f);this.RDP(k,d[1],g,e,f)}else{f.push(k[g])}},RamenDouglasPeuker:function(j,e){var g=[],h,f,d;d=j.length;h=0;while(hh&&isNaN(j[f].scrCoords[1]+j[f].scrCoords[2])){f--}if(!(h>f||h==d)){g[0]=j[h];this.RDP(j,h,f,e,g)}return g},setShadow:function(d){},updatePathStringPoint:function(f,d,e){},evaluate:function(d){if(JXG.isFunction(d)){return d()}else{return d}},setBuffering:function(){}}};JXG.FileReader=new function(){this.parseFileContent=function(d,f,h){this.request=false;var g;try{this.request=new XMLHttpRequest();if(h.toLowerCase()=="raw"){this.request.overrideMimeType("text/plain; charset=iso-8859-1")}else{this.request.overrideMimeType("text/xml; charset=iso-8859-1")}}catch(g){try{this.request=new ActiveXObject("Msxml2.XMLHTTP")}catch(g){try{this.request=new ActiveXObject("Microsoft.XMLHTTP")}catch(g){this.request=false}}}if(!this.request){alert("AJAX not activated!");return}this.request.open("GET",d,true);if(h.toLowerCase()=="raw"){this.cbp=function(){var e=this.request;if(e.readyState==4){f(e.responseText)}}}else{this.cbp=function(){var e=this.request;if(e.readyState==4){var j="";if(typeof e.responseStream!="undefined"&&(e.responseText.slice(0,2)=="PK"||JXG.Util.asciiCharCodeAt(e.responseText.slice(0,1),0)==31)){j=JXG.Util.Base64.decode(BinFileReader(e))}else{j=e.responseText}this.parseString(j,f,h,false)}}}this.cb=JXG.bind(this.cbp,this);this.request.onreadystatechange=this.cb;try{this.request.send(null)}catch(g){throw new Error("JSXGraph: problems opening "+d+" !")}};this.cleanWhitespace=function(d){var e=d.firstChild;while(e!=null){if(e.nodeType==3&&!/\S/.test(e.nodeValue)){d.removeChild(e)}else{if(e.nodeType==1){this.cleanWhitespace(e)}}e=e.nextSibling}};this.stringToXMLTree=function(e){if(typeof DOMParser=="undefined"){DOMParser=function(){};DOMParser.prototype.parseFromString=function(h,j){if(typeof ActiveXObject!="undefined"){var g=new ActiveXObject("MSXML.DomDocument");g.loadXML(h);return g}}}var f=new DOMParser();var d=f.parseFromString(e,"text/xml");this.cleanWhitespace(d);return d};this.parseString=function(h,f,j,e){var d,g;if(j.toLowerCase()=="cdy"||j.toLowerCase()=="cinderella"){if(e){h=JXG.Util.Base64.decode(h)}h=JXG.CinderellaReader.readCinderella(h,f);f.xmlString=h;return}if(j.toLowerCase()=="graph"){h=JXG.GraphReader.readGraph(h,f,false);return}if(j.toLowerCase()=="digraph"){h=JXG.GraphReader.readGraph(h,f,true);return}if(j.toLowerCase()=="geonext"){h=JXG.GeonextReader.prepareString(h)}if(j.toLowerCase()=="geogebra"){e=h.slice(0,2)!=="PK";h=JXG.GeogebraReader.prepareString(h,e)}if(j.toLowerCase()=="intergeo"){if(e){h=JXG.Util.Base64.decode(h)}h=JXG.IntergeoReader.prepareString(h)}f.xmlString=h;d=this.stringToXMLTree(h);this.readElements(d,f,j)};this.readElements=function(d,e,f){if(f.toLowerCase()=="geonext"){e.suspendUpdate();if(d.getElementsByTagName("GEONEXT").length!=0){JXG.GeonextReader.readGeonext(d,e)}e.unsuspendUpdate()}else{if(d.getElementsByTagName("geogebra").length!=0){JXG.GeogebraReader.readGeogebra(d,e)}else{if(f.toLowerCase()=="intergeo"){JXG.IntergeoReader.readIntergeo(d,e)}}}}};if(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent)){document.write(' - - - - - - - - - -
      -
        -
        - - -
        -

        Trifiliar Suspension

        -
      -
      -
      -
      -
      0
      -
      00:00 s
      -
        0 s
      -
      -
      -
      - -
      -
      - - kg
      - - kg
      - - m
      - - m
      - - m
      - - Kg.m2 -
      - - -
      -
      -
      -
      - - - - - - -
      -
      J0 = (1/2)mor2
      -
      J = (gT2a2(m+m0) / 4π2l)-J0
      - -
      -
      -
      - - -
      -
      - - - diff --git a/build/TrifiliarSuspension/content.html b/build/TrifiliarSuspension/content.html deleted file mode 100755 index 5961042..0000000 --- a/build/TrifiliarSuspension/content.html +++ /dev/null @@ -1,9243 +0,0 @@ - - -
      - -
      - - - -
      - -
      - -
      -
      -
      Trifiliar Suspension
      - - - -
      - -
      -
      - - -
      - -
      - Aim -
      - -

      - - - - - - - -
      -

      The arrangement shown in the figure is called trifiliar suspension. It consists of a circular disc of uniform thickness suspended from ceiling by means of three uniform wires of equal length. The points of suspension are equispaced from the centre of the disc. If a small angular displacement is given to the disc in its own plane and left, the disc oscillates in horizontal plane about the vertical axis passing through its centre. The equation of motion of the disc is given by,

      -

      Where,

      -

      J0 = mass moment of inertia of the disc about vertical axis passing through its center.

      -

      For the disc, J0 is given by where m0 is mass of the disc and r its radius. 

      -

       =angular acceleration of the disc

      -

       

      -

      a = distance between the point of suspension on the disc and its centre

      -

      l = length of wire between the point of suspension on the ceiling and the disc

      -

       

      -

      -

      -

                      Let an irregularly shaped solid body of mass m be kept on the disc with its centre of mass aligned with the vertical axis passing through the centre of the disc. And let the disc alongwith the body be set into angular oscillations as before. Then the equation of motion of the disc together with the solid body is given by,

      -

      -

      The period of oscillation is given by 

      -

       

      -
       
      -


      -

      -
      - - - -
      -
      - - -
      -
      - - Theory -
      -

      -

       

      -

      Vibratory systems around us - - -

      Here are some examples of physical systems where the vibrations are prominent and can be observed easily. In musical instruments the vibrations are intentional. The parts of musical instruments are designed so that they generate sounds that are pleasant to listen. In many cases the vibrations are unwanted and we try to minimize them.

      -

       

      -

      1.   A chandelier hanging from ceiling oscillates to and fro following an initial disturbance; maybe due to a breeze of air.

      -

       

      -

      2.   The oscillations of the chandelier at cathedral of Pisa, Italy, were studied by the famous scientist Galileo Galilee.

      -

       

      -

      3.   A load attached at end of a wire-rope of a crane oscillates to and fro due to initial disturbance; maybe due to sudden stopping of carriage of the crane while revolving about the vertical axis.

      -

       

      -

      4.   The pendulum used in clock of olden days used to oscillate to and fro once every second. i.e. it had a period of oscillation of one second.

      -

       

      -

      5.   String of a guitar, when plucked and left to its own, vibrates and makes a musical sound. It comes to rest after a while; the vibrations die out. Similarly, the diaphragm of a table vibrates when hit and left to its own. It also comes to rest after some time. -

      - -

      -     All these are examples of vibratory systems that are set into vibration following an initial disturbance. All these systems have three components: mass, due to which the system possesses inertia; elasticity, due to which potential energy can be stored; and components that dissipate energy causing the vibratory motion to be damped which bring them to rest after some time.
      -      Vibration or vibratory systems are classified in number of ways. Some of the classifications are given below: -

      -

       

      -

       Free and forced vibration - A free vibration occurs due to initial displacement or velocity, or both, applied to the system only initially. There is no external force acting on the system when the system is vibrating. A forced vibration occurs when the system vibrates in response to external force applied continuously. When the force applied is periodic, i.e. it repeats itself after a fixed interval of time, the forced vibration is called periodic. If the periodic force and hence the resulting vibration varies sinusoidally with respect to time, the vibration is called harmonic. If the force is not periodic, the forced vibration is called aperiodic or random.

      - -

      -

       Damped and undamped vibration -
      -When the vibratory system has elements that offer resistance to motion, energy is continuously dissipated and the free vibrations of such systems come to halt after some time. This is called damped vibration and such systems are called damped systems. Forced vibration of a damped system continues as long as the force acts but some of the work done by the external force is lost in overcoming the resistance offered by the damping elements. Systems without damping elements are called undamped systems and their vibrations are called undamped vibrations. All systems in nature have some or the other damping element and their natural vibrations are damped. Hence they come to rest after some time following free vibrations. Nevertheless, we study the vibration of undamped systems because the concepts developed in studying them are useful in analyzing and understanding the phenomena occurring in vibration of damped as well as complicated systems. When the force of resistance offered by a damping element is proportional to velocity of mass of the system, it is termed as viscous damping and the damping element is called a viscous damper. If the force of resistance has a constant value, it is termed as Coulomb damping. Damping due to dry friction shows this kind of behavior. Coulomb damping can occur when the system has components rubbing over each other. There are other types of damping also which shall be discussed later.

      -

      - -

      -

      -

      - -

      -

      -

      -

      Degrees of freedom : The vibratory systems are classified as single-degree-of-freedom systems, Multi-degree-of-freedom-systems or continuous systems. The number of degrees of freedom corresponds to the number of independent co-ordinates required to completely describe the motion of the system. In fact, it is the sum of the possible ways each mass can move independently of other masses. The translation of a mass along the three axes, X, Y and Z, and the three rotations about each of these axes constitute possible ways of motion of a mass. Many times, many of these six motions of a mass are restricted and a mass can have one or two degrees of freedom, i.e. only translation or translation and rotation of a single mass about any one of the axes.
      -
      -Linear and Non-linear Vibrations : Vibration is said to be linear if the damping force is proportional to velocity, inertia force is proportional to mass, and restoring force is proportional to displacement. If any of this proportionality is not satisfied, the system is said to be non-linear.
      -
      - Solving engineering problems : Analytical methods are usually applied to models of actual systems. We carry out experiments on models if physical systems are not available for testing. While preparing such models, we exclude superfluous details of the system but include all essential and important features of the actual system. While doing so, we idealize and approximate important behaviour of the system without affecting much the accuracy in predicting the behaviour. The system model so developed provides ease of application of analytical and experimental techniques. Once a satisfactory model is developed, laws of Physics can be applied which give a set of mathematical equations relating the properties and variables of the system. Such a set of mathematical equations is called mathematical model of the system. Solving the set of equations (or a single mathematical equation) provides expression for the system variable in terms of location and time. We call this as ‘solution’ of the problem. As an illustration of the concepts described above, see the example given below.
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -

      Physical system

      -
      -

      These days we have number of towering buildings.  Many a times the residential part of such a building is supported on a tall concrete structure.  One of such buildings is the ‘Milad Tower’, situated in Tehran, Iran.  Its head consists of a large pod with 12 floors and below is a staircase and elevators to reach the area.

      -

      The oscillations of such tall buildings, in response to earthquake and wind, are important from design point of view.  And to study these oscillations, we must know the characteristics of its natural vibration. 

      -

      Analysis of such a physical system can be very much complicated.  To obtain first rough estimate of the natural frequency of vibration, the problem can be stated and the physical system can be modeled in a simple way as described below.

      -
      -

      Problem statement

      -
      -

      To find natural frequency of oscillation of the tower in the direction perpendicular to the vertical axis (i.e. natural frequency of transverse oscillation of the tower) and position of the head at any given time.

      -
      -

      Physical model of the system

      -
      -

      - - - - - - - -
      -
      -

      M

      -
      -
      -
      - - - - - - -
      -
      -

         

      -
      -
      -
      -

       

      -
      -

      The physical model for the system under consideration can be as shown in This is the simplest model.  Only the mass of the building at the top is considered and it is considered to be concentrated at one point.  The mass of the vertical pillar supporting the buiding is neglected and is considered to be a cantilever offering only elesticity.

      -

      Thus it becomes a single degree of freedom system with single mass and only one way of motion of the mass: translation in direction perpendicular to the vertical axis of the building.  Further we assume that the amplitude of this motion to be small.

      -

      The equivalent stiffness of the cantilever is given by

      -

      .  The symbols carry their usual meanings.

      -

       

      -
      -

      Mathematical model

      -
      -

      Using Newton’s second law of motion, the equation of motion of the mass is written as

      -

       

      -

      The first term is the inertia force which is equal to mass multiplied by acceleration and the second term is the spring force given by stiffness of the spring multiplied by its elongation or compression.

      -

      The differential equation is a mathematical model of the system.

      -

       

      -
      -

      General Solution

      -
      -

      The solution to the above differential equation is given by

      -

        

      -

      A and B are constants that depend the initial conditions, i.e. the displacement and velocity of the mass when we started measuring our time.

      -

      These are known as initial conditions.

      -

       is the natural frequency in radians per second and is given by

      -

      -
      -

      Particular solution obtained from the initial conditions

      -
      -

      Substituting the initial conditions in above expression, we can obtain the values of A and B.  Thus if X0 and V0 are the initial displacement and velocity, respectively, given to the mass, the above expression will yield values of A and B as  and  

      -

       

      -

      Now the expression for x becomes

      -

      -

      And we can obtain the value of x at any time t from this expression.

      -

      Thus we have obtained the expressions for natural frequency and position of the head at any given time ‘t and the problem stated by the problem statement is solved.

      -
      -

       

      -
      -
      -
      - -
      -
      - Simulator -
      -
      -
      -
      -
      - - -
      -
      - Procedure -
      -
      -

      -

      -

       

      -

       Experimental set up:

      -

       

      -

      -A metallic circular disc of suitable radius and uniform thickness is hung from the ceiling using three wires. The points of suspension are equispaced from the centre of the disc so that the wires are vertical and of equal length, and the disc is horizontal. Mass of the disc and its outside radius are measured. Let them be mo kg and r meters respectively. Similarly, the length of wires between the point of suspension from the ceiling to those on the disc and distance of point of suspension on the disc from its centre are measured. Let them be l metre and a metre respectively. Such an arrangement is called a trifiliar suspension. In such an arrangement, if is a small angular displacement is given to the disc in horizontal plane and left, the disc will oscillates about the vertical axis passing through its centre. -
           Read background for details. The period of angular oscillation of the disc is given by . - , g is acceleration due to gravity, 9.81 m/s2 and J is mass moment of inertia of the disc about the vertical axis passing through its centre and is given by . - -

            A solid body of irregular shape, whose mass moment of inertia is to be found, is kept on the circular disc. The center of mass of the body is aligned approximately with the centre of the disc by judgment. -

           Now the set up is ready for performing the experiment by following the procedure given below: - -

      -

       

      -

      Procedure:

      -

       

      -
        -
      1. Prepare the trifiliar suspension using the circular disc and tree wires as explained in the experimental set up.
      2. -
      -

       

      -
        -
      1. Keep the solid body of irregular shape on the disc. See that the centre of the mass of the body is aligned with the centre of the disc by moving the body on the disc and using your own judgment.
      2. -
      -

       

      -
        -
      1. Give a small angular displacement to the disc in its own horizontal plane and about the vertical axis passing through its centre, say about 100, and leave. The disc alongwith the solid body will oscillate about the vertical axis passing through the centre of the disc and centre of mass of the body.
      2. -
      -

       

      -
        -
      1. Measure time taken by the disc for known number of oscillations, say 10 oscillations.
        -
      2. -
      -

       

      -
        -
      1. Calculate period of oscillation of the disc, i.e. time taken for one oscillation. Let it be T seconds.
      2. -
      -

       

      -
        -
      1. Calculate the moment of the inertia of the solid body using the formula (read theory)
        -
      2. -


      -. - -

      -Where,
      -J = mass moment of inertia of the solid body about its centre of mass that was aligned with the centre of the disc, kg.m2 -
      g = acceleration due to gravity, 9.81 m/s2 -
      T = period of the oscillation of the disc + the solid body, second -
      a = distance of point of suspension on the disc from its centre, metre -
      mo = mass of the disc, kg -
      m = mass of the solid body, kg -
      l = length of the wire between the points of suspension on the ceiling and the disc, metre. -
      Jo = mass moment of inertia of the circular disc about vertical axis passing through its centre, kg.m2; it is given by, . - . -
      r = outside radius of the circular disc, metre. - - -

      - -

       

      -
      - - -
      -
      - - -
      -
      - Review Questions -
      -

      - - - -

      -

      1.    How is the moment of inertia of a solid body of regular shape (e.g. a disc or a cylinder) found?

      -

       

      -

      2.    How will you recommend the length of wire compared to the size of the base of the trifiliar suspension to be? – longer or shorter. Why?

      -

       

      -

      3.    Why do we need to find moment of inertia of solid bodies of irregular shapes in real life?

      -

       

      -

      4.    Write the formula that relates dimensions of a trifiliar suspension, MI of the oscillating base and period of oscillation of the trifiliar suspension.
      Explain the meaning of terms used in the formula.

      -

       

      -

      5.   What will be the effect of increasing or decreasing the length of suspension and MI of base on the period of oscillation of the trifiliar suspension?

      - -

      -

       

      -

      - -

      - - - - - - - -
      -
      - -

      -

       

      -

      -

            

      - -

       

      -
      - -
      -
      -
      - diff --git a/build/TrifiliarSuspension/css/gstyle_buttons.css b/build/TrifiliarSuspension/css/gstyle_buttons.css deleted file mode 100755 index a791a12..0000000 --- a/build/TrifiliarSuspension/css/gstyle_buttons.css +++ /dev/null @@ -1,187 +0,0 @@ - -/*------------------------------------*\ - $WRAPPER -\*------------------------------------*/ -.buttons {/* Style as you wish (toolbar) */ -} -/* The Magnificent CLEARFIX */ -.buttons:before, .buttons:after { - content: "\0020"; - display: block; - height: 0; - visibility: hidden; -} -.buttons:after { - clear: both; -} -.buttons { - zoom: 1; -} -/* ------------------------ */ - - -/*------------------------------------*\ - $BUTTON -\*------------------------------------*/ -button { - text-decoration: none; - text-shadow: 0 1px 0 #fff; - font: bold 11px Helvetica, Arial, sans-serif; - color: #444; - line-height: 17px; - height: 18px; - display: inline-block; - padding: 5px 6px 4px 6px; - background: #F3F3F3; - border: solid 1px #D9D9D9; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -webkit-transition: border-color .20s; - -moz-transition: border-color .20s; - -o-transition: border-color .20s; - transition: border-color .20s; - height: 29px !important; - cursor: pointer; -} -button:hover { - background: #F4F4F4; - border-color: #C0C0C0; - color: #333; -} -button:active { - border-color: #4D90FE; - color: #4D90FE; - -moz-box-shadow:inset 0 0 10px #D4D4D4; - -webkit-box-shadow:inset 0 0 10px #D4D4D4; - box-shadow:inset 0 0 10px #D4D4D4; -} -button.bluebtn { - border: 1px solid #3079ED !important; - background: #4B8DF8; - background: -webkit-linear-gradient(top, #4C8FFD, #4787ED); - background: -moz-linear-gradient(top, #4C8FFD, #4787ED); - background: -ms-linear-gradient(top, #4C8FFD, #4787ED); - background: -o-linear-gradient(top, #4C8FFD, #4787ED); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.bluebtn:hover { - border: 1px solid #2F5BB7 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #4D90FE, #357AE8); - background: -moz-linear-gradient(top, #4D90FE, #357AE8); - background: -ms-linear-gradient(top, #4D90FE, #357AE8); - background: -o-linear-gradient(top, #4D90FE, #357AE8); -} -button.greenbtn { - border: 1px solid #29691D !important; - background: #3A8E00; - background: -webkit-linear-gradient(top, #3C9300, #398A00); - background: -moz-linear-gradient(top, #3C9300, #398A00); - background: -ms-linear-gradient(top, #3C9300, #398A00); - background: -o-linear-gradient(top, #3C9300, #398A00); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.greenbtn:hover { - border: 1px solid #2D6200 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #3C9300, #368200); - background: -moz-linear-gradient(top, #3C9300, #368200); - background: -ms-linear-gradient(top, #3C9300, #368200); - background: -o-linear-gradient(top, #3C9300, #368200); -} -button.redbtn { - border: 1px solid #D14836 !important; - background: #D64937; - background: -webkit-linear-gradient(top, #DC4A38, #D14836); - background: -moz-linear-gradient(top, #DC4A38, #D14836); - background: -ms-linear-gradient(top, #DC4A38, #D14836); - background: -o-linear-gradient(top, #DC4A38, #D14836); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.redbtn:hover { - border: 1px solid #B0281A !important; - background: #D14130; - background: -webkit-linear-gradient(top, #DC4A38, #C53727); - background: -moz-linear-gradient(top, #DC4A38, #C53727); - background: -ms-linear-gradient(top, #DC4A38, #C53727); - background: -o-linear-gradient(top, #DC4A38, #C53727); -} -button.action:hover { - -moz-box-shadow: 0 1px 0px #DDD; - -webkit-box-shadow: 0 1px 0px #DDD; - box-shadow:iset 0 1px 0px #DDD; -} -button.action:active { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - border-color: #C6C6C6 !important; -} -button.bluebtn:active { - border-color: #2F5BB7 !important; -} -button.greenbtn:active { - border-color: #2D6200 !important; -} -button.redbtn:active { - border-color: #B0281A !important; -} -/*------------------------------------*\ - $BUTTON LABEL -\*------------------------------------*/ - button span.label { - display: inline-block; - float: left; - line-height: 17px; - height: 18px; - padding: 0 1px; - overflow: hidden; - color: #444; - -webkit-transition: color .20s; - -moz-transition: color .20s; - -o-transition: color .20s; - transition: color .20s; -} -button span.label { - line-height: 15px !important; -} -button:hover .label.bluebtn { - color: #7090C8; -} -button:hover .label.greenbtn { - color: #42B449; -} -button:hover .label.yellow { - color: #F7CB38; -} -button.bluebtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2F5BB7 !important; -} -button.greenbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2D6200 !important; -} -button.redbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #B0281A !important; -} -button.action .label { - padding: 0 17px !important; -} -button.action:active .label { - color: #333 !important; -} -button.bluebtn:active .label, button.greenbtn:active .label, button.redbtn:active .label { - color: #FFF !important; -} diff --git a/build/TrifiliarSuspension/css/trifiliar.css b/build/TrifiliarSuspension/css/trifiliar.css deleted file mode 100755 index ece9ea6..0000000 --- a/build/TrifiliarSuspension/css/trifiliar.css +++ /dev/null @@ -1,153 +0,0 @@ -*{ - margin:0; - padding:0; -} -#tabs{ - height: auto; - margin-left: auto; - margin-right: auto; - width: 1335px; -} -#diagram{ - position: relative; -} -#calculation{ - height: 521px; - left: 815px; - position: absolute; - top: 143px; - width: 528px; -} -#fieldset1{ - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - margin-bottom: 1px; - padding-bottom: 2px; - margin-top: 11px; - border:none; -} -#fieldset1 label{ - margin-left: 15px; - font: bold 12px Georgia, "Times New Roman", Times, serif; - outline: none; - padding: 3px; -} -#fieldset1 input{ - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px 3px 3px 3px; - font: 15px Georgia,"Times New Roman",Times,serif; - margin-bottom: 0px; - padding: 5px; - width: 120px; - margin-top:5px; -} -.input_label{ - margin-left: 17px; -} -#fieldset2{ - background: #b9cf6a; - background: rgba(23, 150, 230, 0.3); - border-color: #e3ebc3; - border-color: rgba(255,255,255,.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 30px; - list-style: none; - border:none; - font-size: 14px; -} -#fieldset2 button{ - margin-left: 20px; -} -#button2{ - -} -#button_set{ - height: 271px; - margin-left: 812px; - position: absolute; - top: 391px; - width: 528px; -} -#textbox1{ - margin-left: 51px; -} -#textbox2{ - margin-left: 53px; -} -#textbox3{ - margin-left: 58px; -} -#textbox4{ - margin-left: 54px; -} -#textbox5{ - margin-left: 56px; -} -#textbox6{ - margin-left: 1px; -} -#button1{ - margin-left: 20px; -} -#textbox7{ - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px 3px 3px 3px; - font: 15px Georgia,"Times New Roman",Times,serif; - margin-left: 123px; - width: 120px; - padding:5px; -} -#oscil{ - height: 40px; - left: 505px; - position: absolute; - top: 130px; - width: 70px; - color:white; - font-size:30px; -} -#timer{ - height: 45px; - left: 690px; - position: absolute; - top: 135px; - width: 90px; - color:white; - font-size:25px; -} -#period{ - height: 45px; - left: 687px; - position: absolute; - top: 245px; - width: 90px; - color:white; - font-size:25px; -} -#JFormula{ - margin-bottom: 13px; - width: 250px; - margin-left: 20px; -} -#JoFormula{ - margin-top:10px; - width:129px; - margin-left: 20px; -} - - diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png deleted file mode 100755 index 954e22d..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png deleted file mode 100755 index 64ece57..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png deleted file mode 100755 index abdc010..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png deleted file mode 100755 index 9b383f4..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png deleted file mode 100755 index a23baad..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100755 index 42ccba2..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png deleted file mode 100755 index 39d5824..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png deleted file mode 100755 index f127367..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png deleted file mode 100755 index 359397a..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_222222_256x240.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_222222_256x240.png deleted file mode 100755 index b273ff1..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_222222_256x240.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_228ef1_256x240.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_228ef1_256x240.png deleted file mode 100755 index a641a37..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_228ef1_256x240.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_ef8c08_256x240.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_ef8c08_256x240.png deleted file mode 100755 index 85e63e9..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_ef8c08_256x240.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_ffd27a_256x240.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_ffd27a_256x240.png deleted file mode 100755 index e117eff..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_ffd27a_256x240.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_ffffff_256x240.png b/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_ffffff_256x240.png deleted file mode 100755 index 42f8f99..0000000 Binary files a/build/TrifiliarSuspension/css/ui-lightness/images/ui-icons_ffffff_256x240.png and /dev/null differ diff --git a/build/TrifiliarSuspension/css/ui-lightness/jquery-ui-1.8.14.custom.css b/build/TrifiliarSuspension/css/ui-lightness/jquery-ui-1.8.14.custom.css deleted file mode 100755 index 0069d61..0000000 --- a/build/TrifiliarSuspension/css/ui-lightness/jquery-ui-1.8.14.custom.css +++ /dev/null @@ -1,568 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family:Calibri; font-size: 16px; } -.ui-widget .ui-widget { font-size: 16px; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family:Calibri; font-size: 1em; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* - * jQuery UI Resizable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * jQuery UI Accordion 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } -/* - * jQuery UI Autocomplete 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.14 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * jQuery UI Button 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Dialog 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * jQuery UI Slider 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * jQuery UI Tabs 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } -/* - * jQuery UI Datepicker 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * jQuery UI Progressbar 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/build/TrifiliarSuspension/default.html b/build/TrifiliarSuspension/default.html deleted file mode 100755 index f770b6e..0000000 --- a/build/TrifiliarSuspension/default.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - -
      - - - -
      - - - - - - - -
      - - - -
      - - - -
      - - Simple Pendulum - -
      - - - - - -
      - - -
      - -
      - - -
      - - -
      - Introduction -
      - - -
      -

      - In this module, basic concepts of simple oscillator - are explained. Initially, an example of simple - pendulum is taken and the basic terminology i.e., - what is initial displacement, - initial velocity,natural frequency - and time period are explained. - Each of these terms is illustrated by giving an - example, where user can enter his value and observe - the behavior of structure for his input. -

      - -

      - Simple harmonic oscillator consists of a - mass (m) hanging from a string of - length (l), fixed at a pivot point P. - When the mass is displaced from its mean - position by giving some initial displacement - (angle), oscillator starts swinging back and fourth - with periodic motion. -

      - - pendulum -
      - - -
      - - -
      - -
      - - -
      - - -
      - Theory -
      - - - -
      -

      - There are two solutions to \(ax^2 + bx + c = 0\) and - they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - By applying Newton's second law for - rotational systems, the equation of motion for the - pendulum may be obtained. -

      - -

      - Where, τ = Torque ; I = - Moment of Inertia; α = - Angular Velocity. m is mass of the - oscillator, l is the length of the oscillator and theta is initial - displacement. The above equation can be rearranged as -

      - -

      - If the amplitude of - angular displacement is - small then we can use the approximation - (sinθ ≈ θ). - By considering the above approximation, the equation - of motion reduces to : -

      - -

      - The solution for equation of simple harmonic oscillator is -

      - -

      - where, θ(t) is the history of oscillation, - θ0 is the initial angle, - &omega=(g/l)1/2 is the - natural frequency of - the motion. -

      -
      -
      - - -
      - -
      - - -
      - -
      - Objective -
      - -
      -

      - Objective of simple harmonic oscillator experiment - is to understand the concept of time period - (natural frequency) in harmonic - oscillations . -

      - -
      - -
      - - -
      - -
      - - -
      - -
      - Experiment -
      - -
      -

      - -

      -
      - -
      - -
      - -
      - - -
      - -
      - Manual -
      - -
      -

      - Start the experiment with the default values of - length, mass and intial displacement (in angle). - Pause the experiment after few cycles and note - the observation. -

      - -

      Observation 1:

      -
        - -
      1. - Find the time period of the pendulum by noting the - time interval of any one complete cycle from the - response graph. -
      2. - -
      3. - You may note that this time period value is same - for any complete cycle. - Read More -
      4. - -
      - -
      - -
      - -
      - -
      - - -
      - -
      - Quizzes -
      - -
      - -

      - - Q1. - Time taken for one complete oscillation - is called Time Period of the oscillator.
      - - True
      - - False

      - - Q2. - Time period of the oscillator is constant for - given values of mass, length and initial - conditions.
      - - True
      - - False

      - - Q3. - Value of Time period depends on initial - conditions.
      - - True
      - - False

      - - Q4. - Value of time period depends on mass.
      - - True
      - - False

      - - Q5. - Value of time period depends on length of the - oscillator.
      - - True
      - - False

      - -

      - -
      - -
      - -
      - -
      - - -
      - -
      - Procedure -
      - -
      -

      - Procedure for the experiment is as follows -

      -
      - -
      - - -
      - -
      - - -
      - -
      - Further Readings -
      - -
      - -
      - -
      - -
      - - - - - - - -
      - -
      - -
      - - - -
      - -
      - -
      - - - diff --git a/build/TrifiliarSuspension/index.html b/build/TrifiliarSuspension/index.html deleted file mode 100755 index 294c518..0000000 --- a/build/TrifiliarSuspension/index.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      - - - - - - - - - - - - diff --git a/build/TrifiliarSuspension/js/jquery-1.5.1.min.js b/build/TrifiliarSuspension/js/jquery-1.5.1.min.js deleted file mode 100755 index 6437874..0000000 --- a/build/TrifiliarSuspension/js/jquery-1.5.1.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * jQuery JavaScript Library v1.5.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: Wed Feb 23 13:55:29 2011 -0500 - */ -(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="
      a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
      ",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
      t
      ";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div
      ","
      "]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
      ").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
      ";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file diff --git a/build/TrifiliarSuspension/js/jquery-ui-1.8.14.custom.min b/build/TrifiliarSuspension/js/jquery-ui-1.8.14.custom.min deleted file mode 100755 index 47aab68..0000000 --- a/build/TrifiliarSuspension/js/jquery-ui-1.8.14.custom.min +++ /dev/null @@ -1,3 +0,0 @@ -$(document).ready(function() -{ -} \ No newline at end of file diff --git a/build/TrifiliarSuspension/js/jquery-ui-1.8.14.custom.min.js b/build/TrifiliarSuspension/js/jquery-ui-1.8.14.custom.min.js deleted file mode 100755 index f9e4f1e..0000000 --- a/build/TrifiliarSuspension/js/jquery-ui-1.8.14.custom.min.js +++ /dev/null @@ -1,789 +0,0 @@ -/*! - * jQuery UI 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.14", -keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus(); -b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this, -"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", -function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth, -outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,"tabindex"),d=isNaN(b); -return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e= -0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= -false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -;/* - * jQuery UI Position 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Position - */ -(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, -left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= -k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= -m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= -d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= -a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), -g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); -;/* - * jQuery UI Draggable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('
      ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;this.helper= -this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); -this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true}, -_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b= -false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration, -10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle|| -!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&& -a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent= -this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"), -10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"), -10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, -(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!= -"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"), -10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+ -this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&& -!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.leftg[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.topg[3])?h:!(h-this.offset.click.topg[2])?e:!(e-this.offset.click.left=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= -i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); -var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= -false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); -this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= -{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; -if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false}, -_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f, -{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight: -Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(cb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left= -null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ -a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+ -c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]); -b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.14"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(), -10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top- -f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType? -e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a= -e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing, -step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= -e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset; -var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left: -a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top- -d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition, -f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, -display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b= -e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height= -d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); -;/* - * jQuery UI Selectable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
      ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", -c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= -this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a=== -"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&& -!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, -left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); -return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], -e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); -c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): -this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, -toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); -if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), -this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= -this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= -d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| -0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", -a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- -f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- -this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, -this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", -a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); -a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", -function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= -this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); -b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); -a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ -c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; -if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); -if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), -e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| -e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", -"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.14", -animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); -f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", -paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); -;/* - * jQuery UI Autocomplete 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.position.js - */ -(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g= -false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= -a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; -this.menu=d("
        ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& -a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); -d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& -b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= -this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, -"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); -(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); -this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b, -this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("");e.secondary&&a.append("");if(!this.options.text){d.push(f?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")=== -"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); -b.Widget.prototype.destroy.call(this)}})})(jQuery); -;/* - * jQuery UI Dialog 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.button.js - * jquery.ui.draggable.js - * jquery.ui.mouse.js - * jquery.ui.position.js - * jquery.ui.resizable.js - */ -(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, -position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
        ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
        ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= -1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== -f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
        ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
        ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, -function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", -handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, -originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", -f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): -[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); -if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): -e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= -this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.14",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), -create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), -height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(a.range==="min"||a.range==="max"?" ui-slider-range-"+a.range:""))}for(var j=c.length;j"); -this.handles=c.add(d(e.join("")).appendTo(b.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", -g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!b.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");i=b._start(g,l);if(i===false)return}break}m=b.options.step;i=b.options.values&&b.options.values.length? -(h=b.values(l)):(h=b.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=b._valueMin();break;case d.ui.keyCode.END:h=b._valueMax();break;case d.ui.keyCode.PAGE_UP:h=b._trimAlignValue(i+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(i-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===b._valueMax())return;h=b._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===b._valueMin())return;h=b._trimAlignValue(i- -m);break}b._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(g,k);b._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); -return this},_mouseCapture:function(b){var a=this.options,c,f,e,j,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(a.range===true&&this.values(1)===a.min){g+=1;e=d(this.handles[g])}if(this._start(b,g)===false)return false; -this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();a=e.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-e.width()/2,top:b.pageY-a.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(b){var a= -this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;if(this.orientation==="horizontal"){a= -this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a); -c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var f;if(this.options.values&&this.options.values.length){f=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>f||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, -_refreshValue:function(){var b=this.options.range,a=this.options,c=this,f=!this._animateOff?a.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},a.animate); -if(h===1)c.range[f?"animate":"css"]({width:e-g+"%"},{queue:false,duration:a.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},a.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:a.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, -1)[f?"animate":"css"]({width:e+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Tabs 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
        ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
      • #{label}
      • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.14"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k'))}function N(a){return a.bind("mouseout",function(b){b= -d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b.addClass("ui-state-hover"); -b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.14"}});var A=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){H(this._defaults, -a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0, -selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('
        '))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]= -h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c= -this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a, -"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", -function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput); -a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left", -this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus", -this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b= -b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5", -cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a); -d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c= -d.datepicker._get(b,"beforeShow");H(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c= -{left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover"); -if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv); -J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"); -a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]|| -c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+ -i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b= -this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute", -left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&& -d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth= -b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear= -!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a); -a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a)); -d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()% -100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=B+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y", -TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay= -a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(), -b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n= -this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+s+"":f?"":''+s+"";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
        '+(c?h:"")+(this._isInRange(a,s)?'":"")+(c?"":h)+"
        ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),B= -this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right": -"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='
        '+(/all|left/.test(t)&&x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,B,v)+'
        ';var z=j?'": -"";for(t=0;t<7;t++){var r=(t+h)%7;z+="=5?' class="ui-datepicker-week-end"':"")+'>'+q[r]+""}y+=z+"";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q";var R=!j?"":'";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&ro;R+='";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+""}g++;if(g>11){g=0;m++}y+="
        '+this._get(a,"weekHeader")+"
        '+ -this._get(a,"calculateWeek")(r)+""+(F&&!D?" ":L?''+r.getDate()+"":''+ -r.getDate()+"")+"
        "+(l?""+(i[0]>0&&G==i[1]-1?'
        ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"), -l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
        ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()): -g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
        ";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c== -"Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear"); -if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); -c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, -"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= -function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker, -[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.14";window["DP_jQuery_"+A]=d})(jQuery); -;/* - * jQuery UI Progressbar 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
        ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* -this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Effects 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/ - */ -jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], -16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, -a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= -a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", -"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, -0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, -211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, -d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; -f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, -[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.14",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}); -c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c, -a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments); -a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%", -"pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d* -((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/= -e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/= -e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); -;/* - * jQuery UI Effects Fade 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fade - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Fold 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * jquery.effects.core.js - */ -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], -10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); -;/* - * jQuery UI Effects Highlight 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Pulsate 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * jquery.effects.core.js - */ -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); -b.dequeue()})})}})(jQuery); -; \ No newline at end of file diff --git a/build/TrifiliarSuspension/js/raphael.js b/build/TrifiliarSuspension/js/raphael.js deleted file mode 100755 index 6688d5e..0000000 --- a/build/TrifiliarSuspension/js/raphael.js +++ /dev/null @@ -1,3725 +0,0 @@ -/*! - * Raphael 1.5.2 - JavaScript Vector Library - * - * Copyright (c) 2010 Dmitry Baranovskiy (http://raphaeljs.com) - * Licensed under the MIT (http://raphaeljs.com/license.html) license. - */ -(function () { - function R() { - if (R.is(arguments[0], array)) { - var a = arguments[0], - cnv = create[apply](R, a.splice(0, 3 + R.is(a[0], nu))), - res = cnv.set(); - for (var i = 0, ii = a[length]; i < ii; i++) { - var j = a[i] || {}; - elements[has](j.type) && res[push](cnv[j.type]().attr(j)); - } - return res; - } - return create[apply](R, arguments); - } - R.version = "1.5.2"; - var separator = /[, ]+/, - elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1}, - formatrg = /\{(\d+)\}/g, - proto = "prototype", - has = "hasOwnProperty", - doc = document, - win = window, - oldRaphael = { - was: Object[proto][has].call(win, "Raphael"), - is: win.Raphael - }, - Paper = function () { - this.customAttributes = {}; - }, - paperproto, - appendChild = "appendChild", - apply = "apply", - concat = "concat", - supportsTouch = "createTouch" in doc, - E = "", - S = " ", - Str = String, - split = "split", - events = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend"[split](S), - touchMap = { - mousedown: "touchstart", - mousemove: "touchmove", - mouseup: "touchend" - }, - join = "join", - length = "length", - lowerCase = Str[proto].toLowerCase, - math = Math, - mmax = math.max, - mmin = math.min, - abs = math.abs, - pow = math.pow, - PI = math.PI, - nu = "number", - string = "string", - array = "array", - toString = "toString", - fillString = "fill", - objectToString = Object[proto][toString], - paper = {}, - push = "push", - ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i, - colourRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i, - isnan = {"NaN": 1, "Infinity": 1, "-Infinity": 1}, - bezierrg = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/, - round = math.round, - setAttribute = "setAttribute", - toFloat = parseFloat, - toInt = parseInt, - ms = " progid:DXImageTransform.Microsoft", - upperCase = Str[proto].toUpperCase, - availableAttrs = {blur: 0, "clip-rect": "0 0 1e9 1e9", cursor: "default", cx: 0, cy: 0, fill: "#fff", "fill-opacity": 1, font: '10px "Arial"', "font-family": '"Arial"', "font-size": "10", "font-style": "normal", "font-weight": 400, gradient: 0, height: 0, href: "http://raphaeljs.com/", opacity: 1, path: "M0,0", r: 0, rotation: 0, rx: 0, ry: 0, scale: "1 1", src: "", stroke: "#000", "stroke-dasharray": "", "stroke-linecap": "butt", "stroke-linejoin": "butt", "stroke-miterlimit": 0, "stroke-opacity": 1, "stroke-width": 1, target: "_blank", "text-anchor": "middle", title: "Raphael", translation: "0 0", width: 0, x: 0, y: 0}, - availableAnimAttrs = {along: "along", blur: nu, "clip-rect": "csv", cx: nu, cy: nu, fill: "colour", "fill-opacity": nu, "font-size": nu, height: nu, opacity: nu, path: "path", r: nu, rotation: "csv", rx: nu, ry: nu, scale: "csv", stroke: "colour", "stroke-opacity": nu, "stroke-width": nu, translation: "csv", width: nu, x: nu, y: nu}, - rp = "replace", - animKeyFrames= /^(from|to|\d+%?)$/, - commaSpaces = /\s*,\s*/, - hsrg = {hs: 1, rg: 1}, - p2s = /,?([achlmqrstvxz]),?/gi, - pathCommand = /([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig, - pathValues = /(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig, - radial_gradient = /^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/, - sortByKey = function (a, b) { - return a.key - b.key; - }; - - R.type = (win.SVGAngle || doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML"); - if (R.type == "VML") { - var d = doc.createElement("div"), - b; - d.innerHTML = ''; - b = d.firstChild; - b.style.behavior = "url(#default#VML)"; - if (!(b && typeof b.adj == "object")) { - return R.type = null; - } - d = null; - } - R.svg = !(R.vml = R.type == "VML"); - Paper[proto] = R[proto]; - paperproto = Paper[proto]; - R._id = 0; - R._oid = 0; - R.fn = {}; - R.is = function (o, type) { - type = lowerCase.call(type); - if (type == "finite") { - return !isnan[has](+o); - } - return (type == "null" && o === null) || - (type == typeof o) || - (type == "object" && o === Object(o)) || - (type == "array" && Array.isArray && Array.isArray(o)) || - objectToString.call(o).slice(8, -1).toLowerCase() == type; - }; - R.angle = function (x1, y1, x2, y2, x3, y3) { - if (x3 == null) { - var x = x1 - x2, - y = y1 - y2; - if (!x && !y) { - return 0; - } - return ((x < 0) * 180 + math.atan(-y / -x) * 180 / PI + 360) % 360; - } else { - return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3); - } - }; - R.rad = function (deg) { - return deg % 360 * PI / 180; - }; - R.deg = function (rad) { - return rad * 180 / PI % 360; - }; - R.snapTo = function (values, value, tolerance) { - tolerance = R.is(tolerance, "finite") ? tolerance : 10; - if (R.is(values, array)) { - var i = values.length; - while (i--) if (abs(values[i] - value) <= tolerance) { - return values[i]; - } - } else { - values = +values; - var rem = value % values; - if (rem < tolerance) { - return value - rem; - } - if (rem > values - tolerance) { - return value - rem + values; - } - } - return value; - }; - function createUUID() { - // http://www.ietf.org/rfc/rfc4122.txt - var s = [], - i = 0; - for (; i < 32; i++) { - s[i] = (~~(math.random() * 16))[toString](16); - } - s[12] = 4; // bits 12-15 of the time_hi_and_version field to 0010 - s[16] = ((s[16] & 3) | 8)[toString](16); // bits 6-7 of the clock_seq_hi_and_reserved to 01 - return "r-" + s[join](""); - } - - R.setWindow = function (newwin) { - win = newwin; - doc = win.document; - }; - // colour utilities - var toHex = function (color) { - if (R.vml) { - // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/ - var trim = /^\s+|\s+$/g; - var bod; - try { - var docum = new ActiveXObject("htmlfile"); - docum.write(""); - docum.close(); - bod = docum.body; - } catch(e) { - bod = createPopup().document.body; - } - var range = bod.createTextRange(); - toHex = cacher(function (color) { - try { - bod.style.color = Str(color)[rp](trim, E); - var value = range.queryCommandValue("ForeColor"); - value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16); - return "#" + ("000000" + value[toString](16)).slice(-6); - } catch(e) { - return "none"; - } - }); - } else { - var i = doc.createElement("i"); - i.title = "Rapha\xebl Colour Picker"; - i.style.display = "none"; - doc.body[appendChild](i); - toHex = cacher(function (color) { - i.style.color = color; - return doc.defaultView.getComputedStyle(i, E).getPropertyValue("color"); - }); - } - return toHex(color); - }, - hsbtoString = function () { - return "hsb(" + [this.h, this.s, this.b] + ")"; - }, - hsltoString = function () { - return "hsl(" + [this.h, this.s, this.l] + ")"; - }, - rgbtoString = function () { - return this.hex; - }; - R.hsb2rgb = function (h, s, b, o) { - if (R.is(h, "object") && "h" in h && "s" in h && "b" in h) { - b = h.b; - s = h.s; - h = h.h; - o = h.o; - } - return R.hsl2rgb(h, s, b / 2, o); - }; - R.hsl2rgb = function (h, s, l, o) { - if (R.is(h, "object") && "h" in h && "s" in h && "l" in h) { - l = h.l; - s = h.s; - h = h.h; - } - if (h > 1 || s > 1 || l > 1) { - h /= 360; - s /= 100; - l /= 100; - } - var rgb = {}, - channels = ["r", "g", "b"], - t2, t1, t3, r, g, b; - if (!s) { - rgb = { - r: l, - g: l, - b: l - }; - } else { - if (l < .5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } - t1 = 2 * l - t2; - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - t3 < 0 && t3++; - t3 > 1 && t3--; - if (t3 * 6 < 1) { - rgb[channels[i]] = t1 + (t2 - t1) * 6 * t3; - } else if (t3 * 2 < 1) { - rgb[channels[i]] = t2; - } else if (t3 * 3 < 2) { - rgb[channels[i]] = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - rgb[channels[i]] = t1; - } - } - } - rgb.r *= 255; - rgb.g *= 255; - rgb.b *= 255; - rgb.hex = "#" + (16777216 | rgb.b | (rgb.g << 8) | (rgb.r << 16)).toString(16).slice(1); - R.is(o, "finite") && (rgb.opacity = o); - rgb.toString = rgbtoString; - return rgb; - }; - R.rgb2hsb = function (red, green, blue) { - if (green == null && R.is(red, "object") && "r" in red && "g" in red && "b" in red) { - blue = red.b; - green = red.g; - red = red.r; - } - if (green == null && R.is(red, string)) { - var clr = R.getRGB(red); - red = clr.r; - green = clr.g; - blue = clr.b; - } - if (red > 1 || green > 1 || blue > 1) { - red /= 255; - green /= 255; - blue /= 255; - } - var max = mmax(red, green, blue), - min = mmin(red, green, blue), - hue, - saturation, - brightness = max; - if (min == max) { - return {h: 0, s: 0, b: max, toString: hsbtoString}; - } else { - var delta = (max - min); - saturation = delta / max; - if (red == max) { - hue = (green - blue) / delta; - } else if (green == max) { - hue = 2 + ((blue - red) / delta); - } else { - hue = 4 + ((red - green) / delta); - } - hue /= 6; - hue < 0 && hue++; - hue > 1 && hue--; - } - return {h: hue, s: saturation, b: brightness, toString: hsbtoString}; - }; - R.rgb2hsl = function (red, green, blue) { - if (green == null && R.is(red, "object") && "r" in red && "g" in red && "b" in red) { - blue = red.b; - green = red.g; - red = red.r; - } - if (green == null && R.is(red, string)) { - var clr = R.getRGB(red); - red = clr.r; - green = clr.g; - blue = clr.b; - } - if (red > 1 || green > 1 || blue > 1) { - red /= 255; - green /= 255; - blue /= 255; - } - var max = mmax(red, green, blue), - min = mmin(red, green, blue), - h, - s, - l = (max + min) / 2, - hsl; - if (min == max) { - hsl = {h: 0, s: 0, l: l}; - } else { - var delta = max - min; - s = l < .5 ? delta / (max + min) : delta / (2 - max - min); - if (red == max) { - h = (green - blue) / delta; - } else if (green == max) { - h = 2 + (blue - red) / delta; - } else { - h = 4 + (red - green) / delta; - } - h /= 6; - h < 0 && h++; - h > 1 && h--; - hsl = {h: h, s: s, l: l}; - } - hsl.toString = hsltoString; - return hsl; - }; - R._path2string = function () { - return this.join(",")[rp](p2s, "$1"); - }; - function cacher(f, scope, postprocessor) { - function newf() { - var arg = Array[proto].slice.call(arguments, 0), - args = arg[join]("\u25ba"), - cache = newf.cache = newf.cache || {}, - count = newf.count = newf.count || []; - if (cache[has](args)) { - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - count[length] >= 1e3 && delete cache[count.shift()]; - count[push](args); - cache[args] = f[apply](scope, arg); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - return newf; - } - - R.getRGB = cacher(function (colour) { - if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1}; - } - if (colour == "none") { - return {r: -1, g: -1, b: -1, hex: "none"}; - } - !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour)); - var res, - red, - green, - blue, - opacity, - t, - values, - rgb = colour.match(colourRegExp); - if (rgb) { - if (rgb[2]) { - blue = toInt(rgb[2].substring(5), 16); - green = toInt(rgb[2].substring(3, 5), 16); - red = toInt(rgb[2].substring(1, 3), 16); - } - if (rgb[3]) { - blue = toInt((t = rgb[3].charAt(3)) + t, 16); - green = toInt((t = rgb[3].charAt(2)) + t, 16); - red = toInt((t = rgb[3].charAt(1)) + t, 16); - } - if (rgb[4]) { - values = rgb[4][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - } - if (rgb[5]) { - values = rgb[5][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsb2rgb(red, green, blue, opacity); - } - if (rgb[6]) { - values = rgb[6][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsl2rgb(red, green, blue, opacity); - } - rgb = {r: red, g: green, b: blue}; - rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1); - R.is(opacity, "finite") && (rgb.opacity = opacity); - return rgb; - } - return {r: -1, g: -1, b: -1, hex: "none", error: 1}; - }, R); - R.getColor = function (value) { - var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75}, - rgb = this.hsb2rgb(start.h, start.s, start.b); - start.h += .075; - if (start.h > 1) { - start.h = 0; - start.s -= .2; - start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b}); - } - return rgb.hex; - }; - R.getColor.reset = function () { - delete this.start; - }; - // path utilities - R.parsePathString = cacher(function (pathString) { - if (!pathString) { - return null; - } - var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0}, - data = []; - if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption - data = pathClone(pathString); - } - if (!data[length]) { - Str(pathString)[rp](pathCommand, function (a, b, c) { - var params = [], - name = lowerCase.call(b); - c[rp](pathValues, function (a, b) { - b && params[push](+b); - }); - if (name == "m" && params[length] > 2) { - data[push]([b][concat](params.splice(0, 2))); - name = "l"; - b = b == "m" ? "l" : "L"; - } - while (params[length] >= paramCounts[name]) { - data[push]([b][concat](params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - }); - } - data[toString] = R._path2string; - return data; - }); - R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t, - x = pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y = pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y, - mx = p1x + 2 * t * (c1x - p1x) + t * t * (c2x - 2 * c1x + p1x), - my = p1y + 2 * t * (c1y - p1y) + t * t * (c2y - 2 * c1y + p1y), - nx = c1x + 2 * t * (c2x - c1x) + t * t * (p2x - 2 * c2x + c1x), - ny = c1y + 2 * t * (c2y - c1y) + t * t * (p2y - 2 * c2y + c1y), - ax = (1 - t) * p1x + t * c1x, - ay = (1 - t) * p1y + t * c1y, - cx = (1 - t) * c2x + t * p2x, - cy = (1 - t) * c2y + t * p2y, - alpha = (90 - math.atan((mx - nx) / (my - ny)) * 180 / PI); - (mx > nx || my < ny) && (alpha += 180); - return {x: x, y: y, m: {x: mx, y: my}, n: {x: nx, y: ny}, start: {x: ax, y: ay}, end: {x: cx, y: cy}, alpha: alpha}; - }; - var pathDimensions = cacher(function (path) { - if (!path) { - return {x: 0, y: 0, width: 0, height: 0}; - } - path = path2curve(path); - var x = 0, - y = 0, - X = [], - Y = [], - p; - for (var i = 0, ii = path[length]; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = p[1]; - y = p[2]; - X[push](x); - Y[push](y); - } else { - var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - X = X[concat](dim.min.x, dim.max.x); - Y = Y[concat](dim.min.y, dim.max.y); - x = p[5]; - y = p[6]; - } - } - var xmin = mmin[apply](0, X), - ymin = mmin[apply](0, Y); - return { - x: xmin, - y: ymin, - width: mmax[apply](0, X) - xmin, - height: mmax[apply](0, Y) - ymin - }; - }), - pathClone = function (pathArray) { - var res = []; - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - for (var i = 0, ii = pathArray[length]; i < ii; i++) { - res[i] = []; - for (var j = 0, jj = pathArray[i][length]; j < jj; j++) { - res[i][j] = pathArray[i][j]; - } - } - res[toString] = R._path2string; - return res; - }, - pathToRelative = cacher(function (pathArray) { - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = pathArray[0][1]; - y = pathArray[0][2]; - mx = x; - my = y; - start++; - res[push](["M", x, y]); - } - for (var i = start, ii = pathArray[length]; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != lowerCase.call(pa[0])) { - r[0] = lowerCase.call(pa[0]); - switch (r[0]) { - case "a": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] - x).toFixed(3); - r[7] = +(pa[7] - y).toFixed(3); - break; - case "v": - r[1] = +(pa[1] - y).toFixed(3); - break; - case "m": - mx = pa[1]; - my = pa[2]; - default: - for (var j = 1, jj = pa[length]; j < jj; j++) { - r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3); - } - } - } else { - r = res[i] = []; - if (pa[0] == "m") { - mx = pa[1] + x; - my = pa[2] + y; - } - for (var k = 0, kk = pa[length]; k < kk; k++) { - res[i][k] = pa[k]; - } - } - var len = res[i][length]; - switch (res[i][0]) { - case "z": - x = mx; - y = my; - break; - case "h": - x += +res[i][len - 1]; - break; - case "v": - y += +res[i][len - 1]; - break; - default: - x += +res[i][len - 2]; - y += +res[i][len - 1]; - } - } - res[toString] = R._path2string; - return res; - }, 0, pathClone), - pathToAbsolute = cacher(function (pathArray) { - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = +pathArray[0][1]; - y = +pathArray[0][2]; - mx = x; - my = y; - start++; - res[0] = ["M", x, y]; - } - for (var i = start, ii = pathArray[length]; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != upperCase.call(pa[0])) { - r[0] = upperCase.call(pa[0]); - switch (r[0]) { - case "A": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] + x); - r[7] = +(pa[7] + y); - break; - case "V": - r[1] = +pa[1] + y; - break; - case "H": - r[1] = +pa[1] + x; - break; - case "M": - mx = +pa[1] + x; - my = +pa[2] + y; - default: - for (var j = 1, jj = pa[length]; j < jj; j++) { - r[j] = +pa[j] + ((j % 2) ? x : y); - } - } - } else { - for (var k = 0, kk = pa[length]; k < kk; k++) { - res[i][k] = pa[k]; - } - } - switch (r[0]) { - case "Z": - x = mx; - y = my; - break; - case "H": - x = r[1]; - break; - case "V": - y = r[1]; - break; - case "M": - mx = res[i][res[i][length] - 2]; - my = res[i][res[i][length] - 1]; - default: - x = res[i][res[i][length] - 2]; - y = res[i][res[i][length] - 1]; - } - } - res[toString] = R._path2string; - return res; - }, null, pathClone), - l2c = function (x1, y1, x2, y2) { - return [x1, y1, x2, y2, x2, y2]; - }, - q2c = function (x1, y1, ax, ay, x2, y2) { - var _13 = 1 / 3, - _23 = 2 / 3; - return [ - _13 * x1 + _23 * ax, - _13 * y1 + _23 * ay, - _13 * x2 + _23 * ax, - _13 * y2 + _23 * ay, - x2, - y2 - ]; - }, - a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { - // for more information of where this math came from visit: - // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes - var _120 = PI * 120 / 180, - rad = PI / 180 * (+angle || 0), - res = [], - xy, - rotate = cacher(function (x, y, rad) { - var X = x * math.cos(rad) - y * math.sin(rad), - Y = x * math.sin(rad) + y * math.cos(rad); - return {x: X, y: Y}; - }); - if (!recursive) { - xy = rotate(x1, y1, -rad); - x1 = xy.x; - y1 = xy.y; - xy = rotate(x2, y2, -rad); - x2 = xy.x; - y2 = xy.y; - var cos = math.cos(PI / 180 * angle), - sin = math.sin(PI / 180 * angle), - x = (x1 - x2) / 2, - y = (y1 - y2) / 2; - var h = (x * x) / (rx * rx) + (y * y) / (ry * ry); - if (h > 1) { - h = math.sqrt(h); - rx = h * rx; - ry = h * ry; - } - var rx2 = rx * rx, - ry2 = ry * ry, - k = (large_arc_flag == sweep_flag ? -1 : 1) * - math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))), - cx = k * rx * y / ry + (x1 + x2) / 2, - cy = k * -ry * x / rx + (y1 + y2) / 2, - f1 = math.asin(((y1 - cy) / ry).toFixed(9)), - f2 = math.asin(((y2 - cy) / ry).toFixed(9)); - - f1 = x1 < cx ? PI - f1 : f1; - f2 = x2 < cx ? PI - f2 : f2; - f1 < 0 && (f1 = PI * 2 + f1); - f2 < 0 && (f2 = PI * 2 + f2); - if (sweep_flag && f1 > f2) { - f1 = f1 - PI * 2; - } - if (!sweep_flag && f2 > f1) { - f2 = f2 - PI * 2; - } - } else { - f1 = recursive[0]; - f2 = recursive[1]; - cx = recursive[2]; - cy = recursive[3]; - } - var df = f2 - f1; - if (abs(df) > _120) { - var f2old = f2, - x2old = x2, - y2old = y2; - f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); - x2 = cx + rx * math.cos(f2); - y2 = cy + ry * math.sin(f2); - res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); - } - df = f2 - f1; - var c1 = math.cos(f1), - s1 = math.sin(f1), - c2 = math.cos(f2), - s2 = math.sin(f2), - t = math.tan(df / 4), - hx = 4 / 3 * rx * t, - hy = 4 / 3 * ry * t, - m1 = [x1, y1], - m2 = [x1 + hx * s1, y1 - hy * c1], - m3 = [x2 + hx * s2, y2 - hy * c2], - m4 = [x2, y2]; - m2[0] = 2 * m1[0] - m2[0]; - m2[1] = 2 * m1[1] - m2[1]; - if (recursive) { - return [m2, m3, m4][concat](res); - } else { - res = [m2, m3, m4][concat](res)[join]()[split](","); - var newres = []; - for (var i = 0, ii = res[length]; i < ii; i++) { - newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; - } - return newres; - } - }, - findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t; - return { - x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y - }; - }, - curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x), - b = 2 * (c1x - p1x) - 2 * (c2x - c1x), - c = p1x - c1x, - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a, - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a, - y = [p1y, p2y], - x = [p1x, p2x], - dot; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x[push](dot.x); - y[push](dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x[push](dot.x); - y[push](dot.y); - } - a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y); - b = 2 * (c1y - p1y) - 2 * (c2y - c1y); - c = p1y - c1y; - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a; - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x[push](dot.x); - y[push](dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x[push](dot.x); - y[push](dot.y); - } - return { - min: {x: mmin[apply](0, x), y: mmin[apply](0, y)}, - max: {x: mmax[apply](0, x), y: mmax[apply](0, y)} - }; - }), - path2curve = cacher(function (path, path2) { - var p = pathToAbsolute(path), - p2 = path2 && pathToAbsolute(path2), - attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - processPath = function (path, d) { - var nx, ny; - if (!path) { - return ["C", d.x, d.y, d.x, d.y, d.x, d.y]; - } - !(path[0] in {T:1, Q:1}) && (d.qx = d.qy = null); - switch (path[0]) { - case "M": - d.X = path[1]; - d.Y = path[2]; - break; - case "A": - path = ["C"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1)))); - break; - case "S": - nx = d.x + (d.x - (d.bx || d.x)); - ny = d.y + (d.y - (d.by || d.y)); - path = ["C", nx, ny][concat](path.slice(1)); - break; - case "T": - d.qx = d.x + (d.x - (d.qx || d.x)); - d.qy = d.y + (d.y - (d.qy || d.y)); - path = ["C"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])); - break; - case "Q": - d.qx = path[1]; - d.qy = path[2]; - path = ["C"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4])); - break; - case "L": - path = ["C"][concat](l2c(d.x, d.y, path[1], path[2])); - break; - case "H": - path = ["C"][concat](l2c(d.x, d.y, path[1], d.y)); - break; - case "V": - path = ["C"][concat](l2c(d.x, d.y, d.x, path[1])); - break; - case "Z": - path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y)); - break; - } - return path; - }, - fixArc = function (pp, i) { - if (pp[i][length] > 7) { - pp[i].shift(); - var pi = pp[i]; - while (pi[length]) { - pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6))); - } - pp.splice(i, 1); - ii = mmax(p[length], p2 && p2[length] || 0); - } - }, - fixM = function (path1, path2, a1, a2, i) { - if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") { - path2.splice(i, 0, ["M", a2.x, a2.y]); - a1.bx = 0; - a1.by = 0; - a1.x = path1[i][1]; - a1.y = path1[i][2]; - ii = mmax(p[length], p2 && p2[length] || 0); - } - }; - for (var i = 0, ii = mmax(p[length], p2 && p2[length] || 0); i < ii; i++) { - p[i] = processPath(p[i], attrs); - fixArc(p, i); - p2 && (p2[i] = processPath(p2[i], attrs2)); - p2 && fixArc(p2, i); - fixM(p, p2, attrs, attrs2, i); - fixM(p2, p, attrs2, attrs, i); - var seg = p[i], - seg2 = p2 && p2[i], - seglen = seg[length], - seg2len = p2 && seg2[length]; - attrs.x = seg[seglen - 2]; - attrs.y = seg[seglen - 1]; - attrs.bx = toFloat(seg[seglen - 4]) || attrs.x; - attrs.by = toFloat(seg[seglen - 3]) || attrs.y; - attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x); - attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y); - attrs2.x = p2 && seg2[seg2len - 2]; - attrs2.y = p2 && seg2[seg2len - 1]; - } - return p2 ? [p, p2] : p; - }, null, pathClone), - parseDots = cacher(function (gradient) { - var dots = []; - for (var i = 0, ii = gradient[length]; i < ii; i++) { - var dot = {}, - par = gradient[i].match(/^([^:]*):?([\d\.]*)/); - dot.color = R.getRGB(par[1]); - if (dot.color.error) { - return null; - } - dot.color = dot.color.hex; - par[2] && (dot.offset = par[2] + "%"); - dots[push](dot); - } - for (i = 1, ii = dots[length] - 1; i < ii; i++) { - if (!dots[i].offset) { - var start = toFloat(dots[i - 1].offset || 0), - end = 0; - for (var j = i + 1; j < ii; j++) { - if (dots[j].offset) { - end = dots[j].offset; - break; - } - } - if (!end) { - end = 100; - j = ii; - } - end = toFloat(end); - var d = (end - start) / (j - i + 1); - for (; i < j; i++) { - start += d; - dots[i].offset = start + "%"; - } - } - } - return dots; - }), - getContainer = function (x, y, w, h) { - var container; - if (R.is(x, string) || R.is(x, "object")) { - container = R.is(x, string) ? doc.getElementById(x) : x; - if (container.tagName) { - if (y == null) { - return { - container: container, - width: container.style.pixelWidth || container.offsetWidth, - height: container.style.pixelHeight || container.offsetHeight - }; - } else { - return {container: container, width: y, height: w}; - } - } - } else { - return {container: 1, x: x, y: y, width: w, height: h}; - } - }, - plugins = function (con, add) { - var that = this; - for (var prop in add) { - if (add[has](prop) && !(prop in con)) { - switch (typeof add[prop]) { - case "function": - (function (f) { - con[prop] = con === that ? f : function () { return f[apply](that, arguments); }; - })(add[prop]); - break; - case "object": - con[prop] = con[prop] || {}; - plugins.call(this, con[prop], add[prop]); - break; - default: - con[prop] = add[prop]; - break; - } - } - } - }, - tear = function (el, paper) { - el == paper.top && (paper.top = el.prev); - el == paper.bottom && (paper.bottom = el.next); - el.next && (el.next.prev = el.prev); - el.prev && (el.prev.next = el.next); - }, - tofront = function (el, paper) { - if (paper.top === el) { - return; - } - tear(el, paper); - el.next = null; - el.prev = paper.top; - paper.top.next = el; - paper.top = el; - }, - toback = function (el, paper) { - if (paper.bottom === el) { - return; - } - tear(el, paper); - el.next = paper.bottom; - el.prev = null; - paper.bottom.prev = el; - paper.bottom = el; - }, - insertafter = function (el, el2, paper) { - tear(el, paper); - el2 == paper.top && (paper.top = el); - el2.next && (el2.next.prev = el); - el.next = el2.next; - el.prev = el2; - el2.next = el; - }, - insertbefore = function (el, el2, paper) { - tear(el, paper); - el2 == paper.bottom && (paper.bottom = el); - el2.prev && (el2.prev.next = el); - el.prev = el2.prev; - el2.prev = el; - el.next = el2; - }, - removed = function (methodname) { - return function () { - throw new Error("Rapha\xebl: you are calling to method \u201c" + methodname + "\u201d of removed object"); - }; - }; - R.pathToRelative = pathToRelative; - // SVG - if (R.svg) { - paperproto.svgns = "http://www.w3.org/2000/svg"; - paperproto.xlink = "http://www.w3.org/1999/xlink"; - round = function (num) { - return +num + (~~num === num) * .5; - }; - var $ = function (el, attr) { - if (attr) { - for (var key in attr) { - if (attr[has](key)) { - el[setAttribute](key, Str(attr[key])); - } - } - } else { - el = doc.createElementNS(paperproto.svgns, el); - el.style.webkitTapHighlightColor = "rgba(0,0,0,0)"; - return el; - } - }; - R[toString] = function () { - return "Your browser supports SVG.\nYou are running Rapha\xebl " + this.version; - }; - var thePath = function (pathString, SVG) { - var el = $("path"); - SVG.canvas && SVG.canvas[appendChild](el); - var p = new Element(el, SVG); - p.type = "path"; - setFillAndStroke(p, {fill: "none", stroke: "#000", path: pathString}); - return p; - }; - var addGradientFill = function (o, gradient, SVG) { - var type = "linear", - fx = .5, fy = .5, - s = o.style; - gradient = Str(gradient)[rp](radial_gradient, function (all, _fx, _fy) { - type = "radial"; - if (_fx && _fy) { - fx = toFloat(_fx); - fy = toFloat(_fy); - var dir = ((fy > .5) * 2 - 1); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && - (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) && - fy != .5 && - (fy = fy.toFixed(5) - 1e-5 * dir); - } - return E; - }); - gradient = gradient[split](/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - var vector = [0, 0, math.cos(angle * PI / 180), math.sin(angle * PI / 180)], - max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1); - vector[2] *= max; - vector[3] *= max; - if (vector[2] < 0) { - vector[0] = -vector[2]; - vector[2] = 0; - } - if (vector[3] < 0) { - vector[1] = -vector[3]; - vector[3] = 0; - } - } - var dots = parseDots(gradient); - if (!dots) { - return null; - } - var id = o.getAttribute(fillString); - id = id.match(/^url\(#(.*)\)$/); - id && SVG.defs.removeChild(doc.getElementById(id[1])); - - var el = $(type + "Gradient"); - el.id = createUUID(); - $(el, type == "radial" ? {fx: fx, fy: fy} : {x1: vector[0], y1: vector[1], x2: vector[2], y2: vector[3]}); - SVG.defs[appendChild](el); - for (var i = 0, ii = dots[length]; i < ii; i++) { - var stop = $("stop"); - $(stop, { - offset: dots[i].offset ? dots[i].offset : !i ? "0%" : "100%", - "stop-color": dots[i].color || "#fff" - }); - el[appendChild](stop); - } - $(o, { - fill: "url(#" + el.id + ")", - opacity: 1, - "fill-opacity": 1 - }); - s.fill = E; - s.opacity = 1; - s.fillOpacity = 1; - return 1; - }; - var updatePosition = function (o) { - var bbox = o.getBBox(); - $(o.pattern, {patternTransform: R.format("translate({0},{1})", bbox.x, bbox.y)}); - }; - var setFillAndStroke = function (o, params) { - var dasharray = { - "": [0], - "none": [0], - "-": [3, 1], - ".": [1, 1], - "-.": [3, 1, 1, 1], - "-..": [3, 1, 1, 1, 1, 1], - ". ": [1, 3], - "- ": [4, 3], - "--": [8, 3], - "- .": [4, 3, 1, 3], - "--.": [8, 3, 1, 3], - "--..": [8, 3, 1, 3, 1, 3] - }, - node = o.node, - attrs = o.attrs, - rot = o.rotate(), - addDashes = function (o, value) { - value = dasharray[lowerCase.call(value)]; - if (value) { - var width = o.attrs["stroke-width"] || "1", - butt = {round: width, square: width, butt: 0}[o.attrs["stroke-linecap"] || params["stroke-linecap"]] || 0, - dashes = []; - var i = value[length]; - while (i--) { - dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt; - } - $(node, {"stroke-dasharray": dashes[join](",")}); - } - }; - params[has]("rotation") && (rot = params.rotation); - var rotxy = Str(rot)[split](separator); - if (!(rotxy.length - 1)) { - rotxy = null; - } else { - rotxy[1] = +rotxy[1]; - rotxy[2] = +rotxy[2]; - } - toFloat(rot) && o.rotate(0, true); - for (var att in params) { - if (params[has](att)) { - if (!availableAttrs[has](att)) { - continue; - } - var value = params[att]; - attrs[att] = value; - switch (att) { - case "blur": - o.blur(value); - break; - case "rotation": - o.rotate(value, true); - break; - case "href": - case "title": - case "target": - var pn = node.parentNode; - if (lowerCase.call(pn.tagName) != "a") { - var hl = $("a"); - pn.insertBefore(hl, node); - hl[appendChild](node); - pn = hl; - } - if (att == "target" && value == "blank") { - pn.setAttributeNS(o.paper.xlink, "show", "new"); - } else { - pn.setAttributeNS(o.paper.xlink, att, value); - } - break; - case "cursor": - node.style.cursor = value; - break; - case "clip-rect": - var rect = Str(value)[split](separator); - if (rect[length] == 4) { - o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode); - var el = $("clipPath"), - rc = $("rect"); - el.id = createUUID(); - $(rc, { - x: rect[0], - y: rect[1], - width: rect[2], - height: rect[3] - }); - el[appendChild](rc); - o.paper.defs[appendChild](el); - $(node, {"clip-path": "url(#" + el.id + ")"}); - o.clip = rc; - } - if (!value) { - var clip = doc.getElementById(node.getAttribute("clip-path")[rp](/(^url\(#|\)$)/g, E)); - clip && clip.parentNode.removeChild(clip); - $(node, {"clip-path": E}); - delete o.clip; - } - break; - case "path": - if (o.type == "path") { - $(node, {d: value ? attrs.path = pathToAbsolute(value) : "M0,0"}); - } - break; - case "width": - node[setAttribute](att, value); - if (attrs.fx) { - att = "x"; - value = attrs.x; - } else { - break; - } - case "x": - if (attrs.fx) { - value = -attrs.x - (attrs.width || 0); - } - case "rx": - if (att == "rx" && o.type == "rect") { - break; - } - case "cx": - rotxy && (att == "x" || att == "cx") && (rotxy[1] += value - attrs[att]); - node[setAttribute](att, value); - o.pattern && updatePosition(o); - break; - case "height": - node[setAttribute](att, value); - if (attrs.fy) { - att = "y"; - value = attrs.y; - } else { - break; - } - case "y": - if (attrs.fy) { - value = -attrs.y - (attrs.height || 0); - } - case "ry": - if (att == "ry" && o.type == "rect") { - break; - } - case "cy": - rotxy && (att == "y" || att == "cy") && (rotxy[2] += value - attrs[att]); - node[setAttribute](att, value); - o.pattern && updatePosition(o); - break; - case "r": - if (o.type == "rect") { - $(node, {rx: value, ry: value}); - } else { - node[setAttribute](att, value); - } - break; - case "src": - if (o.type == "image") { - node.setAttributeNS(o.paper.xlink, "href", value); - } - break; - case "stroke-width": - node.style.strokeWidth = value; - // Need following line for Firefox - node[setAttribute](att, value); - if (attrs["stroke-dasharray"]) { - addDashes(o, attrs["stroke-dasharray"]); - } - break; - case "stroke-dasharray": - addDashes(o, value); - break; - case "translation": - var xy = Str(value)[split](separator); - xy[0] = +xy[0] || 0; - xy[1] = +xy[1] || 0; - if (rotxy) { - rotxy[1] += xy[0]; - rotxy[2] += xy[1]; - } - translate.call(o, xy[0], xy[1]); - break; - case "scale": - xy = Str(value)[split](separator); - o.scale(+xy[0] || 1, +xy[1] || +xy[0] || 1, isNaN(toFloat(xy[2])) ? null : +xy[2], isNaN(toFloat(xy[3])) ? null : +xy[3]); - break; - case fillString: - var isURL = Str(value).match(ISURL); - if (isURL) { - el = $("pattern"); - var ig = $("image"); - el.id = createUUID(); - $(el, {x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1}); - $(ig, {x: 0, y: 0}); - ig.setAttributeNS(o.paper.xlink, "href", isURL[1]); - el[appendChild](ig); - - var img = doc.createElement("img"); - img.style.cssText = "position:absolute;left:-9999em;top-9999em"; - img.onload = function () { - $(el, {width: this.offsetWidth, height: this.offsetHeight}); - $(ig, {width: this.offsetWidth, height: this.offsetHeight}); - doc.body.removeChild(this); - o.paper.safari(); - }; - doc.body[appendChild](img); - img.src = isURL[1]; - o.paper.defs[appendChild](el); - node.style.fill = "url(#" + el.id + ")"; - $(node, {fill: "url(#" + el.id + ")"}); - o.pattern = el; - o.pattern && updatePosition(o); - break; - } - var clr = R.getRGB(value); - if (!clr.error) { - delete params.gradient; - delete attrs.gradient; - !R.is(attrs.opacity, "undefined") && - R.is(params.opacity, "undefined") && - $(node, {opacity: attrs.opacity}); - !R.is(attrs["fill-opacity"], "undefined") && - R.is(params["fill-opacity"], "undefined") && - $(node, {"fill-opacity": attrs["fill-opacity"]}); - } else if ((({circle: 1, ellipse: 1})[has](o.type) || Str(value).charAt() != "r") && addGradientFill(node, value, o.paper)) { - attrs.gradient = value; - attrs.fill = "none"; - break; - } - clr[has]("opacity") && $(node, {"fill-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - case "stroke": - clr = R.getRGB(value); - node[setAttribute](att, clr.hex); - att == "stroke" && clr[has]("opacity") && $(node, {"stroke-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - break; - case "gradient": - (({circle: 1, ellipse: 1})[has](o.type) || Str(value).charAt() != "r") && addGradientFill(node, value, o.paper); - break; - case "opacity": - if (attrs.gradient && !attrs[has]("stroke-opacity")) { - $(node, {"stroke-opacity": value > 1 ? value / 100 : value}); - } - // fall - case "fill-opacity": - if (attrs.gradient) { - var gradient = doc.getElementById(node.getAttribute(fillString)[rp](/^url\(#|\)$/g, E)); - if (gradient) { - var stops = gradient.getElementsByTagName("stop"); - stops[stops[length] - 1][setAttribute]("stop-opacity", value); - } - break; - } - default: - att == "font-size" && (value = toInt(value, 10) + "px"); - var cssrule = att[rp](/(\-.)/g, function (w) { - return upperCase.call(w.substring(1)); - }); - node.style[cssrule] = value; - // Need following line for Firefox - node[setAttribute](att, value); - break; - } - } - } - - tuneText(o, params); - if (rotxy) { - o.rotate(rotxy.join(S)); - } else { - toFloat(rot) && o.rotate(rot, true); - } - }; - var leading = 1.2, - tuneText = function (el, params) { - if (el.type != "text" || !(params[has]("text") || params[has]("font") || params[has]("font-size") || params[has]("x") || params[has]("y"))) { - return; - } - var a = el.attrs, - node = el.node, - fontSize = node.firstChild ? toInt(doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue("font-size"), 10) : 10; - - if (params[has]("text")) { - a.text = params.text; - while (node.firstChild) { - node.removeChild(node.firstChild); - } - var texts = Str(params.text)[split]("\n"); - for (var i = 0, ii = texts[length]; i < ii; i++) if (texts[i]) { - var tspan = $("tspan"); - i && $(tspan, {dy: fontSize * leading, x: a.x}); - tspan[appendChild](doc.createTextNode(texts[i])); - node[appendChild](tspan); - } - } else { - texts = node.getElementsByTagName("tspan"); - for (i = 0, ii = texts[length]; i < ii; i++) { - i && $(texts[i], {dy: fontSize * leading, x: a.x}); - } - } - $(node, {y: a.y}); - var bb = el.getBBox(), - dif = a.y - (bb.y + bb.height / 2); - dif && R.is(dif, "finite") && $(node, {y: a.y + dif}); - }, - Element = function (node, svg) { - var X = 0, - Y = 0; - this[0] = node; - this.id = R._oid++; - this.node = node; - node.raphael = this; - this.paper = svg; - this.attrs = this.attrs || {}; - this.transformations = []; // rotate, translate, scale - this._ = { - tx: 0, - ty: 0, - rt: {deg: 0, cx: 0, cy: 0}, - sx: 1, - sy: 1 - }; - !svg.bottom && (svg.bottom = this); - this.prev = svg.top; - svg.top && (svg.top.next = this); - svg.top = this; - this.next = null; - }; - var elproto = Element[proto]; - Element[proto].rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - if (deg == null) { - if (this._.rt.cx) { - return [this._.rt.deg, this._.rt.cx, this._.rt.cy][join](S); - } - return this._.rt.deg; - } - var bbox = this.getBBox(); - deg = Str(deg)[split](separator); - if (deg[length] - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - if (cx != null && cx !== false) { - this._.rt.deg = deg; - } else { - this._.rt.deg += deg; - } - (cy == null) && (cx = null); - this._.rt.cx = cx; - this._.rt.cy = cy; - cx = cx == null ? bbox.x + bbox.width / 2 : cx; - cy = cy == null ? bbox.y + bbox.height / 2 : cy; - if (this._.rt.deg) { - this.transformations[0] = R.format("rotate({0} {1} {2})", this._.rt.deg, cx, cy); - this.clip && $(this.clip, {transform: R.format("rotate({0} {1} {2})", -this._.rt.deg, cx, cy)}); - } else { - this.transformations[0] = E; - this.clip && $(this.clip, {transform: E}); - } - $(this.node, {transform: this.transformations[join](S)}); - return this; - }; - Element[proto].hide = function () { - !this.removed && (this.node.style.display = "none"); - return this; - }; - Element[proto].show = function () { - !this.removed && (this.node.style.display = ""); - return this; - }; - Element[proto].remove = function () { - if (this.removed) { - return; - } - tear(this, this.paper); - this.node.parentNode.removeChild(this.node); - for (var i in this) { - delete this[i]; - } - this.removed = true; - }; - Element[proto].getBBox = function () { - if (this.removed) { - return this; - } - if (this.type == "path") { - return pathDimensions(this.attrs.path); - } - if (this.node.style.display == "none") { - this.show(); - var hide = true; - } - var bbox = {}; - try { - bbox = this.node.getBBox(); - } catch(e) { - // Firefox 3.0.x plays badly here - } finally { - bbox = bbox || {}; - } - if (this.type == "text") { - bbox = {x: bbox.x, y: Infinity, width: 0, height: 0}; - for (var i = 0, ii = this.node.getNumberOfChars(); i < ii; i++) { - var bb = this.node.getExtentOfChar(i); - (bb.y < bbox.y) && (bbox.y = bb.y); - (bb.y + bb.height - bbox.y > bbox.height) && (bbox.height = bb.y + bb.height - bbox.y); - (bb.x + bb.width - bbox.x > bbox.width) && (bbox.width = bb.x + bb.width - bbox.x); - } - } - hide && this.hide(); - return bbox; - }; - Element[proto].attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var i in this.attrs) if (this.attrs[has](i)) { - res[i] = this.attrs[i]; - } - this._.rt.deg && (res.rotation = this.rotate()); - (this._.sx != 1 || this._.sy != 1) && (res.scale = this.scale()); - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - return res; - } - if (value == null && R.is(name, string)) { - if (name == "translation") { - return translate.call(this); - } - if (name == "rotation") { - return this.rotate(); - } - if (name == "scale") { - return this.scale(); - } - if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - return this.attrs[name]; - } - if (value == null && R.is(name, array)) { - var values = {}; - for (var j = 0, jj = name.length; j < jj; j++) { - values[name[j]] = this.attr(name[j]); - } - return values; - } - if (value != null) { - var params = {}; - params[name] = value; - } else if (name != null && R.is(name, "object")) { - params = name; - } - for (var key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [][concat](params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - setFillAndStroke(this, params); - return this; - }; - Element[proto].toFront = function () { - if (this.removed) { - return this; - } - this.node.parentNode[appendChild](this.node); - var svg = this.paper; - svg.top != this && tofront(this, svg); - return this; - }; - Element[proto].toBack = function () { - if (this.removed) { - return this; - } - if (this.node.parentNode.firstChild != this.node) { - this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild); - toback(this, this.paper); - var svg = this.paper; - } - return this; - }; - Element[proto].insertAfter = function (element) { - if (this.removed) { - return this; - } - var node = element.node || element[element.length - 1].node; - if (node.nextSibling) { - node.parentNode.insertBefore(this.node, node.nextSibling); - } else { - node.parentNode[appendChild](this.node); - } - insertafter(this, element, this.paper); - return this; - }; - Element[proto].insertBefore = function (element) { - if (this.removed) { - return this; - } - var node = element.node || element[0].node; - node.parentNode.insertBefore(this.node, node); - insertbefore(this, element, this.paper); - return this; - }; - Element[proto].blur = function (size) { - // Experimental. No Safari support. Use it on your own risk. - var t = this; - if (+size !== 0) { - var fltr = $("filter"), - blur = $("feGaussianBlur"); - t.attrs.blur = size; - fltr.id = createUUID(); - $(blur, {stdDeviation: +size || 1.5}); - fltr.appendChild(blur); - t.paper.defs.appendChild(fltr); - t._blur = fltr; - $(t.node, {filter: "url(#" + fltr.id + ")"}); - } else { - if (t._blur) { - t._blur.parentNode.removeChild(t._blur); - delete t._blur; - delete t.attrs.blur; - } - t.node.removeAttribute("filter"); - } - }; - var theCircle = function (svg, x, y, r) { - var el = $("circle"); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, r: r, fill: "none", stroke: "#000"}; - res.type = "circle"; - $(el, res.attrs); - return res; - }, - theRect = function (svg, x, y, w, h, r) { - var el = $("rect"); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, r: r || 0, rx: r || 0, ry: r || 0, fill: "none", stroke: "#000"}; - res.type = "rect"; - $(el, res.attrs); - return res; - }, - theEllipse = function (svg, x, y, rx, ry) { - var el = $("ellipse"); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000"}; - res.type = "ellipse"; - $(el, res.attrs); - return res; - }, - theImage = function (svg, src, x, y, w, h) { - var el = $("image"); - $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: "none"}); - el.setAttributeNS(svg.xlink, "href", src); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, src: src}; - res.type = "image"; - return res; - }, - theText = function (svg, x, y, text) { - var el = $("text"); - $(el, {x: x, y: y, "text-anchor": "middle"}); - svg.canvas && svg.canvas[appendChild](el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, "text-anchor": "middle", text: text, font: availableAttrs.font, stroke: "none", fill: "#000"}; - res.type = "text"; - setFillAndStroke(res, res.attrs); - return res; - }, - setSize = function (width, height) { - this.width = width || this.width; - this.height = height || this.height; - this.canvas[setAttribute]("width", this.width); - this.canvas[setAttribute]("height", this.height); - return this; - }, - create = function () { - var con = getContainer[apply](0, arguments), - container = con && con.container, - x = con.x, - y = con.y, - width = con.width, - height = con.height; - if (!container) { - throw new Error("SVG container not found."); - } - var cnvs = $("svg"); - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - $(cnvs, { - xmlns: "http://www.w3.org/2000/svg", - version: 1.1, - width: width, - height: height - }); - if (container == 1) { - cnvs.style.cssText = "position:absolute;left:" + x + "px;top:" + y + "px"; - doc.body[appendChild](cnvs); - } else { - if (container.firstChild) { - container.insertBefore(cnvs, container.firstChild); - } else { - container[appendChild](cnvs); - } - } - container = new Paper; - container.width = width; - container.height = height; - container.canvas = cnvs; - plugins.call(container, container, R.fn); - container.clear(); - return container; - }; - paperproto.clear = function () { - var c = this.canvas; - while (c.firstChild) { - c.removeChild(c.firstChild); - } - this.bottom = this.top = null; - (this.desc = $("desc"))[appendChild](doc.createTextNode("Created with Rapha\xebl")); - c[appendChild](this.desc); - c[appendChild](this.defs = $("defs")); - }; - paperproto.remove = function () { - this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = removed(i); - } - }; - } - - // VML - if (R.vml) { - var map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"}, - bites = /([clmz]),?([^clmz]*)/gi, - blurregexp = / progid:\S+Blur\([^\)]+\)/g, - val = /-?[^,\s-]+/g, - coordsize = 1e3 + S + 1e3, - zoom = 10, - pathlike = {path: 1, rect: 1}, - path2vml = function (path) { - var total = /[ahqstv]/ig, - command = pathToAbsolute; - Str(path).match(total) && (command = path2curve); - total = /[clmz]/g; - if (command == pathToAbsolute && !Str(path).match(total)) { - var res = Str(path)[rp](bites, function (all, command, args) { - var vals = [], - isMove = lowerCase.call(command) == "m", - res = map[command]; - args[rp](val, function (value) { - if (isMove && vals[length] == 2) { - res += vals + map[command == "m" ? "l" : "L"]; - vals = []; - } - vals[push](round(value * zoom)); - }); - return res + vals; - }); - return res; - } - var pa = command(path), p, r; - res = []; - for (var i = 0, ii = pa[length]; i < ii; i++) { - p = pa[i]; - r = lowerCase.call(pa[i][0]); - r == "z" && (r = "x"); - for (var j = 1, jj = p[length]; j < jj; j++) { - r += round(p[j] * zoom) + (j != jj - 1 ? "," : E); - } - res[push](r); - } - return res[join](S); - }; - - R[toString] = function () { - return "Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl " + this.version; - }; - thePath = function (pathString, vml) { - var g = createNode("group"); - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = vml.coordsize; - g.coordorigin = vml.coordorigin; - var el = createNode("shape"), ol = el.style; - ol.width = vml.width + "px"; - ol.height = vml.height + "px"; - el.coordsize = coordsize; - el.coordorigin = vml.coordorigin; - g[appendChild](el); - var p = new Element(el, g, vml), - attr = {fill: "none", stroke: "#000"}; - pathString && (attr.path = pathString); - p.type = "path"; - p.path = []; - p.Path = E; - setFillAndStroke(p, attr); - vml.canvas[appendChild](g); - return p; - }; - setFillAndStroke = function (o, params) { - o.attrs = o.attrs || {}; - var node = o.node, - a = o.attrs, - s = node.style, - xy, - newpath = (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.r != a.r) && o.type == "rect", - res = o; - - for (var par in params) if (params[has](par)) { - a[par] = params[par]; - } - if (newpath) { - a.path = rectPath(a.x, a.y, a.width, a.height, a.r); - o.X = a.x; - o.Y = a.y; - o.W = a.width; - o.H = a.height; - } - params.href && (node.href = params.href); - params.title && (node.title = params.title); - params.target && (node.target = params.target); - params.cursor && (s.cursor = params.cursor); - "blur" in params && o.blur(params.blur); - if (params.path && o.type == "path" || newpath) { - node.path = path2vml(a.path); - } - if (params.rotation != null) { - o.rotate(params.rotation, true); - } - if (params.translation) { - xy = Str(params.translation)[split](separator); - translate.call(o, xy[0], xy[1]); - if (o._.rt.cx != null) { - o._.rt.cx +=+ xy[0]; - o._.rt.cy +=+ xy[1]; - o.setBox(o.attrs, xy[0], xy[1]); - } - } - if (params.scale) { - xy = Str(params.scale)[split](separator); - o.scale(+xy[0] || 1, +xy[1] || +xy[0] || 1, +xy[2] || null, +xy[3] || null); - } - if ("clip-rect" in params) { - var rect = Str(params["clip-rect"])[split](separator); - if (rect[length] == 4) { - rect[2] = +rect[2] + (+rect[0]); - rect[3] = +rect[3] + (+rect[1]); - var div = node.clipRect || doc.createElement("div"), - dstyle = div.style, - group = node.parentNode; - dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect); - if (!node.clipRect) { - dstyle.position = "absolute"; - dstyle.top = 0; - dstyle.left = 0; - dstyle.width = o.paper.width + "px"; - dstyle.height = o.paper.height + "px"; - group.parentNode.insertBefore(div, group); - div[appendChild](group); - node.clipRect = div; - } - } - if (!params["clip-rect"]) { - node.clipRect && (node.clipRect.style.clip = E); - } - } - if (o.type == "image" && params.src) { - node.src = params.src; - } - if (o.type == "image" && params.opacity) { - node.filterOpacity = ms + ".Alpha(opacity=" + (params.opacity * 100) + ")"; - s.filter = (node.filterMatrix || E) + (node.filterOpacity || E); - } - params.font && (s.font = params.font); - params["font-family"] && (s.fontFamily = '"' + params["font-family"][split](",")[0][rp](/^['"]+|['"]+$/g, E) + '"'); - params["font-size"] && (s.fontSize = params["font-size"]); - params["font-weight"] && (s.fontWeight = params["font-weight"]); - params["font-style"] && (s.fontStyle = params["font-style"]); - if (params.opacity != null || - params["stroke-width"] != null || - params.fill != null || - params.stroke != null || - params["stroke-width"] != null || - params["stroke-opacity"] != null || - params["fill-opacity"] != null || - params["stroke-dasharray"] != null || - params["stroke-miterlimit"] != null || - params["stroke-linejoin"] != null || - params["stroke-linecap"] != null) { - node = o.shape || node; - var fill = (node.getElementsByTagName(fillString) && node.getElementsByTagName(fillString)[0]), - newfill = false; - !fill && (newfill = fill = createNode(fillString)); - if ("fill-opacity" in params || "opacity" in params) { - var opacity = ((+a["fill-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1); - opacity = mmin(mmax(opacity, 0), 1); - fill.opacity = opacity; - } - params.fill && (fill.on = true); - if (fill.on == null || params.fill == "none") { - fill.on = false; - } - if (fill.on && params.fill) { - var isURL = params.fill.match(ISURL); - if (isURL) { - fill.src = isURL[1]; - fill.type = "tile"; - } else { - fill.color = R.getRGB(params.fill).hex; - fill.src = E; - fill.type = "solid"; - if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != "r") && addGradientFill(res, params.fill)) { - a.fill = "none"; - a.gradient = params.fill; - } - } - } - newfill && node[appendChild](fill); - var stroke = (node.getElementsByTagName("stroke") && node.getElementsByTagName("stroke")[0]), - newstroke = false; - !stroke && (newstroke = stroke = createNode("stroke")); - if ((params.stroke && params.stroke != "none") || - params["stroke-width"] || - params["stroke-opacity"] != null || - params["stroke-dasharray"] || - params["stroke-miterlimit"] || - params["stroke-linejoin"] || - params["stroke-linecap"]) { - stroke.on = true; - } - (params.stroke == "none" || stroke.on == null || params.stroke == 0 || params["stroke-width"] == 0) && (stroke.on = false); - var strokeColor = R.getRGB(params.stroke); - stroke.on && params.stroke && (stroke.color = strokeColor.hex); - opacity = ((+a["stroke-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1); - var width = (toFloat(params["stroke-width"]) || 1) * .75; - opacity = mmin(mmax(opacity, 0), 1); - params["stroke-width"] == null && (width = a["stroke-width"]); - params["stroke-width"] && (stroke.weight = width); - width && width < 1 && (opacity *= width) && (stroke.weight = 1); - stroke.opacity = opacity; - - params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter"); - stroke.miterlimit = params["stroke-miterlimit"] || 8; - params["stroke-linecap"] && (stroke.endcap = params["stroke-linecap"] == "butt" ? "flat" : params["stroke-linecap"] == "square" ? "square" : "round"); - if (params["stroke-dasharray"]) { - var dasharray = { - "-": "shortdash", - ".": "shortdot", - "-.": "shortdashdot", - "-..": "shortdashdotdot", - ". ": "dot", - "- ": "dash", - "--": "longdash", - "- .": "dashdot", - "--.": "longdashdot", - "--..": "longdashdotdot" - }; - stroke.dashstyle = dasharray[has](params["stroke-dasharray"]) ? dasharray[params["stroke-dasharray"]] : E; - } - newstroke && node[appendChild](stroke); - } - if (res.type == "text") { - s = res.paper.span.style; - a.font && (s.font = a.font); - a["font-family"] && (s.fontFamily = a["font-family"]); - a["font-size"] && (s.fontSize = a["font-size"]); - a["font-weight"] && (s.fontWeight = a["font-weight"]); - a["font-style"] && (s.fontStyle = a["font-style"]); - res.node.string && (res.paper.span.innerHTML = Str(res.node.string)[rp](/")); - res.W = a.w = res.paper.span.offsetWidth; - res.H = a.h = res.paper.span.offsetHeight; - res.X = a.x; - res.Y = a.y + round(res.H / 2); - - // text-anchor emulationm - switch (a["text-anchor"]) { - case "start": - res.node.style["v-text-align"] = "left"; - res.bbx = round(res.W / 2); - break; - case "end": - res.node.style["v-text-align"] = "right"; - res.bbx = -round(res.W / 2); - break; - default: - res.node.style["v-text-align"] = "center"; - break; - } - } - }; - addGradientFill = function (o, gradient) { - o.attrs = o.attrs || {}; - var attrs = o.attrs, - fill, - type = "linear", - fxfy = ".5 .5"; - o.attrs.gradient = gradient; - gradient = Str(gradient)[rp](radial_gradient, function (all, fx, fy) { - type = "radial"; - if (fx && fy) { - fx = toFloat(fx); - fy = toFloat(fy); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5); - fxfy = fx + S + fy; - } - return E; - }); - gradient = gradient[split](/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - } - var dots = parseDots(gradient); - if (!dots) { - return null; - } - o = o.shape || o.node; - fill = o.getElementsByTagName(fillString)[0] || createNode(fillString); - !fill.parentNode && o.appendChild(fill); - if (dots[length]) { - fill.on = true; - fill.method = "none"; - fill.color = dots[0].color; - fill.color2 = dots[dots[length] - 1].color; - var clrs = []; - for (var i = 0, ii = dots[length]; i < ii; i++) { - dots[i].offset && clrs[push](dots[i].offset + S + dots[i].color); - } - fill.colors && (fill.colors.value = clrs[length] ? clrs[join]() : "0% " + fill.color); - if (type == "radial") { - fill.type = "gradientradial"; - fill.focus = "100%"; - fill.focussize = fxfy; - fill.focusposition = fxfy; - } else { - fill.type = "gradient"; - fill.angle = (270 - angle) % 360; - } - } - return 1; - }; - Element = function (node, group, vml) { - var Rotation = 0, - RotX = 0, - RotY = 0, - Scale = 1; - this[0] = node; - this.id = R._oid++; - this.node = node; - node.raphael = this; - this.X = 0; - this.Y = 0; - this.attrs = {}; - this.Group = group; - this.paper = vml; - this._ = { - tx: 0, - ty: 0, - rt: {deg:0}, - sx: 1, - sy: 1 - }; - !vml.bottom && (vml.bottom = this); - this.prev = vml.top; - vml.top && (vml.top.next = this); - vml.top = this; - this.next = null; - }; - elproto = Element[proto]; - elproto.rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - if (deg == null) { - if (this._.rt.cx) { - return [this._.rt.deg, this._.rt.cx, this._.rt.cy][join](S); - } - return this._.rt.deg; - } - deg = Str(deg)[split](separator); - if (deg[length] - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - if (cx != null) { - this._.rt.deg = deg; - } else { - this._.rt.deg += deg; - } - cy == null && (cx = null); - this._.rt.cx = cx; - this._.rt.cy = cy; - this.setBox(this.attrs, cx, cy); - this.Group.style.rotation = this._.rt.deg; - // gradient fix for rotation. TODO - // var fill = (this.shape || this.node).getElementsByTagName(fillString); - // fill = fill[0] || {}; - // var b = ((360 - this._.rt.deg) - 270) % 360; - // !R.is(fill.angle, "undefined") && (fill.angle = b); - return this; - }; - elproto.setBox = function (params, cx, cy) { - if (this.removed) { - return this; - } - var gs = this.Group.style, - os = (this.shape && this.shape.style) || this.node.style; - params = params || {}; - for (var i in params) if (params[has](i)) { - this.attrs[i] = params[i]; - } - cx = cx || this._.rt.cx; - cy = cy || this._.rt.cy; - var attr = this.attrs, - x, - y, - w, - h; - switch (this.type) { - case "circle": - x = attr.cx - attr.r; - y = attr.cy - attr.r; - w = h = attr.r * 2; - break; - case "ellipse": - x = attr.cx - attr.rx; - y = attr.cy - attr.ry; - w = attr.rx * 2; - h = attr.ry * 2; - break; - case "image": - x = +attr.x; - y = +attr.y; - w = attr.width || 0; - h = attr.height || 0; - break; - case "text": - this.textpath.v = ["m", round(attr.x), ", ", round(attr.y - 2), "l", round(attr.x) + 1, ", ", round(attr.y - 2)][join](E); - x = attr.x - round(this.W / 2); - y = attr.y - this.H / 2; - w = this.W; - h = this.H; - break; - case "rect": - case "path": - if (!this.attrs.path) { - x = 0; - y = 0; - w = this.paper.width; - h = this.paper.height; - } else { - var dim = pathDimensions(this.attrs.path); - x = dim.x; - y = dim.y; - w = dim.width; - h = dim.height; - } - break; - default: - x = 0; - y = 0; - w = this.paper.width; - h = this.paper.height; - break; - } - cx = (cx == null) ? x + w / 2 : cx; - cy = (cy == null) ? y + h / 2 : cy; - var left = cx - this.paper.width / 2, - top = cy - this.paper.height / 2, t; - gs.left != (t = left + "px") && (gs.left = t); - gs.top != (t = top + "px") && (gs.top = t); - this.X = pathlike[has](this.type) ? -left : x; - this.Y = pathlike[has](this.type) ? -top : y; - this.W = w; - this.H = h; - if (pathlike[has](this.type)) { - os.left != (t = -left * zoom + "px") && (os.left = t); - os.top != (t = -top * zoom + "px") && (os.top = t); - } else if (this.type == "text") { - os.left != (t = -left + "px") && (os.left = t); - os.top != (t = -top + "px") && (os.top = t); - } else { - gs.width != (t = this.paper.width + "px") && (gs.width = t); - gs.height != (t = this.paper.height + "px") && (gs.height = t); - os.left != (t = x - left + "px") && (os.left = t); - os.top != (t = y - top + "px") && (os.top = t); - os.width != (t = w + "px") && (os.width = t); - os.height != (t = h + "px") && (os.height = t); - } - }; - elproto.hide = function () { - !this.removed && (this.Group.style.display = "none"); - return this; - }; - elproto.show = function () { - !this.removed && (this.Group.style.display = "block"); - return this; - }; - elproto.getBBox = function () { - if (this.removed) { - return this; - } - if (pathlike[has](this.type)) { - return pathDimensions(this.attrs.path); - } - return { - x: this.X + (this.bbx || 0), - y: this.Y, - width: this.W, - height: this.H - }; - }; - elproto.remove = function () { - if (this.removed) { - return; - } - tear(this, this.paper); - this.node.parentNode.removeChild(this.node); - this.Group.parentNode.removeChild(this.Group); - this.shape && this.shape.parentNode.removeChild(this.shape); - for (var i in this) { - delete this[i]; - } - this.removed = true; - }; - elproto.attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var i in this.attrs) if (this.attrs[has](i)) { - res[i] = this.attrs[i]; - } - this._.rt.deg && (res.rotation = this.rotate()); - (this._.sx != 1 || this._.sy != 1) && (res.scale = this.scale()); - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - return res; - } - if (value == null && R.is(name, "string")) { - if (name == "translation") { - return translate.call(this); - } - if (name == "rotation") { - return this.rotate(); - } - if (name == "scale") { - return this.scale(); - } - if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - return this.attrs[name]; - } - if (this.attrs && value == null && R.is(name, array)) { - var ii, values = {}; - for (i = 0, ii = name[length]; i < ii; i++) { - values[name[i]] = this.attr(name[i]); - } - return values; - } - var params; - if (value != null) { - params = {}; - params[name] = value; - } - value == null && R.is(name, "object") && (params = name); - if (params) { - for (var key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [][concat](params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - if (params.text && this.type == "text") { - this.node.string = params.text; - } - setFillAndStroke(this, params); - if (params.gradient && (({circle: 1, ellipse: 1})[has](this.type) || Str(params.gradient).charAt() != "r")) { - addGradientFill(this, params.gradient); - } - (!pathlike[has](this.type) || this._.rt.deg) && this.setBox(this.attrs); - } - return this; - }; - elproto.toFront = function () { - !this.removed && this.Group.parentNode[appendChild](this.Group); - this.paper.top != this && tofront(this, this.paper); - return this; - }; - elproto.toBack = function () { - if (this.removed) { - return this; - } - if (this.Group.parentNode.firstChild != this.Group) { - this.Group.parentNode.insertBefore(this.Group, this.Group.parentNode.firstChild); - toback(this, this.paper); - } - return this; - }; - elproto.insertAfter = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == Set) { - element = element[element.length - 1]; - } - if (element.Group.nextSibling) { - element.Group.parentNode.insertBefore(this.Group, element.Group.nextSibling); - } else { - element.Group.parentNode[appendChild](this.Group); - } - insertafter(this, element, this.paper); - return this; - }; - elproto.insertBefore = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == Set) { - element = element[0]; - } - element.Group.parentNode.insertBefore(this.Group, element.Group); - insertbefore(this, element, this.paper); - return this; - }; - elproto.blur = function (size) { - var s = this.node.runtimeStyle, - f = s.filter; - f = f.replace(blurregexp, E); - if (+size !== 0) { - this.attrs.blur = size; - s.filter = f + S + ms + ".Blur(pixelradius=" + (+size || 1.5) + ")"; - s.margin = R.format("-{0}px 0 0 -{0}px", round(+size || 1.5)); - } else { - s.filter = f; - s.margin = 0; - delete this.attrs.blur; - } - }; - - theCircle = function (vml, x, y, r) { - var g = createNode("group"), - o = createNode("oval"), - ol = o.style; - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - g[appendChild](o); - var res = new Element(o, g, vml); - res.type = "circle"; - setFillAndStroke(res, {stroke: "#000", fill: "none"}); - res.attrs.cx = x; - res.attrs.cy = y; - res.attrs.r = r; - res.setBox({x: x - r, y: y - r, width: r * 2, height: r * 2}); - vml.canvas[appendChild](g); - return res; - }; - function rectPath(x, y, w, h, r) { - if (r) { - return R.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z", x + r, y, w - r * 2, r, -r, h - r * 2, r * 2 - w, r * 2 - h); - } else { - return R.format("M{0},{1}l{2},0,0,{3},{4},0z", x, y, w, h, -w); - } - } - theRect = function (vml, x, y, w, h, r) { - var path = rectPath(x, y, w, h, r), - res = vml.path(path), - a = res.attrs; - res.X = a.x = x; - res.Y = a.y = y; - res.W = a.width = w; - res.H = a.height = h; - a.r = r; - a.path = path; - res.type = "rect"; - return res; - }; - theEllipse = function (vml, x, y, rx, ry) { - var g = createNode("group"), - o = createNode("oval"), - ol = o.style; - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - g[appendChild](o); - var res = new Element(o, g, vml); - res.type = "ellipse"; - setFillAndStroke(res, {stroke: "#000"}); - res.attrs.cx = x; - res.attrs.cy = y; - res.attrs.rx = rx; - res.attrs.ry = ry; - res.setBox({x: x - rx, y: y - ry, width: rx * 2, height: ry * 2}); - vml.canvas[appendChild](g); - return res; - }; - theImage = function (vml, src, x, y, w, h) { - var g = createNode("group"), - o = createNode("image"); - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - o.src = src; - g[appendChild](o); - var res = new Element(o, g, vml); - res.type = "image"; - res.attrs.src = src; - res.attrs.x = x; - res.attrs.y = y; - res.attrs.w = w; - res.attrs.h = h; - res.setBox({x: x, y: y, width: w, height: h}); - vml.canvas[appendChild](g); - return res; - }; - theText = function (vml, x, y, text) { - var g = createNode("group"), - el = createNode("shape"), - ol = el.style, - path = createNode("path"), - ps = path.style, - o = createNode("textpath"); - g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; - g.coordsize = coordsize; - g.coordorigin = vml.coordorigin; - path.v = R.format("m{0},{1}l{2},{1}", round(x * 10), round(y * 10), round(x * 10) + 1); - path.textpathok = true; - ol.width = vml.width; - ol.height = vml.height; - o.string = Str(text); - o.on = true; - el[appendChild](o); - el[appendChild](path); - g[appendChild](el); - var res = new Element(o, g, vml); - res.shape = el; - res.textpath = path; - res.type = "text"; - res.attrs.text = text; - res.attrs.x = x; - res.attrs.y = y; - res.attrs.w = 1; - res.attrs.h = 1; - setFillAndStroke(res, {font: availableAttrs.font, stroke: "none", fill: "#000"}); - res.setBox(); - vml.canvas[appendChild](g); - return res; - }; - setSize = function (width, height) { - var cs = this.canvas.style; - width == +width && (width += "px"); - height == +height && (height += "px"); - cs.width = width; - cs.height = height; - cs.clip = "rect(0 " + width + " " + height + " 0)"; - return this; - }; - var createNode; - doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"); - try { - !doc.namespaces.rvml && doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"); - createNode = function (tagName) { - return doc.createElement(''); - }; - } catch (e) { - createNode = function (tagName) { - return doc.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">'); - }; - } - create = function () { - var con = getContainer[apply](0, arguments), - container = con.container, - height = con.height, - s, - width = con.width, - x = con.x, - y = con.y; - if (!container) { - throw new Error("VML container not found."); - } - var res = new Paper, - c = res.canvas = doc.createElement("div"), - cs = c.style; - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - width == +width && (width += "px"); - height == +height && (height += "px"); - res.width = 1e3; - res.height = 1e3; - res.coordsize = zoom * 1e3 + S + zoom * 1e3; - res.coordorigin = "0 0"; - res.span = doc.createElement("span"); - res.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; - c[appendChild](res.span); - cs.cssText = R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", width, height); - if (container == 1) { - doc.body[appendChild](c); - cs.left = x + "px"; - cs.top = y + "px"; - cs.position = "absolute"; - } else { - if (container.firstChild) { - container.insertBefore(c, container.firstChild); - } else { - container[appendChild](c); - } - } - plugins.call(res, res, R.fn); - return res; - }; - paperproto.clear = function () { - this.canvas.innerHTML = E; - this.span = doc.createElement("span"); - this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; - this.canvas[appendChild](this.span); - this.bottom = this.top = null; - }; - paperproto.remove = function () { - this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = removed(i); - } - return true; - }; - } - - // rest - // WebKit rendering bug workaround method - var version = navigator.userAgent.match(/Version\/(.*?)\s/); - if ((navigator.vendor == "Apple Computer, Inc.") && (version && version[1] < 4 || navigator.platform.slice(0, 2) == "iP")) { - paperproto.safari = function () { - var rect = this.rect(-99, -99, this.width + 99, this.height + 99).attr({stroke: "none"}); - win.setTimeout(function () {rect.remove();}); - }; - } else { - paperproto.safari = function () {}; - } - - // Events - var preventDefault = function () { - this.returnValue = false; - }, - preventTouch = function () { - return this.originalEvent.preventDefault(); - }, - stopPropagation = function () { - this.cancelBubble = true; - }, - stopTouch = function () { - return this.originalEvent.stopPropagation(); - }, - addEvent = (function () { - if (doc.addEventListener) { - return function (obj, type, fn, element) { - var realName = supportsTouch && touchMap[type] ? touchMap[type] : type; - var f = function (e) { - if (supportsTouch && touchMap[has](type)) { - for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) { - if (e.targetTouches[i].target == obj) { - var olde = e; - e = e.targetTouches[i]; - e.originalEvent = olde; - e.preventDefault = preventTouch; - e.stopPropagation = stopTouch; - break; - } - } - } - return fn.call(element, e); - }; - obj.addEventListener(realName, f, false); - return function () { - obj.removeEventListener(realName, f, false); - return true; - }; - }; - } else if (doc.attachEvent) { - return function (obj, type, fn, element) { - var f = function (e) { - e = e || win.event; - e.preventDefault = e.preventDefault || preventDefault; - e.stopPropagation = e.stopPropagation || stopPropagation; - return fn.call(element, e); - }; - obj.attachEvent("on" + type, f); - var detacher = function () { - obj.detachEvent("on" + type, f); - return true; - }; - return detacher; - }; - } - })(), - drag = [], - dragMove = function (e) { - var x = e.clientX, - y = e.clientY, - scrollY = doc.documentElement.scrollTop || doc.body.scrollTop, - scrollX = doc.documentElement.scrollLeft || doc.body.scrollLeft, - dragi, - j = drag.length; - while (j--) { - dragi = drag[j]; - if (supportsTouch) { - var i = e.touches.length, - touch; - while (i--) { - touch = e.touches[i]; - if (touch.identifier == dragi.el._drag.id) { - x = touch.clientX; - y = touch.clientY; - (e.originalEvent ? e.originalEvent : e).preventDefault(); - break; - } - } - } else { - e.preventDefault(); - } - x += scrollX; - y += scrollY; - dragi.move && dragi.move.call(dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e); - } - }, - dragUp = function (e) { - R.unmousemove(dragMove).unmouseup(dragUp); - var i = drag.length, - dragi; - while (i--) { - dragi = drag[i]; - dragi.el._drag = {}; - dragi.end && dragi.end.call(dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e); - } - drag = []; - }; - for (var i = events[length]; i--;) { - (function (eventName) { - R[eventName] = Element[proto][eventName] = function (fn, scope) { - if (R.is(fn, "function")) { - this.events = this.events || []; - this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || doc, eventName, fn, scope || this)}); - } - return this; - }; - R["un" + eventName] = Element[proto]["un" + eventName] = function (fn) { - var events = this.events, - l = events[length]; - while (l--) if (events[l].name == eventName && events[l].f == fn) { - events[l].unbind(); - events.splice(l, 1); - !events.length && delete this.events; - return this; - } - return this; - }; - })(events[i]); - } - elproto.hover = function (f_in, f_out, scope_in, scope_out) { - return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in); - }; - elproto.unhover = function (f_in, f_out) { - return this.unmouseover(f_in).unmouseout(f_out); - }; - elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) { - this._drag = {}; - this.mousedown(function (e) { - (e.originalEvent || e).preventDefault(); - var scrollY = doc.documentElement.scrollTop || doc.body.scrollTop, - scrollX = doc.documentElement.scrollLeft || doc.body.scrollLeft; - this._drag.x = e.clientX + scrollX; - this._drag.y = e.clientY + scrollY; - this._drag.id = e.identifier; - onstart && onstart.call(start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e); - !drag.length && R.mousemove(dragMove).mouseup(dragUp); - drag.push({el: this, move: onmove, end: onend, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope}); - }); - return this; - }; - elproto.undrag = function (onmove, onstart, onend) { - var i = drag.length; - while (i--) { - drag[i].el == this && (drag[i].move == onmove && drag[i].end == onend) && drag.splice(i++, 1); - } - !drag.length && R.unmousemove(dragMove).unmouseup(dragUp); - }; - paperproto.circle = function (x, y, r) { - return theCircle(this, x || 0, y || 0, r || 0); - }; - paperproto.rect = function (x, y, w, h, r) { - return theRect(this, x || 0, y || 0, w || 0, h || 0, r || 0); - }; - paperproto.ellipse = function (x, y, rx, ry) { - return theEllipse(this, x || 0, y || 0, rx || 0, ry || 0); - }; - paperproto.path = function (pathString) { - pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E); - return thePath(R.format[apply](R, arguments), this); - }; - paperproto.image = function (src, x, y, w, h) { - return theImage(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0); - }; - paperproto.text = function (x, y, text) { - return theText(this, x || 0, y || 0, Str(text)); - }; - paperproto.set = function (itemsArray) { - arguments[length] > 1 && (itemsArray = Array[proto].splice.call(arguments, 0, arguments[length])); - return new Set(itemsArray); - }; - paperproto.setSize = setSize; - paperproto.top = paperproto.bottom = null; - paperproto.raphael = R; - function x_y() { - return this.x + S + this.y; - } - elproto.resetScale = function () { - if (this.removed) { - return this; - } - this._.sx = 1; - this._.sy = 1; - this.attrs.scale = "1 1"; - }; - elproto.scale = function (x, y, cx, cy) { - if (this.removed) { - return this; - } - if (x == null && y == null) { - return { - x: this._.sx, - y: this._.sy, - toString: x_y - }; - } - y = y || x; - !+y && (y = x); - var dx, - dy, - dcx, - dcy, - a = this.attrs; - if (x != 0) { - var bb = this.getBBox(), - rcx = bb.x + bb.width / 2, - rcy = bb.y + bb.height / 2, - kx = abs(x / this._.sx), - ky = abs(y / this._.sy); - cx = (+cx || cx == 0) ? cx : rcx; - cy = (+cy || cy == 0) ? cy : rcy; - var posx = this._.sx > 0, - posy = this._.sy > 0, - dirx = ~~(x / abs(x)), - diry = ~~(y / abs(y)), - dkx = kx * dirx, - dky = ky * diry, - s = this.node.style, - ncx = cx + abs(rcx - cx) * dkx * (rcx > cx == posx ? 1 : -1), - ncy = cy + abs(rcy - cy) * dky * (rcy > cy == posy ? 1 : -1), - fr = (x * dirx > y * diry ? ky : kx); - switch (this.type) { - case "rect": - case "image": - var neww = a.width * kx, - newh = a.height * ky; - this.attr({ - height: newh, - r: a.r * fr, - width: neww, - x: ncx - neww / 2, - y: ncy - newh / 2 - }); - break; - case "circle": - case "ellipse": - this.attr({ - rx: a.rx * kx, - ry: a.ry * ky, - r: a.r * fr, - cx: ncx, - cy: ncy - }); - break; - case "text": - this.attr({ - x: ncx, - y: ncy - }); - break; - case "path": - var path = pathToRelative(a.path), - skip = true, - fx = posx ? dkx : kx, - fy = posy ? dky : ky; - for (var i = 0, ii = path[length]; i < ii; i++) { - var p = path[i], - P0 = upperCase.call(p[0]); - if (P0 == "M" && skip) { - continue; - } else { - skip = false; - } - if (P0 == "A") { - p[path[i][length] - 2] *= fx; - p[path[i][length] - 1] *= fy; - p[1] *= kx; - p[2] *= ky; - p[5] = +(dirx + diry ? !!+p[5] : !+p[5]); - } else if (P0 == "H") { - for (var j = 1, jj = p[length]; j < jj; j++) { - p[j] *= fx; - } - } else if (P0 == "V") { - for (j = 1, jj = p[length]; j < jj; j++) { - p[j] *= fy; - } - } else { - for (j = 1, jj = p[length]; j < jj; j++) { - p[j] *= (j % 2) ? fx : fy; - } - } - } - var dim2 = pathDimensions(path); - dx = ncx - dim2.x - dim2.width / 2; - dy = ncy - dim2.y - dim2.height / 2; - path[0][1] += dx; - path[0][2] += dy; - this.attr({path: path}); - break; - } - if (this.type in {text: 1, image:1} && (dirx != 1 || diry != 1)) { - if (this.transformations) { - this.transformations[2] = "scale("[concat](dirx, ",", diry, ")"); - this.node[setAttribute]("transform", this.transformations[join](S)); - dx = (dirx == -1) ? -a.x - (neww || 0) : a.x; - dy = (diry == -1) ? -a.y - (newh || 0) : a.y; - this.attr({x: dx, y: dy}); - a.fx = dirx - 1; - a.fy = diry - 1; - } else { - this.node.filterMatrix = ms + ".Matrix(M11="[concat](dirx, - ", M12=0, M21=0, M22=", diry, - ", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')"); - s.filter = (this.node.filterMatrix || E) + (this.node.filterOpacity || E); - } - } else { - if (this.transformations) { - this.transformations[2] = E; - this.node[setAttribute]("transform", this.transformations[join](S)); - a.fx = 0; - a.fy = 0; - } else { - this.node.filterMatrix = E; - s.filter = (this.node.filterMatrix || E) + (this.node.filterOpacity || E); - } - } - a.scale = [x, y, cx, cy][join](S); - this._.sx = x; - this._.sy = y; - } - return this; - }; - elproto.clone = function () { - if (this.removed) { - return null; - } - var attr = this.attr(); - delete attr.scale; - delete attr.translation; - return this.paper[this.type]().attr(attr); - }; - var curveslengths = {}, - getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) { - var len = 0, - precision = 100, - name = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y].join(), - cache = curveslengths[name], - old, dot; - !cache && (curveslengths[name] = cache = {data: []}); - cache.timer && clearTimeout(cache.timer); - cache.timer = setTimeout(function () {delete curveslengths[name];}, 2000); - if (length != null) { - var total = getPointAtSegmentLength(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y); - precision = ~~total * 10; - } - for (var i = 0; i < precision + 1; i++) { - if (cache.data[length] > i) { - dot = cache.data[i * precision]; - } else { - dot = R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, i / precision); - cache.data[i] = dot; - } - i && (len += pow(pow(old.x - dot.x, 2) + pow(old.y - dot.y, 2), .5)); - if (length != null && len >= length) { - return dot; - } - old = dot; - } - if (length == null) { - return len; - } - }, - getLengthFactory = function (istotal, subpath) { - return function (path, length, onlystart) { - path = path2curve(path); - var x, y, p, l, sp = "", subpaths = {}, point, - len = 0; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = +p[1]; - y = +p[2]; - } else { - l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - if (len + l > length) { - if (subpath && !subpaths.start) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - sp += ["C", point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y]; - if (onlystart) {return sp;} - subpaths.start = sp; - sp = ["M", point.x, point.y + "C", point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]][join](); - len += l; - x = +p[5]; - y = +p[6]; - continue; - } - if (!istotal && !subpath) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - return {x: point.x, y: point.y, alpha: point.alpha}; - } - } - len += l; - x = +p[5]; - y = +p[6]; - } - sp += p; - } - subpaths.end = sp; - point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[1], p[2], p[3], p[4], p[5], p[6], 1); - point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha}); - return point; - }; - }; - var getTotalLength = getLengthFactory(1), - getPointAtLength = getLengthFactory(), - getSubpathsAtLength = getLengthFactory(0, 1); - elproto.getTotalLength = function () { - if (this.type != "path") {return;} - if (this.node.getTotalLength) { - return this.node.getTotalLength(); - } - return getTotalLength(this.attrs.path); - }; - elproto.getPointAtLength = function (length) { - if (this.type != "path") {return;} - return getPointAtLength(this.attrs.path, length); - }; - elproto.getSubpath = function (from, to) { - if (this.type != "path") {return;} - if (abs(this.getTotalLength() - to) < "1e-6") { - return getSubpathsAtLength(this.attrs.path, from).end; - } - var a = getSubpathsAtLength(this.attrs.path, to, 1); - return from ? getSubpathsAtLength(a, from).end : a; - }; - - // animation easing formulas - R.easing_formulas = { - linear: function (n) { - return n; - }, - "<": function (n) { - return pow(n, 3); - }, - ">": function (n) { - return pow(n - 1, 3) + 1; - }, - "<>": function (n) { - n = n * 2; - if (n < 1) { - return pow(n, 3) / 2; - } - n -= 2; - return (pow(n, 3) + 2) / 2; - }, - backIn: function (n) { - var s = 1.70158; - return n * n * ((s + 1) * n - s); - }, - backOut: function (n) { - n = n - 1; - var s = 1.70158; - return n * n * ((s + 1) * n + s) + 1; - }, - elastic: function (n) { - if (n == 0 || n == 1) { - return n; - } - var p = .3, - s = p / 4; - return pow(2, -10 * n) * math.sin((n - s) * (2 * PI) / p) + 1; - }, - bounce: function (n) { - var s = 7.5625, - p = 2.75, - l; - if (n < (1 / p)) { - l = s * n * n; - } else { - if (n < (2 / p)) { - n -= (1.5 / p); - l = s * n * n + .75; - } else { - if (n < (2.5 / p)) { - n -= (2.25 / p); - l = s * n * n + .9375; - } else { - n -= (2.625 / p); - l = s * n * n + .984375; - } - } - } - return l; - } - }; - - var animationElements = [], - animation = function () { - var Now = +new Date; - for (var l = 0; l < animationElements[length]; l++) { - var e = animationElements[l]; - if (e.stop || e.el.removed) { - continue; - } - var time = Now - e.start, - ms = e.ms, - easing = e.easing, - from = e.from, - diff = e.diff, - to = e.to, - t = e.t, - that = e.el, - set = {}, - now; - if (time < ms) { - var pos = easing(time / ms); - for (var attr in from) if (from[has](attr)) { - switch (availableAnimAttrs[attr]) { - case "along": - now = pos * ms * diff[attr]; - to.back && (now = to.len - now); - var point = getPointAtLength(to[attr], now); - that.translate(diff.sx - diff.x || 0, diff.sy - diff.y || 0); - diff.x = point.x; - diff.y = point.y; - that.translate(point.x - diff.sx, point.y - diff.sy); - to.rot && that.rotate(diff.r + point.alpha, point.x, point.y); - break; - case nu: - now = +from[attr] + pos * ms * diff[attr]; - break; - case "colour": - now = "rgb(" + [ - upto255(round(from[attr].r + pos * ms * diff[attr].r)), - upto255(round(from[attr].g + pos * ms * diff[attr].g)), - upto255(round(from[attr].b + pos * ms * diff[attr].b)) - ][join](",") + ")"; - break; - case "path": - now = []; - for (var i = 0, ii = from[attr][length]; i < ii; i++) { - now[i] = [from[attr][i][0]]; - for (var j = 1, jj = from[attr][i][length]; j < jj; j++) { - now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j]; - } - now[i] = now[i][join](S); - } - now = now[join](S); - break; - case "csv": - switch (attr) { - case "translation": - var x = pos * ms * diff[attr][0] - t.x, - y = pos * ms * diff[attr][1] - t.y; - t.x += x; - t.y += y; - now = x + S + y; - break; - case "rotation": - now = +from[attr][0] + pos * ms * diff[attr][0]; - from[attr][1] && (now += "," + from[attr][1] + "," + from[attr][2]); - break; - case "scale": - now = [+from[attr][0] + pos * ms * diff[attr][0], +from[attr][1] + pos * ms * diff[attr][1], (2 in to[attr] ? to[attr][2] : E), (3 in to[attr] ? to[attr][3] : E)][join](S); - break; - case "clip-rect": - now = []; - i = 4; - while (i--) { - now[i] = +from[attr][i] + pos * ms * diff[attr][i]; - } - break; - } - break; - default: - var from2 = [].concat(from[attr]); - now = []; - i = that.paper.customAttributes[attr].length; - while (i--) { - now[i] = +from2[i] + pos * ms * diff[attr][i]; - } - break; - } - set[attr] = now; - } - that.attr(set); - that._run && that._run.call(that); - } else { - if (to.along) { - point = getPointAtLength(to.along, to.len * !to.back); - that.translate(diff.sx - (diff.x || 0) + point.x - diff.sx, diff.sy - (diff.y || 0) + point.y - diff.sy); - to.rot && that.rotate(diff.r + point.alpha, point.x, point.y); - } - (t.x || t.y) && that.translate(-t.x, -t.y); - to.scale && (to.scale += E); - that.attr(to); - animationElements.splice(l--, 1); - } - } - R.svg && that && that.paper && that.paper.safari(); - animationElements[length] && setTimeout(animation); - }, - keyframesRun = function (attr, element, time, prev, prevcallback) { - var dif = time - prev; - element.timeouts.push(setTimeout(function () { - R.is(prevcallback, "function") && prevcallback.call(element); - element.animate(attr, dif, attr.easing); - }, prev)); - }, - upto255 = function (color) { - return mmax(mmin(color, 255), 0); - }, - translate = function (x, y) { - if (x == null) { - return {x: this._.tx, y: this._.ty, toString: x_y}; - } - this._.tx += +x; - this._.ty += +y; - switch (this.type) { - case "circle": - case "ellipse": - this.attr({cx: +x + this.attrs.cx, cy: +y + this.attrs.cy}); - break; - case "rect": - case "image": - case "text": - this.attr({x: +x + this.attrs.x, y: +y + this.attrs.y}); - break; - case "path": - var path = pathToRelative(this.attrs.path); - path[0][1] += +x; - path[0][2] += +y; - this.attr({path: path}); - break; - } - return this; - }; - elproto.animateWith = function (element, params, ms, easing, callback) { - for (var i = 0, ii = animationElements.length; i < ii; i++) { - if (animationElements[i].el.id == element.id) { - params.start = animationElements[i].start; - } - } - return this.animate(params, ms, easing, callback); - }; - elproto.animateAlong = along(); - elproto.animateAlongBack = along(1); - function along(isBack) { - return function (path, ms, rotate, callback) { - var params = {back: isBack}; - R.is(rotate, "function") ? (callback = rotate) : (params.rot = rotate); - path && path.constructor == Element && (path = path.attrs.path); - path && (params.along = path); - return this.animate(params, ms, callback); - }; - } - function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) { - var cx = 3 * p1x, - bx = 3 * (p2x - p1x) - cx, - ax = 1 - cx - bx, - cy = 3 * p1y, - by = 3 * (p2y - p1y) - cy, - ay = 1 - cy - by; - function sampleCurveX(t) { - return ((ax * t + bx) * t + cx) * t; - } - function solve(x, epsilon) { - var t = solveCurveX(x, epsilon); - return ((ay * t + by) * t + cy) * t; - } - function solveCurveX(x, epsilon) { - var t0, t1, t2, x2, d2, i; - for(t2 = x, i = 0; i < 8; i++) { - x2 = sampleCurveX(t2) - x; - if (abs(x2) < epsilon) { - return t2; - } - d2 = (3 * ax * t2 + 2 * bx) * t2 + cx; - if (abs(d2) < 1e-6) { - break; - } - t2 = t2 - x2 / d2; - } - t0 = 0; - t1 = 1; - t2 = x; - if (t2 < t0) { - return t0; - } - if (t2 > t1) { - return t1; - } - while (t0 < t1) { - x2 = sampleCurveX(t2); - if (abs(x2 - x) < epsilon) { - return t2; - } - if (x > x2) { - t0 = t2; - } else { - t1 = t2; - } - t2 = (t1 - t0) / 2 + t0; - } - return t2; - } - return solve(t, 1 / (200 * duration)); - } - elproto.onAnimation = function (f) { - this._run = f || 0; - return this; - }; - elproto.animate = function (params, ms, easing, callback) { - var element = this; - element.timeouts = element.timeouts || []; - if (R.is(easing, "function") || !easing) { - callback = easing || null; - } - if (element.removed) { - callback && callback.call(element); - return element; - } - var from = {}, - to = {}, - animateable = false, - diff = {}; - for (var attr in params) if (params[has](attr)) { - if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) { - animateable = true; - from[attr] = element.attr(attr); - (from[attr] == null) && (from[attr] = availableAttrs[attr]); - to[attr] = params[attr]; - switch (availableAnimAttrs[attr]) { - case "along": - var len = getTotalLength(params[attr]); - var point = getPointAtLength(params[attr], len * !!params.back); - var bb = element.getBBox(); - diff[attr] = len / ms; - diff.tx = bb.x; - diff.ty = bb.y; - diff.sx = point.x; - diff.sy = point.y; - to.rot = params.rot; - to.back = params.back; - to.len = len; - params.rot && (diff.r = toFloat(element.rotate()) || 0); - break; - case nu: - diff[attr] = (to[attr] - from[attr]) / ms; - break; - case "colour": - from[attr] = R.getRGB(from[attr]); - var toColour = R.getRGB(to[attr]); - diff[attr] = { - r: (toColour.r - from[attr].r) / ms, - g: (toColour.g - from[attr].g) / ms, - b: (toColour.b - from[attr].b) / ms - }; - break; - case "path": - var pathes = path2curve(from[attr], to[attr]); - from[attr] = pathes[0]; - var toPath = pathes[1]; - diff[attr] = []; - for (var i = 0, ii = from[attr][length]; i < ii; i++) { - diff[attr][i] = [0]; - for (var j = 1, jj = from[attr][i][length]; j < jj; j++) { - diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms; - } - } - break; - case "csv": - var values = Str(params[attr])[split](separator), - from2 = Str(from[attr])[split](separator); - switch (attr) { - case "translation": - from[attr] = [0, 0]; - diff[attr] = [values[0] / ms, values[1] / ms]; - break; - case "rotation": - from[attr] = (from2[1] == values[1] && from2[2] == values[2]) ? from2 : [0, values[1], values[2]]; - diff[attr] = [(values[0] - from[attr][0]) / ms, 0, 0]; - break; - case "scale": - params[attr] = values; - from[attr] = Str(from[attr])[split](separator); - diff[attr] = [(values[0] - from[attr][0]) / ms, (values[1] - from[attr][1]) / ms, 0, 0]; - break; - case "clip-rect": - from[attr] = Str(from[attr])[split](separator); - diff[attr] = []; - i = 4; - while (i--) { - diff[attr][i] = (values[i] - from[attr][i]) / ms; - } - break; - } - to[attr] = values; - break; - default: - values = [].concat(params[attr]); - from2 = [].concat(from[attr]); - diff[attr] = []; - i = element.paper.customAttributes[attr][length]; - while (i--) { - diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms; - } - break; - } - } - } - if (!animateable) { - var attrs = [], - lastcall; - for (var key in params) if (params[has](key) && animKeyFrames.test(key)) { - attr = {value: params[key]}; - key == "from" && (key = 0); - key == "to" && (key = 100); - attr.key = toInt(key, 10); - attrs.push(attr); - } - attrs.sort(sortByKey); - if (attrs[0].key) { - attrs.unshift({key: 0, value: element.attrs}); - } - for (i = 0, ii = attrs[length]; i < ii; i++) { - keyframesRun(attrs[i].value, element, ms / 100 * attrs[i].key, ms / 100 * (attrs[i - 1] && attrs[i - 1].key || 0), attrs[i - 1] && attrs[i - 1].value.callback); - } - lastcall = attrs[attrs[length] - 1].value.callback; - if (lastcall) { - element.timeouts.push(setTimeout(function () {lastcall.call(element);}, ms)); - } - } else { - var easyeasy = R.easing_formulas[easing]; - if (!easyeasy) { - easyeasy = Str(easing).match(bezierrg); - if (easyeasy && easyeasy[length] == 5) { - var curve = easyeasy; - easyeasy = function (t) { - return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms); - }; - } else { - easyeasy = function (t) { - return t; - }; - } - } - animationElements.push({ - start: params.start || +new Date, - ms: ms, - easing: easyeasy, - from: from, - diff: diff, - to: to, - el: element, - t: {x: 0, y: 0} - }); - R.is(callback, "function") && (element._ac = setTimeout(function () { - callback.call(element); - }, ms)); - animationElements[length] == 1 && setTimeout(animation); - } - return this; - }; - elproto.stop = function () { - for (var i = 0; i < animationElements.length; i++) { - animationElements[i].el.id == this.id && animationElements.splice(i--, 1); - } - for (i = 0, ii = this.timeouts && this.timeouts.length; i < ii; i++) { - clearTimeout(this.timeouts[i]); - } - this.timeouts = []; - clearTimeout(this._ac); - delete this._ac; - return this; - }; - elproto.translate = function (x, y) { - return this.attr({translation: x + " " + y}); - }; - elproto[toString] = function () { - return "Rapha\xebl\u2019s object"; - }; - R.ae = animationElements; - - // Set - var Set = function (items) { - this.items = []; - this[length] = 0; - this.type = "set"; - if (items) { - for (var i = 0, ii = items[length]; i < ii; i++) { - if (items[i] && (items[i].constructor == Element || items[i].constructor == Set)) { - this[this.items[length]] = this.items[this.items[length]] = items[i]; - this[length]++; - } - } - } - }; - Set[proto][push] = function () { - var item, - len; - for (var i = 0, ii = arguments[length]; i < ii; i++) { - item = arguments[i]; - if (item && (item.constructor == Element || item.constructor == Set)) { - len = this.items[length]; - this[len] = this.items[len] = item; - this[length]++; - } - } - return this; - }; - Set[proto].pop = function () { - delete this[this[length]--]; - return this.items.pop(); - }; - for (var method in elproto) if (elproto[has](method)) { - Set[proto][method] = (function (methodname) { - return function () { - for (var i = 0, ii = this.items[length]; i < ii; i++) { - this.items[i][methodname][apply](this.items[i], arguments); - } - return this; - }; - })(method); - } - Set[proto].attr = function (name, value) { - if (name && R.is(name, array) && R.is(name[0], "object")) { - for (var j = 0, jj = name[length]; j < jj; j++) { - this.items[j].attr(name[j]); - } - } else { - for (var i = 0, ii = this.items[length]; i < ii; i++) { - this.items[i].attr(name, value); - } - } - return this; - }; - Set[proto].animate = function (params, ms, easing, callback) { - (R.is(easing, "function") || !easing) && (callback = easing || null); - var len = this.items[length], - i = len, - item, - set = this, - collector; - callback && (collector = function () { - !--len && callback.call(set); - }); - easing = R.is(easing, string) ? easing : collector; - item = this.items[--i].animate(params, ms, easing, collector); - while (i--) { - this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, params, ms, easing, collector); - } - return this; - }; - Set[proto].insertAfter = function (el) { - var i = this.items[length]; - while (i--) { - this.items[i].insertAfter(el); - } - return this; - }; - Set[proto].getBBox = function () { - var x = [], - y = [], - w = [], - h = []; - for (var i = this.items[length]; i--;) { - var box = this.items[i].getBBox(); - x[push](box.x); - y[push](box.y); - w[push](box.x + box.width); - h[push](box.y + box.height); - } - x = mmin[apply](0, x); - y = mmin[apply](0, y); - return { - x: x, - y: y, - width: mmax[apply](0, w) - x, - height: mmax[apply](0, h) - y - }; - }; - Set[proto].clone = function (s) { - s = new Set; - for (var i = 0, ii = this.items[length]; i < ii; i++) { - s[push](this.items[i].clone()); - } - return s; - }; - - R.registerFont = function (font) { - if (!font.face) { - return font; - } - this.fonts = this.fonts || {}; - var fontcopy = { - w: font.w, - face: {}, - glyphs: {} - }, - family = font.face["font-family"]; - for (var prop in font.face) if (font.face[has](prop)) { - fontcopy.face[prop] = font.face[prop]; - } - if (this.fonts[family]) { - this.fonts[family][push](fontcopy); - } else { - this.fonts[family] = [fontcopy]; - } - if (!font.svg) { - fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10); - for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) { - var path = font.glyphs[glyph]; - fontcopy.glyphs[glyph] = { - w: path.w, - k: {}, - d: path.d && "M" + path.d[rp](/[mlcxtrv]/g, function (command) { - return {l: "L", c: "C", x: "z", t: "m", r: "l", v: "c"}[command] || "M"; - }) + "z" - }; - if (path.k) { - for (var k in path.k) if (path[has](k)) { - fontcopy.glyphs[glyph].k[k] = path.k[k]; - } - } - } - } - return font; - }; - paperproto.getFont = function (family, weight, style, stretch) { - stretch = stretch || "normal"; - style = style || "normal"; - weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400; - if (!R.fonts) { - return; - } - var font = R.fonts[family]; - if (!font) { - var name = new RegExp("(^|\\s)" + family[rp](/[^\w\d\s+!~.:_-]/g, E) + "(\\s|$)", "i"); - for (var fontName in R.fonts) if (R.fonts[has](fontName)) { - if (name.test(fontName)) { - font = R.fonts[fontName]; - break; - } - } - } - var thefont; - if (font) { - for (var i = 0, ii = font[length]; i < ii; i++) { - thefont = font[i]; - if (thefont.face["font-weight"] == weight && (thefont.face["font-style"] == style || !thefont.face["font-style"]) && thefont.face["font-stretch"] == stretch) { - break; - } - } - } - return thefont; - }; - paperproto.print = function (x, y, string, font, size, origin, letter_spacing) { - origin = origin || "middle"; // baseline|middle - letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1); - var out = this.set(), - letters = Str(string)[split](E), - shift = 0, - path = E, - scale; - R.is(font, string) && (font = this.getFont(font)); - if (font) { - scale = (size || 16) / font.face["units-per-em"]; - var bb = font.face.bbox.split(separator), - top = +bb[0], - height = +bb[1] + (origin == "baseline" ? bb[3] - bb[1] + (+font.face.descent) : (bb[3] - bb[1]) / 2); - for (var i = 0, ii = letters[length]; i < ii; i++) { - var prev = i && font.glyphs[letters[i - 1]] || {}, - curr = font.glyphs[letters[i]]; - shift += i ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0; - curr && curr.d && out[push](this.path(curr.d).attr({fill: "#000", stroke: "none", translation: [shift, 0]})); - } - out.scale(scale, scale, top, height).translate(x - top, y - height); - } - return out; - }; - - R.format = function (token, params) { - var args = R.is(params, array) ? [0][concat](params) : arguments; - token && R.is(token, string) && args[length] - 1 && (token = token[rp](formatrg, function (str, i) { - return args[++i] == null ? E : args[i]; - })); - return token || E; - }; - R.ninja = function () { - oldRaphael.was ? (win.Raphael = oldRaphael.is) : delete Raphael; - return R; - }; - R.el = elproto; - R.st = Set[proto]; - - oldRaphael.was ? (win.Raphael = R) : (Raphael = R); -})(); \ No newline at end of file diff --git a/build/TrifiliarSuspension/js/trifiliar.js b/build/TrifiliarSuspension/js/trifiliar.js deleted file mode 100755 index d67a54d..0000000 --- a/build/TrifiliarSuspension/js/trifiliar.js +++ /dev/null @@ -1,34 +0,0 @@ -var m0,r0,l,a,r,m,J0,J,g=9.81,pi=22/7,T=0.975; -$(document).ready(function() -{ -picture() -m0=parseFloat($("#textbox1").val(0.010)); -m=parseFloat($("#textbox2").val(0.450)); -r=parseFloat($("#textbox3").val(0.150)); -a=parseFloat($("#textbox4").val(0.140)); -l=parseFloat($("#textbox5").val(1.50)); -$("#reload").click(function(){ - $("#textbox6").val(""); - $("#textbox7").val(""); - window.location.href=window.location.href; -}) -}); - -function clickTrial1() -{ -m0=parseFloat($("#textbox1").val()); -m=parseFloat($("#textbox2").val()); -r=parseFloat($("#textbox3").val()); -a=parseFloat($("#textbox4").val()); -l=parseFloat($("#textbox5").val()); -J0=((1/2)*m0*r*r).toFixed(5); -$("#textbox6").val(J0); -$("#button2").attr("disabled",false); -$("#button2").addClass('greenbtn'); -} -function clickTrial5() -{ -J=(parseFloat( ( g * T * T * a * a * (m + m0) ) / (4 * (pi) * (pi) * l ) ) - J0).toFixed(5); -$("#textbox7").val(J); - -} \ No newline at end of file diff --git a/build/TrifiliarSuspension/js/trifiliar.txt b/build/TrifiliarSuspension/js/trifiliar.txt deleted file mode 100755 index e69de29..0000000 diff --git a/build/TrifiliarSuspension/js/trifiliarraphael.js b/build/TrifiliarSuspension/js/trifiliarraphael.js deleted file mode 100755 index 1091f70..0000000 --- a/build/TrifiliarSuspension/js/trifiliarraphael.js +++ /dev/null @@ -1,124 +0,0 @@ -var r,an1,an2,patch1,sec=243,t,object1,s=0; -var check,second=0,se,ms=0,osi=0; -function picture() -{ -r=new Raphael(document.getElementById('picture'),800,520); -ellipse1 = r.ellipse(230, 300, 130, 50).attr({fill:"gray",'stroke-width':3}); -curve =r.path("M100 300 s 0 40 10 45 s110,60 240,0 ").attr({'stroke-width':3}); -curve2 =r.path("M360 300 s 0 40 -10 45").attr({'stroke-width':3}); -object1= r.path("M40 240 s10,20,20,-5,s10,-20 -30,-30,s10,50 20,40").attr({fill:"brown"}); -smallcircle1 =r.circle(115 ,305,4); -smallcircle3 =r.circle(267 ,268,4); -smallcircle2 =r.circle(278 ,330,4); -line1 = r.path(" M115 75 l0 230").attr({'stroke-width':3}); -line2= r.path(" M278 100 l0 230").attr({'stroke-width':3}); -line3 = r.path(" M267 40 l0 230").attr({'stroke-width':3}); -patch = r.path(" M290 365 l0 -20, l25 -7, l0 20,l-20 7").attr({fill:"black"}); -decoder = r.path("M340 360 l-20 8 ,l0 14, l25 5 , l 0 -8, l -25 -11 ,l20 -8 ,l 15 17, l -11 2 ,l 0 8 ,l 10 -2 , l 1-9 ").attr({fill:"black"}); -rect = r.rect(440, 70, 350, 250).attr({'stroke':'#000066','stroke-width':3,fill:"#3BB9FF"}); -rect = r.rect(465, 120, 110, 70).attr({'stroke':'#000066','stroke-width':3,fill:"black"}); -rect = r.rect(670, 120, 110, 70).attr({'stroke':'#000066','stroke-width':3,fill:"black"}); -rect = r.rect(670, 230, 110, 70).attr({'stroke':'#000066','stroke-width':3,fill:"black"}); -text1 = r.text (525, 105,"No. Of Oscillations").attr({'font-size':16,'font-weight':'bold'}); -text2 = r.text (725, 105,"Clock").attr({'font-size':16,'font-weight':'bold'}); -text3 = r.text (535, 275,"Period Of Oscillation, T").attr({'font-size':16,'font-weight':'bold'}); -text4 = r.text (280, 385,"Decoder").attr({'font-size':16,'font-weight':'bold'}); -wire = r.path("M 354 380 s50,70 30,-100,s80,-40,50,-74").attr({'stroke-width':3}); -} - -function rotatediskSecond() -{ -$("#button4").attr("disabled",true); -check=2; -var an1=patch.animate({path:" M338 348 l 2 -20, l 17 -12, l0 23, l -20 12"},sec); -var an2=line1.animateWith(an1,{path:" M115 75 l35 250"},sec); -var an3=line2.animateWith(an1,{path:" M278 100 l42 220"},sec); -var an4=line3.animateWith(an1,{path:" M267 40 l-30 225"},sec); -var an5=smallcircle1.animateWith(an1,{cx:150 , cy:325},sec); -var an6=smallcircle3.animateWith(an1,{cx:237 ,cy:265},sec); -var an7=smallcircle2.animateWith(an1,{cx:320 ,cy:320},sec); -var an8=object1.animateWith(an1,{rotation:"-45"},sec); -$("#oscil").html(s); -second+=sec; -se=parseInt(second/1000); -ms=second%100; -$("#timer").html("0"+se+":"+ms+" s"); -s++; -object1.rotate(45); -setTimeout("rotatediskThird()",sec) -} - -function rotatediskFirst() -{ - check=1; - var an1=patch.animate({path:" M238 374 l0 -23, l20 -2,l0 24,l-20 0 "},sec); - var an2=line1.animateWith(an1,{path:" M115 75 l35 200"},sec); - var an3=line2.animateWith(an1,{path:" M278 100 l-43 235"},sec); - var an4=line3.animateWith(an1,{path:" M267 40 l33 240"},sec); - var an5 =smallcircle1.animateWith(an1,{cx:150,cy:275},sec); - var an6=smallcircle3.animateWith(an1,{cx:300 ,cy:280},sec); - var an7=smallcircle2.animateWith(an1,{cx:235 ,cy:335},sec); - var an8=object1.animateWith(an1,{rotation:"45"},sec); - $("#oscil").html(s); - second+=sec; - se=parseInt(second/1000); - ms=second%100; - $("#timer").html("0"+se+":"+ms+" s"); - setTimeout("rotatediskThird();",sec); - - } - - function rotatediskThird() - { - var an1=patch.animate({path:" M290 365 l0 -20, l25 -7, l0 20,l-20 7"},sec); - var an2=line1.animateWith(an1,{path:" M115 75 l10 225"},sec); - var an3=line2.animateWith(an1,{path:" M278 100 l0 230"},sec); - var an4=line3.animateWith(an1,{path:" M267 40 l0 230"},sec); - var an5 =smallcircle1.animateWith(an1,{cx:125,cy:300},sec); - var an6=smallcircle3.animateWith(an1,{cx:267 ,cy:270},sec); - var an7=smallcircle2.animateWith(an1,{cx:278 ,cy:330},sec); - var an8=object1.animateWith(an1,{rotation:"0"},sec); - $("#oscil").html(s); - second+=sec; - se=parseInt(second/1000); - ms=second%100; - $("#timer").html("0"+se+":"+ms+" s"); - osi+=0.5; - - if(osi<10) - { - if(check==1) - { - setTimeout("rotatediskSecond()",sec); - } - else - { - //s = r.text(300,100,"Raph"); - setTimeout("rotatediskFirst()",sec); - } - } - else - { - $("#timer").html("09:75 s"); - $("#period").html("0.975 s"); - $("#button5").attr("disabled",false); - $("#button5").addClass('bluebtn'); - - } -} - function clickTrial2() -{ - var an15=object1.animate({path:"M160 300 s10,20,20,-5,s10,-20,-30,-30,s10,50,20,40"},1000); - $("#button2").attr("disabled",true); - $("#button3").addClass('greenbtn'); - $("#button3").attr("disabled",false); -} -function clickTrial3() -{ -var an16=object1.animate({path:"M240 310 s10,20,20,-5,s10,-20,-30,-30,s10,50,20,40"},500); -$("#button3").attr("disabled",true); -$("#button4").attr("disabled",false); -$("#button4").addClass('greenbtn'); -} - - diff --git a/build/TunedVibrationAbsorber/TunedVibrationAbsorber.html b/build/TunedVibrationAbsorber/TunedVibrationAbsorber.html deleted file mode 100755 index f3768a3..0000000 --- a/build/TunedVibrationAbsorber/TunedVibrationAbsorber.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - Tuned Vibration Absorber - - - - - - - - - - - -
        -
          -
          - -
          -

          Tuned Vibration Absorber

          -
        -
        -
        -
        - - Control Panel - -

        - - - Rad/s -

        -

        - - - N -

        -

        - - - kg -

        -

        - - - N/m -

        -

        - - - Rad/s -

        -

        - - - kg -

        -

        - - - N/m -

        -

        - - - Rad/s -

        -

        - - -

        -

        - - - m -

        -

        - - - m -

        - - -
        -
        -
        -
        -
        - - - - - -
        -
        - - diff --git a/build/TunedVibrationAbsorber/content.html b/build/TunedVibrationAbsorber/content.html deleted file mode 100755 index f186e87..0000000 --- a/build/TunedVibrationAbsorber/content.html +++ /dev/null @@ -1,11478 +0,0 @@ - - -
        - -
        - - - -
        - -
        - -
        -
        -
        Tuned Vibration Absorber
        - - - -
        - -
        -
        - - -
        - -
        - Aim -
        - -

        Aim

        - -

                 Tuned Vibration Absorber

        - - -

         Many–a-times, a vibratory system under forced vibration is required to run near resonance i.e. the excitation frequency is close to the natural frequency of the system. Under such a situation, the response of the system can be large and we must try to reduce it by taking some measure. The excitation frequency may be constant in many cases as in case of a machine with rotor-unbalance running at constant speed. By attaching a separate smaller spring-mass system, an auxiliary system, to the main system the vibration of the main system can be reduced, drastically, if the mass and the stiffness of the auxiliary system are properly calculated, i.e. if the auxiliarysystem is tuned to the natural frequency of the main system and the excitation frequency. Underthis condition,thevibrationof the main system is reduced almost to zero and the auxiliary system vibrates in response to the excitation. So, it is termed as vibration absorber and this method of vibration control is called vibration absorption. - -


        In this experiment, you will try to design a tuned vibration absorber. You will also study the effect of changing the mass and stiffness of an auxiliary system (i.e. natural frequency of an auxiliary system when it is isolated) on response of the main system to a harmonic force. The harmonic force is considered to be generated out of unbalanced rotating mass with constant rpm. The mass and stiffness of main system are considered to be fixed which is usually the case in practical situation also. The frequency of theexcitation force and natural frequency of main system are close to each other. Thus, we have a main system with fixed natural frequency and a harmonic excitation force having frequency closer to the natural frequency of the main system. In other words, we have a system running at or near resonance having a large response, naturally, which will be reduced by attaching a properly tuned vibration absorber. Damping is neglected for simplicity and ease of understanding. - -


        Follow the procedure given on another screen which is opened by clicking the tab ‘Procedure’ and use the simulator later to perform the experiment.
        -


        Theory - - -

        The theory on which thedesign of tuned vibration absorber is based is as given below: - -

        The response of a SDOF system, subjected to a harmonic force having frequency close to the natural frequency of the system, will be quite large when the frequencies are equal. It will be infinite, theoretically, if damping is neglected. The variation of amplitude of response with respect to the excitation frequency is as shown in the graph below. -

        -

        - - - - - - - - - - - -
        Undamped SDOF system with harmonic force excitationResponse of undamped SDOF system to harmonic force; Magnitude of response v/s frequency of excitation, ω/ωn
        - -

        -For an undamped SDOF system , the forced response is given by
        -

        where, Xst is the static deflection of the spring which is equal to the ratio of amplitude of the excitation force, F0,and the stiffness of the spring, K. -
        ω - Excitation frequency, -
        ωn- Naturalfrequency of the system. -
        At ω = 0.95ωn, we get X/Xst = 10.26. The plot of the amplitude of response, X/Xst , versus frequency ratio, ω/ωn, is shown in the figure above. -
        Now, we attach an auxiliary SDOF system with mass M2 and stiffness K2 to the main system which has a mass M1 and stiffness K1. When these systems were independent (separate), they would have their own natural frequencies given by ωn1 = (K1/M1)^0.5 for the main system, and ωn2 = (K1/M2)^0.5 for the auxiliary system -
        It is to be noted that on attaching the auxiliary system to main system, another system is formed which is now a two degree of freedom system. It will have its own two natural frequencies but quite different from ω1 and ω2 that we considered above. -
        The response of each mass of the system, now a 2-DOF system, to harmonic force acting on M1 (Amplitude of vibration of each mass is given by), is given by -
        -

        - μ is the mass ratio = M2/M1. ωn1 = (K1/M1)^0.5 and ωn2 = (K1/M2)^0.5, However, the natural frequencies of the 2-degree of freedom system formed after attaching the auxiliary system are given by different expressions in terms of M1, M2, K1, and K2. -Plot of the dimensionless responses of each of the two masses is shown above when a harmonic force acts on M­1 when excitation frequency is close to natural frequency of main system,ω ≠ω1 ,, but much away from natural frequency of auxiliary system,ω ≠ω2, Mass ratio μ=M2/M1= 0.15. -

        - - - - - - - - - - - -
        Main system attached with an auxiliary system – Now, a 2-DOF systemFrequency response of each of the two masses when a harmonic force acts on 1 when excitation frequency is close to natural frequency of main system ω ω1 but much away from natural frequency of auxiliary system, ω ω2. Mass ratio μ=M2/M1= 0.15.
        -


        -

          -Now we consider that excitation frequency is almost equal to the natural frequency of the main system alone. Because of this, its response would be large before attaching the auxiliary system. If we attach the auxiliary system such that its natural frequency is equal to the excitation frequency, and hence also equal to that of the main system, and substitute ω =ω12 in above equations, we find that X1 reduces to zero and X2 = F0/(μ.K1), XST = F0/K1. Thus, by attaching an auxiliary system with natural frequency equal to the excitation frequency and natural frequency of the main system makes the response of the main system zero though the auxiliary system oscillates with anamplitude equal to F0/(μ.K1).And this is the principle of working of a vibration absorber. -
        While designing the vibration absorber, we must select K2 and M2 such that ω=ω2 = (K2/M2)^0.5 and to keep response of auxiliary system minimum, we must have X2 = F0/(μ.K1) minimum. As F0 and K1 cannot be changed, adjusting the mass ratio =M2/M1(in fact, only M2) is in our hand. For smaller X2, we should have large M2 and we cannot increase M2 to a very large extent because the auxiliary system should not be bulky. So, a compromise is made and value of μ is kept in the range of 0.05 to 0.25. Observe this in the figure below -



        -In this experiment, while the auxiliary system is tuned, you would choose different values of mass ratio and observe the responses of the primary and secondary systems. The responses can also be observed even if the auxiliary system is not tuned i.e. when the natural frequency of auxiliary system is not equal to the excitation frequency or the natural frequency of the main system. This is done by choosing values of M2 and K2 such that ω ≠ ω2 as ω2 = (K2/M2)^0.5.

        -

        - -
        -
        - -
        -
        - - -
        -
        - Theory -
        -

        -

         

        -

        Vibratory systems around us - - -

        Here are some examples of physical systems where the vibrations are prominent and can be observed easily. In musical instruments the vibrations are intentional. The parts of musical instruments are designed so that they generate sounds that are pleasant to listen. In many cases the vibrations are unwanted and we try to minimize them.

        -

         

        -

        1.   A chandelier hanging from ceiling oscillates to and fro following an initial disturbance; maybe due to a breeze of air.

        -

         

        -

        2.   The oscillations of the chandelier at cathedral of Pisa, Italy, were studied by the famous scientist Galileo Galilee.

        -

         

        -

        3.   A load attached at end of a wire-rope of a crane oscillates to and fro due to initial disturbance; maybe due to sudden stopping of carriage of the crane while revolving about the vertical axis.

        -

         

        -

        4.   The pendulum used in clock of olden days used to oscillate to and fro once every second. i.e. it had a period of oscillation of one second.

        -

         

        -

        5.   String of a guitar, when plucked and left to its own, vibrates and makes a musical sound. It comes to rest after a while; the vibrations die out. Similarly, the diaphragm of a table vibrates when hit and left to its own. It also comes to rest after some time. -

        - -

        -     All these are examples of vibratory systems that are set into vibration following an initial disturbance. All these systems have three components: mass, due to which the system possesses inertia; elasticity, due to which potential energy can be stored; and components that dissipate energy causing the vibratory motion to be damped which bring them to rest after some time.
        -      Vibration or vibratory systems are classified in number of ways. Some of the classifications are given below: -

        -

         

        -

         Free and forced vibration - A free vibration occurs due to initial displacement or velocity, or both, applied to the system only initially. There is no external force acting on the system when the system is vibrating. A forced vibration occurs when the system vibrates in response to external force applied continuously. When the force applied is periodic, i.e. it repeats itself after a fixed interval of time, the forced vibration is called periodic. If the periodic force and hence the resulting vibration varies sinusoidally with respect to time, the vibration is called harmonic. If the force is not periodic, the forced vibration is called aperiodic or random.

        - -

        -

         Damped and undamped vibration -
        -When the vibratory system has elements that offer resistance to motion, energy is continuously dissipated and the free vibrations of such systems come to halt after some time. This is called damped vibration and such systems are called damped systems. Forced vibration of a damped system continues as long as the force acts but some of the work done by the external force is lost in overcoming the resistance offered by the damping elements. Systems without damping elements are called undamped systems and their vibrations are called undamped vibrations. All systems in nature have some or the other damping element and their natural vibrations are damped. Hence they come to rest after some time following free vibrations. Nevertheless, we study the vibration of undamped systems because the concepts developed in studying them are useful in analyzing and understanding the phenomena occurring in vibration of damped as well as complicated systems. When the force of resistance offered by a damping element is proportional to velocity of mass of the system, it is termed as viscous damping and the damping element is called a viscous damper. If the force of resistance has a constant value, it is termed as Coulomb damping. Damping due to dry friction shows this kind of behavior. Coulomb damping can occur when the system has components rubbing over each other. There are other types of damping also which shall be discussed later.

        -

        - -

        -

        -

        - -

        -

        -

        -

        Degrees of freedom : The vibratory systems are classified as single-degree-of-freedom systems, Multi-degree-of-freedom-systems or continuous systems. The number of degrees of freedom corresponds to the number of independent co-ordinates required to completely describe the motion of the system. In fact, it is the sum of the possible ways each mass can move independently of other masses. The translation of a mass along the three axes, X, Y and Z, and the three rotations about each of these axes constitute possible ways of motion of a mass. Many times, many of these six motions of a mass are restricted and a mass can have one or two degrees of freedom, i.e. only translation or translation and rotation of a single mass about any one of the axes.
        -
        -Linear and Non-linear Vibrations : Vibration is said to be linear if the damping force is proportional to velocity, inertia force is proportional to mass, and restoring force is proportional to displacement. If any of this proportionality is not satisfied, the system is said to be non-linear.
        -
        - Solving engineering problems : Analytical methods are usually applied to models of actual systems. We carry out experiments on models if physical systems are not available for testing. While preparing such models, we exclude superfluous details of the system but include all essential and important features of the actual system. While doing so, we idealize and approximate important behaviour of the system without affecting much the accuracy in predicting the behaviour. The system model so developed provides ease of application of analytical and experimental techniques. Once a satisfactory model is developed, laws of Physics can be applied which give a set of mathematical equations relating the properties and variables of the system. Such a set of mathematical equations is called mathematical model of the system. Solving the set of equations (or a single mathematical equation) provides expression for the system variable in terms of location and time. We call this as ‘solution’ of the problem. As an illustration of the concepts described above, see the example given below.
        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        -

        Physical system

        -
        -

        These days we have number of towering buildings.  Many a times the residential part of such a building is supported on a tall concrete structure.  One of such buildings is the ‘Milad Tower’, situated in Tehran, Iran.  Its head consists of a large pod with 12 floors and below is a staircase and elevators to reach the area.

        -

        The oscillations of such tall buildings, in response to earthquake and wind, are important from design point of view.  And to study these oscillations, we must know the characteristics of its natural vibration. 

        -

        Analysis of such a physical system can be very much complicated.  To obtain first rough estimate of the natural frequency of vibration, the problem can be stated and the physical system can be modeled in a simple way as described below.

        -
        -

        Problem statement

        -
        -

        To find natural frequency of oscillation of the tower in the direction perpendicular to the vertical axis (i.e. natural frequency of transverse oscillation of the tower) and position of the head at any given time.

        -
        -

        Physical model of the system

        -
        -

        - - - - - - - -
        -
        -

        M

        -
        -
        -
        - - - - - - -
        -
        -

           

        -
        -
        -
        -

         

        -
        -

        The physical model for the system under consideration can be as shown in This is the simplest model.  Only the mass of the building at the top is considered and it is considered to be concentrated at one point.  The mass of the vertical pillar supporting the buiding is neglected and is considered to be a cantilever offering only elesticity.

        -

        Thus it becomes a single degree of freedom system with single mass and only one way of motion of the mass: translation in direction perpendicular to the vertical axis of the building.  Further we assume that the amplitude of this motion to be small.

        -

        The equivalent stiffness of the cantilever is given by

        -

        .  The symbols carry their usual meanings.

        -

         

        -
        -

        Mathematical model

        -
        -

        Using Newton’s second law of motion, the equation of motion of the mass is written as

        -

         

        -

        The first term is the inertia force which is equal to mass multiplied by acceleration and the second term is the spring force given by stiffness of the spring multiplied by its elongation or compression.

        -

        The differential equation is a mathematical model of the system.

        -

         

        -
        -

        General Solution

        -
        -

        The solution to the above differential equation is given by

        -

          

        -

        A and B are constants that depend the initial conditions, i.e. the displacement and velocity of the mass when we started measuring our time.

        -

        These are known as initial conditions.

        -

         is the natural frequency in radians per second and is given by

        -

        -
        -

        Particular solution obtained from the initial conditions

        -
        -

        Substituting the initial conditions in above expression, we can obtain the values of A and B.  Thus if X0 and V0 are the initial displacement and velocity, respectively, given to the mass, the above expression will yield values of A and B as  and  

        -

         

        -

        Now the expression for x becomes

        -

        -

        And we can obtain the value of x at any time t from this expression.

        -

        Thus we have obtained the expressions for natural frequency and position of the head at any given time ‘t and the problem stated by the problem statement is solved.

        -
        -

         

        -
        -
        -
        - - -
        -
        - Simulator -
        -
        -
        -
        -
        - - -
        -
        - Procedure -
        -
        -

        -

        - -

        Procedure:

        -

        -This experiment deals with the process of design of a tuned vibration absorber. Read the text provided on the screen opened on clicking tab ‘Background’. - -

        On opening the screen of simulator by clicking the tab ‘simulator’ and following the hyperlink ‘click here to open the simulator’, you will see graphics of main system having mass M1 and stiffness K1 (divided in two springs, each having stiffness K1/2) attached with an auxiliary system with mass M2 and stiffness K2. A representative rotating mass is seen inside M1. The values of mass and stiffness of the main system and the unbalance mass and its rotational speed are fixed i.e. the natural frequency of the main system before attaching the auxiliary system and the forcing frequency are fixed (cannot be changed) and their values are close to each other ω = 0.95 ωn. - -

        The values of mass and stiffness of the auxiliary system can be selected by the user, i.e. natural frequency of the auxiliary system as an independent and separate system can be changed. You are supposed to input different values of the mass and stiffness of auxiliary system (M2 and K2) and observe the responses of this and the primary system. -You are also supposed to note that when the value of natural frequency of the auxiliary system is equal to the excitation frequency, the response of the main system is reduced to minimal. It is the value of natural frequency (the ratio K2/M2) of the auxiliary system that is important and not the individual values of M2 and K2. The design of a dynamically tuned vibration absorber is governed by the permissible response of the mass of auxiliary system, M2, which is given by the ratio of amplitude of the forcing function and stiffness of the auxiliary system (X2 = F0/K2). Higher values of K2 keep the response X2 low but demand greater values of mass M2. Usually, the value of the mass ratio, M2/M1, is kept between 0.05 and 0.25. - -

        Follow these steps to work with the simulator: -
        -
        1. Input values of mass, M2, and stiffness, K2, of the auxiliary system in the suggested range. Select the value of M2 around 0.1 times the mass M1 and the value of K2 such that the ratio K2/M2 is very nearly equal to the ratio K1/M1. -
        2. Run the simulation. -
        3. On stopping the simulation automatically, observe the values of responses of X1 and X2. Note that when ω= ω1 = ω2, X1 = 0 and X2 = F0/K2. - -

        - -

         

        -
        - -
        -
        - - -
        -
        - Review Questions -
        -

        - - - -

        -

        1.    -The vibration absorber is called ‘tuned’ because - -
          A. Excitation frequency is equal to natural frequency of the main system alone -
          B. The natural frequency of auxiliary system is adjusted to be equal to the excitation frequency while the main syste is operating with excitation frequency equal to its own system. -
          C. Natural frequency of the auxiliary system is equal to that of the main system though excitation frequency may be different -
          D. There is no significance of the word ‘tuned’ as such. -

        -

         

        -

        2.    -The tuned vibration absorber is effective only if - -
          A. The main system is running under near-resonance condition -
          B. It is effective over quite a wide range of frequencies -
          C. Natural frequency of the auxiliary system is equal to that of the main system though excitation frequency may be different -
          D. It can be designed for any general condition. -

        -

         

        -

        3.    - Designing of a tuned vibration absorber becomes critical due to the fact that - -
          A. Maintaining the stiffness to mass ratios of main and auxiliary systems are difficult to be made equal. -
          B. If a smaller mass is selected as the secondary mass, its amplitude becomes large so also the secondary spring. -
          C. It is difficult to match all the three frequencies – natural frequencies of the main and auxiliary systems and the excitation frequency. -
          D. The design is never a difficult task. -

        -

         

        -

        4.    - The amplitude of secondary mass under tuned condition and main system at near-resonance depends on - -
          A. Amplitude of the main system -
          B. Natural frequency of the secondary system -
          C. Ratio of amplitude of the excitation force acting on main mass and the stiffness of the auxiliary system -
          D. Ratio of natural frequencies of primary and secondary systems -

        -

         

        -

        5.   -The value of mass ratio, M1/M2, is important from due to the following: - -
          A. It provides the compromise needed to design the secondary system -
          B. It helps in equating the natural frequencies of primary and secondary systems -
          C. Heavy secondary mass can reduce the response of the primary system -
          D. The ratio has no role to play in the design of the vibration absorber -

        - -

         Master Answers -
          1. B, 2. A, 3. B, 4.C, 5.A

        -

        -

         

        -

        - -

        - - - - - - - - - -

        - - -
        -
        - -
        -
        -
        - diff --git a/build/TunedVibrationAbsorber/css/TVA.css b/build/TunedVibrationAbsorber/css/TVA.css deleted file mode 100755 index 04c7bed..0000000 --- a/build/TunedVibrationAbsorber/css/TVA.css +++ /dev/null @@ -1,138 +0,0 @@ -* { - margin: 0; - padding: 0; -} -#tabs { - height: 717px; - left: 0; - top: 0; -} -#uservalues { - height: 520px; - margin-left: 729px; - margin-top: -513px; - width: 550px; -} -#diagram { - border-width: 2px; - width: 500px; - border: 2px solid #000000; - border-radius: 10px; - height: 500px; - margin-left: 65px; - margin-top: 11px; - padding-left: 90px; - padding-right: 90px; -} -#uservalues fieldset p { - background: #b9cf6a; - background: #6DC9FB; - border-color: #e3ebc3; - border-color: rgba(25, 180, 180, 0.6); - border-style: solid; - border-width: 2px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - line-height: 16px; - list-style: none; - padding: 1px 8px; - height: 45px; - margin-left: -2px; - margin-top: 10px; - width: 202px; -} -#uservalues fieldset legend { - color: highlight; - font-size: 16px; - text-shadow: 0 1px 1px #FFFFFF; -} -#uservalues fieldset input { - background: none repeat scroll 0 0 #FFFFFF; - border: medium none; - border-radius: 3px; - font: italic 15px Georgia, "Times New Roman", Times, serif; - height: 18px; - margin: 5px 5px 3px 17px; - outline: medium none; - padding: 5px; - margin-left: 6px; - margin-top: 10px; - width: 121px; -} -#uservalues fieldset label { - margin-left: 5px; -} -#uservalues fieldset { - border: 2px solid #000000; - border-radius: 10px; - color: #384313; - font-size: 13px; - font-weight: bold; - height: 500px; - margin-top: -3px; - width: 463px; - padding-bottom: 10px; - text-shadow: 0 1px 1px #C0D576; - margin-left: 58px; - padding-left: 12px; -} -button.greenbtn { - background: -moz-linear-gradient(center top , #3C9300, #398A00) repeat scroll 0 0 rgba(0, 0, 0, 0); - border: 1px solid #29691D !important; - transition: border 0.2s ease 0s; -} -button { - text-decoration: none; - text-shadow: 0 1px 0 #fff; - font: 11px /17px Comic Sans MS, Arial, sans-serif; - color: #FFFFFF; - line-height: 17px; - height: 18px; - display: inline-block; - padding: 5px 6px 4px 6px; - background: #F3F3F3; - border: solid 1px #D9D9D9; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -webkit-transition: border-color .20s; - -moz-transition: border-color .20s; - -o-transition: border-color .20s; - transition: border-color .20s; - height: 29px !important; - cursor: pointer; -} -button.redbtn { - background: -moz-linear-gradient(center top , #DC4A38, #D14836) repeat scroll 0 0 rgba(0, 0, 0, 0); - border: 1px solid #D14836 !important; - transition: border 0.2s ease 0s; -} -button.bluebtn { - border: 1px solid #3079ED !important; - background: #199DC8; - background: -webkit-linear-gradient(top, #199DC8,#199DC8); - background: -moz-linear-gradient(top, #199DC8,#199DC8); - background: -ms-linear-gradient(top, #199DC8, #199DC8); - background: -o-linear-gradient(top, #199DC8, #199DC8); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -#run { - height: 18px; - margin-left: 89px; - margin-top: 24px; - padding-bottom: 5px; - padding-right: 6px; - width: 112px; -} -#reload { - height: 18px; - margin-left: 44px; - margin-top: 24px; - padding-bottom: 5px; - padding-right: 6px; - width: 112px; -} \ No newline at end of file diff --git a/build/TunedVibrationAbsorber/css/images/image.png b/build/TunedVibrationAbsorber/css/images/image.png deleted file mode 100755 index f863247..0000000 Binary files a/build/TunedVibrationAbsorber/css/images/image.png and /dev/null differ diff --git a/build/TunedVibrationAbsorber/css/images/output.gif b/build/TunedVibrationAbsorber/css/images/output.gif deleted file mode 100755 index bb1049a..0000000 Binary files a/build/TunedVibrationAbsorber/css/images/output.gif and /dev/null differ diff --git a/build/TunedVibrationAbsorber/default.html b/build/TunedVibrationAbsorber/default.html deleted file mode 100755 index f770b6e..0000000 --- a/build/TunedVibrationAbsorber/default.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - -
        - - - -
        - - - - - - - -
        - - - -
        - - - -
        - - Simple Pendulum - -
        - - - - - -
        - - -
        - -
        - - -
        - - -
        - Introduction -
        - - -
        -

        - In this module, basic concepts of simple oscillator - are explained. Initially, an example of simple - pendulum is taken and the basic terminology i.e., - what is initial displacement, - initial velocity,natural frequency - and time period are explained. - Each of these terms is illustrated by giving an - example, where user can enter his value and observe - the behavior of structure for his input. -

        - -

        - Simple harmonic oscillator consists of a - mass (m) hanging from a string of - length (l), fixed at a pivot point P. - When the mass is displaced from its mean - position by giving some initial displacement - (angle), oscillator starts swinging back and fourth - with periodic motion. -

        - - pendulum -
        - - -
        - - -
        - -
        - - -
        - - -
        - Theory -
        - - - -
        -

        - There are two solutions to \(ax^2 + bx + c = 0\) and - they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - By applying Newton's second law for - rotational systems, the equation of motion for the - pendulum may be obtained. -

        - -

        - Where, τ = Torque ; I = - Moment of Inertia; α = - Angular Velocity. m is mass of the - oscillator, l is the length of the oscillator and theta is initial - displacement. The above equation can be rearranged as -

        - -

        - If the amplitude of - angular displacement is - small then we can use the approximation - (sinθ ≈ θ). - By considering the above approximation, the equation - of motion reduces to : -

        - -

        - The solution for equation of simple harmonic oscillator is -

        - -

        - where, θ(t) is the history of oscillation, - θ0 is the initial angle, - &omega=(g/l)1/2 is the - natural frequency of - the motion. -

        -
        -
        - - -
        - -
        - - -
        - -
        - Objective -
        - -
        -

        - Objective of simple harmonic oscillator experiment - is to understand the concept of time period - (natural frequency) in harmonic - oscillations . -

        - -
        - -
        - - -
        - -
        - - -
        - -
        - Experiment -
        - -
        -

        - -

        -
        - -
        - -
        - -
        - - -
        - -
        - Manual -
        - -
        -

        - Start the experiment with the default values of - length, mass and intial displacement (in angle). - Pause the experiment after few cycles and note - the observation. -

        - -

        Observation 1:

        -
          - -
        1. - Find the time period of the pendulum by noting the - time interval of any one complete cycle from the - response graph. -
        2. - -
        3. - You may note that this time period value is same - for any complete cycle. - Read More -
        4. - -
        - -
        - -
        - -
        - -
        - - -
        - -
        - Quizzes -
        - -
        - -

        - - Q1. - Time taken for one complete oscillation - is called Time Period of the oscillator.
        - - True
        - - False

        - - Q2. - Time period of the oscillator is constant for - given values of mass, length and initial - conditions.
        - - True
        - - False

        - - Q3. - Value of Time period depends on initial - conditions.
        - - True
        - - False

        - - Q4. - Value of time period depends on mass.
        - - True
        - - False

        - - Q5. - Value of time period depends on length of the - oscillator.
        - - True
        - - False

        - -

        - -
        - -
        - -
        - -
        - - -
        - -
        - Procedure -
        - -
        -

        - Procedure for the experiment is as follows -

        -
        - -
        - - -
        - -
        - - -
        - -
        - Further Readings -
        - -
        - -
        - -
        - -
        - - - - - - - -
        - -
        - -
        - - - -
        - -
        - -
        - - - diff --git a/build/TunedVibrationAbsorber/index.html b/build/TunedVibrationAbsorber/index.html deleted file mode 100755 index 294c518..0000000 --- a/build/TunedVibrationAbsorber/index.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        -
        - - - - - - - - - - - - diff --git a/build/TunedVibrationAbsorber/js/Calculations.js b/build/TunedVibrationAbsorber/js/Calculations.js deleted file mode 100755 index 5268912..0000000 --- a/build/TunedVibrationAbsorber/js/Calculations.js +++ /dev/null @@ -1,123 +0,0 @@ -/** - * Author : Prashant Lokhande - * validation given to all the fields - * calculate required formulas - **/ - -var m1; -var k1; -var m2; -var k2; -var mu; -var f0 = 70; -var x2; -var x1 = 0; -var check = 0; -var omega = "30.000000"; -var omega1; -var omega2; - -function cal() { - m = parseFloat($("#m").val()); - k = parseFloat($('#k').val()); - Cc = 2 * Math.sqrt(k * m); - $("#cc").val(Cc.toFixed(3)); -} - -function showDialog(msg) { - $("#Formula1").html(msg) - $("#Formula1").dialog(); -} - -function calculate() { - var errorMsg = ""; - m1 = parseFloat($("#m1").val()); - if((m1 != null || m1 != 0 ) && (m1 >= 80 && m1 <= 100)) { - m1 = m1; - check += 1; - } else { - errorMsg += "Please Enter m1 between 80-100
        "; - showDialog(errorMsg); - check = 0; - } - k1 = parseFloat($("#k1").val()); - if((k1 != null || k1 != 0 ) && (k1 >= 70000 && k1 <= 90000)) { - k1 = k1; - check += 1; - } else { - errorMsg += "Please Enter k1 between 70000-90000
        "; - showDialog(errorMsg); - check = 0; - } - m2 = parseFloat($("#m2").val()); - if((m2 != null || m2 != 0 ) && (m2 >= 8 && m2 <= 10)) { - m2 = m2; - check += 1; - } else { - errorMsg += "Please Enter m2 between 8-10
        "; - showDialog(errorMsg); - check = 0; - } - k2 = parseFloat($("#k2").val()); - if((k2 != null || k2 != 0 ) && (k2 >= 7000 && k2 <= 9000)) { - k2 = k2; - check += 1; - } else { - errorMsg += "Please Enter k2 between 7000-9000
        "; - showDialog(errorMsg); - check = 0; - } - - // Formulae calculations - omega1 = Math.sqrt(k1 / m1).toFixed(6); - omega2 = Math.sqrt(k2 / m2).toFixed(6); - -} - -function calculateOmega1() { - m1 = parseFloat($("#m1").val()); - k1 = parseFloat($("#k1").val()); - omega1 = Math.sqrt(k1 / m1).toFixed(6); - $("#omega1").val(omega1); -} - -function calculateOmega2() { - m2 = parseFloat($("#m2").val()); - k2 = parseFloat($("#k2").val()); - omega2 = Math.sqrt(k2 / m2).toFixed(6); - mu = m2 / m1; - - $("#omega2").val(omega2); - $("#mu").val(mu); -} - -function calculateX1X2() { - if((omega == omega1) && (omega1 == omega2) && (omega == omega2)) { - $("#x2").val((f0 / k2).toFixed(6)); - $("#x1").val(x1); - } else { - var omega4 = (omega * omega * omega * omega); - var xx2 = (k2 - m2 * (omega * omega) * f0) / ((m1 * m2 * omega4) - ((m1 * k2) + (m2 * (k1 + k2))) * (omega * omega) + (k1 * k2)); - var xx1 = (k2 * f0) / ((m1 * m2 * omega4) - ((m1 * k2) + (m2 * (k1 + k2))) * (omega * omega) + (k1 * k2)); - $("#x2").val(xx2.toFixed(6)); - $("#x1").val(xx1.toFixed(6)); - } -} - -$(document).ready(function() { - $("#reload").click(function() { - window.location.reload(true); - }); - - $("#run").click(function() { - calculate(); - if(check == 4) { - if((omega == omega1) && (omega1 == omega2) && (omega == omega2)) { - animationDown(); - } else { - springAnimationDown(); - } - $("#run").attr("disabled", "disabled"); - } - }); -}); diff --git a/build/TunedVibrationAbsorber/js/TunedVibrationRaphael.js b/build/TunedVibrationAbsorber/js/TunedVibrationRaphael.js deleted file mode 100755 index 1654db9..0000000 --- a/build/TunedVibrationAbsorber/js/TunedVibrationRaphael.js +++ /dev/null @@ -1,202 +0,0 @@ -/** - * Author : Prashant Lokhande - * draw the diagram using raphael - * create animation as per given specification. -**/ - -var paper; -var spring1HookUp; -var spring2HookUp; -var spring1; -var spring2; -var middleSpring; -var spring1HookDown; -var spring2HookDown; -var baseLine; -var baseLines = []; -var u; -var v; -var u1; -var time = 250; -var move = 20; -var moveTime = 0; -var sec = 250; -var wtImage1; -var wtImage2; -var txt1; -var txt2; -var txt3; -var txt4; -var txt5; -var txt6; - -function diagram() { - paper = new Raphael(document.getElementById('diagram'), 500, 450); - wtImage2 = paper.image("css/images/output.gif", 100, 25, 285, 105).attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - wtImage1 = paper.image("css/images/image.png", 100, 25, 285, 105).attr({ - "stroke-width" : 2, - fill : "#C0C0C0" - }); - spring1HookUp = paper.path("M 120 130 l 0 25").attr({ - "stroke-width" : 2 - }); - spring1 = paper.path("M 120 154 l -40 18 l 65 15 l -65 15 l 65 15 l -65 15 l 65 15 l -65 15 l 65 15 l -65 15 l 65 15 l -65 15 l 65 15 l -65 15 l 40 18 l 0 30").attr({ - "stroke-width" : 2 - }); - spring1HookDown = paper.path("M 120 369 l 0 50").attr({ - "stroke-width" : 2 - }); - middleSpring = paper.path("M 240 130 l 0 24 l -20 6 l 35 6 l -35 6 l 35 6 l -35 6 l 35 6 l -35 6 l 35 6 l -35 6 l 35 6 l -35 6 l 20 6 l 0 15 l 20 0 l 0 40 l -40 0 l 0 -40 20 0 ").attr({ - "stroke-width" : 2 - }); - spring2HookUp = paper.path("M 365 130 l 0 25").attr({ - "stroke-width" : 2 - }); - spring2 = paper.path("M 365 154 l -40 18 l 65 15l -65 15 l 65 15 l -65 15 l 65 15 l -65 15 l 65 15 l -65 15 l 65 15 l -65 15 l 65 15 l -65 15 l 40 18 l 0 30").attr({ - "stroke-width" : 2 - }); - spring2HookDown = paper.path("M 365 369 l 0 50").attr({ - "stroke-width" : 2 - }); - baseLine = paper.path("M 45 420 l 375 0").attr({ - "stroke-width" : 2 - }); - txt1 = paper.text(40, 280, "k1/2").attr({ - "font-size" : 18 - }); - txt2 = paper.text(425, 280, "k1/2").attr({ - "font-size" : 18 - }); - txt3 = paper.text(190, 200, "k2").attr({ - "font-size" : 18 - }); - txt4 = paper.text(240, 305, "M2").attr({ - "font-size" : 18 - }); - txt5 = paper.text(240, 260, "M2").attr({ - "font-size" : 18 - }); - txt6 = paper.text(240, 287, "M2").attr({ - "font-size" : 18 - }); - - txt4.hide(); - txt6.hide(); - - for(var i = 60; i < 420; i = i + 15) { - baseLines[i] = paper.path("M " + i + " 420 l -10 10").attr({ - "stroke-width" : 2 - }); - } -} - -function springAnimationDown() { - u = 15; - v = 6; - moveTime++; - wtImage1.toBack(); - txt5.hide(); - var diff = 18; - - var sp1 = spring1.animate({ - path : "M 120 " + (154 + diff) + " l -40 " + (u - 6) + " l 65 " + (u - 6) + " l -65 " + (u - 5) + " l 65 " + (u - 5) + " l -65 " + (u - 4) + " l 65 " + (u - 3) + " l -65 " + (u - 2) + " l 65 " + (u - 1.5) + " l -65 " + (u - 1.5) + " l 65 " + (u - 1.5) + " l -65 " + (u - 1.5) + " l 65 " + (u - 1.5) + " l -65 " + (u - 1.5) + " l 40 " + (u + 3) + " l 0 30" - }, time); - var sp2 = spring2.animate({ - path : "M 365 " + (154 + diff) + " l -40 " + (u - 6) + " l 65 " + (u - 6) + " l -65 " + (u - 5) + " l 65 " + (u - 5) + " l -65 " + (u - 4) + " l 65 " + (u - 3) + " l -65 " + (u - 2) + " l 65 " + (u - 1.5) + " l -65 " + (u - 1.5) + " l 65 " + (u - 1.5) + " l -65 " + (u - 1.5) + " l 65 " + (u - 1.5) + " l -65 " + (u - 1.5) + " l 40 " + (u + 3) + " l 0 30" - }, time); - var sp = middleSpring.animate({ - path : "M 240 " + (130 + diff) + " l 0 24 l -20 " + (v + 4.5) + " l 35 " + (v + 4) + " l -35 " + (v + 3.5) + " l 35 " + (v + 3) + " l -35 " + (v + 2.5) + " l 35 " + (v + 2) + " l -35 " + (v + 1.5) + " l 35 " + (v + 1) + " l -35 " + (v + 1) + " l 35 " + (v + 1) + " l -35 " + (v + 1) + " l 20 " + (v + 1) + " l 0 15 l 20 0 l 0 40 l -40 0 l 0 -40 20 0" - }, (time)); - var image1 = wtImage1.animateWith(sp, sp1, { - x : 100, - y : (25 + diff) - }, time); - var image2 = wtImage2.animateWith(sp, sp1, { - x : 100, - y : (25 + diff) - }, time); - var shu1 = spring1HookUp.animateWith(sp, sp1, { - path : "M 120 " + (130 + diff) + " l 0 25" - }, time); - var shu2 = spring2HookUp.animateWith(sp, sp1, { - path : "M 365 " + (130 + diff) + " l 0 25" - }, time); - - if(moveTime != move) { - setTimeout("springAnimationUp()", sec); - } else { - calculateX1X2(); - wtImage2.toBack(); - wtImage1.toFront(); - setTimeout("txt4.show()", time); - } -} - -function springAnimationUp() { - u1 = 15; - v = 6; - wtImage1.toBack(); - var diff = 0; - - var sp1 = spring1.animate({ - path : "M 120 " + (154 - diff) + " l -40 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 40 " + (u1 + 3) + " l 0 30" - }, time); - var sp2 = spring2.animate({ - path : "M 365 " + (154 - diff) + " l -40 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 65 " + (u1) + " l -65 " + (u1) + " l 40 " + (u1 + 3) + " l 0 30" - }, time); - var sp = middleSpring.animate({ - path : "M 240 " + (130 + diff) + " l 0 24 l -20 " + (v - 4.5) + " l 35 " + (v - 4) + " l -35 " + (v - 3.5) + " l 35 " + (v - 3) + " l -35 " + (v + 2.5) + " l 35 " + (v - 2) + " l -35 " + (v - 1.5) + " l 35 " + (v - 1) + " l -35 " + (v - 1) + " l 35 " + (v - 1) + " l -35 " + (v - 1) + " l 20 " + (v - 1) + " l 0 15 l 20 0 l 0 40 l -40 0 l 0 -40 20 0" - }, (time)); - var image1 = wtImage1.animateWith(sp, sp1, { - x : 100, - y : (25 - diff) - }, time); - var image2 = wtImage2.animateWith(sp, sp1, { - x : 100, - y : (25 - diff) - }, time); - var shu1 = spring1HookUp.animateWith(sp, sp1, { - path : "M 120 " + (130 - diff) + " l 0 25" - }, time); - var shu2 = spring2HookUp.animateWith(sp, sp1, { - path : "M 365 " + (130 - diff) + " l 0 25" - }, time); - - setTimeout("springAnimationDown()", sec); -} - -function animationDown() { - v = 6; - moveTime++; - wtImage1.toBack(); - txt5.hide(); - var diff = 18; - - var sp = middleSpring.animate({ - path : "M 240 130 l 0 24 l -20 " + (v + 4.5) + " l 35 " + (v + 4) + " l -35 " + (v + 3.5) + " l 35 " + (v + 3) + " l -35 " + (v + 2.5) + " l 35 " + (v + 2) + " l -35 " + (v + 1.5) + " l 35 " + (v + 1) + " l -35 " + (v + 1) + " l 35 " + (v + 1) + " l -35 " + (v + 1) + " l 20 " + (v + 1) + " l 0 15 l 20 0 l 0 40 l -40 0 l 0 -40 20 0" - }, (time)); - - if(moveTime != move) { - setTimeout("animationUp()", sec); - } else { - calculateX1X2(); - wtImage2.toBack(); - wtImage1.toFront(); - setTimeout("txt6.show()", time); - } -} - -function animationUp() { - v = 6; - wtImage1.toBack(); - var diff = 0; - - var sp = middleSpring.animate({ - path : "M 240 130 l 0 24 l -20 " + (v) + " l 35 " + (v) + " l -35 " + (v) + " l 35 " + (v) + " l -35 " + (v) + " l 35 " + (v) + " l -35 " + (v) + " l 35 " + (v) + " l -35 " + (v) + " l 35 " + (v) + " l -35 " + (v) + " l 20 " + (v) + " l 0 15 l 20 0 l 0 40 l -40 0 l 0 -40 20 0" - }, (time)); - - setTimeout("animationDown()", sec); -} \ No newline at end of file diff --git a/build/TunedVibrationAbsorber/js/jquery-1.7.1.min.js b/build/TunedVibrationAbsorber/js/jquery-1.7.1.min.js deleted file mode 100755 index 198b3ff..0000000 --- a/build/TunedVibrationAbsorber/js/jquery-1.7.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.1 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
        a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
        "+""+"
        ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
        t
        ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
        ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; -f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

        ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
        ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
        ","
        "],thead:[1,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],col:[2,"","
        "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
        ","
        "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() -{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
        ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/build/TunedVibrationAbsorber/js/jquery-ui-1.8.14.custom.min.js b/build/TunedVibrationAbsorber/js/jquery-ui-1.8.14.custom.min.js deleted file mode 100755 index f9e4f1e..0000000 --- a/build/TunedVibrationAbsorber/js/jquery-ui-1.8.14.custom.min.js +++ /dev/null @@ -1,789 +0,0 @@ -/*! - * jQuery UI 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.14", -keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus(); -b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this, -"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", -function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth, -outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,"tabindex"),d=isNaN(b); -return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e= -0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= -false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -;/* - * jQuery UI Position 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Position - */ -(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, -left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= -k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= -m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= -d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= -a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), -g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); -;/* - * jQuery UI Draggable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('
        ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;this.helper= -this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); -this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true}, -_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b= -false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration, -10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle|| -!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&& -a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent= -this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"), -10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"), -10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, -(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!= -"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"), -10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+ -this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&& -!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.leftg[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.topg[3])?h:!(h-this.offset.click.topg[2])?e:!(e-this.offset.click.left=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= -i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f
        ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); -var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= -false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); -this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= -{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; -if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false}, -_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f, -{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight: -Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(cb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left= -null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ -a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+ -c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]); -b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.14"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(), -10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top- -f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType? -e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a= -e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing, -step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= -e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset; -var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left: -a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top- -d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition, -f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, -display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b= -e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height= -d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); -;/* - * jQuery UI Selectable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
        ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", -c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= -this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a=== -"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&& -!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, -left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); -return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], -e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); -c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): -this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, -toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); -if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), -this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= -this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= -d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| -0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", -a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- -f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- -this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, -this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", -a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); -a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", -function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= -this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); -b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); -a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ -c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; -if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); -if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), -e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| -e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", -"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.14", -animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); -f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", -paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); -;/* - * jQuery UI Autocomplete 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.position.js - */ -(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g= -false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= -a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; -this.menu=d("
          ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& -a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); -d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& -b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= -this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, -"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); -(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); -this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b, -this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("");e.secondary&&a.append("");if(!this.options.text){d.push(f?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")=== -"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); -b.Widget.prototype.destroy.call(this)}})})(jQuery); -;/* - * jQuery UI Dialog 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.button.js - * jquery.ui.draggable.js - * jquery.ui.mouse.js - * jquery.ui.position.js - * jquery.ui.resizable.js - */ -(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, -position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
          ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
          ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= -1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== -f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
          ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
          ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, -function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", -handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, -originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", -f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): -[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); -if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): -e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= -this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.14",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), -create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), -height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(a.range==="min"||a.range==="max"?" ui-slider-range-"+a.range:""))}for(var j=c.length;j"); -this.handles=c.add(d(e.join("")).appendTo(b.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", -g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!b.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");i=b._start(g,l);if(i===false)return}break}m=b.options.step;i=b.options.values&&b.options.values.length? -(h=b.values(l)):(h=b.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=b._valueMin();break;case d.ui.keyCode.END:h=b._valueMax();break;case d.ui.keyCode.PAGE_UP:h=b._trimAlignValue(i+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(i-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===b._valueMax())return;h=b._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===b._valueMin())return;h=b._trimAlignValue(i- -m);break}b._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(g,k);b._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); -return this},_mouseCapture:function(b){var a=this.options,c,f,e,j,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(a.range===true&&this.values(1)===a.min){g+=1;e=d(this.handles[g])}if(this._start(b,g)===false)return false; -this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();a=e.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-e.width()/2,top:b.pageY-a.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(b){var a= -this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;if(this.orientation==="horizontal"){a= -this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a); -c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var f;if(this.options.values&&this.options.values.length){f=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>f||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, -_refreshValue:function(){var b=this.options.range,a=this.options,c=this,f=!this._animateOff?a.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},a.animate); -if(h===1)c.range[f?"animate":"css"]({width:e-g+"%"},{queue:false,duration:a.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},a.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:a.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, -1)[f?"animate":"css"]({width:e+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Tabs 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
          ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
        • #{label}
        • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.14"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k'))}function N(a){return a.bind("mouseout",function(b){b= -d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b.addClass("ui-state-hover"); -b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.14"}});var A=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){H(this._defaults, -a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0, -selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('
          '))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]= -h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c= -this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a, -"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", -function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput); -a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left", -this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus", -this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b= -b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5", -cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a); -d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c= -d.datepicker._get(b,"beforeShow");H(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c= -{left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover"); -if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv); -J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"); -a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]|| -c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+ -i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b= -this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute", -left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&& -d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth= -b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear= -!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a); -a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a)); -d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()% -100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=B+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y", -TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay= -a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(), -b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n= -this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+s+"":f?"":''+s+"";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
          '+(c?h:"")+(this._isInRange(a,s)?'":"")+(c?"":h)+"
          ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),B= -this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right": -"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='
          '+(/all|left/.test(t)&&x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,B,v)+'
          ';var z=j?'": -"";for(t=0;t<7;t++){var r=(t+h)%7;z+="=5?' class="ui-datepicker-week-end"':"")+'>'+q[r]+""}y+=z+"";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q";var R=!j?"":'";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&ro;R+='";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+""}g++;if(g>11){g=0;m++}y+="
          '+this._get(a,"weekHeader")+"
          '+ -this._get(a,"calculateWeek")(r)+""+(F&&!D?" ":L?''+r.getDate()+"":''+ -r.getDate()+"")+"
          "+(l?""+(i[0]>0&&G==i[1]-1?'
          ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"), -l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
          ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()): -g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
          ";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c== -"Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear"); -if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); -c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, -"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= -function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker, -[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.14";window["DP_jQuery_"+A]=d})(jQuery); -;/* - * jQuery UI Progressbar 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
          ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* -this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Effects 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/ - */ -jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], -16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, -a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= -a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", -"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, -0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, -211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, -d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; -f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, -[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.14",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}); -c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c, -a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments); -a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%", -"pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d* -((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/= -e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/= -e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); -;/* - * jQuery UI Effects Fade 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fade - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Fold 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * jquery.effects.core.js - */ -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], -10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); -;/* - * jQuery UI Effects Highlight 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Pulsate 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * jquery.effects.core.js - */ -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); -b.dequeue()})})}})(jQuery); -; \ No newline at end of file diff --git a/build/TunedVibrationAbsorber/js/raphael-min.js b/build/TunedVibrationAbsorber/js/raphael-min.js deleted file mode 100755 index c96ff45..0000000 --- a/build/TunedVibrationAbsorber/js/raphael-min.js +++ /dev/null @@ -1,11 +0,0 @@ -// ┌────────────────────────────────────────────────────────────────────┐ \\ -// │ Raphaël 2.1.1 - JavaScript Vector Library │ \\ -// ├────────────────────────────────────────────────────────────────────┤ \\ -// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\ -// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\ -// ├────────────────────────────────────────────────────────────────────┤ \\ -// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\ -// └────────────────────────────────────────────────────────────────────┘ \\ -!function(a){var b,c,d="0.4.2",e="hasOwnProperty",f=/[\.\/]/,g="*",h=function(){},i=function(a,b){return a-b},j={n:{}},k=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=k.listeners(a),j=0,l=[],m={},n=[],o=b;b=a,c=0;for(var p=0,q=h.length;q>p;p++)"zIndex"in h[p]&&(l.push(h[p].zIndex),h[p].zIndex<0&&(m[h[p].zIndex]=h[p]));for(l.sort(i);l[j]<0;)if(e=m[l[j++]],n.push(e.apply(d,g)),c)return c=f,n;for(p=0;q>p;p++)if(e=h[p],"zIndex"in e)if(e.zIndex==l[j]){if(n.push(e.apply(d,g)),c)break;do if(j++,e=m[l[j]],e&&n.push(e.apply(d,g)),c)break;while(e)}else m[e.zIndex]=e;else if(n.push(e.apply(d,g)),c)break;return c=f,b=o,n.length?n:null};k._events=j,k.listeners=function(a){var b,c,d,e,h,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,h=m.length;h>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[g]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},k.on=function(a,b){if(a=String(a),"function"!=typeof b)return function(){};for(var c=a.split(f),d=j,e=0,g=c.length;g>e;e++)d=d.n,d=d.hasOwnProperty(c[e])&&d[c[e]]||(d[c[e]]={n:{}});for(d.f=d.f||[],e=0,g=d.f.length;g>e;e++)if(d.f[e]==b)return h;return d.f.push(b),function(a){+a==+a&&(b.zIndex=+a)}},k.f=function(a){var b=[].slice.call(arguments,1);return function(){k.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},k.stop=function(){c=1},k.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},k.nts=function(){return b.split(f)},k.off=k.unbind=function(a,b){if(!a)return k._events=j={n:{}},void 0;var c,d,h,i,l,m,n,o=a.split(f),p=[j];for(i=0,l=o.length;l>i;i++)for(m=0;mi;i++)for(c=p[i];c.n;){if(b){if(c.f){for(m=0,n=c.f.length;n>m;m++)if(c.f[m]==b){c.f.splice(m,1);break}!c.f.length&&delete c.f}for(d in c.n)if(c.n[e](d)&&c.n[d].f){var q=c.n[d].f;for(m=0,n=q.length;n>m;m++)if(q[m]==b){q.splice(m,1);break}!q.length&&delete c.n[d].f}}else{delete c.f;for(d in c.n)c.n[e](d)&&c.n[d].f&&delete c.n[d].f}c=c.n}},k.once=function(a,b){var c=function(){return k.unbind(a,c),b.apply(this,arguments)};return k.on(a,c)},k.version=d,k.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=k:"undefined"!=typeof define?define("eve",[],function(){return k}):a.eve=k}(this),function(a,b){"function"==typeof define&&define.amd?define(["eve"],function(c){return b(a,c)}):b(a,a.eve)}(this,function(a,b){function c(a){if(c.is(a,"function"))return u?a():b.on("raphael.DOMload",a);if(c.is(a,V))return c._engine.create[D](c,a.splice(0,3+c.is(a[0],T))).add(a);var d=Array.prototype.slice.call(arguments,0);if(c.is(d[d.length-1],"function")){var e=d.pop();return u?e.call(c._engine.create[D](c,d)):b.on("raphael.DOMload",function(){e.call(c._engine.create[D](c,d))})}return c._engine.create[D](c,arguments)}function d(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=d(a[c]));return b}function e(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function f(a,b,c){function d(){var f=Array.prototype.slice.call(arguments,0),g=f.join("␀"),h=d.cache=d.cache||{},i=d.count=d.count||[];return h[z](g)?(e(i,g),c?c(h[g]):h[g]):(i.length>=1e3&&delete h[i.shift()],i.push(g),h[g]=a[D](b,f),c?c(h[g]):h[g])}return d}function g(){return this.hex}function h(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function i(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function j(a,b,c,d,e,f,g,h,j){null==j&&(j=1),j=j>1?1:0>j?0:j;for(var k=j/2,l=12,m=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;l>p;p++){var q=k*m[p]+k,r=i(q,a,c,e,g),s=i(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return k*o}function k(a,b,c,d,e,f,g,h,i){if(!(0>i||j(a,b,c,d,e,f,g,h)o;)m/=2,n+=(i>k?1:-1)*m,k=j(a,b,c,d,e,f,g,h,n);return n}}function l(a,b,c,d,e,f,g,h){if(!(O(a,c)O(e,g)||O(b,d)O(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+O(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+O(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+O(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+O(f,h).toFixed(2)))return{x:l,y:m}}}}function m(a,b,d){var e=c.bezierBBox(a),f=c.bezierBBox(b);if(!c.isBBoxIntersect(e,f))return d?0:[];for(var g=j.apply(0,a),h=j.apply(0,b),i=O(~~(g/5),1),k=O(~~(h/5),1),m=[],n=[],o={},p=d?0:[],q=0;i+1>q;q++){var r=c.findDotsAtSegment.apply(c,a.concat(q/i));m.push({x:r.x,y:r.y,t:q/i})}for(q=0;k+1>q;q++)r=c.findDotsAtSegment.apply(c,b.concat(q/k)),n.push({x:r.x,y:r.y,t:q/k});for(q=0;i>q;q++)for(var s=0;k>s;s++){var t=m[q],u=m[q+1],v=n[s],w=n[s+1],x=Q(u.x-t.x)<.001?"y":"x",y=Q(w.x-v.x)<.001?"y":"x",z=l(t.x,t.y,u.x,u.y,v.x,v.y,w.x,w.y);if(z){if(o[z.x.toFixed(4)]==z.y.toFixed(4))continue;o[z.x.toFixed(4)]=z.y.toFixed(4);var A=t.t+Q((z[x]-t[x])/(u[x]-t[x]))*(u.t-t.t),B=v.t+Q((z[y]-v[y])/(w[y]-v[y]))*(w.t-v.t);A>=0&&1.001>=A&&B>=0&&1.001>=B&&(d?p++:p.push({x:z.x,y:z.y,t1:P(A,1),t2:P(B,1)}))}}return p}function n(a,b,d){a=c._path2curve(a),b=c._path2curve(b);for(var e,f,g,h,i,j,k,l,n,o,p=d?0:[],q=0,r=a.length;r>q;q++){var s=a[q];if("M"==s[0])e=i=s[1],f=j=s[2];else{"C"==s[0]?(n=[e,f].concat(s.slice(1)),e=n[6],f=n[7]):(n=[e,f,e,f,i,j,i,j],e=i,f=j);for(var t=0,u=b.length;u>t;t++){var v=b[t];if("M"==v[0])g=k=v[1],h=l=v[2];else{"C"==v[0]?(o=[g,h].concat(v.slice(1)),g=o[6],h=o[7]):(o=[g,h,g,h,k,l,k,l],g=k,h=l);var w=m(n,o,d);if(d)p+=w;else{for(var x=0,y=w.length;y>x;x++)w[x].segment1=q,w[x].segment2=t,w[x].bez1=n,w[x].bez2=o;p=p.concat(w)}}}}}return p}function o(a,b,c,d,e,f){null!=a?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function p(){return this.x+H+this.y+H+this.width+" × "+this.height}function q(a,b,c,d,e,f){function g(a){return((l*a+k)*a+j)*a}function h(a,b){var c=i(a,b);return((o*c+n)*c+m)*c}function i(a,b){var c,d,e,f,h,i;for(e=a,i=0;8>i;i++){if(f=g(e)-a,Q(f)e)return c;if(e>d)return d;for(;d>c;){if(f=g(e),Q(f-a)f?c=e:d=e,e=(d-c)/2+c}return e}var j=3*b,k=3*(d-b)-j,l=1-j-k,m=3*c,n=3*(e-c)-m,o=1-m-n;return h(a,1/(200*f))}function r(a,b){var c=[],d={};if(this.ms=b,this.times=1,a){for(var e in a)a[z](e)&&(d[_(e)]=a[e],c.push(_(e)));c.sort(lb)}this.anim=d,this.top=c[c.length-1],this.percents=c}function s(a,d,e,f,g,h){e=_(e);var i,j,k,l,m,n,p=a.ms,r={},s={},t={};if(f)for(v=0,x=ic.length;x>v;v++){var u=ic[v];if(u.el.id==d.id&&u.anim==a){u.percent!=e?(ic.splice(v,1),k=1):j=u,d.attr(u.totalOrigin);break}}else f=+s;for(var v=0,x=a.percents.length;x>v;v++){if(a.percents[v]==e||a.percents[v]>f*a.top){e=a.percents[v],m=a.percents[v-1]||0,p=p/a.top*(e-m),l=a.percents[v+1],i=a.anim[e];break}f&&d.attr(a.anim[a.percents[v]])}if(i){if(j)j.initstatus=f,j.start=new Date-j.ms*f;else{for(var y in i)if(i[z](y)&&(db[z](y)||d.paper.customAttributes[z](y)))switch(r[y]=d.attr(y),null==r[y]&&(r[y]=cb[y]),s[y]=i[y],db[y]){case T:t[y]=(s[y]-r[y])/p;break;case"colour":r[y]=c.getRGB(r[y]);var A=c.getRGB(s[y]);t[y]={r:(A.r-r[y].r)/p,g:(A.g-r[y].g)/p,b:(A.b-r[y].b)/p};break;case"path":var B=Kb(r[y],s[y]),C=B[1];for(r[y]=B[0],t[y]=[],v=0,x=r[y].length;x>v;v++){t[y][v]=[0];for(var D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(C[v][D]-r[y][v][D])/p}break;case"transform":var G=d._,H=Pb(G[y],s[y]);if(H)for(r[y]=H.from,s[y]=H.to,t[y]=[],t[y].real=!0,v=0,x=r[y].length;x>v;v++)for(t[y][v]=[r[y][v][0]],D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(s[y][v][D]-r[y][v][D])/p;else{var K=d.matrix||new o,L={_:{transform:G.transform},getBBox:function(){return d.getBBox(1)}};r[y]=[K.a,K.b,K.c,K.d,K.e,K.f],Nb(L,s[y]),s[y]=L._.transform,t[y]=[(L.matrix.a-K.a)/p,(L.matrix.b-K.b)/p,(L.matrix.c-K.c)/p,(L.matrix.d-K.d)/p,(L.matrix.e-K.e)/p,(L.matrix.f-K.f)/p]}break;case"csv":var M=I(i[y])[J](w),N=I(r[y])[J](w);if("clip-rect"==y)for(r[y]=N,t[y]=[],v=N.length;v--;)t[y][v]=(M[v]-r[y][v])/p;s[y]=M;break;default:for(M=[][E](i[y]),N=[][E](r[y]),t[y]=[],v=d.paper.customAttributes[y].length;v--;)t[y][v]=((M[v]||0)-(N[v]||0))/p}var O=i.easing,P=c.easing_formulas[O];if(!P)if(P=I(O).match(Z),P&&5==P.length){var Q=P;P=function(a){return q(a,+Q[1],+Q[2],+Q[3],+Q[4],p)}}else P=nb;if(n=i.start||a.start||+new Date,u={anim:a,percent:e,timestamp:n,start:n+(a.del||0),status:0,initstatus:f||0,stop:!1,ms:p,easing:P,from:r,diff:t,to:s,el:d,callback:i.callback,prev:m,next:l,repeat:h||a.times,origin:d.attr(),totalOrigin:g},ic.push(u),f&&!j&&!k&&(u.stop=!0,u.start=new Date-p*f,1==ic.length))return kc();k&&(u.start=new Date-u.ms*f),1==ic.length&&jc(kc)}b("raphael.anim.start."+d.id,d,a)}}function t(a){for(var b=0;be;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a};if(c._g=A,c.type=A.win.SVGAngle||A.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML","VML"==c.type){var sb,tb=A.doc.createElement("div");if(tb.innerHTML='',sb=tb.firstChild,sb.style.behavior="url(#default#VML)",!sb||"object"!=typeof sb.adj)return c.type=G;tb=null}c.svg=!(c.vml="VML"==c.type),c._Paper=C,c.fn=v=C.prototype=c.prototype,c._id=0,c._oid=0,c.is=function(a,b){return b=M.call(b),"finite"==b?!Y[z](+a):"array"==b?a instanceof Array:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||"array"==b&&Array.isArray&&Array.isArray(a)||W.call(a).slice(8,-1).toLowerCase()==b},c.angle=function(a,b,d,e,f,g){if(null==f){var h=a-d,i=b-e;return h||i?(180+180*N.atan2(-i,-h)/S+360)%360:0}return c.angle(a,b,f,g)-c.angle(d,e,f,g)},c.rad=function(a){return a%360*S/180},c.deg=function(a){return 180*a/S%360},c.snapTo=function(a,b,d){if(d=c.is(d,"finite")?d:10,c.is(a,V)){for(var e=a.length;e--;)if(Q(a[e]-b)<=d)return a[e]}else{a=+a;var f=b%a;if(d>f)return b-f;if(f>a-d)return b-f+a}return b},c.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=0|16*N.random(),c="x"==a?b:8|3&b;return c.toString(16)}),c.setWindow=function(a){b("raphael.setWindow",c,A.win,a),A.win=a,A.doc=A.win.document,c._engine.initWin&&c._engine.initWin(A.win)};var ub=function(a){if(c.vml){var b,d=/^\s+|\s+$/g;try{var e=new ActiveXObject("htmlfile");e.write(""),e.close(),b=e.body}catch(g){b=createPopup().document.body}var h=b.createTextRange();ub=f(function(a){try{b.style.color=I(a).replace(d,G);var c=h.queryCommandValue("ForeColor");return c=(255&c)<<16|65280&c|(16711680&c)>>>16,"#"+("000000"+c.toString(16)).slice(-6)}catch(e){return"none"}})}else{var i=A.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display="none",A.doc.body.appendChild(i),ub=f(function(a){return i.style.color=a,A.doc.defaultView.getComputedStyle(i,G).getPropertyValue("color")})}return ub(a)},vb=function(){return"hsb("+[this.h,this.s,this.b]+")"},wb=function(){return"hsl("+[this.h,this.s,this.l]+")"},xb=function(){return this.hex},yb=function(a,b,d){if(null==b&&c.is(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&c.is(a,U)){var e=c.getRGB(a);a=e.r,b=e.g,d=e.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},zb=function(a,b,d,e){a*=255,b*=255,d*=255;var f={r:a,g:b,b:d,hex:c.rgb(a,b,d),toString:xb};return c.is(e,"finite")&&(f.opacity=e),f};c.color=function(a){var b;return c.is(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):c.is(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):(c.is(a,"string")&&(a=c.getRGB(a)),c.is(a,"object")&&"r"in a&&"g"in a&&"b"in a?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1)),a.toString=xb,a},c.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Q(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var e,f,g,h,i;return a=a%360/60,i=2*b*(.5>c?c:1-c),h=i*(1-Q(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.rgb2hsb=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=O(a,b,c),g=f-P(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=60*((d+360)%6)/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:vb}},c.rgb2hsl=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=O(a,b,c),h=P(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=60*((d+360)%6)/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:wb}},c._path2string=function(){return this.join(",").replace(gb,"$1")},c._preload=function(a,b){var c=A.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,A.doc.body.removeChild(this)},c.onerror=function(){A.doc.body.removeChild(this)},A.doc.body.appendChild(c),c.src=a},c.getRGB=f(function(a){if(!a||(a=I(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:g};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:g};!(fb[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=ub(a));var b,d,e,f,h,i,j=a.match(X);return j?(j[2]&&(e=ab(j[2].substring(5),16),d=ab(j[2].substring(3,5),16),b=ab(j[2].substring(1,3),16)),j[3]&&(e=ab((h=j[3].charAt(3))+h,16),d=ab((h=j[3].charAt(2))+h,16),b=ab((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100)),j[5]?(i=j[5][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100),c.hsb2rgb(b,d,e,f)):j[6]?(i=j[6][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100),c.hsl2rgb(b,d,e,f)):(j={r:b,g:d,b:e,toString:g},j.hex="#"+(16777216|e|d<<8|b<<16).toString(16).slice(1),c.is(f,"finite")&&(j.opacity=f),j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:g}},c),c.hsb=f(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=f(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=f(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),c.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);return b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})),c.hex},c.getColor.reset=function(){delete this.start},c.parsePathString=function(a){if(!a)return null;var b=Ab(a);if(b.arr)return Cb(b.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];return c.is(a,V)&&c.is(a[0],V)&&(e=Cb(a)),e.length||I(a).replace(hb,function(a,b,c){var f=[],g=b.toLowerCase();if(c.replace(jb,function(a,b){b&&f.push(+b)}),"m"==g&&f.length>2&&(e.push([b][E](f.splice(0,2))),g="l",b="m"==b?"l":"L"),"r"==g)e.push([b][E](f));else for(;f.length>=d[g]&&(e.push([b][E](f.splice(0,d[g]))),d[g]););}),e.toString=c._path2string,b.arr=Cb(e),e},c.parseTransformString=f(function(a){if(!a)return null;var b=[];return c.is(a,V)&&c.is(a[0],V)&&(b=Cb(a)),b.length||I(a).replace(ib,function(a,c,d){var e=[];M.call(c),d.replace(jb,function(a,b){b&&e.push(+b)}),b.push([c][E](e))}),b.toString=c._path2string,b});var Ab=function(a){var b=Ab.ps=Ab.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[z](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]};c.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/S;return(q>s||t>r)&&(y+=180),{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}},c.bezierBBox=function(a,b,d,e,f,g,h,i){c.is(a,"array")||(a=[a,b,d,e,f,g,h,i]);var j=Jb.apply(null,a);return{x:j.min.x,y:j.min.y,x2:j.max.x,y2:j.max.y,width:j.max.x-j.min.x,height:j.max.y-j.min.y}},c.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},c.isBBoxIntersect=function(a,b){var d=c.isPointInsideBBox;return d(b,a.x,a.y)||d(b,a.x2,a.y)||d(b,a.x,a.y2)||d(b,a.x2,a.y2)||d(a,b.x,b.y)||d(a,b.x2,b.y)||d(a,b.x,b.y2)||d(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)},c.pathIntersection=function(a,b){return n(a,b)},c.pathIntersectionNumber=function(a,b){return n(a,b,1)},c.isPointInsidePath=function(a,b,d){var e=c.pathBBox(a);return c.isPointInsideBBox(e,b,d)&&1==n(a,[["M",b,d],["H",e.x2+10]],1)%2},c._removedFactory=function(a){return function(){b("raphael.log",null,"Raphaël: you are calling to method “"+a+"” of removed object",a)}};var Bb=c.pathBBox=function(a){var b=Ab(a);if(b.bbox)return d(b.bbox);if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=Kb(a);for(var c,e=0,f=0,g=[],h=[],i=0,j=a.length;j>i;i++)if(c=a[i],"M"==c[0])e=c[1],f=c[2],g.push(e),h.push(f);else{var k=Jb(e,f,c[1],c[2],c[3],c[4],c[5],c[6]);g=g[E](k.min.x,k.max.x),h=h[E](k.min.y,k.max.y),e=c[5],f=c[6]}var l=P[D](0,g),m=P[D](0,h),n=O[D](0,g),o=O[D](0,h),p=n-l,q=o-m,r={x:l,y:m,x2:n,y2:o,width:p,height:q,cx:l+p/2,cy:m+q/2};return b.bbox=d(r),r},Cb=function(a){var b=d(a);return b.toString=c._path2string,b},Db=c._pathToRelative=function(a){var b=Ab(a);if(b.rel)return Cb(b.rel);c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a));var d=[],e=0,f=0,g=0,h=0,i=0;"M"==a[0][0]&&(e=a[0][1],f=a[0][2],g=e,h=f,i++,d.push(["M",e,f]));for(var j=i,k=a.length;k>j;j++){var l=d[j]=[],m=a[j];if(m[0]!=M.call(m[0]))switch(l[0]=M.call(m[0]),l[0]){case"a":l[1]=m[1],l[2]=m[2],l[3]=m[3],l[4]=m[4],l[5]=m[5],l[6]=+(m[6]-e).toFixed(3),l[7]=+(m[7]-f).toFixed(3);break;case"v":l[1]=+(m[1]-f).toFixed(3);break;case"m":g=m[1],h=m[2];default:for(var n=1,o=m.length;o>n;n++)l[n]=+(m[n]-(n%2?e:f)).toFixed(3)}else{l=d[j]=[],"m"==m[0]&&(g=m[1]+e,h=m[2]+f);for(var p=0,q=m.length;q>p;p++)d[j][p]=m[p]}var r=d[j].length;switch(d[j][0]){case"z":e=g,f=h;break;case"h":e+=+d[j][r-1];break;case"v":f+=+d[j][r-1];break;default:e+=+d[j][r-2],f+=+d[j][r-1]}}return d.toString=c._path2string,b.rel=Cb(d),d},Eb=c._pathToAbsolute=function(a){var b=Ab(a);if(b.abs)return Cb(b.abs);if(c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a)),!a||!a.length)return[["M",0,0]];var d=[],e=0,f=0,g=0,i=0,j=0;"M"==a[0][0]&&(e=+a[0][1],f=+a[0][2],g=e,i=f,j++,d[0]=["M",e,f]);for(var k,l,m=3==a.length&&"M"==a[0][0]&&"R"==a[1][0].toUpperCase()&&"Z"==a[2][0].toUpperCase(),n=j,o=a.length;o>n;n++){if(d.push(k=[]),l=a[n],l[0]!=bb.call(l[0]))switch(k[0]=bb.call(l[0]),k[0]){case"A":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+e),k[7]=+(l[7]+f);break;case"V":k[1]=+l[1]+f;break;case"H":k[1]=+l[1]+e;break;case"R":for(var p=[e,f][E](l.slice(1)),q=2,r=p.length;r>q;q++)p[q]=+p[q]+e,p[++q]=+p[q]+f;d.pop(),d=d[E](h(p,m));break;case"M":g=+l[1]+e,i=+l[2]+f;default:for(q=1,r=l.length;r>q;q++)k[q]=+l[q]+(q%2?e:f)}else if("R"==l[0])p=[e,f][E](l.slice(1)),d.pop(),d=d[E](h(p,m)),k=["R"][E](l.slice(-2));else for(var s=0,t=l.length;t>s;s++)k[s]=l[s];switch(k[0]){case"Z":e=g,f=i;break;case"H":e=k[1];break;case"V":f=k[1];break;case"M":g=k[k.length-2],i=k[k.length-1];default:e=k[k.length-2],f=k[k.length-1]}}return d.toString=c._path2string,b.abs=Cb(d),d},Fb=function(a,b,c,d){return[a,b,c,d,c,d]},Gb=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},Hb=function(a,b,c,d,e,g,h,i,j,k){var l,m=120*S/180,n=S/180*(+e||0),o=[],p=f(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(a,b,-n),a=l.x,b=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(S/180*e),N.sin(S/180*e),(a-i)/2),r=(b-j)/2,s=q*q/(c*c)+r*r/(d*d);s>1&&(s=N.sqrt(s),c=s*c,d=s*d);var t=c*c,u=d*d,v=(g==h?-1:1)*N.sqrt(Q((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*c*r/d+(a+i)/2,x=v*-d*q/c+(b+j)/2,y=N.asin(((b-x)/d).toFixed(9)),z=N.asin(((j-x)/d).toFixed(9));y=w>a?S-y:y,z=w>i?S-z:z,0>y&&(y=2*S+y),0>z&&(z=2*S+z),h&&y>z&&(y-=2*S),!h&&z>y&&(z-=2*S)}var A=z-y;if(Q(A)>m){var B=z,C=i,D=j;z=y+m*(h&&z>y?1:-1),i=w+c*N.cos(z),j=x+d*N.sin(z),o=Hb(i,j,c,d,e,0,h,C,D,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),K=N.tan(A/4),L=4/3*c*K,M=4/3*d*K,O=[a,b],P=[a+L*G,b-M*F],R=[i+L*I,j-M*H],T=[i,j];if(P[0]=2*O[0]-P[0],P[1]=2*O[1]-P[1],k)return[P,R,T][E](o);o=[P,R,T][E](o).join()[J](",");for(var U=[],V=0,W=o.length;W>V;V++)U[V]=V%2?p(o[V-1],o[V],n).y:p(o[V],o[V+1],n).x;return U},Ib=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:R(j,3)*a+3*R(j,2)*i*c+3*j*i*i*e+R(i,3)*g,y:R(j,3)*b+3*R(j,2)*i*d+3*j*i*i*f+R(i,3)*h}},Jb=f(function(a,b,c,d,e,f,g,h){var i,j=e-2*c+a-(g-2*e+c),k=2*(c-a)-2*(e-c),l=a-c,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,o=[b,h],p=[a,g];return Q(m)>"1e12"&&(m=.5),Q(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),j=f-2*d+b-(h-2*f+d),k=2*(d-b)-2*(f-d),l=b-d,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,Q(m)>"1e12"&&(m=.5),Q(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),{min:{x:P[D](0,p),y:P[D](0,o)},max:{x:O[D](0,p),y:O[D](0,o)}}}),Kb=c._path2curve=f(function(a,b){var c=!b&&Ab(a);if(!b&&c.curve)return Cb(c.curve);for(var d=Eb(a),e=b&&Eb(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=(function(a,b,c){var d,e;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"][E](Hb[D](0,[b.x,b.y][E](a.slice(1))));break;case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e][E](a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"][E](Gb(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"][E](Gb(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][E](Fb(b.x,b.y,a[1],a[2]));break;case"H":a=["C"][E](Fb(b.x,b.y,a[1],b.y));break;case"V":a=["C"][E](Fb(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"][E](Fb(b.x,b.y,b.X,b.Y))}return a}),i=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)a.splice(b++,0,["C"][E](c.splice(0,6)));a.splice(b,1),l=O(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&"M"==a[g][0]&&"M"!=b[g][0]&&(b.splice(g,0,["M",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],l=O(d.length,e&&e.length||0))},k=0,l=O(d.length,e&&e.length||0);l>k;k++){d[k]=h(d[k],f),i(d,k),e&&(e[k]=h(e[k],g)),e&&i(e,k),j(d,e,f,g,k),j(e,d,g,f,k);var m=d[k],n=e&&e[k],o=m.length,p=e&&n.length;f.x=m[o-2],f.y=m[o-1],f.bx=_(m[o-4])||f.x,f.by=_(m[o-3])||f.y,g.bx=e&&(_(n[p-4])||g.x),g.by=e&&(_(n[p-3])||g.y),g.x=e&&n[p-2],g.y=e&&n[p-1]}return e||(c.curve=Cb(d)),e?[d,e]:d},null,Cb),Lb=(c._parseDots=f(function(a){for(var b=[],d=0,e=a.length;e>d;d++){var f={},g=a[d].match(/^([^:]*):?([\d\.]*)/);if(f.color=c.getRGB(g[1]),f.color.error)return null;f.color=f.color.hex,g[2]&&(f.offset=g[2]+"%"),b.push(f)}for(d=1,e=b.length-1;e>d;d++)if(!b[d].offset){for(var h=_(b[d-1].offset||0),i=0,j=d+1;e>j;j++)if(b[j].offset){i=b[j].offset;break}i||(i=100,j=e),i=_(i);for(var k=(i-h)/(j-d+1);j>d;d++)h+=k,b[d].offset=h+"%"}return b}),c._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)}),Mb=(c._tofront=function(a,b){b.top!==a&&(Lb(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},c._toback=function(a,b){b.bottom!==a&&(Lb(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},c._insertafter=function(a,b,c){Lb(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},c._insertbefore=function(a,b,c){Lb(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},c.toMatrix=function(a,b){var c=Bb(a),d={_:{transform:G},getBBox:function(){return c}};return Nb(d,b),d.matrix}),Nb=(c.transformPath=function(a,b){return rb(a,Mb(a,b))},c._extractTransform=function(a,b){if(null==b)return a._.transform;b=I(b).replace(/\.{3}|\u2026/g,a._.transform||G);var d=c.parseTransformString(b),e=0,f=0,g=0,h=1,i=1,j=a._,k=new o;if(j.transform=d||[],d)for(var l=0,m=d.length;m>l;l++){var n,p,q,r,s,t=d[l],u=t.length,v=I(t[0]).toLowerCase(),w=t[0]!=v,x=w?k.invert():0;"t"==v&&3==u?w?(n=x.x(0,0),p=x.y(0,0),q=x.x(t[1],t[2]),r=x.y(t[1],t[2]),k.translate(q-n,r-p)):k.translate(t[1],t[2]):"r"==v?2==u?(s=s||a.getBBox(1),k.rotate(t[1],s.x+s.width/2,s.y+s.height/2),e+=t[1]):4==u&&(w?(q=x.x(t[2],t[3]),r=x.y(t[2],t[3]),k.rotate(t[1],q,r)):k.rotate(t[1],t[2],t[3]),e+=t[1]):"s"==v?2==u||3==u?(s=s||a.getBBox(1),k.scale(t[1],t[u-1],s.x+s.width/2,s.y+s.height/2),h*=t[1],i*=t[u-1]):5==u&&(w?(q=x.x(t[3],t[4]),r=x.y(t[3],t[4]),k.scale(t[1],t[2],q,r)):k.scale(t[1],t[2],t[3],t[4]),h*=t[1],i*=t[2]):"m"==v&&7==u&&k.add(t[1],t[2],t[3],t[4],t[5],t[6]),j.dirtyT=1,a.matrix=k}a.matrix=k,j.sx=h,j.sy=i,j.deg=e,j.dx=f=k.e,j.dy=g=k.f,1==h&&1==i&&!e&&j.bbox?(j.bbox.x+=+f,j.bbox.y+=+g):j.dirtyT=1}),Ob=function(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}},Pb=c._equaliseTransform=function(a,b){b=I(b).replace(/\.{3}|\u2026/g,a),a=c.parseTransformString(a)||[],b=c.parseTransformString(b)||[];for(var d,e,f,g,h=O(a.length,b.length),i=[],j=[],k=0;h>k;k++){if(f=a[k]||Ob(b[k]),g=b[k]||Ob(f),f[0]!=g[0]||"r"==f[0].toLowerCase()&&(f[2]!=g[2]||f[3]!=g[3])||"s"==f[0].toLowerCase()&&(f[3]!=g[3]||f[4]!=g[4]))return;for(i[k]=[],j[k]=[],d=0,e=O(f.length,g.length);e>d;d++)d in f&&(i[k][d]=f[d]),d in g&&(j[k][d]=g[d]) -}return{from:i,to:j}};c._getContainer=function(a,b,d,e){var f;return f=null!=e||c.is(a,"object")?a:A.doc.getElementById(a),null!=f?f.tagName?null==b?{container:f,width:f.style.pixelWidth||f.offsetWidth,height:f.style.pixelHeight||f.offsetHeight}:{container:f,width:b,height:d}:{container:1,x:a,y:b,width:d,height:e}:void 0},c.pathToRelative=Db,c._engine={},c.path2curve=Kb,c.matrix=function(a,b,c,d,e,f){return new o(a,b,c,d,e,f)},function(a){function b(a){return a[0]*a[0]+a[1]*a[1]}function d(a){var c=N.sqrt(b(a));a[0]&&(a[0]/=c),a[1]&&(a[1]/=c)}a.add=function(a,b,c,d,e,f){var g,h,i,j,k=[[],[],[]],l=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],m=[[a,c,e],[b,d,f],[0,0,1]];for(a&&a instanceof o&&(m=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),g=0;3>g;g++)for(h=0;3>h;h++){for(j=0,i=0;3>i;i++)j+=l[g][i]*m[i][h];k[g][h]=j}this.a=k[0][0],this.b=k[1][0],this.c=k[0][1],this.d=k[1][1],this.e=k[0][2],this.f=k[1][2]},a.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new o(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},a.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},a.translate=function(a,b){this.add(1,0,0,1,a,b)},a.scale=function(a,b,c,d){null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},a.rotate=function(a,b,d){a=c.rad(a),b=b||0,d=d||0;var e=+N.cos(a).toFixed(9),f=+N.sin(a).toFixed(9);this.add(e,f,-f,e,b,d),this.add(1,0,0,1,-b,-d)},a.x=function(a,b){return a*this.a+b*this.c+this.e},a.y=function(a,b){return a*this.b+b*this.d+this.f},a.get=function(a){return+this[I.fromCharCode(97+a)].toFixed(4)},a.toString=function(){return c.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},a.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},a.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},a.split=function(){var a={};a.dx=this.e,a.dy=this.f;var e=[[this.a,this.c],[this.b,this.d]];a.scalex=N.sqrt(b(e[0])),d(e[0]),a.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*a.shear,e[1][1]-e[0][1]*a.shear],a.scaley=N.sqrt(b(e[1])),d(e[1]),a.shear/=a.scaley;var f=-e[0][1],g=e[1][1];return 0>g?(a.rotate=c.deg(N.acos(g)),0>f&&(a.rotate=360-a.rotate)):a.rotate=c.deg(N.asin(f)),a.isSimple=!(+a.shear.toFixed(9)||a.scalex.toFixed(9)!=a.scaley.toFixed(9)&&a.rotate),a.isSuperSimple=!+a.shear.toFixed(9)&&a.scalex.toFixed(9)==a.scaley.toFixed(9)&&!a.rotate,a.noRotation=!+a.shear.toFixed(9)&&!a.rotate,a},a.toTransformString=function(a){var b=a||this[J]();return b.isSimple?(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[b.dx,b.dy]:G)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:G)+(b.rotate?"r"+[b.rotate,0,0]:G)):"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(o.prototype);var Qb=navigator.userAgent.match(/Version\/(.*?)\s/)||navigator.userAgent.match(/Chrome\/(\d+)/);v.safari="Apple Computer, Inc."==navigator.vendor&&(Qb&&Qb[1]<4||"iP"==navigator.platform.slice(0,2))||"Google Inc."==navigator.vendor&&Qb&&Qb[1]<8?function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});setTimeout(function(){a.remove()})}:mb;for(var Rb=function(){this.returnValue=!1},Sb=function(){return this.originalEvent.preventDefault()},Tb=function(){this.cancelBubble=!0},Ub=function(){return this.originalEvent.stopPropagation()},Vb=function(a){var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,c=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;return{x:a.clientX+c,y:a.clientY+b}},Wb=function(){return A.doc.addEventListener?function(a,b,c,d){var e=function(a){var b=Vb(a);return c.call(d,a,b.x,b.y)};if(a.addEventListener(b,e,!1),F&&L[b]){var f=function(b){for(var e=Vb(b),f=b,g=0,h=b.targetTouches&&b.targetTouches.length;h>g;g++)if(b.targetTouches[g].target==a){b=b.targetTouches[g],b.originalEvent=f,b.preventDefault=Sb,b.stopPropagation=Ub;break}return c.call(d,b,e.x,e.y)};a.addEventListener(L[b],f,!1)}return function(){return a.removeEventListener(b,e,!1),F&&L[b]&&a.removeEventListener(L[b],e,!1),!0}}:A.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||A.win.event;var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,e=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||Rb,a.stopPropagation=a.stopPropagation||Tb,c.call(d,a,f,g)};a.attachEvent("on"+b,e);var f=function(){return a.detachEvent("on"+b,e),!0};return f}:void 0}(),Xb=[],Yb=function(a){for(var c,d=a.clientX,e=a.clientY,f=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,g=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,h=Xb.length;h--;){if(c=Xb[h],F&&a.touches){for(var i,j=a.touches.length;j--;)if(i=a.touches[j],i.identifier==c.el._drag.id){d=i.clientX,e=i.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();var k,l=c.el.node,m=l.nextSibling,n=l.parentNode,o=l.style.display;A.win.opera&&n.removeChild(l),l.style.display="none",k=c.el.paper.getElementByPoint(d,e),l.style.display=o,A.win.opera&&(m?n.insertBefore(l,m):n.appendChild(l)),k&&b("raphael.drag.over."+c.el.id,c.el,k),d+=g,e+=f,b("raphael.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},Zb=function(a){c.unmousemove(Yb).unmouseup(Zb);for(var d,e=Xb.length;e--;)d=Xb[e],d.el._drag={},b("raphael.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,a);Xb=[]},$b=c.el={},_b=K.length;_b--;)!function(a){c[a]=$b[a]=function(b,d){return c.is(b,"function")&&(this.events=this.events||[],this.events.push({name:a,f:b,unbind:Wb(this.shape||this.node||A.doc,a,b,d||this)})),this},c["un"+a]=$b["un"+a]=function(b){for(var d=this.events||[],e=d.length;e--;)d[e].name!=a||!c.is(b,"undefined")&&d[e].f!=b||(d[e].unbind(),d.splice(e,1),!d.length&&delete this.events);return this}}(K[_b]);$b.data=function(a,d){var e=kb[this.id]=kb[this.id]||{};if(0==arguments.length)return e;if(1==arguments.length){if(c.is(a,"object")){for(var f in a)a[z](f)&&this.data(f,a[f]);return this}return b("raphael.data.get."+this.id,this,e[a],a),e[a]}return e[a]=d,b("raphael.data.set."+this.id,this,d,a),this},$b.removeData=function(a){return null==a?kb[this.id]={}:kb[this.id]&&delete kb[this.id][a],this},$b.getData=function(){return d(kb[this.id]||{})},$b.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},$b.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var ac=[];$b.drag=function(a,d,e,f,g,h){function i(i){(i.originalEvent||i).preventDefault();var j=i.clientX,k=i.clientY,l=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,m=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;if(this._drag.id=i.identifier,F&&i.touches)for(var n,o=i.touches.length;o--;)if(n=i.touches[o],this._drag.id=n.identifier,n.identifier==this._drag.id){j=n.clientX,k=n.clientY;break}this._drag.x=j+m,this._drag.y=k+l,!Xb.length&&c.mousemove(Yb).mouseup(Zb),Xb.push({el:this,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("raphael.drag.start."+this.id,d),a&&b.on("raphael.drag.move."+this.id,a),e&&b.on("raphael.drag.end."+this.id,e),b("raphael.drag.start."+this.id,g||f||this,i.clientX+m,i.clientY+l,i)}return this._drag={},ac.push({el:this,start:i}),this.mousedown(i),this},$b.onDragOver=function(a){a?b.on("raphael.drag.over."+this.id,a):b.unbind("raphael.drag.over."+this.id)},$b.undrag=function(){for(var a=ac.length;a--;)ac[a].el==this&&(this.unmousedown(ac[a].start),ac.splice(a,1),b.unbind("raphael.drag.*."+this.id));!ac.length&&c.unmousemove(Yb).unmouseup(Zb),Xb=[]},v.circle=function(a,b,d){var e=c._engine.circle(this,a||0,b||0,d||0);return this.__set__&&this.__set__.push(e),e},v.rect=function(a,b,d,e,f){var g=c._engine.rect(this,a||0,b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.ellipse=function(a,b,d,e){var f=c._engine.ellipse(this,a||0,b||0,d||0,e||0);return this.__set__&&this.__set__.push(f),f},v.path=function(a){a&&!c.is(a,U)&&!c.is(a[0],V)&&(a+=G);var b=c._engine.path(c.format[D](c,arguments),this);return this.__set__&&this.__set__.push(b),b},v.image=function(a,b,d,e,f){var g=c._engine.image(this,a||"about:blank",b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.text=function(a,b,d){var e=c._engine.text(this,a||0,b||0,I(d));return this.__set__&&this.__set__.push(e),e},v.set=function(a){!c.is(a,"array")&&(a=Array.prototype.splice.call(arguments,0,arguments.length));var b=new mc(a);return this.__set__&&this.__set__.push(b),b.paper=this,b.type="set",b},v.setStart=function(a){this.__set__=a||this.set()},v.setFinish=function(){var a=this.__set__;return delete this.__set__,a},v.setSize=function(a,b){return c._engine.setSize.call(this,a,b)},v.setViewBox=function(a,b,d,e,f){return c._engine.setViewBox.call(this,a,b,d,e,f)},v.top=v.bottom=null,v.raphael=c;var bc=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,h=b.top+(A.win.pageYOffset||e.scrollTop||d.scrollTop)-f,i=b.left+(A.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:h,x:i}};v.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=A.doc.elementFromPoint(a,b);if(A.win.opera&&"svg"==e.tagName){var f=bc(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var h=d.getIntersectionList(g,null);h.length&&(e=h[h.length-1])}if(!e)return null;for(;e.parentNode&&e!=d.parentNode&&!e.raphael;)e=e.parentNode;return e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null},v.getElementsByBBox=function(a){var b=this.set();return this.forEach(function(d){c.isBBoxIntersect(d.getBBox(),a)&&b.push(d)}),b},v.getById=function(a){for(var b=this.bottom;b;){if(b.id==a)return b;b=b.next}return null},v.forEach=function(a,b){for(var c=this.bottom;c;){if(a.call(b,c)===!1)return this;c=c.next}return this},v.getElementsByPoint=function(a,b){var c=this.set();return this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)}),c},$b.isPointInside=function(a,b){var d=this.realPath=qb[this.type](this);return this.attr("transform")&&this.attr("transform").length&&(d=c.transformPath(d,this.attr("transform"))),c.isPointInsidePath(d,a,b)},$b.getBBox=function(a){if(this.removed)return{};var b=this._;return a?((b.dirty||!b.bboxwt)&&(this.realPath=qb[this.type](this),b.bboxwt=Bb(this.realPath),b.bboxwt.toString=p,b.dirty=0),b.bboxwt):((b.dirty||b.dirtyT||!b.bbox)&&((b.dirty||!this.realPath)&&(b.bboxwt=0,this.realPath=qb[this.type](this)),b.bbox=Bb(rb(this.realPath,this.matrix)),b.bbox.toString=p,b.dirty=b.dirtyT=0),b.bbox)},$b.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(a),a},$b.glow=function(a){if("text"==this.type)return null;a=a||{};var b={width:(a.width||10)+(+this.attr("stroke-width")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||"#000"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||qb[this.type](this);f=this.matrix?rb(f,this.matrix):f;for(var g=1;c+1>g;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var cc=function(a,b,d,e,f,g,h,i,l){return null==l?j(a,b,d,e,f,g,h,i):c.findDotsAtSegment(a,b,d,e,f,g,h,i,k(a,b,d,e,f,g,h,i,l))},dc=function(a,b){return function(d,e,f){d=Kb(d);for(var g,h,i,j,k,l="",m={},n=0,o=0,p=d.length;p>o;o++){if(i=d[o],"M"==i[0])g=+i[1],h=+i[2];else{if(j=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6]),n+j>e){if(b&&!m.start){if(k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),l+=["C"+k.start.x,k.start.y,k.m.x,k.m.y,k.x,k.y],f)return l;m.start=l,l=["M"+k.x,k.y+"C"+k.n.x,k.n.y,k.end.x,k.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!a&&!b)return k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),{x:k.x,y:k.y,alpha:k.alpha}}n+=j,g=+i[5],h=+i[6]}l+=i.shift()+i}return m.end=l,k=a?n:b?m:c.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),k.alpha&&(k={x:k.x,y:k.y,alpha:k.alpha}),k}},ec=dc(1),fc=dc(),gc=dc(0,1);c.getTotalLength=ec,c.getPointAtLength=fc,c.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return gc(a,b).end;var d=gc(a,c,1);return b?gc(d,b).end:d},$b.getTotalLength=function(){var a=this.getPath();if(a)return this.node.getTotalLength?this.node.getTotalLength():ec(a)},$b.getPointAtLength=function(a){var b=this.getPath();if(b)return fc(b,a)},$b.getPath=function(){var a,b=c._getPath[this.type];if("text"!=this.type&&"set"!=this.type)return b&&(a=b(this)),a},$b.getSubpath=function(a,b){var d=this.getPath();if(d)return c.getSubpath(d,a,b)};var hc=c.easing_formulas={linear:function(a){return a},"<":function(a){return R(a,1.7)},">":function(a){return R(a,.48)},"<>":function(a){var b=.48-a/1.04,c=N.sqrt(.1734+b*b),d=c-b,e=R(Q(d),1/3)*(0>d?-1:1),f=-c-b,g=R(Q(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){return a==!!a?a:R(2,-10*a)*N.sin((a-.075)*2*S/.3)+1},bounce:function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b}};hc.easeIn=hc["ease-in"]=hc["<"],hc.easeOut=hc["ease-out"]=hc[">"],hc.easeInOut=hc["ease-in-out"]=hc["<>"],hc["back-in"]=hc.backIn,hc["back-out"]=hc.backOut;var ic=[],jc=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},kc=function(){for(var a=+new Date,d=0;dh))if(i>h){var q=j(h/i);for(var r in k)if(k[z](r)){switch(db[r]){case T:f=+k[r]+q*i*l[r];break;case"colour":f="rgb("+[lc($(k[r].r+q*i*l[r].r)),lc($(k[r].g+q*i*l[r].g)),lc($(k[r].b+q*i*l[r].b))].join(",")+")";break;case"path":f=[];for(var t=0,u=k[r].length;u>t;t++){f[t]=[k[r][t][0]];for(var v=1,w=k[r][t].length;w>v;v++)f[t][v]=+k[r][t][v]+q*i*l[r][t][v];f[t]=f[t].join(H)}f=f.join(H);break;case"transform":if(l[r].real)for(f=[],t=0,u=k[r].length;u>t;t++)for(f[t]=[k[r][t][0]],v=1,w=k[r][t].length;w>v;v++)f[t][v]=k[r][t][v]+q*i*l[r][t][v];else{var x=function(a){return+k[r][a]+q*i*l[r][a]};f=[["m",x(0),x(1),x(2),x(3),x(4),x(5)]]}break;case"csv":if("clip-rect"==r)for(f=[],t=4;t--;)f[t]=+k[r][t]+q*i*l[r][t];break;default:var y=[][E](k[r]);for(f=[],t=n.paper.customAttributes[r].length;t--;)f[t]=+y[t]+q*i*l[r][t]}o[r]=f}n.attr(o),function(a,c,d){setTimeout(function(){b("raphael.anim.frame."+a,c,d)})}(n.id,n,e.anim)}else{if(function(a,d,e){setTimeout(function(){b("raphael.anim.frame."+d.id,d,e),b("raphael.anim.finish."+d.id,d,e),c.is(a,"function")&&a.call(d)})}(e.callback,n,e.anim),n.attr(m),ic.splice(d--,1),e.repeat>1&&!e.next){for(g in m)m[z](g)&&(p[g]=e.totalOrigin[g]);e.el.attr(p),s(e.anim,e.el,e.anim.percents[0],null,e.totalOrigin,e.repeat-1)}e.next&&!e.stop&&s(e.anim,e.el,e.next,null,e.totalOrigin,e.repeat)}}}c.svg&&n&&n.paper&&n.paper.safari(),ic.length&&jc(kc)},lc=function(a){return a>255?255:0>a?0:a};$b.animateWith=function(a,b,d,e,f,g){var h=this;if(h.removed)return g&&g.call(h),h;var i=d instanceof r?d:c.animation(d,e,f,g);s(i,h,i.percents[0],null,h.attr());for(var j=0,k=ic.length;k>j;j++)if(ic[j].anim==b&&ic[j].el==a){ic[k-1].start=ic[j].start;break}return h},$b.onAnimation=function(a){return a?b.on("raphael.anim.frame."+this.id,a):b.unbind("raphael.anim.frame."+this.id),this},r.prototype.delay=function(a){var b=new r(this.anim,this.ms);return b.times=this.times,b.del=+a||0,b},r.prototype.repeat=function(a){var b=new r(this.anim,this.ms);return b.del=this.del,b.times=N.floor(O(a,0))||1,b},c.animation=function(a,b,d,e){if(a instanceof r)return a;(c.is(d,"function")||!d)&&(e=e||d||null,d=null),a=Object(a),b=+b||0;var f,g,h={};for(g in a)a[z](g)&&_(g)!=g&&_(g)+"%"!=g&&(f=!0,h[g]=a[g]);return f?(d&&(h.easing=d),e&&(h.callback=e),new r({100:h},b)):new r(a,b)},$b.animate=function(a,b,d,e){var f=this;if(f.removed)return e&&e.call(f),f;var g=a instanceof r?a:c.animation(a,b,d,e);return s(g,f,g.percents[0],null,f.attr()),f},$b.setTime=function(a,b){return a&&null!=b&&this.status(a,P(b,a.ms)/a.ms),this},$b.status=function(a,b){var c,d,e=[],f=0;if(null!=b)return s(a,this,-1,P(b,1)),this;for(c=ic.length;c>f;f++)if(d=ic[f],d.el.id==this.id&&(!a||d.anim==a)){if(a)return d.status;e.push({anim:d.anim,status:d.status})}return a?0:e},$b.pause=function(a){for(var c=0;cb;b++)!a[b]||a[b].constructor!=$b.constructor&&a[b].constructor!=mc||(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},nc=mc.prototype;nc.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],!a||a.constructor!=$b.constructor&&a.constructor!=mc||(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},nc.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},nc.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var oc in $b)$b[z](oc)&&(nc[oc]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][D](c,b)})}}(oc));return nc.attr=function(a,b){if(a&&c.is(a,V)&&c.is(a[0],"object"))for(var d=0,e=a.length;e>d;d++)this.items[d].attr(a[d]);else for(var f=0,g=this.items.length;g>f;f++)this.items[f].attr(a,b);return this},nc.clear=function(){for(;this.length;)this.pop()},nc.splice=function(a,b){a=0>a?O(this.length+a,0):a,b=O(0,P(this.length-a,b));var c,d=[],e=[],f=[];for(c=2;cc;c++)e.push(this[a+c]);for(;cc?f[c]:d[c-g];for(c=this.items.length=this.length-=b-g;this[c];)delete this[c++];return new mc(e)},nc.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0},nc.animate=function(a,b,d,e){(c.is(d,"function")||!d)&&(e=d||null);var f,g,h=this.items.length,i=h,j=this;if(!h)return this;e&&(g=function(){!--h&&e.call(j)}),d=c.is(d,U)?d:g;var k=c.animation(a,b,d,g);for(f=this.items[--i].animate(k);i--;)this.items[i]&&!this.items[i].removed&&this.items[i].animateWith(f,k,k),this.items[i]&&!this.items[i].removed||h--;return this},nc.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},nc.getBBox=function(){for(var a=[],b=[],c=[],d=[],e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}return a=P[D](0,a),b=P[D](0,b),c=O[D](0,c),d=O[D](0,d),{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},nc.clone=function(a){a=this.paper.set();for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},nc.toString=function(){return"Raphaël‘s set"},nc.glow=function(a){var b=this.paper.set();return this.forEach(function(c){var d=c.glow(a);null!=d&&d.forEach(function(a){b.push(a)})}),b},nc.isPointInside=function(a,b){var c=!1;return this.forEach(function(d){return d.isPointInside(a,b)?(console.log("runned"),c=!0,!1):void 0}),c},c.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face["font-family"];for(var d in a.face)a.face[z](d)&&(b.face[d]=a.face[d]);if(this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b],!a.svg){b.face["units-per-em"]=ab(a.face["units-per-em"],10);for(var e in a.glyphs)if(a.glyphs[z](e)){var f=a.glyphs[e];if(b.glyphs[e]={w:f.w,k:{},d:f.d&&"M"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[a]||"M"})+"z"},f.k)for(var g in f.k)f[z](g)&&(b.glyphs[e].k[g]=f.k[g])}}return a},v.getFont=function(a,b,d,e){if(e=e||"normal",d=d||"normal",b=+b||{normal:400,bold:700,lighter:300,bolder:800}[b]||400,c.fonts){var f=c.fonts[a];if(!f){var g=new RegExp("(^|\\s)"+a.replace(/[^\w\d\s+!~.:_-]/g,G)+"(\\s|$)","i");for(var h in c.fonts)if(c.fonts[z](h)&&g.test(h)){f=c.fonts[h];break}}var i;if(f)for(var j=0,k=f.length;k>j&&(i=f[j],i.face["font-weight"]!=b||i.face["font-style"]!=d&&i.face["font-style"]||i.face["font-stretch"]!=e);j++);return i}},v.print=function(a,b,d,e,f,g,h,i){g=g||"middle",h=O(P(h||0,1),-1),i=O(P(i||1,3),1);var j,k=I(d)[J](G),l=0,m=0,n=G;if(c.is(e,"string")&&(e=this.getFont(e)),e){j=(f||16)/e.face["units-per-em"];for(var o=e.face.bbox[J](w),p=+o[0],q=o[3]-o[1],r=0,s=+o[1]+("baseline"==g?q+ +e.face.descent:q/2),t=0,u=k.length;u>t;t++){if("\n"==k[t])l=0,x=0,m=0,r+=q*i;else{var v=m&&e.glyphs[k[t-1]]||{},x=e.glyphs[k[t]];l+=m?(v.w||e.w)+(v.k&&v.k[k[t]]||0)+e.w*h:0,m=1}x&&x.d&&(n+=c.transformPath(x.d,["t",l*j,r*j,"s",j,j,p,s,"t",(a-p)/j,(b-s)/j]))}}return this.path(n).attr({fill:"#000",stroke:"none"})},v.add=function(a){if(c.is(a,"array"))for(var b,d=this.set(),e=0,f=a.length;f>e;e++)b=a[e]||{},x[z](b.type)&&d.push(this[b.type]().attr(b));return d},c.format=function(a,b){var d=c.is(b,V)?[0][E](b):arguments;return a&&c.is(a,U)&&d.length-1&&(a=a.replace(y,function(a,b){return null==d[++b]?G:d[b]})),a||G},c.fullfill=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),c.ninja=function(){return B.was?A.win.Raphael=B.is:delete Raphael,c},c.st=nc,function(a,b,d){function e(){/in/.test(a.readyState)?setTimeout(e,9):c.eve("raphael.DOMload")}null==a.readyState&&a.addEventListener&&(a.addEventListener(b,d=function(){a.removeEventListener(b,d,!1),a.readyState="complete"},!1),a.readyState="loading"),e()}(document,"DOMContentLoaded"),b.on("raphael.DOMload",function(){u=!0}),function(){if(c.svg){var a="hasOwnProperty",b=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=c.eve,l="",m=" ",n="http://www.w3.org/1999/xlink",o={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},p={};c.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var q=function(d,e){if(e){"string"==typeof d&&(d=q(d));for(var f in e)e[a](f)&&("xlink:"==f.substring(0,6)?d.setAttributeNS(n,f.substring(6),b(e[f])):d.setAttribute(f,b(e[f])))}else d=c._g.doc.createElementNS("http://www.w3.org/2000/svg",d),d.style&&(d.style.webkitTapHighlightColor="rgba(0,0,0,0)");return d},r=function(a,e){var j="linear",k=a.id+e,m=.5,n=.5,o=a.node,p=a.paper,r=o.style,s=c._g.doc.getElementById(k);if(!s){if(e=b(e).replace(c._radial_gradient,function(a,b,c){if(j="radial",b&&c){m=d(b),n=d(c);var e=2*(n>.5)-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&.5!=n&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\s*\-\s*/),"linear"==j){var t=e.shift();if(t=-d(t),isNaN(t))return null;var u=[0,0,f.cos(c.rad(t)),f.sin(c.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=c._parseDots(e);if(!w)return null;if(k=k.replace(/[\(\)\s,\xb0#]/g,"_"),a.gradient&&k!=a.gradient.id&&(p.defs.removeChild(a.gradient),delete a.gradient),!a.gradient){s=q(j+"Gradient",{id:k}),a.gradient=s,q(s,"radial"==j?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:a.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;y>x;x++)s.appendChild(q("stop",{offset:w[x].offset?w[x].offset:x?"100%":"0%","stop-color":w[x].color||"#fff"}))}}return q(o,{fill:"url(#"+k+")",opacity:1,"fill-opacity":1}),r.fill=l,r.opacity=1,r.fillOpacity=1,1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+" translate("+b.x+","+b.y+")"})},t=function(d,e,f){if("path"==d.type){for(var g,h,i,j,k,m=b(e).toLowerCase().split("-"),n=d.paper,r=f?"end":"start",s=d.node,t=d.attrs,u=t["stroke-width"],v=m.length,w="classic",x=3,y=3,z=5;v--;)switch(m[v]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":w=m[v];break;case"wide":y=5;break;case"narrow":y=2;break;case"long":x=5;break;case"short":x=2}if("open"==w?(x+=2,y+=2,z+=2,i=1,j=f?4:1,k={fill:"none",stroke:t.stroke}):(j=i=x/2,k={fill:t.stroke,stroke:"none"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={},"none"!=w){var A="raphael-marker-"+w,B="raphael-marker-"+r+w+x+y;c._g.doc.getElementById(A)?p[A]++:(n.defs.appendChild(q(q("path"),{"stroke-linecap":"round",d:o[w],id:A})),p[A]=1);var C,D=c._g.doc.getElementById(B);D?(p[B]++,C=D.getElementsByTagName("use")[0]):(D=q(q("marker"),{id:B,markerHeight:y,markerWidth:x,orient:"auto",refX:j,refY:y/2}),C=q(q("use"),{"xlink:href":"#"+A,transform:(f?"rotate(180 "+x/2+" "+y/2+") ":l)+"scale("+x/z+","+y/z+")","stroke-width":(1/((x/z+y/z)/2)).toFixed(4)}),D.appendChild(C),n.defs.appendChild(D),p[B]=1),q(C,k);var E=i*("diamond"!=w&&"oval"!=w);f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-E*u):(g=E*u,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),k={},k["marker-"+r]="url(#"+B+")",(h||g)&&(k.d=c.getSubpath(t.path,g,h)),q(s,k),d._.arrows[r+"Path"]=A,d._.arrows[r+"Marker"]=B,d._.arrows[r+"dx"]=E,d._.arrows[r+"Type"]=w,d._.arrows[r+"String"]=e}else f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-g):(g=0,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),d._.arrows[r+"Path"]&&q(s,{d:c.getSubpath(t.path,g,h)}),delete d._.arrows[r+"Path"],delete d._.arrows[r+"Marker"],delete d._.arrows[r+"dx"],delete d._.arrows[r+"Type"],delete d._.arrows[r+"String"];for(k in p)if(p[a](k)&&!p[k]){var F=c._g.doc.getElementById(k);F&&F.parentNode.removeChild(F)}}},u={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},v=function(a,c,d){if(c=u[b(c).toLowerCase()]){for(var e=a.attrs["stroke-width"]||"1",f={round:e,square:e,butt:0}[a.attrs["stroke-linecap"]||d["stroke-linecap"]]||0,g=[],h=c.length;h--;)g[h]=c[h]*e+(h%2?1:-1)*f;q(a.node,{"stroke-dasharray":g.join(",")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility="hidden";for(var o in f)if(f[a](o)){if(!c._availableAttrs[a](o))continue;var p=f[o];switch(k[o]=p,o){case"blur":d.blur(p);break;case"href":case"title":var u=q("title"),w=c._g.doc.createTextNode(p);u.appendChild(w),i.appendChild(u);break;case"target":var x=i.parentNode;if("a"!=x.tagName.toLowerCase()){var u=q("a");x.insertBefore(u,i),u.appendChild(i),x=u}"target"==o?x.setAttributeNS(n,"show","blank"==p?"new":p):x.setAttributeNS(n,o,p);break;case"cursor":i.style.cursor=p;break;case"transform":d.transform(p);break;case"arrow-start":t(d,p);break;case"arrow-end":t(d,p,1);break;case"clip-rect":var z=b(p).split(j);if(4==z.length){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var A=q("clipPath"),B=q("rect");A.id=c.createUUID(),q(B,{x:z[0],y:z[1],width:z[2],height:z[3]}),A.appendChild(B),d.paper.defs.appendChild(A),q(i,{"clip-path":"url(#"+A.id+")"}),d.clip=B}if(!p){var C=i.getAttribute("clip-path");if(C){var D=c._g.doc.getElementById(C.replace(/(^url\(#|\)$)/g,l));D&&D.parentNode.removeChild(D),q(i,{"clip-path":l}),delete d.clip}}break;case"path":"path"==d.type&&(q(i,{d:p?k.path=c._pathToAbsolute(p):"M0,0"}),d._.dirty=1,d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case"width":if(i.setAttribute(o,p),d._.dirty=1,!k.fx)break;o="x",p=k.x;case"x":k.fx&&(p=-k.x-(k.width||0));case"rx":if("rx"==o&&"rect"==d.type)break;case"cx":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"height":if(i.setAttribute(o,p),d._.dirty=1,!k.fy)break;o="y",p=k.y;case"y":k.fy&&(p=-k.y-(k.height||0));case"ry":if("ry"==o&&"rect"==d.type)break;case"cy":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"r":"rect"==d.type?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case"src":"image"==d.type&&i.setAttributeNS(n,"href",p);break;case"stroke-width":(1!=d._.sx||1!=d._.sy)&&(p/=g(h(d._.sx),h(d._.sy))||1),d.paper._vbSize&&(p*=d.paper._vbSize),i.setAttribute(o,p),k["stroke-dasharray"]&&v(d,k["stroke-dasharray"],f),d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"stroke-dasharray":v(d,p,f);break;case"fill":var E=b(p).match(c._ISURL);if(E){A=q("pattern");var F=q("image");A.id=c.createUUID(),q(A,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),q(F,{x:0,y:0,"xlink:href":E[1]}),A.appendChild(F),function(a){c._preload(E[1],function(){var b=this.offsetWidth,c=this.offsetHeight;q(a,{width:b,height:c}),q(F,{width:b,height:c}),d.paper.safari()})}(A),d.paper.defs.appendChild(A),q(i,{fill:"url(#"+A.id+")"}),d.pattern=A,d.pattern&&s(d);break}var G=c.getRGB(p);if(G.error){if(("circle"==d.type||"ellipse"==d.type||"r"!=b(p).charAt())&&r(d,p)){if("opacity"in k||"fill-opacity"in k){var H=c._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l));if(H){var I=H.getElementsByTagName("stop");q(I[I.length-1],{"stop-opacity":("opacity"in k?k.opacity:1)*("fill-opacity"in k?k["fill-opacity"]:1)})}}k.gradient=p,k.fill="none";break}}else delete f.gradient,delete k.gradient,!c.is(k.opacity,"undefined")&&c.is(f.opacity,"undefined")&&q(i,{opacity:k.opacity}),!c.is(k["fill-opacity"],"undefined")&&c.is(f["fill-opacity"],"undefined")&&q(i,{"fill-opacity":k["fill-opacity"]});G[a]("opacity")&&q(i,{"fill-opacity":G.opacity>1?G.opacity/100:G.opacity});case"stroke":G=c.getRGB(p),i.setAttribute(o,G.hex),"stroke"==o&&G[a]("opacity")&&q(i,{"stroke-opacity":G.opacity>1?G.opacity/100:G.opacity}),"stroke"==o&&d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"gradient":("circle"==d.type||"ellipse"==d.type||"r"!=b(p).charAt())&&r(d,p);break;case"opacity":k.gradient&&!k[a]("stroke-opacity")&&q(i,{"stroke-opacity":p>1?p/100:p});case"fill-opacity":if(k.gradient){H=c._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l)),H&&(I=H.getElementsByTagName("stop"),q(I[I.length-1],{"stop-opacity":p}));break}default:"font-size"==o&&(p=e(p,10)+"px");var J=o.replace(/(\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[J]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if("text"==d.type&&(f[a]("text")||f[a]("font")||f[a]("font-size")||f[a]("x")||f[a]("y"))){var g=d.attrs,h=d.node,i=h.firstChild?e(c._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue("font-size"),10):10; -if(f[a]("text")){for(g.text=f.text;h.firstChild;)h.removeChild(h.firstChild);for(var j,k=b(f.text).split("\n"),m=[],n=0,o=k.length;o>n;n++)j=q("tspan"),n&&q(j,{dy:i*x,x:g.x}),j.appendChild(c._g.doc.createTextNode(k[n])),h.appendChild(j),m[n]=j}else for(m=h.getElementsByTagName("tspan"),n=0,o=m.length;o>n;n++)n?q(m[n],{dy:i*x,x:g.x}):q(m[0],{dy:0});q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&c.is(r,"finite")&&q(m[0],{dy:r})}},z=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.matrix=c.matrix(),this.realPath=null,this.paper=b,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},A=c.el;z.prototype=A,A.constructor=z,c._engine.path=function(a,b){var c=q("path");b.canvas&&b.canvas.appendChild(c);var d=new z(c,b);return d.type="path",w(d,{fill:"none",stroke:"#000",path:a}),d},A.rotate=function(a,c,e){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this.transform(this._.transform.concat([["r",a,c,e]])),this},A.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,c,e,f]])),this},A.translate=function(a,c){return this.removed?this:(a=b(a).split(j),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this.transform(this._.transform.concat([["t",a,c]])),this)},A.transform=function(b){var d=this._;if(null==b)return d.transform;if(c._extractTransform(this,b),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix}),1!=d.sx||1!=d.sy){var e=this.attrs[a]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":e})}return this},A.hide=function(){return!this.removed&&this.paper.safari(this.node.style.display="none"),this},A.show=function(){return!this.removed&&this.paper.safari(this.node.style.display=""),this},A.remove=function(){if(!this.removed&&this.node.parentNode){var a=this.paper;a.__set__&&a.__set__.exclude(this),k.unbind("raphael.*.*."+this.id),this.gradient&&a.defs.removeChild(this.gradient),c._tear(this,a),"a"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.removeChild(this.node.parentNode):this.node.parentNode.removeChild(this.node);for(var b in this)this[b]="function"==typeof this[b]?c._removedFactory(b):null;this.removed=!0}},A._getBBox=function(){if("none"==this.node.style.display){this.show();var a=!0}var b={};try{b=this.node.getBBox()}catch(c){}finally{b=b||{}}return a&&this.hide(),b},A.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,"string")){if("fill"==b&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if("transform"==b)return this._.transform;for(var g=b.split(j),h={},i=0,l=g.length;l>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],"function")?this.paper.customAttributes[b].def:c._availableAttrs[b];return l-1?h:h[g[0]]}if(null==d&&c.is(b,"array")){for(h={},i=0,l=b.length;l>i;i++)h[b[i]]=this.attr(b[i]);return h}if(null!=d){var m={};m[b]=d}else null!=b&&c.is(b,"object")&&(m=b);for(var n in m)k("raphael.attr."+n+"."+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[a](n)&&m[a](n)&&c.is(this.paper.customAttributes[n],"function")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[a](p)&&(m[p]=o[p])}return w(this,m),this},A.toFront=function(){if(this.removed)return this;"a"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.appendChild(this.node.parentNode):this.node.parentNode.appendChild(this.node);var a=this.paper;return a.top!=this&&c._tofront(this,a),this},A.toBack=function(){if(this.removed)return this;var a=this.node.parentNode;return"a"==a.tagName.toLowerCase()?a.parentNode.insertBefore(this.node.parentNode,this.node.parentNode.parentNode.firstChild):a.firstChild!=this.node&&a.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper),this.paper,this},A.insertAfter=function(a){if(this.removed)return this;var b=a.node||a[a.length-1].node;return b.nextSibling?b.parentNode.insertBefore(this.node,b.nextSibling):b.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this},A.insertBefore=function(a){if(this.removed)return this;var b=a.node||a[0].node;return b.parentNode.insertBefore(this.node,b),c._insertbefore(this,a,this.paper),this},A.blur=function(a){var b=this;if(0!==+a){var d=q("filter"),e=q("feGaussianBlur");b.attrs.blur=a,d.id=c.createUUID(),q(e,{stdDeviation:+a||1.5}),d.appendChild(e),b.paper.defs.appendChild(d),b._blur=d,q(b.node,{filter:"url(#"+d.id+")"})}else b._blur&&(b._blur.parentNode.removeChild(b._blur),delete b._blur,delete b.attrs.blur),b.node.removeAttribute("filter");return b},c._engine.circle=function(a,b,c,d){var e=q("circle");a.canvas&&a.canvas.appendChild(e);var f=new z(e,a);return f.attrs={cx:b,cy:c,r:d,fill:"none",stroke:"#000"},f.type="circle",q(e,f.attrs),f},c._engine.rect=function(a,b,c,d,e,f){var g=q("rect");a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:b,y:c,width:d,height:e,r:f||0,rx:f||0,ry:f||0,fill:"none",stroke:"#000"},h.type="rect",q(g,h.attrs),h},c._engine.ellipse=function(a,b,c,d,e){var f=q("ellipse");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);return g.attrs={cx:b,cy:c,rx:d,ry:e,fill:"none",stroke:"#000"},g.type="ellipse",q(f,g.attrs),g},c._engine.image=function(a,b,c,d,e,f){var g=q("image");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:"none"}),g.setAttributeNS(n,"href",b),a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:c,y:d,width:e,height:f,src:b},h.type="image",h},c._engine.text=function(a,b,d,e){var f=q("text");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);return g.attrs={x:b,y:d,"text-anchor":"middle",text:e,font:c._availableAttrs.font,stroke:"none",fill:"#000"},g.type="text",w(g,g.attrs),g},c._engine.setSize=function(a,b){return this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a&&a.container,d=a.x,e=a.y,f=a.width,g=a.height;if(!b)throw new Error("SVG container not found.");var h,i=q("svg"),j="overflow:hidden;";return d=d||0,e=e||0,f=f||512,g=g||342,q(i,{height:g,version:1.1,width:f,xmlns:"http://www.w3.org/2000/svg"}),1==b?(i.style.cssText=j+"position:absolute;left:"+d+"px;top:"+e+"px",c._g.doc.body.appendChild(i),h=1):(i.style.cssText=j+"position:relative",b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i)),b=new c._Paper,b.width=f,b.height=g,b.canvas=i,b.clear(),b._left=b._top=0,h&&(b.renderfix=function(){}),b.renderfix(),b},c._engine.setViewBox=function(a,b,c,d,e){k("raphael.setViewBox",this,this._viewBox,[a,b,c,d,e]);var f,h,i=g(c/this.width,d/this.height),j=this.top,l=e?"meet":"xMinYMin";for(null==a?(this._vbSize&&(i=1),delete this._vbSize,f="0 0 "+this.width+m+this.height):(this._vbSize=i,f=a+m+b+m+c+m+d),q(this.canvas,{viewBox:f,preserveAspectRatio:l});i&&j;)h="stroke-width"in j.attrs?j.attrs["stroke-width"]:1,j.attr({"stroke-width":h}),j._.dirty=1,j._.dirtyT=1,j=j.prev;return this._viewBox=[a,b,c,d,!!e],this},c.prototype.renderfix=function(){var a,b=this.canvas,c=b.style;try{a=b.getScreenCTM()||b.createSVGMatrix()}catch(d){a=b.createSVGMatrix()}var e=-a.e%1,f=-a.f%1;(e||f)&&(e&&(this._left=(this._left+e)%1,c.left=this._left+"px"),f&&(this._top=(this._top+f)%1,c.top=this._top+"px"))},c.prototype.clear=function(){c.eve("raphael.clear",this);for(var a=this.canvas;a.firstChild;)a.removeChild(a.firstChild);this.bottom=this.top=null,(this.desc=q("desc")).appendChild(c._g.doc.createTextNode("Created with Raphaël "+c.version)),a.appendChild(this.desc),a.appendChild(this.defs=q("defs"))},c.prototype.remove=function(){k("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null};var B=c.st;for(var C in A)A[a](C)&&!B[a](C)&&(B[C]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(C))}}(),function(){if(c.vml){var a="hasOwnProperty",b=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j="fill",k=/[, ]+/,l=c.eve,m=" progid:DXImageTransform.Microsoft",n=" ",o="",p={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\S+Blur\([^\)]+\)/g,s=/-?[^,\s-]+/g,t="position:absolute;left:0;top:0;width:1px;height:1px",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(a){var d=/[ahqstv]/gi,e=c._pathToAbsolute;if(b(a).match(d)&&(e=c._path2curve),d=/[clmz]/g,e==c._pathToAbsolute&&!b(a).match(d)){var g=b(a).replace(q,function(a,b,c){var d=[],e="m"==b.toLowerCase(),g=p[b];return c.replace(s,function(a){e&&2==d.length&&(g+=d+p["m"==b?"l":"L"],d=[]),d.push(f(a*u))}),g+d});return g}var h,i,j=e(a);g=[];for(var k=0,l=j.length;l>k;k++){h=j[k],i=j[k][0].toLowerCase(),"z"==i&&(i="x");for(var m=1,r=h.length;r>m;m++)i+=f(h[m]*u)+(m!=r-1?",":o);g.push(i)}return g.join(n)},y=function(a,b,d){var e=c.matrix();return e.rotate(-a,.5,.5),{dx:e.x(b,d),dy:e.y(b,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p="",q=u/b,r=u/c;if(m.visibility="hidden",b&&c){if(l.coordsize=i(q)+n+i(r),m.rotation=f*(0>b*c?-1:1),f){var s=y(f,d,e);d=s.dx,e=s.dy}if(0>b&&(p+="x"),0>c&&(p+=" y")&&(o=-1),m.flip=p,l.coordorigin=d*-q+n+e*-r,k||g.fillsize){var t=l.getElementsByTagName(j);t=t&&t[0],l.removeChild(t),k&&(s=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),t.position=s.dx*o+n+s.dy*o),g.fillsize&&(t.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(t)}m.visibility="visible"}};c.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var A=function(a,c,d){for(var e=b(c).toLowerCase().split("-"),f=d?"end":"start",g=e.length,h="classic",i="medium",j="medium";g--;)switch(e[g]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":h=e[g];break;case"wide":case"narrow":j=e[g];break;case"long":case"short":i=e[g]}var k=a.node.getElementsByTagName("stroke")[0];k[f+"arrow"]=h,k[f+"arrowlength"]=i,k[f+"arrowwidth"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),r=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),s=e;for(var t in i)i[a](t)&&(m[t]=i[t]);if(q&&(m.path=c._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),"blur"in i&&e.blur(i.blur),(i.path&&"path"==e.type||q)&&(l.path=x(~b(m.path).toLowerCase().indexOf("r")?c._pathToAbsolute(m.path):m.path),"image"==e.type&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0))),"transform"in i&&e.transform(i.transform),r){var y=+m.cx,B=+m.cy,D=+m.rx||+m.r||0,E=+m.ry||+m.r||0;l.path=c.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",f((y-D)*u),f((B-E)*u),f((y+D)*u),f((B+E)*u),f(y*u)),e._.dirty=1}if("clip-rect"in i){var G=b(i["clip-rect"]).split(k);if(4==G.length){G[2]=+G[2]+ +G[0],G[3]=+G[3]+ +G[1];var H=l.clipRect||c._g.doc.createElement("div"),I=H.style;I.clip=c.format("rect({1}px {2}px {3}px {0}px)",G),l.clipRect||(I.position="absolute",I.top=0,I.left=0,I.width=e.paper.width+"px",I.height=e.paper.height+"px",l.parentNode.insertBefore(H,l),H.appendChild(l),l.clipRect=H)}i["clip-rect"]||l.clipRect&&(l.clipRect.style.clip="auto")}if(e.textpath){var J=e.textpath.style;i.font&&(J.font=i.font),i["font-family"]&&(J.fontFamily='"'+i["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,o)+'"'),i["font-size"]&&(J.fontSize=i["font-size"]),i["font-weight"]&&(J.fontWeight=i["font-weight"]),i["font-style"]&&(J.fontStyle=i["font-style"])}if("arrow-start"in i&&A(s,i["arrow-start"]),"arrow-end"in i&&A(s,i["arrow-end"],1),null!=i.opacity||null!=i["stroke-width"]||null!=i.fill||null!=i.src||null!=i.stroke||null!=i["stroke-width"]||null!=i["stroke-opacity"]||null!=i["fill-opacity"]||null!=i["stroke-dasharray"]||null!=i["stroke-miterlimit"]||null!=i["stroke-linejoin"]||null!=i["stroke-linecap"]){var K=l.getElementsByTagName(j),L=!1;if(K=K&&K[0],!K&&(L=K=F(j)),"image"==e.type&&i.src&&(K.src=i.src),i.fill&&(K.on=!0),(null==K.on||"none"==i.fill||null===i.fill)&&(K.on=!1),K.on&&i.fill){var M=b(i.fill).match(c._ISURL);if(M){K.parentNode==l&&l.removeChild(K),K.rotate=!0,K.src=M[1],K.type="tile";var N=e.getBBox(1);K.position=N.x+n+N.y,e._.fillpos=[N.x,N.y],c._preload(M[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else K.color=c.getRGB(i.fill).hex,K.src=o,K.type="solid",c.getRGB(i.fill).error&&(s.type in{circle:1,ellipse:1}||"r"!=b(i.fill).charAt())&&C(s,i.fill,K)&&(m.fill="none",m.gradient=i.fill,K.rotate=!1)}if("fill-opacity"in i||"opacity"in i){var O=((+m["fill-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+c.getRGB(i.fill).o+1||2)-1);O=h(g(O,0),1),K.opacity=O,K.src&&(K.color="none")}l.appendChild(K);var P=l.getElementsByTagName("stroke")&&l.getElementsByTagName("stroke")[0],Q=!1;!P&&(Q=P=F("stroke")),(i.stroke&&"none"!=i.stroke||i["stroke-width"]||null!=i["stroke-opacity"]||i["stroke-dasharray"]||i["stroke-miterlimit"]||i["stroke-linejoin"]||i["stroke-linecap"])&&(P.on=!0),("none"==i.stroke||null===i.stroke||null==P.on||0==i.stroke||0==i["stroke-width"])&&(P.on=!1);var R=c.getRGB(i.stroke);P.on&&i.stroke&&(P.color=R.hex),O=((+m["stroke-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+R.o+1||2)-1);var S=.75*(d(i["stroke-width"])||1);if(O=h(g(O,0),1),null==i["stroke-width"]&&(S=m["stroke-width"]),i["stroke-width"]&&(P.weight=S),S&&1>S&&(O*=S)&&(P.weight=1),P.opacity=O,i["stroke-linejoin"]&&(P.joinstyle=i["stroke-linejoin"]||"miter"),P.miterlimit=i["stroke-miterlimit"]||8,i["stroke-linecap"]&&(P.endcap="butt"==i["stroke-linecap"]?"flat":"square"==i["stroke-linecap"]?"square":"round"),i["stroke-dasharray"]){var T={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};P.dashstyle=T[a](i["stroke-dasharray"])?T[i["stroke-dasharray"]]:o}Q&&l.appendChild(P)}if("text"==s.type){s.paper.canvas.style.display=o;var U=s.paper.span,V=100,W=m.font&&m.font.match(/\d+(?:\.\d*)?(?=px)/);p=U.style,m.font&&(p.font=m.font),m["font-family"]&&(p.fontFamily=m["font-family"]),m["font-weight"]&&(p.fontWeight=m["font-weight"]),m["font-style"]&&(p.fontStyle=m["font-style"]),W=d(m["font-size"]||W&&W[0])||10,p.fontSize=W*V+"px",s.textpath.string&&(U.innerHTML=b(s.textpath.string).replace(/"));var X=U.getBoundingClientRect();s.W=m.w=(X.right-X.left)/V,s.H=m.h=(X.bottom-X.top)/V,s.X=m.x,s.Y=m.y+s.H/2,("x"in i||"y"in i)&&(s.path.v=c.format("m{0},{1}l{2},{1}",f(m.x*u),f(m.y*u),f(m.x*u)+1));for(var Y=["x","y","text","font","font-family","font-weight","font-style","font-size"],Z=0,$=Y.length;$>Z;Z++)if(Y[Z]in i){s._.dirty=1;break}switch(m["text-anchor"]){case"start":s.textpath.style["v-text-align"]="left",s.bbx=s.W/2;break;case"end":s.textpath.style["v-text-align"]="right",s.bbx=-s.W/2;break;default:s.textpath.style["v-text-align"]="center",s.bbx=0}s.textpath.style["v-text-kern"]=!0}},C=function(a,f,g){a.attrs=a.attrs||{};var h=(a.attrs,Math.pow),i="linear",j=".5 .5";if(a.attrs.gradient=f,f=b(f).replace(c._radial_gradient,function(a,b,c){return i="radial",b&&c&&(b=d(b),c=d(c),h(b-.5,2)+h(c-.5,2)>.25&&(c=e.sqrt(.25-h(b-.5,2))*(2*(c>.5)-1)+.5),j=b+n+c),o}),f=f.split(/\s*\-\s*/),"linear"==i){var k=f.shift();if(k=-d(k),isNaN(k))return null}var l=c._parseDots(f);if(!l)return null;if(a=a.shape||a.node,l.length){a.removeChild(g),g.on=!0,g.method="none",g.color=l[0].color,g.color2=l[l.length-1].color;for(var m=[],p=0,q=l.length;q>p;p++)l[p].offset&&m.push(l[p].offset+n+l[p].color);g.colors=m.length?m.join():"0% "+g.color,"radial"==i?(g.type="gradientTitle",g.focus="100%",g.focussize="0 0",g.focusposition=j,g.angle=0):(g.type="gradient",g.angle=(270-k)%360),a.appendChild(g)}return 1},D=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=b,this.matrix=c.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},E=c.el;D.prototype=E,E.constructor=D,E.transform=function(a){if(null==a)return this._.transform;var d,e=this.paper._viewBoxShift,f=e?"s"+[e.scale,e.scale]+"-1-1t"+[e.dx,e.dy]:o;e&&(d=a=b(a).replace(/\.{3}|\u2026/g,this._.transform||o)),c._extractTransform(this,f+a);var g,h=this.matrix.clone(),i=this.skew,j=this.node,k=~b(this.attrs.fill).indexOf("-"),l=!b(this.attrs.fill).indexOf("url(");if(h.translate(1,1),l||k||"image"==this.type)if(i.matrix="1 0 0 1",i.offset="0 0",g=h.split(),k&&g.noRotation||!g.isSimple){j.style.filter=h.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;j.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else j.style.filter=o,z(this,g.scalex,g.scaley,g.dx,g.dy,g.rotate);else j.style.filter=o,i.matrix=b(h),i.offset=h.offset();return d&&(this._.transform=d),this},E.rotate=function(a,c,e){if(this.removed)return this;if(null!=a){if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([["r",a,c,e]])),this}},E.translate=function(a,c){return this.removed?this:(a=b(a).split(k),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=c),this.transform(this._.transform.concat([["t",a,c]])),this)},E.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,c,e,f]])),this._.dirtyT=1,this},E.hide=function(){return!this.removed&&(this.node.style.display="none"),this},E.show=function(){return!this.removed&&(this.node.style.display=o),this},E._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),c.eve.unbind("raphael.*.*."+this.id),c._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null;this.removed=!0}},E.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,"string")){if(b==j&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var g=b.split(k),h={},i=0,m=g.length;m>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],"function")?this.paper.customAttributes[b].def:c._availableAttrs[b];return m-1?h:h[g[0]]}if(this.attrs&&null==d&&c.is(b,"array")){for(h={},i=0,m=b.length;m>i;i++)h[b[i]]=this.attr(b[i]);return h}var n;null!=d&&(n={},n[b]=d),null==d&&c.is(b,"object")&&(n=b);for(var o in n)l("raphael.attr."+o+"."+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[a](o)&&n[a](o)&&c.is(this.paper.customAttributes[o],"function")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[a](q)&&(n[q]=p[q])}n.text&&"text"==this.type&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&c._tofront(this,this.paper),this},E.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper)),this)},E.insertAfter=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[a.length-1]),a.node.nextSibling?a.node.parentNode.insertBefore(this.node,a.node.nextSibling):a.node.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this)},E.insertBefore=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[0]),a.node.parentNode.insertBefore(this.node,a.node),c._insertbefore(this,a,this.paper),this)},E.blur=function(a){var b=this.node.runtimeStyle,d=b.filter;return d=d.replace(r,o),0!==+a?(this.attrs.blur=a,b.filter=d+n+m+".Blur(pixelradius="+(+a||1.5)+")",b.margin=c.format("-{0}px 0 0 -{0}px",f(+a||1.5))):(b.filter=d,b.margin=0,delete this.attrs.blur),this},c._engine.path=function(a,b){var c=F("shape");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:"none",stroke:"#000"};a&&(e.path=a),d.type="path",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F("skew");return f.on=!0,c.appendChild(f),d.skew=f,d.transform(o),d},c._engine.rect=function(a,b,d,e,f,g){var h=c._rectPath(b,d,e,f,g),i=a.path(h),j=i.attrs;return i.X=j.x=b,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type="rect",i},c._engine.ellipse=function(a,b,c,d,e){var f=a.path();return f.attrs,f.X=b-d,f.Y=c-e,f.W=2*d,f.H=2*e,f.type="ellipse",B(f,{cx:b,cy:c,rx:d,ry:e}),f},c._engine.circle=function(a,b,c,d){var e=a.path();return e.attrs,e.X=b-d,e.Y=c-d,e.W=e.H=2*d,e.type="circle",B(e,{cx:b,cy:c,r:d}),e},c._engine.image=function(a,b,d,e,f,g){var h=c._rectPath(d,e,f,g),i=a.path(h).attr({stroke:"none"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];return k.src=b,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type="image",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=b,m.type="tile",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0),i},c._engine.text=function(a,d,e,g){var h=F("shape"),i=F("path"),j=F("textpath");d=d||0,e=e||0,g=g||"",i.v=c.format("m{0},{1}l{2},{1}",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=b(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin="0 0";var k=new D(h,a),l={fill:"#000",stroke:"none",font:c._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type="text",k.attrs.text=b(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),a.canvas.appendChild(h);var m=F("skew");return m.on=!0,h.appendChild(m),k.skew=m,k.transform(o),k},c._engine.setSize=function(a,b){var d=this.canvas.style;return this.width=a,this.height=b,a==+a&&(a+="px"),b==+b&&(b+="px"),d.width=a,d.height=b,d.clip="rect(0 "+a+" "+b+" 0)",this._viewBox&&c._engine.setViewBox.apply(this,this._viewBox),this},c._engine.setViewBox=function(a,b,d,e,f){c.eve("raphael.setViewBox",this,this._viewBox,[a,b,d,e,f]);var h,i,j=this.width,k=this.height,l=1/g(d/j,e/k);return f&&(h=k/e,i=j/d,j>d*h&&(a-=(j-d*h)/2/h),k>e*i&&(b-=(k-e*i)/2/i)),this._viewBox=[a,b,d,e,!!f],this._viewBoxShift={dx:-a,dy:-b,scale:l},this.forEach(function(a){a.transform("...")}),this};var F;c._engine.initWin=function(a){var b=a.document;b.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{!b.namespaces.rvml&&b.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),F=function(a){return b.createElement("')}}catch(c){F=function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},c._engine.initWin(c._g.win),c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a.container,d=a.height,e=a.width,f=a.x,g=a.y;if(!b)throw new Error("VML container not found.");var h=new c._Paper,i=h.canvas=c._g.doc.createElement("div"),j=i.style;return f=f||0,g=g||0,e=e||512,d=d||342,h.width=e,h.height=d,e==+e&&(e+="px"),d==+d&&(d+="px"),h.coordsize=1e3*u+n+1e3*u,h.coordorigin="0 0",h.span=c._g.doc.createElement("span"),h.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",i.appendChild(h.span),j.cssText=c.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",e,d),1==b?(c._g.doc.body.appendChild(i),j.left=f+"px",j.top=g+"px",j.position="absolute"):b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i),h.renderfix=function(){},h},c.prototype.clear=function(){c.eve("raphael.clear",this),this.canvas.innerHTML=o,this.span=c._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},c.prototype.remove=function(){c.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null;return!0};var G=c.st;for(var H in E)E[a](H)&&!G[a](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}}(),B.was?A.win.Raphael=c:Raphael=c,c}); \ No newline at end of file diff --git a/build/content.html b/build/content.html deleted file mode 100755 index e0c21c2..0000000 --- a/build/content.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - - - Vibration and Acoustics - - - - -
          - - - -
          - - - - - - - -
          - - - -
          - - - -
          - - -
          - Welcome to Vibration and Acoustics! -
          - - -
          - - - - - - - -
          - - -
          -
          - - -
          - - - -
          - Introduction -
          - - -
          -

          - Welcome to the security lab! In this lab, we will do - virtual experiments to understand Newton's laws of - motion. We will start with a simple pendulum, and - from then on, the experiments get more interesting. -

          -
          - -
          - - - -
          - -
          - - -
          - - - -
          - List of experiments -
          - - -
          - -
          -
          - -
          -
          - -
          -
          - -
          - -
          - -
          -
          - -
          -
          - -
          -
          - -
          - -
          -
          - - - - - -
          - -
          - -
          - - -
          - -
          - -
          - - diff --git a/build/css/Thumbs.db b/build/css/Thumbs.db deleted file mode 100755 index 62dd23a..0000000 Binary files a/build/css/Thumbs.db and /dev/null differ diff --git a/build/css/bgtry.png b/build/css/bgtry.png deleted file mode 100755 index 2c04a75..0000000 Binary files a/build/css/bgtry.png and /dev/null differ diff --git a/build/css/capacitance.css b/build/css/capacitance.css deleted file mode 100755 index 8b8e4b9..0000000 --- a/build/css/capacitance.css +++ /dev/null @@ -1 +0,0 @@ -*{margin:0;padding:0}body{background:url(bgtry.png)}#canvas_container{margin-top:-30px;width:300px}a{color:#333;text-decoration:none}a:hover{color:#ccc;text-decoration:none}#tabs{box-shadow:0 0 10px #000;height:788px;margin-left:auto;margin-right:auto;width:831px}#close{float:right;margin-top:0}#mask{background-color:#000;display:none;left:0;position:fixed;top:0;z-index:9000}#boxes .window{display:none;left:0;padding:10px;position:fixed;top:0;width:640px;z-index:9999}#boxes #dialog{background-color:#fff;height:500px;width:500px}#boxes #dialog2{background-color:#fff;height:300px;width:450px}.imag{float:none;margin-left:134px;text-align:center}.imag1{float:right}#span{border-bottom:1px solid #A9A9A9;cursor:pointer;display:block;float:left;font-size:14px;font-weight:700;line-height:17px;margin-bottom:10px;margin-left:10px;margin-top:10px;padding-bottom:5px;width:275px}#spanBtn{margin-right:31px}#tabs-1{height:565px}#newFormula{margin-left:100px;text-align:center}.closeOne{left:210px;position:absolute;top:520px}.closeTwo{left:170px;margin-right:0;position:absolute;top:278px} \ No newline at end of file diff --git a/build/css/capacitance_src.css b/build/css/capacitance_src.css deleted file mode 100755 index 100b538..0000000 --- a/build/css/capacitance_src.css +++ /dev/null @@ -1,123 +0,0 @@ -*{ - margin:0; - padding:0; -} - -body{ - background : url("bgtry.png"); -} - -#canvas_container { - width: 300px; - margin-top: -30px; -} - -a { - color: #333; - text-decoration: none -} - -a:hover { - color: #ccc; - text-decoration: none -} - - - -#tabs { - box-shadow: 0 0 10px #000; - height: 788px; - margin-left: auto; - margin-right: auto; - width: 831px; -} - - - -#close { - float: right; - margin-top: 0px; -} - -#mask { - position: fixed; - left: 0; - top: 0; - z-index: 9000; - background-color: #000; - display: none; -} - -#boxes .window { - position: fixed; - left: 0; - top: 0; - width: 640px; - display: none; - z-index: 9999; - padding: 10px; -} - -#boxes #dialog { - width: 500px; - height: 500px; - - background-color: #ffffff; -} - -#boxes #dialog2 { - background-color: #ffffff; - width: 450px; - height: 300px; -} - -.imag { - float: none; - margin-left: 134px; - text-align: center; -} - -.imag1 { - float: right; -} - -#span{ - border-bottom: 1px solid #A9A9A9; - cursor: pointer; - display: block; - float: left; - font-size: 14px; - font-weight: bold; - line-height: 17px; - margin-bottom: 10px; - margin-left: 10px; - margin-top: 10px; - padding-bottom: 5px; - width: 275px; -} - -#spanBtn{ - margin-right: 31px; -} - -#tabs-1{ - height: 565px; -} - -#newFormula{ - margin-left: 100px; - text-align: center; -} - -.closeOne{ - left: 210px; - position: absolute; - top: 520px; -} - -.closeTwo{ - left: 170px; - margin-right: 0; - position: absolute; - top: 278px; -} \ No newline at end of file diff --git a/build/css/checkbox.png b/build/css/checkbox.png deleted file mode 100755 index 7938d8d..0000000 Binary files a/build/css/checkbox.png and /dev/null differ diff --git a/build/css/common.css b/build/css/common.css deleted file mode 100755 index 9ef904d..0000000 --- a/build/css/common.css +++ /dev/null @@ -1,307 +0,0 @@ -/* begin PostIcons, PostFooterIcons */ -.art-postfootericons, -.art-postfootericons a, -.art-postfootericons a:link, -.art-postfootericons a:visited, -.art-postfootericons a:hover -{ - font-family: Times New Roman, Times-Serif; - font-size: 12px; - text-decoration: none; - letter-spacing: 1px; - color: #303030; -} -.imag { - background: url("../../../images/ui-bg_gloss-wave_35_f6a828_500x100.png") repeat scroll 0 0 transparent; - border: 1px solid #E78F08; - border-radius: 5px 5px 5px 5px; - float: none; - margin-bottom: 15px; - margin-left: 0; -} -.imag1 { - background: url("../../../images/ui-bg_gloss-wave_35_f6a828_500x100.png") repeat scroll 0 0 transparent; - border-radius: 5px 5px 5px 5px; - float: none; - margin-bottom: 15px; - margin-left: 0; - float:right; -} -.art-postfootericons -{ - padding: 1px; -} - -.art-postfootericons a, .art-postfootericons a:link -{ - font-style: normal; - font-weight: bold; - color: #1F5775; -} - -.art-postfootericons a:visited, .art-postfootericons a.visited -{ - color: #4A4A4A; -} - -.art-postfootericons a:hover, .art-postfootericons a.hover -{ - text-decoration: underline; - color: #171717; -} -/* end PostIcons, PostFooterIcons */ - -/* begin Footer */ -.art-footer -{ - position: relative; - margin-top:0; - margin-bottom:0; - width: 100%; -} - -.art-footer1 { - margin-bottom: 0; - margin-top: -15px; - position: relative; - width: 103%; -} -.art-footer2 { - margin-bottom: 0; - margin-top: -15px; - position: relative; - width: 1345.5px; -} -.art-footer3 { - margin-bottom: 0; - margin-top: -56px; - position: relative; - width: 1345.5px; - top: 62px; -} -.art-footer-b -{ - position: absolute; - left:20px; - right:20px; - bottom:0; - height:50px; - background-image: url('../images/footer_b.png'); -} -.art-footer-b2 -{ - position: absolute; - left:20px; - right:20px; - bottom:0; - height:50px; - background-image: url('../images/footer_b.png'); - width: 1309px; -} -.art-footer-b3 -{ - position: absolute; - left:20px; - right:20px; - bottom:0; - height:50px; - background-image: url('../images/footer_b.png'); - width: 1309px; -} -.art-footer-r, .art-footer-l -{ - position: absolute; - height:50px; - background-image: url('../images/footer_s.png'); - bottom: 0; -} - -.art-footer-l -{ - left: 0; - width:20px; -} - -.art-footer-r -{ - right: 0; - width:40px; - clip: rect(auto, auto, auto, 20px); -} -.art-footer-r3 -{ - right: 0; - left: 1307px; - width:40px; - clip: rect(auto, auto, auto, 20px); -} -.art-footer-t -{ - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 50px; - background: url("../images/header.png") repeat-x scroll 50% 50% #F6A828; -} -.art-footer-t2 -{ - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 50px; - background: url("../images/header.png") repeat-x scroll 50% 50% #F6A828; - width: 1345px; -} -.art-footer-t3 -{ - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 50px; - background: url("../images/header.png") repeat-x scroll 50% 50% #F6A828; - width: 1345px; -} -.art-footer-body -{ - position:relative; - padding: 15px; -} -.art-footer-body3 -{ - position:relative; - padding: 15px; - width: 1315px; - top: 0px; -} -.art-footer-body2 -{ - position:relative; - padding: 15px; - width: 1315px; -} -.art-footer-body1 -{ - position:relative; - padding: 15px; - margin-top: 58px; -} - -.art-footer-body .art-rss-tag-icon -{ - position: absolute; - left: 6px; - bottom:15px; - z-index:1; -} - -.art-rss-tag-icon -{ - display: block; - background-image: url('../images/rssicon.png'); - background-position: center right; - background-repeat: no-repeat; - height: 25px; - width: 32px; - cursor: default; -} - -.art-rss-feedback-icon -{ - display: block; - background-image: url('../images/feedback.png'); - background-position: center right; - background-repeat: no-repeat; - height: 30px; - width: 100px; - cursor: default; - float: right; -} - -.art-footer-text p -{ - padding:0; - margin:0; - text-align: center; -} - -.art-footer-text, -.art-footer-text a, -.art-footer-text a:link, -.art-footer-text a:visited, -.art-footer-text a:hover, -.art-footer-text td, -.art-footer-text th, -.art-footer-text caption -{ - color: #102D3C; - font-size: 12px; -} - -.art-footer-text -{ - min-height: 50px; - padding-left: 10px; - padding-right: 10px; - text-align: -moz-center; -} - -.art-footer-text a, -.art-footer-text a:link -{ - color: #1B4B65; - font-style: normal; - font-weight: bold; - text-decoration: none; -} - -.art-footer-text a:visited -{ - color: #141414; -} - -.art-footer-text a:hover -{ - color: #09BDDC; - text-decoration: underline; -} - -div.art-footer img -{ -/* WARNING do NOT collapse this to 'border' - inheritance! */ - border-color: #BABABA; - border-style: solid; - margin: 7px; -}/* end Footer */ - -/* begin PageFooter */ -.art-page-footer, -.art-page-footer a, -.art-page-footer a:link, -.art-page-footer a:visited, -.art-page-footer a:hover -{ - font-family: Arial; - font-size: 10px; - letter-spacing: normal; - word-spacing: normal; - font-style: normal; - font-weight: normal; - text-decoration: underline; - color: #404040; -} - -.art-page-footer -{ - padding: 1em; - text-align: center; - text-decoration: none; - color: #404040; -} -/* end PageFooter */ - - -.imag{float:right;} - diff --git a/build/css/css3.css b/build/css/css3.css deleted file mode 100755 index 1713413..0000000 --- a/build/css/css3.css +++ /dev/null @@ -1,171 +0,0 @@ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{ margin:0; padding:0;} -table{ border-collapse:collapse; border-spacing:0;} -fieldset,img{ border:0;} -address,caption,cite,code,dfn,th,var{ font-style:normal; font-weight:normal;} -ol,ul{ list-style:none;} -caption,th{ text-align:left;} -h1,h2,h3,h4,h5,h6{ font-size:100%; font-weight:normal;} -q:before,q:after{ content:'';} -abbr,acronym{ border:0;} - - -a{ - color:#333; - text-decoration:underline; -} -form{ - background:#f7f7f7; - background:-moz-linear-gradient(90deg, #ccc, #fff); /* Firefox */ - background:-webkit-gradient(linear, left top, left bottom, from(#fff), to(#ccc)); /* Webkit */ - border:1px solid #aaa; - -moz-border-radius:10px; - -webkit-border-radius:10px; - -moz-box-shadow:0 0 15px #aaa; - -webkit-box-shadow:0 0 15px #aaa; - margin:60px auto 0; - padding:20px; - width:440px; -} -h1{ - border-bottom:1px solid #ccc; - font-size:11px; - font-weight:bold; - letter-spacing:2px; - margin-bottom:20px; - text-transform:uppercase; -} -form p{ - margin-bottom:20px; -} -form p:last-child{ /* Slecteur avanc pour slectionner le dernier paragraphe du formulaire */ - margin-bottom:0; -} -label{ - cursor: pointer; - display: block; - float: left; - font-size: 13px; - font-weight: bold; - line-height: 17px; - margin-bottom: 5px; - margin-left: 5px; - width: 132px; -} -form p:hover label{ - color:#0459b7; -} -form p:hover label:after{ - content:" "; -} -input[type=text], -input[type=password]{ - background: rgba(255, 255, 255, 0.9); - background:-moz-linear-gradient(90deg, #fff, #eee); /* Firefox */ - background:-webkit-gradient(linear, left top, left bottom, from(#eee), to(#fff), color-stop(0.2, #fff)); /* Webkit */ - border:1px solid #aaa; - -moz-border-radius:3px; - -webkit-border-radius:3px; - -moz-box-shadow:0 0 3px #aaa; - -webkit-box-shadow:0 0 3px #aaa; - padding:5px; - height: 20px; - margin-left: 5px; -} -input[type=text]:focus, -input[type=password]:focus{ - border-color:#093c75; - -moz-box-shadow:0 0 3px #0459b7; - -webkit-box-shadow:0 0 3px #0459b7; - outline:none; /* Pour enlever le contour jaune lorsque l'on slectionne un input dans Chrome */ -} -select{ - cursor: pointer; - margin: 5px; - padding: 3px; - width: 100px; - -moz-box-shadow:0 0 3px #aaa; - -webkit-box-shadow:0 0 3px #aaa; -} -select:active, -select:focus{ - border:1px solid #093c75; - -moz-box-shadow:0 0 3px #0459b7; - -webkit-box-shadow:0 0 3px #0459b7; - outline:none; -} -input[type=submit], -a.submit{ - background:#ddd; - background:-moz-linear-gradient(90deg, #0459b7, #08adff); /* Firefox */ - background:-webkit-gradient(linear, left top, left bottom, from(#08adff), to(#0459b7)); /* Webkit */ - border:1px solid #093c75; - -moz-border-radius:3px; - -webkit-border-radius:3px; - -moz-box-shadow:0 1px 0 #fff; - -webkit-box-shadow:0 1px 0 #fff; - color:#fff; - cursor:pointer; - font-family:Arial,sans-serif; - font-size:12px; - font-weight:bold; - margin-left:120px; - padding:5px 10px; - text-decoration:none; - text-shadow:0 1px 1px #333; - text-transform:uppercase; -} -input[type=submit]:hover, -a.submit:hover{ - background:#eee; - background:-moz-linear-gradient(90deg, #067cd3, #0bcdff); - background:-webkit-gradient(linear, left top, left bottom, from(#0bcdff), to(#067cd3)); - border-color:#093c75; - text-decoration:none; -} -input[type=submit]:active, -input[type=submit]:focus, -a.submit:active, -a.submit:focus{ - background:#ccc; - background:-moz-linear-gradient(90deg, #0bcdff, #067cd3); - background:-webkit-gradient(linear, left top, left bottom, from(#067cd3), to(#0bcdff)); - border-color:#093c75; - outline:none; -} -#options{ - margin-bottom:20px; -} -#options p{ - display:none; -} -#options .show{ - display:block; -} -#options:target .show{ - display:none; -} -#options .hide{ - display:none; -} -#options:target .hide{ - display:block; -} -#options:target p{ - display:block; -} -#finish{ - background:rgba(65, 166, 42, 0.2); - border:2px solid #41a62a; - -moz-border-radius:3px; - -webkit-border-radius:3px; - display:none; - padding:5px 10px; -} -#finish:target{ - display:block; -} -#credits{ - font-size:11px; - margin-top:20px; - text-align:center; -} diff --git a/build/css/dcslab.css b/build/css/dcslab.css deleted file mode 100755 index 802de4b..0000000 --- a/build/css/dcslab.css +++ /dev/null @@ -1,941 +0,0 @@ -html, body { - background: #5ed0bd; - width: 100%; - height: 100%; - padding: 0; - margin: 0; - overflow: auto; /* when page gets too small */ - -} - -.outputOfIn{ - position: absolute; - top: 25px; - left: 70px; - width:auto; - height:auto; - padding:5px; - color:#FFF; - font-size: 15px; -} - -.outputOfInAO{ - color: #FFFFFF; - font-size: 15px; - height: auto; - left: 65px; - padding: 5px; - position: absolute; - top: 25px; - width: auto; -} - -.outputOfOut{ - position: absolute; - top: 15px; - left: 65px; - width:auto; - height:auto; - padding:5px; - color:#FFF; - font-size: 15px; -} - -.inputBox{ - position: absolute; - top: 25px; - left: 15px; - width:auto; - height:auto; - padding:5px; - color:#FFF; - font-size: 15px; -} - -.inputBoxLogicOne{ - position: absolute; - top: 20px; - left: 15px; - font-size: 15px; - width:auto; - height:auto; - color:#FFF; -} - -.inputBoxLogicTwo{ - position: absolute; - top: 40px; - left: 15px; - font-size: 15px; - width:auto; - height:auto; - color:#FFF; -} - -.outputBoxLogic{ - position: absolute; - top: 30px; - left: 70px; - width:auto; - height:auto; - color:#FFF; - font-size: 20px; -} - -#playgraound{ - width:100%; - height:auto; -} - -#container { - background: #DFD9C3; - height:100%; - margin: 0 auto; - width: 100%; - max-width: 100%; - min-width: 700px; - _width: 700px; /* min-width for IE6 */ -} - -.pane { - display: none; /* will appear when layout inits*/ -} - -.newbox{ - background-color: #EEEEEF; - border: 1px solid #346789; - border-radius: 0.5em 0.5em 0.5em 0.5em; - box-shadow: 2px 2px 19px #AAAAAA; - color: black; - font-family: helvetica; - font-size: 0.9em; - line-height: 5em; - opacity: 0.8; - padding: 0.5em; - position: absolute; - text-align: center; - z-index: 20; - position:absolute; - margin-top:2px; - margin-left:2px; - width:110px; - height:110px; -} - -.newbox:hover{ - box-shadow: 2px 2px 19px #444444; - opacity: 0.6; -} - -.newboxanalog{ - background-color: #EEEEEF; - border: 1px solid #346789; - border-radius: 0.5em 0.5em 0.5em 0.5em; - box-shadow: 2px 2px 19px #AAAAAA; - color: black; - font-family: helvetica; - font-size: 0.9em; - line-height: 5em; - opacity: 0.8; - padding: 0.5em; - position: absolute; - text-align: center; - z-index: 20; - position:absolute; - margin-top:2px; - margin-left:2px; - width:150px; - height:110px; -} - -.newboxanalog:hover{ - box-shadow: 2px 2px 19px #444444; - opacity: 0.6; -} - -.newboxTimer{ - background-color: #EEEEEF; - border: 1px solid #346789; - border-radius: 0.5em 0.5em 0.5em 0.5em; - box-shadow: 2px 2px 19px #AAAAAA; - color: black; - font-family: helvetica; - font-size: 0.9em; - line-height: 5em; - opacity: 0.8; - padding: 0.5em; - position: absolute; - text-align: center; - z-index: 20; - position:absolute; - margin-top:2px; - margin-left:2px; - width:110px; - height:120px; -} - -.newboxCTR{ - background-color: #EEEEEF; - border: 1px solid #346789; - border-radius: 0.5em 0.5em 0.5em 0.5em; - box-shadow: 2px 2px 19px #AAAAAA; - color: black; - font-family: helvetica; - font-size: 0.9em; - line-height: 5em; - opacity: 0.8; - padding: 0.5em; - position: absolute; - text-align: center; - z-index: 20; - position:absolute; - margin-top:2px; - margin-left:2px; - width:110px; - height:120px; -} - -.newboxPID{ - background-color: #EEEEEF; - border: 1px solid #346789; - border-radius: 0.5em 0.5em 0.5em 0.5em; - box-shadow: 2px 2px 19px #AAAAAA; - color: black; - font-family: helvetica; - font-size: 0.9em; - padding: 0.5em; - opacity: 0.8; - position: absolute; - text-align: center; - z-index: 20; - position:absolute; - margin-top:2px; - margin-left:2px; - width:120px; - height:140px; - } - -.outputBoxinput{ - position: absolute; - top: 40.5px; - left: 61px; - background-color: #F6FF97; - width:28px; - height:8px; - padding:5px; -} - -body { - font-family: Verdana, helvetica, arial, sans-serif; - font-size: 68.75%; - background: #fff; - color: #333; - -} - -#treeview{ - width:95%; - height:49%; - overflow:auto; - background-color:#DFD9C3; - background: none repeat scroll 0 0 rgba(255, 255, 255, 0.3); - border-color: rgba(255, 255, 255, 0.6); - border-radius: 5px 5px 5px 5px; - border-style: solid; - border-width: 2px; - line-height: 15px; -} - -#properties{ - position:relative; - top:5px; - width:95%; - height:49%; - overflow:auto; - display:block; - background-color:#DFD9C3; - background: none repeat scroll 0 0 rgba(255, 255, 255, 0.9); - border-color: rgba(255, 255, 255, 0.6); - border-radius: 5px 5px 5px 5px; - border-style: solid; - border-width: 2px; - line-height: 15px; -} - -#propertiesC{ - position:relative; - top:5px; - width:95%; - height:auto; - overflow:auto; - display:block; - -} - -.ui-layout-pane-north{ - height:30px; - background-color: url(../images/ui-bg_gloss-wave_35_f6a828_500x100.png) repeat; - padding-top:0; - color:#FFF; -} - -.ui-layout-pane-north h2{ - color: #1E1E1E; - float: left; - font-size: 22px; - margin-top: 50px; -} - -.ui-layout-center{ - background-color:#444444; -} - -.ui-layout-east{ - background-color:#444444; -} - -.ui-layout-west{ - background-color:#444444; -} - -.ui-layout-south{ - background-color: #444444; - color:#000; -} - -a{ - text-decoration:none; - color:#1a1a1a; -} - -a:hover{ - color:red; -} - -#blockUnit{ - width:100%; - padding-top:2px; -} - -#content{ - display:inline; -} -button{ - margin-bottom:2px; - border-top-style:solid; - border-top-color:#327E04; - border-top-width:2px; - border-bottom-style:solid; - border-bottom-color:#327E04; - border-bottom-width:2px; - border-left-style:solid; - border-left-color:#327E04; - border-left-width:5px; - border-right-style:solid; - border-right-color:#327E04; - border-right-width:2px; - height:22px; - color:#FFF; -} - -button:hover{ - -} -.setup_button{ - background: #77bb00 url(../images/applications_system.png) no-repeat top; - background-position: 8% 50%; - width: 83px; - height: 30px; - display: inline-block; - z-index:1000; - font-size:12px; - font-family:Tahoma,sans-serif; - margin-left:20px; - text-align:right; - font-weight:bold; - color:#FFF; -} - -.setup_button:hover{ - background: #444444 url(../images/applications_system.png) no-repeat top; - background-position: 8% 50%; - color:#327E04; -} -.run_button{ - background: #77bb00 url(../images/gnome_system_run.png) no-repeat top; - background-position: 8% 50%; - width: 78px; - height: 30px; - display: inline-block; - z-index:1000; - font-size:12px; - font-family:Tahoma,sans-serif; - margin-left: -5px; - text-align:right; - font-weight:bold; - color:#FFF; -} -.run_button:hover{ - background: #444444 url(../images/gnome_system_run.png) no-repeat top; - background-position: 8% 50%; - color:#327E04; -} -.clear_button{ - background: #77bb00 url(../images/edit_clear.png) no-repeat top; - background-position: 8% 50%; - width: 80px; - height: 30px; - display: inline-block; - z-index:1000; - font-size:12px; - font-family:Tahoma,sans-serif; - margin-left:-5px; - text-align:right; - font-weight:bold; - color:#FFF; -} -.clear_button:hover{ - background: #444444 url(../images/edit_clear.png) no-repeat top; - background-position: 8% 50%; - color:#327E04; -} -.reload_button{ - background: #77bb00 url(../images/refresh.png) no-repeat top; - background-position: 8% 50%; - width: 85px; - height: 30px; - display: inline-block; - z-index:1000; - margin-top:3px; - font-size:12px; - font-family:Tahoma,sans-serif; - margin-left:-5px; - text-align:right; - font-weight:bold; - color:#FFF; -} -.reload_button:hover{ - background: #444444 url(../images/refresh.png) no-repeat top; - background-position: 8% 50%; - color:#327E04; -} -.graph_button{ - background: #77bb00 url(../images/graph.png) no-repeat top; - background-position: 8% 50%; - width: 80px; - height: 30px; - display: inline-block; - z-index:1000; - margin-top:3px; - font-size:12px; - font-family:Tahoma,sans-serif; - margin-left:-5px; - text-align:right; - font-weight:bold; - color:#FFF; -} -.graph_button:hover{ - background: #444444 url(../images/graph.png) no-repeat top; - background-position: 8% 50%; - color:#327E04; -} -.load_graph_button{ - background: #77bb00 url(../images/3d_bar_chart.png) no-repeat top; - background-position: 8% 50%; - width: 85px; - height: 30px; - display: inline-block; - z-index:1000; - margin-top:3px; - font-size:12px; - font-family:Tahoma,sans-serif; - margin-left:-5px; - text-align:right; - font-weight:bold; - color:#FFF; -} -.load_graph_button:hover{ - background: #444444 url(../images/3d_bar_chart.png) no-repeat top; - background-position: 8% 50%; - color:#327E04; -} -.switch_button{ - background: #77bb00 url(../images/gnome_session_switch.png) no-repeat top; - background-position: 8% 50%; - width: 90px; - height: 30px; - display: inline-block; - z-index:1000; - margin-top:3px; - font-size:12px; - font-family:Tahoma,sans-serif; - margin-left:-5px; - text-align:right; - font-weight:bold; - border-right-width:5px; - color:#FFF; -} -.switch_button:hover{ - background: #444444 url(../images/gnome_session_switch.png) no-repeat top; - background-position: 8% 50%; - color:#327E04; -} -button.groovybutton -{ - margin-top:5px; - font-size:12px; - font-family:Tahoma,sans-serif; - width:82px; - background: #77bb00; - border-right-width:5px; - height:22px; - padding-bottom:2px; - margin-left: 40px; -} - -.groovybutton:hover -{ - height:22px; - font-size:11px; - font-family:Tahoma,sans-serif; - width:82px; - color:#327E04; - background: #444444; - font-weight:bold; -} - -.groovyybutton{ - height:22px; - font-size:11px; - font-family:Tahoma,sans-serif; - width:150px; - background-color:#CCEEEE; - border-top-style:solid; - border-top-color:#99AA99; - border-top-width:2px; - border-bottom-style:solid; - border-bottom-color:#99AA99; - border-bottom-width:2px; - border-left-style:solid; - border-left-color:#BBCCBB; - border-left-width:5px; - border-right-style:solid; - border-right-color:#BBCCBB; - border-right-width:5px; - font-weight:bold; - margin-left:25px; -} -.groovyyybutton{ - height:22px; - font-size:11px; - font-family:Tahoma,sans-serif; - width:60px; - background-color:#CCEEEE; - border-top-style:solid; - border-top-color:#99AA99; - border-top-width:2px; - border-bottom-style:solid; - border-bottom-color:#99AA99; - border-bottom-width:2px; - border-left-style:solid; - border-left-color:#BBCCBB; - border-left-width:5px; - border-right-style:solid; - border-right-color:#BBCCBB; - border-right-width:5px; - margin-left:2px; - margin-right:2px; -} -.groovyyybutton:hover{ - height:22px; - font-size:11px; - font-family:Tahoma,sans-serif; - width:60px; - background-color:#CCEEEE; - border-top-style:solid; - border-top-color:#99AA99; - border-top-width:2px; - border-bottom-style:solid; - border-bottom-color:#99AA99; - border-bottom-width:2px; - border-left-style:solid; - border-left-color:#BBCCBB; - border-left-width:5px; - border-right-style:solid; - border-right-color:#BBCCBB; - border-right-width:5px; - font-weight:bold; - margin-left:2px; - margin-right:2px; -} - - -#panel{ - position:static; - width:auto; - height: 30px; - padding-bottom:5px; - top:100px; - left: 270px; - background-color: transparent; - z-index: 99999; - margin-left:200px; -} - -#workspace{ - position:relative; - width:99.99%; - height:93.1%; - background-color:transparent; - overflow:auto; - -} - -#middle{ - position:relative; - width:auto; - border: 2px solid #000; - height:99%; - background:#DFD9C3 url(../images/dynamicAnchorBg.jpg); - -moz-border-radius: 5px; - border-radius: 5px; -} - -#change{ - position:absolute; - margin:0; -} - -table -{ - margin:2px; - border-collapse:collapse; - width:98%; - height:200px; - font-weight:bold; -} -table tr td -{ - padding-left:5px; -} - -.editable{ - text-align:left; - padding-left:2px; -} - -.groovy -{ - margin-left:1px; - font-family:Tahoma,sans-serif; - width:50px; - background-color:#CCDDCC; - border-top-style:solid; - border-top-color:#99AA99; - border-top-width:2px; - border-bottom-style:solid; - border-bottom-color:#99AA99; - border-bottom-width:2px; - border-left-style:solid; - border-left-color:#BBCCBB; - border-left-width:5px; - border-right-style:solid; - border-right-color:#BBCCBB; - border-right-width:5px; - height:22px; - font-weight:bold; - } - -.groovy:hover -{ - margin-left:1px; - padding-top:1px; - padding-bottom:5px; - font-family:Tahoma,sans-serif; - width:50px; - background-color:#CCDDEE; - border-top-style:solid; - border-top-color:#99AA99; - border-top-width:2px; - border-bottom-style:solid; - border-bottom-color:#99AA99; - border-bottom-width:2px; - border-left-style:solid; - border-left-color:#BBCCBB; - border-left-width:5px; - border-right-style:solid; - border-right-color:#BBCCBB; - border-right-width:5px; - height:22px; - font-weight:bold; -} - -h4{ - margin-left:5px; - text-align:center; -} - -#result{ - position:relative; - margin-top:5px; - width:100%; - display:block; - height:160px; - overflow:auto; - background-color:#DFD9C3; - -moz-border-radius: 5px; - border-radius: 5px; - border: 2px solid #000; -} - -._jsPlumb_connector { - z-index:0; - -} - - -._jsPlumb_endpoint { -border:1px solid green; -} -._jsPlumb_overlay { -border:1px solid yellow; -} - -#blockDetails{ - background-color:#F00; -} - - -/* class for extra div that will attached to the div*/ - -/*timer class*/ - -.inputBoxTimer{ - position: absolute; - color: #FFFFFF; - font-size: 15px; - top: 25px; - left: 15px; - /*background-color: #F6FF97;*/ - width:auto - height:8px; - padding:5px; -} - -.inputBoxTimer:hover{ - position: absolute; - color: #FFFFFF; - font-size: 15px; - top: 35px; - left: 10px; - background-color: #F6FF97; - width:auto; - height:8px; - padding:5px; - -} - -.outputBoxTimer{ - position: absolute; - color: #FFFFFF; - font-size: 15px; - top: 25px; - left: 75px; - /*background-color: #F6FF97;*/ - width:auto; - height:8px; - padding:5px; -} - -.timerValue{ - position: absolute; - color: #FFFFFF; - font-size: 15px; - top: 65px; - left: 20px; - /*background-color: #F6FF97;*/ - width:auto; - height:8px; - padding:1px; -} - -.presetTimeValue{ - color: #FFFFFF; - font-size: 15px; - height: 8px; - left: 40px; - padding: 1px; - position: absolute; - top: 65px; - width: auto; -} - -.resetCounter{ - position: absolute; - top: 107px; - left: 65px; - background-color: #F6FF97; - width:50px; - height:auto; - color: #000; - border: 1px solid #346789; - border-width: 2px 5px 2px 2px; - -} - -.inputBoxCounter{ - background-color: transparent; - color: white; - font-size: 14px; - height: 8px; - left: 10px; - padding: 5px; - position: absolute; - top: 15px; - width: 30px; -} -.outputBoxCounter{ - background-color: transparent; - color: white; - font-size: 14px; - height: 8px; - left: 60px; - padding: 5px; - position: absolute; - top: 15px; - width: 30px; -} -.presetValue{ - position: absolute; - top: 40px; - left: 10px; - background-color:transparent; - width:30px; - height:8px; - padding:5px; - color: white; - font-size: 14px; -} -.counterValue{ - position: absolute; - top: 40px; - left: 60px; - background-color:transparent; - width:30px; - height:8px; - padding:5px; - color: white; - font-size: 14px; -} -.preset{ - position: absolute; - top: 107px; - left: 5px; - background-color: #F6FF97; - width:60px; - height:auto; - color: #000; - border: 1px solid #346789; - border-width: 2px 2px 2px 5px; -} - -.presetTimer{ - position: absolute; - top: 107px; - left: 5px; - background-color: #F6FF97; - width: 110px; - height:auto; - color: #000; - border: 1px solid #346789; - border-width: 2px 5px 2px 5px; -} -.choose{ - width:70px; -} - -table tr { - width : 140px; -} - -.outputPID{ - position: absolute; - top: 40px; - left: 60px; - width:auto; - height:auto; - padding:5px; - color:#FFF; - font-size: 15px; -} - -.inputPID{ - position: absolute; - top: 45px; - left: 15px; - width:auto; - height:auto; - padding:5px; - color:#FFF; - font-size: 15px; -} - -#inputValue{ - margin-left:5px; -} - -button.graphbutton -{ - margin-top:5px; - font-size:12px; - font-family:Tahoma,sans-serif; - width:82px; - background-color:#CCDDCC; - border-top-style:solid; - border-top-color:#99AA99; - border-top-width:2px; - border-bottom-style:solid; - border-bottom-color:#99AA99; - border-bottom-width:2px; - border-left-style:solid; - border-left-color:#BBCCBB; - border-left-width:5px; - border-right-style:solid; - border-right-color:#BBCCBB; - border-right-width:5px; - height:22px; - padding-bottom:2px; -} - -.graphbutton:hover -{ - height:22px; - font-size:11px; - font-family:Tahoma,sans-serif; - width:82px; - background-color:#CCEEEE; - border-top-style:solid; - border-top-color:#99AA99; - border-top-width:2px; - border-bottom-style:solid; - border-bottom-color:#99AA99; - border-bottom-width:2px; - border-left-style:solid; - border-left-color:#BBCCBB; - border-left-width:5px; - border-right-style:solid; - border-right-color:#BBCCBB; - border-right-width:5px; - font-weight:bold; -} - -#extrapanel{ - position:relative; - left:0px; -} - -#header{ - background-image: url("../images/ui-bg_gloss-wave_35_f6a828_500x100.png") repeat; -} - - diff --git a/build/css/default.css b/build/css/default.css deleted file mode 100755 index 93526bb..0000000 --- a/build/css/default.css +++ /dev/null @@ -1,279 +0,0 @@ -/*-----------------------------------------------------------*/ - -/* style.css contains a reset, font normalization and some base - styles. - - credit is left where credit is due. - additionally, much inspiration was taken from these projects: - * yui.yahooapis.com/2.8.1/build/base/base.css - * camendesign.com/design/ - * praegnanz.de/weblog/htmlcssjs-kickstart -*/ - -/* - html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded - + HTML5 baseline) - v1.4 2009-07-27 | Authors: Eric Meyer & Richard Clark - html5doctor.com/html-5-reset-stylesheet/ -*/ - -html, body, div, span, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -abbr, address, cite, code, -del, dfn, em, img, ins, kbd, q, samp, -small, strong, sub, sup, var, -b, i, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, figure, footer, header, -hgroup, menu, nav, section, menu, -time, mark, audio, video { - margin:0; - padding:0; - border:0; - outline:0; - font-size:100%; - vertical-align:baseline; - background:transparent; -} - -article, aside, figure, footer, header, -hgroup, nav, section { display:block; } - -nav ul { list-style:none; } - -blockquote, q { quotes:none; } - -blockquote:before, blockquote:after, -q:before, q:after { content:''; content:none; } - -a { margin:0; padding:0; font-size:100%; - vertical-align:baseline; background:transparent; } - -ins { background-color:#ff9; color:#000; text-decoration:none;} - -mark { background-color:#ff9; color:#000; font-style:italic; - font-weight:bold; } - -del { text-decoration: line-through; } - -abbr[title], dfn[title] { border-bottom:1px dotted #000; -cursor:help; } - -/* tables still need cellspacing="0" in the markup */ -table { border-collapse:collapse; border-spacing:0; } - -hr { display:block; height:1px; border:0; - border-top:1px solid #ccc; margin:1em 0; padding:0; } - -input, select { vertical-align:middle; } -/* END RESET CSS */ - - -/* -fonts.css from the YUI Library: developer.yahoo.com/yui/ -Please refer to developer.yahoo.com/yui/fonts/ for font sizing -percentages - -There are three custom edits: - * remove arial, helvetica from explicit font stack - * make the line-height relative and unit-less - * remove the pre, code styles -*/ - -body { font:13px sans-serif; *font-size:small; *font:x-small; - line-height:1.22; } - -table { font-size:inherit; font:100%; } - -select, input, textarea { font:99% sans-serif; } - - -/* normalize monospace sizing - en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11# - Teletype_style_fix_for_Chrome -*/ -pre, code, kbd, samp { font-family: monospace, sans-serif; } - - - -/* - * minimal base styles - */ - - -/* #444 looks better than black: twitter.com/H_FJ/statuses/ - 11800719859 */ -body, select, input, textarea { color:#444; } - -/* Headers (h1,h2,etc) have no default font-size or margin, - you'll want to define those yourself. */ - -/* www.aestheticallyloyal.com/public/optimize-legibility/ */ - -h1,h2,h3,h4,h5,h6 { font-weight: bold; - text-rendering: optimizeLegibility; } - -/* maxvoltar.com/archive/-webkit-font-smoothing */ -html { -webkit-font-smoothing: antialiased; } - - -/* Accessible focus treatment: people.opera.com/patrickl/ - experiments/keyboard/test */ -a:hover, a:active { outline: none; } - -a, a:active, a:visited { color:#607890; } -a:hover { color:#036; } - - -ul { margin-left:30px; } -ol { margin-left:30px; list-style-type: decimal; } - -small { font-size:85%; } -strong, th { font-weight: bold; } - -td, td img { vertical-align:top; } - -sub { vertical-align: sub; font-size: smaller; } -sup { vertical-align: super; font-size: smaller; } - -pre { - padding: 15px; - - /* www.pathf.com/blogs/2008/05/formatting-quoted-code-in- - blog-posts-css21-white-space-pre-wrap/ */ - white-space: pre; /* CSS2 */ - white-space: pre-wrap; /* CSS 2.1 */ - white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */ - word-wrap: break-word; /* IE */ -} - -/* align checkboxes, radios, text inputs with their label - by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css */ -input[type="radio"] { vertical-align: text-bottom; } -input[type="checkbox"] { vertical-align: bottom; - *vertical-align: baseline; } -.ie6 input { vertical-align: text-bottom; } - -/* hand cursor on clickable input elements */ -label, input[type=button], input[type=submit], - button { cursor: pointer; } - - -/* These selection declarations have to be separate. - No text-shadow: twitter.com/miketaylr/status/12228805301 - Also: hot pink. */ -/* Commented by Chandan on 2013-09-02 to restore default - * color for selected text instead of HOT PINK - * -::-moz-selection{ background: #FF5E99; color:#fff; - text-shadow: none; } -::selection { background:#FF5E99; color:#fff; - text-shadow: none; } -*/ - -/* j.mp/webkit-tap-highlight-color */ -a:link { -webkit-tap-highlight-color: #FF5E99; } - - -/* always force a scrollbar in non-IE */ -html { overflow-y: scroll; } - -/* make buttons play nice in IE: - www.viget.com/inspire/styling-the-button-element-in-internet - -explorer/ */ -button { width: auto; overflow: visible; } - -/* bicubic resizing for non-native sized IMG: - code.flickr.com/blog/2008/11/12/on-ui-quality-the-little- - things-client-side-image-resizing/ */ -.ie7 img { -ms-interpolation-mode: bicubic; } - - - -/* - Non-semantic helper classes -*/ - -/* for image replacement */ -.ir { display:block; text-indent:-999em; overflow:hidden; - background-repeat: no-repeat; } - -/* Hide for both screenreaders and browsers - css-discuss.incutio.com/wiki/Screenreader_Visibility */ -.hidden { display:none; visibility:hidden; } - -/* Hide only visually, but have it available for screenreaders - www.webaim.org/techniques/css/invisiblecontent/ - Solution from: j.mp/visuallyhidden - Thanks Jonathan Neal!*/ -.visuallyhidden { position:absolute !important; - clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ - clip: rect(1px, 1px, 1px, 1px); } - -/* Hide visually and from screenreaders, but maintain layout */ -.invisible { visibility: hidden; } - -/* >> The Magnificent CLEARFIX << */ -.clearfix:after { content: "."; display: block; height: 0; -clear: both; visibility: hidden; } -.clearfix { display: inline-block; } -* html .clearfix { height: 1%; } /* Hides from IE-mac \*/ -.clearfix { display: block; } - -/* - print styles inlined to avoid required HTTP connection - www.phpied.com/delay-loading-your-print-css/ -*/ -@media print { - * { background: transparent !important; -color: #444 !important; text-shadow: none; } - - a, a:visited { color: #444 !important; - text-decoration: underline; } - - a:after { content: " (" attr(href) ")"; } - - abbr:after { content: " (" attr(title) ")"; } - - .ir a:after { content: ""; } /*Don't show links for images*/ - - pre, blockquote { border: 1px solid #999; - page-break-inside: avoid; } - - img { page-break-inside: avoid; } - - @page { margin: 0.5cm; } - - p, h2, h3 { orphans: 3; widows: 3; } - - h2, h3{ page-break-after: avoid; } -} - - - -/* - * Media queries for responsive design - */ - -@media all and (orientation:portrait) { - /* Style adjustments for portrait mode goes here */ - -} - -@media all and (orientation:landscape) { - /* Style adjustments for landscape mode goes here */ - -} - -/* Grade-A Mobile Browsers (Opera Mobile, iPhone Safari, Android Chrome) - Consider this: www.cloudfour.com/css-media-query-for-mobile- - is-fools-gold/ */ -@media screen and (max-device-width: 480px) { - - - /* Prevent iOS, WinMobile from adjusting font size */ - html { -webkit-text-size-adjust:none; - -ms-text-size-adjust:none; } -} - diff --git a/build/css/dialog.css b/build/css/dialog.css deleted file mode 100755 index 772e23e..0000000 --- a/build/css/dialog.css +++ /dev/null @@ -1,130 +0,0 @@ -#dialog-pid { - width: 200px; - height: 300px; - margin: 20px; -} -#modeIDType { - position: relative; - left: 5px; -} -#modeType { - position: relative; - width: 100px; - left: 20px; -} -#typeconf { - position: relative; - left: 5px; - top: 60px; - padding-right: 20px; -} -#actiontype { - position: relative; - left: 5px; - top: 20px; - padding-right: 20px; -} -#controlType { - position: relative; - left: 5px; - top: 40px; - padding-right: 20px; -} -#done { - position: relative; - left: 5px; - top: 220px; -} -#check { - position: relative; - left: 5px; - top: 100px; -} -#required { - position: relative; - left: 5px; - top: 80px; -} -#pdValue { - position: relative; - left: 5px; - top: 50px; -} -label { - padding-left: 5px; - font-size: 12px; -} -#piValue { - height: 60px; - left: 5px; - position: relative; - top: 145px; -} -#controllerOutput { - position: relative; - margin-left: 5px; - margin-top: -16px; -} -#propbaise { - position: relative; - left: 11px; - height: 20px; - top: 80px; -} -#derivativeGain { - height: 20px; - left: 9px; - position: relative; - top: 95px; -} -#derivativeGainValue { - margin-left: 69px; - margin-top: 12px; -} -#intergalGainValue { - margin-left: 85px; -} -#intergalGain { - position: relative; - height: 24px; - top: 20px; -} -#controllerValue { - margin-left: 3px; -} -#time { - height: 20px; - left: 4px; - position: relative; - top: 150px; -} -#timeValuep { - margin-left: 120px; - margin-top: 18px; -} -#propbaiseValue { - margin-left: 47px; - margin-top: 4px; -} -#optionArea { - margin-left: 20px; -} -#placeholder { - width: 700px; - height: 400px; - margin-left: 20px; -} -#graphArea { - margin: 20px; -} -#actionconf { - font-weight: bold; -} -#rateValue { - margin-left: 146px; - margin-top: 18px; -} -#rate{ - margin-left: 4px; - margin-top: 170px; -} diff --git a/build/css/empty.png b/build/css/empty.png deleted file mode 100755 index 22e105d..0000000 Binary files a/build/css/empty.png and /dev/null differ diff --git a/build/css/gstyle_buttons.css b/build/css/gstyle_buttons.css deleted file mode 100755 index 8f70b3c..0000000 --- a/build/css/gstyle_buttons.css +++ /dev/null @@ -1,189 +0,0 @@ - -/*------------------------------------*\ - $WRAPPER -\*------------------------------------*/ -.buttons {/* Style as you wish (toolbar) */ -} -/* The Magnificent CLEARFIX */ -.buttons:before, .buttons:after { - content: "\0020"; - display: block; - height: 0; - visibility: hidden; -} -.buttons:after { - clear: both; -} -.buttons { - zoom: 1; -} -/* ------------------------ */ - - -/*------------------------------------*\ - $BUTTON -\*------------------------------------*/ -button { - text-decoration: none; - text-shadow: 0 1px 0 #fff; - font: bold 11px Helvetica, Arial, sans-serif; - color: #444; - line-height: 17px; - height: 18px; - display: inline-block; - float: left; - margin: 5px; - padding: 5px 6px 4px 6px; - background: #F3F3F3; - border: solid 1px #D9D9D9; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -webkit-transition: border-color .20s; - -moz-transition: border-color .20s; - -o-transition: border-color .20s; - transition: border-color .20s; - height: 29px !important; - cursor: pointer; -} -button:hover { - background: #F4F4F4; - border-color: #C0C0C0; - color: #333; -} -button:active { - border-color: #4D90FE; - color: #4D90FE; - -moz-box-shadow:inset 0 0 10px #D4D4D4; - -webkit-box-shadow:inset 0 0 10px #D4D4D4; - box-shadow:inset 0 0 10px #D4D4D4; -} -button.bluebtn { - border: 1px solid #3079ED !important; - background: #4B8DF8; - background: -webkit-linear-gradient(top, #4C8FFD, #4787ED); - background: -moz-linear-gradient(top, #4C8FFD, #4787ED); - background: -ms-linear-gradient(top, #4C8FFD, #4787ED); - background: -o-linear-gradient(top, #4C8FFD, #4787ED); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.bluebtn:hover { - border: 1px solid #2F5BB7 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #4D90FE, #357AE8); - background: -moz-linear-gradient(top, #4D90FE, #357AE8); - background: -ms-linear-gradient(top, #4D90FE, #357AE8); - background: -o-linear-gradient(top, #4D90FE, #357AE8); -} -button.greenbtn { - border: 1px solid #29691D !important; - background: #3A8E00; - background: -webkit-linear-gradient(top, #3C9300, #398A00); - background: -moz-linear-gradient(top, #3C9300, #398A00); - background: -ms-linear-gradient(top, #3C9300, #398A00); - background: -o-linear-gradient(top, #3C9300, #398A00); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.greenbtn:hover { - border: 1px solid #2D6200 !important; - background: #3F83F1; - background: -webkit-linear-gradient(top, #3C9300, #368200); - background: -moz-linear-gradient(top, #3C9300, #368200); - background: -ms-linear-gradient(top, #3C9300, #368200); - background: -o-linear-gradient(top, #3C9300, #368200); -} -button.redbtn { - border: 1px solid #D14836 !important; - background: #D64937; - background: -webkit-linear-gradient(top, #DC4A38, #D14836); - background: -moz-linear-gradient(top, #DC4A38, #D14836); - background: -ms-linear-gradient(top, #DC4A38, #D14836); - background: -o-linear-gradient(top, #DC4A38, #D14836); - -webkit-transition: border .20s; - -moz-transition: border .20s; - -o-transition: border .20s; - transition: border .20s; -} -button.redbtn:hover { - border: 1px solid #B0281A !important; - background: #D14130; - background: -webkit-linear-gradient(top, #DC4A38, #C53727); - background: -moz-linear-gradient(top, #DC4A38, #C53727); - background: -ms-linear-gradient(top, #DC4A38, #C53727); - background: -o-linear-gradient(top, #DC4A38, #C53727); -} -button.action:hover { - -moz-box-shadow: 0 1px 0px #DDD; - -webkit-box-shadow: 0 1px 0px #DDD; - box-shadow:iset 0 1px 0px #DDD; -} -button.action:active { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - border-color: #C6C6C6 !important; -} -button.bluebtn:active { - border-color: #2F5BB7 !important; -} -button.greenbtn:active { - border-color: #2D6200 !important; -} -button.redbtn:active { - border-color: #B0281A !important; -} -/*------------------------------------*\ - $BUTTON LABEL -\*------------------------------------*/ - button span.label { - display: inline-block; - float: left; - line-height: 17px; - height: 18px; - padding: 0 1px; - overflow: hidden; - color: #444; - -webkit-transition: color .20s; - -moz-transition: color .20s; - -o-transition: color .20s; - transition: color .20s; -} -button span.label { - line-height: 15px !important; -} -button:hover .label.bluebtn { - color: #7090C8; -} -button:hover .label.greenbtn { - color: #42B449; -} -button:hover .label.yellow { - color: #F7CB38; -} -button.bluebtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2F5BB7 !important; -} -button.greenbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #2D6200 !important; -} -button.redbtn .label { - color: #FFF !important; - text-shadow: 0 1px 0 #B0281A !important; -} -button.action .label { - padding: 0 17px !important; -} -button.action:active .label { - color: #333 !important; -} -button.bluebtn:active .label, button.greenbtn:active .label, button.redbtn:active .label { - color: #FFF !important; -} diff --git a/build/css/jquery-ui-1.8.12.custom.css b/build/css/jquery-ui-1.8.12.custom.css deleted file mode 100755 index 48241ac..0000000 --- a/build/css/jquery-ui-1.8.12.custom.css +++ /dev/null @@ -1,578 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 2.1; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100px; height: 100px; } - - -/* - * jQuery UI CSS Framework 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Calibri, Calibri-serif; font-size:16px; } -.ui-widget .ui-widget{ font-size: 16px; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Calibri, Calibri-serif; font-size: 16px; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(../../images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #e78f08; background: #84BFDF url(../images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(../images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(../images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(../images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(../images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(../images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(../images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(../images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(../images/ui-icons_ffffff_256x240.png); } -.ui-state-default .ui-icon { background-image: url(../images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(../images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(../images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(../images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(../images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* - * jQuery UI Resizable 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; - /* http://bugs.jqueryui.com/ticket/7233 - - Resizable: resizable handles fail to work in IE if transparent and content overlaps - */ - background-image:url(data:); -} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * jQuery UI Accordion 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } -/* - * jQuery UI Autocomplete 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.12 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * jQuery UI Button 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Dialog 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * jQuery UI Slider 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * jQuery UI Tabs 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } -/* - * jQuery UI Datepicker 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * jQuery UI Progressbar 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/build/css/jquery-ui-1.8.13.custom.css b/build/css/jquery-ui-1.8.13.custom.css deleted file mode 100755 index 5a3e61b..0000000 --- a/build/css/jquery-ui-1.8.13.custom.css +++ /dev/null @@ -1,478 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip, rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 2.1; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and ../images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(../images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #e78f08; background: #84BFDF url(../images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(../images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { font-weight: bold; color: yellow; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(../images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(../images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(../images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and ../../images */ -.ui-icon { width: 16px; height: 16px; background-image: url(../../images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(../../images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(../../images/ui-icons_ffffff_256x240.png); } -/*.ui-widget-header .ui-icon {background-image: url(../../images/close_button-icon.png); } /* new close buttton*/*/ -.ui-state-default .ui-icon { background-image: url(../../images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../../images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(../../images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(../../images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { /*background-position: -96px -128px;*/ margin-left: -22px;} -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(../images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(../../images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* - * jQuery UI Resizable 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; - /* http://bugs.jqueryui.com/ticket/7233 - - Resizable: resizable handles fail to work in IE if transparent and content overlaps - */ -/* background-image:url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=);*/ -} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * jQuery UI Accordion 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } -/* - * jQuery UI Autocomplete 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.13 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * jQuery UI Button 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Dialog 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: inline; margin: 1px; margin-left: -22px;} -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 0em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * jQuery UI Tabs 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/build/css/jquery-ui-1.8.14.custom.css b/build/css/jquery-ui-1.8.14.custom.css deleted file mode 100755 index d6af009..0000000 --- a/build/css/jquery-ui-1.8.14.custom.css +++ /dev/null @@ -1,568 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and ../images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=segoe%20ui,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=ece8da&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=100&borderColorHeader=d4ccb0&fcHeader=433f38&iconColorHeader=847e71&bgColorContent=f5f3e5&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dfd9c3&fcContent=312e25&iconColorContent=808080&bgColorDefault=459e00&bgTextureDefault=04_highlight_hard.png&bgImgOpacityDefault=15&borderColorDefault=327E04&fcDefault=ffffff&iconColorDefault=eeeeee&bgColorHover=67b021&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=25&borderColorHover=327E04&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=fafaf4&bgTextureActive=04_highlight_hard.png&bgImgOpacityActive=100&borderColorActive=d4ccb0&fcActive=459e00&iconColorActive=8DC262&bgColorHighlight=fcf0ba&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=e8e1b5&fcHighlight=363636&iconColorHighlight=8DC262&bgColorError=ffedad&bgTextureError=03_highlight_soft.png&bgImgOpacityError=95&borderColorError=e3a345&fcError=cd5c0a&iconColorError=cd0a0a&bgColorOverlay=2b2922&bgTextureOverlay=05_inset_soft.png&bgImgOpacityOverlay=15&opacityOverlay=90&bgColorShadow=cccccc&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=95&opacityShadow=20&thicknessShadow=12px&offsetTopShadow=-12px&offsetLeftShadow=-12px&cornerRadiusShadow=10px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: segoe ui, Arial, sans-serif; font-size: 1.1em; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: segoe ui, Arial, sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #dfd9c3; background: #f5f3e5 url(../../images//ui-bg_gloss-wave_35_f6a828_500x100.png) 50% top repeat-x; color: #312e25; } -.ui-widget-content a { color: #312e25; } -.ui-widget-header { border: 1px solid #d4ccb0; background: #ece8da url(../images//ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #433f38; font-weight: bold; } -.ui-widget-header a { color: #433f38; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #327e04; background: #459e00 url(../images/ui-bg_highlight-hard_15_459e00_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #ffffff; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #327e04; background: #67b021 url(../images/ui-bg_highlight-soft_25_67b021_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; } -.ui-state-hover a, .ui-state-hover a:hover { color: #ffffff; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #d4ccb0; background: #fafaf4 url(../images/ui-bg_highlight-hard_100_fafaf4_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #459e00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #459e00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #e8e1b5; background: #fcf0ba url(../images/ui-bg_glass_55_fcf0ba_1x400.png) 50% 50% repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #e3a345; background: #ffedad url(../images/ui-bg_highlight-soft_95_ffedad_1x100.png) 50% top repeat-x; color: #cd5c0a; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd5c0a; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd5c0a; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and ../images */ -.ui-icon { width: 16px; height: 16px; background-image: url(../images/ui-icons_808080_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(../images/ui-icons_808080_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(../images/ui-icons_847e71_256x240.png); } -.ui-state-default .ui-icon { background-image: url(../images/ui-icons_eeeeee_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/ui-icons_ffffff_256x240.png); } -.ui-state-active .ui-icon {background-image: url(../images/ui-icons_8dc262_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(../images/ui-icons_8dc262_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/ui-icons_cd0a0a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; } -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; } - -/* Overlays */ -.ui-widget-overlay { background: #2b2922 url(../images/ui-bg_inset-soft_15_2b2922_1x100.png) 50% bottom repeat-x; opacity: .90;filter:Alpha(Opacity=90); } -.ui-widget-shadow { margin: -12px 0 0 -12px; padding: 12px; background: #cccccc url(../images/ui-bg_highlight-hard_95_cccccc_1x100.png) 50% top repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 10px; -khtml-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; }/* - * jQuery UI Resizable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * jQuery UI Accordion 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } -/* - * jQuery UI Autocomplete 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.14 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * jQuery UI Button 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Dialog 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 500px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * jQuery UI Slider 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * jQuery UI Tabs 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } -/* - * jQuery UI Datepicker 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * jQuery UI Progressbar 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/build/css/jquery.checkbox.css b/build/css/jquery.checkbox.css deleted file mode 100755 index 068eced..0000000 --- a/build/css/jquery.checkbox.css +++ /dev/null @@ -1,25 +0,0 @@ -.jquery-checkbox {display: inline; font-size: 20px; line-height: 20px; cursor: pointer; cursor: hand;} -.jquery-checkbox .mark {display: inline;} - -.jquery-checkbox img {vertical-align: middle; width: 60px; height: 20px;} -.jquery-checkbox img{background: transparent url(checkbox.png) no-repeat;} - -.jquery-checkbox img{ - background-position: 0px 0px; -} -.jquery-checkbox-hover img{ - background-position: 0px -20px; -} -.jquery-checkbox-checked img{ - background-position: 0px -40px; -} -.jquery-checkbox-checked .jquery-checkbox-hover img { - background-position: 0px -60px; -} - -.jquery-checkbox-disabled img{ - background-position: 0px -80px; -} -.jquery-checkbox-checked .jquery-checkbox-disabled img{ - background-position: 0px -100px; -} \ No newline at end of file diff --git a/build/css/jquery.contextMenu.css b/build/css/jquery.contextMenu.css deleted file mode 100755 index 7b4cf79..0000000 --- a/build/css/jquery.contextMenu.css +++ /dev/null @@ -1,62 +0,0 @@ -/* Generic context menu styles */ -.contextMenu { - position: absolute; - width: 80px; - z-index: 99999; - border: solid 1px #CCC; - background: #EEE; - padding: 0px; - margin: 0px; - display: none; -} - -.contextMenu LI { - list-style: none; - padding: 0px; - margin: 0px; -} - -.contextMenu A { - color: #333; - text-decoration: none; - display: block; - line-height: 20px; - height: 20px; - background-position: 6px center; - background-repeat: no-repeat; - outline: none; - padding: 1px 5px; - padding-left: 28px; -} - -.contextMenu LI.hover A { - color: #FFF; - background-color: #3399FF; -} - -.contextMenu LI.disabled A { - color: #AAA; - cursor: default; -} - -.contextMenu LI.hover.disabled A { - background-color: transparent; -} - -.contextMenu LI.separator { - border-top: solid 1px #CCC; -} - -/* - Adding Icons - - You can add icons to the context menu by adding - classes to the respective LI element(s) -*/ - -.contextMenu LI.edit A { background-image: url(../images/page_white_edit.png); } -.contextMenu LI.detach A { background-image: url(../images/cut.png); } -.contextMenu LI.copy A { background-image: url(../images/page_white_copy.png); } -.contextMenu LI.paste A { background-image: url(../images/page_white_paste.png); } -.contextMenu LI.delete A { background-image: url(../images/page_white_delete.png); } -.contextMenu LI.quit A { background-image: url(../images/door.png); } diff --git a/build/css/jquery.safari-checkbox.css b/build/css/jquery.safari-checkbox.css deleted file mode 100755 index 4a8e71f..0000000 --- a/build/css/jquery.safari-checkbox.css +++ /dev/null @@ -1,25 +0,0 @@ -.jquery-safari-checkbox {display: inline; font-size: 16px; line-height: 16px; cursor: pointer; cursor: hand;} -.jquery-safari-checkbox .mark {display: inline;} - -.jquery-safari-checkbox img {vertical-align: middle; width: 16px; height: 16px;} -.jquery-safari-checkbox img{background: transparent url(safari-checkbox.png) no-repeat;} - -.jquery-safari-checkbox img{ - background-position: 0px 0px; -} -.jquery-safari-checkbox-hover img{ - background-position: -16px 0px; -} -.jquery-safari-checkbox-checked img{ - background-position: 0px -16px; -} -.jquery-safari-checkbox-checked .jquery-safari-checkbox-hover img { - background-position: -16px -16px; -} - -.jquery-safari-checkbox-disabled img{ - background-position: 0px -32px; -} -.jquery-safari-checkbox-checked .jquery-safari-checkbox-disabled img{ - background-position: 0px -48px; -} \ No newline at end of file diff --git a/build/css/jquery.treeview.css b/build/css/jquery.treeview.css deleted file mode 100755 index 170b401..0000000 --- a/build/css/jquery.treeview.css +++ /dev/null @@ -1,55 +0,0 @@ -.treeview, .treeview ul { - padding: 0; - margin: 0; - list-style: none; - background-color:#DFD9C3; -} - -.treeview ul { - margin-top: 4px; - background-color:#DFD9C3; - -} - -.treeview .hitarea { - background: url(../../images/treeview-default.gif) -64px -25px no-repeat; - height: 16px; - width: 16px; - margin-left: -16px; - float: left; - cursor: pointer; -} -/* fix for IE6 */ -* html .hitarea { - display: inline; - float:none; -} - -.treeview li { - margin: 0; - padding: 3px 0pt 3px 16px; -} - -.treeview a.selected { - background-color: #eee; -} - -.treeview .hover { color: red; cursor: pointer; } - -.treeview li { background: url(../../images/treeview-default-line.gif) 0 0 no-repeat; } -.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; } - -.treeview .expandable-hitarea { background-position: -80px -3px; } - -.treeview li.last { background-position: 0 -1766px } -.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(../../images/treeview-default.gif); } -.treeview li.lastCollapsable { background-position: 0 -111px } -.treeview li.lastExpandable { background-position: -32px -67px } - -.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; } - -.treeview a{ - text-decoration:none; - color:black; - -} diff --git a/build/css/jquery.ui.slider.css b/build/css/jquery.ui.slider.css deleted file mode 100755 index 77ab7ac..0000000 --- a/build/css/jquery.ui.slider.css +++ /dev/null @@ -1,24 +0,0 @@ -/* - * jQuery UI Slider 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; } \ No newline at end of file diff --git a/build/css/jsxgraph.css b/build/css/jsxgraph.css deleted file mode 100755 index af03701..0000000 --- a/build/css/jsxgraph.css +++ /dev/null @@ -1,26 +0,0 @@ -/* -*/ -.jxgbox { - position:relative; /* for IE 7 */ - overflow:hidden; - background-color:#ffffff; - border-style:solid; - border-width:1px; - border-color:#356AA0; - -moz-border-radius:10px; - -webkit-border-radius:10px; - /* - -moz-box-shadow:black 2px 2px 2px -2px, #151A10 4px 4px; - -webkit-box-shadow:4px 4px 3px #151A10; - */ -} - -.JXGtext { - background-color:transparent; - font-family: Arial, Helvetica, Geneva; - padding:0px; - margin:0px; - color:black; - /*border-style:dotted;*/ - /*border-width:0.4px;*/ -} diff --git a/build/css/layout-default-latest.css b/build/css/layout-default-latest.css deleted file mode 100755 index f33174c..0000000 --- a/build/css/layout-default-latest.css +++ /dev/null @@ -1,111 +0,0 @@ - -body { - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 100%; - *font-size: 80%; -} - -/* - * PANES & CONTENT-DIVs - */ -.ui-layout-pane { /* all 'panes' */ - background: url(../images/ui-bg_gloss-wave_35_f6a828_500x100.png) repeat; - border: 1px solid #BBB; - /* DO NOT add scrolling (or padding) to 'panes' that have a content-div, - otherwise you may get double-scrollbars - on the pane AND on the content-div - */ - padding: 10px; - overflow: auto; - } - /* (scrolling) content-div inside pane allows for fixed header(s) and/or footer(s) */ - .ui-layout-content { - padding: 10px; - position: relative; /* contain floated or positioned elements */ - overflow: auto; /* add scrolling to content-div */ - } - -/* - * RESIZER-BARS - */ -.ui-layout-resizer { /* all 'resizer-bars' */ - background: #DDD; - border: 1px solid #000; - border-width: 0; - } - .ui-layout-resizer-drag { /* REAL resizer while resize in progress */ - } - .ui-layout-resizer-hover { /* affects both open and closed states */ - } - /* NOTE: It looks best when 'hover' and 'dragging' are set to the same color, - otherwise color shifts while dragging when bar can't keep up with mouse */ - .ui-layout-resizer-open-hover , /* hover-color to 'resize' */ - .ui-layout-resizer-dragging { /* resizer beging 'dragging' */ - background: #C4E1A4; - } - .ui-layout-resizer-dragging { /* CLONED resizer being dragged */ - border-left: 1px solid #000; - border-right: 1px solid #000; - } - /* NOTE: Add a 'dragging-limit' color to provide visual feedback when resizer hits min/max size limits */ - .ui-layout-resizer-dragging-limit { /* CLONED resizer at min or max size-limit */ - background: #E1A4A4; /* red */ - } - - .ui-layout-resizer-closed-hover { /* hover-color to 'slide open' */ - background: #EBD5AA; - } - .ui-layout-resizer-sliding { /* resizer when pane is 'slid open' */ - opacity: .10; /* show only a slight shadow */ - filter: alpha(opacity=10); - } - .ui-layout-resizer-sliding-hover { /* sliding resizer - hover */ - opacity: 1.00; /* on-hover, show the resizer-bar normally */ - filter: alpha(opacity=100); - } - /* sliding resizer - add 'outside-border' to resizer on-hover - * this sample illustrates how to target specific panes and states */ - .ui-layout-resizer-north-sliding-hover { border-bottom-width: 1px; } - .ui-layout-resizer-south-sliding-hover { border-top-width: 1px; } - .ui-layout-resizer-west-sliding-hover { border-right-width: 1px; } - .ui-layout-resizer-east-sliding-hover { border-left-width: 1px; } - -/* - * TOGGLER-BUTTONS - */ -.ui-layout-toggler { - border: 1px solid #BBB; /* match pane-border */ - background-color: #BBB; - } - .ui-layout-resizer-hover .ui-layout-toggler { - opacity: .60; - filter: alpha(opacity=60); - } - .ui-layout-toggler-hover , /* need when NOT resizable */ - .ui-layout-resizer-hover .ui-layout-toggler-hover { /* need specificity when IS resizable */ - background-color: #327E04; - opacity: 1.00; - filter: alpha(opacity=100); - } - .ui-layout-toggler-north , - .ui-layout-toggler-south { - border-width: 0 1px; /* left/right borders */ - } - .ui-layout-toggler-west , - .ui-layout-toggler-east { - border-width: 1px 0; /* top/bottom borders */ - } - /* hide the toggler-button when the pane is 'slid open' */ - .ui-layout-resizer-sliding ui-layout-toggler { - display: none; - } - /* - * style the text we put INSIDE the togglers - */ - .ui-layout-toggler .content { - color: #666; - font-size: 12px; - font-weight: bold; - width: 100%; - padding-bottom: 0.35ex; /* to 'vertically center' text inside text-span */ - } - diff --git a/build/css/model.css b/build/css/model.css deleted file mode 100755 index a4d15ef..0000000 --- a/build/css/model.css +++ /dev/null @@ -1,33 +0,0 @@ -#cap-modal-content, #cap-modal-data {display:none;} - -/* Overlay */ -#cap-overlay {background-color:#000; cursor:wait;} - -/* Container */ -#cap-container {background-color:#eee; color:#000; font: 16px/24px "Lucida Grande",Arial,sans-serif; padding-bottom:4px; width:600px; -moz-border-radius-bottomleft:6px; -webkit-border-bottom-left-radius:6px; -moz-border-radius-bottomright:6px; -webkit-border-bottom-right-radius:6px; border-radius:0 0 6px 6px; -moz-box-shadow:0 0 64px #000; -webkit-box-shadow:0 0 64px #000; box-shadow:0 0 64px #000;} -#cap-container a {color:#ddd;} -#cap-container #cap-modal-title {color:#000; background-color:#ddd; border-bottom:1px solid #ccc; font-weight:bold; padding:6px 8px; text-shadow:0 1px 0 #f4f4f4;} -#cap-container .close {display:none; position:absolute; right:0; top:0;} -#cap-container .close a {display:block; color:#777; font-weight:bold; padding:6px 12px 0; text-decoration:none; text-shadow:0 1px 0 #f4f4f4;} -#cap-container .close a:hover {color:#000;} -#cap-container #cap-modal-data {font-size:12px; padding:6px 12px;} -#cap-container h2 {margin:10px 0 6px;} -#cap-container p {margin-bottom:10px;} -#cap-container span {color:#777;} - -#cur-modal-content, #cur-modal-data {display:none;} - -/* Overlay */ -#cur-overlay {background-color:#000; cursor:wait;} - -/* Container */ -#cur-container {background-color:#eee; color:#000; font: 16px/24px "Lucida Grande",Arial,sans-serif; padding-bottom:4px; width:600px; -moz-border-radius-bottomleft:6px; -webkit-border-bottom-left-radius:6px; -moz-border-radius-bottomright:6px; -webkit-border-bottom-right-radius:6px; border-radius:0 0 6px 6px; -moz-box-shadow:0 0 64px #000; -webkit-box-shadow:0 0 64px #000; box-shadow:0 0 64px #000;} -#cur-container a {color:#ddd;} -#cur-container #cur-modal-title {color:#000; background-color:#ddd; border-bottom:1px solid #ccc; font-weight:bold; padding:6px 8px; text-shadow:0 1px 0 #f4f4f4;} -#cur-container .close {display:none; position:absolute; right:0; top:0;} -#cur-container .close a {display:block; color:#777; font-weight:bold; padding:6px 12px 0; text-decoration:none; text-shadow:0 1px 0 #f4f4f4;} -#cur-container .close a:hover {color:#000;} -#cur-container #cur-modal-data {font-size:12px; padding:6px 12px;} -#cur-container h2 {margin:10px 0 6px;} -#cur-container p {margin-bottom:10px;} -#cur-container span {color:#777;} diff --git a/build/css/plc.css b/build/css/plc.css deleted file mode 100755 index 81d9da1..0000000 --- a/build/css/plc.css +++ /dev/null @@ -1,480 +0,0 @@ -#pidattribute -{ -position:absolute; -left:620px; -top:220px; -font-size:110%; -font-family:calibri; -width:50px; -height:50px; -border-style:outset; -background-color : #EEEEEE; -border-color:#AAAAAA; -border-width:3px; -} - -#pido , #pidoutput { -position:absolute; -left:730px; -top:248px; -width:40px;height:20px; -border:1px solid black; - -} -#mode -{ -position:absolute; -left:20; -top: 20; - -} -#auto -{ -position:absolute; -left:120; -top: 15; -} -#manual -{ -position:absolute; -left:180; -top: 15; - -} -#autol -{ -position:absolute; -left:100; -top: 15; - -} -#manuall -{ -position:absolute; -left:200; -top: 15; - -} -#manualdata { -position:absolute; -left:70; -top: 100; -border:2px solid #a1a1a1; -padding:10px 40px; -width:150px; -height: 80px; -border-radius:25px; -} -#actionconf -{ -position:absolute; -left:50; -top: 50; -border:2px solid #a1a1a1; -padding:10px 40px; -width:200px; -height: 170px; -border-radius:25px; -} -#action -{ -position:absolute; -left:10; -top: 20; -font-size:110%; -font-family: "Calibri"; -} -#Direct -{ -position:absolute; -left:70; -top: 20; -} -#directl -{ -position:absolute; -left:90; -top: 20; -font-size:110%; -font-family: "Calibri"; -} -#Reverse -{ -position:absolute; -left:140; -top: 20; - -} -#Reversel -{ -position:absolute; -left:160; -top: 20; -font-size:110%; -font-family: "Calibri"; -} -#control -{ -position:absolute; -left:10; -top: 50; -font-size:110%; -font-family: "Calibri"; -} -#P { position:absolute; left:10; top: 80;} -#Pl -{ -position:absolute; -left:30; -top: 80; -font-size:110%; -font-family: "Calibri"; -} -#PD { position:absolute; left:10; top: 110;} -#PDl -{ -position:absolute; -left:30; -top: 110; -font-size:110%; -font-family: "Calibri"; -} -#PI { position:absolute; left:120; top: 80;} -#PIl -{ -position:absolute; -left:150; -top: 80; -font-size:110%; -font-family: "Calibri"; -} -#PIDr { position:absolute; left:120; top: 110;} -#PIDl -{ -position:absolute; -left:150; -top: 110; -font-size:110%; -font-family: "Calibri"; -} -#chk{ position:absolute; left:80; top: 200; } -#chkl { position:absolute; -left:110; -top: 200; -font-size:110%; -font-family: "Calibri";} - -#type { -position:absolute; -left:10; -top: 280; -font-size:110%; -font-family: "Calibri"; -} -#NI {position:absolute; left:50; top: 280;} -#NIl{position:absolute; -left:80; -top: 280; -} - -#I {position:absolute; left:200; top: 280;} -#Il { position:absolute; -left:220; -top: 280; -} - - -#titlel {position:absolute; -left:50; -top: 10; -font-size:150%; -font-family: "Calibri"; } - - -#kp , #kppni , #kppnd , #kppndni {position:absolute; -left:140; -top: 50;} -#kpl,#kppnil , #kppndl , #kppndnil { -position:absolute; -left:20; -top: 50; -font-size:110%; -font-family: "Calibri"; -} - -#p0 , #bios , #p0pnd , #p0pndni{position:absolute; -left:140; -top: 90; } -#p0l ,#biosl , #p0pndl , #p0pndnil{position:absolute; -left:20; -top: 90; -font-size:110%; -font-family: "Calibri";} - - #ki , #kd , #kipndni{position:absolute; -left:140; -top: 130;} - #kil , #kdl , #kipndnil{position:absolute; -left:20; -top: 130; -font-size:110%; -font-family: "Calibri"; } - -#kdpndni{ position:absolute; -left:140; -top: 170;} - #kdpndnil{ position:absolute; -left:20; -top: 170; -font-size:110%; -font-family: "Calibri";} - -#tpni ,#tpnd,#tpnind{position:absolute; -left:140; -top: 210;} -#tpnil,#tpndl ,#tpnindl{position:absolute; -left:20; -top: 210; -font-size:110%; -font-family: "Calibri";} - -#sp {position:absolute; -left:140; -top: 250;} -#spl {position:absolute; -left:20; -top: 250; -font-size:110%; -font-family: "Calibri"; } - -#max{ position:absolute; -left:140; -top: 290;} -#maxl { position:absolute; -left:20; -top: 290; -font-size:110%; -font-family: "Calibri";} - -#min {position:absolute; -left:140; -top: 330; } -#minl { position:absolute; -left:20; -top: 330; -font-size:110%; -font-family: "Calibri"; } - -#AcInfoAddress {position:absolute; -left:510; -top:180;} -#AcInfoValues {position:absolute; -left:660; -top:180;} - -/* begin PostIcons, PostFooterIcons */ -.art-postfootericons, -.art-postfootericons a, -.art-postfootericons a:link, -.art-postfootericons a:visited, -.art-postfootericons a:hover -{ - font-family: Times New Roman, Times-Serif; - font-size: 12px; - text-decoration: none; - letter-spacing: 1px; - color: #303030; -} - -.art-postfootericons -{ - padding: 1px; -} - -.art-postfootericons a, .art-postfootericons a:link -{ - font-style: normal; - font-weight: bold; - color: #1F5775; -} - -.art-postfootericons a:visited, .art-postfootericons a.visited -{ - color: #4A4A4A; -} - -.art-postfootericons a:hover, .art-postfootericons a.hover -{ - text-decoration: underline; - color: #171717; -} -/* end PostIcons, PostFooterIcons */ - -/* begin Footer */ -.art-footer -{ - position: relative; - margin-top:0; - margin-bottom:0; - width: 100%; -} - -.art-footer-b -{ - position: absolute; - left:20px; - right:20px; - bottom:0; - height:50px; - background-image: url('../images/footer_b.png'); -} - -.art-footer-r, .art-footer-l -{ - position: absolute; - height:50px; - background-image: url('../images/footer_s.png'); - bottom: 0; -} - -.art-footer-l -{ - left: 0; - width:20px; -} - -.art-footer-r -{ - right: 0; - width:40px; - clip: rect(auto, auto, auto, 20px); -} - -.art-footer-t -{ - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 50px; - background: url("../images/header.png") repeat-x scroll 50% 50% #F6A828; -} - -.art-footer-body -{ - position:relative; - padding: 15px; -} - -.art-footer-body .art-rss-tag-icon -{ - position: absolute; - left: 6px; - bottom:15px; - z-index:1; -} - -.art-rss-tag-icon -{ - display: block; - background-image: url('../images/rssicon.png'); - background-position: center right; - background-repeat: no-repeat; - height: 25px; - width: 32px; - cursor: default; -} - -.art-rss-feedback-icon -{ - display: block; - background-image: url('../images/feedback.png'); - background-position: center right; - background-repeat: no-repeat; - height: 30px; - width: 100px; - cursor: default; - float: right; -} - -.art-footer-text p -{ - padding:0; - margin:0; - text-align: center; -} - -.art-footer-text, -.art-footer-text a, -.art-footer-text a:link, -.art-footer-text a:visited, -.art-footer-text a:hover, -.art-footer-text td, -.art-footer-text th, -.art-footer-text caption -{ - color: #102D3C; - font-size: 12px; -} - -.art-footer-text -{ - min-height: 50px; - padding-left: 10px; - padding-right: 10px; - text-align: center; -} - -.art-footer-text a, -.art-footer-text a:link -{ - color: #1B4B65; - font-style: normal; - font-weight: bold; - text-decoration: none; -} - -.art-footer-text a:visited -{ - color: #141414; -} - -.art-footer-text a:hover -{ - color: #09BDDC; - text-decoration: underline; -} - -div.art-footer img -{ -/* WARNING do NOT collapse this to 'border' - inheritance! */ - border-color: #BABABA; - border-style: solid; - margin: 7px; -}/* end Footer */ - -/* begin PageFooter */ -.art-page-footer, -.art-page-footer a, -.art-page-footer a:link, -.art-page-footer a:visited, -.art-page-footer a:hover -{ - font-family: Arial; - font-size: 10px; - letter-spacing: normal; - word-spacing: normal; - font-style: normal; - font-weight: normal; - text-decoration: underline; - color: #404040; -} - -.art-page-footer -{ - padding: 1em; - text-align: center; - text-decoration: none; - color: #404040; -} -/* end PageFooter */ \ No newline at end of file diff --git a/build/css/style.css b/build/css/style.css deleted file mode 100755 index 3019d10..0000000 --- a/build/css/style.css +++ /dev/null @@ -1,384 +0,0 @@ -/* Primary Styles -------------------------------------------*/ -/* Author: Rohit Khot ---------------------------------------*/ - -/* Basic styling for the complete body tag ------------------*/ -/* BODY TEXT : 12px Lucida font with Cobalt color -----------*/ -/* BACKGROUND : white ---------------------------------------*/ - -body -{ - font-family:"Lucida Grande","Lucida Sans Unicode", - "Lucida Sans", Verdana,Arial,sans-serif; - font-size:12px; - margin:0 auto; - padding:0; - background: #012943; -} - -#container -{ - margin:0 auto; - padding:0 - width:100%; -} - -#lab-header, #experiment-header -{ - margin: 0 auto; - width: 1024px; -} - -#lab-header-logo, #experiment-header-logo -{ - -} - -#lab-header-logo img, #experiment-header-logo img -{ - width:1024px; - margin:0 auto; - -} -#lab-header-heading, #experiment-header-heading -{ - background:url(../images/header-blue.gif) no-repeat left top; - height:50px; - margin:0 auto; -} - -#lab-header-heading a:link, #experiment-header-heading a:link, -#lab-header-heading a:visited, #experiment-header-heading a:visited, -#lab-footer-heading a:link, #experiment-footer-heading a:link, -#lab-footer-heading a:visited, #experiment-footer-heading a:visited -{ - color:#fff; - text-decoration: none; - float: left; - font-size: 24px; - font-weight:bold; - text-transform:uppercase; - padding: 5px 25px 0px; -} - -#lab-header-heading a:focus, #experiment-header-heading a:focus, -#lab-header-heading a:hover, #experiment-header-heading a:hover, -#lab-footer-heading a:focus, #experiment-footer-heading a:focus, -#lab-footer-heading a:hover, #experiment-footer-heading a:hover -{ - color:#fff; - background-color:#02568e; -} - - -#lab-article, #experiment-article -{ - - - font-size: 16px; - line-height: 24px; - margin:0 auto; -} - -#lab-article-heading, #experiment-article-heading -{ - font-size: 50px; - font-family: Georgia, "Times New Roman", Times, Serif; - font-weight: normal; - text-transform: none; - line-height: 60px; - color: #3d414c; - padding: 10px 30px; - letter-spacing: 0; - position: relative; - margin:auto; - width: 964px; - background-color: rgb(227, 242, 252); -} - -nav#lab-article-navigation, nav#experiment-article-navigation -{ - height:90px; - margin: 0 auto; - width:1024px; - background: url(../images/content_bg.jpg); -} -nav#lab-article-navigation ul, nav#experiment-article-navigation ul -{ - /*margin-left:21px;*/ -} - -nav#lab-article-navigation ul li, nav#experiment-article-navigation ul li -{ - float: left; - list-style: none; - margin-right: 0.3em; -} - -nav#lab-article-navigation ul li img, nav#experiment-article-navigation ul li img -{ - width:50px; - height:50px; -} -nav#lab-article-navigation ul li a:link, nav#experiment-article-navigation ul li a:link, -nav#lab-article-navigation ul li a:visited, nav#experiment-article-navigation ul li a:visited -{ - color:#02568e; - text-decoration: underline; - float: right; - font-size: 16px; - text-transform:uppercase; - padding: 9px; -} - -nav#lab-article-navigation ul li a:hover, nav#experiment-article-navigation ul li a:hover, -nav#lab-article-navigation ul li a:focus, nav#experiment-article-navigation ul li a:focus -{ - color: #ffffff; - background-color:#02568e; -} - -#lab-article-sections-view, #experiment-article-sections-view -{ - padding-top:30px; - width:1024px; - min-height:400px; - - font-size: 16px; - line-height: 24px; - margin:0 auto; - background: url(../images/content_bg.jpg); -} - -#lab-article-sections, #experiment-article-sections -{ - padding-top:30px; - width:1024px; - min-height:400px; - - font-size: 16px; - line-height: 24px; - margin:0 auto; - background: url(../images/content_bg.jpg); - -} - -#lab-article-sections .heading, #experiment-article-sections .heading -{ - color:#222222; - font-family:"proxima-nova-extra-condensed-1", - "proxima-nova-extra-condensed-2", - "Trebuchet MS","Lucida Grande", - "Lucida Sans Unicode","Lucida Sans",Verdana, - Arial,sans-serif; - font-size:24px; - font-weight:300; - margin-left: 40px; - padding:5px 0 30px; -} - -#lab-article-sections .subheading, #experiment-article-sections .subheading, .content h2, .content h3 -{ - color:#222222; - font-family:"proxima-nova-extra-condensed-1", - "proxima-nova-extra-condensed-2", - "Trebuchet MS","Lucida Grande", - "Lucida Sans Unicode","Lucida Sans",Verdana, - Arial,sans-serif; - font-size:20px; - font-weight:300; - margin-left:40px; - padding:10px 0 10px; -} -.content -{ - padding-left:40px; - width:90%; - padding-bottom:10px; -} - -.content p a:link, .content p a:visited -{ - text-decoration: underline; - color: #961b25;/* dusty read */ -} -.content img -{ - width:800px; - height:400px; - padding-left:40px; - padding-bottom:10px; -} - -.content pre -{ - padding-left:40px; - padding-bottom:10px; -} -.content embed -{ - width:800px; - padding-left:80px; - height:400px; - padding-bottom:10px; - border: solid 1px #b2bbc0; -} - -/* styles for button color */ -.button -{ - color: #fef4e9; - border: solid 1px #da7c0c; - background: #f78d1d; - background: -webkit-gradient(linear, left top, left bottom, - from(#faa51a), to(#f47a20)); - background: -moz-linear-gradient(top, #faa51a, #f47a20); - -} -.button:hover -{ - background: #f47c20; - background: -webkit-gradient(linear, left top, left bottom, - from(#f88e11), to(#f06015)); - background: -moz-linear-gradient(top, #f88e11, #f06015); - -} - -.button:active -{ - background: -webkit-gradient(linear, left top, left bottom, - from(#f47a20), to(#faa51a)); - background: -moz-linear-gradient(top, #f47a20, #faa51a); -} - -/* basic styles for button size, padding, etc. */ -.button -{ - display: inline-block; - outline: none; - font-size: 16px; - cursor: pointer; - text-align: center; - text-decoration: none; - line-height: 100%; - padding: .55em 2em .55em; - text-transform: uppercase; - -webkit-border-radius: 0.5em; - -moz-border-radius: 0.5em; - border-radius: 0.5em; - -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2); - -moz-box-shadow: 0 1px 2px rgba(0,0,0,.2); - box-shadow: 0 1px 2px rgba(0,0,0,.2); -} -.button:hover -{ - text-decoration: none; -} -.button:active -{ - position: relative; - top: 1px; -} - - -.content table -{ - /*font-family: "Trebuchet MS", sans-serif; - font-size: 16px; - font-weight: bold;*/ - border-collapse:separate; - margin-left:40px; - padding-bottom:10px; -} - -.content table thead th -{ - color: #961b25; - font-size: 16px; - font-weight: normal; - text-transform:uppercase; - padding: 10px; - border:1px solid #b2bbc0; -} -.content table tbody th -{ - color: #961b25; - font-size: 16px; - font-weight: normal; - text-transform:uppercase; - padding: 10px; - border:1px solid #b2bbc0; -} - -.content table tbody td -{ - padding:10px; - text-align:left; - border:1px solid #b2bbc0; - max-width:700px; - -} - -.content ul, .content ol -{ - margin-left:50px; -} - -aside -{ - float:right; - width:200px; - position:relative; -} - -#hidden-content -{ - display:none; -} - -.icon -{ - display:none; -} - -#experiment-article-breadcrumb -{ - line-height: 0px; - color: #3d414c; - padding: 15px 0px; - letter-spacing: 0px; - position: relative; - margin:0px auto auto auto; - width: 1000px; -} - -#experiment-article-breadcrumb a:link, #experiment-article-breadcrumb a:visited -{ - color: #fefefe; - text-decoration:none; - position:relative; -} - -#lab-article-breadcrumb -{ - line-height: 0px; - color: #3d414c; - padding: 15px 0px; - letter-spacing: 0px; - position: relative; - margin:0px auto auto auto; - width: 1000px; -} - -#lab-article-breadcrumb a:link, #lab-article-breadcrumb a:visited -{ - color: #fefefe; - text-decoration:none; - position:relative; -} - -/* Added by Chandan on 2013-09-02 for fixing footer * - * Tip by Avinash - */ -#lab-footer{ - text-align : center; -} diff --git a/build/default.html b/build/default.html deleted file mode 100755 index 6196279..0000000 --- a/build/default.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - UI Manual - - - - -
          - - - -
          - - - -
          - - My Lab -
          - - - -
          - - - -
          - - - -
          - - -
          - Welcome to my lab! -
          - - -
          - - - - - - - -
          - - -
          -
          - - -
          - - - -
          - Introduction -
          - - -
          -

          - Welcome to the Physics lab! In this lab, we will do - virtual experiments to understand Newton's laws of - motion. We will start with a simple pendulum, and - from then on, the experiments get more interesting. -

          -
          - -
          - - - -
          - -
          - - -
          - - - -
          - List of experiments -
          - - -
          - -
          - -
          -
          - - - - - -
          - -
          - -
          - - -
          - -
          - -
          - - diff --git a/build/help/README.txt b/build/help/README.txt deleted file mode 100755 index d679aa2..0000000 --- a/build/help/README.txt +++ /dev/null @@ -1,15 +0,0 @@ -Congrats !! - -* You have successfully downloaded and extracted the - ui.tgz . - - -* Now run makefile by the following commands inside the 'ui/src' folder to - create the build directory : - - make clean all - -* Now, open ui/build/index.html in the browser to test the template. - -* For any further doubts refer to the help that has been provided - inside the build/help/index.html. diff --git a/build/help/content.dot b/build/help/content.dot deleted file mode 100755 index 50164dd..0000000 --- a/build/help/content.dot +++ /dev/null @@ -1,43 +0,0 @@ -digraph modules { - node [style=filled,color="#FFDAB9"]; - - - "lab-header" [label="header"]; - "lab-heading" [label="heading"]; - "article-header" [label="header"]; - "article-heading" [label="heading"]; - "section-heading" [label="heading"]; - - "lab-footer" [label="footer" color="#DDA0DD"]; - "article-footer" [label="footer" color="#DDA0DD"]; - "article-aside" [label="aside" color="#DDA0DD"]; - nav [label="nav" color="#DDA0DD"]; - - lab -> "lab-header"; - lab -> "lab-footer"; - lab -> article; - - - "lab-header" -> logo; - "lab-header" -> "lab-heading"; - logo -> img; - - article -> "article-header"; - article -> nav; - article -> "article-aside"; - article -> "article-footer"; - article -> sections; - - "article-header" -> "article-heading"; - - sections -> "section-1"; - sections -> "section-n"; - - "section-1" -> icon; - "section-1" -> "section-heading"; - "section-1" -> content; - -} - - - diff --git a/build/help/content.png b/build/help/content.png deleted file mode 100755 index 1fe2673..0000000 Binary files a/build/help/content.png and /dev/null differ diff --git a/build/help/css/override.css b/build/help/css/override.css deleted file mode 100755 index a37fc6d..0000000 --- a/build/help/css/override.css +++ /dev/null @@ -1,12 +0,0 @@ -span.list-heading { - font-weight: bold; - margin-top: 2em; -} - -span.code { - font-family: monospace; - font-style: normal; - font-weight: bold; - color: #556B2F; -} - diff --git a/build/help/help.html b/build/help/help.html deleted file mode 100755 index 2ece33a..0000000 --- a/build/help/help.html +++ /dev/null @@ -1,824 +0,0 @@ - - - - UI Manual - - - -
          - - - - - - - -
          - - -
          - - Virtual Labs -
          - -
          - - - -
          - - -
          - -
          - User Manual -
          - -
          - - - - - -
          - - - -
          -
          - - -
          - -
          - Installation -
          - - -
          - -

          Welcome! This manual guides you through the - process of assembling your virtual lab's content - using the ui template . -

          - -

          - If you are reading this help after a local - installation, then you have probably already - installed the ui template and you can skip this - section. If you are reading this from the web, - then you need to do the following steps to - install the template. -

          - -

          Downloading ui.tgz

          -

          - The first step in the installation is the downloading of the ui template. -

          - -
            -
          1. Download - the ui.tgz - file from this link ui.tgz -
          2. - -
          3. Unzip the file. This should create a - directory ui/
          4. - -
          -
          -
          - -
          -
          - - -
          - -
          - ui directory -
          - - -
          - -

          - The ui - has - src and - scripts directory inside it. -
          - The ui/ - directory has the following file - structure: -

          - -

          - - - - - - - - - - - - - - - - - - - - - - - -
          - - ui/src/lab/ - - -

          All the source files for - the lab are here. The files - index.html - and - default.html have been - made read only as these need - not be edited. -

          - -
          -

          - In case you want to edit the - html pages, you should edit - only the - content.html file in - ui/src/lab/ - and the - ui/src/lab/exp1/ directory. -

          - -
          -

          - While adding new experiments, - make sure you create new - directories following the same - structure under - ui/src/lab/"EXPERIMENT-ID" - and change the - content.html in the - same directory. Make sure inside - the - ui/src/lab/"EXPERIMENT-ID" - directory, the files - index.html - and - default.html are not edited. -

          - -
          -

          - In addition, the - ui/src/lab directory - contains js, - images, and - css - directories. These directories - are there to hold your own - custom files. -

          -
          - - ui/src/lib/ - - -

          - All the library files (like - MathJax, jQuery, modernizr) - are in this directory. -

          -
          - - ui/src/themes/ - - -

          - Two themes are supplied - with this release. -
          - - * maroon-grid (uses iiith style, which does - not display icons) -
          - - * blue-icon (uses the iitb - style, which uses icons for - sections)
          Of course, - you are free to design your - own theme, and place it in the - themes directory. -

          -
          - - ui/src/makefile - - -

          - This file is used for building a release - (described below). -

          -
          - - ui/scripts/ - - -

          - This directory has the shellscript - transfer.sh. - This file has to be run when the - user wishes to test his lab - on the test or deployment server. - Run the file from the - ui/scripts - directory using the following command: -

          -
          -                  
          -                  ./transfer.sh [USERNAME-ON-DEVEL] [OPTIONAL NAME-OF-THEME] [OPTIONAL -F] 
          -                  
          -

          - where -

            -
          • - USERNAME-ON-DEVEL is the login name for the - developer on - devel.virtual-labs.ac.in and -
          • - OPTIONAL NAME-OF-THEME is an optional - parameter which could be maroon-grid or - blue-icon or your own - theme name. -
          • The -F option is meant for building - to the deployment server. For detailed help on - transfer.sh - , please refer to the - BUILD section. -
          -

          -
          -

          -
          - -
          - -
          -
          - - -
          - -
          - Build -
          - - -
          -

          - The build process is completed with the - following three milestones. -

          - -

          Build 1 : Local build

          - -

          - The purpose of the local build is to be - able to view the content locally. - Once you run the makefile inside the - ui/src/ on the local machine, the - ui/build/ is created. - This is a local build deliverable of the lab's - content. To run the makefile and create - this local build, you need to go to - ui/src - and run -

          -
          -	       make -k theme=theme-name clean all
          -	    
          - -

          - The theme-name is one of -

          -

          -

            - -
          • maroon-grid
          • -
          • blue-icon
          • -
            -
          -

          -

          - or, the command -

          - -
          -	    make clean all
          -        
          - -

          - which uses the default theme maroon-grid. -

          - -

          - The first time around, this build will - take quite long, because it copies - the ui/src/MathJax - directory. The next time onwards, this - won't be the case. -

          - -
          -	      make  clean 
          -       
          - -

          - will clean the ui/build/ - directory (but keep the js directory intact) -

          - -

          Structure of the build directory

          - -
          -build/
          -|-- content.html
          -|-- css/
          -|   |-- default.css
          -|   |-- override.css
          -|   `-- style.css
          -|
          -|-- default.html
          -|
          -|-- exp1/
          -|   |-- media/
          -|   |-- content.html
          -|   |-- default.html
          -|   `-- index.html
          -|
          -|-- help/
          -|   |-- css/
          -|       |-- override.css
          -|   |-- help.html
          -|   |-- images/
          -|   `-- index.html
          -|
          -|-- images/
          -|   |-- Pendulum.JPG
          -|   |   ...
          -|   | 
          -|   `-- theory.jpg
          -|
          -|-- index.html
          -|
          -|-- js
          -|   |-- MathJax/
          -|   |-- MathJax-version.txt
          -|   |-- jquery-1.4.2.min.js
          -|   `-- modernizr-1.5.min.js
          -|
          -`-- theme-maroon-grid
          -	
          - -

          Build 2 : Build on the Test server

          -

          - The second level build creates a - public_html/build/ inside the - home page of your lab on the test server. - The test server simulates the setup of the deployment server. - It will enable you to check whether your latest build works on - a public server (besides your local machine). - In order to deploy the lab on the deployment server, - the build must first - be run on the test server. -

          - -

          - You need to run the following command from inside the - ui/scripts/ directory: -

          -
          -        
          -        ./transfer.sh [USERNAME-ON-DEVEL] [OPTIONAL NAME-OF-THEME]
          -	    
          -	    
          - -

          - where -

          -

          -

            -
          • USERNAME-ON-DEVEL is the login name for the - developer on - devel.virtual-labs.ac.in
          • -
          • - OPTIONAL NAME-OF-THEME is an optional - parameter which could be maroon-grid or - blue-icon or your own - theme name. -
          • -
          -

          -

          - Once this command is run, you can view the - lab running on the URL -

          -

          - - http://devel.virtual-labs.ac.in/test/~LAB-ID/build/ - -

          -

          where LAB-ID is of the form cseNN. For example: cse09 -

          -

          - NOTE -

            -
          • If you do not have the ssh keys to - devel.virtual-labs.ac.in - installed on the local machine under the - correct directory (/home/$USER/.ssh/), - the script will prompt you for the - password multiple times. -
          • -
          • The test server may take some time - to load the new build after running the script. Please keep - refreshing the web page on the browser - until it reflects your changes. -
          • -
          -

          - -

          Build 3 : Build for the Deployment server

          -

          - The third level of the build will serve as the final - build for the deployment server. The build directory - created as a result of this final build will - run on the deployment server. To make the final build, - you need to run the following command from inside the - ui/scripts/ directory: -

          -        
          -        ./transfer.sh [USERNAME-ON-DEVEL] [OPTIONAL NAME-OF-THEME] [-F] 
          -

          -

          - where -

            -
          • USERNAME-ON-DEVEL is the login name for the - developer on devel.virtual-labs.ac.in -
          • -
          • - OPTIONAL NAME-OF-THEME is an optional - parameter which could be maroon-grid or - blue-icon or your own - theme name.
          • -
          • The -F option indicates that - the script must make a final-build. - Please note that the -F option must be mentioned as the - last argument only.
          • -
          -

          -

          - Once this command is run, a - final-build will be created inside the - public_html directory on the test server. This - final-build will be transferred - automatically to the deployment server. -

          -

          - NOTE -

            -
          • If you do not have the ssh keys to - devel.virtual-labs.ac.in - installed on the local machine under the - correct directory (/home/$USER/.ssh/) - , the script will prompt you for the - password multiple times. -
          • -
          • The test server may take some time - to load the new build after running the script. Please keep - refreshing the web page on the browser - until it reflects your changes. -
          • -
          - -

          - - -
          - - -
          - - -
          -
          - - -
          - -
          - Content -
          - - -
          -

          - This template features a demo of a - science lab with a sample - "simple pendulum" - experiment. The following - section will help you to configure this - template as per your lab experiments. -

          - -

          - The ui/src/lab/ - directory contains three files: -

          -

          -

            -
          • index.html
          • -
          • default.html
          • -
          • content.html
          • -
          -

          -

          - The same structure has been followed - inside the - ui/src/lab/"EXPERIMENT_ID" directory. - The description and the read-write - permits for those file have been - tabulated here as follows : -

          -

          - - - - - - - - - - - - - - - - - - - - - -
          filepermissionsdescription
          index.htmlread-onlyhome-page
          default.htmlread-onlydefault-content
          content.htmlread-writeeditable-content
          - -

          - - -

          Editing content.html

          - -

          The structure of content - for - ui/src/lab/content.html - is shown below: - -

          - -

          - To add your lab's content, edit this - file. - - Add class="default" - to inherit the default - structure and behaviour of any element. - Elements shown in purple are the ones that - you might want to inherit as default. - - Exclude the - class="default" attribute for - any element to which you want to - add your own content. - By default, - nav - generates a list of sections - while aside - and footer - are empty. -

          - - -

          Adding experiment content

          -

          - While adding new experiments, - make sure you create new - directories following the same - structure under - ui/src/lab/"EXPERIMENT-ID" - and change the - content.html in the - same directory. Make sure inside - the - ui/src/lab/"EXPERIMENT_ID" - directory, the files - index.html - and - default.html are not edited. -

          - -

          Embedding multimedia

          -

          - - The embed - tag can be used to embed - multimedia files. -

          - -
          -
          - -
          -
          - - -
          - -
          - Style -
          - - -
          -

          Change CSS styles

          -

          - The css styles have been defined - under the - ui/src/lab/css/. - However in case you wish to define - your own css styles, you can add - your styles to the file - - ui/src/lab/css/override.css - . -

          -

          Add your own CSS and JS files

          -

          - In order to add your own js and - css files, you will need to modify - the read write permissions of - - ui/src/lab/index.html and - then include the references of the - css files. -

          - -

          - (Note: - ui/src/lab/index.html is - currently a read-only file. In - order to write to it you will - need to modify its read write - permissions by doing a - - chmod 755 "path/file/" ). - The syntax for adding css file to - index.html is as follows: -

          - -
          -                  <link rel="stylesheet" href="css/YOURSTYLE.css" />
          -		
          -
          -

          - Similarly, you can add js and - other files by including their - references in the - - ui/src/lab/index.html file - as shown below for a js file. -

          - -
          -		  <script type="text/javascript" src="js/YOURJS.js" > </script >
          -		
          -
          -

          - -
          -
          - - -
          - - - - - -
          - -
          - -
          - - -
          - -
          -
          - - diff --git a/build/help/images/Sitemap.png b/build/help/images/Sitemap.png deleted file mode 100755 index caed78f..0000000 Binary files a/build/help/images/Sitemap.png and /dev/null differ diff --git a/build/help/images/content.png b/build/help/images/content.png deleted file mode 100755 index 1fe2673..0000000 Binary files a/build/help/images/content.png and /dev/null differ diff --git a/build/help/images/html-id-specific-experiment-page-design.png b/build/help/images/html-id-specific-experiment-page-design.png deleted file mode 100755 index 3012c96..0000000 Binary files a/build/help/images/html-id-specific-experiment-page-design.png and /dev/null differ diff --git a/build/help/images/html-id-specific-lab-page-design.png b/build/help/images/html-id-specific-lab-page-design.png deleted file mode 100755 index e428727..0000000 Binary files a/build/help/images/html-id-specific-lab-page-design.png and /dev/null differ diff --git a/build/help/images/html-lab-page-design.png b/build/help/images/html-lab-page-design.png deleted file mode 100755 index 01554e0..0000000 Binary files a/build/help/images/html-lab-page-design.png and /dev/null differ diff --git a/build/help/images/newsitemap.png b/build/help/images/newsitemap.png deleted file mode 100755 index 8c47c73..0000000 Binary files a/build/help/images/newsitemap.png and /dev/null differ diff --git a/build/help/images/sections.png b/build/help/images/sections.png deleted file mode 100755 index ba3f3ce..0000000 Binary files a/build/help/images/sections.png and /dev/null differ diff --git a/build/help/index.html b/build/help/index.html deleted file mode 100755 index e09fea7..0000000 --- a/build/help/index.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/help/makefile b/build/help/makefile deleted file mode 100755 index d13a499..0000000 --- a/build/help/makefile +++ /dev/null @@ -1,3 +0,0 @@ -all: - - dot -Tpng content.dot -o images/content.png \ No newline at end of file diff --git a/build/images/3d_bar_chart.png b/build/images/3d_bar_chart.png deleted file mode 100755 index 0e6b516..0000000 Binary files a/build/images/3d_bar_chart.png and /dev/null differ diff --git a/build/images/applications_system.png b/build/images/applications_system.png deleted file mode 100755 index 84d1152..0000000 Binary files a/build/images/applications_system.png and /dev/null differ diff --git a/build/images/blockheader.png b/build/images/blockheader.png deleted file mode 100755 index b19c4e2..0000000 Binary files a/build/images/blockheader.png and /dev/null differ diff --git a/build/images/checkbox.png b/build/images/checkbox.png deleted file mode 100755 index 7938d8d..0000000 Binary files a/build/images/checkbox.png and /dev/null differ diff --git a/build/images/close_button-icon.png b/build/images/close_button-icon.png deleted file mode 100755 index b22737a..0000000 Binary files a/build/images/close_button-icon.png and /dev/null differ diff --git a/build/images/coep_logo_sim.png b/build/images/coep_logo_sim.png deleted file mode 100755 index fdd792c..0000000 Binary files a/build/images/coep_logo_sim.png and /dev/null differ diff --git a/build/images/content_bg.jpg b/build/images/content_bg.jpg deleted file mode 100755 index 2c431cf..0000000 Binary files a/build/images/content_bg.jpg and /dev/null differ diff --git a/build/images/cut.png b/build/images/cut.png deleted file mode 100755 index f215d6f..0000000 Binary files a/build/images/cut.png and /dev/null differ diff --git a/build/images/door.png b/build/images/door.png deleted file mode 100755 index 369fc46..0000000 Binary files a/build/images/door.png and /dev/null differ diff --git a/build/images/download (1).png b/build/images/download (1).png deleted file mode 100755 index 71580d1..0000000 Binary files a/build/images/download (1).png and /dev/null differ diff --git a/build/images/dynamicAnchorBg.jpg b/build/images/dynamicAnchorBg.jpg deleted file mode 100755 index da2ff16..0000000 Binary files a/build/images/dynamicAnchorBg.jpg and /dev/null differ diff --git a/build/images/edit_clear.png b/build/images/edit_clear.png deleted file mode 100755 index 28ad765..0000000 Binary files a/build/images/edit_clear.png and /dev/null differ diff --git a/build/images/empty.png b/build/images/empty.png deleted file mode 100755 index 22e105d..0000000 Binary files a/build/images/empty.png and /dev/null differ diff --git a/build/images/feedback.png b/build/images/feedback.png deleted file mode 100755 index a41c3bc..0000000 Binary files a/build/images/feedback.png and /dev/null differ diff --git a/build/images/file.gif b/build/images/file.gif deleted file mode 100755 index 7e62167..0000000 Binary files a/build/images/file.gif and /dev/null differ diff --git a/build/images/folder.gif b/build/images/folder.gif deleted file mode 100755 index 2b31631..0000000 Binary files a/build/images/folder.gif and /dev/null differ diff --git a/build/images/footer-curve.jpg b/build/images/footer-curve.jpg deleted file mode 100755 index 45446a7..0000000 Binary files a/build/images/footer-curve.jpg and /dev/null differ diff --git a/build/images/footer_b.png b/build/images/footer_b.png deleted file mode 100755 index 4018d14..0000000 Binary files a/build/images/footer_b.png and /dev/null differ diff --git a/build/images/footer_s.png b/build/images/footer_s.png deleted file mode 100755 index f930843..0000000 Binary files a/build/images/footer_s.png and /dev/null differ diff --git a/build/images/footer_t.png b/build/images/footer_t.png deleted file mode 100755 index 38344f9..0000000 Binary files a/build/images/footer_t.png and /dev/null differ diff --git a/build/images/formula1.png b/build/images/formula1.png deleted file mode 100755 index b3cc186..0000000 Binary files a/build/images/formula1.png and /dev/null differ diff --git a/build/images/gnome_session_switch.png b/build/images/gnome_session_switch.png deleted file mode 100755 index 61cf023..0000000 Binary files a/build/images/gnome_session_switch.png and /dev/null differ diff --git a/build/images/gnome_system_run.png b/build/images/gnome_system_run.png deleted file mode 100755 index 47798cf..0000000 Binary files a/build/images/gnome_system_run.png and /dev/null differ diff --git a/build/images/graph.png b/build/images/graph.png deleted file mode 100755 index 8caaaa5..0000000 Binary files a/build/images/graph.png and /dev/null differ diff --git a/build/images/grid.gif b/build/images/grid.gif deleted file mode 100755 index ee2839f..0000000 Binary files a/build/images/grid.gif and /dev/null differ diff --git a/build/images/header-blue.gif b/build/images/header-blue.gif deleted file mode 100755 index 92d68a9..0000000 Binary files a/build/images/header-blue.gif and /dev/null differ diff --git a/build/images/header.jpg b/build/images/header.jpg deleted file mode 100755 index efa714c..0000000 Binary files a/build/images/header.jpg and /dev/null differ diff --git a/build/images/header.png b/build/images/header.png deleted file mode 100755 index 7147b0a..0000000 Binary files a/build/images/header.png and /dev/null differ diff --git a/build/images/header_01.jpg b/build/images/header_01.jpg deleted file mode 100755 index 063ae42..0000000 Binary files a/build/images/header_01.jpg and /dev/null differ diff --git a/build/images/header_03.jpg b/build/images/header_03.jpg deleted file mode 100755 index bb2a62a..0000000 Binary files a/build/images/header_03.jpg and /dev/null differ diff --git a/build/images/img01.gif b/build/images/img01.gif deleted file mode 100755 index 1cc9918..0000000 Binary files a/build/images/img01.gif and /dev/null differ diff --git a/build/images/img02.jpg b/build/images/img02.jpg deleted file mode 100755 index 030a851..0000000 Binary files a/build/images/img02.jpg and /dev/null differ diff --git a/build/images/img03.gif b/build/images/img03.gif deleted file mode 100755 index 24fa212..0000000 Binary files a/build/images/img03.gif and /dev/null differ diff --git a/build/images/img04.jpg b/build/images/img04.jpg deleted file mode 100755 index 1dde6af..0000000 Binary files a/build/images/img04.jpg and /dev/null differ diff --git a/build/images/img05.jpg b/build/images/img05.jpg deleted file mode 100755 index 331aa08..0000000 Binary files a/build/images/img05.jpg and /dev/null differ diff --git a/build/images/img06.jpg b/build/images/img06.jpg deleted file mode 100755 index 709403c..0000000 Binary files a/build/images/img06.jpg and /dev/null differ diff --git a/build/images/img08.jpg b/build/images/img08.jpg deleted file mode 100755 index 07494a4..0000000 Binary files a/build/images/img08.jpg and /dev/null differ diff --git a/build/images/img082.jpg b/build/images/img082.jpg deleted file mode 100755 index d1a432a..0000000 Binary files a/build/images/img082.jpg and /dev/null differ diff --git a/build/images/img09.jpg b/build/images/img09.jpg deleted file mode 100755 index 2c65a7c..0000000 Binary files a/build/images/img09.jpg and /dev/null differ diff --git a/build/images/img092.jpg b/build/images/img092.jpg deleted file mode 100755 index 19136d2..0000000 Binary files a/build/images/img092.jpg and /dev/null differ diff --git a/build/images/img10.jpg b/build/images/img10.jpg deleted file mode 100755 index a582dc3..0000000 Binary files a/build/images/img10.jpg and /dev/null differ diff --git a/build/images/img102.jpg b/build/images/img102.jpg deleted file mode 100755 index 178f8ef..0000000 Binary files a/build/images/img102.jpg and /dev/null differ diff --git a/build/images/img11.gif b/build/images/img11.gif deleted file mode 100755 index 3f0120d..0000000 Binary files a/build/images/img11.gif and /dev/null differ diff --git a/build/images/index_05.jpg b/build/images/index_05.jpg deleted file mode 100755 index 744433b..0000000 Binary files a/build/images/index_05.jpg and /dev/null differ diff --git a/build/images/line.png b/build/images/line.png deleted file mode 100755 index fd99c27..0000000 Binary files a/build/images/line.png and /dev/null differ diff --git a/build/images/logo.jpg b/build/images/logo.jpg deleted file mode 100755 index 30d2139..0000000 Binary files a/build/images/logo.jpg and /dev/null differ diff --git a/build/images/logout.png b/build/images/logout.png deleted file mode 100755 index 3effe46..0000000 Binary files a/build/images/logout.png and /dev/null differ diff --git a/build/images/navshadow.gif b/build/images/navshadow.gif deleted file mode 100755 index 992d5c3..0000000 Binary files a/build/images/navshadow.gif and /dev/null differ diff --git a/build/images/page_white_copy.png b/build/images/page_white_copy.png deleted file mode 100755 index a9f31a2..0000000 Binary files a/build/images/page_white_copy.png and /dev/null differ diff --git a/build/images/page_white_delete.png b/build/images/page_white_delete.png deleted file mode 100755 index af1ecaf..0000000 Binary files a/build/images/page_white_delete.png and /dev/null differ diff --git a/build/images/page_white_edit.png b/build/images/page_white_edit.png deleted file mode 100755 index b93e776..0000000 Binary files a/build/images/page_white_edit.png and /dev/null differ diff --git a/build/images/page_white_paste.png b/build/images/page_white_paste.png deleted file mode 100755 index 5b2cbb3..0000000 Binary files a/build/images/page_white_paste.png and /dev/null differ diff --git a/build/images/preferences_system.png b/build/images/preferences_system.png deleted file mode 100755 index b9f9613..0000000 Binary files a/build/images/preferences_system.png and /dev/null differ diff --git a/build/images/refresh.png b/build/images/refresh.png deleted file mode 100755 index 16637ee..0000000 Binary files a/build/images/refresh.png and /dev/null differ diff --git a/build/images/rssicon.png b/build/images/rssicon.png deleted file mode 100755 index 5c8c57b..0000000 Binary files a/build/images/rssicon.png and /dev/null differ diff --git a/build/images/safari-checkbox.png b/build/images/safari-checkbox.png deleted file mode 100755 index afcf047..0000000 Binary files a/build/images/safari-checkbox.png and /dev/null differ diff --git a/build/images/system_preferences.png b/build/images/system_preferences.png deleted file mode 100755 index 7a919d9..0000000 Binary files a/build/images/system_preferences.png and /dev/null differ diff --git a/build/images/theme_30_black_matte.png b/build/images/theme_30_black_matte.png deleted file mode 100755 index f109d07..0000000 Binary files a/build/images/theme_30_black_matte.png and /dev/null differ diff --git a/build/images/theme_30_black_tie.png b/build/images/theme_30_black_tie.png deleted file mode 100755 index 33b59fe..0000000 Binary files a/build/images/theme_30_black_tie.png and /dev/null differ diff --git a/build/images/theme_30_blitzer.png b/build/images/theme_30_blitzer.png deleted file mode 100755 index dba2bdd..0000000 Binary files a/build/images/theme_30_blitzer.png and /dev/null differ diff --git a/build/images/theme_30_cupertino.png b/build/images/theme_30_cupertino.png deleted file mode 100755 index 5bfa024..0000000 Binary files a/build/images/theme_30_cupertino.png and /dev/null differ diff --git a/build/images/theme_30_dark_hive.png b/build/images/theme_30_dark_hive.png deleted file mode 100755 index c6db40a..0000000 Binary files a/build/images/theme_30_dark_hive.png and /dev/null differ diff --git a/build/images/theme_30_dot_luv.png b/build/images/theme_30_dot_luv.png deleted file mode 100755 index b03472b..0000000 Binary files a/build/images/theme_30_dot_luv.png and /dev/null differ diff --git a/build/images/theme_30_eggplant.png b/build/images/theme_30_eggplant.png deleted file mode 100755 index cd5b485..0000000 Binary files a/build/images/theme_30_eggplant.png and /dev/null differ diff --git a/build/images/theme_30_excite_bike.png b/build/images/theme_30_excite_bike.png deleted file mode 100755 index 3e1ec9c..0000000 Binary files a/build/images/theme_30_excite_bike.png and /dev/null differ diff --git a/build/images/theme_30_flick.png b/build/images/theme_30_flick.png deleted file mode 100755 index e0fca78..0000000 Binary files a/build/images/theme_30_flick.png and /dev/null differ diff --git a/build/images/theme_30_hot_sneaks.png b/build/images/theme_30_hot_sneaks.png deleted file mode 100755 index 70aaf1f..0000000 Binary files a/build/images/theme_30_hot_sneaks.png and /dev/null differ diff --git a/build/images/theme_30_humanity.png b/build/images/theme_30_humanity.png deleted file mode 100755 index 7a5e044..0000000 Binary files a/build/images/theme_30_humanity.png and /dev/null differ diff --git a/build/images/theme_30_le_frog.png b/build/images/theme_30_le_frog.png deleted file mode 100755 index fc95e6b..0000000 Binary files a/build/images/theme_30_le_frog.png and /dev/null differ diff --git a/build/images/theme_30_mint_choco.png b/build/images/theme_30_mint_choco.png deleted file mode 100755 index 1eae9de..0000000 Binary files a/build/images/theme_30_mint_choco.png and /dev/null differ diff --git a/build/images/theme_30_overcast.png b/build/images/theme_30_overcast.png deleted file mode 100755 index 0c27341..0000000 Binary files a/build/images/theme_30_overcast.png and /dev/null differ diff --git a/build/images/theme_30_pepper_grinder.png b/build/images/theme_30_pepper_grinder.png deleted file mode 100755 index 26a4b76..0000000 Binary files a/build/images/theme_30_pepper_grinder.png and /dev/null differ diff --git a/build/images/theme_30_smoothness.png b/build/images/theme_30_smoothness.png deleted file mode 100755 index ac7adeb..0000000 Binary files a/build/images/theme_30_smoothness.png and /dev/null differ diff --git a/build/images/theme_30_south_street.png b/build/images/theme_30_south_street.png deleted file mode 100755 index f278200..0000000 Binary files a/build/images/theme_30_south_street.png and /dev/null differ diff --git a/build/images/theme_30_start_menu.png b/build/images/theme_30_start_menu.png deleted file mode 100755 index 02101ea..0000000 Binary files a/build/images/theme_30_start_menu.png and /dev/null differ diff --git a/build/images/theme_30_sunny.png b/build/images/theme_30_sunny.png deleted file mode 100755 index d111379..0000000 Binary files a/build/images/theme_30_sunny.png and /dev/null differ diff --git a/build/images/theme_30_swanky_purse.png b/build/images/theme_30_swanky_purse.png deleted file mode 100755 index 2c2094c..0000000 Binary files a/build/images/theme_30_swanky_purse.png and /dev/null differ diff --git a/build/images/theme_30_trontastic.png b/build/images/theme_30_trontastic.png deleted file mode 100755 index efa6aae..0000000 Binary files a/build/images/theme_30_trontastic.png and /dev/null differ diff --git a/build/images/theme_30_ui_dark.png b/build/images/theme_30_ui_dark.png deleted file mode 100755 index d068579..0000000 Binary files a/build/images/theme_30_ui_dark.png and /dev/null differ diff --git a/build/images/theme_30_ui_light.png b/build/images/theme_30_ui_light.png deleted file mode 100755 index 4e9e3e2..0000000 Binary files a/build/images/theme_30_ui_light.png and /dev/null differ diff --git a/build/images/theme_30_windoze.png b/build/images/theme_30_windoze.png deleted file mode 100755 index 858e88f..0000000 Binary files a/build/images/theme_30_windoze.png and /dev/null differ diff --git a/build/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/build/images/ui-bg_gloss-wave_35_f6a828_500x100.png deleted file mode 100755 index efa714c..0000000 Binary files a/build/images/ui-bg_gloss-wave_35_f6a828_500x100.png and /dev/null differ diff --git a/build/img/1.gif b/build/img/1.gif deleted file mode 100755 index 91e099d..0000000 Binary files a/build/img/1.gif and /dev/null differ diff --git a/build/img/1.png b/build/img/1.png deleted file mode 100755 index 1688b50..0000000 Binary files a/build/img/1.png and /dev/null differ diff --git a/build/img/11.png b/build/img/11.png deleted file mode 100755 index aa1c536..0000000 Binary files a/build/img/11.png and /dev/null differ diff --git a/build/img/12.png b/build/img/12.png deleted file mode 100755 index 963c621..0000000 Binary files a/build/img/12.png and /dev/null differ diff --git a/build/img/123.gif b/build/img/123.gif deleted file mode 100755 index c1840ae..0000000 Binary files a/build/img/123.gif and /dev/null differ diff --git a/build/img/2.gif b/build/img/2.gif deleted file mode 100755 index fb7d274..0000000 Binary files a/build/img/2.gif and /dev/null differ diff --git a/build/img/2.png b/build/img/2.png deleted file mode 100755 index 240a4ee..0000000 Binary files a/build/img/2.png and /dev/null differ diff --git a/build/img/3.gif b/build/img/3.gif deleted file mode 100755 index 9166be0..0000000 Binary files a/build/img/3.gif and /dev/null differ diff --git a/build/img/3.png b/build/img/3.png deleted file mode 100755 index 7fc216e..0000000 Binary files a/build/img/3.png and /dev/null differ diff --git a/build/img/4.gif b/build/img/4.gif deleted file mode 100755 index cc1ed8a..0000000 Binary files a/build/img/4.gif and /dev/null differ diff --git a/build/img/5.gif b/build/img/5.gif deleted file mode 100755 index 6b2578e..0000000 Binary files a/build/img/5.gif and /dev/null differ diff --git a/build/img/5.png b/build/img/5.png deleted file mode 100755 index f203228..0000000 Binary files a/build/img/5.png and /dev/null differ diff --git a/build/img/6.gif b/build/img/6.gif deleted file mode 100755 index 11106d1..0000000 Binary files a/build/img/6.gif and /dev/null differ diff --git a/build/img/7.gif b/build/img/7.gif deleted file mode 100755 index 3a346bb..0000000 Binary files a/build/img/7.gif and /dev/null differ diff --git a/build/img/8.gif b/build/img/8.gif deleted file mode 100755 index fdb04a8..0000000 Binary files a/build/img/8.gif and /dev/null differ diff --git a/build/img/content_1.png b/build/img/content_1.png deleted file mode 100755 index 704ace5..0000000 Binary files a/build/img/content_1.png and /dev/null differ diff --git a/build/img/content_2.png b/build/img/content_2.png deleted file mode 100755 index f485044..0000000 Binary files a/build/img/content_2.png and /dev/null differ diff --git a/build/img/content_4.png b/build/img/content_4.png deleted file mode 100755 index b8ebd01..0000000 Binary files a/build/img/content_4.png and /dev/null differ diff --git a/build/img/content_5.png b/build/img/content_5.png deleted file mode 100755 index f6d8727..0000000 Binary files a/build/img/content_5.png and /dev/null differ diff --git a/build/img/content_95.png b/build/img/content_95.png deleted file mode 100755 index 25011b1..0000000 Binary files a/build/img/content_95.png and /dev/null differ diff --git a/build/img/download.png b/build/img/download.png deleted file mode 100755 index dfb9f90..0000000 Binary files a/build/img/download.png and /dev/null differ diff --git a/build/img/image001.gif b/build/img/image001.gif deleted file mode 100755 index 05561d0..0000000 Binary files a/build/img/image001.gif and /dev/null differ diff --git a/build/img/image001.jpg b/build/img/image001.jpg deleted file mode 100755 index 3bddc91..0000000 Binary files a/build/img/image001.jpg and /dev/null differ diff --git a/build/img/image001.png b/build/img/image001.png deleted file mode 100755 index 5eaab7b..0000000 Binary files a/build/img/image001.png and /dev/null differ diff --git a/build/img/image002.gif b/build/img/image002.gif deleted file mode 100755 index c55add3..0000000 Binary files a/build/img/image002.gif and /dev/null differ diff --git a/build/img/image002.jpg b/build/img/image002.jpg deleted file mode 100755 index cc26471..0000000 Binary files a/build/img/image002.jpg and /dev/null differ diff --git a/build/img/image0021.gif b/build/img/image0021.gif deleted file mode 100755 index ba94f78..0000000 Binary files a/build/img/image0021.gif and /dev/null differ diff --git a/build/img/image00234.jpg b/build/img/image00234.jpg deleted file mode 100755 index 7943cfd..0000000 Binary files a/build/img/image00234.jpg and /dev/null differ diff --git a/build/img/image003.gif b/build/img/image003.gif deleted file mode 100755 index 27145d2..0000000 Binary files a/build/img/image003.gif and /dev/null differ diff --git a/build/img/image003.jpg b/build/img/image003.jpg deleted file mode 100755 index 395ae1f..0000000 Binary files a/build/img/image003.jpg and /dev/null differ diff --git a/build/img/image0031.gif b/build/img/image0031.gif deleted file mode 100755 index 9d55339..0000000 Binary files a/build/img/image0031.gif and /dev/null differ diff --git a/build/img/image00322.gif b/build/img/image00322.gif deleted file mode 100755 index 4748730..0000000 Binary files a/build/img/image00322.gif and /dev/null differ diff --git a/build/img/image004.gif b/build/img/image004.gif deleted file mode 100755 index 8425363..0000000 Binary files a/build/img/image004.gif and /dev/null differ diff --git a/build/img/image004.jpg b/build/img/image004.jpg deleted file mode 100755 index 6fd2fac..0000000 Binary files a/build/img/image004.jpg and /dev/null differ diff --git a/build/img/image0041.gif b/build/img/image0041.gif deleted file mode 100755 index 5b89ad1..0000000 Binary files a/build/img/image0041.gif and /dev/null differ diff --git a/build/img/image005.jpg b/build/img/image005.jpg deleted file mode 100755 index 7c706a5..0000000 Binary files a/build/img/image005.jpg and /dev/null differ diff --git a/build/img/image005.png b/build/img/image005.png deleted file mode 100755 index 0069e64..0000000 Binary files a/build/img/image005.png and /dev/null differ diff --git a/build/img/image0051.gif b/build/img/image0051.gif deleted file mode 100755 index 9f51c64..0000000 Binary files a/build/img/image0051.gif and /dev/null differ diff --git a/build/img/image006 (1).jpg b/build/img/image006 (1).jpg deleted file mode 100755 index 5b41e44..0000000 Binary files a/build/img/image006 (1).jpg and /dev/null differ diff --git a/build/img/image006.gif b/build/img/image006.gif deleted file mode 100755 index 102b733..0000000 Binary files a/build/img/image006.gif and /dev/null differ diff --git a/build/img/image006.jpg b/build/img/image006.jpg deleted file mode 100755 index 5b41e44..0000000 Binary files a/build/img/image006.jpg and /dev/null differ diff --git a/build/img/image006.png b/build/img/image006.png deleted file mode 100755 index 119ee5d..0000000 Binary files a/build/img/image006.png and /dev/null differ diff --git a/build/img/image0061.gif b/build/img/image0061.gif deleted file mode 100755 index 3c9dbb0..0000000 Binary files a/build/img/image0061.gif and /dev/null differ diff --git a/build/img/image007.gif b/build/img/image007.gif deleted file mode 100755 index e75abda..0000000 Binary files a/build/img/image007.gif and /dev/null differ diff --git a/build/img/image007.jpg b/build/img/image007.jpg deleted file mode 100755 index 81eeeef..0000000 Binary files a/build/img/image007.jpg and /dev/null differ diff --git a/build/img/image0071.gif b/build/img/image0071.gif deleted file mode 100755 index 3c9dbb0..0000000 Binary files a/build/img/image0071.gif and /dev/null differ diff --git a/build/img/image008.gif b/build/img/image008.gif deleted file mode 100755 index 7ea7be1..0000000 Binary files a/build/img/image008.gif and /dev/null differ diff --git a/build/img/image008.jpg b/build/img/image008.jpg deleted file mode 100755 index cbfeaa0..0000000 Binary files a/build/img/image008.jpg and /dev/null differ diff --git a/build/img/image0081.gif b/build/img/image0081.gif deleted file mode 100755 index eab8b58..0000000 Binary files a/build/img/image0081.gif and /dev/null differ diff --git a/build/img/image009.gif b/build/img/image009.gif deleted file mode 100755 index 08efd5c..0000000 Binary files a/build/img/image009.gif and /dev/null differ diff --git a/build/img/image009.jpg b/build/img/image009.jpg deleted file mode 100755 index daed2b5..0000000 Binary files a/build/img/image009.jpg and /dev/null differ diff --git a/build/img/image0091.gif b/build/img/image0091.gif deleted file mode 100755 index eab8b58..0000000 Binary files a/build/img/image0091.gif and /dev/null differ diff --git a/build/img/image010.gif b/build/img/image010.gif deleted file mode 100755 index 2b07adb..0000000 Binary files a/build/img/image010.gif and /dev/null differ diff --git a/build/img/image010.jpg b/build/img/image010.jpg deleted file mode 100755 index f0c422c..0000000 Binary files a/build/img/image010.jpg and /dev/null differ diff --git a/build/img/image0101.gif b/build/img/image0101.gif deleted file mode 100755 index 82fd0ac..0000000 Binary files a/build/img/image0101.gif and /dev/null differ diff --git a/build/img/image011.gif b/build/img/image011.gif deleted file mode 100755 index bb65b28..0000000 Binary files a/build/img/image011.gif and /dev/null differ diff --git a/build/img/image011.jpg b/build/img/image011.jpg deleted file mode 100755 index c897533..0000000 Binary files a/build/img/image011.jpg and /dev/null differ diff --git a/build/img/image012 (1).gif b/build/img/image012 (1).gif deleted file mode 100755 index 81f2fe7..0000000 Binary files a/build/img/image012 (1).gif and /dev/null differ diff --git a/build/img/image012 (1).jpg b/build/img/image012 (1).jpg deleted file mode 100755 index 1b59dc6..0000000 Binary files a/build/img/image012 (1).jpg and /dev/null differ diff --git a/build/img/image012.gif b/build/img/image012.gif deleted file mode 100755 index 0a5a60a..0000000 Binary files a/build/img/image012.gif and /dev/null differ diff --git a/build/img/image012.jpg b/build/img/image012.jpg deleted file mode 100755 index 1b59dc6..0000000 Binary files a/build/img/image012.jpg and /dev/null differ diff --git a/build/img/image0121.gif b/build/img/image0121.gif deleted file mode 100755 index 0187c12..0000000 Binary files a/build/img/image0121.gif and /dev/null differ diff --git a/build/img/image01222.jpg b/build/img/image01222.jpg deleted file mode 100755 index 1b59dc6..0000000 Binary files a/build/img/image01222.jpg and /dev/null differ diff --git a/build/img/image013.gif b/build/img/image013.gif deleted file mode 100755 index e23dcae..0000000 Binary files a/build/img/image013.gif and /dev/null differ diff --git a/build/img/image013.jpg b/build/img/image013.jpg deleted file mode 100755 index 93758a1..0000000 Binary files a/build/img/image013.jpg and /dev/null differ diff --git a/build/img/image014.gif b/build/img/image014.gif deleted file mode 100755 index 58a9fcd..0000000 Binary files a/build/img/image014.gif and /dev/null differ diff --git a/build/img/image014.jpg b/build/img/image014.jpg deleted file mode 100755 index c6671b0..0000000 Binary files a/build/img/image014.jpg and /dev/null differ diff --git a/build/img/image0141.gif b/build/img/image0141.gif deleted file mode 100755 index f90b1c7..0000000 Binary files a/build/img/image0141.gif and /dev/null differ diff --git a/build/img/image015.jpg b/build/img/image015.jpg deleted file mode 100755 index 30ef83b..0000000 Binary files a/build/img/image015.jpg and /dev/null differ diff --git a/build/img/image016.gif b/build/img/image016.gif deleted file mode 100755 index cd95759..0000000 Binary files a/build/img/image016.gif and /dev/null differ diff --git a/build/img/image0161.gif b/build/img/image0161.gif deleted file mode 100755 index 4ff5637..0000000 Binary files a/build/img/image0161.gif and /dev/null differ diff --git a/build/img/image0181.gif b/build/img/image0181.gif deleted file mode 100755 index 92c806d..0000000 Binary files a/build/img/image0181.gif and /dev/null differ diff --git a/build/img/image1.jpg b/build/img/image1.jpg deleted file mode 100755 index b54c0df..0000000 Binary files a/build/img/image1.jpg and /dev/null differ diff --git a/build/img/image101.jpg b/build/img/image101.jpg deleted file mode 100755 index 1414655..0000000 Binary files a/build/img/image101.jpg and /dev/null differ diff --git a/build/img/image102.jpg b/build/img/image102.jpg deleted file mode 100755 index 246dc25..0000000 Binary files a/build/img/image102.jpg and /dev/null differ diff --git a/build/img/image11.png b/build/img/image11.png deleted file mode 100755 index 09af540..0000000 Binary files a/build/img/image11.png and /dev/null differ diff --git a/build/img/image123.gif b/build/img/image123.gif deleted file mode 100755 index 8e7735f..0000000 Binary files a/build/img/image123.gif and /dev/null differ diff --git a/build/img/image2.gif b/build/img/image2.gif deleted file mode 100755 index 8a1c95d..0000000 Binary files a/build/img/image2.gif and /dev/null differ diff --git a/build/img/image21.gif b/build/img/image21.gif deleted file mode 100755 index 03f7e0c..0000000 Binary files a/build/img/image21.gif and /dev/null differ diff --git a/build/img/image8.gif b/build/img/image8.gif deleted file mode 100755 index aabfea4..0000000 Binary files a/build/img/image8.gif and /dev/null differ diff --git a/build/img/proc.png b/build/img/proc.png deleted file mode 100755 index f485044..0000000 Binary files a/build/img/proc.png and /dev/null differ diff --git a/build/img/r(1).jpg b/build/img/r(1).jpg deleted file mode 100755 index 10050a9..0000000 Binary files a/build/img/r(1).jpg and /dev/null differ diff --git a/build/img/r2.JPG b/build/img/r2.JPG deleted file mode 100755 index 74133a8..0000000 Binary files a/build/img/r2.JPG and /dev/null differ diff --git a/build/img/showimage.png b/build/img/showimage.png deleted file mode 100755 index 9285822..0000000 Binary files a/build/img/showimage.png and /dev/null differ diff --git a/build/img/simulation.jpg b/build/img/simulation.jpg deleted file mode 100755 index b8ebd01..0000000 Binary files a/build/img/simulation.jpg and /dev/null differ diff --git a/build/index.html b/build/index.html deleted file mode 100755 index 126b480..0000000 --- a/build/index.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - Virtual Labs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          - - - - - - - - - - - diff --git a/build/js/Plc.js b/build/js/Plc.js deleted file mode 100755 index 2c5423c..0000000 --- a/build/js/Plc.js +++ /dev/null @@ -1,1872 +0,0 @@ -//using closure to craete diagrams -var l1 = 20,l2 = 20, /*series */counttimer = 1, l =50 /*parallel */,seriesSegment = [] , j =40,p=0,xpos=0,up = 0,complexmode = 0,lt=0,flag = -1; -var paper,add = [],state = [],cnt=0,y,y1= 0,b = 0,cl=0,countcomplex = 0 ,mode = 1,delaycounter,toff = [],counterflag =0/*branch */; -var x = 30, k = 5,noofRung =0,m = 55,n = 50,rungpos =0,countrung = 0,bottomline = [], rectobj,cc,psval,en,acc,cu,countercount =1; -var collection = [],countsegment = 0,dwn,stc ,seriescount=0,rect = [],segid = 0,r = 0,run=0,s,bl=0,index=0,xlen=0,seg=-1,rectout = [];ind =0; -var timerflag = 0,latchflag = [],text,stt,t1=0,f=1,latchstate=[],presetinfo=0,ypos=0,outname=0, timect =0,delaycounter = 0,Dolstarter =0 ,incdistance = 0;; -var Timer = [],Counter = [],top = 163 , resetchk = false , CounterNode = [] ,yval , latchbox = [] , outputchk = 0 ,node1,node2, secondnode ,firstnode = 1 , line = [],len = 0; -var dn,obj,pid = false ,AC = false,textDATA , objAC; -var createseries = function() -{ - - for(l1 = 20 ; l1 <=720;l1 = l1 +100) - { - seg++; - - seriesSegment[seg] = paper.path("M "+l1+" "+l2+" l 90 0 ").attr({stroke: "black"}); - seriesSegment[seg].x = l1; - seriesSegment[seg].id = seg; - //alert("seg: "+seriesSegment[seg].x+" id : "+seriesSegment[seg].id) - - } - -}; -var createparallel = function() -{ - //l = l+y1+p; - //k=5; - //alert(p) - l = p + l; - //p = 0; - //alert("counter "+p+"l : "+l) - var parallelSegment = paper.path("M 20 "+l+" l 0 "+y1+" "); - l = l+y1; - l2 = l + l2; - //p = p + l; //new parallel line - //alert(" p : "+p+"l "+l) - createseries(); - outname++; - noofRung = 0,b = l,x = 30; //reseting all values used in makking rung - //l2 = l2 + 20;l = l + 20;j = 40;//reseting box values - j = 40; - //if(latchflag[latchflag.length-1] == 0) - // state.length = 0; - //alert("Parallel state len "+state.length) - //cnt=0//reseting the state - n = p + n ; - //alert("n : "+n+" P : "+p) - rungpos =0; - m = 55,run = 0,seriescount=0;; - k = l+k+5; - p = l + 5; - //alert("k "+k+" p "+p) -} -var drawrung = function(positionx,ypos) -{ - //alert("b. : "+b) - xlen=b+50; - x = positionx -10; //branch on new segment - y1 = ypos + b; - //alert("1 "+y1) - if(noofRung < 5) - { - - var line = paper.path("M "+x+" "+y1+" l 0 50 "); - y1 = y1+50; - bottomline[bl] = paper.path("M "+x+" "+y1+" l 70 0 ").attr({stroke: "black"}) - x= x +70; - var line = paper.path("M "+x+" "+y1+" l 0 -50 ").attr({stroke: "black"}); - x = x+10; //new branch on same segment - noofRung++; - bl++ - seriescount++; - } - else - alert("You can Add only 5 Rung") - -} - -var createcomplex = function(xpos,ypos) -{ - - if(firstnode==1){ - node1 = xpos - 20; - alert("Select next node and click on add complex button") - firstnode = 0 - secondnode =1; - - } - else if(secondnode == 1){ - var node2 = ypos //it should take the k - node2x = xpos; - var no = node2x - node1 + 60 - var line = paper.path("M "+node1+" "+node2+" l 0 "+(50+xlen)+" ")//l 180 0 - //alert("y before: "+y+"x: "+x) - node2= node2+xlen+50 - //alert("y after: "+y+"x: "+x) - bottomline[bl] = paper.path("M "+node1+" "+node2+" l "+(no)+" 0"); - node1=node1+no; - //alert("x: "+x) - var line= paper.path("M "+node1+" "+node2+" l 0 -"+(node2-20)+" ") - bl++; - seriescount++; - k=5+p+node2-20 - //alert(" K : "+k+" P "+p+" node2 "+node2) - - secondnode = 0 - firstnode = 1 - //ypos = ypos + no; - m =node1 - 20; - n = node2 + 25; - - } - else - alert("SYANTAX ERROR: Node has to be selected first") - -} -var createrung = function(positionx,positiony) -{ - seriesSegment[positionx]; - drawrung(positionx,positiony); - b= b+50; -} -Raphael.fn.createbox = function(j,st,status) - { - //alert("countcomplex "+countcomplex) - if(countrung != 0) - { - //alert(k) - k = rect[r-1].k - 15 + 50 ; //for creting box on rung - //alert(k) - j = xpos; - //alert(j) - // m = 50;//X - //n= n+50;//Y - countrung--; - } - if(countcomplex == 2) - { - j = node2x; - //countcomplex = 0 - incdistance = incdistance + 20; //increaemnet distance between 2 segmenst - countcomplex = 0; - - } - else - { - //to draw a box on new segement - seriescount++; - //alert("createbox "+k) - } - var k1 = k - if(st==1 && status ==0 || st == 0 && status == 1) - rect[r] = paper.rect(j,k1,50,30).attr({fill : "green"}) // - else - rect[r] = paper.rect(j,k1,50,30).attr({fill : "white"}) - k1 = k1+15; - line[len++] = paper.path("M "+j+" "+k1+" l 15 0 l 0 10 l 5 0"); - j = j+15 - line[len++] = paper.path("M "+j+" "+k1+" l 0 -10 l 5 0");//+15 - if(status ==1) - { - var l =k1+10; - line[r] = paper.path("M "+j+" "+l+" l 20 -20"); - } - j = j+20; - line[len++] = paper.path("M "+j+" "+k1+" l 0 10 l -5 0");//+35 - line[len++]= paper.path("M "+j+" "+k1+" l 0 -10 l -5 0"); - line[len] = paper.path("M "+j+" "+k1+" l 15 0"); - m = j - 20 - n = k1 + 25; - //alert("CRETE INPUT "+m+" n "+n) - rect[r].segid = r; - rect[r].j = j; - rect[r].k = k1; - rect[r].line = len; - //alert("create xpos "+rect[r].j +" ypos "+rect[r].k) - r++; - len++; - return rect[r-1]; - } - -var showinfo = function(ad,s,chk,xpos,ypos,ro,r) -{ - var boxj =0; - - $("#information").dialog({ - autoOpen: true, - height: 300, - closeOnEscape : true, - draggable : true, - resizable : true, - width: 300, - create : function() { - $("#show").append( - "" + ad +" :"+ "" + - "" + s + "") - }, - buttons : { - "Toggle": function() - { - if(s==1) - state[ro] = 0; - else - state[ro] = 1; - - if(counterflag != 0) - CounterNode[CounterNode.length-1].State = state[ro] - if(Dolstarter == 1) - { - for(var i =0;i"+ " ->"+ "" + - "" + state[ro] + "" + "" - ) //find remove function and den add value - if(chk == 0) - {//$.("#option").delegate("div","click",null,function(e){ - //}) - k = ypos -15; - //alert(k) - var bx = paper.createbox(xpos,state[ro],0) - bx.node.onclick = function() - { - latchstate[latchstate.length-1] = 0 - xpos = bx.j - 35; - ypos = bx.k; - //seriescount --; - //alert("xpos in onclick : "+xpos) - //alert("state of ro "+state[ro]+" rectobj : "+ro) - showinfo(collection[ro].Address,state[ro],chk,xpos,ypos,ro) - - } - } - else - { - k = ypos -15; - //alert(k) - var bx = paper.createbox(xpos,state[ro],1) - bx.node.onclick = function() - { - latchstate[latchstate.length-1] = 1 - //var rectobj = bx.segid; - xpos = bx.j - 35; - ypos = bx.k; - //seriescount --; - // alert("close : state of ro "+state[ro]+" rectobj : "+ro) - showinfo(collection[ro].Address,state[ro],chk,xpos,ypos,ro) - - } - } - //outname=1; - // alert("outputchk "+outputchk) - if(outputchk == 1 && AC == false ){ - textDATA.remove() ; - calculate();} - else if(AC == true){ - var y = state[state.length-1]; - //alert("toggle Y : "+y+" objAC "+objAC) - objAC.calculateAC(y); - outputchk =1 - } - $( this ).dialog( "close" ); - $( "#result" ).append( "" + - "" + ad +" :"+ "" + - "" + state[ro] + "" + "" + "Toggled value"+"" ); - }, - "Add Rung": function() - { - if(mode == 2) //only togglling depends on mode n mode =2 whn it enters into execution state - alert("Go into Development Mode to add Circuit") - else - { - createrung(xpos,ypos); - m = xpos + 20 - n = ypos + 70; - //alert("m: "+m+" n "+n) //creating rung on selected element - countrung++; - - } - - }, - "Add Complex": function() - { - complexmode = 1 - if(mode == 2) - alert("Go into Development Mode to add Circuit") - else - { - //alert("complex: xpos "+xpos+" ypos "+ypos) - createcomplex(xpos,ypos) - xlen= 70 + b - - if(countcomplex<2) - { - xlen = xlen+ypos; - //alert("xlen IN cc "+xlen+" YPOS "+ypos) - cc=countsegment - countcomplex; - //countrung++; - countcomplex++; - // alert(" countcomplex "+countcomplex) - cl =countcomplex - 1 - $( this ).dialog( "close" ); - } - } - }, - "Delete" : function() - { - var ll = r.line; - //alert("len : "+ll+"r.line : "+r.line) - for(var i=ll-4;i" + - "" + $('#addressinfo').val() +" :"+ "" + - "" + $('#valueinfo').val() + "" - //"" + " "+"" - ); //RESULT should also show changed values - add[cnt] = $('#addressinfo').val(); - state[cnt] = $('#valueinfo').val(); - var json = {"Address" : ad,"State" : s , "Segment" : countsegment} - collection.push(json); - countsegment++; - $( this ).dialog( "close" ); - $('#addressinfo').val(""); - $('#valueinfo').val(""); - cnt = cnt +1; - - if(check == 0) - { - //if(x<30) //x values for box adjuctment - // alert("before creating box no rect "+j) - var r = paper.createbox(j,state[cnt-1],0) - r.node.onclick = function() - { - var rectobj = r.segid; - xpos = r.j - 35; - var ypos = r.k; - m = xpos + 20 - n = ypos + 70; - //alert("Done "+m+" n "+n) - if(ypos0) - addressbox(0) - else - for(var i =0 ;i" + "Y"+outname +" : "+"" + "" + yval + "" + "") //output calculation - } - - } -} - -var autorefresh = function() -{ - if(timect" + "" + "En :" + "" + "" + stt+ "" + "" + - "" + "" + "dn :" + "" + "" + dnstate+ "" + "" + - "" + "" + "Acc :" + "" + "" + accstate+ "" + "" ) - - - var json = {"Address" : "T"+counttimer+".en","State" : stt } - Timer.push(json); - var json = {"Address" : "T"+counttimer+".dn","State" : dnstate } - Timer.push(json); - var json = {"Address" : "T"+counttimer+".Acc","State" : accstate } - Timer.push(json); - -} - -var calculateTOff = function() -{ - var dnstate = 1; - dnk = dn.k-15; //after running box gets mispalced dats y -15 is done - enk = en.k - 15 - acck = acc.k-15 - for(var i =0;i< state.length ; i++) - { - if(state[i] == 1 && state[i-1] == 0 || state[i] == 0 && state[i-1] == 1 || state[i] == 0 && state[i-1] == 0 || state[i] == 0 ) - { - stt = 0; - toff[t1] = stt; - t1++; - } - if(state[i] == 1 && state[i-1] == 1 || state[i] == 1 ) - { - stt = 1 - toff[t1] = stt; - t1++; - } - } - var en1 = paper.createoutput(stt,enk,-1) - if(toff[0] == 0 && toff.length == 1){ - dnstate = 0; - timect = 0; - var dn1 = paper.createoutput(0,dnk,-1) - var acc1 = paper.createoutput(0,acck,-1) - $("#Acc").html("Acc : 0") - } - else if (toff[toff.length - 1 ] == 0 && toff[toff.length - 2 ] == 1) { - - dnstate = 1; - accstate = 1 - var dn1 = paper.createoutput(1,dnk,-1) - var acc1 = paper.createoutput(1,acck,-1) - presetinfo =$("#preset").val(); - //alert("preset info : "+presetinfo+" psval "+psval) - $('input:radio[name=time]').click(function() { - psval = $('input:radio[name=time]:checked').val() - }) - psval = psval * 1000 - delaycounter = ( presetinfo * psval ) - //alert("delay counter "+delaycounter) - /*if(psval == 10) - psval = psval /1000*/ - interval = (presetinfo / delaycounter) * 1000 - //alert("psval "+psval) - autorefresh(); - dnstate = 0; - - //alert(timect) - //alert(""+timect+" psval "+psval+" presetinfo "+presetinfo+" delaycounter "+delaycounter+" interval "+interval) - } - else { - dnstate = 1; - accstate = 0; - timect =0; - //alert(timect) - var dn1 = paper.createoutput(1,dnk,-1) - var acc1 = paper.createoutput(0,acck,-1) - $("#Acc").html("Acc : 0") - } - - //alert(toff[toff.length - 1 ]+" "+toff[toff.length - 2 ]) - //for indicating the green line on segments - var line = seriescount - bottomline.length; - for(var i=0;i"+"" + "En :" + "" + "" + stt+ "" + "" + - ""+"" + "dn :" + "" + "" + dnstate+ "" + "" + - ""+"" + "dn :" + "" + "" + accstate+ "" + "" ); - - var json = {"Address" : "T"+counttimer+".en","State" : stt } - Timer.push(json); - var json = {"Address" : "T"+counttimer+".dn","State" : dnstate } - Timer.push(json); - var json = {"Address" : "T"+counttimer+".Acc","State" : accstate } - Timer.push(json); -} -var createupcounter = function() -{ - counterflag =1 //for detecting wether user has selected timer - var counter = paper.rect(570,k,150,120).attr({fill : "white"}) - var line = paper.path("M 720 20 l 20 0").attr({stroke : "black"}) - var k = 5 +p - cu = paper.createoutput(0,k,-1) - $("#counterup").show("fast") - $("#cname").html("Counter : C"+countercount) - countercount++; - var cutext = paper.text(700,k+15,"CU").attr({ - 'font-size': 12 }); - - var line = paper.path("M 720 75 l 50 0").attr({stroke : "black"}) - k=k+55 - dn = paper.createoutput(0,k,-1) - var dntext = paper.text(700,k+15,"DN").attr({'font-size': 12 }) - p = p +100; - //alert("counter "+p) - var json = {"Address" : collection[collection.length-1].Address ,"State" : state[state.length-1] } - //alert("Address"+collection[collection.length-1].Address+"State"+state[state.length-1]) - CounterNode.push(json) -} -var createdowncounter = function() -{ - counterflag =-1 //for detecting wether user has selected timer - var counter = paper.rect(570,k,150,120).attr({fill : "white"}) - var line = paper.path("M 720 20 l 20 0").attr({stroke : "black"}) - var k = 5 +p - cu = paper.createoutput(0,k,-1) - $("#counterdwn").show("fast") - $("#cname").html("Counter : C"+countercount) - $("#presetdwncntr").html("0") - $("#Accdwncntr").val("") - countercount++; - var cutext = paper.text(700,k+15,"CU").attr({ - 'font-size': 12 }); - - var line = paper.path("M 720 75 l 50 0").attr({stroke : "black"}) - k=k+55 - dn = paper.createoutput(0,k,-1) - var dntext = paper.text(700,k+15,"DN").attr({'font-size': 12 }) - p = p +100; - var json = {"Address" : collection[collection.length-1].Address ,"State" : state[state.length-1] } - //alert("Address"+collection[collection.length-1].Address+"State"+state[state.length-1]) - CounterNode.push(json) -} -var createreset = function(st) -{ - resetchk = true; - o = 740; - //alert(resetchk) - var k1 = k - - if(st==1) - reset = paper.rect(o,k1,50,30).attr({fill : "green"}) - else - reset = paper.rect(o,k1,50,30).attr({fill : "white"}) - k1=k1+15 - var line = paper.path("M "+o+" "+k1+" l 15 0 "); - o =o+20; - k1 = k1-8 - var circle = paper.path("M "+o+" "+k1+" c -5 10 -5 16 0 20") //12 - o =o+5; - var text = paper.text(o,k1+8,"R").attr({ 'font-size': 15 }) - o=o+5; - var circle = paper.path("M "+o+" "+k1+" c 5 10 5 16 0 20")//12 - o = o+2; - k1 = k1 + 8 - var line = paper.path("M "+o+" "+k1+" l 17 0")//20 - j =35; - reset.k = k1; - return reset -} - -var calculateUpcntr = function(stc) -{ -//alert("up") - var dnstate = 0; - dnk = dn.k-15; //after running box gets mispalced dats y -15 is done - cuk = cu.k - 15 - /*for(var i =0;i< state.length ; i++) - { - if(state[i] == 1 && state[i-1] == 0 || state[i] == 0 && state[i-1] == 1 || state[i] == 0 && state[i-1] == 0 || state[i] == 0 ) - stc = 0; - - if(state[i] == 1 && state[i-1] == 1 || state[i] == 1 ) { - stc =1 ; up ++; - } - }*/ - - var total = $("#presetupcnt").val(); -// $("#Accupcntr").html("Acc : 0") - if(stc == 1) - { - up ++; - //alert("stc : "+stc) - var en1 = paper.createoutput(1,cuk,-1) - var dn1 = paper.createoutput(0,dnk,-1) - $("#Accupcntr").html("Acc : "+up) - } - - else - { - var en1 = paper.createoutput(0,cuk,-1) - var dn1 = paper.createoutput(0,dnk,-1) - } - if(up == total ){ dnstate = 1; - var en1 = paper.createoutput(1,dnk,-1) } - else - var dn1 = paper.createoutput(0,dnk,-1) - - - //saving value in Counter value - var json = {"Address" : "C"+countercount+".cu","State" : stc } - Counter.push(json); - var json = {"Address" : "C"+countercount+".dn","State" : dnstate } - Counter.push(json); - - //showing value on table - var line = seriescount - bottomline.length; - for(var i=0;i"+"" + "cu :" + "" + "" + stc+ "" + "" + - ""+"" + "dn :" + "" + "" + dnstate+ "" + "" ) - - //counterflag = 0; -} -var calculatedwncntr = function(stc) -{ - var dnstate = 0; - dnk = dn.k-15; //after running box gets mispalced dats y -15 is done - cuk = cu.k - 15 - - dwn = $("#Accdwncntr").val(); -// alert("stc "+stc+"dwn : "+dwn) - //var en1 = paper.createoutput(stc,cuk,-1) - if(stc == 1) - { - dwn-- - //alert("dwn : "+dwn) - var en1 = paper.createoutput(1,cuk,-1) - var dn1 = paper.createoutput(1,dnk,-1) - $("#Accdwncntr").val(dwn); - dnstate = 1 - } - else - { - var en1 = paper.createoutput(0,cuk,-1) - var dn1 = paper.createoutput(1,dnk,-1) - dnstate= 1 - } - - if(dwn == 0) { - var dn1 = paper.createoutput(0,dnk) - dnstate = 0;} - else - var dn1 = paper.createoutput(1,dnk) - - - //saving value in Counter value - var json = {"Address" : "C"+countercount+".cd","State" : stc } - Counter.push(json); - var json = {"Address" : "C"+countercount+".dn","State" : dnstate } - Counter.push(json); - - //showing value on table - var line = seriescount - bottomline.length; - for(var i=0;i"+"" + "cd :" + "" + "" + stc+ "" + "" + - ""+"" + "dn :" + "" + "" + dnstate+ "" + "" ) - //counterflag = 0 -} - -var PidOperation = function(){ //class called pidoperation - - var k1 = k; - this.action - this.type; - this.kp; - this.setpoint; - this.max; - this.min - this.p0; - this.ep - this.control; - this.mode; - this.error = false; - this.manualip; - - this.createPidBlock = function() - { - //check wetehr input is given or not - var x = 570 - var pidbox = paper.rect(x,k1,150,120).attr({fill : "white" , 'stroke-width': 1 }); - k1 = k1+ 30 ; - var fbin = paper.text(x+20 , k1 , "FBIN").attr({'font-size': 13 }) - var connect = paper.path("M "+x+" "+k1+" l -60 0 l 0 100 l 280 0 l 0 -100 l -70 0 ").attr({stroke: "red" ,'stroke-width': 1 }) - var fbin = paper.text(690 , k1 , "FBOUT").attr({'font-size': 13 }) - k1 = k1 + 60 - var inputline = paper.text(590 , k1 , "IN").attr({'font-size': 13 }) - var line = paper.path("M "+x+" "+k1+" l -10 0") - var outputline = paper.text(690 , k1 , "OUT").attr({'font-size': 13 }) - x=x+155 - var line = paper.path("M "+x+" "+k1+" l -5 0") - $("#pidconfg").show("fast"); - $("#pido").attr({ 'disabled' : true}); - p =p + 200 - pid = true; - } - this.togglechk = function() - { - if($('#chk').is(':checked')) - $('#actionconf :input').attr('disabled', true); - else - $('#actionconf :input').removeAttr('disabled'); - alert("Set the Configuration for the control You selected") - } - this.selmode = function() - { - for (var i=0; i < 2; i++) - { - if (document.pidshow.radio[i].checked) - this.mode = document.pidshow.radio[i].value; - } - if( this.mode == "auto"){ - $("#actionconf").show("slidedown"); - $("#chk").show("slidedown"); - $("#chkl").show("slidedown"); - $("#manualdata").hide(); - this.mode= "Auto"; - } - else if( this.mode == "manual"){ - //alert("off "+this.mode) - $("#actionconf").hide() - $("#chk").hide() - $("#chkl").hide() - $("#manualdata").show(); - sc = 1; - this.mode = "Manual"; - - } - $("#result").append(""+"" + "Mode :" + "" + "" + this.mode+ "" + "" ); - } - this.configuration = function() - { - var s,a; - for (var i=0; i < 2; i++) - { - if (document.pidshow.radioa[i].checked) - this.action = document.pidshow.radioa[i].value; - } - for (var i=0; i < document.pidshow.radioc.length; i++) - { - if (document.pidshow.radioc[i].checked) - this.control = document.pidshow.radioc[i].value; - } - if(this.control != "p" && this.action != "") - $("#typeconf").show("slidedown") - else - { $("#typeconf").hide(); - $("#result").append(""+"" + "Action :" + "" + "" + this.action+ "" + "" + - ""+"" + "Control :" + "" + "" + this.control+ "" + ""); - } - - } - this.typeconfiguration = function() - { - for (var i=0; i < 2; i++) - { - if (document.pidshow.radiot[i].checked) - this.type = document.pidshow.radiot[i].value; - } - $("#result").append(""+"" + "Action :" + "" + "" + this.action+ "" + "" + - ""+"" + "Control :" + "" + "" + this.control+ "" + "" + - ""+"" + "Type :" + "" + "" + this.type+ "" + "") - } - //var scopeEp = this - this.calcultaeEp = function(sp,max,min,input) - { - - if(isNaN(input)) - alert("Enter Input") - var ep = (input - sp)/(max - min) * 100; - - return ep; - } - this.calculateControl = function(ctrl,ep , Control) - { - //alert(Control.Kp+" "+Control.Bios+" Control : "+ctrl+" ep "+ep+" "+Control.T+" kI "+Control.Ki) - var type = this.type; - var self = this; - switch(ctrl) - { - case "p" : self.p = (Control.Kp * ep + Control.P0); - //alert(" Calc : "+self.p) - return self.p; - break; - case "pi": switch(type) - { - case "non-interacting" : self.p = (Control.Kp * ep) + Control.Ki * (ep * Control.T) +Control.Bios; - // alert(" Calc NI: "+self.p) - return self.p; - break; - case "interacting" : self.p = (Control.Kp * ep) + (Control.Kp* Control.Ki) *(ep * Control.T) +Control.Bios; - // alert(" Calc i: "+self.p) - return self.p; - break; - } - break; - case "pd": switch(type) - { - case "non-interacting" : self.p = (Control.Kp * ep) + Control.Kd /* derivative of Ep */ +control.P0; - return self.p; - break; - case "interacting" : self.p = (Control.Kp * ep) + (Control.Kp* Control.Kd) /* derivative of Ep */ +control.P0; - return self.p; - break; - } - break; - case "pid":switch(type) - { - case "non-interacting" : self.p = (Control.Kp * ep) + Control.Ki *(ep * Control.T)/* integration of ep */+ Control.Kd /* derivative of Ep */ +control.Bios; - return self.p; - break; - case "interacting" : self.p = (Control.Kp * ep) + ((Control.Kp* Control.Ki) * (ep * Control.T) /* integration of ep */) + ((Control.Kp* Control.Kd) /* derivative of Ep */) +control.Bios; - return self.p; - break; - } - break; - } - } - this.AcceptValues = function(cntrl) - { - this.sp = parseFloat($("#sp").val()) - this.max = parseInt($("#max").val()) - this.min = parseInt($("#min").val()) - if(this.sp>60 ||this.sp < 40) { - alert("Enter Setpoint in range of (40 -60)") ; this.sp = 0;} - if((this.max >100 || this.max<0) || (this.min >100 || this.min<0)) { - alert("Enter the values in range of (0 -100)") - this.max = 0 ; this.min = 0;} - //this.Ep = this.calcultaeEp( this.sp , this.max , this.min); - switch(cntrl) - { - case "p" : this.kp = parseFloat($("#kp").val()) - //alert("case "+this.error) - if(this.kp>1 ||this.kp < 0.01) { - this.error = true; - alert("Enter Proportional gain in range of (0.01-1)") ; this.kp = 0;} - this.p0 = parseFloat($("#p0").val()) - if(this.p0>60 ||this.p0 < 40) { - this.error = true; - alert("Enter Proportional Bias in range of (40 -60)") ; this.p0 = 0;} - $("#result").append(""+"" + "Kp :" + "" + "" + this.kp+ "" + "" + - ""+"" + " P0 :" + "" + "" + this.p0+ "" + "" ) - break; - case "pi": this.kp = parseFloat($("#kppni").val()) - this.bios = parseFloat($("#bios").val()) - this.ki = parseFloat($("#ki").val()) * 1000 //to convert in millisecond - this.t = parseInt($("#tpni").val()) - $("#result").append(""+"" + "Kp :" + "" + "" + this.kp+ "" + "" + - ""+"" + " P(0) :" + "" + "" + this.bios+ "" + "" + - ""+"" + " Ki :" + "" + "" + this.ki+ "" + "" + - ""+"" + " T :" + "" + "" + this.t+ "" + "" ); - - break; - case "pd": this.kp = parseFloat($("#kppnd").val()) - this.p0= parseFloat($("#p0pnd").val()) - this.kd = parseFloat($("#kd").val()) * 1000 //to convert in millisecond - this.t = parseInt($("#tpnd").val()) - $("#result").append(""+"" + "Kp :" + "" + "" + this.kp+ "" + "" + - ""+"" + " P0 :" + "" + "" + this.p0+ "" + "" + - ""+"" + " Kd :" + "" + "" + this.kd+ "" + "" + - ""+"" + " T :" + "" + "" + this.t+ "" + "") - - break; - case "pid": this.kp = parseFloat($("#kppndni").val()) - this.p0 = parseFloat($("#p0pndni").val()) - this.ki = parseFloat($("#kipndni").val())* 1000 //to convert in millisecond - this.kd = parseFloat($("#kdpndni").val())* 1000 //to convert in millisecond - this.t = parseInt($("#tpnind").val()) - $("#result").append(""+"" + "Kp :" + "" + "" + this.kp+ "" + "" + - ""+"" + " P0 :" + "" + "" + this.p0+ "" + "" + - ""+"" + " Ki :" + "" + "" + this.ki+ "" + "" + - ""+"" + " Kd :" + "" + "" + this.kd+ "" + "" + - ""+"" + " T :" + "" + "" + this.t+ "" + "") - - break; - } - } - - this.showdata = function() - { - //alert("in " + this.mode ) - if(this.mode == "Auto") - { - //alert(this.sp+" "+this.max+" "+this.min) - this.Ep = this.calcultaeEp( this.sp , this.max , this.min , this.input); - //this.ControllerOutput = scope.AcceptValues(cntrl); - //alert(" EP : "+this.Ep+" "+this.control) - var cntrl = this.control - switch(cntrl) - { - case "p" :// alert(this.kp+" "+this.p0) - var Control = {"Kp" : this.kp, "P0" : this.p0 } - //alert(Control.Kp+" "+Control.P0+" EP : "+this.Ep) - this.ControllerOutput = this.calculateControl("p", this.Ep, Control); - //alert(" Out "+this.ControllerOutput) - break; - - case "pi": var Control = {"Kp" : this.kp, "Bios" : this.bios , "Ki" : this.ki , "T": this.t} - this.ControllerOutput = this.calculateControl("pi", this.Ep, Control); - //alert(" Out "+this.ControllerOutput) - break; - - case "pd": var Control = {"Kp" : this.kp, "P0" : this.p0 , "Kd" : this.kd , "T": this.t} - this.ControllerOutput = this.calculateControl("pd", this.Ep, Control); - //alert(" Out "+this.ControllerOutput) - break; - case "pid": var Control = {"Kp" : this.kp, "P0" : this.p0 , "Ki" : this.ki , "Kd" : this.kd , "T": this.t} - this.ControllerOutput = this.calculateControl("pid", this.Ep, Control); - //alert(" Out "+this.ControllerOutput) - break; - } - if(isNaN(this.Ep) && isNaN(this.ControllerOutput)) - alert("Please Enter All the Values") - else if(isFinite(this.Ep) == false && isFinite(this.ControllerOutput) == false ) - { }//alert("Enter all the Values in given Range") - else - { if(this.action == "reverse") - this.ControllerOutput = (-this.ControllerOutput) - $("#result").append(""+"" + "Ep :" + "" + "" + this.Ep+ "" + "" + - ""+"" + "Controller Output :" + "" + "" + this.ControllerOutput.toFixed(2)+ "" + ""); - $("#pido").html(this.ControllerOutput.toFixed(2)) - } - } - else - { this.manualip = $("#manualinput").val(); - //alert(this.mode+" "+this.manualip) - $("#pido").html(this.manualip); - $("#result").append(""+"" + "Ep :" + "" + "" + this.manualip+ "" + "" ); - } - //if(outputchk == 1) - //$("#pido").html(this.ControllerOutput) - } - this.calculation = function() - { - var cntrl = this.control ; - var scope = this; //storing the state of this pointer - $( "#internalinfo" ).dialog({ - draggable : true, - closeOnEscape : true, - resizable : true, - height: 500, - width: 300, - modal: true, - create: function(){ - $("#ep").show(); - var html = ""; - $("#internalinfo").append(html); - switch(cntrl) - { - case "p" : $("#pinfo").show(); - break; - case "pi": $("#pniinfo").show(); - break; - case "pd": $("#pndinfo").show(); - break; - case "pid": $("#pnindinfo").show() - break; - } - }, - buttons : { - - "Submit" : function(){ - var confirmval = confirm("Do You Want To Submit the values ?") - if(confirmval){ - outputchk = 1 - scope.AcceptValues(cntrl); - $("#result").append(""+"" + " SetPoint :" + "" + "" + scope.sp+ "" + "" + - ""+"" + " Maximum :" + " " + "" + scope.max+ "" + "" + - ""+"" + " Minimum :" + "" + "" + scope.min+ "" + "" ); - //alert(scope.error) - if(scope.error == false) - $( this ).dialog( "close" );} - else - $( this ).dialog( "close" ); - //alert(" EP : "+scope.Ep+" "+this.ControllerOutput) - - } - } - - }); - } - var self = this; //preseving the current object - this.pidAttributeBlock = function(obj) - { - - $("#chk").hide(); - $("#chkl").hide(); - $( "#dialog-pid" ).dialog({ - draggable : true, - closeOnEscape : true, - height: 400, - width: 400, - modal: true, - resizable : true, - create: function(){ - //$("#ep").show(); - $("#pidattr").show("fast"); - }, - buttons : { - "Set Configuration" : function(){ - //sc = 1; - self.calculation(); - $( this ).dialog( "close" ); //using the preserved object - }, - "Done" : function() - { - // if(sc ==1) - $( this ).dialog( "close" ); - //else - //alert("Set the Configuration for the control You selected") - } - } - }); - } - this.getTime = function() - { - var dTime = new Date(); - var hours = dTime.getHours(); - var minute = dTime.getMinutes(); - var period = "AM"; - var time - if (hours > 12) - period = "PM" - else - period = "AM"; - - hours = ((hours > 12) ? hours - 12 : hours) - time = hours+"."+minute - - return time; - - } - var self = this - this.drawGraph =function() - { - $("#graphdiv").show(); - - /*var time = self.getTime(); - time =parseFloat(time); - alert( time ); - var d1 = [[time,10],[(time = time+1.20),20],[(time = time+1.20),30],[(time = time+1.20),40],[(time = time+1.20),90]]; - $.plot($("#graph"), [ d1]);*/ - - var xVal = self.getTime();; - var data = [[],[]]; - - var plot = $.plot($("#graph"),data); - - function getData() - { - // This could be an ajax call back. - var yVal1 = Math.floor(Math.random()*11); - var yVal2 = Math.floor(Math.random()*11); - - var datum1 = [xVal, yVal1]; - var datum2 = [xVal, yVal2]; - - data[0].push(datum1); - data[1].push(datum2); - - /* if(data[0].length>10){ - // only allow ten points - - data[0] = data[0].splice(1); - data[1] = data[1].splice(1); - } -*/ - //xVal++; - xVal = self.getTime();; - plot.setData(data); - plot.setupGrid(); - plot.draw(); - } - setInterval(getData, 1000); - } - -} - -function digits(n) { return 1+Math.floor(Math.log(n)/Math.log(10)) }; -function AdvanceConstruction() //CLASS FOR ADVANCE CONSTRUCTION -{ - var k1 = k; - this.A ; - this.B; - this.C; - this.collectionAC; - this.type; - this.add1; - this.add2; - this.add3; - this.carry; - this.createblock = function(type) - { - var x = 500; - k1 = k1 +p - this.type =type; - //alert(this.type) - var acbox = paper.rect(x,k1,250,110).attr({fill : "white" , 'stroke-width': 1 }); - $("#AcInfo").show(); - if(type == "Addition") - var text = paper.text(x+110,k1+60,"+").attr({ 'font-size': 30 }) - else if(type == "Subtraction") - var text = paper.text(x+110,k1+60,"-").attr({ 'font-size': 30 }) - else if(type == "Multiplication") - var text = paper.text(x+110,k1+60,"*").attr({ 'font-size': 30}) - else - var text = paper.text(x+110,k1+60,"/").attr({ 'font-size': 30}) - - AC = true; //USED TO CHECK IN OUTPUT WETHER ADVANCE CONSTRUCTION IS SELECTED OR NOT - $("#result").html(""+"" + " Type :" + "" + "" + this.type+ "" + ""); - p = p +80 ; - //alert(p) - //k1 = k1+p; - } - var self = this; //PRESERVE THE THIS OBJECT - this.setValues = function() - { - $("#result").html(""+"" + self.add1 +" :" + "" + "" + self.A+ "" + "" + - ""+"" + self.add2 + " :" +"" + "" + self.B+ "" + "" + - ""+"" + self.add3 +" :" +"" + "" + self.C+ "" + ""); - - var json = {"Address" : self.add1, "Value" : self.A} - this.collectionAC.push(json) - var json = {"Address" : self.add2, "Value" : self.B} - this.collectionAC.push(json) - var json = {"Address" : self.add3, "Value" : self.C} - this.collectionAC.push(json) - - } - this.drawcarry = function() - { - var x = 652; k1= k1+80; - this.carry = paper.set() - var r = paper.rect(x,k1,10,12).attr({ 'stroke-width': 1 }); - var l = paper.path("M "+(x+5)+" "+(k1+15)+" l 0 40") - var t = paper.text((x+7),(k1+60),"Carry").attr({ 'font-size': 15}) - this.carry.push(r);this.carry.push(l);this.carry.push(t); - } - this.calculateAC = function(y) - { - var scope = this - if(y ==1 ) - { - if(this.type == "Addition"){ - this.C = this.A + this.B; - var Noofdigits = digits(this.C) - //alert(Noofdigits) - if(Noofdigits == 5 || Noofdigits>5 ) - scope.drawcarry(); - else - if(this.carry != undefined) this.carry.remove(); - - } - else if(this.type == "Subtraction") - this.C = this.A - this.B; - - else if(this.type == "Multiplication"){ - this.C = this.A * this.B; - var Noofdigits = digits(this.C) - if(Noofdigits == 5 || Noofdigits>5 ) - scope.drawcarry(); - else - if(this.carry != undefined) this.carry.remove(); - } - - else if(this.type == "Division") - this.C = this.A / this.B; - - var line = seriescount - bottomline.length; - for(var i=0;iClick on the Link :") - } - else - { - $('#tabs').tabs(); - $("#graphdiv").hide(); - paper = new Raphael(document.getElementById('board'), 860, 1500); - createseries(); - $('#addressbar').show("fast"); - - $("#counterup").hide() - $("#counterdwn").hide(); - - $("#base").hide() - $("#preset").hide() - $("#Acc").hide(); - - $("#pr").hide(); - $("#a").hide(); - $("#Timers").hide(); - $('input:radio[name=time]').click(function() { - psval = $('input:radio[name=time]:checked').val() - }) - $("#pidconfg").hide(); - $("#pidattr").hide(); - $("#actionconf").hide(); - $("#manualdata").hide(); - $("#typeconf").hide() - $("#pinfo").hide() - $("#pniinfo ").hide(); - $("#pndinfo ").hide(); - $("#pnindinfo").hide(); - $("#ep").hide(); - $("#AcInfo").hide(); - $("#pidattr").buttonset(); - $("#typeconf").buttonset(); - $("#pidattribute").button(); - $("#preset").html("Preset : "+psval) - - $('#tabs-2').click(function() - { - $("#base").show("fast") - $("#preset").show("fast") - $("#Acc").show("fast"); - $("#pr").show("fast") - $("#a").show("fast"); - }); - $("#graphbutton").hide(); - $("#graph").hide(); - $('#dev').click(function() - { mode = 1;$("#board").show(); if(pid == true ){ - $("#pidconfg").show();} }); - $('#con').click(function() - { mode = 1;$("#board").show(); if(pid == true ){ - $("#pidconfg").show();} }); - $('#tim').click(function() - { mode = 1;$("#board").show(); if(pid == true ){ - $("#pidconfg").show();} }); - $('#pid').click(function() - { mode = 1;$("#board").show();if(pid == true ){ - $("#pidconfg").show();} }); - $('#ai').click(function() - { mode = 1 ;$("#board").show();if(pid == true ){ - $("#pidconfg").show();}}); - var obj = new PidOperation(); //object of pidoperation - $("#pidblock").click(function() - { - obj.createPidBlock(); - $("#pidattribute").click(function(){ obj.pidAttributeBlock(obj); //dynamically open the block widout show - }); - }); - $("#pidattr").change(function(){ obj.selmode(); }); - $("#actionconf").change(function(){ obj.configuration(); }); - $("#chk").change(function(){ obj.togglechk() }); - $("#typeconf").change(function(){ obj.typeconfiguration(); }); - $("#pidinput").change(function(){obj.input = parseFloat($("#pidinput").val()) ; if(outputchk ==1) obj.showdata()}); - $("#graphdiv").click(function(){ - /*var html = "
          "; - $("#tabs-7").append(html);*/ - //alert("hi") - $("#board").hide(); - $("#pidconfg").hide(); - $("#graph").show(); - }) - //for Advanced Construction - objAC = new AdvanceConstruction(); - $("#AcAdd").click(function(){ objAC.createblock("Addition"); }); - $("#AcSub").click(function(){ objAC.createblock("Subtraction"); }); - $("#AcDiv").click(function(){ objAC.createblock("Division"); }); - $("#AcMul").click(function(){ objAC.createblock("Multiplication"); }); - $("#Address1").change(function(){objAC.add1 = $("#Address1").val(); }); - $("#Address2").change(function(){objAC.add2 = $("#Address2").val(); }); - $("#Address3").change(function(){objAC.add3 = $("#Address3").val(); }); - $("#Text1").change(function(){objAC.A = parseInt($("#Text1").val()); if(outputchk == 1) objAC.calculateAC(y)}); - $("#Text2").change(function(){objAC.B = parseInt($("#Text2").val());if(outputchk == 1) objAC.calculateAC(y)}); - $("#graphbutton").click(function(){ obj.drawGraph(); }) - $('#exe').click(function() - { mode = 2;$("#board").show(); - - if(pid == true ){ - $("#pidconfg").show(); - obj.showdata(); - $("#graphbutton").show(); - } - else if(AC == true){ - - var y = state[state.length-1]; - //alert("Y : "+y) - objAC.calculateAC(y); - outputchk =1; - } - else - calculate(); - - }); - } - }); - diff --git a/build/js/jquery-1.4.2.min.js b/build/js/jquery-1.4.2.min.js deleted file mode 100755 index 7c24308..0000000 --- a/build/js/jquery-1.4.2.min.js +++ /dev/null @@ -1,154 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.2 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Sat Feb 13 22:33:48 2010 -0500 - */ -(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, -Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& -(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, -a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== -"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, -function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
          a"; -var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, -parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= -false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= -s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, -applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; -else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, -a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== -w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, -cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= -c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); -a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, -function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); -k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), -C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= -e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& -f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; -if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", -e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, -"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, -d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, -e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); -t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| -g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, -CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, -g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, -text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, -setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= -h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== -"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, -h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& -q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; -if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

          ";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); -(function(){var g=s.createElement("div");g.innerHTML="
          ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: -function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= -{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== -"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", -d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? -a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== -1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
          ","
          "],thead:[1,"","
          "],tr:[2,"","
          "],td:[3,"","
          "],col:[2,"","
          "],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
          ","
          "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, -""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); -return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", -""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= -c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? -c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= -function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= -Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, -"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= -a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= -a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== -"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
          ").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, -serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), -function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, -global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& -e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? -"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== -false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= -false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", -c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| -d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); -g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== -1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== -"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; -if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== -"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| -c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; -this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= -this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, -e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
          "; -a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); -c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, -d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- -f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": -"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in -e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/build/js/jquery-1.7.1.min.js b/build/js/jquery-1.7.1.min.js deleted file mode 100755 index 198b3ff..0000000 --- a/build/js/jquery-1.7.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.1 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
          a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
          "+""+"
          ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
          t
          ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
          ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; -f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

          ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
          ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
          ","
          "],thead:[1,"","
          "],tr:[2,"","
          "],td:[3,"","
          "],col:[2,"","
          "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
          ","
          "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() -{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
          ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/build/js/modernizr-1.5.min.js b/build/js/modernizr-1.5.min.js deleted file mode 100755 index a1de3f7..0000000 --- a/build/js/modernizr-1.5.min.js +++ /dev/null @@ -1,28 +0,0 @@ -/*! - * Modernizr JavaScript library 1.5 - * http://www.modernizr.com/ - * - * Copyright (c) 2009-2010 Faruk Ates - http://farukat.es/ - * Dual-licensed under the BSD and MIT licenses. - * http://www.modernizr.com/license/ - * - * Featuring major contributions by - * Paul Irish - http://paulirish.com - */ - window.Modernizr=function(i,e,I){function C(a,b){for(var c in a)if(m[a[c]]!==I&&(!b||b(a[c],D)))return true}function r(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1);return!!C([a,"Webkit"+c,"Moz"+c,"O"+c,"ms"+c,"Khtml"+c],b)}function P(){j[E]=function(a){for(var b=0,c=a.length;b7)};d.historymanagement=function(){return!!(i.history&&history.pushState)};d.draganddrop=function(){return u("drag")&&u("dragstart")&&u("dragenter")&&u("dragover")&&u("dragleave")&&u("dragend")&&u("drop")};d.websockets=function(){return"WebSocket"in i};d.rgba=function(){m.cssText="background-color:rgba(150,255,150,.5)";return(""+m.backgroundColor).indexOf("rgba")!==-1};d.hsla=function(){m.cssText="background-color:hsla(120,40%,100%,.5)";return(""+ - m.backgroundColor).indexOf("rgba")!==-1};d.multiplebgs=function(){m.cssText="background:url(//:),url(//:),red url(//:)";return/(url\s*\(.*?){3}/.test(m.background)};d.backgroundsize=function(){return r("backgroundSize")};d.borderimage=function(){return r("borderImage")};d.borderradius=function(){return r("borderRadius","",function(a){return(""+a).indexOf("orderRadius")!==-1})};d.boxshadow=function(){return r("boxShadow")};d.opacity=function(){var a=y.join("opacity:.5;")+"";m.cssText=a;return(""+m.opacity).indexOf("0.5")!== - -1};d.cssanimations=function(){return r("animationName")};d.csscolumns=function(){return r("columnCount")};d.cssgradients=function(){var a=("background-image:"+y.join("gradient(linear,left top,right bottom,from(#9f9),to(white));background-image:")+y.join("linear-gradient(left top,#9f9, white);background-image:")).slice(0,-17);m.cssText=a;return(""+m.backgroundImage).indexOf("gradient")!==-1};d.cssreflections=function(){return r("boxReflect")};d.csstransforms=function(){return!!C(["transformProperty", - "WebkitTransform","MozTransform","OTransform","msTransform"])};d.csstransforms3d=function(){var a=!!C(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);if(a){var b=document.createElement("style"),c=e.createElement("div");b.textContent="@media ("+y.join("transform-3d),(")+"modernizr){#modernizr{height:3px}}";e.getElementsByTagName("head")[0].appendChild(b);c.id="modernizr";s.appendChild(c);a=c.offsetHeight===3;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}return a}; - d.csstransitions=function(){return r("transitionProperty")};d.fontface=function(){var a;if(/*@cc_on@if(@_jscript_version>=5)!@end@*/0)a=true;else{var b=e.createElement("style"),c=e.createElement("span"),h,t=false,g=e.body,o,w;b.textContent="@font-face{font-family:testfont;src:url('data:font/ttf;base64,AAEAAAAMAIAAAwBAT1MvMliohmwAAADMAAAAVmNtYXCp5qrBAAABJAAAANhjdnQgACICiAAAAfwAAAAEZ2FzcP//AAMAAAIAAAAACGdseWYv5OZoAAACCAAAANxoZWFk69bnvwAAAuQAAAA2aGhlYQUJAt8AAAMcAAAAJGhtdHgGDgC4AAADQAAAABRsb2NhAIQAwgAAA1QAAAAMbWF4cABVANgAAANgAAAAIG5hbWUgXduAAAADgAAABPVwb3N03NkzmgAACHgAAAA4AAECBAEsAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAACAAMDAAAAAAAAgAACbwAAAAoAAAAAAAAAAFBmRWQAAAAgqS8DM/8zAFwDMwDNAAAABQAAAAAAAAAAAAMAAAADAAAAHAABAAAAAABGAAMAAQAAAK4ABAAqAAAABgAEAAEAAgAuqQD//wAAAC6pAP///9ZXAwAAAAAAAAACAAAABgBoAAAAAAAvAAEAAAAAAAAAAAAAAAAAAAABAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEACoAAAAGAAQAAQACAC6pAP//AAAALqkA////1lcDAAAAAAAAAAIAAAAiAogAAAAB//8AAgACACIAAAEyAqoAAwAHAC6xAQAvPLIHBADtMrEGBdw8sgMCAO0yALEDAC88sgUEAO0ysgcGAfw8sgECAO0yMxEhESczESMiARDuzMwCqv1WIgJmAAACAFUAAAIRAc0ADwAfAAATFRQWOwEyNj0BNCYrASIGARQGKwEiJj0BNDY7ATIWFX8aIvAiGhoi8CIaAZIoN/43KCg3/jcoAWD0JB4eJPQkHh7++EY2NkbVRjY2RgAAAAABAEH/+QCdAEEACQAANjQ2MzIWFAYjIkEeEA8fHw8QDxwWFhwWAAAAAQAAAAIAAIuYbWpfDzz1AAsEAAAAAADFn9IuAAAAAMWf0i797/8zA4gDMwAAAAgAAgAAAAAAAAABAAADM/8zAFwDx/3v/98DiAABAAAAAAAAAAAAAAAAAAAABQF2ACIAAAAAAVUAAAJmAFUA3QBBAAAAKgAqACoAWgBuAAEAAAAFAFAABwBUAAQAAgAAAAEAAQAAAEAALgADAAMAAAAQAMYAAQAAAAAAAACLAAAAAQAAAAAAAQAhAIsAAQAAAAAAAgAFAKwAAQAAAAAAAwBDALEAAQAAAAAABAAnAPQAAQAAAAAABQAKARsAAQAAAAAABgAmASUAAQAAAAAADgAaAUsAAwABBAkAAAEWAWUAAwABBAkAAQBCAnsAAwABBAkAAgAKAr0AAwABBAkAAwCGAscAAwABBAkABABOA00AAwABBAkABQAUA5sAAwABBAkABgBMA68AAwABBAkADgA0A/tDb3B5cmlnaHQgMjAwOSBieSBEYW5pZWwgSm9obnNvbi4gIFJlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgT3BlbiBGb250IExpY2Vuc2UuIEtheWFoIExpIGdseXBocyBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlIEdQTCB2ZXJzaW9uIDMuYmFlYzJhOTJiZmZlNTAzMiAtIHN1YnNldCBvZiBKdXJhTGlnaHRiYWVjMmE5MmJmZmU1MDMyIC0gc3Vic2V0IG9mIEZvbnRGb3JnZSAyLjAgOiBKdXJhIExpZ2h0IDogMjMtMS0yMDA5YmFlYzJhOTJiZmZlNTAzMiAtIHN1YnNldCBvZiBKdXJhIExpZ2h0VmVyc2lvbiAyIGJhZWMyYTkyYmZmZTUwMzIgLSBzdWJzZXQgb2YgSnVyYUxpZ2h0aHR0cDovL3NjcmlwdHMuc2lsLm9yZy9PRkwAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMAA5ACAAYgB5ACAARABhAG4AaQBlAGwAIABKAG8AaABuAHMAbwBuAC4AIAAgAFIAZQBsAGUAYQBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAdABlAHIAbQBzACAAbwBmACAAdABoAGUAIABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUALgAgAEsAYQB5AGEAaAAgAEwAaQAgAGcAbAB5AHAAaABzACAAYQByAGUAIAByAGUAbABlAGEAcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAEcAUABMACAAdgBlAHIAcwBpAG8AbgAgADMALgBiAGEAZQBjADIAYQA5ADIAYgBmAGYAZQA1ADAAMwAyACAALQAgAHMAdQBiAHMAZQB0ACAAbwBmACAASgB1AHIAYQBMAGkAZwBoAHQAYgBhAGUAYwAyAGEAOQAyAGIAZgBmAGUANQAwADMAMgAgAC0AIABzAHUAYgBzAGUAdAAgAG8AZgAgAEYAbwBuAHQARgBvAHIAZwBlACAAMgAuADAAIAA6ACAASgB1AHIAYQAgAEwAaQBnAGgAdAAgADoAIAAyADMALQAxAC0AMgAwADAAOQBiAGEAZQBjADIAYQA5ADIAYgBmAGYAZQA1ADAAMwAyACAALQAgAHMAdQBiAHMAZQB0ACAAbwBmACAASgB1AHIAYQAgAEwAaQBnAGgAdABWAGUAcgBzAGkAbwBuACAAMgAgAGIAYQBlAGMAMgBhADkAMgBiAGYAZgBlADUAMAAzADIAIAAtACAAcwB1AGIAcwBlAHQAIABvAGYAIABKAHUAcgBhAEwAaQBnAGgAdABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAAAAAAgAAAAAAAP+BADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQACAQIAEQt6ZXJva2F5YWhsaQ==')}"; - e.getElementsByTagName("head")[0].appendChild(b);c.setAttribute("style","font:99px _,arial,helvetica;position:absolute;visibility:hidden");if(!g){g=s.appendChild(e.createElement("fontface"));t=true}c.innerHTML="........";c.id="fonttest";g.appendChild(c);h=c.offsetWidth*c.offsetHeight;c.style.font="99px testfont,_,arial,helvetica";a=h!==c.offsetWidth*c.offsetHeight;var v=function(){if(g.parentNode){a=j.fontface=h!==c.offsetWidth*c.offsetHeight;s.className=s.className.replace(/(no-)?fontface\b/,"")+ - (a?" ":" no-")+"fontface"}};setTimeout(v,75);setTimeout(v,150);addEventListener("load",function(){v();(w=true)&&o&&o(a);setTimeout(function(){t||(g=c);g.parentNode.removeChild(g);b.parentNode.removeChild(b)},50)},false)}j._fontfaceready=function(p){w||a?p(a):(o=p)};return a||h!==c.offsetWidth};d.video=function(){var a=e.createElement("video"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('video/ogg; codecs="theora"');b.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"');b.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return b}; - d.audio=function(){var a=e.createElement("audio"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('audio/ogg; codecs="vorbis"');b.mp3=a.canPlayType("audio/mpeg;");b.wav=a.canPlayType('audio/wav; codecs="1"');b.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")}return b};d.localStorage=function(){return"localStorage"in i&&i.localStorage!==null};d.sessionStorage=function(){try{return"sessionStorage"in i&&i.sessionStorage!==null}catch(a){return false}};d.webworkers=function(){return!!i.Worker}; - d.applicationCache=function(){var a=i.applicationCache;return!!(a&&typeof a.status!="undefined"&&typeof a.update=="function"&&typeof a.swapCache=="function")};d.svg=function(){return!!e.createElementNS&&!!e.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect};d.smil=function(){return!!e.createElementNS&&/SVG/.test(M.call(e.createElementNS("http://www.w3.org/2000/svg","animate")))};d.svgclippaths=function(){return!!e.createElementNS&&/SVG/.test(M.call(e.createElementNS("http://www.w3.org/2000/svg", - "clipPath")))};for(var z in d)if(O(d,z))N.push(((j[z.toLowerCase()]=d[z]())?"":"no-")+z.toLowerCase());j[E]||P();j.addTest=function(a,b){a=a.toLowerCase();if(!j[a]){b=!!b();s.className+=" "+(b?"":"no-")+a;j[a]=b;return j}};m.cssText="";D=n=null;(function(){var a=e.createElement("div");a.innerHTML="";return a.childNodes.length!==1})()&&function(a,b){function c(f,k){if(o[f])o[f].styleSheet.cssText+=k;else{var l=t[G],q=b[A]("style");q.media=f;l.insertBefore(q,l[G]);o[f]=q;c(f,k)}}function h(f, - k){for(var l=new RegExp("\\b("+w+")\\b(?!.*[;}])","gi"),q=function(B){return".iepp_"+B},x=-1;++x\\s*$","i");g.innerHTML=f.outerHTML.replace(/\r|\n/g," ").replace(l,f.currentStyle.display=="block"?"":"");l=g.childNodes[0];l.className+=" iepp_"+q;l=p[p.length]=[f,l];f.parentNode.replaceChild(l[1],l[0])}h(b.styleSheets,"all")});a.attachEvent("onafterprint", - function(){for(var f=-1,k;++f {a : 'a', b : {b1 : 'b1', b2 : 'b2_prime'}, c : 'c'} - /*merge: function(){ - function doCopy(copy, original) { - var value, - key, - undef, - nil, - same, - obj, - arr, - node; - - for (key in original) { - value = original[key]; - undef = typeof(value) === 'undefined'; - nil = value === null; - same = original === copy[key]; - - if (undef || nil || same) { - continue; - } - - obj = typeof(value) === 'object'; - arr = value && obj && value.constructor == Array; - node = !!value.nodeType; - - if (obj && !arr && !node) { - copy[key] = doCopy(typeof copy[key] == 'object' ? copy[key] : {}, value); - } - else { - copy[key] = original[key]; - } - } - return copy; - } - - var args = arguments, retVal = {}; - - for (var i = 0; i < args.length; i++) { - retVal = doCopy(retVal, args[i]); - } - - return retVal; - },*/ - merge: function () { // the built-in prototype merge function doesn't do deep copy - function doCopy(copy, original) { - var value, key; - - for (key in original) { - value = original[key]; - if (value && typeof value === 'object' && value.constructor !== Array && - typeof value.nodeType !== 'number') { - copy[key] = doCopy(copy[key] || {}, value); // copy - - } else { - copy[key] = original[key]; - } - } - return copy; - } - - function merge() { - var args = arguments, - i, - retVal = {}; - - for (i = 0; i < args.length; i++) { - retVal = doCopy(retVal, args[i]); - - } - return retVal; - } - - return merge.apply(this, arguments); - }, - - // extend an object to handle highchart events (highchart objects, not svg elements). - // this is a very simple way of handling events but whatever, it works (i think) - _extend: function (object) { - if (!object._highcharts_extended) { - Object.extend(object, { - _highchart_events: {}, - _highchart_animation: null, - _highcharts_extended: true, - _highcharts_observe: function (name, fn) { - this._highchart_events[name] = [this._highchart_events[name], fn].compact().flatten(); - }, - _highcharts_stop_observing: function (name, fn) { - if (name) { - if (fn) { - this._highchart_events[name] = [this._highchart_events[name]].compact().flatten().without(fn); - } else { - delete this._highchart_events[name]; - } - } else { - this._highchart_events = {}; - } - }, - _highcharts_fire: function (name, args) { - (this._highchart_events[name] || []).each(function (fn) { - // args is never null here - if (args.stopped) { - return; // "throw $break" wasn't working. i think because of the scope of 'this'. - } - - // Attach a simple preventDefault function to skip default handler if called - args.preventDefault = function () { - args.defaultPrevented = true; - }; - - // If the event handler return false, prevent the default handler from executing - if (fn.bind(this)(args) === false) { - args.preventDefault(); - } - } -.bind(this)); - } - }); - } - } -}; -}()); diff --git a/build/lib/backbone.js b/build/lib/backbone.js deleted file mode 100755 index 5d64f40..0000000 --- a/build/lib/backbone.js +++ /dev/null @@ -1,1030 +0,0 @@ -(function(){var o=this,A=o._,r=typeof StopIteration!=="undefined"?StopIteration:"__break__",k=Array.prototype,m=Object.prototype,i=k.slice,B=k.unshift,C=m.toString,p=m.hasOwnProperty,s=k.forEach,t=k.map,u=k.reduce,v=k.reduceRight,w=k.filter,x=k.every,y=k.some,n=k.indexOf,z=k.lastIndexOf;m=Array.isArray;var D=Object.keys,c=function(a){return new l(a)};if(typeof exports!=="undefined")exports._=c;o._=c;c.VERSION="1.1.1";var j=c.each=c.forEach=function(a,b,d){try{if(s&&a.forEach===s)a.forEach(b,d);else if(c.isNumber(a.length))for(var e= -0,f=a.length;e=e.computed&&(e={value:f,computed:g})});return e.value};c.min=function(a,b,d){if(!b&&c.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};j(a,function(f,g,h){g=b?b.call(d,f,g,h):f;gh?1:0}),"value")};c.sortedIndex=function(a,b,d){d=d||c.identity;for(var e=0,f=a.length;e>1;d(a[g])=0})})};c.zip=function(){for(var a=i.call(arguments),b=c.max(c.pluck(a,"length")),d=new Array(b),e=0;e=0;d--)b=[a[d].apply(this,b)];return b[0]}};c.keys=D||function(a){if(c.isArray(a))return c.range(0,a.length);var b=[];for(var d in a)if(p.call(a,d))b[b.length]=d;return b};c.values=function(a){return c.map(a,c.identity)};c.functions=c.methods=function(a){return c.filter(c.keys(a),function(b){return c.isFunction(a[b])}).sort()};c.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};c.clone=function(a){return c.isArray(a)?a.slice(0): -c.extend({},a)};c.tap=function(a,b){b(a);return a};c.isEqual=function(a,b){if(a===b)return true;var d=typeof a;if(d!=typeof b)return false;if(a==b)return true;if(!a&&b||a&&!b)return false;if(a.isEqual)return a.isEqual(b);if(c.isDate(a)&&c.isDate(b))return a.getTime()===b.getTime();if(c.isNaN(a)&&c.isNaN(b))return false;if(c.isRegExp(a)&&c.isRegExp(b))return a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline;if(d!=="object")return false;if(a.length&&a.length!== -b.length)return false;d=c.keys(a);var e=c.keys(b);if(d.length!=e.length)return false;for(var f in a)if(!(f in b)||!c.isEqual(a[f],b[f]))return false;return true};c.isEmpty=function(a){if(c.isArray(a)||c.isString(a))return a.length===0;for(var b in a)if(p.call(a,b))return false;return true};c.isElement=function(a){return!!(a&&a.nodeType==1)};c.isArray=m||function(a){return!!(a&&a.concat&&a.unshift&&!a.callee)};c.isArguments=function(a){return!!(a&&a.callee)};c.isFunction=function(a){return!!(a&&a.constructor&& -a.call&&a.apply)};c.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};c.isNumber=function(a){return a===+a||C.call(a)==="[object Number]"};c.isBoolean=function(a){return a===true||a===false};c.isDate=function(a){return!!(a&&a.getTimezoneOffset&&a.setUTCFullYear)};c.isRegExp=function(a){return!!(a&&a.test&&a.exec&&(a.ignoreCase||a.ignoreCase===false))};c.isNaN=function(a){return c.isNumber(a)&&isNaN(a)};c.isNull=function(a){return a===null};c.isUndefined=function(a){return typeof a== -"undefined"};c.noConflict=function(){o._=A;return this};c.identity=function(a){return a};c.times=function(a,b,d){for(var e=0;e/g,interpolate:/<%=([\s\S]+?)%>/g};c.template=function(a,b){var d=c.templateSettings;d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+ -a.replace(/'/g,"\\'").replace(d.interpolate,function(e,f){return"',"+f.replace(/\\'/g,"'")+",'"}).replace(d.evaluate||null,function(e,f){return"');"+f.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');";d=new Function("obj",d);return b?d(b):d};var l=function(a){this._wrapped=a};c.prototype=l.prototype;var q=function(a,b){return b?c(a).chain():a},E=function(a,b){l.prototype[a]=function(){var d=i.call(arguments); -B.call(d,this._wrapped);return q(b.apply(c,d),this._chain)}};c.mixin(c);j(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=k[a];l.prototype[a]=function(){b.apply(this._wrapped,arguments);return q(this._wrapped,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];l.prototype[a]=function(){return q(b.apply(this._wrapped,arguments),this._chain)}});l.prototype.chain=function(){this._chain=true;return this};l.prototype.value=function(){return this._wrapped}})(); - -// Backbone.js 0.3.3 -// (c) 2010 Jeremy Ashkenas, DocumentCloud Inc. -// Backbone may be freely distributed under the MIT license. -// For all details and documentation: -// http://documentcloud.github.com/backbone - -(function(){ - - // Initial Setup - // ------------- - - // The top-level namespace. All public Backbone classes and modules will - // be attached to this. Exported for both CommonJS and the browser. - var Backbone; - if (typeof exports !== 'undefined') { - Backbone = exports; - } else { - Backbone = this.Backbone = {}; - } - - // Current version of the library. Keep in sync with `package.json`. - Backbone.VERSION = '0.3.3'; - - // Require Underscore, if we're on the server, and it's not already present. - var _ = this._; - if (!_ && (typeof require !== 'undefined')) _ = require("underscore")._; - - // For Backbone's purposes, either jQuery or Zepto owns the `$` variable. - var $ = this.jQuery || this.Zepto; - - // Turn on `emulateHTTP` to use support legacy HTTP servers. Setting this option will - // fake `"PUT"` and `"DELETE"` requests via the `_method` parameter and set a - // `X-Http-Method-Override` header. - Backbone.emulateHTTP = false; - - // Turn on `emulateJSON` to support legacy servers that can't deal with direct - // `application/json` requests ... will encode the body as - // `application/x-www-form-urlencoded` instead and will send the model in a - // form param named `model`. - Backbone.emulateJSON = false; - - // Backbone.Events - // ----------------- - - // A module that can be mixed in to *any object* in order to provide it with - // custom events. You may `bind` or `unbind` a callback function to an event; - // `trigger`-ing an event fires all callbacks in succession. - // - // var object = {}; - // _.extend(object, Backbone.Events); - // object.bind('expand', function(){ alert('expanded'); }); - // object.trigger('expand'); - // - Backbone.Events = { - - // Bind an event, specified by a string name, `ev`, to a `callback` function. - // Passing `"all"` will bind the callback to all events fired. - bind : function(ev, callback) { - var calls = this._callbacks || (this._callbacks = {}); - var list = this._callbacks[ev] || (this._callbacks[ev] = []); - list.push(callback); - return this; - }, - - // Remove one or many callbacks. If `callback` is null, removes all - // callbacks for the event. If `ev` is null, removes all bound callbacks - // for all events. - unbind : function(ev, callback) { - var calls; - if (!ev) { - this._callbacks = {}; - } else if (calls = this._callbacks) { - if (!callback) { - calls[ev] = []; - } else { - var list = calls[ev]; - if (!list) return this; - for (var i = 0, l = list.length; i < l; i++) { - if (callback === list[i]) { - list.splice(i, 1); - break; - } - } - } - } - return this; - }, - - // Trigger an event, firing all bound callbacks. Callbacks are passed the - // same arguments as `trigger` is, apart from the event name. - // Listening for `"all"` passes the true event name as the first argument. - trigger : function(ev) { - var list, calls, i, l; - if (!(calls = this._callbacks)) return this; - if (list = calls[ev]) { - for (i = 0, l = list.length; i < l; i++) { - list[i].apply(this, Array.prototype.slice.call(arguments, 1)); - } - } - if (list = calls['all']) { - for (i = 0, l = list.length; i < l; i++) { - list[i].apply(this, arguments); - } - } - return this; - } - - }; - - // Backbone.Model - // -------------- - - // Create a new model, with defined attributes. A client id (`cid`) - // is automatically generated and assigned for you. - Backbone.Model = function(attributes, options) { - attributes || (attributes = {}); - if (this.defaults) attributes = _.extend({}, this.defaults, attributes); - this._constructor = function () {}; - this.attributes = {}; - this._escapedAttributes = {}; - this.cid = _.uniqueId('c'); - this.set(attributes, {silent : true}); - this._previousAttributes = _.clone(this.attributes); - if (options && options.collection) this.collection = options.collection; - this.initialize(attributes, options); - }; - - // Attach all inheritable methods to the Model prototype. - _.extend(Backbone.Model.prototype, Backbone.Events, { - - // A snapshot of the model's previous attributes, taken immediately - // after the last `"change"` event was fired. - _previousAttributes : null, - - // Has the item been changed since the last `"change"` event? - _changed : false, - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize : function(){}, - - // Return a copy of the model's `attributes` object. - toJSON : function() { - return _.clone(this.attributes); - }, - - // Get the value of an attribute. - get : function(attr) { - return this.attributes[attr]; - }, - - // Get the HTML-escaped value of an attribute. - escape : function(attr) { - var html; - if (html = this._escapedAttributes[attr]) return html; - var val = this.attributes[attr]; - return this._escapedAttributes[attr] = escapeHTML(val == null ? '' : val); - }, - - // Set a hash of model attributes on the object, firing `"change"` unless you - // choose to silence it. - set : function(attrs, options) { - - // Extract attributes and options. - options || (options = {}); - if (!attrs) return this; - if (attrs.attributes) attrs = attrs.attributes; - var now = this.attributes, escaped = this._escapedAttributes; - - // Run validation. - if (!options.silent && this.validate && !this._performValidation(attrs, options)) return false; - - // Check for changes of `id`. - if ('id' in attrs) this.id = attrs.id; - - // Update attributes. - for (var attr in attrs) { - var val = attrs[attr]; - if (!_.isEqual(now[attr], val)) { - now[attr] = val; - if (!options.silent) { - this._changed = true; - this.trigger('change:' + attr, this, val, options); - } - } - } - - // Fire the `"change"` event, if the model has been changed. - if (!options.silent && this._changed) this.change(options); - return this; - }, - - // Remove an attribute from the model, firing `"change"` unless you choose - // to silence it. - unset : function(attr, options) { - options || (options = {}); - var value = this.attributes[attr]; - - // Run validation. - var validObj = {}; - validObj[attr] = void 0; - if (!options.silent && this.validate && !this._performValidation(validObj, options)) return false; - - // Remove the attribute. - delete this.attributes[attr]; - delete this._escapedAttributes[attr]; - if (!options.silent) { - this._changed = true; - this.trigger('change:' + attr, this, void 0, options); - this.change(options); - } - return this; - }, - - // Clear all attributes on the model, firing `"change"` unless you choose - // to silence it. - clear : function(options) { - options || (options = {}); - var old = this.attributes; - - // Run validation. - var validObj = {}; - for (attr in old) validObj[attr] = void 0; - if (!options.silent && this.validate && !this._performValidation(validObj, options)) return false; - - this.attributes = {}; - this._escapedAttributes = {}; - if (!options.silent) { - this._changed = true; - for (attr in old) { - this.trigger('change:' + attr, this, void 0, options); - } - this.change(options); - } - return this; - }, - - // Fetch the model from the server. If the server's representation of the - // model differs from its current attributes, they will be overriden, - // triggering a `"change"` event. - fetch : function(options) { - options || (options = {}); - var model = this; - var success = function(resp) { - if (!model.set(model.parse(resp), options)) return false; - if (options.success) options.success(model, resp); - }; - var error = wrapError(options.error, model, options); - (this.sync || Backbone.sync)('read', this, success, error); - return this; - }, - - // Set a hash of model attributes, and sync the model to the server. - // If the server returns an attributes hash that differs, the model's - // state will be `set` again. - save : function(attrs, options) { - options || (options = {}); - if (attrs && !this.set(attrs, options)) return false; - var model = this; - var success = function(resp) { - if (!model.set(model.parse(resp), options)) return false; - if (options.success) options.success(model, resp); - }; - var error = wrapError(options.error, model, options); - var method = this.isNew() ? 'create' : 'update'; - (this.sync || Backbone.sync)(method, this, success, error); - return this; - }, - - // Destroy this model on the server. Upon success, the model is removed - // from its collection, if it has one. - destroy : function(options) { - options || (options = {}); - var model = this; - var success = function(resp) { - if (model.collection) model.collection.remove(model); - if (options.success) options.success(model, resp); - }; - var error = wrapError(options.error, model, options); - (this.sync || Backbone.sync)('delete', this, success, error); - return this; - }, - - // Default URL for the model's representation on the server -- if you're - // using Backbone's restful methods, override this to change the endpoint - // that will be called. - url : function() { - var base = getUrl(this.collection); - if (this.isNew()) return base; - return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + this.id; - }, - - // **parse** converts a response into the hash of attributes to be `set` on - // the model. The default implementation is just to pass the response along. - parse : function(resp) { - return resp; - }, - - // Create a new model with identical attributes to this one. - clone : function() { - return new this.constructor(this); - }, - - // A model is new if it has never been saved to the server, and has a negative - // ID. - isNew : function() { - return !this.id; - }, - - // Call this method to manually fire a `change` event for this model. - // Calling this will cause all objects observing the model to update. - change : function(options) { - this.trigger('change', this, options); - this._previousAttributes = _.clone(this.attributes); - this._changed = false; - }, - - // Determine if the model has changed since the last `"change"` event. - // If you specify an attribute name, determine if that attribute has changed. - hasChanged : function(attr) { - if (attr) return this._previousAttributes[attr] != this.attributes[attr]; - return this._changed; - }, - - // Return an object containing all the attributes that have changed, or false - // if there are no changed attributes. Useful for determining what parts of a - // view need to be updated and/or what attributes need to be persisted to - // the server. - changedAttributes : function(now) { - now || (now = this.attributes); - var old = this._previousAttributes; - var changed = false; - for (var attr in now) { - if (!_.isEqual(old[attr], now[attr])) { - changed = changed || {}; - changed[attr] = now[attr]; - } - } - return changed; - }, - - // Get the previous value of an attribute, recorded at the time the last - // `"change"` event was fired. - previous : function(attr) { - if (!attr || !this._previousAttributes) return null; - return this._previousAttributes[attr]; - }, - - // Get all of the attributes of the model at the time of the previous - // `"change"` event. - previousAttributes : function() { - return _.clone(this._previousAttributes); - }, - - // Run validation against a set of incoming attributes, returning `true` - // if all is well. If a specific `error` callback has been passed, - // call that instead of firing the general `"error"` event. - _performValidation : function(attrs, options) { - var error = this.validate(attrs); - if (error) { - if (options.error) { - options.error(this, error); - } else { - this.trigger('error', this, error, options); - } - return false; - } - return true; - } - - }); - - // Backbone.Collection - // ------------------- - - // Provides a standard collection class for our sets of models, ordered - // or unordered. If a `comparator` is specified, the Collection will maintain - // its models in sort order, as they're added and removed. - Backbone.Collection = function(models, options) { - options || (options = {}); - if (options.comparator) { - this.comparator = options.comparator; - delete options.comparator; - } - this._constructor = function () {}; - this._boundOnModelEvent = _.bind(this._onModelEvent, this); - this._reset(); - if (models) this.refresh(models, {silent: true}); - this.initialize(models, options); - }; - - // Define the Collection's inheritable methods. - _.extend(Backbone.Collection.prototype, Backbone.Events, { - - // The default model for a collection is just a **Backbone.Model**. - // This should be overridden in most cases. - model : Backbone.Model, - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize : function(){}, - - // The JSON representation of a Collection is an array of the - // models' attributes. - toJSON : function() { - return this.map(function(model){ return model.toJSON(); }); - }, - - // Add a model, or list of models to the set. Pass **silent** to avoid - // firing the `added` event for every new model. - add : function(models, options) { - if (_.isArray(models)) { - for (var i = 0, l = models.length; i < l; i++) { - this._add(models[i], options); - } - } else { - this._add(models, options); - } - return this; - }, - - // Remove a model, or a list of models from the set. Pass silent to avoid - // firing the `removed` event for every model removed. - remove : function(models, options) { - if (_.isArray(models)) { - for (var i = 0, l = models.length; i < l; i++) { - this._remove(models[i], options); - } - } else { - this._remove(models, options); - } - return this; - }, - - // Get a model from the set by id. - get : function(id) { - if (id == null) return null; - return this._byId[id.id != null ? id.id : id]; - }, - - // Get a model from the set by client id. - getByCid : function(cid) { - return cid && this._byCid[cid.cid || cid]; - }, - - // Get the model at the given index. - at: function(index) { - return this.models[index]; - }, - - // Force the collection to re-sort itself. You don't need to call this under normal - // circumstances, as the set will maintain sort order as each item is added. - sort : function(options) { - options || (options = {}); - if (!this.comparator) throw new Error('Cannot sort a set without a comparator'); - this.models = this.sortBy(this.comparator); - if (!options.silent) this.trigger('refresh', this, options); - return this; - }, - - // Pluck an attribute from each model in the collection. - pluck : function(attr) { - return _.map(this.models, function(model){ return model.get(attr); }); - }, - - // When you have more items than you want to add or remove individually, - // you can refresh the entire set with a new list of models, without firing - // any `added` or `removed` events. Fires `refresh` when finished. - refresh : function(models, options) { - models || (models = []); - options || (options = {}); - this._reset(); - this.add(models, {silent: true}); - if (!options.silent) this.trigger('refresh', this, options); - return this; - }, - - // Fetch the default set of models for this collection, refreshing the - // collection when they arrive. - fetch : function(options) { - options || (options = {}); - var collection = this; - var success = function(resp) { - collection.refresh(collection.parse(resp)); - if (options.success) options.success(collection, resp); - }; - var error = wrapError(options.error, collection, options); - (this.sync || Backbone.sync)('read', this, success, error); - return this; - }, - - // Create a new instance of a model in this collection. After the model - // has been created on the server, it will be added to the collection. - create : function(model, options) { - var coll = this; - options || (options = {}); - if (!(model instanceof Backbone.Model)) { - model = new this.model(model, {collection: coll}); - } else { - model.collection = coll; - } - var success = function(nextModel, resp) { - coll.add(nextModel); - if (options.success) options.success(nextModel, resp); - }; - return model.save(null, {success : success, error : options.error}); - }, - - // **parse** converts a response into a list of models to be added to the - // collection. The default implementation is just to pass it through. - parse : function(resp) { - return resp; - }, - - // Proxy to _'s chain. Can't be proxied the same way the rest of the - // underscore methods are proxied because it relies on the underscore - // constructor. - chain: function () { - return _(this.models).chain(); - }, - - // Reset all internal state. Called when the collection is refreshed. - _reset : function(options) { - this.length = 0; - this.models = []; - this._byId = {}; - this._byCid = {}; - }, - - // Internal implementation of adding a single model to the set, updating - // hash indexes for `id` and `cid` lookups. - _add : function(model, options) { - options || (options = {}); - if (!(model instanceof Backbone.Model)) { - model = new this.model(model, {collection: this}); - } - var already = this.getByCid(model); - if (already) throw new Error(["Can't add the same model to a set twice", already.id]); - this._byId[model.id] = model; - this._byCid[model.cid] = model; - model.collection = this; - var index = this.comparator ? this.sortedIndex(model, this.comparator) : this.length; - this.models.splice(index, 0, model); - model.bind('all', this._boundOnModelEvent); - this.length++; - if (!options.silent) model.trigger('add', model, this, options); - return model; - }, - - // Internal implementation of removing a single model from the set, updating - // hash indexes for `id` and `cid` lookups. - _remove : function(model, options) { - options || (options = {}); - model = this.getByCid(model) || this.get(model); - if (!model) return null; - delete this._byId[model.id]; - delete this._byCid[model.cid]; - delete model.collection; - this.models.splice(this.indexOf(model), 1); - this.length--; - if (!options.silent) model.trigger('remove', model, this, options); - model.unbind('all', this._boundOnModelEvent); - return model; - }, - - // Internal method called every time a model in the set fires an event. - // Sets need to update their indexes when models change ids. All other - // events simply proxy through. - _onModelEvent : function(ev, model) { - if (ev === 'change:id') { - delete this._byId[model.previous('id')]; - this._byId[model.id] = model; - } - this.trigger.apply(this, arguments); - } - - }); - - // Underscore methods that we want to implement on the Collection. - var methods = ['forEach', 'each', 'map', 'reduce', 'reduceRight', 'find', 'detect', - 'filter', 'select', 'reject', 'every', 'all', 'some', 'any', 'include', - 'invoke', 'max', 'min', 'sortBy', 'sortedIndex', 'toArray', 'size', - 'first', 'rest', 'last', 'without', 'indexOf', 'lastIndexOf', 'isEmpty']; - - // Mix in each Underscore method as a proxy to `Collection#models`. - _.each(methods, function(method) { - Backbone.Collection.prototype[method] = function() { - return _[method].apply(_, [this.models].concat(_.toArray(arguments))); - }; - }); - - // Backbone.Controller - // ------------------- - - // Controllers map faux-URLs to actions, and fire events when routes are - // matched. Creating a new one sets its `routes` hash, if not set statically. - Backbone.Controller = function(options) { - options || (options = {}); - if (options.routes) this.routes = options.routes; - this._bindRoutes(); - this.initialize(options); - }; - - // Cached regular expressions for matching named param parts and splatted - // parts of route strings. - var namedParam = /:([\w\d]+)/g; - var splatParam = /\*([\w\d]+)/g; - - // Set up all inheritable **Backbone.Controller** properties and methods. - _.extend(Backbone.Controller.prototype, Backbone.Events, { - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize : function(){}, - - // Manually bind a single named route to a callback. For example: - // - // this.route('search/:query/p:num', 'search', function(query, num) { - // ... - // }); - // - route : function(route, name, callback) { - Backbone.history || (Backbone.history = new Backbone.History); - if (!_.isRegExp(route)) route = this._routeToRegExp(route); - Backbone.history.route(route, _.bind(function(fragment) { - var args = this._extractParameters(route, fragment); - callback.apply(this, args); - this.trigger.apply(this, ['route:' + name].concat(args)); - }, this)); - }, - - // Simple proxy to `Backbone.history` to save a fragment into the history, - // without triggering routes. - saveLocation : function(fragment) { - Backbone.history.saveLocation(fragment); - }, - - // Bind all defined routes to `Backbone.history`. - _bindRoutes : function() { - if (!this.routes) return; - for (var route in this.routes) { - var name = this.routes[route]; - this.route(route, name, this[name]); - } - }, - - // Convert a route string into a regular expression, suitable for matching - // against the current location fragment. - _routeToRegExp : function(route) { - route = route.replace(namedParam, "([^\/]*)").replace(splatParam, "(.*?)"); - return new RegExp('^' + route + '$'); - }, - - // Given a route, and a URL fragment that it matches, return the array of - // extracted parameters. - _extractParameters : function(route, fragment) { - return route.exec(fragment).slice(1); - } - - }); - - // Backbone.History - // ---------------- - - // Handles cross-browser history management, based on URL hashes. If the - // browser does not support `onhashchange`, falls back to polling. - Backbone.History = function() { - this.handlers = []; - this.fragment = this.getFragment(); - _.bindAll(this, 'checkUrl'); - }; - - // Cached regex for cleaning hashes. - var hashStrip = /^#*/; - - // Set up all inheritable **Backbone.History** properties and methods. - _.extend(Backbone.History.prototype, { - - // The default interval to poll for hash changes, if necessary, is - // twenty times a second. - interval: 50, - - // Get the cross-browser normalized URL fragment. - getFragment : function(loc) { - return (loc || window.location).hash.replace(hashStrip, ''); - }, - - // Start the hash change handling, returning `true` if the current URL matches - // an existing route, and `false` otherwise. - start : function() { - var docMode = document.documentMode; - var oldIE = ($.browser.msie && (!docMode || docMode <= 7)); - if (oldIE) { - this.iframe = $('':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?" ":"")}if(secondary||!changeYear){html+=''+drawYear+""}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?" ":"")+monthHtml}html+="
          ";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&datemaxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.3";window.DP_jQuery=$})(jQuery);;/* - * jQuery UI Progressbar 1.7.3 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Progressbar - * - * Depends: - * ui.core.js - */ (function(a){a.widget("ui.progressbar",{_init:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('
          ').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){if(b===undefined){return this._value()}this._setData("value",b);return this},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.3",defaults:{value:0}})})(jQuery);;/* - * jQuery UI Effects 1.7.3 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Effects/ - */ jQuery.effects||(function(d){d.effects={version:"1.7.3",save:function(g,h){for(var f=0;f');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h").css({position:"absolute",visibility:"visible",left:-d*(g/e),top:-f*(c/k)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/e,height:c/k,left:l.left+d*(g/e)+(b.options.mode=="show"?(d-Math.floor(e/2))*(g/e):0),top:l.top+f*(c/k)+(b.options.mode=="show"?(f-Math.floor(k/2))*(c/k):0),opacity:b.options.mode=="show"?0:1}).animate({left:l.left+d*(g/e)+(b.options.mode=="show"?0:(d-Math.floor(e/2))*(g/e)),top:l.top+f*(c/k)+(b.options.mode=="show"?0:(f-Math.floor(k/2))*(c/k)),opacity:b.options.mode=="show"?1:0},b.duration||500)}}setTimeout(function(){b.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();if(b.callback){b.callback.apply(h[0])}h.dequeue();a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/* - * jQuery UI Effects Fold 1.7.3 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * effects.core.js - */ (function(a){a.effects.fold=function(b){return this.queue(function(){var e=a(this),k=["position","top","left"];var h=a.effects.setMode(e,b.options.mode||"hide");var o=b.options.size||15;var n=!(!b.options.horizFirst);var g=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(e,k);e.show();var d=a.effects.createWrapper(e).css({overflow:"hidden"});var i=((h=="show")!=n);var f=i?["width","height"]:["height","width"];var c=i?[d.width(),d.height()]:[d.height(),d.width()];var j=/([0-9]+)%/.exec(o);if(j){o=parseInt(j[1],10)/100*c[h=="hide"?0:1]}if(h=="show"){d.css(n?{height:0,width:o}:{height:o,width:0})}var m={},l={};m[f[0]]=h=="show"?c[0]:o;l[f[1]]=h=="show"?c[1]:0;d.animate(m,g,b.options.easing).animate(l,g,b.options.easing,function(){if(h=="hide"){e.hide()}a.effects.restore(e,k);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(e[0],arguments)}e.dequeue()})})}})(jQuery);;/* - * jQuery UI Effects Highlight 1.7.3 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * effects.core.js - */ (function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/* - * jQuery UI Effects Pulsate 1.7.3 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * effects.core.js - */ (function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);; \ No newline at end of file diff --git a/build/lib/jquery-ui-1.8.12.custom.min.js b/build/lib/jquery-ui-1.8.12.custom.min.js deleted file mode 100755 index 0c3d113..0000000 --- a/build/lib/jquery-ui-1.8.12.custom.min.js +++ /dev/null @@ -1,783 +0,0 @@ -/*! - * jQuery UI 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.12",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, -NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, -"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); -if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, -"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, -d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); -c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate); -if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -;/* - * jQuery UI Position 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Position - */ -(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, -left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= -k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= -m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= -d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= -a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), -g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); -;/* - * jQuery UI Draggable 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- -this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); -d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| -this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&& -this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== -a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| -0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], -this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- -(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(), -height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"? -document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"), -10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"), -10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&& -d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], -this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g= -this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])? -e:!(e-this.offset.click.left').css({width:this.offsetWidth+ -"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity", -a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= -i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; -if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), -d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset= -this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: -this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", -b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height; -f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing"); -this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top= -null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+ -this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b, -a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a, -c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize, -originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.12"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize= -b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width", -"height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})}; -if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height- -g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width, -height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d= -e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options, -d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper? -d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height= -a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&& -/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable"); -b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/ -(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); -;/* - * jQuery UI Selectable 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
          ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", -c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= -this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]= -b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false; -d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left- -this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); -return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], -e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); -c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): -this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, -toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); -if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), -this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= -this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= -d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| -0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", -a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- -f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- -this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, -this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", -a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); -a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", -function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= -this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); -b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); -a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ -c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; -if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); -if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), -e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| -e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", -"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.12", -animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); -f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", -paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); -;/* - * jQuery UI Autocomplete 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.position.js - */ -(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g= -false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= -a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; -this.menu=d("
            ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& -a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); -d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& -b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= -this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, -"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); -(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.attr("scrollTop"),c=this.element.height();if(b<0)this.element.attr("scrollTop",g+b);else b>=c&&this.element.attr("scrollTop",g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})}, -deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0); -e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e, -g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first")); -this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){if(this.options.text)e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){e.push(f?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, -destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery); -;/* - * jQuery UI Dialog 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.button.js - * jquery.ui.draggable.js - * jquery.ui.mouse.js - * jquery.ui.position.js - * jquery.ui.resizable.js - */ -(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, -position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
            ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
            ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= -1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== -f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
            ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
            ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, -function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", -handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, -originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", -f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): -[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); -if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): -e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= -this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.12",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), -create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), -height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("
            ");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("").appendTo(this.element).addClass("ui-slider-handle"); -if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur(); -else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e= -false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h=== -b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); -this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b, -g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true}, -_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a; -if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value= -this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, -_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate); -if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, -1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.12"})})(jQuery); -;/* - * jQuery UI Tabs 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
            ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
          • #{label}
          • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.12"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k')}function F(a,b){d.extend(a,b);for(var c in b)if(b[c]== -null||b[c]==A)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.12"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){F(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase(); -f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('
            ')}}, -_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&& -b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f== -""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a, -c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b), -true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}F(a.settings,e||{}); -b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass); -this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup", -this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs, -function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null: -f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target); -if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a); -d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");F(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-= -document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim"); -var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst= -b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover"); -this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+ -this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&& -a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth(): -0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a), -"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"? -"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a= -d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a= -d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c== -"M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth= -b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker(); -this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0); -a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c? -c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y", -RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay= -a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(), -b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n= -this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+r+"":f?"":''+r+"";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
            '+(c?h:"")+(this._isInRange(a,r)?'":"")+(c?"":h)+"
            ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z= -this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",D=0;D1)switch(E){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]- -1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='
            '+(/all|left/.test(t)&&D==0?c?f:n:"")+(/all|right/.test(t)&&D==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,D>0||E>0,z,w)+'
            ';var B=j?'":"";for(t=0;t<7;t++){var q= -(t+h)%7;B+="=5?' class="ui-datepicker-week-end"':"")+'>'+s[q]+""}x+=B+"";B=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,B);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;B=l?6:Math.ceil((t+B)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O";var P=!j?"":'";for(t=0;t<7;t++){var G= -p?p.apply(a.input?a.input[0]:null,[q]):[true,""],C=q.getMonth()!=g,J=C&&!H||!G[0]||k&&qo;P+='";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+= -P+""}g++;if(g>11){g=0;m++}x+="
            '+this._get(a,"weekHeader")+"
            '+this._get(a,"calculateWeek")(q)+""+(C&&!v?" ":J?''+q.getDate()+"":''+q.getDate()+"")+"
            "+(l?"
            "+(i[0]>0&&E==i[1]-1?'
            ':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
            ', -o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&& -l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='";if(d.browser.mozilla)k+='";else{k+=a.yearshtml;a.yearshtml=null}}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
            ";return k},_adjustInstDate:function(a,b,c){var e= -a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a, -"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); -c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, -"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= -function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker, -[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.12";window["DP_jQuery_"+y]=d})(jQuery); -;/* - * jQuery UI Progressbar 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
            ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* -this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.12"})})(jQuery); -;/* - * jQuery UI Effects 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/ - */ -jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], -16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, -a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= -a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", -"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, -0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, -211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, -d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0]; -h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c, -a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.12",save:function(c,a){for(var b=0;b
            ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent", -border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c); -return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments); -else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c), -b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c, -a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c, -a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a== -e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); -;/* - * jQuery UI Effects Fade 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fade - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Fold 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * jquery.effects.core.js - */ -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], -10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); -;/* - * jQuery UI Effects Highlight 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Pulsate 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * jquery.effects.core.js - */ -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); -b.dequeue()})})}})(jQuery); -; \ No newline at end of file diff --git a/build/lib/jquery-ui-1.8.13.custom.min.js b/build/lib/jquery-ui-1.8.13.custom.min.js deleted file mode 100755 index 46d9452..0000000 --- a/build/lib/jquery-ui-1.8.13.custom.min.js +++ /dev/null @@ -1,653 +0,0 @@ -/*! - * jQuery UI 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.13", -keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus(); -b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this, -"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", -function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth, -outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,"tabindex"),d=isNaN(b); -return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e= -0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= -false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -;/* - * jQuery UI Position 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Position - */ -(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, -left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= -k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= -m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= -d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= -a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), -g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); -;/* - * jQuery UI Draggable 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('
            ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;this.helper= -this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); -this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a); -this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b= -d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop", -a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== -a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a= -{left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&& -d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a= -this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions= -{width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+ -d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!="hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"), -10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height- -this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&& -d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], -this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.leftg[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1];h=g?!(h-this.offset.click.topg[3])?h:!(h-this.offset.click.topg[2])?e:!(e-this.offset.click.left< -g[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"); -this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.13"}); -d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var h=d.data(this,"sortable");if(h&&!h.options.disabled){c.sortables.push({instance:h,shouldRevert:h.options.revert});h.refreshPositions();h._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver= -0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs= -c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a, -true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver= -0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor= -a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable"); -if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= -i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); -var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= -false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); -this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= -{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; -if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing= -false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height); -c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size, -d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width= -a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b= -this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left- -c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this, -arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement, -element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.13"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})}; -if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"), -p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options, -c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName), -g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"), -10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0, -top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h; -g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left: -0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position")); -if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&& -!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost== -"string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid; -var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b, -10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); -;/* - * jQuery UI Selectable 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
            ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", -c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= -this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a=== -"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&& -!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, -left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); -return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], -e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); -c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): -this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, -toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); -if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), -this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= -this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= -d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| -0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", -a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- -f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- -this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, -this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", -a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); -a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", -function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= -this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); -b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); -a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ -c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; -if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); -if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), -e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| -e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", -"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.13", -animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); -f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", -paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); -;/* - * jQuery UI Autocomplete 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.position.js - */ -(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g= -false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= -a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; -this.menu=d("
              ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& -a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); -d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& -b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= -this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, -"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); -(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); -this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b, -this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){if(this.options.text)e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){e.push(f?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, -destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery); -;/* - * jQuery UI Dialog 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.button.js - * jquery.ui.draggable.js - * jquery.ui.mouse.js - * jquery.ui.position.js - * jquery.ui.resizable.js - */ -(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, -position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
              ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
              ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= -1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== -f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
              ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
              ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, -function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", -handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, -originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", -f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): -[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); -if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): -e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= -this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.13",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), -create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), -height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
            • #{label}
            • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.13"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}); -c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c, -a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments); -a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%", -"pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d* -((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/= -e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/= -e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); -;/* - * jQuery UI Effects Fade 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fade - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Fold 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * jquery.effects.core.js - */ -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], -10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); -;/* - * jQuery UI Effects Highlight 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Pulsate 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * jquery.effects.core.js - */ -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); -b.dequeue()})})}})(jQuery); -; \ No newline at end of file diff --git a/build/lib/jquery-ui.js b/build/lib/jquery-ui.js deleted file mode 100755 index 4b7a52c..0000000 --- a/build/lib/jquery-ui.js +++ /dev/null @@ -1,393 +0,0 @@ -/*! - * jQuery UI 1.8.2 - * - * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI - */ -(function(c){c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.2",plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=0)&&c(a).is(":focusable")}})}})(jQuery); -(function(b){var j=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add(this).each(function(){b(this).triggerHandler("remove")});return j.call(b(this),a,c)})};b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend({},c.options);b[e][a].prototype= -b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.substring(0,1)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==undefined){h=i;return false}}):this.each(function(){var g= -b.data(this,a);if(g){d&&g.option(d);g._init()}else b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){this.element=b(c).data(this.widgetName,this);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(c)[this.widgetName],a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create(); -this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a,e=this;if(arguments.length===0)return b.extend({},e.options);if(typeof a==="string"){if(c===undefined)return this.options[a];d={};d[a]=c}b.each(d,function(f, -h){e._setOption(f,h)});return e},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a= -b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery); -(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&& -this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault(); -return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.browser.safari||a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&& -this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=a.target==this._mouseDownEvent.target;this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX- -a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- -this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); -d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| -this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element, -b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== -a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| -0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], -this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- -(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment== -"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&& -a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"), -10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], -this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft(): -f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?e:!(e-this.offset.click.left').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options; -if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!= -"HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>=i&& -e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!d(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(g)&&f.css({zIndex:++a.zIndex});"se"==g&&f.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[g]=".ui-resizable-"+g;this.element.append(f)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=d(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=d(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}d(this.handles[i])}};this._renderAxis(this.element);this._handles=d(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();d(this.element).addClass("ui-resizable-autohide").hover(function(){d(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){d(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){d(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; -if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(d(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), -e=this.element;this.resizing=true;this.documentScroll={top:d(document).scrollTop(),left:d(document).scrollLeft()};if(e.is(".ui-draggable")||/absolute/.test(e.css("position")))e.css({position:"absolute",top:c.top,left:c.left});d.browser.opera&&/relative/.test(e.css("position"))&&e.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var g=m(this.helper.css("top"));if(a.containment){c+=d(a.containment).scrollLeft()||0;g+=d(a.containment).scrollTop()||0}this.offset= -this.helper.offset();this.position={left:c,top:g};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:c,top:g};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: -this.originalSize.width/this.originalSize.height||1;a=d(".ui-resizable-"+this.axis).css("cursor");d("body").css("cursor",a=="auto"?this.axis+"-resize":a);e.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,e=this._change[this.axis];if(!e)return false;c=e.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", -b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var e=this._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName);e=g&&d.ui.hasScroll(e[0],"left")?0:c.sizeDiff.height; -g={width:c.size.width-(g?0:c.sizeDiff.width),height:c.size.height-e};e=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var f=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(d.extend(g,{top:f,left:e}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}d("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", -b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,e=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(e=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(e=="nw"){b.top= -a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,e=k(b.width)&&a.maxWidth&&a.maxWidthb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(f)b.width=a.minWidth;if(h)b.height=a.minHeight;if(e)b.width=a.maxWidth;if(g)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height, -l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(f&&l)b.left=i-a.minWidth;if(e&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(g&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=d.browser.msie&&d.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+ -a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return d.extend(this._change.n.apply(this, -arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return d.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){d.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});d.extend(d.ui.resizable, -{version:"1.8.2"});d.ui.plugin.add("resizable","alsoResize",{start:function(){var b=d(this).data("resizable").options,a=function(c){d(c).each(function(){d(this).data("resizable-alsoresize",{width:parseInt(d(this).width(),10),height:parseInt(d(this).height(),10),left:parseInt(d(this).css("left"),10),top:parseInt(d(this).css("top"),10)})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else d.each(b.alsoResize,function(c){a(c)}); -else a(b.alsoResize)},resize:function(){var b=d(this).data("resizable"),a=b.options,c=b.originalSize,e=b.originalPosition,g={height:b.size.height-c.height||0,width:b.size.width-c.width||0,top:b.position.top-e.top||0,left:b.position.left-e.left||0},f=function(h,i){d(h).each(function(){var j=d(this),l=d(this).data("resizable-alsoresize"),p={};d.each((i&&i.length?i:["width","height","top","left"])||["width","height","top","left"],function(n,o){if((n=(l[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(/relative/.test(j.css("position"))&& -d.browser.opera){b._revertToRelativePosition=true;j.css({position:"absolute",top:"auto",left:"auto"})}j.css(p)})};typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?d.each(a.alsoResize,function(h,i){f(h,i)}):f(a.alsoResize)},stop:function(){var b=d(this).data("resizable");if(b._revertToRelativePosition&&d.browser.opera){b._revertToRelativePosition=false;el.css({position:"relative"})}d(this).removeData("resizable-alsoresize-start")}});d.ui.plugin.add("resizable","animate",{stop:function(b){var a= -d(this).data("resizable"),c=a.options,e=a._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName),f=g&&d.ui.hasScroll(e[0],"left")?0:a.sizeDiff.height;g={width:a.size.width-(g?0:a.sizeDiff.width),height:a.size.height-f};f=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(d.extend(g,h&&f?{top:h,left:f}:{}),{duration:c.animateDuration,easing:c.animateEasing, -step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};e&&e.length&&d(e[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});d.ui.plugin.add("resizable","containment",{start:function(){var b=d(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof d?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= -d(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:d(document),left:0,top:0,width:d(document).width(),height:d(document).height()||document.body.parentNode.scrollHeight}}else{var e=d(a),g=[];d(["Top","Right","Left","Bottom"]).each(function(i,j){g[i]=m(e.css("padding"+j))});b.containerOffset=e.offset();b.containerPosition=e.position();b.containerSize={height:e.innerHeight()-g[3],width:e.innerWidth()-g[1]};c=b.containerOffset; -var f=b.containerSize.height,h=b.containerSize.width;h=d.ui.hasScroll(a,"left")?a.scrollWidth:h;f=d.ui.hasScroll(a)?a.scrollHeight:f;b.parentData={element:a,left:c.left,top:c.top,width:h,height:f}}}},resize:function(b){var a=d(this).data("resizable"),c=a.options,e=a.containerOffset,g=a.position;b=a._aspectRatio||b.shiftKey;var f={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))f=e;if(g.left<(a._helper?e.left:0)){a.size.width+=a._helper?a.position.left-e.left: -a.position.left-f.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?e.left:0}if(g.top<(a._helper?e.top:0)){a.size.height+=a._helper?a.position.top-e.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?e.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-f.left:a.offset.left-f.left)+a.sizeDiff.width);e=Math.abs((a._helper?a.offset.top-f.top:a.offset.top- -e.top)+a.sizeDiff.height);g=a.containerElement.get(0)==a.element.parent().get(0);f=/relative|absolute/.test(a.containerElement.css("position"));if(g&&f)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(e+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-e;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=d(this).data("resizable"),a=b.options,c=b.containerOffset,e=b.containerPosition, -g=b.containerElement,f=d(b.helper),h=f.offset(),i=f.outerWidth()-b.sizeDiff.width;f=f.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f});b._helper&&!a.animate&&/static/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f})}});d.ui.plugin.add("resizable","ghost",{start:function(){var b=d(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, -display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=d(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=d(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});d.ui.plugin.add("resizable","grid",{resize:function(){var b= -d(this).data("resizable"),a=b.options,c=b.size,e=b.originalSize,g=b.originalPosition,f=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-e.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-e.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a}else if(/^(ne)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}else{if(/^(sw)$/.test(f)){b.size.width=e.width+h;b.size.height= -e.height+a}else{b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}b.position.left=g.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
              ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting"); -b.unselecting=true;f._trigger("unselecting",c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f= -this;this.dragged=true;if(!this.options.disabled){var d=this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this, -arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem= -c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset, -{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment(); -if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start", -a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute"); -if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a, -c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]== -document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate", -null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem): -d(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c}, -_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a= -this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)? -h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"), -b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)? -i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement, -c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height= -this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()- -parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0], -this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b= -1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update", -g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity", -this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"}); -c.css({position:"relative",top:0,left:0})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=j.apply(this,arguments);a={options:a[1],duration:a[2],callback:a[3]};var b=f.effects[c];return b&&!f.fx.off?b.call(this,a):this},_show:f.fn.show,show:function(c){if(!c|| -typeof c=="number"||f.fx.speeds[c])return this._show.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(!c||typeof c=="number"||f.fx.speeds[c])return this._hide.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||typeof c=="boolean"||f.isFunction(c))return this.__toggle.apply(this, -arguments);else{var a=j.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c, -a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+ -b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2, -10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)* -a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","left"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],10)/100* -f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); -b.dequeue()})})}})(jQuery); -(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},_create:function(){var a=this.options,b=this;this.running=0;this.element.addClass("ui-accordion ui-widget ui-helper-reset"); -this.element.children("li").addClass("ui-accordion-li-fix");this.headers=this.element.find(a.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){c(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(a.navigation){var d=this.element.find("a").filter(a.navigationFilter);if(d.length){var f=d.closest(".ui-accordion-header");this.active=f.length?f:d.closest(".ui-accordion-content").prev()}}this.active=this._findActive(this.active||a.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");this._createIcons();this.resize();this.element.attr("role","tablist");this.headers.attr("role", -"tab").bind("keydown",function(g){return b._keydown(g)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();this.active.length?this.active.attr("aria-expanded","true").attr("tabIndex","0"):this.headers.eq(0).attr("tabIndex","0");c.browser.safari||this.headers.find("a").attr("tabIndex","-1");a.event&&this.headers.bind(a.event+".accordion",function(g){b._clickHandler.call(b,g,this);g.preventDefault()})},_createIcons:function(){var a= -this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion"); -this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(a.autoHeight||a.fillHeight)b.css("height", -"");return this},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();b&&this._createIcons()}},_keydown:function(a){var b=c.ui.keyCode;if(!(this.options.disabled||a.altKey||a.ctrlKey)){var d=this.headers.length,f=this.headers.index(a.target),g=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:g=this.headers[(f+1)%d];break;case b.LEFT:case b.UP:g=this.headers[(f-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target}, -a.target);a.preventDefault()}if(g){c(a.target).attr("tabIndex","-1");c(g).attr("tabIndex","0");g.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0, -b-c(this).innerHeight()+c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a=="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d= -this.options;if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]==this.active[0];d.active=d.collapsible&&b?false:c(".ui-accordion-header",this.element).index(a);if(!(this.running||!d.collapsible&&b)){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected); -a.next().addClass("ui-accordion-content-active")}e=a.next();f=this.active.next();g={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):e,oldContent:f};d=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(e,f,g,b,d)}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); -this.active.next().addClass("ui-accordion-content-active");var f=this.active.next(),g={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:f},e=this.active=c([]);this._toggle(e,f,g)}},_toggle:function(a,b,d,f,g){var e=this.options,k=this;this.toShow=a;this.toHide=b;this.data=d;var i=function(){if(k)return k._completed.apply(k,arguments)};this._trigger("changestart",null,this.data);this.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&f?{toShow:c([]), -toHide:b,complete:i,down:g,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:i,down:g,autoHeight:e.autoHeight||e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;f=c.ui.accordion.animations;var h=e.duration,j=e.animated;if(j&&!f[j]&&!c.easing[j])j="slide";f[j]||(f[j]=function(l){this.slide(l,{easing:j, -duration:h||700})});f[j](d)}else{if(e.collapsible&&f)a.toggle();else{b.hide();a.show()}i(true)}b.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();a.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(a){var b=this.options;this.running=a?0:--this.running;if(!this.running){b.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion, -{version:"1.8.2",animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),f=0,g={},e={},k;b=a.toShow;k=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(i,h){e[h]="hide";i=(""+c.css(a.toShow[0], -h)).match(/^([\d+-.]+)(.*)$/);g[h]={value:i[1],unit:i[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(e,{step:function(i,h){if(h.prop=="height")f=h.end-h.start===0?0:(h.now-h.start)/(h.end-h.start);a.toShow[0].style[h.prop]=f*g[h.prop].value+g[h.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css("width",k);a.toShow.css({overflow:d});a.complete()}})}else a.toHide.animate({height:"hide"}, -a);else a.toShow.animate({height:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); -(function(e){e.widget("ui.autocomplete",{options:{minLength:1,delay:300},_create:function(){var a=this,c=this.element[0].ownerDocument;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(d){var b=e.ui.keyCode;switch(d.keyCode){case b.PAGE_UP:a._move("previousPage",d);break;case b.PAGE_DOWN:a._move("nextPage",d);break;case b.UP:a._move("previous",d);d.preventDefault(); -break;case b.DOWN:a._move("next",d);d.preventDefault();break;case b.ENTER:case b.NUMPAD_ENTER:a.menu.active&&d.preventDefault();case b.TAB:if(!a.menu.active)return;a.menu.select(d);break;case b.ESCAPE:a.element.val(a.term);a.close(d);break;case b.LEFT:case b.RIGHT:case b.SHIFT:case b.CONTROL:case b.ALT:case b.COMMAND:case b.COMMAND_RIGHT:case b.INSERT:case b.CAPS_LOCK:case b.END:case b.HOME:break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){a.search(null,d)},a.options.delay); -break}}).bind("focus.autocomplete",function(){a.selectedItem=null;a.previous=a.element.val()}).bind("blur.autocomplete",function(d){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(d);a._change(d)},150)});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=e("
                ").addClass("ui-autocomplete").appendTo("body",c).mousedown(function(){setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(d,b){b=b.item.data("item.autocomplete"); -false!==a._trigger("focus",null,{item:b})&&/^key/.test(d.originalEvent.type)&&a.element.val(b.value)},selected:function(d,b){b=b.item.data("item.autocomplete");false!==a._trigger("select",d,{item:b})&&a.element.val(b.value);a.close(d);d=a.previous;if(a.element[0]!==c.activeElement){a.element.focus();a.previous=d}a.selectedItem=b},blur:function(){a.menu.element.is(":visible")&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");e.fn.bgiframe&&this.menu.element.bgiframe()}, -destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();e.Widget.prototype.destroy.call(this)},_setOption:function(a){e.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource()},_initSource:function(){var a,c;if(e.isArray(this.options.source)){a=this.options.source;this.source=function(d,b){b(e.ui.autocomplete.filter(a,d.term))}}else if(typeof this.options.source=== -"string"){c=this.options.source;this.source=function(d,b){e.getJSON(c,d,b)}}else this.source=this.options.source},search:function(a,c){a=a!=null?a:this.element.val();if(a.length").data("item.autocomplete", -c).append(""+c.label+"").appendTo(a)},_move:function(a,c){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](c);else this.search(null,c)},widget:function(){return this.menu.element}});e.extend(e.ui.autocomplete,{escapeRegex:function(a){return a.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")},filter:function(a,c){var d=new RegExp(e.ui.autocomplete.escapeRegex(c), -"i");return e.grep(a,function(b){return d.test(b.label||b.value||b)})}})})(jQuery); -(function(e){e.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(e(c.target).closest(".ui-menu-item a").length){c.preventDefault();a.select(c)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(c){a.activate(c,e(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,c){this.deactivate();if(this.hasScroll()){var d=c.offset().top-this.element.offset().top,b=this.element.attr("scrollTop"),f=this.element.height();if(d<0)this.element.attr("scrollTop",b+d);else d>f&&this.element.attr("scrollTop",b+d-f+c.height())}this.active=c.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:c})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); -this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prev().length},last:function(){return this.active&&!this.active.next().length},move:function(a,c,d){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);a.length?this.activate(d,a):this.activate(d,this.element.children(c))}else this.activate(d,this.element.children(c))},nextPage:function(a){if(this.hasScroll())if(!this.active|| -this.last())this.activate(a,this.element.children(":first"));else{var c=this.active.offset().top,d=this.element.height(),b=this.element.children("li").filter(function(){var f=e(this).offset().top-c-d+e(this).height();return f<10&&f>-10});b.length||(b=this.element.children(":last"));this.activate(a,b)}else this.activate(a,this.element.children(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(":last")); -else{var c=this.active.offset().top,d=this.element.height();result=this.element.children("li").filter(function(){var b=e(this).offset().top-c+d-e(this).height();return b<10&&b>-10});result.length||(result=this.element.children(":first"));this.activate(a,result)}else this.activate(a,this.element.children(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()
                ").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":""));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon"); -this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset");this._init()},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, -destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery); -(function(d){function J(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass= -"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su", -"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10", -minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('
                ')}function E(a,b){d.extend(a, -b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.2"}});var y=(new Date).getTime();d.extend(J.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]= -f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('
                ')}}, -_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&& -b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f== -""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a, -c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b), -true);this._updateDatepicker(b);this._updateAlternate(b)}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});b=b&&b.constructor== -Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]); -d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}}, -_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b= -d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false; -for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target|| -a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a); -d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&& -d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=d.datepicker._getBorders(b.dpDiv);b.dpDiv.find("iframe.ui-datepicker-cover").css({left:-i[0],top:-i[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f, -h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover"); -this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover"); -this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);var e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"); -a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus()},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(), -k=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>k&&k>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[b?"previousSibling":"nextSibling"]; -a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val(): -"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&& -!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth; -b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){a=this._getInst(d(a)[0]); -a.input&&a._selectingMonthYear&&!d.browser.msie&&a.input.focus();a._selectingMonthYear=!a._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a, -"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")|| -this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null; -for(var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff,f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,k=c=-1,l=-1,u=-1,j=false,o=function(p){(p=z+1-1){k=1;l=u;do{e=this._getDaysInMonth(c,k-1);if(l<=e)break;k++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c, -k-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=k||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c? -c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=j+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear|| -a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),k=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay? -new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),j=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=j&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-k,1)),this._getFormatConfig(a)); -n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m, -g+k,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+r+"":f?"":''+r+"";k=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&& -a.currentDay?u:b;k=!h?k:this.formatDate(k,r,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
                '+(c?h:"")+(this._isInRange(a,r)?'":"")+(c?"":h)+"
                ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;k=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),w=this._get(a,"showOtherMonths"),G=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var K=this._getDefaultDate(a),H="",C=0;C1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='
                '+(/all|left/.test(t)&&C==0?c? -f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,j,o,C>0||D>0,z,v)+'
                ';var A=k?'":"";for(t=0;t<7;t++){var q=(t+h)%7;A+="=5?' class="ui-datepicker-week-end"':"")+'>'+s[q]+""}x+=A+"";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay, -A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var N=0;N";var O=!k?"":'";for(t=0;t<7;t++){var F=p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,I=B&&!G||!F[0]||j&&qo;O+='";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=O+""}g++;if(g>11){g=0;m++}x+="
                '+this._get(a,"weekHeader")+"
                '+this._get(a,"calculateWeek")(q)+""+(B&&!w?" ":I?''+q.getDate()+ -"":''+q.getDate()+"")+"
                "+(l?""+(i[0]>0&&D==i[1]-1?'
                ':""):"");L+=x}H+=L}H+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'': -"");a._keyEvent=false;return H},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var k=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),j='
                ',o="";if(h||!k)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(j+=o+(h||!(k&&l)?" ":""));if(h||!l)j+=''+c+"";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b, -i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(j+='"}j+=this._get(a,"yearSuffix");if(u)j+=(h||!(k&&l)?" ":"")+o;j+="
                ";return j},_adjustInstDate:function(a,b,c){var e= -a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a, -"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); -c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, -"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= -function(a){if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b)); -return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new J;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.2";window["DP_jQuery_"+y]=d})(jQuery); -(function(c){c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");var a=this,b=a.options,d=b.title||a.originalTitle||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
                ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
                ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0])d=Math.max(d,c(this).css("z-index"))});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index", -c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;d.next().length&&d.appendTo("body");a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== -f[0]&&e.shiftKey){g.focus(1);return false}}});c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();a._trigger("open");a._isOpen=true;return a}},_createButtons:function(a){var b=this,d=false,e=c("
                ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a, -function(g,f){g=c('').text(g).click(function(){f.apply(b.element[0],arguments)}).appendTo(e);c.fn.button&&g.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging"); -b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,position:f.position,size:f.size}}a=a===undefined?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position"); -a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop", -f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0];a=a||c.ui.dialog.prototype.options.position;if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(e,g){if(+b[e]===b[e]){d[e]=b[e];b[e]= -g}})}else if(typeof a==="object"){if("left"in a){b[0]="left";d[0]=a.left}else if("right"in a){b[0]="right";d[0]=-a.right}if("top"in a){b[1]="top";d[1]=a.top}else if("bottom"in a){b[1]="bottom";d[1]=-a.bottom}}(a=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position({my:b.join(" "),at:b.join(" "),offset:d.join(" "),of:window,collision:"fit",using:function(e){var g=c(this).css(e).offset().top;g<0&&c(this).css("top",e.top-g)}});a||this.uiDialog.hide()},_setOption:function(a, -b){var d=this,e=d.uiDialog,g=e.is(":data(resizable)"),f=false;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");break;case "draggable":b?d._makeDraggable():e.draggable("destroy");break; -case "height":f=true;break;case "maxHeight":g&&e.resizable("option","maxHeight",b);f=true;break;case "maxWidth":g&&e.resizable("option","maxWidth",b);f=true;break;case "minHeight":g&&e.resizable("option","minHeight",b);f=true;break;case "minWidth":g&&e.resizable("option","minWidth",b);f=true;break;case "position":d._position(b);break;case "resizable":g&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title", -d.uiDialogTitlebar).html(""+(b||" "));break;case "width":f=true;break}c.Widget.prototype._setOption.apply(d,arguments);f&&d._size()},_size:function(){var a=this.options,b;this.element.css({width:"auto",minHeight:0,height:0});b=this.uiDialog.css({height:"auto",width:a.width}).height();this.element.css(a.height==="auto"?{minHeight:Math.max(a.minHeight-b,0),height:"auto"}:{minHeight:0,height:Math.max(a.height-b,0)}).show();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight", -this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.2",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&& -c(document).bind(c.ui.dialog.overlay.events,function(d){return c(d.target).zIndex()>=c.ui.dialog.overlay.maxZ})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("
                ").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&& -b.bgiframe();this.instances.push(b);return b},destroy:function(a){this.oldInstances.push(this.instances.splice(c.inArray(a,this.instances),1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var b=0;c.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight, -document.body.offsetHeight);return a0?a.left-b:Math.max(0,a.left)},top:function(a,b){var d=c(window);b=a.top+b.elemHeight-d.height()-d.scrollTop();a.top=b>0?a.top-b:Math.max(0,a.top)}},flip:{left:function(a,b){if(b.at[0]!=="center"){var d=c(window);d=a.left+b.elemWidth-d.width()-d.scrollLeft();var e=b.my[0]==="left"? --b.elemWidth:b.my[0]==="right"?b.elemWidth:0,g=-2*b.offset[0];a.left+=a.left<0?e+b.targetWidth+g:d>0?e-b.targetWidth+g:0}},top:function(a,b){if(b.at[1]!=="center"){var d=c(window);d=a.top+b.elemHeight-d.height()-d.scrollTop();var e=b.my[1]==="top"?-b.elemHeight:b.my[1]==="bottom"?b.elemHeight:0,g=b.at[1]==="top"?b.targetHeight:-b.targetHeight,h=-2*b.offset[1];a.top+=a.top<0?e+b.targetHeight+h:d>0?e+g+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(a,b){if(/static/.test(c.curCSS(a,"position")))a.style.position= -"relative";var d=c(a),e=d.offset(),g=parseInt(c.curCSS(a,"top",true),10)||0,h=parseInt(c.curCSS(a,"left",true),10)||0;e={top:b.top-e.top+g,left:b.left-e.left+h};"using"in b?b.using.call(a,e):d.css(e)};c.fn.offset=function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(){c.offset.setOffset(this,a)});return q.call(this)}}})(jQuery); -(function(b){b.widget("ui.progressbar",{options:{value:0},_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=b("
                ").appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===undefined)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){switch(a){case "value":this.options.value=c;this._refreshValue();this._trigger("change");break}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;if(athis._valueMax())a=this._valueMax();return a}, -_valueMin:function(){return 0},_valueMax:function(){return 100},_refreshValue:function(){var a=this.value();this.valueDiv[a===this._valueMax()?"addClass":"removeClass"]("ui-corner-right").width(a+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.2"})})(jQuery); -(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");b.disabled&&this.element.addClass("ui-slider-disabled ui-disabled"); -this.range=d([]);if(b.range){if(b.range===true){this.range=d("
                ");if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}else this.range=d("
                ");this.range.appendTo(this.element).addClass("ui-slider-range");if(b.range==="min"||b.range==="max")this.range.addClass("ui-slider-range-"+b.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("").appendTo(this.element).addClass("ui-slider-handle"); -if(b.values&&b.values.length)for(;d(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur(); -else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),g,h,i;if(!a.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e= -false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");g=a._start(c,f);if(g===false)return}break}i=a.options.step;g=a.options.values&&a.options.values.length?(h=a.values(f)):(h=a.value());switch(c.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(g+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(g-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(g=== -a._valueMax())return;h=a._trimAlignValue(g+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(g===a._valueMin())return;h=a._trimAlignValue(g-i);break}a._slide(c,f,h);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(c,e);a._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); -this._mouseDestroy();return this},_mouseCapture:function(a){var b=this.options,c,e,f,g,h,i;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c={x:a.pageX,y:a.pageY};e=this._normValueFromMouse(c);f=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(j){var k=Math.abs(e-h.values(j));if(f>k){f=k;g=d(this);i=j}});if(b.range===true&&this.values(1)===b.min){i+=1;g=d(this.handles[i])}if(this._start(a, -i)===false)return false;this._mouseSliding=true;h._handleIndex=i;g.addClass("ui-state-active").focus();b=g.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-g.width()/2,top:a.pageY-b.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)};e=this._normValueFromMouse(c);this._slide(a,i,e);return this._animateOff=true},_mouseStart:function(){return true}, -_mouseDrag:function(a){var b=this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b; -if(this.orientation==="horizontal"){b=this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value= -this.values(b);c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var e;if(this.options.values&&this.options.values.length){e=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>e||b===1&&c1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;fthis._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=a%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a= -this.options.range,b=this.options,c=this,e=!this._animateOff?b.animate:false,f,g={},h,i,j,k;if(this.options.values&&this.options.values.length)this.handles.each(function(l){f=(c.values(l)-c._valueMin())/(c._valueMax()-c._valueMin())*100;g[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](g,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(l===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},b.animate);if(l===1)c.range[e?"animate":"css"]({width:f- -h+"%"},{queue:false,duration:b.animate})}else{if(l===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},b.animate);if(l===1)c.range[e?"animate":"css"]({height:f-h+"%"},{queue:false,duration:b.animate})}h=f});else{i=this.value();j=this._valueMin();k=this._valueMax();f=k!==j?(i-j)/(k-j)*100:0;g[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](g,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"}, -b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.2"})})(jQuery); -(function(d){function s(){return++u}function v(){return++w}var u=0,w=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
                ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:'
              • #{label}
              • '},_create:function(){this._tabify(true)},_setOption:function(c,e){if(c=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[c]=e;this._tabify()}},_tabId:function(c){return c.title&&c.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+s()},_sanitizeSelector:function(c){return c.replace(/:/g,"\\:")},_cookie:function(){var c=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+v());return d.cookie.apply(null,[c].concat(d.makeArray(arguments)))},_ui:function(c,e){return{tab:c,panel:e,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var c= -d(this);c.html(c.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function e(g,f){g.css({display:""});!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}this.list=this.element.find("ol,ul").eq(0);this.lis=d("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);var a=this,b=this.options,h=/^#.+/;this.anchors.each(function(g,f){var j=d(f).attr("href"),l=j.split("#")[0],p;if(l&&(l===location.toString().split("#")[0]|| -(p=d("base")[0])&&l===p.href)){j=f.hash;f.href=j}if(h.test(j))a.panels=a.panels.add(a._sanitizeSelector(j));else if(j!="#"){d.data(f,"href.tabs",j);d.data(f,"load.tabs",j.replace(/#.*$/,""));j=a._tabId(f);f.href="#"+j;f=d("#"+j);if(!f.length){f=d(b.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else b.disabled.push(g)});if(c){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(b.selected===undefined){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){b.selected=g;return false}});if(typeof b.selected!="number"&&b.cookie)b.selected=parseInt(a._cookie(),10);if(typeof b.selected!="number"&&this.lis.filter(".ui-tabs-selected").length)b.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));b.selected=b.selected||(this.lis.length?0:-1)}else if(b.selected===null)b.selected=-1;b.selected=b.selected>=0&&this.anchors[b.selected]||b.selected<0?b.selected:0;b.disabled=d.unique(b.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(b.selected,b.disabled)!=-1&&b.disabled.splice(d.inArray(b.selected,b.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(b.selected>=0&&this.anchors.length){this.panels.eq(b.selected).removeClass("ui-tabs-hide");this.lis.eq(b.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[b.selected],a.panels[b.selected]))});this.load(b.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else b.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[b.collapsible?"addClass": -"removeClass"]("ui-tabs-collapsible");b.cookie&&this._cookie(b.selected,b.cookie);c=0;for(var i;i=this.lis[c];c++)d(i)[d.inArray(c,b.disabled)!=-1&&!d(i).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");b.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(b.event!="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+g)};this.lis.bind("mouseover.tabs", -function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(b.fx)if(d.isArray(b.fx)){m=b.fx[0];o=b.fx[1]}else m=o=b.fx;var q=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);a._trigger("show", -null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},r=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};this.anchors.bind(b.event+".tabs", -function(){var g=this,f=d(this).closest("li"),j=a.panels.filter(":not(.ui-tabs-hide)"),l=d(a._sanitizeSelector(this.hash));if(f.hasClass("ui-tabs-selected")&&!b.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}b.selected=a.anchors.index(this);a.abort();if(b.collapsible)if(f.hasClass("ui-tabs-selected")){b.selected=-1;b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){r(g, -j)}).dequeue("tabs");this.blur();return false}else if(!j.length){b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this));this.blur();return false}b.cookie&&a._cookie(b.selected,b.cookie);if(l.length){j.length&&a.element.queue("tabs",function(){r(g,j)});a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs", -function(){return false})},destroy:function(){var c=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(b,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this, -"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});c.cookie&&this._cookie(null,c.cookie);return this},add:function(c,e,a){if(a===undefined)a=this.anchors.length;var b=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,e));c=!c.indexOf("#")?c.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs", -true);var i=d("#"+c);i.length||(i=d(h.panelTemplate).attr("id",c).data("destroy.tabs",true));i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);i.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);i.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");i.removeClass("ui-tabs-hide"); -this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(c){var e=this.options,a=this.lis.eq(c).remove(),b=this.panels.eq(c).remove();if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(c+(c+1=c?--h:h});this._tabify();this._trigger("remove", -null,this._ui(a.find("a")[0],b[0]));return this},enable:function(c){var e=this.options;if(d.inArray(c,e.disabled)!=-1){this.lis.eq(c).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=c});this._trigger("enable",null,this._ui(this.anchors[c],this.panels[c]));return this}},disable:function(c){var e=this.options;if(c!=e.selected){this.lis.eq(c).addClass("ui-state-disabled");e.disabled.push(c);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}return this}, -select:function(c){if(typeof c=="string")c=this.anchors.index(this.anchors.filter("[href$="+c+"]"));else if(c===null)c=-1;if(c==-1&&this.options.collapsible)c=this.options.selected;this.anchors.eq(c).trigger(this.options.event+".tabs");return this},load:function(c){var e=this,a=this.options,b=this.anchors.eq(c)[0],h=d.data(b,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(b,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(c).addClass("ui-state-processing"); -if(a.spinner){var i=d("span",b);i.data("label.tabs",i.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(b.hash)).html(k);e._cleanup();a.cache&&d.data(b,"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.error(k,n,c,b)}catch(m){}}}));e.element.dequeue("tabs");return this}}, -abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(c,e){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.2"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(c,e){var a=this,b=this.options,h=a._rotate||(a._rotate= -function(i){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=b.selected;a.select(++k');a.wrapperInner=a.wrapper.children('span:eq(0)');a.wrapper.hover(function(e){a.wrapperInner.addClass(g.cls+'-hover');i(e)},function(e){a.wrapperInner.removeClass(g.cls+'-hover');i(e)});b.css({position:'absolute',zIndex:-1,visibility:'hidden'}).after(a.wrapper);var c=false;if(b.attr('id')){c=$('label[for='+b.attr('id')+']');if(!c.length)c=false}if(!c){c=b.closest?b.closest('label'):b.parents('label:eq(0)');if(!c.length)c=false}if(c){c.hover(function(e){a.wrapper.trigger('mouseover',[e])},function(e){a.wrapper.trigger('mouseout',[e])});c.click(function(e){b.trigger('click',[e]);i(e);return false})}a.wrapper.click(function(e){b.trigger('click',[e]);i(e);return false});b.click(function(e){i(e)});b.bind('disable',function(){a.wrapperInner.addClass(g.cls+'-disabled')}).bind('enable',function(){a.wrapperInner.removeClass(g.cls+'-disabled')});b.bind('check',function(){a.wrapper.addClass(g.cls+'-checked')}).bind('uncheck',function(){a.wrapper.removeClass(g.cls+'-checked')});$('img',a.wrapper).bind('dragstart',function(){return false}).bind('mousedown',function(){return false});if(window.getSelection)a.wrapper.css('MozUserSelect','none');if(a.checked)a.wrapper.addClass(g.cls+'-checked');if(a.disabled)a.wrapperInner.addClass(g.cls+'-disabled')})}})(jQuery); \ No newline at end of file diff --git a/build/lib/jquery.contextMenu.js b/build/lib/jquery.contextMenu.js deleted file mode 100755 index 2f5219a..0000000 --- a/build/lib/jquery.contextMenu.js +++ /dev/null @@ -1,212 +0,0 @@ -// jQuery Context Menu Plugin -// -// Version 1.01 -// -// Cory S.N. LaViska -// A Beautiful Site (http://abeautifulsite.net/) -// -// More info: http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/ -// -// Terms of Use -// -// This plugin is dual-licensed under the GNU General Public License -// and the MIT License and is copyright A Beautiful Site, LLC. -// -if(jQuery)( function() { - $.extend($.fn, { - - contextMenu: function(o, callback) { - // Defaults - if( o.menu == undefined ) return false; - if( o.inSpeed == undefined ) o.inSpeed = 150; - if( o.outSpeed == undefined ) o.outSpeed = 75; - // 0 needs to be -1 for expected results (no fade) - if( o.inSpeed == 0 ) o.inSpeed = -1; - if( o.outSpeed == 0 ) o.outSpeed = -1; - // Loop each context menu - $(this).each( function() { - var el = $(this); - var offset = $(el).offset(); - // Add contextMenu class - $('#' + o.menu).addClass('contextMenu'); - // Simulate a true right click - $(this).mousedown( function(e) { - var evt = e; - //evt.stopPropagation(); - $(this).mouseup( function(e) { - //e.stopPropagation(); - var srcElement = $(this); - $(this).unbind('mouseup'); - if( evt.button == 2 ) { - // Hide context menus that may be showing - $(".contextMenu").hide(); - // Get this context menu - var menu = $('#' + o.menu); - - if( $(el).hasClass('disabled') ) return false; - - // Detect mouse position - var d = {}, x, y; - if( self.innerHeight ) { - d.pageYOffset = self.pageYOffset; - d.pageXOffset = self.pageXOffset; - d.innerHeight = self.innerHeight; - d.innerWidth = self.innerWidth; - } else if( document.documentElement && - document.documentElement.clientHeight ) { - d.pageYOffset = document.documentElement.scrollTop; - d.pageXOffset = document.documentElement.scrollLeft; - d.innerHeight = document.documentElement.clientHeight; - d.innerWidth = document.documentElement.clientWidth; - } else if( document.body ) { - d.pageYOffset = document.body.scrollTop; - d.pageXOffset = document.body.scrollLeft; - d.innerHeight = document.body.clientHeight; - d.innerWidth = document.body.clientWidth; - } - (e.pageX) ? x = e.pageX : x = e.clientX + d.scrollLeft; - (e.pageY) ? y = e.pageY : y = e.clientY + d.scrollTop; - - // Show the menu - $(document).unbind('click'); - $(menu).css({ top: y, left: x }).fadeIn(o.inSpeed); - // Hover events - $(menu).find('A').mouseover( function() { - $(menu).find('LI.hover').removeClass('hover'); - $(this).parent().addClass('hover'); - }).mouseout( function() { - $(menu).find('LI.hover').removeClass('hover'); - }); - - // Keyboard - $(document).keypress( function(e) { - switch( e.keyCode ) { - case 38: // up - if( $(menu).find('LI.hover').size() == 0 ) { - $(menu).find('LI:last').addClass('hover'); - } else { - $(menu).find('LI.hover').removeClass('hover').prevAll('LI:not(.disabled)').eq(0).addClass('hover'); - if( $(menu).find('LI.hover').size() == 0 ) $(menu).find('LI:last').addClass('hover'); - } - break; - case 40: // down - if( $(menu).find('LI.hover').size() == 0 ) { - $(menu).find('LI:first').addClass('hover'); - } else { - $(menu).find('LI.hover').removeClass('hover').nextAll('LI:not(.disabled)').eq(0).addClass('hover'); - if( $(menu).find('LI.hover').size() == 0 ) $(menu).find('LI:first').addClass('hover'); - } - break; - case 13: // enter - $(menu).find('LI.hover A').trigger('click'); - break; - case 27: // esc - $(document).trigger('click'); - break - } - }); - - // When items are selected - $('#' + o.menu).find('A').unbind('click'); - $('#' + o.menu).find('LI:not(.disabled) A').click( function() { - $(document).unbind('click').unbind('keypress'); - $(".contextMenu").hide(); - // Callback - if( callback ) callback( $(this).attr('href').substr(1), $(srcElement), {x: x - offset.left, y: y - offset.top, docX: x, docY: y} ); - return false; - }); - - // Hide bindings - setTimeout( function() { // Delay for Mozilla - $(document).click( function() { - $(document).unbind('click').unbind('keypress'); - $(menu).fadeOut(o.outSpeed); - return false; - }); - }, 0); - } - }); - evt.stopPropagation() - }); - - // Disable text selection - if( $.browser.mozilla ) { - $('#' + o.menu).each( function() { $(this).css({ 'MozUserSelect' : 'none' }); }); - } else if( $.browser.msie ) { - $('#' + o.menu).each( function() { $(this).bind('selectstart.disableTextSelect', function() { return false; }); }); - } else { - $('#' + o.menu).each(function() { $(this).bind('mousedown.disableTextSelect', function() { return false; }); }); - } - // Disable browser context menu (requires both selectors to work in IE/Safari + FF/Chrome) - $(el).add($('UL.contextMenu')).bind('contextmenu', function() { return false; }); - - }); - return $(this); - }, - - // Disable context menu items on the fly - disableContextMenuItems: function(o) { - if( o == undefined ) { - // Disable all - $(this).find('LI').addClass('disabled'); - return( $(this) ); - } - $(this).each( function() { - if( o != undefined ) { - var d = o.split(','); - for( var i = 0; i < d.length; i++ ) { - $(this).find('A[href="' + d[i] + '"]').parent().addClass('disabled'); - - } - } - }); - return( $(this) ); - }, - - // Enable context menu items on the fly - enableContextMenuItems: function(o) { - if( o == undefined ) { - // Enable all - $(this).find('LI.disabled').removeClass('disabled'); - return( $(this) ); - } - $(this).each( function() { - if( o != undefined ) { - var d = o.split(','); - for( var i = 0; i < d.length; i++ ) { - $(this).find('A[href="' + d[i] + '"]').parent().removeClass('disabled'); - - } - } - }); - return( $(this) ); - }, - - // Disable context menu(s) - disableContextMenu: function() { - $(this).each( function() { - $(this).addClass('disabled'); - }); - return( $(this) ); - }, - - // Enable context menu(s) - enableContextMenu: function() { - $(this).each( function() { - $(this).removeClass('disabled'); - }); - return( $(this) ); - }, - - // Destroy context menu(s) - destroyContextMenu: function() { - // Destroy specified context menus - $(this).each( function() { - // Disable action - $(this).unbind('mousedown').unbind('mouseup'); - }); - return( $(this) ); - } - - }); -})(jQuery); \ No newline at end of file diff --git a/build/lib/jquery.flot.js b/build/lib/jquery.flot.js deleted file mode 100755 index 6f6dfc3..0000000 --- a/build/lib/jquery.flot.js +++ /dev/null @@ -1,2713 +0,0 @@ -/*! Javascript plotting library for jQuery, v. 0.7. - * - * Released under the MIT license by IOLA, December 2007. - * - */ -// first an inline dependency, jquery.colorhelpers.js, we inline it here -// for convenience -/* Plugin for jQuery for working with colors. - * - * Version 1.1. - * - * Inspiration from jQuery color animation plugin by John Resig. - * - * Released under the MIT license by Ole Laursen, October 2009. - * - * Examples: - * - * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() - * var c = $.color.extract($("#mydiv"), 'background-color'); - * console.log(c.r, c.g, c.b, c.a); - * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" - * - * Note that .scale() and .add() return the same modified object - * instead of making a new one. - * - * V. 1.1: Fix error handling so e.g. parsing an empty string does - * produce a color rather than just crashing. - */ -(function (B) { - B.color = {}; - B.color.make = function (F, E, C, D) { - var G = {}; - G.r = F || 0; - G.g = E || 0; - G.b = C || 0; - G.a = D != null ? D : 1; - G.add = function (J, I) { - for (var H = 0; H < J.length; ++H) { - G[J.charAt(H)] += I - } - return G.normalize() - }; - G.scale = function (J, I) { - for (var H = 0; H < J.length; ++H) { - G[J.charAt(H)] *= I - } - return G.normalize() - }; - G.toString = function () { - if (G.a >= 1) { - return "rgb(" + [G.r, G.g, G.b].join(",") + ")" - } else { - return "rgba(" + [G.r, G.g, G.b, G.a].join(",") + ")" - } - }; - G.normalize = function () { - function H(J, K, I) { - return K < J ? J : (K > I ? I : K) - } - G.r = H(0, parseInt(G.r), 255); - G.g = H(0, parseInt(G.g), 255); - G.b = H(0, parseInt(G.b), 255); - G.a = H(0, G.a, 1); - return G - }; - G.clone = function () { - return B.color.make(G.r, G.b, G.g, G.a) - }; - return G.normalize() - }; - B.color.extract = function (D, C) { - var E; - do { - E = D.css(C).toLowerCase(); - if (E != "" && E != "transparent") { - break - } - D = D.parent() - } while (!B.nodeName(D.get(0), "body")); - if (E == "rgba(0, 0, 0, 0)") { - E = "transparent" - } - return B.color.parse(E) - }; - B.color.parse = function (F) { - var E, C = B.color.make; - if (E = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)) { - return C(parseInt(E[1], 10), parseInt(E[2], 10), parseInt(E[3], 10)) - } - if (E = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)) { - return C(parseInt(E[1], 10), parseInt(E[2], 10), parseInt(E[3], 10), parseFloat(E[4])) - } - if (E = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)) { - return C(parseFloat(E[1]) * 2.55, parseFloat(E[2]) * 2.55, parseFloat(E[3]) * 2.55) - } - if (E = /rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)) { - return C(parseFloat(E[1]) * 2.55, parseFloat(E[2]) * 2.55, parseFloat(E[3]) * 2.55, parseFloat(E[4])) - } - if (E = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)) { - return C(parseInt(E[1], 16), parseInt(E[2], 16), parseInt(E[3], 16)) - } - if (E = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)) { - return C(parseInt(E[1] + E[1], 16), parseInt(E[2] + E[2], 16), parseInt(E[3] + E[3], 16)) - } - var D = B.trim(F).toLowerCase(); - if (D == "transparent") { - return C(255, 255, 255, 0) - } else { - E = A[D] || [0, 0, 0]; - return C(E[0], E[1], E[2]) - } - }; - var A = { - aqua: [0, 255, 255], - azure: [240, 255, 255], - beige: [245, 245, 220], - black: [0, 0, 0], - blue: [0, 0, 255], - brown: [165, 42, 42], - cyan: [0, 255, 255], - darkblue: [0, 0, 139], - darkcyan: [0, 139, 139], - darkgrey: [169, 169, 169], - darkgreen: [0, 100, 0], - darkkhaki: [189, 183, 107], - darkmagenta: [139, 0, 139], - darkolivegreen: [85, 107, 47], - darkorange: [255, 140, 0], - darkorchid: [153, 50, 204], - darkred: [139, 0, 0], - darksalmon: [233, 150, 122], - darkviolet: [148, 0, 211], - fuchsia: [255, 0, 255], - gold: [255, 215, 0], - green: [0, 128, 0], - indigo: [75, 0, 130], - khaki: [240, 230, 140], - lightblue: [173, 216, 230], - lightcyan: [224, 255, 255], - lightgreen: [144, 238, 144], - lightgrey: [211, 211, 211], - lightpink: [255, 182, 193], - lightyellow: [255, 255, 224], - lime: [0, 255, 0], - magenta: [255, 0, 255], - maroon: [128, 0, 0], - navy: [0, 0, 128], - olive: [128, 128, 0], - orange: [255, 165, 0], - pink: [255, 192, 203], - purple: [128, 0, 128], - violet: [128, 0, 128], - red: [255, 0, 0], - silver: [192, 192, 192], - white: [255, 255, 255], - yellow: [255, 255, 0] - } -})(jQuery); - -// the actual Flot code -(function ($) { - function Plot(placeholder, data_, options_, plugins) { - // data is on the form: - // [ series1, series2 ... ] - // where series is either just the data as [ [x1, y1], [x2, y2], ... ] - // or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... } - var series = [], - options = { - // the color theme used for graphs - colors: ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d", "#9440ed"], - legend: { - show: true, - noColumns: 1, - // number of colums in legend table - labelFormatter: null, - // fn: string -> string - labelBoxBorderColor: "#ccc", - // border color for the little label boxes - container: null, - // container (as jQuery object) to put legend in, null means default on top of graph - position: "ne", - // position of default legend container within plot - margin: 5, - // distance from grid edge to default legend container within plot - backgroundColor: null, - // null means auto-detect - backgroundOpacity: 0.85 // set to 0 to avoid background - }, - xaxis: { - show: null, - // null = auto-detect, true = always, false = never - position: "bottom", - // or "top" - mode: null, - // null or "time" - font: null, - // null (derived from CSS in placeholder) or object like { size: 11, style: "italic", weight: "bold", family: "sans-serif", variant: "small-caps" } - color: null, - // base color, labels, ticks - tickColor: null, - // possibly different color of ticks, e.g. "rgba(0,0,0,0.15)" - transform: null, - // null or f: number -> number to transform axis - inverseTransform: null, - // if transform is set, this should be the inverse function - min: null, - // min. value to show, null means set automatically - max: null, - // max. value to show, null means set automatically - autoscaleMargin: null, - // margin in % to add if auto-setting min/max - ticks: null, - // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks - tickFormatter: null, - // fn: number -> string - labelWidth: null, - // size of tick labels in pixels - labelHeight: null, - reserveSpace: null, - // whether to reserve space even if axis isn't shown - tickLength: null, - // size in pixels of ticks, or "full" for whole line - alignTicksWithAxis: null, - // axis number or null for no sync - // mode specific options - tickDecimals: null, - // no. of decimals, null means auto - tickSize: null, - // number or [number, "unit"] - minTickSize: null, - // number or [number, "unit"] - monthNames: null, - // list of names of months - timeformat: null, - // format string to use - twelveHourClock: false // 12 or 24 time in time mode - }, - yaxis: { - autoscaleMargin: 0.02, - position: "left" // or "right" - }, - xaxes: [], - yaxes: [], - series: { - points: { - show: false, - radius: 3, - lineWidth: 2, - // in pixels - fill: true, - fillColor: "#ffffff", - symbol: "circle" // or callback - }, - lines: { - // we don't put in show: false so we can see - // whether lines were actively disabled - lineWidth: 2, - // in pixels - fill: false, - fillColor: null, - steps: false - }, - bars: { - show: false, - lineWidth: 2, - // in pixels - barWidth: 1, - // in units of the x axis - fill: true, - fillColor: null, - align: "left", - // or "center" - horizontal: false - }, - shadowSize: 3 - }, - grid: { - show: true, - aboveData: false, - color: "#545454", - // primary color used for outline and labels - backgroundColor: null, - // null for transparent, else color - borderColor: null, - // set if different from the grid color - tickColor: null, - // color for the ticks, e.g. "rgba(0,0,0,0.15)" - labelMargin: 5, - // in pixels - axisMargin: 8, - // in pixels - borderWidth: 2, - // in pixels - minBorderMargin: null, - // in pixels, null means taken from points radius - markings: null, - // array of ranges or fn: axes -> array of ranges - markingsColor: "#f4f4f4", - markingsLineWidth: 2, - // interactive stuff - clickable: false, - hoverable: false, - autoHighlight: true, - // highlight in case mouse is near - mouseActiveRadius: 10 // how far the mouse can be away to activate an item - }, - interaction: { - redrawOverlayInterval: 1000 / 60 // time between updates, -1 means in same flow - }, - hooks: {} - }, - canvas = null, - // the canvas for the plot itself - overlay = null, - // canvas for interactive stuff on top of plot - eventHolder = null, - // jQuery object that events should be bound to - ctx = null, - octx = null, - xaxes = [], - yaxes = [], - plotOffset = { - left: 0, - right: 0, - top: 0, - bottom: 0 - }, - canvasWidth = 0, - canvasHeight = 0, - plotWidth = 0, - plotHeight = 0, - hooks = { - processOptions: [], - processRawData: [], - processDatapoints: [], - drawSeries: [], - draw: [], - bindEvents: [], - drawOverlay: [], - shutdown: [] - }, - plot = this; - - // public functions - plot.setData = setData; - plot.setupGrid = setupGrid; - plot.draw = draw; - plot.getPlaceholder = function () { - return placeholder; - }; - plot.getCanvas = function () { - return canvas; - }; - plot.getPlotOffset = function () { - return plotOffset; - }; - plot.width = function () { - return plotWidth; - }; - plot.height = function () { - return plotHeight; - }; - plot.offset = function () { - var o = eventHolder.offset(); - o.left += plotOffset.left; - o.top += plotOffset.top; - return o; - }; - plot.getData = function () { - return series; - }; - plot.getAxes = function () { - var res = {}, - i; - $.each(xaxes.concat(yaxes), function (_, axis) { - if (axis) res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis; - }); - return res; - }; - plot.getXAxes = function () { - return xaxes; - }; - plot.getYAxes = function () { - return yaxes; - }; - plot.c2p = canvasToAxisCoords; - plot.p2c = axisToCanvasCoords; - plot.getOptions = function () { - return options; - }; - plot.highlight = highlight; - plot.unhighlight = unhighlight; - plot.triggerRedrawOverlay = triggerRedrawOverlay; - plot.pointOffset = function (point) { - return { - left: parseInt(xaxes[axisNumber(point, "x") - 1].p2c(+point.x) + plotOffset.left), - top: parseInt(yaxes[axisNumber(point, "y") - 1].p2c(+point.y) + plotOffset.top) - }; - }; - plot.shutdown = shutdown; - plot.resize = function () { - getCanvasDimensions(); - resizeCanvas(canvas); - resizeCanvas(overlay); - }; - - // public attributes - plot.hooks = hooks; - - // initialize - initPlugins(plot); - parseOptions(options_); - setupCanvases(); - setData(data_); - setupGrid(); - draw(); - bindEvents(); - - - function executeHooks(hook, args) { - args = [plot].concat(args); - for (var i = 0; i < hook.length; ++i) - hook[i].apply(this, args); - } - - function initPlugins() { - for (var i = 0; i < plugins.length; ++i) { - var p = plugins[i]; - p.init(plot); - if (p.options) $.extend(true, options, p.options); - } - } - - function parseOptions(opts) { - var i; - - $.extend(true, options, opts); - - if (options.xaxis.color == null) options.xaxis.color = options.grid.color; - if (options.yaxis.color == null) options.yaxis.color = options.grid.color; - - if (options.xaxis.tickColor == null) // backwards-compatibility - options.xaxis.tickColor = options.grid.tickColor; - if (options.yaxis.tickColor == null) // backwards-compatibility - options.yaxis.tickColor = options.grid.tickColor; - - if (options.grid.borderColor == null) options.grid.borderColor = options.grid.color; - if (options.grid.tickColor == null) options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString(); - - // fill in defaults in axes, copy at least always the - // first as the rest of the code assumes it'll be there - for (i = 0; i < Math.max(1, options.xaxes.length); ++i) - options.xaxes[i] = $.extend(true, {}, options.xaxis, options.xaxes[i]); - for (i = 0; i < Math.max(1, options.yaxes.length); ++i) - options.yaxes[i] = $.extend(true, {}, options.yaxis, options.yaxes[i]); - - // backwards compatibility, to be removed in future - if (options.xaxis.noTicks && options.xaxis.ticks == null) options.xaxis.ticks = options.xaxis.noTicks; - if (options.yaxis.noTicks && options.yaxis.ticks == null) options.yaxis.ticks = options.yaxis.noTicks; - if (options.x2axis) { - options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis); - options.xaxes[1].position = "top"; - } - if (options.y2axis) { - options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis); - options.yaxes[1].position = "right"; - } - if (options.grid.coloredAreas) options.grid.markings = options.grid.coloredAreas; - if (options.grid.coloredAreasColor) options.grid.markingsColor = options.grid.coloredAreasColor; - if (options.lines) $.extend(true, options.series.lines, options.lines); - if (options.points) $.extend(true, options.series.points, options.points); - if (options.bars) $.extend(true, options.series.bars, options.bars); - if (options.shadowSize != null) options.series.shadowSize = options.shadowSize; - - // save options on axes for future reference - for (i = 0; i < options.xaxes.length; ++i) - getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i]; - for (i = 0; i < options.yaxes.length; ++i) - getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i]; - - // add hooks from options - for (var n in hooks) - if (options.hooks[n] && options.hooks[n].length) hooks[n] = hooks[n].concat(options.hooks[n]); - - executeHooks(hooks.processOptions, [options]); - } - - function setData(d) { - series = parseData(d); - fillInSeriesOptions(); - processData(); - } - - function parseData(d) { - var res = []; - for (var i = 0; i < d.length; ++i) { - var s = $.extend(true, {}, options.series); - - if (d[i].data != null) { - s.data = d[i].data; // move the data instead of deep-copy - delete d[i].data; - - $.extend(true, s, d[i]); - - d[i].data = s.data; - } else s.data = d[i]; - res.push(s); - } - - return res; - } - - function axisNumber(obj, coord) { - var a = obj[coord + "axis"]; - if (typeof a == "object") // if we got a real axis, extract number - a = a.n; - if (typeof a != "number") a = 1; // default to first axis - return a; - } - - function allAxes() { - // return flat array without annoying null entries - return $.grep(xaxes.concat(yaxes), function (a) { - return a; - }); - } - - function canvasToAxisCoords(pos) { - // return an object with x/y corresponding to all used axes - var res = {}, - i, axis; - for (i = 0; i < xaxes.length; ++i) { - axis = xaxes[i]; - if (axis && axis.used) res["x" + axis.n] = axis.c2p(pos.left); - } - - for (i = 0; i < yaxes.length; ++i) { - axis = yaxes[i]; - if (axis && axis.used) res["y" + axis.n] = axis.c2p(pos.top); - } - - if (res.x1 !== undefined) res.x = res.x1; - if (res.y1 !== undefined) res.y = res.y1; - - return res; - } - - function axisToCanvasCoords(pos) { - // get canvas coords from the first pair of x/y found in pos - var res = {}, - i, axis, key; - - for (i = 0; i < xaxes.length; ++i) { - axis = xaxes[i]; - if (axis && axis.used) { - key = "x" + axis.n; - if (pos[key] == null && axis.n == 1) key = "x"; - - if (pos[key] != null) { - res.left = axis.p2c(pos[key]); - break; - } - } - } - - for (i = 0; i < yaxes.length; ++i) { - axis = yaxes[i]; - if (axis && axis.used) { - key = "y" + axis.n; - if (pos[key] == null && axis.n == 1) key = "y"; - - if (pos[key] != null) { - res.top = axis.p2c(pos[key]); - break; - } - } - } - - return res; - } - - function getOrCreateAxis(axes, number) { - if (!axes[number - 1]) axes[number - 1] = { - n: number, - // save the number for future reference - direction: axes == xaxes ? "x" : "y", - options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis) - }; - - return axes[number - 1]; - } - - function fillInSeriesOptions() { - var i; - - // collect what we already got of colors - var neededColors = series.length, - usedColors = [], - assignedColors = []; - for (i = 0; i < series.length; ++i) { - var sc = series[i].color; - if (sc != null) { - --neededColors; - if (typeof sc == "number") assignedColors.push(sc); - else usedColors.push($.color.parse(series[i].color)); - } - } - - // we might need to generate more colors if higher indices - // are assigned - for (i = 0; i < assignedColors.length; ++i) { - neededColors = Math.max(neededColors, assignedColors[i] + 1); - } - - // produce colors as needed - var colors = [], - variation = 0; - i = 0; - while (colors.length < neededColors) { - var c; - if (options.colors.length == i) // check degenerate case - c = $.color.make(100, 100, 100); - else c = $.color.parse(options.colors[i]); - - // vary color if needed - var sign = variation % 2 == 1 ? -1 : 1; - c.scale('rgb', 1 + sign * Math.ceil(variation / 2) * 0.2); - - // FIXME: if we're getting to close to something else, - // we should probably skip this one - colors.push(c); - - ++i; - if (i >= options.colors.length) { - i = 0; - ++variation; - } - } - - // fill in the options - var colori = 0, - s; - for (i = 0; i < series.length; ++i) { - s = series[i]; - - // assign colors - if (s.color == null) { - s.color = colors[colori].toString(); - ++colori; - } else if (typeof s.color == "number") s.color = colors[s.color].toString(); - - // turn on lines automatically in case nothing is set - if (s.lines.show == null) { - var v, show = true; - for (v in s) - if (s[v] && s[v].show) { - show = false; - break; - } - if (show) s.lines.show = true; - } - - // setup axes - s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, "x")); - s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, "y")); - } - } - - function processData() { - var topSentry = Number.POSITIVE_INFINITY, - bottomSentry = Number.NEGATIVE_INFINITY, - fakeInfinity = Number.MAX_VALUE, - i, j, k, m, length, s, points, ps, x, y, axis, val, f, p; - - function updateAxis(axis, min, max) { - if (min < axis.datamin && min != -fakeInfinity) axis.datamin = min; - if (max > axis.datamax && max != fakeInfinity) axis.datamax = max; - } - - $.each(allAxes(), function (_, axis) { - // init axis - axis.datamin = topSentry; - axis.datamax = bottomSentry; - axis.used = false; - }); - - for (i = 0; i < series.length; ++i) { - s = series[i]; - s.datapoints = { - points: [] - }; - - executeHooks(hooks.processRawData, [s, s.data, s.datapoints]); - } - - // first pass: clean and copy data - for (i = 0; i < series.length; ++i) { - s = series[i]; - - var data = s.data, - format = s.datapoints.format; - - if (!format) { - format = []; - // find out how to copy - format.push({ - x: true, - number: true, - required: true - }); - format.push({ - y: true, - number: true, - required: true - }); - - if (s.bars.show || (s.lines.show && s.lines.fill)) { - format.push({ - y: true, - number: true, - required: false, - defaultValue: 0 - }); - if (s.bars.horizontal) { - delete format[format.length - 1].y; - format[format.length - 1].x = true; - } - } - - s.datapoints.format = format; - } - - if (s.datapoints.pointsize != null) continue; // already filled in - s.datapoints.pointsize = format.length; - - ps = s.datapoints.pointsize; - points = s.datapoints.points; - - insertSteps = s.lines.show && s.lines.steps; - s.xaxis.used = s.yaxis.used = true; - - for (j = k = 0; j < data.length; ++j, k += ps) { - p = data[j]; - - var nullify = p == null; - if (!nullify) { - for (m = 0; m < ps; ++m) { - val = p[m]; - f = format[m]; - - if (f) { - if (f.number && val != null) { - val = +val; // convert to number - if (isNaN(val)) val = null; - else if (val == Infinity) val = fakeInfinity; - else if (val == -Infinity) val = -fakeInfinity; - } - - if (val == null) { - if (f.required) nullify = true; - - if (f.defaultValue != null) val = f.defaultValue; - } - } - - points[k + m] = val; - } - } - - if (nullify) { - for (m = 0; m < ps; ++m) { - val = points[k + m]; - if (val != null) { - f = format[m]; - // extract min/max info - if (f.x) updateAxis(s.xaxis, val, val); - if (f.y) updateAxis(s.yaxis, val, val); - } - points[k + m] = null; - } - } else { - // a little bit of line specific stuff that - // perhaps shouldn't be here, but lacking - // better means... - if (insertSteps && k > 0 && points[k - ps] != null && points[k - ps] != points[k] && points[k - ps + 1] != points[k + 1]) { - // copy the point to make room for a middle point - for (m = 0; m < ps; ++m) - points[k + ps + m] = points[k + m]; - - // middle point has same y - points[k + 1] = points[k - ps + 1]; - - // we've added a point, better reflect that - k += ps; - } - } - } - } - - // give the hooks a chance to run - for (i = 0; i < series.length; ++i) { - s = series[i]; - - executeHooks(hooks.processDatapoints, [s, s.datapoints]); - } - - // second pass: find datamax/datamin for auto-scaling - for (i = 0; i < series.length; ++i) { - s = series[i]; - points = s.datapoints.points, ps = s.datapoints.pointsize; - format = s.datapoints.format; - - var xmin = topSentry, - ymin = topSentry, - xmax = bottomSentry, - ymax = bottomSentry; - - for (j = 0; j < points.length; j += ps) { - if (points[j] == null) continue; - - for (m = 0; m < ps; ++m) { - val = points[j + m]; - f = format[m]; - if (!f || val == fakeInfinity || val == -fakeInfinity) continue; - - if (f.x) { - if (val < xmin) xmin = val; - if (val > xmax) xmax = val; - } - if (f.y) { - if (val < ymin) ymin = val; - if (val > ymax) ymax = val; - } - } - } - - if (s.bars.show) { - // make sure we got room for the bar on the dancing floor - var delta = s.bars.align == "left" ? 0 : -s.bars.barWidth / 2; - if (s.bars.horizontal) { - ymin += delta; - ymax += delta + s.bars.barWidth; - } else { - xmin += delta; - xmax += delta + s.bars.barWidth; - } - } - - updateAxis(s.xaxis, xmin, xmax); - updateAxis(s.yaxis, ymin, ymax); - } - - $.each(allAxes(), function (_, axis) { - if (axis.datamin == topSentry) axis.datamin = null; - if (axis.datamax == bottomSentry) axis.datamax = null; - }); - } - - function makeCanvas(skipPositioning, cls) { - var c = document.createElement('canvas'); - c.className = cls; - c.width = canvasWidth; - c.height = canvasHeight; - - if (!skipPositioning) $(c).css({ - position: 'absolute', - left: 0, - top: 0 - }); - - $(c).appendTo(placeholder); - - if (!c.getContext) // excanvas hack - c = window.G_vmlCanvasManager.initElement(c); - - // used for resetting in case we get replotted - c.getContext("2d").save(); - - return c; - } - - function getCanvasDimensions() { - canvasWidth = placeholder.width(); - canvasHeight = placeholder.height(); - - if (canvasWidth <= 0 || canvasHeight <= 0) throw "Invalid dimensions for plot, width = " + canvasWidth + ", height = " + canvasHeight; - } - - function resizeCanvas(c) { - // resizing should reset the state (excanvas seems to be - // buggy though) - if (c.width != canvasWidth) c.width = canvasWidth; - - if (c.height != canvasHeight) c.height = canvasHeight; - - // so try to get back to the initial state (even if it's - // gone now, this should be safe according to the spec) - var cctx = c.getContext("2d"); - cctx.restore(); - - // and save again - cctx.save(); - } - - function setupCanvases() { - var reused, existingCanvas = placeholder.children("canvas.flot-base"), - existingOverlay = placeholder.children("canvas.flot-overlay"); - - if (existingCanvas.length == 0 || existingOverlay == 0) { - // init everything - placeholder.html(""); // make sure placeholder is clear - placeholder.css({ - padding: 0 - }); // padding messes up the positioning - if (placeholder.css("position") == 'static') placeholder.css("position", "relative"); // for positioning labels and overlay - getCanvasDimensions(); - - canvas = makeCanvas(true, "flot-base"); - overlay = makeCanvas(false, "flot-overlay"); // overlay canvas for interactive features - reused = false; - } else { - // reuse existing elements - canvas = existingCanvas.get(0); - overlay = existingOverlay.get(0); - - reused = true; - } - - ctx = canvas.getContext("2d"); - octx = overlay.getContext("2d"); - - // define which element we're listening for events on - eventHolder = $(overlay); - - if (reused) { - // run shutdown in the old plot object - placeholder.data("plot").shutdown(); - - // reset reused canvases - plot.resize(); - - // make sure overlay pixels are cleared (canvas is cleared when we redraw) - octx.clearRect(0, 0, canvasWidth, canvasHeight); - - // then whack any remaining obvious garbage left - eventHolder.unbind(); - placeholder.children().not([canvas, overlay]).remove(); - } - - // save in case we get replotted - placeholder.data("plot", plot); - } - - function bindEvents() { - // bind events - if (options.grid.hoverable) { - eventHolder.mousemove(onMouseMove); - eventHolder.mouseleave(onMouseLeave); - } - - if (options.grid.clickable) eventHolder.click(onClick); - - executeHooks(hooks.bindEvents, [eventHolder]); - } - - function shutdown() { - if (redrawTimeout) clearTimeout(redrawTimeout); - - eventHolder.unbind("mousemove", onMouseMove); - eventHolder.unbind("mouseleave", onMouseLeave); - eventHolder.unbind("click", onClick); - - executeHooks(hooks.shutdown, [eventHolder]); - } - - function setTransformationHelpers(axis) { - // set helper functions on the axis, assumes plot area - // has been computed already - - function identity(x) { - return x; - } - - var s, m, t = axis.options.transform || identity, - it = axis.options.inverseTransform; - - // precompute how much the axis is scaling a point - // in canvas space - if (axis.direction == "x") { - s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min)); - m = Math.min(t(axis.max), t(axis.min)); - } else { - s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min)); - s = -s; - m = Math.max(t(axis.max), t(axis.min)); - } - - // data point to canvas coordinate - if (t == identity) // slight optimization - axis.p2c = function (p) { - return (p - m) * s; - }; - else axis.p2c = function (p) { - return (t(p) - m) * s; - }; - // canvas coordinate to data point - if (!it) axis.c2p = function (c) { - return m + c / s; - }; - else axis.c2p = function (c) { - return it(m + c / s); - }; - } - - function measureTickLabels(axis) { - var opts = axis.options, - ticks = axis.ticks || [], - axisw = opts.labelWidth || 0, - axish = opts.labelHeight || 0, - f = axis.font; - - ctx.save(); - ctx.font = f.style + " " + f.variant + " " + f.weight + " " + f.size + "px '" + f.family + "'"; - - for (var i = 0; i < ticks.length; ++i) { - var t = ticks[i]; - - t.lines = []; - t.width = t.height = 0; - - if (!t.label) continue; - - // accept various kinds of newlines, including HTML ones - // (you can actually split directly on regexps in Javascript, - // but IE is unfortunately broken) - var lines = t.label.replace(/
                |\r\n|\r/g, "\n").split("\n"); - for (var j = 0; j < lines.length; ++j) { - var line = { - text: lines[j] - }, - m = ctx.measureText(line.text); - - line.width = m.width; - // m.height might not be defined, not in the - // standard yet - line.height = m.height != null ? m.height : f.size; - - // add a bit of margin since font rendering is - // not pixel perfect and cut off letters look - // bad, this also doubles as spacing between - // lines - line.height += Math.round(f.size * 0.15); - - t.width = Math.max(line.width, t.width); - t.height += line.height; - - t.lines.push(line); - } - - if (opts.labelWidth == null) axisw = Math.max(axisw, t.width); - if (opts.labelHeight == null) axish = Math.max(axish, t.height); - } - ctx.restore(); - - axis.labelWidth = Math.ceil(axisw); - axis.labelHeight = Math.ceil(axish); - } - - function allocateAxisBoxFirstPhase(axis) { - // find the bounding box of the axis by looking at label - // widths/heights and ticks, make room by diminishing the - // plotOffset; this first phase only looks at one - // dimension per axis, the other dimension depends on the - // other axes so will have to wait - var lw = axis.labelWidth, - lh = axis.labelHeight, - pos = axis.options.position, - tickLength = axis.options.tickLength, - axisMargin = options.grid.axisMargin, - padding = options.grid.labelMargin, - all = axis.direction == "x" ? xaxes : yaxes, - index; - - // determine axis margin - var samePosition = $.grep(all, function (a) { - return a && a.options.position == pos && a.reserveSpace; - }); - if ($.inArray(axis, samePosition) == samePosition.length - 1) axisMargin = 0; // outermost - // determine tick length - if we're innermost, we can use "full" - if (tickLength == null) { - var sameDirection = $.grep(all, function (a) { - return a && a.reserveSpace; - }); - - var innermost = $.inArray(axis, sameDirection) == 0; - if (innermost) tickLength = "full"; - else tickLength = 5; - } - - if (!isNaN(+tickLength)) padding += +tickLength; - - // compute box - if (axis.direction == "x") { - lh += padding; - - if (pos == "bottom") { - plotOffset.bottom += lh + axisMargin; - axis.box = { - top: canvasHeight - plotOffset.bottom, - height: lh - }; - } else { - axis.box = { - top: plotOffset.top + axisMargin, - height: lh - }; - plotOffset.top += lh + axisMargin; - } - } else { - lw += padding; - - if (pos == "left") { - axis.box = { - left: plotOffset.left + axisMargin, - width: lw - }; - plotOffset.left += lw + axisMargin; - } else { - plotOffset.right += lw + axisMargin; - axis.box = { - left: canvasWidth - plotOffset.right, - width: lw - }; - } - } - - // save for future reference - axis.position = pos; - axis.tickLength = tickLength; - axis.box.padding = padding; - axis.innermost = innermost; - } - - function allocateAxisBoxSecondPhase(axis) { - // now that all axis boxes have been placed in one - // dimension, we can set the remaining dimension coordinates - if (axis.direction == "x") { - axis.box.left = plotOffset.left - axis.labelWidth / 2; - axis.box.width = canvasWidth - plotOffset.left - plotOffset.right + axis.labelWidth; - } else { - axis.box.top = plotOffset.top - axis.labelHeight / 2; - axis.box.height = canvasHeight - plotOffset.bottom - plotOffset.top + axis.labelHeight; - } - } - - function adjustLayoutForThingsStickingOut() { - // possibly adjust plot offset to ensure everything stays - // inside the canvas and isn't clipped off - var minMargin = options.grid.minBorderMargin, - margins = { - x: 0, - y: 0 - }, - i, axis; - - // check stuff from the plot (FIXME: this should just read - // a value from the series, otherwise it's impossible to - // customize) - if (minMargin == null) { - minMargin = 0; - for (i = 0; i < series.length; ++i) - minMargin = Math.max(minMargin, 2 * (series[i].points.radius + series[i].points.lineWidth / 2)); - } - - margins.x = margins.y = Math.ceil(minMargin); - - // check axis labels, note we don't check the actual - // labels but instead use the overall width/height to not - // jump as much around with replots - $.each(allAxes(), function (_, axis) { - var dir = axis.direction; - if (axis.reserveSpace) margins[dir] = Math.ceil(Math.max(margins[dir], (dir == "x" ? axis.labelWidth : axis.labelHeight) / 2)); - }); - - plotOffset.left = Math.max(margins.x, plotOffset.left); - plotOffset.right = Math.max(margins.x, plotOffset.right); - plotOffset.top = Math.max(margins.y, plotOffset.top); - plotOffset.bottom = Math.max(margins.y, plotOffset.bottom); - } - - function setupGrid() { - var i, axes = allAxes(), - showGrid = options.grid.show; - - // init plot offset - for (var a in plotOffset) - plotOffset[a] = showGrid ? options.grid.borderWidth : 0; - - // init axes - $.each(axes, function (_, axis) { - axis.show = axis.options.show; - if (axis.show == null) axis.show = axis.used; // by default an axis is visible if it's got data - axis.reserveSpace = axis.show || axis.options.reserveSpace; - - setRange(axis); - }); - - if (showGrid) { - // determine from the placeholder the font size ~ height of font ~ 1 em - var fontDefaults = { - style: placeholder.css("font-style"), - size: Math.round(0.8 * (+placeholder.css("font-size").replace("px", "") || 13)), - variant: placeholder.css("font-variant"), - weight: placeholder.css("font-weight"), - family: placeholder.css("font-family") - }; - - var allocatedAxes = $.grep(axes, function (axis) { - return axis.reserveSpace; - }); - - $.each(allocatedAxes, function (_, axis) { - // make the ticks - setupTickGeneration(axis); - setTicks(axis); - snapRangeToTicks(axis, axis.ticks); - - // find labelWidth/Height for axis - axis.font = $.extend({}, fontDefaults, axis.options.font); - measureTickLabels(axis); - }); - - // with all dimensions calculated, we can compute the - // axis bounding boxes, start from the outside - // (reverse order) - for (i = allocatedAxes.length - 1; i >= 0; --i) - allocateAxisBoxFirstPhase(allocatedAxes[i]); - - // make sure we've got enough space for things that - // might stick out - adjustLayoutForThingsStickingOut(); - - $.each(allocatedAxes, function (_, axis) { - allocateAxisBoxSecondPhase(axis); - }); - } - - plotWidth = canvasWidth - plotOffset.left - plotOffset.right; - plotHeight = canvasHeight - plotOffset.bottom - plotOffset.top; - - // now we got the proper plot dimensions, we can compute the scaling - $.each(axes, function (_, axis) { - setTransformationHelpers(axis); - }); - - insertLegend(); - } - - function setRange(axis) { - var opts = axis.options, - min = +(opts.min != null ? opts.min : axis.datamin), - max = +(opts.max != null ? opts.max : axis.datamax), - delta = max - min; - - if (delta == 0.0) { - // degenerate case - var widen = max == 0 ? 1 : 0.01; - - if (opts.min == null) min -= widen; - // always widen max if we couldn't widen min to ensure we - // don't fall into min == max which doesn't work - if (opts.max == null || opts.min != null) max += widen; - } else { - // consider autoscaling - var margin = opts.autoscaleMargin; - if (margin != null) { - if (opts.min == null) { - min -= delta * margin; - // make sure we don't go below zero if all values - // are positive - if (min < 0 && axis.datamin != null && axis.datamin >= 0) min = 0; - } - if (opts.max == null) { - max += delta * margin; - if (max > 0 && axis.datamax != null && axis.datamax <= 0) max = 0; - } - } - } - axis.min = min; - axis.max = max; - } - - function setupTickGeneration(axis) { - var opts = axis.options; - - // estimate number of ticks - var noTicks; - if (typeof opts.ticks == "number" && opts.ticks > 0) noTicks = opts.ticks; - else - // heuristic based on the model a*sqrt(x) fitted to - // some data points that seemed reasonable - noTicks = 0.3 * Math.sqrt(axis.direction == "x" ? canvasWidth : canvasHeight); - - var delta = (axis.max - axis.min) / noTicks, - size, generator, unit, formatter, i, magn, norm; - - if (opts.mode == "time") { - // pretty handling of time - // map of app. size of time units in milliseconds - var timeUnitSize = { - "second": 1000, - "minute": 60 * 1000, - "hour": 60 * 60 * 1000, - "day": 24 * 60 * 60 * 1000, - "month": 30 * 24 * 60 * 60 * 1000, - "year": 365.2425 * 24 * 60 * 60 * 1000 - }; - - - // the allowed tick sizes, after 1 year we use - // an integer algorithm - var spec = [ - [1, "second"], - [2, "second"], - [5, "second"], - [10, "second"], - [30, "second"], - [1, "minute"], - [2, "minute"], - [5, "minute"], - [10, "minute"], - [30, "minute"], - [1, "hour"], - [2, "hour"], - [4, "hour"], - [8, "hour"], - [12, "hour"], - [1, "day"], - [2, "day"], - [3, "day"], - [0.25, "month"], - [0.5, "month"], - [1, "month"], - [2, "month"], - [3, "month"], - [6, "month"], - [1, "year"] - ]; - - var minSize = 0; - if (opts.minTickSize != null) { - if (typeof opts.tickSize == "number") minSize = opts.tickSize; - else minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]]; - } - - for (var i = 0; i < spec.length - 1; ++i) - if (delta < (spec[i][0] * timeUnitSize[spec[i][1]] + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2 && spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) break; - size = spec[i][0]; - unit = spec[i][1]; - - // special-case the possibility of several years - if (unit == "year") { - magn = Math.pow(10, Math.floor(Math.log(delta / timeUnitSize.year) / Math.LN10)); - norm = (delta / timeUnitSize.year) / magn; - if (norm < 1.5) size = 1; - else if (norm < 3) size = 2; - else if (norm < 7.5) size = 5; - else size = 10; - - size *= magn; - } - - axis.tickSize = opts.tickSize || [size, unit]; - - generator = function (axis) { - var ticks = [], - tickSize = axis.tickSize[0], - unit = axis.tickSize[1], - d = new Date(axis.min); - - var step = tickSize * timeUnitSize[unit]; - - if (unit == "second") d.setUTCSeconds(floorInBase(d.getUTCSeconds(), tickSize)); - if (unit == "minute") d.setUTCMinutes(floorInBase(d.getUTCMinutes(), tickSize)); - if (unit == "hour") d.setUTCHours(floorInBase(d.getUTCHours(), tickSize)); - if (unit == "month") d.setUTCMonth(floorInBase(d.getUTCMonth(), tickSize)); - if (unit == "year") d.setUTCFullYear(floorInBase(d.getUTCFullYear(), tickSize)); - - // reset smaller components - d.setUTCMilliseconds(0); - if (step >= timeUnitSize.minute) d.setUTCSeconds(0); - if (step >= timeUnitSize.hour) d.setUTCMinutes(0); - if (step >= timeUnitSize.day) d.setUTCHours(0); - if (step >= timeUnitSize.day * 4) d.setUTCDate(1); - if (step >= timeUnitSize.year) d.setUTCMonth(0); - - - var carry = 0, - v = Number.NaN, - prev; - do { - prev = v; - v = d.getTime(); - ticks.push(v); - if (unit == "month") { - if (tickSize < 1) { - // a bit complicated - we'll divide the month - // up but we need to take care of fractions - // so we don't end up in the middle of a day - d.setUTCDate(1); - var start = d.getTime(); - d.setUTCMonth(d.getUTCMonth() + 1); - var end = d.getTime(); - d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize); - carry = d.getUTCHours(); - d.setUTCHours(0); - } else d.setUTCMonth(d.getUTCMonth() + tickSize); - } else if (unit == "year") { - d.setUTCFullYear(d.getUTCFullYear() + tickSize); - } else d.setTime(v + step); - } while (v < axis.max && v != prev); - - return ticks; - }; - - formatter = function (v, axis) { - var d = new Date(v); - - // first check global format - if (opts.timeformat != null) return $.plot.formatDate(d, opts.timeformat, opts.monthNames); - - var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]]; - var span = axis.max - axis.min; - var suffix = (opts.twelveHourClock) ? " %p" : ""; - - if (t < timeUnitSize.minute) fmt = "%h:%M:%S" + suffix; - else if (t < timeUnitSize.day) { - if (span < 2 * timeUnitSize.day) fmt = "%h:%M" + suffix; - else fmt = "%b %d %h:%M" + suffix; - } else if (t < timeUnitSize.month) fmt = "%b %d"; - else if (t < timeUnitSize.year) { - if (span < timeUnitSize.year) fmt = "%b"; - else fmt = "%b %y"; - } else fmt = "%y"; - - return $.plot.formatDate(d, fmt, opts.monthNames); - }; - } else { - // pretty rounding of base-10 numbers - var maxDec = opts.tickDecimals; - var dec = -Math.floor(Math.log(delta) / Math.LN10); - if (maxDec != null && dec > maxDec) dec = maxDec; - - magn = Math.pow(10, -dec); - norm = delta / magn; // norm is between 1.0 and 10.0 - if (norm < 1.5) size = 1; - else if (norm < 3) { - size = 2; - // special case for 2.5, requires an extra decimal - if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) { - size = 2.5; - ++dec; - } - } else if (norm < 7.5) size = 5; - else size = 10; - - size *= magn; - - if (opts.minTickSize != null && size < opts.minTickSize) size = opts.minTickSize; - - axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec); - axis.tickSize = opts.tickSize || size; - - generator = function (axis) { - var ticks = []; - - // spew out all possible ticks - var start = floorInBase(axis.min, axis.tickSize), - i = 0, - v = Number.NaN, - prev; - do { - prev = v; - v = start + i * axis.tickSize; - ticks.push(v);++i; - } while (v < axis.max && v != prev); - return ticks; - }; - - formatter = function (v, axis) { - return v.toFixed(axis.tickDecimals); - }; - } - - if (opts.alignTicksWithAxis != null) { - var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1]; - if (otherAxis && otherAxis.used && otherAxis != axis) { - // consider snapping min/max to outermost nice ticks - var niceTicks = generator(axis); - if (niceTicks.length > 0) { - if (opts.min == null) axis.min = Math.min(axis.min, niceTicks[0]); - if (opts.max == null && niceTicks.length > 1) axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]); - } - - generator = function (axis) { - // copy ticks, scaled to this axis - var ticks = [], - v, i; - for (i = 0; i < otherAxis.ticks.length; ++i) { - v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min); - v = axis.min + v * (axis.max - axis.min); - ticks.push(v); - } - return ticks; - }; - - // we might need an extra decimal since forced - // ticks don't necessarily fit naturally - if (!axis.mode && opts.tickDecimals == null) { - var extraDec = Math.max(0, -Math.floor(Math.log(delta) / Math.LN10) + 1), - ts = generator(axis); - - // only proceed if the tick interval rounded - // with an extra decimal doesn't give us a - // zero at end - if (!(ts.length > 1 && /\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec)))) axis.tickDecimals = extraDec; - } - } - } - - axis.tickGenerator = generator; - if ($.isFunction(opts.tickFormatter)) axis.tickFormatter = function (v, axis) { - return "" + opts.tickFormatter(v, axis); - }; - else axis.tickFormatter = formatter; - } - - function setTicks(axis) { - var oticks = axis.options.ticks, - ticks = []; - if (oticks == null || (typeof oticks == "number" && oticks > 0)) ticks = axis.tickGenerator(axis); - else if (oticks) { - if ($.isFunction(oticks)) - // generate the ticks - ticks = oticks(axis); - else ticks = oticks; - } - - // clean up/labelify the supplied ticks, copy them over - var i, v; - axis.ticks = []; - for (i = 0; i < ticks.length; ++i) { - var label = null; - var t = ticks[i]; - if (typeof t == "object") { - v = +t[0]; - if (t.length > 1) label = t[1]; - } else v = +t; - if (label == null) label = axis.tickFormatter(v, axis); - if (!isNaN(v)) axis.ticks.push({ - v: v, - label: label - }); - } - } - - function snapRangeToTicks(axis, ticks) { - if (axis.options.autoscaleMargin && ticks.length > 0) { - // snap to ticks - if (axis.options.min == null) axis.min = Math.min(axis.min, ticks[0].v); - if (axis.options.max == null && ticks.length > 1) axis.max = Math.max(axis.max, ticks[ticks.length - 1].v); - } - } - - function draw() { - ctx.clearRect(0, 0, canvasWidth, canvasHeight); - - var grid = options.grid; - - // draw background, if any - if (grid.show && grid.backgroundColor) drawBackground(); - - if (grid.show && !grid.aboveData) { - drawGrid(); - drawAxisLabels(); - } - - for (var i = 0; i < series.length; ++i) { - executeHooks(hooks.drawSeries, [ctx, series[i]]); - drawSeries(series[i]); - } - - executeHooks(hooks.draw, [ctx]); - - if (grid.show && grid.aboveData) { - drawGrid(); - drawAxisLabels(); - } - } - - function extractRange(ranges, coord) { - var axis, from, to, key, axes = allAxes(); - - for (i = 0; i < axes.length; ++i) { - axis = axes[i]; - if (axis.direction == coord) { - key = coord + axis.n + "axis"; - if (!ranges[key] && axis.n == 1) key = coord + "axis"; // support x1axis as xaxis - if (ranges[key]) { - from = ranges[key].from; - to = ranges[key].to; - break; - } - } - } - - // backwards-compat stuff - to be removed in future - if (!ranges[key]) { - axis = coord == "x" ? xaxes[0] : yaxes[0]; - from = ranges[coord + "1"]; - to = ranges[coord + "2"]; - } - - // auto-reverse as an added bonus - if (from != null && to != null && from > to) { - var tmp = from; - from = to; - to = tmp; - } - - return { - from: from, - to: to, - axis: axis - }; - } - - function drawBackground() { - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)"); - ctx.fillRect(0, 0, plotWidth, plotHeight); - ctx.restore(); - } - - function drawGrid() { - var i; - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - // draw markings - var markings = options.grid.markings; - if (markings) { - if ($.isFunction(markings)) { - var axes = plot.getAxes(); - // xmin etc. is backwards compatibility, to be - // removed in the future - axes.xmin = axes.xaxis.min; - axes.xmax = axes.xaxis.max; - axes.ymin = axes.yaxis.min; - axes.ymax = axes.yaxis.max; - - markings = markings(axes); - } - - for (i = 0; i < markings.length; ++i) { - var m = markings[i], - xrange = extractRange(m, "x"), - yrange = extractRange(m, "y"); - - // fill in missing - if (xrange.from == null) xrange.from = xrange.axis.min; - if (xrange.to == null) xrange.to = xrange.axis.max; - if (yrange.from == null) yrange.from = yrange.axis.min; - if (yrange.to == null) yrange.to = yrange.axis.max; - - // clip - if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max || yrange.to < yrange.axis.min || yrange.from > yrange.axis.max) continue; - - xrange.from = Math.max(xrange.from, xrange.axis.min); - xrange.to = Math.min(xrange.to, xrange.axis.max); - yrange.from = Math.max(yrange.from, yrange.axis.min); - yrange.to = Math.min(yrange.to, yrange.axis.max); - - if (xrange.from == xrange.to && yrange.from == yrange.to) continue; - - // then draw - xrange.from = xrange.axis.p2c(xrange.from); - xrange.to = xrange.axis.p2c(xrange.to); - yrange.from = yrange.axis.p2c(yrange.from); - yrange.to = yrange.axis.p2c(yrange.to); - - if (xrange.from == xrange.to || yrange.from == yrange.to) { - // draw line - ctx.beginPath(); - ctx.strokeStyle = m.color || options.grid.markingsColor; - ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth; - ctx.moveTo(xrange.from, yrange.from); - ctx.lineTo(xrange.to, yrange.to); - ctx.stroke(); - } else { - // fill area - ctx.fillStyle = m.color || options.grid.markingsColor; - ctx.fillRect(xrange.from, yrange.to, xrange.to - xrange.from, yrange.from - yrange.to); - } - } - } - - // draw the ticks - var axes = allAxes(), - bw = options.grid.borderWidth; - - for (var j = 0; j < axes.length; ++j) { - var axis = axes[j], - box = axis.box, - t = axis.tickLength, - x, y, xoff, yoff; - if (!axis.show || axis.ticks.length == 0) continue; - - ctx.strokeStyle = axis.options.tickColor || $.color.parse(axis.options.color).scale('a', 0.22).toString(); - ctx.lineWidth = 1; - - // find the edges - if (axis.direction == "x") { - x = 0; - if (t == "full") y = (axis.position == "top" ? 0 : plotHeight); - else y = box.top - plotOffset.top + (axis.position == "top" ? box.height : 0); - } else { - y = 0; - if (t == "full") x = (axis.position == "left" ? 0 : plotWidth); - else x = box.left - plotOffset.left + (axis.position == "left" ? box.width : 0); - } - - // draw tick bar - if (!axis.innermost) { - ctx.beginPath(); - xoff = yoff = 0; - if (axis.direction == "x") xoff = plotWidth; - else yoff = plotHeight; - - if (ctx.lineWidth == 1) { - x = Math.floor(x) + 0.5; - y = Math.floor(y) + 0.5; - } - - ctx.moveTo(x, y); - ctx.lineTo(x + xoff, y + yoff); - ctx.stroke(); - } - - // draw ticks - ctx.beginPath(); - for (i = 0; i < axis.ticks.length; ++i) { - var v = axis.ticks[i].v; - - xoff = yoff = 0; - - if (v < axis.min || v > axis.max - // skip those lying on the axes if we got a border - || (t == "full" && bw > 0 && (v == axis.min || v == axis.max))) continue; - - if (axis.direction == "x") { - x = axis.p2c(v); - yoff = t == "full" ? -plotHeight : t; - - if (axis.position == "top") yoff = -yoff; - } else { - y = axis.p2c(v); - xoff = t == "full" ? -plotWidth : t; - - if (axis.position == "left") xoff = -xoff; - } - - if (ctx.lineWidth == 1) { - if (axis.direction == "x") x = Math.floor(x) + 0.5; - else y = Math.floor(y) + 0.5; - } - - ctx.moveTo(x, y); - ctx.lineTo(x + xoff, y + yoff); - } - - ctx.stroke(); - } - - - // draw border - if (bw) { - ctx.lineWidth = bw; - ctx.strokeStyle = options.grid.borderColor; - ctx.strokeRect(-bw / 2, -bw / 2, plotWidth + bw, plotHeight + bw); - } - - ctx.restore(); - } - - function drawAxisLabels() { - ctx.save(); - - $.each(allAxes(), function (_, axis) { - if (!axis.show || axis.ticks.length == 0) return; - - var box = axis.box, - f = axis.font; - // placeholder.append('
                ') // debug - ctx.fillStyle = axis.options.color; - // Important: Don't use quotes around axis.font.family! Just around single - // font names like 'Times New Roman' that have a space or special character in it. - ctx.font = f.style + " " + f.variant + " " + f.weight + " " + f.size + "px " + f.family; - ctx.textAlign = "start"; - // middle align the labels - top would be more - // natural, but browsers can differ a pixel or two in - // where they consider the top to be, so instead we - // middle align to minimize variation between browsers - // and compensate when calculating the coordinates - ctx.textBaseline = "middle"; - - for (var i = 0; i < axis.ticks.length; ++i) { - var tick = axis.ticks[i]; - if (!tick.label || tick.v < axis.min || tick.v > axis.max) continue; - - var x, y, offset = 0, - line; - for (var k = 0; k < tick.lines.length; ++k) { - line = tick.lines[k]; - - if (axis.direction == "x") { - x = plotOffset.left + axis.p2c(tick.v) - line.width / 2; - if (axis.position == "bottom") y = box.top + box.padding; - else y = box.top + box.height - box.padding - tick.height; - } else { - y = plotOffset.top + axis.p2c(tick.v) - tick.height / 2; - if (axis.position == "left") x = box.left + box.width - box.padding - line.width; - else x = box.left + box.padding; - } - - // account for middle aligning and line number - y += line.height / 2 + offset; - offset += line.height; - - if ($.browser.opera) { - // FIXME: UGLY BROWSER DETECTION - // round the coordinates since Opera - // otherwise switches to more ugly - // rendering (probably non-hinted) and - // offset the y coordinates since it seems - // to be off pretty consistently compared - // to the other browsers - x = Math.floor(x); - y = Math.ceil(y - 2); - } - ctx.fillText(line.text, x, y); - } - } - }); - - ctx.restore(); - } - - function drawSeries(series) { - if (series.lines.show) drawSeriesLines(series); - if (series.bars.show) drawSeriesBars(series); - if (series.points.show) drawSeriesPoints(series); - } - - function drawSeriesLines(series) { - function plotLine(datapoints, xoffset, yoffset, axisx, axisy) { - var points = datapoints.points, - ps = datapoints.pointsize, - prevx = null, - prevy = null; - - ctx.beginPath(); - for (var i = ps; i < points.length; i += ps) { - var x1 = points[i - ps], - y1 = points[i - ps + 1], - x2 = points[i], - y2 = points[i + 1]; - - if (x1 == null || x2 == null) continue; - - // clip with ymin - if (y1 <= y2 && y1 < axisy.min) { - if (y2 < axisy.min) continue; // line segment is outside - // compute new intersection point - x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; - y1 = axisy.min; - } else if (y2 <= y1 && y2 < axisy.min) { - if (y1 < axisy.min) continue; - x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; - y2 = axisy.min; - } - - // clip with ymax - if (y1 >= y2 && y1 > axisy.max) { - if (y2 > axisy.max) continue; - x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; - y1 = axisy.max; - } else if (y2 >= y1 && y2 > axisy.max) { - if (y1 > axisy.max) continue; - x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; - y2 = axisy.max; - } - - // clip with xmin - if (x1 <= x2 && x1 < axisx.min) { - if (x2 < axisx.min) continue; - y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; - x1 = axisx.min; - } else if (x2 <= x1 && x2 < axisx.min) { - if (x1 < axisx.min) continue; - y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; - x2 = axisx.min; - } - - // clip with xmax - if (x1 >= x2 && x1 > axisx.max) { - if (x2 > axisx.max) continue; - y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; - x1 = axisx.max; - } else if (x2 >= x1 && x2 > axisx.max) { - if (x1 > axisx.max) continue; - y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; - x2 = axisx.max; - } - - if (x1 != prevx || y1 != prevy) ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset); - - prevx = x2; - prevy = y2; - ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset); - } - ctx.stroke(); - } - - function plotLineArea(datapoints, axisx, axisy) { - var points = datapoints.points, - ps = datapoints.pointsize, - bottom = Math.min(Math.max(0, axisy.min), axisy.max), - i = 0, - top, areaOpen = false, - ypos = 1, - segmentStart = 0, - segmentEnd = 0; - - // we process each segment in two turns, first forward - // direction to sketch out top, then once we hit the - // end we go backwards to sketch the bottom - while (true) { - if (ps > 0 && i > points.length + ps) break; - - i += ps; // ps is negative if going backwards - var x1 = points[i - ps], - y1 = points[i - ps + ypos], - x2 = points[i], - y2 = points[i + ypos]; - - if (areaOpen) { - if (ps > 0 && x1 != null && x2 == null) { - // at turning point - segmentEnd = i; - ps = -ps; - ypos = 2; - continue; - } - - if (ps < 0 && i == segmentStart + ps) { - // done with the reverse sweep - ctx.fill(); - areaOpen = false; - ps = -ps; - ypos = 1; - i = segmentStart = segmentEnd + ps; - continue; - } - } - - if (x1 == null || x2 == null) continue; - - // clip x values - // clip with xmin - if (x1 <= x2 && x1 < axisx.min) { - if (x2 < axisx.min) continue; - y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; - x1 = axisx.min; - } else if (x2 <= x1 && x2 < axisx.min) { - if (x1 < axisx.min) continue; - y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; - x2 = axisx.min; - } - - // clip with xmax - if (x1 >= x2 && x1 > axisx.max) { - if (x2 > axisx.max) continue; - y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; - x1 = axisx.max; - } else if (x2 >= x1 && x2 > axisx.max) { - if (x1 > axisx.max) continue; - y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; - x2 = axisx.max; - } - - if (!areaOpen) { - // open area - ctx.beginPath(); - ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom)); - areaOpen = true; - } - - // now first check the case where both is outside - if (y1 >= axisy.max && y2 >= axisy.max) { - ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max)); - ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max)); - continue; - } else if (y1 <= axisy.min && y2 <= axisy.min) { - ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min)); - ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min)); - continue; - } - - // else it's a bit more complicated, there might - // be a flat maxed out rectangle first, then a - // triangular cutout or reverse; to find these - // keep track of the current x values - var x1old = x1, - x2old = x2; - - // clip the y values, without shortcutting, we - // go through all cases in turn - // clip with ymin - if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) { - x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; - y1 = axisy.min; - } else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) { - x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; - y2 = axisy.min; - } - - // clip with ymax - if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) { - x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; - y1 = axisy.max; - } else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) { - x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; - y2 = axisy.max; - } - - // if the x value was changed we got a rectangle - // to fill - if (x1 != x1old) { - ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1)); - // it goes to (x1, y1), but we fill that below - } - - // fill triangular section, this sometimes result - // in redundant points if (x1, y1) hasn't changed - // from previous line to, but we just ignore that - ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1)); - ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); - - // fill the other rectangle if it's there - if (x2 != x2old) { - ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); - ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2)); - } - } - } - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - ctx.lineJoin = "round"; - - var lw = series.lines.lineWidth, - sw = series.shadowSize; - // FIXME: consider another form of shadow when filling is turned on - if (lw > 0 && sw > 0) { - // draw shadow as a thick and thin line with transparency - ctx.lineWidth = sw; - ctx.strokeStyle = "rgba(0,0,0,0.1)"; - // position shadow at angle from the mid of line - var angle = Math.PI / 18; - plotLine(series.datapoints, Math.sin(angle) * (lw / 2 + sw / 2), Math.cos(angle) * (lw / 2 + sw / 2), series.xaxis, series.yaxis); - ctx.lineWidth = sw / 2; - plotLine(series.datapoints, Math.sin(angle) * (lw / 2 + sw / 4), Math.cos(angle) * (lw / 2 + sw / 4), series.xaxis, series.yaxis); - } - - ctx.lineWidth = lw; - ctx.strokeStyle = series.color; - var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight); - if (fillStyle) { - ctx.fillStyle = fillStyle; - plotLineArea(series.datapoints, series.xaxis, series.yaxis); - } - - if (lw > 0) plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis); - ctx.restore(); - } - - function drawSeriesPoints(series) { - function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) { - var points = datapoints.points, - ps = datapoints.pointsize; - - for (var i = 0; i < points.length; i += ps) { - var x = points[i], - y = points[i + 1]; - if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) continue; - - ctx.beginPath(); - x = axisx.p2c(x); - y = axisy.p2c(y) + offset; - if (symbol == "circle") ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false); - else symbol(ctx, x, y, radius, shadow); - ctx.closePath(); - - if (fillStyle) { - ctx.fillStyle = fillStyle; - ctx.fill(); - } - ctx.stroke(); - } - } - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - var lw = series.points.lineWidth, - sw = series.shadowSize, - radius = series.points.radius, - symbol = series.points.symbol; - if (lw > 0 && sw > 0) { - // draw shadow in two steps - var w = sw / 2; - ctx.lineWidth = w; - ctx.strokeStyle = "rgba(0,0,0,0.1)"; - plotPoints(series.datapoints, radius, null, w + w / 2, true, series.xaxis, series.yaxis, symbol); - - ctx.strokeStyle = "rgba(0,0,0,0.2)"; - plotPoints(series.datapoints, radius, null, w / 2, true, series.xaxis, series.yaxis, symbol); - } - - ctx.lineWidth = lw; - ctx.strokeStyle = series.color; - plotPoints(series.datapoints, radius, getFillStyle(series.points, series.color), 0, false, series.xaxis, series.yaxis, symbol); - ctx.restore(); - } - - function drawBar(x, y, b, barLeft, barRight, offset, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) { - var left, right, bottom, top, drawLeft, drawRight, drawTop, drawBottom, tmp; - - // in horizontal mode, we start the bar from the left - // instead of from the bottom so it appears to be - // horizontal rather than vertical - if (horizontal) { - drawBottom = drawRight = drawTop = true; - drawLeft = false; - left = b; - right = x; - top = y + barLeft; - bottom = y + barRight; - - // account for negative bars - if (right < left) { - tmp = right; - right = left; - left = tmp; - drawLeft = true; - drawRight = false; - } - } else { - drawLeft = drawRight = drawTop = true; - drawBottom = false; - left = x + barLeft; - right = x + barRight; - bottom = b; - top = y; - - // account for negative bars - if (top < bottom) { - tmp = top; - top = bottom; - bottom = tmp; - drawBottom = true; - drawTop = false; - } - } - - // clip - if (right < axisx.min || left > axisx.max || top < axisy.min || bottom > axisy.max) return; - - if (left < axisx.min) { - left = axisx.min; - drawLeft = false; - } - - if (right > axisx.max) { - right = axisx.max; - drawRight = false; - } - - if (bottom < axisy.min) { - bottom = axisy.min; - drawBottom = false; - } - - if (top > axisy.max) { - top = axisy.max; - drawTop = false; - } - - left = axisx.p2c(left); - bottom = axisy.p2c(bottom); - right = axisx.p2c(right); - top = axisy.p2c(top); - - // fill the bar - if (fillStyleCallback) { - c.beginPath(); - c.moveTo(left, bottom); - c.lineTo(left, top); - c.lineTo(right, top); - c.lineTo(right, bottom); - c.fillStyle = fillStyleCallback(bottom, top); - c.fill(); - } - - // draw outline - if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) { - c.beginPath(); - - // FIXME: inline moveTo is buggy with excanvas - c.moveTo(left, bottom + offset); - if (drawLeft) c.lineTo(left, top + offset); - else c.moveTo(left, top + offset); - if (drawTop) c.lineTo(right, top + offset); - else c.moveTo(right, top + offset); - if (drawRight) c.lineTo(right, bottom + offset); - else c.moveTo(right, bottom + offset); - if (drawBottom) c.lineTo(left, bottom + offset); - else c.moveTo(left, bottom + offset); - c.stroke(); - } - } - - function drawSeriesBars(series) { - function plotBars(datapoints, barLeft, barRight, offset, fillStyleCallback, axisx, axisy) { - var points = datapoints.points, - ps = datapoints.pointsize; - - for (var i = 0; i < points.length; i += ps) { - if (points[i] == null) continue; - drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, offset, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth); - } - } - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - // FIXME: figure out a way to add shadows (for instance along the right edge) - ctx.lineWidth = series.bars.lineWidth; - ctx.strokeStyle = series.color; - var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth / 2; - var fillStyleCallback = series.bars.fill ? - function (bottom, top) { - return getFillStyle(series.bars, series.color, bottom, top); - } : null; - plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, 0, fillStyleCallback, series.xaxis, series.yaxis); - ctx.restore(); - } - - function getFillStyle(filloptions, seriesColor, bottom, top) { - var fill = filloptions.fill; - if (!fill) return null; - - if (filloptions.fillColor) return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor); - - var c = $.color.parse(seriesColor); - c.a = typeof fill == "number" ? fill : 0.4; - c.normalize(); - return c.toString(); - } - - function insertLegend() { - placeholder.find(".legend").remove(); - - if (!options.legend.show) return; - - var fragments = [], - rowStarted = false, - lf = options.legend.labelFormatter, - s, label; - for (var i = 0; i < series.length; ++i) { - s = series[i]; - label = s.label; - if (!label) continue; - - if (i % options.legend.noColumns == 0) { - if (rowStarted) fragments.push(''); - fragments.push(''); - rowStarted = true; - } - - if (lf) label = lf(label, s); - - fragments.push('
                ' + '' + label + ''); - } - if (rowStarted) fragments.push(''); - - if (fragments.length == 0) return; - - var table = '' + fragments.join("") + '
                '; - if (options.legend.container != null) $(options.legend.container).html(table); - else { - var pos = "", - p = options.legend.position, - m = options.legend.margin; - if (m[0] == null) m = [m, m]; - if (p.charAt(0) == "n") pos += 'top:' + (m[1] + plotOffset.top) + 'px;'; - else if (p.charAt(0) == "s") pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;'; - if (p.charAt(1) == "e") pos += 'right:' + (m[0] + plotOffset.right) + 'px;'; - else if (p.charAt(1) == "w") pos += 'left:' + (m[0] + plotOffset.left) + 'px;'; - var legend = $('
                ' + table.replace('style="', 'style="position:absolute;' + pos + ';') + '
                ').appendTo(placeholder); - if (options.legend.backgroundOpacity != 0.0) { - // put in the transparent background - // separately to avoid blended labels and - // label boxes - var c = options.legend.backgroundColor; - if (c == null) { - c = options.grid.backgroundColor; - if (c && typeof c == "string") c = $.color.parse(c); - else c = $.color.extract(legend, 'background-color'); - c.a = 1; - c = c.toString(); - } - var div = legend.children(); - $('
                ').prependTo(legend).css('opacity', options.legend.backgroundOpacity); - } - } - } - - - // interactive features - var highlights = [], - redrawTimeout = null; - - // returns the data item the mouse is over, or null if none is found - - - function findNearbyItem(mouseX, mouseY, seriesFilter) { - var maxDistance = options.grid.mouseActiveRadius, - smallestDistance = maxDistance * maxDistance + 1, - item = null, - foundPoint = false, - i, j; - - for (i = series.length - 1; i >= 0; --i) { - if (!seriesFilter(series[i])) continue; - - var s = series[i], - axisx = s.xaxis, - axisy = s.yaxis, - points = s.datapoints.points, - ps = s.datapoints.pointsize, - mx = axisx.c2p(mouseX), - // precompute some stuff to make the loop faster - my = axisy.c2p(mouseY), - maxx = maxDistance / axisx.scale, - maxy = maxDistance / axisy.scale; - - // with inverse transforms, we can't use the maxx/maxy - // optimization, sadly - if (axisx.options.inverseTransform) maxx = Number.MAX_VALUE; - if (axisy.options.inverseTransform) maxy = Number.MAX_VALUE; - - if (s.lines.show || s.points.show) { - for (j = 0; j < points.length; j += ps) { - var x = points[j], - y = points[j + 1]; - if (x == null) continue; - - // For points and lines, the cursor must be within a - // certain distance to the data point - if (x - mx > maxx || x - mx < -maxx || y - my > maxy || y - my < -maxy) continue; - - // We have to calculate distances in pixels, not in - // data units, because the scales of the axes may be different - var dx = Math.abs(axisx.p2c(x) - mouseX), - dy = Math.abs(axisy.p2c(y) - mouseY), - dist = dx * dx + dy * dy; // we save the sqrt - // use <= to ensure last point takes precedence - // (last generally means on top of) - if (dist < smallestDistance) { - smallestDistance = dist; - item = [i, j / ps]; - } - } - } - - if (s.bars.show && !item) { // no other point can be nearby - var barLeft = s.bars.align == "left" ? 0 : -s.bars.barWidth / 2, - barRight = barLeft + s.bars.barWidth; - - for (j = 0; j < points.length; j += ps) { - var x = points[j], - y = points[j + 1], - b = points[j + 2]; - if (x == null) continue; - - // for a bar graph, the cursor must be inside the bar - if (series[i].bars.horizontal ? (mx <= Math.max(b, x) && mx >= Math.min(b, x) && my >= y + barLeft && my <= y + barRight) : (mx >= x + barLeft && mx <= x + barRight && my >= Math.min(b, y) && my <= Math.max(b, y))) item = [i, j / ps]; - } - } - } - - if (item) { - i = item[0]; - j = item[1]; - ps = series[i].datapoints.pointsize; - - return { - datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps), - dataIndex: j, - series: series[i], - seriesIndex: i - }; - } - - return null; - } - - function onMouseMove(e) { - if (options.grid.hoverable) triggerClickHoverEvent("plothover", e, function (s) { - return s["hoverable"] != false; - }); - } - - function onMouseLeave(e) { - if (options.grid.hoverable) triggerClickHoverEvent("plothover", e, function (s) { - return false; - }); - } - - function onClick(e) { - triggerClickHoverEvent("plotclick", e, function (s) { - return s["clickable"] != false; - }); - } - - // trigger click or hover event (they send the same parameters - // so we share their code) - - - function triggerClickHoverEvent(eventname, event, seriesFilter) { - var offset = eventHolder.offset(), - canvasX = event.pageX - offset.left - plotOffset.left, - canvasY = event.pageY - offset.top - plotOffset.top, - pos = canvasToAxisCoords({ - left: canvasX, - top: canvasY - }); - - pos.pageX = event.pageX; - pos.pageY = event.pageY; - - var item = findNearbyItem(canvasX, canvasY, seriesFilter); - - if (item) { - // fill in mouse pos for any listeners out there - item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left); - item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top); - } - - if (options.grid.autoHighlight) { - // clear auto-highlights - for (var i = 0; i < highlights.length; ++i) { - var h = highlights[i]; - if (h.auto == eventname && !(item && h.series == item.series && h.point[0] == item.datapoint[0] && h.point[1] == item.datapoint[1])) unhighlight(h.series, h.point); - } - - if (item) highlight(item.series, item.datapoint, eventname); - } - - placeholder.trigger(eventname, [pos, item]); - } - - function triggerRedrawOverlay() { - var t = options.interaction.redrawOverlayInterval; - if (t == -1) { // skip event queue - drawOverlay(); - return; - } - - if (!redrawTimeout) redrawTimeout = setTimeout(drawOverlay, t); - } - - function drawOverlay() { - redrawTimeout = null; - - // draw highlights - octx.save(); - octx.clearRect(0, 0, canvasWidth, canvasHeight); - octx.translate(plotOffset.left, plotOffset.top); - - var i, hi; - for (i = 0; i < highlights.length; ++i) { - hi = highlights[i]; - - if (hi.series.bars.show) drawBarHighlight(hi.series, hi.point); - else drawPointHighlight(hi.series, hi.point); - } - octx.restore(); - - executeHooks(hooks.drawOverlay, [octx]); - } - - function highlight(s, point, auto) { - if (typeof s == "number") s = series[s]; - - if (typeof point == "number") { - var ps = s.datapoints.pointsize; - point = s.datapoints.points.slice(ps * point, ps * (point + 1)); - } - - var i = indexOfHighlight(s, point); - if (i == -1) { - highlights.push({ - series: s, - point: point, - auto: auto - }); - - triggerRedrawOverlay(); - } else if (!auto) highlights[i].auto = false; - } - - function unhighlight(s, point) { - if (s == null && point == null) { - highlights = []; - triggerRedrawOverlay(); - } - - if (typeof s == "number") s = series[s]; - - if (typeof point == "number") point = s.data[point]; - - var i = indexOfHighlight(s, point); - if (i != -1) { - highlights.splice(i, 1); - - triggerRedrawOverlay(); - } - } - - function indexOfHighlight(s, p) { - for (var i = 0; i < highlights.length; ++i) { - var h = highlights[i]; - if (h.series == s && h.point[0] == p[0] && h.point[1] == p[1]) return i; - } - return -1; - } - - function drawPointHighlight(series, point) { - var x = point[0], - y = point[1], - axisx = series.xaxis, - axisy = series.yaxis; - - if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) return; - - var pointRadius = series.points.radius + series.points.lineWidth / 2; - octx.lineWidth = pointRadius; - octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString(); - var radius = 1.5 * pointRadius, - x = axisx.p2c(x), - y = axisy.p2c(y); - - octx.beginPath(); - if (series.points.symbol == "circle") octx.arc(x, y, radius, 0, 2 * Math.PI, false); - else series.points.symbol(octx, x, y, radius, false); - octx.closePath(); - octx.stroke(); - } - - function drawBarHighlight(series, point) { - octx.lineWidth = series.bars.lineWidth; - octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString(); - var fillStyle = $.color.parse(series.color).scale('a', 0.5).toString(); - var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth / 2; - drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth, 0, function () { - return fillStyle; - }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth); - } - - function getColorOrGradient(spec, bottom, top, defaultColor) { - if (typeof spec == "string") return spec; - else { - // assume this is a gradient spec; IE currently only - // supports a simple vertical gradient properly, so that's - // what we support too - var gradient = ctx.createLinearGradient(0, top, 0, bottom); - - for (var i = 0, l = spec.colors.length; i < l; ++i) { - var c = spec.colors[i]; - if (typeof c != "string") { - var co = $.color.parse(defaultColor); - if (c.brightness != null) co = co.scale('rgb', c.brightness); - if (c.opacity != null) co.a *= c.opacity; - c = co.toString(); - } - gradient.addColorStop(i / (l - 1), c); - } - - return gradient; - } - } - } - - $.plot = function (placeholder, data, options) { - //var t0 = new Date(); - var plot = new Plot($(placeholder), data, options, $.plot.plugins); - //(window.console ? console.log : alert)("time used (msecs): " + ((new Date()).getTime() - t0.getTime())); - return plot; - }; - - $.plot.version = "0.7"; - - $.plot.plugins = []; - - // returns a string with the date d formatted according to fmt - $.plot.formatDate = function (d, fmt, monthNames) { - var leftPad = function (n) { - n = "" + n; - return n.length == 1 ? "0" + n : n; - }; - - var r = []; - var escape = false, - padNext = false; - var hours = d.getUTCHours(); - var isAM = hours < 12; - if (monthNames == null) monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - - if (fmt.search(/%p|%P/) != -1) { - if (hours > 12) { - hours = hours - 12; - } else if (hours == 0) { - hours = 12; - } - } - for (var i = 0; i < fmt.length; ++i) { - var c = fmt.charAt(i); - - if (escape) { - switch (c) { - case 'h': - c = "" + hours; - break; - case 'H': - c = leftPad(hours); - break; - case 'M': - c = leftPad(d.getUTCMinutes()); - break; - case 'S': - c = leftPad(d.getUTCSeconds()); - break; - case 'd': - c = "" + d.getUTCDate(); - break; - case 'm': - c = "" + (d.getUTCMonth() + 1); - break; - case 'y': - c = "" + d.getUTCFullYear(); - break; - case 'b': - c = "" + monthNames[d.getUTCMonth()]; - break; - case 'p': - c = (isAM) ? ("" + "am") : ("" + "pm"); - break; - case 'P': - c = (isAM) ? ("" + "AM") : ("" + "PM"); - break; - case '0': - c = ""; - padNext = true; - break; - } - if (c && padNext) { - c = leftPad(c); - padNext = false; - } - r.push(c); - if (!padNext) escape = false; - } else { - if (c == "%") escape = true; - else r.push(c); - } - } - return r.join(""); - }; - - // round to nearby lower multiple of base - - - function floorInBase(n, base) { - return base * Math.floor(n / base); - } - -})(jQuery); \ No newline at end of file diff --git a/build/lib/jquery.flot.navigate.js b/build/lib/jquery.flot.navigate.js deleted file mode 100755 index f2b9760..0000000 --- a/build/lib/jquery.flot.navigate.js +++ /dev/null @@ -1,336 +0,0 @@ -/* -Flot plugin for adding panning and zooming capabilities to a plot. - -The default behaviour is double click and scrollwheel up/down to zoom -in, drag to pan. The plugin defines plot.zoom({ center }), -plot.zoomOut() and plot.pan(offset) so you easily can add custom -controls. It also fires a "plotpan" and "plotzoom" event when -something happens, useful for synchronizing plots. - -Options: - - zoom: { - interactive: false - trigger: "dblclick" // or "click" for single click - amount: 1.5 // 2 = 200% (zoom in), 0.5 = 50% (zoom out) - } - - pan: { - interactive: false - cursor: "move" // CSS mouse cursor value used when dragging, e.g. "pointer" - frameRate: 20 - } - - xaxis, yaxis, x2axis, y2axis: { - zoomRange: null // or [number, number] (min range, max range) or false - panRange: null // or [number, number] (min, max) or false - } - -"interactive" enables the built-in drag/click behaviour. If you enable -interactive for pan, then you'll have a basic plot that supports -moving around; the same for zoom. - -"amount" specifies the default amount to zoom in (so 1.5 = 150%) -relative to the current viewport. - -"cursor" is a standard CSS mouse cursor string used for visual -feedback to the user when dragging. - -"frameRate" specifies the maximum number of times per second the plot -will update itself while the user is panning around on it (set to null -to disable intermediate pans, the plot will then not update until the -mouse button is released). - -"zoomRange" is the interval in which zooming can happen, e.g. with -zoomRange: [1, 100] the zoom will never scale the axis so that the -difference between min and max is smaller than 1 or larger than 100. -You can set either end to null to ignore, e.g. [1, null]. If you set -zoomRange to false, zooming on that axis will be disabled. - -"panRange" confines the panning to stay within a range, e.g. with -panRange: [-10, 20] panning stops at -10 in one end and at 20 in the -other. Either can be null, e.g. [-10, null]. If you set -panRange to false, panning on that axis will be disabled. - -Example API usage: - - plot = $.plot(...); - - // zoom default amount in on the pixel (10, 20) - plot.zoom({ center: { left: 10, top: 20 } }); - - // zoom out again - plot.zoomOut({ center: { left: 10, top: 20 } }); - - // zoom 200% in on the pixel (10, 20) - plot.zoom({ amount: 2, center: { left: 10, top: 20 } }); - - // pan 100 pixels to the left and 20 down - plot.pan({ left: -100, top: 20 }) - -Here, "center" specifies where the center of the zooming should -happen. Note that this is defined in pixel space, not the space of the -data points (you can use the p2c helpers on the axes in Flot to help -you convert between these). - -"amount" is the amount to zoom the viewport relative to the current -range, so 1 is 100% (i.e. no change), 1.5 is 150% (zoom in), 0.7 is -70% (zoom out). You can set the default in the options. - -*/ - - -// First two dependencies, jquery.event.drag.js and -// jquery.mousewheel.js, we put them inline here to save people the -// effort of downloading them. - -/* -jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com) -Licensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt -*/ -(function(E){E.fn.drag=function(L,K,J){if(K){this.bind("dragstart",L)}if(J){this.bind("dragend",J)}return !L?this.trigger("drag"):this.bind("drag",K?K:L)};var A=E.event,B=A.special,F=B.drag={not:":input",distance:0,which:1,dragging:false,setup:function(J){J=E.extend({distance:F.distance,which:F.which,not:F.not},J||{});J.distance=I(J.distance);A.add(this,"mousedown",H,J);if(this.attachEvent){this.attachEvent("ondragstart",D)}},teardown:function(){A.remove(this,"mousedown",H);if(this===F.dragging){F.dragging=F.proxy=false}G(this,true);if(this.detachEvent){this.detachEvent("ondragstart",D)}}};B.dragstart=B.dragend={setup:function(){},teardown:function(){}};function H(L){var K=this,J,M=L.data||{};if(M.elem){K=L.dragTarget=M.elem;L.dragProxy=F.proxy||K;L.cursorOffsetX=M.pageX-M.left;L.cursorOffsetY=M.pageY-M.top;L.offsetX=L.pageX-L.cursorOffsetX;L.offsetY=L.pageY-L.cursorOffsetY}else{if(F.dragging||(M.which>0&&L.which!=M.which)||E(L.target).is(M.not)){return }}switch(L.type){case"mousedown":E.extend(M,E(K).offset(),{elem:K,target:L.target,pageX:L.pageX,pageY:L.pageY});A.add(document,"mousemove mouseup",H,M);G(K,false);F.dragging=null;return false;case !F.dragging&&"mousemove":if(I(L.pageX-M.pageX)+I(L.pageY-M.pageY) max) { - // make sure min < max - var tmp = min; - min = max; - max = tmp; - } - - var range = max - min; - if (zr && - ((zr[0] != null && range < zr[0]) || - (zr[1] != null && range > zr[1]))) - return; - - opts.min = min; - opts.max = max; - }); - - plot.setupGrid(); - plot.draw(); - - if (!args.preventEvent) - plot.getPlaceholder().trigger("plotzoom", [ plot ]); - } - - plot.pan = function (args) { - var delta = { - x: +args.left, - y: +args.top - }; - - if (isNaN(delta.x)) - delta.x = 0; - if (isNaN(delta.y)) - delta.y = 0; - - $.each(plot.getAxes(), function (_, axis) { - var opts = axis.options, - min, max, d = delta[axis.direction]; - - min = axis.c2p(axis.p2c(axis.min) + d), - max = axis.c2p(axis.p2c(axis.max) + d); - - var pr = opts.panRange; - if (pr === false) // no panning on this axis - return; - - if (pr) { - // check whether we hit the wall - if (pr[0] != null && pr[0] > min) { - d = pr[0] - min; - min += d; - max += d; - } - - if (pr[1] != null && pr[1] < max) { - d = pr[1] - max; - min += d; - max += d; - } - } - - opts.min = min; - opts.max = max; - }); - - plot.setupGrid(); - plot.draw(); - - if (!args.preventEvent) - plot.getPlaceholder().trigger("plotpan", [ plot ]); - } - - function shutdown(plot, eventHolder) { - eventHolder.unbind(plot.getOptions().zoom.trigger, onZoomClick); - eventHolder.unbind("mousewheel", onMouseWheel); - eventHolder.unbind("dragstart", onDragStart); - eventHolder.unbind("drag", onDrag); - eventHolder.unbind("dragend", onDragEnd); - if (panTimeout) - clearTimeout(panTimeout); - } - - plot.hooks.bindEvents.push(bindEvents); - plot.hooks.shutdown.push(shutdown); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'navigate', - version: '1.3' - }); -})(jQuery); diff --git a/build/lib/jquery.flot.resize.js b/build/lib/jquery.flot.resize.js deleted file mode 100755 index 69dfb24..0000000 --- a/build/lib/jquery.flot.resize.js +++ /dev/null @@ -1,60 +0,0 @@ -/* -Flot plugin for automatically redrawing plots when the placeholder -size changes, e.g. on window resizes. - -It works by listening for changes on the placeholder div (through the -jQuery resize event plugin) - if the size changes, it will redraw the -plot. - -There are no options. If you need to disable the plugin for some -plots, you can just fix the size of their placeholders. -*/ - - -/* Inline dependency: - * jQuery resize event - v1.1 - 3/14/2010 - * http://benalman.com/projects/jquery-resize-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this); - - -(function ($) { - var options = { }; // no options - - function init(plot) { - function onResize() { - var placeholder = plot.getPlaceholder(); - - // somebody might have hidden us and we can't plot - // when we don't have the dimensions - if (placeholder.width() == 0 || placeholder.height() == 0) - return; - - plot.resize(); - plot.setupGrid(); - plot.draw(); - } - - function bindEvents(plot, eventHolder) { - plot.getPlaceholder().resize(onResize); - } - - function shutdown(plot, eventHolder) { - plot.getPlaceholder().unbind("resize", onResize); - } - - plot.hooks.bindEvents.push(bindEvents); - plot.hooks.shutdown.push(shutdown); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'resize', - version: '1.0' - }); -})(jQuery); diff --git a/build/lib/jquery.flot.selection.js b/build/lib/jquery.flot.selection.js deleted file mode 100755 index 8bfbbab..0000000 --- a/build/lib/jquery.flot.selection.js +++ /dev/null @@ -1,328 +0,0 @@ -/* -Flot plugin for selecting regions. - -The plugin defines the following options: - - selection: { - mode: null or "x" or "y" or "xy", - color: color - } - -Selection support is enabled by setting the mode to one of "x", "y" or -"xy". In "x" mode, the user will only be able to specify the x range, -similarly for "y" mode. For "xy", the selection becomes a rectangle -where both ranges can be specified. "color" is color of the selection -(if you need to change the color later on, you can get to it with -plot.getOptions().selection.color). - -When selection support is enabled, a "plotselected" event will be -emitted on the DOM element you passed into the plot function. The -event handler gets a parameter with the ranges selected on the axes, -like this: - - placeholder.bind("plotselected", function(event, ranges) { - alert("You selected " + ranges.xaxis.from + " to " + ranges.xaxis.to) - // similar for yaxis - with multiple axes, the extra ones are in - // x2axis, x3axis, ... - }); - -The "plotselected" event is only fired when the user has finished -making the selection. A "plotselecting" event is fired during the -process with the same parameters as the "plotselected" event, in case -you want to know what's happening while it's happening, - -A "plotunselected" event with no arguments is emitted when the user -clicks the mouse to remove the selection. - -The plugin allso adds the following methods to the plot object: - -- setSelection(ranges, preventEvent) - - Set the selection rectangle. The passed in ranges is on the same - form as returned in the "plotselected" event. If the selection mode - is "x", you should put in either an xaxis range, if the mode is "y" - you need to put in an yaxis range and both xaxis and yaxis if the - selection mode is "xy", like this: - - setSelection({ xaxis: { from: 0, to: 10 }, yaxis: { from: 40, to: 60 } }); - - setSelection will trigger the "plotselected" event when called. If - you don't want that to happen, e.g. if you're inside a - "plotselected" handler, pass true as the second parameter. If you - are using multiple axes, you can specify the ranges on any of those, - e.g. as x2axis/x3axis/... instead of xaxis, the plugin picks the - first one it sees. - -- clearSelection(preventEvent) - - Clear the selection rectangle. Pass in true to avoid getting a - "plotunselected" event. - -- getSelection() - - Returns the current selection in the same format as the - "plotselected" event. If there's currently no selection, the - function returns null. - -*/ - -(function ($) { - function init(plot) { - var selection = { - first: { x: -1, y: -1}, second: { x: -1, y: -1}, - show: false, - active: false - }; - - // FIXME: The drag handling implemented here should be - // abstracted out, there's some similar code from a library in - // the navigation plugin, this should be massaged a bit to fit - // the Flot cases here better and reused. Doing this would - // make this plugin much slimmer. - var savedhandlers = {}; - - function onMouseMove(e) { - if (selection.active) { - plot.getPlaceholder().trigger("plotselecting", [ getSelection() ]); - - updateSelection(e); - } - } - - function onMouseDown(e) { - if (e.which != 1) // only accept left-click - return; - - // cancel out any text selections - document.body.focus(); - - // prevent text selection and drag in old-school browsers - if (document.onselectstart !== undefined && savedhandlers.onselectstart == null) { - savedhandlers.onselectstart = document.onselectstart; - document.onselectstart = function () { return false; }; - } - if (document.ondrag !== undefined && savedhandlers.ondrag == null) { - savedhandlers.ondrag = document.ondrag; - document.ondrag = function () { return false; }; - } - - setSelectionPos(selection.first, e); - - selection.active = true; - - $(document).one("mouseup", onMouseUp); - } - - function onMouseUp(e) { - // revert drag stuff for old-school browsers - if (document.onselectstart !== undefined) - document.onselectstart = savedhandlers.onselectstart; - if (document.ondrag !== undefined) - document.ondrag = savedhandlers.ondrag; - - // no more draggy-dee-drag - selection.active = false; - updateSelection(e); - - if (selectionIsSane()) - triggerSelectedEvent(); - else { - // this counts as a clear - plot.getPlaceholder().trigger("plotunselected", [ ]); - plot.getPlaceholder().trigger("plotselecting", [ null ]); - } - - return false; - } - - function getSelection() { - if (!selectionIsSane()) - return null; - - var r = {}, c1 = selection.first, c2 = selection.second; - $.each(plot.getAxes(), function (name, axis) { - if (axis.used) { - var p1 = axis.c2p(c1[axis.direction]), p2 = axis.c2p(c2[axis.direction]); - r[name] = { from: Math.min(p1, p2), to: Math.max(p1, p2) }; - } - }); - return r; - } - - function triggerSelectedEvent() { - var r = getSelection(); - - plot.getPlaceholder().trigger("plotselected", [ r ]); - - // backwards-compat stuff, to be removed in future - if (r.xaxis && r.yaxis) - plot.getPlaceholder().trigger("selected", [ { x1: r.xaxis.from, y1: r.yaxis.from, x2: r.xaxis.to, y2: r.yaxis.to } ]); - } - - function clamp(min, value, max) { - return value < min ? min: (value > max ? max: value); - } - - function setSelectionPos(pos, e) { - var o = plot.getOptions(); - var offset = plot.getPlaceholder().offset(); - var plotOffset = plot.getPlotOffset(); - pos.x = clamp(0, e.pageX - offset.left - plotOffset.left, plot.width()); - pos.y = clamp(0, e.pageY - offset.top - plotOffset.top, plot.height()); - - if (o.selection.mode == "y") - pos.x = pos == selection.first ? 0 : plot.width(); - - if (o.selection.mode == "x") - pos.y = pos == selection.first ? 0 : plot.height(); - } - - function updateSelection(pos) { - if (pos.pageX == null) - return; - - setSelectionPos(selection.second, pos); - if (selectionIsSane()) { - selection.show = true; - plot.triggerRedrawOverlay(); - } - else - clearSelection(true); - } - - function clearSelection(preventEvent) { - if (selection.show) { - selection.show = false; - plot.triggerRedrawOverlay(); - if (!preventEvent) - plot.getPlaceholder().trigger("plotunselected", [ ]); - } - } - - // function taken from markings support in Flot - function extractRange(ranges, coord) { - var axis, from, to, key, axes = plot.getAxes(); - - for (var k in axes) { - axis = axes[k]; - if (axis.direction == coord) { - key = coord + axis.n + "axis"; - if (!ranges[key] && axis.n == 1) - key = coord + "axis"; // support x1axis as xaxis - if (ranges[key]) { - from = ranges[key].from; - to = ranges[key].to; - break; - } - } - } - - // backwards-compat stuff - to be removed in future - if (!ranges[key]) { - axis = coord == "x" ? plot.getXAxes()[0] : plot.getYAxes()[0]; - from = ranges[coord + "1"]; - to = ranges[coord + "2"]; - } - - // auto-reverse as an added bonus - if (from != null && to != null && from > to) { - var tmp = from; - from = to; - to = tmp; - } - - return { from: from, to: to, axis: axis }; - } - - function setSelection(ranges, preventEvent) { - var axis, range, o = plot.getOptions(); - - if (o.selection.mode == "y") { - selection.first.x = 0; - selection.second.x = plot.width(); - } - else { - range = extractRange(ranges, "x"); - - selection.first.x = range.axis.p2c(range.from); - selection.second.x = range.axis.p2c(range.to); - } - - if (o.selection.mode == "x") { - selection.first.y = 0; - selection.second.y = plot.height(); - } - else { - range = extractRange(ranges, "y"); - - selection.first.y = range.axis.p2c(range.from); - selection.second.y = range.axis.p2c(range.to); - } - - selection.show = true; - plot.triggerRedrawOverlay(); - if (!preventEvent && selectionIsSane()) - triggerSelectedEvent(); - } - - function selectionIsSane() { - var minSize = 5; - return Math.abs(selection.second.x - selection.first.x) >= minSize && - Math.abs(selection.second.y - selection.first.y) >= minSize; - } - - plot.clearSelection = clearSelection; - plot.setSelection = setSelection; - plot.getSelection = getSelection; - - plot.hooks.bindEvents.push(function(plot, eventHolder) { - var o = plot.getOptions(); - if (o.selection.mode != null) - eventHolder.mousemove(onMouseMove); - - if (o.selection.mode != null) - eventHolder.mousedown(onMouseDown); - }); - - - plot.hooks.drawOverlay.push(function (plot, ctx) { - // draw selection - if (selection.show && selectionIsSane()) { - var plotOffset = plot.getPlotOffset(); - var o = plot.getOptions(); - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - var c = $.color.parse(o.selection.color); - - ctx.strokeStyle = c.scale('a', 0.8).toString(); - ctx.lineWidth = 1; - ctx.lineJoin = "round"; - ctx.fillStyle = c.scale('a', 0.4).toString(); - - var x = Math.min(selection.first.x, selection.second.x), - y = Math.min(selection.first.y, selection.second.y), - w = Math.abs(selection.second.x - selection.first.x), - h = Math.abs(selection.second.y - selection.first.y); - - ctx.fillRect(x, y, w, h); - ctx.strokeRect(x, y, w, h); - - ctx.restore(); - } - }); - } - - $.plot.plugins.push({ - init: init, - options: { - selection: { - mode: null, // one of null, "x", "y" or "xy" - color: "#e8cfac" - } - }, - name: 'selection', - version: '1.0' - }); -})(jQuery); diff --git a/build/lib/jquery.iCheckbox.js b/build/lib/jquery.iCheckbox.js deleted file mode 100755 index 855cfd7..0000000 --- a/build/lib/jquery.iCheckbox.js +++ /dev/null @@ -1,146 +0,0 @@ -/* -* iCheckbox - Inspired Checkbox v0.1 -* -* Convert a checkbox or multiple checkboxes into iphone style switches. -* -* This is based on the jQuery iphoneSwitch plugin by Daniel LaBare. -* -* Features: -* * Because checkboxes are used, this is compatable with having javascript off for form submission. -* * Affects only checkboxes. -* * Synchronizes the actual state of the checkbox for on or off status. -* * Completely self-contained for each checkbox. -* * Changes fire the onchange event of your checkbox. -* * Relies purely on css for styling... no passing anything but your slider image. -* * Because functionality is decoupled from CSS, you can assign custom CSS classes if you wish making it possible for multiple version per page. -* * Completely inline like a normal checkbox. No sliding-door-float madness. -* -* iphoneSwitch Author: Daniel LaBare -* iCheckbox Author: Bryn Mosher -* iphoneSwitch Date: 2/4/2008 -* iCheckbox date: 2/26/2010-2/27/2010 (like most of you I'm a nite owl :P) -*/ - -// convert the matched element into an iCheckbox if it is a checkbox input -jQuery.fn.iCheckbox = function(start_state, options) { - - if ( jQuery(this ).attr('type') == 'checkbox' ) { - // define default settings - var settings = jQuery.extend( { - // switch_container_src is the outer frame image of the slider - // you assign the actual slider image via css - switch_container_src: 'images/iphone_switch_container.gif', - // The height of your slider - switch_height: 27, - // The width of your slider - switch_width: 94, - // switch_speed is the speed of the slider animation. - // Warning: Your onchange() even won't be fired until the end of this! - switch_speed: 150, - // How far your actual slider image has to move to change to the "off" state. - // This can be either positive or negative based on the layout of your image. - // The "on" state expects this image to have backgroundPosition: 0px. - switch_swing: -53, - // CSS class of the container if you wish. - class_container: 'iCheckbox_container', - // CSS class of the switch. - // This should have your actual "on"/"off" image set as its background-image. - class_switch: 'iCheckbox_switch', - // CSS class of the checkbox if you wish it shown. - class_checkbox: 'iCheckbox_checkbox', - checkbox_hide: true, - // animate off function - iCheckOff: function (elem , atime, animOnly) { - atime = typeof(atime) == 'number' ? atime : settings.switch_speed; - animOnly = animOnly== true ? true : false; - atime = parseInt(atime) > 0 ? atime : 1; - if ( animOnly == true ) { - jQuery(elem).animate({backgroundPosition: settings.switch_swing+'px 0px'}, atime, 'linear'); - } else { - jQuery(elem).animate({backgroundPosition: settings.switch_swing+'px 0px'}, atime, 'linear', function() { - var cB = jQuery(jQuery(this).parent()).find('input'); - jQuery(cB).removeAttr('checked'); - jQuery(cB).change(); - }); - } - }, - // animate on function - iCheckOn: function (elem, atime, animOnly) { - atime = typeof(atime) == 'number' ? atime : settings.switch_speed; - atime = parseInt(atime) > 0 ? atime : 1; - if ( animOnly == true ) { - jQuery(elem).animate({backgroundPosition: '0px 0px'}, atime, 'linear'); - } else { - jQuery(elem).animate({backgroundPosition: '0px 0px'}, atime, 'linear', function() { - var cB = jQuery(jQuery(this).parent()).find('input'); - jQuery(cB).attr('checked', 'checked'); - jQuery(cB).change(); - }); - } - } - }, options); - - // set initial state - var state = start_state == 'on' ? start_state : 'off'; - - // create the switch - return this.each(function() { - var container; - var image; - // make the container - container = ''; - jQuery(this).wrap(container); - // make the switch image based on starting state - image = jQuery(''); - jQuery(this).parent().append(image); - // sync the checkbox to initial state - if(state == 'on') { - jQuery(this).attr('checked', 'checked'); - settings.iCheckOn( jQuery(this).parent().find('img'), 1 ); // must have a positive time for the initial event to fire - } else { - jQuery(this).removeAttr('checked'); - settings.iCheckOff( jQuery(this).parent().find('img'), 1 ); // must have a positive time for the initial event to fire - } - // bind clicking on the image - jQuery(this).parent().find('.'+settings.class_switch).click(function (e) { - var cBox = jQuery(jQuery(e.target).parent()).find('input'); - var state = cBox.attr('checked') === true ? 'on' : 'off'; - if(state == 'on') { - state = 'off'; - settings.iCheckOff( jQuery(this), settings.switch_speed ); - } else { - state = 'on'; - settings.iCheckOn( jQuery(this), settings.switch_speed ); - } - return e; - }); - // assign the class to it - if ( jQuery(this).hasClass(settings.class_checkbox) == false ) { - jQuery(this).addClass(settings.class_checkbox); - } - // finally hide the checkbox after everything else is declared - we do this for syntax checking - if ( settings.checkbox_hide == true ) { - jQuery(this).hide(0); - } - // bind clicking on a visible checkbox - jQuery(this).change(function (e) { - var cBox = jQuery(jQuery(e.target).parent()).find('input'); - var img = jQuery(jQuery(e.target).parent()).find('img'); - var state = cBox.attr('checked') === true ? 'on' : 'off'; - if(state == 'on') { - // let the natural onchange() occur - settings.iCheckOn( jQuery(img), settings.switch_speed, true ); - } else { - // let the natural onchange() occur - settings.iCheckOff( jQuery(img), settings.switch_speed, true ); - } - return e; - }); - return this; - }); - return this; - } else { - return false; - }; -}; - diff --git a/build/lib/jquery.imgRotator.js b/build/lib/jquery.imgRotator.js deleted file mode 100755 index 6e49f47..0000000 --- a/build/lib/jquery.imgRotator.js +++ /dev/null @@ -1,237 +0,0 @@ -/* - * jQuery JavaScript Plugin jquery.imgRotator.js 0.9.0 - * http://bugsoftware.co.uk/jQuery/imgRotator/ - * - * Copyright (c) 2010 Ritchie Comley - * Dual licensed under the MIT and GPL licenses. - * - * Date: 2010-02-24 (Wed, 24 February 2010) - * Revision: 43 - * - * Dependencies: - * jQuery 1.4.1 (jquery.com) - * ExplorerCavas Release 3 (http://code.google.com/p/explorercanvas/) - * ExplorerCavas Patch (http://www.extjs.com/playpen/tm/excanvas-patch/) - * ExplorerCavas also contains one modification by BugSoftware labeled RTAC - * - */ - - /*global jQuery window */ - -jQuery.fn.imgRotator = function(options) { - - var defaults = { - startRotation:0, - dragstart:function(angle){}, - dragfinish:function(angle){}, - drag:function(angle){}, - disableDrag:false - }; - - var opts = jQuery.extend(defaults, options); - - function sawFunc(a) - { - var PI = Math.PI; - var PI2 = PI / 2; - // make sure a is within 0 to PI - a = a % PI; - - if (a < 0) - { - a += PI; - } - - if (a < PI2) - { - return a / PI2; - } - else - { - return (PI - a) / PI2; - } - } - - function ImageRotator(el) - { - this.element = el; - - el.css({position: 'absolute'}); - - this.canvas = el.find('canvas').eq(0); - this.image = el.find("img").eq(0); - - this.iw = this.image.width(); - this.ih = this.image.height(); - - var elWidth = el.width(); - var elHeight = el.height(); - - var self = this; - - this.rotation = opts.startRotation; - - if(!opts.disableDrag) - { - - var dragging = false; - var dragStartAngle = false; - var currRotation = false; - var currOffset = false; - - el.mousedown(function (evt) - { - evt.preventDefault(); - - dragging = true; - - currOffset = el.offset(); - - var x = (elWidth / 2) - (evt.pageX - currOffset.left); - var y = (elHeight / 2) - (evt.pageY - currOffset.top); - - dragStartAngle = Math.atan2(x, y); - currRotation = self.rotation; - opts.dragstart(self.rotation); - }); - - jQuery('body').mouseup(function (evt) - { - if(dragging) - { - dragging = false; - opts.dragfinish(self.rotation); - } - }); - - el.mousemove(function (evt) - { - if(dragging) - { - evt.preventDefault(); - - var x = (elWidth / 2) - (evt.pageX - currOffset.left); - var y = (elHeight / 2) - (evt.pageY - currOffset.top); - - var diff = dragStartAngle - Math.atan2(x, y); - - self.rotation = currRotation + diff; - - self.layout(); - - opts.drag(self.rotation); - } - }); - - } - - this.drawn = false; - - this.layout(); - - jQuery(window).resize(function() { self.layout(); }); - - jQuery(window).load(function() { - - self.windowLoaded = true; - - self.initCanvas(); - }); - } - - ImageRotator.prototype = { - - layout: function () - { - var PI2 = Math.PI / 2; - var h = this.element.height(); - var w = this.element.width(); - - if (!this.ctx) - { - this.canvas.css({display: "none"}); - this.image.css({display: "block"}); - - var ratio = Math.min(w / this.image.width(), h / this.image.height(), 1); - var imgW = this.image.width() * ratio; - var imgH = this.image.height() * ratio; - var y = (h - imgH) / 2; - var x = (w - imgW) / 2; - - this.image.css({ - position:'absolute', - left: Math.round(x), - top: Math.round(y), - width: Math.round(imgW), - height: Math.round(imgH)}); - } - else - { - this.image.css({display:'none'}); - - this.canvas.css({ - top:0, - left:0, - width: w, - height: h, - display: 'block'}); - - // set the canvas to the current width (internaly) - this.canvas[0].width = w; - this.canvas[0].height = h; - - this.ctx.save(); - - this.ctx.clearRect(0,0,w,h); - - // rotate around the middle - this.ctx.translate(w / 2, h / 2); - this.ctx.rotate(this.rotation); - - var scale = 1; - - if (this.iw <= w && this.iw <= h && this.ih <= h && this.ih <= w) - { - scale = 1; - } - else - { - var sinr = sawFunc(this.rotation); - var cosr = sawFunc(this.rotation + PI2); - var ratio1 = sinr * Math.min(w / this.ih, h / this.iw); - var ratio2 = cosr * Math.min(w / this.iw, h / this.ih); - - scale = Math.min(1, ratio1 + ratio2); - } - - // draw image in center - this.ctx.scale(scale, scale); - this.ctx.translate(-this.iw / 2, -this.ih / 2); - this.ctx.drawImage(this.image[0], 0, 0, this.iw, this.ih); - - this.ctx.restore(); - } - }, - - rotation: 0, - - initCanvas: function () - { - this.ctx = this.canvas[0].getContext("2d"); - - if (!this.ctx) - { - return; - } - - this.layout(); - } - }; - - - return this.each(function() - { - var jImgRotator = jQuery(this); - var rotator = new ImageRotator(jImgRotator); - }); -}; \ No newline at end of file diff --git a/build/lib/jquery.iphone-switch.js b/build/lib/jquery.iphone-switch.js deleted file mode 100755 index 1fb44cf..0000000 --- a/build/lib/jquery.iphone-switch.js +++ /dev/null @@ -1,70 +0,0 @@ -/************************************************ -* jQuery iphoneSwitch plugin * -* * -* Author: Daniel LaBare * -* Date: 2/4/2008 * -************************************************/ - -jQuery.fn.iphoneSwitch = function(start_state, switched_on_callback, switched_off_callback, options) { - - var state = start_state == 'on' ? start_state : 'off'; - - // define default settings - var settings = { - mouse_over: 'pointer', - mouse_out: 'default', - switch_on_container_path: 'iphone_switch_container_on.png', - switch_off_container_path: 'iphone_switch_container_off.png', - switch_path: 'iphone_switch.png', - switch_height: 27, - switch_width: 94 - }; - - if(options) { - jQuery.extend(settings, options); - } - - // create the switch - return this.each(function() { - - var container; - var image; - - // make the container - container = jQuery('
                '); - - // make the switch image based on starting state - image = jQuery(''); - - // insert into placeholder - jQuery(this).html(jQuery(container).html(jQuery(image))); - - jQuery(this).mouseover(function(){ - jQuery(this).css("cursor", settings.mouse_over); - }); - - jQuery(this).mouseout(function(){ - jQuery(this).css("background", settings.mouse_out); - }); - - // click handling - jQuery(this).click(function() { - if(state == 'on') { - jQuery(this).find('.iphone_switch').animate({backgroundPosition: -53}, "slow", function() { - jQuery(this).attr('src', settings.switch_off_container_path); - switched_off_callback(); - }); - state = 'off'; - } - else { - jQuery(this).find('.iphone_switch').animate({backgroundPosition: 0}, "slow", function() { - switched_on_callback(); - }); - jQuery(this).find('.iphone_switch').attr('src', settings.switch_on_container_path); - state = 'on'; - } - }); - - }); - -}; diff --git a/build/lib/jquery.jclock-1.2.0.js b/build/lib/jquery.jclock-1.2.0.js deleted file mode 100755 index 980bcc4..0000000 --- a/build/lib/jquery.jclock-1.2.0.js +++ /dev/null @@ -1,106 +0,0 @@ -/* - * jQuery jclock - Clock plugin - v 1.2.0 - * http://plugins.jquery.com/project/jclock - * - * Copyright (c) 2007-2008 Doug Sparling - * Licensed under the MIT License: - * http://www.opensource.org/licenses/mit-license.php - */ -(function($) { - - $.fn.jclock = function(options) { - var version = '1.2.0'; - - // options - var opts = $.extend({}, $.fn.jclock.defaults, options); - - return this.each(function() { - $this = $(this); - $this.timerID = null; - $this.running = false; - - var o = $.meta ? $.extend({}, opts, $this.data()) : opts; - - $this.timeNotation = o.timeNotation; - $this.am_pm = o.am_pm; - $this.utc = o.utc; - $this.utc_offset = o.utc_offset; - - $this.css({ - fontFamily: o.fontFamily, - fontSize: o.fontSize, - backgroundColor: o.background, - color: o.foreground - }); - - $.fn.jclock.startClock($this); - - }); - }; - - $.fn.jclock.startClock = function(el) { - $.fn.jclock.stopClock(el); - $.fn.jclock.displayTime(el); - } - $.fn.jclock.stopClock = function(el) { - if(el.running) { - clearTimeout(el.timerID); - } - el.running = false; - } - $.fn.jclock.displayTime = function(el) { - var time = $.fn.jclock.getTime(el); - el.html(time); - el.timerID = setTimeout(function(){$.fn.jclock.displayTime(el)},1000); - } - $.fn.jclock.getTime = function(el) { - var now = new Date(); - var hours, minutes, seconds; - - if(el.utc == true) { - var localTime = now.getTime(); - var localOffset = now.getTimezoneOffset() * 60000; - var utc = localTime + localOffset; - var utcTime = utc + (3600000 * el.utc_offset); - now = new Date(utcTime); - } - hours = now.getHours(); - minutes = now.getMinutes(); - seconds = now.getSeconds(); - - var am_pm_text = ''; - (hours >= 12) ? am_pm_text = " P.M." : am_pm_text = " A.M."; - - if (el.timeNotation == '12h') { - hours = ((hours > 12) ? hours - 12 : hours); - } else if (el.timeNotation == '12hh') { - hours = ((hours > 12) ? hours - 12 : hours); - hours = ((hours < 10) ? "0" : "") + hours; - } else { - hours = ((hours < 10) ? "0" : "") + hours; - } - - minutes = ((minutes < 10) ? "0" : "") + minutes; - seconds = ((seconds < 10) ? "0" : "") + seconds; - - var timeNow = hours + ":" + minutes + ":" + seconds; - if ( (el.timeNotation == '12h' || el.timeNotation == '12hh') && (el.am_pm == true) ) { - timeNow += am_pm_text; - } - - return timeNow; - }; - - // plugin defaults - $.fn.jclock.defaults = { - timeNotation: '24h', - am_pm: false, - utc: false, - fontFamily: '', - fontSize: '', - foreground: '', - background: '', - utc_offset: 0 - }; - -})(jQuery); diff --git a/build/lib/jquery.jsPlumb-1.2.6-all.js b/build/lib/jquery.jsPlumb-1.2.6-all.js deleted file mode 100755 index f5c4627..0000000 --- a/build/lib/jquery.jsPlumb-1.2.6-all.js +++ /dev/null @@ -1,4134 +0,0 @@ -/* - * Class:jsPlumb - * - * Provides a way to visually connect elements on an HTML page. - * - * http://jsplumb.org - * http://code.google.com/p/jsPlumb - * - * Triple licensed under the MIT, GPL2 and Beer licenses. - */ - -;(function() { - - var ie = !!!document.createElement('canvas').getContext; - - /** - * helper method to add an item to a list, creating the list if it does - * not yet exist. - */ - var _addToList = function(map, key, value) { - var l = map[key]; - if (l == null) { - l = []; - map[key] = l; - } - l.push(value); - return l; - }; - - var _connectionBeingDragged = null; - - var _getAttribute = function(el, attName) { return jsPlumb.CurrentLibrary.getAttribute(_getElementObject(el), attName); }; - var _setAttribute = function(el, attName, attValue) { jsPlumb.CurrentLibrary.setAttribute(_getElementObject(el), attName, attValue); }; - var _addClass = function(el, clazz) { jsPlumb.CurrentLibrary.addClass(_getElementObject(el), clazz); }; - var _hasClass = function(el, clazz) { return jsPlumb.CurrentLibrary.hasClass(_getElementObject(el), clazz); }; - var _removeClass = function(el, clazz) { jsPlumb.CurrentLibrary.removeClass(_getElementObject(el), clazz); }; - var _getElementObject = function(el) { return jsPlumb.CurrentLibrary.getElementObject(el); }; - var _getOffset = function(el) { return jsPlumb.CurrentLibrary.getOffset(_getElementObject(el)); }; - var _getSize = function(el) { return jsPlumb.CurrentLibrary.getSize(_getElementObject(el)); }; - - /** - * - */ - var _log = function(jsp, msg) { - if (jsp.logEnabled && typeof console != "undefined") - console.log(msg); - }; - - var EventGenerator = function() { - var _listeners = {}; - var self = this; - this.overlayPlacements = []; - this.paintStyle = null, this.hoverPaintStyle = null; - - /** - * returns whether or not the given event is over a painted area of the canvas. - */ - this._over = function(e) { - var o = _getOffset(_getElementObject(self.canvas)); - var pageXY = jsPlumb.CurrentLibrary.getPageXY(e); - var x = pageXY[0] - o.left, y = pageXY[1] - o.top; - if (x > 0 && y > 0 && x < self.canvas.width && y < self.canvas.height) { - // first check overlays - for ( var i = 0; i < self.overlayPlacements.length; i++) { - var p = self.overlayPlacements[i]; - if (p && (p[0] <= x && p[1] >= x && p[2] <= y && p[3] >= y)) - return true; - } - - if (!ie) { - // then the canvas - var d = self.canvas.getContext("2d").getImageData(parseInt(x), parseInt(y), 1, 1); - return d.data[0] != 0 || d.data[1] != 0 || d.data[2] != 0 || d.data[3] != 0; - } - else { - // need to get fancy with the vml. - } - } - return false; - }; - - /* - * Binds a listener to an event. - * - * event - name of the event to bind to. - * listener - function to execute. - */ - this.bind = function(event, listener) { - _addToList(_listeners, event, listener); - }; - /* - * Fires an update for the given event. - * - * event - event to fire - * value - value to pass to the event listener(s). - * originalEvent - the original event from the browser - */ - this.fireUpdate = function(event, value, originalEvent) { - if (_listeners[event]) { - for ( var i = 0; i < _listeners[event].length; i++) { - try { - _listeners[event][i](value, originalEvent); - } catch (e) { - _log(self, "jsPlumb: fireUpdate failed for event " - + event + " : " + e + "; not fatal."); - } - } - } - }; - /* - * Clears either all listeners, or listeners for some specific event. - * - * event - optional. constrains the clear to just listeners for this event. - */ - this.clearListeners = function(event) { - if (event) { - delete _listeners[event]; - } else { - delete _listeners; - _listeners = {}; - } - }; - - var _mouseover = false; - var _mouseDown = false, _mouseDownAt = null, _posWhenMouseDown = null, _mouseWasDown = false, srcWhenMouseDown = null, - targetWhenMouseDown = null; - this.mousemove = function(e) { - var jpcl = jsPlumb.CurrentLibrary; - var pageXY = jpcl.getPageXY(e); - var ee = document.elementFromPoint(pageXY[0], pageXY[1]); - var _continue = _connectionBeingDragged == null && (_hasClass(ee, "_jsPlumb_endpoint") || _hasClass(ee, "_jsPlumb_connector")); - - if (_mouseDown && srcWhenMouseDown) { - _mouseWasDown = true; - _connectionBeingDragged = self; - var mouseNow = jpcl.getPageXY(e); - var dx = mouseNow[0] - _mouseDownAt[0]; - var dy = mouseNow[1] - _mouseDownAt[1]; - var newPos = {left:srcWhenMouseDown.left + dx, top:srcWhenMouseDown.top + dy}; - jpcl.setOffset(jpcl.getElementObject(self.source), newPos); - jsPlumb.repaint(self.source); - newPos = {left:targetWhenMouseDown.left + dx, top:targetWhenMouseDown.top + dy}; - jpcl.setOffset(jpcl.getElementObject(self.target), newPos); - jsPlumb.repaint(self.target); - } - else if (!_mouseover && _continue && self._over(e)) { - _mouseover = true; - self.setHover(_mouseover); - self.fireUpdate("mouseenter", self, e); - } - else if (_mouseover && (!self._over(e) || !_continue)) { - _mouseover = false; - /* if (self.hoverPaintStyle != null) { - self.paintStyleInUse = self.paintStyle; - self.repaint(); - _updateAttachedElements(); - }*/ - self.setHover(_mouseover); - self.fireUpdate("mouseexit", self, e); - } - }; - - /** - * sets/unsets the hover state of this element. - */ - this.setHover = function(hover, ignoreAttachedElements) { - if (self.hoverPaintStyle != null) { - self.paintStyleInUse = hover ? self.hoverPaintStyle : self.paintStyle; - self.repaint(); - // get the list of other affected elements. for a connection, its the endpoints. for an endpoint, its the connections! surprise. - if (!ignoreAttachedElements) - _updateAttachedElements(hover); - } - }; - - var _updateAttachedElements = function(state) { - var affectedElements = self.getAttachedElements(); // implemented in subclasses - if (affectedElements) { - for (var i = 0; i < affectedElements.length; i++) { - affectedElements[i].setHover(state, true); // tell the attached elements not to inform their own attached elements. - } - } - }; - - this.click = function(e) { - if (_mouseover && self._over(e) && !_mouseWasDown) - self.fireUpdate("click", self, e); - _mouseWasDown = false; - }; - - this.dblclick = function(e) { - if (_mouseover && self._over(e) && !_mouseWasDown) - self.fireUpdate("dblclick", self, e); - _mouseWasDown = false; - }; - - this.mousedown = function(e) { - if(self._over(e) && !_mouseDown) { - _mouseDown = true; - _mouseDownAt = jsPlumb.CurrentLibrary.getPageXY(e); - if (self.canvas) _posWhenMouseDown = jsPlumb.CurrentLibrary.getOffset(jsPlumb.CurrentLibrary.getElementObject(self.canvas)); - if (self.source) srcWhenMouseDown = jsPlumb.CurrentLibrary.getOffset(jsPlumb.CurrentLibrary.getElementObject(self.source)); - if (self.target) targetWhenMouseDown = jsPlumb.CurrentLibrary.getOffset(jsPlumb.CurrentLibrary.getElementObject(self.target)); - } - }; - - this.mouseup = function() { - if (self == _connectionBeingDragged) _connectionBeingDragged = null; - _mouseDown = false; - }; - - /* - * Sets the paint style and then repaints the element. - * - * style - Style to use. - */ - this.setPaintStyle = function(style) { - self.paintStyle = style; - self.paintStyleInUse = self.paintStyle; - self.repaint(); - }; - - /* - * Sets the paint style to use when the mouse is hovering over the element. This is null by default. - * - * style - Style to use when the mouse is hovering. - */ - this.setHoverPaintStyle = function(style) { - self.hoverPaintStyle = style; - self.repaint(); - }; - }; - - /** - * Class:jsPlumb - * The main jsPlumb class. One of these is registered on the Window as 'jsPlumb'; you can also get one yourself by making a call to jsPlumb.getInstance. This class is the class you use to establish Connections and add Endpoints. - */ - var jsPlumbInstance = function(_defaults) { - - /* - * Property: Defaults - * - * These are the default settings for jsPlumb. They are what will be used if you do not supply specific pieces of information to the various API calls. A convenient way to implement your own look and feel can be to override these defaults by including a script somewhere after the jsPlumb include, but before you make any calls to jsPlumb, for instance in this example we set the PaintStyle to be a blue line of 27 pixels: > jsPlumb.Defaults.PaintStyle = { lineWidth:27, strokeStyle:'blue' } - */ - this.Defaults = { - Anchor : null, - Anchors : [ null, null ], - BackgroundPaintStyle : null, - Connector : null, - Container : null, - DragOptions : { }, - DropOptions : { }, - Endpoint : null, - Endpoints : [ null, null ], - EndpointStyle : { fillStyle : null }, - EndpointStyles : [ null, null ], - EndpointHoverStyle : null, - EndpointHoverStyles : [ null, null ], - HoverPaintStyle : null, - LabelStyle : { fillStyle : "rgba(0,0,0,0)", color : "black" }, - LogEnabled : true, - MaxConnections : null, - MouseEventsEnabled : false, - // TODO: should we have OverlayStyle too? - PaintStyle : { lineWidth : 10, strokeStyle : 'red' }, - Scope : "_jsPlumb_DefaultScope" - }; - if (_defaults) jsPlumb.extend(this.Defaults, _defaults); - - this.logEnabled = this.Defaults.LogEnabled; - - - EventGenerator.apply(this); - var _bb = this.bind; - this.bind = function(event, fn) { - if ("ready" === event && initialized) fn(); - else _bb(event, fn); - }; - - var _currentInstance = this; - var log = null; - - var repaintFunction = function() { - jsPlumb.repaintEverything(); - }; - var automaticRepaint = true; - function repaintEverything() { - if (automaticRepaint) - repaintFunction(); - }; - var resizeTimer = null; - - var initialized = false; - var connectionsByScope = {}; - /** - * map of element id -> endpoint lists. an element can have an arbitrary - * number of endpoints on it, and not all of them have to be connected - * to anything. - */ - var endpointsByElement = {}; - var endpointsByUUID = {}; - var offsets = {}; - var offsetTimestamps = {}; - var floatingConnections = {}; - var draggableStates = {}; - var _mouseEventsEnabled = this.Defaults.MouseEventsEnabled; - var _draggableByDefault = true; - var canvasList = []; - var sizes = []; - var listeners = {}; // a map: keys are event types, values are lists of listeners. - var DEFAULT_SCOPE = 'DEFAULT'; - var DEFAULT_NEW_CANVAS_SIZE = 1200; // only used for IE; a canvas needs a size before the init call to excanvas (for some reason. no idea why.) - - var _findIndex = function(a, v, b, s) { - var _eq = function(o1, o2) { - if (o1 === o2) - return true; - else if (typeof o1 == 'object' && typeof o2 == 'object') { - var same = true; - for ( var propertyName in o1) { - if (!_eq(o1[propertyName], o2[propertyName])) { - same = false; - break; - } - } - for ( var propertyName in o2) { - if (!_eq(o2[propertyName], o1[propertyName])) { - same = false; - break; - } - } - return same; - } - }; - - for ( var i = +b || 0, l = a.length; i < l; i++) { - if (_eq(a[i], v)) - return i; - } - return -1; - }; - - /** - * appends an element to the given parent, or the document body if no - * parent given. - */ - var _appendElement = function(canvas, parent) { - if (!parent) - document.body.appendChild(canvas); - else - jsPlumb.CurrentLibrary.appendElement(canvas, parent); - }; - - /** - * creates a timestamp, using milliseconds since 1970, but as a string. - */ - var _timestamp = function() { return "" + (new Date()).getTime(); }; - - /** - * Draws an endpoint and its connections. - * - * @param element element to draw (of type library specific element object) - * @param ui UI object from current library's event system. optional. - * @param timestamp timestamp for this paint cycle. used to speed things up a little by cutting down the amount of offset calculations we do. - */ - var _draw = function(element, ui, timestamp) { - var id = _getAttribute(element, "id"); - var endpoints = endpointsByElement[id]; - if (!timestamp) timestamp = _timestamp(); - if (endpoints) { - _updateOffset( { elId : id, offset : ui, recalc : false, timestamp : timestamp }); // timestamp is checked against last update cache; it is - // valid for one paint cycle. - var myOffset = offsets[id], myWH = sizes[id]; - for ( var i = 0; i < endpoints.length; i++) { - endpoints[i].paint( { timestamp : timestamp, offset : myOffset, dimensions : myWH }); - var l = endpoints[i].connections; - for ( var j = 0; j < l.length; j++) { - l[j].paint( { elId : id, ui : ui, recalc : false, timestamp : timestamp }); // ...paint each connection. - // then, check for dynamic endpoint; need to repaint it. - var oIdx = l[j].endpoints[0] == endpoints[i] ? 1 : 0; - if (l[j].endpoints[oIdx].anchor.isDynamic && !l[j].endpoints[oIdx].isFloating()) { - var oId = oIdx == 0 ? l[j].sourceId : l[j].targetId; - var oOffset = offsets[oId], oWH = sizes[oId]; - // TODO i still want to make this faster. - var anchorLoc = l[j].endpoints[oIdx].anchor.compute( { - xy : [ oOffset.left, oOffset.top ], - wh : oWH, - element : l[j].endpoints[oIdx], - txy : [ myOffset.left, myOffset.top ], - twh : myWH, - tElement : endpoints[i] - }); - l[j].endpoints[oIdx].paint({ anchorLoc : anchorLoc }); - } - } - } - } - }; - - /** - * executes the given function against the given element if the first - * argument is an object, or the list of elements, if the first argument - * is a list. the function passed in takes (element, elementId) as - * arguments. - */ - var _elementProxy = function(element, fn) { - var retVal = null; - if (element.constructor == Array) { - retVal = []; - for ( var i = 0; i < element.length; i++) { - var el = _getElementObject(element[i]), id = _getAttribute(el, "id"); - retVal.push(fn(el, id)); // append return values to what we will return - } - } else { - var el = _getElementObject(element), id = _getAttribute(el, "id"); - retVal = fn(el, id); - } - return retVal; - }; - - /** - * gets an Endpoint by uuid. - */ - var _getEndpoint = function(uuid) { return endpointsByUUID[uuid]; }; - - /** - * inits a draggable if it's not already initialised. - */ - var _initDraggableIfNecessary = function(element, isDraggable, dragOptions) { - var draggable = isDraggable == null ? _draggableByDefault : isDraggable; - if (draggable) { - if (jsPlumb.CurrentLibrary.isDragSupported(element) && !jsPlumb.CurrentLibrary.isAlreadyDraggable(element)) { - var options = dragOptions || _currentInstance.Defaults.DragOptions || jsPlumb.Defaults.DragOptions; - options = jsPlumb.extend( {}, options); // make a copy. - var dragEvent = jsPlumb.CurrentLibrary.dragEvents['drag']; - var stopEvent = jsPlumb.CurrentLibrary.dragEvents['stop']; - options[dragEvent] = _wrap(options[dragEvent], function() { - var ui = jsPlumb.CurrentLibrary.getUIPosition(arguments); - _draw(element, ui); - _addClass(element, "jsPlumb_dragged"); - }); - options[stopEvent] = _wrap(options[stopEvent], function() { - var ui = jsPlumb.CurrentLibrary.getUIPosition(arguments); - _draw(element, ui); - _removeClass(element, "jsPlumb_dragged"); - }); - var draggable = draggableStates[_getId(element)]; - options.disabled = draggable == null ? false : !draggable; - jsPlumb.CurrentLibrary.initDraggable(element, options); - } - } - }; - - /** - * helper to create a canvas. - * - */ - var _newCanvas = function(params) { - var canvas = document.createElement("canvas"); - _appendElement(canvas, params.container); - canvas.style.position = "absolute"; - if (params["class"]) canvas.className = params["class"]; - // set an id. if no id on the element and if uuid was supplied it - // will be used, otherwise we'll create one. - _getId(canvas, params.uuid); - if (ie) { - // for IE we have to set a big canvas size. actually you can - // override this, too, if 1200 pixels - // is not big enough for the biggest connector/endpoint canvas - // you have at startup. - jsPlumb.sizeCanvas(canvas, 0, 0, DEFAULT_NEW_CANVAS_SIZE, DEFAULT_NEW_CANVAS_SIZE); - canvas = G_vmlCanvasManager.initElement(canvas); - } - - return canvas; - }; - - var _newConnection = function(params) { - var connectionFunc = jsPlumb.Defaults.ConnectionType || Connection; - return new connectionFunc(params); - }; - - var _newEndpoint = function(params) { - var endpointFunc = jsPlumb.Defaults.EndpointType || Endpoint; - return new endpointFunc(params); - }; - - /** - * performs the given function operation on all the connections found - * for the given element id; this means we find all the endpoints for - * the given element, and then for each endpoint find the connectors - * connected to it. then we pass each connection in to the given - * function. - */ - var _operation = function(elId, func) { - var endpoints = endpointsByElement[elId]; - if (endpoints && endpoints.length) { - for ( var i = 0; i < endpoints.length; i++) { - for ( var j = 0; j < endpoints[i].connections.length; j++) { - var retVal = func(endpoints[i].connections[j]); - // if the function passed in returns true, we exit. - // most functions return false. - if (retVal) return; - } - } - } - }; - /** - * perform an operation on all elements. - */ - var _operationOnAll = function(func) { - for ( var elId in endpointsByElement) { - _operation(elId, func); - } - }; - - /** - * helper to remove an element from the DOM. - */ - var _removeElement = function(element, parent) { - if (element != null) { - if (!parent) { - try { - document.body.removeChild(element); - } catch (e) { - } - } else { - jsPlumb.CurrentLibrary.removeElement(element, parent); - } - } - }; - /** - * helper to remove a list of elements from the DOM. - */ - var _removeElements = function(elements, parent) { - for ( var i = 0; i < elements.length; i++) - _removeElement(elements[i], parent); - }; - /** - * helper method to remove an item from a list. - */ - var _removeFromList = function(map, key, value) { - if (key != null) { - var l = map[key]; - if (l != null) { - var i = _findIndex(l, value); - if (i >= 0) { - delete (l[i]); - l.splice(i, 1); - return true; - } - } - } - return false; - }; - /** - * Sets whether or not the given element(s) should be draggable, - * regardless of what a particular plumb command may request. - * - * @param element - * May be a string, a element objects, or a list of - * strings/elements. - * @param draggable - * Whether or not the given element(s) should be draggable. - */ - var _setDraggable = function(element, draggable) { - return _elementProxy(element, function(el, id) { - draggableStates[id] = draggable; - if (jsPlumb.CurrentLibrary.isDragSupported(el)) { - jsPlumb.CurrentLibrary.setDraggable(el, draggable); - } - }); - }; - /** - * private method to do the business of hiding/showing. - * - * @param el - * either Id of the element in question or a library specific - * object for the element. - * @param state - * String specifying a value for the css 'display' property - * ('block' or 'none'). - */ - var _setVisible = function(el, state) { - _operation(_getAttribute(el, "id"), function(jpc) { - jpc.canvas.style.display = state; - }); - }; - /** - * toggles the draggable state of the given element(s). - * - * @param el - * either an id, or an element object, or a list of - * ids/element objects. - */ - var _toggleDraggable = function(el) { - return _elementProxy(el, function(el, elId) { - var state = draggableStates[elId] == null ? _draggableByDefault : draggableStates[elId]; - state = !state; - draggableStates[elId] = state; - jsPlumb.CurrentLibrary.setDraggable(el, state); - return state; - }); - }; - /** - * private method to do the business of toggling hiding/showing. - * - * @param elId - * Id of the element in question - */ - var _toggleVisible = function(elId) { - _operation(elId, function(jpc) { - var state = ('none' == jpc.canvas.style.display); - jpc.canvas.style.display = state ? "block" : "none"; - }); - // todo this should call _elementProxy, and pass in the - // _operation(elId, f) call as a function. cos _toggleDraggable does - // that. - }; - /** - * updates the offset and size for a given element, and stores the - * values. if 'offset' is not null we use that (it would have been - * passed in from a drag call) because it's faster; but if it is null, - * or if 'recalc' is true in order to force a recalculation, we get the current values. - */ - var _updateOffset = function(params) { - var timestamp = params.timestamp, recalc = params.recalc, offset = params.offset, elId = params.elId; - if (!recalc) { - if (timestamp && timestamp === offsetTimestamps[elId]) - return; - } - if (recalc || offset == null) { // if forced repaint or no offset - // available, we recalculate. - // get the current size and offset, and store them - var s = _getElementObject(elId); - if (s != null) { - sizes[elId] = _getSize(s); - offsets[elId] = _getOffset(s); - offsetTimestamps[elId] = timestamp; - } - } else { - offsets[elId] = offset; - } - }; - -/** - * gets an id for the given element, creating and setting one if - * necessary. - */ - var _getId = function(element, uuid) { - var ele = _getElementObject(element); - var id = _getAttribute(ele, "id"); - if (!id || id == "undefined") { - // check if fixed uuid parameter is given - if (arguments.length == 2 && arguments[1] != undefined) - id = uuid; - else - id = "jsPlumb_" + _timestamp(); - _setAttribute(ele, "id", id); - } - return id; - }; - -/** - * wraps one function with another, creating a placeholder for the - * wrapped function if it was null. this is used to wrap the various - * drag/drop event functions - to allow jsPlumb to be notified of - * important lifecycle events without imposing itself on the user's - * drag/drop functionality. TODO: determine whether or not we should - * support an error handler concept, if one of the functions fails. - * - * @param wrappedFunction original function to wrap; may be null. - * @param newFunction function to wrap the original with. - * @param returnOnThisValue Optional. Indicates that the wrappedFunction should - * not be executed if the newFunction returns a value matching 'returnOnThisValue'. - * note that this is a simple comparison and only works for primitives right now. - */ - var _wrap = function(wrappedFunction, newFunction, returnOnThisValue) { - wrappedFunction = wrappedFunction || function() { }; - newFunction = newFunction || function() { }; - return function() { - var r = null; - try { - r = newFunction.apply(this, arguments); - } catch (e) { - _log(_currentInstance, 'jsPlumb function failed : ' + e); - } - if (returnOnThisValue == null || (r !== returnOnThisValue)) { - try { - wrappedFunction.apply(this, arguments); - } catch (e) { - _log(_currentInstance, 'wrapped function failed : ' + e); - } - } - return r; - }; - }; - - /* - * Property: connectorClass - * The CSS class to set on Connection canvas elements. This value is a String and can have multiple classes; the entire String is appended as-is. - */ - this.connectorClass = '_jsPlumb_connector'; - - /* - * Property: endpointClass - * The CSS class to set on Endpoint canvas elements. This value is a String and can have multiple classes; the entire String is appended as-is. - */ - this.endpointClass = '_jsPlumb_endpoint'; - - /* - * Property: overlayClass - * The CSS class to set on an Overlay that is an HTML element. This value is a String and can have multiple classes; the entire String is appended as-is. - */ - this.overlayClass = '_jsPlumb_overlay'; - - /* - * Property: Anchors - * Default jsPlumb Anchors. These are supplied in the file jsPlumb-defaults-x.x.x.js, which is merged in with the main jsPlumb script to form .jsPlumb-all-x.x.x.js. You can - * provide your own Anchors by supplying them in a script that is loaded after jsPlumb, for instance: > jsPlumb.Anchors.MyAnchor = { ....anchor code here. see the documentation. } - */ - this.Anchors = {}; - - /* - * Property: Connectors - * Default jsPlumb Connectors. These are supplied - * in the file jsPlumb-defaults-x.x.x.js, which is merged in with the - * main jsPlumb script to form .jsPlumb-all-x.x.x.js. You can - * provide your own Connectors by supplying them in a script that is - * loaded after jsPlumb, for instance: > jsPlumb.Connectors.MyConnector = { - * ....connector code here. see the documentation. } - */ - this.Connectors = {}; - - /* - * Property: Endpoints - * Default jsPlumb Endpoints. These are supplied in - * the file jsPlumb-defaults-x.x.x.js, which is merged in with the main - * jsPlumb script to form .jsPlumb-all-x.x.x.js. You can - * provide your own Endpoints by supplying them in a script that is - * loaded after jsPlumb, for instance: > jsPlumb.Endpoints.MyEndpoint = { - * ....endpoint code here. see the documentation. } - */ - this.Endpoints = {}; - - /* - * Property:Overlays - * Default jsPlumb Overlays such as Arrows and Labels. - * These are supplied in the file jsPlumb-defaults-x.x.x.js, which is - * merged in with the main jsPlumb script to form - * .jsPlumb-all-x.x.x.js. You can provide your own Overlays by - * supplying them in a script that is loaded after jsPlumb, for - * instance: > jsPlumb.Overlays.MyOverlay = { ....overlay code here. see - * the documentation. } - */ - this.Overlays = {}; - - /* - Function: addEndpoint - - Adds an Endpoint to a given element. - - Parameters: - - target - Element to add the endpoint to. either an element id, or a selector representing some element. - params - Object containing Endpoint options. For more information, see the docs for Endpoint's constructor. - referenceParams - Object containing more Endpoint options; it will be merged with params by jsPlumb. You would use this if you had some shared parameters that you wanted to reuse when you added Endpoints to a number of elements. - - Returns: - The newly created Endpoint. - - See Also: - - */ - this.addEndpoint = function(target, params, referenceParams) { - referenceParams = referenceParams || {}; - var p = jsPlumb.extend({}, referenceParams); - jsPlumb.extend(p, params); - p.endpoint = p.endpoint || _currentInstance.Defaults.Endpoint || jsPlumb.Defaults.Endpoint; - p.endpointStyle = p.endpointStyle || _currentInstance.Defaults.EndpointStyle || jsPlumb.Defaults.EndpointStyle; - var el = _getElementObject(target), id = _getAttribute(el, "id"); - p.source = el; - _updateOffset({ elId : id }); - var e = _newEndpoint(p); - _addToList(endpointsByElement, id, e); - var myOffset = offsets[id], myWH = sizes[id]; - var anchorLoc = e.anchor.compute( { xy : [ myOffset.left, myOffset.top ], wh : myWH, element : e }); - e.paint({ anchorLoc : anchorLoc }); - return e; - }; - - /* - Function: addEndpoints - Adds a list of Endpoints to a given element. - - Parameters: - target - element to add the endpoint to. either an element id, or a selector representing some element. - endpoints - List of objects containing Endpoint options. one Endpoint is created for each entry in this list. - referenceParams - Object containing more Endpoint options; it will be merged with params by jsPlumb. You would use this if you had some shared parameters that you wanted to reuse when you added Endpoints to a number of elements. - - Returns: - List of newly created Endpoints, one for each entry in the 'endpoints' argument. - - See Also: - - */ - this.addEndpoints = function(target, endpoints, referenceParams) { - var results = []; - for ( var i = 0; i < endpoints.length; i++) { - results.push(_currentInstance.addEndpoint(target, endpoints[i], referenceParams)); - } - return results; - }; - - /* - Function: animate - Wrapper around supporting library's animate function; injects a call to jsPlumb in the 'step' function (creating - it if necessary). This only supports the two-arg version of the animate call in jQuery, the one that takes an 'options' object as - the second arg. MooTools has only one method, a two arg one. Which is handy. - - Parameters: - el - Element to animate. Either an id, or a selector representing the element. - properties - The 'properties' argument you want passed to the library's animate call. - options - The 'options' argument you want passed to the library's animate call. - - Returns: - void - */ - this.animate = function(el, properties, options) { - var ele = _getElementObject(el), id = _getAttribute(el, "id"); - options = options || {}; - var stepFunction = jsPlumb.CurrentLibrary.dragEvents['step']; - var completeFunction = jsPlumb.CurrentLibrary.dragEvents['complete']; - options[stepFunction] = _wrap(options[stepFunction], function() { - _currentInstance.repaint(id); - }); - - // probably, onComplete should repaint too. that will help - // keep up - // with fast animations. - options[completeFunction] = _wrap(options[completeFunction], - function() { - _currentInstance.repaint(id); - }); - - jsPlumb.CurrentLibrary.animate(ele, properties, options); - }; - - /* - Function: connect - Establishes a connection between two elements (or Endpoints, which are themselves registered to elements). - - Parameters: - params - Object containing setup for the connection. See docs for Connection's constructor. - referenceParams - Optional object containing more params for the connection. Typically you would pass in data that a lot of connections are sharing here, such as connector style etc, and then use the main params for data specific to this connection. - - Returns: - The newly created Connection. - */ - this.connect = function(params, referenceParams) { - var _p = jsPlumb.extend( {}, params); - if (referenceParams) jsPlumb.extend(_p, referenceParams); - - if (_p.source && _p.source.endpoint) _p.sourceEndpoint = _p.source; - if (_p.source && _p.target.endpoint) _p.targetEndpoint = _p.target; - - // test for endpoint uuids to connect - if (params.uuids) { - _p.sourceEndpoint = _getEndpoint(params.uuids[0]); - _p.targetEndpoint = _getEndpoint(params.uuids[1]); - } - - // now ensure that if we do have Endpoints already, they're not - // full. - if (_p.sourceEndpoint && _p.sourceEndpoint.isFull()) { - _log(_currentInstance, "could not add connection; source endpoint is full"); - return; - } - - if (_p.targetEndpoint && _p.targetEndpoint.isFull()) { - _log(_currentInstance, "could not add connection; target endpoint is full"); - return; - } - - // dynamic anchors. backwards compatibility here: from 1.2.6 onwards you don't need to specify "dynamicAnchors". the fact that some anchor consists - // of multiple definitions is enough to tell jsPlumb you want it to be dynamic. - if (_p.dynamicAnchors) { - // these can either be an array of anchor coords, which we will use for both source and target, or an object with {source:[anchors], target:[anchors]}, in which - // case we will use a different set for each element. - var a = _p.dynamicAnchors.constructor == Array; - var sa = a ? new DynamicAnchor(jsPlumb.makeAnchors(_p.dynamicAnchors)) : new DynamicAnchor(jsPlumb.makeAnchors(_p.dynamicAnchors.source)); - var ta = a ? new DynamicAnchor(jsPlumb.makeAnchors(_p.dynamicAnchors)) : new DynamicAnchor(jsPlumb.makeAnchors(_p.dynamicAnchors.target)); - _p.anchors = [sa,ta]; - } - - var jpc = _newConnection(_p); - // add to list of connections (by scope). - _addToList(connectionsByScope, jpc.scope, jpc); - // fire an event - _currentInstance.fireUpdate("jsPlumbConnection", { - source : jpc.source, target : jpc.target, - sourceId : jpc.sourceId, targetId : jpc.targetId, - sourceEndpoint : jpc.endpoints[0], targetEndpoint : jpc.endpoints[1] - }); - // force a paint - _draw(jpc.source); - - return jpc; - }; - - /* - Function: deleteEndpoint - Deletes an endpoint and removes all connections it has (which removes the connections from the other endpoints involved too) - - Parameters: - object - either an Endpoint object (such as from an addEndpoint call), or a String UUID. - - Returns: - void - */ - this.deleteEndpoint = function(object) { - var endpoint = (typeof object == "string") ? endpointsByUUID[object] : object; - if (endpoint) { - var uuid = endpoint.getUuid(); - if (uuid) endpointsByUUID[uuid] = null; - endpoint.detachAll(); - _removeElement(endpoint.canvas, endpoint.container); - // remove from endpointsbyElement - for (var e in endpointsByElement) { - var endpoints = endpointsByElement[e]; - if (endpoints) { - var newEndpoints = []; - for (var i = 0; i < endpoints.length; i++) - if (endpoints[i] != endpoint) newEndpoints.push(endpoints[i]); - - endpointsByElement[e] = newEndpoints; - } - } - delete endpoint; - } - }; - - /* - Function: deleteEveryEndpoint - Deletes every Endpoint, and their associated Connections, in this instance of jsPlumb. Do not unregister event listener (this is the only difference -between this method and jsPlumb.reset). - - Returns: - void - */ - this.deleteEveryEndpoint = function() { - for ( var id in endpointsByElement) { - var endpoints = endpointsByElement[id]; - if (endpoints && endpoints.length) { - for ( var i = 0; i < endpoints.length; i++) { - _currentInstance.deleteEndpoint(endpoints[i]); - } - } - } - delete endpointsByElement; - endpointsByElement = {}; - delete endpointsByUUID; - endpointsByUUID = {}; - }; - - var fireDetachEvent = function(jpc) { - _currentInstance.fireUpdate("jsPlumbConnectionDetached", { - source : jpc.source, target : jpc.target, - sourceId : jpc.sourceId, targetId : jpc.targetId, - sourceEndpoint : jpc.endpoints[0], targetEndpoint : jpc.endpoints[1] - }); - }; - - /* - Function: detach - Removes a connection. takes either (source, target) (the old way, maintained for backwards compatibility), or a params - object with various possible values. - - Parameters: - source - id or element object of the first element in the connection. - target - id or element object of the second element in the connection. - params - a JS object containing the same parameters as you pass to jsPlumb.connect. If this is present then neither source nor - target should be present; it should be the only argument to the method. See the docs for Connection's constructor for information -about the parameters allowed in the params object. - Returns: - true if successful, false if not. - */ - this.detach = function(source, target) { - if (arguments.length == 2) { - var s = _getElementObject(source), sId = _getId(s); - var t = _getElementObject(target), tId = _getId(t); - _operation(sId, function(jpc) { - if ((jpc.sourceId == sId && jpc.targetId == tId) || (jpc.targetId == sId && jpc.sourceId == tId)) { - _removeElement(jpc.canvas, jpc.container); - jpc.endpoints[0].removeConnection(jpc); - jpc.endpoints[1].removeConnection(jpc); - _removeFromList(connectionsByScope, jpc.scope, jpc); - } - }); - } - // this is the new version of the method, taking a JS object like - // the connect method does. - else if (arguments.length == 1) { - // TODO investigate whether or not this code still works when a user has supplied their own subclass of Connection. i suspect it may not. - if (arguments[0].constructor == Connection) { - //arguments[0].setHover(false); - arguments[0].endpoints[0].detachFrom(arguments[0].endpoints[1]); - } - else if (arguments[0].connection) { - //arguments[0].connection.setHover(false); - arguments[0].connection.endpoints[0].detachFrom(arguments[0].connection.endpoints[1]); - } - else { - var _p = jsPlumb.extend( {}, source); // a backwards compatibility hack: source should be thought of as 'params' in this case. - // test for endpoint uuids to detach - if (_p.uuids) { - _getEndpoint(_p.uuids[0]).detachFrom(_getEndpoint(_p.uuids[1])); - } else if (_p.sourceEndpoint && _p.targetEndpoint) { - _p.sourceEndpoint.detachFrom(_p.targetEndpoint); - } else { - var sourceId = _getId(_p.source); - var targetId = _getId(_p.target); - _operation(sourceId, function(jpc) { - if ((jpc.sourceId == sourceId && jpc.targetId == targetId) || (jpc.targetId == sourceId && jpc.sourceId == targetId)) { - _removeElement(jpc.canvas, jpc.container); - jpc.endpoints[0].removeConnection(jpc); - jpc.endpoints[1].removeConnection(jpc); - _removeFromList(connectionsByScope, jpc.scope, jpc); - } - }); - } - } - } - }; - - /* - Function: detachAll - Removes all an element's Connections. - - Parameters: - el - either the id of the element, or a selector for the element. - - Returns: - void - */ - this.detachAllConnections = function(el) { - var id = _getAttribute(el, "id"); - var endpoints = endpointsByElement[id]; - if (endpoints && endpoints.length) { - for ( var i = 0; i < endpoints.length; i++) { - endpoints[i].detachAll(); - } - } - }; - - /** - * @deprecated Use detachAllConnections instead. this will be removed in jsPlumb 1.3. - */ - this.detachAll = this.detachAllConnections; - - /* - Function: detachEveryConnection - Remove all Connections from all elements, but leaves Endpoints in place. - - Returns: - void - - See Also: - - */ - this.detachEveryConnection = function() { - for ( var id in endpointsByElement) { - var endpoints = endpointsByElement[id]; - if (endpoints && endpoints.length) { - for ( var i = 0; i < endpoints.length; i++) { - endpoints[i].detachAll(); - } - } - } - delete connectionsByScope; - connectionsByScope = {}; - }; - - /** - * @deprecated use detachEveryConnection instead. this will be removed in jsPlumb 1.3. - */ - this.detachEverything = this.detachEveryConnection; - - /* - Function: draggable - Initialises the draggability of some element or elements. You should use this instead of you library's draggable method so that jsPlumb can setup the appropriate callbacks. Your underlying library's drag method is always called from this method. - - Parameters: - el - either an element id, a list of element ids, or a selector. - options - options to pass through to the underlying library - - Returns: - void - */ - this.draggable = function(el, options) { - if (typeof el == 'object' && el.length) { - for ( var i = 0; i < el.length; i++) { - var ele = _getElementObject(el[i]); - if (ele) _initDraggableIfNecessary(ele, true, options); - } - } - else if (el._nodes) { // TODO this is YUI specific; really the logic should be forced - // into the library adapters (for jquery and mootools aswell) - for ( var i = 0; i < el._nodes.length; i++) { - var ele = _getElementObject(el._nodes[i]); - if (ele) _initDraggableIfNecessary(ele, true, options); - } - } - else { - var ele = _getElementObject(el); - if (ele) _initDraggableIfNecessary(ele, true, options); - } - }; - - /* - Function: extend - Wraps the underlying library's extend functionality. - - Parameters: - o1 - object to extend - o2 - object to extend o1 with - - Returns: - o1, extended with all properties from o2. - */ - this.extend = function(o1, o2) { - return jsPlumb.CurrentLibrary.extend(o1, o2); - }; - - /* - * Function: getDefaultEndpointType - * Returns the default Endpoint type. Used when someone wants to subclass Endpoint and have jsPlumb return instances of their subclass. - * you would make a call like this in your class's constructor: - * jsPlumb.getDefaultEndpointType().apply(this, arguments); - * - * Returns: - * the default Endpoint function used by jsPlumb. - */ - this.getDefaultEndpointType = function() { - return Endpoint; - }; - - /* - * Function: getDefaultConnectionType - * Returns the default Connection type. Used when someone wants to subclass Connection and have jsPlumb return instances of their subclass. - * you would make a call like this in your class's constructor: - * jsPlumb.getDefaultConnectionType().apply(this, arguments); - * - * Returns: - * the default Connection function used by jsPlumb. - */ - this.getDefaultConnectionType = function() { - return Connection; - }; - - /* - * Function: getConnections - * Gets all or a subset of connections currently managed by this jsPlumb instance. - * Parameters: - * options - a JS object that holds options defining what sort of connections you're - * looking for. Valid values are: scope this may be a String or a list - * of Strings. jsPlumb will only return Connections whose scope matches - * what this option defines. If you omit it, you will be given - * Connections of every scope. source may be a string or a list of - * strings; constraints results to have only Connections whose source is - * this object. target may be a string or a list of strings; constraints - * results to have only Connections whose target is this object. - * - * The return value is a dictionary in this format: - * { 'scope1': [ {sourceId:'window1', targetId:'window2', source:, - * target:, sourceEndpoint:, - * targetEndpoint:, connection:}, - * {sourceId:'window3', targetId:'window4', source:, - * target:, sourceEndpoint:, - * targetEndpoint:, connection:}, - * {sourceId:'window1', targetId:'window3', source:, - * target:, sourceEndpoint:, - * targetEndpoint:, connection:} ], - * 'scope2': [ {sourceId:'window1', targetId:'window3', source:, - * target:, sourceEndpoint:, - * targetEndpoint:, connection:} ] } - * - */ - this.getConnections = function(options) { - var r = {}; - options = options || {}; - var prepareList = function(input) { - var r = []; - if (input) { - if (typeof input == 'string') - r.push(input); - else - r = input; - } - return r; - }; - var scopes = prepareList(options.scope); - var sources = prepareList(options.source); - var targets = prepareList(options.target); - var filter = function(list, value) { - return list.length > 0 ? _findIndex(list, value) != -1 : true; - }; - for ( var i in connectionsByScope) { - if (filter(scopes, i)) { - r[i] = []; - for ( var j = 0; j < connectionsByScope[i].length; j++) { - var c = connectionsByScope[i][j]; - if (filter(sources, c.sourceId) && filter(targets, c.targetId)) - r[i].push({ sourceId : c.sourceId, targetId : c.targetId, source : c.source, target : c.target, sourceEndpoint : c.endpoints[0], targetEndpoint : c.endpoints[1], connection : c }); - } - } - } - return r; - }; - - /* - * Function: getDefaultScope - * Gets the default scope for connections and endpoints. a scope defines a type of endpoint/connection; supplying a - * scope to an endpoint or connection allows you to support different - * types of connections in the same UI. but if you're only interested in - * one type of connection, you don't need to supply a scope. this method - * will probably be used by very few people; it's good for testing - * though. - */ - this.getDefaultScope = function() { - return DEFAULT_SCOPE; - }; - - /* - Function: getEndpoint - Gets an Endpoint by UUID - - Parameters: - uuid - the UUID for the Endpoint - - Returns: - Endpoint with the given UUID, null if nothing found. - */ - this.getEndpoint = _getEndpoint; - - /* - * Gets an element's id, creating one if necessary. really only exposed - * for the lib-specific functionality to access; would be better to pass - * the current instance into the lib-specific code (even though this is - * a static call. i just don't want to expose it to the public API). - */ - this.getId = _getId; - - /* - Function: hide - Sets an element's connections to be hidden. - - Parameters: - el - either the id of the element, or a selector for the element. - - Returns: - void - */ - this.hide = function(el) { - _setVisible(el, "none"); - }; - - /** - * callback from the current library to tell us to prepare ourselves (attach - * mouse listeners etc; can't do that until the library has provided a bind method) - * @return - */ - this.init = function() { - var _bind = function(event) { - jsPlumb.CurrentLibrary.bind(document, event, function(e) { - if (!_currentInstance.currentlyDragging && _mouseEventsEnabled) { - // try connections first - for (var scope in connectionsByScope) { - var c = connectionsByScope[scope]; - for (var i = 0; i < c.length; i++) { - if (c[i][event](e)) return; - } - } - for (var el in endpointsByElement) { - var ee = endpointsByElement[el]; - for (var i = 0; i < ee.length; i++) { - if (ee[i][event](e)) return; - } - } - } - }); - }; - _bind("click"); - _bind("dblclick"); - _bind("mousemove"); - _bind("mousedown"); - _bind("mouseup"); - - initialized = true; - _currentInstance.fireUpdate("ready"); - }; - - /* - * Creates an anchor with the given params. - * - * You do not need to use this method. It is exposed because of the way jsPlumb is - * split into three scripts; this will change in the future. - * - * x - the x location of the anchor as a fraction of the - * total width. y - the y location of the anchor as a fraction of the - * total height. xOrientation - value indicating the general direction a - * connection from the anchor should go in, in the x direction. - * yOrientation - value indicating the general direction a connection - * from the anchor should go in, in the y direction. xOffset - a fixed - * offset that should be applied in the x direction that should be - * applied after the x position has been figured out. optional. defaults - * to 0. yOffset - a fixed offset that should be applied in the y - * direction that should be applied after the y position has been - * figured out. optional. defaults to 0. - * -- OR -- - * - * params - {x:..., y:..., xOrientation etc } - * -- OR FROM 1.2.4 --- - * - * name - the name of some Anchor in the _currentInstance.Anchors array. - * -- OR FROM 1.2.4 --- - * - * coords - a list of coords for the anchor, like you would pass to - * jsPlumb.makeAnchor (eg [0.5,0.5,0,-1] - an anchor in the center of - * some element, oriented towards the top of the screen) - * -- OR FROM 1.2.4 --- - * - * anchor - an existing anchor. just gets passed back. it's handy - * internally to have this functionality. - * - * Returns: The newly created Anchor. - */ - this.makeAnchor = function(x, y, xOrientation, yOrientation, xOffset, yOffset) { - // backwards compatibility here. we used to require an object passed - // in but that makes the call very verbose. easier to use - // by just passing in four/six values. but for backwards - // compatibility if we are given only one value we assume it's a - // call in the old form. - if (arguments.length == 0) return null; - var params = {}; - if (arguments.length == 1) { - var specimen = arguments[0]; - // if it appears to be an anchor already... - if (specimen.compute && specimen.getOrientation) return specimen; - // is it the name of an anchor type? - else if (typeof specimen == "string") return _currentInstance.Anchors[arguments[0]](); - // is it an array of coordinates? - else if (specimen.constructor == Array) { - if (specimen[0].constructor == Array || specimen[0].constructor == String) - return new DynamicAnchor(specimen); - else - return jsPlumb.makeAnchor.apply(this, specimen); - } - // last we try the backwards compatibility stuff. - else if (typeof arguments[0] == "object") jsPlumb.extend(params, x); - } else { - params = { x : x, y : y }; - if (arguments.length >= 4) params.orientation = [ arguments[2], arguments[3] ]; - if (arguments.length == 6) params.offsets = [ arguments[4], arguments[5] ]; - } - var a = new Anchor(params); - a.clone = function() { - return new Anchor(params); - }; - return a; - }; - - /** - * makes a list of anchors from the given list of types or coords, eg - * ["TopCenter", "RightMiddle", "BottomCenter", [0, 1, -1, -1] ] - */ - this.makeAnchors = function(types) { - var r = []; - for ( var i = 0; i < types.length; i++) - if (typeof types[i] == "string") - r.push(_currentInstance.Anchors[types[i]]()); - else if (types[i].constructor == Array) - r.push(jsPlumb.makeAnchor(types[i])); - return r; - }; - - /** - * Makes a dynamic anchor from the given list of anchors (which may be in shorthand notation as strings or dimension arrays, or Anchor - * objects themselves) and the given, optional, anchorSelector function (jsPlumb uses a default if this is not provided; most people will - * not need to provide this - i think). - */ - this.makeDynamicAnchor = function(anchors, anchorSelector) { - return new DynamicAnchor(anchors, anchorSelector); - }; - - /* - Function: repaint - Repaints an element and its connections. This method gets new sizes for the elements before painting anything. - - Parameters: - el - either the id of the element or a selector representing the element. - - Returns: - void - - See Also: - - */ - this.repaint = function(el) { - var _processElement = function(el) { _draw(_getElementObject(el)); }; - // support both lists... - if (typeof el == 'object') - for ( var i = 0; i < el.length; i++) _processElement(el[i]); - else // ...and single strings. - _processElement(el); - }; - - /* - Function: repaintEverything - Repaints all connections. - - Returns: - void - - See Also: - - */ - this.repaintEverything = function() { - var timestamp = _timestamp(); - for ( var elId in endpointsByElement) { - _draw(_getElementObject(elId), null, timestamp); - } - }; - - /* - Function: removeAllEndpoints - Removes all Endpoints associated with a given element. Also removes all Connections associated with each Endpoint it removes. - - Parameters: - el - either an element id, or a selector for an element. - - Returns: - void - - See Also: - - */ - this.removeAllEndpoints = function(el) { - var elId = _getAttribute(el, "id"); - var ebe = endpointsByElement[elId]; - for ( var i in ebe) - _currentInstance.deleteEndpoint(ebe[i]); - endpointsByElement[elId] = []; - }; - - /* - Removes every Endpoint in this instance of jsPlumb. - @deprecated use deleteEveryEndpoint instead - */ - this.removeEveryEndpoint = this.deleteEveryEndpoint; - - /* - Removes the given Endpoint from the given element. - @deprecated Use jsPlumb.deleteEndpoint instead (and note you dont need to supply the element. it's irrelevant). - */ - this.removeEndpoint = function(el, endpoint) { - _currentInstance.deleteEndpoint(endpoint); - }; - - /* - Function:reset - Removes all endpoints and connections and clears the listener list. To keep listeners call jsPlumb.deleteEveryEndpoint instead of this. - */ - this.reset = function() { - this.deleteEveryEndpoint(); - this.clearListeners(); - }; - - /* - Function: setAutomaticRepaint - Sets/unsets automatic repaint on window resize. - - Parameters: - value - whether or not to automatically repaint when the window is resized. - - Returns: void - */ - this.setAutomaticRepaint = function(value) { - automaticRepaint = value; - }; - - /* - * Function: setDefaultNewCanvasSize - * Sets the default size jsPlumb will use for a new canvas (we create a square canvas so one value is all - * that is required). This is a hack for IE, because ExplorerCanvas - * seems to need for a canvas to be larger than what you are going to - * draw on it at initialisation time. The default value of this is 1200 - * pixels, which is quite large, but if for some reason you're drawing - * connectors that are bigger, you should adjust this value - * appropriately. - * - * Parameters: - * size - The default size to use. jsPlumb will use a square canvas so you need only supply one value. - * - * Returns: - * void - */ - this.setDefaultNewCanvasSize = function(size) { - DEFAULT_NEW_CANVAS_SIZE = size; - }; - - /* - * Function: setDefaultScope - * Sets the default scope for Connections and Endpoints. A scope defines a type of Endpoint/Connection; supplying a - * scope to an Endpoint or Connection allows you to support different - * types of Connections in the same UI. If you're only interested in - * one type of Connection, you don't need to supply a scope. This method - * will probably be used by very few people; it just instructs jsPlumb - * to use a different key for the default scope. - * - * Parameters: - * scope - scope to set as default. - */ - this.setDefaultScope = function(scope) { - DEFAULT_SCOPE = scope; - }; - - /* - * Function: setDraggable - * Sets whether or not a given element is - * draggable, regardless of what any jsPlumb command may request. - * - * Parameters: - * el - either the id for the element, or a selector representing the element. - * - * Returns: - * void - */ - this.setDraggable = _setDraggable; - - /* - * Function: setDraggableByDefault - * Sets whether or not elements are draggable by default. Default for this is true. - * - * Parameters: - * draggable - value to set - * - * Returns: - * void - */ - this.setDraggableByDefault = function(draggable) { - _draggableByDefault = draggable; - }; - - this.setDebugLog = function(debugLog) { - log = debugLog; - }; - - /* - * Function: setRepaintFunction - * Sets the function to fire when the window size has changed and a repaint was fired. - * - * Parameters: - * f - Function to execute. - * - * Returns: void - */ - this.setRepaintFunction = function(f) { - repaintFunction = f; - }; - - /* - * Function: setMouseEventsEnabled - * Sets whether or not mouse events are enabled. By default they are not; this is just because jsPlumb has to add mouse listeners - * to the document, which may result in a performance hit a user does not need. - * - * Parameters: - * enabled - whether or not mouse events should be enabled. - * - * Returns: - * void - */ - this.setMouseEventsEnabled = function(enabled) { - _mouseEventsEnabled = enabled; - }; - - /* - * Function: show - * Sets an element's connections to be visible. - * - * Parameters: - * el - either the id of the element, or a selector for the element. - * - * Returns: - * void - */ - this.show = function(el) { - _setVisible(el, "block"); - }; - - /* - * Function: sizeCanvas - * Helper to size a canvas. You would typically use - * this when writing your own Connector or Endpoint implementation. - * - * Parameters: - * x - [int] x position for the Canvas origin - * y - [int] y position for the Canvas origin - * w - [int] width of the canvas - * h - [int] height of the canvas - * - * Returns: - * void - */ - this.sizeCanvas = function(canvas, x, y, w, h) { - if (canvas) { - canvas.style.height = h + "px"; - canvas.height = h; - canvas.style.width = w + "px"; - canvas.width = w; - canvas.style.left = x + "px"; - canvas.style.top = y + "px"; - } - }; - - /** - * gets some test hooks. nothing writable. - */ - this.getTestHarness = function() { - return { - endpointsByElement : endpointsByElement, - endpointCount : function(elId) { - var e = endpointsByElement[elId]; - return e ? e.length : 0; - }, - connectionCount : function(scope) { - scope = scope || DEFAULT_SCOPE; - var c = connectionsByScope[scope]; - return c ? c.length : 0; - }, - findIndex : _findIndex, - getId : _getId - }; - }; - - /** - * Toggles visibility of an element's connections. kept for backwards - * compatibility - */ - this.toggle = _toggleVisible; - - /* - * Function: toggleVisible - * Toggles visibility of an element's Connections. - * - * Parameters: - * el - either the element's id, or a selector representing the element. - * - * Returns: - * void, but should be updated to return the current state - */ - // TODO: update this method to return the current state. - this.toggleVisible = _toggleVisible; - - /* - * Function: toggleDraggable - * Toggles draggability (sic?) of an element's Connections. - * - * Parameters: - * el - either the element's id, or a selector representing the element. - * - * Returns: - * The current draggable state. - */ - this.toggleDraggable = _toggleDraggable; - - /* - * Function: unload - * Unloads jsPlumb, deleting all storage. You should call this from an onunload attribute on the element. - * - * Returns: - * void - */ - this.unload = function() { - delete endpointsByElement; - delete endpointsByUUID; - delete offsets; - delete sizes; - delete floatingConnections; - delete draggableStates; - delete canvasList; - }; - - /* - * Helper method to wrap an existing function with one of - * your own. This is used by the various implementations to wrap event - * callbacks for drag/drop etc; it allows jsPlumb to be transparent in - * its handling of these things. If a user supplies their own event - * callback, for anything, it will always be called. - */ - this.wrap = _wrap; - this.addListener = this.bind; - - /** - * Anchors model a position on some element at which an Endpoint may be located. They began as a first class citizen of jsPlumb, ie. a user - * was required to create these themselves, but over time this has been replaced by the concept of referring to them either by name (eg. "TopMiddle"), - * or by an array describing their coordinates (eg. [ 0, 0.5, 0, -1 ], which is the same as "TopMiddle"). jsPlumb now handles all of the - * creation of Anchors without user intervention. - */ - var Anchor = function(params) { - var self = this; - this.x = params.x || 0; - this.y = params.y || 0; - var orientation = params.orientation || [ 0, 0 ]; - var lastTimestamp = null, lastReturnValue = null; - this.offsets = params.offsets || [ 0, 0 ]; - self.timestamp = null; - this.compute = function(params) { - var xy = params.xy, wh = params.wh, element = params.element, timestamp = params.timestamp; - if (timestamp && timestamp === self.timestamp) { - return lastReturnValue; - } - lastReturnValue = [ xy[0] + (self.x * wh[0]) + self.offsets[0], xy[1] + (self.y * wh[1]) + self.offsets[1] ]; - var container = element ? element.container : null; - var containerAdjustment = { left : 0, top : 0 }; - if (container != null) { - var eo = _getElementObject(container); - var o = _getOffset(eo); - var sl = jsPlumb.CurrentLibrary.getScrollLeft(eo); - var st = jsPlumb.CurrentLibrary.getScrollTop(eo); - containerAdjustment.left = o.left - sl; - containerAdjustment.top = o.top - st; - lastReturnValue[0] = lastReturnValue[0] - containerAdjustment.left; - lastReturnValue[1] = lastReturnValue[1] - containerAdjustment.top; - } - self.timestamp = timestamp; - return lastReturnValue; - }; - - this.getOrientation = function() { return orientation; }; - - this.equals = function(anchor) { - if (!anchor) return false; - var ao = anchor.getOrientation(); - var o = this.getOrientation(); - return this.x == anchor.x && this.y == anchor.y - && this.offsets[0] == anchor.offsets[0] - && this.offsets[1] == anchor.offsets[1] - && o[0] == ao[0] && o[1] == ao[1]; - }; - - this.getCurrentLocation = function() { return lastReturnValue; }; - }; - - /** - * An Anchor that floats. its orientation is computed dynamically from - * its position relative to the anchor it is floating relative to. It is used when creating - * a connection through drag and drop. - */ - var FloatingAnchor = function(params) { - - // this is the anchor that this floating anchor is referenced to for - // purposes of calculating the orientation. - var ref = params.reference; - // the canvas this refers to. - var refCanvas = params.referenceCanvas; - var size = _getSize(_getElementObject(refCanvas)); - - // these are used to store the current relative position of our - // anchor wrt the reference anchor. they only indicate - // direction, so have a value of 1 or -1 (or, very rarely, 0). these - // values are written by the compute method, and read - // by the getOrientation method. - var xDir = 0, yDir = 0; - // temporary member used to store an orientation when the floating - // anchor is hovering over another anchor. - var orientation = null; - var _lastResult = null; - - this.compute = function(params) { - var xy = params.xy, el = params.element; - var result = [ xy[0] + (size[0] / 2), xy[1] + (size[1] / 2) ]; // return origin of the element. we may wish to improve this so that any object can be the drag proxy. - if (el.container != null) { - var o = _getOffset(el.container); - result[0] = result[0] - o.left; - result[1] = result[1] - o.top; - } - _lastResult = result; - return result; - }; - - this.getOrientation = function() { - if (orientation) return orientation; - else { - var o = ref.getOrientation(); - // here we take into account the orientation of the other - // anchor: if it declares zero for some direction, we declare zero too. this might not be the most awesome. perhaps we can come - // up with a better way. it's just so that the line we draw looks like it makes sense. maybe this wont make sense. - return [ Math.abs(o[0]) * xDir * -1, - Math.abs(o[1]) * yDir * -1 ]; - } - }; - - /** - * notification the endpoint associated with this anchor is hovering - * over another anchor; we want to assume that anchor's orientation - * for the duration of the hover. - */ - this.over = function(anchor) { orientation = anchor.getOrientation(); }; - - /** - * notification the endpoint associated with this anchor is no - * longer hovering over another anchor; we should resume calculating - * orientation as we normally do. - */ - this.out = function() { orientation = null; }; - - this.getCurrentLocation = function() { return _lastResult; }; - }; - - /* - * A DynamicAnchors is an Anchor that contains a list of other Anchors, which it cycles - * through at compute time to find the one that is located closest to - * the center of the target element, and returns that Anchor's compute - * method result. this causes endpoints to follow each other with - * respect to the orientation of their target elements, which is a useful - * feature for some applications. - * - */ - var DynamicAnchor = function(anchors, anchorSelector) { - this.isSelective = true; - this.isDynamic = true; - var _anchors = anchors || []; - var _convert = function(anchor) { return anchor.constructor == Anchor ? anchor: jsPlumb.makeAnchor(anchor); }; - for (var i = 0; i < _anchors.length; i++) _anchors[i] = _convert(_anchors[i]); - this.addAnchor = function(anchor) { _anchors.push(_convert(anchor)); }; - this.getAnchors = function() { return _anchors; }; - var _curAnchor = _anchors.length > 0 ? _anchors[0] : null; - var _curIndex = _anchors.length > 0 ? 0 : -1; - this.locked = false; - var self = this; - - // helper method to calculate the distance between the centers of the two elements. - var _distance = function(anchor, cx, cy, xy, wh) { - var ax = xy[0] + (anchor.x * wh[0]), ay = xy[1] + (anchor.y * wh[1]); - return Math.sqrt(Math.pow(cx - ax, 2) + Math.pow(cy - ay, 2)); - }; - // default method uses distance between element centers. you can provide your own method in the dynamic anchor - // constructor (and also to jsPlumb.makeDynamicAnchor). the arguments to it are four arrays: - // xy - xy loc of the anchor's element - // wh - anchor's element's dimensions - // txy - xy loc of the element of the other anchor in the connection - // twh - dimensions of the element of the other anchor in the connection. - // anchors - the list of selectable anchors - var _anchorSelector = anchorSelector || function(xy, wh, txy, twh, anchors) { - var cx = txy[0] + (twh[0] / 2), cy = txy[1] + (twh[1] / 2); - var minIdx = -1, minDist = Infinity; - for ( var i = 0; i < anchors.length; i++) { - var d = _distance(anchors[i], cx, cy, xy, wh); - if (d < minDist) { - minIdx = i + 0; - minDist = d; - } - } - return anchors[minIdx]; - }; - this.compute = function(params) { - var xy = params.xy, wh = params.wh, timestamp = params.timestamp, txy = params.txy, twh = params.twh; - // if anchor is locked or an opposite element was not given, we - // maintain our state. anchor will be locked - // if it is the source of a drag and drop. - if (self.locked || txy == null || twh == null) - return _curAnchor.compute(params); - else - params.timestamp = null; // otherwise clear this, i think. we want the anchor to compute. - - _curAnchor = _anchorSelector(xy, wh, txy, twh, _anchors); - - var pos = _curAnchor.compute(params); - return pos; - }; - - this.getCurrentLocation = function() { - var cl = _curAnchor != null ? _curAnchor.getCurrentLocation() : null; - return cl; - }; - - this.getOrientation = function() { return _curAnchor != null ? _curAnchor.getOrientation() : [ 0, 0 ]; }; - this.over = function(anchor) { if (_curAnchor != null) _curAnchor.over(anchor); }; - this.out = function() { if (_curAnchor != null) _curAnchor.out(); }; - }; - - /* - * Class: Connection - * The connecting line between two Endpoints. - */ - /* - * Function: Connection - * Connection constructor. - * - * Parameters: - * source - either an element id, a selector for an element, or an Endpoint. - * target - either an element id, a selector for an element, or an Endpoint - * scope - scope descriptor for this connection. optional. - * container - id of the containing div for this connection. optional; jsPlumb uses the default (which you can set, but which is the body by default) otherwise. - * endpoint - Optional. Endpoint definition to use for both ends of the connection. - * endpoints - Optional. Array of two Endpoint definitions, one for each end of the Connection. This and 'endpoint' are mutually exclusive parameters. - * endpointStyle - Optional. Endpoint style definition to use for both ends of the Connection. - * endpointStyles - Optional. Array of two Endpoint style definitions, one for each end of the Connection. This and 'endpoint' are mutually exclusive parameters. - * paintStyle - Parameters defining the appearance of the Connection. Optional; jsPlumb will use the defaults if you supply nothing here. - * backgroundPaintStyle - Parameters defining the appearance of the background of the Connection. Optional; jsPlumb will use the defaults if you supply nothing here. - * hoverPaintStyle - Parameters defining the appearance of the Connection when the mouse is hovering over it. Optional; jsPlumb will use the defaults if you supply nothing here (note that the default hoverPaintStyle is null). - * overlays - Optional array of Overlay definitions to appear on this Connection. - */ - var Connection = function(params) { - - EventGenerator.apply(this); - // ************** get the source and target and register the connection. ******************* - var self = this; - var visible = true; - /** - Function:isVisible - Returns whether or not the Connection is currently visible. - */ - this.isVisible = function() { return visible; }; - /** - Function: setVisible - Sets whether or not the Connection should be visible. - - Parameters: - visible - boolean indicating desired visible state. - */ - this.setVisible = function(v) { - visible = v; - if (self.canvas) self.canvas.style.display = v ? "block" : "none"; - }; - var id = new String('_jsplumb_c_' + (new Date()).getTime()); - this.getId = function() { return id; }; - this.container = params.container || _currentInstance.Defaults.Container; // may be null; we will append to the body if so. - // get source and target as jQuery objects - /** - Property: source - The source element for this Connection. - */ - this.source = _getElementObject(params.source); - /** - Property:target - The target element for this Connection. - */ - this.target = _getElementObject(params.target); - // sourceEndpoint and targetEndpoint override source/target, if they are present. - if (params.sourceEndpoint) this.source = params.sourceEndpoint.getElement(); - if (params.targetEndpoint) this.target = params.targetEndpoint.getElement(); - /* - * Property: sourceId - * Id of the source element in the connection. - */ - this.sourceId = _getAttribute(this.source, "id"); - /* - * Property: targetId - * Id of the target element in the connection. - */ - this.targetId = _getAttribute(this.target, "id"); - this.endpointsOnTop = params.endpointsOnTop != null ? params.endpointsOnTop : true; - this.getAttachedElements = function() { - return self.endpoints; - }; - - /* - * Property: scope - * Optional scope descriptor for the connection. - */ - this.scope = params.scope; // scope may have been passed in to the connect call. if it wasn't, we will pull it from the source endpoint, after having initialised the endpoints. - /* - * Property: endpoints - * Array of [source, target] Endpoint objects. - */ - this.endpoints = []; - this.endpointStyles = []; - // wrapped the main function to return null if no input given. this lets us cascade defaults properly. - var _makeAnchor = function(anchorParams) { - if (anchorParams) - return jsPlumb.makeAnchor(anchorParams); - }; - var prepareEndpoint = function(existing, index, params, element) { - if (existing) { - self.endpoints[index] = existing; - existing.addConnection(self); - } else { - if (!params.endpoints) params.endpoints = [ null, null ]; - var ep = params.endpoints[index] || params.endpoint - || _currentInstance.Defaults.Endpoints[index] - || jsPlumb.Defaults.Endpoints[index] - || _currentInstance.Defaults.Endpoint - || jsPlumb.Defaults.Endpoint - || new jsPlumb.Endpoints.Dot(); - if (ep.constructor == String) - ep = new jsPlumb.Endpoints[ep](); - else if (ep.constructor == Array) { - ep = new jsPlumb.Endpoints[ep[0]](ep[1]); - } - if (!params.endpointStyles) params.endpointStyles = [ null, null ]; - if (!params.endpointHoverStyles) params.endpointHoverStyles = [ null, null ]; - var es = params.endpointStyles[index] || params.endpointStyle || _currentInstance.Defaults.EndpointStyles[index] || jsPlumb.Defaults.EndpointStyles[index] || _currentInstance.Defaults.EndpointStyle || jsPlumb.Defaults.EndpointStyle; - var ehs = params.endpointHoverStyles[index] || params.endpointHoverStyle || _currentInstance.Defaults.EndpointHoverStyles[index] || jsPlumb.Defaults.EndpointHoverStyles[index] || _currentInstance.Defaults.EndpointHoverStyle || jsPlumb.Defaults.EndpointHoverStyle; - var a = params.anchors ? params.anchors[index] : _makeAnchor(_currentInstance.Defaults.Anchors[index]) || _makeAnchor(jsPlumb.Defaults.Anchors[index]) || _makeAnchor(_currentInstance.Defaults.Anchor) || _makeAnchor(jsPlumb.Defaults.Anchor) || _makeAnchor("BottomCenter"); - var u = params.uuids ? params.uuids[index] : null; - var e = _newEndpoint( { paintStyle : es, hoverPaintStyle:ehs, endpoint : ep, connections : [ self ], uuid : u, anchor : a, source : element, container : self.container }); - self.endpoints[index] = e; - return e; - } - }; - - var eS = prepareEndpoint(params.sourceEndpoint, 0, params, self.source); - if (eS) _addToList(endpointsByElement, this.sourceId, eS); - var eT = prepareEndpoint(params.targetEndpoint, 1, params, self.target); - if (eT) _addToList(endpointsByElement, this.targetId, eT); - // if scope not set, set it to be the scope for the source endpoint. - if (!this.scope) this.scope = this.endpoints[0].scope; - - /* - * Property: connector - * The underlying Connector for this Connection (eg. a Bezier connector, straight line connector) - */ - this.connector = this.endpoints[0].connector || this.endpoints[1].connector || params.connector || _currentInstance.Defaults.Connector || jsPlumb.Defaults.Connector || new jsPlumb.Connectors.Bezier(); - if (this.connector.constructor == String) - this.connector = new jsPlumb.Connectors[this.connector](); // lets you use a string as shorthand. - else if (this.connector.constructor == Array) - this.connector = new jsPlumb.Connectors[this.connector[0]](this.connector[1]); - this.paintStyle = this.endpoints[0].connectorStyle || this.endpoints[1].connectorStyle || params.paintStyle || _currentInstance.Defaults.PaintStyle || jsPlumb.Defaults.PaintStyle; - var backgroundPaintStyle = this.endpoints[0].connectorBackgroundStyle || this.endpoints[1].connectorBackgroundStyle || params.backgroundPaintStyle || _currentInstance.Defaults.BackgroundPaintStyle || jsPlumb.Defaults.BackgroundPaintStyle; - this.hoverPaintStyle = this.endpoints[0].connectorHoverStyle || this.endpoints[1].connectorHoverStyle || params.hoverPaintStyle || _currentInstance.Defaults.HoverPaintStyle || jsPlumb.Defaults.HoverPaintStyle; - this.paintStyleInUse = this.paintStyle; - - /* - * Property: overlays - * List of Overlays for this Connection. - */ - this.overlays = []; - if (params.overlays) { - for (var i = 0; i < params.overlays.length; i++) { - var o = params.overlays[i]; - if (o.constructor == Array) { // this is for the shorthand ["Arrow", { width:50 }] syntax - // there's also a three arg version: - // ["Arrow", { width:50 }, {location:0.7}] - // which merges the 3rd arg into the 2nd. - var type = o[0]; - var p = jsPlumb.CurrentLibrary.extend({connection:self}, o[1]); // make a copy of the object so as not to mess up anyone else's reference... - if (o.length == 3) jsPlumb.CurrentLibrary.extend(p, o[2]); - this.overlays.push(new jsPlumb.Overlays[type](p)); - } else if (o.constructor == String) { - this.overlays.push(new jsPlumb.Overlays[o]({connection:self})); - } - else this.overlays.push(o); - } - } - var overlayPlacements = []; - /* - * Function: addOverlay - * Adds an Overlay to the Connection. - * - * Parameters: - * overlay - Overlay to add. - */ - this.addOverlay = function(overlay) { overlays.push(overlay); }; - - // this is a shortcut helper method to let people add a label as - // overlay. - this.labelStyle = params.labelStyle || _currentInstance.Defaults.LabelStyle || jsPlumb.Defaults.LabelStyle; - this.label = params.label; - if (this.label) { - this.overlays.push(new jsPlumb.Overlays.Label( { - labelStyle : this.labelStyle, - label : this.label, - connection:self - })); - } - - _updateOffset( { elId : this.sourceId }); - _updateOffset( { elId : this.targetId }); - - /* - * Function: setLabel - * Sets the Connection's label. - * - * Parameters: - * l - label to set. May be a String or a Function that returns a String. - */ - this.setLabel = function(l) { - self.label = l; - _currentInstance.repaint(self.source); - }; - - // paint the endpoints - var myOffset = offsets[this.sourceId], myWH = sizes[this.sourceId]; - var otherOffset = offsets[this.targetId]; - var otherWH = sizes[this.targetId]; - var anchorLoc = this.endpoints[0].anchor.compute( { - xy : [ myOffset.left, myOffset.top ], wh : myWH, element : this.endpoints[0], - txy : [ otherOffset.left, otherOffset.top ], twh : otherWH, tElement : this.endpoints[1] - }); - this.endpoints[0].paint( { anchorLoc : anchorLoc }); - - anchorLoc = this.endpoints[1].anchor.compute( { - xy : [ otherOffset.left, otherOffset.top ], wh : otherWH, element : this.endpoints[1], - txy : [ myOffset.left, myOffset.top ], twh : myWH, tElement : this.endpoints[0] - }); - this.endpoints[1].paint({ anchorLoc : anchorLoc }); - - var canvas = _newCanvas({"class":jsPlumb.connectorClass, container:self.container}); - this.canvas = canvas; - - /* - * Function: setBackgroundPaintStyle - * Sets the Connection's background paint style and then repaints the Connection. - * - * Parameters: - * style - Style to use. - */ - this.setBackgroundPaintStyle = function(style) { - backgroundPaintStyle = style; - self.repaint(); - }; - - /* - * Paints the connection. - * - * elId - Id of the element that is in motion. - * ui - current library's event system ui object (present if we came from a drag to get here). - * recalc - whether or not to recalculate all anchors etc before painting. - * timestamp - timestamp of this paint. If the Connection was last painted with the same timestamp, it does not paint again. - */ - this.paint = function(params) { - params = params || {}; - var elId = params.elId, ui = params.ui, recalc = params.recalc, timestamp = params.timestamp; - var fai = self.floatingAnchorIndex; - // if the moving object is not the source we must transpose the two references. - var swap = false; - var tId = swap ? this.sourceId : this.targetId, sId = swap ? this.targetId : this.sourceId; - var tIdx = swap ? 0 : 1, sIdx = swap ? 1 : 0; - var el = swap ? this.target : this.source; - - if (this.canvas.getContext) { - _updateOffset( { elId : elId, offset : ui, recalc : recalc, timestamp : timestamp }); - _updateOffset( { elId : tId, timestamp : timestamp }); // update the target if this is a forced repaint. otherwise, only the source has been moved. - var ctx = canvas.getContext('2d'); - var sAnchorP = this.endpoints[sIdx].anchor.getCurrentLocation(); - var sAnchorO = this.endpoints[sIdx].anchor.getOrientation(); - var tAnchorP = this.endpoints[tIdx].anchor.getCurrentLocation(); - var tAnchorO = this.endpoints[tIdx].anchor.getOrientation(); - - // paint overlays - var maxSize = 0; - for ( var i = 0; i < self.overlays.length; i++) { - var o = self.overlays[i]; - var s = o.computeMaxSize(self.connector, ctx); - if (s > maxSize) - maxSize = s; - } - - var dim = this.connector.compute(sAnchorP, tAnchorP, this.endpoints[sIdx].anchor, this.endpoints[tIdx].anchor, self.paintStyleInUse.lineWidth, maxSize); - jsPlumb.sizeCanvas(canvas, dim[0], dim[1], dim[2], dim[3]); - - var _paintOneStyle = function(ctx, aStyle) { - ctx.save(); - jsPlumb.extend(ctx, aStyle); - if (aStyle.gradient && !ie) { - var g = self.connector.createGradient(dim, ctx, (elId == this.sourceId)); - for ( var i = 0; i < aStyle.gradient.stops.length; i++) - g.addColorStop(aStyle.gradient.stops[i][0], aStyle.gradient.stops[i][1]); - ctx.strokeStyle = g; - } - self.connector.paint(dim, ctx); - ctx.restore(); - }; - - // first check for the background style - if (backgroundPaintStyle != null) { - _paintOneStyle(ctx, backgroundPaintStyle); - } - _paintOneStyle(ctx, self.paintStyleInUse); - - // paint overlays - for ( var i = 0; i < self.overlays.length; i++) { - var o = self.overlays[i]; - self.overlayPlacements[i] = o.draw(self.connector, ctx, self.paintStyleInUse); - } - } - }; - - /* - * Function: repaint - * Repaints the Connection. - */ - this.repaint = function() { - this.paint({ elId : this.sourceId, recalc : true }); - }; - - _initDraggableIfNecessary(self.source, params.draggable, params.dragOptions); - _initDraggableIfNecessary(self.target, params.draggable, params.dragOptions); - - // resizing (using the jquery.ba-resize plugin). todo: decide - // whether to include or not. - if (this.source.resize) { - this.source.resize(function(e) { - jsPlumb.repaint(self.sourceId); - }); - } - - //_registerConnection(self); - }; - - /* - * Class: Endpoint - * - * Models an endpoint. Can have one to N connections emanating from it (although how to handle that in the UI is a very good question). also has a Canvas and paint style. - */ - - /* - * Function: Endpoint - * - * Endpoint constructor. - * - * Parameters: - * anchor - definition of the Anchor for the endpoint. You can include one or more Anchor definitions here; if you include more than one, jsPlumb creates a 'dynamic' Anchor, ie. an Anchor which changes position relative to the other elements in a Connection. Each Anchor definition can be either a string nominating one of the basic Anchors provided by jsPlumb (eg. "TopCenter"), or a four element array that designates the Anchor's location and orientation (eg, and this is equivalent to TopCenter, [ 0.5, 0, 0, -1 ]). To provide more than one Anchor definition just put them all in an array. You can mix string definitions with array definitions. - * endpoint - optional Endpoint definition. This takes the form of either a string nominating one of the basic Endpoints provided by jsPlumb (eg. "Rectangle"), or an array containing [name,params] for those cases where you don't wish to use the default values, eg. [ "Rectangle", { width:5, height:10 } ]. - * paintStyle - endpoint style, a js object. may be null. - * hoverPaintStyle - style to use when the mouse is hovering over the Endpoint. A js object. may be null; defaults to null. - * source - element the Endpoint is attached to, of type String (an element id) or element selector. Required. - * canvas - canvas element to use. may be, and most often is, null. - * connections - optional list of Connections to configure the Endpoint with. - * container - optional element (as a string id) to use as the container for the canvas associated with this Endpoint. If not supplied, jsPlumb uses the default, which is the document body. A better way to use this container functionality is to set it on the defaults (jsPlumb.Defaults.Container="someElement"). - * isSource - boolean. indicates the endpoint can act as a source of new connections. Optional; defaults to false. - * maxConnections - integer; defaults to 1. a value of -1 means no upper limit. - * dragOptions - if isSource is set to true, you can supply arguments for the underlying library's drag method. Optional; defaults to null. - * connectorStyle - if isSource is set to true, this is the paint style for Connections from this Endpoint. Optional; defaults to null. - * connectorBackgroundStyle - if isSource is set to true, this is the background paint style for Connections from this Endpoint. Optional; defaults to null. - * connectorHoverStyle - if isSource is set to true, this is the hover paint style for Connections from this Endpoint. Optional; defaults to null. - * connector - optional Connector type to use. Like 'endpoint', this may be either a single string nominating a known Connector type (eg. "Bezier", "Straight"), or an array containing [name, params], eg. [ "Bezier", 160 ]. - * connectorOverlays - optional array of Overlay definitions that will be applied to any Connection from this Endpoint. - * isTarget - boolean. indicates the endpoint can act as a target of new connections. Optional; defaults to false. - * dropOptions - if isTarget is set to true, you can supply arguments for the underlying library's drop method with this parameter. Optional; defaults to null. - * reattach - optional boolean that determines whether or not the Connections reattach after they have been dragged off an Endpoint and left floating. defaults to false: Connections dropped in this way will just be deleted. - */ - var Endpoint = function(params) { - EventGenerator.apply(this); - params = params || {}; - var self = this; - var visible = true; - /* - Function: isVisible - Returns whether or not the Endpoint is currently visible. - */ - this.isVisible = function() { return visible; }; - /* - Function: setVisible - Sets whether or not the Endpoint is currently visible. - - Parameters: - visible - whether or not the Endpoint should be visible. - doNotChangeConnections - Instructs jsPlumb to not pass the visible state on to any attached Connections. defaults to false. - doNotNotifyOtherEndpoint - Instructs jsPlumb to not pass the visible state on to Endpoints at the other end of any attached Connections. defaults to false. - */ - this.setVisible = function(v, doNotChangeConnections, doNotNotifyOtherEndpoint) { - visible = v; - if (self.canvas) self.canvas.style.display = v ? "block" : "none"; - if (!doNotChangeConnections) { - for (var i = 0; i < self.connections.length; i++) { - self.connections[i].setVisible(v); - if (!doNotNotifyOtherEndpoint) { - var oIdx = self === self.connections[i].endpoints[0] ? 1 : 0; - // only change the other endpoint if this is its only connection. - if (self.connections[i].endpoints[oIdx].connections.length == 1) self.connections[i].endpoints[oIdx].setVisible(v, true, true); - } - } - } - }; - var id = new String('_jsplumb_e_' + (new Date()).getTime()); - this.getId = function() { return id; }; - if (params.dynamicAnchors) - self.anchor = new DynamicAnchor(jsPlumb.makeAnchors(params.dynamicAnchors)); - else - self.anchor = params.anchor ? jsPlumb.makeAnchor(params.anchor) : params.anchors ? jsPlumb.makeAnchor(params.anchors) : jsPlumb.makeAnchor("TopCenter"); - var _endpoint = params.endpoint || new jsPlumb.Endpoints.Dot(); - if (_endpoint.constructor == String) - _endpoint = new jsPlumb.Endpoints[_endpoint](); - else if (_endpoint.constructor == Array) - _endpoint = new jsPlumb.Endpoints[_endpoint[0]](_endpoint[1]); - self.endpoint = _endpoint; - this.paintStyle = params.paintStyle || params.style || _currentInstance.Defaults.EndpointStyle || jsPlumb.Defaults.EndpointStyle; - this.hoverPaintStyle = params.hoverPaintStyle || _currentInstance.Defaults.EndpointHoverStyle || jsPlumb.Defaults.EndpointHoverStyle; - this.paintStyleInUse = this.paintStyle; - this.connectorStyle = params.connectorStyle; - this.connectorBackgroundStyle = params.connectorBackgroundStyle; - this.connectorHoverStyle = params.connectorHoverStyle; - this.connectorOverlays = params.connectorOverlays; - this.connector = params.connector; - this.isSource = params.isSource || false; - this.isTarget = params.isTarget || false; - var _element = params.source, _uuid = params.uuid; - var floatingEndpoint = null, inPlaceCopy = null; - if (_uuid) endpointsByUUID[_uuid] = self; - this.container = params.container || _currentInstance.Defaults.Container || jsPlumb.Defaults.Container; - var _elementId = _getAttribute(_element, "id"); - this.elementId = _elementId; - var _maxConnections = params.maxConnections || 1; // maximum number of connections this endpoint can be the source of. - - this.getAttachedElements = function() { - return self.connections; - }; - - /* - * Property: canvas - * The Endpoint's Canvas. - */ - this.canvas = params.canvas || _newCanvas({"class":jsPlumb.endpointClass, container:this.container, uuid:params.uuid}); - /* - * Property: connections - * List of Connections this Endpoint is attached to. - */ - this.connections = params.connections || []; - /* - * Property: scope - * Scope descriptor for this Endpoint. - */ - this.scope = params.scope || DEFAULT_SCOPE; - this.timestamp = null; - var _reattach = params.reattach || false; - var dragAllowedWhenFull = params.dragAllowedWhenFull || true; - - this.computeAnchor = function(params) { - return self.anchor.compute(params); - }; - /* - * Function: addConnection - * Adds a Connection to this Endpoint. - * - * Parameters: - * connection - the Connection to add. - */ - this.addConnection = function(connection) { - self.connections.push(connection); - }; - /* - * Function: detach - * Detaches the given Connection from this Endpoint. - * - * Parameters: - * connection - the Connection to detach. - * ignoreTarget - optional; tells the Endpoint to not notify the Connection target that the Connection was detached. The default behaviour is to notify the target. - */ - this.detach = function(connection, ignoreTarget) { - var idx = _findIndex(self.connections, connection); - if (idx >= 0) { - self.connections.splice(idx, 1); - // this avoids a circular loop - if (!ignoreTarget) { - var t = connection.endpoints[0] == self ? connection.endpoints[1] : connection.endpoints[0]; - t.detach(connection, true); - } - _removeElement(connection.canvas, connection.container); - _removeFromList(connectionsByScope, connection.scope, connection); - if(!ignoreTarget) fireDetachEvent(connection); - } - }; - - /* - * Function: detachAll - * Detaches all Connections this Endpoint has. - */ - this.detachAll = function() { - while (self.connections.length > 0) { - self.detach(self.connections[0]); - } - }; - /* - * Function: detachFrom - * Removes any connections from this Endpoint that are connected to the given target endpoint. - * - * Parameters: - * targetEndpoint - Endpoint from which to detach all Connections from this Endpoint. - */ - this.detachFrom = function(targetEndpoint) { - var c = []; - for ( var i = 0; i < self.connections.length; i++) { - if (self.connections[i].endpoints[1] == targetEndpoint - || self.connections[i].endpoints[0] == targetEndpoint) { - c.push(self.connections[i]); - } - } - for ( var i = 0; i < c.length; i++) { - c[i].setHover(false); - self.detach(c[i]); - } - }; - /* - * Function: detachFromConnection - * Detach this Endpoint from the Connection, but leave the Connection alive. Used when dragging. - * - * Parameters: - * connection - Connection to detach from. - */ - this.detachFromConnection = function(connection) { - var idx = _findIndex(self.connections, connection); - if (idx >= 0) { - self.connections.splice(idx, 1); - } - }; - - /* - * Function: getElement - * Returns the DOM element this Endpoint is attached to. - */ - this.getElement = function() { - return _element; - }; - - /* - * Function: getUuid - * Returns the UUID for this Endpoint, if there is one. Otherwise returns null. - */ - this.getUuid = function() { - return _uuid; - }; - /** - * private but must be exposed. - */ - this.makeInPlaceCopy = function() { - var e = _newEndpoint( { anchor : self.anchor, source : _element, paintStyle : this.paintStyle, endpoint : _endpoint }); - return e; - }; - /* - * Function: isConnectedTo - * Returns whether or not this endpoint is connected to the given Endpoint. - * - * Parameters: - * endpoint - Endpoint to test. - */ - this.isConnectedTo = function(endpoint) { - var found = false; - if (endpoint) { - for ( var i = 0; i < self.connections.length; i++) { - if (self.connections[i].endpoints[1] == endpoint) { - found = true; - break; - } - } - } - return found; - }; - - /** - * private but needs to be exposed. - */ - this.isFloating = function() { - return floatingEndpoint != null; - }; - - /** - * returns a connection from the pool; used when dragging starts. just gets the head of the array if it can. - */ - this.connectorSelector = function() { - return (self.connections.length < _maxConnections) ? null : self.connections[0]; - }; - - /* - * Function: isFull - * Returns whether or not the Endpoint can accept any more Connections. - */ - this.isFull = function() { - return _maxConnections < 1 ? false : (self.connections.length >= _maxConnections); - }; - /* - * Function: setDragAllowedWhenFull - * Sets whether or not connections can be dragged from this Endpoint once it is full. You would use this in a UI in - * which you're going to provide some other way of breaking connections, if you need to break them at all. This property - * is by default true; use it in conjunction with the 'reattach' option on a connect call. - * - * Parameters: - * allowed - whether drag is allowed or not when the Endpoint is full. - */ - this.setDragAllowedWhenFull = function(allowed) { - dragAllowedWhenFull = allowed; - }; - - /* - * Function: setPaintStyle - * Sets the paint style of the Endpoint. This is a JS object of the same form you supply to a jsPlumb.addEndpoint or jsPlumb.connect call. - * - * Parameters: - * style - Style object to set, for example {fillStyle:"blue"}. - */ - this.setPaintStyle = this.setPaintStyle; // i do this so NaturalDocs can pick up the function definition. - - /* - * Function: setHoverPaintStyle - * Sets the hover paint style of the Endpoint. This is a JS object of the same form you supply to a jsPlumb.addEndpoint or jsPlumb.connect call. - * - * Parameters: - * style - Style object to set, for example { fillStyle:"yellow" }. - */ - this.setHoverPaintStyle = this.setHoverPaintStyle; // i do this so NaturalDocs can pick up the function definition. - - /* - * Sets the paint style of the Endpoint. - * @deprecated use setPaintStyle instead. - */ - this.setStyle = self.setPaintStyle; - - /** - * a deep equals check. everything must match, including the anchor, - * styles, everything. TODO: finish Endpoint.equals - */ - this.equals = function(endpoint) { - return this.anchor.equals(endpoint.anchor); - }; - - /* - * - * Paints the Endpoint, recalculating offset and anchor positions if necessary. - * - * Parameters: - * timestamp - optional timestamp advising the Endpoint of the current paint time; if it has painted already once for this timestamp, it will not paint again. - * canvas - optional Canvas to paint on. Only used internally by jsPlumb in certain obscure situations. - * connectorPaintStyle - paint style of the Connector attached to this Endpoint. Used to get a fillStyle if nothing else was supplied. - */ - this.paint = function(params) { - - params = params || {}; - var timestamp = params.timestamp; - if (!timestamp || self.timestamp !== timestamp) { - var ap = params.anchorPoint, canvas = params.canvas, connectorPaintStyle = params.connectorPaintStyle; - if (ap == null) { - // do we always want to force a repaint here? i dont - // think so! - var xy = params.offset || offsets[_elementId]; - var wh = params.dimensions || sizes[_elementId]; - if (xy == null || wh == null) { - _updateOffset( { elId : _elementId, timestamp : timestamp }); - xy = offsets[_elementId]; - wh = sizes[_elementId]; - } - var anchorParams = { xy : [ xy.left, xy.top ], wh : wh, element : self, timestamp : timestamp }; - if (self.anchor.isDynamic) { - if (self.connections.length > 0) { - var c = self.connections[0]; - var oIdx = c.endpoints[0] == self ? 1 : 0; - var oId = oIdx == 0 ? c.sourceId : c.targetId; - var oOffset = offsets[oId], oWH = sizes[oId]; - anchorParams.txy = [ oOffset.left, oOffset.top ]; - anchorParams.twh = oWH; - anchorParams.tElement = c.endpoints[oIdx]; - } - } - ap = self.anchor.compute(anchorParams); - } - _endpoint.paint(ap, self.anchor.getOrientation(), canvas || self.canvas, self.paintStyleInUse, connectorPaintStyle || self.paintStyleInUse); - self.timestamp = timestamp; - } - }; - - this.repaint = this.paint; - - /** - * @deprecated - */ - this.removeConnection = this.detach; // backwards compatibility - - // is this a connection source? we make it draggable and have the - // drag listener maintain a connection with a floating endpoint. - if (params.isSource && jsPlumb.CurrentLibrary.isDragSupported(_element)) { - var n = null, id = null, jpc = null, existingJpc = false, existingJpcParams = null; - var start = function() { - jpc = self.connectorSelector(); - if (self.isFull() && !dragAllowedWhenFull) return false; - _updateOffset( { elId : _elementId }); - inPlaceCopy = self.makeInPlaceCopy(); - inPlaceCopy.paint(); - - n = document.createElement("div"); - var nE = _getElementObject(n); - _appendElement(n, self.container); // - // create and assign an id, and initialize the offset. - var id = _getId(nE); - _updateOffset( { elId : id }); - // store the id of the dragging div and the source element. the drop function will pick these up. - _setAttribute(_getElementObject(self.canvas), "dragId", id); - _setAttribute(_getElementObject(self.canvas), "elId", _elementId); - // create a floating anchor - var floatingAnchor = new FloatingAnchor( { reference : self.anchor, referenceCanvas : self.canvas }); - floatingEndpoint = _newEndpoint({ paintStyle : { fillStyle : 'rgba(0,0,0,0)' }, endpoint : _endpoint, anchor : floatingAnchor, source : nE }); - - if (jpc == null) { - self.anchor.locked = true; - // create a connection. one end is this endpoint, the - // other is a floating endpoint. - jpc = _newConnection({ - sourceEndpoint : self, - targetEndpoint : floatingEndpoint, - source : _getElementObject(_element), - target : _getElementObject(n), - anchors : [ self.anchor, floatingAnchor ], - paintStyle : params.connectorStyle, // this can be null. Connection will use the default. - hoverPaintStyle:params.connectorHoverStyle, - backgroundPaintStyle:params.connectorBackgroundStyle, - connector : params.connector, // this can also be null. Connection will use the default. - overlays : params.connectorOverlays - }); - // TODO determine whether or not we wish to do de-select hover when dragging a connection. - // it may be the case that we actually want to set it, since it provides a good - // visual cue. - jpc.setHover(false); - } else { - existingJpc = true; - // TODO determine whether or not we wish to do de-select hover when dragging a connection. - // it may be the case that we actually want to set it, since it provides a good - // visual cue. - jpc.setHover(false); - // if existing connection, allow to be dropped back on the source endpoint (issue 51). - _initDropTarget(_getElementObject(inPlaceCopy.canvas)); - var anchorIdx = jpc.sourceId == _elementId ? 0 : 1; // are we the source or the target? - jpc.floatingAnchorIndex = anchorIdx; // save our anchor index as the connection's floating index. - self.detachFromConnection(jpc); // detach from the connection while dragging is occurring. - - // store the original scope (issue 57) - var c = _getElementObject(self.canvas); - var dragScope = jsPlumb.CurrentLibrary.getDragScope(c); - _setAttribute(c, "originalScope", dragScope); - // get a new, temporary scope, to use (issue 57) - var newScope = "scope_" + (new Date()).getTime(); - - // now we replace ourselves with the temporary div we created above: - if (anchorIdx == 0) { - existingJpcParams = [ jpc.source, jpc.sourceId, i, dragScope ]; - jpc.source = _getElementObject(n); - jpc.sourceId = id; - } else { - existingJpcParams = [ jpc.target, jpc.targetId, i, dragScope ]; - jpc.target = _getElementObject(n); - jpc.targetId = id; - } - // set the new, temporary scope (issue 57) - jsPlumb.CurrentLibrary.setDragScope(i, newScope); - // lock the other endpoint; if it is dynamic it will not move while the drag is occurring. - jpc.endpoints[anchorIdx == 0 ? 1 : 0].anchor.locked = true; - // store the original endpoint and assign the new floating endpoint for the drag. - jpc.suspendedEndpoint = jpc.endpoints[anchorIdx]; - jpc.endpoints[anchorIdx] = floatingEndpoint; - } - - // register it. - floatingConnections[id] = jpc; - - // TODO unregister on stop? or will floating endpoint's - // destruction be assured. - floatingEndpoint.addConnection(jpc); - - // only register for the target endpoint; we will not be - // dragging the source at any time - // before this connection is either discarded or made into a - // permanent connection. - _addToList(endpointsByElement, id, floatingEndpoint); - - // tell jsplumb about it - _currentInstance.currentlyDragging = true; - }; - - var dragOptions = params.dragOptions || {}; - var defaultOpts = jsPlumb.extend( {}, jsPlumb.CurrentLibrary.defaultDragOptions); - dragOptions = jsPlumb.extend(defaultOpts, dragOptions); - dragOptions.scope = dragOptions.scope || self.scope; - var startEvent = jsPlumb.CurrentLibrary.dragEvents['start']; - var stopEvent = jsPlumb.CurrentLibrary.dragEvents['stop']; - var dragEvent = jsPlumb.CurrentLibrary.dragEvents['drag']; - dragOptions[startEvent] = _wrap(dragOptions[startEvent], start); - dragOptions[dragEvent] = _wrap(dragOptions[dragEvent], - function() { - var _ui = jsPlumb.CurrentLibrary.getUIPosition(arguments); - jsPlumb.CurrentLibrary.setOffset(n, _ui); - _draw(_getElementObject(n), _ui); - }); - dragOptions[stopEvent] = _wrap(dragOptions[stopEvent], - function() { - _removeFromList(endpointsByElement, id, floatingEndpoint); - _removeElements( [ n, floatingEndpoint.canvas ], _element); // TODO: clean up the connection canvas (if the user aborted) - _removeElement(inPlaceCopy.canvas, _element); - var idx = jpc.floatingAnchorIndex == null ? 1 : jpc.floatingAnchorIndex; - jpc.endpoints[idx == 0 ? 1 : 0].anchor.locked = false; - if (jpc.endpoints[idx] == floatingEndpoint) { - // if the connection was an existing one: - if (existingJpc && jpc.suspendedEndpoint) { - // fix for issue35, thanks Sylvain Gizard: when firing the detach event make sure the - // floating endpoint has been replaced. - if (idx == 0) { - jpc.source = existingJpcParams[0]; - jpc.sourceId = existingJpcParams[1]; - } else { - jpc.target = existingJpcParams[0]; - jpc.targetId = existingJpcParams[1]; - } - - // restore the original scope (issue 57) - jsPlumb.CurrentLibrary.setDragScope(existingJpcParams[2], existingJpcParams[3]); - - jpc.endpoints[idx] = jpc.suspendedEndpoint; - if (_reattach) { - jpc.floatingAnchorIndex = null; - jpc.suspendedEndpoint.addConnection(jpc); - jsPlumb.repaint(existingJpcParams[1]); - } else { - jpc.endpoints[idx == 0 ? 1 : 0].detach(jpc); // the main endpoint will inform the floating endpoint - // to disconnect, and also post the detached event. - } - } else { - // TODO this looks suspiciously kind of like an Endpoint.detach call too. - // i wonder if this one should post an event though. maybe this is good like this. - _removeElement(jpc.canvas, self.container); - self.detachFromConnection(jpc); - } - } - self.anchor.locked = false; - self.paint(); - jpc.repaint(); - jpc = null; - delete inPlaceCopy; - delete endpointsByElement[floatingEndpoint.elementId]; - delete floatingEndpoint; - - _currentInstance.currentlyDragging = false; - }); - - var i = _getElementObject(self.canvas); - jsPlumb.CurrentLibrary.initDraggable(i, dragOptions); - } - - // pulled this out into a function so we can reuse it for the inPlaceCopy canvas; you can now drop detached connections - // back onto the endpoint you detached it from. - var _initDropTarget = function(canvas) { - if (params.isTarget && jsPlumb.CurrentLibrary.isDropSupported(_element)) { - var dropOptions = params.dropOptions || _currentInstance.Defaults.DropOptions || jsPlumb.Defaults.DropOptions; - dropOptions = jsPlumb.extend( {}, dropOptions); - dropOptions.scope = dropOptions.scope || self.scope; - var originalAnchor = null; - var dropEvent = jsPlumb.CurrentLibrary.dragEvents['drop']; - var overEvent = jsPlumb.CurrentLibrary.dragEvents['over']; - var outEvent = jsPlumb.CurrentLibrary.dragEvents['out']; - var drop = function() { - var draggable = _getElementObject(jsPlumb.CurrentLibrary.getDragObject(arguments)); - var id = _getAttribute(draggable, "dragId"); - var elId = _getAttribute(draggable, "elId"); - - // restore the original scope if necessary (issue 57) - var scope = _getAttribute(draggable, "originalScope"); - if (scope) jsPlumb.CurrentLibrary.setDragScope(draggable, scope); - - var jpc = floatingConnections[id]; - var idx = jpc.floatingAnchorIndex == null ? 1 : jpc.floatingAnchorIndex, oidx = idx == 0 ? 1 : 0; - if (!self.isFull() && !(idx == 0 && !self.isSource) && !(idx == 1 && !self.isTarget)) { - if (idx == 0) { - jpc.source = _element; - jpc.sourceId = _elementId; - } else { - jpc.target = _element; - jpc.targetId = _elementId; - } - // todo test that the target is not full. - // remove this jpc from the current endpoint - jpc.endpoints[idx].detachFromConnection(jpc); - if (jpc.suspendedEndpoint) jpc.suspendedEndpoint.detachFromConnection(jpc); - jpc.endpoints[idx] = self; - self.addConnection(jpc); - if (!jpc.suspendedEndpoint) { // if a new connection, add it. TODO: move this to a jsPlumb internal method - addConnection or something. doesnt need to be exposed. - _addToList(connectionsByScope, jpc.scope, jpc); - _initDraggableIfNecessary(_element, params.draggable, {}); - } - else { - var suspendedElement = jpc.suspendedEndpoint.getElement(), suspendedElementId = jpc.suspendedEndpoint.elementId; - // fire a detach event - _currentInstance.fireUpdate("jsPlumbConnectionDetached", { - source : idx == 0 ? suspendedElement : jpc.source, - target : idx == 1 ? suspendedElement : jpc.target, - sourceId : idx == 0 ? suspendedElementId : jpc.sourceId, - targetId : idx == 1 ? suspendedElementId : jpc.targetId, - sourceEndpoint : idx == 0 ? jpc.suspendedEndpoint : jpc.endpoints[0], - targetEndpoint : idx == 1 ? jpc.suspendedEndpoint : jpc.endpoints[1], - connection : jpc - }); - } - - jsPlumb.repaint(elId); - - _currentInstance.fireUpdate("jsPlumbConnection", { - source : jpc.source, target : jpc.target, - sourceId : jpc.sourceId, targetId : jpc.targetId, - sourceEndpoint : jpc.endpoints[0], - targetEndpoint : jpc.endpoints[1], - connection:jpc - }); - } - - _currentInstance.currentlyDragging = false; - delete floatingConnections[id]; - }; - - dropOptions[dropEvent] = _wrap(dropOptions[dropEvent], drop); - dropOptions[overEvent] = _wrap(dropOptions[overEvent], - function() { - var draggable = jsPlumb.CurrentLibrary.getDragObject(arguments); - var id = _getAttribute( _getElementObject(draggable), "dragId"); - var jpc = floatingConnections[id]; - var idx = jpc.floatingAnchorIndex == null ? 1 : jpc.floatingAnchorIndex; - jpc.endpoints[idx].anchor.over(self.anchor); - }); - - dropOptions[outEvent] = _wrap(dropOptions[outEvent], - function() { - var draggable = jsPlumb.CurrentLibrary.getDragObject(arguments); - var id = _getAttribute(_getElementObject(draggable), "dragId"); - var jpc = floatingConnections[id]; - var idx = jpc.floatingAnchorIndex == null ? 1 : jpc.floatingAnchorIndex; - jpc.endpoints[idx].anchor.out(); - }); - - jsPlumb.CurrentLibrary.initDroppable(canvas, dropOptions); - } - }; - - // initialise the endpoint's canvas as a drop target. this will be ignored if the endpoint is not a target or drag is not supported. - _initDropTarget(_getElementObject(self.canvas)); - - return self; - }; - }; - - var jsPlumb = window.jsPlumb = new jsPlumbInstance(); - jsPlumb.getInstance = function(_defaults) { - var j = new jsPlumbInstance(_defaults); - //if (_defaults) jsPlumb.extend(j.Defaults, _defaults); - return j; - }; -})(); -/* -* jsPlumb-defaults-1.2.6-RC1 -* -* This script contains the default Anchors, Endpoints, Connectors and Overlays for jsPlumb. It should be used with jsPlumb 1.1.0 and above; -* prior to version 1.1.0 of jsPlumb the defaults were included inside the main script. -* -* NOTE: for production usage you should use jsPlumb-all-x.x.x-min.js, which contains the main jsPlumb script and this script together, -* in a minified file. -* -* Dual licensed under MIT and GPL2. -*/ - -(function() { - - var ie = !!!document.createElement('canvas').getContext; - - /** - * Places you can anchor a connection to. These are helpers for common locations; they all just return an instance - * of Anchor that has been configured appropriately. - * - * You can write your own one of these; you - * just need to provide a 'compute' method and an 'orientation'. so you'd say something like this: - * - * jsPlumb.Anchors.MY_ANCHOR = { - * compute : function(xy, wh, txy, twh) { return some mathematics on those variables; }, - * getOrientation : function() { return [ox, oy]; } - * }; - * - * compute takes the [x,y] position of the top left corner of the anchored element, - * and the element's [width,height] (all in pixels), as well as the location and dimension of the element it's plumbed to, - * and returns where the anchor should be located. - * - * the 'orientation' array (returned here as [ox,oy]) indicates the general direction a connection from the anchor - * should go in, if possible. it is an [x,y] matrix where a value of 0 means no preference, - * -1 means go in a negative direction for the given axis, and 1 means go in a positive - * direction. so consider a TopCenter anchor: the orientation matrix for it is [0,-1], - * meaning connections naturally want to go upwards on screen. in a Bezier implementation, for example, - * the curve would start out going in that direction, before bending towards the target anchor. - */ - var _curryAnchor = function(x,y,ox,oy) { - return function() { - return jsPlumb.makeAnchor(x,y,ox,oy); - }; - }; - jsPlumb.Anchors["TopCenter"] = _curryAnchor(0.5, 0, 0,-1); - jsPlumb.Anchors["BottomCenter"] = _curryAnchor(0.5, 1, 0, 1); - jsPlumb.Anchors["LeftMiddle"] = _curryAnchor(0, 0.5, -1, 0); - jsPlumb.Anchors["RightMiddle"] = _curryAnchor(1, 0.5, 1, 0); - jsPlumb.Anchors["Center"] = _curryAnchor(0.5, 0.5, 0, 0); - jsPlumb.Anchors["TopRight"] = _curryAnchor(1, 0, 0,-1); - jsPlumb.Anchors["BottomRight"] = _curryAnchor(1, 1, 0, 1); - jsPlumb.Anchors["TopLeft"] = _curryAnchor(0, 0, 0, -1); - jsPlumb.Anchors["BottomLeft"] = _curryAnchor(0, 1, 0, 1); - - - jsPlumb.Defaults.DynamicAnchors = function() { - return jsPlumb.makeAnchors(["TopCenter", "RightMiddle", "BottomCenter", "LeftMiddle"]); - }; - jsPlumb.Anchors["AutoDefault"] = function() { return jsPlumb.makeDynamicAnchor(jsPlumb.Defaults.DynamicAnchors()); }; - - /** - * The Straight connector draws a simple straight line between the two anchor points. - */ - jsPlumb.Connectors.Straight = function() { - - var self = this; - var currentPoints = null; - var _m, _m2, _b, _dx, _dy, _theta, _theta2, _sx, _sy, _tx, _ty; - - /** - * Computes the new size and position of the canvas. - * @param sourceAnchor Absolute position on screen of the source object's anchor. - * @param targetAnchor Absolute position on screen of the target object's anchor. - * @param positionMatrix Indicates the relative positions of the left,top of the - * two plumbed objects. so [0,0] indicates that the source is to the left of, and - * above, the target. [1,0] means the source is to the right and above. [0,1] means - * the source is to the left and below. [1,1] means the source is to the right - * and below. this is used to figure out which direction to draw the connector in. - * @returns an array of positioning information. the first two values are - * the [left, top] absolute position the canvas should be placed on screen. the - * next two values are the [width,height] the canvas should be. after that each - * Connector can put whatever it likes into the array:it will be passed back in - * to the paint call. This particular function stores the origin and destination of - * the line it is going to draw. a more involved implementation, like a Bezier curve, - * would store the control point info in this array too. - */ - this.compute = function(sourcePos, targetPos, sourceAnchor, targetAnchor, lineWidth, minWidth) { - var w = Math.abs(sourcePos[0] - targetPos[0]); - var h = Math.abs(sourcePos[1] - targetPos[1]); - var widthAdjusted = false, heightAdjusted = false; - // these are padding to ensure the whole connector line appears - var xo = 0.45 * w, yo = 0.45 * h; - // these are padding to ensure the whole connector line appears - w *= 1.9; h *=1.9; - - var x = Math.min(sourcePos[0], targetPos[0]) - xo; - var y = Math.min(sourcePos[1], targetPos[1]) - yo; - - // minimum size is 2 * line Width if minWidth was not given. - var calculatedMinWidth = Math.max(2 * lineWidth, minWidth); - - if (w < calculatedMinWidth) { - w = calculatedMinWidth; - x = sourcePos[0] + ((targetPos[0] - sourcePos[0]) / 2) - (calculatedMinWidth / 2); - xo = (w - Math.abs(sourcePos[0]-targetPos[0])) / 2; - } - if (h < calculatedMinWidth) { - - h = calculatedMinWidth; - y = sourcePos[1] + ((targetPos[1] - sourcePos[1]) / 2) - (calculatedMinWidth / 2); - yo = (h - Math.abs(sourcePos[1]-targetPos[1])) / 2; - } - - _sx = sourcePos[0] < targetPos[0] ? xo : w-xo; - _sy = sourcePos[1] < targetPos[1] ? yo:h-yo; - _tx = sourcePos[0] < targetPos[0] ? w-xo : xo; - _ty = sourcePos[1] < targetPos[1] ? h-yo : yo; - currentPoints = [ x, y, w, h, _sx, _sy, _tx, _ty ]; - - _dx = _tx - _sx, _dy = (_ty - _sy); - _m = _dy / _dx, _m2 = -1 / _m; - - _b = -1 * ((_m * _sx) - _sy); - _theta = Math.atan(_m); _theta2 = Math.atan(_m2); - - return currentPoints; - }; - - this.paint = function(dimensions, ctx) - { - ctx.beginPath(); - ctx.moveTo(dimensions[4], dimensions[5]); - ctx.lineTo(dimensions[6], dimensions[7]); - ctx.stroke(); - }; - - /** - * returns the point on the connector's path that is 'location' along the length of the path, where 'location' is a decimal from - * 0 to 1 inclusive. for the straight line connector this is simple maths. for Bezier, not so much. - */ - this.pointOnPath = function(location) { - var xp = _sx + (location * _dx); - var yp = (_m == Infinity || _m == -Infinity) ? _sy + (location * (_ty - _sy)) : (_m * xp) + _b; - return {x:xp, y:yp}; - }; - - /** - * returns the gradient of the connector at the given point - which for us is constant. - */ - this.gradientAtPoint = function(location) { return _m; }; - - /** - * returns the point on the connector's path that is 'distance' along the length of the path from 'location', where - * 'location' is a decimal from 0 to 1 inclusive, and 'distance' is a number of pixels. - */ - this.pointAlongPathFrom = function(location, distance) { - var p = self.pointOnPath(location); - var orientation = distance > 0 ? 1 : -1; - var y = Math.abs(distance * Math.sin(_theta)); - if (_sy > _ty) y = y * -1; - var x = Math.abs(distance * Math.cos(_theta)); - if (_sx > _tx) x = x * -1; - return {x:p.x + (orientation * x), y:p.y + (orientation * y)}; - }; - - /** - * calculates a line that is perpendicular to, and centered on, the path at 'distance' pixels from the given location. - * the line is 'length' pixels long. - */ - this.perpendicularToPathAt = function(location, length, distance) { - var p = self.pointAlongPathFrom(location, distance); - var m = self.gradientAtPoint(p.location); - var _theta2 = Math.atan(-1 / m); - var y = length / 2 * Math.sin(_theta2); - var x = length / 2 * Math.cos(_theta2); - return [{x:p.x + x, y:p.y + y}, {x:p.x - x, y:p.y - y}]; - }; - - this.createGradient = function(dim, ctx) { - return ctx.createLinearGradient(dim[4], dim[5], dim[6], dim[7]); - }; - }; - - /** - * This Connector draws a Bezier curve with two control points. - * - * @param curviness How 'curvy' you want the curve to be! This is a directive for the - * placement of control points, not endpoints of the curve, so your curve does not - * actually touch the given point, but it has the tendency to lean towards it. the larger - * this value, the greater the curve is pulled from a straight line. - * - * note that the method signature changed in 1.2.6 to take a params object, so the method - * argument was renamed. you can still provide just an integer to this constructor, though the - * preferred method is to use {curviness:XXX}. - * - * a future implementation of this could take the control points as arguments, rather - * than fixing the curve to one basic shape. - */ - jsPlumb.Connectors.Bezier = function(params) { - var self = this; - this.majorAnchor = 150; - // backwards compatibility (ideally we'd just use params.curviness || 150). - if (params) { - if (params.constructor == Number) this.majorAnchor = params; - else if (params.curviness) this.majorAnchor = params.curviness; - } - this.minorAnchor = 10; - var currentPoints = null; - - this._findControlPoint = function(point, sourceAnchorPosition, targetAnchorPosition, sourceAnchor, targetAnchor) { - // determine if the two anchors are perpendicular to each other in their orientation. we swap the control - // points around if so (code could be tightened up) - var soo = sourceAnchor.getOrientation(), too = targetAnchor.getOrientation(); - var perpendicular = soo[0] != too[0] || soo[1] == too[1]; - var p = []; - var ma = self.majorAnchor, mi = self.minorAnchor; - if (!perpendicular) { - if (soo[0] == 0) // X - p.push(sourceAnchorPosition[0] < targetAnchorPosition[0] ? point[0] + mi : point[0] - mi); - else p.push(point[0] - (ma * soo[0])); - - if (soo[1] == 0) // Y - p.push(sourceAnchorPosition[1] < targetAnchorPosition[1] ? point[1] + mi : point[1] - mi); - else p.push(point[1] + (ma * too[1])); - } - else { - if (too[0] == 0) // X - p.push(targetAnchorPosition[0] < sourceAnchorPosition[0] ? point[0] + mi : point[0] - mi); - else p.push(point[0] + (ma * too[0])); - - if (too[1] == 0) // Y - p.push(targetAnchorPosition[1] < sourceAnchorPosition[1] ? point[1] + mi : point[1] - mi); - else p.push(point[1] + (ma * soo[1])); - } - - return p; - }; - - var _CP, _CP2, _sx, _tx, _ty, _sx, _sy, _canvasX, _canvasY, _w, _h; - this.compute = function(sourcePos, targetPos, sourceAnchor, targetAnchor, lineWidth, minWidth) - { - lineWidth = lineWidth || 0; - _w = Math.abs(sourcePos[0] - targetPos[0]) + lineWidth; - _h = Math.abs(sourcePos[1] - targetPos[1]) + lineWidth; - _canvasX = Math.min(sourcePos[0], targetPos[0])-(lineWidth/2); - _canvasY = Math.min(sourcePos[1], targetPos[1])-(lineWidth/2); - _sx = sourcePos[0] < targetPos[0] ? _w - (lineWidth/2): (lineWidth/2); - _sy = sourcePos[1] < targetPos[1] ? _h - (lineWidth/2) : (lineWidth/2); - _tx = sourcePos[0] < targetPos[0] ? (lineWidth/2) : _w - (lineWidth/2); - _ty = sourcePos[1] < targetPos[1] ? (lineWidth/2) : _h - (lineWidth/2); - _CP = self._findControlPoint([_sx,_sy], sourcePos, targetPos, sourceAnchor, targetAnchor); - _CP2 = self._findControlPoint([_tx,_ty], targetPos, sourcePos, targetAnchor, sourceAnchor); - var minx1 = Math.min(_sx,_tx); var minx2 = Math.min(_CP[0], _CP2[0]); var minx = Math.min(minx1,minx2); - var maxx1 = Math.max(_sx,_tx); var maxx2 = Math.max(_CP[0], _CP2[0]); var maxx = Math.max(maxx1,maxx2); - - if (maxx > _w) _w = maxx; - if (minx < 0) { - _canvasX += minx; var ox = Math.abs(minx); - _w += ox; _CP[0] += ox; _sx += ox; _tx +=ox; _CP2[0] += ox; - } - - var miny1 = Math.min(_sy,_ty); var miny2 = Math.min(_CP[1], _CP2[1]); var miny = Math.min(miny1,miny2); - var maxy1 = Math.max(_sy,_ty); var maxy2 = Math.max(_CP[1], _CP2[1]); var maxy = Math.max(maxy1,maxy2); - if (maxy > _h) _h = maxy; - if (miny < 0) { - _canvasY += miny; var oy = Math.abs(miny); - _h += oy; _CP[1] += oy; _sy += oy; _ty +=oy; _CP2[1] += oy; - } - - if (minWidth && _w < minWidth) { - var posAdjust = (minWidth - _w) / 2; - _w = minWidth; - _canvasX -= posAdjust; _sx = _sx + posAdjust ; _tx = _tx + posAdjust; _CP[0] = _CP[0] + posAdjust; _CP2[0] = _CP2[0] + posAdjust; - } - - if (minWidth && _h < minWidth) { - var posAdjust = (minWidth - _h) / 2; - _h = minWidth; - _canvasY -= posAdjust; _sy = _sy + posAdjust ; _ty = _ty + posAdjust; _CP[1] = _CP[1] + posAdjust; _CP2[1] = _CP2[1] + posAdjust; - } - - currentPoints = [_canvasX, _canvasY, _w, _h, _sx, _sy, _tx, _ty, _CP[0], _CP[1], _CP2[0], _CP2[1] ]; - return currentPoints; - }; - - this.paint = function(d, ctx) { - ctx.beginPath(); - ctx.moveTo(d[4],d[5]); - ctx.bezierCurveTo(d[8],d[9],d[10],d[11],d[6],d[7]); - ctx.stroke(); - }; - - var _makeCurve = function() { - return [ - { x:_sx, y:_sy }, - { x:_CP[0], y:_CP[1] }, - { x:_CP2[0], y:_CP2[1] }, - { x:_tx, y:_ty } - ]; - }; - - /** - * returns the point on the connector's path that is 'location' along the length of the path, where 'location' is a decimal from - * 0 to 1 inclusive. for the straight line connector this is simple maths. for Bezier, not so much. - */ - this.pointOnPath = function(location) { - return jsBezier.pointOnCurve(_makeCurve(), location); - }; - - /** - * returns the gradient of the connector at the given point. - */ - this.gradientAtPoint = function(location) { - return jsBezier.gradientAtPoint(_makeCurve(), location); - }; - - /** - * for Bezier curves this method is a little tricky, cos calculating path distance algebraically is notoriously difficult. - * this method is iterative, jumping forward .05% of the path at a time and summing the distance between this point and the previous - * one, until the sum reaches 'distance'. the method may turn out to be computationally expensive; we'll see. - * another drawback of this method is that if the connector gets quite long, .05% of the length of it is not necessarily smaller - * than the desired distance, in which case the loop returns immediately and the arrow is mis-shapen. so a better strategy might be to - * calculate the step as a function of distance/distance between endpoints. - */ - this.pointAlongPathFrom = function(location, distance) { - return jsBezier.pointAlongCurveFrom(_makeCurve(), location, distance); - }; - - /** - * calculates a line that is perpendicular to, and centered on, the path at 'distance' pixels from the given location. - * the line is 'length' pixels long. - */ - this.perpendicularToPathAt = function(location, length, distance) { - return jsBezier.perpendicularToCurveAt(_makeCurve(), location, length, distance); - }; - - this.createGradient = function(dim, ctx, swap) { - return (swap) ? ctx.createLinearGradient(dim[4], dim[5], dim[6], dim[7]) : ctx.createLinearGradient(dim[6], dim[7], dim[4], dim[5]); - }; - }; - - - /** - * Types of endpoint UIs. we supply four - a circle of default radius 10px, a rectangle of - * default size 20x20, an image (with no default), and a Triangle, of default size 15. - * you can supply others of these if you want to - see the documentation for a howto. - */ - - /** - * a round endpoint, with default radius 10 pixels. - */ - jsPlumb.Endpoints.Dot = function(params) { - - params = params || { radius:10 }; - var self = this; - this.radius = params.radius; - var defaultOffset = 0.5 * this.radius; - var defaultInnerRadius = this.radius / 3; - - var parseValue = function(value) { - try { - return parseInt(value); - } - catch(e) { - if (value.substring(value.length - 1) == '%') - return parseInt(value.substring(0, value - 1)); - } - }; - - var calculateAdjustments = function(gradient) { - var offsetAdjustment = defaultOffset; - var innerRadius = defaultInnerRadius; - if (gradient.offset) offsetAdjustment = parseValue(gradient.offset); - if(gradient.innerRadius) innerRadius = parseValue(gradient.innerRadius); - return [offsetAdjustment, innerRadius]; - }; - - this.paint = function(anchorPoint, orientation, canvas, endpointStyle, connectorPaintStyle) { - var radius = endpointStyle.radius || self.radius; - var x = anchorPoint[0] - radius; - var y = anchorPoint[1] - radius; - jsPlumb.sizeCanvas(canvas, x, y, radius * 2, radius * 2); - var ctx = canvas.getContext('2d'); - var style = jsPlumb.extend({}, endpointStyle); - if (style.fillStyle == null) style.fillStyle = connectorPaintStyle.strokeStyle; - jsPlumb.extend(ctx, style); - - if (endpointStyle.gradient && !ie) { - var adjustments = calculateAdjustments(endpointStyle.gradient); - var yAdjust = orientation[1] == 1 ? adjustments[0] * -1 : adjustments[0]; - var xAdjust = orientation[0] == 1 ? adjustments[0] * -1: adjustments[0]; - var g = ctx.createRadialGradient(radius, radius, radius, radius + xAdjust, radius + yAdjust, adjustments[1]); - for (var i = 0; i < endpointStyle.gradient.stops.length; i++) - g.addColorStop(endpointStyle.gradient.stops[i][0], endpointStyle.gradient.stops[i][1]); - ctx.fillStyle = g; - } - - ctx.beginPath(); - ctx.arc(radius, radius, radius, 0, Math.PI*2, true); - ctx.closePath(); - ctx.fill(); - }; - }; - - /** - * A Rectangular endpoint, with default size 20x20. - */ - jsPlumb.Endpoints.Rectangle = function(params) { - - params = params || { width:20, height:20 }; - var self = this; - this.width = params.width; - this.height = params.height; - - this.paint = function(anchorPoint, orientation, canvas, endpointStyle, connectorPaintStyle) { - var width = endpointStyle.width || self.width; - var height = endpointStyle.height || self.height; - var x = anchorPoint[0] - (width/2); - var y = anchorPoint[1] - (height/2); - jsPlumb.sizeCanvas(canvas, x, y, width, height); - var ctx = canvas.getContext('2d'); - var style = jsPlumb.extend({}, endpointStyle); - if (style.fillStyle == null) style.fillStyle = connectorPaintStyle.strokeStyle; - jsPlumb.extend(ctx, style); - - var ie = (/MSIE/.test(navigator.userAgent) && !window.opera); - if (endpointStyle.gradient && !ie) { - // first figure out which direction to run the gradient in (it depends on the orientation of the anchors) - var y1 = orientation[1] == 1 ? height : orientation[1] == 0 ? height / 2 : 0; - var y2 = orientation[1] == -1 ? height : orientation[1] == 0 ? height / 2 : 0; - var x1 = orientation[0] == 1 ? width : orientation[0] == 0 ? width / 2 : 0; - var x2 = orientation[0] == -1 ? width : orientation[0] == 0 ? height / 2 : 0; - var g = ctx.createLinearGradient(x1,y1,x2,y2); - for (var i = 0; i < endpointStyle.gradient.stops.length; i++) - g.addColorStop(endpointStyle.gradient.stops[i][0], endpointStyle.gradient.stops[i][1]); - ctx.fillStyle = g; - } - - ctx.beginPath(); - ctx.rect(0, 0, width, height); - ctx.closePath(); - ctx.fill(); - }; - }; - - jsPlumb.Endpoints.Triangle = function(params) { - - params = params || { width:55, height:55 }; - var self = this; - this.width = params.width; - this.height = params.height; - - this.paint = function(anchorPoint, orientation, canvas, endpointStyle, connectorPaintStyle) - { - var width = endpointStyle.width || self.width; - var height = endpointStyle.height || self.height; - var x = anchorPoint[0] - width/2; - var y = anchorPoint[1] - height/2; - - jsPlumb.sizeCanvas(canvas, x, y, width, height); - - var ctx = canvas.getContext('2d'); - var offsetX = 0, offsetY = 0, angle = 0; - - if( orientation[0] == 1 ) - { - offsetX = width; - offsetY = height; - angle = 180; - } - if( orientation[1] == -1 ) - { - offsetX = width; - angle = 90; - } - if( orientation[1] == 1 ) - { - offsetY = height; - angle = -90; - } - - ctx.fillStyle = endpointStyle.fillStyle; - - ctx.translate(offsetX, offsetY); - ctx.rotate(angle * Math.PI/180); - - ctx.beginPath(); - ctx.moveTo(0, 0); - ctx.lineTo(width/2, height/2); - ctx.lineTo(0, height); - ctx.closePath(); - ctx.fill(); - }; - }; - - /** - * Image endpoint - draws an image as the endpoint. You must provide a 'url' or, since 1.2.4, a 'src' property in the params object.. - */ - jsPlumb.Endpoints.Image = function(params) { - var self = this; - this.img = new Image(); - var ready = false; - this.img.onload = function() { - self.ready = true; - }; - this.img.src = params.src || params.url; - - var actuallyPaint = function(anchorPoint, orientation, canvas, endpointStyle, connectorPaintStyle) { - var width = self.img.width || endpointStyle.width; - var height = self.img.height || endpointStyle.height; - var x = anchorPoint[0] - (width/2); - var y = anchorPoint[1] - (height/2); - jsPlumb.sizeCanvas(canvas, x, y, width, height); - var ctx = canvas.getContext('2d'); - ctx.drawImage(self.img,0,0); - }; - - this.paint = function(anchorPoint, orientation, canvas, endpointStyle, connectorPaintStyle) { - if (self.ready) { - actuallyPaint(anchorPoint, orientation, canvas, endpointStyle, connectorPaintStyle); - } - else - window.setTimeout(function() { - self.paint(anchorPoint, orientation, canvas, endpointStyle, connectorPaintStyle); - }, 200); - }; - }; - - /** - * An arrow overlay. you can provide: - * - * length - distance in pixels from head to tail baseline. default 20. - * width - width in pixels of the tail baseline. default 20. - * fillStyle - style to use when filling the arrow. defaults to "black". - * strokeStyle - style to use when stroking the arrow. defaults to null, which means the arrow is not stroked. - * lineWidth - line width to use when stroking the arrow. defaults to 1, but only used if strokeStyle is not null. - * foldback - distance (as a decimal from 0 to 1 inclusive) along the length of the arrow marking the point the tail points should fold back to. defaults to 0.623. - * location - distance (as a decimal from 0 to 1 inclusive) marking where the arrow should sit on the connector. defaults to 0.5. - * direction - indicates the direction the arrow points in. valid values are -1 and 1; 1 is default. - */ - jsPlumb.Overlays.Arrow = function(params) { - params = params || {}; - var self = this; - this.length = params.length || 20; - this.width = params.width || 20; - this.connection = params.connection; - var direction = (params.direction || 1) < 0 ? -1 : 1; - /*var fillStyle = params.fillStyle; - var strokeStyle = params.strokeStyle; - var lineWidth = params.lineWidth || 1;*/ - var paintStyle = params.paintStyle || { lineWidth:1 }; - this.loc = params.location == null ? 0.5 : params.location; - // how far along the arrow the lines folding back in come to. default is 62.3%. - var foldback = params.foldback || 0.623; - var _getFoldBackPoint = function(connector, loc) { - if (foldback == 0.5) return connector.pointOnPath(loc); - else { - var adj = 0.5 - foldback; // we calculate relative to the center - return connector.pointAlongPathFrom(loc, direction * self.length * adj); - } - }; - - this.computeMaxSize = function() { return self.width * 1.5; }; - - this.draw = function(connector, ctx, currentConnectionPaintStyle) { - - // this is the arrow head position - var hxy = connector.pointAlongPathFrom(self.loc, direction * (self.length / 2)); - // this is the center of the tail - var txy = connector.pointAlongPathFrom(self.loc, -1 * direction * (self.length / 2)), tx = txy.x, ty = txy.y; - // this is the tail vector - var tail = connector.perpendicularToPathAt(self.loc, self.width, -1 * direction * (self.length / 2)); - // this is the point the tail goes in to - var cxy = _getFoldBackPoint(connector, self.loc); - - // if loc = 1, then hxy should be flush with the element. - if (self.loc == 1) { - var lxy = connector.pointOnPath(self.loc); - var dx = lxy.x - hxy.x, dy = lxy.y - hxy.y; - cxy.x += dx; cxy.y += dy; - txy.x += dx; txy.y += dy; - tail[0].x += dx; tail[0].y += dy; - tail[1].x += dx; tail[1].y += dy; - hxy.x += dx; hxy.y += dy; - } - // if loc = 0, then tail midpoint should be flush with the element. - if (self.loc == 0) { - var lxy = connector.pointOnPath(self.loc); - var tailMid = foldback > 1 ? cxy : { - x:tail[0].x + ((tail[1].x - tail[0].x) / 2), - y:tail[0].y + ((tail[1].y - tail[0].y) / 2) - }; - var dx = lxy.x - tailMid.x, dy = lxy.y - tailMid.y; - cxy.x += dx; cxy.y += dy; - txy.x += dx; txy.y += dy; - tail[0].x += dx; tail[0].y += dy; - tail[1].x += dx; tail[1].y += dy; - hxy.x += dx; hxy.y += dy; - } - - var minx = Math.min(hxy.x, tail[0].x, tail[1].x); - var maxx = Math.max(hxy.x, tail[0].x, tail[1].x); - var miny = Math.min(hxy.y, tail[0].y, tail[1].y); - var maxy = Math.max(hxy.y, tail[0].y, tail[1].y); - - ctx.lineWidth = paintStyle.lineWidth; - ctx.beginPath(); - ctx.moveTo(hxy.x, hxy.y); - ctx.lineTo(tail[0].x, tail[0].y); - ctx.lineTo(cxy.x, cxy.y); - ctx.lineTo(tail[1].x, tail[1].y); - ctx.lineTo(hxy.x, hxy.y); - ctx.closePath(); - - if (paintStyle.strokeStyle) { - ctx.strokeStyle = paintStyle.strokeStyle; - ctx.stroke(); - } - ctx.fillStyle = paintStyle.fillStyle || currentConnectionPaintStyle.strokeStyle; - ctx.fill(); - - - - return [ minx, maxx, miny, maxy]; - }; - }; - - /** - * a basic arrow. this is in fact just one instance of the more generic case in which the tail folds back on itself to some - * point along the length of the arrow: in this case, that foldback point is the full length of the arrow. so it just does - * a 'call' to Arrow with foldback set appropriately. See Arrow for params. - */ - jsPlumb.Overlays.PlainArrow = function(params) { - params = params || {}; - var p = jsPlumb.extend(params, {foldback:1}); - jsPlumb.Overlays.Arrow.call(this, p); - }; - - /** - * a diamond. like PlainArrow, this is a concrete case of the more generic case of the tail points converging on some point...it just - * happens that in this case, that point is greater than the length of the the arrow. See Arrow for params. - * - * this could probably do with some help with positioning...due to the way it reuses the Arrow paint code, what Arrow thinks is the - * center is actually 1/4 of the way along for this guy. but we don't have any knowledge of pixels at this point, so we're kind of - * stuck when it comes to helping out the Arrow class. possibly we could pass in a 'transpose' parameter or something. the value - * would be -l/4 in this case - move along one quarter of the total length. - */ - jsPlumb.Overlays.Diamond = function(params) { - params = params || {}; - var l = params.length || 40; - var p = jsPlumb.extend(params, {length:l/2, foldback:2}); - jsPlumb.Overlays.Arrow.call(this, p); - }; - - /** - * A Label overlay. Params you can provide: - * - * labelStyle - js object containing style instructions for the label. defaults to jsPlumb.Defaults.LabelStyle. - * label - the label to paint. may be a string or a function that returns a string. nothing will be painted if your label is null or your - * label function returns null. empty strings _will_ be painted. - * location - distance (as a decimal from 0 to 1 inclusive) marking where the label should sit on the connector. defaults to 0.5. - * borderWidth - width of a border to paint. defaults to zero. - * borderStyle - strokeStyle to use when painting the border, if necessary. - */ - jsPlumb.Overlays.Label = function(params) { - this.labelStyle = params.labelStyle || jsPlumb.Defaults.LabelStyle; - this.label = params.label; - this.connection = params.connection; - var self = this; - var labelWidth = null, labelHeight = null, labelText = null, labelPadding = null; - this.location = params.location || 0.5; - this.cachedDimensions = null; // setting on 'this' rather than using closures uses a lot less memory. just don't monkey with it! - var _textDimensions = function(ctx) { - if (self.cachedDimensions) return self.cachedDimensions; // return cached copy if we can. if we add a setLabel function remember to clear the cache. - labelText = typeof self.label == 'function' ? self.label(self) : self.label; - var d = {}; - if (labelText) { - var lines = labelText.split(/\n|\r\n/); - ctx.save(); - if (self.labelStyle.font) ctx.font = self.labelStyle.font; - var t = _widestLine(lines, ctx); - // a fake text height measurement: use the width of upper case M - var h = ctx.measureText("M").width; - labelPadding = self.labelStyle.padding || 0.25; - labelWidth = t + (2 * t * labelPadding); - labelHeight = (lines.length * h) + (2 * h * labelPadding); - var textHeight = lines.length * h; - ctx.restore(); - d = {width:labelWidth, height:labelHeight, lines:lines, oneLine:h, padding:labelPadding, textHeight:textHeight}; - } - if (typeof self.label != 'function') self.cachedDimensions = d; // cache it if we can. - return d; - }; - this.computeMaxSize = function(connector, ctx) { - var td = _textDimensions(ctx); - return td.width ? Math.max(td.width, td.height) * 1.5 : 0; - }; - var _widestLine = function(lines, ctx) { - var max = 0; - for (var i = 0; i < lines.length; i++) { - var t = ctx.measureText(lines[i]).width; - if (t > max) max = t; - } - return max; - }; - - this.draw = function(connector, ctx, currentConnectionPaintStyle) { - var td = _textDimensions(ctx); - if (td.width) { - var cxy = connector.pointOnPath(self.location); - if (self.labelStyle.font) ctx.font = self.labelStyle.font; - if (self.labelStyle.fillStyle) - ctx.fillStyle = self.labelStyle.fillStyle; - else - ctx.fillStyle = "rgba(0,0,0,0)"; - - var minx = cxy.x - (td.width / 2); - var miny = cxy.y - (td.height / 2); - - ctx.fillRect(minx, miny , td.width , td.height ); - - if (self.labelStyle.color) ctx.fillStyle = self.labelStyle.color; - ctx.textBaseline = "middle"; - ctx.textAlign = "center"; - for (i = 0; i < td.lines.length; i++) { - ctx.fillText(td.lines[i],cxy.x, cxy.y - (td.textHeight / 2) + (td.oneLine/2) + (i*td.oneLine)); - } - - // border - if (self.labelStyle.borderWidth > 0) { - ctx.strokeStyle = self.labelStyle.borderStyle || "black"; - ctx.strokeRect(minx, miny, td.width , td.height ); - } - - return [minx, minx+td.width, miny, miny+td.height]; - } - else return [0,0,0,0]; - }; - }; - - /** - * an image overlay. params may contain: - * - * location : proportion along the connector to draw the image. optional. - * src : image src. required. - * events : map of event names to functions; each event listener will be bound to the img. - */ - jsPlumb.Overlays.Image = function(params) { - var self = this; - this.location = params.location || 0.5; - this.img = new Image(); - this.connection = params.connection; - var imgDiv = null; - var notReadyInterval = null; - var notReadyConnector, notReadyContext; - var events = params.events || {}; - var _init = function() { - if (self.ready) { - window.clearInterval(notReadyInterval); - imgDiv = document.createElement("img"); - imgDiv.src = self.img.src; - imgDiv.style.position = "absolute"; - imgDiv.style.display="none"; - imgDiv.className = "_jsPlumb_overlay"; - document.body.appendChild(imgDiv);// HMM - // attach events - for (var e in events) { - jsPlumb.CurrentLibrary.bind(imgDiv, e, events[e]); - } - if (notReadyConnector && notReadyContext) { - _draw(notReadyConnector, notReadyContext); - notReadyContext = null; - notReadyConnector = null; - } - } - }; - this.img.onload = function() { - self.ready = true; - // jsPlumb.repaintAll(); - }; - this.img.src = params.src || params.url; - - notReadyInterval = window.setInterval(_init, 250); - - this.computeMaxSize = function(connector, ctx) { - return [ self.img.width, self.img.height ]; - }; - - var _draw = function(connector, ctx, currentConnectionPaintStyle) { - if (imgDiv != null) { - var cxy = connector.pointOnPath(self.location); - var canvas = jsPlumb.CurrentLibrary.getElementObject(ctx.canvas); - var canvasOffset = jsPlumb.CurrentLibrary.getOffset(canvas); - var minx = cxy.x - (self.img.width/2); - var miny = cxy.y - (self.img.height/2); - var o = {left:canvasOffset.left + minx, top:canvasOffset.top + miny}; - jsPlumb.CurrentLibrary.setOffset(imgDiv, o); - imgDiv.style.display = "block"; - return [minx,minx + self.img.width, miny, miny+self.img.height]; - } - }; - - this.draw = function(connector, ctx) { - if (self.ready) - return _draw(connector, ctx); - else { - notReadyConnector = connector; - notReadyContext = ctx; - return [0,0,0,0]; - } - }; - }; -})();;(function() { - - jsPlumb.Connectors.Flowchart = function(params) { - params = params || {}; - var self = this, - minStubLength = params.minStubLength || 30, - segments = [], - segmentGradients = [], - segmentProportions = [], - segmentLengths = [], - segmentProportionalLengths = [], - points = [], - swapX, - swapY, - /** - * recalculates the gradients of each segment, and the points at which the segments begin, proportional to the total length travelled - * by all the segments that constitute the connector. - */ - updateSegmentGradientsAndProportions = function(startX, startY, endX, endY) { - var total = 0; - for (var i = 0; i < segments.length; i++) { - var sx = i == 0 ? startX : segments[i][2], - sy = i == 0 ? startY : segments[i][3], - ex = segments[i][0], - ey = segments[i][1]; - - segmentGradients[i] = sx == ex ? Infinity : 0; - segmentLengths[i] = Math.abs(sx == ex ? ey - sy : ex - sx); - total += segmentLengths[i]; - } - var curLoc = 0; - for (var i = 0; i < segments.length; i++) { - segmentProportionalLengths[i] = segmentLengths[i] / total; - segmentProportions[i] = [curLoc, (curLoc += (segmentLengths[i] / total)) ]; - } - }, - appendSegmentsToPoints = function() { - points.push(segments.length); - for (var i = 0; i < segments.length; i++) { - points.push(segments[i][0]); - points.push(segments[i][1]); - } - }, - /** - * helper method to add a segment. - */ - addSegment = function(x, y, sx, sy, tx, ty) { - var lx = segments.length == 0 ? sx : segments[segments.length - 1][0]; - var ly = segments.length == 0 ? sy : segments[segments.length - 1][1]; - segments.push([x, y, lx, ly]); - }, - /** - * returns [segment, proportion of travel in segment, segment index] for the segment that contains the point which is 'location' distance along the entire path, where 'location' is - * a decimal between 0 and 1 inclusive. in this connector type paths are made up of a list of segments, each of which contributes some fraction to - * the total length. - */ - findSegmentForLocation = function(location) { - var idx = segmentProportions.length - 1, inSegmentProportion = 0; - for (var i = 0; i < segmentProportions.length; i++) { - if (segmentProportions[i][1] >= location) { - idx = i; - inSegmentProportion = (location - segmentProportions[i][0]) / segmentProportionalLengths[i]; - break; - } - } - return { segment:segments[idx], proportion:inSegmentProportion, index:idx }; - }; - - this.compute = function(sourcePos, targetPos, sourceAnchor, targetAnchor, lineWidth, minWidth) { - - segments = []; - segmentGradients = []; - segmentProportionalLengths = []; - segmentLengths = []; - segmentProportionals = []; - - swapX = targetPos[0] < sourcePos[0]; - swapY = targetPos[1] < sourcePos[1]; - - var lw = lineWidth || 1, - offx = (lw / 2) + (minStubLength * 2), - offy = (lw / 2) + (minStubLength * 2), - so = sourceAnchor.orientation || sourceAnchor.getOrientation(), - to = targetAnchor.orientation || targetAnchor.getOrientation(), - x = swapX ? targetPos[0] : sourcePos[0], - y = swapY ? targetPos[1] : sourcePos[1], - w = Math.abs(targetPos[0] - sourcePos[0]) + 2*offx, - h = Math.abs(targetPos[1] - sourcePos[1]) + 2*offy; - if (w < minWidth) { - offx += (minWidth - w) / 2; - w = minWidth; - } - if (h < minWidth) { - offy += (minWidth - h) / 2; - h = minWidth; - } - sx = swapX ? w-offx : offx, - sy = swapY ? h-offy : offy, - tx = swapX ? offx : w-offx , - ty = swapY ? offy : h-offy, - startStubX = sx + (so[0] * minStubLength), - startStubY = sy + (so[1] * minStubLength), - endStubX = tx + (to[0] * minStubLength), - endStubY = ty + (to[1] * minStubLength), - midx = startStubX + ((endStubX - startStubX) / 2), - midy = startStubY + ((endStubY - startStubY) / 2); - - x -= offx; y -= offy; - points = [x, y, w, h, sx, sy, tx, ty], extraPoints = []; - - addSegment(startStubX, startStubY, sx, sy, tx, ty); - - if (so[0] == 0) { - var startStubIsBeforeEndStub = startStubY < endStubY; - // when start point's stub is less than endpoint's stub - if (startStubIsBeforeEndStub) { - addSegment(startStubX, midy, sx, sy, tx, ty); - addSegment(midx, midy, sx, sy, tx, ty); - addSegment(endStubX, midy, sx, sy, tx, ty); - } else { - // when start point's stub is greater than endpoint's stub - addSegment(midx, startStubY, sx, sy, tx, ty); - addSegment(midx, endStubY, sx, sy, tx, ty); - } - } - else { - var startStubIsBeforeEndStub = startStubX < endStubX; - // when start point's stub is less than endpoint's stub - if (startStubIsBeforeEndStub) { - addSegment(midx, startStubY, sx, sy, tx, ty); - addSegment(midx, midy, sx, sy, tx, ty); - addSegment(midx, endStubY, sx, sy, tx, ty); - } else { - // when start point's stub is greater than endpoint's stub - addSegment(startStubX, midy, sx, sy, tx, ty); - addSegment(endStubX, midy, sx, sy, tx, ty); - } - } - - addSegment(endStubX, endStubY, sx, sy, tx, ty); - addSegment(tx, ty, sx, sy, tx, ty); - - appendSegmentsToPoints(); - updateSegmentGradientsAndProportions(sx, sy, tx, ty); - - return points; - }; - - this.paint = function(dimensions, ctx) { - ctx.beginPath(); - ctx.moveTo(dimensions[4], dimensions[5]); - // loop through extra points - for (var i = 0; i < dimensions[8]; i++) { - ctx.lineTo(dimensions[9 + (i*2)], dimensions[10 + (i*2)]); - } - // finally draw a line to the end - ctx.lineTo(dimensions[6], dimensions[7]); - ctx.stroke(); - }; - - /** - * returns the point on the connector's path that is 'location' along the length of the path, where 'location' is a decimal from - * 0 to 1 inclusive. for this connector we must first figure out which segment the given point lies in, and then compute the x,y position - * from our knowledge of the segment's start and end points. - */ - this.pointOnPath = function(location) { - return self.pointAlongPathFrom(location, 0); - }; - - /** - * returns the gradient of the connector at the given point; the gradient will be either 0 or Infinity, depending on the direction of the - * segment the point falls in. segment gradients are calculated in the compute method. - */ - this.gradientAtPoint = function(location) { - return segmentGradients[findSegmentForLocation(location)["index"]]; - }; - - /** - * returns the point on the connector's path that is 'distance' along the length of the path from 'location', where - * 'location' is a decimal from 0 to 1 inclusive, and 'distance' is a number of pixels. when you consider this concept from the point of view - * of this connector, it starts to become clear that there's a problem with the overlay paint code: given that this connector makes several - * 90 degree turns, it's entirely possible that an arrow overlay could be forced to paint itself around a corner, which would look stupid. this is - * because jsPlumb uses this method (and pointOnPath) so determine the locations of the various points that go to make up an overlay. a better - * solution would probably be to just use pointOnPath along with gradientAtPoint, and draw the overlay so that its axis ran along - * a tangent to the connector. for straight line connectors this would obviously mean the overlay was painted directly on the connector, since a - * tangent to a straight line is the line itself, which is what we want; for this connector, and for beziers, the results would probably be better. an additional - * advantage is, of course, that there's less computation involved doing it that way. - */ - this.pointAlongPathFrom = function(location, distance) { - var s = findSegmentForLocation(location), seg = s.segment, p = s.proportion, sl = segmentLengths[s.index], m = segmentGradients[s.index]; - var e = { - //x : m == Infinity ? seg[2] : /*swapX ? seg[2] - (p * sl) - distance : */seg[2] + (p * sl) + distance, - - x : m == Infinity ? seg[2] : seg[2] > seg[0] ? seg[0] + ((1 - p) * sl) - distance : seg[2] + (p * sl) + distance, - - - //y : m == 0 ? seg[3] : /*swapY ? seg[3] - (p * sl) - distance : */seg[3] + (p * sl) + distance, - y : m == 0 ? seg[3] : seg[3] > seg[1] ? seg[1] + ((1 - p) * sl) - distance : seg[3] + (p * sl) + distance, - segmentInfo : s - }; - - //console.log("pointalongpath, swapX =" + swapX + ",swapY=" + swapY, "loc", location, "travel", (p * sl), "dist", distance, e.x, e.y, "seg", seg, "len", sl, "prop.", p); - - return e; - }; - - /** - * calculates a line that is perpendicular to, and centered on, the path at 'distance' pixels from the given location. - * the line is 'length' pixels long. - */ - this.perpendicularToPathAt = function(location, length, distance) { - var p = self.pointAlongPathFrom(location, distance); - var m = segmentGradients[p.segmentInfo.index]; - var _theta2 = Math.atan(-1 / m); - var y = length / 2 * Math.sin(_theta2); - var x = length / 2 * Math.cos(_theta2); - return [{x:p.x + x, y:p.y + y}, {x:p.x - x, y:p.y - y}]; - - }; - }; -})();/* - * jquery.jsPlumb 1.2.6-RC1 - * - * jQuery specific functionality for jsPlumb. - * - * http://morrisonpitt.com/jsPlumb/demo.html - * http://code.google.com/p/jsPlumb - * - * NOTE: for production usage you should use jsPlumb-all-x.x.x-min.js, which contains the main jsPlumb script and this script together, - * in a minified file. - * - * Dual licensed under MIT and GPL2. - * - */ -/* - * the library agnostic functions, such as find offset, get id, get attribute, extend etc. - * the full list is: - * - * addClass adds a class to the given element - * animate calls the underlying library's animate functionality - * appendElement appends a child element to a parent element. - * bind binds some event to an element - * dragEvents a dictionary of event names - * extend extend some js object with another. probably not overly necessary; jsPlumb could just do this internally. - * getAttribute gets some attribute from an element - * getDragObject gets the object that is being dragged, by extracting it from the arguments passed to a drag callback - * getDragScope gets the drag scope for a given element. - * getElementObject turns an id or dom element into an element object of the underlying library's type. - * getOffset gets an element's offset - * getPageXY gets the page event's xy location. - * getScrollLeft gets an element's scroll left. TODO: is this actually used? will it be? - * getScrollTop gets an element's scroll top. TODO: is this actually used? will it be? - * getSize gets an element's size. - * getUIPosition gets the position of some element that is currently being dragged, by extracting it from the arguments passed to a drag callback. - * hasClass returns whether or not the given element has the given class. - * initDraggable initializes an element to be draggable - * initDroppable initializes an element to be droppable - * isDragSupported returns whether or not drag is supported for some element. - * isDropSupported returns whether or not drop is supported for some element. - * removeClass removes a class from a given element. - * removeElement removes some element completely from the DOM. - * setAttribute sets an attribute on some element. - * setDraggable sets whether or not some element should be draggable. - * setDragScope sets the drag scope for a given element. - * setOffset sets the offset of some element. - */ -(function($) { - - jsPlumb.CurrentLibrary = { - - /** - * adds the given class to the element object. - */ - addClass : function(el, clazz) { - el.addClass(clazz); - }, - - /** - * animates the given element. - */ - animate : function(el, properties, options) { - el.animate(properties, options); - }, - - /** - * appends the given child to the given parent. - */ - appendElement : function(child, parent) { - jsPlumb.CurrentLibrary.getElementObject(parent).append(child); - }, - - /** - * event binding wrapper. it just so happens that jQuery uses 'bind' also. yui3, for example, - * uses 'on'. - */ - bind : function(el, event, callback) { - el = jsPlumb.CurrentLibrary.getElementObject(el); - el.bind(event, callback); - }, - - /** - * mapping of drag events for jQuery - */ - dragEvents : { - 'start':'start', 'stop':'stop', 'drag':'drag', 'step':'step', - 'over':'over', 'out':'out', 'drop':'drop', 'complete':'complete' - }, - - /** - * wrapper around the library's 'extend' functionality (which it hopefully has. - * otherwise you'll have to do it yourself). perhaps jsPlumb could do this for you - * instead. it's not like its hard. - */ - extend : function(o1, o2) { - return $.extend(o1, o2); - }, - - /** - * gets the named attribute from the given element object. - */ - getAttribute : function(el, attName) { - return el.attr(attName); - }, - - getDocumentElement : function() { return document; }, - - /** - * takes the args passed to an event function and returns you an object representing that which is being dragged. - */ - getDragObject : function(eventArgs) { - return eventArgs[1].draggable; - }, - - getDragScope : function(el) { - return el.draggable("option", "scope"); - }, - - /** - * gets an "element object" from the given input. this means an object that is used by the - * underlying library on which jsPlumb is running. 'el' may already be one of these objects, - * in which case it is returned as-is. otherwise, 'el' is a String, the library's lookup - * function is used to find the element, using the given String as the element's id. - * - */ - getElementObject : function(el) { - return typeof(el)=='string' ? $("#" + el) : $(el); - }, - - /** - * gets the offset for the element object. this should return a js object like this: - * - * { left:xxx, top: xxx } - */ - getOffset : function(el) { - return el.offset(); - }, - - getPageXY : function(eventObject) { - return [eventObject.pageX, eventObject.pageY]; - }, - - getScrollLeft : function(el) { - return el.scrollLeft(); - }, - - getScrollTop : function(el) { - return el.scrollTop(); - }, - - /** - * gets the size for the element object, in an array : [ width, height ]. - */ - getSize : function(el) { - return [el.outerWidth(), el.outerHeight()]; - }, - - /** - * takes the args passed to an event function and returns you an object that gives the - * position of the object being moved, as a js object with the same params as the result of - * getOffset, ie: { left: xxx, top: xxx }. - * - * different libraries have different signatures for their event callbacks. - * see getDragObject as well - */ - getUIPosition : function(eventArgs) { - var ui = eventArgs[1], _offset = ui.offset; - return _offset || ui.absolutePosition; - }, - - hasClass : function(el, clazz) { - return el.hasClass(clazz); - }, - - /** - * initialises the given element to be draggable. - */ - initDraggable : function(el, options) { - // remove helper directive if present. - options.helper = null; - //TODO: if 'revert' is set on the options it causes end points to animate back to - // where they came from, if the connection is aborted. do we care? probably not. - // the todo is to decide whether we care or not. - options['scope'] = options['scope'] || jsPlumb.Defaults.Scope; - el.draggable(options); - }, - - /** - * initialises the given element to be droppable. - */ - initDroppable : function(el, options) { - options['scope'] = options['scope'] || jsPlumb.Defaults.Scope; - el.droppable(options); - }, - - isAlreadyDraggable : function(el) { - el = jsPlumb.CurrentLibrary.getElementObject(el); - return el.hasClass("ui-draggable"); - }, - - /** - * returns whether or not drag is supported (by the library, not whether or not it is disabled) for the given element. - */ - isDragSupported : function(el, options) { - return el.draggable; - }, - - /** - * returns whether or not drop is supported (by the library, not whether or not it is disabled) for the given element. - */ - isDropSupported : function(el, options) { - return el.droppable; - }, - - /** - * removes the given class from the element object. - */ - removeClass : function(el, clazz) { - el.removeClass(clazz); - }, - - removeElement : function(element, parent) { - jsPlumb.CurrentLibrary.getElementObject(element).remove(); - }, - - /** - * sets the named attribute on the given element object. - */ - setAttribute : function(el, attName, attValue) { - el.attr(attName, attValue); - }, - - /** - * sets the draggable state for the given element - */ - setDraggable : function(el, draggable) { - el.draggable("option", "disabled", !draggable); - }, - - /** - * sets the drag scope. probably time for a setDragOption method (roll this and the one above together) - * @param el - * @param scope - */ - setDragScope : function(el, scope) { - el.draggable("option", "scope", scope); - }, - - setOffset : function(el, o) { - jsPlumb.CurrentLibrary.getElementObject(el).offset(o); - } - }; - - $(document).ready(jsPlumb.init); -})(jQuery); -(function(){if(typeof Math.sgn=="undefined")Math.sgn=function(a){return a==0?0:a>0?1:-1};var p={subtract:function(a,b){return{x:a.x-b.x,y:a.y-b.y}},dotProduct:function(a,b){return a.x*b.x+a.y*b.y},square:function(a){return Math.sqrt(a.x*a.x+a.y*a.y)},scale:function(a,b){return{x:a.x*b,y:a.y*b}}},y=Math.pow(2,-65),u=function(a,b){for(var g=[],d=b.length-1,h=2*d-1,f=[],c=[],l=[],k=[],i=[[1,0.6,0.3,0.1],[0.4,0.6,0.6,0.4],[0.1,0.3,0.6,1]],e=0;e<=d;e++)f[e]=p.subtract(b[e],a);for(e=0;e<=d-1;e++){c[e]= -p.subtract(b[e+1],b[e]);c[e]=p.scale(c[e],3)}for(e=0;e<=d-1;e++)for(var m=0;m<=d;m++){l[e]||(l[e]=[]);l[e][m]=p.dotProduct(c[e],f[m])}for(e=0;e<=h;e++){k[e]||(k[e]=[]);k[e].y=0;k[e].x=parseFloat(e)/h}h=d-1;for(f=0;f<=d+h;f++){c=Math.min(f,d);for(e=Math.max(0,f-h);e<=c;e++){j=f-e;k[e+j].y+=l[j][e]*i[j][e]}}d=b.length-1;k=s(k,2*d-1,g,0);h=p.subtract(a,b[0]);l=p.square(h);for(e=i=0;e=64){g[0]=(a[0].x+a[b].x)/2;return 1}var n,o,q;k=a[0].y-a[b].y;i=a[b].x-a[0].x;e=a[0].x*a[b].y-a[b].x*a[0].y;m=max_distance_below=0;for(o=1;om)m=q;else if(q0?1:-1,c=null;h').appendTo("body"); - var d = { width: $c.width() - $c[0].clientWidth, height: $c.height() - $c[0].clientHeight }; - $c.remove(); - window.scrollbarWidth = d.width; - window.scrollbarHeight = d.height; - return dim.match(/^(width|height)$/i) ? d[dim] : d; - } - - - /** - * Returns hash container 'display' and 'visibility' - * - * @see $.swap() - swaps CSS, runs callback, resets CSS - */ -, showInvisibly: function ($E, force) { - if (!$E) return {}; - if (!$E.jquery) $E = $($E); - var CSS = { - display: $E.css('display') - , visibility: $E.css('visibility') - }; - if (force || CSS.display == "none") { // only if not *already hidden* - $E.css({ display: "block", visibility: "hidden" }); // show element 'invisibly' so can be measured - return CSS; - } - else return {}; - } - - /** - * Returns data for setting size of an element (container or a pane). - * - * @see _create(), onWindowResize() for container, plus others for pane - * @return JSON Returns a hash of all dimensions: top, bottom, left, right, outerWidth, innerHeight, etc - */ -, getElemDims: function ($E) { - var - d = {} // dimensions hash - , x = d.css = {} // CSS hash - , i = {} // TEMP insets - , b, p // TEMP border, padding - , off = $E.offset() - ; - d.offsetLeft = off.left; - d.offsetTop = off.top; - - $.each("Left,Right,Top,Bottom".split(","), function (idx, e) { // e = edge - b = x["border" + e] = $.layout.borderWidth($E, e); - p = x["padding"+ e] = $.layout.cssNum($E, "padding"+e); - i[e] = b + p; // total offset of content from outer side - d["inset"+ e] = p; - /* WRONG ??? - // if BOX MODEL, then 'position' = PADDING (ignore borderWidth) - if ($E == $Container) - d["inset"+ e] = (browser.boxModel ? p : 0); - */ - }); - - d.offsetWidth = $E.innerWidth(); - d.offsetHeight = $E.innerHeight(); - d.outerWidth = $E.outerWidth(); - d.outerHeight = $E.outerHeight(); - d.innerWidth = d.outerWidth - i.Left - i.Right; - d.innerHeight = d.outerHeight - i.Top - i.Bottom; - - // TESTING - x.width = $E.width(); - x.height = $E.height(); - - return d; - } - -, getElemCSS: function ($E, list) { - var - CSS = {} - , style = $E[0].style - , props = list.split(",") - , sides = "Top,Bottom,Left,Right".split(",") - , attrs = "Color,Style,Width".split(",") - , p, s, a, i, j, k - ; - for (i=0; i < props.length; i++) { - p = props[i]; - if (p.match(/(border|padding|margin)$/)) - for (j=0; j < 4; j++) { - s = sides[j]; - if (p == "border") - for (k=0; k < 3; k++) { - a = attrs[k]; - CSS[p+s+a] = style[p+s+a]; - } - else - CSS[p+s] = style[p+s]; - } - else - CSS[p] = style[p]; - }; - return CSS - } - - /** - * Contains logic to check boxModel & browser, and return the correct width/height for the current browser/doctype - * - * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() - * @param {Array.} $E Must pass a jQuery object - first element is processed - * @param {number=} outerWidth/outerHeight (optional) Can pass a width, allowing calculations BEFORE element is resized - * @return {number} Returns the innerWidth/Height of the elem by subtracting padding and borders - */ -, cssWidth: function ($E, outerWidth) { - var - b = $.layout.borderWidth - , n = $.layout.cssNum - ; - // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed - if (outerWidth <= 0) return 0; - - if (!$.layout.browser.boxModel) return outerWidth; - - // strip border and padding from outerWidth to get CSS Width - var W = outerWidth - - b($E, "Left") - - b($E, "Right") - - n($E, "paddingLeft") - - n($E, "paddingRight") - ; - - return Math.max(0,W); - } - -, cssHeight: function ($E, outerHeight) { - var - b = $.layout.borderWidth - , n = $.layout.cssNum - ; - // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed - if (outerHeight <= 0) return 0; - - if (!$.layout.browser.boxModel) return outerHeight; - - // strip border and padding from outerHeight to get CSS Height - var H = outerHeight - - b($E, "Top") - - b($E, "Bottom") - - n($E, "paddingTop") - - n($E, "paddingBottom") - ; - - return Math.max(0,H); - } - - /** - * Returns the 'current CSS numeric value' for an element - returns 0 if property does not exist - * - * @see Called by many methods - * @param {Array.} $E Must pass a jQuery object - first element is processed - * @param {string} prop The name of the CSS property, eg: top, width, etc. - * @return {*} Usually is used to get an integer value for position (top, left) or size (height, width) - */ -, cssNum: function ($E, prop) { - if (!$E.jquery) $E = $($E); - var CSS = $.layout.showInvisibly($E); - var val = parseInt($.curCSS($E[0], prop, true), 10) || 0; - $E.css( CSS ); // RESET - return val; - } - -, borderWidth: function (el, side) { - if (el.jquery) el = el[0]; - var b = "border"+ side.substr(0,1).toUpperCase() + side.substr(1); // left => Left - return $.curCSS(el, b+"Style", true) == "none" ? 0 : (parseInt($.curCSS(el, b+"Width", true), 10) || 0); - } - - /** - * SUBROUTINE for preventPrematureSlideClose option - * - * @param {Object} evt - * @param {Object=} el - */ -, isMouseOverElem: function (evt, el) { - var - $E = $(el || this) - , d = $E.offset() - , T = d.top - , L = d.left - , R = L + $E.outerWidth() - , B = T + $E.outerHeight() - , x = evt.pageX - , y = evt.pageY - ; - // if X & Y are < 0, probably means is over an open SELECT - return ($.layout.browser.msie && x < 0 && y < 0) || ((x >= L && x <= R) && (y >= T && y <= B)); - } - -}; - -$.fn.layout = function (opts) { - -/* - * ########################### - * WIDGET CONFIG & OPTIONS - * ########################### - */ - - // LANGUAGE CUSTOMIZATION - will be *externally customizable* in next version - var lang = { - Pane: "Pane" - , Open: "Open" // eg: "Open Pane" - , Close: "Close" - , Resize: "Resize" - , Slide: "Slide Open" - , Pin: "Pin" - , Unpin: "Un-Pin" - , selector: "selector" - , msgNoRoom: "Not enough room to show this pane." - , errContainerMissing: "UI Layout Initialization Error\n\nThe specified layout-container does not exist." - , errCenterPaneMissing: "UI Layout Initialization Error\n\nThe center-pane element does not exist.\n\nThe center-pane is a required element." - , errContainerHeight: "UI Layout Initialization Warning\n\nThe layout-container \"CONTAINER\" has no height.\n\nTherefore the layout is 0-height and hence 'invisible'!" - , errButton: "Error Adding Button \n\nInvalid " - }; - - // DEFAULT OPTIONS - CHANGE IF DESIRED - var options = { - name: "" // Not required, but useful for buttons and used for the state-cookie - , containerClass: "ui-layout-container" // layout-container element - , scrollToBookmarkOnLoad: true // after creating a layout, scroll to bookmark in URL (.../page.htm#myBookmark) - , resizeWithWindow: true // bind thisLayout.resizeAll() to the window.resize event - , resizeWithWindowDelay: 200 // delay calling resizeAll because makes window resizing very jerky - , resizeWithWindowMaxDelay: 0 // 0 = none - force resize every XX ms while window is being resized - , onresizeall_start: null // CALLBACK when resizeAll() STARTS - NOT pane-specific - , onresizeall_end: null // CALLBACK when resizeAll() ENDS - NOT pane-specific - , onload_start: null // CALLBACK when Layout inits - after options initialized, but before elements - , onload_end: null // CALLBACK when Layout inits - after EVERYTHING has been initialized - , onunload_start: null // CALLBACK when Layout is destroyed OR onWindowUnload - , onunload_end: null // CALLBACK when Layout is destroyed OR onWindowUnload - , autoBindCustomButtons: false // search for buttons with ui-layout-button class and auto-bind them - , zIndex: null // the PANE zIndex - resizers and masks will be +1 - // PANE SETTINGS - , defaults: { // default options for 'all panes' - will be overridden by 'per-pane settings' - applyDemoStyles: false // NOTE: renamed from applyDefaultStyles for clarity - , closable: true // pane can open & close - , resizable: true // when open, pane can be resized - , slidable: true // when closed, pane can 'slide open' over other panes - closes on mouse-out - , initClosed: false // true = init pane as 'closed' - , initHidden: false // true = init pane as 'hidden' - no resizer-bar/spacing - // SELECTORS - //, paneSelector: "" // MUST be pane-specific - jQuery selector for pane - , contentSelector: ".ui-layout-content" // INNER div/element to auto-size so only it scrolls, not the entire pane! - , contentIgnoreSelector: ".ui-layout-ignore" // element(s) to 'ignore' when measuring 'content' - , findNestedContent: false // true = $P.find(contentSelector), false = $P.children(contentSelector) - // GENERIC ROOT-CLASSES - for auto-generated classNames - , paneClass: "ui-layout-pane" // border-Pane - default: 'ui-layout-pane' - , resizerClass: "ui-layout-resizer" // Resizer Bar - default: 'ui-layout-resizer' - , togglerClass: "ui-layout-toggler" // Toggler Button - default: 'ui-layout-toggler' - , buttonClass: "ui-layout-button" // CUSTOM Buttons - default: 'ui-layout-button-toggle/-open/-close/-pin' - // ELEMENT SIZE & SPACING - //, size: 100 // MUST be pane-specific -initial size of pane - , minSize: 0 // when manually resizing a pane - , maxSize: 0 // ditto, 0 = no limit - , spacing_open: 6 // space between pane and adjacent panes - when pane is 'open' - , spacing_closed: 6 // ditto - when pane is 'closed' - , togglerLength_open: 50 // Length = WIDTH of toggler button on north/south sides - HEIGHT on east/west sides - , togglerLength_closed: 50 // 100% OR -1 means 'full height/width of resizer bar' - 0 means 'hidden' - , togglerAlign_open: "center" // top/left, bottom/right, center, OR... - , togglerAlign_closed: "center" // 1 => nn = offset from top/left, -1 => -nn == offset from bottom/right - , togglerTip_open: lang.Close // Toggler tool-tip (title) - , togglerTip_closed: lang.Open // ditto - , togglerContent_open: "" // text or HTML to put INSIDE the toggler - , togglerContent_closed: "" // ditto - // RESIZING OPTIONS - , resizerDblClickToggle: true // - , autoResize: true // IF size is 'auto' or a percentage, then recalc 'pixel size' whenever the layout resizes - , autoReopen: true // IF a pane was auto-closed due to noRoom, reopen it when there is room? False = leave it closed - , resizerDragOpacity: 1 // option for ui.draggable - //, resizerCursor: "" // MUST be pane-specific - cursor when over resizer-bar - , maskIframesOnResize: true // true = all iframes OR = iframe-selector(s) - adds masking-div during resizing/dragging - , resizeNestedLayout: true // true = trigger nested.resizeAll() when a 'pane' of this layout is the 'container' for another - , resizeWhileDragging: false // true = LIVE Resizing as resizer is dragged - , resizeContentWhileDragging: false // true = re-measure header/footer heights as resizer is dragged - // TIPS & MESSAGES - also see lang object - , noRoomToOpenTip: lang.msgNoRoom - , resizerTip: lang.Resize // Resizer tool-tip (title) - , sliderTip: lang.Slide // resizer-bar triggers 'sliding' when pane is closed - , sliderCursor: "pointer" // cursor when resizer-bar will trigger 'sliding' - , slideTrigger_open: "click" // click, dblclick, mouseenter - , slideTrigger_close: "mouseleave"// click, mouseleave - , slideDelay_open: 300 // applies only for mouseenter event - 0 = instant open - , slideDelay_close: 300 // applies only for mouseleave event (300ms is the minimum!) - , hideTogglerOnSlide: false // when pane is slid-open, should the toggler show? - , preventQuickSlideClose: !!($.browser.webkit || $.browser.safari) // Chrome triggers slideClosed as is opening - , preventPrematureSlideClose: false - // HOT-KEYS & MISC - , showOverflowOnHover: false // will bind allowOverflow() utility to pane.onMouseOver - , enableCursorHotkey: true // enabled 'cursor' hotkeys - //, customHotkey: "" // MUST be pane-specific - EITHER a charCode OR a character - , customHotkeyModifier: "SHIFT" // either 'SHIFT', 'CTRL' or 'CTRL+SHIFT' - NOT 'ALT' - // PANE ANIMATION - // NOTE: fxSss_open & fxSss_close options (eg: fxName_open) are auto-generated if not passed - , fxName: "slide" // ('none' or blank), slide, drop, scale - , fxSpeed: null // slow, normal, fast, 200, nnn - if passed, will OVERRIDE fxSettings.duration - , fxSettings: {} // can be passed, eg: { easing: "easeOutBounce", duration: 1500 } - , fxOpacityFix: true // tries to fix opacity in IE to restore anti-aliasing after animation - // CALLBACKS - , triggerEventsOnLoad: false // true = trigger onopen OR onclose callbacks when layout initializes - , triggerEventsWhileDragging: true // true = trigger onresize callback REPEATEDLY if resizeWhileDragging==true - , onshow_start: null // CALLBACK when pane STARTS to Show - BEFORE onopen/onhide_start - , onshow_end: null // CALLBACK when pane ENDS being Shown - AFTER onopen/onhide_end - , onhide_start: null // CALLBACK when pane STARTS to Close - BEFORE onclose_start - , onhide_end: null // CALLBACK when pane ENDS being Closed - AFTER onclose_end - , onopen_start: null // CALLBACK when pane STARTS to Open - , onopen_end: null // CALLBACK when pane ENDS being Opened - , onclose_start: null // CALLBACK when pane STARTS to Close - , onclose_end: null // CALLBACK when pane ENDS being Closed - , onresize_start: null // CALLBACK when pane STARTS being Resized ***FOR ANY REASON*** - , onresize_end: null // CALLBACK when pane ENDS being Resized ***FOR ANY REASON*** - , onsizecontent_start: null // CALLBACK when sizing of content-element STARTS - , onsizecontent_end: null // CALLBACK when sizing of content-element ENDS - , onswap_start: null // CALLBACK when pane STARTS to Swap - , onswap_end: null // CALLBACK when pane ENDS being Swapped - , ondrag_start: null // CALLBACK when pane STARTS being ***MANUALLY*** Resized - , ondrag_end: null // CALLBACK when pane ENDS being ***MANUALLY*** Resized - } - , north: { - paneSelector: ".ui-layout-north" - , size: "130" // eg: "auto", "30%", 200 - , resizerCursor: "n-resize" // custom = url(myCursor.cur) - , customHotkey: "" // EITHER a charCode OR a character - } - , south: { - paneSelector: ".ui-layout-south" - , size: "auto" - , resizerCursor: "s-resize" - , customHotkey: "" - } - , east: { - paneSelector: ".ui-layout-east" - , size: 250 - , resizerCursor: "e-resize" - , customHotkey: "" - } - , west: { - paneSelector: ".ui-layout-west" - , size: 250 - , resizerCursor: "w-resize" - , customHotkey: "" - } - , center: { - paneSelector: ".ui-layout-center" - , minWidth: 0 - , minHeight: 0 - } - - // STATE MANAGMENT - , useStateCookie: false // Enable cookie-based state-management - can fine-tune with cookie.autoLoad/autoSave - , cookie: { - name: "" // If not specified, will use Layout.name, else just "Layout" - , autoSave: true // Save a state cookie when page exits? - , autoLoad: true // Load the state cookie when Layout inits? - // Cookie Options - , domain: "" - , path: "" - , expires: "" // 'days' to keep cookie - leave blank for 'session cookie' - , secure: false - // List of options to save in the cookie - must be pane-specific - , keys: "north.size,south.size,east.size,west.size,"+ - "north.isClosed,south.isClosed,east.isClosed,west.isClosed,"+ - "north.isHidden,south.isHidden,east.isHidden,west.isHidden" - } - }; - - - // PREDEFINED EFFECTS / DEFAULTS - var effects = { // LIST *PREDEFINED EFFECTS* HERE, even if effect has no settings - slide: { - all: { duration: "fast" } // eg: duration: 1000, easing: "easeOutBounce" - , north: { direction: "up" } - , south: { direction: "down" } - , east: { direction: "right"} - , west: { direction: "left" } - } - , drop: { - all: { duration: "slow" } // eg: duration: 1000, easing: "easeOutQuint" - , north: { direction: "up" } - , south: { direction: "down" } - , east: { direction: "right"} - , west: { direction: "left" } - } - , scale: { - all: { duration: "fast" } - } - }; - - - // DYNAMIC DATA - IS READ-ONLY EXTERNALLY! - var state = { - // generate unique ID to use for event.namespace so can unbind only events added by 'this layout' - id: "layout"+ new Date().getTime() // code uses alias: sID - , initialized: false - , container: {} // init all keys - , north: {} - , south: {} - , east: {} - , west: {} - , center: {} - , cookie: {} // State Managment data storage - }; - - - // INTERNAL CONFIG DATA - DO NOT CHANGE THIS! - var _c = { - allPanes: "north,south,west,east,center" - , borderPanes: "north,south,west,east" - , altSide: { - north: "south" - , south: "north" - , east: "west" - , west: "east" - } - // CSS used in multiple places - , hidden: { visibility: "hidden" } - , visible: { visibility: "visible" } - // layout element settings - , zIndex: { // set z-index values here - pane_normal: 1 // normal z-index for panes - , resizer_normal: 2 // normal z-index for resizer-bars - , iframe_mask: 2 // overlay div used to mask pane(s) during resizing - , pane_sliding: 100 // applied to *BOTH* the pane and its resizer when a pane is 'slid open' - , pane_animate: 1000 // applied to the pane when being animated - not applied to the resizer - , resizer_drag: 10000 // applied to the CLONED resizer-bar when being 'dragged' - } - , resizers: { - cssReq: { - position: "absolute" - , padding: 0 - , margin: 0 - , fontSize: "1px" - , textAlign: "left" // to counter-act "center" alignment! - , overflow: "hidden" // prevent toggler-button from overflowing - // SEE c.zIndex.resizer_normal - } - , cssDemo: { // DEMO CSS - applied if: options.PANE.applyDemoStyles=true - background: "#DDD" - , border: "none" - } - } - , togglers: { - cssReq: { - position: "absolute" - , display: "block" - , padding: 0 - , margin: 0 - , overflow: "hidden" - , textAlign: "center" - , fontSize: "1px" - , cursor: "pointer" - , zIndex: 1 - } - , cssDemo: { // DEMO CSS - applied if: options.PANE.applyDemoStyles=true - background: "#AAA" - } - } - , content: { - cssReq: { - position: "relative" /* contain floated or positioned elements */ - } - , cssDemo: { // DEMO CSS - applied if: options.PANE.applyDemoStyles=true - overflow: "auto" - , padding: "10px" - } - , cssDemoPane: { // DEMO CSS - REMOVE scrolling from 'pane' when it has a content-div - overflow: "hidden" - , padding: 0 - } - } - , panes: { // defaults for ALL panes - overridden by 'per-pane settings' below - cssReq: { - position: "absolute" - , margin: 0 - // SEE c.zIndex.pane_normal - } - , cssDemo: { // DEMO CSS - applied if: options.PANE.applyDemoStyles=true - padding: "10px" - , background: "#FFF" - , border: "1px solid #BBB" - , overflow: "auto" - } - } - , north: { - side: "Top" - , sizeType: "Height" - , dir: "horz" - , cssReq: { - top: 0 - , bottom: "auto" - , left: 0 - , right: 0 - , width: "auto" - // height: DYNAMIC - } - , pins: [] // array of 'pin buttons' to be auto-updated on open/close (classNames) - } - , south: { - side: "Bottom" - , sizeType: "Height" - , dir: "horz" - , cssReq: { - top: "auto" - , bottom: 0 - , left: 0 - , right: 0 - , width: "auto" - // height: DYNAMIC - } - , pins: [] - } - , east: { - side: "Right" - , sizeType: "Width" - , dir: "vert" - , cssReq: { - left: "auto" - , right: 0 - , top: "auto" // DYNAMIC - , bottom: "auto" // DYNAMIC - , height: "auto" - // width: DYNAMIC - } - , pins: [] - } - , west: { - side: "Left" - , sizeType: "Width" - , dir: "vert" - , cssReq: { - left: 0 - , right: "auto" - , top: "auto" // DYNAMIC - , bottom: "auto" // DYNAMIC - , height: "auto" - // width: DYNAMIC - } - , pins: [] - } - , center: { - dir: "center" - , cssReq: { - left: "auto" // DYNAMIC - , right: "auto" // DYNAMIC - , top: "auto" // DYNAMIC - , bottom: "auto" // DYNAMIC - , height: "auto" - , width: "auto" - } - } - }; - - -/* - * ########################### - * INTERNAL HELPER FUNCTIONS - * ########################### - */ - - /** - * Manages all internal timers - */ - var timer = { - data: {} - , set: function (s, fn, ms) { timer.clear(s); timer.data[s] = setTimeout(fn, ms); } - , clear: function (s) { var t=timer.data; if (t[s]) {clearTimeout(t[s]); delete t[s];} } - }; - - /** - * Returns true if passed param is EITHER a simple string OR a 'string object' - otherwise returns false - */ - var isStr = function (o) { - try { return typeof o == "string" - || (typeof o == "object" && o.constructor.toString().match(/string/i) !== null); } - catch (e) { return false; } - }; - - /** - * Returns a simple string if passed EITHER a simple string OR a 'string object', - * else returns the original object - */ - var str = function (o) { // trim converts 'String object' to a simple string - return isStr(o) ? $.trim(o) : o == undefined || o == null ? "" : o; - }; - - /** - * min / max - * - * Aliases for Math methods to simplify coding - */ - var min = function (x,y) { return Math.min(x,y); }; - var max = function (x,y) { return Math.max(x,y); }; - - /** - * Processes the options passed in and transforms them into the format used by layout() - * Missing keys are added, and converts the data if passed in 'flat-format' (no sub-keys) - * In flat-format, pane-specific-settings are prefixed like: north__optName (2-underscores) - * To update effects, options MUST use nested-keys format, with an effects key ??? - * - * @see initOptions() - * @param {Object} d Data/options passed by user - may be a single level or nested levels - * @return {Object} Creates a data struture that perfectly matches 'options', ready to be imported - */ - var _transformData = function (d) { - var a, json = { cookie:{}, defaults:{fxSettings:{}}, north:{fxSettings:{}}, south:{fxSettings:{}}, east:{fxSettings:{}}, west:{fxSettings:{}}, center:{fxSettings:{}} }; - d = d || {}; - if (d.effects || d.cookie || d.defaults || d.north || d.south || d.west || d.east || d.center) - json = $.extend( true, json, d ); // already in json format - add to base keys - else - // convert 'flat' to 'nest-keys' format - also handles 'empty' user-options - $.each( d, function (key,val) { - a = key.split("__"); - if (!a[1] || json[a[0]]) // check for invalid keys - json[ a[1] ? a[0] : "defaults" ][ a[1] ? a[1] : a[0] ] = val; - }); - return json; - }; - - /** - * Set an INTERNAL callback to avoid simultaneous animation - * Runs only if needed and only if all callbacks are not 'already set' - * Called by open() and close() when isLayoutBusy=true - * - * @param {string} action Either 'open' or 'close' - * @param {string} pane A valid border-pane name, eg 'west' - * @param {boolean=} param Extra param for callback (optional) - */ - var _queue = function (action, pane, param) { - var tried = []; - - // if isLayoutBusy, then some pane must be 'moving' - $.each(_c.borderPanes.split(","), function (i, p) { - if (_c[p].isMoving) { - bindCallback(p); // TRY to bind a callback - return false; // BREAK - } - }); - - // if pane does NOT have a callback, then add one, else follow the callback chain... - function bindCallback (p) { - var c = _c[p]; - if (!c.doCallback) { - c.doCallback = true; - c.callback = action +","+ pane +","+ (param ? 1 : 0); - } - else { // try to 'chain' this callback - tried.push(p); - var cbPane = c.callback.split(",")[1]; // 2nd param of callback is 'pane' - // ensure callback target NOT 'itself' and NOT 'target pane' and NOT already tried (avoid loop) - if (cbPane != pane && !$.inArray(cbPane, tried) >= 0) - bindCallback(cbPane); // RECURSE - } - } - }; - - /** - * RUN the INTERNAL callback for this pane - if one exists - * - * @param {string} pane A valid border-pane name, eg 'west' - */ - var _dequeue = function (pane) { - var c = _c[pane]; - - // RESET flow-control flags - _c.isLayoutBusy = false; - delete c.isMoving; - if (!c.doCallback || !c.callback) return; - - c.doCallback = false; // RESET logic flag - - // EXECUTE the callback - var - cb = c.callback.split(",") - , param = (cb[2] > 0 ? true : false) - ; - if (cb[0] == "open") - open( cb[1], param ); - else if (cb[0] == "close") - close( cb[1], param ); - - if (!c.doCallback) c.callback = null; // RESET - unless callback above enabled it again! - }; - - /** - * Executes a Callback function after a trigger event, like resize, open or close - * - * @param {?string} pane This is passed only so we can pass the 'pane object' to the callback - * @param {(string|function())} v_fn Accepts a function name, OR a comma-delimited array: [0]=function name, [1]=argument - */ - var _execCallback = function (pane, v_fn) { - if (!v_fn) return; - var fn; - try { - if (typeof v_fn == "function") - fn = v_fn; - else if (!isStr(v_fn)) - return; - else if (v_fn.match(/,/)) { - // function name cannot contain a comma, so must be a function name AND a 'name' parameter - var args = v_fn.split(","); - fn = eval(args[0]); - if (typeof fn=="function" && args.length > 1) - return fn(args[1]); // pass the argument parsed from 'list' - } - else // just the name of an external function? - fn = eval(v_fn); - - if (typeof fn=="function") { - if (pane && $Ps[pane]) - // pass data: pane-name, pane-element, pane-state (copy), pane-options, and layout-name - return fn( pane, $Ps[pane], $.extend({},state[pane]), options[pane], options.name ); - else // must be a layout/container callback - pass suitable info - return fn( Instance, $.extend({},state), options, options.name ); - } - } - catch (ex) {} - }; - - /** - * Returns hash container 'display' and 'visibility' - * - * @see $.swap() - swaps CSS, runs callback, resets CSS - * @param {!Object} $E - * @param {boolean=} force - */ - var _showInvisibly = function ($E, force) { - if (!$E) return {}; - if (!$E.jquery) $E = $($E); - var CSS = { - display: $E.css('display') - , visibility: $E.css('visibility') - }; - if (force || CSS.display == "none") { // only if not *already hidden* - $E.css({ display: "block", visibility: "hidden" }); // show element 'invisibly' so can be measured - return CSS; - } - else return {}; - }; - - /** - * cure iframe display issues in IE & other browsers - */ - var _fixIframe = function (pane) { - if (state.browser.mozilla) return; // skip FireFox - it auto-refreshes iframes onShow - var $P = $Ps[pane]; - // if the 'pane' is an iframe, do it - if (state[pane].tagName == "IFRAME") - $P.css(_c.hidden).css(_c.visible); - else // ditto for any iframes INSIDE the pane - $P.find('IFRAME').css(_c.hidden).css(_c.visible); - }; - - /** - * Returns the 'current CSS numeric value' for a CSS property - 0 if property does not exist - * - * @see Called by many methods - * @param {Array.} $E Must pass a jQuery object - first element is processed - * @param {string} prop The name of the CSS property, eg: top, width, etc. - * @return {(string|number)} Usually used to get an integer value for position (top, left) or size (height, width) - */ - var _cssNum = function ($E, prop) { - if (!$E.jquery) $E = $($E); - var CSS = _showInvisibly($E); - var val = parseInt($.curCSS($E[0], prop, true), 10) || 0; - $E.css( CSS ); // RESET - return val; - }; - - /** - * @param {!Object} E Can accept a 'pane' (east, west, etc) OR a DOM object OR a jQuery object - * @param {string} side Which border (top, left, etc.) is resized - * @return {number} Returns the borderWidth - */ - var _borderWidth = function (E, side) { - if (E.jquery) E = E[0]; - var b = "border"+ side.substr(0,1).toUpperCase() + side.substr(1); // left => Left - return $.curCSS(E, b+"Style", true) == "none" ? 0 : (parseInt($.curCSS(E, b+"Width", true), 10) || 0); - }; - - /** - * cssW / cssH / cssSize / cssMinDims - * - * Contains logic to check boxModel & browser, and return the correct width/height for the current browser/doctype - * - * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() - * @param {(string|!Object)} el Can accept a 'pane' (east, west, etc) OR a DOM object OR a jQuery object - * @param {number=} outerWidth (optional) Can pass a width, allowing calculations BEFORE element is resized - * @return {number} Returns the innerWidth of el by subtracting padding and borders - */ - var cssW = function (el, outerWidth) { - var - str = isStr(el) - , $E = str ? $Ps[el] : $(el) - ; - if (isNaN(outerWidth)) // not specified - outerWidth = str ? getPaneSize(el) : $E.outerWidth(); - - // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed - if (outerWidth <= 0) return 0; - - if (!state.browser.boxModel) return outerWidth; - - // strip border and padding from outerWidth to get CSS Width - var W = outerWidth - - _borderWidth($E, "Left") - - _borderWidth($E, "Right") - - _cssNum($E, "paddingLeft") - - _cssNum($E, "paddingRight") - ; - - return max(0,W); - }; - - /** - * @param {(string|!Object)} el Can accept a 'pane' (east, west, etc) OR a DOM object OR a jQuery object - * @param {number=} outerHeight (optional) Can pass a width, allowing calculations BEFORE element is resized - * @return {number} Returns the innerHeight el by subtracting padding and borders - */ - var cssH = function (el, outerHeight) { - var - str = isStr(el) - , $E = str ? $Ps[el] : $(el) - ; - if (isNaN(outerHeight)) // not specified - outerHeight = str ? getPaneSize(el) : $E.outerHeight(); - - // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed - if (outerHeight <= 0) return 0; - - if (!state.browser.boxModel) return outerHeight; - - // strip border and padding from outerHeight to get CSS Height - var H = outerHeight - - _borderWidth($E, "Top") - - _borderWidth($E, "Bottom") - - _cssNum($E, "paddingTop") - - _cssNum($E, "paddingBottom") - ; - - return max(0,H); - }; - - /** - * @param {string} pane Can accept ONLY a 'pane' (east, west, etc) - * @param {number=} outerSize (optional) Can pass a width, allowing calculations BEFORE element is resized - * @return {number} Returns the innerHeight/Width of el by subtracting padding and borders - */ - var cssSize = function (pane, outerSize) { - if (_c[pane].dir=="horz") // pane = north or south - return cssH(pane, outerSize); - else // pane = east or west - return cssW(pane, outerSize); - }; - - /** - * @param {string} pane Can accept ONLY a 'pane' (east, west, etc) - * @return {Object} Returns hash of minWidth & minHeight - */ - var cssMinDims = function (pane) { - // minWidth/Height means CSS width/height = 1px - var - dir = _c[pane].dir - , d = { - minWidth: 1001 - cssW(pane, 1000) - , minHeight: 1001 - cssH(pane, 1000) - } - ; - if (dir == "horz") d.minSize = d.minHeight; - if (dir == "vert") d.minSize = d.minWidth; - return d; - }; - - // TODO: see if these methods can be made more useful... - // TODO: *maybe* return cssW/H from these so caller can use this info - - /** - * @param {(string|!Object)} el - * @param {number=} outerWidth - * @param {boolean=} autoHide - */ - var setOuterWidth = function (el, outerWidth, autoHide) { - var $E = el, w; - if (isStr(el)) $E = $Ps[el]; // west - else if (!el.jquery) $E = $(el); - w = cssW($E, outerWidth); - $E.css({ width: w }); - if (w > 0) { - if (autoHide && $E.data('autoHidden') && $E.innerHeight() > 0) { - $E.show().data('autoHidden', false); - if (!state.browser.mozilla) // FireFox refreshes iframes - IE doesn't - // make hidden, then visible to 'refresh' display after animation - $E.css(_c.hidden).css(_c.visible); - } - } - else if (autoHide && !$E.data('autoHidden')) - $E.hide().data('autoHidden', true); - }; - - /** - * @param {(string|!Object)} el - * @param {number=} outerHeight - * @param {boolean=} autoHide - */ - var setOuterHeight = function (el, outerHeight, autoHide) { - var $E = el, h; - if (isStr(el)) $E = $Ps[el]; // west - else if (!el.jquery) $E = $(el); - h = cssH($E, outerHeight); - $E.css({ height: h, visibility: "visible" }); // may have been 'hidden' by sizeContent - if (h > 0 && $E.innerWidth() > 0) { - if (autoHide && $E.data('autoHidden')) { - $E.show().data('autoHidden', false); - if (!state.browser.mozilla) // FireFox refreshes iframes - IE doesn't - $E.css(_c.hidden).css(_c.visible); - } - } - else if (autoHide && !$E.data('autoHidden')) - $E.hide().data('autoHidden', true); - }; - - /** - * @param {(string|!Object)} el - * @param {number=} outerSize - * @param {boolean=} autoHide - */ - var setOuterSize = function (el, outerSize, autoHide) { - if (_c[pane].dir=="horz") // pane = north or south - setOuterHeight(el, outerSize, autoHide); - else // pane = east or west - setOuterWidth(el, outerSize, autoHide); - }; - - - /** - * Converts any 'size' params to a pixel/integer size, if not already - * If 'auto' or a decimal/percentage is passed as 'size', a pixel-size is calculated - * - /** - * @param {string} pane - * @param {(string|number)=} size - * @param {string=} dir - * @return {number} - */ - var _parseSize = function (pane, size, dir) { - if (!dir) dir = _c[pane].dir; - - if (isStr(size) && size.match(/%/)) - size = parseInt(size, 10) / 100; // convert % to decimal - - if (size === 0) - return 0; - else if (size >= 1) - return parseInt(size, 10); - else if (size > 0) { // percentage, eg: .25 - var o = options, avail; - if (dir=="horz") // north or south or center.minHeight - avail = sC.innerHeight - ($Ps.north ? o.north.spacing_open : 0) - ($Ps.south ? o.south.spacing_open : 0); - else if (dir=="vert") // east or west or center.minWidth - avail = sC.innerWidth - ($Ps.west ? o.west.spacing_open : 0) - ($Ps.east ? o.east.spacing_open : 0); - return Math.floor(avail * size); - } - else if (pane=="center") - return 0; - else { // size < 0 || size=='auto' || size==Missing || size==Invalid - // auto-size the pane - var - $P = $Ps[pane] - , dim = (dir == "horz" ? "height" : "width") - , vis = _showInvisibly($P) // show pane invisibly if hidden - , s = $P.css(dim); // SAVE current size - ; - $P.css(dim, "auto"); - size = (dim == "height") ? $P.outerHeight() : $P.outerWidth(); // MEASURE - $P.css(dim, s).css(vis); // RESET size & visibility - return size; - } - }; - - /** - * Calculates current 'size' (outer-width or outer-height) of a border-pane - optionally with 'pane-spacing' added - * - * @param {(string|!Object)} pane - * @param {boolean=} inclSpace - * @return {number} Returns EITHER Width for east/west panes OR Height for north/south panes - adjusted for boxModel & browser - */ - var getPaneSize = function (pane, inclSpace) { - var - $P = $Ps[pane] - , o = options[pane] - , s = state[pane] - , oSp = (inclSpace ? o.spacing_open : 0) - , cSp = (inclSpace ? o.spacing_closed : 0) - ; - if (!$P || s.isHidden) - return 0; - else if (s.isClosed || (s.isSliding && inclSpace)) - return cSp; - else if (_c[pane].dir == "horz") - return $P.outerHeight() + oSp; - else // dir == "vert" - return $P.outerWidth() + oSp; - }; - - /** - * Calculate min/max pane dimensions and limits for resizing - * - * @param {string} pane - * @param {boolean=} slide - */ - var setSizeLimits = function (pane, slide) { - var - o = options[pane] - , s = state[pane] - , c = _c[pane] - , dir = c.dir - , side = c.side.toLowerCase() - , type = c.sizeType.toLowerCase() - , isSliding = (slide != undefined ? slide : s.isSliding) // only open() passes 'slide' param - , $P = $Ps[pane] - , paneSpacing = o.spacing_open - // measure the pane on the *opposite side* from this pane - , altPane = _c.altSide[pane] - , altS = state[altPane] - , $altP = $Ps[altPane] - , altPaneSize = (!$altP || altS.isVisible===false || altS.isSliding ? 0 : (dir=="horz" ? $altP.outerHeight() : $altP.outerWidth())) - , altPaneSpacing = ((!$altP || altS.isHidden ? 0 : options[altPane][ altS.isClosed !== false ? "spacing_closed" : "spacing_open" ]) || 0) - // limitSize prevents this pane from 'overlapping' opposite pane - , containerSize = (dir=="horz" ? sC.innerHeight : sC.innerWidth) - , minCenterDims = cssMinDims("center") - , minCenterSize = dir=="horz" ? max(options.center.minHeight, minCenterDims.minHeight) : max(options.center.minWidth, minCenterDims.minWidth) - // if pane is 'sliding', then ignore center and alt-pane sizes - because 'overlays' them - , limitSize = (containerSize - paneSpacing - (isSliding ? 0 : (_parseSize("center", minCenterSize, dir) + altPaneSize + altPaneSpacing))) - , minSize = s.minSize = max( _parseSize(pane, o.minSize), cssMinDims(pane).minSize ) - , maxSize = s.maxSize = min( (o.maxSize ? _parseSize(pane, o.maxSize) : 100000), limitSize ) - , r = s.resizerPosition = {} // used to set resizing limits - , top = sC.insetTop - , left = sC.insetLeft - , W = sC.innerWidth - , H = sC.innerHeight - , rW = o.spacing_open // subtract resizer-width to get top/left position for south/east - ; - switch (pane) { - case "north": r.min = top + minSize; - r.max = top + maxSize; - break; - case "west": r.min = left + minSize; - r.max = left + maxSize; - break; - case "south": r.min = top + H - maxSize - rW; - r.max = top + H - minSize - rW; - break; - case "east": r.min = left + W - maxSize - rW; - r.max = left + W - minSize - rW; - break; - }; - }; - - /** - * Returns data for setting the size/position of center pane. Also used to set Height for east/west panes - * - * @return JSON Returns a hash of all dimensions: top, bottom, left, right, (outer) width and (outer) height - */ - var calcNewCenterPaneDims = function () { - var d = { - top: getPaneSize("north", true) // true = include 'spacing' value for pane - , bottom: getPaneSize("south", true) - , left: getPaneSize("west", true) - , right: getPaneSize("east", true) - , width: 0 - , height: 0 - }; - - // NOTE: sC = state.container - // calc center-pane's outer dimensions - d.width = sC.innerWidth - d.left - d.right; // outerWidth - d.height = sC.innerHeight - d.bottom - d.top; // outerHeight - // add the 'container border/padding' to get final positions relative to the container - d.top += sC.insetTop; - d.bottom += sC.insetBottom; - d.left += sC.insetLeft; - d.right += sC.insetRight; - - return d; - }; - - - /** - * Returns data for setting size of an element (container or a pane). - * - * @see _create(), onWindowResize() for container, plus others for pane - * @return JSON Returns a hash of all dimensions: top, bottom, left, right, outerWidth, innerHeight, etc - */ - var getElemDims = function ($E) { - var - d = {} // dimensions hash - , x = d.css = {} // CSS hash - , i = {} // TEMP insets - , b, p // TEMP border, padding - , off = $E.offset() - ; - d.offsetLeft = off.left; - d.offsetTop = off.top; - - $.each("Left,Right,Top,Bottom".split(","), function (idx, e) { - b = x["border" + e] = _borderWidth($E, e); - p = x["padding"+ e] = _cssNum($E, "padding"+e); - i[e] = b + p; // total offset of content from outer side - d["inset"+ e] = p; - /* WRONG ??? - // if BOX MODEL, then 'position' = PADDING (ignore borderWidth) - if ($E == $Container) - d["inset"+ e] = (state.browser.boxModel ? p : 0); - */ - }); - - d.offsetWidth = $E.innerWidth(); // true=include Padding - d.offsetHeight = $E.innerHeight(); - d.outerWidth = $E.outerWidth(); - d.outerHeight = $E.outerHeight(); - d.innerWidth = d.outerWidth - i.Left - i.Right; - d.innerHeight = d.outerHeight - i.Top - i.Bottom; - - // TESTING - x.width = $E.width(); - x.height = $E.height(); - - return d; - }; - - var getElemCSS = function ($E, list) { - var - CSS = {} - , style = $E[0].style - , props = list.split(",") - , sides = "Top,Bottom,Left,Right".split(",") - , attrs = "Color,Style,Width".split(",") - , p, s, a, i, j, k - ; - for (i=0; i < props.length; i++) { - p = props[i]; - if (p.match(/(border|padding|margin)$/)) - for (j=0; j < 4; j++) { - s = sides[j]; - if (p == "border") - for (k=0; k < 3; k++) { - a = attrs[k]; - CSS[p+s+a] = style[p+s+a]; - } - else - CSS[p+s] = style[p+s]; - } - else - CSS[p] = style[p]; - }; - return CSS - }; - - - /** - * @param {!Object} el - * @param {boolean=} allStates - */ - var getHoverClasses = function (el, allStates) { - var - $El = $(el) - , type = $El.data("layoutRole") - , pane = $El.data("layoutEdge") - , o = options[pane] - , root = o[type +"Class"] - , _pane = "-"+ pane // eg: "-west" - , _open = "-open" - , _closed = "-closed" - , _slide = "-sliding" - , _hover = "-hover " // NOTE the trailing space - , _state = $El.hasClass(root+_closed) ? _closed : _open - , _alt = _state == _closed ? _open : _closed - , classes = (root+_hover) + (root+_pane+_hover) + (root+_state+_hover) + (root+_pane+_state+_hover) - ; - if (allStates) // when 'removing' classes, also remove alternate-state classes - classes += (root+_alt+_hover) + (root+_pane+_alt+_hover); - - if (type=="resizer" && $El.hasClass(root+_slide)) - classes += (root+_slide+_hover) + (root+_pane+_slide+_hover); - - return $.trim(classes); - }; - var addHover = function (evt, el) { - var $E = $(el || this); - if (evt && $E.data("layoutRole") == "toggler") - evt.stopPropagation(); // prevent triggering 'slide' on Resizer-bar - $E.addClass( getHoverClasses($E) ); - }; - var removeHover = function (evt, el) { - var $E = $(el || this); - $E.removeClass( getHoverClasses($E, true) ); - }; - - var onResizerEnter = function (evt) { - $('body').disableSelection(); - addHover(evt, this); - }; - var onResizerLeave = function (evt, el) { - var - e = el || this // el is only passed when called by the timer - , pane = $(e).data("layoutEdge") - , name = pane +"ResizerLeave" - ; - timer.clear(pane+"_openSlider"); // cancel slideOpen timer, if set - timer.clear(name); // cancel enableSelection timer - may re/set below - if (!el) { // 1st call - mouseleave event - removeHover(evt, this); // do this on initial call - // this method calls itself on a timer because it needs to allow - // enough time for dragging to kick-in and set the isResizing flag - // dragging has a 100ms delay set, so this delay must be higher - timer.set(name, function(){ onResizerLeave(evt, e); }, 200); - } - // if user is resizing, then dragStop will enableSelection() when done - else if (!state[pane].isResizing) // 2nd call - by timer - $('body').enableSelection(); - }; - -/* - * ########################### - * INITIALIZATION METHODS - * ########################### - */ - - /** - * Initialize the layout - called automatically whenever an instance of layout is created - * - * @see none - triggered onInit - * @return An object pointer to the instance created - */ - var _create = function () { - // initialize config/options - initOptions(); - var o = options; - - // onload will CANCEL resizing if returns false - if (false === _execCallback(null, o.onload_start)) return false; - - // a center pane is required, so make sure it exists - if (!getPane('center').length) { - alert( lang.errCenterPaneMissing ); - return null; - } - - // update options with saved state, if option enabled - if (o.useStateCookie && o.cookie.autoLoad) - loadCookie(); // Update options from state-cookie - - // set environment - can update code here if $.browser is phased out - state.browser = { - mozilla: $.browser.mozilla - , webkit: $.browser.webkit || $.browser.safari - , msie: $.browser.msie - , isIE6: $.browser.msie && $.browser.version == 6 - , boxModel: $.support.boxModel - //, version: $.browser.version - not used - }; - - // initialize all layout elements - initContainer(); // set CSS as needed and init state.container dimensions - initPanes(); // size & position panes - calls initHandles() - which calls initResizable() - sizeContent(); // AFTER panes & handles have been initialized, size 'content' divs - - if (o.scrollToBookmarkOnLoad) { - var l = self.location; - if (l.hash) l.replace( l.hash ); // scrollTo Bookmark - } - - // bind hotkey function - keyDown - if required - initHotkeys(); - - // search for and bind custom-buttons - if (o.autoBindCustomButtons) initButtons(); - - // bind resizeAll() for 'this layout instance' to window.resize event - if (o.resizeWithWindow && !$Container.data("layoutRole")) // skip if 'nested' inside a pane - $(window).bind("resize."+ sID, windowResize); - - // bind window.onunload - $(window).bind("unload."+ sID, unload); - - state.initialized = true; - - _execCallback(null, o.onload_end || o.onload); - }; - - var windowResize = function () { - var delay = Number(options.resizeWithWindowDelay) || 100; // there MUST be some delay! - if (delay > 0) { - // resizing uses a delay-loop because the resize event fires repeatly - except in FF, but delay anyway - timer.clear("winResize"); // if already running - timer.set("winResize", function(){ timer.clear("winResize"); timer.clear("winResizeRepeater"); resizeAll(); }, delay); - // ALSO set fixed-delay timer, if not already running - if (!timer.data["winResizeRepeater"]) setWindowResizeRepeater(); - } - }; - - var setWindowResizeRepeater = function () { - var delay = Number(options.resizeWithWindowMaxDelay); - if (delay > 0) - timer.set("winResizeRepeater", function(){ setWindowResizeRepeater(); resizeAll(); }, delay); - }; - - var unload = function () { - var o = options; - state.cookie = getState(); // save state in case onunload has custom state-management - _execCallback(null, o.onunload_start); - if (o.useStateCookie && o.cookie.autoSave) saveCookie(); - _execCallback(null, o.onunload_end || o.onunload); - }; - - /** - * Validate and initialize container CSS and events - * - * @see _create() - */ - var initContainer = function () { - var - $C = $Container // alias - , tag = sC.tagName = $C.attr("tagName") - , fullPage= (tag == "BODY") - , props = "position,margin,padding,border" - , CSS = {} - ; - sC.selector = $C.selector.split(".slice")[0]; - sC.ref = tag +"/"+ sC.selector; // used in messages - - $C .data("layout", Instance) - .data("layoutContainer", sID) // unique identifier for internal use - .addClass(options.containerClass) - ; - - // SAVE original container CSS for use in destroy() - if (!$C.data("layoutCSS")) { - // handle props like overflow different for BODY & HTML - has 'system default' values - if (fullPage) { - CSS = $.extend( getElemCSS($C, props), { - height: $C.css("height") - , overflow: $C.css("overflow") - , overflowX: $C.css("overflowX") - , overflowY: $C.css("overflowY") - }); - // ALSO SAVE CSS - var $H = $("html"); - $H.data("layoutCSS", { - height: "auto" // FF would return a fixed px-size! - , overflow: $H.css("overflow") - , overflowX: $H.css("overflowX") - , overflowY: $H.css("overflowY") - }); - } - else // handle props normally for non-body elements - CSS = getElemCSS($C, props+",top,bottom,left,right,width,height,overflow,overflowX,overflowY"); - - $C.data("layoutCSS", CSS); - } - - try { // format html/body if this is a full page layout - if (fullPage) { - $("html").css({ - height: "100%" - , overflow: "hidden" - , overflowX: "hidden" - , overflowY: "hidden" - }); - $("body").css({ - position: "relative" - , height: "100%" - , overflow: "hidden" - , overflowX: "hidden" - , overflowY: "hidden" - , margin: 0 - , padding: 0 // TODO: test whether body-padding could be handled? - , border: "none" // a body-border creates problems because it cannot be measured! - }); - } - else { // set required CSS for overflow and position - CSS = { overflow: "hidden" } // make sure container will not 'scroll' - var - p = $C.css("position") - , h = $C.css("height") - ; - // if this is a NESTED layout, then container/outer-pane ALREADY has position and height - if (!$C.data("layoutRole")) { - if (!p || !p.match(/fixed|absolute|relative/)) - CSS.position = "relative"; // container MUST have a 'position' - /* - if (!h || h=="auto") - CSS.height = "100%"; // container MUST have a 'height' - */ - } - $C.css( CSS ); - - if ($C.is(":visible") && $C.innerHeight() < 2) - alert( lang.errContainerHeight.replace(/CONTAINER/, sC.ref) ); - } - } catch (ex) {} - - // set current layout-container dimensions - $.extend(state.container, getElemDims( $C )); - }; - - /** - * Bind layout hotkeys - if options enabled - * - * @see _create() and addPane() - * @param {string=} panes The edge(s) to process, blank = all - */ - var initHotkeys = function (panes) { - if (!panes || panes == "all") panes = _c.borderPanes; - // bind keyDown to capture hotkeys, if option enabled for ANY pane - $.each(panes.split(","), function (i, pane) { - var o = options[pane]; - if (o.enableCursorHotkey || o.customHotkey) { - $(document).bind("keydown."+ sID, keyDown); // only need to bind this ONCE - return false; // BREAK - binding was done - } - }); - }; - - /** - * Build final OPTIONS data - * - * @see _create() - */ - var initOptions = function () { - // simplify logic by making sure passed 'opts' var has basic keys - opts = _transformData( opts ); - - // TODO: create a compatibility add-on for new UI widget that will transform old option syntax - var newOpts = { - applyDefaultStyles: "applyDemoStyles" - }; - renameOpts(opts.defaults); - $.each(_c.allPanes.split(","), function (i, pane) { - renameOpts(opts[pane]); - }); - - // update default effects, if case user passed key - if (opts.effects) { - $.extend( effects, opts.effects ); - delete opts.effects; - } - $.extend( options.cookie, opts.cookie ); - - // see if any 'global options' were specified - var globals = "name,containerClass,zIndex,scrollToBookmarkOnLoad,resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay,"+ - "onresizeall,onresizeall_start,onresizeall_end,onload,onload_start,onload_end,onunload,onunload_start,onunload_end,autoBindCustomButtons,useStateCookie"; - $.each(globals.split(","), function (i, key) { - if (opts[key] !== undefined) - options[key] = opts[key]; - else if (opts.defaults[key] !== undefined) { - options[key] = opts.defaults[key]; - delete opts.defaults[key]; - } - }); - - // remove any 'defaults' that MUST be set 'per-pane' - $.each("paneSelector,resizerCursor,customHotkey".split(","), - function (i, key) { delete opts.defaults[key]; } // is OK if key does not exist - ); - - // now update options.defaults - $.extend( true, options.defaults, opts.defaults ); - - // merge config for 'center-pane' - border-panes handled in the loop below - _c.center = $.extend( true, {}, _c.panes, _c.center ); - // update config.zIndex values if zIndex option specified - var z = options.zIndex; - if (z === 0 || z > 0) { - _c.zIndex.pane_normal = z; - _c.zIndex.resizer_normal = z+1; - _c.zIndex.iframe_mask = z+1; - } - - // merge options for 'center-pane' - border-panes handled in the loop below - $.extend( options.center, opts.center ); - // Most 'default options' do not apply to 'center', so add only those that DO - var o_Center = $.extend( true, {}, options.defaults, opts.defaults, options.center ); // TEMP data - var optionsCenter = ("paneClass,contentSelector,applyDemoStyles,triggerEventsOnLoad,showOverflowOnHover," - + "onresize,onresize_start,onresize_end,resizeNestedLayout,resizeContentWhileDragging," - + "onsizecontent,onsizecontent_start,onsizecontent_end").split(","); - $.each(optionsCenter, - function (i, key) { options.center[key] = o_Center[key]; } - ); - - var o, defs = options.defaults; - - // create a COMPLETE set of options for EACH border-pane - $.each(_c.borderPanes.split(","), function (i, pane) { - - // apply 'pane-defaults' to CONFIG.[PANE] - _c[pane] = $.extend( true, {}, _c.panes, _c[pane] ); - - // apply 'pane-defaults' + user-options to OPTIONS.PANE - o = options[pane] = $.extend( true, {}, options.defaults, options[pane], opts.defaults, opts[pane] ); - - // make sure we have base-classes - if (!o.paneClass) o.paneClass = "ui-layout-pane"; - if (!o.resizerClass) o.resizerClass = "ui-layout-resizer"; - if (!o.togglerClass) o.togglerClass = "ui-layout-toggler"; - - // create FINAL fx options for each pane, ie: options.PANE.fxName/fxSpeed/fxSettings[_open|_close] - $.each(["_open","_close",""], function (i,n) { - var - sName = "fxName"+n - , sSpeed = "fxSpeed"+n - , sSettings = "fxSettings"+n - ; - // recalculate fxName according to specificity rules - o[sName] = - opts[pane][sName] // opts.west.fxName_open - || opts[pane].fxName // opts.west.fxName - || opts.defaults[sName] // opts.defaults.fxName_open - || opts.defaults.fxName // opts.defaults.fxName - || o[sName] // options.west.fxName_open - || o.fxName // options.west.fxName - || defs[sName] // options.defaults.fxName_open - || defs.fxName // options.defaults.fxName - || "none" - ; - // validate fxName to be sure is a valid effect - var fxName = o[sName]; - if (fxName == "none" || !$.effects || !$.effects[fxName] || (!effects[fxName] && !o[sSettings] && !o.fxSettings)) - fxName = o[sName] = "none"; // effect not loaded, OR undefined FX AND fxSettings not passed - // set vars for effects subkeys to simplify logic - var - fx = effects[fxName] || {} // effects.slide - , fx_all = fx.all || {} // effects.slide.all - , fx_pane = fx[pane] || {} // effects.slide.west - ; - // RECREATE the fxSettings[_open|_close] keys using specificity rules - o[sSettings] = $.extend( - {} - , fx_all // effects.slide.all - , fx_pane // effects.slide.west - , defs.fxSettings || {} // options.defaults.fxSettings - , defs[sSettings] || {} // options.defaults.fxSettings_open - , o.fxSettings // options.west.fxSettings - , o[sSettings] // options.west.fxSettings_open - , opts.defaults.fxSettings // opts.defaults.fxSettings - , opts.defaults[sSettings] || {} // opts.defaults.fxSettings_open - , opts[pane].fxSettings // opts.west.fxSettings - , opts[pane][sSettings] || {} // opts.west.fxSettings_open - ); - // recalculate fxSpeed according to specificity rules - o[sSpeed] = - opts[pane][sSpeed] // opts.west.fxSpeed_open - || opts[pane].fxSpeed // opts.west.fxSpeed (pane-default) - || opts.defaults[sSpeed] // opts.defaults.fxSpeed_open - || opts.defaults.fxSpeed // opts.defaults.fxSpeed - || o[sSpeed] // options.west.fxSpeed_open - || o[sSettings].duration // options.west.fxSettings_open.duration - || o.fxSpeed // options.west.fxSpeed - || o.fxSettings.duration // options.west.fxSettings.duration - || defs.fxSpeed // options.defaults.fxSpeed - || defs.fxSettings.duration// options.defaults.fxSettings.duration - || fx_pane.duration // effects.slide.west.duration - || fx_all.duration // effects.slide.all.duration - || "normal" // DEFAULT - ; - }); - - }); - - function renameOpts (O) { - for (var key in newOpts) { - if (O[key] != undefined) { - O[newOpts[key]] = O[key]; - delete O[key]; - } - } - } - }; - - /** - * Initialize module objects, styling, size and position for all panes - * - * @see _create() - * @param {string} pane The pane to process - */ - var getPane = function (pane) { - var sel = options[pane].paneSelector - if (sel.substr(0,1)==="#") // ID selector - // NOTE: elements selected 'by ID' DO NOT have to be 'children' - return $Container.find(sel).eq(0); - else { // class or other selector - var $P = $Container.children(sel).eq(0); - // look for the pane nested inside a 'form' element - return $P.length ? $P : $Container.children("form:first").children(sel).eq(0); - } - }; - var initPanes = function () { - // NOTE: do north & south FIRST so we can measure their height - do center LAST - $.each(_c.allPanes.split(","), function (idx, pane) { - addPane( pane ); - }); - - // init the pane-handles NOW in case we have to hide or close the pane below - initHandles(); - - // now that all panes have been initialized and initially-sized, - // make sure there is really enough space available for each pane - $.each(_c.borderPanes.split(","), function (i, pane) { - if ($Ps[pane] && state[pane].isVisible) { // pane is OPEN - setSizeLimits(pane); - makePaneFit(pane); // pane may be Closed, Hidden or Resized by makePaneFit() - } - }); - // size center-pane AGAIN in case we 'closed' a border-pane in loop above - sizeMidPanes("center"); - - // trigger onResize callbacks for all panes with triggerEventsOnLoad = true - $.each(_c.allPanes.split(","), function (i, pane) { - var o = options[pane]; - if ($Ps[pane] && state[pane].isVisible) { // pane is OPEN - if (o.triggerEventsOnLoad) - _execCallback(pane, o.onresize_end || o.onresize); - resizeNestedLayout(pane); - } - }); - - if ($Container.innerHeight() < 2) - alert( lang.errContainerHeight.replace(/CONTAINER/, sC.ref) ); - }; - - /** - * Remove a pane from the layout - subroutine of destroy() - * - * @see initPanes() - * @param {string} pane The pane to process - */ - var addPane = function (pane) { - var - o = options[pane] - , s = state[pane] - , c = _c[pane] - , fx = s.fx - , dir = c.dir - , spacing = o.spacing_open || 0 - , isCenter = (pane == "center") - , CSS = {} - , $P = $Ps[pane] - , size, minSize, maxSize - ; - - // if pane-pointer already exists, remove the old one first - if ($P) - removePane( pane ); - else - $Cs[pane] = false; // init - - $P = $Ps[pane] = getPane(pane); - if (!$P.length) { - $Ps[pane] = false; // logic - return; - } - - // SAVE original Pane CSS - if (!$P.data("layoutCSS")) { - var props = "position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border"; - $P.data("layoutCSS", getElemCSS($P, props)); - } - - // add basic classes & attributes - $P - .data("parentLayout", Instance) - .data("layoutRole", "pane") - .data("layoutEdge", pane) - .css(c.cssReq).css("zIndex", _c.zIndex.pane_normal) - .css(o.applyDemoStyles ? c.cssDemo : {}) // demo styles - .addClass( o.paneClass +" "+ o.paneClass+"-"+pane ) // default = "ui-layout-pane ui-layout-pane-west" - may be a dupe of 'paneSelector' - .bind("mouseenter."+ sID, addHover ) - .bind("mouseleave."+ sID, removeHover ) - ; - - // see if this pane has a 'scrolling-content element' - initContent(pane, false); // false = do NOT sizeContent() - called later - - if (!isCenter) { - // call _parseSize AFTER applying pane classes & styles - but before making visible (if hidden) - // if o.size is auto or not valid, then MEASURE the pane and use that as it's 'size' - size = s.size = _parseSize(pane, o.size); - minSize = _parseSize(pane,o.minSize) || 1; - maxSize = _parseSize(pane,o.maxSize) || 100000; - if (size > 0) size = max(min(size, maxSize), minSize); - - // state for border-panes - s.isClosed = false; // true = pane is closed - s.isSliding = false; // true = pane is currently open by 'sliding' over adjacent panes - s.isResizing= false; // true = pane is in process of being resized - s.isHidden = false; // true = pane is hidden - no spacing, resizer or toggler is visible! - } - // state for all panes - s.tagName = $P.attr("tagName"); - s.edge = pane // useful if pane is (or about to be) 'swapped' - easy find out where it is (or is going) - s.noRoom = false; // true = pane 'automatically' hidden due to insufficient room - will unhide automatically - s.isVisible = true; // false = pane is invisible - closed OR hidden - simplify logic - - // set css-position to account for container borders & padding - switch (pane) { - case "north": CSS.top = sC.insetTop; - CSS.left = sC.insetLeft; - CSS.right = sC.insetRight; - break; - case "south": CSS.bottom = sC.insetBottom; - CSS.left = sC.insetLeft; - CSS.right = sC.insetRight; - break; - case "west": CSS.left = sC.insetLeft; // top, bottom & height set by sizeMidPanes() - break; - case "east": CSS.right = sC.insetRight; // ditto - break; - case "center": // top, left, width & height set by sizeMidPanes() - } - - if (dir == "horz") // north or south pane - CSS.height = max(1, cssH(pane, size)); - else if (dir == "vert") // east or west pane - CSS.width = max(1, cssW(pane, size)); - //else if (isCenter) {} - - $P.css(CSS); // apply size -- top, bottom & height will be set by sizeMidPanes - if (dir != "horz") sizeMidPanes(pane, true); // true = skipCallback - - // NOW make the pane visible - in case was initially hidden - if (!s.noRoom) - $P.css({ visibility: "visible", display: "block" }); - - // close or hide the pane if specified in settings - if (o.initClosed && o.closable) - close(pane, true, true); // true, true = force, noAnimation - else if (o.initHidden || o.initClosed) - hide(pane); // will be completely invisible - no resizer or spacing - // ELSE setAsOpen() - called later by initHandles() - - // check option for auto-handling of pop-ups & drop-downs - if (o.showOverflowOnHover) - $P.hover( allowOverflow, resetOverflow ); - - // if adding a pane AFTER initialization, then... - if (state.initialized) { - initHandles( pane ); - initHotkeys( pane ); - resizeAll(); // will sizeContent if pane is visible - if (s.isVisible) { // pane is OPEN - if (o.triggerEventsOnLoad) - _execCallback(pane, o.onresize_end || o.onresize); - resizeNestedLayout(pane); - } - } - }; - - /** - * Initialize module objects, styling, size and position for all resize bars and toggler buttons - * - * @see _create() - * @param {string=} panes The edge(s) to process, blank = all - */ - var initHandles = function (panes) { - if (!panes || panes == "all") panes = _c.borderPanes; - - // create toggler DIVs for each pane, and set object pointers for them, eg: $R.north = north toggler DIV - $.each(panes.split(","), function (i, pane) { - var $P = $Ps[pane]; - $Rs[pane] = false; // INIT - $Ts[pane] = false; - if (!$P) return; // pane does not exist - skip - - var - o = options[pane] - , s = state[pane] - , c = _c[pane] - , rClass = o.resizerClass - , tClass = o.togglerClass - , side = c.side.toLowerCase() - , spacing = (s.isVisible ? o.spacing_open : o.spacing_closed) - , _pane = "-"+ pane // used for classNames - , _state = (s.isVisible ? "-open" : "-closed") // used for classNames - // INIT RESIZER BAR - , $R = $Rs[pane] = $("
                ") - // INIT TOGGLER BUTTON - , $T = (o.closable ? $Ts[pane] = $("
                ") : false) - ; - - //if (s.isVisible && o.resizable) ... handled by initResizable - if (!s.isVisible && o.slidable) - $R.attr("title", o.sliderTip).css("cursor", o.sliderCursor); - - $R - // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "paneLeft-resizer" - .attr("id", (o.paneSelector.substr(0,1)=="#" ? o.paneSelector.substr(1) + "-resizer" : "")) - .data("parentLayout", Instance) - .data("layoutRole", "resizer") - .data("layoutEdge", pane) - .css(_c.resizers.cssReq).css("zIndex", _c.zIndex.resizer_normal) - .css(o.applyDemoStyles ? _c.resizers.cssDemo : {}) // add demo styles - .addClass(rClass +" "+ rClass+_pane) - .appendTo($Container) // append DIV to container - ; - - if ($T) { - $T - // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "#paneLeft-toggler" - .attr("id", (o.paneSelector.substr(0,1)=="#" ? o.paneSelector.substr(1) + "-toggler" : "")) - .data("parentLayout", Instance) - .data("layoutRole", "toggler") - .data("layoutEdge", pane) - .css(_c.togglers.cssReq) // add base/required styles - .css(o.applyDemoStyles ? _c.togglers.cssDemo : {}) // add demo styles - .addClass(tClass +" "+ tClass+_pane) - .appendTo($R) // append SPAN to resizer DIV - ; - // ADD INNER-SPANS TO TOGGLER - if (o.togglerContent_open) // ui-layout-open - $(""+ o.togglerContent_open +"") - .data("layoutRole", "togglerContent") - .data("layoutEdge", pane) - .addClass("content content-open") - .css("display","none") - .appendTo( $T ) - //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-open instead! - ; - if (o.togglerContent_closed) // ui-layout-closed - $(""+ o.togglerContent_closed +"") - .data("layoutRole", "togglerContent") - .data("layoutEdge", pane) - .addClass("content content-closed") - .css("display","none") - .appendTo( $T ) - //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-closed instead! - ; - // ADD TOGGLER.click/.hover - enableClosable(pane); - } - - // add Draggable events - initResizable(pane); - - // ADD CLASSNAMES & SLIDE-BINDINGS - eg: class="resizer resizer-west resizer-open" - if (s.isVisible) - setAsOpen(pane); // onOpen will be called, but NOT onResize - else { - setAsClosed(pane); // onClose will be called - bindStartSlidingEvent(pane, true); // will enable events IF option is set - } - - }); - - // SET ALL HANDLE DIMENSIONS - sizeHandles("all"); - }; - - - /** - * Initialize scrolling ui-layout-content div - if exists - * - * @see initPane() - or externally after an Ajax injection - * @param {string} pane The pane to process - * @param {boolean=} resize Size content after init, default = true - */ - var initContent = function (pane, resize) { - var - o = options[pane] - , sel = o.contentSelector - , $P = $Ps[pane] - , $C - ; - if (sel) $C = $Cs[pane] = (o.findNestedContent) - ? $P.find(sel).eq(0) // match 1-element only - : $P.children(sel).eq(0) - ; - if ($C && $C.length) { - // SAVE original Pane CSS - if (!$C.data("layoutCSS")) - $C.data("layoutCSS", getElemCSS($C, "height")); - $C.css( _c.content.cssReq ); - if (o.applyDemoStyles) { - $C.css( _c.content.cssDemo ); // add padding & overflow: auto to content-div - $P.css( _c.content.cssDemoPane ); // REMOVE padding/scrolling from pane - } - state[pane].content = {}; // init content state - if (resize !== false) sizeContent(pane); - // sizeContent() is called AFTER init of all elements - } - else - $Cs[pane] = false; - }; - - - /** - * Searches for .ui-layout-button-xxx elements and auto-binds them as layout-buttons - * - * @see _create() - */ - var initButtons = function () { - var pre = "ui-layout-button-", name; - $.each("toggle,open,close,pin,toggle-slide,open-slide".split(","), function (i, action) { - $.each(_c.borderPanes.split(","), function (ii, pane) { - $("."+pre+action+"-"+pane).each(function(){ - // if button was previously 'bound', data.layoutName was set, but is blank if layout has no 'name' - name = $(this).data("layoutName") || $(this).attr("layoutName"); - if (name == undefined || name == options.name) - bindButton(this, action, pane); - }); - }); - }); - }; - - /** - * Add resize-bars to all panes that specify it in options - * -dependancy: $.fn.resizable - will skip if not found - * - * @see _create() - * @param {string=} panes The edge(s) to process, blank = all - */ - var initResizable = function (panes) { - var - draggingAvailable = (typeof $.fn.draggable == "function") - , $Frames, side // set in start() - ; - if (!panes || panes == "all") panes = _c.borderPanes; - - $.each(panes.split(","), function (idx, pane) { - var - o = options[pane] - , s = state[pane] - , c = _c[pane] - , side = (c.dir=="horz" ? "top" : "left") - , r, live // set in start because may change - ; - if (!draggingAvailable || !$Ps[pane] || !o.resizable) { - o.resizable = false; - return true; // skip to next - } - - var - $P = $Ps[pane] - , $R = $Rs[pane] - , base = o.resizerClass - // 'drag' classes are applied to the ORIGINAL resizer-bar while dragging is in process - , resizerClass = base+"-drag" // resizer-drag - , resizerPaneClass = base+"-"+pane+"-drag" // resizer-north-drag - // 'helper' class is applied to the CLONED resizer-bar while it is being dragged - , helperClass = base+"-dragging" // resizer-dragging - , helperPaneClass = base+"-"+pane+"-dragging" // resizer-north-dragging - , helperLimitClass = base+"-dragging-limit" // resizer-drag - , helperPaneLimitClass = base+"-"+pane+"-dragging-limit" // resizer-north-drag - , helperClassesSet = false // logic var - ; - - if (!s.isClosed) - $R - .attr("title", o.resizerTip) - .css("cursor", o.resizerCursor) // n-resize, s-resize, etc - ; - - $R.bind("mouseenter."+ sID, onResizerEnter) - .bind("mouseleave."+ sID, onResizerLeave); - - $R.draggable({ - containment: $Container[0] // limit resizing to layout container - , axis: (c.dir=="horz" ? "y" : "x") // limit resizing to horz or vert axis - , delay: 0 - , distance: 1 - // basic format for helper - style it using class: .ui-draggable-dragging - , helper: "clone" - , opacity: o.resizerDragOpacity - , addClasses: false // avoid ui-state-disabled class when disabled - //, iframeFix: o.draggableIframeFix // TODO: consider using when bug is fixed - , zIndex: _c.zIndex.resizer_drag - - , start: function (e, ui) { - // REFRESH options & state pointers in case we used swapPanes - o = options[pane]; - s = state[pane]; - // re-read options - live = o.resizeWhileDragging; - - // ondrag_start callback - will CANCEL hide if returns false - // TODO: dragging CANNOT be cancelled like this, so see if there is a way? - if (false === _execCallback(pane, o.ondrag_start)) return false; - - _c.isLayoutBusy = true; // used by sizePane() logic during a liveResize - s.isResizing = true; // prevent pane from closing while resizing - timer.clear(pane+"_closeSlider"); // just in case already triggered - - // SET RESIZER LIMITS - used in drag() - setSizeLimits(pane); // update pane/resizer state - r = s.resizerPosition; - - $R.addClass( resizerClass +" "+ resizerPaneClass ); // add drag classes - helperClassesSet = false; // reset logic var - see drag() - - // MASK PANES WITH IFRAMES OR OTHER TROUBLESOME ELEMENTS - $Frames = $(o.maskIframesOnResize === true ? "iframe" : o.maskIframesOnResize).filter(":visible"); - var id, i=0; // ID incrementer - used when 'resizing' masks during dynamic resizing - $Frames.each(function() { - id = "ui-layout-mask-"+ (++i); - $(this).data("layoutMaskID", id); // tag iframe with corresponding maskID - $('
                ') - .css({ - background: "#fff" - , opacity: "0.001" - , zIndex: _c.zIndex.iframe_mask - , position: "absolute" - , width: this.offsetWidth+"px" - , height: this.offsetHeight+"px" - }) - .css($(this).position()) // top & left -- changed from offset() - .appendTo(this.parentNode) // put mask-div INSIDE pane to avoid zIndex issues - ; - }); - - // DISABLE TEXT SELECTION (probably already done by resizer.mouseOver) - $('body').disableSelection(); - } - - , drag: function (e, ui) { - if (!helperClassesSet) { // can only add classes after clone has been added to the DOM - //$(".ui-draggable-dragging") - ui.helper - .addClass( helperClass +" "+ helperPaneClass ) // add helper classes - .css({ right: "auto", bottom: "auto" }) // fix dir="rtl" issue - .children().css("visibility","hidden") // hide toggler inside dragged resizer-bar - ; - helperClassesSet = true; - // draggable bug!? RE-SET zIndex to prevent E/W resize-bar showing through N/S pane! - if (s.isSliding) $Ps[pane].css("zIndex", _c.zIndex.pane_sliding); - } - // CONTAIN RESIZER-BAR TO RESIZING LIMITS - var limit = 0; - if (ui.position[side] < r.min) { - ui.position[side] = r.min; - limit = -1; - } - else if (ui.position[side] > r.max) { - ui.position[side] = r.max; - limit = 1; - } - // ADD/REMOVE dragging-limit CLASS - if (limit) { - ui.helper.addClass( helperLimitClass +" "+ helperPaneLimitClass ); // at dragging-limit - window.defaultStatus = "Panel has reached its " + - ((limit>0 && pane.match(/north|west/)) || (limit<0 && pane.match(/south|east/)) ? "maximum" : "minimum") +" size"; - } - else { - ui.helper.removeClass( helperLimitClass +" "+ helperPaneLimitClass ); // not at dragging-limit - window.defaultStatus = ""; - } - // DYNAMICALLY RESIZE PANES IF OPTION ENABLED - if (live) resizePanes(e, ui, pane); - } - - , stop: function (e, ui) { - $('body').enableSelection(); // RE-ENABLE TEXT SELECTION - window.defaultStatus = ""; // clear 'resizing limit' message from statusbar - $R.removeClass( resizerClass +" "+ resizerPaneClass ); // remove drag classes from Resizer - s.isResizing = false; - _c.isLayoutBusy = false; // set BEFORE resizePanes so other logic can pick it up - resizePanes(e, ui, pane, true); // true = resizingDone - } - - }); - - /** - * resizePanes - * - * Sub-routine called from stop() and optionally drag() - * - * @param {!Object} evt - * @param {!Object} ui - * @param {string} pane - * @param {boolean=} resizingDone - */ - var resizePanes = function (evt, ui, pane, resizingDone) { - var - dragPos = ui.position - , c = _c[pane] - , resizerPos, newSize - , i = 0 // ID incrementer - ; - switch (pane) { - case "north": resizerPos = dragPos.top; break; - case "west": resizerPos = dragPos.left; break; - case "south": resizerPos = sC.offsetHeight - dragPos.top - o.spacing_open; break; - case "east": resizerPos = sC.offsetWidth - dragPos.left - o.spacing_open; break; - }; - - if (resizingDone) { - // Remove OR Resize MASK(S) created in drag.start - $("div.ui-layout-mask").each(function() { this.parentNode.removeChild(this); }); - //$("div.ui-layout-mask").remove(); // TODO: Is this less efficient? - - // ondrag_start callback - will CANCEL hide if returns false - if (false === _execCallback(pane, o.ondrag_end || o.ondrag)) return false; - } - else - $Frames.each(function() { - $("#"+ $(this).data("layoutMaskID")) // get corresponding mask by ID - .css($(this).position()) // update top & left - .css({ // update width & height - width: this.offsetWidth +"px" - , height: this.offsetHeight+"px" - }) - ; - }); - - // remove container margin from resizer position to get the pane size - newSize = resizerPos - sC["inset"+ c.side]; - manualSizePane(pane, newSize); - } - }); - }; - - - /** - * Destroy this layout and reset all elements - */ - var destroy = function () { - // UNBIND layout events and remove global object - $(window).unbind("."+ sID); - $(document).unbind("."+ sID); - - // loop all panes to remove layout classes, attributes and bindings - $.each(_c.allPanes.split(","), function (i, pane) { - removePane( pane, false, true ); // true = skipResize - }); - - // reset layout-container - var $C = $Container - .removeData("layout") - .removeData("layoutContainer") - .removeClass(options.containerClass) - ; - - // do NOT reset container CSS if is a 'pane' in an outer-layout - ie, THIS layout is 'nested' - if (!$C.data("layoutEdge") && $C.data("layoutCSS")) // RESET CSS - $C.css( $C.data("layoutCSS") ).removeData("layoutCSS"); - - // for full-page layouts, also reset the CSS - if (sC.tagName == "BODY" && ($C = $("html")).data("layoutCSS")) // RESET CSS - $C.css( $C.data("layoutCSS") ).removeData("layoutCSS"); - - // trigger state-management and onunload callback - unload(); - }; - - /** - * Remove a pane from the layout - subroutine of destroy() - * - * @see destroy() - * @param {string} pane The pane to process - * @param {boolean=} remove Remove the DOM element? default = false - * @param {boolean=} skipResize Skip calling resizeAll()? default = false - */ - var removePane = function (pane, remove, skipResize) { - if (!$Ps[pane]) return; // NO SUCH PANE - var - $P = $Ps[pane] - , $C = $Cs[pane] - , $R = $Rs[pane] - , $T = $Ts[pane] - // create list of ALL pane-classes that need to be removed - , _open = "-open" - , _sliding= "-sliding" - , _closed = "-closed" - , root = options[pane].paneClass // default="ui-layout-pane" - , pRoot = root +"-"+ pane // eg: "ui-layout-pane-west" - , classes = [ root, root+_open, root+_closed, root+_sliding, // generic classes - pRoot, pRoot+_open, pRoot+_closed, pRoot+_sliding ] // pane-specific classes - ; - $.merge(classes, getHoverClasses($P, true)); // ADD hover-classes - - if (!$P || !$P.length) { - } // pane has already been deleted! - else if (remove && !$P.data("layoutContainer") && (!$C || !$C.length || !$C.data("layoutContainer"))) - $P.remove(); - else { - $P .removeClass( classes.join(" ") ) // remove ALL pane-classes - .removeData("layoutParent") - .removeData("layoutRole") - .removeData("layoutEdge") - .removeData("autoHidden") // in case set - .unbind("."+ sID) // remove ALL Layout events - // TODO: remove these extra unbind commands when jQuery is fixed - //.unbind("mouseenter"+ sID) - //.unbind("mouseleave"+ sID) - ; - // do NOT reset CSS if this pane is STILL the container of a nested layout! - // the nested layout will reset its 'container' when/if it is destroyed - if (!$P.data("layoutContainer")) - $P.css( $P.data("layoutCSS") ).removeData("layoutCSS"); - // DITTO for the Content elem - if ($C && $C.length && !$C.data("layoutContainer")) - $C.css( $C.data("layoutCSS") ).removeData("layoutCSS"); - } - - // REMOVE pane's resizer and toggler elements - if ($T && $T.length) $T.remove(); - if ($R && $R.length) $R.remove(); - - // CLEAR all pointers and data - $Ps[pane] = $Cs[pane] = $Rs[pane] = $Ts[pane] = false; - - // skip resize & state-clear when called from destroy() - if (!skipResize) { - resizeAll(); - state[pane] = {}; - } - }; - - -/* - * ########################### - * ACTION METHODS - * ########################### - */ - - /** - * Completely 'hides' a pane, including its spacing - as if it does not exist - * The pane is not actually 'removed' from the source, so can use 'show' to un-hide it - * - * @param {string} pane The pane being hidden, ie: north, south, east, or west - * @param {boolean=} noAnimation - */ - var hide = function (pane, noAnimation) { - var - o = options[pane] - , s = state[pane] - , $P = $Ps[pane] - , $R = $Rs[pane] - ; - if (!$P || s.isHidden) return; // pane does not exist OR is already hidden - - // onhide_start callback - will CANCEL hide if returns false - if (state.initialized && false === _execCallback(pane, o.onhide_start)) return; - - s.isSliding = false; // just in case - - // now hide the elements - if ($R) $R.hide(); // hide resizer-bar - if (!state.initialized || s.isClosed) { - s.isClosed = true; // to trigger open-animation on show() - s.isHidden = true; - s.isVisible = false; - $P.hide(); // no animation when loading page - sizeMidPanes(_c[pane].dir == "horz" ? "all" : "center"); - if (state.initialized || o.triggerEventsOnLoad) - _execCallback(pane, o.onhide_end || o.onhide); - } - else { - s.isHiding = true; // used by onclose - close(pane, false, noAnimation); // adjust all panes to fit - } - }; - - /** - * Show a hidden pane - show as 'closed' by default unless openPane = true - * - * @param {string} pane The pane being opened, ie: north, south, east, or west - * @param {boolean=} openPane - * @param {boolean=} noAnimation - * @param {boolean=} noAlert - */ - var show = function (pane, openPane, noAnimation, noAlert) { - var - o = options[pane] - , s = state[pane] - , $P = $Ps[pane] - , $R = $Rs[pane] - ; - if (!$P || !s.isHidden) return; // pane does not exist OR is not hidden - - // onshow_start callback - will CANCEL show if returns false - if (false === _execCallback(pane, o.onshow_start)) return; - - s.isSliding = false; // just in case - s.isShowing = true; // used by onopen/onclose - //s.isHidden = false; - will be set by open/close - if not cancelled - - // now show the elements - //if ($R) $R.show(); - will be shown by open/close - if (openPane === false) - close(pane, true); // true = force - else - open(pane, false, noAnimation, noAlert); // adjust all panes to fit - }; - - - /** - * Toggles a pane open/closed by calling either open or close - * - * @param {string} pane The pane being toggled, ie: north, south, east, or west - * @param {boolean=} slide - */ - var toggle = function (pane, slide) { - if (!isStr(pane)) { - pane.stopImmediatePropagation(); // pane = event - pane = $(this).data("layoutEdge"); // bound to $R.dblclick - } - var s = state[str(pane)]; - if (s.isHidden) - show(pane); // will call 'open' after unhiding it - else if (s.isClosed) - open(pane, !!slide); - else - close(pane); - }; - - - /** - * Utility method used during init or other auto-processes - * - * @param {string} pane The pane being closed - * @param {boolean=} setHandles - */ - var _closePane = function (pane, setHandles) { - var - $P = $Ps[pane] - , s = state[pane] - ; - $P.hide(); - s.isClosed = true; - s.isVisible = false; - // UNUSED: if (setHandles) setAsClosed(pane, true); // true = force - }; - - /** - * Close the specified pane (animation optional), and resize all other panes as needed - * - * @param {string} pane The pane being closed, ie: north, south, east, or west - * @param {boolean=} force - * @param {boolean=} noAnimation - * @param {boolean=} skipCallback - */ - var close = function (pane, force, noAnimation, skipCallback) { - if (!state.initialized) { - _closePane(pane) - return; - } - var - $P = $Ps[pane] - , $R = $Rs[pane] - , $T = $Ts[pane] - , o = options[pane] - , s = state[pane] - , doFX = !noAnimation && !s.isClosed && (o.fxName_close != "none") - // transfer logic vars to temp vars - , isShowing = s.isShowing - , isHiding = s.isHiding - , wasSliding = s.isSliding - ; - // now clear the logic vars - delete s.isShowing; - delete s.isHiding; - - if (!$P || (!o.closable && !isShowing && !isHiding)) return; // invalid request // (!o.resizable && !o.closable) ??? - else if (!force && s.isClosed && !isShowing) return; // already closed - - if (_c.isLayoutBusy) { // layout is 'busy' - probably with an animation - _queue("close", pane, force); // set a callback for this action, if possible - return; // ABORT - } - - // onclose_start callback - will CANCEL hide if returns false - // SKIP if just 'showing' a hidden pane as 'closed' - if (!isShowing && false === _execCallback(pane, o.onclose_start)) return; - - // SET flow-control flags - _c[pane].isMoving = true; - _c.isLayoutBusy = true; - - s.isClosed = true; - s.isVisible = false; - // update isHidden BEFORE sizing panes - if (isHiding) s.isHidden = true; - else if (isShowing) s.isHidden = false; - - if (s.isSliding) // pane is being closed, so UNBIND trigger events - bindStopSlidingEvents(pane, false); // will set isSliding=false - else // resize panes adjacent to this one - sizeMidPanes(_c[pane].dir == "horz" ? "all" : "center", false); // false = NOT skipCallback - - // if this pane has a resizer bar, move it NOW - before animation - setAsClosed(pane); - - // CLOSE THE PANE - if (doFX) { // animate the close - lockPaneForFX(pane, true); // need to set left/top so animation will work - $P.hide( o.fxName_close, o.fxSettings_close, o.fxSpeed_close, function () { - lockPaneForFX(pane, false); // undo - close_2(); - }); - } - else { // hide the pane without animation - $P.hide(); - close_2(); - }; - - // SUBROUTINE - function close_2 () { - if (s.isClosed) { // make sure pane was not 'reopened' before animation finished! - - bindStartSlidingEvent(pane, true); // will enable if o.slidable = true - - // if opposite-pane was autoClosed, see if it can be autoOpened now - var altPane = _c.altSide[pane]; - if (state[ altPane ].noRoom) { - setSizeLimits( altPane ); - makePaneFit( altPane ); - } - - if (!skipCallback && (state.initialized || o.triggerEventsOnLoad)) { - // onclose callback - UNLESS just 'showing' a hidden pane as 'closed' - if (!isShowing) _execCallback(pane, o.onclose_end || o.onclose); - // onhide OR onshow callback - if (isShowing) _execCallback(pane, o.onshow_end || o.onshow); - if (isHiding) _execCallback(pane, o.onhide_end || o.onhide); - } - } - // execute internal flow-control callback - _dequeue(pane); - } - }; - - /** - * @param {string} pane The pane just closed, ie: north, south, east, or west - */ - var setAsClosed = function (pane) { - var - $P = $Ps[pane] - , $R = $Rs[pane] - , $T = $Ts[pane] - , o = options[pane] - , s = state[pane] - , side = _c[pane].side.toLowerCase() - , inset = "inset"+ _c[pane].side - , rClass = o.resizerClass - , tClass = o.togglerClass - , _pane = "-"+ pane // used for classNames - , _open = "-open" - , _sliding= "-sliding" - , _closed = "-closed" - ; - $R - .css(side, sC[inset]) // move the resizer - .removeClass( rClass+_open +" "+ rClass+_pane+_open ) - .removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) - .addClass( rClass+_closed +" "+ rClass+_pane+_closed ) - .unbind("dblclick."+ sID) - ; - // DISABLE 'resizing' when closed - do this BEFORE bindStartSlidingEvent? - if (o.resizable && typeof $.fn.draggable == "function") - $R - .draggable("disable") - .removeClass("ui-state-disabled") // do NOT apply disabled styling - not suitable here - .css("cursor", "default") - .attr("title","") - ; - - // if pane has a toggler button, adjust that too - if ($T) { - $T - .removeClass( tClass+_open +" "+ tClass+_pane+_open ) - .addClass( tClass+_closed +" "+ tClass+_pane+_closed ) - .attr("title", o.togglerTip_closed) // may be blank - ; - // toggler-content - if exists - $T.children(".content-open").hide(); - $T.children(".content-closed").css("display","block"); - } - - // sync any 'pin buttons' - syncPinBtns(pane, false); - - if (state.initialized) { - // resize 'length' and position togglers for adjacent panes - sizeHandles("all"); - } - }; - - /** - * Open the specified pane (animation optional), and resize all other panes as needed - * - * @param {string} pane The pane being opened, ie: north, south, east, or west - * @param {boolean=} slide - * @param {boolean=} noAnimation - * @param {boolean=} noAlert - */ - var open = function (pane, slide, noAnimation, noAlert) { - var - $P = $Ps[pane] - , $R = $Rs[pane] - , $T = $Ts[pane] - , o = options[pane] - , s = state[pane] - , doFX = !noAnimation && s.isClosed && (o.fxName_open != "none") - // transfer logic var to temp var - , isShowing = s.isShowing - ; - // now clear the logic var - delete s.isShowing; - - if (!$P || (!o.resizable && !o.closable && !isShowing)) return; // invalid request - else if (s.isVisible && !s.isSliding) return; // already open - - // pane can ALSO be unhidden by just calling show(), so handle this scenario - if (s.isHidden && !isShowing) { - show(pane, true); - return; - } - - if (_c.isLayoutBusy) { // layout is 'busy' - probably with an animation - _queue("open", pane, slide); // set a callback for this action, if possible - return; // ABORT - } - - setSizeLimits(pane, slide); // update pane-state - - // onopen_start callback - will CANCEL hide if returns false - if (false === _execCallback(pane, o.onopen_start)) return; - - // make sure there is enough space available to open the pane - if (s.minSize > s.maxSize) { // INSUFFICIENT ROOM FOR PANE TO OPEN! - syncPinBtns(pane, false); // make sure pin-buttons are reset - if (!noAlert && o.noRoomToOpenTip) alert(o.noRoomToOpenTip); - return; // ABORT - } - - // SET flow-control flags - _c[pane].isMoving = true; - _c.isLayoutBusy = true; - - if (slide) // START Sliding - will set isSliding=true - bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane - else if (s.isSliding) // PIN PANE (stop sliding) - open pane 'normally' instead - bindStopSlidingEvents(pane, false); // UNBIND trigger events - will set isSliding=false - else if (o.slidable) - bindStartSlidingEvent(pane, false); // UNBIND trigger events - - s.noRoom = false; // will be reset by makePaneFit if 'noRoom' - makePaneFit(pane); - - s.isVisible = true; - s.isClosed = false; - // update isHidden BEFORE sizing panes - WHY??? Old? - if (isShowing) s.isHidden = false; - - if (doFX) { // ANIMATE - lockPaneForFX(pane, true); // need to set left/top so animation will work - $P.show( o.fxName_open, o.fxSettings_open, o.fxSpeed_open, function() { - lockPaneForFX(pane, false); // undo - open_2(); // continue - }); - } - else {// no animation - $P.show(); // just show pane and... - open_2(); // continue - }; - - // SUBROUTINE - function open_2 () { - if (s.isVisible) { // make sure pane was not closed or hidden before animation finished! - - // cure iframe display issues - _fixIframe(pane); - - // NOTE: if isSliding, then other panes are NOT 'resized' - if (!s.isSliding) // resize all panes adjacent to this one - sizeMidPanes(_c[pane].dir=="vert" ? "center" : "all", false); // false = NOT skipCallback - - // set classes, position handles and execute callbacks... - setAsOpen(pane); - } - - // internal flow-control callback - _dequeue(pane); - }; - - }; - - /** - * @param {string} pane The pane just opened, ie: north, south, east, or west - * @param {boolean=} skipCallback - */ - var setAsOpen = function (pane, skipCallback) { - var - $P = $Ps[pane] - , $R = $Rs[pane] - , $T = $Ts[pane] - , o = options[pane] - , s = state[pane] - , side = _c[pane].side.toLowerCase() - , inset = "inset"+ _c[pane].side - , rClass = o.resizerClass - , tClass = o.togglerClass - , _pane = "-"+ pane // used for classNames - , _open = "-open" - , _closed = "-closed" - , _sliding= "-sliding" - ; - $R - .css(side, sC[inset] + getPaneSize(pane)) // move the resizer - .removeClass( rClass+_closed +" "+ rClass+_pane+_closed ) - .addClass( rClass+_open +" "+ rClass+_pane+_open ) - ; - if (s.isSliding) - $R.addClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) - else // in case 'was sliding' - $R.removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) - - if (o.resizerDblClickToggle) - $R.bind("dblclick", toggle ); - removeHover( 0, $R ); // remove hover classes - if (o.resizable && typeof $.fn.draggable == "function") - $R - .draggable("enable") - .css("cursor", o.resizerCursor) - .attr("title", o.resizerTip) - ; - else if (!s.isSliding) - $R.css("cursor", "default"); // n-resize, s-resize, etc - - // if pane also has a toggler button, adjust that too - if ($T) { - $T - .removeClass( tClass+_closed +" "+ tClass+_pane+_closed ) - .addClass( tClass+_open +" "+ tClass+_pane+_open ) - .attr("title", o.togglerTip_open) // may be blank - ; - removeHover( 0, $T ); // remove hover classes - // toggler-content - if exists - $T.children(".content-closed").hide(); - $T.children(".content-open").css("display","block"); - } - - // sync any 'pin buttons' - syncPinBtns(pane, !s.isSliding); - - // update pane-state dimensions - BEFORE resizing content - $.extend(s, getElemDims($P)); - - if (state.initialized) { - // resize resizer & toggler sizes for all panes - sizeHandles("all"); - // resize content every time pane opens - to be sure - sizeContent(pane, true); // true = remeasure headers/footers, even if 'isLayoutBusy' - } - - if (!skipCallback && (state.initialized || o.triggerEventsOnLoad) && $P.is(":visible")) { - // onopen callback - _execCallback(pane, o.onopen_end || o.onopen); - // onshow callback - TODO: should this be here? - if (s.isShowing) _execCallback(pane, o.onshow_end || o.onshow); - // ALSO call onresize because layout-size *may* have changed while pane was closed - if (state.initialized) { - _execCallback(pane, o.onresize_end || o.onresize); - resizeNestedLayout(pane); - } - } - }; - - - /** - * slideOpen / slideClose / slideToggle - * - * Pass-though methods for sliding - */ - var slideOpen = function (evt_or_pane) { - var - evt = isStr(evt_or_pane) ? null : evt_or_pane - , pane = evt ? $(this).data("layoutEdge") : evt_or_pane - , s = state[pane] - , delay = options[pane].slideDelay_open - ; - // prevent event from triggering on NEW resizer binding created below - if (evt) evt.stopImmediatePropagation(); - - if (s.isClosed && evt && evt.type == "mouseenter" && delay > 0) - // trigger = mouseenter - use a delay - timer.set(pane+"_openSlider", open_NOW, delay); - else - open_NOW(); // will unbind events if is already open - - /** - * SUBROUTINE for timed open - */ - function open_NOW (evt) { - if (!s.isClosed) // skip if no longer closed! - bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane - else if (!_c[pane].isMoving) - open(pane, true); // true = slide - open() will handle binding - }; - }; - - var slideClose = function (evt_or_pane) { - var - evt = isStr(evt_or_pane) ? null : evt_or_pane - , pane = evt ? $(this).data("layoutEdge") : evt_or_pane - , o = options[pane] - , s = state[pane] - , delay = _c[pane].isMoving ? 1000 : 300 // MINIMUM delay - option may override - ; - - if (s.isClosed || s.isResizing) - return; // skip if already closed OR in process of resizing - else if (o.slideTrigger_close == "click") - close_NOW(); // close immediately onClick - else if (o.preventQuickSlideClose && _c.isLayoutBusy) - return; // handle Chrome quick-close on slide-open - else if (o.preventPrematureSlideClose && evt && $.layout.isMouseOverElem(evt, $Ps[pane])) - return; // handle incorrect mouseleave trigger, like when over a SELECT-list in IE - else if (evt) // trigger = mouseleave - use a delay - // 1 sec delay if 'opening', else .3 sec - timer.set(pane+"_closeSlider", close_NOW, max(o.slideDelay_close, delay)); - else // called programically - close_NOW(); - - /** - * SUBROUTINE for timed close - */ - function close_NOW () { - if (s.isClosed) // skip 'close' if already closed! - bindStopSlidingEvents(pane, false); // UNBIND trigger events - TODO: is this needed here? - else if (!_c[pane].isMoving) - close(pane); // close will handle unbinding - }; - }; - - var slideToggle = function (pane) { toggle(pane, true); }; - - - /** - * Must set left/top on East/South panes so animation will work properly - * - * @param {string} pane The pane to lock, 'east' or 'south' - any other is ignored! - * @param {boolean} doLock true = set left/top, false = remove - */ - var lockPaneForFX = function (pane, doLock) { - var $P = $Ps[pane]; - if (doLock) { - $P.css({ zIndex: _c.zIndex.pane_animate }); // overlay all elements during animation - if (pane=="south") - $P.css({ top: sC.insetTop + sC.innerHeight - $P.outerHeight() }); - else if (pane=="east") - $P.css({ left: sC.insetLeft + sC.innerWidth - $P.outerWidth() }); - } - else { // animation DONE - RESET CSS - // TODO: see if this can be deleted. It causes a quick-close when sliding in Chrome - $P.css({ zIndex: (state[pane].isSliding ? _c.zIndex.pane_sliding : _c.zIndex.pane_normal) }); - if (pane=="south") - $P.css({ top: "auto" }); - else if (pane=="east") - $P.css({ left: "auto" }); - // fix anti-aliasing in IE - only needed for animations that change opacity - var o = options[pane]; - if (state.browser.msie && o.fxOpacityFix && o.fxName_open != "slide" && $P.css("filter") && $P.css("opacity") == 1) - $P[0].style.removeAttribute('filter'); - } - }; - - - /** - * Toggle sliding functionality of a specific pane on/off by adding removing 'slide open' trigger - * - * @see open(), close() - * @param {string} pane The pane to enable/disable, 'north', 'south', etc. - * @param {boolean} enable Enable or Disable sliding? - */ - var bindStartSlidingEvent = function (pane, enable) { - var - o = options[pane] - , $P = $Ps[pane] - , $R = $Rs[pane] - , trigger = o.slideTrigger_open.toLowerCase() - ; - if (!$R || (enable && !o.slidable)) return; - - // make sure we have a valid event - if (trigger.match(/mouseover/)) - trigger = o.slideTrigger_open = "mouseenter"; - else if (!trigger.match(/click|dblclick|mouseenter/)) - trigger = o.slideTrigger_open = "click"; - - $R - // add or remove trigger event - [enable ? "bind" : "unbind"](trigger +'.'+ sID, slideOpen) - // set the appropriate cursor & title/tip - .css("cursor", enable ? o.sliderCursor : "default") - .attr("title", enable ? o.sliderTip : "") - ; - }; - - /** - * Add or remove 'mouseleave' events to 'slide close' when pane is 'sliding' open or closed - * Also increases zIndex when pane is sliding open - * See bindStartSlidingEvent for code to control 'slide open' - * - * @see slideOpen(), slideClose() - * @param {string} pane The pane to process, 'north', 'south', etc. - * @param {boolean} enable Enable or Disable events? - */ - var bindStopSlidingEvents = function (pane, enable) { - var - o = options[pane] - , s = state[pane] - , z = _c.zIndex - , trigger = o.slideTrigger_close.toLowerCase() - , action = (enable ? "bind" : "unbind") - , $P = $Ps[pane] - , $R = $Rs[pane] - ; - s.isSliding = enable; // logic - timer.clear(pane+"_closeSlider"); // just in case - - // remove 'slideOpen' trigger event from resizer - // ALSO will raise the zIndex of the pane & resizer - if (enable) bindStartSlidingEvent(pane, false); - - // RE/SET zIndex - increases when pane is sliding-open, resets to normal when not - $P.css("zIndex", enable ? z.pane_sliding : z.pane_normal); - $R.css("zIndex", enable ? z.pane_sliding : z.resizer_normal); - - // make sure we have a valid event - if (!trigger.match(/click|mouseleave/)) - trigger = o.slideTrigger_close = "mouseleave"; // also catches 'mouseout' - - // add/remove slide triggers - $R[action](trigger, slideClose); // base event on resize - // need extra events for mouseleave - if (trigger == "mouseleave") { - // also close on pane.mouseleave - $P[action]("mouseleave."+ sID, slideClose); - // cancel timer when mouse moves between 'pane' and 'resizer' - $R[action]("mouseenter."+ sID, cancelMouseOut); - $P[action]("mouseenter."+ sID, cancelMouseOut); - } - - if (!enable) - timer.clear(pane+"_closeSlider"); - else if (trigger == "click" && !o.resizable) { - // IF pane is not resizable (which already has a cursor and tip) - // then set the a cursor & title/tip on resizer when sliding - $R.css("cursor", enable ? o.sliderCursor : "default"); - $R.attr("title", enable ? o.togglerTip_open : ""); // use Toggler-tip, eg: "Close Pane" - } - - // SUBROUTINE for mouseleave timer clearing - function cancelMouseOut (evt) { - timer.clear(pane+"_closeSlider"); - evt.stopPropagation(); - } - }; - - - /** - * Hides/closes a pane if there is insufficient room - reverses this when there is room again - * MUST have already called setSizeLimits() before calling this method - * - * @param {string} pane The pane being resized - * @param {boolean=} isOpening Called from onOpen? - * @param {boolean=} skipCallback Should the onresize callback be run? - * @param {boolean=} force - */ - var makePaneFit = function (pane, isOpening, skipCallback, force) { - var - o = options[pane] - , s = state[pane] - , c = _c[pane] - , $P = $Ps[pane] - , $R = $Rs[pane] - , isSidePane = c.dir=="vert" - , hasRoom = false - ; - - // special handling for center & east/west panes - if (pane == "center" || (isSidePane && s.noVerticalRoom)) { - // see if there is enough room to display the pane - // ERROR: hasRoom = s.minHeight <= s.maxHeight && (isSidePane || s.minWidth <= s.maxWidth); - hasRoom = (s.maxHeight > 0); - if (hasRoom && s.noRoom) { // previously hidden due to noRoom, so show now - $P.show(); - if ($R) $R.show(); - s.isVisible = true; - s.noRoom = false; - if (isSidePane) s.noVerticalRoom = false; - _fixIframe(pane); - } - else if (!hasRoom && !s.noRoom) { // not currently hidden, so hide now - $P.hide(); - if ($R) $R.hide(); - s.isVisible = false; - s.noRoom = true; - } - } - - // see if there is enough room to fit the border-pane - if (pane == "center") { - // ignore center in this block - } - else if (s.minSize <= s.maxSize) { // pane CAN fit - hasRoom = true; - if (s.size > s.maxSize) // pane is too big - shrink it - sizePane(pane, s.maxSize, skipCallback, force); - else if (s.size < s.minSize) // pane is too small - enlarge it - sizePane(pane, s.minSize, skipCallback, force); - else if ($R && $P.is(":visible")) { - // make sure resizer-bar is positioned correctly - // handles situation where nested layout was 'hidden' when initialized - var - side = c.side.toLowerCase() - , pos = s.size + sC["inset"+ c.side] - ; - if (_cssNum($R, side) != pos) $R.css( side, pos ); - } - - // if was previously hidden due to noRoom, then RESET because NOW there is room - if (s.noRoom) { - // s.noRoom state will be set by open or show - if (s.wasOpen && o.closable) { - if (o.autoReopen) - open(pane, false, true, true); // true = noAnimation, true = noAlert - else // leave the pane closed, so just update state - s.noRoom = false; - } - else - show(pane, s.wasOpen, true, true); // true = noAnimation, true = noAlert - } - } - else { // !hasRoom - pane CANNOT fit - if (!s.noRoom) { // pane not set as noRoom yet, so hide or close it now... - s.noRoom = true; // update state - s.wasOpen = !s.isClosed && !s.isSliding; - if (s.isClosed){} // SKIP - else if (o.closable) // 'close' if possible - close(pane, true, true); // true = force, true = noAnimation - else // 'hide' pane if cannot just be closed - hide(pane, true); // true = noAnimation - } - } - }; - - - /** - * sizePane / manualSizePane - * sizePane is called only by internal methods whenever a pane needs to be resized - * manualSizePane is an exposed flow-through method allowing extra code when pane is 'manually resized' - * - * @param {string} pane The pane being resized - * @param {number} size The *desired* new size for this pane - will be validated - * @param {boolean=} skipCallback Should the onresize callback be run? - */ - var manualSizePane = function (pane, size, skipCallback) { - // ANY call to sizePane will disabled autoResize - var - o = options[pane] - // if resizing callbacks have been delayed and resizing is now DONE, force resizing to complete... - , forceResize = o.resizeWhileDragging && !_c.isLayoutBusy // && !o.triggerEventsWhileDragging - ; - o.autoResize = false; - // flow-through... - sizePane(pane, size, skipCallback, forceResize); - } - - /** - * @param {string} pane The pane being resized - * @param {number} size The *desired* new size for this pane - will be validated - * @param {boolean=} skipCallback Should the onresize callback be run? - * @param {boolean=} force Force resizing even if does not seem necessary - */ - var sizePane = function (pane, size, skipCallback, force) { - var - o = options[pane] - , s = state[pane] - , $P = $Ps[pane] - , $R = $Rs[pane] - , side = _c[pane].side.toLowerCase() - , inset = "inset"+ _c[pane].side - , skipResizeWhileDragging = _c.isLayoutBusy && !o.triggerEventsWhileDragging - , oldSize - ; - // calculate 'current' min/max sizes - setSizeLimits(pane); // update pane-state - oldSize = s.size; - - size = _parseSize(pane, size); // handle percentages & auto - size = max(size, _parseSize(pane, o.minSize)); - size = min(size, s.maxSize); - if (size < s.minSize) { // not enough room for pane! - makePaneFit(pane, false, skipCallback); // will hide or close pane - return; - } - - // IF newSize is same as oldSize, then nothing to do - abort - if (!force && size == oldSize) return; - - // onresize_start callback CANNOT cancel resizing because this would break the layout! - if (!skipCallback && state.initialized && s.isVisible) - _execCallback(pane, o.onresize_start); - - // resize the pane, and make sure its visible - $P.css( _c[pane].sizeType.toLowerCase(), max(1, cssSize(pane, size)) ); - - // update pane-state dimensions - s.size = size; - $.extend(s, getElemDims($P)); - - // reposition the resizer-bar - if ($R && $P.is(":visible")) $R.css( side, size + sC[inset] ); - - sizeContent(pane); - - if (!skipCallback && !skipResizeWhileDragging && state.initialized && s.isVisible) { - _execCallback(pane, o.onresize_end || o.onresize); - resizeNestedLayout(pane); - } - - // resize all the adjacent panes, and adjust their toggler buttons - // when skipCallback passed, it means the controlling method will handle 'other panes' - if (!skipCallback) { - // also no callback if live-resize is in progress and NOT triggerEventsWhileDragging - if (!s.isSliding) sizeMidPanes(_c[pane].dir=="horz" ? "all" : "center", skipResizeWhileDragging, force); - sizeHandles("all"); - } - - // if opposite-pane was autoClosed, see if it can be autoOpened now - var altPane = _c.altSide[pane]; - if (size < oldSize && state[ altPane ].noRoom) { - setSizeLimits( altPane ); - makePaneFit( altPane, false, skipCallback ); - } - }; - - /** - * @see initPanes(), sizePane(), resizeAll(), open(), close(), hide() - * @param {string} panes The pane(s) being resized, comma-delmited string - * @param {boolean=} skipCallback Should the onresize callback be run? - * @param {boolean=} force - */ - var sizeMidPanes = function (panes, skipCallback, force) { - if (!panes || panes == "all") panes = "east,west,center"; - - $.each(panes.split(","), function (i, pane) { - if (!$Ps[pane]) return; // NO PANE - skip - var - o = options[pane] - , s = state[pane] - , $P = $Ps[pane] - , $R = $Rs[pane] - , isCenter= (pane=="center") - , hasRoom = true - , CSS = {} - , d = calcNewCenterPaneDims() - ; - // update pane-state dimensions - $.extend(s, getElemDims($P)); - - if (pane == "center") { - if (!force && s.isVisible && d.width == s.outerWidth && d.height == s.outerHeight) - return true; // SKIP - pane already the correct size - // set state for makePaneFit() logic - $.extend(s, cssMinDims(pane), { - maxWidth: d.width - , maxHeight: d.height - }); - CSS = d; - // convert OUTER width/height to CSS width/height - CSS.width = cssW(pane, d.width); - CSS.height = cssH(pane, d.height); - hasRoom = CSS.width > 0 && CSS.height > 0; - - // during layout init, try to shrink east/west panes to make room for center - if (!hasRoom && !state.initialized && o.minWidth > 0) { - var - reqPx = o.minWidth - s.outerWidth - , minE = options.east.minSize || 0 - , minW = options.west.minSize || 0 - , sizeE = state.east.size - , sizeW = state.west.size - , newE = sizeE - , newW = sizeW - ; - if (reqPx > 0 && state.east.isVisible && sizeE > minE) { - newE = max( sizeE-minE, sizeE-reqPx ); - reqPx -= sizeE-newE; - } - if (reqPx > 0 && state.west.isVisible && sizeW > minW) { - newW = max( sizeW-minW, sizeW-reqPx ); - reqPx -= sizeW-newW; - } - // IF we found enough extra space, then resize the border panes as calculated - if (reqPx == 0) { - if (sizeE != minE) - sizePane('east', newE, true); // true = skipCallback - initPanes will handle when done - if (sizeW != minW) - sizePane('west', newW, true); - // now start over! - sizeMidPanes('center', skipCallback, force); - return; // abort this loop - } - } - } - else { // for east and west, set only the height, which is same as center height - // set state.min/maxWidth/Height for makePaneFit() logic - if (s.isVisible && !s.noVerticalRoom) - $.extend(s, getElemDims($P), cssMinDims(pane)) - if (!force && !s.noVerticalRoom && d.height == s.outerHeight) - return true; // SKIP - pane already the correct size - CSS.top = d.top; - CSS.bottom = d.bottom; - CSS.height = cssH(pane, d.height); - s.maxHeight = max(0, CSS.height); - hasRoom = (s.maxHeight > 0); - if (!hasRoom) s.noVerticalRoom = true; // makePaneFit() logic - } - - if (hasRoom) { - // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized - if (!skipCallback && state.initialized) - _execCallback(pane, o.onresize_start); - - $P.css(CSS); // apply the CSS to pane - if (s.noRoom && !s.isClosed && !s.isHidden) - makePaneFit(pane); // will re-open/show auto-closed/hidden pane - if (s.isVisible) { - $.extend(s, getElemDims($P)); // update pane dimensions - if (state.initialized) sizeContent(pane); // also resize the contents, if exists - } - } - else if (!s.noRoom && s.isVisible) // no room for pane - makePaneFit(pane); // will hide or close pane - - if (!s.isVisible) - return true; // DONE - next pane - - /* - * Extra CSS for IE6 or IE7 in Quirks-mode - add 'width' to NORTH/SOUTH panes - * Normally these panes have only 'left' & 'right' positions so pane auto-sizes - * ALSO required when pane is an IFRAME because will NOT default to 'full width' - */ - if (pane == "center") { // finished processing midPanes - var b = state.browser; - var fix = b.isIE6 || (b.msie && !b.boxModel); - if ($Ps.north && (fix || state.north.tagName=="IFRAME")) - $Ps.north.css("width", cssW($Ps.north, sC.innerWidth)); - if ($Ps.south && (fix || state.south.tagName=="IFRAME")) - $Ps.south.css("width", cssW($Ps.south, sC.innerWidth)); - } - - // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized - if (!skipCallback && state.initialized) { - _execCallback(pane, o.onresize_end || o.onresize); - resizeNestedLayout(pane); - } - }); - }; - - - /** - * @see window.onresize(), callbacks or custom code - */ - var resizeAll = function () { - var - oldW = sC.innerWidth - , oldH = sC.innerHeight - ; - $.extend( state.container, getElemDims( $Container ) ); // UPDATE container dimensions - if (!sC.outerHeight) return; // cannot size layout when 'container' is hidden or collapsed - - // onresizeall_start will CANCEL resizing if returns false - // state.container has already been set, so user can access this info for calcuations - if (false === _execCallback(null, options.onresizeall_start)) return false; - - var - // see if container is now 'smaller' than before - shrunkH = (sC.innerHeight < oldH) - , shrunkW = (sC.innerWidth < oldW) - , $P, o, s, dir - ; - // NOTE special order for sizing: S-N-E-W - $.each(["south","north","east","west"], function (i, pane) { - if (!$Ps[pane]) return; // no pane - SKIP - s = state[pane]; - o = options[pane]; - dir = _c[pane].dir; - - if (o.autoResize && s.size != o.size) // resize pane to original size set in options - sizePane(pane, o.size, true, true); // true=skipCallback, true=forceResize - else { - setSizeLimits(pane); - makePaneFit(pane, false, true, true); // true=skipCallback, true=forceResize - } - }); - - sizeMidPanes("all", true, true); // true=skipCallback, true=forceResize - sizeHandles("all"); // reposition the toggler elements - - // trigger all individual pane callbacks AFTER layout has finished resizing - o = options; // reuse alias - $.each(_c.allPanes.split(","), function (i, pane) { - $P = $Ps[pane]; - if (!$P) return; // SKIP - if (state[pane].isVisible) { // undefined for non-existent panes - _execCallback(pane, o[pane].onresize_end || o[pane].onresize); // callback - if exists - resizeNestedLayout(pane); - } - }); - - _execCallback(null, o.onresizeall_end || o.onresizeall); // onresizeall callback, if exists - }; - - - /** - * Whenever a pane resizes or opens that has a nested layout, trigger resizeAll - * - * @param {string} pane The pane just resized or opened - */ - var resizeNestedLayout = function (pane) { - var - $P = $Ps[pane] - , $C = $Cs[pane] - , d = "layoutContainer" - ; - if (options[pane].resizeNestedLayout) { - if ($P.data( d )) - $P.layout().resizeAll(); - else if ($C && $C.data( d )) - $C.layout().resizeAll(); - } - }; - - - /** - * IF pane has a content-div, then resize all elements inside pane to fit pane-height - * - * @param {string=} panes The pane(s) being resized - * @param {boolean=} remeasure Should the content (header/footer) be remeasured? - */ - var sizeContent = function (panes, remeasure) { - if (!panes || panes == "all") panes = _c.allPanes; - $.each(panes.split(","), function (idx, pane) { - var - $P = $Ps[pane] - , $C = $Cs[pane] - , o = options[pane] - , s = state[pane] - , m = s.content // m = measurements - ; - if (!$P || !$C || !$P.is(":visible")) return true; // NOT VISIBLE - skip - - // onsizecontent_start will CANCEL resizing if returns false - if (false === _execCallback(null, o.onsizecontent_start)) return; - - // skip re-measuring offsets if live-resizing - if (!_c.isLayoutBusy || m.top == undefined || remeasure || o.resizeContentWhileDragging) { - _measure(); - // if any footers are below pane-bottom, they may not measure correctly, - // so allow pane overflow and re-measure - if (m.hiddenFooters > 0 && $P.css("overflow") == "hidden") { - $P.css("overflow", "visible"); - _measure(); // remeasure while overflowing - $P.css("overflow", "hidden"); - } - } - // NOTE: spaceAbove/Below *includes* the pane's paddingTop/Bottom, but not pane.borders - var newH = s.innerHeight - (m.spaceAbove - s.css.paddingTop) - (m.spaceBelow - s.css.paddingBottom); - if (!$C.is(":visible") || m.height != newH) { - // size the Content element to fit new pane-size - will autoHide if not enough room - setOuterHeight($C, newH, true); // true=autoHide - m.height = newH; // save new height - }; - - if (state.initialized) { - _execCallback(pane, o.onsizecontent_end || o.onsizecontent); - resizeNestedLayout(pane); - } - - - function _below ($E) { - return max(s.css.paddingBottom, (parseInt($E.css("marginBottom"), 10) || 0)); - }; - - function _measure () { - var - ignore = options[pane].contentIgnoreSelector - , $Fs = $C.nextAll().not(ignore || ':lt(0)') // not :lt(0) = ALL - , $Fs_vis = $Fs.filter(':visible') - , $F = $Fs_vis.filter(':last') - ; - m = { - top: $C[0].offsetTop - , height: $C.outerHeight() - , numFooters: $Fs.length - , hiddenFooters: $Fs.length - $Fs_vis.length - , spaceBelow: 0 // correct if no content footer ($E) - } - m.spaceAbove = m.top; // just for state - not used in calc - m.bottom = m.top + m.height; - if ($F.length) - //spaceBelow = (LastFooter.top + LastFooter.height) [footerBottom] - Content.bottom + max(LastFooter.marginBottom, pane.paddingBotom) - m.spaceBelow = ($F[0].offsetTop + $F.outerHeight()) - m.bottom + _below($F); - else // no footer - check marginBottom on Content element itself - m.spaceBelow = _below($C); - }; - }); - }; - - - /** - * Called every time a pane is opened, closed, or resized to slide the togglers to 'center' and adjust their length if necessary - * - * @see initHandles(), open(), close(), resizeAll() - * @param {string=} panes The pane(s) being resized - */ - var sizeHandles = function (panes) { - if (!panes || panes == "all") panes = _c.borderPanes; - - $.each(panes.split(","), function (i, pane) { - var - o = options[pane] - , s = state[pane] - , $P = $Ps[pane] - , $R = $Rs[pane] - , $T = $Ts[pane] - , $TC - ; - if (!$P || !$R) return; - - var - dir = _c[pane].dir - , _state = (s.isClosed ? "_closed" : "_open") - , spacing = o["spacing"+ _state] - , togAlign = o["togglerAlign"+ _state] - , togLen = o["togglerLength"+ _state] - , paneLen - , offset - , CSS = {} - ; - - if (spacing == 0) { - $R.hide(); - return; - } - else if (!s.noRoom && !s.isHidden) // skip if resizer was hidden for any reason - $R.show(); // in case was previously hidden - - // Resizer Bar is ALWAYS same width/height of pane it is attached to - if (dir == "horz") { // north/south - paneLen = $P.outerWidth(); // s.outerWidth || - s.resizerLength = paneLen; - $R.css({ - width: max(1, cssW($R, paneLen)) // account for borders & padding - , height: max(0, cssH($R, spacing)) // ditto - , left: _cssNum($P, "left") - }); - } - else { // east/west - paneLen = $P.outerHeight(); // s.outerHeight || - s.resizerLength = paneLen; - $R.css({ - height: max(1, cssH($R, paneLen)) // account for borders & padding - , width: max(0, cssW($R, spacing)) // ditto - , top: sC.insetTop + getPaneSize("north", true) // TODO: what if no North pane? - //, top: _cssNum($Ps["center"], "top") - }); - } - - // remove hover classes - removeHover( o, $R ); - - if ($T) { - if (togLen == 0 || (s.isSliding && o.hideTogglerOnSlide)) { - $T.hide(); // always HIDE the toggler when 'sliding' - return; - } - else - $T.show(); // in case was previously hidden - - if (!(togLen > 0) || togLen == "100%" || togLen > paneLen) { - togLen = paneLen; - offset = 0; - } - else { // calculate 'offset' based on options.PANE.togglerAlign_open/closed - if (isStr(togAlign)) { - switch (togAlign) { - case "top": - case "left": offset = 0; - break; - case "bottom": - case "right": offset = paneLen - togLen; - break; - case "middle": - case "center": - default: offset = Math.floor((paneLen - togLen) / 2); // 'default' catches typos - } - } - else { // togAlign = number - var x = parseInt(togAlign, 10); // - if (togAlign >= 0) offset = x; - else offset = paneLen - togLen + x; // NOTE: x is negative! - } - } - - if (dir == "horz") { // north/south - var width = cssW($T, togLen); - $T.css({ - width: max(0, width) // account for borders & padding - , height: max(1, cssH($T, spacing)) // ditto - , left: offset // TODO: VERIFY that toggler positions correctly for ALL values - , top: 0 - }); - // CENTER the toggler content SPAN - $T.children(".content").each(function(){ - $TC = $(this); - $TC.css("marginLeft", Math.floor((width-$TC.outerWidth())/2)); // could be negative - }); - } - else { // east/west - var height = cssH($T, togLen); - $T.css({ - height: max(0, height) // account for borders & padding - , width: max(1, cssW($T, spacing)) // ditto - , top: offset // POSITION the toggler - , left: 0 - }); - // CENTER the toggler content SPAN - $T.children(".content").each(function(){ - $TC = $(this); - $TC.css("marginTop", Math.floor((height-$TC.outerHeight())/2)); // could be negative - }); - } - - // remove ALL hover classes - removeHover( 0, $T ); - } - - // DONE measuring and sizing this resizer/toggler, so can be 'hidden' now - if (!state.initialized && (o.initHidden || s.noRoom)) { - $R.hide(); - if ($T) $T.hide(); - } - }); - }; - - - var enableClosable = function (pane) { - var $T = $Ts[pane], o = options[pane]; - if (!$T) return; - o.closable = true; - $T .bind("click."+ sID, function(evt){ evt.stopPropagation(); toggle(pane); }) - .bind("mouseenter."+ sID, addHover) - .bind("mouseleave."+ sID, removeHover) - .css("visibility", "visible") - .css("cursor", "pointer") - .attr("title", state[pane].isClosed ? o.togglerTip_closed : o.togglerTip_open) // may be blank - .show() - ; - }; - - var disableClosable = function (pane, hide) { - var $T = $Ts[pane]; - if (!$T) return; - options[pane].closable = false; - // is closable is disable, then pane MUST be open! - if (state[pane].isClosed) open(pane, false, true); - $T .unbind("."+ sID) - .css("visibility", hide ? "hidden" : "visible") // instead of hide(), which creates logic issues - .css("cursor", "default") - .attr("title", "") - ; - }; - - - var enableSlidable = function (pane) { - var $R = $Rs[pane], o = options[pane]; - if (!$R || !$R.data('draggable')) return; - options[pane].slidable = true; - if (s.isClosed) - bindStartSlidingEvent(pane, true); - }; - - var disableSlidable = function (pane) { - var $R = $Rs[pane]; - if (!$R) return; - options[pane].slidable = false; - if (state[pane].isSliding) - close(pane, false, true); - else { - bindStartSlidingEvent(pane, false); - $R .css("cursor", "default") - .attr("title", "") - ; - removeHover(null, $R[0]); // in case currently hovered - } - }; - - - var enableResizable = function (pane) { - var $R = $Rs[pane], o = options[pane]; - if (!$R || !$R.data('draggable')) return; - o.resizable = true; - $R .draggable("enable") - .bind("mouseenter."+ sID, onResizerEnter) - .bind("mouseleave."+ sID, onResizerLeave) - ; - if (!state[pane].isClosed) - $R .css("cursor", o.resizerCursor) - .attr("title", o.resizerTip) - ; - }; - - var disableResizable = function (pane) { - var $R = $Rs[pane]; - if (!$R || !$R.data('draggable')) return; - options[pane].resizable = false; - $R .draggable("disable") - .unbind("."+ sID) - .css("cursor", "default") - .attr("title", "") - ; - removeHover(null, $R[0]); // in case currently hovered - }; - - - /** - * Move a pane from source-side (eg, west) to target-side (eg, east) - * If pane exists on target-side, move that to source-side, ie, 'swap' the panes - * - * @param {string} pane1 The pane/edge being swapped - * @param {string} pane2 ditto - */ - var swapPanes = function (pane1, pane2) { - // change state.edge NOW so callbacks can know where pane is headed... - state[pane1].edge = pane2; - state[pane2].edge = pane1; - // run these even if NOT state.initialized - var cancelled = false; - if (false === _execCallback(pane1, options[pane1].onswap_start)) cancelled = true; - if (!cancelled && false === _execCallback(pane2, options[pane2].onswap_start)) cancelled = true; - if (cancelled) { - state[pane1].edge = pane1; // reset - state[pane2].edge = pane2; - return; - } - - var - oPane1 = copy( pane1 ) - , oPane2 = copy( pane2 ) - , sizes = {} - ; - sizes[pane1] = oPane1 ? oPane1.state.size : 0; - sizes[pane2] = oPane2 ? oPane2.state.size : 0; - - // clear pointers & state - $Ps[pane1] = false; - $Ps[pane2] = false; - state[pane1] = {}; - state[pane2] = {}; - - // ALWAYS remove the resizer & toggler elements - if ($Ts[pane1]) $Ts[pane1].remove(); - if ($Ts[pane2]) $Ts[pane2].remove(); - if ($Rs[pane1]) $Rs[pane1].remove(); - if ($Rs[pane2]) $Rs[pane2].remove(); - $Rs[pane1] = $Rs[pane2] = $Ts[pane1] = $Ts[pane2] = false; - - // transfer element pointers and data to NEW Layout keys - move( oPane1, pane2 ); - move( oPane2, pane1 ); - - // cleanup objects - oPane1 = oPane2 = sizes = null; - - // make panes 'visible' again - if ($Ps[pane1]) $Ps[pane1].css(_c.visible); - if ($Ps[pane2]) $Ps[pane2].css(_c.visible); - - // fix any size discrepancies caused by swap - resizeAll(); - - // run these even if NOT state.initialized - _execCallback(pane1, options[pane1].onswap_end || options[pane1].onswap); - _execCallback(pane2, options[pane2].onswap_end || options[pane2].onswap); - - return; - - function copy (n) { // n = pane - var - $P = $Ps[n] - , $C = $Cs[n] - ; - return !$P ? false : { - pane: n - , P: $P ? $P[0] : false - , C: $C ? $C[0] : false - , state: $.extend({}, state[n]) - , options: $.extend({}, options[n]) - } - }; - - function move (oPane, pane) { - if (!oPane) return; - var - P = oPane.P - , C = oPane.C - , oldPane = oPane.pane - , c = _c[pane] - , side = c.side.toLowerCase() - , inset = "inset"+ c.side - // save pane-options that should be retained - , s = $.extend({}, state[pane]) - , o = options[pane] - // RETAIN side-specific FX Settings - more below - , fx = { resizerCursor: o.resizerCursor } - , re, size, pos - ; - $.each("fxName,fxSpeed,fxSettings".split(","), function (i, k) { - fx[k] = o[k]; - fx[k +"_open"] = o[k +"_open"]; - fx[k +"_close"] = o[k +"_close"]; - }); - - // update object pointers and attributes - $Ps[pane] = $(P) - .data("layoutEdge", pane) - .css(_c.hidden) - .css(c.cssReq) - ; - $Cs[pane] = C ? $(C) : false; - - // set options and state - options[pane] = $.extend({}, oPane.options, fx); - state[pane] = $.extend({}, oPane.state); - - // change classNames on the pane, eg: ui-layout-pane-east ==> ui-layout-pane-west - re = new RegExp(o.paneClass +"-"+ oldPane, "g"); - P.className = P.className.replace(re, o.paneClass +"-"+ pane); - - // ALWAYS regenerate the resizer & toggler elements - initHandles(pane); // create the required resizer & toggler - - // if moving to different orientation, then keep 'target' pane size - if (c.dir != _c[oldPane].dir) { - size = sizes[pane] || 0; - setSizeLimits(pane); // update pane-state - size = max(size, state[pane].minSize); - // use manualSizePane to disable autoResize - not useful after panes are swapped - manualSizePane(pane, size, true); // true = skipCallback - } - else // move the resizer here - $Rs[pane].css(side, sC[inset] + (state[pane].isVisible ? getPaneSize(pane) : 0)); - - - // ADD CLASSNAMES & SLIDE-BINDINGS - if (oPane.state.isVisible && !s.isVisible) - setAsOpen(pane, true); // true = skipCallback - else { - setAsClosed(pane); - bindStartSlidingEvent(pane, true); // will enable events IF option is set - } - - // DESTROY the object - oPane = null; - }; - }; - - - /** - * Capture keys when enableCursorHotkey - toggle pane if hotkey pressed - * - * @see document.keydown() - */ - function keyDown (evt) { - if (!evt) return true; - var code = evt.keyCode; - if (code < 33) return true; // ignore special keys: ENTER, TAB, etc - - var - PANE = { - 38: "north" // Up Cursor - $.ui.keyCode.UP - , 40: "south" // Down Cursor - $.ui.keyCode.DOWN - , 37: "west" // Left Cursor - $.ui.keyCode.LEFT - , 39: "east" // Right Cursor - $.ui.keyCode.RIGHT - } - , ALT = evt.altKey // no worky! - , SHIFT = evt.shiftKey - , CTRL = evt.ctrlKey - , CURSOR = (CTRL && code >= 37 && code <= 40) - , o, k, m, pane - ; - - if (CURSOR && options[PANE[code]].enableCursorHotkey) // valid cursor-hotkey - pane = PANE[code]; - else if (CTRL || SHIFT) // check to see if this matches a custom-hotkey - $.each(_c.borderPanes.split(","), function (i, p) { // loop each pane to check its hotkey - o = options[p]; - k = o.customHotkey; - m = o.customHotkeyModifier; // if missing or invalid, treated as "CTRL+SHIFT" - if ((SHIFT && m=="SHIFT") || (CTRL && m=="CTRL") || (CTRL && SHIFT)) { // Modifier matches - if (k && code == (isNaN(k) || k <= 9 ? k.toUpperCase().charCodeAt(0) : k)) { // Key matches - pane = p; - return false; // BREAK - } - } - }); - - // validate pane - if (!pane || !$Ps[pane] || !options[pane].closable || state[pane].isHidden) - return true; - - toggle(pane); - - evt.stopPropagation(); - evt.returnValue = false; // CANCEL key - return false; - }; - - -/* - * ###################################### - * UTILITY METHODS - * called externally or by initButtons - * ###################################### - */ - - /** - * Change/reset a pane's overflow setting & zIndex to allow popups/drop-downs to work - * - * @param {Object=} el (optional) Can also be 'bound' to a click, mouseOver, or other event - */ - function allowOverflow (el) { - if (this && this.tagName) el = this; // BOUND to element - var $P; - if (isStr(el)) - $P = $Ps[el]; - else if ($(el).data("layoutRole")) - $P = $(el); - else - $(el).parents().each(function(){ - if ($(this).data("layoutRole")) { - $P = $(this); - return false; // BREAK - } - }); - if (!$P || !$P.length) return; // INVALID - - var - pane = $P.data("layoutEdge") - , s = state[pane] - ; - - // if pane is already raised, then reset it before doing it again! - // this would happen if allowOverflow is attached to BOTH the pane and an element - if (s.cssSaved) - resetOverflow(pane); // reset previous CSS before continuing - - // if pane is raised by sliding or resizing, or it's closed, then abort - if (s.isSliding || s.isResizing || s.isClosed) { - s.cssSaved = false; - return; - } - - var - newCSS = { zIndex: (_c.zIndex.pane_normal + 2) } - , curCSS = {} - , of = $P.css("overflow") - , ofX = $P.css("overflowX") - , ofY = $P.css("overflowY") - ; - // determine which, if any, overflow settings need to be changed - if (of != "visible") { - curCSS.overflow = of; - newCSS.overflow = "visible"; - } - if (ofX && !ofX.match(/visible|auto/)) { - curCSS.overflowX = ofX; - newCSS.overflowX = "visible"; - } - if (ofY && !ofY.match(/visible|auto/)) { - curCSS.overflowY = ofX; - newCSS.overflowY = "visible"; - } - - // save the current overflow settings - even if blank! - s.cssSaved = curCSS; - - // apply new CSS to raise zIndex and, if necessary, make overflow 'visible' - $P.css( newCSS ); - - // make sure the zIndex of all other panes is normal - $.each(_c.allPanes.split(","), function(i, p) { - if (p != pane) resetOverflow(p); - }); - - }; - - function resetOverflow (el) { - if (this && this.tagName) el = this; // BOUND to element - var $P; - if (isStr(el)) - $P = $Ps[el]; - else if ($(el).data("layoutRole")) - $P = $(el); - else - $(el).parents().each(function(){ - if ($(this).data("layoutRole")) { - $P = $(this); - return false; // BREAK - } - }); - if (!$P || !$P.length) return; // INVALID - - var - pane = $P.data("layoutEdge") - , s = state[pane] - , CSS = s.cssSaved || {} - ; - // reset the zIndex - if (!s.isSliding && !s.isResizing) - $P.css("zIndex", _c.zIndex.pane_normal); - - // reset Overflow - if necessary - $P.css( CSS ); - - // clear var - s.cssSaved = false; - }; - - - /** - * Helper function to validate params received by addButton utilities - * - * Two classes are added to the element, based on the buttonClass... - * The type of button is appended to create the 2nd className: - * - ui-layout-button-pin - * - ui-layout-pane-button-toggle - * - ui-layout-pane-button-open - * - ui-layout-pane-button-close - * - * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" - * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. - * @return {Array.} If both params valid, the element matching 'selector' in a jQuery wrapper - otherwise returns null - */ - function getBtn (selector, pane, action) { - var $E = $(selector); - if (!$E.length) // element not found - alert(lang.errButton + lang.selector +": "+ selector); - else if (_c.borderPanes.indexOf(pane) == -1) // invalid 'pane' sepecified - alert(lang.errButton + lang.Pane.toLowerCase() +": "+ pane); - else { // VALID - var btn = options[pane].buttonClass +"-"+ action; - $E - .addClass( btn +" "+ btn +"-"+ pane ) - .data("layoutName", options.name) // add layout identifier - even if blank! - ; - return $E; - } - return null; // INVALID - }; - - - /** - * NEW syntax for binding layout-buttons - will eventually replace addToggleBtn, addOpenBtn, etc. - * - * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" - * @param {string} action - * @param {string} pane - */ - function bindButton (selector, action, pane) { - switch (action.toLowerCase()) { - case "toggle": addToggleBtn(selector, pane); break; - case "open": addOpenBtn(selector, pane); break; - case "close": addCloseBtn(selector, pane); break; - case "pin": addPinBtn(selector, pane); break; - case "toggle-slide": addToggleBtn(selector, pane, true); break; - case "open-slide": addOpenBtn(selector, pane, true); break; - } - }; - - /** - * Add a custom Toggler button for a pane - * - * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" - * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. - * @param {boolean=} slide true = slide-open, false = pin-open - */ - function addToggleBtn (selector, pane, slide) { - var $E = getBtn(selector, pane, "toggle"); - if ($E) - $E.click(function (evt) { - toggle(pane, !!slide); - evt.stopPropagation(); - }); - }; - - /** - * Add a custom Open button for a pane - * - * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" - * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. - * @param {boolean=} slide true = slide-open, false = pin-open - */ - function addOpenBtn (selector, pane, slide) { - var $E = getBtn(selector, pane, "open"); - if ($E) - $E - .attr("title", lang.Open) - .click(function (evt) { - open(pane, !!slide); - evt.stopPropagation(); - }) - ; - }; - - /** - * Add a custom Close button for a pane - * - * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" - * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. - */ - function addCloseBtn (selector, pane) { - var $E = getBtn(selector, pane, "close"); - if ($E) - $E - .attr("title", lang.Close) - .click(function (evt) { - close(pane); - evt.stopPropagation(); - }) - ; - }; - - /** - * addPinBtn - * - * Add a custom Pin button for a pane - * - * Four classes are added to the element, based on the paneClass for the associated pane... - * Assuming the default paneClass and the pin is 'up', these classes are added for a west-pane pin: - * - ui-layout-pane-pin - * - ui-layout-pane-west-pin - * - ui-layout-pane-pin-up - * - ui-layout-pane-west-pin-up - * - * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" - * @param {string} pane Name of the pane the pin is for: 'north', 'south', etc. - */ - function addPinBtn (selector, pane) { - var $E = getBtn(selector, pane, "pin"); - if ($E) { - var s = state[pane]; - $E.click(function (evt) { - setPinState($(this), pane, (s.isSliding || s.isClosed)); - if (s.isSliding || s.isClosed) open( pane ); // change from sliding to open - else close( pane ); // slide-closed - evt.stopPropagation(); - }); - // add up/down pin attributes and classes - setPinState($E, pane, (!s.isClosed && !s.isSliding)); - // add this pin to the pane data so we can 'sync it' automatically - // PANE.pins key is an array so we can store multiple pins for each pane - _c[pane].pins.push( selector ); // just save the selector string - } - }; - - /** - * INTERNAL function to sync 'pin buttons' when pane is opened or closed - * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes - * - * @see open(), close() - * @param {string} pane These are the params returned to callbacks by layout() - * @param {boolean} doPin True means set the pin 'down', False means 'up' - */ - function syncPinBtns (pane, doPin) { - $.each(_c[pane].pins, function (i, selector) { - setPinState($(selector), pane, doPin); - }); - }; - - /** - * Change the class of the pin button to make it look 'up' or 'down' - * - * @see addPinBtn(), syncPinBtns() - * @param {Array.} $Pin The pin-span element in a jQuery wrapper - * @param {string} pane These are the params returned to callbacks by layout() - * @param {boolean} doPin true = set the pin 'down', false = set it 'up' - */ - function setPinState ($Pin, pane, doPin) { - var updown = $Pin.attr("pin"); - if (updown && doPin == (updown=="down")) return; // already in correct state - var - pin = options[pane].buttonClass +"-pin" - , side = pin +"-"+ pane - , UP = pin +"-up "+ side +"-up" - , DN = pin +"-down "+side +"-down" - ; - $Pin - .attr("pin", doPin ? "down" : "up") // logic - .attr("title", doPin ? lang.Unpin : lang.Pin) - .removeClass( doPin ? UP : DN ) - .addClass( doPin ? DN : UP ) - ; - }; - - - /* - * LAYOUT STATE MANAGEMENT - * - * @example .layout({ cookie: { name: "myLayout", keys: "west.isClosed,east.isClosed" } }) - * @example .layout({ cookie__name: "myLayout", cookie__keys: "west.isClosed,east.isClosed" }) - * @example myLayout.getState( "west.isClosed,north.size,south.isHidden" ); - * @example myLayout.saveCookie( "west.isClosed,north.size,south.isHidden", {expires: 7} ); - * @example myLayout.deleteCookie(); - * @example myLayout.loadCookie(); - * @example var hSaved = myLayout.state.cookie; - */ - - function isCookiesEnabled () { - // TODO: is the cookieEnabled property common enough to be useful??? - return (navigator.cookieEnabled != 0); - }; - - /** - * Read & return data from the cookie - as JSON - * - * @param {Object=} opts - */ - function getCookie (opts) { - var - o = $.extend( {}, options.cookie, opts || {} ) - , name = o.name || options.name || "Layout" - , c = document.cookie - , cs = c ? c.split(';') : [] - , pair // loop var - ; - for (var i=0, n=cs.length; i < n; i++) { - pair = $.trim(cs[i]).split('='); // name=value pair - if (pair[0] == name) // found the layout cookie - // convert cookie string back to a hash - return decodeJSON( decodeURIComponent(pair[1]) ); - } - return ""; - }; - - /** - * Get the current layout state and save it to a cookie - * - * @param {(string|Array)=} keys - * @param {Object=} opts - */ - function saveCookie (keys, opts) { - var - o = $.extend( {}, options.cookie, opts || {} ) - , name = o.name || options.name || "Layout" - , params = '' - , date = '' - , clear = false - ; - if (o.expires.toUTCString) - date = o.expires; - else if (typeof o.expires == 'number') { - date = new Date(); - if (o.expires > 0) - date.setDate(date.getDate() + o.expires); - else { - date.setYear(1970); - clear = true; - } - } - if (date) params += ';expires='+ date.toUTCString(); - if (o.path) params += ';path='+ o.path; - if (o.domain) params += ';domain='+ o.domain; - if (o.secure) params += ';secure'; - - if (clear) { - state.cookie = {}; // clear data - document.cookie = name +'='+ params; // expire the cookie - } - else { - state.cookie = getState(keys || o.keys); // read current panes-state - document.cookie = name +'='+ encodeURIComponent( encodeJSON(state.cookie) ) + params; // write cookie - } - - return $.extend({}, state.cookie); // return COPY of state.cookie - }; - - /** - * Remove the state cookie - */ - function deleteCookie () { - saveCookie('', { expires: -1 }); - }; - - /** - * Get data from the cookie and USE IT to loadState - * - * @param {Object=} opts - */ - function loadCookie (opts) { - var o = getCookie(opts); // READ the cookie - if (o) { - state.cookie = $.extend({}, o); // SET state.cookie - loadState(o); // LOAD the retrieved state - } - return o; - }; - - /** - * Update layout options from the cookie, if one exists - * - * @param {Object=} opts - * @param {boolean=} animate - */ - function loadState (opts, animate) { - $.extend( true, options, opts ); // update layout options - // if layout has already been initialized, then UPDATE layout state - if (state.initialized) { - var pane, o, v, a = !animate; - $.each(_c.allPanes.split(","), function (idx, pane) { - o = opts[ pane ]; - if (typeof o != 'object') return; // no key, continue - v = o.initHidden; - if (v === true) hide(pane, a); - if (v === false) show(pane, false, a); - v = o.size; - if (v > 0) sizePane(pane, v); - v = o.initClosed; - if (v === true) close(pane, false, a); - if (v === false) open(pane, false, a ); - }); - } - }; - - /** - * Get the *current layout state* and return it as a hash - * - * @param {(string|Array)=} keys - */ - function getState (keys) { - var - data = {} - , alt = { isClosed: 'initClosed', isHidden: 'initHidden' } - , pair, pane, key, val - ; - if (!keys) keys = options.cookie.keys; // if called by user - if ($.isArray(keys)) keys = keys.join(","); - // convert keys to an array and change delimiters from '__' to '.' - keys = keys.replace(/__/g, ".").split(','); - // loop keys and create a data hash - for (var i=0,n=keys.length; i < n; i++) { - pair = keys[i].split("."); - pane = pair[0]; - key = pair[1]; - if (_c.allPanes.indexOf(pane) < 0) continue; // bad pane! - val = state[ pane ][ key ]; - if (val == undefined) continue; - if (key=="isClosed" && state[pane]["isSliding"]) - val = true; // if sliding, then *really* isClosed - ( data[pane] || (data[pane]={}) )[ alt[key] ? alt[key] : key ] = val; - } - return data; - }; - - /** - * Stringify a JSON hash so can save in a cookie or db-field - */ - function encodeJSON (JSON) { - return parse( JSON ); - function parse (h) { - var D=[], i=0, k, v, t; // k = key, v = value - for (k in h) { - v = h[k]; - t = typeof v; - if (t == 'string') // STRING - add quotes - v = '"'+ v +'"'; - else if (t == 'object') // SUB-KEY - recurse into it - v = parse(v); - D[i++] = '"'+ k +'":'+ v; - } - return "{"+ D.join(",") +"}"; - }; - }; - - /** - * Convert stringified JSON back to a hash object - */ - function decodeJSON (str) { - try { return window["eval"]("("+ str +")") || {}; } - catch (e) { return {}; } - }; - - -/* - * ##################### - * CREATE/RETURN LAYOUT - * ##################### - */ - - // validate that container exists - var $Container = $(this).eq(0); // FIRST matching Container element - if (!$Container.length) { - //alert( lang.errContainerMissing ); - return null; - }; - // Users retreive Instance of a layout with: $Container.layout() OR $Container.data("layout") - // return the Instance-pointer if layout has already been initialized - if ($Container.data("layoutContainer") && $Container.data("layout")) - return $Container.data("layout"); // cached pointer - - // init global vars - var - $Ps = {} // Panes x5 - set in initPanes() - , $Cs = {} // Content x5 - set in initPanes() - , $Rs = {} // Resizers x4 - set in initHandles() - , $Ts = {} // Togglers x4 - set in initHandles() - // aliases for code brevity - , sC = state.container // alias for easy access to 'container dimensions' - , sID = state.id // alias for unique layout ID/namespace - eg: "layout435" - ; - - // create Instance object to expose data & option Properties, and primary action Methods - var Instance = { - options: options // property - options hash - , state: state // property - dimensions hash - , container: $Container // property - object pointers for layout container - , panes: $Ps // property - object pointers for ALL Panes: panes.north, panes.center - , contents: $Cs // property - object pointers for ALL Content: content.north, content.center - , resizers: $Rs // property - object pointers for ALL Resizers, eg: resizers.north - , togglers: $Ts // property - object pointers for ALL Togglers, eg: togglers.north - , toggle: toggle // method - pass a 'pane' ("north", "west", etc) - , hide: hide // method - ditto - , show: show // method - ditto - , open: open // method - ditto - , close: close // method - ditto - , slideOpen: slideOpen // method - ditto - , slideClose: slideClose // method - ditto - , slideToggle: slideToggle // method - ditto - , initContent: initContent // method - ditto - , sizeContent: sizeContent // method - pass a 'pane' - , sizePane: manualSizePane // method - pass a 'pane' AND an 'outer-size' in pixels or percent, or 'auto' - , swapPanes: swapPanes // method - pass TWO 'panes' - will swap them - , resizeAll: resizeAll // method - no parameters - , destroy: destroy // method - no parameters - , addPane: addPane // method - pass a 'pane' - , removePane: removePane // method - pass a 'pane' to remove from layout, add 'true' to delete the pane-elem - , setSizeLimits: setSizeLimits // method - pass a 'pane' - update state min/max data - , bindButton: bindButton // utility - pass element selector, 'action' and 'pane' (E, "toggle", "west") - , addToggleBtn: addToggleBtn // utility - pass element selector and 'pane' (E, "west") - , addOpenBtn: addOpenBtn // utility - ditto - , addCloseBtn: addCloseBtn // utility - ditto - , addPinBtn: addPinBtn // utility - ditto - , allowOverflow: allowOverflow // utility - pass calling element (this) - , resetOverflow: resetOverflow // utility - ditto - , encodeJSON: encodeJSON // method - pass a JSON object - , decodeJSON: decodeJSON // method - pass a string of encoded JSON - , getState: getState // method - returns hash of current layout-state - , getCookie: getCookie // method - update options from cookie - returns hash of cookie data - , saveCookie: saveCookie // method - optionally pass keys-list and cookie-options (hash) - , deleteCookie: deleteCookie // method - , loadCookie: loadCookie // method - update options from cookie - returns hash of cookie data - , loadState: loadState // method - pass a hash of state to use to update options - , cssWidth: cssW // utility - pass element and target outerWidth - , cssHeight: cssH // utility - ditto - , enableClosable: enableClosable - , disableClosable: disableClosable - , enableSlidable: enableSlidable - , disableSlidable: disableSlidable - , enableResizable: enableResizable - , disableResizable: disableResizable - }; - // create the border layout NOW - _create(); - - // return the Instance object - return Instance; - -} -})( jQuery ); \ No newline at end of file diff --git a/build/lib/jquery.simplemodal.js b/build/lib/jquery.simplemodal.js deleted file mode 100755 index 479721d..0000000 --- a/build/lib/jquery.simplemodal.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * SimpleModal 1.4.1 - jQuery Plugin - * http://www.ericmmartin.com/projects/simplemodal/ - * Copyright (c) 2010 Eric Martin (http://twitter.com/ericmmartin) - * Dual licensed under the MIT and GPL licenses - * Revision: $Id: jquery.simplemodal.js 261 2010-11-05 21:16:20Z emartin24 $ - */ -(function(d){var k=d.browser.msie&&parseInt(d.browser.version)===6&&typeof window.XMLHttpRequest!=="object",m=d.browser.msie&&parseInt(d.browser.version)===7,l=null,f=[];d.modal=function(a,b){return d.modal.impl.init(a,b)};d.modal.close=function(){d.modal.impl.close()};d.modal.focus=function(a){d.modal.impl.focus(a)};d.modal.setContainerDimensions=function(){d.modal.impl.setContainerDimensions()};d.modal.setPosition=function(){d.modal.impl.setPosition()};d.modal.update=function(a,b){d.modal.impl.update(a, -b)};d.fn.modal=function(a){return d.modal.impl.init(this,a)};d.modal.defaults={appendTo:"body",focus:true,opacity:50,overlayId:"simplemodal-overlay",overlayCss:{},containerId:"simplemodal-container",containerCss:{},dataId:"simplemodal-data",dataCss:{},minHeight:null,minWidth:null,maxHeight:null,maxWidth:null,autoResize:false,autoPosition:true,zIndex:1E3,close:true,closeHTML:'',closeClass:"simplemodal-close",escClose:true,overlayClose:false,position:null, -persist:false,modal:true,onOpen:null,onShow:null,onClose:null};d.modal.impl={d:{},init:function(a,b){var c=this;if(c.d.data)return false;l=d.browser.msie&&!d.boxModel;c.o=d.extend({},d.modal.defaults,b);c.zIndex=c.o.zIndex;c.occb=false;if(typeof a==="object"){a=a instanceof jQuery?a:d(a);c.d.placeholder=false;if(a.parent().parent().size()>0){a.before(d("").attr("id","simplemodal-placeholder").css({display:"none"}));c.d.placeholder=true;c.display=a.css("display");if(!c.o.persist)c.d.orig= -a.clone(true)}}else if(typeof a==="string"||typeof a==="number")a=d("
                ").html(a);else{alert("SimpleModal Error: Unsupported data type: "+typeof a);return c}c.create(a);c.open();d.isFunction(c.o.onShow)&&c.o.onShow.apply(c,[c.d]);return c},create:function(a){var b=this;f=b.getDimensions();if(b.o.modal&&k)b.d.iframe=d('').css(d.extend(b.o.iframeCss,{display:"none",opacity:0,position:"fixed",height:f[0],width:f[1],zIndex:b.o.zIndex,top:0,left:0})).appendTo(b.o.appendTo); -b.d.overlay=d("
                ").attr("id",b.o.overlayId).addClass("simplemodal-overlay").css(d.extend(b.o.overlayCss,{display:"none",opacity:b.o.opacity/100,height:b.o.modal?f[0]:0,width:b.o.modal?f[1]:0,position:"fixed",left:0,top:0,zIndex:b.o.zIndex+1})).appendTo(b.o.appendTo);b.d.container=d("
                ").attr("id",b.o.containerId).addClass("simplemodal-container").css(d.extend(b.o.containerCss,{display:"none",position:"fixed",zIndex:b.o.zIndex+2})).append(b.o.close&&b.o.closeHTML?d(b.o.closeHTML).addClass(b.o.closeClass): -"").appendTo(b.o.appendTo);b.d.wrap=d("
                ").attr("tabIndex",-1).addClass("simplemodal-wrap").css({height:"100%",outline:0,width:"100%"}).appendTo(b.d.container);b.d.data=a.attr("id",a.attr("id")||b.o.dataId).addClass("simplemodal-data").css(d.extend(b.o.dataCss,{display:"none"})).appendTo("body");b.setContainerDimensions();b.d.data.appendTo(b.d.wrap);if(k||l)b.fixIE()},bindEvents:function(){var a=this;d("."+a.o.closeClass).bind("click.simplemodal",function(b){b.preventDefault();a.close()}); -a.o.modal&&a.o.close&&a.o.overlayClose&&a.d.overlay.bind("click.simplemodal",function(b){b.preventDefault();a.close()});d(document).bind("keydown.simplemodal",function(b){if(a.o.modal&&b.keyCode===9)a.watchTab(b);else if(a.o.close&&a.o.escClose&&b.keyCode===27){b.preventDefault();a.close()}});d(window).bind("resize.simplemodal",function(){f=a.getDimensions();a.o.autoResize?a.setContainerDimensions():a.o.autoPosition&&a.setPosition();if(k||l)a.fixIE();else if(a.o.modal){a.d.iframe&&a.d.iframe.css({height:f[0], -width:f[1]});a.d.overlay.css({height:f[0],width:f[1]})}})},unbindEvents:function(){d("."+this.o.closeClass).unbind("click.simplemodal");d(document).unbind("keydown.simplemodal");d(window).unbind("resize.simplemodal");this.d.overlay.unbind("click.simplemodal")},fixIE:function(){var a=this,b=a.o.position;d.each([a.d.iframe||null,!a.o.modal?null:a.d.overlay,a.d.container],function(c,h){if(h){var g=h[0].style;g.position="absolute";if(c<2){g.removeExpression("height");g.removeExpression("width");g.setExpression("height", -'document.body.scrollHeight > document.body.clientHeight ? document.body.scrollHeight : document.body.clientHeight + "px"');g.setExpression("width",'document.body.scrollWidth > document.body.clientWidth ? document.body.scrollWidth : document.body.clientWidth + "px"')}else{var e;if(b&&b.constructor===Array){c=b[0]?typeof b[0]==="number"?b[0].toString():b[0].replace(/px/,""):h.css("top").replace(/px/,"");c=c.indexOf("%")===-1?c+' + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"': -parseInt(c.replace(/%/,""))+' * ((document.documentElement.clientHeight || document.body.clientHeight) / 100) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"';if(b[1]){e=typeof b[1]==="number"?b[1].toString():b[1].replace(/px/,"");e=e.indexOf("%")===-1?e+' + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"':parseInt(e.replace(/%/,""))+' * ((document.documentElement.clientWidth || document.body.clientWidth) / 100) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"'}}else{c= -'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"';e='(document.documentElement.clientWidth || document.body.clientWidth) / 2 - (this.offsetWidth / 2) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"'}g.removeExpression("top");g.removeExpression("left");g.setExpression("top", -c);g.setExpression("left",e)}}})},focus:function(a){var b=this;a=a&&d.inArray(a,["first","last"])!==-1?a:"first";var c=d(":input:enabled:visible:"+a,b.d.wrap);setTimeout(function(){c.length>0?c.focus():b.d.wrap.focus()},10)},getDimensions:function(){var a=d(window);return[d.browser.opera&&d.browser.version>"9.5"&&d.fn.jquery<"1.3"||d.browser.opera&&d.browser.version<"9.5"&&d.fn.jquery>"1.2.6"?a[0].innerHeight:a.height(),a.width()]},getVal:function(a,b){return a?typeof a==="number"?a:a==="auto"?0: -a.indexOf("%")>0?parseInt(a.replace(/%/,""))/100*(b==="h"?f[0]:f[1]):parseInt(a.replace(/px/,"")):null},update:function(a,b){var c=this;if(!c.d.data)return false;c.d.origHeight=c.getVal(a,"h");c.d.origWidth=c.getVal(b,"w");c.d.data.hide();a&&c.d.container.css("height",a);b&&c.d.container.css("width",b);c.setContainerDimensions();c.d.data.show();c.o.focus&&c.focus();c.unbindEvents();c.bindEvents()},setContainerDimensions:function(){var a=this,b=k||m,c=a.d.origHeight?a.d.origHeight:d.browser.opera? -a.d.container.height():a.getVal(b?a.d.container[0].currentStyle.height:a.d.container.css("height"),"h");b=a.d.origWidth?a.d.origWidth:d.browser.opera?a.d.container.width():a.getVal(b?a.d.container[0].currentStyle.width:a.d.container.css("width"),"w");var h=a.d.data.outerHeight(true),g=a.d.data.outerWidth(true);a.d.origHeight=a.d.origHeight||c;a.d.origWidth=a.d.origWidth||b;var e=a.o.maxHeight?a.getVal(a.o.maxHeight,"h"):null,i=a.o.maxWidth?a.getVal(a.o.maxWidth,"w"):null;e=e&&ee?e:ce?e:a.o.minHeight&&j!=="auto"&&hi?i:bi?i:a.o.minWidth&&e!=="auto"&&gc||g>b?"auto":"visible"});a.o.autoPosition&&a.setPosition()},setPosition:function(){var a=this,b,c;b=f[0]/2-a.d.container.outerHeight(true)/2;c=f[1]/2-a.d.container.outerWidth(true)/ -2;if(a.o.position&&Object.prototype.toString.call(a.o.position)==="[object Array]"){b=a.o.position[0]||b;c=a.o.position[1]||c}else{b=b;c=c}a.d.container.css({left:c,top:b})},watchTab:function(a){var b=this;if(d(a.target).parents(".simplemodal-container").length>0){b.inputs=d(":input:enabled:visible:first, :input:enabled:visible:last",b.d.data[0]);if(!a.shiftKey&&a.target===b.inputs[b.inputs.length-1]||a.shiftKey&&a.target===b.inputs[0]||b.inputs.length===0){a.preventDefault();b.focus(a.shiftKey?"last": -"first")}}else{a.preventDefault();b.focus()}},open:function(){var a=this;a.d.iframe&&a.d.iframe.show();if(d.isFunction(a.o.onOpen))a.o.onOpen.apply(a,[a.d]);else{a.d.overlay.show();a.d.container.show();a.d.data.show()}a.o.focus&&a.focus();a.bindEvents()},close:function(){var a=this;if(!a.d.data)return false;a.unbindEvents();if(d.isFunction(a.o.onClose)&&!a.occb){a.occb=true;a.o.onClose.apply(a,[a.d])}else{if(a.d.placeholder){var b=d("#simplemodal-placeholder");if(a.o.persist)b.replaceWith(a.d.data.removeClass("simplemodal-data").css("display", -a.display));else{a.d.data.hide().remove();b.replaceWith(a.d.orig)}}else a.d.data.hide().remove();a.d.container.hide().remove();a.d.overlay.hide();a.d.iframe&&a.d.iframe.hide().remove();setTimeout(function(){a.d.overlay.remove();a.d={}},10)}}}})(jQuery); diff --git a/build/lib/jquery.spriteTimer-1.3.6.js b/build/lib/jquery.spriteTimer-1.3.6.js deleted file mode 100755 index 7304fe0..0000000 --- a/build/lib/jquery.spriteTimer-1.3.6.js +++ /dev/null @@ -1,391 +0,0 @@ -/* - * spriteTimer jQuery plugin v1.3.6 - * Copyright (c) 2010 Davor Spasovski - * October 25, 2010 - * http://www.spasovski.net/code/spritetimer - * Tested on: jQuery 1.4.2 and jQuery 1.4.3 - * - * Dual licensed under the MIT or GPL Version 2 licenses. - */ -(function($) { - - $.fn.spriteTimer = function(options) { - var timerElm = this; - - var settings = { - - //important: the countdown value and height and width of your image sprite - 'seconds': 60, //used for countdown functionality - 'digitWidth': 42, //you want this set to the width of your numbers image sprite - 'digitHeight': 54, //you want this set to the height of your numbers image sprite - 'digitImagePath': '../img/numbers.png', //the path to your numbers picture containing the numbers 9876543210:. [please see the demo pack for the sample image] - - //optional settings to control your timer - 'digitElement': 'span', //HTML element to be injected as the digit container [cannot be complex like "span.digit"] - 'separatorElement': 'em', //HTML element to be injected as the separator (":" or ".") [cannot be complex like "span.digit"] - 'startButton': '', //jQuery selector for your start/stop button [the same button is used, example '#startBtn'] - 'resetButton': '', //jQuery selector for your reset button [example '#resetBtn'] - - callback: function(){}, //used for countdown: optional function to call once the timer reaches 0 - - //optional callbacks in case you want to do run your own functions based on timer events, the current number of seconds is provided as an argument - stopTimerCallback: function(currentSeconds){}, //optional function to call when the start/stop button is clicked to stop the timer - startTimerCallback: function(currentSeconds){}, //optional function to call when the start/stop button is clicked to resume the timer - resetTimerCallback: function(currentSeconds){}, //optional function to call when the reset button is clicked - everySecondCallback: function(currentSeconds){}, //optional function to call every second (useful if you wish to update your own element with the current time) - - //important: do you want to count up or count down? - 'isCountDown': true //otherwise the timer starts at 0 and counts up - }; - - if (options) {$.extend(settings, options);} - - var timeInterval = null; - - var SpriteTimer = { - digits: [], - currentSeconds: settings.seconds, - reInitialized: false, - numDigits: 1, - initialStart: true, - init: function() { - var self = this; - - if (settings.isCountDown) {self.numDigits = self.getNumberOfDigits(self.currentSeconds);} - - if (!self.reInitialized) { - self.populateTimer(); - if (!settings.startButton) {self.initCSS();} - self.updateTime(self.currentSeconds); - } else { //you clicked reset...you bastard!!! - if (settings.isCountDown) { - clearInterval(timeInterval); - self.currentSeconds = settings.seconds; - self.updateTime(self.currentSeconds); - self.digits = []; - self.init(); - } else { - clearInterval(timeInterval); - self.currentSeconds = 0; - self.initialStart = true; - self.reInitialized = false; - self.numDigits = 1; - self.digits = []; - timerElm.empty(); - self.init(); - } - } - - if (!settings.isCountDown) {self.currentSeconds = 1;} - - if (settings.startButton || settings.resetButton) { - self.initCSS(); - self.bindEvents(); - } else { - if (settings.isCountDown) { - self.startDownInterval(); - } else { - self.initCSS(); - self.startUpInterval(); - } - } - }, - startDownInterval: function() { - var self = this; - - timeInterval = setInterval(function() { - if (self.currentSeconds < 1) { - self.updateTime(self.currentSeconds); - clearInterval(timeInterval); - settings.callback(); - } else { - self.updateTime(self.currentSeconds); - settings.everySecondCallback(self.currentSeconds--); - } - }, 1000); - }, - startUpInterval: function() { - var self = this; - - timeInterval = setInterval(function() { - self.updateTime(self.currentSeconds); - self.updateNumDigits(self.isNewDigitNeeded()); - settings.everySecondCallback(self.currentSeconds); - self.currentSeconds++; - }, 1000); - }, - isNewDigitNeeded: function() { - var s = this.currentSeconds; - if (s == 10 || s == 60 || s == 600 || s == 3600 || s == 36000) { - return true; - } - return false; - }, - updateTime: function(seconds) { - var n = timerElm.find(settings.digitElement).size(); - var i = 0; - var myVal = 0; - var self = this; - self.numDigits = self.getNumberOfDigits(seconds); - - if (self.numDigits == 1) { - for (i = 0; i < (n - 1); i++) { - self.setDigit(self.digits[i], 0); - } - self.setDigit(self.digits[n-1], seconds % 10); - } - if (self.numDigits == 2) { - for (i = 0; i < (n - 2); i++) { - self.setDigit(self.digits[i], 0); - } - self.setDigit(self.digits[n-2], parseInt(String(seconds).charAt(0), 10)); - self.setDigit(self.digits[n-1], parseInt(String(seconds).charAt(1), 10)); - } - if (self.numDigits == 3) { - if (n == 4) { - self.setDigit(self.digits[0], 0); - } - self.setDigit(self.digits[n-1], Math.floor(seconds % 10)); - myVal = seconds % 60; - if (myVal < 10) { - self.setDigit(self.digits[n-2], 0); - } else { - self.setDigit(self.digits[n-2], parseInt(String(myVal).charAt(0), 10)); - } - self.setDigit(self.digits[n-3], Math.floor(seconds / 60)); - } - if (self.numDigits == 4) { - if (n == 5) { - self.setDigit(self.digits[0], 0); - } - self.setDigit(self.digits[n-1], Math.floor(seconds % 10)); - myVal = seconds % 60; - if (myVal < 10) { - self.setDigit(self.digits[n-2], 0); - } else { - self.setDigit(self.digits[n-2], parseInt(String(myVal).charAt(0), 10)); - } - var numMins = Math.floor(seconds / 60); - self.setDigit(self.digits[n-3], parseInt(String(numMins).charAt(1), 10)); - self.setDigit(self.digits[n-4], parseInt(String(numMins).charAt(0), 10)); - } - if (self.numDigits == 5) { - if (n == 6) { - self.setDigit(self.digits[0], 0); - } - self.setDigit(self.digits[n-1], Math.floor(seconds % 10)); - myVal = seconds % 60; - if (myVal < 10) { - self.setDigit(self.digits[n-2], 0); - } else { - self.setDigit(self.digits[n-2], parseInt(String(myVal).charAt(0), 10)); - } - var numMins = Math.floor(seconds / 60); - var numHours = Math.floor(numMins / 60); - myVal = numMins % 60; - if (myVal > 9) { - self.setDigit(self.digits[n-3], parseInt(String(myVal).charAt(1), 10)); - } else { - self.setDigit(self.digits[n-3], parseInt(String(myVal).charAt(0), 10)); - } - if (myVal < 10) { - self.setDigit(self.digits[n-4], 0); - } else { - self.setDigit(self.digits[n-4], parseInt(String(myVal).charAt(0), 10)); - } - self.setDigit(self.digits[n-5], numHours); - } - if (self.numDigits == 6) { - self.setDigit(self.digits[n-1], Math.floor(seconds % 10)); - myVal = seconds % 60; - if (myVal < 10) { - self.setDigit(self.digits[n-2], 0); - } else { - self.setDigit(self.digits[n-2], parseInt(String(myVal).charAt(0), 10)); - } - var numMins = Math.floor(seconds / 60); - var numHours = Math.floor(numMins / 60); - myVal = numMins % 60; - if (myVal > 9) { - self.setDigit(self.digits[n-3], parseInt(String(myVal).charAt(1), 10)); - } else { - self.setDigit(self.digits[n-3], parseInt(String(myVal).charAt(0), 10)); - } - if (myVal < 10) { - self.setDigit(self.digits[n-4], 0); - } else { - self.setDigit(self.digits[n-4], parseInt(String(myVal).charAt(0), 10)); - } - self.setDigit(self.digits[n-5], parseInt(String(numHours).charAt(1), 10)); - self.setDigit(self.digits[n-6], parseInt(String(numHours).charAt(0), 10)); - } - }, - initCSS: function(isNewDigit) { - timerElm.find(settings.digitElement + ', ' + settings.separatorElement).css({ - 'display': 'block', - 'float': 'left', - 'height': settings.digitHeight + 'px', - 'width': settings.digitWidth + 'px', - 'background-image': 'url(' + settings.digitImagePath + ')', - 'background-repeat': 'no-repeat' - }); - timerElm.find('.colon').css({'background-position': '0 -' + (settings.digitHeight * 10) + 'px'}); - timerElm.find('.period').css({'background-position': '0 -' + (settings.digitHeight * 11) + 'px'}); - if (!settings.isCountDown) { - timerElm.find(settings.digitElement).css({'background-position': '0 -' + (settings.digitHeight * 9) + 'px'}); - if (isNewDigit) { - timerElm.find(settings.digitElement + ':first-child').css({'background-position': '0 -' + (settings.digitHeight * 8) + 'px'}); - } - } - }, - setDigit: function(elm, value) { - var pos = (value === 0) ? 0 - (settings.digitHeight * 9) : 0 - (settings.digitHeight * (10 - value - 1)); - $(elm).css({'background-position': '0 ' + pos + 'px'}); - }, - pauseTimer: function() { - clearInterval(timeInterval); - timeInterval = null; - settings.stopTimerCallback(this.currentSeconds); - }, - startTimer: function() { - if (settings.isCountDown) { - this.startDownInterval(); - this.initCSS(); - this.updateTime(this.currentSeconds); - } else { - this.startUpInterval(); - this.initCSS(); - if (this.initialStart) { - this.updateTime(0); - this.initialStart = false; - } else { - this.updateTime(this.currentSeconds); - } - } - settings.startTimerCallback(this.currentSeconds); - }, - resetTimer: function() { - this.reInitialized = true; - clearInterval(timeInterval); - timeInterval = null; - this.currentSeconds = settings.seconds; - this.init(); - settings.resetTimerCallback(this.currentSeconds); - }, - setStartStop: function(direction) { - var self = this; - $(settings.startButton).unbind('click'); - - if (direction == 'stop') { - $(settings.startButton).bind('click', function() { - self.pauseTimer(); - self.setStartStop(); - if (this.nodeName == 'A') {return false;} - }); - } else { - $(settings.startButton).bind('click', function() { - self.startTimer(); - self.setStartStop('stop'); - if (this.nodeName == 'A') {return false;} - }); - } - }, - bindEvents: function() { - var self = this; - self.setStartStop(); - - if (settings.resetButton) { - $(settings.resetButton).bind('click', function() { - self.resetTimer(); - if (this.nodeName == 'A') {return false;} - }); - } - }, - destroy: function() { - clearInterval(timeInterval); - timerElm.empty(); - if (settings.isCountDown) { - this.currentSeconds = settings.seconds; - } else { - this.currentSeconds = 0; - } - this.digits = []; - }, - populateTimer: function() { - var self = this; - var toInject = ''; - - for (var i = 0; i < self.numDigits; i++) { - toInject += '<' + settings.digitElement + '>'; - if (i === 0 && self.numDigits == 3 || i == 1 && self.numDigits == 4) { - toInject += '<' + settings.separatorElement + ' class="colon">'; - } - if (self.numDigits == 5 && i == 2 || self.numDigits == 5 && i === 0) { - toInject += '<' + settings.separatorElement + ' class="colon">'; - } - if (self.numDigits == 6 && i == 3 || self.numDigits == 6 && i === 1) { - toInject += '<' + settings.separatorElement + ' class="colon">'; - } - } - timerElm.append(toInject); - timerElm.find(settings.digitElement).each(function() { - self.digits.push(this); - }); - }, - updateNumDigits: function(addAnother) { - var self = this; - var num = self.getNumberOfDigits(self.currentSeconds); - - if (num > self.numDigits || addAnother) { - numDigits = num; - timerElm.append('<' + settings.digitElement + '>'); - if (num > 2 && num < 5) { - timerElm.find('.colon').remove(); - $('<' + settings.separatorElement + ' class="colon">').insertBefore(timerElm.find('span:nth-child(' + (num - 1) + ')')); - } - if (num == 5 || num == 6) { - timerElm.find('.colon').remove(); - $('<' + settings.separatorElement + ' class="colon">').insertBefore(timerElm.find('span:nth-child(' + (num - 1) + ')')); - $('<' + settings.separatorElement + ' class="colon">').insertBefore(timerElm.find('span:nth-child(' + (num - 3) + ')')); - } - - self.initCSS(true); - timerElm.find(settings.digitElement + ':last-child').each(function() { - self.digits.push(this); - }); - } - }, - getNumberOfDigits: function(sec) { - if (sec < 10) { - return 1; - } else if (sec > 35999) { - return 6; - } else if (sec > 3599) { - return 5; - } else if (sec > 599) { - return 4; - } else if (sec > 59) { - return 3; - } else { - return 2; - } - } - }; //end SpriteTimer - - return this.each(function() { - SpriteTimer.init(); //run boy run!!! - var myself = this; - - timerElm.unbind().bind('resetTimer', function() { - SpriteTimer.destroy(); - SpriteTimer.init(); - }).bind('startTimer', function() { - SpriteTimer.startTimer(); - }).bind('stopTimer', function() { - SpriteTimer.pauseTimer(); - }); - }); - - }; -})(jQuery); - diff --git a/build/lib/jquery.treeview.js b/build/lib/jquery.treeview.js deleted file mode 100755 index 02b452c..0000000 --- a/build/lib/jquery.treeview.js +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Treeview 1.5pre - jQuery plugin to hide and show branches of a tree - * - * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/ - * http://docs.jquery.com/Plugins/Treeview - * - * Copyright (c) 2007 Jörn Zaefferer - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * Revision: $Id: jquery.treeview.js 5759 2008-07-01 07:50:28Z joern.zaefferer $ - * - */ - -;(function($) { - - // TODO rewrite as a widget, removing all the extra plugins - $.extend($.fn, { - swapClass: function(c1, c2) { - var c1Elements = this.filter('.' + c1); - this.filter('.' + c2).removeClass(c2).addClass(c1); - c1Elements.removeClass(c1).addClass(c2); - return this; - }, - replaceClass: function(c1, c2) { - return this.filter('.' + c1).removeClass(c1).addClass(c2).end(); - }, - hoverClass: function(className) { - className = className || "hover"; - return this.hover(function() { - $(this).addClass(className); - }, function() { - $(this).removeClass(className); - }); - }, - heightToggle: function(animated, callback) { - animated ? - this.animate({ height: "toggle" }, animated, callback) : - this.each(function(){ - jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ](); - if(callback) - callback.apply(this, arguments); - }); - }, - heightHide: function(animated, callback) { - if (animated) { - this.animate({ height: "hide" }, animated, callback); - } else { - this.hide(); - if (callback) - this.each(callback); - } - }, - prepareBranches: function(settings) { - if (!settings.prerendered) { - // mark last tree items - this.filter(":last-child:not(ul)").addClass(CLASSES.last); - // collapse whole tree, or only those marked as closed, anyway except those marked as open - this.filter((settings.collapsed ? "" : "." + CLASSES.closed) + ":not(." + CLASSES.open + ")").find(">ul").hide(); - } - // return all items with sublists - return this.filter(":has(>ul)"); - }, - applyClasses: function(settings, toggler) { - // TODO use event delegation - this.filter(":has(>ul):not(:has(>a))").find(">span").unbind("click.treeview").bind("click.treeview", function(event) { - // don't handle click events on children, eg. checkboxes - if ( this == event.target ) - toggler.apply($(this).next()); - }).add( $("a", this) ).hoverClass(); - - if (!settings.prerendered) { - // handle closed ones first - this.filter(":has(>ul:hidden)") - .addClass(CLASSES.expandable) - .replaceClass(CLASSES.last, CLASSES.lastExpandable); - - // handle open ones - this.not(":has(>ul:hidden)") - .addClass(CLASSES.collapsable) - .replaceClass(CLASSES.last, CLASSES.lastCollapsable); - - // create hitarea if not present - var hitarea = this.find("div." + CLASSES.hitarea); - if (!hitarea.length) - hitarea = this.prepend("
                ").find("div." + CLASSES.hitarea); - hitarea.removeClass().addClass(CLASSES.hitarea).each(function() { - var classes = ""; - $.each($(this).parent().attr("class").split(" "), function() { - classes += this + "-hitarea "; - }); - $(this).addClass( classes ); - }) - } - - // apply event to hitarea - this.find("div." + CLASSES.hitarea).click( toggler ); - }, - treeview: function(settings) { - - settings = $.extend({ - cookieId: "treeview" - }, settings); - - if ( settings.toggle ) { - var callback = settings.toggle; - settings.toggle = function() { - return callback.apply($(this).parent()[0], arguments); - }; - } - - // factory for treecontroller - function treeController(tree, control) { - // factory for click handlers - function handler(filter) { - return function() { - // reuse toggle event handler, applying the elements to toggle - // start searching for all hitareas - toggler.apply( $("div." + CLASSES.hitarea, tree).filter(function() { - // for plain toggle, no filter is provided, otherwise we need to check the parent element - return filter ? $(this).parent("." + filter).length : true; - }) ); - return false; - }; - } - // click on first element to collapse tree - $("a:eq(0)", control).click( handler(CLASSES.collapsable) ); - // click on second to expand tree - $("a:eq(1)", control).click( handler(CLASSES.expandable) ); - // click on third to toggle tree - $("a:eq(2)", control).click( handler() ); - } - - // handle toggle event - function toggler() { - $(this) - .parent() - // swap classes for hitarea - .find(">.hitarea") - .swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea ) - .swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea ) - .end() - // swap classes for parent li - .swapClass( CLASSES.collapsable, CLASSES.expandable ) - .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable ) - // find child lists - .find( ">ul" ) - // toggle them - .heightToggle( settings.animated, settings.toggle ); - if ( settings.unique ) { - $(this).parent() - .siblings() - // swap classes for hitarea - .find(">.hitarea") - .replaceClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea ) - .replaceClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea ) - .end() - .replaceClass( CLASSES.collapsable, CLASSES.expandable ) - .replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable ) - .find( ">ul" ) - .heightHide( settings.animated, settings.toggle ); - } - } - this.data("toggler", toggler); - - function serialize() { - function binary(arg) { - return arg ? 1 : 0; - } - var data = []; - branches.each(function(i, e) { - data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0; - }); - $.cookie(settings.cookieId, data.join(""), settings.cookieOptions ); - } - - function deserialize() { - var stored = $.cookie(settings.cookieId); - if ( stored ) { - var data = stored.split(""); - branches.each(function(i, e) { - $(e).find(">ul")[ parseInt(data[i]) ? "show" : "hide" ](); - }); - } - } - - // add treeview class to activate styles - this.addClass("treeview"); - - // prepare branches and find all tree items with child lists - var branches = this.find("li").prepareBranches(settings); - - switch(settings.persist) { - case "cookie": - var toggleCallback = settings.toggle; - settings.toggle = function() { - serialize(); - if (toggleCallback) { - toggleCallback.apply(this, arguments); - } - }; - deserialize(); - break; - case "location": - var current = this.find("a").filter(function() { - return this.href.toLowerCase() == location.href.toLowerCase(); - }); - if ( current.length ) { - // TODO update the open/closed classes - var items = current.addClass("selected").parents("ul, li").add( current.next() ).show(); - if (settings.prerendered) { - // if prerendered is on, replicate the basic class swapping - items.filter("li") - .swapClass( CLASSES.collapsable, CLASSES.expandable ) - .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable ) - .find(">.hitarea") - .swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea ) - .swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea ); - } - } - break; - } - - branches.applyClasses(settings, toggler); - - // if control option is set, create the treecontroller and show it - if ( settings.control ) { - treeController(this, settings.control); - $(settings.control).show(); - } - - return this; - } - }); - - // classes used by the plugin - // need to be styled via external stylesheet, see first example - $.treeview = {}; - var CLASSES = ($.treeview.classes = { - open: "open", - closed: "closed", - expandable: "expandable", - expandableHitarea: "expandable-hitarea", - lastExpandableHitarea: "lastExpandable-hitarea", - collapsable: "collapsable", - collapsableHitarea: "collapsable-hitarea", - lastCollapsableHitarea: "lastCollapsable-hitarea", - lastCollapsable: "lastCollapsable", - lastExpandable: "lastExpandable", - last: "last", - hitarea: "hitarea" - }); - -})(jQuery); \ No newline at end of file diff --git a/build/lib/jquery.ui.slider.js b/build/lib/jquery.ui.slider.js deleted file mode 100755 index 3dd7d7a..0000000 --- a/build/lib/jquery.ui.slider.js +++ /dev/null @@ -1,684 +0,0 @@ -/* - * jQuery UI Slider 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function( $, undefined ) { - -// number of pages in a slider -// (how many times can you page up/down to go through the whole range) -var numPages = 5; - -$.widget( "ui.slider", $.ui.mouse, { - - widgetEventPrefix: "slide", - - options: { - animate: false, - distance: 0, - max: 100, - min: 0, - orientation: "horizontal", - range: false, - step: 1, - value: 0, - values: null - }, - - _create: function() { - var self = this, - o = this.options; - - this._keySliding = false; - this._mouseSliding = false; - this._animateOff = true; - this._handleIndex = null; - this._detectOrientation(); - this._mouseInit(); - - this.element - .addClass( "ui-slider" + - " ui-slider-" + this.orientation + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all" ); - - if ( o.disabled ) { - this.element.addClass( "ui-slider-disabled ui-disabled" ); - } - - this.range = $([]); - - if ( o.range ) { - if ( o.range === true ) { - this.range = $( "
                " ); - if ( !o.values ) { - o.values = [ this._valueMin(), this._valueMin() ]; - } - if ( o.values.length && o.values.length !== 2 ) { - o.values = [ o.values[0], o.values[0] ]; - } - } else { - this.range = $( "
                " ); - } - - this.range - .appendTo( this.element ) - .addClass( "ui-slider-range" ); - - if ( o.range === "min" || o.range === "max" ) { - this.range.addClass( "ui-slider-range-" + o.range ); - } - - // note: this isn't the most fittingly semantic framework class for this element, - // but worked best visually with a variety of themes - this.range.addClass( "ui-widget-header" ); - } - - if ( $( ".ui-slider-handle", this.element ).length === 0 ) { - $( "" ) - .appendTo( this.element ) - .addClass( "ui-slider-handle" ); - } - - if ( o.values && o.values.length ) { - while ( $(".ui-slider-handle", this.element).length < o.values.length ) { - $( "" ) - .appendTo( this.element ) - .addClass( "ui-slider-handle" ); - } - } - - this.handles = $( ".ui-slider-handle", this.element ) - .addClass( "ui-state-default" + - " ui-corner-all" ); - - this.handle = this.handles.eq( 0 ); - - this.handles.add( this.range ).filter( "a" ) - .click(function( event ) { - event.preventDefault(); - }) - .hover(function() { - if ( !o.disabled ) { - $( this ).addClass( "ui-state-hover" ); - } - }, function() { - $( this ).removeClass( "ui-state-hover" ); - }) - .focus(function() { - if ( !o.disabled ) { - $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" ); - $( this ).addClass( "ui-state-focus" ); - } else { - $( this ).blur(); - } - }) - .blur(function() { - $( this ).removeClass( "ui-state-focus" ); - }); - - this.handles.each(function( i ) { - $( this ).data( "index.ui-slider-handle", i ); - }); - - this.handles - .keydown(function( event ) { - var ret = true, - index = $( this ).data( "index.ui-slider-handle" ), - allowed, - curVal, - newVal, - step; - - if ( self.options.disabled ) { - return; - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - case $.ui.keyCode.END: - case $.ui.keyCode.PAGE_UP: - case $.ui.keyCode.PAGE_DOWN: - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - ret = false; - if ( !self._keySliding ) { - self._keySliding = true; - $( this ).addClass( "ui-state-active" ); - allowed = self._start( event, index ); - if ( allowed === false ) { - return; - } - } - break; - } - - step = self.options.step; - if ( self.options.values && self.options.values.length ) { - curVal = newVal = self.values( index ); - } else { - curVal = newVal = self.value(); - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - newVal = self._valueMin(); - break; - case $.ui.keyCode.END: - newVal = self._valueMax(); - break; - case $.ui.keyCode.PAGE_UP: - newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) ); - break; - case $.ui.keyCode.PAGE_DOWN: - newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) ); - break; - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - if ( curVal === self._valueMax() ) { - return; - } - newVal = self._trimAlignValue( curVal + step ); - break; - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - if ( curVal === self._valueMin() ) { - return; - } - newVal = self._trimAlignValue( curVal - step ); - break; - } - - self._slide( event, index, newVal ); - - return ret; - - }) - .keyup(function( event ) { - var index = $( this ).data( "index.ui-slider-handle" ); - - if ( self._keySliding ) { - self._keySliding = false; - self._stop( event, index ); - self._change( event, index ); - $( this ).removeClass( "ui-state-active" ); - } - - }); - - this._refreshValue(); - - this._animateOff = false; - }, - - destroy: function() { - this.handles.remove(); - this.range.remove(); - - this.element - .removeClass( "ui-slider" + - " ui-slider-horizontal" + - " ui-slider-vertical" + - " ui-slider-disabled" + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all" ) - .removeData( "slider" ) - .unbind( ".slider" ); - - this._mouseDestroy(); - - return this; - }, - - _mouseCapture: function( event ) { - var o = this.options, - position, - normValue, - distance, - closestHandle, - self, - index, - allowed, - offset, - mouseOverHandle; - - if ( o.disabled ) { - return false; - } - - this.elementSize = { - width: this.element.outerWidth(), - height: this.element.outerHeight() - }; - this.elementOffset = this.element.offset(); - - position = { x: event.pageX, y: event.pageY }; - normValue = this._normValueFromMouse( position ); - distance = this._valueMax() - this._valueMin() + 1; - self = this; - this.handles.each(function( i ) { - var thisDistance = Math.abs( normValue - self.values(i) ); - if ( distance > thisDistance ) { - distance = thisDistance; - closestHandle = $( this ); - index = i; - } - }); - - // workaround for bug #3736 (if both handles of a range are at 0, - // the first is always used as the one with least distance, - // and moving it is obviously prevented by preventing negative ranges) - if( o.range === true && this.values(1) === o.min ) { - index += 1; - closestHandle = $( this.handles[index] ); - } - - allowed = this._start( event, index ); - if ( allowed === false ) { - return false; - } - this._mouseSliding = true; - - self._handleIndex = index; - - closestHandle - .addClass( "ui-state-active" ) - .focus(); - - offset = closestHandle.offset(); - mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" ); - this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { - left: event.pageX - offset.left - ( closestHandle.width() / 2 ), - top: event.pageY - offset.top - - ( closestHandle.height() / 2 ) - - ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - - ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + - ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) - }; - - if ( !this.handles.hasClass( "ui-state-hover" ) ) { - this._slide( event, index, normValue ); - } - this._animateOff = true; - return true; - }, - - _mouseStart: function( event ) { - return true; - }, - - _mouseDrag: function( event ) { - var position = { x: event.pageX, y: event.pageY }, - normValue = this._normValueFromMouse( position ); - - this._slide( event, this._handleIndex, normValue ); - - return false; - }, - - _mouseStop: function( event ) { - this.handles.removeClass( "ui-state-active" ); - this._mouseSliding = false; - - this._stop( event, this._handleIndex ); - this._change( event, this._handleIndex ); - - this._handleIndex = null; - this._clickOffset = null; - this._animateOff = false; - - return false; - }, - - _detectOrientation: function() { - this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; - }, - - _normValueFromMouse: function( position ) { - var pixelTotal, - pixelMouse, - percentMouse, - valueTotal, - valueMouse; - - if ( this.orientation === "horizontal" ) { - pixelTotal = this.elementSize.width; - pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); - } else { - pixelTotal = this.elementSize.height; - pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); - } - - percentMouse = ( pixelMouse / pixelTotal ); - if ( percentMouse > 1 ) { - percentMouse = 1; - } - if ( percentMouse < 0 ) { - percentMouse = 0; - } - if ( this.orientation === "vertical" ) { - percentMouse = 1 - percentMouse; - } - - valueTotal = this._valueMax() - this._valueMin(); - valueMouse = this._valueMin() + percentMouse * valueTotal; - - return this._trimAlignValue( valueMouse ); - }, - - _start: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - return this._trigger( "start", event, uiHash ); - }, - - _slide: function( event, index, newVal ) { - var otherVal, - newValues, - allowed; - - if ( this.options.values && this.options.values.length ) { - otherVal = this.values( index ? 0 : 1 ); - - if ( ( this.options.values.length === 2 && this.options.range === true ) && - ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) - ) { - newVal = otherVal; - } - - if ( newVal !== this.values( index ) ) { - newValues = this.values(); - newValues[ index ] = newVal; - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal, - values: newValues - } ); - otherVal = this.values( index ? 0 : 1 ); - if ( allowed !== false ) { - this.values( index, newVal, true ); - } - } - } else { - if ( newVal !== this.value() ) { - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal - } ); - if ( allowed !== false ) { - this.value( newVal ); - } - } - } - }, - - _stop: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "stop", event, uiHash ); - }, - - _change: function( event, index ) { - if ( !this._keySliding && !this._mouseSliding ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "change", event, uiHash ); - } - }, - - value: function( newValue ) { - if ( arguments.length ) { - this.options.value = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, 0 ); - return; - } - - return this._value(); - }, - - values: function( index, newValue ) { - var vals, - newValues, - i; - - if ( arguments.length > 1 ) { - this.options.values[ index ] = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, index ); - return; - } - - if ( arguments.length ) { - if ( $.isArray( arguments[ 0 ] ) ) { - vals = this.options.values; - newValues = arguments[ 0 ]; - for ( i = 0; i < vals.length; i += 1 ) { - vals[ i ] = this._trimAlignValue( newValues[ i ] ); - this._change( null, i ); - } - this._refreshValue(); - } else { - if ( this.options.values && this.options.values.length ) { - return this._values( index ); - } else { - return this.value(); - } - } - } else { - return this._values(); - } - }, - - _setOption: function( key, value ) { - var i, - valsLength = 0; - - if ( $.isArray( this.options.values ) ) { - valsLength = this.options.values.length; - } - - $.Widget.prototype._setOption.apply( this, arguments ); - - switch ( key ) { - case "disabled": - if ( value ) { - this.handles.filter( ".ui-state-focus" ).blur(); - this.handles.removeClass( "ui-state-hover" ); - this.handles.attr( "disabled", "disabled" ); - this.element.addClass( "ui-disabled" ); - } else { - this.handles.removeAttr( "disabled" ); - this.element.removeClass( "ui-disabled" ); - } - break; - case "orientation": - this._detectOrientation(); - this.element - .removeClass( "ui-slider-horizontal ui-slider-vertical" ) - .addClass( "ui-slider-" + this.orientation ); - this._refreshValue(); - break; - case "value": - this._animateOff = true; - this._refreshValue(); - this._change( null, 0 ); - this._animateOff = false; - break; - case "values": - this._animateOff = true; - this._refreshValue(); - for ( i = 0; i < valsLength; i += 1 ) { - this._change( null, i ); - } - this._animateOff = false; - break; - } - }, - - //internal value getter - // _value() returns value trimmed by min and max, aligned by step - _value: function() { - var val = this.options.value; - val = this._trimAlignValue( val ); - - return val; - }, - - //internal values getter - // _values() returns array of values trimmed by min and max, aligned by step - // _values( index ) returns single value trimmed by min and max, aligned by step - _values: function( index ) { - var val, - vals, - i; - - if ( arguments.length ) { - val = this.options.values[ index ]; - val = this._trimAlignValue( val ); - - return val; - } else { - // .slice() creates a copy of the array - // this copy gets trimmed by min and max and then returned - vals = this.options.values.slice(); - for ( i = 0; i < vals.length; i+= 1) { - vals[ i ] = this._trimAlignValue( vals[ i ] ); - } - - return vals; - } - }, - - // returns the step-aligned value that val is closest to, between (inclusive) min and max - _trimAlignValue: function( val ) { - if ( val <= this._valueMin() ) { - return this._valueMin(); - } - if ( val >= this._valueMax() ) { - return this._valueMax(); - } - var step = ( this.options.step > 0 ) ? this.options.step : 1, - valModStep = (val - this._valueMin()) % step; - alignValue = val - valModStep; - - if ( Math.abs(valModStep) * 2 >= step ) { - alignValue += ( valModStep > 0 ) ? step : ( -step ); - } - - // Since JavaScript has problems with large floats, round - // the final value to 5 digits after the decimal point (see #4124) - return parseFloat( alignValue.toFixed(5) ); - }, - - _valueMin: function() { - return this.options.min; - }, - - _valueMax: function() { - return this.options.max; - }, - - _refreshValue: function() { - var oRange = this.options.range, - o = this.options, - self = this, - animate = ( !this._animateOff ) ? o.animate : false, - valPercent, - _set = {}, - lastValPercent, - value, - valueMin, - valueMax; - - if ( this.options.values && this.options.values.length ) { - this.handles.each(function( i, j ) { - valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100; - _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - if ( self.options.range === true ) { - if ( self.orientation === "horizontal" ) { - if ( i === 0 ) { - self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); - } - if ( i === 1 ) { - self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } else { - if ( i === 0 ) { - self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); - } - if ( i === 1 ) { - self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - lastValPercent = valPercent; - }); - } else { - value = this.value(); - valueMin = this._valueMin(); - valueMax = this._valueMax(); - valPercent = ( valueMax !== valueMin ) ? - ( value - valueMin ) / ( valueMax - valueMin ) * 100 : - 0; - _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - - if ( oRange === "min" && this.orientation === "horizontal" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "horizontal" ) { - this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - if ( oRange === "min" && this.orientation === "vertical" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "vertical" ) { - this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - -}); - -$.extend( $.ui.slider, { - version: "1.8.12" -}); - -}(jQuery)); diff --git a/build/lib/jquery.ui.widget.js b/build/lib/jquery.ui.widget.js deleted file mode 100755 index 5dd5023..0000000 --- a/build/lib/jquery.ui.widget.js +++ /dev/null @@ -1,262 +0,0 @@ -/*! - * jQuery UI Widget 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function( $, undefined ) { - -// jQuery 1.4+ -if ( $.cleanData ) { - var _cleanData = $.cleanData; - $.cleanData = function( elems ) { - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { - $( elem ).triggerHandler( "remove" ); - } - _cleanData( elems ); - }; -} else { - var _remove = $.fn.remove; - $.fn.remove = function( selector, keepData ) { - return this.each(function() { - if ( !keepData ) { - if ( !selector || $.filter( selector, [ this ] ).length ) { - $( "*", this ).add( [ this ] ).each(function() { - $( this ).triggerHandler( "remove" ); - }); - } - } - return _remove.call( $(this), selector, keepData ); - }); - }; -} - -$.widget = function( name, base, prototype ) { - var namespace = name.split( "." )[ 0 ], - fullName; - name = name.split( "." )[ 1 ]; - fullName = namespace + "-" + name; - - if ( !prototype ) { - prototype = base; - base = $.Widget; - } - - // create selector for plugin - $.expr[ ":" ][ fullName ] = function( elem ) { - return !!$.data( elem, name ); - }; - - $[ namespace ] = $[ namespace ] || {}; - $[ namespace ][ name ] = function( options, element ) { - // allow instantiation without initializing for simple inheritance - if ( arguments.length ) { - this._createWidget( options, element ); - } - }; - - var basePrototype = new base(); - // we need to make the options hash a property directly on the new instance - // otherwise we'll modify the options hash on the prototype that we're - // inheriting from -// $.each( basePrototype, function( key, val ) { -// if ( $.isPlainObject(val) ) { -// basePrototype[ key ] = $.extend( {}, val ); -// } -// }); - basePrototype.options = $.extend( true, {}, basePrototype.options ); - $[ namespace ][ name ].prototype = $.extend( true, basePrototype, { - namespace: namespace, - widgetName: name, - widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name, - widgetBaseClass: fullName - }, prototype ); - - $.widget.bridge( name, $[ namespace ][ name ] ); -}; - -$.widget.bridge = function( name, object ) { - $.fn[ name ] = function( options ) { - var isMethodCall = typeof options === "string", - args = Array.prototype.slice.call( arguments, 1 ), - returnValue = this; - - // allow multiple hashes to be passed on init - options = !isMethodCall && args.length ? - $.extend.apply( null, [ true, options ].concat(args) ) : - options; - - // prevent calls to internal methods - if ( isMethodCall && options.charAt( 0 ) === "_" ) { - return returnValue; - } - - if ( isMethodCall ) { - this.each(function() { - var instance = $.data( this, name ), - methodValue = instance && $.isFunction( instance[options] ) ? - instance[ options ].apply( instance, args ) : - instance; - // TODO: add this back in 1.9 and use $.error() (see #5972) -// if ( !instance ) { -// throw "cannot call methods on " + name + " prior to initialization; " + -// "attempted to call method '" + options + "'"; -// } -// if ( !$.isFunction( instance[options] ) ) { -// throw "no such method '" + options + "' for " + name + " widget instance"; -// } -// var methodValue = instance[ options ].apply( instance, args ); - if ( methodValue !== instance && methodValue !== undefined ) { - returnValue = methodValue; - return false; - } - }); - } else { - this.each(function() { - var instance = $.data( this, name ); - if ( instance ) { - instance.option( options || {} )._init(); - } else { - $.data( this, name, new object( options, this ) ); - } - }); - } - - return returnValue; - }; -}; - -$.Widget = function( options, element ) { - // allow instantiation without initializing for simple inheritance - if ( arguments.length ) { - this._createWidget( options, element ); - } -}; - -$.Widget.prototype = { - widgetName: "widget", - widgetEventPrefix: "", - options: { - disabled: false - }, - _createWidget: function( options, element ) { - // $.widget.bridge stores the plugin instance, but we do it anyway - // so that it's stored even before the _create function runs - $.data( element, this.widgetName, this ); - this.element = $( element ); - this.options = $.extend( true, {}, - this.options, - this._getCreateOptions(), - options ); - - var self = this; - this.element.bind( "remove." + this.widgetName, function() { - self.destroy(); - }); - - this._create(); - this._trigger( "create" ); - this._init(); - }, - _getCreateOptions: function() { - return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ]; - }, - _create: function() {}, - _init: function() {}, - - destroy: function() { - this.element - .unbind( "." + this.widgetName ) - .removeData( this.widgetName ); - this.widget() - .unbind( "." + this.widgetName ) - .removeAttr( "aria-disabled" ) - .removeClass( - this.widgetBaseClass + "-disabled " + - "ui-state-disabled" ); - }, - - widget: function() { - return this.element; - }, - - option: function( key, value ) { - var options = key; - - if ( arguments.length === 0 ) { - // don't return a reference to the internal hash - return $.extend( {}, this.options ); - } - - if (typeof key === "string" ) { - if ( value === undefined ) { - return this.options[ key ]; - } - options = {}; - options[ key ] = value; - } - - this._setOptions( options ); - - return this; - }, - _setOptions: function( options ) { - var self = this; - $.each( options, function( key, value ) { - self._setOption( key, value ); - }); - - return this; - }, - _setOption: function( key, value ) { - this.options[ key ] = value; - - if ( key === "disabled" ) { - this.widget() - [ value ? "addClass" : "removeClass"]( - this.widgetBaseClass + "-disabled" + " " + - "ui-state-disabled" ) - .attr( "aria-disabled", value ); - } - - return this; - }, - - enable: function() { - return this._setOption( "disabled", false ); - }, - disable: function() { - return this._setOption( "disabled", true ); - }, - - _trigger: function( type, event, data ) { - var callback = this.options[ type ]; - - event = $.Event( event ); - event.type = ( type === this.widgetEventPrefix ? - type : - this.widgetEventPrefix + type ).toLowerCase(); - data = data || {}; - - // copy original event properties over to the new event - // this would happen if we could call $.event.fix instead of $.Event - // but we don't have a way to force an event to be fixed multiple times - if ( event.originalEvent ) { - for ( var i = $.event.props.length, prop; i; ) { - prop = $.event.props[ --i ]; - event[ prop ] = event.originalEvent[ prop ]; - } - } - - this.element.trigger( event, data ); - - return !( $.isFunction(callback) && - callback.call( this.element[0], event, data ) === false || - event.isDefaultPrevented() ); - } -}; - -})( jQuery ); diff --git a/build/lib/jquery_002.js b/build/lib/jquery_002.js deleted file mode 100755 index 8f3ca2e..0000000 --- a/build/lib/jquery_002.js +++ /dev/null @@ -1,167 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.4 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Nov 11 19:04:53 2010 -0500 - */ -(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= -h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;kd)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, -"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, -e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, -"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ -a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, -C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, -s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, -j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, -toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== --1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; -if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", -b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& -!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& -l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
                a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), -k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, -scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= -false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= -1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
                ";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
                t
                ";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= -"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= -c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); -else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; -if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, -attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& -b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; -c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, -arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= -d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ -c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== -8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== -"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ -d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= -B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== -"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== -0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); -(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; -break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, -q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= -l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, -m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== -true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== -g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- -0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== -i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; -if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, -g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); -n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& -function(){var g=k,i=t.createElement("div");i.innerHTML="

                ";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| -p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= -t.createElement("div");g.innerHTML="
                ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? -function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= -h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): -c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, -2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, -b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& -e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, -""],legend:[1,"
                ","
                "],thead:[1,"","
                "],tr:[2,"","
                "],td:[3,"","
                "],col:[2,"","
                "],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
                ","
                "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; -else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", -prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- -1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); -d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, -jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, -zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), -h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); -if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= -d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; -e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, -ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== -"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
                ").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& -!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, -getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", -script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| -!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= -false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; -A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", -b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& -c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| -c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= -encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", -[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), -e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); -if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", -3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, -d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* -Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} -var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; -this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| -this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= -c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, -e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& -c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); -c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ -b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/build/lib/jsxgraphcore.js b/build/lib/jsxgraphcore.js deleted file mode 100755 index f7f980d..0000000 --- a/build/lib/jsxgraphcore.js +++ /dev/null @@ -1,26 +0,0 @@ -/* Version 0.95 */ -/* - Copyright 2008-2012 - Matthias Ehmann, - Michael Gerhaeuser, - Carsten Miller, - Bianca Valentin, - Alfred Wassermann, - Peter Wilfahrt - - This file is part of JSXGraph. - - JSXGraph is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - JSXGraph is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with JSXGraph. If not, see . -*/ - var JXG={};(function(){var d,e;JXG.countDrawings=0;JXG.countTime=0;JXG.require=function(f){};JXG.rendererFiles={};JXG.rendererFiles.svg="SVGRenderer";JXG.rendererFiles.vml="VMLRenderer";JXG.rendererFiles.canvas="CanvasRenderer";JXG.baseFiles=null;JXG.requirePath="";if(typeof document!=="undefined"){for(d=0;d-1},isWebkitAndroid:function(){return this.isAndroid()&&navigator.userAgent.search(" AppleWebKit/")>-1},isApple:function(){return(navigator.userAgent.search(/iPad/)!=-1||navigator.userAgent.search(/iPhone/)!=-1)},isWebkitApple:function(){return this.isApple()&&(navigator.userAgent.search(/Mobile *.*Safari/)>-1)},clearVisPropOld:function(d){d.visPropOld={strokecolor:"",strokeopacity:"",strokewidth:"",fillcolor:"",fillopacity:"",shadow:false,firstarrow:false,lastarrow:false,cssclass:"",fontsize:-1}},ieVersion:(function(){var f;if(typeof document=="undefined"){return f}var d=3,g=document.createElement("div"),e=g.getElementsByTagName("i");while(g.innerHTML="",e[0]){}return d>4?d:f}()),getReference:function(e,d){if(typeof(d)=="string"){if(JXG.exists(e.objects[d])){d=e.objects[d]}else{if(JXG.exists(e.elementsByName[d])){d=e.elementsByName[d]}else{if(JXG.exists(e.groups[d])){d=e.groups[d]}}}}return d},getRef:JXG.shortcut(JXG,"getReference"),isId:function(e,d){return typeof(d)=="string"&&!!e.objects[d]},isName:function(e,d){return typeof(d)=="string"&&!!e.elementsByName[d]},isGroup:function(e,d){return typeof(d)=="string"&&!!e.groups[d]},isString:function(d){return typeof d==="string"},isNumber:function(d){return typeof d==="number"},isFunction:function(d){return typeof d==="function"},isArray:function(d){return d!==null&&typeof d==="object"&&"splice" in d&&"join" in d},isPoint:function(d){if(typeof d=="object"){return(d.elementClass==JXG.OBJECT_CLASS_POINT)}return false},exists:(function(d){return function(e){return !(e===d||e===null)}})(),def:function(e,f){if(JXG.exists(e)){return e}else{return f}},str2Bool:function(d){if(!JXG.exists(d)){return true}if(typeof d=="boolean"){return d}if(JXG.isString(d)){return(d.toLowerCase()=="true")}else{return false}},_board:function(e,d){return JXG.JSXGraph.initBoard(e,d)},createEvalFunction:function(e,j,k){var g=[],d,h;for(d=0;d=n[g].length;e++){d=0;while(d=0;f--){JXG.removeEvent(h,g,e["x_internal"+g][f].origin,e)}if(e["x_internal"+g].length>0){JXG.debug("removeAllEvents: Not all events could be removed.")}}},bind:function(e,d){return function(){return e.apply(d,arguments)}},removeElementFromArray:function(d,f){var e;for(e=0;e=9){d=f.currentStyle[e]}else{if(f.style){e=e.replace(/-([a-z]|[0-9])/ig,function(g,h){return(h+"").toUpperCase()});d=f.style[e]}}}return d},keys:function(d,e){var f=[],g;for(g in d){if(e){if(d.hasOwnProperty(g)){f.push(g)}}else{f.push(g)}}return f},indexOf:function(h,g,f){var d,e=JXG.exists(f);if(Array.indexOf&&!e){return h.indexOf(g)}for(d=0;d/g,">")},unescapeHTML:function(d){return d.replace(/<\/?[^>]+>/gi,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")},clone:function(e){var d={};d.prototype=e;return d},cloneAndCopy:function(g,f){var d=function(){},e;d.prototype=g;for(e in f){d[e]=f[e]}return d},deepCopy:function(k,h,g){var m,e,l,d,f;g=g||false;if(typeof k!=="object"||k==null){return k}if(this.isArray(k)){m=[];for(e=0;e0&&(+new Date()-i<300));if(d.length>0){setTimeout(arguments.callee,1)}else{h(e)}},1)},trimNumber:function(d){d=d.replace(/^0+/,"");d=d.replace(/0+$/,"");if(d[d.length-1]=="."||d[d.length-1]==","){d=d.slice(0,-1)}if(d[0]=="."||d[0]==","){d="0"+d}return d},trim:function(d){d=d.replace(/^\s+/,"");d=d.replace(/\s+$/,"");return d},evaluate:function(d){if(JXG.isFunction(d)){return d()}else{return d}},eliminateDuplicates:function(f){var g,e=f.length,d=[],h={};for(g=0;g0.1){d=e.toFixed(2)}else{if(d>=0.01){d=e.toFixed(4)}else{if(d>=0.0001){d=e.toFixed(6)}else{d=e}}}return d},debug:function(e){var d;for(d=0;d"}}}},debugWST:function(d){var f;JXG.debug(d);if(window.console&&console.log){f=new Error();if(f&&f.stack){console.log("stacktrace");console.log(f.stack.split("\n").slice(1).join("\n"))}}}});if(typeof window!=="undefined"&&typeof document!=="undefined"){JXG.addEvent(window,"load",function(){var l=document.getElementsByTagName("script"),q,n,m,f,p,h,s,r,k,d,g;for(n=0;n/g,"");l[n].innerHTML=g;if(q.toLowerCase().indexOf("script")>-1){p.construct(g)}else{try{p.jc.parse(g)}catch(o){JXG.debug(o)}}}else{JXG.debug("JSXGraph: Apparently the div injection failed. Can't create a board, sorry.")}}}},window)}JXG.Math=(function(e,d,f){var g=function(i){var h,j;if(i.memo){return i.memo}h={};j=Array.prototype.join;return(i.memo=function(){var k=j.call(arguments);return(h[k]!==f)?h[k]:h[k]=i.apply(this,arguments)})};return{eps:0.000001,mod:function(i,h){return i-d.floor(i/h)*h},vector:function(l,k){var j,h;k=k||0;j=new Array(d.ceil(l));for(h=0;h0?h[0].length:0,v=h.length,u=this.matrix(p,o),t,r,w,q;for(t=0;t0?q[0].length:0;l=this.matrix(p,h);for(o=0;oB){B=d.abs(m[u][t]);h=u}}if(B<=e.Math.eps){return false}if(h>t){for(q=0;qm||j<0){return NaN}j=d.round(j);m=d.round(m);if(j===0||j===m){return 1}h=1;for(l=0;l0){return d.exp(h*d.log(d.abs(i)))}else{return NaN}}},squampow:function(j,i){var h;if(d.floor(i)===i){h=1;if(i<0){j=1/j;i*=-1}while(i!=0){if(i&1){h*=j}i>>=1;j*=j}return h}else{return this.pow(j,i)}},normalize:function(j){var h=2*j[3],k=j[4]/(h),l,i;j[5]=k;j[6]=-j[1]/h;j[7]=-j[2]/h;if(k===Infinity||isNaN(k)){l=d.sqrt(j[1]*j[1]+j[2]*j[2]);j[0]/=l;j[1]/=l;j[2]/=l;j[3]=0;j[4]=1}else{if(d.abs(k)>=1){j[0]=(j[6]*j[6]+j[7]*j[7]-k*k)/(2*k);j[1]=-j[6]/k;j[2]=-j[7]/k;j[3]=1/(2*k);j[4]=1}else{i=(k<=0)?(-1):(1);j[0]=i*(j[6]*j[6]+j[7]*j[7]-k*k)*0.5;j[1]=-i*j[6];j[2]=-i*j[7];j[3]=i/2;j[4]=i*k}}return j},toGL:function(h){var k,n,l;if(typeof Float32Array!=="undefined"){k=new Float32Array(16)}else{k=new Array(16)}if(h.length!==4&&h[0].length!==4){return k}for(n=0;n<4;n++){for(l=0;l<4;l++){k[n+4*l]=h[n][l]}}return k}}})(JXG,Math);JXG.Math.Numerics=(function(e,d){var f={rk4:{s:4,A:[[0,0,0,0],[0.5,0,0,0],[0,0.5,0,0],[0,0,1,0]],b:[1/6,1/3,1/3,1/6],c:[0,0.5,0.5,1]},heun:{s:2,A:[[0,0],[1,0]],b:[0.5,0.5],c:[0,1]},euler:{s:1,A:[[0]],b:[1],c:[0]}};return{Gauss:function(g,r){var t=e.Math.eps,h=g.length>0?g[0].length:0,p,s,q,o,m,l=function(u,n){var k=this[u];this[u]=this[n];this[n]=k};if((h!==r.length)||(h!==g.length)){throw new Error("JXG.Math.Numerics.Gauss: Dimensions don't match. A must be a square matrix and b must be of the same length as A.")}p=new Array(h);s=r.slice(0,h);for(q=0;qo;q--){if(d.abs(p[q][o])>t){if(d.abs(p[o][o])0?q[0].length:0;for(o=g-1;o>=0;o--){for(l=r-1;l>o;l--){h[o]-=q[o][l]*h[l]}h[o]/=q[o][o]}return h},gaussBareiss:function(u){var l,r,z,o,m,g,h,q,v,w=e.Math.eps;h=u.length;if(h<=0){return 0}if(u[0].length=w){break}}if(o==h){return 0}for(m=l;mq){q=g}u+=g;if(g>=C){g=d.atan2(2*h[r][p],h[r][r]-h[p][p])*0.5;s=d.sin(g);z=d.cos(g);for(o=0;oC&&t<2000);return[h,m]},NewtonCotes:function(g,k,h){var l=0,p=h&&typeof h.number_of_nodes==="number"?h.number_of_nodes:28,n={trapez:true,simpson:true,milne:true},q=h&&h.integration_type&&n.hasOwnProperty(h.integration_type)&&n[h.integration_type]?h.integration_type:"milne",o=(g[1]-g[0])/p,m,j,r;switch(q){case"trapez":l=(k(g[0])+k(g[1]))*0.5;m=g[0];for(j=0;j0){throw new Error("JSXGraph: INT_SIMPSON requires config.number_of_nodes dividable by 2.")}r=p/2;l=k(g[0])+k(g[1]);m=g[0];for(j=0;j0){throw new Error("JSXGraph: Error in INT_MILNE: config.number_of_nodes must be a multiple of 4")}r=p*0.25;l=7*(k(g[0])+k(g[1]));m=g[0];for(j=0;jm){p=this.D(o,j)(g);l+=2;if(d.abs(p)>m){g-=n/p}else{g+=(d.random()*0.2-1)}n=o.apply(j,[g]);l++;k++}return g},root:function(i,g,h){return this.fzero(i,g,h)},Neville:function(k){var h=[],g=function(l){return function(v,m){var o,u,w,z=e.Math.binomial,r=k.length,n=r-1,p=0,q=0;if(!m){w=1;for(o=0;o=0;m--){t[m]=(p[m]-(u[m+1]*t[m+1]))/o[m]}for(m=g-3;m>=0;m--){t[m+1]=t[m]}t[0]=0;t[g-1]=0;return t},splineEval:function(h,w,u,A){var k=d.min(w.length,u.length),o=1,m=false,z=[],q,p,v,t,s,r,g;if(e.isArray(h)){o=h.length;m=true}else{h=[h]}for(q=0;qw[k-1])){return NaN}for(p=1;p=0;k--){l=l.concat(["(",g[k].toPrecision(j),")"]);if(k>1){l=l.concat(["*",h,"",k,"<","/sup> + "])}else{if(k===1){l=l.concat(["*",h," + "])}}}return l.join("")},lagrangePolynomial:function(i){var g=[],h=function(v,l){var o,m,r,u,w,p=0,q=0,t,n;r=i.length;if(!l){for(o=0;o=n-3){return k[n-2][m]()}}q=d.floor(p);if(q==p){return k[q][m]()}p-=q;r=h[m][q];return 0.5*(((r[3]*p+r[2])*p+r[1])*p+r[0])}};return[g("X"),g("Y"),0,function(){return i.length-1}]},regressionPolynomial:function(k,o,n){var g,h,m,l,i,p,j="";if(e.isPoint(k)&&typeof k.Value=="function"){h=function(){return k.Value()}}else{if(e.isFunction(k)){h=k}else{if(e.isNumber(k)){h=function(){return k}}else{throw new Error("JSXGraph: Can't create regressionPolynomial from degree of type'"+(typeof k)+"'.")}}}if(arguments.length==3&&e.isArray(o)&&e.isArray(n)){i=0}else{if(arguments.length==2&&e.isArray(o)&&o.length>0&&e.isPoint(o[0])){i=1}else{throw new Error("JSXGraph: Can't create regressionPolynomial. Wrong parameters.")}}p=function(E,q){var u,t,A,w,D,r,C,F,z,v=o.length;z=d.floor(h());if(!q){if(i===1){m=[];l=[];for(u=0;u=0;u--){F=(F*E+g[u])}return F};p.getTerm=function(){return j};return p},bezier:function(i){var g,h=function(j){return function(l,k){var o=d.floor(l)*3,n=l%1,m=1-n;if(!k){g=d.floor(i.length/3)}if(l<0){return i[0][j]()}if(l>=g){return i[i.length-1][j]()}if(isNaN(l)){return NaN}return m*m*(m*i[o][j]()+3*n*i[o+1][j]())+(3*m*i[o+2][j]()+n*i[o+3][j]())*n*n}};return[h("X"),h("Y"),0,function(){return d.floor(i.length/3)}]},bspline:function(j,g){var k,m=[],l=function(r,o){var p,q=[];for(p=0;p=B){v=0}else{v=u[q+1]}z=C[q+r-1]-C[q];if(z==0){u[q]=0}else{u[q]=(A-C[q])/z*w}z=C[q+r]-C[q+1];if(z!=0){u[q]+=(C[q+r]-A)/z*v}}}return u},h=function(n){return function(u,p){var o=j.length,z,r,v,w=o-1,q=g;if(w<=0){return NaN}if(w+2<=q){q=w+1}if(u<=0){return j[0][n]()}if(u>=w-q+2){return j[w][n]()}k=l(w,q);v=d.floor(u)+q-1;m=i(u,k,w,q,v);z=0;for(r=v-q+1;r<=v;r++){if(r=0){z+=j[r][n]()*m[r]}}return z}};return[h("X"),h("Y"),0,function(){return j.length-1}]},D:function(j,k){var i=0.00001,g=1/(i*2);if(arguments.length==1||(arguments.length>1&&!e.exists(arguments[1]))){return function(h,l){return(j(h+i,l)-j(h-i,l))*g}}else{return function(h,l){return(j.apply(k,[h+i,l])-j.apply(k,[h-i,l]))*g}}},riemann:function(r,m,s,k,o){var l=[],z=[],q,p=0,w,v=k,t,h,u,g;m=d.round(m);l[p]=v;z[p]=0;if(m>0){w=(o-k)/m;g=w*0.01;for(q=0;qt){t=u}}}}}}p++;l[p]=v;z[p]=t;p++;v+=w;if(s==="trapezodial"){t=r(v)}l[p]=v;z[p]=t;p++;l[p]=v;z[p]=0}}return[l,z]},riemannsum:function(o,k,q,j,l){var p=0,m,u,t=j,r,h,s,g;k=d.floor(k);if(k>0){u=(l-j)/k;g=u*0.01;for(m=0;mr){r=s}}}}}}}p+=u*r;t+=u}}return p},rungeKutta:function(g,G,o,m,F){var p=[],n=[],E=(o[1]-o[0])/m,u=o[0],H,D,C,A,z,B=G.length,v,q=[],w=0;if(e.isString(g)){g=f[g]||f.euler}v=g.s;for(H=0;H0){if(e.isArray(I)){return this.fminbr(H,[L,K],N)}else{return this.Newton(H,L,N)}}J=L;v=B;while(z=G&&d.abs(B)>d.abs(w)){s=J-K;if(L==J){l=w/B;t=s*l;r=1-l}else{r=B/v;l=w/v;k=w/B;t=k*(s*r*(r-l)-(K-L)*(l-1));r=(r-1)*(l-1)*(k-1)}if(t>0){r=-r}else{t=-t}if(t<(0.75*s*r-d.abs(G*r)*0.5)&&t0){m=G}else{m=-G}}L=K;B=w;K+=m;w=H.apply(N,[K]);C++;if((w>0&&v>0)||(w<0&&v<0)){J=L;v=B}z++}return K},fminbr:function(H,I,M){var L,J,l,o,n,h,j,i,z=(3-d.sqrt(5))*0.5,E=e.Math.eps,B=d.sqrt(e.Math.eps),g=this.maxIterationsMinimize,D=0,u,K,G,m,C,A,s,k,F=0;if(!e.isArray(I)||I.length<2){throw new Error("JXG.Math.Numerics.fminbr: length of array x0 has to be at least two.")}L=I[0];J=I[1];o=L+z*(J-L);j=H.apply(M,[o]);F++;l=o;n=o;h=j;i=j;while(D=G){s=(l-n)*(h-j);A=(l-o)*(h-i);C=(l-o)*A-(l-n)*s;A=2*(A-s);if(A>0){C=-C}else{A=-A}if(d.abs(C)A*(L-l+2*G)&&C0){m=G}else{m=-G}}s=l+m;k=H.apply(M,[s]);F++;if(k<=h){if(sq){j(u,t,k[1],q,r);j(u,k[1],s,q,r)}else{r.push(u[s])}},n=function(G,v,u){var A=0,w=v,z,t,H,F,E,s,D,r,B,C,q;if(u-v<2){return[-1,0]}H=G[v].scrCoords;F=G[u].scrCoords;if(isNaN(H[1]+H[2]+F[1]+F[2])){return[NaN,u]}for(t=v+1;t=e.Math.eps){q=(s*r+D*B)/C;if(q<0){q=0}else{if(q>1){q=1}}s=s-q*r;D=D-q*B;z=s*s+D*D}else{q=0;z=s*s+D*D}if(z>A){A=z;w=t}}return[d.sqrt(A),w]};g=p.length;o=0;while(oo&&isNaN(p[l].scrCoords[1]+p[l].scrCoords[2])){l--}if(!(o>l||o==g)){m[0]=p[o];j(p,o,l,h,m)}return m}}})(JXG,Math);JXG.Math.Statistics={sum:function(e){var g,d=e.length,f=0;for(g=0;g0){return this.sum(d)/d.length}else{return 0}},median:function(e){var f,d;if(e.length>0){f=e.slice(0);f.sort(function(h,g){return h-g});d=f.length;if(d%2==1){return f[parseInt(d*0.5)]}else{return(f[d*0.5-1]+f[d*0.5])*0.5}}else{return 0}},variance:function(f){var e,h,g,d=f.length;if(d>1){e=this.mean(f);h=0;for(g=0;g0){return this.mean(this.multiply(d,e))}else{return 0}},max:function(d){return Math.max.apply(this,d)},min:function(d){return Math.min.apply(this,d)},range:function(d){return[this.min(d),this.max(d)]},abs:function(e){var g,d,f;if(JXG.isArray(e)){d=e.length;f=[];for(g=0;g0){l=m[p].generatePolynomial();for(g=0;g0)){if((z.toOrigin!==e)&&(z.toOrigin!=null)&&D(z.toOrigin.id,n.listOfFreePoints)){k=z.toOrigin}else{k=n.listOfFreePoints[0]}u=k.symbolic.x;r=k.symbolic.y;for(E=0;E1)){if((z.to10!==e)&&(z.to10!=null)&&(z.to10.id!=z.toOrigin.id)&&D(z.to10.id,n.listOfFreePoints)){j=z.to10}else{if(n.listOfFreePoints[0].id==k.id){j=n.listOfFreePoints[1]}else{j=n.listOfFreePoints[0]}}o=d.Math.Geometry.rad([1,0],[0,0],[j.symbolic.x,j.symbolic.y]);F=Math.cos(-o);w=Math.sin(-o);for(E=0;Ed.Math.eps)){H=j.symbolic.x;for(E=0;Eq){k+=Math.PI}p=Math.cos(k)+o[1];n=Math.sin(k)+o[2];return new JXG.Coords(JXG.COORDS_BY_USER,[p,n],l)},reflection:function(o,l,f){var h=l.coords.usrCoords,p=o.point1.coords.usrCoords,g=o.point2.coords.usrCoords,e,k,d,i,m,j,n;if(!JXG.exists(f)){f=l.board}m=g[1]-p[1];j=g[2]-p[2];e=h[1]-p[1];k=h[2]-p[2];n=(m*k-j*e)/(m*m+j*j);d=h[1]+2*n*j;i=h[2]-2*n*m;return new JXG.Coords(JXG.COORDS_BY_USER,[d,i],f)},rotation:function(d,n,h,i){var k=n.coords.usrCoords,e=d.coords.usrCoords,g,m,j,o,f,l;if(!JXG.exists(i)){i=n.board}g=k[1]-e[1];m=k[2]-e[2];j=Math.cos(h);o=Math.sin(h);f=g*j-m*o+e[1];l=g*o+m*j+e[2];return new JXG.Coords(JXG.COORDS_BY_USER,[f,l],i)},perpendicular:function(q,o,i){var h=q.point1.coords.usrCoords,g=q.point2.coords.usrCoords,e=o.coords.usrCoords,m,l,k,p,j,f,d,n;if(!JXG.exists(i)){i=o.board}if(o==q.point1){m=h[1]+g[2]-h[2];l=h[2]-g[1]+h[1];k=true}else{if(o==q.point2){m=g[1]+h[2]-g[2];l=g[2]-h[1]+g[1];k=false}else{if(((Math.abs(h[1]-g[1])>JXG.Math.eps)&&(Math.abs(e[2]-(h[2]-g[2])*(e[1]-h[1])/(h[1]-g[1])-h[2])JXG.Math.eps&&(Math.abs(f[0])JXG.Math.eps){for(k=2;k>0;k--){v[m][k]/=v[m][0]}v[m][0]=1}}e=false;d=false;if(!q&&Math.abs(r.usrCoords[0])>=JXG.Math.eps&&r.scrCoords[1]>=0&&r.scrCoords[1]<=g.board.canvasWidth&&r.scrCoords[2]>=0&&r.scrCoords[2]<=g.board.canvasHeight){e=true}if(!f&&Math.abs(p.usrCoords[0])>=JXG.Math.eps&&p.scrCoords[1]>=0&&p.scrCoords[1]<=g.board.canvasWidth&&p.scrCoords[2]>=0&&p.scrCoords[2]<=g.board.canvasHeight){d=true}if(Math.abs(v[1][0])g.board.canvasHeight){l=v[2]}else{l=v[3]}}else{if(v[1][2]>g.board.canvasHeight){n=v[2];if(v[3][2]<0){l=v[0]}else{l=v[3]}}else{n=v[1];if(v[3][2]<0){l=v[0]}else{if(v[3][2]>g.board.canvasHeight){l=v[2]}else{l=v[3]}}}}}}n=new JXG.Coords(JXG.COORDS_BY_SCREEN,n.slice(1),g.board);l=new JXG.Coords(JXG.COORDS_BY_SCREEN,l.slice(1),g.board);if(!e&&!d){if(!q&&f&&!this.isSameDirection(r,p,n)&&!this.isSameDirection(r,p,l)){return}else{if(q&&!f&&!this.isSameDirection(p,r,n)&&!this.isSameDirection(p,r,l)){return}}}if(!e){if(!d){if(this.isSameDir(r,p,n,l)){u=n;t=l}else{t=n;u=l}}else{if(this.isSameDir(r,p,n,l)){u=n}else{u=l}}}else{if(!d){if(this.isSameDir(r,p,n,l)){t=l}else{t=n}}}if(u){r.setCoordinates(JXG.COORDS_BY_USER,u.usrCoords.slice(1))}if(t){p.setCoordinates(JXG.COORDS_BY_USER,t.usrCoords.slice(1))}},isSameDir:function(j,i,f,e){var d=i.usrCoords[1]-j.usrCoords[1],k=i.usrCoords[2]-j.usrCoords[2],h=e.usrCoords[1]-f.usrCoords[1],g=e.usrCoords[2]-f.usrCoords[2];if(Math.abs(i.usrCoords[0])=0},isSameDirection:function(k,h,f){var e,d,j,i,g=false;e=h.usrCoords[1]-k.usrCoords[1];d=h.usrCoords[2]-k.usrCoords[2];j=f.usrCoords[1]-k.usrCoords[1];i=f.usrCoords[2]-k.usrCoords[2];if(Math.abs(e)=0&&j>=0){if((d>=0&&i>=0)||(d<=0&&i<=0)){g=true}}else{if(e<=0&&j<=0){if((d>=0&&i>=0)||(d<=0&&i<=0)){g=true}}}return g},intersectLineLine:function(o,n,j){var i=o.point1.coords.usrCoords,g=o.point2.coords.usrCoords,f=n.point1.coords.usrCoords,d=n.point2.coords.usrCoords,h,e,m,l,k;if(!JXG.exists(j)){j=o.board}h=i[1]*g[2]-i[2]*g[1];e=f[1]*d[2]-f[2]*d[1];m=(g[2]-i[2])*(f[1]-d[1])-(i[1]-g[1])*(d[2]-f[2]);if(Math.abs(m)0){e=k.center.Dist(u.point1);I=k.center.Dist(u.point2);G=((e*e)+(B*B)-(I*I))/(2*B);z=(e*e)-(G*G);z=(z<0)?0:z;E=Math.sqrt(z);C=k.Radius();n=Math.sqrt((C*C)-E*E);A=H[1]-J[1];v=H[2]-J[2];j=g[1]+(E/B)*v;i=g[2]-(E/B)*A;e=(H[1]*v)-(H[2]*A);I=(j*A)+(i*v);D=(v*v)+(A*A);if(Math.abs(D)p){return[0]}else{if(t=d&&Math.abs(e[3])=d){return this.meetLineCircle(g,e,f,h)}else{return this.meetCircleCircle(g,e,f,h)}}}},meetLineLine:function(e,d,f,h){var g=JXG.Math.crossProduct(e,d);if(Math.abs(g[0])>JXG.Math.eps){g[1]/=g[0];g[2]/=g[0];g[0]=1}return new JXG.Coords(JXG.COORDS_BY_USER,g,h)},meetLineCircle:function(j,e,o,p){var u,s,r,q,l,h,g,f,m,v;if(e[4]=0){m=Math.sqrt(m);v=[(-g+m)/(2*h),(-g-m)/(2*h)];return((o==0)?new JXG.Coords(JXG.COORDS_BY_USER,[-v[0]*(-l[1])-q*l[0],-v[0]*l[0]-q*l[1]],p):new JXG.Coords(JXG.COORDS_BY_USER,[-v[1]*(-l[1])-q*l[0],-v[1]*l[0]-q*l[1]],p))}else{return new JXG.Coords(JXG.COORDS_BY_USER,[0,0,0],p)}},meetCircleCircle:function(f,d,e,g){var h;if(f[4]JXG.Math.eps&&l<10){B=A(o);z=-w(n);v=j(o);u=-i(n);g=B*u-z*v;o-=(u*t-z*s)/g;n-=(B*s-v*t)/g;t=r.X(o)-q.X(n);s=r.Y(o)-q.Y(n);p=t*t+s*s;l++}arguments.callee.t1memo=o;arguments.callee.t2memo=n;if(Math.abs(o)0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1)){u=20;v=(g.maxX()-g.minX())/u;w=g.minX();for(s=0;s0.1&&Math.abs(f-g.X(l))>0.1&&Math.abs(d-g.Y(l))>0.1){break}w+=v}}o=l;arguments.callee.t2memo=o}if(Math.abs(h(o))>JXG.Math.eps){k=0}else{k=1}return(new JXG.Coords(JXG.COORDS_BY_USER,[k,g.X(o),g.Y(o)],j))},projectPointToCircle:function(l,d,f){var i=l.coords.distance(JXG.COORDS_BY_USER,d.center.coords),e=l.coords.usrCoords,g=d.center.coords.usrCoords,k,j,h;if(!JXG.exists(f)){f=l.board}if(Math.abs(i)r.maxX()){p=r.minX()+p-r.maxX()}E=new JXG.Coords(JXG.COORDS_BY_USER,[r.X(p),r.Y(p)],j)}else{if(r.visProp.curvetype=="plot"){p=0;C=o;if(r.numberPoints==0){E=new JXG.Coords(JXG.COORDS_BY_USER,[0,1,1],j)}else{if(r.numberPoints==1){E=new JXG.Coords(JXG.COORDS_BY_USER,[r.Z(0),r.X(0),r.Y(0)],j)}else{for(w=0;wJXG.Math.eps){B=u.usrCoords[1]-r.X(w);h=B/A}else{if(Math.abs(e)>JXG.Math.eps){f=u.usrCoords[1]-r.Y(w);h=f/e}else{h=0;u=new JXG.Coords(JXG.COORDS_BY_USER,[r.Z(w),r.X(w),r.Y(w)],j)}}if(0<=h&&h<=1){s=this.distance(u.usrCoords,[1,m,k]);D=w+h}else{if(h<0){u=new JXG.Coords(JXG.COORDS_BY_USER,[r.Z(w),r.X(w),r.Y(w)],j);s=this.distance(u.usrCoords,[1,m,k]);D=w}else{if(h>1&&w+1==r.numberPoints-1){u=new JXG.Coords(JXG.COORDS_BY_USER,[r.Z(w+1),r.X(w+1),r.Y(w+1)],j);s=this.distance(u.usrCoords,[1,m,k]);D=r.numberPoints-1}}}if(s-1){this.monomials[e].coefficient+=f*d.coefficient}else{d.coefficient*=f;this.monomials.push(d)}},add:function(e){var d;if(JXG.exists(e)&&e.ring===this.ring){if(JXG.isArray(e.exponents)){this.addSubMonomial(e,1)}else{for(d=0;d0&&Math.abs(e.center.coords.usrCoords[0])>JXG.Math.eps&&!isNaN(d+e.center.coords.scrCoords[1]+e.center.coords.scrCoords[2])&&d*e.board.unitX<2000000){this.updateEllipsePrim(e.rendNode,e.center.coords.scrCoords[1],e.center.coords.scrCoords[2],(d*e.board.unitX),(d*e.board.unitY))}},drawPolygon:function(d){this.appendChildPrim(this.createPrim("polygon",d.id),d.visProp.layer);this.appendNodesToElement(d,"polygon");this.updatePolygon(d)},updatePolygon:function(d){this._updateVisual(d,{stroke:true,dash:true});this.updatePolygonPrim(d.rendNode,d)},displayCopyright:function(d,e){},drawInternalText:function(d){},updateInternalText:function(d){},drawText:function(d){var e,f;if(d.visProp.display==="html"){e=this.container.ownerDocument.createElement("div");e.style.position="absolute";e.className=d.visProp.cssclass;if(this.container.style.zIndex==""){f=0}else{f=parseInt(this.container.style.zIndex)}e.style.zIndex=f+d.board.options.layer.text;this.container.appendChild(e);e.setAttribute("id",this.container.id+"_"+d.id)}else{e=this.drawInternalText(d)}d.rendNode=e;d.htmlStr="";this.updateText(d)},updateText:function(d){var e=d.plaintext;if(d.visProp.visible){this.updateTextStyle(d,false);if(d.visProp.display==="html"){if(!isNaN(d.coords.scrCoords[1]+d.coords.scrCoords[2])){if(d.visProp.anchorx==="right"){d.rendNode.style.right=parseInt(d.board.canvasWidth-d.coords.scrCoords[1])+"px"}else{if(d.visProp.anchorx==="middle"){d.rendNode.style.left=parseInt(d.coords.scrCoords[1]-0.5*d.size[0])+"px"}else{d.rendNode.style.left=parseInt(d.coords.scrCoords[1])+"px"}}if(d.visProp.anchory==="top"){d.rendNode.style.top=parseInt(d.coords.scrCoords[2]+this.vOffsetText)+"px"}else{if(d.visProp.anchory==="middle"){d.rendNode.style.top=parseInt(d.coords.scrCoords[2]-0.5*d.size[1]+this.vOffsetText)+"px"}else{d.rendNode.style.top=parseInt(d.coords.scrCoords[2]-d.size[1]+this.vOffsetText)+"px"}}}if(d.htmlStr!==e){d.rendNode.innerHTML=e;d.htmlStr=e;if(d.visProp.usemathjax){MathJax.Hub.Queue(["Typeset",MathJax.Hub,d.rendNode])}else{if(d.visProp.useasciimathml){AMprocessNode(d.rendNode,false)}}}this.transformImage(d,d.transformations)}else{this.updateInternalText(d)}}},updateTextStyle:function(g,i){var d,k,l,f,h=g.visProp;if(i){l=h.highlightstrokecolor;k=h.highlightstrokeopacity;f=h.highlightcssclass}else{l=h.strokecolor;k=h.strokeopacity;f=h.cssclass}if(g.visProp.display==="html"||this.type!="canvas"){d=JXG.evaluate(g.visProp.fontsize);if(g.visPropOld.fontsize!=d){try{g.rendNode.style.fontSize=d+"px"}catch(j){g.rendNode.style.fontSize=d}g.visPropOld.fontsize=d}if(g.visPropOld.cssclass!=f){g.rendNode.className=f;g.visPropOld.cssclass=f}}if(g.visProp.display==="html"){this.setObjectStrokeColor(g,l,k)}else{this.updateInternalTextStyle(g,l,k)}return this},updateInternalTextStyle:function(e,f,d){this.setObjectStrokeColor(e,f,d)},drawImage:function(d){},updateImage:function(d){this.updateRectPrim(d.rendNode,d.coords.scrCoords[1],d.coords.scrCoords[2]-d.size[1],d.size[0],d.size[1]);this.updateImageURL(d);this.transformImage(d,d.transformations);this._updateVisual(d,{stroke:true,dash:true},true)},joinTransforms:function(n,o){var k=[[1,0,0],[0,1,0],[0,0,1]],g=n.board.origin.scrCoords[1],f=n.board.origin.scrCoords[2],e=n.board.unitX,d=n.board.unitY,r=[[1,0,0],[-g,1,0],[-f,0,1]],q=[[1,0,0],[0,1/e,0],[0,0,-1/d]],h=[[1,0,0],[0,e,0],[0,0,-d]],j=[[1,0,0],[g,1,0],[f,0,1]],l,p=o.length;for(l=0;l\nFunction Base64Encode(inData)\n Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"\n Dim cOut, sOut, I\n For I = 1 To LenB(inData) Step 3\n Dim nGroup, pOut, sGroup\n nGroup = &H10000 * AscB(MidB(inData, I, 1)) + _\n &H100 * MyASC(MidB(inData, I + 1, 1)) + MyASC(MidB(inData, I + 2, 1))\n nGroup = Oct(nGroup)\n nGroup = String(8 - Len(nGroup), "0") & nGroup\n pOut = Mid(Base64, CLng("&o" & Mid(nGroup, 1, 2)) + 1, 1) + _\n Mid(Base64, CLng("&o" & Mid(nGroup, 3, 2)) + 1, 1) + _\n Mid(Base64, CLng("&o" & Mid(nGroup, 5, 2)) + 1, 1) + _\n Mid(Base64, CLng("&o" & Mid(nGroup, 7, 2)) + 1, 1)\n sOut = sOut + pOut\n Next\n Select Case LenB(inData) Mod 3\n Case 1: \'8 bit final\n sOut = Left(sOut, Len(sOut) - 2) + "=="\n Case 2: \'16 bit final\n sOut = Left(sOut, Len(sOut) - 1) + "="\n End Select\n Base64Encode = sOut\nEnd Function\n\nFunction MyASC(OneChar)\n If OneChar = "" Then MyASC = 0 Else MyASC = AscB(OneChar)\nEnd Function\n\nFunction BinFileReader(xhr)\n Dim byteString\n Dim b64String\n Dim i\n byteString = xhr.responseBody\n ReDim byteArray(LenB(byteString))\n For i = 1 To LenB(byteString)\n byteArray(i-1) = AscB(MidB(byteString, i, 1))\n Next\n b64String = Base64Encode(byteString)\n BinFileReader = b64String\nEnd Function\n<\/script>\n')}JXG.GeonextParser={};JXG.GeonextParser.replacePow=function(f){var k,n,l,j,m,g,d,e,h,q,o;f=f.replace(/(\s*)\^(\s*)/g,"^");h=f.indexOf("^");while(h>=0){e=f.slice(0,h);q=f.slice(h+1);if(e.charAt(e.length-1)==")"){k=1;n=e.length-2;while(n>=0&&k>0){l=e.charAt(n);if(l==")"){k++}else{if(l=="("){k--}}n--}if(k==0){j="";g=e.substring(0,n+1);d=n;while(d>=0&&g.substr(d,1).match(/([\w\.]+)/)){j=RegExp.$1+j;d--}j+=e.substring(n+1,e.length);j=j.replace(/([\(\)\+\*\%\^\-\/\]\[])/g,"\\$1")}else{throw new Error("JSXGraph: Missing '(' in expression")}}else{j="[\\w\\.]+"}if(q.match(/^([\w\.]*\()/)){k=1;n=RegExp.$1.length;while(n0){l=q.charAt(n);if(l==")"){k--}else{if(l=="("){k++}}n++}if(k==0){m=q.substring(0,n);m=m.replace(/([\(\)\+\*\%\^\-\/\[\]])/g,"\\$1")}else{throw new Error("JSXGraph: Missing ')' in expression")}}else{m="[\\w\\.]+"}o=new RegExp("("+j+")\\^("+m+")");f=f.replace(o,"JXG.Math.pow($1,$2)");h=f.indexOf("^")}return f};JXG.GeonextParser.replaceIf=function(e){var r="",f,q,h=null,d=null,l=null,g,p,j,m,k,n,o;g=e.indexOf("If(");if(g<0){return e}e=e.replace(/""/g,"0");while(g>=0){f=e.slice(0,g);q=e.slice(g+3);j=1;p=0;m=-1;k=-1;while(p0){n=q.charAt(p);if(n==")"){j--}else{if(n=="("){j++}else{if(n==","&&j==1){if(m<0){m=p}else{k=p}}}}p++}o=q.slice(0,p-1);q=q.slice(p);if(m<0){return""}if(k<0){return""}h=o.slice(0,m);d=o.slice(m+1,k);l=o.slice(k+1);h=this.replaceIf(h);d=this.replaceIf(d);l=this.replaceIf(l);r+=f+"(("+h+")?("+d+"):("+l+"))";e=q;h=null;d=null;g=e.indexOf("If(")}r+=q;return r};JXG.GeonextParser.replaceSub=function(f){if(f.indexOf){}else{return f}var e=f.indexOf("_{"),d;while(e>=0){f=f.substr(0,e)+f.substr(e).replace(/_\{/,"");d=f.substr(e).indexOf("}");if(d>=0){f=f.substr(0,d)+f.substr(d).replace(/\}/,"")}e=f.indexOf("_{")}e=f.indexOf("_");while(e>=0){f=f.substr(0,e)+f.substr(e).replace(/_(.?)/,"$1");e=f.indexOf("_")}return f};JXG.GeonextParser.replaceSup=function(f){if(f.indexOf){}else{return f}var e=f.indexOf("^{"),d;while(e>=0){f=f.substr(0,e)+f.substr(e).replace(/\^\{/,"");d=f.substr(e).indexOf("}");if(d>=0){f=f.substr(0,d)+f.substr(d).replace(/\}/,"")}e=f.indexOf("^{")}e=f.indexOf("^");while(e>=0){f=f.substr(0,e)+f.substr(e).replace(/\^(.?)/,"$1");e=f.indexOf("^")}return f};JXG.GeonextParser.replaceNameById=function(g,j){var l=0,d,k,h,f,e=["X","Y","L","V"];for(f=0;f=0){if(l>=0){d=g.indexOf(")",l+2);if(d>=0){k=g.slice(l+2,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+2)+h.id+g.slice(d)}}d=g.indexOf(")",l+2);l=g.indexOf(e[f]+"(",d)}}l=g.indexOf("Dist(");while(l>=0){if(l>=0){d=g.indexOf(",",l+5);if(d>=0){k=g.slice(l+5,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+5)+h.id+g.slice(d)}}d=g.indexOf(",",l+5);l=g.indexOf(",",d);d=g.indexOf(")",l+1);if(d>=0){k=g.slice(l+1,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+1)+h.id+g.slice(d)}d=g.indexOf(")",l+1);l=g.indexOf("Dist(",d)}e=["Deg","Rad"];for(f=0;f=0){if(l>=0){d=g.indexOf(",",l+4);if(d>=0){k=g.slice(l+4,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+4)+h.id+g.slice(d)}}d=g.indexOf(",",l+4);l=g.indexOf(",",d);d=g.indexOf(",",l+1);if(d>=0){k=g.slice(l+1,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+1)+h.id+g.slice(d)}d=g.indexOf(",",l+1);l=g.indexOf(",",d);d=g.indexOf(")",l+1);if(d>=0){k=g.slice(l+1,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+1)+h.id+g.slice(d)}d=g.indexOf(")",l+1);l=g.indexOf(e[f]+"(",d)}}return g};JXG.GeonextParser.replaceIdByObj=function(d){var e=/(X|Y|L)\(([\w_]+)\)/g;d=d.replace(e,'this.board.objects["$2"].$1()');e=/(V)\(([\w_]+)\)/g;d=d.replace(e,'this.board.objects["$2"].Value()');e=/(Dist)\(([\w_]+),([\w_]+)\)/g;d=d.replace(e,'this.board.objects["$2"].Dist(this.board.objects["$3"])');e=/(Deg)\(([\w_]+),([ \w\[\w_]+),([\w_]+)\)/g;d=d.replace(e,'JXG.Math.Geometry.trueAngle(this.board.objects["$2"],this.board.objects["$3"],this.board.objects["$4"])');e=/Rad\(([\w_]+),([\w_]+),([\w_]+)\)/g;d=d.replace(e,'JXG.Math.Geometry.rad(this.board.objects["$1"],this.board.objects["$2"],this.board.objects["$3"])');e=/N\((.+)\)/g;d=d.replace(e,"($1)");return d};JXG.GeonextParser.geonext2JS=function(e,g){var h,f,d,k=["Abs","ACos","ASin","ATan","Ceil","Cos","Exp","Factorial","Floor","Log","Max","Min","Random","Round","Sin","Sqrt","Tan","Trunc"],j=["Math.abs","Math.acos","Math.asin","Math.atan","Math.ceil","Math.cos","Math.exp","JXG.Math.factorial","Math.floor","Math.log","Math.max","Math.min","Math.random","this.board.round","Math.sin","Math.sqrt","Math.tan","Math.ceil"];e=e.replace(/</g,"<");e=e.replace(/>/g,">");e=e.replace(/&/g,"&");f=e;f=this.replaceNameById(f,g);f=this.replaceIf(f);f=this.replacePow(f);f=this.replaceIdByObj(f);for(d=0;d=0){i[f].addChild(h)}}}else{d=f.replace(/\[/g,"\\[");d=d.replace(/\]/g,"\\]");j=new RegExp("\\(([\\w\\[\\]'_ ]+,)*("+d+")(,[\\w\\[\\]'_ ]+)*\\)","g");if(e.search(j)>=0){i[f].addChild(h)}}}}};JXG.GeonextParser.gxt2jc=function(d,f){var e,h=["Sqrt"],g=["sqrt"];d=d.replace(/</g,"<");d=d.replace(/>/g,">");d=d.replace(/&/g,"&");e=d;e=this.replaceNameById2(e,f);e=e.replace(/True/g,"true");e=e.replace(/False/g,"false");e=e.replace(/fasle/g,"false");return e};JXG.GeonextParser.replaceNameById2=function(g,j){var l=0,d,k,h,f,e=["X","Y","L","V"];for(f=0;f=0){if(l>=0){d=g.indexOf(")",l+2);if(d>=0){k=g.slice(l+2,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+2)+"$('"+h.id+"')"+g.slice(d)}}d=g.indexOf(")",l+2);l=g.indexOf(e[f]+"(",d)}}l=g.indexOf("Dist(");while(l>=0){if(l>=0){d=g.indexOf(",",l+5);if(d>=0){k=g.slice(l+5,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+5)+"$('"+h.id+"')"+g.slice(d)}}d=g.indexOf(",",l+5);l=g.indexOf(",",d);d=g.indexOf(")",l+1);if(d>=0){k=g.slice(l+1,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+1)+"$('"+h.id+"')"+g.slice(d)}d=g.indexOf(")",l+1);l=g.indexOf("Dist(",d)}e=["Deg","Rad"];for(f=0;f=0){if(l>=0){d=g.indexOf(",",l+4);if(d>=0){k=g.slice(l+4,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+4)+"$('"+h.id+"')"+g.slice(d)}}d=g.indexOf(",",l+4);l=g.indexOf(",",d);d=g.indexOf(",",l+1);if(d>=0){k=g.slice(l+1,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+1)+"$('"+h.id+"')"+g.slice(d)}d=g.indexOf(",",l+1);l=g.indexOf(",",d);d=g.indexOf(")",l+1);if(d>=0){k=g.slice(l+1,d);k=k.replace(/\\(['"])?/g,"$1");h=j.elementsByName[k];g=g.slice(0,l+1)+"$('"+h.id+"')"+g.slice(d)}d=g.indexOf(")",l+1);l=g.indexOf(e[f]+"(",d)}}return g};JXG.Board=function(d,i,e,n,m,l,k,j,f,g,h){this.BOARD_MODE_NONE=0;this.BOARD_MODE_DRAG=1;this.BOARD_MODE_MOVE_ORIGIN=2;this.BOARD_QUALITY_LOW=1;this.BOARD_QUALITY_HIGH=2;this.BOARD_MODE_ZOOM=17;this.BOARD_MODE_CONSTRUCT=16;this.CONSTRUCTION_TYPE_POINT=1129599060;this.CONSTRUCTION_TYPE_CIRCLE=1129595724;this.CONSTRUCTION_TYPE_LINE=1129598030;this.CONSTRUCTION_TYPE_GLIDER=1129596740;this.CONSTRUCTION_TYPE_MIDPOINT=1129598288;this.CONSTRUCTION_TYPE_PERPENDICULAR=1129599044;this.CONSTRUCTION_TYPE_PARALLEL=1129599052;this.CONSTRUCTION_TYPE_INTERSECTION=1129597267;this.container=d;this.containerObj=typeof document!="undefined"?document.getElementById(this.container):null;if(typeof document!="undefined"&&this.containerObj==null){throw new Error("\nJSXGraph: HTML container element '"+(d)+"' not found.")}this.renderer=i;this.grids=[];this.options=JXG.deepCopy(JXG.Options);this.dimension=2;this.jc=new JXG.JessieCode();this.jc.use(this);this.origin={};this.origin.usrCoords=[1,0,0];this.origin.scrCoords=[1,n[0],n[1]];this.zoomX=m;this.zoomY=l;this.unitX=k*this.zoomX;this.unitY=j*this.zoomY;this.canvasWidth=f;this.canvasHeight=g;if(JXG.exists(e)&&e!==""&&typeof document!="undefined"&&!JXG.exists(document.getElementById(e))){this.id=e}else{this.id=this.generateId()}this.eventHandlers={};this.hooks=[];this.dependentBoards=[];this.inUpdate=false;this.objects={};this.objectsList=[];this.groups={};this.animationObjects={};this.highlightedObjects={};this.numObjects=0;this.elementsByName={};this.mode=this.BOARD_MODE_NONE;this.updateQuality=this.BOARD_QUALITY_HIGH;this.isSuspendedRedraw=false;this.calculateSnapSizes();this.drag_dx=0;this.drag_dy=0;this.mouse=null;this.touches=[];this.xmlString="";this.cPos=[];this.touchMoveLast=0;this.downObjects=[];this.showCopyright=false;if((h!=null&&h)||(h==null&&this.options.showCopyright)){this.showCopyright=true;this.renderer.displayCopyright(JXG.JSXGraph.licenseText,this.options.text.fontSize)}this.needsFullUpdate=false;this.reducedUpdate=false;this.currentCBDef="none";this.geonextCompatibilityMode=false;if(this.options.text.useASCIIMathML&&translateASCIIMath){init()}else{this.options.text.useASCIIMathML=false}this.hasMouseHandlers=false;this.hasTouchHandlers=false;this.hasMouseUp=false;this.hasTouchEnd=false;this.addEventHandlers();this.methodMap={update:"update",on:"on",off:"off",setView:"setBoundingBox",setBoundingBox:"setBoundingBox",migratePoint:"migratePoint",colorblind:"emulateColorblindness"}};JXG.extend(JXG.Board.prototype,{generateName:function(f){if(f.type==JXG.OBJECT_TYPE_TICKS){return""}var l,h=2,e="",m="",n=[],d="",k,g;if(f.elementClass==JXG.OBJECT_CLASS_POINT){l=["","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"]}else{if(f.type==JXG.OBJECT_TYPE_ANGLE){if(false){l=["","α","β","γ","δ","ε","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ρ","σ","τ","υ","φ","χ","ψ","ω"]}else{l=["","α","β","γ","δ","ε","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ρ","σ","τ","υ","φ","χ","ψ","ω"]}}else{l=["","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"]}}if(f.elementClass!==JXG.OBJECT_CLASS_POINT&&f.elementClass!=JXG.OBJECT_CLASS_LINE&&f.type!=JXG.OBJECT_TYPE_ANGLE){if(f.type===JXG.OBJECT_TYPE_POLYGON){e="P_{"}else{if(f.elementClass===JXG.OBJECT_CLASS_CIRCLE){e="k_{"}else{if(f.type===JXG.OBJECT_TYPE_TEXT){e="t_{"}else{e="s_{"}}}m="}"}for(k=0;k0;k--){d+=l[n[k-1]]}if(this.elementsByName[d+m]==null){return d+m}}n[0]=l.length;for(k=1;k0&&(this.mode===JXG.BOARD_MODE_DRAG||this.mode===JXG.BOARD_MODE_MOVE_ORIGIN)){return this.cPos}if(!g.currentStyle&&f.defaultView){g=document.documentElement;e[0]+=d("margin-left");e[1]+=d("margin-top");e[0]+=d("border-left-width");e[1]+=d("border-top-width");e[0]+=d("padding-left");e[1]+=d("padding-top");g=this.containerObj}e[0]+=d("border-left-width");e[1]+=d("border-top-width");if(this.renderer.type!=="vml"){e[0]+=d("padding-left");e[1]+=d("padding-top")}this.cPos=e;return e},getMousePosition:function(h,f){var g=this.getCoordsTopLeftCorner(),d;d=JXG.getPosition(h,f);return[d[0]-g[0],d[1]-g[1]]},initMoveOrigin:function(d,e){this.drag_dx=d-this.origin.scrCoords[1];this.drag_dy=e-this.origin.scrCoords[2];this.mode=this.BOARD_MODE_MOVE_ORIGIN},initMoveObject:function(l,k,m,j){var h,e,i=[],f,g=this.objectsList.length,d={visProp:{layer:-10000}};for(e=0;e=d.visProp.layer){if(JXG.exists(d.label)&&h==d.label.content){continue}d=h;i[0]=d}}}if(i.length>0){this.mode=this.BOARD_MODE_DRAG}if(this.options.takeFirst){i.length=1}return i},moveObject:function(d,k,j,e,h){var f=new JXG.Coords(JXG.COORDS_BY_SCREEN,this.getScrCoordsOfMouse(d,k),this),g=j.obj,i;if(g.type!=JXG.OBJECT_TYPE_GLIDER){if(!isNaN(j.targets[0].Xprev+j.targets[0].Yprev)){g.setPositionDirectly(JXG.COORDS_BY_SCREEN,f.scrCoords.slice(1),[j.targets[0].Xprev,j.targets[0].Yprev])}j.targets[0].Xprev=f.scrCoords[1];j.targets[0].Yprev=f.scrCoords[2];this.update(g)}else{if(g.type==JXG.OBJECT_TYPE_GLIDER){i=g.coords;g.setPositionDirectly(JXG.COORDS_BY_USER,f.usrCoords.slice(1));if(g.slideObject.elementClass==JXG.OBJECT_CLASS_CIRCLE){g.coords=JXG.Math.Geometry.projectPointToCircle(g,g.slideObject,this)}else{if(g.slideObject.elementClass==JXG.OBJECT_CLASS_LINE){g.coords=JXG.Math.Geometry.projectPointToLine(g,g.slideObject,this)}}if(g.group.length!=0){g.group[g.group.length-1].dX=g.coords.scrCoords[1]-i.scrCoords[1];g.group[g.group.length-1].dY=g.coords.scrCoords[2]-i.scrCoords[2];g.group[g.group.length-1].update(this)}else{this.update(g)}}}g.triggerEventHandlers([h+"drag","drag"],e);this.updateInfobox(g);this.update();g.highlight(true)},twoFingerMove:function(j,h,i,e){var d,f,g;if(JXG.exists(i)&&JXG.exists(i.obj)){g=i.obj}else{return}d=new JXG.Coords(JXG.COORDS_BY_SCREEN,this.getScrCoordsOfMouse(j[0],j[1]),this);f=new JXG.Coords(JXG.COORDS_BY_SCREEN,this.getScrCoordsOfMouse(h[0],h[1]),this);if(g.elementClass===JXG.OBJECT_CLASS_LINE){this.moveLine(d,f,i,g)}else{if(g.elementClass===JXG.OBJECT_CLASS_CIRCLE){this.moveCircle(d,f,i,g)}}g.triggerEventHandlers(["touchdrag","drag"],e);i.targets[0].Xprev=d.scrCoords[1];i.targets[0].Yprev=d.scrCoords[2];i.targets[1].Xprev=f.scrCoords[1];i.targets[1].Yprev=f.scrCoords[2]},moveLine:function(z,g,s,u){var A,w,r,q,h,n,i,t,v,e,f,p,m,l,k,j;if(JXG.exists(s.targets[0])&&JXG.exists(s.targets[1])&&!isNaN(s.targets[0].Xprev+s.targets[0].Yprev+s.targets[1].Xprev+s.targets[1].Yprev)){A=z.usrCoords;w=g.usrCoords;r=(new JXG.Coords(JXG.COORDS_BY_SCREEN,[s.targets[0].Xprev,s.targets[0].Yprev],this)).usrCoords;q=(new JXG.Coords(JXG.COORDS_BY_SCREEN,[s.targets[1].Xprev,s.targets[1].Yprev],this)).usrCoords;n=[1,(r[1]+q[1])*0.5,(r[2]+q[2])*0.5];h=[1,(A[1]+w[1])*0.5,(A[2]+w[2])*0.5];t=JXG.Math.crossProduct(r,q);i=JXG.Math.crossProduct(A,w);e=JXG.Math.crossProduct(t,i);if(Math.abs(e[0])0){s.preventDefault();s.stopPropagation()}if(JXG.isWebkitAndroid()){var e=new Date();this.touchMoveLast=e.getTime()-200}this.options.precision.hasPoint=this.options.precision.mouse;this.triggerEventHandlers(["touchstart","down"],s);return this.touches.length>0},touchMoveListener:function(d){var e,g=0,j,h=d[JXG.touchProperty];if(this.mode!==this.BOARD_MODE_NONE){d.preventDefault();d.stopPropagation()}if(JXG.isWebkitAndroid()){var f=new Date();f=f.getTime();if(f-this.touchMoveLast<80){this.updateQuality=this.BOARD_QUALITY_HIGH;this.triggerEventHandlers(["touchmove","move"],d,this.mode);return false}else{this.touchMoveLast=f}}if(this.mode!=this.BOARD_MODE_DRAG){this.renderer.hide(this.infobox)}this.options.precision.hasPoint=this.options.precision.touch;if(!this.touchOriginMove(d)){if(this.mode==this.BOARD_MODE_DRAG){for(e=0;e-1&&this.touches[e].targets[1].num>-1){if(h[this.touches[e].targets[0].num]&&h[this.touches[e].targets[1].num]){this.touches[e].targets[0].X=h[this.touches[e].targets[0].num].screenX;this.touches[e].targets[0].Y=h[this.touches[e].targets[0].num].screenY;this.touches[e].targets[1].X=h[this.touches[e].targets[1].num].screenX;this.touches[e].targets[1].Y=h[this.touches[e].targets[1].num].screenY;this.twoFingerMove(this.getMousePosition(d,this.touches[e].targets[0].num),this.getMousePosition(d,this.touches[e].targets[1].num),this.touches[e],d)}}}}}}if(this.mode!=this.BOARD_MODE_DRAG){this.renderer.hide(this.infobox)}this.options.precision.hasPoint=this.options.precision.mouse;this.triggerEventHandlers(["touchmove","move"],d,this.mode);return this.mode===this.BOARD_MODE_NONE},touchEndListener:function(m){var f,e,d,o=this.options.precision.touch,l=[],n,g,h=m[JXG.touchProperty];this.triggerEventHandlers(["touchend","up"],m);this.renderer.hide(this.infobox);if(h.length>0){for(f=0;f0){this.zoomIn(f.usrCoords[1],f.usrCoords[2])}else{this.zoomOut(f.usrCoords[1],f.usrCoords[2])}d.preventDefault();return false},updateInfobox:function(e){var d,h,f,g;if(!e.visProp.showinfobox){return this}if(e.elementClass==JXG.OBJECT_CLASS_POINT){f=e.coords.usrCoords[1];g=e.coords.usrCoords[2];this.infobox.setCoords(f+this.infobox.distanceX/(this.unitX),g+this.infobox.distanceY/(this.unitY));if(typeof(e.infoboxText)!="string"){if(e.visProp.infoboxdigits==="auto"){d=JXG.autoDigits(f);h=JXG.autoDigits(g)}else{if(JXG.isNumber(e.visProp.infoboxdigits)){d=f.toFixed(e.visProp.infoboxdigits);h=g.toFixed(e.visProp.infoboxdigits)}else{d=f;h=g}}this.highlightInfobox(d,h,e)}else{this.highlightCustomInfobox(e.infoboxText,e)}this.renderer.show(this.infobox)}return this},highlightCustomInfobox:function(d){this.infobox.setText(d);return this},highlightInfobox:function(d,f,e){this.highlightCustomInfobox("("+d+", "+f+")");return this},dehighlightAll:function(){var e,f,d=false;for(e in this.highlightedObjects){f=this.highlightedObjects[e];if(this.hasMouseHandlers){f.noHighlight()}d=true}this.highlightedObjects={};if(this.options.renderer=="canvas"&&d){this.prepareUpdate();this.renderer.suspendRedraw(this);this.updateRenderer();this.renderer.unsuspendRedraw()}return this},getScrCoordsOfMouse:function(d,e){return[d,e]},getUsrCoordsOfMouse:function(f){var g=this.getCoordsTopLeftCorner(),e=JXG.getPosition(f),d=e[0]-g[0],i=e[1]-g[1],h=new JXG.Coords(JXG.COORDS_BY_SCREEN,[d,i],this);return h.usrCoords.slice(1)},getAllUnderMouse:function(d){var e=this.getAllObjectsUnderMouse(d);e.push(this.getUsrCoordsOfMouse(d));return e},getAllObjectsUnderMouse:function(i){var j=this.getCoordsTopLeftCorner(),d=JXG.getPosition(i),l=d[0]-j[0],k=d[1]-j[1],g=[],e,h,f=this.objectsList.length;for(e=0;e"),l=o.indexOf(""),k,h,g,q,d,f;if(n<0){return}while(n>=0){k=o.slice(n+6,l);h=k.indexOf("=");g=k.slice(0,h);q=k.slice(h+1);h=g.indexOf(".");d=g.slice(0,h);f=this.elementsByName[JXG.unescapeHTML(d)];var p=g.slice(h+1).replace(/\s+/g,"").toLowerCase();q=JXG.GeonextParser.geonext2JS(q,this);q=q.replace(/this\.board\./g,"this.");if(!JXG.exists(this.elementsByName[d])){JXG.debug("debug conditions: |"+d+"| undefined")}e+='el = this.objects["'+f.id+'"];\n';switch(p){case"x":e+="var y=el.coords.usrCoords[2];\n";e+="el.setPositionDirectly(JXG.COORDS_BY_USER,["+(q)+",y]);\n";e+="el.prepareUpdate().update();\n";break;case"y":e+="var x=el.coords.usrCoords[1];\n";e+="el.coords=new JXG.Coords(JXG.COORDS_BY_USER,[x,"+(q)+"],this);\n";e+="el.setPositionDirectly(JXG.COORDS_BY_USER,[x,"+(q)+"]);\n";e+="el.prepareUpdate().update();\n";break;case"visible":e+="var c="+(q)+";\n";e+="el.visProp.visible = c;\n";e+="if (c) {el.showElement();} else {el.hideElement();}\n";break;case"position":e+="el.position = "+(q)+";\n";e+="el.prepareUpdate().update(true);\n";break;case"stroke":e+="rgbo = JXG.rgba2rgbo("+(q)+");\n";e+="el.visProp.strokecolor = rgbo[0];\n";e+="el.visProp.strokeopacity = rgbo[1];\n";break;case"style":e+="el.setStyle("+(q)+");\n";break;case"strokewidth":e+="el.strokeWidth = "+(q)+";\n";break;case"fill":e+="var rgbo = JXG.rgba2rgbo("+(q)+");\n";e+="el.visProp.fillcolor = rgbo[0];\n";e+="el.visProp.fillopacity = rgbo[1];\n";break;case"label":break;default:JXG.debug("property '"+p+"' in conditions not yet implemented:"+q);break}o=o.slice(l+7);n=o.indexOf("");l=o.indexOf("")}e+="this.prepareUpdate().updateElements();\n";e+="return true;\n";e=e.replace(/</g,"<");e=e.replace(/>/g,">");e=e.replace(/&/g,"&");this.updateConditions=new Function(e);this.updateConditions()},updateConditions:function(){return false},calculateSnapSizes:function(){var f=new JXG.Coords(JXG.COORDS_BY_USER,[0,0],this),e=new JXG.Coords(JXG.COORDS_BY_USER,[this.options.grid.gridX,this.options.grid.gridY],this),d=f.scrCoords[1]-e.scrCoords[1],g=f.scrCoords[2]-e.scrCoords[2];this.options.grid.snapSizeX=this.options.grid.gridX;while(Math.abs(d)>25){this.options.grid.snapSizeX*=2;d/=2}this.options.grid.snapSizeY=this.options.grid.gridY;while(Math.abs(g)>25){this.options.grid.snapSizeY*=2;g/=2}return this},applyZoom:function(){var f,e,d=this.objectsList.length;for(e=0;ee){e=k.coords.usrCoords[1]}}if(k.coords.usrCoords[2]>d){d=k.coords.usrCoords[2]}else{if(k.coords.usrCoords[2]-1){this.objectsList.splice(d._pos,1);for(g=d._pos;g=0){e+=""+this.objects[g].id+": "}for(j in this.objects[g].childElements){e+=this.objects[g].childElements[j].id+"("+this.objects[g].childElements[j].name+"), "}e+="

                \n"}e+="

                \n";h=window.open();h.document.open();h.document.write(e);h.document.close();return this},showXML:function(){var d=window.open("");d.document.open();d.document.write("
                "+JXG.escapeHTML(this.xmlString)+"
                ");d.document.close();return this},prepareUpdate:function(){var e,f,d=this.objectsList.length;for(e=0;en&&f[e]-1){this.eventHandlers[f].splice(d,1)}}else{this.eventHandlers[f].length=0}return this},removeEvent:JXG.shortcut(JXG.Board.prototype,"off"),updateHooks:function(d){arguments[0]=JXG.def(arguments[0],"update");this.triggerEventHandlers.apply(this,arguments);return this},triggerEventHandlers:function(l){var g,f,k,d,e=Array.prototype.slice.call(arguments,1);if(!JXG.isArray(l)){l=[l]}for(f=0;f=0;d--){if(this.dependentBoards[d]==e){this.dependentBoards.splice(d,1)}}return this},update:function(g){var f,e,h,d;if(this.inUpdate||this.isSuspendedUpdate){return this}this.inUpdate=true;this.prepareUpdate(g).updateElements(g).updateConditions();this.renderer.suspendRedraw(this);this.updateRenderer(g);this.renderer.unsuspendRedraw();this.triggerEventHandlers("update");e=this.dependentBoards.length;for(f=0;f-n){s=-A;o.applyOnce(j)}else{if(s>A&&s0){q=setInterval(this.rolling,e)}return this};this.stop=function(){clearInterval(q);return this};return this};return new d()}});JXG.Options={showCopyright:true,showNavigation:true,takeSizeFromFile:false,renderer:"svg",takeFirst:false,pan:true,animationDelay:35,zoom:{factorX:1.25,factorY:1.25,wheel:false},jc:{enabled:true,compile:true},navbar:{strokeColor:"#aaaaaa",fillColor:"#f5f5f5",padding:"2px",position:"absolute",fontSize:"10px",cursor:"pointer",zIndex:"100",right:"5px",bottom:"5px"},elements:{strokeColor:"#0000ff",highlightStrokeColor:"#C3D9FF",fillColor:"red",highlightFillColor:"none",strokeOpacity:1,highlightStrokeOpacity:1,fillOpacity:1,highlightFillOpacity:1,strokeWidth:2,highlightStrokeWidth:2,fixed:false,frozen:false,withLabel:false,visible:true,priv:false,layer:0,dash:0,shadow:false,trace:false,traceAttributes:{},highlight:true,needsRegularUpdate:true,snapToGrid:false,draft:{draft:false,strokeColor:"#565656",fillColor:"#565656",strokeOpacity:0.8,fillOpacity:0.8,strokeWidth:1}},ticks:{drawLabels:false,label:{},drawZero:false,insertTicks:false,minTicksDistance:50,minorHeight:4,majorHeight:10,minorTicks:4,scale:1,scaleSymbol:"",labels:[],ticksDistance:1,strokeOpacity:1,strokeWidth:1,strokeColor:"black",highlightStrokeColor:"#888888"},precision:{touch:30,touchMax:100,mouse:4,epsilon:0.0001,hasPoint:4},layer:{numlayers:20,text:9,point:9,glider:9,arc:8,line:7,circle:6,curve:5,turtle:5,polygon:3,sector:3,angle:3,integral:3,axis:2,grid:1,image:0,trace:0},angle:{withLabel:true,radius:0.5,type:"sector",orthoType:"square",orthoSensitivity:1,fillColor:"#FF7F00",highlightFillColor:"#FF7F00",strokeColor:"#FF7F00",fillOpacity:0.3,highlightFillOpacity:0.3,radiuspoint:{withLabel:false,visible:false,name:""},pointsquare:{withLabel:false,visible:false,name:""},dot:{visible:false,strokeColor:"none",fillColor:"black",size:2,face:"o",withLabel:false,name:""},label:{position:"top",offset:[0,0],strokeColor:"#0000FF"}},arc:{label:{},firstArrow:false,lastArrow:false,fillColor:"none",highlightFillColor:"none",strokeColor:"#0000ff",highlightStrokeColor:"#C3D9FF",useDirection:false},axis:{needsRegularUpdate:false,strokeWidth:1,strokeColor:"#666666",highlightStrokeWidth:1,highlightStrokeColor:"#888888",withTicks:true,straightFirst:true,straightLast:true,lastArrow:true,withLabel:false,ticks:{label:{offset:[4,-12+3]},needsRegularUpdate:false,strokeWidth:1,strokeColor:"#666666",highlightStrokeColor:"#888888",drawLabels:true,drawZero:false,insertTicks:true,minTicksDistance:10,minorHeight:4,majorHeight:-1,minorTicks:4,ticksDistance:1,strokeOpacity:0.25},point1:{needsRegularUpdate:false},point2:{needsRegularUpdate:false},label:{position:"lft",offset:[10,-20]}},bisector:{strokeColor:"#000000",point:{visible:false,fixed:false,withLabel:false,name:""}},bisectorlines:{line1:{strokeColor:"black"},line2:{strokeColor:"black"}},chart:{chartStyle:"line",colors:["#B02B2C","#3F4C6B","#C79810","#D15600","#FFFF88","#C3D9FF","#4096EE","#008C00"],highlightcolors:null,fillcolor:null,highlightonsector:false,highlightbysize:false},circle:{fillColor:"none",highlightFillColor:"none",strokeColor:"#0000ff",highlightStrokeColor:"#C3D9FF",center:{visible:false,withLabel:false,fixed:false,name:""},label:{position:"urt"}},circumcircle:{fillColor:"none",highlightFillColor:"none",strokeColor:"#0000ff",highlightStrokeColor:"#C3D9FF",center:{visible:false,fixed:false,withLabel:false,name:""}},circumcirclearc:{fillColor:"none",highlightFillColor:"none",strokeColor:"#0000ff",highlightStrokeColor:"#C3D9FF",center:{visible:false,withLabel:false,fixed:false,name:""}},circumcirclesector:{useDirection:true,fillColor:"#00FF00",highlightFillColor:"#00FF00",fillOpacity:0.3,highlightFillOpacity:0.3,strokeColor:"#0000ff",highlightStrokeColor:"#C3D9FF",point:{visible:false,fixed:false,withLabel:false,name:""}},conic:{fillColor:"none",highlightFillColor:"none",strokeColor:"#0000ff",highlightStrokeColor:"#C3D9FF",foci:{fixed:false,visible:false,withLabel:false,name:""}},curve:{strokeWidth:1,strokeColor:"#0000ff",fillColor:"none",handDrawing:false,curveType:null,RDPsmoothing:false,numberPointsHigh:1600,numberPointsLow:400,doAdvancedPlot:true,label:{position:"lft"}},glider:{label:{}},grid:{needsRegularUpdate:false,hasGrid:false,gridX:1,gridY:1,strokeColor:"#C0C0C0",strokeOpacity:"0.5",strokeWidth:1,dash:0,snapToGrid:false,snapSizeX:10,snapSizeY:10},image:{imageString:null,fillOpacity:1,rotate:0},incircle:{fillColor:"none",highlightFillColor:"none",strokeColor:"#0000ff",highlightStrokeColor:"#C3D9FF",center:{visible:false,fixed:false,withLabel:false,name:""}},infobox:{fontSize:12,isLabel:false,strokeColor:"#bbbbbb",display:"html",anchorX:"left",anchorY:"middle",cssClass:"JXGinfobox",rotate:0,visible:true},integral:{withLabel:true,strokeWidth:0,strokeOpacity:0,fillOpacity:0.8,curveLeft:{visible:true,layer:9},baseLeft:{visible:false,fixed:false,withLabel:false,name:""},curveRight:{visible:true,layer:9},baseRight:{visible:false,fixed:false,withLabel:false,name:""},label:{fontSize:20}},label:{strokeColor:"black",fixed:true,position:"urt",offset:[10,10]},legend:{style:"vertical",labels:["1","2","3","4","5","6","7","8"],colors:["#B02B2C","#3F4C6B","#C79810","#D15600","#FFFF88","#C3D9FF","#4096EE","#008C00"]},line:{firstArrow:false,lastArrow:false,straightFirst:true,straightLast:true,fillColor:"none",highlightFillColor:"none",strokeColor:"#0000ff",highlightStrokeColor:"#888888",withTicks:false,point1:{visible:false,withLabel:false,fixed:false,name:""},point2:{visible:false,withLabel:false,fixed:false,name:""},ticks:{drawLabels:true,label:{offset:[4,-12+3]},drawZero:false,insertTicks:false,minTicksDistance:50,maxTicksDistance:300,minorHeight:4,majorHeight:-1,minorTicks:4,defaultDistance:1,strokeOpacity:0.3},label:{position:"llft"}},locus:{translateToOrigin:false,translateTo10:false,stretch:false,toOrigin:null,to10:null},normal:{strokeColor:"#000000",point:{visible:false,fixed:false,withLabel:false,name:""}},orthogonalprojection:{},parallel:{strokeColor:"#000000",point:{visible:false,fixed:false,withLabel:false,name:""}},perpendicular:{strokeColor:"#000000",straightFirst:true,straightLast:true},perpendicularsegment:{strokeColor:"#000000",straightFirst:false,straightLast:false,point:{visible:false,fixed:true,withLabel:false,name:""}},point:{withLabel:true,label:{},style:5,face:"o",size:3,fillColor:"#ff0000",highlightFillColor:"#EEEEEE",strokeWidth:2,strokeColor:"#ff0000",highlightStrokeColor:"#C3D9FF",zoom:false,showInfobox:true,infoboxDigits:"auto",draft:false,attractors:[],attractorDistance:0,snatchDistance:0,snapToGrid:false,snapSizeX:1,snapSizeY:1,snapToPoints:false},polygon:{hasInnerPoints:false,fillColor:"#00FF00",highlightFillColor:"#00FF00",fillOpacity:0.3,highlightFillOpacity:0.3,withLines:true,borders:{withLabel:false,strokeWidth:1,highlightStrokeWidth:1,layer:5},vertices:{withLabel:true,strokeColor:"#ff0000",fillColor:"#ff0000",fixed:true},label:{offset:[0,0]}},riemannsum:{withLabel:false,fillOpacity:0.3,fillColor:"#ffff00"},sector:{fillColor:"#00FF00",highlightFillColor:"#00FF00",fillOpacity:0.3,highlightFillOpacity:0.3,label:{offset:[0,0]}},semicircle:{midpoint:{visible:false,withLabel:false,fixed:false,name:""}},slider:{snapWidth:-1,precision:2,firstArrow:false,lastArrow:false,withTicks:true,withLabel:true,layer:9,showInfobox:false,name:"",visible:true,strokeColor:"#000000",highlightStrokeColor:"#888888",fillColor:"#ffffff",highlightFillColor:"none",size:6,point1:{needsRegularUpdate:false,showInfobox:false,withLabel:false,visible:false,fixed:true,name:""},point2:{needsRegularUpdate:false,showInfobox:false,withLabel:false,visible:false,fixed:true,name:""},baseline:{needsRegularUpdate:false,name:"",strokeWidth:1,strokeColor:"#000000",highlightStrokeColor:"#888888"},ticks:{needsRegularUpdate:false,drawLabels:false,drawZero:true,insertTicks:true,minorHeight:4,majorHeight:10,minorTicks:0,defaultDistance:1,strokeOpacity:1,strokeWidth:1,strokeColor:"#000000"},highline:{strokeWidth:3,name:"",strokeColor:"#000000",highlightStrokeColor:"#888888"},label:{strokeColor:"#000000"}},text:{fontSize:12,digits:2,isLabel:false,strokeColor:"#000000",useASCIIMathML:false,useMathJax:false,display:"html",anchorX:"left",anchorY:"middle",cssClass:"JXGtext",highlightCssClass:"JXGtext",withLabel:false,rotate:0,visible:true},tracecurve:{strokeColor:"#000000",fillColor:"none",numberPoints:100},turtle:{strokeWidth:1,fillColor:"none",strokeColor:"#000000",arrow:{strokeWidth:2,withLabel:false,strokeColor:"#ff0000"}},shortcuts:{color:["strokeColor","fillColor"],opacity:["strokeOpacity","fillOpacity"],highlightColor:["highlightStrokeColor","highlightFillColor"],highlightOpacity:["highlightStrokeOpacity","highlightFillOpacity"],strokeWidth:["strokeWidth","highlightStrokeWidth"]}};JXG.Validator=(function(){var k=function(i){return/^[0-9]+px$/.test(i)},m=function(i){return(i in {html:0,internal:0})},n=function(i){return JXG.isString(i)},l=function(i){return JXG.exists(JXG.Point.prototype.normalizeFace.call(this,i))},p=function(i){return(Math.abs(i-Math.round(i))0},h=function(i){return i.length>=2&&p(i[0])&&p(i[1])},d=function(i){return(i in {vml:0,svg:0,canvas:0})},j=function(i){return i>0},g=function(i){return !(i<0)},f,o={},e={attractorDistance:g,color:n,defaultDistance:JXG.isNumber,display:m,doAdvancedPlot:false,draft:false,drawLabels:false,drawZero:false,face:l,factor:JXG.isNumber,fillColor:n,fillOpacity:JXG.isNumber,firstArrow:false,fontSize:p,dash:p,gridX:JXG.isNumber,gridY:JXG.isNumber,hasGrid:false,highlightFillColor:n,highlightFillOpacity:JXG.isNumber,highlightStrokeColor:n,highlightStrokeOpacity:JXG.isNumber,insertTicks:false,lastArrow:false,majorHeight:p,maxTicksDistance:q,minorHeight:p,minorTicks:q,minTicksDistance:q,numberPointsHigh:q,numberPointsLow:q,opacity:JXG.isNumber,radius:JXG.isNumber,RDPsmoothing:false,renderer:d,right:k,showCopyright:false,showInfobox:false,showNavigation:false,size:p,snapSizeX:j,snapSizeY:j,snapWidth:JXG.isNumber,snapToGrid:false,snatchDistance:g,straightFirst:false,straightLast:false,stretch:false,strokeColor:n,strokeOpacity:JXG.isNumber,strokeWidth:p,takeFirst:false,takeSizeFromFile:false,to10:false,toOrigin:false,translateTo10:false,translateToOrigin:false,useASCIIMathML:false,useDirection:false,useMathJax:false,withLabel:false,withTicks:false,zoom:false};for(f in e){o[f.toLowerCase()]=e[f]}return o})();JXG.useStandardOptions=function(h){var j=JXG.Options,g=h.hasGrid,f,e,i,d;h.options.grid.hasGrid=j.grid.hasGrid;h.options.grid.gridX=j.grid.gridX;h.options.grid.gridY=j.grid.gridY;h.options.grid.gridColor=j.grid.gridColor;h.options.grid.gridOpacity=j.grid.gridOpacity;h.options.grid.gridDash=j.grid.gridDash;h.options.grid.snapToGrid=j.grid.snapToGrid;h.options.grid.snapSizeX=j.grid.SnapSizeX;h.options.grid.snapSizeY=j.grid.SnapSizeY;h.takeSizeFromFile=j.takeSizeFromFile;d=function(k,l){k.visProp.fillcolor=l.fillColor;k.visProp.highlightfillcolor=l.highlightFillColor;k.visProp.strokecolor=l.strokeColor;k.visProp.highlightstrokecolor=l.highlightStrokeColor};for(f in h.objects){i=h.objects[f];if(i.elementClass==JXG.OBJECT_CLASS_POINT){d(i,j.point)}else{if(i.elementClass==JXG.OBJECT_CLASS_LINE){d(i,j.line);for(e in i.ticks){e.majorTicks=j.line.ticks.majorTicks;e.minTicksDistance=j.line.ticks.minTicksDistance;e.visProp.minorheight=j.line.ticks.minorHeight;e.visProp.majorheight=j.line.ticks.majorHeight}}else{if(i.elementClass==JXG.OBJECT_CLASS_CIRCLE){d(i,j.circle)}else{if(i.type==JXG.OBJECT_TYPE_ANGLE){d(i,j.angle)}else{if(i.type==JXG.OBJECT_TYPE_ARC){d(i,j.arc)}else{if(i.type==JXG.OBJECT_TYPE_POLYGON){d(i,j.polygon)}else{if(i.type==JXG.OBJECT_TYPE_CONIC){d(i,j.conic)}else{if(i.type==JXG.OBJECT_TYPE_CURVE){d(i,j.curve)}else{if(i.type==JXG.OBJECT_TYPE_SECTOR){i.arc.visProp.fillcolor=j.sector.fillColor;i.arc.visProp.highlightfillcolor=j.sector.highlightFillColor;i.arc.visProp.fillopacity=j.sector.fillOpacity;i.arc.visProp.highlightfillopacity=j.sector.highlightFillOpacity}}}}}}}}}}h.fullUpdate();if(g&&!h.hasGrid){h.removeGrids(h)}else{if(!g&&h.hasGrid){h.create("grid",[])}}};JXG.useBlackWhiteOptions=function(d){var e=JXG.Options;e.point.fillColor=JXG.rgb2bw(e.point.fillColor);e.point.highlightFillColor=JXG.rgb2bw(e.point.highlightFillColor);e.point.strokeColor=JXG.rgb2bw(e.point.strokeColor);e.point.highlightStrokeColor=JXG.rgb2bw(e.point.highlightStrokeColor);e.line.fillColor=JXG.rgb2bw(e.line.fillColor);e.line.highlightFillColor=JXG.rgb2bw(e.line.highlightFillColor);e.line.strokeColor=JXG.rgb2bw(e.line.strokeColor);e.line.highlightStrokeColor=JXG.rgb2bw(e.line.highlightStrokeColor);e.circle.fillColor=JXG.rgb2bw(e.circle.fillColor);e.circle.highlightFillColor=JXG.rgb2bw(e.circle.highlightFillColor);e.circle.strokeColor=JXG.rgb2bw(e.circle.strokeColor);e.circle.highlightStrokeColor=JXG.rgb2bw(e.circle.highlightStrokeColor);e.arc.fillColor=JXG.rgb2bw(e.arc.fillColor);e.arc.highlightFillColor=JXG.rgb2bw(e.arc.highlightFillColor);e.arc.strokeColor=JXG.rgb2bw(e.arc.strokeColor);e.arc.highlightStrokeColor=JXG.rgb2bw(e.arc.highlightStrokeColor);e.polygon.fillColor=JXG.rgb2bw(e.polygon.fillColor);e.polygon.highlightFillColor=JXG.rgb2bw(e.polygon.highlightFillColor);e.sector.fillColor=JXG.rgb2bw(e.sector.fillColor);e.sector.highlightFillColor=JXG.rgb2bw(e.sector.highlightFillColor);e.curve.strokeColor=JXG.rgb2bw(e.curve.strokeColor);e.grid.gridColor=JXG.rgb2bw(e.grid.gridColor);JXG.useStandardOptions(d)};JXG.JSXGraph={licenseText:"JSXGraph v0.95 Copyright (C) see http://jsxgraph.org",boards:{},elements:{},rendererType:(function(){var e=function(h){var f,g;if(JXG.rendererFiles[h]){f=JXG.rendererFiles[h].split(",");for(g=0;g0){this.board=h;this.type=g;this.elementClass=i||JXG.OBJECT_CLASS_OTHER;this.id=d.id;e=d.name;if(!JXG.exists(e)){e=this.board.generateName(this)}this.board.elementsByName[e]=this;this.name=e;this.needsRegularUpdate=d.needsregularupdate;JXG.clearVisPropOld(this);d=this.resolveShortcuts(d);for(f in d){this._set(f,d[f])}this.visProp.draft=d.draft&&d.draft.draft;this.visProp.gradientangle="270";this.visProp.gradientsecondopacity=this.visProp.fillopacity;this.visProp.gradientpositionx=0.5;this.visProp.gradientpositiony=0.5}};JXG.extend(JXG.GeometryElement.prototype,{addChild:function(f){var e,d;this.childElements[f.id]=f;this.addDescendants(f);f.ancestors[this.id]=this;for(e in this.descendants){this.descendants[e].ancestors[this.id]=this;for(d in this.ancestors){this.descendants[e].ancestors[this.ancestors[d].id]=this.ancestors[d]}}for(e in this.ancestors){for(d in this.descendants){this.ancestors[e].descendants[this.descendants[d].id]=this.descendants[d]}}return this},addDescendants:function(e){var d;this.descendants[e.id]=e;for(d in e.childElements){this.addDescendants(e.childElements[d])}return this},countChildren:function(){var g,e=0,f;f=this.childElements;for(g in f){if(f.hasOwnProperty(g)&&g.indexOf("Label")<0){e++}}return e},getName:function(){return this.name},addTransform:function(){},draggable:function(){return this.isDraggable&&!this.visProp.fixed&&!this.visProp.frozen&&this.type!=JXG.OBJECT_TYPE_GLIDER},generatePolynomial:function(){return[]},animate:function(g,f,q){q=q||{};var d,e,j=this.board.options.animationDelay,k=Math.ceil(f/(j*1)),h,n=this,m=false;this.animationData={};var o=function(w,v,t){var u,s,r,p,i;u=JXG.rgb2hsv(w);s=JXG.rgb2hsv(v);r=(s[0]-u[0])/(1*k);p=(s[1]-u[1])/(1*k);i=(s[2]-u[2])/(1*k);n.animationData[t]=new Array(k);for(h=0;h=0&&JXG.isString(d)&&d.length==9&&d.charAt(0)==="#"){d=JXG.rgba2rgbo(d);this.visProp[e]=d[0];this.visProp[e.replace("color","opacity")]=d[1]}else{this.visProp[e]=d}},resolveShortcuts:function(f){var e,d;for(e in JXG.Options.shortcuts){if(JXG.exists(f[e])){for(d=0;d/g,">");if(this.label!==null){this.label.content.setText(d)}return this},setAttribute:JXG.shortcut(JXG.GeometryElement.prototype,"setProperty"),setProperty:function(){var h,g,j,d,e,k,f={};for(h=0;h-1){this.eventHandlers[f].splice(d,1)}}else{this.eventHandlers[f].length=0}},removeEvent:JXG.shortcut(JXG.GeometryElement.prototype,"off")});JXG.COORDS_BY_USER=1;JXG.COORDS_BY_SCREEN=2;JXG.Coords=function(f,e,d){this.board=d;this.usrCoords=[];this.scrCoords=[];this.setCoordinates(f,e)};JXG.extend(JXG.Coords.prototype,{normalizeUsrCoords:function(){var d=JXG.Math.eps;if(Math.abs(this.usrCoords[0])>d){this.usrCoords[1]/=this.usrCoords[0];this.usrCoords[2]/=this.usrCoords[0];this.usrCoords[0]=1}},usr2screen:function(h){var g=Math.round,d=this.board,f=this.usrCoords,e=d.origin.scrCoords;if(h===null||h){this.scrCoords[0]=g(f[0]);this.scrCoords[1]=g(f[0]*e[1]+f[1]*d.unitX);this.scrCoords[2]=g(f[0]*e[2]-f[2]*d.unitY)}else{this.scrCoords[0]=f[0];this.scrCoords[1]=f[0]*e[1]+f[1]*d.unitX;this.scrCoords[2]=f[0]*e[2]-f[2]*d.unitY}},screen2usr:function(){var f=this.board.origin.scrCoords,e=this.scrCoords,d=this.board;this.usrCoords[0]=1;this.usrCoords[1]=(e[1]-f[1])/d.unitX;this.usrCoords[2]=(f[2]-e[2])/d.unitY},distance:function(e,j){var g=0,k,d=this.usrCoords,i=this.scrCoords,h;if(e===JXG.COORDS_BY_USER){k=j.usrCoords;h=d[0]-k[0];g=h*h;if(g>JXG.Math.eps){return Number.POSITIVE_INFINITY}h=d[1]-k[1];g+=h*h;h=d[2]-k[2];g+=h*h}else{k=j.scrCoords;h=i[1]-k[1];g+=h*h;h=i[2]-k[2];g+=h*h}return Math.sqrt(g)},setCoordinates:function(e,h,f){var d=this.usrCoords,g=this.scrCoords;if(e===JXG.COORDS_BY_USER){if(h.length===2){d[0]=1;d[1]=h[0];d[2]=h[1]}else{d[0]=h[0];d[1]=h[1];d[2]=h[2];this.normalizeUsrCoords()}this.usr2screen(f)}else{g[1]=h[0];g[2]=h[1];this.screen2usr()}return this}});JXG.Point=function(e,f,d){this.constructor(e,d,JXG.OBJECT_TYPE_POINT,JXG.OBJECT_CLASS_POINT);if(f==null){f=[0,0]}this.coords=new JXG.Coords(JXG.COORDS_BY_USER,f,this.board);this.initialCoords=new JXG.Coords(JXG.COORDS_BY_USER,f,this.board);this.position=null;this.onPolygon=false;this.slideObject=null;this.Xjc=null;this.Yjc=null;this.methodMap=JXG.deepCopy(this.methodMap,{move:"moveTo",glide:"makeGlider",X:"X",Y:"Y",free:"free",setPosition:"setGliderPosition"});this.group=[];this.elType="point";this.id=this.board.setId(this,"P");this.board.renderer.drawPoint(this);this.board.finalizeAdding(this);this.createLabel()};JXG.Point.prototype=new JXG.GeometryElement();JXG.extend(JXG.Point.prototype,{hasPoint:function(e,g){var d=this.coords.scrCoords,f;f=parseFloat(this.visProp.size)+parseFloat(this.visProp.strokewidth)*0.5;if(f1){for(k=0;k=0)?1:-1;m=Math.abs(m);this.position=j*m/(m+1)}else{if(Math.abs(r[0])0&&Math.abs(this._smax-this._smin)>=JXG.Math.eps){if(this.position<0){this.position=0}if(this.position>1){this.position=1}q=this.position*(this._smax-this._smin)+this._smin;q=Math.round(q/this.visProp.snapwidth)*this.visProp.snapwidth;this.position=(q-this._smin)/(this._smax-this._smin);this.update(true)}r=l.point1.coords.usrCoords;if(!l.visProp.straightfirst&&Math.abs(r[0])>JXG.Math.eps&&this.position<0){this.coords.setCoordinates(JXG.COORDS_BY_USER,r);this.position=0}n=l.point2.coords.usrCoords;if(!l.visProp.straightlast&&Math.abs(n[0])>JXG.Math.eps&&this.position>1){this.coords.setCoordinates(JXG.COORDS_BY_USER,n);this.position=1}}else{if(l.type==JXG.OBJECT_TYPE_TURTLE){this.updateConstraint();this.coords=JXG.Math.Geometry.projectPointToTurtle(this,l,this.board)}else{if(l.elementClass==JXG.OBJECT_CLASS_CURVE){if(l.type==JXG.OBJECT_TYPE_ARC||l.type==JXG.OBJECT_TYPE_SECTOR){this.coords=JXG.Math.Geometry.projectPointToCircle(this,l,this.board);g=JXG.Math.Geometry.rad(l.radiuspoint,l.center,this);h=0;p=JXG.Math.Geometry.rad(l.radiuspoint,l.center,l.anglepoint);this.position=g;if((l.visProp.type=="minor"&&p>Math.PI)||(l.visProp.type=="major"&&pp){this.position=p;if((gh*0.5)||(g>p&&g>p*0.5+Math.PI)){this.position=h}this.updateGliderFromParent()}}else{this.updateConstraint();this.coords=JXG.Math.Geometry.projectPointToCurve(this,l,this.board)}}else{if(l.elementClass==JXG.OBJECT_CLASS_POINT){this.coords=JXG.Math.Geometry.projectPointToPoint(this,l,this.board)}}}}}},updateGliderFromParent:function(){var e,g,h,f,d=this.slideObject,i;if(d.elementClass==JXG.OBJECT_CLASS_CIRCLE){h=d.Radius();this.coords.setCoordinates(JXG.COORDS_BY_USER,[d.center.X()+h*Math.cos(this.position),d.center.Y()+h*Math.sin(this.position)])}else{if(d.elementClass==JXG.OBJECT_CLASS_LINE){e=d.point1.coords.usrCoords;g=d.point2.coords.usrCoords;if(Math.abs(g[0])1){f=(f-1)/(f-2)}else{f=(1-f)/f}this.coords.setCoordinates(JXG.COORDS_BY_USER,[g[0]+f*e[0],g[1]+f*e[1],g[2]+f*e[2]])}else{f=this.position;this.coords.setCoordinates(JXG.COORDS_BY_USER,[e[0]+f*(g[0]-e[0]),e[1]+f*(g[1]-e[1]),e[2]+f*(g[2]-e[2])])}}}else{if(d.type==JXG.OBJECT_TYPE_TURTLE){this.coords.setCoordinates(JXG.COORDS_BY_USER,[d.Z(this.position),d.X(this.position),d.Y(this.position)]);this.updateConstraint();this.coords=JXG.Math.Geometry.projectPointToTurtle(this,d,this.board)}else{if(d.elementClass==JXG.OBJECT_CLASS_CURVE){this.coords.setCoordinates(JXG.COORDS_BY_USER,[d.Z(this.position),d.X(this.position),d.Y(this.position)]);if(d.type==JXG.OBJECT_TYPE_ARC||d.type==JXG.OBJECT_TYPE_SECTOR){i=JXG.Math.Geometry.rad([d.center.X()+1,d.center.Y()],d.center,d.radiuspoint);h=d.Radius();this.coords.setCoordinates(JXG.COORDS_BY_USER,[d.center.X()+h*Math.cos(this.position+i),d.center.Y()+h*Math.sin(this.position+i)])}else{this.updateConstraint();this.coords=JXG.Math.Geometry.projectPointToCurve(this,d,this.board)}}else{if(d.elementClass==JXG.OBJECT_CLASS_POINT){this.coords=JXG.Math.Geometry.projectPointToPoint(this,d,this.board)}}}}}},updateRenderer:function(){if(!this.needsUpdate){return this}if(this.visProp.visible&&this.visProp.size>0){var d=this.isReal;this.isReal=(!isNaN(this.coords.usrCoords[1]+this.coords.usrCoords[2]));this.isReal=(Math.abs(this.coords.usrCoords[0])>JXG.Math.eps)?this.isReal:false;if(this.isReal){if(d!=this.isReal){this.board.renderer.show(this);if(this.hasLabel&&this.label.content.visProp.visible){this.board.renderer.show(this.label.content)}}this.board.renderer.updatePoint(this)}else{if(d!=this.isReal){this.board.renderer.hide(this);if(this.hasLabel&&this.label.content.visProp.visible){this.board.renderer.hide(this.label.content)}}}}if(this.hasLabel&&this.visProp.visible&&this.label.content&&this.label.content.visProp.visible&&this.isReal){this.label.content.update();this.board.renderer.updateText(this.label.content)}this.needsUpdate=false;return this},X:function(){return this.coords.usrCoords[1]},Y:function(){return this.coords.usrCoords[2]},Z:function(){return this.coords.usrCoords[0]},XEval:function(){return this.coords.usrCoords[1]},YEval:function(){return this.coords.usrCoords[2]},ZEval:function(){return this.coords.usrCoords[0]},bounds:function(){return this.coords.usrCoords.slice(1).concat(this.coords.usrCoords.slice(1))},Dist:function(e){var g,i=e.coords.usrCoords,d=this.coords.usrCoords,h;h=d[0]-i[0];g=h*h;h=d[1]-i[1];g+=h*h;h=d[2]-i[2];g+=h*h;return Math.sqrt(g)},snapToGrid:function(){return this.handleSnapToGrid()},handleSnapToGrid:function(){var d,g,f=this.visProp.snapsizex,e=this.visProp.snapsizey;if(this.visProp.snaptogrid){d=this.coords.usrCoords[1];g=this.coords.usrCoords[2];if(f<=0&&this.board.defaultAxes&&this.board.defaultAxes.x.defaultTicks){f=this.board.defaultAxes.x.defaultTicks.ticksDelta*(this.board.defaultAxes.x.defaultTicks.visProp.minorticks+1)}if(e<=0&&this.board.defaultAxes&&this.board.defaultAxes.y.defaultTicks){e=this.board.defaultAxes.y.defaultTicks.ticksDelta*(this.board.defaultAxes.y.defaultTicks.visProp.minorticks+1)}if(f>0&&e>0){this.coords=new JXG.Coords(JXG.COORDS_BY_USER,[Math.round(d/f)*f,Math.round(g/e)*e],this.board)}}return this},handleSnapToPoints:function(){var g,j,e,h=0,f=Infinity,i=null;if(this.visProp.snaptopoints){for(g in this.board.objects){j=this.board.objects[g];if(j.elementClass==JXG.OBJECT_CLASS_POINT&&j!==this&&j.visProp.visible){e=JXG.Math.Geometry.projectPointToPoint(this,j,this.board);h=e.distance(JXG.COORDS_BY_USER,this.coords);if(h=this.visProp.snatchdistance){this.type=JXG.OBJECT_TYPE_POINT}}}return this},setPositionDirectly:function(d,j){var g,n,m,l,f,e,h=this.coords,k;this.coords=new JXG.Coords(d,j,this.board);this.handleSnapToGrid();this.handleSnapToPoints();this.handleAttractors();if(this.group.length!=0){n=this.coords.usrCoords[1]-h.usrCoords[1];m=this.coords.usrCoords[2]-h.usrCoords[2];l=this.coords.usrCoords[0]=h.usrCoords[0];for(g=0;g=0;g--){if(d===JXG.COORDS_BY_SCREEN){k=(new JXG.Coords(d,j,this.board)).usrCoords}else{if(j.length===2){j=[1].concat(j)}k=j}this.initialCoords=new JXG.Coords(JXG.COORDS_BY_USER,JXG.Math.matVecMult(JXG.Math.inverse(this.transformations[g].matrix),k),this.board)}this.update()}return this},setPositionByTransform:function(f,d){var e;d=new JXG.Coords(f,d,this.board);e=this.board.create("transform",d.usrCoords.slice(1),{type:"translate"});if(this.transformations.length>0&&this.transformations[this.transformations.length-1].isNumericMatrix){this.transformations[this.transformations.length-1].melt(e)}else{this.addTransform(this,e)}if(this.group.length==0){this.update()}return this},setPosition:function(e,d){return this.setPositionDirectly(e,d)},setGliderPosition:function(d){if(this.type=JXG.OBJECT_TYPE_GLIDER){this.position=d;this.board.update()}return this},makeGlider:function(d){this.slideObject=JXG.getRef(this.board,d);this.type=JXG.OBJECT_TYPE_GLIDER;this.elType="glider";this.visProp.snapwidth=-1;this.slideObject.addChild(this);this.isDraggable=true;this.generatePolynomial=function(){return this.slideObject.generatePolynomial(this)};this.updateGlider();return this},free:function(){var d;if(this.type!==JXG.OBJECT_TYPE_GLIDER){if(!this.isDraggable){this.isDraggable=true;this.type=JXG.OBJECT_TYPE_POINT;this.XEval=function(){return this.coords.usrCoords[1]};this.YEval=function(){return this.coords.usrCoords[2]};this.ZEval=function(){return this.coords.usrCoords[0]};this.Xjc=null;this.Yjc=null}else{return}}for(d in this.ancestors){delete this.ancestors[d].descendants[this.id];delete this.ancestors[d].childElements[this.id]}this.ancestors=[];this.slideObject=null;this.elType="point";this.type=JXG.OBJECT_TYPE_POINT},addConstraint:function(h){this.type=JXG.OBJECT_TYPE_CAS;var k=[],d,g,e,f,j=["X","Y"];this.isDraggable=false;for(g=0;gJXG.Math.eps)){this.setPosition(JXG.COORDS_BY_USER,k.usrCoords);return this.board.update(this)}p=p||{};var l=this.board.options.animationDelay,m=Math.ceil(f/(l*1)),n=new Array(m+1),e=this.coords.usrCoords[1],d=this.coords.usrCoords[2],h=(k.usrCoords[1]-e),g=(k.usrCoords[2]-d),j,o=function(q){if(p.effect&&p.effect=="<>"){return Math.pow(Math.sin((q/(m*1))*Math.PI/2),2)}return q/m};if(Math.abs(h)=0;j--){n[m-j]=[k.usrCoords[0],e+h*o(j),d+g*o(j)]}this.animationPath=n;this.animationCallback=p.callback;this.board.addAnimation(this);return this},visit:function(m,f,r){if(typeof r=="number"){r={repeat:r}}else{r=r||{};if(typeof r.repeat=="undefined"){r.repeat=1}}var n=this.board.options.animationDelay,o=Math.ceil(f/(n*r.repeat)),p=new Array(r.repeat*(o+1)),e=this.coords.usrCoords[1],d=this.coords.usrCoords[2],k=(m[0]-e),g=(m[1]-d),l,h,q=function(s){var j=(s"){return Math.pow(Math.sin((j)*Math.PI/2),2)}return j};for(h=0;h=0;l--){p[h*(o+1)+o-l]=[m[0],e+k*q(l),d+g*q(l)]}}this.animationPath=p;this.animationCallback=r.callback;this.board.addAnimation(this);return this},_anim:function(n,i){var e,l,j,h,g,f,m=1,d,k;this.intervalCount++;if(this.intervalCount>i){this.intervalCount=0}if(this.slideObject.elementClass==JXG.OBJECT_CLASS_LINE){e=this.slideObject.point1.coords.distance(JXG.COORDS_BY_SCREEN,this.slideObject.point2.coords);l=this.slideObject.getSlope();if(l!="INF"){g=Math.atan(l);j=Math.round((this.intervalCount/i)*e*Math.cos(g));h=Math.round((this.intervalCount/i)*e*Math.sin(g))}else{j=0;h=Math.round((this.intervalCount/i)*e)}if(n<0){f=this.slideObject.point2;if(this.slideObject.point2.coords.scrCoords[1]-this.slideObject.point1.coords.scrCoords[1]>0){m=-1}else{if(this.slideObject.point2.coords.scrCoords[1]-this.slideObject.point1.coords.scrCoords[1]==0){if(this.slideObject.point2.coords.scrCoords[2]-this.slideObject.point1.coords.scrCoords[2]>0){m=-1}}}}else{f=this.slideObject.point1;if(this.slideObject.point1.coords.scrCoords[1]-this.slideObject.point2.coords.scrCoords[1]>0){m=-1}else{if(this.slideObject.point1.coords.scrCoords[1]-this.slideObject.point2.coords.scrCoords[1]==0){if(this.slideObject.point1.coords.scrCoords[2]-this.slideObject.point2.coords.scrCoords[2]>0){m=-1}}}}this.coords.setCoordinates(JXG.COORDS_BY_SCREEN,[f.coords.scrCoords[1]+m*j,f.coords.scrCoords[2]+m*h])}else{if(this.slideObject.elementClass==JXG.OBJECT_CLASS_CURVE){if(n>0){d=Math.round(this.intervalCount/i*this.board.canvasWidth)}else{d=Math.round((i-this.intervalCount)/i*this.board.canvasWidth)}this.coords.setCoordinates(JXG.COORDS_BY_SCREEN,[d,0]);this.coords=JXG.Math.Geometry.projectPointToCurve(this,this.slideObject,this.board)}else{if(this.slideObject.elementClass==JXG.OBJECT_CLASS_CIRCLE){if(n<0){g=this.intervalCount/i*2*Math.PI}else{g=(i-this.intervalCount)/i*2*Math.PI}k=this.slideObject.Radius();this.coords.setCoordinates(JXG.COORDS_BY_USER,[this.slideObject.center.coords.usrCoords[1]+k*Math.cos(g),this.slideObject.center.coords.usrCoords[2]+k*Math.sin(g)])}}}this.board.update(this);return this},setStyle:function(d){var e=["cross","cross","cross","circle","circle","circle","circle","square","square","square","plus","plus","plus"],f=[2,3,4,1,2,3,4,2,3,4,2,3,4];this.visProp.face=e[d];this.visProp.size=f[d];this.board.renderer.changePointStyle(this);return this},normalizeFace:function(d){var e={cross:"x",x:"x",circle:"o",o:"o",square:"[]","[]":"[]",plus:"+","+":"+",diamond:"<>","<>":"<>",triangleup:"^",a:"^","^":"^",triangledown:"v",v:"v",triangleleft:"<","<":"<",triangleright:">",">":">"};return e[d]},remove:function(){if(this.hasLabel){this.board.renderer.remove(this.board.renderer.getElementById(this.label.content.id))}this.board.renderer.remove(this.board.renderer.getElementById(this.id))},getTextAnchor:function(){return this.coords},getLabelAnchor:function(){return this.coords},face:function(d){this.setProperty({face:d})},size:function(d){this.setProperty({size:d})},cloneToBackground:function(){var d={};d.id=this.id+"T"+this.numTraces;this.numTraces++;d.coords=this.coords;d.visProp=JXG.deepCopy(this.visProp,this.visProp.traceattributes,true);d.visProp.layer=this.board.options.layer.trace;d.elementClass=JXG.OBJECT_CLASS_POINT;d.board=this.board;JXG.clearVisPropOld(d);this.board.renderer.drawPoint(d);this.traces[d.id]=d.rendNode;return this},getParents:function(){var d=[this.Z(),this.X(),this.Y()];if(this.parents){d=this.parents}if(this.type==JXG.OBJECT_TYPE_GLIDER){d=[this.X(),this.Y(),this.slideObject.id]}return d}});JXG.createPoint=function(k,g,f){var j,e=false,h,d;d=JXG.copyAttributes(f,k.options,"point");for(h=0;hthis.board.options.precision.hasPoint*this.board.options.precision.hasPoint){return false}if(this.visProp.straightfirst&&this.visProp.straightlast){return true}else{p=this.point1.coords;g=this.point2.coords;m=(new JXG.Coords(JXG.COORDS_BY_SCREEN,m.slice(1),this.board)).usrCoords;f=p.distance(JXG.COORDS_BY_USER,g);p=p.usrCoords.slice(0);g=g.usrCoords.slice(0);if(f1){return false}return true}},update:function(){var d;if(!this.needsUpdate){return this}if(this.constrained){if(typeof this.funps!="undefined"){d=this.funps();if(d&&d.length&&d.length===2){this.point1=d[0];this.point2=d[1]}}else{if(typeof this.funp1==="function"){d=this.funp1();if(JXG.isPoint(d)){this.point1=d}else{if(d&&d.length&&d.length===2){this.point1.setPositionDirectly(JXG.COORDS_BY_USER,d)}}}if(typeof this.funp2==="function"){d=this.funp2();if(JXG.isPoint(d)){this.point2=d}else{if(d&&d.length&&d.length===2){this.point2.setPositionDirectly(JXG.COORDS_BY_USER,d)}}}}}this.updateSegmentFixedLength();this.updateStdform();if(this.visProp.trace){this.cloneToBackground(true)}return this},updateSegmentFixedLength:function(){var k,f,j,i,h,g,e,l;if(!this.hasFixedLength){return this}k=this.point1.Dist(this.point2);f=this.fixedLength();j=this.fixedLengthOldCoords[0].distance(JXG.COORDS_BY_USER,this.point1.coords);i=this.fixedLengthOldCoords[1].distance(JXG.COORDS_BY_USER,this.point2.coords);if(j>JXG.Math.eps||i>JXG.Math.eps||k!=f){h=this.point1.isDraggable&&(this.point1.type!=JXG.OBJECT_TYPE_GLIDER)&&!this.point1.visProp.fixed;g=this.point2.isDraggable&&(this.point2.type!=JXG.OBJECT_TYPE_GLIDER)&&!this.point2.visProp.fixed;if(k>JXG.Math.eps){if((j>i&&g)||(j<=i&&g&&!h)){this.point2.setPositionDirectly(JXG.COORDS_BY_USER,[this.point1.X()+(this.point2.X()-this.point1.X())*f/k,this.point1.Y()+(this.point2.Y()-this.point1.Y())*f/k]);this.point2.prepareUpdate().updateRenderer()}else{if((j<=i&&h)||(j>i&&h&&!g)){this.point1.setPositionDirectly(JXG.COORDS_BY_USER,[this.point2.X()+(this.point1.X()-this.point2.X())*f/k,this.point2.Y()+(this.point1.Y()-this.point2.Y())*f/k]);this.point1.prepareUpdate().updateRenderer()}}}else{e=Math.random()-0.5;l=Math.random()-0.5;k=Math.sqrt(e*e+l*l);if(g){this.point2.setPositionDirectly(JXG.COORDS_BY_USER,[this.point1.X()+e*f/k,this.point1.Y()+l*f/k]);this.point2.prepareUpdate().updateRenderer()}else{if(h){this.point1.setPositionDirectly(JXG.COORDS_BY_USER,[this.point2.X()+e*f/k,this.point2.Y()+l*f/k]);this.point1.prepareUpdate().updateRenderer()}}}this.fixedLengthOldCoords[0].setCoordinates(JXG.COORDS_BY_USER,this.point1.coords.usrCoords);this.fixedLengthOldCoords[1].setCoordinates(JXG.COORDS_BY_USER,this.point2.coords.usrCoords)}return this},updateStdform:function(){var d=JXG.Math.crossProduct(this.point1.coords.usrCoords,this.point2.coords.usrCoords);this.stdform[0]=d[0];this.stdform[1]=d[1];this.stdform[2]=d[2];this.stdform[3]=0;this.normalize()},updateRenderer:function(){var d;if(this.needsUpdate&&this.visProp.visible){d=this.isReal;this.isReal=(!isNaN(this.point1.coords.usrCoords[1]+this.point1.coords.usrCoords[2]+this.point2.coords.usrCoords[1]+this.point2.coords.usrCoords[2])&&(JXG.Math.innerProduct(this.stdform,this.stdform,3)>=JXG.Math.eps*JXG.Math.eps));if(this.isReal){if(d!=this.isReal){this.board.renderer.show(this);if(this.hasLabel&&this.label.content.visProp.visible){this.board.renderer.show(this.label.content)}}this.board.renderer.updateLine(this)}else{if(d!=this.isReal){this.board.renderer.hide(this);if(this.hasLabel&&this.label.content.visProp.visible){this.board.renderer.hide(this.label.content)}}}this.needsUpdate=false}if(this.hasLabel&&this.label.content.visProp.visible&&this.isReal){this.label.content.update();this.board.renderer.updateText(this.label.content)}return this},generatePolynomial:function(h){var g=this.point1.symbolic.x,f=this.point1.symbolic.y,j=this.point2.symbolic.x,i=this.point2.symbolic.y,e=h.symbolic.x,d=h.symbolic.y;return[["(",f,")*(",e,")-(",f,")*(",j,")+(",d,")*(",j,")-(",g,")*(",d,")+(",g,")*(",i,")-(",e,")*(",i,")"].join("")]},getRise:function(){if(Math.abs(this.stdform[2])>=JXG.Math.eps){return -this.stdform[0]/this.stdform[2]}else{return Infinity}},getSlope:function(){if(Math.abs(this.stdform[2])>=JXG.Math.eps){return -this.stdform[1]/this.stdform[2]}else{return Infinity}},getAngle:function(){return Math.atan2(this.point2.Y()-this.point1.Y(),this.point2.X()-this.point1.X())},setStraight:function(d,e){this.visProp.straightfirst=d;this.visProp.straightlast=e;this.board.renderer.updateLine(this);return this},getTextAnchor:function(){return new JXG.Coords(JXG.COORDS_BY_USER,[0.5*(this.point2.X()+this.point1.X()),0.5*(this.point2.Y()+this.point1.Y())],this.board)},setLabelRelativeCoords:function(d){if(JXG.exists(this.label.content)){this.label.content.relativeCoords=new JXG.Coords(JXG.COORDS_BY_SCREEN,[d[0],-d[1]],this.board)}},getLabelAnchor:function(){var e,j,d=0,i=0,h=0,g=new JXG.Coords(JXG.COORDS_BY_USER,this.point1.coords.usrCoords,this.board),f=new JXG.Coords(JXG.COORDS_BY_USER,this.point2.coords.usrCoords,this.board);if(this.visProp.straightfirst||this.visProp.straightlast){JXG.Math.Geometry.calcStraight(this,g,f,0)}g=g.scrCoords;f=f.scrCoords;switch(this.label.content.visProp.position){case"lft":case"llft":case"ulft":if(g[1]<=f[1]){e=g[1];j=g[2]}else{e=f[1];j=f[2]}break;case"rt":case"lrt":case"urt":if(g[1]>f[1]){e=g[1];j=g[2]}else{e=f[1];j=f[2]}break;default:e=0.5*(g[1]+f[1]);j=0.5*(g[2]+f[2])}if(this.visProp.straightfirst||this.visProp.straightlast){if(JXG.exists(this.label.content)){i=parseFloat(this.label.content.visProp.offset[0]);h=parseFloat(this.label.content.visProp.offset[1]);d=this.label.content.visProp.fontsize}if(Math.abs(e)e&&e>this.board.canvasWidth-d-JXG.Math.eps){e=this.board.canvasWidth-i-d}else{e+=i}}if(JXG.Math.eps+d>j&&j>-JXG.Math.eps){j=h+d}else{if(this.board.canvasHeight+JXG.Math.eps>j&&j>this.board.canvasHeight-d-JXG.Math.eps){j=this.board.canvasHeight-h}else{j+=h}}}return new JXG.Coords(JXG.COORDS_BY_SCREEN,[e,j],this.board)},cloneToBackground:function(){var g={},e,d,f;g.id=this.id+"T"+this.numTraces;g.elementClass=JXG.OBJECT_CLASS_LINE;this.numTraces++;g.point1=this.point1;g.point2=this.point2;g.stdform=this.stdform;g.board=this.board;g.visProp=JXG.deepCopy(this.visProp,this.visProp.traceattributes,true);g.visProp.layer=this.board.options.layer.trace;JXG.clearVisPropOld(g);d=this.getSlope();e=this.getRise();g.getSlope=function(){return d};g.getRise=function(){return e};f=this.board.renderer.enhancedRendering;this.board.renderer.enhancedRendering=true;this.board.renderer.drawLine(g);this.board.renderer.enhancedRendering=f;this.traces[g.id]=g.rendNode;delete g;return this},addTransform:function(e){var f,g=JXG.isArray(e)?e:[e],d=g.length;for(f=0;f0&&this.point1.transformations[this.point1.transformations.length-1].isNumericMatrix){this.point1.transformations[this.point1.transformations.length-1].melt(e)}else{this.point1.addTransform(this.point1,e)}if(this.point2.transformations.length>0&&this.point2.transformations[this.point2.transformations.length-1].isNumericMatrix){this.point2.transformations[this.point2.transformations.length-1].melt(e)}else{this.point2.addTransform(this.point2,e)}return this},setPositionDirectly:function(j,h,g){var d,e,i=new JXG.Coords(j,h,this.board),f=new JXG.Coords(j,g,this.board);if(!this.point1.draggable()||!this.point2.draggable()){return this}d=JXG.Math.Statistics.subtract(i.usrCoords,f.usrCoords);e=this.board.create("transform",d.slice(1),{type:"translate"});e.applyOnce([this.point1,this.point2]);return this},snapToGrid:function(){if(this.visProp.snaptogrid){this.point1.snapToGrid();this.point2.snapToGrid()}return this},X:function(f){var e=this.stdform[2],d;d=(Math.abs(this.point1.coords.usrCoords[0])>JXG.Math.eps)?this.point1.coords.usrCoords[1]:this.point2.coords.usrCoords[1];f=(f-0.5)*2;if(f<0){f*=(-1);return(1-f)*d+f*e}else{return(1-f)*d-f*e}},Y:function(e){var d=this.stdform[1],f;f=(Math.abs(this.point1.coords.usrCoords[0])>JXG.Math.eps)?this.point1.coords.usrCoords[2]:this.point2.coords.usrCoords[2];e=(e-0.5)*2;if(e<0){e*=(-1);return(1-e)*f-e*d}else{return(1-e)*f+e*d}},Z:function(d){var e=(Math.abs(this.point1.coords.usrCoords[0])>JXG.Math.eps)?this.point1.coords.usrCoords[0]:this.point2.coords.usrCoords[0];d=(d-0.5)*2;if(d<0){d*=(-1)}return(1-d)*e},L:function(){return this.point1.Dist(this.point2)},minX:function(){return 0},maxX:function(){return 1},bounds:function(){var d=this.point1.coords.usrCoords,e=this.point2.coords.usrCoords;return[Math.min(d[1],e[1]),Math.max(d[2],e[2]),Math.max(d[1],e[1]),Math.min(d[2],e[2])]},addTicks:function(d){if(d.id==""||typeof d.id=="undefined"){d.id=this.id+"_ticks_"+(this.ticks.length+1)}this.board.renderer.drawTicks(d);this.ticks.push(d);return d.id},remove:function(){this.removeAllTicks();JXG.GeometryElement.prototype.remove.call(this)},removeAllTicks:function(){var e,d;for(d=this.ticks.length;d>0;d--){this.removeTicks(this.ticks[d-1])}this.ticks=new Array();this.board.update()},removeTicks:function(f){var e,d;if(this.defaultTicks!=null&&this.defaultTicks==f){this.defaultTicks=null}for(e=this.ticks.length;e>0;e--){if(this.ticks[e-1]==f){this.board.removeObject(this.ticks[e-1]);for(d=0;d1){l=JXG.copyAttributes(h,k.options,"line","point1");p=k.create("point",n[0],l)}else{if(JXG.isString(n[0])||n[0].elementClass==JXG.OBJECT_CLASS_POINT){p=JXG.getReference(k,n[0])}else{if((typeof n[0]=="function")&&(n[0]().elementClass==JXG.OBJECT_CLASS_POINT)){p=n[0]();g=true}else{if((typeof n[0]=="function")&&(n[0]().length&&n[0]().length===2)){l=JXG.copyAttributes(h,k.options,"line","point1");p=JXG.createPoint(k,n[0](),l);g=true}else{throw new Error("JSXGraph: Can't create line with parent types '"+(typeof n[0])+"' and '"+(typeof n[1])+"'.\nPossible parent types: [point,point], [[x1,y1],[x2,y2]], [a,b,c]")}}}}if(JXG.isArray(n[1])&&n[1].length>1){l=JXG.copyAttributes(h,k.options,"line","point2");o=k.create("point",n[1],l)}else{if(JXG.isString(n[1])||n[1].elementClass==JXG.OBJECT_CLASS_POINT){o=JXG.getReference(k,n[1])}else{if((typeof n[1]=="function")&&(n[1]().elementClass==JXG.OBJECT_CLASS_POINT)){o=n[1]();g=true}else{if((typeof n[1]=="function")&&(n[1]().length&&n[1]().length===2)){l=JXG.copyAttributes(h,k.options,"line","point2");o=JXG.createPoint(k,n[1](),l);g=true}else{throw new Error("JSXGraph: Can't create line with parent types '"+(typeof n[0])+"' and '"+(typeof n[1])+"'.\nPossible parent types: [point,point], [[x1,y1],[x2,y2]], [a,b,c]")}}}}l=JXG.copyAttributes(h,k.options,"line");f=new JXG.Line(k,p,o,l);if(g){f.constrained=true;f.funp1=n[0];f.funp2=n[1]}else{f.isDraggable=true}if(!f.constrained){f.parents=[p.id,o.id]}}else{if(n.length==3){e=true;for(j=0;j<3;j++){if(typeof n[j]=="number"){m[j]=function(i){return function(){return i}}(n[j])}else{if(typeof n[j]=="function"){m[j]=n[j];e=false}else{throw new Error("JSXGraph: Can't create line with parent types '"+(typeof n[0])+"' and '"+(typeof n[1])+"' and '"+(typeof n[2])+"'.\nPossible parent types: [point,point], [[x1,y1],[x2,y2]], [a,b,c]")}}}l=JXG.copyAttributes(h,k.options,"line","point1");if(e){p=k.create("point",[m[2]()*m[2]()+m[1]()*m[1](),m[2]()-m[1]()*m[0]()+m[2](),-m[1]()-m[2]()*m[0]()-m[1]()],l)}else{p=k.create("point",[function(){return(0+m[2]()*m[2]()+m[1]()*m[1]())*0.5},function(){return(m[2]()-m[1]()*m[0]()+m[2]())*0.5},function(){return(-m[1]()-m[2]()*m[0]()-m[1]())*0.5}],l)}l=JXG.copyAttributes(h,k.options,"line","point2");if(e){o=k.create("point",[m[2]()*m[2]()+m[1]()*m[1](),-m[1]()*m[0]()+m[2](),-m[2]()*m[0]()-m[1]()],l)}else{o=k.create("point",[function(){return m[2]()*m[2]()+m[1]()*m[1]()},function(){return -m[1]()*m[0]()+m[2]()},function(){return -m[2]()*m[0]()-m[1]()}],l)}p.prepareUpdate().update();o.prepareUpdate().update();l=JXG.copyAttributes(h,k.options,"line");f=new JXG.Line(k,p,o,l);f.isDraggable=e;if(e){f.parents=[m[0](),m[1](),m[2]()]}}else{if((n.length==1)&&(typeof n[0]=="function")&&(n[0]().length==2)&&(n[0]()[0].elementClass==JXG.OBJECT_CLASS_POINT)&&(n[0]()[1].elementClass==JXG.OBJECT_CLASS_POINT)){var d=n[0]();l=JXG.copyAttributes(h,k.options,"line");f=new JXG.Line(k,d[0],d[1],l);f.constrained=true;f.funps=n[0]}else{if((n.length==1)&&(typeof n[0]=="function")&&(n[0]().length==3)&&(typeof n[0]()[0]==="number")&&(typeof n[0]()[1]==="number")&&(typeof n[0]()[2]==="number")){d=n[0];l=JXG.copyAttributes(h,k.options,"line","point1");p=k.create("point",[function(){var i=d();return[(0+i[2]*i[2]+i[1]*i[1])*0.5,(i[2]-i[1]*i[0]+i[2])*0.5,(-i[1]-i[2]*i[0]-i[1])*0.5]}],l);l=JXG.copyAttributes(h,k.options,"line","point2");o=k.create("point",[function(){var i=d();return[i[2]*i[2]+i[1]*i[1],-i[1]*i[0]+i[2],-i[2]*i[0]-i[1]]}],l);l=JXG.copyAttributes(h,k.options,"line");f=new JXG.Line(k,p,o,l);f.constrained=true;f.funps=n[0]}else{throw new Error("JSXGraph: Can't create line with parent types '"+(typeof n[0])+"' and '"+(typeof n[1])+"'.\nPossible parent types: [point,point], [[x1,y1],[x2,y2]], [a,b,c]")}}}}return f};JXG.JSXGraph.registerElement("line",JXG.createLine);JXG.createSegment=function(h,e,d){var g,f;d.straightFirst=false;d.straightLast=false;g=h.create("line",e.slice(0,2),d);if(e.length==3){g.hasFixedLength=true;if(JXG.isNumber(e[2])){g.fixedLength=function(){return e[2]}}else{if(JXG.isFunction(e[2])){g.fixedLength=e[2]}else{throw new Error("JSXGraph: Can't create segment with third parent type '"+(typeof e[2])+"'.\nPossible third parent types: number or function")}}g.fixedLengthOldCoords=[];g.fixedLengthOldCoords[0]=new JXG.Coords(JXG.COORDS_BY_USER,g.point1.coords.usrCoords.slice(1,3),h);g.fixedLengthOldCoords[1]=new JXG.Coords(JXG.COORDS_BY_USER,g.point2.coords.usrCoords.slice(1,3),h)}g.elType="segment";return g};JXG.JSXGraph.registerElement("segment",JXG.createSegment);JXG.createArrow=function(g,e,d){var f;d.firstArrow=false;d.lastArrow=true;f=g.create("line",e,d).setStraight(false,false);f.type=JXG.OBJECT_TYPE_VECTOR;f.elType="arrow";return f};JXG.JSXGraph.registerElement("arrow",JXG.createArrow);JXG.createAxis=function(i,f,e){var d,h,j;if((JXG.isArray(f[0])||JXG.isPoint(f[0]))&&(JXG.isArray(f[1])||JXG.isPoint(f[1]))){d=JXG.copyAttributes(e,i.options,"axis");h=i.create("line",f,d);h.type=JXG.OBJECT_TYPE_AXIS;h.isDraggable=false;h.point1.isDraggable=false;h.point2.isDraggable=false;for(var g in h.ancestors){h.ancestors[g].type=JXG.OBJECT_TYPE_AXISPOINT}d=JXG.copyAttributes(e,i.options,"axis","ticks");if(JXG.exists(d.ticksdistance)){j=d.ticksdistance}else{if(JXG.isArray(d.ticks)){j=d.ticks}else{j=1}}h.defaultTicks=i.create("ticks",[h,j],d);h.defaultTicks.dump=false;h.elType="axis";h.subs={ticks:h.defaultTicks}}else{throw new Error("JSXGraph: Can't create point with parent types '"+(typeof f[0])+"' and '"+(typeof f[1])+"'.\nPossible parent types: [point,point], [[x1,y1],[x2,y2]]")}return h};JXG.JSXGraph.registerElement("axis",JXG.createAxis);JXG.createTangent=function(o,r,k){var d,q,m,n,l,h,e,s;if(r.length==1){d=r[0];q=d.slideObject}else{if(r.length==2){if(JXG.isPoint(r[0])){d=r[0];q=r[1]}else{if(JXG.isPoint(r[1])){q=r[0];d=r[1]}else{throw new Error("JSXGraph: Can't create tangent with parent types '"+(typeof r[0])+"' and '"+(typeof r[1])+"'.\nPossible parent types: [glider], [point,line|curve|circle|conic]")}}}else{throw new Error("JSXGraph: Can't create tangent with parent types '"+(typeof r[0])+"' and '"+(typeof r[1])+"'.\nPossible parent types: [glider], [point,line|curve|circle|conic]")}}if(q.elementClass==JXG.OBJECT_CLASS_LINE){s=o.create("line",[q.point1,q.point2],k)}else{if(q.elementClass==JXG.OBJECT_CLASS_CURVE&&!(q.type==JXG.OBJECT_TYPE_CONIC)){if(q.visProp.curvetype!="plot"){m=q.X;n=q.Y;s=o.create("line",[function(){return -d.X()*o.D(n)(d.position)+d.Y()*o.D(m)(d.position)},function(){return o.D(n)(d.position)},function(){return -o.D(m)(d.position)}],k);d.addChild(s);s.glider=d}else{s=o.create("line",[function(){l=Math.floor(d.position);if(l==q.numberPoints-1){l--}if(l<0){return 1}return q.Y(l)*q.X(l+1)-q.X(l)*q.Y(l+1)},function(){l=Math.floor(d.position);if(l==q.numberPoints-1){l--}if(l<0){return 0}return q.Y(l+1)-q.Y(l)},function(){l=Math.floor(d.position);if(l==q.numberPoints-1){l--}if(l<0){return 0}return q.X(l)-q.X(l+1)}],k);d.addChild(s);s.glider=d}}else{if(q.type==JXG.OBJECT_TYPE_TURTLE){s=o.create("line",[function(){l=Math.floor(d.position);for(h=0;h1){d=JXG.copyAttributes(e,k.options,"circle","center");l[h]=k.create("point",f[h],d)}else{l[h]=f[h]}}}d=JXG.copyAttributes(e,k.options,"circle");if(f.length==2&&JXG.isPoint(l[0])&&JXG.isPoint(l[1])){j=new JXG.Circle(k,"twoPoints",l[0],l[1],d)}else{if((JXG.isNumber(l[0])||JXG.isFunction(l[0])||JXG.isString(l[0]))&&JXG.isPoint(l[1])){j=new JXG.Circle(k,"pointRadius",l[1],l[0],d)}else{if((JXG.isNumber(l[1])||JXG.isFunction(l[1])||JXG.isString(l[1]))&&JXG.isPoint(l[0])){j=new JXG.Circle(k,"pointRadius",l[0],l[1],d)}else{if((l[0].elementClass==JXG.OBJECT_CLASS_CIRCLE)&&JXG.isPoint(l[1])){j=new JXG.Circle(k,"pointCircle",l[1],l[0],d)}else{if((l[1].elementClass==JXG.OBJECT_CLASS_CIRCLE)&&JXG.isPoint(l[0])){j=new JXG.Circle(k,"pointCircle",l[0],l[1],d)}else{if((l[0].elementClass==JXG.OBJECT_CLASS_LINE)&&JXG.isPoint(l[1])){j=new JXG.Circle(k,"pointLine",l[1],l[0],d)}else{if((l[1].elementClass==JXG.OBJECT_CLASS_LINE)&&JXG.isPoint(l[0])){j=new JXG.Circle(k,"pointLine",l[0],l[1],d)}else{if(f.length==3&&JXG.isPoint(l[0])&&JXG.isPoint(l[1])&&JXG.isPoint(l[2])){j=JXG.createCircumcircle(k,l,e)}else{throw new Error("JSXGraph: Can't create circle with parent types '"+(typeof f[0])+"' and '"+(typeof f[1])+"'.\nPossible parent types: [point,point], [point,number], [point,function], [point,circle], [point,point,point]")}}}}}}}}j.isDraggable=g;j.parents=[];for(h=0;h1){r[k]=n.create("point",p[k],j)}else{if(JXG.isPoint(p[k])){r[k]=JXG.getReference(n,p[k])}else{if((typeof p[k]=="function")&&(p[k]().elementClass===JXG.OBJECT_CLASS_POINT)){r[k]=p[k]()}else{if(JXG.isString(p[k])){r[k]=JXG.getReference(n,p[k])}else{throw new Error("JSXGraph: Can't create Ellipse with parent types '"+(typeof p[0])+"' and '"+(typeof p[1])+"'.\nPossible parent types: [point,point,point], [point,point,number|function]")}}}}}if(JXG.isNumber(p[2])){d=JXG.createFunction(p[2],n)}else{if((typeof p[2]=="function")&&(JXG.isNumber(p[2]()))){d=p[2]}else{if(JXG.isPoint(p[2])){e=JXG.getReference(n,p[2])}else{if(p[2].length>1){e=n.create("point",p[2],j)}else{if((typeof p[2]=="function")&&(p[2]().elementClass==JXG.OBJECT_CLASS_POINT)){e=p[2]()}else{if(JXG.isString(p[2])){e=JXG.getReference(n,p[2])}else{throw new Error("JSXGraph: Can't create Ellipse with parent types '"+(typeof p[0])+"' and '"+(typeof p[1])+"' and '"+(typeof p[2])+"'.\nPossible parent types: [point,point,point], [point,point,number|function]")}}}}d=function(){return e.Dist(r[0])+e.Dist(r[1])}}}if(typeof p[4]=="undefined"){p[4]=1.0001*Math.PI}if(typeof p[3]=="undefined"){p[3]=-1.0001*Math.PI}var o=n.create("point",[function(){return(r[0].X()+r[1].X())*0.5},function(){return(r[0].Y()+r[1].Y())*0.5}],j);var q=function(){var i=r[0].X(),B=r[0].Y(),w=r[1].X(),v=r[1].Y(),A,z,u;var t=(w-i>0)?1:-1;if(Math.abs(w-i)>1e-7){A=Math.atan2(v-B,w-i)+((t<0)?Math.PI:0)}else{A=((v-B>0)?0.5:-0.5)*Math.PI}z=Math.cos(A);u=Math.sin(A);var s=[[1,0,0],[o.X(),z,-u],[o.Y(),u,z]];return s};var f=n.create("curve",[function(i){return 0},function(i){return 0},p[3],p[4]],m);var g=function(u,s){var A=d()*0.5,i=A*A,t=r[1].Dist(r[0])*0.5,v=i-t*t,z=Math.sqrt(v),w=[[1,0,0],[0,1,0],[0,0,1]],C,B;if(!s){l=q();C=o.X();B=o.Y();w[0][0]=l[0][0];w[0][1]=0;w[0][2]=0;w[1][0]=C*(1-l[1][1])+B*l[1][2];w[1][1]=l[1][1];w[1][2]=l[2][1];w[2][0]=B*(1-l[1][1])-C*l[1][2];w[2][1]=l[1][2];w[2][2]=l[2][2];f.quadraticform=JXG.Math.matMatMult(JXG.Math.transpose(w),JXG.Math.matMatMult([[-1+C*C/(A*A)+B*B/v,-C/i,-C/v],[-C/i,1/i,0],[-B/v,0,1/v]],w))}return JXG.Math.matVecMult(l,[1,A*Math.cos(u),z*Math.sin(u)])};f.X=function(i,s){return g(i,s)[1]};f.Y=function(i,s){return g(i,s)[2]};f.midpoint=o;f.type=JXG.OBJECT_TYPE_CONIC;return f};JXG.createHyperbola=function(n,p,h){var r=[],e,d,k,l,j=JXG.copyAttributes(h,n.options,"conic","foci"),m=JXG.copyAttributes(h,n.options,"conic");for(k=0;k<2;k++){if(p[k].length>1){r[k]=n.create("point",p[k],attr_focu)}else{if(JXG.isPoint(p[k])){r[k]=JXG.getReference(n,p[k])}else{if((typeof p[k]=="function")&&(p[k]().elementClass==JXG.OBJECT_CLASS_POINT)){r[k]=p[k]()}else{if(JXG.isString(p[k])){r[k]=JXG.getReference(n,p[k])}else{throw new Error("JSXGraph: Can't create Hyperbola with parent types '"+(typeof p[0])+"' and '"+(typeof p[1])+"'.\nPossible parent types: [point,point,point], [point,point,number|function]")}}}}}if(JXG.isNumber(p[2])){d=JXG.createFunction(p[2],n)}else{if((typeof p[2]=="function")&&(JXG.isNumber(p[2]()))){d=p[2]}else{if(JXG.isPoint(p[2])){e=JXG.getReference(n,p[2])}else{if(p[2].length>1){e=n.create("point",p[2],j)}else{if((typeof p[2]=="function")&&(p[2]().elementClass==JXG.OBJECT_CLASS_POINT)){e=p[2]()}else{if(JXG.isString(p[2])){e=JXG.getReference(n,p[2])}else{throw new Error("JSXGraph: Can't create Hyperbola with parent types '"+(typeof p[0])+"' and '"+(typeof p[1])+"' and '"+(typeof p[2])+"'.\nPossible parent types: [point,point,point], [point,point,number|function]")}}}}d=function(){return e.Dist(r[0])-e.Dist(r[1])}}}if(typeof p[4]=="undefined"){p[4]=1.0001*Math.PI}if(typeof p[3]=="undefined"){p[3]=-1.0001*Math.PI}var o=n.create("point",[function(){return(r[0].X()+r[1].X())*0.5},function(){return(r[0].Y()+r[1].Y())*0.5}],j);var q=function(){var t=r[0].X(),s=r[0].Y(),z=r[1].X(),v=r[1].Y(),u;var w=(z-t>0)?1:-1;if(Math.abs(z-t)>1e-7){u=Math.atan2(v-s,z-t)+((w<0)?Math.PI:0)}else{u=((v-s>0)?0.5:-0.5)*Math.PI}var i=[[1,0,0],[o.X(),Math.cos(u),-Math.sin(u)],[o.Y(),Math.sin(u),Math.cos(u)]];return i};var f=n.create("curve",[function(i){return 0},function(i){return 0},p[3],p[4]],m);var g=function(u,s){var A=d()*0.5,i=A*A,t=r[1].Dist(r[0])*0.5,z=Math.sqrt(-A*A+t*t),v=z*z,w=[[1,0,0],[0,1,0],[0,0,1]],C,B;if(!s){l=q();C=o.X();B=o.Y();w[0][0]=l[0][0];w[0][1]=0;w[0][2]=0;w[1][0]=C*(1-l[1][1])+B*l[1][2];w[1][1]=l[1][1];w[1][2]=l[2][1];w[2][0]=B*(1-l[1][1])-C*l[1][2];w[2][1]=l[1][2];w[2][2]=l[2][2];f.quadraticform=JXG.Math.matMatMult(JXG.Math.transpose(w),JXG.Math.matMatMult([[-1+C*C/i+B*B/v,-C/i,B/v],[-C/i,1/i,0],[B/v,0,-1/v]],w))}return JXG.Math.matVecMult(l,[1,A/Math.cos(u),z*Math.tan(u)])};f.X=function(i,s){return g(i,s)[1]};f.Y=function(i,s){return g(i,s)[2]};f.midpoint=o;f.type=JXG.OBJECT_TYPE_CONIC;return f};JXG.createParabola=function(m,o,g){var k=o[0],e=o[1],i,h=JXG.copyAttributes(g,m.options,"conic","foci"),j=JXG.copyAttributes(g,m.options,"conic");if(o[0].length>1){k=m.create("point",o[0],h)}else{if(JXG.isPoint(o[0])){k=JXG.getReference(m,o[0])}else{if((typeof o[0]=="function")&&(o[0]().elementClass==JXG.OBJECT_CLASS_POINT)){k=o[0]()}else{if(JXG.isString(o[0])){k=JXG.getReference(m,o[0])}else{throw new Error("JSXGraph: Can't create Parabola with parent types '"+(typeof o[0])+"' and '"+(typeof o[1])+"'.\nPossible parent types: [point,line]")}}}}if(typeof o[3]=="undefined"){o[3]=10}if(typeof o[2]=="undefined"){o[2]=-10}var n=m.create("point",[function(){var l=[0,e.stdform[1],e.stdform[2]];l=JXG.Math.crossProduct(l,k.coords.usrCoords);return JXG.Math.Geometry.meetLineLine(l,e.stdform,0,m).usrCoords}],h);var p=function(){var r=Math.atan(e.getSlope()),q=(n.X()+k.X())*0.5,s=(n.Y()+k.Y())*0.5;r+=(k.Y()-n.Y()<0||(k.Y()==n.Y()&&k.X()>n.X()))?Math.PI:0;var l=[[1,0,0],[q*(1-Math.cos(r))+s*Math.sin(r),Math.cos(r),-Math.sin(r)],[s*(1-Math.cos(r))-q*Math.sin(r),Math.sin(r),Math.cos(r)]];return l};var d=m.create("curve",[function(l){return 0},function(l){return 0},o[2],o[3]],j);var f=function(s,u){var v=n.Dist(k)*0.5,r=[[1,0,0],[0,1,0],[0,0,1]],q=(n.X()+k.X())*0.5,l=(n.Y()+k.Y())*0.5;if(!u){i=p();r[0][0]=i[0][0];r[0][1]=0;r[0][2]=0;r[1][0]=q*(1-i[1][1])+l*i[1][2];r[1][1]=i[1][1];r[1][2]=i[2][1];r[2][0]=l*(1-i[1][1])-q*i[1][2];r[2][1]=i[1][2];r[2][2]=i[2][2];d.quadraticform=JXG.Math.matMatMult(JXG.Math.transpose(r),JXG.Math.matMatMult([[-l*4*v-q*q,q,2*v],[q,-1,0],[2*v,0,0]],r))}return JXG.Math.matVecMult(i,[1,s+q,s*s/(v*4)+l])};d.X=function(l,q){return f(l,q)[1]};d.Y=function(l,q){return f(l,q)[2]};d.type=JXG.OBJECT_TYPE_CONIC;return d};JXG.createConic=function(e,w,g){var j=[[1,0,0],[0,1,0],[0,0,1]],D,B,A,z,f=[[1,0,0],[0,1,0],[0,0,1]],o,n,t=[],u,r,C,m=[],s=JXG.copyAttributes(g,e.options,"conic","foci"),q=JXG.copyAttributes(g,e.options,"conic");if(w.length==5){C=true}else{if(w.length==6){C=false}else{throw new Error("JSXGraph: Can't create generic Conic with "+parent.length+" parameters.")}}if(C){for(u=0;u<5;u++){if(w[u].length>1){t[u]=e.create("point",w[u],s)}else{if(JXG.isPoint(w[u])){t[u]=JXG.getReference(e,w[u])}else{if((typeof w[u]=="function")&&(w[u]().elementClass==JXG.OBJECT_CLASS_POINT)){t[u]=w[u]()}else{if(JXG.isString(w[u])){t[u]=JXG.getReference(e,w[u])}else{throw new Error("JSXGraph: Can't create Conic section with parent types '"+(typeof w[u])+"'.\nPossible parent types: [point,point,point,point,point], [a00,a11,a22,a01,a02,a12]")}}}}}}else{r=[[0,0,0],[0,0,0],[0,0,0]];r[0][0]=(JXG.isFunction(w[2]))?function(){return w[2]()}:function(){return w[2]};r[0][1]=(JXG.isFunction(w[4]))?function(){return w[4]()}:function(){return w[4]};r[0][2]=(JXG.isFunction(w[5]))?function(){return w[5]()}:function(){return w[5]};r[1][1]=(JXG.isFunction(w[0]))?function(){return w[0]()}:function(){return w[0]};r[1][2]=(JXG.isFunction(w[3]))?function(){return w[3]()}:function(){return w[3]};r[2][2]=(JXG.isFunction(w[1]))?function(){return w[1]()}:function(){return w[1]}}var h=function(p){var F,E;for(F=0;F<3;F++){for(E=F;E<3;E++){p[F][E]+=p[E][F]}}for(F=0;F<3;F++){for(E=0;EG){f[F][G]=f[G][F]}}}}k.quadraticform=f;D=JXG.Math.Numerics.Jacobi(f);if(D[0][0][0]<0){D[0][0][0]*=(-1);D[0][1][1]*=(-1);D[0][2][2]*=(-1)}for(G=0;G<3;G++){p=0;for(F=0;F<3;F++){p+=D[1][F][G]*D[1][F][G]}p=Math.sqrt(p);for(F=0;F<3;F++){}}j=D[1];z=Math.sqrt(Math.abs(D[0][0][0]));B=Math.sqrt(Math.abs(D[0][1][1]));A=Math.sqrt(Math.abs(D[0][2][2]))}if(D[0][1][1]<=0&&D[0][2][2]<=0){E=JXG.Math.matVecMult(j,[1/z,Math.cos(H)/B,Math.sin(H)/A])}else{if(D[0][1][1]<=0&&D[0][2][2]>0){E=JXG.Math.matVecMult(j,[Math.cos(H)/z,1/B,Math.sin(H)/A])}else{if(D[0][2][2]<0){E=JXG.Math.matVecMult(j,[Math.sin(H)/z,Math.cos(H)/B,1/A])}}}E[1]/=E[0];E[2]/=E[0];E[0]=1;return E};k.X=function(i,p){return d(i,p)[1]};k.Y=function(i,p){return d(i,p)[2]};k.midpoint=e.create("point",[function(){var i=k.quadraticform;return[i[1][1]*i[2][2]-i[1][2]*i[1][2],i[1][2]*i[0][2]-i[2][2]*i[0][1],i[0][1]*i[1][2]-i[1][1]*i[0][2]]}],s);k.type=JXG.OBJECT_TYPE_CONIC;return k};JXG.JSXGraph.registerElement("ellipse",JXG.createEllipse);JXG.JSXGraph.registerElement("hyperbola",JXG.createHyperbola);JXG.JSXGraph.registerElement("parabola",JXG.createParabola);JXG.JSXGraph.registerElement("conic",JXG.createConic);JXG.Polygon=function(h,f,e){this.constructor(h,e,JXG.OBJECT_TYPE_POLYGON,JXG.OBJECT_CLASS_AREA);var g,k,d,j=JXG.copyAttributes(e,h.options,"polygon","borders");this.withLines=e.withlines;this.attr_line=j;this.vertices=[];for(g=0;gk)!=(this.vertices[f].coords.scrCoords[2]>k))&&(e<(this.vertices[f].coords.scrCoords[1]-this.vertices[g].coords.scrCoords[1])*(k-this.vertices[g].coords.scrCoords[2])/(this.vertices[f].coords.scrCoords[2]-this.vertices[g].coords.scrCoords[2])+this.vertices[g].coords.scrCoords[1])){h=!h}}}else{d=this.borders.length;for(g=0;gd){d=this.vertices[g].X()}if(this.vertices[g].Y()>e){e=this.vertices[g].Y()}if(this.vertices[g].Y()this.vertices.length-2){return this}for(f=1;f-1&&e-1;k--){h[d[k]]=-1;if(this.withLines&&(d[k]-1>d[k-1])){f[f.length-1][1]=d[k];f.push([d[k-1]])}}if(this.withLines){f[f.length-1][1]=d[0]}this.vertices=[];for(k=0;kl.length-1){g=l.length-1}}this.board.removeObject(this.borders[g]);l[g]=-1}if(f[k][1]!==0&&f[k][0]!==h.length-1){l[f[k][0]-1]=JXG.createSegment(this.board,[h[Math.max(f[k][1]-1,0)],h[Math.min(f[k][0]+1,this.vertices.length-1)]],this.attr_line)}}this.borders=[];for(k=0;k=g-2){l.id=l.ids[j-2]}d[j]=m.create("point",[d[j-2],e],l);d[j].type=JXG.OBJECT_TYPE_CAS}}l=JXG.copyAttributes(h,m.options,"polygon");f=m.create("polygon",d,l);f.elType="regularpolygon";return f};JXG.JSXGraph.registerElement("polygon",JXG.createPolygon);JXG.JSXGraph.registerElement("regularpolygon",JXG.createRegularPolygon);JXG.Curve=function(f,e,d){this.constructor(f,d,JXG.OBJECT_TYPE_CURVE,JXG.OBJECT_CLASS_CURVE);this.points=[];this.numberPoints=this.visProp.numberpointshigh;this.bezierDegree=1;this.dataX=null;this.dataY=null;if(e[0]!=null){this.varname=e[0]}else{this.varname="x"}this.xterm=e[1];this.yterm=e[2];this.generateTerm(this.varname,this.xterm,this.yterm,e[3],e[4]);this.updateCurve();this.id=this.board.setId(this,"G");this.board.renderer.drawCurve(this);this.board.finalizeAdding(this);this.createGradient();this.elType="curve";this.createLabel();if(typeof this.xterm=="string"){this.notifyParents(this.xterm)}if(typeof this.yterm=="string"){this.notifyParents(this.yterm)}};JXG.Curve.prototype=new JXG.GeometryElement;JXG.extend(JXG.Curve.prototype,{minX:function(){if(this.visProp.curvetype=="polar"){return 0}else{var d=new JXG.Coords(JXG.COORDS_BY_SCREEN,[0,0],this.board);return d.usrCoords[1]}},maxX:function(){var d;if(this.visProp.curvetype=="polar"){return 2*Math.PI}else{d=new JXG.Coords(JXG.COORDS_BY_SCREEN,[this.board.canvasWidth,0],this.board);return d.usrCoords[1]}},Z:function(d){return 1},hasPoint:function(s,r,n){var u,B=Infinity,J,m,D,C,w,v,z,f,K,A,p,H,l,G,h,o,q,F=this.visProp.numberpointslow,I=(this.maxX()-this.minX())/F,e=this.board.options.precision.hasPoint/this.board.unitX,g,E,k=true;e=e*e;g=new JXG.Coords(JXG.COORDS_BY_SCREEN,[s,r],this.board);s=g.usrCoords[1];r=g.usrCoords[2];if(this.visProp.curvetype=="parameter"||this.visProp.curvetype=="polar"||this.visProp.curvetype=="functiongraph"){E=this.transformations.length;for(D=0,u=this.minX();D=JXG.Math.eps){o=H*G+l*h;p=o/q;B=H*H+l*l-p*o}else{p=0;B=H*H+l*l}if(p>=0&&p<=1&&B=JXG.Math.eps){i=(t*j+K*I)/J;if(i>0){if(i<=1){t-=i*j;K-=i*I}else{t-=j;K-=I}}}H=t*t+K*K;return Math.sqrt(H)};if(this.board.updateQuality==this.board.BOARD_QUALITY_LOW){F=15;s=10;k=10}else{F=21;s=0.7;k=0.7}A[0]=e-E;for(v=1;v1){C=l(this.points[u-2].scrCoords,[n,m],this.points[u-1].scrCoords);if(C<0.015){u--}}this.points[u]=new JXG.Coords(JXG.COORDS_BY_SCREEN,[n,m],this.board);this.updateTransform(this.points[u]);u++;B=n;f=m;o=p;q--;n=D[q][0];m=D[q][1];G=h[q]+1;v=w[q]*2}while(q>0&&u<500000);this.numberPoints=this.points.length;return this},isSegmentOutside:function(e,g,d,f){return(g<0&&f<0)||(g>this.board.canvasHeight&&f>this.board.canvasHeight)||(e<0&&d<0)||(e>this.board.canvasWidth&&d>this.board.canvasWidth)},isDistOK:function(f,d,g,e){return(Math.abs(f)0&&this.transformations[this.transformations.length-1].isNumericMatrix){this.transformations[this.transformations.length-1].melt(d)}else{this.addTransform(d)}return this},generateTerm:function(e,i,f,d,j){var h,g;if(JXG.isArray(i)){this.dataX=i;this.X=function(m){var l=parseInt(Math.floor(m)),k,n;if(m<0){l=0}else{if(m>this.dataX.length-2){l=this.dataX.length-2}}if(l==m){return this.dataX[l]}else{k=this.dataX[l];n=this.dataX[l+1];return k+(n-k)*(m-l)}};this.visProp.curvetype="plot";this.numberPoints=this.dataX.length}else{this.X=JXG.createFunction(i,this.board,e);if(JXG.isString(i)){this.visProp.curvetype="functiongraph"}else{if(JXG.isFunction(i)||JXG.isNumber(i)){this.visProp.curvetype="parameter"}}}if(JXG.isArray(f)){this.dataY=f;this.Y=function(m){var l=parseInt(Math.floor(m)),k,n;if(m<0){l=0}else{if(m>this.dataY.length-2){l=this.dataY.length-2}}if(l==m){if(JXG.isFunction(this.dataY[l])){return this.dataY[l]()}else{return this.dataY[l]}}else{if(JXG.isFunction(this.dataY[l])){k=this.dataY[l]()}else{k=this.dataY[l]}if(JXG.isFunction(this.dataY[l+1])){n=this.dataY[l+1]()}else{n=this.dataY[l+1]}return k+(n-k)*(m-l)}}}else{this.Y=JXG.createFunction(f,this.board,e)}if(JXG.isFunction(i)&&JXG.isArray(f)){h=JXG.createFunction(f[0],this.board,"");g=JXG.createFunction(f[1],this.board,"");this.X=function(k){return(i)(k)*Math.cos(k)+h()};this.Y=function(k){return(i)(k)*Math.sin(k)+g()};this.visProp.curvetype="polar"}if(d!=null){this.minX=JXG.createFunction(d,this.board,"")}if(j!=null){this.maxX=JXG.createFunction(j,this.board,"")}},notifyParents:function(d){JXG.GeonextParser.findDependencies(this,d,this.board)},getLabelAnchor:function(){var j,d,i,f=0.05*this.board.canvasWidth,e=0.05*this.board.canvasHeight,h=0.95*this.board.canvasWidth,g=0.95*this.board.canvasHeight;switch(this.visProp.label.position){case"ulft":d=f;i=e;break;case"llft":d=f;i=g;break;case"rt":d=h;i=0.5*g;break;case"lrt":d=h;i=g;break;case"urt":d=h;i=e;break;case"top":d=0.5*h;i=e;break;case"bot":d=0.5*h;i=g;break;case"lft":default:d=f;i=0.5*g;break}j=new JXG.Coords(JXG.COORDS_BY_SCREEN,[d,i],this.board);return JXG.Math.Geometry.projectCoordsToCurve(j.usrCoords[1],j.usrCoords[2],0,this,this.board)[0]},cloneToBackground:function(){var e={},d;e.id=this.id+"T"+this.numTraces;e.elementClass=JXG.OBJECT_CLASS_CURVE;this.numTraces++;e.points=this.points.slice(0);e.numberPoints=this.numberPoints;e.board=this.board;e.visProp=JXG.deepCopy(this.visProp,this.visProp.traceattributes,true);e.visProp.layer=this.board.options.layer.trace;e.visProp.curvetype=this.visProp.curvetype;JXG.clearVisPropOld(e);d=this.board.renderer.enhancedRendering;this.board.renderer.enhancedRendering=true;this.board.renderer.drawCurve(e);this.board.renderer.enhancedRendering=d;this.traces[e.id]=e.rendNode;return this},bounds:function(){var d=Infinity,h=-Infinity,j=Infinity,g=-Infinity,e=this.points.length,f;for(f=0;fthis.points[f].usrCoords[1]){d=this.points[f].usrCoords[1]}if(hthis.points[f].usrCoords[2]){j=this.points[f].usrCoords[2]}if(gMath.PI)||(this.visProp.type=="major"&&qJXG.Math.eps){if(q>=m){V=m;q-=m}else{V=q;q=0}w=Math.cos(u*V);W=Math.sin(u*V);P=[[1,0,0],[G*(1-w)+E*W,w,-W],[E*(1-w)-G*W,W,w]];I=JXG.Math.matVecMult(P,p);l=[I[0]/I[0],I[1]/I[0],I[2]/I[0]];H=p[1]-G;F=p[2]-E;S=l[1]-G;R=l[2]-E;T=Math.sqrt((H+S)*(H+S)+(F+R)*(F+R));if(Math.abs(R-F)>JXG.Math.eps){O=(H+S)*(K/T-0.5)/(R-F)*8/3}else{O=(F+R)*(K/T-0.5)/(H-S)*8/3}o=[1,p[1]-O*F,p[2]+O*H];n=[1,l[1]+O*R,l[2]-O*S];this.dataX=this.dataX.concat([o[1],n[1],l[1]]);this.dataY=this.dataY.concat([o[2],n[2],l[2]]);p=l.slice(0)}this.bezierDegree=3;this.updateStdform();this.updateQuadraticform()};h.Radius=function(){return this.radiuspoint.Dist(this.center)};h.getRadius=function(){return this.Radius()};h.hasPoint=function(q,p){var k=this.board.options.precision.hasPoint/(this.board.unitX),n=new JXG.Coords(JXG.COORDS_BY_SCREEN,[q,p],this.board),i=this.Radius(),o=this.center.coords.distance(JXG.COORDS_BY_USER,n),t=(Math.abs(o-i)Math.PI)||(this.visProp.type=="major"&&ss){t=false}}return t};h.hasPointSector=function(p,o){var m=new JXG.Coords(JXG.COORDS_BY_SCREEN,[p,o],this.board),i=this.Radius(),n=this.center.coords.distance(JXG.COORDS_BY_USER,m),s=(nMath.PI)||(this.visProp.type=="major"&&qq){s=false}}return s};h.getTextAnchor=function(){return this.center.coords};h.getLabelAnchor=function(){var l,t=10/(this.board.unitX),r=10/(this.board.unitY),p=this.point2.coords.usrCoords,i=this.center.coords.usrCoords,k=p[1]-i[1],s=p[2]-i[2],q,n,m,o;if(this.label.content!=null){this.label.content.relativeCoords=new JXG.Coords(JXG.COORDS_BY_SCREEN,[0,0],this.board)}l=JXG.Math.Geometry.rad(this.radiuspoint,this.center,this.anglepoint);if((this.visProp.type=="minor"&&l>Math.PI)||(this.visProp.type=="major"&&lJXG.Math.eps){if(p>=l){T=l;p-=l}else{T=p;p=0}t=Math.cos(T);U=Math.sin(T);N=[[1,0,0],[E*(1-t)+w*U,t,-U],[w*(1-t)-E*U,U,t]];G=JXG.Math.matVecMult(N,o);j=[G[0]/G[0],G[1]/G[0],G[2]/G[0]];F=o[1]-E;D=o[2]-w;Q=j[1]-E;P=j[2]-w;R=Math.sqrt((F+Q)*(F+Q)+(D+P)*(D+P));if(Math.abs(P-D)>JXG.Math.eps){M=(F+Q)*(I/R-0.5)/(P-D)*8/3}else{M=(D+P)*(I/R-0.5)/(F-Q)*8/3}n=[1,o[1]-M*D,o[2]+M*F];m=[1,j[1]+M*P,j[2]-M*Q];this.dataX=this.dataX.concat([n[1],m[1],j[1]]);this.dataY=this.dataY.concat([n[2],m[2],j[2]]);o=j.slice(0)}this.dataX=this.dataX.concat([j[1]+0.333*(E-j[1]),j[1]+0.666*(E-j[1]),E]);this.dataY=this.dataY.concat([j[2]+0.333*(w-j[2]),j[2]+0.666*(w-j[2]),w]);this.bezierDegree=3};g.Radius=function(){return this.point2.Dist(this.point1)};g.getRadius=function(){return this.Radius()};g.hasPoint=function(p,o){var j=this.board.options.precision.hasPoint/(this.board.unitX),m=new JXG.Coords(JXG.COORDS_BY_SCREEN,[p,o],this.board),i=this.Radius(),n=this.center.coords.distance(JXG.COORDS_BY_USER,m),s=(Math.abs(n-i)q){s=false}}return s};g.hasPointSector=function(i,o){var n=new JXG.Coords(JXG.COORDS_BY_SCREEN,[i,o],this.board),k=this.Radius(),m=this.point1.coords.distance(JXG.COORDS_BY_USER,n),j=(mJXG.Math.Geometry.rad(this.point2,this.point1,this.point3)){j=false}}return j};g.getTextAnchor=function(){return this.point1.coords};g.getLabelAnchor=function(){var k=JXG.Math.Geometry.rad(this.point2,this.point1,this.point3),s=13/(this.board.unitX),q=13/(this.board.unitY),o=this.point2.coords.usrCoords,i=this.point1.coords.usrCoords,j=o[1]-i[1],r=o[2]-i[2],p,m,l,n;if(this.label.content!=null){this.label.content.relativeCoords=new JXG.Coords(JXG.COORDS_BY_SCREEN,[0,0],this.board)}p=new JXG.Coords(JXG.COORDS_BY_USER,[i[1]+Math.cos(k*0.5)*j-Math.sin(k*0.5)*r,i[2]+Math.sin(k*0.5)*j+Math.cos(k*0.5)*r],this.board);m=p.usrCoords[1]-i[1];l=p.usrCoords[2]-i[2];n=Math.sqrt(m*m+l*l);m=m*(n+s)/n;l=l*(n+q)/n;return new JXG.Coords(JXG.COORDS_BY_USER,[i[1]+m,i[2]+l],this.board)};g.prepareUpdate().update();return g};JXG.JSXGraph.registerElement("sector",JXG.createSector);JXG.createCircumcircleSector=function(h,f,e){var g,i,d;if((JXG.isPoint(f[0]))&&(JXG.isPoint(f[1]))&&(JXG.isPoint(f[2]))){d=JXG.copyAttributes(e,h.options,"circumcirclesector","center");i=h.create("circumcenter",[f[0],f[1],f[2]],d);i.dump=false;d=JXG.copyAttributes(e,h.options,"circumcirclesector");g=h.create("sector",[i,f[0],f[2],f[1]],d);g.elType="circumcirclesector";g.parents=[f[0].id,f[1].id,f[2].id];g.center=i;g.subs={center:i}}else{throw new Error("JSXGraph: Can't create circumcircle sector with parent types '"+(typeof f[0])+"' and '"+(typeof f[1])+"' and '"+(typeof f[2])+"'.")}return g};JXG.JSXGraph.registerElement("circumcirclesector",JXG.createCircumcircleSector);JXG.createAngle=function(l,n,j){var g,f,e,o,m,h,k,d;if((JXG.isPoint(n[0]))&&(JXG.isPoint(n[1]))&&(JXG.isPoint(n[2]))){m=JXG.copyAttributes(j,l.options,"angle");o=m.name;if(typeof o=="undefined"||o==""){o=l.generateName({type:JXG.OBJECT_TYPE_ANGLE});m.name=o}h=JXG.copyAttributes(j,l.options,"angle","radiuspoint");f=l.create("point",[0,1,0],h);f.dump=false;h=JXG.copyAttributes(j,l.options,"angle","pointsquare");e=l.create("point",[0,1,1],h);e.dump=false;g=l.create("sector",[n[1],f,n[2]],m);g.elType="angle";g.parents=[n[0].id,n[1].id,n[2].id];g.subs={point:f,pointsquare:e};g.updateDataArraySquare=function(){var s=n[1],q,p,i,t;q=JXG.Math.crossProduct(e.coords.usrCoords,s.coords.usrCoords);p=[-f.X()*q[1]-f.Y()*q[2],f.Z()*q[1],f.Z()*q[2]];q=JXG.Math.crossProduct(f.coords.usrCoords,s.coords.usrCoords);i=[-e.X()*q[1]-e.Y()*q[2],e.Z()*q[1],e.Z()*q[2]];t=JXG.Math.crossProduct(p,i);t[1]/=t[0];t[2]/=t[0];this.dataX=[s.X(),f.X(),t[1],e.X(),s.X()];this.dataY=[s.Y(),f.Y(),t[2],e.Y(),s.Y()];this.bezierDegree=1};g.updateDataArrayNone=function(){this.dataX=[NaN];this.dataY=[NaN];this.bezierDegree=1};g.updateDataArraySector=g.updateDataArray;g.updateDataArray=function(){var i=this.visProp.type,p=JXG.Math.Geometry.trueAngle(n[0],n[1],n[2]);if(Math.abs(p-90)=3&&JXG.isPoint(f[0])&&JXG.isPoint(f[1])&&JXG.isPoint(f[2])){d=f[0];j=f[1];i=f[2];h=g.create("point",[function(){var m,l,n;m=Math.sqrt((j.X()-i.X())*(j.X()-i.X())+(j.Y()-i.Y())*(j.Y()-i.Y()));l=Math.sqrt((d.X()-i.X())*(d.X()-i.X())+(d.Y()-i.Y())*(d.Y()-i.Y()));n=Math.sqrt((j.X()-d.X())*(j.X()-d.X())+(j.Y()-d.Y())*(j.Y()-d.Y()));return new JXG.Coords(JXG.COORDS_BY_USER,[(m*d.X()+l*j.X()+n*i.X())/(m+l+n),(m*d.Y()+l*j.Y()+n*i.Y())/(m+l+n)],g)}],e);h.elType="incenter";h.parents=[f[0].id,f[1].id,f[2].id]}else{throw new Error("JSXGraph: Can't create incenter with parent types '"+(typeof f[0])+"', '"+(typeof f[1])+"' and '"+(typeof f[2])+"'.\nPossible parent types: [point,point,point]")}return h};JXG.createCircumcircle=function(h,g,f){var j,k,d;try{d=JXG.copyAttributes(f,h.options,"circumcircle","center");j=JXG.createCircumcircleMidpoint(h,g,d);j.dump=false;if(!JXG.exists(f.layer)){f.layer=h.options.layer.circle}d=JXG.copyAttributes(f,h.options,"circumcircle");k=JXG.createCircle(h,[j,g[0]],d);k.elType="circumcircle";k.parents=[g[0].id,g[1].id,g[2].id];k.subs={center:j}}catch(i){throw new Error("JSXGraph: Can't create circumcircle with parent types '"+(typeof g[0])+"', '"+(typeof g[1])+"' and '"+(typeof g[2])+"'.\nPossible parent types: [point,point,point]")}return k};JXG.createIncircle=function(i,h,f){var k,l,d,g;try{d=JXG.copyAttributes(f,i.options,"incircle","center");k=JXG.createIncenter(i,h,d);k.dump=false;if(!JXG.exists(f.layer)){f.layer=i.options.layer.circle}d=JXG.copyAttributes(f,i.options,"incircle");l=JXG.createCircle(i,[k,function(){var m=Math.sqrt((h[1].X()-h[2].X())*(h[1].X()-h[2].X())+(h[1].Y()-h[2].Y())*(h[1].Y()-h[2].Y())),e=Math.sqrt((h[0].X()-h[2].X())*(h[0].X()-h[2].X())+(h[0].Y()-h[2].Y())*(h[0].Y()-h[2].Y())),o=Math.sqrt((h[1].X()-h[0].X())*(h[1].X()-h[0].X())+(h[1].Y()-h[0].Y())*(h[1].Y()-h[0].Y())),n=(m+e+o)/2;return Math.sqrt(((n-m)*(n-e)*(n-o))/n)}],d);l.elType="incircle";l.parents=[h[0].id,h[1].id,h[2].id];l.center=k;l.subs={center:k}}catch(j){throw new Error("JSXGraph: Can't create circumcircle with parent types '"+(typeof h[0])+"', '"+(typeof h[1])+"' and '"+(typeof h[2])+"'.\nPossible parent types: [point,point,point]")}return l};JXG.createReflection=function(h,f,e){var d,j,i,g;if(f[0].elementClass==JXG.OBJECT_CLASS_POINT&&f[1].elementClass==JXG.OBJECT_CLASS_LINE){j=f[0];d=f[1]}else{if(f[1].elementClass==JXG.OBJECT_CLASS_POINT&&f[0].elementClass==JXG.OBJECT_CLASS_LINE){j=f[1];d=f[0]}else{throw new Error("JSXGraph: Can't create reflection point with parent types '"+(typeof f[0])+"' and '"+(typeof f[1])+"'.\nPossible parent types: [line,point]")}}g=JXG.createTransform(h,[d],{type:"reflect"});i=JXG.createPoint(h,[j,g],e);j.addChild(i);d.addChild(i);i.elType="reflection";i.parents=[f[0].id,f[1].id];i.prepareUpdate().update();i.generatePolynomial=function(){var l=d.point1.symbolic.x;var k=d.point1.symbolic.y;var r=d.point2.symbolic.x;var q=d.point2.symbolic.y;var t=j.symbolic.x;var s=j.symbolic.y;var n=i.symbolic.x;var m=i.symbolic.y;var p=["((",m,")-(",s,"))*((",k,")-(",q,"))+((",l,")-(",r,"))*((",n,")-(",t,"))"].join("");var o=["((",n,")-(",l,"))^2+((",m,")-(",k,"))^2-((",t,")-(",l,"))^2-((",s,")-(",k,"))^2"].join("");return[p,o]};return i};JXG.createMirrorPoint=function(g,e,d){var h,f;if(JXG.isPoint(e[0])&&JXG.isPoint(e[1])){h=JXG.createPoint(g,[function(){return JXG.Math.Geometry.rotation(e[0],e[1],Math.PI,g)}],d);for(f=0;f<2;f++){e[f].addChild(h)}h.elType="mirrorpoint";h.parents=[e[0].id,e[1].id]}else{throw new Error("JSXGraph: Can't create mirror point with parent types '"+(typeof e[0])+"' and '"+(typeof e[1])+"'.\nPossible parent types: [point,point]")}h.prepareUpdate().update();return h};JXG.createIntegral=function(i,z,m){var w,r,u,g=0,f=0,e,d,l,k,q=1,v,n,h,A,j,o,s;if(JXG.isArray(z[0])&&z[1].elementClass==JXG.OBJECT_CLASS_CURVE){w=z[0];r=z[1]}else{if(JXG.isArray(z[1])&&z[0].elementClass==JXG.OBJECT_CLASS_CURVE){w=z[1];r=z[0]}else{throw new Error("JSXGraph: Can't create integral with parent types '"+(typeof z[0])+"' and '"+(typeof z[1])+"'.\nPossible parent types: [[number|function,number|function],curve]")}}g=w[0];f=w[1];if(JXG.isFunction(g)){e=g;d=function(){return r.Y(e())};g=e()}else{e=g;d=r.Y(g)}if(JXG.isFunction(g)){l=f;k=function(){return r.Y(l())};f=l()}else{l=f;k=r.Y(f)}if(f0){return}var j=JXG.Math.Symbolic.generatePolynomials(f,g,true).join("|");if(j===h.spe){return}h.spe=j;var i=function(m,o,l,n){h.dataX=m;h.dataY=o;h.eq=l;h.ctime=n;h.generatePolynomial=(function(p){return function(r){var q="("+r.symbolic.x+")",u="("+r.symbolic.y+")",t=[],s;for(s=0;sl.usrCoords[2]-n;k-=n){h.dataX.push(m.usrCoords[1],l.usrCoords[1],NaN);h.dataY.push(k,k,NaN)}for(k=m.usrCoords[1];k=h-f&&j<=i+f)&&((d>=g-f&&d<=g+2*f)||(d>=e-2*f&&d<=e+f))},setTextJessieCode:function(e){var d;this.visProp.castext=e;if(typeof e==="function"){d=function(){return e().replace(//g,">")}}else{if(JXG.isNumber(e)){d=e}else{d=e.replace(//g,">")}}return this.setText(d)},setText:function(d){if(typeof d==="function"){this.updateText=function(){this.plaintext=d()}}else{if(JXG.isNumber(d)){this.content=(d).toFixed(this.visProp.digits)}else{if(this.visProp.useasciimathml){this.content="'`"+d+"`'"}else{this.content=this.generateTerm(d)}}this.updateText=new Function("this.plaintext = "+this.content+"; ")}this.updateText();this.prepareUpdate().update().updateRenderer();return this},updateSize:function(){var d;if(typeof document==="undefined"){return this}if(this.visProp.display=="html"&&this.board.renderer.type!="vml"){this.size=[this.rendNode.offsetWidth,this.rendNode.offsetHeight]}else{if(this.visProp.display=="internal"&&this.board.renderer.type=="svg"){try{d=this.rendNode.getBBox();this.size=[d.width,d.height]}catch(f){}}else{if(this.board.renderer.type=="vml"||(this.visProp.display=="internal"&&this.board.renderer.type=="canvas")){this.size=[parseFloat(this.visProp.fontsize)*this.plaintext.length*0.45,parseFloat(this.visProp.fontsize)*0.9]}}}return this},getSize:function(){return this.size},setCoords:function(d,e){if(JXG.isArray(d)&&d.length>1){e=d[1];d=d[0]}this.X=function(){return d};this.Y=function(){return e};this.coords=new JXG.Coords(JXG.COORDS_BY_USER,[d,e],this.board);this.prepareUpdate().update().updateRenderer();return this},free:function(){this.X=JXG.createFunction(this.X(),this.board,"");this.Y=JXG.createFunction(this.Y(),this.board,"");this.isDraggable=true},update:function(){var d,f,e;if(this.needsUpdate){if(this.relativeCoords){if(this.visProp.islabel){f=parseFloat(this.visProp.offset[0]);e=-parseFloat(this.visProp.offset[1]);d=this.element.getLabelAnchor();this.coords.setCoordinates(JXG.COORDS_BY_SCREEN,[f+this.relativeCoords.scrCoords[1]+d.scrCoords[1],e+this.relativeCoords.scrCoords[2]+d.scrCoords[2]])}else{d=this.element.getTextAnchor();this.coords.setCoordinates(JXG.COORDS_BY_USER,[this.relativeCoords.usrCoords[1]+d.usrCoords[1],this.relativeCoords.usrCoords[2]+d.usrCoords[2]])}}else{this.updateCoords()}this.updateText();if(this.needsSizeUpdate){this.updateSize()}this.updateTransform()}return this},updateRenderer:function(){if(this.needsUpdate){this.board.renderer.updateText(this);this.needsUpdate=false}return this},updateTransform:function(){var d;if(this.transformations.length==0){return}for(d=0;d/g,"∠");h=h.replace(//g,"√");var e;e=h.indexOf("");var d=h.indexOf("");if(e>=0){this.needsSizeUpdate=true;while(e>=0){k+=' + "'+JXG.GeonextParser.replaceSub(JXG.GeonextParser.replaceSup(h.slice(0,e)))+'"';f=h.slice(e+7,d);g=JXG.GeonextParser.geonext2JS(f,this.board);g=g.replace(/\\"/g,'"');g=g.replace(/\\'/g,"'");if(g.indexOf("toFixed")<0){if(JXG.isNumber((JXG.bind(new Function("return "+g+";"),this))())){k+="+("+g+").toFixed("+(this.visProp.digits)+")"}else{k+="+("+g+")"}}else{k+="+("+g+")"}h=h.slice(d+8);e=h.indexOf("");d=h.indexOf("")}}k+=' + "'+JXG.GeonextParser.replaceSub(JXG.GeonextParser.replaceSup(h))+'"';k=k.replace(//g,"");k=k.replace(/<\/overline>/g,"");k=k.replace(//g,"");k=k.replace(/<\/arrow>/g,"");k=k.replace(/&/g,"&");return k},notifyParents:function(f){var e=null;do{var d=/([\w\s\*\/\^\-\+\(\)\[\],<>=!]+)<\/value>/;e=d.exec(f);if(e!=null){JXG.GeonextParser.findDependencies(this,e[1],this.board);f=f.substr(e.index);f=f.replace(d,"")}}while(e!=null);return this},bounds:function(){var d=this.coords.usrCoords;return this.visProp.islabel?[0,0,0,0]:[d[1],d[2]+this.size[1],d[1]+this.size[0],d[2]]},setPositionDirectly:function(j,h,g){var e,d,i,f;if(this.relativeCoords){if(this.visProp.islabel){f=new JXG.Coords(j,g,this.board);i=new JXG.Coords(j,h,this.board);e=i.scrCoords[1]-f.scrCoords[1];d=i.scrCoords[2]-f.scrCoords[2];this.relativeCoords.scrCoords[1]+=e;this.relativeCoords.scrCoords[2]+=d}else{f=new JXG.Coords(j,g,this.board);i=new JXG.Coords(j,h,this.board);e=i.usrCoords[1]-f.usrCoords[1];d=i.usrCoords[2]-f.usrCoords[2];this.relativeCoords.usrCoords[1]+=e;this.relativeCoords.usrCoords[2]+=d}}else{i=new JXG.Coords(j,h,this.board);this.X=JXG.createFunction(i.usrCoords[1],this.board,"");this.Y=JXG.createFunction(i.usrCoords[2],this.board,"")}return this}});JXG.createText=function(h,f,e){var d,g,d=JXG.copyAttributes(e,h.options,"text");d.anchor=d.parent||d.anchor;g=new JXG.Text(h,f[f.length-1],f,d);if(typeof f[f.length-1]!=="function"){g.parents=f}if(JXG.evaluate(d.rotate)!=0&&d.display=="internal"){g.addRotation(JXG.evaluate(d.rotate))}return g};JXG.JSXGraph.registerElement("text",JXG.createText);JXG.Image=function(g,e,h,f,d){this.constructor(g,d,JXG.OBJECT_TYPE_IMAGE,JXG.OBJECT_CLASS_OTHER);this.initialCoords=new JXG.Coords(JXG.COORDS_BY_USER,h,this.board);if(!JXG.isFunction(h[0])&&!JXG.isFunction(h[1])){this.isDraggable=true}this.X=JXG.createFunction(h[0],this.board,"");this.Y=JXG.createFunction(h[1],this.board,"");this.W=JXG.createFunction(f[0],this.board,"");this.H=JXG.createFunction(f[1],this.board,"");this.coords=new JXG.Coords(JXG.COORDS_BY_USER,[this.X(),this.Y()],this.board);this.updateCoords=new Function("","this.coords.setCoordinates(JXG.COORDS_BY_USER,[this.X(),this.Y()]);");this.updateSize=new Function("","this.coords.setCoordinates(JXG.COORDS_BY_USER,[this.W(),this.H()]);");this.usrSize=[this.W(),this.H()];this.size=[this.usrSize[0]*g.unitX,this.usrSize[1]*g.unitY];this.url=e;this.parent=JXG.getRef(d.anchor);this.id=this.board.setId(this,"Im");this.board.renderer.drawImage(this);if(!this.visProp.visible){this.board.renderer.hide(this)}};JXG.Image.prototype=new JXG.GeometryElement;JXG.extend(JXG.Image.prototype,{hasPoint:function(d,h){var f=d-this.coords.scrCoords[1],e=this.coords.scrCoords[2]-h,g=this.board.options.precision.hasPoint;if(f>=-g&&f<=2*g&&e>=-g&&e<=g){return true}else{return false}},update:function(){if(this.needsUpdate){this.updateCoords();this.usrSize=[this.W(),this.H()];this.size=[this.usrSize[0]*this.board.unitX,this.usrSize[1]*this.board.unitY];this.updateTransform()}return this},updateRenderer:function(){if(this.needsUpdate){this.board.renderer.updateImage(this);this.needsUpdate=false}return this},updateTransform:function(){if(this.transformations.length==0){return}for(var d=0;d=0){v+=d*0.5/e.unitX}else{v-=d*r/e.unitX}m-=d*0.2/e.unitY;q=e.create("text",[v,m,f.labels[u]],f)}}else{s[0]=e.create("point",[o,0],z);s[1]=e.create("point",[o,v],z);s[2]=e.create("point",[k,v],z);s[3]=e.create("point",[k,0],z);if(JXG.exists(f.labels)&&JXG.exists(f.labels[u])){r=f.labels[u].toString().length;r=0.6*r*d/e.unitX;if(v>=0){v+=d*0.5/e.unitY}else{v-=d*1/e.unitY}q=e.create("text",[m-r*0.5,v,f.labels[u]],f)}}f.withlines=false;if(JXG.exists(f.colors)&&JXG.isArray(f.colors)){j=f.colors;f.fillcolor=j[u%j.length]}g[u]=e.create("polygon",s,f);if(JXG.exists(f.labels)&&JXG.exists(f.labels[u])){g[u].text=q}}return g},drawPoints:function(j,d,k,f){var g,h=[],e=f.infoboxarray;f.fixed=true;f.name="";for(g=0;gad[Y]){ad[Y]=R[aa][Y]}if(R[aa][Y]1){if(g.length==3){h=this.evalParam(1);l=this.evalParam(2)}else{h=g[1].X();l=g[1].Y()}this.matrix[1][0]=h*(1-k)+l*i;this.matrix[2][0]=l*(1-k)-h*i}}}else{if(e=="shear"){this.evalParam=JXG.createEvalFunction(f,g,1);this.update=function(){var h=this.evalParam(0);this.matrix[1][1]=Math.tan(h)}}else{if(e=="generic"){this.evalParam=JXG.createEvalFunction(f,g,9);this.update=function(){this.matrix[0][0]=this.evalParam(0);this.matrix[0][1]=this.evalParam(1);this.matrix[0][2]=this.evalParam(2);this.matrix[1][0]=this.evalParam(3);this.matrix[1][1]=this.evalParam(4);this.matrix[1][2]=this.evalParam(5);this.matrix[2][0]=this.evalParam(6);this.matrix[2][1]=this.evalParam(7);this.matrix[2][2]=this.evalParam(8)}}}}}}}},apply:function(d){this.update();if(arguments[1]!=null){return JXG.Math.matVecMult(this.matrix,d.initialCoords.usrCoords)}else{return JXG.Math.matVecMult(this.matrix,d.coords.usrCoords)}},applyOnce:function(f){var g,d,e;if(!JXG.isArray(f)){this.update();g=JXG.Math.matVecMult(this.matrix,f.coords.usrCoords);f.coords.setCoordinates(JXG.COORDS_BY_USER,g)}else{d=f.length;for(e=0;e=8192){this.curve=this.board.create("curve",[[this.pos[0]],[this.pos[1]]],this._attributes);this.objects.push(this.curve)}}this.pos[0]+=f;this.pos[1]+=e;if(this.isPenDown){this.curve.dataX.push(this.pos[0]);this.curve.dataY.push(this.pos[1])}this.board.update();return this},back:function(d){return this.forward(-d)},right:function(e){this.dir-=e;this.dir%=360;if(!this.turtleIsHidden){var d=this.board.create("transform",[-e*Math.PI/180,this.turtle],{type:"rotate"});d.applyOnce(this.turtle2)}this.board.update();return this},left:function(d){return this.right(-d)},penUp:function(){this.isPenDown=false;return this},penDown:function(){this.isPenDown=true;this.curve=this.board.create("curve",[[this.pos[0]],[this.pos[1]]],this._attributes);this.objects.push(this.curve);return this},clean:function(){for(var d=0;d=8192){this.curve=this.board.create("curve",[[this.pos[0]],[this.pos[1]]],this._attributes);this.objects.push(this.curve)}}this.pos[0]=g[0];this.pos[1]=g[1];if(this.isPenDown){this.curve.dataX.push(this.pos[0]);this.curve.dataY.push(this.pos[1])}this.board.update()}return this},fd:function(d){return this.forward(d)},bk:function(d){return this.back(d)},lt:function(d){return this.left(d)},rt:function(d){return this.right(d)},pu:function(){return this.penUp()},pd:function(){return this.penDown()},ht:function(){return this.hideTurtle()},st:function(){return this.showTurtle()},cs:function(){return this.clearScreen()},push:function(){return this.pushTurtle()},pop:function(){return this.popTurtle()},evalAt:function(h,l){var g,f,k,e,d=this.objects.length;for(g=0,f=0;g=3){arguments[0]=[arguments[0],arguments[1],arguments[2]];arguments.length=1}n=arguments[0];if(JXG.isArray(n)){for(j=0;j<3;j++){e|=/\./.test(arguments[0][j].toString())}for(j=0;j<3;j++){e&=(arguments[0][j]>=0)&(arguments[0][j]<=1)}if(e){return[Math.ceil(arguments[0][0]*255),Math.ceil(arguments[0][1]*255),Math.ceil(arguments[0][2]*255)]}else{arguments[0].length=3;return arguments[0]}}else{if(typeof arguments[0]==="string"){n=arguments[0]}}if(n.charAt(0)=="#"){n=n.substr(1,6)}n=n.replace(/ /g,"").toLowerCase();var h={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};n=h[n]||n;var m=[{re:/^\s*rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]{1,3})\s*\)\s*$/,example:["rgba(123, 234, 45, 0.5)","rgba(255,234,245,1.0)"],process:function(g){return[parseInt(g[1]),parseInt(g[2]),parseInt(g[3])]}},{re:/^\s*rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)\s*$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(g){return[parseInt(g[1]),parseInt(g[2]),parseInt(g[3])]}},{re:/^(\w{2})(\w{2})(\w{2})$/,example:["#00ff00","336699"],process:function(g){return[parseInt(g[1],16),parseInt(g[2],16),parseInt(g[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:["#fb0","f0f"],process:function(g){return[parseInt(g[1]+g[1],16),parseInt(g[2]+g[2],16),parseInt(g[3]+g[3],16)]}}];for(j=0;j255)?255:d);l=(l<0||isNaN(l))?0:((l>255)?255:l);o=(o<0||isNaN(o))?0:((o>255)?255:o);return[d,l,o]};JXG.rgb2css=function(){var f,e,d;f=JXG.rgbParser.apply(JXG.rgbParser,arguments);e=f[1];d=f[2];f=f[0];return"rgb("+f+", "+e+", "+d+")"};JXG.rgb2hex=function(){var f,e,d;f=JXG.rgbParser.apply(JXG.rgbParser,arguments);e=f[1];d=f[2];f=f[0];f=f.toString(16);e=e.toString(16);d=d.toString(16);if(f.length==1){f="0"+f}if(e.length==1){e="0"+e}if(d.length==1){d="0"+d}return"#"+f+e+d};JXG.hex2rgb=function(h){var f,e,d;if(h.charAt(0)=="#"){h=h.slice(1)}f=parseInt(h.substr(0,2),16);e=parseInt(h.substr(2,2),16);d=parseInt(h.substr(4,2),16);return"rgb("+f+", "+e+", "+d+")"};JXG.hsv2rgb=function(o,k,j){var l,r,g,n,m,h,e,d,s;o=((o%360)+360)%360;if(k==0){if(isNaN(o)||o=360){h=0}else{h=o}h=h/60;m=Math.floor(h);n=h-m;e=j*(1-k);d=j*(1-(k*n));s=j*(1-(k*(1-n)));switch(m){case 0:l=j;r=s;g=e;break;case 1:l=d;r=j;g=e;break;case 2:l=e;r=j;g=s;break;case 3:l=e;r=d;g=j;break;case 4:l=s;r=e;g=j;break;case 5:l=j;r=e;g=d;break}}l=Math.round(l*255).toString(16);l=(l.length==2)?l:((l.length==1)?"0"+l:"00");r=Math.round(r*255).toString(16);r=(r.length==2)?r:((r.length==1)?"0"+r:"00");g=Math.round(g*255).toString(16);g=(g.length==2)?g:((g.length==1)?"0"+g:"00");return["#",l,r,g].join("")};JXG.rgb2hsv=function(){var d,m,p,n,e,i,f,q,l,u,t,o,j,k;d=JXG.rgbParser.apply(JXG.rgbParser,arguments);m=d[1];p=d[2];d=d[0];k=JXG.Math.Statistics;n=d/255;e=m/255;i=p/255;o=k.max([d,m,p]);j=k.min([d,m,p]);f=o/255;q=j/255;t=f;u=0;if(t>0){u=(t-q)/(t*1)}l=1/(f-q);if(u>0){if(o==d){l=(e-i)*l}else{if(o==m){l=2+(i-n)*l}else{l=4+(n-e)*l}}}l*=60;if(l<0){l+=360}if(o==j){l=0}return[l,u,t]};JXG.rgb2LMS=function(){var n,k,e,f,d,j,i,h=[[0.05059983,0.08585369,0.0095242],[0.01893033,0.08925308,0.01370054],[0.00292202,0.00975732,0.07145979]];n=JXG.rgbParser.apply(JXG.rgbParser,arguments);k=n[1];e=n[2];n=n[0];n=Math.pow(n,0.476190476);k=Math.pow(k,0.476190476);e=Math.pow(e,0.476190476);f=n*h[0][0]+k*h[0][1]+e*h[0][2];d=n*h[1][0]+k*h[1][1]+e*h[1][2];j=n*h[2][0]+k*h[2][1]+e*h[2][2];i=[f,d,j];i.l=f;i.m=d;i.s=j;return i};JXG.LMS2rgb=function(f,e,o){var d,h,j,i,k=[[30.830854,-29.832659,1.610474],[-6.481468,17.715578,-2.532642],[-0.37569,-1.199062,14.273846]];d=f*k[0][0]+e*k[0][1]+o*k[0][2];h=f*k[1][0]+e*k[1][1]+o*k[1][2];j=f*k[2][0]+e*k[2][1]+o*k[2][2];var n=function(l){var m=127,g=64;while(g>0){if(Math.pow(m,0.476190476)>l){m-=g}else{if(Math.pow(m+1,0.476190476)>l){return m}m+=g}g/=2}if(m==254&&13.994955247>4)&15)+h.charAt(e&15);f="#"+g+""+g+""+g;return f};JXG.rgb2cb=function(i,p){if(i=="none"){return i}var r,h,g,v,q,n,f,u,k,e,t,j,o;q=JXG.rgb2LMS(i);h=q.l;g=q.m;v=q.s;p=p.toLowerCase();switch(p){case"protanopia":f=-0.06150039994295001;u=0.08277001656812001;k=-0.013200141220000003;e=0.05858939668799999;t=-0.07934519995360001;j=0.013289415272000003;o=0.6903216543277437;n=v/g;if(n>4)&15)+d.charAt(r.r&15);i="#"+n;n=d.charAt((r.g>>4)&15)+d.charAt(r.g&15);i+=n;n=d.charAt((r.b>>4)&15)+d.charAt(r.b&15);i+=n;return i};JXG.extend(JXG.Board.prototype,{angle:function(d,f,e){return JXG.Math.Geometry.angle(d,f,e)},rad:function(d,f,e){return JXG.Math.Geometry.rad(d,f,e)},distance:function(e,d){return JXG.Math.Geometry.distance(e,d)},pow:function(e,d){return JXG.Math.pow(e,d)},round:function(d,e){return(d).toFixed(e)},cosh:function(d){return JXG.Math.cosh(d)},sinh:function(d){return JXG.Math.sinh(d)},sgn:function(d){return(d==0?0:d/(Math.abs(d)))},D:function(d,e){return JXG.Math.Numerics.D(d,e)},I:function(d,e){return JXG.Math.Numerics.I(d,e)},root:function(e,d,g){return JXG.Math.Numerics.root(e,d,g)},lagrangePolynomial:function(d){return JXG.Math.Numerics.lagrangePolynomial(d)},neville:function(d){return JXG.Math.Numerics.Neville(d)},riemannsum:function(g,i,e,h,d){return JXG.Math.Numerics.riemannsum(g,i,e,h,d)},abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,random:Math.random,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,trunc:Math.ceil,factorial:function(d){return JXG.Math.factorial(d)},binomial:function(e,d){return JXG.Math.binomial(e,d)},getElement:function(d){return JXG.getReference(this,d)},intersectionOptions:["point",[[JXG.OBJECT_CLASS_LINE,JXG.OBJECT_CLASS_LINE],[JXG.OBJECT_CLASS_LINE,JXG.OBJECT_CLASS_CIRCLE],[JXG.OBJECT_CLASS_CIRCLE,JXG.OBJECT_CLASS_CIRCLE]]],intersection:function(g,e,f,d){g=JXG.getReference(this,g);e=JXG.getReference(this,e);if(g.elementClass==JXG.OBJECT_CLASS_CURVE&&e.elementClass==JXG.OBJECT_CLASS_CURVE){return function(){return JXG.Math.Geometry.meetCurveCurve(g,e,f,d,g.board)}}else{if((g.type==JXG.OBJECT_TYPE_ARC&&e.elementClass==JXG.OBJECT_CLASS_LINE)||(e.type==JXG.OBJECT_TYPE_ARC&&g.elementClass==JXG.OBJECT_CLASS_LINE)){return function(){return JXG.Math.Geometry.meet(g.stdform,e.stdform,f,g.board)}}else{if((g.elementClass==JXG.OBJECT_CLASS_CURVE&&e.elementClass==JXG.OBJECT_CLASS_LINE)||(e.elementClass==JXG.OBJECT_CLASS_CURVE&&g.elementClass==JXG.OBJECT_CLASS_LINE)){return function(){return JXG.Math.Geometry.meetCurveLine(g,e,f,g.board)}}else{return function(){return JXG.Math.Geometry.meet(g.stdform,e.stdform,f,g.board)}}}}},intersectionFunc:function(g,e,f,d){return this.intersection(g,e,f,d)},otherIntersection:function(e,d,f){e=JXG.getReference(this,e);d=JXG.getReference(this,d);return function(){var g=JXG.Math.Geometry.meet(e.stdform,d.stdform,0,e.board);if(Math.abs(f.X()-g.usrCoords[1])>JXG.Math.eps||Math.abs(f.Y()-g.usrCoords[2])>JXG.Math.eps||Math.abs(f.Z()-g.usrCoords[0])>JXG.Math.eps){return g}else{return JXG.Math.Geometry.meet(e.stdform,d.stdform,1,e.board)}}},pointFunc:function(){return[null]},pointOptions:["point",[[JXG.OBJECT_CLASS_POINT]]],lineFunc:function(){return arguments},lineOptions:["line",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT]]],linesegmentFunc:function(){return arguments},linesegmentOptions:["line",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT]]],linesegmentAtts:{straightFirst:false,straightLast:false},arrowFunc:function(){return arguments},arrowOptions:["arrow",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT]]],circleFunc:function(){return arguments},circleOptions:["circle",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT],[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_LINE],[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_CIRCLE]]],arrowparallelOptions:["arrowparallel",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_LINE]]],arrowparallelFunc:function(){return arguments},bisectorOptions:["bisector",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT]]],bisectorFunc:function(){return arguments},circumcircleOptions:["circumcircle",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT]]],circumcircleFunc:function(){return arguments},circumcirclemidpointOptions:["circumcirclemidpoint",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT]]],circumcirclemidpointFunc:function(){return arguments},integralOptions:["integral",[[]]],integralFunc:function(){return arguments},midpointOptions:["midpoint",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT],[JXG.OBJECT_CLASS_LINE]]],midpointFunc:function(){return arguments},mirrorpointOptions:["mirrorpoint",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT]]],mirrorpointFunc:function(){return arguments},normalOptions:["normal",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_LINE]]],normalFunc:function(){return arguments},parallelOptions:["parallel",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_LINE]]],parallelFunc:function(){return arguments},parallelpointOptions:["parallelpoint",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_POINT]]],parallelpointFunc:function(){return arguments},perpendicularOptions:["perpendicular",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_LINE]]],perpendicularFunc:function(){return arguments},perpendicularpointOptions:["perpendicularpoint",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_LINE]]],perpendicularpointFunc:function(){return arguments},reflectionOptions:["reflection",[[JXG.OBJECT_CLASS_POINT,JXG.OBJECT_CLASS_LINE]]],reflectionFunc:function(){return arguments}});JXG.Point.prototype.setPositionX=function(f,d){var e=(f==JXG.COORDS_BY_USER)?this.coords.usrCoords[2]:this.coords.scrCoords[2];this.setPosition(f,[d,e])};JXG.Point.prototype.setPositionY=function(f,e){var d=(f==JXG.COORDS_BY_USER)?this.coords.usrCoords[1]:this.coords.scrCoords[1];this.setPosition(f,[d,e])};JXG.Ticks=function(d,f,e){this.constructor(d.board,e,JXG.OBJECT_TYPE_TICKS,JXG.OBJECT_CLASS_OTHER);this.line=d;this.board=this.line.board;this.ticksFunction=null;this.fixedTicks=null;this.equidistant=false;if(JXG.isFunction(f)){this.ticksFunction=f;throw new Error("Function arguments are no longer supported.")}else{if(JXG.isArray(f)){this.fixedTicks=f}else{if(Math.abs(f)=C&&this.fixedTicks[K]JXG.Math.eps){N=this._adjustTickDistance(B,s,J,P.coords,p,o);B*=N;n*=N}if(!this.visProp.insertticks){B/=this.visProp.minorticks+1;n/=this.visProp.minorticks+1}this.ticksDelta=B;this.symbTicksDelta=n;T=this.board.getBoundingBox();H=(T[0]+T[2])*0.5;F=(T[1]+T[3])*0.5;M=[H*this.line.stdform[2]-F*this.line.stdform[1],-this.line.stdform[2],this.line.stdform[1]];e=JXG.Math.crossProduct(this.line.stdform,M);e[1]/=e[0];e[2]/=e[0];e[0]=1;w=new JXG.Coords(JXG.COORDS_BY_USER,e.slice(1),this.board);Q=P.coords.distance(JXG.COORDS_BY_USER,w);if((O.X()-P.X())*(e[1]-P.X())<0||(O.Y()-P.Y())*(e[2]-P.Y())<0){Q*=-1}D=Math.round(Q/B)*B;if(Math.abs(D)>JXG.Math.eps){R=Math.abs(D)/D}e[1]=P.coords.usrCoords[1]+p*D;e[2]=P.coords.usrCoords[2]+o*D;q=D;D=0;k=0;r=q/this.visProp.scale;H=e[1];F=e[2];K=0;I=0;do{w=new JXG.Coords(JXG.COORDS_BY_USER,[H,F],this.board);w.major=Math.round((R*D+q)/B)%(this.visProp.minorticks+1)===0;g=this._tickEndings(w,h,A,v,S,w.major);if(g.length==2){z=R*k+r;if((Math.abs(z)<=u&&this.visProp.drawzero)||(z>C&&z0);this.needsUpdate=true;this.updateRenderer()},_adjustTickDistance:function(e,l,k,m,g,d){var i,h,j=1;while(l>4*this.minTicksDistance){j/=10;i=m.usrCoords[1]+g*e*j;h=m.usrCoords[2]+d*e*j;l=m.distance(JXG.COORDS_BY_SCREEN,new JXG.Coords(JXG.COORDS_BY_USER,[i,h],this.board))}while(l=0&&o[1]<=f){j[g]=o[1];h[g]=0;g++}o=JXG.Math.crossProduct([0,1,0],[-d*z[1]-r*z[2],d,r]);o[2]/=o[0];if(o[2]>=0&&o[2]<=m){j[g]=0;h[g]=o[2];g++}if(g<2){o=JXG.Math.crossProduct([m*m,0,-m],[-d*z[1]-r*z[2],d,r]);o[1]/=o[0];if(o[1]>=0&&o[1]<=f){j[g]=o[1];h[g]=m;g++}}if(g<2){o=JXG.Math.crossProduct([f*f,-f,0],[-d*z[1]-r*z[2],d,r]);o[2]/=o[0];if(o[2]>=0&&o[2]<=m){j[g]=f;h[g]=o[2]}}}}if((j[0]>=0&&j[0]<=f&&h[0]>=0&&h[0]<=m)||(j[1]>=0&&j[1]<=f&&h[1]>=0&&h[1]<=m)){n=true}else{n=false}if(w=="finite"){j[0]=z[1]+l;h[0]=z[2]-k;j[1]=z[1]-l;h[1]=z[2]+k}if(n){return[j,h]}else{return[]}},_makeLabel:function(m,d,l,f,e,h){var g,n,k,j=typeof m==="number";if(!f){return null}g=m.toString();if(Math.abs(m)5||g.indexOf("e")!=-1)){g=m.toPrecision(3).toString()}if(j&&g.indexOf(".")>-1){g=g.replace(/0+$/,"");g=g.replace(/\.$/,"")}if(this.visProp.scalesymbol.length>0&&g==="1"){g=this.visProp.scalesymbol}else{if(this.visProp.scalesymbol.length>0&&g==="0"){g="0"}else{g=g+this.visProp.scalesymbol}}k={id:e+h+"Label",isLabel:true,layer:l.options.layer.line,highlightStrokeColor:l.options.text.strokeColor,highlightStrokeWidth:l.options.text.strokeWidth,highlightStrokeOpacity:l.options.text.strokeOpacity,visible:this.visProp.visible,priv:this.visProp.priv};k=JXG.deepCopy(k,this.visProp.label);n=JXG.createText(l,[d.usrCoords[1],d.usrCoords[2],g],k);n.isDraggable=false;n.dump=false;n.distanceX=this.visProp.label.offset[0];n.distanceY=this.visProp.label.offset[1];n.setCoords(d.usrCoords[1]+n.distanceX/(l.unitX),d.usrCoords[2]+n.distanceY/(l.unitY));n.visProp.visible=f;return n},removeTickLabels:function(){var d;if(this.labels!=null){if((this.board.needsFullUpdate||this.needsRegularUpdate)&&!(this.board.options.renderer=="canvas"&&this.board.options.text.display=="internal")){for(d=0;d>=1;if(ae==0){ae=g();ag=(ae&1);ae=(ae>>1)|128}return ag}function W(ag){var ai=0,ah=ag;while(ah--){ai=(ai<<1)|Y()}if(ag){ai=Z[ai]>>(8-ag)}return ai}function f(){aa=0}function A(ag){K++;k[aa++]=ag;p.push(String.fromCharCode(ag));if(aa==32768){aa=0}}function o(){this.b0=0;this.b1=0;this.jump=null;this.jumppos=-1}var h=288;var w=new Array(h);var Q=new Array(32);var L=0;var ab=null;var s=null;var P=new Array(64);var M=new Array(64);var B=0;var F=new Array(17);F[0]=0;var R;var v;function l(){while(1){if(F[B]>=v){return -1}if(R[F[B]]==B){return F[B]++}F[B]++}}function H(){var ah=ab[L];var ag;if(G){document.write("
                len:"+B+" treepos:"+L)}if(B==17){return -1}L++;B++;ag=l();if(G){document.write("
                IsPat "+ag)}if(ag>=0){ah.b0=ag;if(G){document.write("
                b0 "+ah.b0)}}else{ah.b0=32768;if(G){document.write("
                b0 "+ah.b0)}if(H()){return -1}}ag=l();if(ag>=0){ah.b1=ag;if(G){document.write("
                b1 "+ah.b1)}ah.jump=null}else{ah.b1=32768;if(G){document.write("
                b1 "+ah.b1)}ah.jump=ab[L];ah.jumppos=L;if(H()){return -1}}B--;return 0}function n(ak,ai,al,ah){var aj;if(G){document.write("currentTree "+ak+" numval "+ai+" lengths "+al+" show "+ah)}ab=ak;L=0;R=al;v=ai;for(aj=0;aj<17;aj++){F[aj]=0}B=0;if(H()){if(G){alert("invalid huffman tree\n")}return -1}if(G){document.write("
                Tree: "+ab.length);for(var ag=0;ag<32;ag++){document.write("Places["+ag+"].b0="+ab[ag].b0+"
                ");document.write("Places["+ag+"].b1="+ab[ag].b1+"
                ")}}return 0}function E(aj){var ah,ai,al=0,ak=aj[al],ag;while(1){ag=Y();if(G){document.write("b="+ag)}if(ag){if(!(ak.b1&32768)){if(G){document.write("ret1")}return ak.b1}ak=ak.jump;ah=aj.length;for(ai=0;ai>1);if(au>23){au=(au<<1)|Y();if(au>199){au-=128;au=(au<<1)|Y()}else{au-=48;if(au>143){au=au+136}}}else{au+=256}if(au<256){A(au)}else{if(au==256){break}else{var aw,ap;au-=256+1;aw=W(U[au])+ad[au];au=Z[W(5)]>>3;if(C[au]>8){ap=W(8);ap|=(W(C[au]-8)<<8)}else{ap=W(C[au])}ap+=O[au];for(au=0;audistanceTree");for(var ay=0;ay"+Q[ay].b0+" "+Q[ay].b1+" "+Q[ay].jump+" "+Q[ay].jumppos)}}aq=ai+an;av=0;var aj=-1;if(G){document.write("
                n="+aq+" bits: "+d+"
                ")}while(av"+aj+" i:"+av+" decode: "+au+" bits "+d+"
                ")}if(au<16){am[av++]=au}else{if(au==16){var ar;au=3+W(2);if(av+au>aq){f();return 1}ar=av?am[av-1]:0;while(au--){am[av++]=ar}}else{if(au==17){au=3+W(3)}else{au=11+W(7)}if(av+au>aq){f();return 1}while(au--){am[av++]=0}}}}aw=w.length;for(av=0;avliteralTree")}while(1){au=E(w);if(au>=256){var aw,ap;au-=256;if(au==0){break}au--;aw=W(U[au])+ad[au];au=E(Q);if(C[au]>8){ap=W(8);ap|=(W(C[au]-8)<<8)}else{ap=W(C[au])}ap+=O[au];while(aw--){var ax=k[(aa-ap)&32767];A(ax)}}else{A(au)}}}}}}while(!ak);f();r();return 0}JXG.Util.Unzip.prototype.unzipFile=function(ag){var ah;this.unzip();for(ah=0;ah>2;k=((n&3)<<4)|(l>>4);h=((l&15)<<2)|(j>>6);g=j&63;if(isNaN(l)){h=g=64}else{if(isNaN(j)){g=64}}d.push([this._keyStr.charAt(m),this._keyStr.charAt(k),this._keyStr.charAt(h),this._keyStr.charAt(g)].join(""))}return d.join("")},decode:function(g,f){var d=[],o,m,k,n,l,j,h,e=0;g=g.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(e>4);m=((l&15)<<4)|(j>>2);k=((j&3)<<6)|h;d.push(String.fromCharCode(o));if(j!=64){d.push(String.fromCharCode(m))}if(h!=64){d.push(String.fromCharCode(k))}}d=d.join("");if(f){d=JXG.Util.Base64._utf8_decode(d)}return d},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var d="";for(var g=0;g127)&&(f<2048)){d+=String.fromCharCode((f>>6)|192);d+=String.fromCharCode((f&63)|128)}else{d+=String.fromCharCode((f>>12)|224);d+=String.fromCharCode(((f>>6)&63)|128);d+=String.fromCharCode((f&63)|128)}}}return d},_utf8_decode:function(d){var f=[],h=0,j=0,g=0,e=0;while(h191)&&(j<224)){g=d.charCodeAt(h+1);f.push(String.fromCharCode(((j&31)<<6)|(g&63)));h+=2}else{g=d.charCodeAt(h+1);e=d.charCodeAt(h+2);f.push(String.fromCharCode(((j&15)<<12)|((g&63)<<6)|(e&63)));h+=3}}}return f.join("")},_destrip:function(j,g){var e=[],h,f,d=[];if(g==null){g=76}j.replace(/ /g,"");h=j.length/g;for(f=0;f255){switch(f){case 8364:f=128;break;case 8218:f=130;break;case 402:f=131;break;case 8222:f=132;break;case 8230:f=133;break;case 8224:f=134;break;case 8225:f=135;break;case 710:f=136;break;case 8240:f=137;break;case 352:f=138;break;case 8249:f=139;break;case 338:f=140;break;case 381:f=142;break;case 8216:f=145;break;case 8217:f=146;break;case 8220:f=147;break;case 8221:f=148;break;case 8226:f=149;break;case 8211:f=150;break;case 8212:f=151;break;case 732:f=152;break;case 8482:f=153;break;case 353:f=154;break;case 8250:f=155;break;case 339:f=156;break;case 382:f=158;break;case 376:f=159;break;default:break}}return f};JXG.Util.utf8Decode=function(d){var f=[];var h=0;var k=0,j=0,g=0,e;if(!JXG.exists(d)){return""}while(h191)&&(k<224)){g=d.charCodeAt(h+1);f.push(String.fromCharCode(((k&31)<<6)|(g&63)));h+=2}else{g=d.charCodeAt(h+1);e=d.charCodeAt(h+2);f.push(String.fromCharCode(((k&15)<<12)|((g&63)<<6)|(e&63)));h+=3}}}return f.join("")};JXG.Util.genUUID=function(){var h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),f=new Array(36),e=0,g;for(var d=0;d<36;d++){if(d==8||d==13||d==18||d==23){f[d]="-"}else{if(d==14){f[d]="4"}else{if(e<=2){e=33554432+(Math.random()*16777216)|0}g=e&15;e=e>>4;f[d]=h[(d==19)?(g&3)|8:g]}}}return f.join("")};JXG.PsTricks={convert:function(g){var h=new JXG.Coords(JXG.COORDS_BY_SCREEN,[0,0],g),j=new JXG.Coords(JXG.COORDS_BY_SCREEN,[g.canvasWidth,g.canvasHeight],g),e,f,d=[];d.push("\\begin{pspicture*}("+h.usrCoords[1]+","+j.usrCoords[2]+")("+j.usrCoords[1]+","+h.usrCoords[2]+")\n");for(e in g.objects){f=g.objects[e];if(f.visProp.visible){switch(f.elementClass){case JXG.OBJECT_CLASS_CIRCLE:d.push(this.addCircle(f));break;case JXG.OBJECT_CLASS_LINE:d.push(this.addLine(f));break;case JXG.OBJECT_CLASS_POINT:d.push(this.addPoint(f));break;default:switch(f.type){case JXG.OBJECT_TYPE_ARC:d.push(this.addArc(f));break;case JXG.OBJECT_TYPE_SECTOR:d.push(this.addArc(f));d.push(this.addSector(f));break;case JXG.OBJECT_TYPE_POLYGON:d.push(this.addPolygon(f));break;case JXG.OBJECT_TYPE_ANGLE:d.push(this.addAngle(f));break}break}}}d.push("\\end{pspicture*}");return d.join("\n")},setArrows:function(e){var d="";if(e.visProp.firstarrow&&e.visProp.lastarrow){d="{<->}"}else{if(e.visProp.firstarrow){d="{<-}"}else{if(e.visProp.lastarrow){d="{->}"}}}return d},drawWedge:function(f,g,h,e,j,i){var d="";if(f!="none"&&g>0){d+="\\pswedge[linestyle=none, fillstyle=solid, fillcolor="+this.parseColor(f)+", opacity="+g.toFixed(5)+"]";d+="("+h.join(",")+"){"+e+"}{"+j+"}{"+i+"}\n"}return d},addPoint:function(f){var d="\\psdot[linecolor="+this.parseColor(f.visProp.strokecolor)+",dotstyle=",g=f.normalizeFace(f.visProp.face)||"o",e=f.visProp.size>4?4:f.visProp.size,h=[0,0,"2pt 2","5pt 2","5pt 3"];if(g=="x"){d+="x, dotsize="+h[e]}else{if(g=="o"){d+="*, dotsize=";if(e==1){d+="2pt 2"}else{if(e==2){d+="4pt 2"}else{if(e==3){d+="6pt 2"}else{if(e==4){d+="6pt 3"}}}}}else{if(g=="[]"){d+="square*, dotsize="+h[e]}else{if(g=="+"){d+="+, dotsize="+h[e]}}}}d+="]("+f.coords.usrCoords.slice(1).join(",")+")\n";d+="\\rput("+(f.coords.usrCoords[1]+15/f.board.unitY)+","+(f.coords.usrCoords[2]+15/f.board.unitY)+"){\\small $"+f.name+"$}\n";return d},addLine:function(g){var f=new JXG.Coords(JXG.COORDS_BY_USER,g.point1.coords.usrCoords,g.board),e=new JXG.Coords(JXG.COORDS_BY_USER,g.point2.coords.usrCoords,g.board),d="\\psline[linecolor="+this.parseColor(g.visProp.strokecolor)+", linewidth="+g.visProp.strokewidth+"px]";if(g.visProp.straightfirst||g.visProp.straightlast){JXG.Math.Geometry.calcStraight(g,f,e)}d+=this.setArrows(g);d+="("+f.usrCoords.slice(1).join(",")+")("+e.usrCoords.slice(2).join(",")+")\n";return d},addCircle:function(f){var e=f.Radius(),d="\\pscircle[linecolor="+this.parseColor(f.visProp.strokecolor)+", linewidth="+f.visProp.strokewidth+"px";if(f.visProp.fillcolor!="none"&&f.visProp.fillopacity!=0){d+=", fillstyle=solid, fillcolor="+this.parseColor(f.visProp.fillcolor)+", opacity="+f.visProp.fillopacity.toFixed(5)}d+="]("+f.center.coords.usrCoords.slice(1).join("1")+"){"+e+"}\n";return d},addPolygon:function(f){var d="\\pspolygon[linestyle=none, fillstyle=solid, fillcolor="+this.parseColor(f.visProp.fillcolor)+", opacity="+f.visProp.fillopacity.toFixed(5)+"]",e;for(e=0;e0){w=w[0][0]}if(typeof w!="string"){return}q=window.JSON&&window.JSON.parse?window.JSON.parse(w):(new Function("return "+w))();if(q.type=="error"){this.handleError(q)}else{if(q.type=="response"){k=q.id;for(s=0;se){d[f]=parseFloat(this.data[f][e])}}return d},getRow:function(f){var d,e;if(typeof f=="string"){for(e=0;e-1;d--){if(JXG.exists(this.sstack[d][e])){return d}}return -1},isCreator:function(d){return !!JXG.JSXGraph.elements[d]},isMathMethod:function(d){return d!=="E"&&!!Math[d]},isBuiltIn:function(d){return !!this.builtIn[d]},getvar:function(g,d){var f,e;d=JXG.def(d,false);f=this.isLocalVariable(g);if(f>-1){return this.sstack[f][g]}if(this.isCreator(g)){return this.creator(g)}if(this.isMathMethod(g)){return Math[g]}if(this.isBuiltIn(g)){return this.builtIn[g]}if(!d){f=JXG.getRef(this.board,g);if(f!==g){return f}}return e},getvarJS:function(g,d,f){var e;d=JXG.def(d,false);f=JXG.def(f,false);if(JXG.indexOf(this.pstack[this.pscope],g)>-1){return g}e=this.isLocalVariable(g);if(e>-1){return"$jc$.sstack["+e+"]['"+g+"']"}if(this.isCreator(g)){return"(function () { var a = Array.prototype.slice.call(arguments, 0), props = "+(f?"a.pop()":"{}")+"; return $jc$.board.create.apply($jc$.board, ['"+g+"'].concat([a, props])); })"}if(this.isMathMethod(g)){return"Math."+g}if(this.isBuiltIn(g)){return this.builtIn[g].src||this.builtIn[g]}if(!d){if(JXG.isId(this.board,g)){return"$jc$.board.objects['"+g+"']"}else{if(JXG.isName(this.board,g)){return"$jc$.board.elementsByName['"+g+"']"}else{if(JXG.isGroup(this.board,g)){return"$jc$.board.groups['"+g+"']"}}}}return""},setProp:function(h,g,f){var e={},d,i;if(h.elementClass===JXG.OBJECT_CLASS_POINT&&(g==="X"||g==="Y")){g=g.toLowerCase();if(h.isDraggable&&typeof f==="number"){d=g==="x"?f:h.X();i=g==="y"?f:h.Y();h.setPosition(JXG.COORDS_BY_USER,[d,i])}else{if(h.isDraggable&&(typeof f==="function"||typeof f==="string")){d=g==="x"?f:h.coords.usrCoords[1];i=g==="y"?f:h.coords.usrCoords[2];h.addConstraint([d,i])}else{if(!h.isDraggable){d=g==="x"?f:h.XEval.origin;i=g==="y"?f:h.YEval.origin;h.addConstraint([d,i])}}}this.board.update()}else{if(h.type===JXG.OBJECT_TYPE_TEXT&&(g==="X"||g==="Y")){if(typeof f==="number"){h[g]=function(){return f}}else{if(typeof f==="function"){h.isDraggable=false;h[g]=f}else{if(typeof f==="string"){h.isDraggable=false;h[g]=JXG.createFunction(f,this.board,null,true);h[g+"jc"]=f}}}h[g].origin=f;this.board.update()}else{if(h.type&&h.elementClass&&h.visProp){e[g]=f;h.setProperty(e)}else{h[g]=f}}}},utf8_encode:function(e){var d=[],g,f;for(g=0;g0){for(h=0;h"+d.substr(p[h].offset,30)+'<, expecting "'+e[h].join()+'"')}}},snippet:function(i,f,e,h){var j,k,g,d;j="jxg__tmp__intern_"+JXG.Util.genUUID().replace(/\-/g,"");if(!JXG.exists(f)){f=true}if(!JXG.exists(e)){e=""}if(!JXG.exists(h)){h=false}g=this.sstack[0][j];this.countLines=false;k=j+" = "+(f?" function ("+e+") { return ":"")+i+(f?"; }":"")+";";this.parse(k,h);d=this.sstack[0][j];if(JXG.exists(g)){this.sstack[0][j]=g}else{delete this.sstack[0][j]}this.countLines=true;return d},replaceIDs:function(f){var e,d;if(f.replaced){d=this.board.objects[f.children[1].children[0].value];if(JXG.exists(d)&&JXG.exists(d)&&d.name!==""){f.type="node_var";f.value=d.name;f.children.length=0;delete f.replaced}}if(f.children){for(e=f.children.length;e>0;e--){if(JXG.exists(f.children[e-1])){f.children[e-1]=this.replaceIDs(f.children[e-1])}}}return f},replaceNames:function(f){var e,d;d=f.value;if(f.type=="node_op"&&d=="op_lhs"&&f.children.length===1){this.isLHS=true}else{if(f.type=="node_var"){if(this.isLHS){this.letvar(d,true)}else{if(!JXG.exists(this.getvar(d,true))&&JXG.exists(this.board.elementsByName[d])){f=this.createReplacementNode(f)}}}}if(f.children){for(e=f.children.length;e>0;e--){if(JXG.exists(f.children[e-1])){f.children[e-1]=this.replaceNames(f.children[e-1])}}}if(f.type=="node_op"&&f.value=="op_lhs"&&f.children.length===1){this.isLHS=false}return f},createReplacementNode:function(f){var d=f.value,e=this.board.elementsByName[d];f=this.createNode("node_op","op_execfun",this.createNode("node_var","$"),this.createNode("node_op","op_param",this.createNode("node_str",e.id)));f.replaced=true;return f},collectDependencies:function(h,d){var g,f,j;f=h.value;if(h.type=="node_var"){j=this.getvar(f);if(j&&j.visProp&&j.type&&j.elementClass&&j.id){d[j.id]=j}}if(h.type=="node_op"&&h.value=="op_execfun"&&h.children.length>1&&h.children[0].value=="$"&&h.children[1].children.length>0){j=h.children[1].children[0].value;d[j]=this.board.objects[j]}if(h.children){for(g=h.children.length;g>0;g--){if(JXG.exists(h.children[g-1])){this.collectDependencies(h.children[g-1],d)}}}},resolveProperty:function(g,d,f){f=JXG.def(f,false);if(g&&g.methodMap){if(d==="label"){g=g.label;d="content"}else{if(JXG.exists(g.subs)&&JXG.exists(g.subs[d])){g=g.subs}else{if(JXG.exists(g.methodMap[d])){d=g.methodMap[d]}else{g=g.visProp;d=d.toLowerCase()}}}}if(!JXG.exists(g)){this._error(g+" is not an object")}if(!JXG.exists(g[d])){this._error("unknown property "+d)}if(f&&typeof g[d]==="function"){return function(){return g[d].apply(g,arguments)}}return g[d]},execute:function(node){var ret,v,i,e,parents=[];ret=0;if(this.cancel){this._error("Max runtime exceeded")}if(!node){return ret}this.line=node.line;this.col=node.col;switch(node.type){case"node_op":switch(node.value){case"op_none":if(node.children[0]){this.execute(node.children[0])}if(node.children[1]){ret=this.execute(node.children[1])}break;case"op_assign":v=this.execute(node.children[0]);this.lhs[this.scope]=v[1];if(v[0].type&&v[0].elementClass&&v[0].methodMap&&v[1]==="label"){this._error("Left-hand side of assignment is read-only.")}if(v[0]!==this.sstack[this.scope]||(JXG.isArray(v[0])&&typeof v[1]==="number")){this.setProp(v[0],v[1],this.execute(node.children[1]))}else{this.letvar(v[1],this.execute(node.children[1]))}this.lhs[this.scope]=0;break;case"op_noassign":ret=this.execute(node.children[0]);break;case"op_if":if(this.execute(node.children[0])){ret=this.execute(node.children[1])}break;case"op_if_else":if(this.execute(node.children[0])){ret=this.execute(node.children[1])}else{ret=this.execute(node.children[2])}break;case"op_while":while(this.execute(node.children[0])){this.execute(node.children[1])}break;case"op_do":do{this.execute(node.children[0])}while(this.execute(node.children[1]));break;case"op_for":for(this.execute(node.children[0]);this.execute(node.children[1]);this.execute(node.children[2])){this.execute(node.children[3])}break;case"op_param":if(node.children[1]){this.execute(node.children[1])}ret=node.children[0];this.pstack[this.pscope].push(ret);if(this.dpstack[this.pscope]){this.dpstack[this.pscope].push({line:node.children[0].line,col:node.children[0].col})}break;case"op_paramdef":if(node.children[1]){this.execute(node.children[1])}ret=node.children[0];this.pstack[this.pscope].push(ret);break;case"op_proplst":if(node.children[0]){this.execute(node.children[0])}if(node.children[1]){this.execute(node.children[1])}break;case"op_proplst_val":this.propstack.push({});this.propscope++;this.execute(node.children[0]);ret=this.propstack[this.propscope];this.propstack.pop();this.propscope--;break;case"op_prop":this.propstack[this.propscope][node.children[0]]=this.execute(node.children[1]);break;case"op_array":var l;this.pstack.push([]);this.pscope++;this.execute(node.children[0]);ret=[];l=this.pstack[this.pscope].length;for(i=0;ithis.execute(node.children[1]);break;case"op_lot":ret=this.execute(node.children[0])=this.execute(node.children[1]);break;case"op_loe":ret=this.execute(node.children[0])<=this.execute(node.children[1]);break;case"op_or":ret=this.execute(node.children[0])||this.execute(node.children[1]);break;case"op_and":ret=this.execute(node.children[0])&&this.execute(node.children[1]);break;case"op_not":ret=!this.execute(node.children[0]);break;case"op_add":ret=JXG.Math.Statistics.add(this.execute(node.children[0]),this.execute(node.children[1]));break;case"op_sub":ret=JXG.Math.Statistics.subtract(this.execute(node.children[0]),this.execute(node.children[1]));break;case"op_div":ret=JXG.Math.Statistics.div(this.execute(node.children[0]),this.execute(node.children[1]));break;case"op_mod":ret=JXG.Math.Statistics.mod(this.execute(node.children[0]),this.execute(node.children[1]),true);break;case"op_mul":ret=this.mul(this.execute(node.children[0]),this.execute(node.children[1]));break;case"op_exp":ret=Math.pow(this.execute(node.children[0]),this.execute(node.children[1]));break;case"op_neg":ret=this.execute(node.children[0])*-1;break}break;case"node_var":ret=this.getvar(node.value);break;case"node_const":ret=Number(node.value);break;case"node_const_bool":ret=node.value.toLowerCase()!=="false";break;case"node_str":ret=node.value;break}return ret},compile:function(h,k){var f,g,j,d;f="";if(!JXG.exists(k)){k=false}if(!h){return f}switch(h.type){case"node_op":switch(h.value){case"op_none":if(h.children[0]){f=this.compile(h.children[0],k)}if(h.children[1]){f+=this.compile(h.children[1],k)}break;case"op_assign":j=this.compile(h.children[0],k);if(k){if(JXG.isArray(j)){f="$jc$.setProp("+j[0]+", '"+j[1]+"', "+this.compile(h.children[1],k)+");\n"}else{if(this.isLocalVariable(j)!==this.scope){this.sstack[this.scope][j]=true}f="$jc$.sstack["+this.scope+"]['"+j+"'] = "+this.compile(h.children[1],k)+";\n"}}else{f=j+" = "+this.compile(h.children[1],k)+";\n"}break;case"op_noassign":f=this.compile(h.children[0],k)+";\n";break;case"op_if":f=" if ("+this.compile(h.children[0],k)+") "+this.compile(h.children[1],k);break;case"op_if_else":f=" if ("+this.compile(h.children[0],k)+")"+this.compile(h.children[1],k);f+=" else "+this.compile(h.children[2],k);break;case"op_while":f=" while ("+this.compile(h.children[0],k)+") {\n"+this.compile(h.children[1],k)+"}\n";break;case"op_do":f=" do {\n"+this.compile(h.children[0],k)+"} while ("+this.compile(h.children[1],k)+");\n";break;case"op_for":f=" for ("+this.compile(h.children[0],k)+"; "+this.compile(h.children[1],k)+"; "+this.compile(h.children[2],k)+") {\n"+this.compile(h.children[3],k)+"\n}\n";break;case"op_param":if(h.children[1]){f=this.compile(h.children[1],k)+", "}f+=this.compile(h.children[0],k);break;case"op_paramdef":if(h.children[1]){f=this.compile(h.children[1],k)+", "}f+=h.children[0];break;case"op_proplst":if(h.children[0]){f=this.compile(h.children[0],k)+", "}f+=this.compile(h.children[1],k);break;case"op_prop":f=h.children[0]+": "+this.compile(h.children[1],k);break;case"op_proplst_val":f=this.compile(h.children[0],k);break;case"op_array":f="["+this.compile(h.children[0],k)+"]";break;case"op_extvalue":f=this.compile(h.children[0],k)+"["+this.compile(h.children[1],k)+"]";break;case"op_return":f=" return "+this.compile(h.children[0],k)+";\n";break;case"op_function":f=" function ("+this.compile(h.children[0],k)+") {\n"+this.compile(h.children[1],k)+"}";break;case"op_execfun":if(h.children[2]){j=(k?"{":"<<")+this.compile(h.children[2],k)+(k?"}":">>")}h.children[0].withProps=!!h.children[2];f=this.compile(h.children[0],k)+"("+this.compile(h.children[1],k)+(h.children[2]?", "+j:"")+")";if(k&&h.children[0].value==="$"){f="$jc$.board.objects["+this.compile(h.children[1],k)+"]"}break;case"op_property":if(k&&h.children[1]!=="X"&&h.children[1]!=="Y"){f="$jc$.resolveProperty("+this.compile(h.children[0],k)+", '"+h.children[1]+"', true)"}else{f=this.compile(h.children[0],k)+"."+h.children[1]}break;case"op_lhs":if(h.children.length===1){f=h.children[0]}else{if(h.children[2]==="dot"){if(k){f=[this.compile(h.children[1],k),h.children[0]]}else{f=this.compile(h.children[1],k)+"."+h.children[0]}}else{if(h.children[2]==="bracket"){if(k){f=[this.compile(h.children[1],k),this.compile(h.children[0],k)]}else{f=this.compile(h.children[1],k)+"["+this.compile(h.children[0],k)+"]"}}}}break;case"op_use":if(k){f="$jc$.use(JXG.JSXGraph.boards['"+h.children[0]+"'])"}else{f="use "+h.children[0]+";"}break;case"op_delete":f="delete "+h.children[0];break;case"op_equ":f="("+this.compile(h.children[0],k)+" == "+this.compile(h.children[1],k)+")";break;case"op_neq":f="("+this.compile(h.children[0],k)+" != "+this.compile(h.children[1],k)+")";break;case"op_approx":f="("+this.compile(h.children[0],k)+" ~= "+this.compile(h.children[1],k)+")";break;case"op_grt":f="("+this.compile(h.children[0],k)+" > "+this.compile(h.children[1],k)+")";break;case"op_lot":f="("+this.compile(h.children[0],k)+" < "+this.compile(h.children[1],k)+")";break;case"op_gre":f="("+this.compile(h.children[0],k)+" >= "+this.compile(h.children[1],k)+")";break;case"op_loe":f="("+this.compile(h.children[0],k)+" <= "+this.compile(h.children[1],k)+")";break;case"op_or":f="("+this.compile(h.children[0],k)+" || "+this.compile(h.children[1],k)+")";break;case"op_and":f="("+this.compile(h.children[0],k)+" && "+this.compile(h.children[1],k)+")";break;case"op_not":f="!("+this.compile(h.children[0],k)+")";break;case"op_add":if(k){f="JXG.Math.Statistics.add("+this.compile(h.children[0],k)+", "+this.compile(h.children[1],k)+")"}else{f="("+this.compile(h.children[0],k)+" + "+this.compile(h.children[1],k)+")"}break;case"op_sub":if(k){f="JXG.Math.Statistics.subtract("+this.compile(h.children[0],k)+", "+this.compile(h.children[1],k)+")"}else{f="("+this.compile(h.children[0],k)+" - "+this.compile(h.children[1],k)+")"}break;case"op_div":if(k){f="JXG.Math.Statistics.div("+this.compile(h.children[0],k)+", "+this.compile(h.children[1],k)+")"}else{f="("+this.compile(h.children[0],k)+" / "+this.compile(h.children[1],k)+")"}break;case"op_mod":if(k){f="JXG.Math.mod("+this.compile(h.children[0],k)+", "+this.compile(h.children[1],k)+", true)"}else{f="("+this.compile(h.children[0],k)+" % "+this.compile(h.children[1],k)+")"}break;case"op_mul":if(k){f="$jc$.mul("+this.compile(h.children[0],k)+", "+this.compile(h.children[1],k)+")"}else{f="("+this.compile(h.children[0],k)+" * "+this.compile(h.children[1],k)+")"}break;case"op_exp":if(k){f="Math.pow("+this.compile(h.children[0],k)+", "+this.compile(h.children[1],k)+")"}else{f="("+this.compile(h.children[0],k)+"^"+this.compile(h.children[1],k)+")"}break;case"op_neg":f="(-"+this.compile(h.children[0],k)+")";break}break;case"node_var":if(k){f=this.getvarJS(h.value,false,h.withProps)}else{f=h.value}break;case"node_const":f=h.value;break;case"node_const_bool":f=h.value;break;case"node_str":f="'"+h.value.replace(/'/g,"\\'")+"'";break}if(h.needsBrackets){f="{\n"+f+"}\n"}return f},X:function(d){return d.X()},Y:function(d){return d.Y()},V:function(d){return d.Value()},L:function(d){return d.L()},dist:function(e,d){if(!JXG.exists(e)||!JXG.exists(e.Dist)){this._error("Error: Can't calculate distance.")}return e.Dist(d)},mul:function(e,d){if(JXG.isArray(e)*JXG.isArray(d)){return JXG.Math.innerProduct(e,d,Math.min(e.length,d.length))}else{return JXG.Math.Statistics.multiply(e,d)}},use:function(d){this.board=d;this.builtIn["$board"]=d;this.builtIn["$board"].src="$jc$.board"},findSymbol:function(d,g){var f,e;g=JXG.def(g,-1);if(g===-1){g=this.scope}for(f=g;f>=0;f--){for(e in this.sstack[f]){if(this.sstack[f][e]===d){return[e,f]}}}return[]},defineBuiltIn:function(){var d=this,e={PI:Math.PI,EULER:Math.E,X:d.X,Y:d.Y,V:d.V,L:d.L,dist:d.dist,rad:JXG.Math.Geometry.rad,deg:JXG.Math.Geometry.trueAngle,factorial:JXG.Math.factorial,trunc:JXG.trunc,"$":d.getElementById,"$board":d.board};e.rad.sc=JXG.Math.Geometry;e.deg.sc=JXG.Math.Geometry;e.factorial.sc=JXG.Math;e.PI.src="Math.PI";e.EULER.src="Math.E";e.X.src="$jc$.X";e.Y.src="$jc$.Y";e.V.src="$jc$.V";e.L.src="$jc$.L";e.dist.src="$jc$.dist";e.rad.src="JXG.Math.Geometry.rad";e.deg.src="JXG.Math.Geometry.trueAngle";e.factorial.src="JXG.Math.factorial";e.trunc.src="JXG.trunc";e["$"].src="(function (n) { return JXG.getRef($jc$.board, n); })";if(e["$board"]){e["$board"].src="$jc$.board"}return e},_debug:function(d){if(typeof console!=="undefined"){console.log(d)}else{if(document&&document.getElementById("debug")!==null){document.getElementById("debug").innerHTML+=d+"
                "}}},_error:function(f){var d=new Error("Error("+this.line+"): "+f);d.line=this.line;throw d},_warn:function(d){if(typeof console!=="undefined"){console.log("Warning("+this.line+"): "+d)}else{if(document&&document.getElementById(this.warnLog)!==null){document.getElementById(this.warnLog).innerHTML+="Warning("+this.line+"): "+d+"
                "}}},_log:function(d){if(typeof window==="undefined"&&typeof self!=="undefined"&&self.postMessage){self.postMessage({type:"log",msg:"Log: "+d.toString()})}else{console.log("Log: ",arguments)}}});JXG.extend(JXG.JessieCode.prototype,{_lex:function(d){var h,e=-1,g=0,j=0,i,f;while(1){h=0;e=-1;g=0;j=0;i=d.offset+1+(g-j);do{i--;h=0;e=-2;j=i;if(d.src.length<=j){return 67}do{f=d.src.charCodeAt(i);switch(h){case 0:if((f>=9&&f<=10)||f==13||f==32){h=1}else{if(f==33){h=2}else{if(f==35){h=3}else{if(f==36||(f>=65&&f<=67)||(f>=71&&f<=72)||(f>=74&&f<=81)||f==83||f==86||(f>=88&&f<=90)||f==95||(f>=97&&f<=99)||(f>=103&&f<=104)||(f>=106&&f<=113)||f==115||f==118||(f>=120&&f<=122)){h=4}else{if(f==37){h=5}else{if(f==40){h=6}else{if(f==41){h=7}else{if(f==42){h=8}else{if(f==43){h=9}else{if(f==44){h=10}else{if(f==45){h=11}else{if(f==46){h=12}else{if(f==47){h=13}else{if((f>=48&&f<=57)){h=14}else{if(f==58){h=15}else{if(f==59){h=16}else{if(f==60){h=17}else{if(f==61){h=18}else{if(f==62){h=19}else{if(f==91){h=20}else{if(f==93){h=21}else{if(f==94){h=22}else{if(f==123){h=23}else{if(f==124){h=24}else{if(f==125){h=25}else{if(f==38){h=48}else{if(f==68||f==100){h=49}else{if(f==39){h=51}else{if(f==73||f==105){h=52}else{if(f==126){h=53}else{if(f==70||f==102){h=64}else{if(f==85||f==117){h=65}else{if(f==69||f==101){h=73}else{if(f==84||f==116){h=74}else{if(f==87||f==119){h=80}else{if(f==82||f==114){h=84}else{h=-1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}break;case 1:h=-1;e=2;g=i;break;case 2:if(f==61){h=26}else{h=-1}e=31;g=i;break;case 3:h=-1;e=41;g=i;break;case 4:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=45;g=i;break;case 5:h=-1;e=35;g=i;break;case 6:h=-1;e=38;g=i;break;case 7:h=-1;e=39;g=i;break;case 8:h=-1;e=36;g=i;break;case 9:h=-1;e=32;g=i;break;case 10:h=-1;e=40;g=i;break;case 11:h=-1;e=33;g=i;break;case 12:if((f>=48&&f<=57)){h=29}else{h=-1}e=44;g=i;break;case 13:h=-1;e=34;g=i;break;case 14:if((f>=48&&f<=57)){h=14}else{if(f==46){h=29}else{h=-1}}e=47;g=i;break;case 15:h=-1;e=42;g=i;break;case 16:h=-1;e=20;g=i;break;case 17:if(f==60){h=30}else{if(f==61){h=31}else{h=-1}}e=28;g=i;break;case 18:if(f==61){h=32}else{h=-1}e=21;g=i;break;case 19:if(f==61){h=33}else{if(f==62){h=34}else{h=-1}}e=27;g=i;break;case 20:h=-1;e=16;g=i;break;case 21:h=-1;e=17;g=i;break;case 22:h=-1;e=37;g=i;break;case 23:h=-1;e=18;g=i;break;case 24:if(f==124){h=37}else{h=-1}e=43;g=i;break;case 25:h=-1;e=19;g=i;break;case 26:h=-1;e=23;g=i;break;case 27:h=-1;e=30;g=i;break;case 28:h=-1;e=46;g=i;break;case 29:if((f>=48&&f<=57)){h=29}else{h=-1}e=48;g=i;break;case 30:h=-1;e=14;g=i;break;case 31:h=-1;e=25;g=i;break;case 32:h=-1;e=22;g=i;break;case 33:h=-1;e=26;g=i;break;case 34:h=-1;e=15;g=i;break;case 35:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=6;g=i;break;case 36:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=3;g=i;break;case 37:h=-1;e=29;g=i;break;case 38:h=-1;e=24;g=i;break;case 39:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=7;g=i;break;case 40:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=9;g=i;break;case 41:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=4;g=i;break;case 42:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=12;g=i;break;case 43:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=13;g=i;break;case 44:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=5;g=i;break;case 45:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=11;g=i;break;case 46:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=10;g=i;break;case 47:if((f>=48&&f<=57)||(f>=65&&f<=90)||f==95||(f>=97&&f<=122)){h=4}else{h=-1}e=8;g=i;break;case 48:if(f==38){h=27}else{h=-1}break;case 49:if((f>=48&&f<=57)||(f>=65&&f<=68)||(f>=70&&f<=78)||(f>=80&&f<=90)||f==95||(f>=97&&f<=100)||(f>=102&&f<=110)||(f>=112&&f<=122)){h=4}else{if(f==79||f==111){h=35}else{if(f==69||f==101){h=81}else{h=-1}}}e=45;g=i;break;case 50:if(f==39){h=28}else{if((f>=0&&f<=38)||(f>=40&&f<=91)||(f>=93&&f<=254)){h=51}else{if(f==92){h=55}else{h=-1}}}e=46;g=i;break;case 51:if(f==39){h=28}else{if((f>=0&&f<=38)||(f>=40&&f<=91)||(f>=93&&f<=254)){h=51}else{if(f==92){h=55}else{h=-1}}}break;case 52:if((f>=48&&f<=57)||(f>=65&&f<=69)||(f>=71&&f<=90)||f==95||(f>=97&&f<=101)||(f>=103&&f<=122)){h=4}else{if(f==70||f==102){h=36}else{h=-1}}e=45;g=i;break;case 53:if(f==61){h=38}else{h=-1}break;case 54:if((f>=48&&f<=57)||(f>=65&&f<=81)||(f>=83&&f<=90)||f==95||(f>=97&&f<=113)||(f>=115&&f<=122)){h=4}else{if(f==82||f==114){h=39}else{h=-1}}e=45;g=i;break;case 55:if(f==39){h=50}else{if((f>=0&&f<=38)||(f>=40&&f<=91)||(f>=93&&f<=254)){h=51}else{if(f==92){h=55}else{h=-1}}}break;case 56:if((f>=48&&f<=57)||(f>=65&&f<=68)||(f>=70&&f<=90)||f==95||(f>=97&&f<=100)||(f>=102&&f<=122)){h=4}else{if(f==69||f==101){h=40}else{h=-1}}e=45;g=i;break;case 57:if((f>=48&&f<=57)||(f>=65&&f<=68)||(f>=70&&f<=90)||f==95||(f>=97&&f<=100)||(f>=102&&f<=122)){h=4}else{if(f==69||f==101){h=41}else{h=-1}}e=45;g=i;break;case 58:if((f>=48&&f<=57)||(f>=65&&f<=68)||(f>=70&&f<=90)||f==95||(f>=97&&f<=100)||(f>=102&&f<=122)){h=4}else{if(f==69||f==101){h=42}else{h=-1}}e=45;g=i;break;case 59:if((f>=48&&f<=57)||(f>=65&&f<=68)||(f>=70&&f<=90)||f==95||(f>=97&&f<=100)||(f>=102&&f<=122)){h=4}else{if(f==69||f==101){h=43}else{h=-1}}e=45;g=i;break;case 60:if((f>=48&&f<=57)||(f>=65&&f<=68)||(f>=70&&f<=90)||f==95||(f>=97&&f<=100)||(f>=102&&f<=122)){h=4}else{if(f==69||f==101){h=44}else{h=-1}}e=45;g=i;break;case 61:if((f>=48&&f<=57)||(f>=65&&f<=68)||(f>=70&&f<=90)||f==95||(f>=97&&f<=100)||(f>=102&&f<=122)){h=4}else{if(f==69||f==101){h=45}else{h=-1}}e=45;g=i;break;case 62:if((f>=48&&f<=57)||(f>=65&&f<=77)||(f>=79&&f<=90)||f==95||(f>=97&&f<=109)||(f>=111&&f<=122)){h=4}else{if(f==78||f==110){h=46}else{h=-1}}e=45;g=i;break;case 63:if((f>=48&&f<=57)||(f>=65&&f<=77)||(f>=79&&f<=90)||f==95||(f>=97&&f<=109)||(f>=111&&f<=122)){h=4}else{if(f==78||f==110){h=47}else{h=-1}}e=45;g=i;break;case 64:if((f>=48&&f<=57)||(f>=66&&f<=78)||(f>=80&&f<=84)||(f>=86&&f<=90)||f==95||(f>=98&&f<=110)||(f>=112&&f<=116)||(f>=118&&f<=122)){h=4}else{if(f==79||f==111){h=54}else{if(f==65||f==97){h=75}else{if(f==85||f==117){h=86}else{h=-1}}}}e=45;g=i;break;case 65:if((f>=48&&f<=57)||(f>=65&&f<=82)||(f>=84&&f<=90)||f==95||(f>=97&&f<=114)||(f>=116&&f<=122)){h=4}else{if(f==83||f==115){h=56}else{h=-1}}e=45;g=i;break;case 66:if((f>=48&&f<=57)||(f>=65&&f<=82)||(f>=84&&f<=90)||f==95||(f>=97&&f<=114)||(f>=116&&f<=122)){h=4}else{if(f==83||f==115){h=57}else{h=-1}}e=45;g=i;break;case 67:if((f>=48&&f<=57)||(f>=65&&f<=84)||(f>=86&&f<=90)||f==95||(f>=97&&f<=116)||(f>=118&&f<=122)){h=4}else{if(f==85||f==117){h=58}else{h=-1}}e=45;g=i;break;case 68:if((f>=48&&f<=57)||(f>=65&&f<=82)||(f>=84&&f<=90)||f==95||(f>=97&&f<=114)||(f>=116&&f<=122)){h=4}else{if(f==83||f==115){h=59}else{h=-1}}e=45;g=i;break;case 69:if((f>=48&&f<=57)||(f>=65&&f<=75)||(f>=77&&f<=90)||f==95||(f>=97&&f<=107)||(f>=109&&f<=122)){h=4}else{if(f==76||f==108){h=60}else{h=-1}}e=45;g=i;break;case 70:if((f>=48&&f<=57)||(f>=65&&f<=83)||(f>=85&&f<=90)||f==95||(f>=97&&f<=115)||(f>=117&&f<=122)){h=4}else{if(f==84||f==116){h=61}else{h=-1}}e=45;g=i;break;case 71:if((f>=48&&f<=57)||(f>=65&&f<=81)||(f>=83&&f<=90)||f==95||(f>=97&&f<=113)||(f>=115&&f<=122)){h=4}else{if(f==82||f==114){h=62}else{h=-1}}e=45;g=i;break;case 72:if((f>=48&&f<=57)||(f>=65&&f<=78)||(f>=80&&f<=90)||f==95||(f>=97&&f<=110)||(f>=112&&f<=122)){h=4}else{if(f==79||f==111){h=63}else{h=-1}}e=45;g=i;break;case 73:if((f>=48&&f<=57)||(f>=65&&f<=75)||(f>=77&&f<=90)||f==95||(f>=97&&f<=107)||(f>=109&&f<=122)){h=4}else{if(f==76||f==108){h=66}else{h=-1}}e=45;g=i;break;case 74:if((f>=48&&f<=57)||(f>=65&&f<=81)||(f>=83&&f<=90)||f==95||(f>=97&&f<=113)||(f>=115&&f<=122)){h=4}else{if(f==82||f==114){h=67}else{h=-1}}e=45;g=i;break;case 75:if((f>=48&&f<=57)||(f>=65&&f<=75)||(f>=77&&f<=90)||f==95||(f>=97&&f<=107)||(f>=109&&f<=122)){h=4}else{if(f==76||f==108){h=68}else{h=-1}}e=45;g=i;break;case 76:if((f>=48&&f<=57)||(f>=65&&f<=72)||(f>=74&&f<=90)||f==95||(f>=97&&f<=104)||(f>=106&&f<=122)){h=4}else{if(f==73||f==105){h=69}else{h=-1}}e=45;g=i;break;case 77:if((f>=48&&f<=57)||(f>=65&&f<=68)||(f>=70&&f<=90)||f==95||(f>=97&&f<=100)||(f>=102&&f<=122)){h=4}else{if(f==69||f==101){h=70}else{h=-1}}e=45;g=i;break;case 78:if((f>=48&&f<=57)||(f>=65&&f<=84)||(f>=86&&f<=90)||f==95||(f>=97&&f<=116)||(f>=118&&f<=122)){h=4}else{if(f==85||f==117){h=71}else{h=-1}}e=45;g=i;break;case 79:if((f>=48&&f<=57)||(f>=65&&f<=72)||(f>=74&&f<=90)||f==95||(f>=97&&f<=104)||(f>=106&&f<=122)){h=4}else{if(f==73||f==105){h=72}else{h=-1}}e=45;g=i;break;case 80:if((f>=48&&f<=57)||(f>=65&&f<=71)||(f>=73&&f<=90)||f==95||(f>=97&&f<=103)||(f>=105&&f<=122)){h=4}else{if(f==72||f==104){h=76}else{h=-1}}e=45;g=i;break;case 81:if((f>=48&&f<=57)||(f>=65&&f<=75)||(f>=77&&f<=90)||f==95||(f>=97&&f<=107)||(f>=109&&f<=122)){h=4}else{if(f==76||f==108){h=77}else{h=-1}}e=45;g=i;break;case 82:if((f>=48&&f<=57)||(f>=65&&f<=83)||(f>=85&&f<=90)||f==95||(f>=97&&f<=115)||(f>=117&&f<=122)){h=4}else{if(f==84||f==116){h=78}else{h=-1}}e=45;g=i;break;case 83:if((f>=48&&f<=57)||(f>=65&&f<=83)||(f>=85&&f<=90)||f==95||(f>=97&&f<=115)||(f>=117&&f<=122)){h=4}else{if(f==84||f==116){h=79}else{h=-1}}e=45;g=i;break;case 84:if((f>=48&&f<=57)||(f>=65&&f<=68)||(f>=70&&f<=90)||f==95||(f>=97&&f<=100)||(f>=102&&f<=122)){h=4}else{if(f==69||f==101){h=82}else{h=-1}}e=45;g=i;break;case 85:if((f>=48&&f<=57)||(f>=65&&f<=66)||(f>=68&&f<=90)||f==95||(f>=97&&f<=98)||(f>=100&&f<=122)){h=4}else{if(f==67||f==99){h=83}else{h=-1}}e=45;g=i;break;case 86:if((f>=48&&f<=57)||(f>=65&&f<=77)||(f>=79&&f<=90)||f==95||(f>=97&&f<=109)||(f>=111&&f<=122)){h=4}else{if(f==78||f==110){h=85}else{h=-1}}e=45;g=i;break}if(h>-1){if(f==10){d.line++;d.column=0;if(this.countLines){this.parCurLine=d.line}}d.column++;if(this.countLines){this.parCurColumn=d.column}}i++}while(h>-1)}while(2>-1&&e==2);if(e>-1){d.att=d.src.substr(j,g-j);d.offset=g;if(e==46){d.att=d.att.substr(1,d.att.length-2);d.att=d.att.replace(/\\\'/g,"'")}}else{d.att=new String();e=-1}break}return e},_parse:function(d,j,g){var s=[],r=[],k=0,p,n,m,f={la:0,act:0,offset:0,src:d,att:"",line:1,column:1,error_step:0};var l=new Array(new Array(0,1),new Array(49,2),new Array(49,0),new Array(51,2),new Array(51,0),new Array(52,3),new Array(52,1),new Array(52,0),new Array(54,3),new Array(54,1),new Array(54,0),new Array(55,3),new Array(56,3),new Array(56,1),new Array(56,0),new Array(57,3),new Array(57,1),new Array(60,3),new Array(50,3),new Array(50,5),new Array(50,3),new Array(50,5),new Array(50,9),new Array(50,3),new Array(50,2),new Array(50,2),new Array(50,2),new Array(50,2),new Array(50,3),new Array(50,1),new Array(59,3),new Array(59,4),new Array(59,1),new Array(53,3),new Array(53,3),new Array(53,3),new Array(53,3),new Array(53,3),new Array(53,3),new Array(53,3),new Array(53,1),new Array(62,3),new Array(62,3),new Array(62,2),new Array(62,1),new Array(61,3),new Array(61,3),new Array(61,1),new Array(63,3),new Array(63,3),new Array(63,3),new Array(63,1),new Array(65,3),new Array(65,1),new Array(64,2),new Array(64,2),new Array(64,1),new Array(58,4),new Array(58,4),new Array(58,5),new Array(58,3),new Array(58,1),new Array(66,1),new Array(66,1),new Array(66,1),new Array(66,3),new Array(66,1),new Array(66,7),new Array(66,3),new Array(66,3),new Array(66,1),new Array(66,1));var h=new Array(new Array(),new Array(3,3,5,4,6,5,7,6,9,7,11,8,10,9,18,12,20,13,45,17,31,18,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30,33,32,32,33),new Array(),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(3,3,5,4,6,5,7,6,9,7,11,8,10,9,18,12,20,13,45,17,31,18,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30,33,32,32,33),new Array(38,40),new Array(45,41),new Array(45,42),new Array(3,3,5,4,6,5,7,6,9,7,11,8,10,9,18,12,20,13,45,17,31,18,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30,33,32,32,33),new Array(20,44),new Array(24,45,23,46,26,47,25,48,27,49,28,50,22,51,20,52),new Array(),new Array(),new Array(21,54),new Array(30,55,29,56),new Array(44,57,38,58,16,59,37,60),new Array(21,-32),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(32,62,33,63),new Array(),new Array(35,64,34,65,36,66),new Array(),new Array(),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(),new Array(38,68),new Array(45,71),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(),new Array(),new Array(),new Array(47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(),new Array(24,45,23,46,26,47,25,48,27,49,28,50,22,51,3,3,5,4,6,5,7,6,9,7,11,8,10,9,18,12,20,13,45,17,31,18,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30,33,32,32,33),new Array(44,77,38,58,16,78,37,60),new Array(),new Array(24,45,23,46,26,47,25,48,27,49,28,50,22,51,3,3,5,4,6,5,7,6,9,7,11,8,10,9,18,12,20,13,45,17,31,18,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30,33,32,32,33),new Array(5,80),new Array(45,17,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(20,83),new Array(),new Array(),new Array(),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(),new Array(19,91,3,3,5,4,6,5,7,6,9,7,11,8,10,9,18,12,20,13,45,17,31,18,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30,33,32,32,33),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(45,96),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(30,55,29,56),new Array(33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(39,105,24,45,23,46,26,47,25,48,27,49,28,50,22,51),new Array(45,107),new Array(15,108,40,109),new Array(),new Array(42,110),new Array(17,111,40,112),new Array(24,45,23,46,26,47,25,48,27,49,28,50,22,51),new Array(),new Array(),new Array(4,113),new Array(45,114),new Array(33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(20,117),new Array(44,57,38,58,16,59),new Array(),new Array(30,55,29,56),new Array(30,55,29,56),new Array(30,55,29,56),new Array(30,55,29,56),new Array(30,55,29,56),new Array(30,55,29,56),new Array(30,55,29,56),new Array(),new Array(),new Array(24,45,23,46,26,47,25,48,27,49,28,50,22,51),new Array(32,62,33,63),new Array(32,62,33,63),new Array(21,-30),new Array(39,118,40,112),new Array(17,119,32,62,33,63),new Array(),new Array(35,64,34,65,36,66),new Array(35,64,34,65,36,66),new Array(),new Array(),new Array(),new Array(),new Array(39,120,40,121),new Array(),new Array(),new Array(45,71),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(3,3,5,4,6,5,7,6,9,7,11,8,10,9,18,12,20,13,45,17,31,18,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30,33,32,32,33),new Array(),new Array(17,126,32,62,33,63),new Array(24,45,23,46,26,47,25,48,27,49,28,50,22,51,20,127),new Array(31,18,33,32,32,33,47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(21,-31),new Array(18,131),new Array(45,132),new Array(),new Array(24,45,23,46,26,47,25,48,27,49,28,50,22,51),new Array(24,45,23,46,26,47,25,48,27,49,28,50,22,51),new Array(),new Array(),new Array(),new Array(24,45,23,46,26,47,25,48,27,49,28,50,22,51,20,133),new Array(40,134),new Array(44,77,38,58,16,78),new Array(),new Array(),new Array(45,17,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(47,22,48,23,45,37,38,24,46,25,8,26,14,27,16,28,12,29,13,30),new Array(19,138,3,3,5,4,6,5,7,6,9,7,11,8,10,9,18,12,20,13,45,17,31,18,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30,33,32,32,33),new Array(39,139),new Array(44,77,38,58,16,78),new Array(),new Array(3,3,5,4,6,5,7,6,9,7,11,8,10,9,18,12,20,13,45,17,31,18,47,22,48,23,38,24,46,25,8,26,14,27,16,28,12,29,13,30,33,32,32,33),new Array());var e=new Array(new Array(49,1),new Array(50,2,60,10,53,11,59,14,62,15,58,16,61,19,66,20,63,21,64,31,65,34),new Array(),new Array(53,35,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(53,38,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(50,39,60,10,53,11,59,14,62,15,58,16,61,19,66,20,63,21,64,31,65,34),new Array(),new Array(),new Array(),new Array(50,43,60,10,53,11,59,14,62,15,58,16,61,19,66,20,63,21,64,31,65,34),new Array(),new Array(),new Array(51,53),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(62,61,61,19,63,21,64,31,65,34,58,36,66,20),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(53,67,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(),new Array(),new Array(54,69,55,70),new Array(52,72,53,73,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(),new Array(),new Array(),new Array(65,74,58,36,66,20),new Array(65,75,58,36,66,20),new Array(),new Array(50,76,60,10,53,11,59,14,62,15,58,16,61,19,66,20,63,21,64,31,65,34),new Array(),new Array(),new Array(50,79,60,10,53,11,59,14,62,15,58,16,61,19,66,20,63,21,64,31,65,34),new Array(),new Array(60,81,59,14,58,82,66,20),new Array(),new Array(),new Array(),new Array(),new Array(62,84,61,19,63,21,64,31,65,34,58,36,66,20),new Array(62,85,61,19,63,21,64,31,65,34,58,36,66,20),new Array(62,86,61,19,63,21,64,31,65,34,58,36,66,20),new Array(62,87,61,19,63,21,64,31,65,34,58,36,66,20),new Array(62,88,61,19,63,21,64,31,65,34,58,36,66,20),new Array(62,89,61,19,63,21,64,31,65,34,58,36,66,20),new Array(62,90,61,19,63,21,64,31,65,34,58,36,66,20),new Array(),new Array(50,92,60,10,53,11,59,14,62,15,58,16,61,19,66,20,63,21,64,31,65,34),new Array(53,93,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(61,94,63,21,64,31,65,34,58,36,66,20),new Array(61,95,63,21,64,31,65,34,58,36,66,20),new Array(),new Array(52,97,53,73,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(61,98,63,21,64,31,65,34,58,36,66,20),new Array(65,99,58,36,66,20),new Array(),new Array(63,100,64,31,65,34,58,36,66,20),new Array(63,101,64,31,65,34,58,36,66,20),new Array(64,102,65,34,58,36,66,20),new Array(64,103,65,34,58,36,66,20),new Array(64,104,65,34,58,36,66,20),new Array(),new Array(56,106),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(61,115,63,21,64,31,65,34,58,36,66,20),new Array(),new Array(53,116,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(55,122),new Array(53,123,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(),new Array(53,124,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(50,125,60,10,53,11,59,14,62,15,58,16,61,19,66,20,63,21,64,31,65,34),new Array(),new Array(),new Array(),new Array(53,128,62,15,61,19,63,21,64,31,65,34,58,36,66,20),new Array(57,129,58,130,66,20),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(51,135),new Array(),new Array(60,136,59,14,58,82,66,20),new Array(58,137,66,20),new Array(50,92,60,10,53,11,59,14,62,15,58,16,61,19,66,20,63,21,64,31,65,34),new Array(),new Array(),new Array(),new Array(50,140,60,10,53,11,59,14,62,15,58,16,61,19,66,20,63,21,64,31,65,34),new Array());var q=new Array(2,0,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,29,-1,40,53,64,-1,44,61,47,62,63,-1,66,-1,10,7,70,71,51,-1,-1,56,-1,53,64,-1,-1,-1,-1,24,25,26,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,7,-1,-1,43,-1,-1,-1,-1,-1,-1,14,-1,9,-1,-1,6,54,55,18,-1,-1,20,-1,-1,-1,23,39,38,37,36,35,34,33,28,3,17,42,41,60,-1,-1,52,46,45,50,49,48,65,-1,13,68,-1,-1,69,-1,-1,60,-1,-1,-1,58,57,-1,-1,8,11,5,19,57,21,-1,59,16,4,12,-1,-1,-1,-1,15,67,-1,22);var o=new Array("Program'","ERROR_RESYNC","WHITESPACE","IF","ELSE","WHILE","DO","FOR","FUNCTION","USE","RETURN","DELETE","TRUE","FALSE","<<",">>","[","]","{","}",";","=","==","!=","~=","<=",">=",">","<","||","&&","!","+","-","/","%","*","^","(",")",",","#",":","|",".","Identifier","String","Integer","Float","Program","Stmt","Stmt_List","Param_List","Expression","Prop_List","Prop","Param_Def_List","Attr_List","ExtValue","Lhs","Assign","AddSubExp","LogExp","MulDivExp","NegExp","ExpExp","Value","$");if(!j){j=[]}if(!g){g=[]}s.push(0);r.push(0);f.la=this._lex(f);while(true){f.act=142;for(m=0;m1&&f.act==142){s.pop();r.pop();for(m=0;m1&&f.act!=142){while(f.la!=67){f.act=142;for(m=0;m0){s.push(f.act);r.push(f.att);f.la=this._lex(f);if(f.error_step>0){f.error_step--}}else{p=f.act*-1;n=void (0);switch(p){case 0:n=r[r.length-1];break;case 1:this.execute(r[r.length-1]);break;case 2:n=r[r.length-0];break;case 3:n=this.createNode("node_op","op_none",r[r.length-2],r[r.length-1]);break;case 4:n=r[r.length-0];break;case 5:n=this.createNode("node_op","op_param",r[r.length-1],r[r.length-3]);break;case 6:n=this.createNode("node_op","op_param",r[r.length-1]);break;case 7:n=r[r.length-0];break;case 8:n=this.createNode("node_op","op_proplst",r[r.length-3],r[r.length-1]);break;case 9:n=r[r.length-1];break;case 10:n=r[r.length-0];break;case 11:n=this.createNode("node_op","op_prop",r[r.length-3],r[r.length-1]);break;case 12:n=this.createNode("node_op","op_paramdef",r[r.length-1],r[r.length-3]);break;case 13:n=this.createNode("node_op","op_paramdef",r[r.length-1]);break;case 14:n=r[r.length-0];break;case 15:n=this.createNode("node_op","op_param",r[r.length-1],r[r.length-3]);break;case 16:n=this.createNode("node_op","op_param",r[r.length-1]);break;case 17:n=this.createNode("node_op","op_assign",r[r.length-3],r[r.length-1]);break;case 18:n=this.createNode("node_op","op_if",r[r.length-2],r[r.length-1]);break;case 19:n=this.createNode("node_op","op_if_else",r[r.length-4],r[r.length-3],r[r.length-1]);break;case 20:n=this.createNode("node_op","op_while",r[r.length-2],r[r.length-1]);break;case 21:n=this.createNode("node_op","op_do",r[r.length-4],r[r.length-2]);break;case 22:n=this.createNode("node_op","op_for",r[r.length-7],r[r.length-5],r[r.length-3],r[r.length-1]);break;case 23:n=this.createNode("node_op","op_use",r[r.length-2]);break;case 24:n=this.createNode("node_op","op_delete",r[r.length-1]);break;case 25:n=this.createNode("node_op","op_return",r[r.length-1]);break;case 26:n=r[r.length-2];break;case 27:n=this.createNode("node_op","op_noassign",r[r.length-2]);break;case 28:n=r[r.length-2];n.needsBrackets=true;break;case 29:n=this.createNode("node_op","op_none");break;case 30:n=this.createNode("node_op","op_lhs",r[r.length-1],r[r.length-3],"dot");break;case 31:n=this.createNode("node_op","op_lhs",r[r.length-2],r[r.length-4],"bracket");break;case 32:n=this.createNode("node_op","op_lhs",r[r.length-1]);break;case 33:n=this.createNode("node_op","op_equ",r[r.length-3],r[r.length-1]);break;case 34:n=this.createNode("node_op","op_lot",r[r.length-3],r[r.length-1]);break;case 35:n=this.createNode("node_op","op_grt",r[r.length-3],r[r.length-1]);break;case 36:n=this.createNode("node_op","op_loe",r[r.length-3],r[r.length-1]);break;case 37:n=this.createNode("node_op","op_gre",r[r.length-3],r[r.length-1]);break;case 38:n=this.createNode("node_op","op_neq",r[r.length-3],r[r.length-1]);break;case 39:n=this.createNode("node_op","op_approx",r[r.length-3],r[r.length-1]);break;case 40:n=r[r.length-1];break;case 41:n=this.createNode("node_op","op_or",r[r.length-3],r[r.length-1]);break;case 42:n=this.createNode("node_op","op_and",r[r.length-3],r[r.length-1]);break;case 43:n=this.createNode("node_op","op_not",r[r.length-1]);break;case 44:n=r[r.length-1];break;case 45:n=this.createNode("node_op","op_sub",r[r.length-3],r[r.length-1]);break;case 46:n=this.createNode("node_op","op_add",r[r.length-3],r[r.length-1]);break;case 47:n=r[r.length-1];break;case 48:n=this.createNode("node_op","op_mul",r[r.length-3],r[r.length-1]);break;case 49:n=this.createNode("node_op","op_div",r[r.length-3],r[r.length-1]);break;case 50:n=this.createNode("node_op","op_mod",r[r.length-3],r[r.length-1]);break;case 51:n=r[r.length-1];break;case 52:n=this.createNode("node_op","op_exp",r[r.length-3],r[r.length-1]);break;case 53:n=r[r.length-1];break;case 54:n=this.createNode("node_op","op_neg",r[r.length-1]);break;case 55:n=r[r.length-1];break;case 56:n=r[r.length-1];break;case 57:n=this.createNode("node_op","op_extvalue",r[r.length-4],r[r.length-2]);break;case 58:n=this.createNode("node_op","op_execfun",r[r.length-4],r[r.length-2]);break;case 59:n=this.createNode("node_op","op_execfun",r[r.length-5],r[r.length-3],r[r.length-1],true);break;case 60:n=this.createNode("node_op","op_property",r[r.length-3],r[r.length-1]);break;case 61:n=r[r.length-1];break;case 62:n=this.createNode("node_const",r[r.length-1]);break;case 63:n=this.createNode("node_const",r[r.length-1]);break;case 64:n=this.createNode("node_var",r[r.length-1]);break;case 65:n=r[r.length-2];break;case 66:n=this.createNode("node_str",r[r.length-1]);break;case 67:n=this.createNode("node_op","op_function",r[r.length-5],r[r.length-2]);break;case 68:n=this.createNode("node_op","op_proplst_val",r[r.length-2]);break;case 69:n=this.createNode("node_op","op_array",r[r.length-2]);break;case 70:n=this.createNode("node_const_bool",r[r.length-1]);break;case 71:n=this.createNode("node_const_bool",r[r.length-1]);break}for(m=0;m> "}}else{return"null"}case"string":return"'"+g.replace(/(["'])/g,"\\$1")+"'";case"number":case"boolean":return new String(g);case"null":return"null"}},toJessie:function(f){var g=this.dump(f),d=[],e;for(e=0;e0){d.push("// "+g[e].attributes.name)}d.push("s"+e+" = "+g[e].type+"("+g[e].parents.join(", ")+") "+this.toJSAN(g[e].attributes).replace(/\n/,"\\n")+";");d.push("")}return d.join("\n")},toJavaScript:function(f){var g=this.dump(f),d=[],e;for(e=0;e0){e=this.joinTransforms(h,f);g=[e[1][1],e[2][1],e[1][2],e[2][2],e[1][0],e[2][0]].join(",");j+=" matrix("+g+") ";i.setAttributeNS(null,"transform",j)}},updateImageURL:function(e){var d=JXG.evaluate(e.url);e.rendNode.setAttributeNS(this.xlinkNamespace,"xlink:href",d)},appendChildPrim:function(d,e){if(!JXG.exists(e)){e=0}else{if(e>=JXG.Options.layer.numlayers){e=JXG.Options.layer.numlayers-1}}this.layer[e].appendChild(d)},appendNodesToElement:function(d){d.rendNode=this.getElementById(d.id)},createPrim:function(d,f){var e=this.container.ownerDocument.createElementNS(this.svgNamespace,d);e.setAttributeNS(null,"id",this.container.id+"_"+f);e.style.position="absolute";if(d==="path"){e.setAttributeNS(null,"stroke-linecap","butt");e.setAttributeNS(null,"stroke-linejoin","round")}return e},remove:function(d){if(JXG.exists(d)&&JXG.exists(d.parentNode)){d.parentNode.removeChild(d)}},makeArrows:function(e){var d;if(e.visPropOld.firstarrow===e.visProp.firstarrow&&e.visPropOld.lastarrow===e.visProp.lastarrow){return}if(e.visProp.firstarrow){d=e.rendNodeTriangleStart;if(!JXG.exists(d)){d=this._createArrowHead(e,"End");this.defs.appendChild(d);e.rendNodeTriangleStart=d;e.rendNode.setAttributeNS(null,"marker-start","url(#"+this.container.id+"_"+e.id+"TriangleEnd)")}else{this.defs.appendChild(d)}}else{d=e.rendNodeTriangleStart;if(JXG.exists(d)){this.remove(d)}}if(e.visProp.lastarrow){d=e.rendNodeTriangleEnd;if(!JXG.exists(d)){d=this._createArrowHead(e,"Start");this.defs.appendChild(d);e.rendNodeTriangleEnd=d;e.rendNode.setAttributeNS(null,"marker-end","url(#"+this.container.id+"_"+e.id+"TriangleStart)")}else{this.defs.appendChild(d)}}else{d=e.rendNodeTriangleEnd;if(JXG.exists(d)){this.remove(d)}}e.visPropOld.firstarrow=e.visProp.firstarrow;e.visPropOld.lastarrow=e.visProp.lastarrow},updateEllipsePrim:function(e,d,h,g,f){e.setAttributeNS(null,"cx",d);e.setAttributeNS(null,"cy",h);e.setAttributeNS(null,"rx",Math.abs(g));e.setAttributeNS(null,"ry",Math.abs(f))},updateLinePrim:function(h,e,d,g,f){if(!isNaN(e+d+g+f)){h.setAttributeNS(null,"x1",e);h.setAttributeNS(null,"y1",d);h.setAttributeNS(null,"x2",g);h.setAttributeNS(null,"y2",f)}},updatePathPrim:function(d,e){if(e==""){e="M 0 0"}d.setAttributeNS(null,"d",e)},updatePathStringPoint:function(h,e,g){var f="",j=h.coords.scrCoords,i=e*Math.sqrt(3)*0.5,d=e*0.5;if(g==="x"){f=" M "+(j[1]-e)+" "+(j[2]-e)+" L "+(j[1]+e)+" "+(j[2]+e)+" M "+(j[1]+e)+" "+(j[2]-e)+" L "+(j[1]-e)+" "+(j[2]+e)}else{if(g==="+"){f=" M "+(j[1]-e)+" "+(j[2])+" L "+(j[1]+e)+" "+(j[2])+" M "+(j[1])+" "+(j[2]-e)+" L "+(j[1])+" "+(j[2]+e)}else{if(g==="<>"){f=" M "+(j[1]-e)+" "+(j[2])+" L "+(j[1])+" "+(j[2]+e)+" L "+(j[1]+e)+" "+(j[2])+" L "+(j[1])+" "+(j[2]-e)+" Z "}else{if(g==="^"){f=" M "+(j[1])+" "+(j[2]-e)+" L "+(j[1]-i)+" "+(j[2]+d)+" L "+(j[1]+i)+" "+(j[2]+d)+" Z "}else{if(g==="v"){f=" M "+(j[1])+" "+(j[2]+e)+" L "+(j[1]-i)+" "+(j[2]-d)+" L "+(j[1]+i)+" "+(j[2]-d)+" Z "}else{if(g===">"){f=" M "+(j[1]+e)+" "+(j[2])+" L "+(j[1]-d)+" "+(j[2]-i)+" L "+(j[1]-d)+" "+(j[2]+i)+" Z "}else{if(g==="<"){f=" M "+(j[1]-e)+" "+(j[2])+" L "+(j[1]+d)+" "+(j[2]-i)+" L "+(j[1]+d)+" "+(j[2]+i)+" Z "}}}}}}}return f},updatePathStringPrim:function(d){var f=" M ",g=" L ",m=" C ",e=f,n=5000,j="",h,l,o=(d.visProp.curvetype!=="plot"),k;if(d.numberPoints<=0){return""}k=Math.min(d.points.length,d.numberPoints);if(d.bezierDegree==1){if(o&&d.board.options.curve.RDPsmoothing){d.points=JXG.Math.Numerics.RamerDouglasPeuker(d.points,0.5)}for(h=0;hn){l[1]=n}else{if(l[1]<-n){l[1]=-n}}if(l[2]>n){l[2]=n}else{if(l[2]<-n){l[2]=-n}}j+=e+l[1]+" "+l[2];e=g}}}else{if(d.bezierDegree==3){h=0;while(ht){r[1]=t}else{if(r[1]<-t){r[1]=-t}}if(r[2]>t){r[2]=t}else{if(r[2]<-t){r[2]=-t}}if(h==k){o+=[h,r[1]+0*q*(2*m*Math.random()-m)," ",r[2]+0*q*(2*m*Math.random()-m)].join("")}else{o+=[h,(g+(r[1]-g)*0.333+q*(2*m*Math.random()-m))," ",(d+(r[2]-d)*0.333+q*(2*m*Math.random()-m))," ",(g+2*(r[1]-g)*0.333+q*(2*m*Math.random()-m))," ",(d+2*(r[2]-d)*0.333+q*(2*m*Math.random()-m))," ",r[1]," ",r[2]].join("")}h=l;g=r[1];d=r[2]}}}return o},updatePolygonPrim:function(h,g){var j="",e,f,d=g.vertices.length;h.setAttributeNS(null,"stroke","none");for(f=0;f0){e.setAttributeNS(null,"stroke-dasharray",this.dashArray[f-1])}else{if(e.hasAttributeNS(null,"stroke-dasharray")){e.removeAttributeNS(null,"stroke-dasharray")}}},setGradient:function(f){var n=f.rendNode,g,i,h,m,l,e,d,k,j;i=JXG.evaluate(f.visProp.fillopacity);i=(i>0)?i:0;g=JXG.evaluate(f.visProp.fillcolor);if(f.visProp.gradient==="linear"){h=this.createPrim("linearGradient",f.id+"_gradient");e="0%";d="100%";k="0%";j="0%";h.setAttributeNS(null,"x1",e);h.setAttributeNS(null,"x2",d);h.setAttributeNS(null,"y1",k);h.setAttributeNS(null,"y2",j);m=this.createPrim("stop",f.id+"_gradient1");m.setAttributeNS(null,"offset","0%");m.setAttributeNS(null,"style","stop-color:"+g+";stop-opacity:"+i);l=this.createPrim("stop",f.id+"_gradient2");l.setAttributeNS(null,"offset","100%");l.setAttributeNS(null,"style","stop-color:"+f.visProp.gradientsecondcolor+";stop-opacity:"+f.visProp.gradientsecondopacity);h.appendChild(m);h.appendChild(l);this.defs.appendChild(h);n.setAttributeNS(null,"style","fill:url(#"+this.container.id+"_"+f.id+"_gradient)");f.gradNode1=m;f.gradNode2=l}else{if(f.visProp.gradient==="radial"){h=this.createPrim("radialGradient",f.id+"_gradient");h.setAttributeNS(null,"cx","50%");h.setAttributeNS(null,"cy","50%");h.setAttributeNS(null,"r","50%");h.setAttributeNS(null,"fx",f.visProp.gradientpositionx*100+"%");h.setAttributeNS(null,"fy",f.visProp.gradientpositiony*100+"%");m=this.createPrim("stop",f.id+"_gradient1");m.setAttributeNS(null,"offset","0%");m.setAttributeNS(null,"style","stop-color:"+f.visProp.gradientsecondcolor+";stop-opacity:"+f.visProp.gradientsecondopacity);l=this.createPrim("stop",f.id+"_gradient2");l.setAttributeNS(null,"offset","100%");l.setAttributeNS(null,"style","stop-color:"+g+";stop-opacity:"+i);h.appendChild(m);h.appendChild(l);this.defs.appendChild(h);n.setAttributeNS(null,"style","fill:url(#"+this.container.id+"_"+f.id+"_gradient)");f.gradNode1=m;f.gradNode2=l}else{n.removeAttributeNS(null,"style")}}},updateGradient:function(g){var e=g.gradNode1,d=g.gradNode2,f,h;if(!JXG.exists(e)||!JXG.exists(d)){return}h=JXG.evaluate(g.visProp.fillopacity);h=(h>0)?h:0;f=JXG.evaluate(g.visProp.fillcolor);if(g.visProp.gradient==="linear"){e.setAttributeNS(null,"style","stop-color:"+f+";stop-opacity:"+h);d.setAttributeNS(null,"style","stop-color:"+g.visProp.gradientsecondcolor+";stop-opacity:"+g.visProp.gradientsecondopacity)}else{if(g.visProp.gradient==="radial"){e.setAttributeNS(null,"style","stop-color:"+g.visProp.gradientsecondcolor+";stop-opacity:"+g.visProp.gradientsecondopacity);d.setAttributeNS(null,"style","stop-color:"+f+";stop-opacity:"+h)}}},setObjectFillColor:function(e,h,j){var f,g=JXG.evaluate(h),k,l,d=JXG.evaluate(j),i;d=(d>0)?d:0;if(e.visPropOld.fillcolor===g&&e.visPropOld.fillopacity===d){return}if(JXG.exists(g)&&g!==false){if(g.length!=9){k=g;i=d}else{l=JXG.rgba2rgbo(g);k=l[0];i=d*l[1]}f=e.rendNode;f.setAttributeNS(null,"fill",k);if(e.type===JXG.OBJECT_TYPE_IMAGE){f.setAttributeNS(null,"opacity",i)}else{f.setAttributeNS(null,"fill-opacity",i)}if(JXG.exists(e.visProp.gradient)){this.updateGradient(e)}}e.visPropOld.fillcolor=g;e.visPropOld.fillopacity=d},setObjectStrokeColor:function(e,h,i){var g=JXG.evaluate(h),k,l,d=JXG.evaluate(i),j,f;d=(d>0)?d:0;if(e.visPropOld.strokecolor===g&&e.visPropOld.strokeopacity===d){return}if(JXG.exists(g)&&g!==false){if(g.length!=9){k=g;j=d}else{l=JXG.rgba2rgbo(g);k=l[0];j=d*l[1]}f=e.rendNode;if(e.type===JXG.OBJECT_TYPE_TEXT){if(e.visProp.display==="html"){f.style.color=k;f.style.opacity=j}else{f.setAttributeNS(null,"style","fill:"+k);f.setAttributeNS(null,"style","fill-opacity:"+j)}}else{f.setAttributeNS(null,"stroke",k);f.setAttributeNS(null,"stroke-opacity",j)}if(e.type===JXG.OBJECT_TYPE_ARROW){this._setArrowAtts(e.rendNodeTriangle,k,j,e.visProp.strokewidth)}else{if(e.elementClass===JXG.OBJECT_CLASS_CURVE||e.elementClass===JXG.OBJECT_CLASS_LINE){if(e.visProp.firstarrow){this._setArrowAtts(e.rendNodeTriangleStart,k,j,e.visProp.strokewidth)}if(e.visProp.lastarrow){this._setArrowAtts(e.rendNodeTriangleEnd,k,j,e.visProp.strokewidth)}}}}e.visPropOld.strokecolor=g;e.visPropOld.strokeopacity=d},setObjectStrokeWidth:function(f,e){var d=JXG.evaluate(e),g;if(f.visPropOld.strokewidth===d){return}g=f.rendNode;this.setPropertyPrim(g,"stroked","true");if(JXG.exists(d)){this.setPropertyPrim(g,"stroke-width",d+"px");if(f.type===JXG.OBJECT_TYPE_ARROW){this._setArrowAtts(f.rendNodeTriangle,f.visProp.strokecolor,f.visProp.strokeopacity,d)}else{if(f.elementClass===JXG.OBJECT_CLASS_CURVE||f.elementClass===JXG.OBJECT_CLASS_LINE){if(f.visProp.firstarrow){this._setArrowAtts(f.rendNodeTriangleStart,f.visProp.strokecolor,f.visProp.strokeopacity,d)}if(f.visProp.lastarrow){this._setArrowAtts(f.rendNodeTriangleEnd,f.visProp.strokecolor,f.visProp.strokeopacity,d)}}}}f.visPropOld.strokewidth=d},setShadow:function(d){if(d.visPropOld.shadow===d.visProp.shadow){return}if(JXG.exists(d.rendNode)){if(d.visProp.shadow){d.rendNode.setAttributeNS(null,"filter","url(#"+this.container.id+"_f1)")}else{d.rendNode.removeAttributeNS(null,"filter")}}d.visPropOld.shadow=d.visProp.shadow},suspendRedraw:function(){},unsuspendRedraw:function(){},resize:function(d,e){this.svgRoot.style.width=parseFloat(d)+"px";this.svgRoot.style.height=parseFloat(e)+"px"}});JXG.VMLRenderer=function(d){this.type="vml";this.container=d;this.container.style.overflow="hidden";this.container.onselectstart=function(){return false};this.resolution=10;if(!JXG.exists(JXG.vmlStylesheet)){d.ownerDocument.namespaces.add("jxgvml","urn:schemas-microsoft-com:vml");JXG.vmlStylesheet=this.container.ownerDocument.createStyleSheet();JXG.vmlStylesheet.addRule(".jxgvml","behavior:url(#default#VML)")}try{!d.ownerDocument.namespaces.jxgvml&&d.ownerDocument.namespaces.add("jxgvml","urn:schemas-microsoft-com:vml");this.createNode=function(e){return d.ownerDocument.createElement("')}}catch(f){this.createNode=function(e){return d.ownerDocument.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="jxgvml">')}}this.dashArray=["Solid","1 1","ShortDash","Dash","LongDash","ShortDashDot","LongDashDot"]};JXG.VMLRenderer.prototype=new JXG.AbstractRenderer();JXG.extend(JXG.VMLRenderer.prototype,{_setAttr:function(g,f,i,d){try{if(document.documentMode===8){g[f]=i}else{g.setAttribute(f,i,d)}}catch(h){JXG.debug("_setAttr: "+f+" "+i+"
                \n")}},updateTicks:function(h,j,e,k,g){var f=[],l,m,n,o,d=this.resolution;m=h.ticks.length;for(l=0;l0){q=g.rendNode.style.filter.toString();if(!q.match(/DXImageTransform/)){j.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11='1.0', sizingMethod='auto expand') "+q}k=this.joinTransforms(g,r);f[0]=JXG.Math.matVecMult(k,g.coords.scrCoords);f[0][1]/=f[0][0];f[0][2]/=f[0][0];f[1]=JXG.Math.matVecMult(k,[1,g.coords.scrCoords[1]+g.size[0],g.coords.scrCoords[2]]);f[1][1]/=f[1][0];f[1][2]/=f[1][0];f[2]=JXG.Math.matVecMult(k,[1,g.coords.scrCoords[1]+g.size[0],g.coords.scrCoords[2]-g.size[1]]);f[2][1]/=f[2][0];f[2][2]/=f[2][0];f[3]=JXG.Math.matVecMult(k,[1,g.coords.scrCoords[1],g.coords.scrCoords[2]-g.size[1]]);f[3][1]/=f[3][0];f[3][2]/=f[3][0];e=f[0][1];l=f[0][1];d=f[0][2];h=f[0][2];for(n=1;n<4;n++){e=Math.max(e,f[n][1]);l=Math.min(l,f[n][1]);d=Math.max(d,f[n][2]);h=Math.min(h,f[n][2])}j.style.left=parseInt(l)+"px";j.style.top=parseInt(h)+"px";j.filters.item(0).M11=k[1][1];j.filters.item(0).M12=k[1][2];j.filters.item(0).M21=k[2][1];j.filters.item(0).M22=k[2][2]}},updateImageURL:function(e){var d=JXG.evaluate(e.url);this._setAttr(e.rendNode,"src",d)},appendChildPrim:function(d,e){if(!JXG.exists(e)){e=0}d.style.zIndex=e;this.container.appendChild(d)},appendNodesToElement:function(d,e){if(e==="shape"||e==="path"||e==="polygon"){d.rendNodePath=this.getElementById(d.id+"_path")}d.rendNodeFill=this.getElementById(d.id+"_fill");d.rendNodeStroke=this.getElementById(d.id+"_stroke");d.rendNodeShadow=this.getElementById(d.id+"_shadow");d.rendNode=this.getElementById(d.id)},createPrim:function(e,j){var f,d=this.createNode("fill"),i=this.createNode("stroke"),h=this.createNode("shadow"),g;this._setAttr(d,"id",this.container.id+"_"+j+"_fill");this._setAttr(i,"id",this.container.id+"_"+j+"_stroke");this._setAttr(h,"id",this.container.id+"_"+j+"_shadow");if(e==="circle"||e==="ellipse"){f=this.createNode("oval");f.appendChild(d);f.appendChild(i);f.appendChild(h)}else{if(e==="polygon"||e==="path"||e==="shape"||e==="line"){f=this.createNode("shape");f.appendChild(d);f.appendChild(i);f.appendChild(h);g=this.createNode("path");this._setAttr(g,"id",this.container.id+"_"+j+"_path");f.appendChild(g)}else{f=this.createNode(e);f.appendChild(d);f.appendChild(i);f.appendChild(h)}}f.style.position="absolute";f.style.left="0px";f.style.top="0px";this._setAttr(f,"id",this.container.id+"_"+j);return f},remove:function(d){if(JXG.exists(d)){d.removeNode(true)}},makeArrows:function(e){var d;if(e.visPropOld.firstarrow===e.visProp.firstarrow&&e.visPropOld.lastarrow===e.visProp.lastarrow){return}if(e.visProp.firstarrow){d=e.rendNodeStroke;this._setAttr(d,"startarrow","block");this._setAttr(d,"startarrowlength","long")}else{d=e.rendNodeStroke;if(JXG.exists(d)){this._setAttr(d,"startarrow","none")}}if(e.visProp.lastarrow){d=e.rendNodeStroke;this._setAttr(d,"id",this.container.id+"_"+e.id+"stroke");this._setAttr(d,"endarrow","block");this._setAttr(d,"endarrowlength","long")}else{d=e.rendNodeStroke;if(JXG.exists(d)){this._setAttr(d,"endarrow","none")}}e.visPropOld.firstarrow=e.visProp.firstarrow;e.visPropOld.lastarrow=e.visProp.lastarrow},updateEllipsePrim:function(e,d,h,g,f){e.style.left=parseInt(d-g)+"px";e.style.top=parseInt(h-f)+"px";e.style.width=parseInt(Math.abs(g)*2)+"px";e.style.height=parseInt(Math.abs(f)*2)+"px"},updateLinePrim:function(k,e,d,g,f,i){var h,j=this.resolution;if(!isNaN(e+d+g+f)){h=["m ",parseInt(j*e),", ",parseInt(j*d)," l ",parseInt(j*g),", ",parseInt(j*f)];this.updatePathPrim(k,h,i)}},updatePathPrim:function(f,g,e){var d=e.canvasWidth,h=e.canvasHeight;if(g.length<=0){g=["m 0,0"]}f.style.width=d;f.style.height=h;this._setAttr(f,"coordsize",[parseInt(this.resolution*d),parseInt(this.resolution*h)].join(","));this._setAttr(f,"path",g.join(""))},updatePathStringPoint:function(e,k,h){var j=[],f=Math.round,g=e.coords.scrCoords,i=k*Math.sqrt(3)*0.5,l=k*0.5,d=this.resolution;if(h==="x"){j.push([" m ",f(d*(g[1]-k)),", ",f(d*(g[2]-k))," l ",f(d*(g[1]+k)),", ",f(d*(g[2]+k))," m ",f(d*(g[1]+k)),", ",f(d*(g[2]-k))," l ",f(d*(g[1]-k)),", ",f(d*(g[2]+k))].join(""))}else{if(h==="+"){j.push([" m ",f(d*(g[1]-k)),", ",f(d*(g[2]))," l ",f(d*(g[1]+k)),", ",f(d*(g[2]))," m ",f(d*(g[1])),", ",f(d*(g[2]-k))," l ",f(d*(g[1])),", ",f(d*(g[2]+k))].join(""))}else{if(h==="<>"){j.push([" m ",f(d*(g[1]-k)),", ",f(d*(g[2]))," l ",f(d*(g[1])),", ",f(d*(g[2]+k))," l ",f(d*(g[1]+k)),", ",f(d*(g[2]))," l ",f(d*(g[1])),", ",f(d*(g[2]-k))," x e "].join(""))}else{if(h==="^"){j.push([" m ",f(d*(g[1])),", ",f(d*(g[2]-k))," l ",f(d*(g[1]-i)),", ",f(d*(g[2]+l))," l ",f(d*(g[1]+i)),", ",f(d*(g[2]+l))," x e "].join(""))}else{if(h==="v"){j.push([" m ",f(d*(g[1])),", ",f(d*(g[2]+k))," l ",f(d*(g[1]-i)),", ",f(d*(g[2]-l))," l ",f(d*(g[1]+i)),", ",f(d*(g[2]-l))," x e "].join(""))}else{if(h===">"){j.push([" m ",f(d*(g[1]+k)),", ",f(d*(g[2]))," l ",f(d*(g[1]-l)),", ",f(d*(g[2]-i))," l ",f(d*(g[1]-l)),", ",f(d*(g[2]+i))," l ",f(d*(g[1]+k)),", ",f(d*(g[2]))].join(""))}else{if(h==="<"){j.push([" m ",f(d*(g[1]-k)),", ",f(d*(g[2]))," l ",f(d*(g[1]+l)),", ",f(d*(g[2]-i))," l ",f(d*(g[1]+l)),", ",f(d*(g[2]+i))," x e "].join(""))}}}}}}}return j},updatePathStringPrim:function(e){var l=[],k,n,d=this.resolution,j=Math.round,g=" m ",h=" l ",o=" c ",f=g,p=(e.visProp.curvetype!=="plot"),m=Math.min(e.numberPoints,8192);if(e.numberPoints<=0){return""}m=Math.min(m,e.points.length);if(e.bezierDegree==1){if(p&&e.board.options.curve.RDPsmoothing){e.points=JXG.Math.Numerics.RamerDouglasPeuker(e.points,1)}for(k=0;k20000){n[1]=20000}else{if(n[1]<-20000){n[1]=-20000}}if(n[2]>20000){n[2]=20000}else{if(n[2]<-20000){n[2]=-20000}}l.push([f,j(d*n[1]),", ",j(d*n[2])].join(""));f=h}}}else{if(e.bezierDegree==3){k=0;while(k20000){u[1]=20000}else{if(u[1]<-20000){u[1]=-20000}}if(u[2]>20000){u[2]=20000}else{if(u[2]<-20000){u[2]=-20000}}if(h==l){q.push([h,n(d*(u[1]+0*t*(2*o*Math.random()-o)))," ",n(d*(u[2]+0*t*(2*o*Math.random()-o)))].join(""))}else{q.push([h,n(d*(k+(u[1]-k)*0.333+t*(2*o*Math.random()-o)))," ",n(d*(e+(u[2]-e)*0.333+t*(2*o*Math.random()-o)))," ",n(d*(k+2*(u[1]-k)*0.333+t*(2*o*Math.random()-o)))," ",n(d*(e+2*(u[2]-e)*0.333+t*(2*o*Math.random()-o)))," ",n(d*u[1])," ",n(d*u[2])].join(""))}h=m;k=u[1];e=u[2]}}}q.push(" e");return q},updatePolygonPrim:function(h,f){var e,d=f.vertices.length,g=this.resolution,j,k=[];this._setAttr(h,"stroked","false");j=f.vertices[0].coords.scrCoords;if(isNaN(j[1]+j[2])){return}k.push(["m ",parseInt(g*j[1]),",",parseInt(g*j[2])," l "].join(""));for(e=1;e=0){g.style.width=e+"px"}if(f>=0){g.style.height=f+"px"}},setPropertyPrim:function(g,f,h){var e="",d;switch(f){case"stroke":e="strokecolor";break;case"stroke-width":e="strokeweight";break;case"stroke-dasharray":e="dashstyle";break}if(e!==""){d=JXG.evaluate(h);this._setAttr(g,e,d)}},show:function(d){if(d&&d.rendNode){d.rendNode.style.visibility="inherit"}},hide:function(d){if(d&&d.rendNode){d.rendNode.style.visibility="hidden"}},setDashStyle:function(e,d){var f;if(d.dash>=0){f=e.rendNodeStroke;this._setAttr(f,"dashstyle",this.dashArray[d.dash])}},setGradient:function(e){var d=e.rendNodeFill;if(e.visProp.gradient==="linear"){this._setAttr(d,"type","gradient");this._setAttr(d,"color2",e.visProp.gradientsecondcolor);this._setAttr(d,"opacity2",e.visProp.gradientsecondopacity);this._setAttr(d,"angle",e.visProp.gradientangle)}else{if(e.visProp.gradient==="radial"){this._setAttr(d,"type","gradientradial");this._setAttr(d,"color2",e.visProp.gradientsecondcolor);this._setAttr(d,"opacity2",e.visProp.gradientsecondopacity);this._setAttr(d,"focusposition",e.visProp.gradientpositionx*100+"%,"+e.visProp.gradientpositiony*100+"%");this._setAttr(d,"focussize","0,0")}else{this._setAttr(d,"type","solid")}}},setObjectFillColor:function(e,h,i){var g=JXG.evaluate(h),k,l,d=JXG.evaluate(i),j,f=e.rendNode,m;d=(d>0)?d:0;if(e.visPropOld.fillcolor===g&&e.visPropOld.fillopacity===d){return}if(JXG.exists(g)&&g!==false){if(g.length!=9){k=g;j=d}else{l=JXG.rgba2rgbo(g);k=l[0];j=d*l[1]}if(k==="none"||k===false){this._setAttr(e.rendNode,"filled","false")}else{this._setAttr(e.rendNode,"filled","true");this._setAttr(e.rendNode,"fillcolor",k);if(JXG.exists(j)&&e.rendNodeFill){this._setAttr(e.rendNodeFill,"opacity",(j*100)+"%")}}if(e.type===JXG.OBJECT_TYPE_IMAGE){m=e.rendNode.style.filter.toString();if(m.match(/alpha/)){e.rendNode.style.filter=m.replace(/alpha\(opacity *= *[0-9\.]+\)/,"alpha(opacity = "+(j*100)+")")}else{e.rendNode.style.filter+=" alpha(opacity = "+(j*100)+")"}}}e.visPropOld.fillcolor=g;e.visPropOld.fillopacity=d},setObjectStrokeColor:function(f,i,j){var h=JXG.evaluate(i),l,m,e=JXG.evaluate(j),k,g=f.rendNode,d;e=(e>0)?e:0;if(f.visPropOld.strokecolor===h&&f.visPropOld.strokeopacity===e){return}if(JXG.exists(h)&&h!==false){if(h.length!=9){l=h;k=e}else{m=JXG.rgba2rgbo(h);l=m[0];k=e*m[1]}if(f.type===JXG.OBJECT_TYPE_TEXT){k=Math.round(k*100);g.style.filter=" alpha(opacity = "+k+")";g.style.color=l}else{if(l!==false){this._setAttr(g,"stroked","true");this._setAttr(g,"strokecolor",l)}d=f.rendNodeStroke;if(JXG.exists(k)&&f.type!==JXG.OBJECT_TYPE_IMAGE){this._setAttr(d,"opacity",(k*100)+"%")}}}f.visPropOld.strokecolor=h;f.visPropOld.strokeopacity=e},setObjectStrokeWidth:function(f,e){var d=JXG.evaluate(e),g;if(f.visPropOld.strokewidth===d){return}g=f.rendNode;this.setPropertyPrim(g,"stroked","true");if(JXG.exists(d)){this.setPropertyPrim(g,"stroke-width",d)}f.visPropOld.strokewidth=d},setShadow:function(d){var e=d.rendNodeShadow;if(!e||d.visPropOld.shadow===d.visProp.shadow){return}if(d.visProp.shadow){this._setAttr(e,"On","True");this._setAttr(e,"Offset","3pt,3pt");this._setAttr(e,"Opacity","60%");this._setAttr(e,"Color","#aaaaaa")}else{this._setAttr(e,"On","False")}d.visPropOld.shadow=d.visProp.shadow},suspendRedraw:function(){this.container.style.display="none"},unsuspendRedraw:function(){this.container.style.display=""}});JXG.CanvasRenderer=function(d){var e;this.type="canvas";this.canvasRoot=null;this.suspendHandle=null;this.canvasId=JXG.Util.genUUID();this.canvasNamespace=null;this.container=d;this.container.style.MozUserSelect="none";this.container.style.overflow="hidden";if(this.container.style.position===""){this.container.style.position="relative"}this.container.innerHTML=['<',"/canvas>"].join("");this.canvasRoot=document.getElementById(this.canvasId);this.context=this.canvasRoot.getContext("2d");this.dashArray=[[2,2],[5,5],[10,10],[20,20],[20,10,10,10],[20,5,10,5]]};JXG.CanvasRenderer.prototype=new JXG.AbstractRenderer();JXG.extend(JXG.CanvasRenderer.prototype,{_drawFilledPolygon:function(e){var g,d=e.length,f=this.context;if(d>0){f.beginPath();f.moveTo(e[0][0],e[0][1]);for(g=0;g0){f.lineTo(e[g][0],e[g][1])}}f.lineTo(e[0][0],e[0][1]);f.fill()}},_fill:function(e){var d=this.context;d.save();if(this._setColor(e,"fill")){d.fill()}d.restore()},_rotatePoint:function(e,d,f){return[(d*Math.cos(e))-(f*Math.sin(e)),(d*Math.sin(e))+(f*Math.cos(e))]},_rotateShape:function(e,g){var f,h=[],d=e.length;if(d<=0){return e}for(f=0;f0)?f:0;if(h.length!=9){l=h;k=f}else{n=JXG.rgba2rgbo(h);l=n[0];k=f*n[1]}this.context.globalAlpha=k;this.context[d+"Style"]=l}else{j=false}if(m==="stroke"){this.context.lineWidth=parseFloat(p.strokewidth)}return j},_stroke:function(e){var d=this.context;d.save();if(e.visProp.dash>0){if(d.setLineDash){d.setLineDash(this.dashArray[e.visProp.dash])}}else{this.context.lineDashArray=[]}if(this._setColor(e,"stroke")){d.stroke()}d.restore()},_translateShape:function(f,e,j){var g,h=[],d=f.length;if(d<=0){return f}for(g=0;g":g.beginPath();g.moveTo(l[1]-h,l[2]);g.lineTo(l[1],l[2]+h);g.lineTo(l[1]+h,l[2]);g.lineTo(l[1],l[2]-h);g.closePath();this._fill(i);this._stroke(i);break;case"triangleup":case"a":case"^":g.beginPath();g.moveTo(l[1],l[2]-h);g.lineTo(l[1]-k,l[2]+d);g.lineTo(l[1]+k,l[2]+d);g.closePath();this._fill(i);this._stroke(i);break;case"triangledown":case"v":g.beginPath();g.moveTo(l[1],l[2]+h);g.lineTo(l[1]-k,l[2]-d);g.lineTo(l[1]+k,l[2]-d);g.closePath();this._fill(i);this._stroke(i);break;case"triangleleft":case"<":g.beginPath();g.moveTo(l[1]-h,l[2]);g.lineTo(l[1]+d,l[2]-k);g.lineTo(l[1]+d,l[2]+k);g.closePath();this.fill(i);this._stroke(i);break;case"triangleright":case">":g.beginPath();g.moveTo(l[1]+h,l[2]);g.lineTo(l[1]-d,l[2]-k);g.lineTo(l[1]-d,l[2]+k);g.closePath();this._fill(i);this._stroke(i);break}},updatePoint:function(d){this.drawPoint(d)},drawLine:function(d){var f=new JXG.Coords(JXG.COORDS_BY_USER,d.point1.coords.usrCoords,d.board),e=new JXG.Coords(JXG.COORDS_BY_USER,d.point2.coords.usrCoords,d.board);JXG.Math.Geometry.calcStraight(d,f,e);this.context.beginPath();this.context.moveTo(f.scrCoords[1],f.scrCoords[2]);this.context.lineTo(e.scrCoords[1],e.scrCoords[2]);this._stroke(d);this.makeArrows(d,f,e)},updateLine:function(d){this.drawLine(d)},drawTicks:function(){},updateTicks:function(g,h,e,j,f){var k,m,l=g.ticks.length,d=this.context;d.beginPath();for(k=0;k0&&s>0&&!isNaN(e+d)){g.beginPath();g.moveTo(i,j);g.bezierCurveTo(i,j-r,k-u,h,k,h);g.bezierCurveTo(k+u,h,p,j-r,p,j);g.bezierCurveTo(p,j+r,k+u,o,k,o);g.bezierCurveTo(k-u,o,i,j+r,i,j);g.closePath();this._fill(f);this._stroke(f)}},updateEllipse:function(d){return this.drawEllipse(d)},displayCopyright:function(f,e){var d=this.context;d.save();d.font=e+"px Arial";d.fillStyle="#aaa";d.lineWidth=0.5;d.fillText(f,10,2+e);d.restore()},drawInternalText:function(f){var d,e=this.context;e.save();if(this._setColor(f,"stroke","fill")&&!isNaN(f.coords.scrCoords[1]+f.coords.scrCoords[2])){if(f.visProp.fontsize){if(typeof f.visProp.fontsize==="function"){d=f.visProp.fontsize();e.font=(d>0?d:0)+"px Arial"}else{e.font=(f.visProp.fontsize)+"px Arial"}}this.transformImage(f,f.transformations);if(f.visProp.anchorx==="right"){e.textAlign="right"}else{if(f.visProp.anchorx==="middle"){e.textAlign="center"}}if(f.visProp.anchory==="top"){e.textBaseline="top"}else{if(f.visProp.anchory==="middle"){e.textBaseline="middle"}}e.fillText(f.plaintext,f.coords.scrCoords[1],f.coords.scrCoords[2])}e.restore();return null},updateInternalText:function(d){this.drawInternalText(d)},setObjectStrokeColor:function(e,h,i){var g=JXG.evaluate(h),k,l,d=JXG.evaluate(i),j,f;d=(d>0)?d:0;if(e.visPropOld.strokecolor===g&&e.visPropOld.strokeopacity===d){return}if(JXG.exists(g)&&g!==false){if(g.length!=9){k=g;j=d}else{l=JXG.rgba2rgbo(g);k=l[0];j=d*l[1]}f=e.rendNode;if(e.type===JXG.OBJECT_TYPE_TEXT&&e.visProp.display==="html"){f.style.color=k;f.style.opacity=j}}e.visPropOld.strokecolor=g;e.visPropOld.strokeopacity=d},drawImage:function(d){d.rendNode=new Image();d._src="";this.updateImage(d)},updateImage:function(e){var d=this.context,f=JXG.evaluate(e.visProp.fillopacity),g=JXG.bind(function(){e.imgIsLoaded=true;if(e.size[0]<=0||e.size[1]<=0){return}d.save();d.globalAlpha=f;this.transformImage(e,e.transformations);d.drawImage(e.rendNode,e.coords.scrCoords[1],e.coords.scrCoords[2]-e.size[1],e.size[0],e.size[1]);d.restore()},this);if(this.updateImageURL(e)){e.rendNode.onload=g}else{if(e.imgIsLoaded){g()}}},transformImage:function(h,g){var e,d=g.length,f=this.context;if(d>0){e=this.joinTransforms(h,g);if(Math.abs(JXG.Math.Numerics.det(e))>=JXG.Math.eps){f.transform(e[1][1],e[2][1],e[1][2],e[2][2],e[1][0],e[2][0])}}},updateImageURL:function(e){var d;d=JXG.evaluate(e.url);if(e._src!==d){e.imgIsLoaded=false;e.rendNode.src=d;e._src=d;return true}return false},remove:function(d){if(JXG.exists(d)&&JXG.exists(d.parentNode)){d.parentNode.removeChild(d)}},makeArrows:function(h,l,j){var n=Math.min(h.visProp.strokewidth/2,3),f=[[2,0],[-10,-4*n],[-10,4*n],[2,0]],o=[[-2,0],[10,-4*n],[10,4*n]],g,m,d,k,i,e=this.context;if(h.visProp.strokecolor!=="none"&&(h.visProp.lastarrow||h.visProp.firstarrow)){if(h.elementClass===JXG.OBJECT_CLASS_LINE){g=l.scrCoords[1];m=l.scrCoords[2];d=j.scrCoords[1];k=j.scrCoords[2]}else{return}e.save();if(this._setColor(h,"stroke","fill")){i=Math.atan2(k-m,d-g);if(h.visProp.lastarrow){this._drawFilledPolygon(this._translateShape(this._rotateShape(f,i),d,k))}if(h.visProp.firstarrow){this._drawFilledPolygon(this._translateShape(this._rotateShape(o,i),g,m))}}e.restore()}},updatePathStringPrim:function(e){var g="M",h="L",o="C",f=g,p=5000,j,l,n,m,q=(e.visProp.curvetype!=="plot"),k,d=this.context;if(e.numberPoints<=0){return}k=Math.min(e.points.length,e.numberPoints);d.beginPath();if(e.bezierDegree==1){if(q&&e.board.options.curve.RDPsmoothing){e.points=JXG.Math.Numerics.RamerDouglasPeuker(e.points,0.5)}for(j=0;jp){l[1]=p}else{if(l[1]<-p){l[1]=-p}}if(l[2]>p){l[2]=p}else{if(l[2]<-p){l[2]=-p}}if(f===g){d.moveTo(l[1],l[2])}else{d.lineTo(l[1],l[2])}f=h}}}else{if(e.bezierDegree==3){j=0;while(jt){r[1]=t}else{if(r[1]<-t){r[1]=-t}}if(r[2]>t){r[2]=t}else{if(r[2]<-t){r[2]=-t}}if(k==l){d.moveTo(r[1]+0*q*(2*n*Math.random()-n),r[2]+0*q*(2*n*Math.random()-n))}else{d.bezierCurveTo((h+(r[1]-h)*0.333+q*(2*n*Math.random()-n)),(e+(r[2]-e)*0.333+q*(2*n*Math.random()-n)),(h+2*(r[1]-h)*0.333+q*(2*n*Math.random()-n)),(e+2*(r[2]-e)*0.333+q*(2*n*Math.random()-n)),r[1],r[2])}k=m;h=r[1];e=r[2]}}}this._fill(g);this._stroke(g)},updatePolygonPrim:function(k,j){var f,h,e=j.vertices.length,g=this.context,d=true;if(e<=0){return}g.beginPath();h=0;while(!j.vertices[h].isReal&&h0)?f:0;d=JXG.evaluate(e.visProp.fillcolor)},setShadow:function(d){if(d.visPropOld.shadow===d.visProp.shadow){return}d.visPropOld.shadow=d.visProp.shadow},highlight:function(d){if(d.type===JXG.OBJECT_TYPE_TEXT&&d.visProp.display==="html"){this.updateTextStyle(d,true)}else{d.board.prepareUpdate();d.board.renderer.suspendRedraw(d.board);d.board.updateRenderer();d.board.renderer.unsuspendRedraw()}return this},noHighlight:function(d){if(d.type===JXG.OBJECT_TYPE_TEXT&&d.visProp.display==="html"){this.updateTextStyle(d,false)}else{d.board.prepareUpdate();d.board.renderer.suspendRedraw(d.board);d.board.updateRenderer();d.board.renderer.unsuspendRedraw()}return this},suspendRedraw:function(d){this.context.save();this.context.clearRect(0,0,this.canvasRoot.width,this.canvasRoot.height);if(d&&d.showCopyright){this.displayCopyright(JXG.JSXGraph.licenseText,12)}},unsuspendRedraw:function(){this.context.restore()},resize:function(d,e){this.canvasRoot.style.width=parseFloat(d)+"px";this.canvasRoot.style.height=parseFloat(e)+"px";this.canvasRoot.setAttribute("width",parseFloat(d)+"px");this.canvasRoot.setAttribute("height",parseFloat(e)+"px")}}); \ No newline at end of file diff --git a/build/lib/jsxgraphcore_old.js b/build/lib/jsxgraphcore_old.js deleted file mode 100755 index f61179c..0000000 --- a/build/lib/jsxgraphcore_old.js +++ /dev/null @@ -1,16582 +0,0 @@ -/* Version 0.81 */ -/* - Copyright 2008-2010 - Matthias Ehmann, - Michael Gerhaeuser, - Carsten Miller, - Bianca Valentin, - Alfred Wassermann, - Peter Wilfahrt - - This file is part of JSXGraph. - - JSXGraph is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - JSXGraph is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with JSXGraph. If not, see . -*/ -var JXG = {}; -(function () { - var a, b; - JXG.countDrawings = 0; - JXG.countTime = 0; - JXG.require = function (c) {}; - JXG.rendererFiles = []; - JXG.rendererFiles.svg = "SVGRenderer"; - JXG.rendererFiles.vml = "VMLRenderer"; - JXG.baseFiles = null; - JXG.requirePath = ""; - for (a = 0; a < document.getElementsByTagName("script").length; a++) { - b = document.getElementsByTagName("script")[a]; - if (b.src && b.src.match(/loadjsxgraphInOneFile\.js(\?.*)?$/)) { - JXG.requirePath = b.src.replace(/loadjsxgraphInOneFile\.js(\?.*)?$/, "") - } - } - JXG.serverBase = JXG.requirePath + "server/" -})(); -JXG.Math = new Object(); -JXG.Math.eps = 0.000001; -JXG.Math.Vector = function (b) { - var a; - this.length = 0; - if ((typeof b != undefined) && (b != null)) { - for (a = 0; a < b.length; a++) { - this.push(b[a]) - } - } -}; -JXG.Math.Vector.prototype = new Array(); -JXG.Math.Vector.prototype.n = function () { - return this.length -}; -JXG.Math.Vector.prototype.exchange = function (c, b) { - var a = this[c]; - this[c] = this[b]; - this[b] = a -}; -JXG.Math.Matrix = function (g) { - var e = 0, - f = false, - d, c, a, b; - this.length = 0; - if ((typeof g != undefined) && (g != null)) { - a = g.length; - for (d = 0; d < a; d++) { - b = g[d].length; - this.push(new Array()); - if (f) { - if (e != b) { - this.length = 0; - throw new JXG.DimensionMismatchException("Your array contains arrays with different lengths.") - } - } - for (c = 0; c < b; c++) { - this[d].push(g[d][c]) - } - e = b; - f = true - } - } -}; -JXG.Math.Matrix.prototype = new Array(); -JXG.Math.Matrix.prototype.m = function () { - return this.length -}; -JXG.Math.Matrix.prototype.n = function () { - if (this.length > 0) { - return this[0].length - } else { - return 0 - } -}; -JXG.Math.Matrix.prototype.exchangeRows = function (c, b) { - var a = this[c]; - this[c] = this[b]; - this[b] = a -}; -JXG.DimensionMismatchException = function (a) { - if ((typeof a != undefined) && (a != null)) { - this.message = a - } else { - this.message = null - } -}; -JXG.DimensionMismatchException.prototype.what = function () { - var a = "Matrix has incorrect dimensions"; - if (this.message != null) { - return a + ": " + this.message + "." - } else { - return a + "." - } -}; -JXG.SingularMatrixException = function (a) { - if ((typeof a != undefined) && (a != null)) { - this.message = a - } else { - this.message = null - } -}; -JXG.SingularMatrixException.prototype.what = function () { - var a = "Matrix is singular"; - if (this.message != null) { - return a + ": " + this.message + "." - } else { - return a + "." - } -}; -JXG.Math.matVecMult = function (g, e) { - var a = g.length, - h = e.length, - d = [], - c, f, b; - if (h == 3) { - for (c = 0; c < a; c++) { - d[c] = g[c][0] * e[0] + g[c][1] * e[1] + g[c][2] * e[2] - } - } else { - for (c = 0; c < a; c++) { - f = 0; - for (b = 0; b < h; b++) { - f += g[c][b] * e[b] - } - d[c] = f - } - } - return d -}; -JXG.Math.matMatMult = function (b, a) { - var d = b.length, - c = a[0].length, - l = a.length, - h = [], - g, f, q, e; - for (g = 0; g < d; g++) { - h[g] = [] - } - for (g = 0; g < d; g++) { - for (f = 0; f < c; f++) { - q = 0; - for (e = 0; e < l; e++) { - q += b[g][e] * a[e][f] - } - h[g][f] = q - } - } - return h -}; -JXG.Math.Matrix.transpose = function (f) { - var c = [], - d, b, a, e; - a = f.length; - e = (f.length > 0) ? f[0].length : 0; - for (d = 0; d < e; d++) { - c.push([]); - for (b = 0; b < a; b++) { - c[d].push(f[b][d]) - } - } - return c -}; -JXG.Math.crossProduct = function (b, a) { - return [b[1] * a[2] - b[2] * a[1], b[2] * a[0] - b[0] * a[2], b[0] * a[1] - b[1] * a[0]] -}; -JXG.Math.innerProduct = function (d, c, g) { - var e, f = 0; - if (typeof g == "undefined") { - g = d.length - } - for (e = 0; e < g; e++) { - f += d[e] * c[e] - } - return f -}; -JXG.memoizer = function (b) { - var a, c; - if (b.memo) { - return b.memo - } - a = {}; - c = Array.prototype.join; - return (b.memo = function () { - var d = c.call(arguments); - return (typeof a[d] != "undefined") ? a[d] : a[d] = b.apply(this, arguments) - }) -}; -JXG.Math.factorial = JXG.memoizer(function (a) { - if (a < 0) { - return NaN - } - if (a == 0 || a == 1) { - return 1 - } - return a * arguments.callee(a - 1) -}); -JXG.Math.binomial = JXG.memoizer(function (e, c) { - var a, d; - if (c > e || c < 0) { - return 0 - } - if (c == 0 || c == e) { - return 1 - } - a = 1; - for (d = 0; d < c; d++) { - a *= (e - d); - a /= (d + 1) - } - return a -}); -JXG.Math.round = function (a, d) { - var c, b; - c = a - Math.ceil(a); - b = c.toString(); - if (c < 0) { - b = b.substr(0, d + 3) - } else { - b = b.substr(0, d + 2) - } - c = parseFloat(b); - t = parseInt(a.toString()); - return t + c -}; -JXG.Math.cosh = function (a) { - return (Math.exp(a) + Math.exp(-a)) * 0.5 -}; -JXG.Math.sinh = function (a) { - return (Math.exp(a) - Math.exp(-a)) * 0.5 -}; -JXG.Math.Numerics = {}; -JXG.Math.Numerics.INT_TRAPEZ = 1; -JXG.Math.Numerics.INT_SIMPSON = 2; -JXG.Math.Numerics.INT_MILNE = 3; -JXG.Math.Numerics.number_of_nodes = 28; -JXG.Math.Numerics.integration_type = JXG.INT_MILNE; -JXG.Math.Numerics.backwardSolve = function (g, d) { - var c = d, - a, h, f, e; - if (g.m) { - a = g.m(); - h = g.n() - } else { - a = g.length; - h = (g.length > 0) ? g[0].length : 0 - } - for (f = a - 1; f >= 0; f--) { - for (e = h - 1; e > f; e--) { - c[f] -= g[f][e] * c[e] - } - c[f] /= g[f][f] - } - return c -}; -JXG.Math.Numerics.Gauss = function (a, l) { - var q = JXG.Math.eps, - c, f, e, d, g, m, h; - if (a.n) { - c = a.n() - } else { - c = (a.length > 0) ? a[0].length : 0 - } - g = new JXG.Math.Vector(); - for (f = 0; f < c; f++) { - g.push(f) - } - for (e = 0; e < c; e++) { - for (f = c - 1; f > e; f--) { - if (Math.abs(a[f][e]) > JXG.Math.eps) { - if (Math.abs(a[e][e]) < JXG.Math.eps) { - a.exchangeRows(f, e); - l.exchange(f, e); - g.exchange(f, e) - } else { - a[f][e] /= a[e][e]; - l[f] -= a[f][e] * l[e]; - for (d = e + 1; d < c; d++) { - a[f][d] -= a[f][e] * a[e][d] - } - } - } - if (Math.abs(a[e][e]) < JXG.Math.eps) { - throw new SingularMatrixException() - } - } - } - return JXG.Math.Numerics.backwardSolve(a, l) -}; -JXG.Math.Numerics.Inverse = function (m) { - var g, f, e, u, q, a, l, d = m.length, - c = [], - b = [], - h = []; - for (g = 0; g < d; g++) { - c[g] = []; - for (f = 0; f < d; f++) { - c[g][f] = m[g][f] - } - b[g] = g - } - for (f = 0; f < d; f++) { - q = Math.abs(c[f][f]); - a = f; - for (g = f + 1; g < d; g++) { - if (Math.abs(c[g][f]) > q) { - q = Math.abs(c[g][f]); - a = g - } - } - if (q <= JXG.Math.eps) { - return false - } - if (a > f) { - for (e = 0; e < d; e++) { - l = c[f][e]; - c[f][e] = c[a][e]; - c[a][e] = l - } - l = b[f]; - b[f] = b[a]; - b[a] = l - } - u = 1 / c[f][f]; - for (g = 0; g < d; g++) { - c[g][f] *= u - } - c[f][f] = u; - for (e = 0; e < d; e++) { - if (e != f) { - for (g = 0; g < d; g++) { - if (g != f) { - c[g][e] -= c[g][f] * c[f][e] - } - } - c[f][e] = -u * c[f][e] - } - } - } - for (g = 0; g < d; g++) { - for (e = 0; e < d; e++) { - h[b[e]] = c[g][e] - } - for (e = 0; e < d; e++) { - c[g][e] = h[e] - } - } - return c -}; -JXG.Math.Numerics.QR = function (c, a) {}; -JXG.Math.Numerics.Jacobi = function (u) { - var h, f, e, v, a, l, s, r, w = JXG.Math.eps, - q = 0, - m, g, c = u.length, - d = [ - [0, 0, 0], - [0, 0, 0], - [0, 0, 0] - ], - b = [ - [0, 0, 0], - [0, 0, 0], - [0, 0, 0] - ]; - for (h = 0; h < c; h++) { - for (f = 0; f < c; f++) { - d[h][f] = 0; - b[h][f] = u[h][f]; - q += Math.abs(b[h][f]) - } - d[h][h] = 1 - } - if (c == 1) { - return [b, d] - } - if (q <= 0) { - return [b, d] - } - q /= (c * c); - do { - m = 0; - g = 0; - for (f = 1; f < c; f++) { - for (h = 0; h < f; h++) { - a = Math.abs(b[h][f]); - if (a > g) { - g = a - } - m += a; - if (a < w) { - continue - } else { - a = Math.atan2(2 * b[h][f], b[h][h] - b[f][f]) * 0.5; - l = Math.sin(a); - s = Math.cos(a); - for (e = 0; e < c; e++) { - r = b[e][h]; - b[e][h] = s * r + l * b[e][f]; - b[e][f] = -l * r + s * b[e][f]; - r = d[e][h]; - d[e][h] = s * r + l * d[e][f]; - d[e][f] = -l * r + s * d[e][f] - } - b[h][h] = s * b[h][h] + l * b[f][h]; - b[f][f] = -l * b[h][f] + s * b[f][f]; - b[h][f] = 0; - for (e = 0; e < c; e++) { - b[h][e] = b[e][h]; - b[f][e] = b[e][f] - } - } - } - } - } while (Math.abs(m) / q > w); - return [b, d] -}; -JXG.Math.Numerics.NewtonCotes = function (d, g) { - var b = 0, - a = (d[1] - d[0]) / this.number_of_nodes, - h, e, c; - switch (this.integration_type) { - case JXG.INT_TRAPEZ: - b = (g(d[0]) + g(d[1])) * 0.5; - h = d[0]; - for (e = 0; e < this.number_of_nodes - 1; e++) { - h += a; - b += g(h) - } - b *= a; - break; - case JXG.INT_SIMPSON: - if (this.number_of_nodes % 2 > 0) { - throw new Error("JSXGraph: INT_SIMPSON requires JXG.Math.Numerics.number_of_nodes dividable by 2.") - } - c = this.number_of_nodes / 2; - b = g(d[0]) + g(d[1]); - h = d[0]; - for (e = 0; e < c - 1; e++) { - h += 2 * a; - b += 2 * g(h) - } - h = d[0] - a; - for (e = 0; e < c; e++) { - h += 2 * a; - b += 4 * g(h) - } - b *= a / 3; - break; - default: - if (this.number_of_nodes % 4 > 0) { - throw new Error("JSXGraph: Error in INT_MILNE: JXG.Math.Numerics.number_of_nodes must be a multiple of 4") - } - c = this.number_of_nodes * 0.25; - b = 7 * (g(d[0]) + g(d[1])); - h = d[0]; - for (e = 0; e < c - 1; e++) { - h += 4 * a; - b += 14 * g(h) - } - h = d[0] - 3 * a; - for (e = 0; e < c; e++) { - h += 4 * a; - b += 32 * (g(h) + g(h + 2 * a)) - } - h = d[0] - 2 * a; - for (e = 0; e < c; e++) { - h += 4 * a; - b += 12 * g(h) - } - b *= 2 * a / 45 - } - return b -}; -JXG.Math.Numerics.splineDef = function (k, h) { - var a = k.length, - c, e, f, g, b, d = new Array(), - r = [], - m = [], - q; - if (k.length != h.length) { - throw new Error("JSXGraph: Error in JXG.Math.Numerics.splineDef: Input vector dimensions do not match.") - } - for (e = 0; e < a; e++) { - c = { - X: k[e], - Y: h[e] - }; - d.push(c) - } - d.sort(function (n, l) { - return n.X - l.X - }); - for (e = 0; e < a; e++) { - k[e] = d[e].X; - h[e] = d[e].Y - } - for (e = 0; e < a - 1; e++) { - r.push(k[e + 1] - k[e]) - } - for (e = 0; e < a - 2; e++) { - m.push(6 * (h[e + 2] - h[e + 1]) / (r[e + 1]) - 6 * (h[e + 1] - h[e]) / (r[e])) - } - f = new Array(); - g = new Array(); - f.push(2 * (r[0] + r[1])); - g.push(m[0]); - for (e = 0; e < a - 3; e++) { - b = r[e + 1] / f[e]; - f.push(2 * (r[e + 1] + r[e + 2]) - b * r[e + 1]); - g.push(m[e + 1] - b * g[e]) - } - q = new Array(); - q[a - 3] = g[a - 3] / f[a - 3]; - for (e = a - 4; e >= 0; e--) { - q[e] = (g[e] - (r[e + 1] * q[e + 1])) / f[e] - } - for (e = a - 3; e >= 0; e--) { - q[e + 1] = q[e] - } - q[0] = 0; - q[a - 1] = 0; - return q -}; -JXG.Math.Numerics.splineEval = function (f, z, v, B) { - var g = z.length, - k = 1, - h = false, - A, q, m, w, u, s, r, e; - if (g != v.length) { - throw new Error("JSXGraph: Error in JXG.Math.Numerics.splineEval: Defining vector dimensions do not match.") - } - if (JXG.isArray(f)) { - k = f.length; - h = true - } else { - f = [f] - } - A = new Array(); - for (q = 0; q < k; q++) { - if ((f[q] < z[0]) || (z[q] > z[g - 1])) { - return "NaN" - } - m; - for (m = 1; m < g; m++) { - if (f[q] <= z[m]) { - break - } - } - m--; - w = v[m]; - u = (v[m + 1] - v[m]) / (z[m + 1] - z[m]) - (z[m + 1] - z[m]) / 6 * (B[m + 1] + 2 * B[m]); - s = B[m] / 2; - r = (B[m + 1] - B[m]) / (6 * (z[m + 1] - z[m])); - e = f[q] - z[m]; - A.push(w + (u + (s + r * e) * e) * e) - } - if (h) { - return A - } else { - return A[0] - } -}; -JXG.Math.Numerics.generatePolynomialTerm = function (a, f, b, c) { - var e = "", - d; - for (d = f; d >= 0; d--) { - e += "(" + a[d].toPrecision(c) + ")"; - if (d > 1) { - e += "*" + b + "" + d + " + " - } else { - if (d == 1) { - e += "*" + b + " + " - } - } - } - return e -}; -JXG.Math.Numerics.lagrangePolynomial = function (d) { - var a = []; - var c = ""; - var b = function (q, e) { - var g, f, m, n, r, h = 0, - l = 0; - m = d.length; - if (!e) { - for (g = 0; g < m; g++) { - a[g] = 1; - n = d[g].X(); - for (f = 0; f < m; f++) { - if (f != g) { - a[g] *= (n - d[f].X()) - } - } - a[g] = 1 / a[g] - } - M = []; - for (j = 0; j < m; j++) { - M.push([1]) - } - } - for (g = 0; g < m; g++) { - n = d[g].X(); - if (q == n) { - return d[g].Y() - } else { - r = a[g] / (q - n); - l += r; - h += r * d[g].Y() - } - } - return h / l - }; - b.getTerm = function () { - return c - }; - return b -}; -JXG.Math.Numerics.neville = function (d) { - var a = []; - var c = function (q, e) { - var g, m, n, r, u = JXG.Math.binomial, - l = d.length, - f = l - 1, - h = 0, - k = 0; - if (!e) { - r = 1; - for (g = 0; g < l; g++) { - a[g] = u(f, g) * r; - r *= (-1) - } - } - m = q; - for (g = 0; g < l; g++) { - if (m == 0) { - return d[g].X() - } else { - r = a[g] / m; - m--; - h += d[g].X() * r; - k += r - } - } - return h / k - }; - var b = function (q, e) { - var g, m, n, r, u = JXG.Math.binomial, - l = d.length, - f = l - 1, - h = 0, - k = 0; - if (!e) { - r = 1; - for (g = 0; g < l; g++) { - a[g] = u(f, g) * r; - r *= (-1) - } - } - m = q; - for (g = 0; g < l; g++) { - if (m == 0) { - return d[g].Y() - } else { - r = a[g] / m; - m--; - h += d[g].Y() * r; - k += r - } - } - return h / k - }; - return [c, b, 0, function () { - return d.length - 1 - }] -}; -JXG.Math.Numerics.regressionPolynomial = function (e, l, k) { - var a = [], - f = 0, - b, h, g, c, d = ""; - if (JXG.isPoint(e) && typeof e.Value == "function") { - b = function () { - return e.Value() - } - } else { - if (JXG.isFunction(e)) { - b = e - } else { - if (JXG.isNumber(e)) { - b = function () { - return e - } - } else { - throw new Error("JSXGraph: Can't create regressionPolynomial from degree of type'" + (typeof e) + "'.") - } - } - } - if (arguments.length == 3 && JXG.isArray(l) && JXG.isArray(k)) { - c = 0 - } else { - if (arguments.length == 2 && JXG.isArray(l) && JXG.isPoint(l[0])) { - c = 1 - } else { - throw new Error("JSXGraph: Can't create regressionPolynomial. Wrong parameters.") - } - } - var m = function (E, n) { - var u, r, A, w, D, q, C, F, z, v = l.length; - z = Math.floor(b()); - if (!n) { - if (c == 1) { - h = []; - g = []; - for (u = 0; u < v; u++) { - h[u] = l[u].X(); - g[u] = l[u].Y() - } - } - if (c == 0) { - h = []; - g = []; - for (u = 0; u < v; u++) { - if (JXG.isFunction(l[u])) { - h.push(l[u]()) - } else { - h.push(l[u]) - } - if (JXG.isFunction(k[u])) { - g.push(k[u]()) - } else { - g.push(k[u]) - } - } - } - A = []; - for (r = 0; r < v; r++) { - A.push([1]) - } - for (u = 1; u <= z; u++) { - for (r = 0; r < v; r++) { - A[r][u] = A[r][u - 1] * h[r] - } - } - D = g; - w = JXG.Math.Matrix.transpose(A); - q = JXG.Math.matMatMult(w, A); - C = JXG.Math.matVecMult(w, D); - a = JXG.Math.Numerics.Gauss(q, C); - d = JXG.Math.Numerics.generatePolynomialTerm(a, z, "x", 3) - } - F = a[z]; - for (u = z - 1; u >= 0; u--) { - F = (F * E + a[u]) - } - return F - }; - m.getTerm = function () { - return d - }; - return m -}; -JXG.Math.Numerics.bezier = function (b) { - var a = 0; - return [function (d, c) { - var g = Math.floor(d) * 3, - f = d % 1, - e = 1 - f; - if (!c) { - a = Math.floor(b.length / 3) - } - if (d < 0) { - return b[0].X() - } - if (d >= a) { - return b[b.length - 1].X() - } - if (isNaN(d)) { - return NaN - } - return e * e * (e * b[g].X() + 3 * f * b[g + 1].X()) + (3 * e * b[g + 2].X() + f * b[g + 3].X()) * f * f - }, function (d, c) { - var g = Math.floor(d) * 3, - f = d % 1, - e = 1 - f; - if (!c) { - a = Math.floor(b.length / 3) - } - if (d < 0) { - return b[0].Y() - } - if (d >= a) { - return b[b.length - 1].Y() - } - if (isNaN(d)) { - return NaN - } - return e * e * (e * b[g].Y() + 3 * f * b[g + 1].Y()) + (3 * e * b[g + 2].Y() + f * b[g + 3].Y()) * f * f - }, 0, function () { - return Math.floor(b.length / 3) - }] -}; -JXG.Math.Numerics.D = function (c, d) { - var b = 0.00001, - a = 1 / (b * 2); - if (arguments.length == 1 || (arguments.length > 1 && typeof arguments[1] == "undefined")) { - return function (e, f) { - return (c(e + b, f) - c(e - b, f)) * a - } - } else { - return function (e, f) { - return (c.apply(d, [e + b, f]) - c.apply(d, [e - b, f])) * a - } - } -}; -JXG.Math.Numerics.I = function (a, b) { - return JXG.Math.Numerics.NewtonCotes(a, b) -}; -JXG.Math.Numerics.newton = function (e, a, g) { - var b = 0, - c = 0.000001, - d = e.apply(g, [a]), - k; - while (b < 50 && Math.abs(d) > c) { - k = this.D(e, g)(a); - if (Math.abs(k) > c) { - a -= d / k - } else { - a += (Math.random() * 0.2 - 1) - } - d = e.apply(g, [a]); - b++ - } - return a -}; -JXG.Math.Numerics.root = function (b, a, c) { - return this.newton(b, a, c) -}; -JXG.Math.Numerics.riemann = function (l, e, m, c, g) { - var d, v, k, u, h, s, q, b, a, r; - d = []; - v = []; - h = 0; - s = c; - e = Math.floor(e); - d[h] = s; - v[h] = 0; - if (e > 0) { - u = (g - c) / e; - a = u * 0.01; - for (k = 0; k < e; k++) { - if (m == "right") { - q = l(s + u) - } else { - if (m == "middle") { - q = l(s + u * 0.5) - } else { - if ((m == "left") || (m == "trapezodial")) { - q = l(s) - } else { - if (m == "lower") { - q = l(s); - for (b = s + a; b <= s + u; b += a) { - r = l(b); - if (r < q) { - q = r - } - } - } else { - q = l(s); - for (b = s + a; b <= s + u; b += a) { - r = l(b); - if (r > q) { - q = r - } - } - } - } - } - } - h++; - d[h] = s; - v[h] = q; - h++; - s += u; - if (m == "trapezodial") { - q = l(s) - } - d[h] = s; - v[h] = q; - h++; - d[h] = s; - v[h] = 0 - } - } - return [d, v] -}; -JXG.Math.Numerics.riemannsum = function (h, d, l, c, e) { - var k, g, s, r, m, b, a, q; - k = 0; - r = c; - d = Math.floor(d); - if (d > 0) { - s = (e - c) / d; - a = s * 0.01; - for (g = 0; g < d; g++) { - if (l == "right") { - m = h(r + s) - } else { - if (l == "middle") { - m = h(r + s * 0.5) - } else { - if (l == "trapezodial") { - m = 0.5 * (h(r + s) + h(r)) - } else { - if (l == "left") { - m = h(r) - } else { - if (l == "lower") { - m = h(r); - for (b = r + a; b <= r + s; b += a) { - q = h(b); - if (q < m) { - m = q - } - } - } else { - m = h(r); - for (b = r + a; b <= r + s; b += a) { - q = h(b); - if (q > m) { - m = q - } - } - } - } - } - } - } - k += s * m; - r += s - } - } - return k -}; -JXG.Math.Numerics.Butcher = function () { - this.s = 0; - this.A = []; - this.b = []; - this.c = [] -}; -JXG.Math.Numerics.predefinedButcher = {}; -JXG.Math.Numerics.predefinedButcher.RK4 = { - s: 4, - A: [ - [0, 0, 0, 0], - [0.5, 0, 0, 0], - [0, 0.5, 0, 0], - [0, 0, 1, 0] - ], - b: [1 / 6, 1 / 3, 1 / 3, 1 / 6], - c: [0, 0.5, 0.5, 1] -}; -JXG.Math.Numerics.predefinedButcher.Heun = { - s: 2, - A: [ - [0, 0], - [1, 0] - ], - b: [0.5, 0.5], - c: [0, 1] -}; -JXG.Math.Numerics.predefinedButcher.Euler = { - s: 1, - A: [ - [0] - ], - b: [1], - c: [0] -}; -JXG.Math.Numerics.rungeKutta = function (c, G, m, d, F) { - var n = [], - g = [], - E = (m[1] - m[0]) / d, - u = m[0], - H, D, C, A, z, B = G.length, - v = c.s, - b = 1000, - a = d / b, - q = [], - w = 0; - for (H = 0; H < B; H++) { - n[H] = G[H] - } - for (D = 0; D < d; D++) { - q[w] = []; - for (H = 0; H < B; H++) { - q[w][H] = n[H] - } - w++; - A = []; - for (C = 0; C < v; C++) { - for (H = 0; H < B; H++) { - g[H] = 0 - } - for (z = 0; z < C; z++) { - for (H = 0; H < B; H++) { - g[H] += (c.A[C][z]) * E * A[z][H] - } - } - for (H = 0; H < B; H++) { - g[H] += n[H] - } - A.push(F(u + c.c[C] * E, g)) - } - for (H = 0; H < B; H++) { - g[H] = 0 - } - for (z = 0; z < v; z++) { - for (H = 0; H < B; H++) { - g[H] += c.b[z] * A[z][H] - } - } - for (H = 0; H < B; H++) { - n[H] = n[H] + E * g[H] - } - u += E - } - return q -}; -JXG.Math.Statistics = {}; -JXG.Math.Statistics.sum = function (b) { - var d, a, c = 0; - for (d = 0, a = b.length; d < a; d++) { - c += b[d] - } - return c -}; -JXG.Math.Statistics.prod = function (b) { - var d, a, c = 1; - for (d = 0, a = b.length; d < a; d++) { - c *= b[d] - } - return c -}; -JXG.Math.Statistics.mean = function (a) { - if (a.length > 0) { - return this.sum(a) / a.length - } else { - return 0 - } -}; -JXG.Math.Statistics.median = function (b) { - var c, a; - if (b.length > 0) { - c = b.clone(); - c.sort(function (e, d) { - return e - d - }); - a = c.length; - if (a % 2 == 1) { - return c[parseInt(a * 0.5)] - } else { - return (c[a * 0.5 - 1] + c[a * 0.5]) * 0.5 - } - } else { - return 0 - } -}; -JXG.Math.Statistics.variance = function (c) { - var b, e, d, a; - if (c.length > 1) { - b = this.mean(c); - e = 0; - for (d = 0, a = c.length; d < a; d++) { - e += (c[d] - b) * (c[d] - b) - } - return e / (c.length - 1) - } else { - return 0 - } -}; -JXG.Math.Statistics.sd = function (a) { - return Math.sqrt(this.variance(a)) -}; -JXG.Math.Statistics.weightedMean = function (a, b) { - if (a.length != b.length) { - return - } - if (a.length > 0) { - return this.mean(this.multiply(a, b)) - } else { - return 0 - } -}; -JXG.Math.Statistics.max = function (b) { - var d, c, a; - if (b.length == 0) { - return NaN - } - d = b[0]; - for (c = 1, a = b.length; c < a; c++) { - d = (b[c] > d) ? (b[c]) : d - } - return d -}; -JXG.Math.Statistics.min = function (b) { - var d, c, a; - if (b.length == 0) { - return NaN - } - d = b[0]; - for (c = 1, a = b.length; c < a; c++) { - d = (b[c] < d) ? (b[c]) : d - } - return d -}; -JXG.Math.Statistics.range = function (a) { - return [this.min(a), this.max(a)] -}; -JXG.Math.Statistics.diff = function (a) { - return a -}; -JXG.Math.Statistics.min = function (b) { - var d, c, a; - if (b.length == 0) { - return NaN - } - d = b[0]; - for (c = 1, a = b.length; c < a; c++) { - d = (b[c] < d) ? (b[c]) : d - } - return d -}; -JXG.Math.Statistics.abs = function (b) { - var d, a, c = []; - if (typeof JXG.isArray(arr1)) { - for (d = 0, a = b.length; d < a; d++) { - c[d] = Math.abs(b[d]) - } - } else { - if (typeof b == "number") { - return Math.abs(b) - } else { - c = null - } - } - return c -}; -JXG.Math.Statistics.add = function (c, b) { - var e, a, d = []; - if (typeof JXG.isArray(c) && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] + b - } - } else { - if (typeof c == "number" && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c + b[e] - } - } else { - if (typeof JXG.isArray(c) && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] + b[e] - } - } else { - if (typeof c == "number" && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c + b - } - } else { - d = null - } - } - } - } - return d -}; -JXG.Math.Statistics.divide = function (c, b) { - var e, a, d = []; - if (typeof JXG.isArray(c) && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] / b - } - } else { - if (typeof c == "number" && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c / b[e] - } - } else { - if (typeof JXG.isArray(c) && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] / b[e] - } - } else { - if (typeof c == "number" && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c / b - } - } else { - d = null - } - } - } - } - return d -}; -JXG.Math.Statistics.mod = function (c, b) { - var e, a, d = []; - if (typeof JXG.isArray(c) && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] % b - } - } else { - if (typeof c == "number" && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c % b[e] - } - } else { - if (typeof JXG.isArray(c) && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] % b[e] - } - } else { - if (typeof c == "number" && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c % b - } - } else { - d = null - } - } - } - } - return d -}; -JXG.Math.Statistics.multiply = function (c, b) { - var e, a, d = []; - if (typeof JXG.isArray(c) && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] * b - } - } else { - if (typeof c == "number" && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c * b[e] - } - } else { - if (typeof JXG.isArray(c) && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] * b[e] - } - } else { - if (typeof c == "number" && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c * b - } - } else { - d = null - } - } - } - } - return d -}; -JXG.Math.Statistics.subtract = function (c, b) { - var e, a, d = []; - if (typeof JXG.isArray(c) && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] - b - } - } else { - if (typeof c == "number" && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c - b[e] - } - } else { - if (typeof JXG.isArray(c) && typeof JXG.isArray(b)) { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c[e] - b[e] - } - } else { - if (typeof c == "number" && typeof b == "number") { - for (e = 0, a = Math.min(c.length, b.length); e < a; e++) { - d[e] = c - b - } - } else { - d = null - } - } - } - } - return d -}; -JXG.Math.Symbolic = {}; -JXG.Math.Symbolic.generateSymbolicCoordinatesPartial = function (l, e, d, b) { - function a(k) { - if (b == "underscore") { - return "" + d + "_{" + k + "}" - } else { - if (b == "brace") { - return "" + d + "[" + k + "]" - } else { - return "" + d + "" + k - } - } - } - var g = e.ancestors; - var f = 0; - var h; - for (var m in g) { - h = 0; - if (JXG.isPoint(g[m])) { - for (var c in g[m].ancestors) { - h++ - } - if (h == 0) { - g[m].symbolic.x = g[m].coords.usrCoords[1]; - g[m].symbolic.y = g[m].coords.usrCoords[2] - } else { - f++; - g[m].symbolic.x = a(f); - f++; - g[m].symbolic.y = a(f) - } - } - } - if (JXG.isPoint(e)) { - e.symbolic.x = "x"; - e.symbolic.y = "y" - } - return f -}; -JXG.Math.Symbolic.clearSymbolicCoordinates = function (b) { - for (var a in b.objects) { - if (JXG.isPoint(b.objects[a])) { - b.objects[a].symbolic.x = ""; - b.objects[a].symbolic.y = "" - } - } -}; -JXG.Math.Symbolic.generatePolynomials = function (g, c, d) { - if (d) { - this.generateSymbolicCoordinatesPartial(g, c, "u", "brace") - } - var f = c.ancestors, - h, e = [], - m = [], - l, a, b; - f[c.id] = c; - for (l in f) { - h = 0; - e = []; - if (JXG.isPoint(f[l])) { - for (a in f[l].ancestors) { - h++ - } - if (h > 0) { - e = f[l].generatePolynomial(); - for (b = 0; b < e.length; b++) { - m.push(e[b]) - } - } - } - } - if (d) { - this.clearSymbolicCoordinates(g) - } - return m -}; -JXG.Math.Symbolic.geometricLocusByGroebnerBase = function (e, g, k) { - var f = this.generateSymbolicCoordinatesPartial(e, g, "u", "brace"), - a = this.generatePolynomials(e, g); - var c = a.join(","), - b = new JXG.Coords(JXG.COORDS_BY_USR, [0, 0], e), - d = new JXG.Coords(JXG.COORDS_BY_USR, [e.canvasWidth, e.canvasHeight], e), - h; - if (typeof JXG.Server.modules.geoloci == "undefined") { - JXG.Server.loadModule("geoloci") - } - if (typeof JXG.Server.modules.geoloci == "undefined") { - throw new Error("JSXGraph: Unable to load JXG.Server module 'geoloci.py'.") - } - this.cbp = function (l) { - k(l.datax, l.datay, l.polynomial) - }; - this.cb = JXG.bind(this.cbp, this); - JXG.Server.modules.geoloci.lociCoCoA(b.usrCoords[1], d.usrCoords[1], d.usrCoords[2], b.usrCoords[2], f, c, this.cb); - this.clearSymbolicCoordinates(e) -}; -JXG.Complex = function (a, b) { - this.isComplex = true; - if (typeof a == "undefined") { - a = 0 - } - if (typeof b == "undefined") { - b = 0 - } - if (a.isComplex) { - b = a.imaginary; - a = a.real - } - this.real = a; - this.imaginary = b; - this.absval = 0; - this.angle = 0 -}; -JXG.Complex.prototype.toString = function () { - return "" + this.real + " + " + this.imaginary + "i" -}; -JXG.Complex.prototype.add = function (a) { - if (typeof a == "number") { - this.real += a - } else { - this.real += a.real; - this.imaginary += a.imaginary - } -}; -JXG.Complex.prototype.sub = function (a) { - if (typeof a == "number") { - this.real -= a - } else { - this.real -= a.real; - this.imaginary -= a.imaginary - } -}; -JXG.Complex.prototype.mult = function (a) { - if (typeof a == "number") { - this.real *= a; - this.imaginary *= a - } else { - this.real = this.real * a.real - this.imaginary * a.imaginary; - this.imaginary = this.real * a.imaginary + this.imaginary * a.real - } -}; -JXG.Complex.prototype.div = function (b) { - var a; - if (typeof b == "number") { - if (Math.abs(b) < Math.eps) { - this.real = Infinity; - this.imaginary = Infinity; - return - } - this.real /= b; - this.imaginary /= b - } else { - if ((Math.abs(b.real) < Math.eps) && (Math.abs(b.imaginary) < Math.eps)) { - this.real = Infinity; - this.imaginary = Infinity; - return - } - a = b.real * b.real + b.imaginary * b.imaginary; - this.real = (this.real * b.real + this.imaginary * b.imaginary) / a; - this.imaginary = (this.imaginary * b.real - this.real * b.imaginary) / a - } -}; -JXG.C = {}; -JXG.C.add = function (b, a) { - var c = new JXG.Complex(b); - c.add(a); - return c -}; -JXG.C.sub = function (b, a) { - var c = new JXG.Complex(b); - c.sub(a); - return c -}; -JXG.C.mult = function (b, a) { - var c = new JXG.Complex(b); - c.mult(a); - return c -}; -JXG.C.div = function (b, a) { - var c = new JXG.Complex(b); - c.div(a); - return c -}; -JXG.AbstractRenderer = function () { - this.vOffsetText = 8; - this.enhancedRendering = true -}; -JXG.AbstractRenderer.prototype.drawPoint = function (a) { - var b, c = a.visProp.face; - if (c == "cross" || c == "x") { - b = this.createPrim("path", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "path") - } else { - if (c == "circle" || c == "o") { - b = this.createPrim("circle", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "circle") - } else { - if (c == "square" || c == "[]") { - b = this.createPrim("rect", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "rect") - } else { - if (c == "plus" || c == "+") { - b = this.createPrim("path", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "path") - } else { - if (c == "diamond" || c == "<>") { - b = this.createPrim("path", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "path") - } else { - if (c == "triangleup" || c == "a" || c == "^") { - b = this.createPrim("path", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "path") - } else { - if (c == "triangledown" || c == "v") { - b = this.createPrim("path", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "path") - } else { - if (c == "triangleleft" || c == "<") { - b = this.createPrim("path", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "path") - } else { - if (c == "triangleright" || c == ">") { - b = this.createPrim("path", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "path") - } - } - } - } - } - } - } - } - } - this.setObjectStrokeWidth(a, a.visProp.strokeWidth); - this.setObjectStrokeColor(a, a.visProp.strokeColor, a.visProp.strokeOpacity); - this.setObjectFillColor(a, a.visProp.fillColor, a.visProp.fillOpacity); - this.updatePoint(a) -}; -JXG.AbstractRenderer.prototype.updatePoint = function (b) { - var a = b.visProp.size, - c = b.visProp.face; - if (isNaN(b.coords.scrCoords[2]) || isNaN(b.coords.scrCoords[1])) { - return - } - if (this.enhancedRendering) { - if (!b.visProp.draft) { - this.setObjectStrokeWidth(b, b.visProp.strokeWidth); - this.setObjectStrokeColor(b, b.visProp.strokeColor, b.visProp.strokeOpacity); - this.setObjectFillColor(b, b.visProp.fillColor, b.visProp.fillOpacity) - } else { - this.setDraft(b) - } - } - a *= ((!b.board || !b.board.options.point.zoom) ? 1 : Math.sqrt(b.board.zoomX * b.board.zoomY)); - if (c == "cross" || c == "x") { - this.updatePathPrim(b.rendNode, this.updatePathStringPoint(b, a, "x"), b.board) - } else { - if (c == "circle" || c == "o") { - this.updateCirclePrim(b.rendNode, b.coords.scrCoords[1], b.coords.scrCoords[2], a + 1) - } else { - if (c == "square" || c == "[]") { - this.updateRectPrim(b.rendNode, b.coords.scrCoords[1] - a, b.coords.scrCoords[2] - a, a * 2, a * 2) - } else { - if (c == "plus" || c == "+") { - this.updatePathPrim(b.rendNode, this.updatePathStringPoint(b, a, "+"), b.board) - } else { - if (c == "diamond" || c == "<>") { - this.updatePathPrim(b.rendNode, this.updatePathStringPoint(b, a, "diamond"), b.board) - } else { - if (c == "triangleup" || c == "a") { - this.updatePathPrim(b.rendNode, this.updatePathStringPoint(b, a, "A"), b.board) - } else { - if (c == "triangledown" || c == "v") { - this.updatePathPrim(b.rendNode, this.updatePathStringPoint(b, a, "v"), b.board) - } else { - if (c == "triangleleft" || c == "<") { - this.updatePathPrim(b.rendNode, this.updatePathStringPoint(b, a, "<"), b.board) - } else { - if (c == "triangleright" || c == ">") { - this.updatePathPrim(b.rendNode, this.updatePathStringPoint(b, a, ">"), b.board) - } - } - } - } - } - } - } - } - } - this.setShadow(b) -}; -JXG.AbstractRenderer.prototype.changePointStyle = function (a) { - var b = this.getElementById(a.id); - if (b != null) { - this.remove(b) - } - this.drawPoint(a); - JXG.clearVisPropOld(a); - if (!a.visProp.visible) { - this.hide(a) - } - if (a.visProp.draft) { - this.setDraft(a) - } -}; -JXG.AbstractRenderer.prototype.drawLine = function (a) { - var b = this.createPrim("line", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "lines"); - this.updateLine(a) -}; -JXG.AbstractRenderer.prototype.updateLine = function (b) { - var n = new JXG.Coords(JXG.COORDS_BY_USER, b.point1.coords.usrCoords, b.board), - l = new JXG.Coords(JXG.COORDS_BY_USER, b.point2.coords.usrCoords, b.board), - a, q, f, e, k, d, h, g, c; - this.calcStraight(b, n, l); - this.updateLinePrim(b.rendNode, n.scrCoords[1], n.scrCoords[2], l.scrCoords[1], l.scrCoords[2], b.board); - if (b.image != null) { - a = n.scrCoords[1]; - q = n.scrCoords[2]; - f = l.scrCoords[1]; - e = l.scrCoords[2]; - k = Math.atan2(e - q, f - a); - h = 250; - g = 256; - c = [ - [1, 0, 0], - [h * (1 - Math.cos(k)) + g * Math.sin(k), Math.cos(k), -Math.sin(k)], - [g * (1 - Math.cos(k)) - h * Math.sin(k), Math.sin(k), Math.cos(k)] - ]; - b.imageTransformMatrix = c - } - this.makeArrows(b); - if (this.enhancedRendering) { - if (!b.visProp.draft) { - this.setObjectStrokeWidth(b, b.visProp.strokeWidth); - this.setObjectStrokeColor(b, b.visProp.strokeColor, b.visProp.strokeOpacity); - this.setDashStyle(b, b.visProp); - this.setShadow(b) - } else { - this.setDraft(b) - } - } -}; -JXG.AbstractRenderer.prototype.calcStraight = function (e, n, m) { - var b, a, k, g, q, d, l, v, h, f, u, r; - q = e.visProp.straightFirst; - d = e.visProp.straightLast; - if (Math.abs(n.scrCoords[0]) < JXG.Math.eps) { - q = true - } - if (Math.abs(m.scrCoords[0]) < JXG.Math.eps) { - d = true - } - if (!q && !d) { - return - } - l = []; - l[0] = e.stdform[0] - e.stdform[1] * e.board.origin.scrCoords[1] / e.board.stretchX + e.stdform[2] * e.board.origin.scrCoords[2] / e.board.stretchY; - l[1] = e.stdform[1] / e.board.stretchX; - l[2] = e.stdform[2] / (-e.board.stretchY); - if (isNaN(l[0] + l[1] + l[2])) { - return - } - v = []; - v[0] = JXG.Math.crossProduct(l, [0, 0, 1]); - v[1] = JXG.Math.crossProduct(l, [0, 1, 0]); - v[2] = JXG.Math.crossProduct(l, [-e.board.canvasHeight, 0, 1]); - v[3] = JXG.Math.crossProduct(l, [-e.board.canvasWidth, 1, 0]); - for (h = 0; h < 4; h++) { - if (Math.abs(v[h][0]) > JXG.Math.eps) { - for (f = 2; f > 0; f--) { - v[h][f] /= v[h][0] - } - v[h][0] = 1 - } - } - b = false; - a = false; - if (!q && n.scrCoords[1] >= 0 && n.scrCoords[1] <= e.board.canvasWidth && n.scrCoords[2] >= 0 && n.scrCoords[2] <= e.board.canvasHeight) { - b = true - } - if (!d && m.scrCoords[1] >= 0 && m.scrCoords[1] <= e.board.canvasWidth && m.scrCoords[2] >= 0 && m.scrCoords[2] <= e.board.canvasHeight) { - a = true - } - if (Math.abs(v[1][0]) < JXG.Math.eps) { - k = v[0]; - g = v[2] - } else { - if (Math.abs(v[0][0]) < JXG.Math.eps) { - k = v[1]; - g = v[3] - } else { - if (v[1][2] < 0) { - k = v[0]; - if (v[3][2] > e.board.canvasHeight) { - g = v[2] - } else { - g = v[3] - } - } else { - if (v[1][2] > e.board.canvasHeight) { - k = v[2]; - if (v[3][2] < 0) { - g = v[0] - } else { - g = v[3] - } - } else { - k = v[1]; - if (v[3][2] < 0) { - g = v[0] - } else { - if (v[3][2] > e.board.canvasHeight) { - g = v[2] - } else { - g = v[3] - } - } - } - } - } - } - k = new JXG.Coords(JXG.COORDS_BY_SCREEN, k.slice(1), e.board); - g = new JXG.Coords(JXG.COORDS_BY_SCREEN, g.slice(1), e.board); - if (!b && !a) { - if (!q && d && !this.isSameDirection(n, m, k) && !this.isSameDirection(n, m, g)) { - return - } else { - if (q && !d && !this.isSameDirection(m, n, k) && !this.isSameDirection(m, n, g)) { - return - } - } - } - if (!b) { - if (!a) { - if (this.isSameDirection(n, m, k)) { - if (!this.isSameDirection(n, m, g)) { - r = k; - u = g - } else { - if (e.board.algebra.affineDistance(m.usrCoords, k.usrCoords) < e.board.algebra.affineDistance(m.usrCoords, g.usrCoords)) { - u = k; - r = g - } else { - r = k; - u = g - } - } - } else { - if (this.isSameDirection(n, m, g)) { - u = k; - r = g - } else { - if (e.board.algebra.affineDistance(m.usrCoords, k.usrCoords) < e.board.algebra.affineDistance(m.usrCoords, g.usrCoords)) { - r = k; - u = g - } else { - u = k; - r = g - } - } - } - } else { - if (this.isSameDirection(m, n, k)) { - u = k - } else { - u = g - } - } - } else { - if (!a) { - if (this.isSameDirection(n, m, k)) { - r = k - } else { - r = g - } - } - } - if (u) { - n.setCoordinates(JXG.COORDS_BY_USER, u.usrCoords.slice(1)) - } - if (r) { - m.setCoordinates(JXG.COORDS_BY_USER, r.usrCoords.slice(1)) - } -}; -JXG.AbstractRenderer.prototype.isSameDirection = function (g, d, c) { - var b, a, f, e; - b = d.usrCoords[1] - g.usrCoords[1]; - a = d.usrCoords[2] - g.usrCoords[2]; - f = c.usrCoords[1] - g.usrCoords[1]; - e = c.usrCoords[2] - g.usrCoords[2]; - if (Math.abs(b) < JXG.Math.eps) { - b = 0 - } - if (Math.abs(a) < JXG.Math.eps) { - a = 0 - } - if (Math.abs(f) < JXG.Math.eps) { - f = 0 - } - if (Math.abs(e) < JXG.Math.eps) { - e = 0 - } - if (b >= 0 && f >= 0) { - if ((a >= 0 && e >= 0) || (a <= 0 && e <= 0)) { - return true - } - } else { - if (b <= 0 && f <= 0) { - if ((a >= 0 && e >= 0) || (a <= 0 && e <= 0)) { - return true - } - } - } - return false -}; -JXG.AbstractRenderer.prototype.updateTicks = function (b, d, a, e, c) {}; -JXG.AbstractRenderer.prototype.removeTicks = function (a) { - var b = this.getElementById(a.id + "_ticks"); - this.remove(b) -}; -JXG.AbstractRenderer.prototype.drawArrow = function (a) { - var b = this.createPrim("line", a.id); - this.setObjectStrokeWidth(a, a.visProp.strokeWidth); - this.setObjectStrokeColor(a, a.visProp.strokeColor, a.visProp.strokeOpacity); - this.setObjectFillColor(a, a.visProp.fillColor, a.visProp.fillOpacity); - this.setDashStyle(a, a.visProp); - this.makeArrow(b, a); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "lines"); - this.updateArrow(a) -}; -JXG.AbstractRenderer.prototype.updateArrow = function (a) { - if (this.enhancedRendering) { - if (!a.visProp.draft) { - this.setObjectStrokeWidth(a, a.visProp.strokeWidth); - this.setObjectStrokeColor(a, a.visProp.strokeColor, a.visProp.strokeOpacity); - this.setObjectFillColor(a, a.visProp.fillColor, a.visProp.fillOpacity); - this.setShadow(a); - this.setDashStyle(a, a.visProp) - } else { - this.setDraft(a) - } - } - this.updateLinePrim(a.rendNode, a.point1.coords.scrCoords[1], a.point1.coords.scrCoords[2], a.point2.coords.scrCoords[1], a.point2.coords.scrCoords[2], a.board) -}; -JXG.AbstractRenderer.prototype.drawCurve = function (a) { - var b = this.createPrim("path", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "path"); - this.setObjectStrokeWidth(a, a.visProp.strokeWidth); - this.setObjectStrokeColor(a, a.visProp.strokeColor, a.visProp.strokeOpacity); - this.setObjectFillColor(a, a.visProp.fillColor, a.visProp.fillOpacity); - this.setDashStyle(a, a.visProp); - this.updateCurve(a) -}; -JXG.AbstractRenderer.prototype.updateCurve = function (a) { - if (this.enhancedRendering) { - if (!a.visProp.draft) { - this.setObjectStrokeWidth(a, a.visProp.strokeWidth); - this.setObjectStrokeColor(a, a.visProp.strokeColor, a.visProp.strokeOpacity); - this.setObjectFillColor(a, a.visProp.fillColor, a.visProp.fillOpacity); - this.setDashStyle(a, a.visProp); - this.setShadow(a) - } else { - this.setDraft(a) - } - } - this.updatePathPrim(a.rendNode, this.updatePathStringPrim(a), a.board); - this.makeArrows(a) -}; -JXG.AbstractRenderer.prototype.drawCircle = function (a) { - var b = this.createPrim("ellipse", a.id); - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "ellipse"); - this.updateCircle(a) -}; -JXG.AbstractRenderer.prototype.updateCircle = function (b) { - if (this.enhancedRendering) { - if (!b.visProp.draft) { - this.setObjectStrokeWidth(b, b.visProp.strokeWidth); - this.setObjectStrokeColor(b, b.visProp.strokeColor, b.visProp.strokeOpacity); - this.setObjectFillColor(b, b.visProp.fillColor, b.visProp.fillOpacity); - this.setDashStyle(b, b.visProp); - this.setShadow(b) - } else { - this.setDraft(b) - } - } - var a = b.Radius(); - if (a > 0 && !isNaN(b.midpoint.coords.scrCoords[1] + b.midpoint.coords.scrCoords[2])) { - this.updateEllipsePrim(b.rendNode, b.midpoint.coords.scrCoords[1], b.midpoint.coords.scrCoords[2], (a * b.board.stretchX), (a * b.board.stretchY)) - } -}; -JXG.AbstractRenderer.prototype.drawPolygon = function (a) { - var b = this.createPrim("polygon", a.id); - a.visProp.fillOpacity = 0.3; - this.appendChildPrim(b, a.layer); - this.appendNodesToElement(a, "polygon"); - this.updatePolygon(a) -}; -JXG.AbstractRenderer.prototype.updatePolygon = function (a) { - if (this.enhancedRendering) { - if (!a.visProp.draft) { - this.setObjectStrokeWidth(a, a.visProp.strokeWidth); - this.setObjectFillColor(a, a.visProp.fillColor, a.visProp.fillOpacity); - this.setShadow(a) - } else { - this.setDraft(a) - } - } - this.updatePolygonePrim(a.rendNode, a) -}; -JXG.AbstractRenderer.prototype.drawText = function (a) { - var b; - if (a.display == "html") { - b = this.container.ownerDocument.createElement("div"); - b.style.position = "absolute"; - b.style.color = a.visProp.strokeColor; - b.className = "JXGtext"; - b.style.zIndex = "10"; - this.container.appendChild(b); - b.setAttribute("id", a.id) - } else { - b = this.drawInternalText(a) - } - b.style.fontSize = a.board.options.text.fontSize + "px"; - a.rendNode = b; - a.htmlStr = ""; - this.updateText(a) -}; -JXG.AbstractRenderer.prototype.drawInternalText = function (a) {}; -JXG.AbstractRenderer.prototype.updateText = function (a) { - if (a.visProp.visible == false) { - return - } - if (isNaN(a.coords.scrCoords[1] + a.coords.scrCoords[2])) { - return - } - this.updateTextStyle(a); - if (a.display == "html") { - a.rendNode.style.left = (a.coords.scrCoords[1]) + "px"; - a.rendNode.style.top = (a.coords.scrCoords[2] - this.vOffsetText) + "px"; - a.updateText(); - if (a.htmlStr != a.plaintextStr) { - a.rendNode.innerHTML = a.plaintextStr; - if (a.board.options.text.useASCIIMathML) { - AMprocessNode(a.rendNode, false) - } - a.htmlStr = a.plaintextStr - } - } else { - this.updateInternalText(a) - } -}; -JXG.AbstractRenderer.prototype.updateInternalText = function (a) {}; -JXG.AbstractRenderer.prototype.updateTextStyle = function (b) { - var a; - if (b.visProp.fontSize) { - if (typeof b.visProp.fontSize == "function") { - a = b.visProp.fontSize(); - b.rendNode.style.fontSize = (a > 0 ? a : 0) - } else { - b.rendNode.style.fontSize = (b.visProp.fontSize) - } - } -}; -JXG.AbstractRenderer.prototype.drawImage = function (a) {}; -JXG.AbstractRenderer.prototype.updateImage = function (a) { - this.updateRectPrim(a.rendNode, a.coords.scrCoords[1], a.coords.scrCoords[2] - a.size[1], a.size[0], a.size[1]); - if (a.parent != null) { - this.transformImageParent(a, a.parent.imageTransformMatrix) - } else { - this.transformImageParent(a) - } - this.transformImage(a, a.transformations) -}; -JXG.AbstractRenderer.prototype.drawGrid = function (e) { - var x = e.gridX, - v = e.gridY, - s = new JXG.Coords(JXG.COORDS_BY_SCREEN, [0, 0], e), - f = new JXG.Coords(JXG.COORDS_BY_SCREEN, [e.canvasWidth, e.canvasHeight], e), - y = Math.ceil(s.usrCoords[1]), - u = 0, - w, a, q, r, m, h, n, g, b, c, d; - e.hasGrid = true; - for (w = 0; w <= x + 1; w++) { - if (y - w / x < s.usrCoords[1]) { - u = w - 1; - break - } - } - y = Math.floor(f.usrCoords[1]); - a = 0; - for (w = 0; w <= x + 1; w++) { - if (y + w / x > f.usrCoords[1]) { - a = w - 1; - break - } - } - y = Math.ceil(f.usrCoords[2]); - r = 0; - for (w = 0; w <= v + 1; w++) { - if (y - w / v < f.usrCoords[2]) { - r = w - 1; - break - } - } - y = Math.floor(s.usrCoords[2]); - q = 0; - for (w = 0; w <= v + 1; w++) { - if (y + w / v > s.usrCoords[2]) { - q = w - 1; - break - } - } - m = Math.round((1 / x) * e.stretchX); - h = Math.round((1 / v) * e.stretchY); - n = new JXG.Coords(JXG.COORDS_BY_USER, [Math.ceil(s.usrCoords[1]) - u / x, Math.floor(s.usrCoords[2]) + q / v], e); - g = new JXG.Coords(JXG.COORDS_BY_USER, [Math.floor(f.usrCoords[1]) + a / x, Math.ceil(f.usrCoords[2]) - r / v], e); - b = this.drawVerticalGrid(n, g, m, e); - this.appendChildPrim(b, e.options.layer.grid); - if (!e.snapToGrid) { - c = new Object(); - c.visProp = {}; - c.rendNode = b; - c.elementClass = JXG.OBJECT_CLASS_LINE; - c.id = "gridx"; - JXG.clearVisPropOld(c); - this.setObjectStrokeColor(c, e.gridColor, e.gridOpacity) - } else { - c = new Object(); - c.visProp = {}; - c.rendNode = b; - c.elementClass = JXG.OBJECT_CLASS_LINE; - c.id = "gridx"; - JXG.clearVisPropOld(c); - this.setObjectStrokeColor(c, "#FF8080", 0.5) - } - this.setPropertyPrim(b, "stroke-width", "0.4px"); - if (e.gridDash) { - this.setGridDash("gridx") - } - b = this.drawHorizontalGrid(n, g, h, e); - this.appendChildPrim(b, e.options.layer.grid); - if (!e.snapToGrid) { - c = new Object(); - c.visProp = {}; - c.rendNode = b; - c.elementClass = JXG.OBJECT_CLASS_LINE; - c.id = "gridy"; - JXG.clearVisPropOld(c); - this.setObjectStrokeColor(c, e.gridColor, e.gridOpacity) - } else { - c = new Object(); - c.visProp = {}; - c.rendNode = b; - c.elementClass = JXG.OBJECT_CLASS_LINE; - c.id = "gridy"; - JXG.clearVisPropOld(c); - this.setObjectStrokeColor(c, "#FF8080", 0.5) - } - this.setPropertyPrim(b, "stroke-width", "0.4px"); - if (e.gridDash) { - this.setGridDash("gridy") - } -}; -JXG.AbstractRenderer.prototype.removeGrid = function (a) { - var b = this.getElementById("gridx"); - this.remove(b); - b = this.getElementById("gridy"); - this.remove(b); - a.hasGrid = false -}; -JXG.AbstractRenderer.prototype.hide = function (a) {}; -JXG.AbstractRenderer.prototype.show = function (a) {}; -JXG.AbstractRenderer.prototype.setObjectStrokeWidth = function (b, a) {}; -JXG.AbstractRenderer.prototype.setObjectStrokeColor = function (c, a, b) {}; -JXG.AbstractRenderer.prototype.setObjectFillColor = function (c, a, b) {}; -JXG.AbstractRenderer.prototype.setDraft = function (b) { - if (!b.visProp.draft) { - return - } - var a = b.board.options.elements.draft.color, - c = b.board.options.elements.draft.opacity; - if (b.type == JXG.OBJECTT_TYPE_POLYGON) { - this.setObjectFillColor(b, a, c) - } else { - if (b.elementClass == JXG.OBJECT_CLASS_POINT) { - this.setObjectFillColor(b, a, c) - } else { - this.setObjectFillColor(b, "none", 0) - } - this.setObjectStrokeColor(b, a, c); - this.setObjectStrokeWidth(b, b.board.options.elements.draft.strokeWidth) - } -}; -JXG.AbstractRenderer.prototype.removeDraft = function (a) { - if (a.type == JXG.OBJECT_TYPE_POLYGON) { - this.setObjectFillColor(a, a.visProp.fillColor, a.visProp.fillColorOpacity) - } else { - if (a.type == JXG.OBJECT_CLASS_POINT) { - this.setObjectFillColor(a, a.visProp.fillColor, a.visProp.fillColorOpacity) - } - this.setObjectStrokeColor(a, a.visProp.strokeColor, a.visProp.strokeColorOpacity); - this.setObjectStrokeWidth(a, a.visProp.strokeWidth) - } -}; -JXG.AbstractRenderer.prototype.highlight = function (b) { - var a; - if (b.visProp.draft == false) { - if (b.type == JXG.OBJECT_CLASS_POINT) { - this.setObjectStrokeColor(b, b.visProp.highlightStrokeColor, b.visProp.highlightStrokeOpacity); - this.setObjectFillColor(b, b.visProp.highlightStrokeColor, b.visProp.highlightStrokeOpacity) - } else { - if (b.type == JXG.OBJECT_TYPE_POLYGON) { - this.setObjectFillColor(b, b.visProp.highlightFillColor, b.visProp.highlightFillOpacity); - for (a = 0; a < b.borders.length; a++) { - this.setObjectStrokeColor(b.borders[a], b.borders[a].visProp.highlightStrokeColor, b.visProp.highlightStrokeOpacity) - } - } else { - this.setObjectStrokeColor(b, b.visProp.highlightStrokeColor, b.visProp.highlightStrokeOpacity); - this.setObjectFillColor(b, b.visProp.highlightFillColor, b.visProp.highlightFillOpacity) - } - } - if (b.visProp.highlightStrokeWidth) { - this.setObjectStrokeWidth(b, b.visProp.highlightStrokeWidth) - } - } -}; -JXG.AbstractRenderer.prototype.noHighlight = function (b) { - var a; - if (b.visProp.draft == false) { - if (b.type == JXG.OBJECT_CLASS_POINT) { - this.setObjectStrokeColor(b, b.visProp.strokeColor, b.visProp.strokeOpacity); - this.setObjectFillColor(b, b.visProp.strokeColor, b.visProp.strokeOpacity) - } else { - if (b.type == JXG.OBJECT_TYPE_POLYGON) { - this.setObjectFillColor(b, b.visProp.fillColor, b.visProp.fillOpacity); - for (a = 0; a < b.borders.length; a++) { - this.setObjectStrokeColor(b.borders[a], b.borders[a].visProp.strokeColor, b.visProp.strokeOpacity) - } - } else { - this.setObjectStrokeColor(b, b.visProp.strokeColor, b.visProp.strokeOpacity); - this.setObjectFillColor(b, b.visProp.fillColor, b.visProp.fillOpacity) - } - } - this.setObjectStrokeWidth(b, b.visProp.strokeWidth) - } -}; -JXG.AbstractRenderer.prototype.remove = function (a) {}; -JXG.AbstractRenderer.prototype.suspendRedraw = function () {}; -JXG.AbstractRenderer.prototype.unsuspendRedraw = function () {}; -JXG.AbstractRenderer.prototype.drawZoomBar = function (g) { - var k, c, f, e, b, l, h, a, d; - k = this.container.ownerDocument; - c = k.createElement("div"); - c.className = "JXGtext"; - c.style.color = "#aaaaaa"; - c.style.backgroundColor = "#f5f5f5"; - c.style.padding = "2px"; - c.style.position = "absolute"; - c.style.fontSize = "10px"; - c.style.cursor = "pointer"; - c.style.zIndex = "100"; - this.container.appendChild(c); - c.style.right = "5px"; - c.style.bottom = "5px"; - f = k.createElement("span"); - c.appendChild(f); - f.innerHTML = " – "; - JXG.addEvent(f, "click", g.zoomOut, g); - e = k.createElement("span"); - c.appendChild(e); - e.innerHTML = " o "; - JXG.addEvent(e, "click", g.zoom100, g); - b = k.createElement("span"); - c.appendChild(b); - b.innerHTML = " + "; - JXG.addEvent(b, "click", g.zoomIn, g); - l = k.createElement("span"); - c.appendChild(l); - l.innerHTML = " ← "; - JXG.addEvent(l, "click", g.clickLeftArrow, g); - h = k.createElement("span"); - c.appendChild(h); - h.innerHTML = " ↑ "; - JXG.addEvent(h, "click", g.clickUpArrow, g); - a = k.createElement("span"); - c.appendChild(a); - a.innerHTML = " ↓ "; - JXG.addEvent(a, "click", g.clickDownArrow, g); - d = k.createElement("span"); - c.appendChild(d); - d.innerHTML = " → "; - JXG.addEvent(d, "click", g.clickRightArrow, g) -}; -JXG.AbstractRenderer.prototype.getElementById = function (a) { - return document.getElementById(this.container.id + "_" + a) -}; -JXG.AbstractRenderer.prototype.findSplit = function (w, h, g) { - var n = 0, - l = h, - m, e, x, v, u, c, s, b, q, r, a; - if (g - h < 2) { - return [-1, 0] - } - x = w[h].scrCoords; - v = w[g].scrCoords; - if (isNaN(x[1] + x[2] + v[1] + v[2])) { - return [NaN, g] - } - for (e = h + 1; e < g; e++) { - u = w[e].scrCoords; - c = u[1] - x[1]; - s = u[2] - x[2]; - b = v[1] - x[1]; - q = v[2] - x[2]; - r = b * b + q * q; - if (r >= JXG.Math.eps) { - a = (c * b + s * q) / r; - m = c * c + s * s - a * (c * b + s * q) - } else { - a = 0; - m = c * c + s * s - } - if (a < 0) { - m = c * c + s * s - } else { - if (a > 1) { - c = u[1] - v[1]; - s = u[2] - v[2]; - m = c * c + s * s - } - } - if (m > n) { - n = m; - l = e - } - } - return [Math.sqrt(n), l] -}; -JXG.AbstractRenderer.prototype.RDP = function (f, e, d, b, c) { - var a = this.findSplit(f, e, d); - if (a[0] > b) { - this.RDP(f, e, a[1], b, c); - this.RDP(f, a[1], d, b, c) - } else { - c.push(f[d]) - } -}; -JXG.AbstractRenderer.prototype.RamenDouglasPeuker = function (f, b) { - var d = [], - e, c, a; - a = f.length; - e = 0; - while (e < a && isNaN(f[e].scrCoords[1] + f[e].scrCoords[2])) { - e++ - } - c = a - 1; - while (c > e && isNaN(f[c].scrCoords[1] + f[c].scrCoords[2])) { - c-- - } - if (e > c || e == a) { - return [] - } - d[0] = f[e]; - this.RDP(f, e, c, b, d); - return d -}; -JXG.AbstractRenderer.prototype.setShadow = function (a) {}; -JXG.AbstractRenderer.prototype.updatePathStringPoint = function (c, a, b) {}; -JXG.AbstractRenderer.prototype.eval = function (a) { - if (typeof a == "function") { - return a() - } else { - return a - } -}; -JXG.FileReader = new function () { - this.parseFileContent = function (a, b, d) { - this.request = false; - var c; - try { - this.request = new XMLHttpRequest(); - if (d.toLowerCase() == "raw") { - this.request.overrideMimeType("text/plain; charset=iso-8859-1") - } else { - this.request.overrideMimeType("text/xml; charset=iso-8859-1") - } - } catch (c) { - try { - this.request = new ActiveXObject("Msxml2.XMLHTTP") - } catch (c) { - try { - this.request = new ActiveXObject("Microsoft.XMLHTTP") - } catch (c) { - this.request = false - } - } - } - if (!this.request) { - alert("AJAX not activated!"); - return - } - this.request.open("GET", a, true); - if (d.toLowerCase() == "raw") { - this.cbp = function () { - var e = this.request; - if (e.readyState == 4) { - b(e.responseText) - } - } - } else { - this.cbp = function () { - var e = this.request; - if (e.readyState == 4) { - var f = ""; - if (typeof e.responseStream != "undefined" && e.responseText.slice(0, 2) == "PK") { - f = (new JXG.Util.Unzip(JXG.Util.Base64.decodeAsArray(BinFileReader(this.request)))).unzip(); - f = f[0][0] - } else { - f = e.responseText - } - this.parseString(f, b, d, false) - } - } - } - this.cb = JXG.bind(this.cbp, this); - this.request.onreadystatechange = this.cb; - try { - this.request.send(null) - } catch (c) { - throw new Error("JSXGraph: problems opening " + a + " !") - } - }; - this.cleanWhitespace = function (a) { - var b = a.firstChild; - while (b != null) { - if (b.nodeType == 3 && !/\S/.test(b.nodeValue)) { - a.removeChild(b) - } else { - if (b.nodeType == 1) { - this.cleanWhitespace(b) - } - } - b = b.nextSibling - } - }; - this.stringToXMLTree = function (b) { - if (typeof DOMParser == "undefined") { - DOMParser = function () {}; - DOMParser.prototype.parseFromString = function (f, g) { - if (typeof ActiveXObject != "undefined") { - var e = new ActiveXObject("MSXML.DomDocument"); - e.loadXML(f); - return e - } - } - } - var c = new DOMParser(); - var a = c.parseFromString(b, "text/xml"); - this.cleanWhitespace(a); - return a - }; - this.parseString = function (d, c, e, b) { - var a; - if (e.toLowerCase() == "cdy") { - if (b) { - d = JXG.Util.Base64.decode(d) - } - d = JXG.CinderellaReader.readCinderella(d, c); - c.xmlString = d; - c.afterLoad(); - return - } - if (e.toLowerCase() == "geonext") { - d = JXG.GeonextReader.prepareString(d) - } - if (e.toLowerCase() == "geogebra") { - d = JXG.GeogebraReader.prepareString(d, b) - } - if (e.toLowerCase() == "intergeo") { - if (b) { - d = JXG.Util.Base64.decode(d) - } - d = JXG.IntergeoReader.prepareString(d) - } - c.xmlString = d; - var a = this.stringToXMLTree(d); - this.readElements(a, c, e) - }; - this.readElements = function (a, b, c) { - if (c.toLowerCase() == "geonext") { - b.suspendUpdate(); - if (a.getElementsByTagName("GEONEXT").length != 0) { - JXG.GeonextReader.readGeonext(a, b) - } - b.unsuspendUpdate() - } else { - if (a.getElementsByTagName("geogebra").length != 0) { - JXG.GeogebraReader.readGeogebra(a, b) - } else { - if (c.toLowerCase() == "intergeo") { - JXG.IntergeoReader.readIntergeo(a, b) - } - } - } - b.afterLoad() - } -}; -if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)) { - document.write(' -+ -+ -+ -+ -+ -+

                Timezone Examples

                -+
                -+ -+ -+ -+
                UTC
                Browser
                Chicago
                -+ -+ -+ -+ -+ -Index: examples/date.js -=================================================================== ---- examples/date.js (revision 0) -+++ examples/date.js (revision 0) -@@ -0,0 +1,838 @@ -+/* -+ * Part of "timezone-js" -+ * -+ * Copyright 2010 Matthew Eernisse (mde@fleegix.org) -+ * and Open Source Applications Foundation -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ * Credits: Ideas included from incomplete JS implementation of Olson -+ * parser, "XMLDAte" by Philippe Goetz (philippe.goetz@wanadoo.fr) -+ * -+ * Contributions: -+ * Jan Niehusmann -+ * Ricky Romero -+ * Preston Hunt (prestonhunt@gmail.com), -+ * Dov. B Katz (dov.katz@morganstanley.com), -+ * Peter Bergström (pbergstr@mac.com) -+*/ -+if (typeof fleegix == 'undefined') { var fleegix = {}; } -+if (typeof timezoneJS == 'undefined') { timezoneJS = {}; } -+ -+timezoneJS.Date = function () { -+ var args = Array.prototype.slice.apply(arguments); -+ var t = null; -+ var dt = null; -+ var tz = null; -+ var utc = false; -+ -+ // No args -- create a floating date based on the current local offset -+ if (args.length === 0) { -+ dt = new Date(); -+ } -+ // Date string or timestamp -- assumes floating -+ else if (args.length == 1) { -+ dt = new Date(args[0]); -+ } -+ // year, month, [date,] [hours,] [minutes,] [seconds,] [milliseconds,] [tzId,] [utc] -+ else { -+ t = args[args.length-1]; -+ // Last arg is utc -+ if (typeof t == 'boolean') { -+ utc = args.pop(); -+ tz = args.pop(); -+ } -+ // Last arg is tzId -+ else if (typeof t == 'string') { -+ tz = args.pop(); -+ if (tz == 'Etc/UTC' || tz == 'Etc/GMT') { -+ utc = true; -+ } -+ } -+ -+ // Date string (e.g., '12/27/2006') -+ t = args[args.length-1]; -+ if (typeof t == 'string') { -+ dt = new Date(args[0]); -+ } -+ // Date part numbers -+ else { -+ var a = []; -+ for (var i = 0; i < 8; i++) { -+ a[i] = args[i] || 0; -+ } -+ dt = new Date(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]); -+ } -+ } -+ this._useCache = false; -+ this._tzInfo = {}; -+ this._tzAbbr = ''; -+ this._day = 0; -+ this.year = 0; -+ this.month = 0; -+ this.date = 0; -+ this.hours= 0; -+ this.minutes = 0; -+ this.seconds = 0; -+ this.milliseconds = 0; -+ this.timezone = tz || null; -+ this.utc = utc || false; -+ this.setFromDateObjProxy(dt); -+}; -+ -+timezoneJS.Date.prototype = { -+ getDate: function () { return this.date; }, -+ getDay: function () { return this._day; }, -+ getFullYear: function () { return this.year; }, -+ getMonth: function () { return this.month; }, -+ getYear: function () { return this.year; }, -+ getHours: function () { -+ return this.hours; -+ }, -+ getMilliseconds: function () { -+ return this.milliseconds; -+ }, -+ getMinutes: function () { -+ return this.minutes; -+ }, -+ getSeconds: function () { -+ return this.seconds; -+ }, -+ getTime: function () { -+ var dt = Date.UTC(this.year, this.month, this.date, -+ this.hours, this.minutes, this.seconds, this.milliseconds); -+ return dt + (this.getTimezoneOffset()*60*1000); -+ }, -+ getTimezone: function () { -+ return this.timezone; -+ }, -+ getTimezoneOffset: function () { -+ var info = this.getTimezoneInfo(); -+ return info.tzOffset; -+ }, -+ getTimezoneAbbreviation: function () { -+ var info = this.getTimezoneInfo(); -+ return info.tzAbbr; -+ }, -+ getTimezoneInfo: function () { -+ var res; -+ if (this.utc) { -+ res = { tzOffset: 0, -+ tzAbbr: 'UTC' }; -+ } -+ else { -+ if (this._useCache) { -+ res = this._tzInfo; -+ } -+ else { -+ if (this.timezone) { -+ var dt = new Date(Date.UTC(this.year, this.month, this.date, -+ this.hours, this.minutes, this.seconds, this.milliseconds)); -+ var tz = this.timezone; -+ res = timezoneJS.timezone.getTzInfo(dt, tz); -+ } -+ // Floating -- use local offset -+ else { -+ res = { tzOffset: this.getLocalOffset(), -+ tzAbbr: null }; -+ } -+ this._tzInfo = res; -+ this._useCache = true; -+ } -+ } -+ return res; -+ }, -+ getUTCDate: function () { -+ return this.getUTCDateProxy().getUTCDate(); -+ }, -+ getUTCDay: function () { -+ return this.getUTCDateProxy().getUTCDay(); -+ }, -+ getUTCFullYear: function () { -+ return this.getUTCDateProxy().getUTCFullYear(); -+ }, -+ getUTCHours: function () { -+ return this.getUTCDateProxy().getUTCHours(); -+ }, -+ getUTCMilliseconds: function () { -+ return this.getUTCDateProxy().getUTCMilliseconds(); -+ }, -+ getUTCMinutes: function () { -+ return this.getUTCDateProxy().getUTCMinutes(); -+ }, -+ getUTCMonth: function () { -+ return this.getUTCDateProxy().getUTCMonth(); -+ }, -+ getUTCSeconds: function () { -+ return this.getUTCDateProxy().getUTCSeconds(); -+ }, -+ setDate: function (n) { -+ this.setAttribute('date', n); -+ }, -+ setFullYear: function (n) { -+ this.setAttribute('year', n); -+ }, -+ setMonth: function (n) { -+ this.setAttribute('month', n); -+ }, -+ setYear: function (n) { -+ this.setUTCAttribute('year', n); -+ }, -+ setHours: function (n) { -+ this.setAttribute('hours', n); -+ }, -+ setMilliseconds: function (n) { -+ this.setAttribute('milliseconds', n); -+ }, -+ setMinutes: function (n) { -+ this.setAttribute('minutes', n); -+ }, -+ setSeconds: function (n) { -+ this.setAttribute('seconds', n); -+ }, -+ setTime: function (n) { -+ if (isNaN(n)) { throw new Error('Units must be a number.'); } -+ var dt = new Date(0); -+ dt.setUTCMilliseconds(n - (this.getTimezoneOffset()*60*1000)); -+ this.setFromDateObjProxy(dt, true); -+ }, -+ setUTCDate: function (n) { -+ this.setUTCAttribute('date', n); -+ }, -+ setUTCFullYear: function (n) { -+ this.setUTCAttribute('year', n); -+ }, -+ setUTCHours: function (n) { -+ this.setUTCAttribute('hours', n); -+ }, -+ setUTCMilliseconds: function (n) { -+ this.setUTCAttribute('milliseconds', n); -+ }, -+ setUTCMinutes: function (n) { -+ this.setUTCAttribute('minutes', n); -+ }, -+ setUTCMonth: function (n) { -+ this.setUTCAttribute('month', n); -+ }, -+ setUTCSeconds: function (n) { -+ this.setUTCAttribute('seconds', n); -+ }, -+ toGMTString: function () {}, -+ toLocaleString: function () {}, -+ toLocaleDateString: function () {}, -+ toLocaleTimeString: function () {}, -+ toSource: function () {}, -+ toString: function () { -+ // Get a quick looky at what's in there -+ var str = this.getFullYear() + '-' + (this.getMonth()+1) + '-' + this.getDate(); -+ var hou = this.getHours() || 12; -+ hou = String(hou); -+ var min = String(this.getMinutes()); -+ if (min.length == 1) { min = '0' + min; } -+ var sec = String(this.getSeconds()); -+ if (sec.length == 1) { sec = '0' + sec; } -+ str += ' ' + hou; -+ str += ':' + min; -+ str += ':' + sec; -+ return str; -+ }, -+ toUTCString: function () {}, -+ valueOf: function () { -+ return this.getTime(); -+ }, -+ clone: function () { -+ return new timezoneJS.Date(this.year, this.month, this.date, -+ this.hours, this.minutes, this.seconds, this.milliseconds, -+ this.timezone); -+ }, -+ setFromDateObjProxy: function (dt, fromUTC) { -+ this.year = fromUTC ? dt.getUTCFullYear() : dt.getFullYear(); -+ this.month = fromUTC ? dt.getUTCMonth() : dt.getMonth(); -+ this.date = fromUTC ? dt.getUTCDate() : dt.getDate(); -+ this.hours = fromUTC ? dt.getUTCHours() : dt.getHours(); -+ this.minutes = fromUTC ? dt.getUTCMinutes() : dt.getMinutes(); -+ this.seconds = fromUTC ? dt.getUTCSeconds() : dt.getSeconds(); -+ this.milliseconds = fromUTC ? dt.getUTCMilliseconds() : dt.getMilliseconds(); -+ this._day = fromUTC ? dt.getUTCDay() : dt.getDay(); -+ this._useCache = false; -+ }, -+ getUTCDateProxy: function () { -+ var dt = new Date(Date.UTC(this.year, this.month, this.date, -+ this.hours, this.minutes, this.seconds, this.milliseconds)); -+ dt.setUTCMinutes(dt.getUTCMinutes() + this.getTimezoneOffset()); -+ return dt; -+ }, -+ setAttribute: function (unit, n) { -+ if (isNaN(n)) { throw new Error('Units must be a number.'); } -+ var dt = new Date(this.year, this.month, this.date, -+ this.hours, this.minutes, this.seconds, this.milliseconds); -+ var meth = unit == 'year' ? 'FullYear' : unit.substr(0, 1).toUpperCase() + -+ unit.substr(1); -+ dt['set' + meth](n); -+ this.setFromDateObjProxy(dt); -+ }, -+ setUTCAttribute: function (unit, n) { -+ if (isNaN(n)) { throw new Error('Units must be a number.'); } -+ var meth = unit == 'year' ? 'FullYear' : unit.substr(0, 1).toUpperCase() + -+ unit.substr(1); -+ var dt = this.getUTCDateProxy(); -+ dt['setUTC' + meth](n); -+ dt.setUTCMinutes(dt.getUTCMinutes() - this.getTimezoneOffset()); -+ this.setFromDateObjProxy(dt, true); -+ }, -+ setTimezone: function (tz) { -+ if (tz == 'Etc/UTC' || tz == 'Etc/GMT') { -+ this.utc = true; -+ } -+ this.timezone = tz; -+ this._useCache = false; -+ }, -+ removeTimezone: function () { -+ this.utc = false; -+ this.timezone = null; -+ this._useCache = false; -+ }, -+ civilToJulianDayNumber: function (y, m, d) { -+ var a; -+ // Adjust for zero-based JS-style array -+ m++; -+ if (m > 12) { -+ a = parseInt(m/12, 10); -+ m = m % 12; -+ y += a; -+ } -+ if (m <= 2) { -+ y -= 1; -+ m += 12; -+ } -+ a = Math.floor(y / 100); -+ var b = 2 - a + Math.floor(a / 4); -+ jDt = Math.floor(365.25 * (y + 4716)) + -+ Math.floor(30.6001 * (m + 1)) + -+ d + b - 1524; -+ return jDt; -+ }, -+ getLocalOffset: function () { -+ var dt = this; -+ var d = new Date(dt.getYear(), dt.getMonth(), dt.getDate(), -+ dt.getHours(), dt.getMinutes(), dt.getSeconds()); -+ return d.getTimezoneOffset(); -+ } -+}; -+ -+ -+timezoneJS.timezone = new function() { -+ var _this = this; -+ var monthMap = { 'jan': 0, 'feb': 1, 'mar': 2, 'apr': 3,'may': 4, 'jun': 5, -+ 'jul': 6, 'aug': 7, 'sep': 8, 'oct': 9, 'nov': 10, 'dec': 11 }; -+ var dayMap = {'sun': 0,'mon' :1, 'tue': 2, 'wed': 3, 'thu': 4, 'fri': 5, 'sat': 6 }; -+ var regionMap = {'EST':'northamerica','MST':'northamerica','HST':'northamerica','EST5EDT':'northamerica','CST6CDT':'northamerica','MST7MDT':'northamerica','PST8PDT':'northamerica','America':'northamerica','Pacific':'australasia','Atlantic':'europe','Africa':'africa','Indian':'africa','Antarctica':'antarctica','Asia':'asia','Australia':'australasia','Europe':'europe','WET':'europe','CET':'europe','MET':'europe','EET':'europe'}; -+ var regionExceptions = {'Pacific/Honolulu':'northamerica','Atlantic/Bermuda':'northamerica','Atlantic/Cape_Verde':'africa','Atlantic/St_Helena':'africa','Indian/Kerguelen':'antarctica','Indian/Chagos':'asia','Indian/Maldives':'asia','Indian/Christmas':'australasia','Indian/Cocos':'australasia','America/Danmarkshavn':'europe','America/Scoresbysund':'europe','America/Godthab':'europe','America/Thule':'europe','Asia/Yekaterinburg':'europe','Asia/Omsk':'europe','Asia/Novosibirsk':'europe','Asia/Krasnoyarsk':'europe','Asia/Irkutsk':'europe','Asia/Yakutsk':'europe','Asia/Vladivostok':'europe','Asia/Sakhalin':'europe','Asia/Magadan':'europe','Asia/Kamchatka':'europe','Asia/Anadyr':'europe','Africa/Ceuta':'europe','America/Argentina/Buenos_Aires':'southamerica','America/Argentina/Cordoba':'southamerica','America/Argentina/Tucuman':'southamerica','America/Argentina/La_Rioja':'southamerica','America/Argentina/San_Juan':'southamerica','America/Argentina/Jujuy':'southamerica','America/Argentina/Catamarca':'southamerica','America/Argentina/Mendoza':'southamerica','America/Argentina/Rio_Gallegos':'southamerica','America/Argentina/Ushuaia':'southamerica','America/Aruba':'southamerica','America/La_Paz':'southamerica','America/Noronha':'southamerica','America/Belem':'southamerica','America/Fortaleza':'southamerica','America/Recife':'southamerica','America/Araguaina':'southamerica','America/Maceio':'southamerica','America/Bahia':'southamerica','America/Sao_Paulo':'southamerica','America/Campo_Grande':'southamerica','America/Cuiaba':'southamerica','America/Porto_Velho':'southamerica','America/Boa_Vista':'southamerica','America/Manaus':'southamerica','America/Eirunepe':'southamerica','America/Rio_Branco':'southamerica','America/Santiago':'southamerica','Pacific/Easter':'southamerica','America/Bogota':'southamerica','America/Curacao':'southamerica','America/Guayaquil':'southamerica','Pacific/Galapagos':'southamerica','Atlantic/Stanley':'southamerica','America/Cayenne':'southamerica','America/Guyana':'southamerica','America/Asuncion':'southamerica','America/Lima':'southamerica','Atlantic/South_Georgia':'southamerica','America/Paramaribo':'southamerica','America/Port_of_Spain':'southamerica','America/Montevideo':'southamerica','America/Caracas':'southamerica'}; -+ -+ function invalidTZError(t) { -+ throw new Error('Timezone "' + t + '" is either incorrect, or not loaded in the timezone registry.'); -+ } -+ -+ function builtInLoadZoneFile(fileName, opts) { -+ var ajaxRequest = { -+ url: _this.zoneFileBasePath + '/' + fileName, -+ async: !!opts.async, -+ dataType: "text", -+ done: false, -+ success: function (str) { -+ if (_this.parseZones(str)) { -+ if (typeof opts.callback == 'function') { -+ opts.callback(); -+ } -+ } -+ this.done = true; -+ }, -+ error: function () { -+ throw new Error('Error retrieving "' + url + '" zoneinfo file.'); -+ } -+ }; -+ var res = $.ajax(ajaxRequest); -+ return ajaxRequest.done; -+ } -+ function getRegionForTimezone(tz) { -+ var exc = regionExceptions[tz]; -+ var ret; -+ if (exc) { -+ return exc; -+ } -+ else { -+ reg = tz.split('/')[0]; -+ ret = regionMap[reg]; -+ // If there's nothing listed in the main regions for -+ // this TZ, check the 'backward' links -+ if (!ret) { -+ var link = _this.zones[tz]; -+ if (typeof link == 'string') { -+ return getRegionForTimezone(link); -+ } -+ else { -+ // Backward-compat file hasn't loaded yet, try looking in there -+ if (!_this.loadedZones.backward) { -+ // This is for obvious legacy zones (e.g., Iceland) that -+ // don't even have a prefix like "America/" that look like -+ // normal zones -+ var parsed = _this.loadZoneFile('backward', true); -+ return getRegionForTimezone(tz); -+ } -+ else { -+ invalidTZError(tz); -+ } -+ } -+ } -+ return ret; -+ } -+ } -+ function parseTimeString(str) { -+ var pat = /(\d+)(?::0*(\d*))?(?::0*(\d*))?([wsugz])?$/; -+ var hms = str.match(pat); -+ hms[1] = parseInt(hms[1], 10); -+ hms[2] = hms[2] ? parseInt(hms[2], 10) : 0; -+ hms[3] = hms[3] ? parseInt(hms[3], 10) : 0; -+ return hms; -+ } -+ function getZone(dt, tz) { -+ var t = tz; -+ var zoneList = _this.zones[t]; -+ // Follow links to get to an acutal zone -+ while (typeof zoneList == "string") { -+ t = zoneList; -+ zoneList = _this.zones[t]; -+ } -+ if (!zoneList) { -+ // Backward-compat file hasn't loaded yet, try looking in there -+ if (!_this.loadedZones.backward) { -+ // This is for backward entries like "America/Fort_Wayne" that -+ // getRegionForTimezone *thinks* it has a region file and zone -+ // for (e.g., America => 'northamerica'), but in reality it's a -+ // legacy zone we need the backward file for -+ var parsed = _this.loadZoneFile('backward', true); -+ return getZone(dt, tz); -+ } -+ invalidTZError(t); -+ } -+ for(var i = 0; i < zoneList.length; i++) { -+ var z = zoneList[i]; -+ if (!z[3]) { break; } -+ var yea = parseInt(z[3], 10); -+ var mon = 11; -+ var dat = 31; -+ if (z[4]) { -+ mon = monthMap[z[4].substr(0, 3).toLowerCase()]; -+ dat = parseInt(z[5], 10); -+ } -+ var t = z[6] ? z[6] : '23:59:59'; -+ t = parseTimeString(t); -+ var d = Date.UTC(yea, mon, dat, t[1], t[2], t[3]); -+ if (dt.getTime() < d) { break; } -+ } -+ if (i == zoneList.length) { throw new Error('No Zone found for "' + timezone + '" on ' + dt); } -+ return zoneList[i]; -+ -+ } -+ function getBasicOffset(z) { -+ var off = parseTimeString(z[0]); -+ var adj = z[0].indexOf('-') == 0 ? -1 : 1 -+ off = adj * (((off[1] * 60 + off[2]) *60 + off[3]) * 1000); -+ return -off/60/1000; -+ } -+ -+ // if isUTC is true, date is given in UTC, otherwise it's given -+ // in local time (ie. date.getUTC*() returns local time components) -+ function getRule( date, zone, isUTC ) { -+ var ruleset = zone[1]; -+ var basicOffset = getBasicOffset( zone ); -+ -+ // Convert a date to UTC. Depending on the 'type' parameter, the date -+ // parameter may be: -+ // 'u', 'g', 'z': already UTC (no adjustment) -+ // 's': standard time (adjust for time zone offset but not for DST) -+ // 'w': wall clock time (adjust for both time zone and DST offset) -+ // -+ // DST adjustment is done using the rule given as third argument -+ var convertDateToUTC = function( date, type, rule ) { -+ var offset = 0; -+ -+ if(type == 'u' || type == 'g' || type == 'z') { // UTC -+ offset = 0; -+ } else if(type == 's') { // Standard Time -+ offset = basicOffset; -+ } else if(type == 'w' || !type ) { // Wall Clock Time -+ offset = getAdjustedOffset(basicOffset,rule); -+ } else { -+ throw("unknown type "+type); -+ } -+ offset *= 60*1000; // to millis -+ -+ return new Date( date.getTime() + offset ); -+ } -+ -+ // Step 1: Find applicable rules for this year. -+ // Step 2: Sort the rules by effective date. -+ // Step 3: Check requested date to see if a rule has yet taken effect this year. If not, -+ // Step 4: Get the rules for the previous year. If there isn't an applicable rule for last year, then -+ // there probably is no current time offset since they seem to explicitly turn off the offset -+ // when someone stops observing DST. -+ // FIXME if this is not the case and we'll walk all the way back (ugh). -+ // Step 5: Sort the rules by effective date. -+ // Step 6: Apply the most recent rule before the current time. -+ -+ var convertRuleToExactDateAndTime = function( yearAndRule, prevRule ) -+ { -+ var year = yearAndRule[0]; -+ var rule = yearAndRule[1]; -+ -+ // Assume that the rule applies to the year of the given date. -+ var months = { -+ "Jan": 0, "Feb": 1, "Mar": 2, "Apr": 3, "May": 4, "Jun": 5, -+ "Jul": 6, "Aug": 7, "Sep": 8, "Oct": 9, "Nov": 10, "Dec": 11 -+ }; -+ -+ var days = { -+ "sun": 0, "mon": 1, "tue": 2, "wed": 3, "thu": 4, "fri": 5, "sat": 6 -+ } -+ -+ var hms = parseTimeString( rule[ 5 ] ); -+ var effectiveDate; -+ -+ if ( !isNaN( rule[ 4 ] ) ) // If we have a specific date, use that! -+ { -+ effectiveDate = new Date( Date.UTC( year, months[ rule[ 3 ] ], rule[ 4 ], hms[ 1 ], hms[ 2 ], hms[ 3 ], 0 ) ); -+ } -+ else // Let's hunt for the date. -+ { -+ var targetDay, -+ operator; -+ -+ if ( rule[ 4 ].substr( 0, 4 ) === "last" ) // Example: lastThu -+ { -+ // Start at the last day of the month and work backward. -+ effectiveDate = new Date( Date.UTC( year, months[ rule[ 3 ] ] + 1, 1, hms[ 1 ] - 24, hms[ 2 ], hms[ 3 ], 0 ) ); -+ targetDay = days[ rule[ 4 ].substr( 4, 3 ).toLowerCase( ) ]; -+ operator = "<="; -+ } -+ else // Example: Sun>=15 -+ { -+ // Start at the specified date. -+ effectiveDate = new Date( Date.UTC( year, months[ rule[ 3 ] ], rule[ 4 ].substr( 5 ), hms[ 1 ], hms[ 2 ], hms[ 3 ], 0 ) ); -+ targetDay = days[ rule[ 4 ].substr( 0, 3 ).toLowerCase( ) ]; -+ operator = rule[ 4 ].substr( 3, 2 ); -+ } -+ -+ var ourDay = effectiveDate.getUTCDay( ); -+ -+ if ( operator === ">=" ) // Go forwards. -+ { -+ effectiveDate.setUTCDate( effectiveDate.getUTCDate( ) + ( targetDay - ourDay + ( ( targetDay < ourDay ) ? 7 : 0 ) ) ); -+ } -+ else // Go backwards. Looking for the last of a certain day, or operator is "<=" (less likely). -+ { -+ effectiveDate.setUTCDate( effectiveDate.getUTCDate( ) + ( targetDay - ourDay - ( ( targetDay > ourDay ) ? 7 : 0 ) ) ); -+ } -+ } -+ -+ // if previous rule is given, correct for the fact that the starting time of the current -+ // rule may be specified in local time -+ if(prevRule) { -+ effectiveDate = convertDateToUTC(effectiveDate, hms[4], prevRule); -+ } -+ -+ return effectiveDate; -+ } -+ -+ var indexOf = function(array, what, startAt) { -+ if(array.indexOf) { -+ return array.indexOf(what,startAt); -+ } -+ for (var i = (startAt || 0); i < array.length; i++) { -+ if (array[i] == what) { -+ return i; -+ } -+ } -+ return -1; -+ }; -+ -+ var findApplicableRules = function( year, ruleset ) -+ { -+ var applicableRules = []; -+ -+ for ( var i in ruleset ) -+ { -+ if ( Number( ruleset[ i ][ 0 ] ) <= year ) // Exclude future rules. -+ { -+ if ( -+ Number( ruleset[ i ][ 1 ] ) >= year // Date is in a set range. -+ || ( Number( ruleset[ i ][ 0 ] ) === year && ruleset[ i ][ 1 ] === "only" ) // Date is in an "only" year. -+ || ruleset[ i ][ 1 ] === "max" // We're in a range from the start year to infinity. -+ ) -+ { -+ // It's completely okay to have any number of matches here. -+ // Normally we should only see two, but that doesn't preclude other numbers of matches. -+ // These matches are applicable to this year. -+ applicableRules.push( [year, ruleset[ i ]] ); -+ } -+ } -+ } -+ -+ return applicableRules; -+ } -+ -+ var compareDates = function( a, b, prev ) -+ { -+ if ( a.constructor !== Date ) { -+ a = convertRuleToExactDateAndTime( a, prev ); -+ } else if(prev) { -+ a = convertDateToUTC(a, isUTC?'u':'w', prev); -+ } -+ if ( b.constructor !== Date ) { -+ b = convertRuleToExactDateAndTime( b, prev ); -+ } else if(prev) { -+ b = convertDateToUTC(b, isUTC?'u':'w', prev); -+ } -+ -+ a = Number( a ); -+ b = Number( b ); -+ -+ return a - b; -+ } -+ -+ var year = date.getUTCFullYear( ); -+ var applicableRules; -+ -+ applicableRules = findApplicableRules( year, _this.rules[ ruleset ] ); -+ applicableRules.push( date ); -+ // While sorting, the time zone in which the rule starting time is specified -+ // is ignored. This is ok as long as the timespan between two DST changes is -+ // larger than the DST offset, which is probably always true. -+ // As the given date may indeed be close to a DST change, it may get sorted -+ // to a wrong position (off by one), which is corrected below. -+ applicableRules.sort( compareDates ); -+ -+ if ( indexOf(applicableRules, date ) < 2 ) { // If there are not enough past DST rules... -+ applicableRules = applicableRules.concat(findApplicableRules( year-1, _this.rules[ ruleset ] )); -+ applicableRules.sort( compareDates ); -+ } -+ -+ var pinpoint = indexOf(applicableRules, date); -+ if ( pinpoint > 1 && compareDates( date, applicableRules[pinpoint-1], applicableRules[pinpoint-2][1] ) < 0 ) { -+ // the previous rule does not really apply, take the one before that -+ return applicableRules[ pinpoint - 2 ][1]; -+ } else if ( pinpoint > 0 && pinpoint < applicableRules.length - 1 && compareDates( date, applicableRules[pinpoint+1], applicableRules[pinpoint-1][1] ) > 0) { -+ // the next rule does already apply, take that one -+ return applicableRules[ pinpoint + 1 ][1]; -+ } else if ( pinpoint === 0 ) { -+ // no applicable rule found in this and in previous year -+ return null; -+ } else { -+ return applicableRules[ pinpoint - 1 ][1]; -+ } -+ } -+ function getAdjustedOffset(off, rule) { -+ var save = rule[6]; -+ var t = parseTimeString(save); -+ var adj = save.indexOf('-') == 0 ? -1 : 1; -+ var ret = (adj*(((t[1] *60 + t[2]) * 60 + t[3]) * 1000)); -+ ret = ret/60/1000; -+ ret -= off -+ ret = -Math.ceil(ret); -+ return ret; -+ } -+ function getAbbreviation(zone, rule) { -+ var res; -+ var base = zone[2]; -+ if (base.indexOf('%s') > -1) { -+ var repl; -+ if (rule) { -+ repl = rule[7]=='-'?'':rule[7]; -+ } -+ // FIXME: Right now just falling back to Standard -- -+ // apparently ought to use the last valid rule, -+ // although in practice that always ought to be Standard -+ else { -+ repl = 'S'; -+ } -+ res = base.replace('%s', repl); -+ } -+ else if (base.indexOf('/') > -1) { -+ // chose one of two alternative strings -+ var t = parseTimeString(rule[6]); -+ var isDst = (t[1])||(t[2])||(t[3]); -+ res = base.split("/",2)[isDst?1:0]; -+ } else { -+ res = base; -+ } -+ return res; -+ } -+ -+ this.zoneFileBasePath; -+ this.zoneFiles = ['africa', 'antarctica', 'asia', -+ 'australasia', 'backward', 'etcetera', 'europe', -+ 'northamerica', 'pacificnew', 'southamerica']; -+ this.loadingSchemes = { -+ PRELOAD_ALL: 'preloadAll', -+ LAZY_LOAD: 'lazyLoad', -+ MANUAL_LOAD: 'manualLoad' -+ } -+ this.loadingScheme = this.loadingSchemes.LAZY_LOAD; -+ this.defaultZoneFile = -+ this.loadingScheme == this.loadingSchemes.PRELOAD_ALL ? -+ this.zoneFiles : 'northamerica'; -+ this.loadedZones = {}; -+ this.zones = {}; -+ this.rules = {}; -+ -+ this.init = function (o) { -+ var opts = { async: true }; -+ var sync = false; -+ var def = this.defaultZoneFile; -+ var parsed; -+ // Override default with any passed-in opts -+ for (var p in o) { -+ opts[p] = o[p]; -+ } -+ if (typeof def == 'string') { -+ parsed = this.loadZoneFile(def, opts); -+ } -+ else { -+ if (opts.callback) { -+ throw new Error('Async load with callback is not supported for multiple default zonefiles.'); -+ } -+ for (var i = 0; i < def.length; i++) { -+ parsed = this.loadZoneFile(def[i], opts); -+ } -+ } -+ }; -+ // Get the zone files via XHR -- if the sync flag -+ // is set to true, it's being called by the lazy-loading -+ // mechanism, so the result needs to be returned inline -+ this.loadZoneFile = function (fileName, opts) { -+ if (typeof this.zoneFileBasePath == 'undefined') { -+ throw new Error('Please define a base path to your zone file directory -- timezoneJS.timezone.zoneFileBasePath.'); -+ } -+ // ======================== -+ // Define your own transport mechanism here -+ // and comment out the default below -+ // ======================== -+ var parsed = builtInLoadZoneFile(fileName, opts); -+ this.loadedZones[fileName] = parsed; -+ return parsed; -+ }; -+ this.loadZoneJSONData = function (url, sync) { -+ var processData = function (data) { -+ data = eval('('+ data +')'); -+ for (var z in data.zones) { -+ _this.zones[z] = data.zones[z]; -+ } -+ for (var r in data.rules) { -+ _this.rules[r] = data.rules[r]; -+ } -+ } -+ if (sync) { -+ var data = fleegix.xhr.doGet(url); -+ processData(data); -+ } -+ else { -+ fleegix.xhr.doGet(processData, url); -+ } -+ }; -+ this.loadZoneDataFromObject = function (data) { -+ if (!data) { return; } -+ for (var z in data.zones) { -+ _this.zones[z] = data.zones[z]; -+ } -+ for (var r in data.rules) { -+ _this.rules[r] = data.rules[r]; -+ } -+ }; -+ this.getAllZones = function() { -+ var arr = []; -+ for (z in this.zones) { arr.push(z); } -+ return arr.sort(); -+ }; -+ this.parseZones = function(str) { -+ var s = ''; -+ var lines = str.split('\n'); -+ var arr = []; -+ var chunk = ''; -+ var zone = null; -+ var rule = null; -+ for (var i = 0; i < lines.length; i++) { -+ l = lines[i]; -+ if (l.match(/^\s/)) { -+ l = "Zone " + zone + l; -+ } -+ l = l.split("#")[0]; -+ if (l.length > 3) { -+ arr = l.split(/\s+/); -+ chunk = arr.shift(); -+ switch(chunk) { -+ case 'Zone': -+ zone = arr.shift(); -+ if (!_this.zones[zone]) { _this.zones[zone] = [] } -+ _this.zones[zone].push(arr); -+ break; -+ case 'Rule': -+ rule = arr.shift(); -+ if (!_this.rules[rule]) { _this.rules[rule] = [] } -+ _this.rules[rule].push(arr); -+ break; -+ case 'Link': -+ // No zones for these should already exist -+ if (_this.zones[arr[1]]) { -+ throw new Error('Error with Link ' + arr[1]); -+ } -+ // Create the link -+ _this.zones[arr[1]] = arr[0]; -+ break; -+ case 'Leap': -+ break; -+ default: -+ // Fail silently -+ break; -+ } -+ } -+ } -+ return true; -+ }; -+ this.getTzInfo = function(dt, tz, isUTC) { -+ // Lazy-load any zones not yet loaded -+ if (this.loadingScheme == this.loadingSchemes.LAZY_LOAD) { -+ // Get the correct region for the zone -+ var zoneFile = getRegionForTimezone(tz); -+ if (!zoneFile) { -+ throw new Error('Not a valid timezone ID.'); -+ } -+ else { -+ if (!this.loadedZones[zoneFile]) { -+ // Get the file and parse it -- use synchronous XHR -+ var parsed = this.loadZoneFile(zoneFile, true); -+ } -+ } -+ } -+ var zone = getZone(dt, tz); -+ var off = getBasicOffset(zone); -+ // See if the offset needs adjustment -+ var rule = getRule(dt, zone, isUTC); -+ if (rule) { -+ off = getAdjustedOffset(off, rule); -+ } -+ var abbr = getAbbreviation(zone, rule); -+ return { tzOffset: off, tzAbbr: abbr }; -+ } -+} -+ -+ -Index: examples/tz/iso3166.tab -=================================================================== ---- examples/tz/iso3166.tab (revision 0) -+++ examples/tz/iso3166.tab (revision 0) -@@ -0,0 +1,271 @@ -+#
                -+# @(#)iso3166.tab	8.6
                -+# This file is in the public domain, so clarified as of
                -+# 2009-05-17 by Arthur David Olson.
                -+# ISO 3166 alpha-2 country codes
                -+#
                -+# From Paul Eggert (2006-09-27):
                -+#
                -+# This file contains a table with the following columns:
                -+# 1.  ISO 3166-1 alpha-2 country code, current as of
                -+#     ISO 3166-1 Newsletter VI-1 (2007-09-21).  See:
                -+#     
                -+#     ISO 3166 Maintenance agency (ISO 3166/MA)
                -+#     .
                -+# 2.  The usual English name for the country,
                -+#     chosen so that alphabetic sorting of subsets produces helpful lists.
                -+#     This is not the same as the English name in the ISO 3166 tables.
                -+#
                -+# Columns are separated by a single tab.
                -+# The table is sorted by country code.
                -+#
                -+# Lines beginning with `#' are comments.
                -+#
                -+#country-
                -+#code	country name
                -+AD	Andorra
                -+AE	United Arab Emirates
                -+AF	Afghanistan
                -+AG	Antigua & Barbuda
                -+AI	Anguilla
                -+AL	Albania
                -+AM	Armenia
                -+AN	Netherlands Antilles
                -+AO	Angola
                -+AQ	Antarctica
                -+AR	Argentina
                -+AS	Samoa (American)
                -+AT	Austria
                -+AU	Australia
                -+AW	Aruba
                -+AX	Aaland Islands
                -+AZ	Azerbaijan
                -+BA	Bosnia & Herzegovina
                -+BB	Barbados
                -+BD	Bangladesh
                -+BE	Belgium
                -+BF	Burkina Faso
                -+BG	Bulgaria
                -+BH	Bahrain
                -+BI	Burundi
                -+BJ	Benin
                -+BL	St Barthelemy
                -+BM	Bermuda
                -+BN	Brunei
                -+BO	Bolivia
                -+BR	Brazil
                -+BS	Bahamas
                -+BT	Bhutan
                -+BV	Bouvet Island
                -+BW	Botswana
                -+BY	Belarus
                -+BZ	Belize
                -+CA	Canada
                -+CC	Cocos (Keeling) Islands
                -+CD	Congo (Dem. Rep.)
                -+CF	Central African Rep.
                -+CG	Congo (Rep.)
                -+CH	Switzerland
                -+CI	Cote d'Ivoire
                -+CK	Cook Islands
                -+CL	Chile
                -+CM	Cameroon
                -+CN	China
                -+CO	Colombia
                -+CR	Costa Rica
                -+CU	Cuba
                -+CV	Cape Verde
                -+CX	Christmas Island
                -+CY	Cyprus
                -+CZ	Czech Republic
                -+DE	Germany
                -+DJ	Djibouti
                -+DK	Denmark
                -+DM	Dominica
                -+DO	Dominican Republic
                -+DZ	Algeria
                -+EC	Ecuador
                -+EE	Estonia
                -+EG	Egypt
                -+EH	Western Sahara
                -+ER	Eritrea
                -+ES	Spain
                -+ET	Ethiopia
                -+FI	Finland
                -+FJ	Fiji
                -+FK	Falkland Islands
                -+FM	Micronesia
                -+FO	Faroe Islands
                -+FR	France
                -+GA	Gabon
                -+GB	Britain (UK)
                -+GD	Grenada
                -+GE	Georgia
                -+GF	French Guiana
                -+GG	Guernsey
                -+GH	Ghana
                -+GI	Gibraltar
                -+GL	Greenland
                -+GM	Gambia
                -+GN	Guinea
                -+GP	Guadeloupe
                -+GQ	Equatorial Guinea
                -+GR	Greece
                -+GS	South Georgia & the South Sandwich Islands
                -+GT	Guatemala
                -+GU	Guam
                -+GW	Guinea-Bissau
                -+GY	Guyana
                -+HK	Hong Kong
                -+HM	Heard Island & McDonald Islands
                -+HN	Honduras
                -+HR	Croatia
                -+HT	Haiti
                -+HU	Hungary
                -+ID	Indonesia
                -+IE	Ireland
                -+IL	Israel
                -+IM	Isle of Man
                -+IN	India
                -+IO	British Indian Ocean Territory
                -+IQ	Iraq
                -+IR	Iran
                -+IS	Iceland
                -+IT	Italy
                -+JE	Jersey
                -+JM	Jamaica
                -+JO	Jordan
                -+JP	Japan
                -+KE	Kenya
                -+KG	Kyrgyzstan
                -+KH	Cambodia
                -+KI	Kiribati
                -+KM	Comoros
                -+KN	St Kitts & Nevis
                -+KP	Korea (North)
                -+KR	Korea (South)
                -+KW	Kuwait
                -+KY	Cayman Islands
                -+KZ	Kazakhstan
                -+LA	Laos
                -+LB	Lebanon
                -+LC	St Lucia
                -+LI	Liechtenstein
                -+LK	Sri Lanka
                -+LR	Liberia
                -+LS	Lesotho
                -+LT	Lithuania
                -+LU	Luxembourg
                -+LV	Latvia
                -+LY	Libya
                -+MA	Morocco
                -+MC	Monaco
                -+MD	Moldova
                -+ME	Montenegro
                -+MF	St Martin (French part)
                -+MG	Madagascar
                -+MH	Marshall Islands
                -+MK	Macedonia
                -+ML	Mali
                -+MM	Myanmar (Burma)
                -+MN	Mongolia
                -+MO	Macau
                -+MP	Northern Mariana Islands
                -+MQ	Martinique
                -+MR	Mauritania
                -+MS	Montserrat
                -+MT	Malta
                -+MU	Mauritius
                -+MV	Maldives
                -+MW	Malawi
                -+MX	Mexico
                -+MY	Malaysia
                -+MZ	Mozambique
                -+NA	Namibia
                -+NC	New Caledonia
                -+NE	Niger
                -+NF	Norfolk Island
                -+NG	Nigeria
                -+NI	Nicaragua
                -+NL	Netherlands
                -+NO	Norway
                -+NP	Nepal
                -+NR	Nauru
                -+NU	Niue
                -+NZ	New Zealand
                -+OM	Oman
                -+PA	Panama
                -+PE	Peru
                -+PF	French Polynesia
                -+PG	Papua New Guinea
                -+PH	Philippines
                -+PK	Pakistan
                -+PL	Poland
                -+PM	St Pierre & Miquelon
                -+PN	Pitcairn
                -+PR	Puerto Rico
                -+PS	Palestine
                -+PT	Portugal
                -+PW	Palau
                -+PY	Paraguay
                -+QA	Qatar
                -+RE	Reunion
                -+RO	Romania
                -+RS	Serbia
                -+RU	Russia
                -+RW	Rwanda
                -+SA	Saudi Arabia
                -+SB	Solomon Islands
                -+SC	Seychelles
                -+SD	Sudan
                -+SE	Sweden
                -+SG	Singapore
                -+SH	St Helena
                -+SI	Slovenia
                -+SJ	Svalbard & Jan Mayen
                -+SK	Slovakia
                -+SL	Sierra Leone
                -+SM	San Marino
                -+SN	Senegal
                -+SO	Somalia
                -+SR	Suriname
                -+ST	Sao Tome & Principe
                -+SV	El Salvador
                -+SY	Syria
                -+SZ	Swaziland
                -+TC	Turks & Caicos Is
                -+TD	Chad
                -+TF	French Southern & Antarctic Lands
                -+TG	Togo
                -+TH	Thailand
                -+TJ	Tajikistan
                -+TK	Tokelau
                -+TL	East Timor
                -+TM	Turkmenistan
                -+TN	Tunisia
                -+TO	Tonga
                -+TR	Turkey
                -+TT	Trinidad & Tobago
                -+TV	Tuvalu
                -+TW	Taiwan
                -+TZ	Tanzania
                -+UA	Ukraine
                -+UG	Uganda
                -+UM	US minor outlying islands
                -+US	United States
                -+UY	Uruguay
                -+UZ	Uzbekistan
                -+VA	Vatican City
                -+VC	St Vincent
                -+VE	Venezuela
                -+VG	Virgin Islands (UK)
                -+VI	Virgin Islands (US)
                -+VN	Vietnam
                -+VU	Vanuatu
                -+WF	Wallis & Futuna
                -+WS	Samoa (western)
                -+YE	Yemen
                -+YT	Mayotte
                -+ZA	South Africa
                -+ZM	Zambia
                -+ZW	Zimbabwe
                -Index: examples/tz/zone.tab
                -===================================================================
                ---- examples/tz/zone.tab	(revision 0)
                -+++ examples/tz/zone.tab	(revision 0)
                -@@ -0,0 +1,437 @@
                -+# 
                -+# @(#)zone.tab	8.41
                -+# This file is in the public domain, so clarified as of
                -+# 2009-05-17 by Arthur David Olson.
                -+#
                -+# TZ zone descriptions
                -+#
                -+# From Paul Eggert (1996-08-05):
                -+#
                -+# This file contains a table with the following columns:
                -+# 1.  ISO 3166 2-character country code.  See the file `iso3166.tab'.
                -+# 2.  Latitude and longitude of the zone's principal location
                -+#     in ISO 6709 sign-degrees-minutes-seconds format,
                -+#     either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS,
                -+#     first latitude (+ is north), then longitude (+ is east).
                -+# 3.  Zone name used in value of TZ environment variable.
                -+# 4.  Comments; present if and only if the country has multiple rows.
                -+#
                -+# Columns are separated by a single tab.
                -+# The table is sorted first by country, then an order within the country that
                -+# (1) makes some geographical sense, and
                -+# (2) puts the most populous zones first, where that does not contradict (1).
                -+#
                -+# Lines beginning with `#' are comments.
                -+#
                -+#country-
                -+#code	coordinates	TZ			comments
                -+AD	+4230+00131	Europe/Andorra
                -+AE	+2518+05518	Asia/Dubai
                -+AF	+3431+06912	Asia/Kabul
                -+AG	+1703-06148	America/Antigua
                -+AI	+1812-06304	America/Anguilla
                -+AL	+4120+01950	Europe/Tirane
                -+AM	+4011+04430	Asia/Yerevan
                -+AN	+1211-06900	America/Curacao
                -+AO	-0848+01314	Africa/Luanda
                -+AQ	-7750+16636	Antarctica/McMurdo	McMurdo Station, Ross Island
                -+AQ	-9000+00000	Antarctica/South_Pole	Amundsen-Scott Station, South Pole
                -+AQ	-6734-06808	Antarctica/Rothera	Rothera Station, Adelaide Island
                -+AQ	-6448-06406	Antarctica/Palmer	Palmer Station, Anvers Island
                -+AQ	-6736+06253	Antarctica/Mawson	Mawson Station, Holme Bay
                -+AQ	-6835+07758	Antarctica/Davis	Davis Station, Vestfold Hills
                -+AQ	-6617+11031	Antarctica/Casey	Casey Station, Bailey Peninsula
                -+AQ	-7824+10654	Antarctica/Vostok	Vostok Station, Lake Vostok
                -+AQ	-6640+14001	Antarctica/DumontDUrville	Dumont-d'Urville Station, Terre Adelie
                -+AQ	-690022+0393524	Antarctica/Syowa	Syowa Station, E Ongul I
                -+AQ	-5430+15857	Antarctica/Macquarie	Macquarie Island Station, Macquarie Island
                -+AR	-3436-05827	America/Argentina/Buenos_Aires	Buenos Aires (BA, CF)
                -+AR	-3124-06411	America/Argentina/Cordoba	most locations (CB, CC, CN, ER, FM, MN, SE, SF)
                -+AR	-2447-06525	America/Argentina/Salta	(SA, LP, NQ, RN)
                -+AR	-2411-06518	America/Argentina/Jujuy	Jujuy (JY)
                -+AR	-2649-06513	America/Argentina/Tucuman	Tucuman (TM)
                -+AR	-2828-06547	America/Argentina/Catamarca	Catamarca (CT), Chubut (CH)
                -+AR	-2926-06651	America/Argentina/La_Rioja	La Rioja (LR)
                -+AR	-3132-06831	America/Argentina/San_Juan	San Juan (SJ)
                -+AR	-3253-06849	America/Argentina/Mendoza	Mendoza (MZ)
                -+AR	-3319-06621	America/Argentina/San_Luis	San Luis (SL)
                -+AR	-5138-06913	America/Argentina/Rio_Gallegos	Santa Cruz (SC)
                -+AR	-5448-06818	America/Argentina/Ushuaia	Tierra del Fuego (TF)
                -+AS	-1416-17042	Pacific/Pago_Pago
                -+AT	+4813+01620	Europe/Vienna
                -+AU	-3133+15905	Australia/Lord_Howe	Lord Howe Island
                -+AU	-4253+14719	Australia/Hobart	Tasmania - most locations
                -+AU	-3956+14352	Australia/Currie	Tasmania - King Island
                -+AU	-3749+14458	Australia/Melbourne	Victoria
                -+AU	-3352+15113	Australia/Sydney	New South Wales - most locations
                -+AU	-3157+14127	Australia/Broken_Hill	New South Wales - Yancowinna
                -+AU	-2728+15302	Australia/Brisbane	Queensland - most locations
                -+AU	-2016+14900	Australia/Lindeman	Queensland - Holiday Islands
                -+AU	-3455+13835	Australia/Adelaide	South Australia
                -+AU	-1228+13050	Australia/Darwin	Northern Territory
                -+AU	-3157+11551	Australia/Perth	Western Australia - most locations
                -+AU	-3143+12852	Australia/Eucla	Western Australia - Eucla area
                -+AW	+1230-06958	America/Aruba
                -+AX	+6006+01957	Europe/Mariehamn
                -+AZ	+4023+04951	Asia/Baku
                -+BA	+4352+01825	Europe/Sarajevo
                -+BB	+1306-05937	America/Barbados
                -+BD	+2343+09025	Asia/Dhaka
                -+BE	+5050+00420	Europe/Brussels
                -+BF	+1222-00131	Africa/Ouagadougou
                -+BG	+4241+02319	Europe/Sofia
                -+BH	+2623+05035	Asia/Bahrain
                -+BI	-0323+02922	Africa/Bujumbura
                -+BJ	+0629+00237	Africa/Porto-Novo
                -+BL	+1753-06251	America/St_Barthelemy
                -+BM	+3217-06446	Atlantic/Bermuda
                -+BN	+0456+11455	Asia/Brunei
                -+BO	-1630-06809	America/La_Paz
                -+BR	-0351-03225	America/Noronha	Atlantic islands
                -+BR	-0127-04829	America/Belem	Amapa, E Para
                -+BR	-0343-03830	America/Fortaleza	NE Brazil (MA, PI, CE, RN, PB)
                -+BR	-0803-03454	America/Recife	Pernambuco
                -+BR	-0712-04812	America/Araguaina	Tocantins
                -+BR	-0940-03543	America/Maceio	Alagoas, Sergipe
                -+BR	-1259-03831	America/Bahia	Bahia
                -+BR	-2332-04637	America/Sao_Paulo	S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)
                -+BR	-2027-05437	America/Campo_Grande	Mato Grosso do Sul
                -+BR	-1535-05605	America/Cuiaba	Mato Grosso
                -+BR	-0226-05452	America/Santarem	W Para
                -+BR	-0846-06354	America/Porto_Velho	Rondonia
                -+BR	+0249-06040	America/Boa_Vista	Roraima
                -+BR	-0308-06001	America/Manaus	E Amazonas
                -+BR	-0640-06952	America/Eirunepe	W Amazonas
                -+BR	-0958-06748	America/Rio_Branco	Acre
                -+BS	+2505-07721	America/Nassau
                -+BT	+2728+08939	Asia/Thimphu
                -+BW	-2439+02555	Africa/Gaborone
                -+BY	+5354+02734	Europe/Minsk
                -+BZ	+1730-08812	America/Belize
                -+CA	+4734-05243	America/St_Johns	Newfoundland Time, including SE Labrador
                -+CA	+4439-06336	America/Halifax	Atlantic Time - Nova Scotia (most places), PEI
                -+CA	+4612-05957	America/Glace_Bay	Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971
                -+CA	+4606-06447	America/Moncton	Atlantic Time - New Brunswick
                -+CA	+5320-06025	America/Goose_Bay	Atlantic Time - Labrador - most locations
                -+CA	+5125-05707	America/Blanc-Sablon	Atlantic Standard Time - Quebec - Lower North Shore
                -+CA	+4531-07334	America/Montreal	Eastern Time - Quebec - most locations
                -+CA	+4339-07923	America/Toronto	Eastern Time - Ontario - most locations
                -+CA	+4901-08816	America/Nipigon	Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973
                -+CA	+4823-08915	America/Thunder_Bay	Eastern Time - Thunder Bay, Ontario
                -+CA	+6344-06828	America/Iqaluit	Eastern Time - east Nunavut - most locations
                -+CA	+6608-06544	America/Pangnirtung	Eastern Time - Pangnirtung, Nunavut
                -+CA	+744144-0944945	America/Resolute	Eastern Standard Time - Resolute, Nunavut
                -+CA	+484531-0913718	America/Atikokan	Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
                -+CA	+624900-0920459	America/Rankin_Inlet	Central Time - central Nunavut
                -+CA	+4953-09709	America/Winnipeg	Central Time - Manitoba & west Ontario
                -+CA	+4843-09434	America/Rainy_River	Central Time - Rainy River & Fort Frances, Ontario
                -+CA	+5024-10439	America/Regina	Central Standard Time - Saskatchewan - most locations
                -+CA	+5017-10750	America/Swift_Current	Central Standard Time - Saskatchewan - midwest
                -+CA	+5333-11328	America/Edmonton	Mountain Time - Alberta, east British Columbia & west Saskatchewan
                -+CA	+690650-1050310	America/Cambridge_Bay	Mountain Time - west Nunavut
                -+CA	+6227-11421	America/Yellowknife	Mountain Time - central Northwest Territories
                -+CA	+682059-1334300	America/Inuvik	Mountain Time - west Northwest Territories
                -+CA	+5946-12014	America/Dawson_Creek	Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia
                -+CA	+4916-12307	America/Vancouver	Pacific Time - west British Columbia
                -+CA	+6043-13503	America/Whitehorse	Pacific Time - south Yukon
                -+CA	+6404-13925	America/Dawson	Pacific Time - north Yukon
                -+CC	-1210+09655	Indian/Cocos
                -+CD	-0418+01518	Africa/Kinshasa	west Dem. Rep. of Congo
                -+CD	-1140+02728	Africa/Lubumbashi	east Dem. Rep. of Congo
                -+CF	+0422+01835	Africa/Bangui
                -+CG	-0416+01517	Africa/Brazzaville
                -+CH	+4723+00832	Europe/Zurich
                -+CI	+0519-00402	Africa/Abidjan
                -+CK	-2114-15946	Pacific/Rarotonga
                -+CL	-3327-07040	America/Santiago	most locations
                -+CL	-2709-10926	Pacific/Easter	Easter Island & Sala y Gomez
                -+CM	+0403+00942	Africa/Douala
                -+CN	+3114+12128	Asia/Shanghai	east China - Beijing, Guangdong, Shanghai, etc.
                -+CN	+4545+12641	Asia/Harbin	Heilongjiang (except Mohe), Jilin
                -+CN	+2934+10635	Asia/Chongqing	central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
                -+CN	+4348+08735	Asia/Urumqi	most of Tibet & Xinjiang
                -+CN	+3929+07559	Asia/Kashgar	west Tibet & Xinjiang
                -+CO	+0436-07405	America/Bogota
                -+CR	+0956-08405	America/Costa_Rica
                -+CU	+2308-08222	America/Havana
                -+CV	+1455-02331	Atlantic/Cape_Verde
                -+CX	-1025+10543	Indian/Christmas
                -+CY	+3510+03322	Asia/Nicosia
                -+CZ	+5005+01426	Europe/Prague
                -+DE	+5230+01322	Europe/Berlin
                -+DJ	+1136+04309	Africa/Djibouti
                -+DK	+5540+01235	Europe/Copenhagen
                -+DM	+1518-06124	America/Dominica
                -+DO	+1828-06954	America/Santo_Domingo
                -+DZ	+3647+00303	Africa/Algiers
                -+EC	-0210-07950	America/Guayaquil	mainland
                -+EC	-0054-08936	Pacific/Galapagos	Galapagos Islands
                -+EE	+5925+02445	Europe/Tallinn
                -+EG	+3003+03115	Africa/Cairo
                -+EH	+2709-01312	Africa/El_Aaiun
                -+ER	+1520+03853	Africa/Asmara
                -+ES	+4024-00341	Europe/Madrid	mainland
                -+ES	+3553-00519	Africa/Ceuta	Ceuta & Melilla
                -+ES	+2806-01524	Atlantic/Canary	Canary Islands
                -+ET	+0902+03842	Africa/Addis_Ababa
                -+FI	+6010+02458	Europe/Helsinki
                -+FJ	-1808+17825	Pacific/Fiji
                -+FK	-5142-05751	Atlantic/Stanley
                -+FM	+0725+15147	Pacific/Chuuk	Chuuk (Truk) and Yap
                -+FM	+0658+15813	Pacific/Pohnpei	Pohnpei (Ponape)
                -+FM	+0519+16259	Pacific/Kosrae	Kosrae
                -+FO	+6201-00646	Atlantic/Faroe
                -+FR	+4852+00220	Europe/Paris
                -+GA	+0023+00927	Africa/Libreville
                -+GB	+513030-0000731	Europe/London
                -+GD	+1203-06145	America/Grenada
                -+GE	+4143+04449	Asia/Tbilisi
                -+GF	+0456-05220	America/Cayenne
                -+GG	+4927-00232	Europe/Guernsey
                -+GH	+0533-00013	Africa/Accra
                -+GI	+3608-00521	Europe/Gibraltar
                -+GL	+6411-05144	America/Godthab	most locations
                -+GL	+7646-01840	America/Danmarkshavn	east coast, north of Scoresbysund
                -+GL	+7029-02158	America/Scoresbysund	Scoresbysund / Ittoqqortoormiit
                -+GL	+7634-06847	America/Thule	Thule / Pituffik
                -+GM	+1328-01639	Africa/Banjul
                -+GN	+0931-01343	Africa/Conakry
                -+GP	+1614-06132	America/Guadeloupe
                -+GQ	+0345+00847	Africa/Malabo
                -+GR	+3758+02343	Europe/Athens
                -+GS	-5416-03632	Atlantic/South_Georgia
                -+GT	+1438-09031	America/Guatemala
                -+GU	+1328+14445	Pacific/Guam
                -+GW	+1151-01535	Africa/Bissau
                -+GY	+0648-05810	America/Guyana
                -+HK	+2217+11409	Asia/Hong_Kong
                -+HN	+1406-08713	America/Tegucigalpa
                -+HR	+4548+01558	Europe/Zagreb
                -+HT	+1832-07220	America/Port-au-Prince
                -+HU	+4730+01905	Europe/Budapest
                -+ID	-0610+10648	Asia/Jakarta	Java & Sumatra
                -+ID	-0002+10920	Asia/Pontianak	west & central Borneo
                -+ID	-0507+11924	Asia/Makassar	east & south Borneo, Sulawesi (Celebes), Bali, Nusa Tengarra, west Timor
                -+ID	-0232+14042	Asia/Jayapura	west New Guinea (Irian Jaya) & Malukus (Moluccas)
                -+IE	+5320-00615	Europe/Dublin
                -+IL	+3146+03514	Asia/Jerusalem
                -+IM	+5409-00428	Europe/Isle_of_Man
                -+IN	+2232+08822	Asia/Kolkata
                -+IO	-0720+07225	Indian/Chagos
                -+IQ	+3321+04425	Asia/Baghdad
                -+IR	+3540+05126	Asia/Tehran
                -+IS	+6409-02151	Atlantic/Reykjavik
                -+IT	+4154+01229	Europe/Rome
                -+JE	+4912-00207	Europe/Jersey
                -+JM	+1800-07648	America/Jamaica
                -+JO	+3157+03556	Asia/Amman
                -+JP	+353916+1394441	Asia/Tokyo
                -+KE	-0117+03649	Africa/Nairobi
                -+KG	+4254+07436	Asia/Bishkek
                -+KH	+1133+10455	Asia/Phnom_Penh
                -+KI	+0125+17300	Pacific/Tarawa	Gilbert Islands
                -+KI	-0308-17105	Pacific/Enderbury	Phoenix Islands
                -+KI	+0152-15720	Pacific/Kiritimati	Line Islands
                -+KM	-1141+04316	Indian/Comoro
                -+KN	+1718-06243	America/St_Kitts
                -+KP	+3901+12545	Asia/Pyongyang
                -+KR	+3733+12658	Asia/Seoul
                -+KW	+2920+04759	Asia/Kuwait
                -+KY	+1918-08123	America/Cayman
                -+KZ	+4315+07657	Asia/Almaty	most locations
                -+KZ	+4448+06528	Asia/Qyzylorda	Qyzylorda (Kyzylorda, Kzyl-Orda)
                -+KZ	+5017+05710	Asia/Aqtobe	Aqtobe (Aktobe)
                -+KZ	+4431+05016	Asia/Aqtau	Atyrau (Atirau, Gur'yev), Mangghystau (Mankistau)
                -+KZ	+5113+05121	Asia/Oral	West Kazakhstan
                -+LA	+1758+10236	Asia/Vientiane
                -+LB	+3353+03530	Asia/Beirut
                -+LC	+1401-06100	America/St_Lucia
                -+LI	+4709+00931	Europe/Vaduz
                -+LK	+0656+07951	Asia/Colombo
                -+LR	+0618-01047	Africa/Monrovia
                -+LS	-2928+02730	Africa/Maseru
                -+LT	+5441+02519	Europe/Vilnius
                -+LU	+4936+00609	Europe/Luxembourg
                -+LV	+5657+02406	Europe/Riga
                -+LY	+3254+01311	Africa/Tripoli
                -+MA	+3339-00735	Africa/Casablanca
                -+MC	+4342+00723	Europe/Monaco
                -+MD	+4700+02850	Europe/Chisinau
                -+ME	+4226+01916	Europe/Podgorica
                -+MF	+1804-06305	America/Marigot
                -+MG	-1855+04731	Indian/Antananarivo
                -+MH	+0709+17112	Pacific/Majuro	most locations
                -+MH	+0905+16720	Pacific/Kwajalein	Kwajalein
                -+MK	+4159+02126	Europe/Skopje
                -+ML	+1239-00800	Africa/Bamako
                -+MM	+1647+09610	Asia/Rangoon
                -+MN	+4755+10653	Asia/Ulaanbaatar	most locations
                -+MN	+4801+09139	Asia/Hovd	Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
                -+MN	+4804+11430	Asia/Choibalsan	Dornod, Sukhbaatar
                -+MO	+2214+11335	Asia/Macau
                -+MP	+1512+14545	Pacific/Saipan
                -+MQ	+1436-06105	America/Martinique
                -+MR	+1806-01557	Africa/Nouakchott
                -+MS	+1643-06213	America/Montserrat
                -+MT	+3554+01431	Europe/Malta
                -+MU	-2010+05730	Indian/Mauritius
                -+MV	+0410+07330	Indian/Maldives
                -+MW	-1547+03500	Africa/Blantyre
                -+MX	+1924-09909	America/Mexico_City	Central Time - most locations
                -+MX	+2105-08646	America/Cancun	Central Time - Quintana Roo
                -+MX	+2058-08937	America/Merida	Central Time - Campeche, Yucatan
                -+MX	+2540-10019	America/Monterrey	Mexican Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas away from US border
                -+MX	+2550-09730	America/Matamoros	US Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas near US border
                -+MX	+2313-10625	America/Mazatlan	Mountain Time - S Baja, Nayarit, Sinaloa
                -+MX	+2838-10605	America/Chihuahua	Mexican Mountain Time - Chihuahua away from US border
                -+MX	+2934-10425	America/Ojinaga	US Mountain Time - Chihuahua near US border
                -+MX	+2904-11058	America/Hermosillo	Mountain Standard Time - Sonora
                -+MX	+3232-11701	America/Tijuana	US Pacific Time - Baja California near US border
                -+MX	+3018-11452	America/Santa_Isabel	Mexican Pacific Time - Baja California away from US border
                -+MX	+2048-10515	America/Bahia_Banderas	Mexican Central Time - Bahia de Banderas
                -+MY	+0310+10142	Asia/Kuala_Lumpur	peninsular Malaysia
                -+MY	+0133+11020	Asia/Kuching	Sabah & Sarawak
                -+MZ	-2558+03235	Africa/Maputo
                -+NA	-2234+01706	Africa/Windhoek
                -+NC	-2216+16627	Pacific/Noumea
                -+NE	+1331+00207	Africa/Niamey
                -+NF	-2903+16758	Pacific/Norfolk
                -+NG	+0627+00324	Africa/Lagos
                -+NI	+1209-08617	America/Managua
                -+NL	+5222+00454	Europe/Amsterdam
                -+NO	+5955+01045	Europe/Oslo
                -+NP	+2743+08519	Asia/Kathmandu
                -+NR	-0031+16655	Pacific/Nauru
                -+NU	-1901-16955	Pacific/Niue
                -+NZ	-3652+17446	Pacific/Auckland	most locations
                -+NZ	-4357-17633	Pacific/Chatham	Chatham Islands
                -+OM	+2336+05835	Asia/Muscat
                -+PA	+0858-07932	America/Panama
                -+PE	-1203-07703	America/Lima
                -+PF	-1732-14934	Pacific/Tahiti	Society Islands
                -+PF	-0900-13930	Pacific/Marquesas	Marquesas Islands
                -+PF	-2308-13457	Pacific/Gambier	Gambier Islands
                -+PG	-0930+14710	Pacific/Port_Moresby
                -+PH	+1435+12100	Asia/Manila
                -+PK	+2452+06703	Asia/Karachi
                -+PL	+5215+02100	Europe/Warsaw
                -+PM	+4703-05620	America/Miquelon
                -+PN	-2504-13005	Pacific/Pitcairn
                -+PR	+182806-0660622	America/Puerto_Rico
                -+PS	+3130+03428	Asia/Gaza
                -+PT	+3843-00908	Europe/Lisbon	mainland
                -+PT	+3238-01654	Atlantic/Madeira	Madeira Islands
                -+PT	+3744-02540	Atlantic/Azores	Azores
                -+PW	+0720+13429	Pacific/Palau
                -+PY	-2516-05740	America/Asuncion
                -+QA	+2517+05132	Asia/Qatar
                -+RE	-2052+05528	Indian/Reunion
                -+RO	+4426+02606	Europe/Bucharest
                -+RS	+4450+02030	Europe/Belgrade
                -+RU	+5443+02030	Europe/Kaliningrad	Moscow-01 - Kaliningrad
                -+RU	+5545+03735	Europe/Moscow	Moscow+00 - west Russia
                -+RU	+4844+04425	Europe/Volgograd	Moscow+00 - Caspian Sea
                -+RU	+5312+05009	Europe/Samara	Moscow - Samara, Udmurtia
                -+RU	+5651+06036	Asia/Yekaterinburg	Moscow+02 - Urals
                -+RU	+5500+07324	Asia/Omsk	Moscow+03 - west Siberia
                -+RU	+5502+08255	Asia/Novosibirsk	Moscow+03 - Novosibirsk
                -+RU	+5345+08707	Asia/Novokuznetsk	Moscow+03 - Novokuznetsk
                -+RU	+5601+09250	Asia/Krasnoyarsk	Moscow+04 - Yenisei River
                -+RU	+5216+10420	Asia/Irkutsk	Moscow+05 - Lake Baikal
                -+RU	+6200+12940	Asia/Yakutsk	Moscow+06 - Lena River
                -+RU	+4310+13156	Asia/Vladivostok	Moscow+07 - Amur River
                -+RU	+4658+14242	Asia/Sakhalin	Moscow+07 - Sakhalin Island
                -+RU	+5934+15048	Asia/Magadan	Moscow+08 - Magadan
                -+RU	+5301+15839	Asia/Kamchatka	Moscow+08 - Kamchatka
                -+RU	+6445+17729	Asia/Anadyr	Moscow+08 - Bering Sea
                -+RW	-0157+03004	Africa/Kigali
                -+SA	+2438+04643	Asia/Riyadh
                -+SB	-0932+16012	Pacific/Guadalcanal
                -+SC	-0440+05528	Indian/Mahe
                -+SD	+1536+03232	Africa/Khartoum
                -+SE	+5920+01803	Europe/Stockholm
                -+SG	+0117+10351	Asia/Singapore
                -+SH	-1555-00542	Atlantic/St_Helena
                -+SI	+4603+01431	Europe/Ljubljana
                -+SJ	+7800+01600	Arctic/Longyearbyen
                -+SK	+4809+01707	Europe/Bratislava
                -+SL	+0830-01315	Africa/Freetown
                -+SM	+4355+01228	Europe/San_Marino
                -+SN	+1440-01726	Africa/Dakar
                -+SO	+0204+04522	Africa/Mogadishu
                -+SR	+0550-05510	America/Paramaribo
                -+ST	+0020+00644	Africa/Sao_Tome
                -+SV	+1342-08912	America/El_Salvador
                -+SY	+3330+03618	Asia/Damascus
                -+SZ	-2618+03106	Africa/Mbabane
                -+TC	+2128-07108	America/Grand_Turk
                -+TD	+1207+01503	Africa/Ndjamena
                -+TF	-492110+0701303	Indian/Kerguelen
                -+TG	+0608+00113	Africa/Lome
                -+TH	+1345+10031	Asia/Bangkok
                -+TJ	+3835+06848	Asia/Dushanbe
                -+TK	-0922-17114	Pacific/Fakaofo
                -+TL	-0833+12535	Asia/Dili
                -+TM	+3757+05823	Asia/Ashgabat
                -+TN	+3648+01011	Africa/Tunis
                -+TO	-2110-17510	Pacific/Tongatapu
                -+TR	+4101+02858	Europe/Istanbul
                -+TT	+1039-06131	America/Port_of_Spain
                -+TV	-0831+17913	Pacific/Funafuti
                -+TW	+2503+12130	Asia/Taipei
                -+TZ	-0648+03917	Africa/Dar_es_Salaam
                -+UA	+5026+03031	Europe/Kiev	most locations
                -+UA	+4837+02218	Europe/Uzhgorod	Ruthenia
                -+UA	+4750+03510	Europe/Zaporozhye	Zaporozh'ye, E Lugansk / Zaporizhia, E Luhansk
                -+UA	+4457+03406	Europe/Simferopol	central Crimea
                -+UG	+0019+03225	Africa/Kampala
                -+UM	+1645-16931	Pacific/Johnston	Johnston Atoll
                -+UM	+2813-17722	Pacific/Midway	Midway Islands
                -+UM	+1917+16637	Pacific/Wake	Wake Island
                -+US	+404251-0740023	America/New_York	Eastern Time
                -+US	+421953-0830245	America/Detroit	Eastern Time - Michigan - most locations
                -+US	+381515-0854534	America/Kentucky/Louisville	Eastern Time - Kentucky - Louisville area
                -+US	+364947-0845057	America/Kentucky/Monticello	Eastern Time - Kentucky - Wayne County
                -+US	+394606-0860929	America/Indiana/Indianapolis	Eastern Time - Indiana - most locations
                -+US	+384038-0873143	America/Indiana/Vincennes	Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties
                -+US	+410305-0863611	America/Indiana/Winamac	Eastern Time - Indiana - Pulaski County
                -+US	+382232-0862041	America/Indiana/Marengo	Eastern Time - Indiana - Crawford County
                -+US	+382931-0871643	America/Indiana/Petersburg	Eastern Time - Indiana - Pike County
                -+US	+384452-0850402	America/Indiana/Vevay	Eastern Time - Indiana - Switzerland County
                -+US	+415100-0873900	America/Chicago	Central Time
                -+US	+375711-0864541	America/Indiana/Tell_City	Central Time - Indiana - Perry County
                -+US	+411745-0863730	America/Indiana/Knox	Central Time - Indiana - Starke County
                -+US	+450628-0873651	America/Menominee	Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
                -+US	+470659-1011757	America/North_Dakota/Center	Central Time - North Dakota - Oliver County
                -+US	+465042-1012439	America/North_Dakota/New_Salem	Central Time - North Dakota - Morton County (except Mandan area)
                -+US	+471551-1014640	America/North_Dakota/Beulah	Central Time - North Dakota - Mercer County
                -+US	+394421-1045903	America/Denver	Mountain Time
                -+US	+433649-1161209	America/Boise	Mountain Time - south Idaho & east Oregon
                -+US	+364708-1084111	America/Shiprock	Mountain Time - Navajo
                -+US	+332654-1120424	America/Phoenix	Mountain Standard Time - Arizona
                -+US	+340308-1181434	America/Los_Angeles	Pacific Time
                -+US	+611305-1495401	America/Anchorage	Alaska Time
                -+US	+581807-1342511	America/Juneau	Alaska Time - Alaska panhandle
                -+US	+571035-1351807	America/Sitka	Alaska Time - southeast Alaska panhandle
                -+US	+593249-1394338	America/Yakutat	Alaska Time - Alaska panhandle neck
                -+US	+643004-1652423	America/Nome	Alaska Time - west Alaska
                -+US	+515248-1763929	America/Adak	Aleutian Islands
                -+US	+550737-1313435	America/Metlakatla	Metlakatla Time - Annette Island
                -+US	+211825-1575130	Pacific/Honolulu	Hawaii
                -+UY	-3453-05611	America/Montevideo
                -+UZ	+3940+06648	Asia/Samarkand	west Uzbekistan
                -+UZ	+4120+06918	Asia/Tashkent	east Uzbekistan
                -+VA	+415408+0122711	Europe/Vatican
                -+VC	+1309-06114	America/St_Vincent
                -+VE	+1030-06656	America/Caracas
                -+VG	+1827-06437	America/Tortola
                -+VI	+1821-06456	America/St_Thomas
                -+VN	+1045+10640	Asia/Ho_Chi_Minh
                -+VU	-1740+16825	Pacific/Efate
                -+WF	-1318-17610	Pacific/Wallis
                -+WS	-1350-17144	Pacific/Apia
                -+YE	+1245+04512	Asia/Aden
                -+YT	-1247+04514	Indian/Mayotte
                -+ZA	-2615+02800	Africa/Johannesburg
                -+ZM	-1525+02817	Africa/Lusaka
                -+ZW	-1750+03103	Africa/Harare
                -Index: examples/tz/southamerica
                -===================================================================
                ---- examples/tz/southamerica	(revision 0)
                -+++ examples/tz/southamerica	(revision 0)
                -@@ -0,0 +1,506 @@
                -+Rule	Arg	1930	only	-	Dec	 1	0:00	1:00	S
                -+Rule	Arg	1931	only	-	Apr	 1	0:00	0	-
                -+Rule	Arg	1931	only	-	Oct	15	0:00	1:00	S
                -+Rule	Arg	1932	1940	-	Mar	 1	0:00	0	-
                -+Rule	Arg	1932	1939	-	Nov	 1	0:00	1:00	S
                -+Rule	Arg	1940	only	-	Jul	 1	0:00	1:00	S
                -+Rule	Arg	1941	only	-	Jun	15	0:00	0	-
                -+Rule	Arg	1941	only	-	Oct	15	0:00	1:00	S
                -+Rule	Arg	1943	only	-	Aug	 1	0:00	0	-
                -+Rule	Arg	1943	only	-	Oct	15	0:00	1:00	S
                -+Rule	Arg	1946	only	-	Mar	 1	0:00	0	-
                -+Rule	Arg	1946	only	-	Oct	 1	0:00	1:00	S
                -+Rule	Arg	1963	only	-	Oct	 1	0:00	0	-
                -+Rule	Arg	1963	only	-	Dec	15	0:00	1:00	S
                -+Rule	Arg	1964	1966	-	Mar	 1	0:00	0	-
                -+Rule	Arg	1964	1966	-	Oct	15	0:00	1:00	S
                -+Rule	Arg	1967	only	-	Apr	 2	0:00	0	-
                -+Rule	Arg	1967	1968	-	Oct	Sun>=1	0:00	1:00	S
                -+Rule	Arg	1968	1969	-	Apr	Sun>=1	0:00	0	-
                -+Rule	Arg	1974	only	-	Jan	23	0:00	1:00	S
                -+Rule	Arg	1974	only	-	May	 1	0:00	0	-
                -+Rule	Arg	1988	only	-	Dec	 1	0:00	1:00	S
                -+Rule	Arg	1989	1993	-	Mar	Sun>=1	0:00	0	-
                -+Rule	Arg	1989	1992	-	Oct	Sun>=15	0:00	1:00	S
                -+Rule	Arg	1999	only	-	Oct	Sun>=1	0:00	1:00	S
                -+Rule	Arg	2000	only	-	Mar	3	0:00	0	-
                -+Rule	Arg	2007	only	-	Dec	30	0:00	1:00	S
                -+Rule	Arg	2008	2009	-	Mar	Sun>=15	0:00	0	-
                -+Rule	Arg	2008	only	-	Oct	Sun>=15	0:00	1:00	S
                -+ 
                -+Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May # Cordoba Mean Time
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	Arg	AR%sT
                -+Zone America/Argentina/Cordoba -4:16:48 - LMT	1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1991 Mar  3
                -+			-4:00	-	WART	1991 Oct 20
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	Arg	AR%sT
                -+Zone America/Argentina/Salta -4:21:40 - LMT	1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1991 Mar  3
                -+			-4:00	-	WART	1991 Oct 20
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	Arg	AR%sT	2008 Oct 18
                -+			-3:00	-	ART
                -+Zone America/Argentina/Tucuman -4:20:52 - LMT	1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1991 Mar  3
                -+			-4:00	-	WART	1991 Oct 20
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	-	ART	2004 Jun  1
                -+			-4:00	-	WART	2004 Jun 13
                -+			-3:00	Arg	AR%sT
                -+Zone America/Argentina/La_Rioja -4:27:24 - LMT	1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1991 Mar  1
                -+			-4:00	-	WART	1991 May  7
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	-	ART	2004 Jun  1
                -+			-4:00	-	WART	2004 Jun 20
                -+			-3:00	Arg	AR%sT	2008 Oct 18
                -+			-3:00	-	ART
                -+Zone America/Argentina/San_Juan -4:34:04 - LMT	1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1991 Mar  1
                -+			-4:00	-	WART	1991 May  7
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	-	ART	2004 May 31
                -+			-4:00	-	WART	2004 Jul 25
                -+			-3:00	Arg	AR%sT	2008 Oct 18
                -+			-3:00	-	ART
                -+Zone America/Argentina/Jujuy -4:21:12 -	LMT	1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1990 Mar  4
                -+			-4:00	-	WART	1990 Oct 28
                -+			-4:00	1:00	WARST	1991 Mar 17
                -+			-4:00	-	WART	1991 Oct  6
                -+			-3:00	1:00	ARST	1992
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	Arg	AR%sT	2008 Oct 18
                -+			-3:00	-	ART
                -+Zone America/Argentina/Catamarca -4:23:08 - LMT	1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1991 Mar  3
                -+			-4:00	-	WART	1991 Oct 20
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	-	ART	2004 Jun  1
                -+			-4:00	-	WART	2004 Jun 20
                -+			-3:00	Arg	AR%sT	2008 Oct 18
                -+			-3:00	-	ART
                -+Zone America/Argentina/Mendoza -4:35:16 - LMT	1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1990 Mar  4
                -+			-4:00	-	WART	1990 Oct 15
                -+			-4:00	1:00	WARST	1991 Mar  1
                -+			-4:00	-	WART	1991 Oct 15
                -+			-4:00	1:00	WARST	1992 Mar  1
                -+			-4:00	-	WART	1992 Oct 18
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	-	ART	2004 May 23
                -+			-4:00	-	WART	2004 Sep 26
                -+			-3:00	Arg	AR%sT	2008 Oct 18
                -+			-3:00	-	ART
                -+Rule	SanLuis	2008	2009	-	Mar	Sun>=8	0:00	0	-
                -+Rule	SanLuis	2007	2009	-	Oct	Sun>=8	0:00	1:00	S
                -+Zone America/Argentina/San_Luis -4:25:24 - LMT	1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1990
                -+			-3:00	1:00	ARST	1990 Mar 14
                -+			-4:00	-	WART	1990 Oct 15
                -+			-4:00	1:00	WARST	1991 Mar  1
                -+			-4:00	-	WART	1991 Jun  1
                -+			-3:00	-	ART	1999 Oct  3
                -+			-4:00	1:00	WARST	2000 Mar  3
                -+			-3:00	-	ART	2004 May 31
                -+			-4:00	-	WART	2004 Jul 25
                -+			-3:00	Arg	AR%sT	2008 Jan 21
                -+			-4:00	SanLuis	WAR%sT
                -+Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May # Cordoba Mean Time
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	-	ART	2004 Jun  1
                -+			-4:00	-	WART	2004 Jun 20
                -+			-3:00	Arg	AR%sT	2008 Oct 18
                -+			-3:00	-	ART
                -+Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
                -+			-4:16:48 -	CMT	1920 May # Cordoba Mean Time
                -+			-4:00	-	ART	1930 Dec
                -+			-4:00	Arg	AR%sT	1969 Oct  5
                -+			-3:00	Arg	AR%sT	1999 Oct  3
                -+			-4:00	Arg	AR%sT	2000 Mar  3
                -+			-3:00	-	ART	2004 May 30
                -+			-4:00	-	WART	2004 Jun 20
                -+			-3:00	Arg	AR%sT	2008 Oct 18
                -+			-3:00	-	ART
                -+Zone	America/Aruba	-4:40:24 -	LMT	1912 Feb 12	# Oranjestad
                -+			-4:30	-	ANT	1965 # Netherlands Antilles Time
                -+			-4:00	-	AST
                -+Zone	America/La_Paz	-4:32:36 -	LMT	1890
                -+			-4:32:36 -	CMT	1931 Oct 15 # Calamarca MT
                -+			-4:32:36 1:00	BOST	1932 Mar 21 # Bolivia ST
                -+			-4:00	-	BOT	# Bolivia Time
                -+Rule	Brazil	1931	only	-	Oct	 3	11:00	1:00	S
                -+Rule	Brazil	1932	1933	-	Apr	 1	 0:00	0	-
                -+Rule	Brazil	1932	only	-	Oct	 3	 0:00	1:00	S
                -+Rule	Brazil	1949	1952	-	Dec	 1	 0:00	1:00	S
                -+Rule	Brazil	1950	only	-	Apr	16	 1:00	0	-
                -+Rule	Brazil	1951	1952	-	Apr	 1	 0:00	0	-
                -+Rule	Brazil	1953	only	-	Mar	 1	 0:00	0	-
                -+Rule	Brazil	1963	only	-	Dec	 9	 0:00	1:00	S
                -+Rule	Brazil	1964	only	-	Mar	 1	 0:00	0	-
                -+Rule	Brazil	1965	only	-	Jan	31	 0:00	1:00	S
                -+Rule	Brazil	1965	only	-	Mar	31	 0:00	0	-
                -+Rule	Brazil	1965	only	-	Dec	 1	 0:00	1:00	S
                -+Rule	Brazil	1966	1968	-	Mar	 1	 0:00	0	-
                -+Rule	Brazil	1966	1967	-	Nov	 1	 0:00	1:00	S
                -+Rule	Brazil	1985	only	-	Nov	 2	 0:00	1:00	S
                -+Rule	Brazil	1986	only	-	Mar	15	 0:00	0	-
                -+Rule	Brazil	1986	only	-	Oct	25	 0:00	1:00	S
                -+Rule	Brazil	1987	only	-	Feb	14	 0:00	0	-
                -+Rule	Brazil	1987	only	-	Oct	25	 0:00	1:00	S
                -+Rule	Brazil	1988	only	-	Feb	 7	 0:00	0	-
                -+Rule	Brazil	1988	only	-	Oct	16	 0:00	1:00	S
                -+Rule	Brazil	1989	only	-	Jan	29	 0:00	0	-
                -+Rule	Brazil	1989	only	-	Oct	15	 0:00	1:00	S
                -+Rule	Brazil	1990	only	-	Feb	11	 0:00	0	-
                -+Rule	Brazil	1990	only	-	Oct	21	 0:00	1:00	S
                -+Rule	Brazil	1991	only	-	Feb	17	 0:00	0	-
                -+Rule	Brazil	1991	only	-	Oct	20	 0:00	1:00	S
                -+Rule	Brazil	1992	only	-	Feb	 9	 0:00	0	-
                -+Rule	Brazil	1992	only	-	Oct	25	 0:00	1:00	S
                -+Rule	Brazil	1993	only	-	Jan	31	 0:00	0	-
                -+Rule	Brazil	1993	1995	-	Oct	Sun>=11	 0:00	1:00	S
                -+Rule	Brazil	1994	1995	-	Feb	Sun>=15	 0:00	0	-
                -+Rule	Brazil	1996	only	-	Feb	11	 0:00	0	-
                -+Rule	Brazil	1996	only	-	Oct	 6	 0:00	1:00	S
                -+Rule	Brazil	1997	only	-	Feb	16	 0:00	0	-
                -+Rule	Brazil	1997	only	-	Oct	 6	 0:00	1:00	S
                -+Rule	Brazil	1998	only	-	Mar	 1	 0:00	0	-
                -+Rule	Brazil	1998	only	-	Oct	11	 0:00	1:00	S
                -+Rule	Brazil	1999	only	-	Feb	21	 0:00	0	-
                -+Rule	Brazil	1999	only	-	Oct	 3	 0:00	1:00	S
                -+Rule	Brazil	2000	only	-	Feb	27	 0:00	0	-
                -+Rule	Brazil	2000	2001	-	Oct	Sun>=8	 0:00	1:00	S
                -+Rule	Brazil	2001	2006	-	Feb	Sun>=15	 0:00	0	-
                -+Rule	Brazil	2002	only	-	Nov	 3	 0:00	1:00	S
                -+Rule	Brazil	2003	only	-	Oct	19	 0:00	1:00	S
                -+Rule	Brazil	2004	only	-	Nov	 2	 0:00	1:00	S
                -+Rule	Brazil	2005	only	-	Oct	16	 0:00	1:00	S
                -+Rule	Brazil	2006	only	-	Nov	 5	 0:00	1:00	S
                -+Rule	Brazil	2007	only	-	Feb	25	 0:00	0	-
                -+Rule	Brazil	2007	only	-	Oct	Sun>=8	 0:00	1:00	S
                -+Rule	Brazil	2008	max	-	Oct	Sun>=15	0:00	1:00	S
                -+Rule	Brazil	2008	2011	-	Feb	Sun>=15	0:00	0	-
                -+Rule	Brazil	2012	only	-	Feb	Sun>=22	0:00	0	-
                -+Rule	Brazil	2013	2014	-	Feb	Sun>=15	0:00	0	-
                -+Rule	Brazil	2015	only	-	Feb	Sun>=22	0:00	0	-
                -+Rule	Brazil	2016	2022	-	Feb	Sun>=15	0:00	0	-
                -+Rule	Brazil	2023	only	-	Feb	Sun>=22	0:00	0	-
                -+Rule	Brazil	2024	2025	-	Feb	Sun>=15	0:00	0	-
                -+Rule	Brazil	2026	only	-	Feb	Sun>=22	0:00	0	-
                -+Rule	Brazil	2027	2033	-	Feb	Sun>=15	0:00	0	-
                -+Rule	Brazil	2034	only	-	Feb	Sun>=22	0:00	0	-
                -+Rule	Brazil	2035	2036	-	Feb	Sun>=15	0:00	0	-
                -+Rule	Brazil	2037	only	-	Feb	Sun>=22	0:00	0	-
                -+Rule	Brazil	2038	max	-	Feb	Sun>=15	0:00	0	-
                -+Zone America/Noronha	-2:09:40 -	LMT	1914
                -+			-2:00	Brazil	FN%sT	1990 Sep 17
                -+			-2:00	-	FNT	1999 Sep 30
                -+			-2:00	Brazil	FN%sT	2000 Oct 15
                -+			-2:00	-	FNT	2001 Sep 13
                -+			-2:00	Brazil	FN%sT	2002 Oct  1
                -+			-2:00	-	FNT
                -+Zone America/Belem	-3:13:56 -	LMT	1914
                -+			-3:00	Brazil	BR%sT	1988 Sep 12
                -+			-3:00	-	BRT
                -+Zone America/Santarem	-3:38:48 -	LMT	1914
                -+			-4:00	Brazil	AM%sT	1988 Sep 12
                -+			-4:00	-	AMT	2008 Jun 24 00:00
                -+			-3:00	-	BRT
                -+Zone America/Fortaleza	-2:34:00 -	LMT	1914
                -+			-3:00	Brazil	BR%sT	1990 Sep 17
                -+			-3:00	-	BRT	1999 Sep 30
                -+			-3:00	Brazil	BR%sT	2000 Oct 22
                -+			-3:00	-	BRT	2001 Sep 13
                -+			-3:00	Brazil	BR%sT	2002 Oct  1
                -+			-3:00	-	BRT
                -+Zone America/Recife	-2:19:36 -	LMT	1914
                -+			-3:00	Brazil	BR%sT	1990 Sep 17
                -+			-3:00	-	BRT	1999 Sep 30
                -+			-3:00	Brazil	BR%sT	2000 Oct 15
                -+			-3:00	-	BRT	2001 Sep 13
                -+			-3:00	Brazil	BR%sT	2002 Oct  1
                -+			-3:00	-	BRT
                -+Zone America/Araguaina	-3:12:48 -	LMT	1914
                -+			-3:00	Brazil	BR%sT	1990 Sep 17
                -+			-3:00	-	BRT	1995 Sep 14
                -+			-3:00	Brazil	BR%sT	2003 Sep 24
                -+			-3:00	-	BRT
                -+Zone America/Maceio	-2:22:52 -	LMT	1914
                -+			-3:00	Brazil	BR%sT	1990 Sep 17
                -+			-3:00	-	BRT	1995 Oct 13
                -+			-3:00	Brazil	BR%sT	1996 Sep  4
                -+			-3:00	-	BRT	1999 Sep 30
                -+			-3:00	Brazil	BR%sT	2000 Oct 22
                -+			-3:00	-	BRT	2001 Sep 13
                -+			-3:00	Brazil	BR%sT	2002 Oct  1
                -+			-3:00	-	BRT
                -+Zone America/Bahia	-2:34:04 -	LMT	1914
                -+			-3:00	Brazil	BR%sT	2003 Sep 24
                -+			-3:00	-	BRT
                -+Zone America/Sao_Paulo	-3:06:28 -	LMT	1914
                -+			-3:00	Brazil	BR%sT	1963 Oct 23 00:00
                -+			-3:00	1:00	BRST	1964
                -+			-3:00	Brazil	BR%sT
                -+Zone America/Campo_Grande -3:38:28 -	LMT	1914
                -+			-4:00	Brazil	AM%sT
                -+Zone America/Cuiaba	-3:44:20 -	LMT	1914
                -+			-4:00	Brazil	AM%sT	2003 Sep 24
                -+			-4:00	-	AMT	2004 Oct  1
                -+			-4:00	Brazil	AM%sT
                -+Zone America/Porto_Velho -4:15:36 -	LMT	1914
                -+			-4:00	Brazil	AM%sT	1988 Sep 12
                -+			-4:00	-	AMT
                -+Zone America/Boa_Vista	-4:02:40 -	LMT	1914
                -+			-4:00	Brazil	AM%sT	1988 Sep 12
                -+			-4:00	-	AMT	1999 Sep 30
                -+			-4:00	Brazil	AM%sT	2000 Oct 15
                -+			-4:00	-	AMT
                -+Zone America/Manaus	-4:00:04 -	LMT	1914
                -+			-4:00	Brazil	AM%sT	1988 Sep 12
                -+			-4:00	-	AMT	1993 Sep 28
                -+			-4:00	Brazil	AM%sT	1994 Sep 22
                -+			-4:00	-	AMT
                -+Zone America/Eirunepe	-4:39:28 -	LMT	1914
                -+			-5:00	Brazil	AC%sT	1988 Sep 12
                -+			-5:00	-	ACT	1993 Sep 28
                -+			-5:00	Brazil	AC%sT	1994 Sep 22
                -+			-5:00	-	ACT	2008 Jun 24 00:00
                -+			-4:00	-	AMT
                -+Zone America/Rio_Branco	-4:31:12 -	LMT	1914
                -+			-5:00	Brazil	AC%sT	1988 Sep 12
                -+			-5:00	-	ACT	2008 Jun 24 00:00
                -+			-4:00	-	AMT
                -+Rule	Chile	1927	1932	-	Sep	 1	0:00	1:00	S
                -+Rule	Chile	1928	1932	-	Apr	 1	0:00	0	-
                -+Rule	Chile	1942	only	-	Jun	 1	4:00u	0	-
                -+Rule	Chile	1942	only	-	Aug	 1	5:00u	1:00	S
                -+Rule	Chile	1946	only	-	Jul	15	4:00u	1:00	S
                -+Rule	Chile	1946	only	-	Sep	 1	3:00u	0:00	-
                -+Rule	Chile	1947	only	-	Apr	 1	4:00u	0	-
                -+Rule	Chile	1968	only	-	Nov	 3	4:00u	1:00	S
                -+Rule	Chile	1969	only	-	Mar	30	3:00u	0	-
                -+Rule	Chile	1969	only	-	Nov	23	4:00u	1:00	S
                -+Rule	Chile	1970	only	-	Mar	29	3:00u	0	-
                -+Rule	Chile	1971	only	-	Mar	14	3:00u	0	-
                -+Rule	Chile	1970	1972	-	Oct	Sun>=9	4:00u	1:00	S
                -+Rule	Chile	1972	1986	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	Chile	1973	only	-	Sep	30	4:00u	1:00	S
                -+Rule	Chile	1974	1987	-	Oct	Sun>=9	4:00u	1:00	S
                -+Rule	Chile	1987	only	-	Apr	12	3:00u	0	-
                -+Rule	Chile	1988	1989	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	Chile	1988	only	-	Oct	Sun>=1	4:00u	1:00	S
                -+Rule	Chile	1989	only	-	Oct	Sun>=9	4:00u	1:00	S
                -+Rule	Chile	1990	only	-	Mar	18	3:00u	0	-
                -+Rule	Chile	1990	only	-	Sep	16	4:00u	1:00	S
                -+Rule	Chile	1991	1996	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	Chile	1991	1997	-	Oct	Sun>=9	4:00u	1:00	S
                -+Rule	Chile	1997	only	-	Mar	30	3:00u	0	-
                -+Rule	Chile	1998	only	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	Chile	1998	only	-	Sep	27	4:00u	1:00	S
                -+Rule	Chile	1999	only	-	Apr	 4	3:00u	0	-
                -+Rule	Chile	1999	max	-	Oct	Sun>=9	4:00u	1:00	S
                -+Rule	Chile	2000	2007	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	Chile	2008	only	-	Mar	30	3:00u	0	-
                -+Rule	Chile	2009	only	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	Chile	2010	2011	-	Apr	Sun>=1	3:00u	0	-
                -+Rule	Chile	2012	max	-	Mar	Sun>=9	3:00u	0	-
                -+Zone America/Santiago	-4:42:46 -	LMT	1890
                -+			-4:42:46 -	SMT	1910 	    # Santiago Mean Time
                -+			-5:00	-	CLT	1916 Jul  1 # Chile Time
                -+			-4:42:46 -	SMT	1918 Sep  1 # Santiago Mean Time
                -+			-4:00	-	CLT	1919 Jul  1 # Chile Time
                -+			-4:42:46 -	SMT	1927 Sep  1 # Santiago Mean Time
                -+			-5:00	Chile	CL%sT	1947 May 22 # Chile Time
                -+			-4:00	Chile	CL%sT
                -+Zone Pacific/Easter	-7:17:44 -	LMT	1890
                -+			-7:17:28 -	EMT	1932 Sep    # Easter Mean Time
                -+			-7:00	Chile	EAS%sT	1982 Mar 13 21:00 # Easter I Time
                -+			-6:00	Chile	EAS%sT
                -+Rule	CO	1992	only	-	May	 3	0:00	1:00	S
                -+Rule	CO	1993	only	-	Apr	 4	0:00	0	-
                -+Zone	America/Bogota	-4:56:20 -	LMT	1884 Mar 13
                -+			-4:56:20 -	BMT	1914 Nov 23 # Bogota Mean Time
                -+			-5:00	CO	CO%sT	# Colombia Time
                -+Zone	America/Curacao	-4:35:44 -	LMT	1912 Feb 12	# Willemstad
                -+			-4:30	-	ANT	1965 # Netherlands Antilles Time
                -+			-4:00	-	AST
                -+Zone America/Guayaquil	-5:19:20 -	LMT	1890
                -+			-5:14:00 -	QMT	1931 # Quito Mean Time
                -+			-5:00	-	ECT	     # Ecuador Time
                -+Zone Pacific/Galapagos	-5:58:24 -	LMT	1931 # Puerto Baquerizo Moreno
                -+			-5:00	-	ECT	1986
                -+			-6:00	-	GALT	     # Galapagos Time
                -+Rule	Falk	1937	1938	-	Sep	lastSun	0:00	1:00	S
                -+Rule	Falk	1938	1942	-	Mar	Sun>=19	0:00	0	-
                -+Rule	Falk	1939	only	-	Oct	1	0:00	1:00	S
                -+Rule	Falk	1940	1942	-	Sep	lastSun	0:00	1:00	S
                -+Rule	Falk	1943	only	-	Jan	1	0:00	0	-
                -+Rule	Falk	1983	only	-	Sep	lastSun	0:00	1:00	S
                -+Rule	Falk	1984	1985	-	Apr	lastSun	0:00	0	-
                -+Rule	Falk	1984	only	-	Sep	16	0:00	1:00	S
                -+Rule	Falk	1985	2000	-	Sep	Sun>=9	0:00	1:00	S
                -+Rule	Falk	1986	2000	-	Apr	Sun>=16	0:00	0	-
                -+Rule	Falk	2001	max	-	Apr	Sun>=15	2:00	0	-
                -+Rule	Falk	2001	max	-	Sep	Sun>=1	2:00	1:00	S
                -+Zone Atlantic/Stanley	-3:51:24 -	LMT	1890
                -+			-3:51:24 -	SMT	1912 Mar 12  # Stanley Mean Time
                -+			-4:00	Falk	FK%sT	1983 May     # Falkland Is Time
                -+			-3:00	Falk	FK%sT	1985 Sep 15
                -+			-4:00	Falk	FK%sT
                -+Zone America/Cayenne	-3:29:20 -	LMT	1911 Jul
                -+			-4:00	-	GFT	1967 Oct # French Guiana Time
                -+			-3:00	-	GFT
                -+Zone	America/Guyana	-3:52:40 -	LMT	1915 Mar	# Georgetown
                -+			-3:45	-	GBGT	1966 May 26 # Br Guiana Time
                -+			-3:45	-	GYT	1975 Jul 31 # Guyana Time
                -+			-3:00	-	GYT	1991
                -+			-4:00	-	GYT
                -+Rule	Para	1975	1988	-	Oct	 1	0:00	1:00	S
                -+Rule	Para	1975	1978	-	Mar	 1	0:00	0	-
                -+Rule	Para	1979	1991	-	Apr	 1	0:00	0	-
                -+Rule	Para	1989	only	-	Oct	22	0:00	1:00	S
                -+Rule	Para	1990	only	-	Oct	 1	0:00	1:00	S
                -+Rule	Para	1991	only	-	Oct	 6	0:00	1:00	S
                -+Rule	Para	1992	only	-	Mar	 1	0:00	0	-
                -+Rule	Para	1992	only	-	Oct	 5	0:00	1:00	S
                -+Rule	Para	1993	only	-	Mar	31	0:00	0	-
                -+Rule	Para	1993	1995	-	Oct	 1	0:00	1:00	S
                -+Rule	Para	1994	1995	-	Feb	lastSun	0:00	0	-
                -+Rule	Para	1996	only	-	Mar	 1	0:00	0	-
                -+Rule	Para	1996	2001	-	Oct	Sun>=1	0:00	1:00	S
                -+Rule	Para	1997	only	-	Feb	lastSun	0:00	0	-
                -+Rule	Para	1998	2001	-	Mar	Sun>=1	0:00	0	-
                -+Rule	Para	2002	2004	-	Apr	Sun>=1	0:00	0	-
                -+Rule	Para	2002	2003	-	Sep	Sun>=1	0:00	1:00	S
                -+Rule	Para	2004	2009	-	Oct	Sun>=15	0:00	1:00	S
                -+Rule	Para	2005	2009	-	Mar	Sun>=8	0:00	0	-
                -+Rule	Para	2010	max	-	Oct	Sun>=1	0:00	1:00	S
                -+Rule	Para	2010	max	-	Apr	Sun>=8	0:00	0	-
                -+Zone America/Asuncion	-3:50:40 -	LMT	1890
                -+			-3:50:40 -	AMT	1931 Oct 10 # Asuncion Mean Time
                -+			-4:00	-	PYT	1972 Oct # Paraguay Time
                -+			-3:00	-	PYT	1974 Apr
                -+			-4:00	Para	PY%sT
                -+Rule	Peru	1938	only	-	Jan	 1	0:00	1:00	S
                -+Rule	Peru	1938	only	-	Apr	 1	0:00	0	-
                -+Rule	Peru	1938	1939	-	Sep	lastSun	0:00	1:00	S
                -+Rule	Peru	1939	1940	-	Mar	Sun>=24	0:00	0	-
                -+Rule	Peru	1986	1987	-	Jan	 1	0:00	1:00	S
                -+Rule	Peru	1986	1987	-	Apr	 1	0:00	0	-
                -+Rule	Peru	1990	only	-	Jan	 1	0:00	1:00	S
                -+Rule	Peru	1990	only	-	Apr	 1	0:00	0	-
                -+Rule	Peru	1994	only	-	Jan	 1	0:00	1:00	S
                -+Rule	Peru	1994	only	-	Apr	 1	0:00	0	-
                -+Zone	America/Lima	-5:08:12 -	LMT	1890
                -+			-5:08:36 -	LMT	1908 Jul 28 # Lima Mean Time?
                -+			-5:00	Peru	PE%sT	# Peru Time
                -+Zone Atlantic/South_Georgia -2:26:08 -	LMT	1890		# Grytviken
                -+			-2:00	-	GST	# South Georgia Time
                -+Zone America/Paramaribo	-3:40:40 -	LMT	1911
                -+			-3:40:52 -	PMT	1935     # Paramaribo Mean Time
                -+			-3:40:36 -	PMT	1945 Oct # The capital moved?
                -+			-3:30	-	NEGT	1975 Nov 20 # Dutch Guiana Time
                -+			-3:30	-	SRT	1984 Oct # Suriname Time
                -+			-3:00	-	SRT
                -+Zone America/Port_of_Spain -4:06:04 -	LMT	1912 Mar 2
                -+			-4:00	-	AST
                -+Rule	Uruguay	1923	only	-	Oct	 2	 0:00	0:30	HS
                -+Rule	Uruguay	1924	1926	-	Apr	 1	 0:00	0	-
                -+Rule	Uruguay	1924	1925	-	Oct	 1	 0:00	0:30	HS
                -+Rule	Uruguay	1933	1935	-	Oct	lastSun	 0:00	0:30	HS
                -+Rule	Uruguay	1934	1936	-	Mar	Sat>=25	23:30s	0	-
                -+Rule	Uruguay	1936	only	-	Nov	 1	 0:00	0:30	HS
                -+Rule	Uruguay	1937	1941	-	Mar	lastSun	 0:00	0	-
                -+Rule	Uruguay	1937	1940	-	Oct	lastSun	 0:00	0:30	HS
                -+Rule	Uruguay	1941	only	-	Aug	 1	 0:00	0:30	HS
                -+Rule	Uruguay	1942	only	-	Jan	 1	 0:00	0	-
                -+Rule	Uruguay	1942	only	-	Dec	14	 0:00	1:00	S
                -+Rule	Uruguay	1943	only	-	Mar	14	 0:00	0	-
                -+Rule	Uruguay	1959	only	-	May	24	 0:00	1:00	S
                -+Rule	Uruguay	1959	only	-	Nov	15	 0:00	0	-
                -+Rule	Uruguay	1960	only	-	Jan	17	 0:00	1:00	S
                -+Rule	Uruguay	1960	only	-	Mar	 6	 0:00	0	-
                -+Rule	Uruguay	1965	1967	-	Apr	Sun>=1	 0:00	1:00	S
                -+Rule	Uruguay	1965	only	-	Sep	26	 0:00	0	-
                -+Rule	Uruguay	1966	1967	-	Oct	31	 0:00	0	-
                -+Rule	Uruguay	1968	1970	-	May	27	 0:00	0:30	HS
                -+Rule	Uruguay	1968	1970	-	Dec	 2	 0:00	0	-
                -+Rule	Uruguay	1972	only	-	Apr	24	 0:00	1:00	S
                -+Rule	Uruguay	1972	only	-	Aug	15	 0:00	0	-
                -+Rule	Uruguay	1974	only	-	Mar	10	 0:00	0:30	HS
                -+Rule	Uruguay	1974	only	-	Dec	22	 0:00	1:00	S
                -+Rule	Uruguay	1976	only	-	Oct	 1	 0:00	0	-
                -+Rule	Uruguay	1977	only	-	Dec	 4	 0:00	1:00	S
                -+Rule	Uruguay	1978	only	-	Apr	 1	 0:00	0	-
                -+Rule	Uruguay	1979	only	-	Oct	 1	 0:00	1:00	S
                -+Rule	Uruguay	1980	only	-	May	 1	 0:00	0	-
                -+Rule	Uruguay	1987	only	-	Dec	14	 0:00	1:00	S
                -+Rule	Uruguay	1988	only	-	Mar	14	 0:00	0	-
                -+Rule	Uruguay	1988	only	-	Dec	11	 0:00	1:00	S
                -+Rule	Uruguay	1989	only	-	Mar	12	 0:00	0	-
                -+Rule	Uruguay	1989	only	-	Oct	29	 0:00	1:00	S
                -+Rule	Uruguay	1990	1992	-	Mar	Sun>=1	 0:00	0	-
                -+Rule	Uruguay	1990	1991	-	Oct	Sun>=21	 0:00	1:00	S
                -+Rule	Uruguay	1992	only	-	Oct	18	 0:00	1:00	S
                -+Rule	Uruguay	1993	only	-	Feb	28	 0:00	0	-
                -+Rule	Uruguay	2004	only	-	Sep	19	 0:00	1:00	S
                -+Rule	Uruguay	2005	only	-	Mar	27	 2:00	0	-
                -+Rule	Uruguay	2005	only	-	Oct	 9	 2:00	1:00	S
                -+Rule	Uruguay	2006	only	-	Mar	12	 2:00	0	-
                -+Rule	Uruguay	2006	max	-	Oct	Sun>=1	 2:00	1:00	S
                -+Rule	Uruguay	2007	max	-	Mar	Sun>=8	 2:00	0	-
                -+Zone America/Montevideo	-3:44:44 -	LMT	1898 Jun 28
                -+			-3:44:44 -	MMT	1920 May  1	# Montevideo MT
                -+			-3:30	Uruguay	UY%sT	1942 Dec 14	# Uruguay Time
                -+			-3:00	Uruguay	UY%sT
                -+Zone	America/Caracas	-4:27:44 -	LMT	1890
                -+			-4:27:40 -	CMT	1912 Feb 12 # Caracas Mean Time?
                -+			-4:30	-	VET	1965	     # Venezuela Time
                -+			-4:00	-	VET	2007 Dec  9 03:00
                -+			-4:30	-	VET
                -Index: examples/tz/africa
                -===================================================================
                ---- examples/tz/africa	(revision 0)
                -+++ examples/tz/africa	(revision 0)
                -@@ -0,0 +1,314 @@
                -+
                -+Rule	Algeria	1916	only	-	Jun	14	23:00s	1:00	S
                -+Rule	Algeria	1916	1919	-	Oct	Sun>=1	23:00s	0	-
                -+Rule	Algeria	1917	only	-	Mar	24	23:00s	1:00	S
                -+Rule	Algeria	1918	only	-	Mar	 9	23:00s	1:00	S
                -+Rule	Algeria	1919	only	-	Mar	 1	23:00s	1:00	S
                -+Rule	Algeria	1920	only	-	Feb	14	23:00s	1:00	S
                -+Rule	Algeria	1920	only	-	Oct	23	23:00s	0	-
                -+Rule	Algeria	1921	only	-	Mar	14	23:00s	1:00	S
                -+Rule	Algeria	1921	only	-	Jun	21	23:00s	0	-
                -+Rule	Algeria	1939	only	-	Sep	11	23:00s	1:00	S
                -+Rule	Algeria	1939	only	-	Nov	19	 1:00	0	-
                -+Rule	Algeria	1944	1945	-	Apr	Mon>=1	 2:00	1:00	S
                -+Rule	Algeria	1944	only	-	Oct	 8	 2:00	0	-
                -+Rule	Algeria	1945	only	-	Sep	16	 1:00	0	-
                -+Rule	Algeria	1971	only	-	Apr	25	23:00s	1:00	S
                -+Rule	Algeria	1971	only	-	Sep	26	23:00s	0	-
                -+Rule	Algeria	1977	only	-	May	 6	 0:00	1:00	S
                -+Rule	Algeria	1977	only	-	Oct	21	 0:00	0	-
                -+Rule	Algeria	1978	only	-	Mar	24	 1:00	1:00	S
                -+Rule	Algeria	1978	only	-	Sep	22	 3:00	0	-
                -+Rule	Algeria	1980	only	-	Apr	25	 0:00	1:00	S
                -+Rule	Algeria	1980	only	-	Oct	31	 2:00	0	-
                -+Zone	Africa/Algiers	0:12:12 -	LMT	1891 Mar 15 0:01
                -+			0:09:21	-	PMT	1911 Mar 11    # Paris Mean Time
                -+			0:00	Algeria	WE%sT	1940 Feb 25 2:00
                -+			1:00	Algeria	CE%sT	1946 Oct  7
                -+			0:00	-	WET	1956 Jan 29
                -+			1:00	-	CET	1963 Apr 14
                -+			0:00	Algeria	WE%sT	1977 Oct 21
                -+			1:00	Algeria	CE%sT	1979 Oct 26
                -+			0:00	Algeria	WE%sT	1981 May
                -+			1:00	-	CET
                -+Zone	Africa/Luanda	0:52:56	-	LMT	1892
                -+			0:52:04	-	AOT	1911 May 26 # Angola Time
                -+			1:00	-	WAT
                -+Zone Africa/Porto-Novo	0:10:28	-	LMT	1912
                -+			0:00	-	GMT	1934 Feb 26
                -+			1:00	-	WAT
                -+Zone	Africa/Gaborone	1:43:40 -	LMT	1885
                -+			2:00	-	CAT	1943 Sep 19 2:00
                -+			2:00	1:00	CAST	1944 Mar 19 2:00
                -+			2:00	-	CAT
                -+Zone Africa/Ouagadougou	-0:06:04 -	LMT	1912
                -+			 0:00	-	GMT
                -+Zone Africa/Bujumbura	1:57:28	-	LMT	1890
                -+			2:00	-	CAT
                -+Zone	Africa/Douala	0:38:48	-	LMT	1912
                -+			1:00	-	WAT
                -+Zone Atlantic/Cape_Verde -1:34:04 -	LMT	1907			# Praia
                -+			-2:00	-	CVT	1942 Sep
                -+			-2:00	1:00	CVST	1945 Oct 15
                -+			-2:00	-	CVT	1975 Nov 25 2:00
                -+			-1:00	-	CVT
                -+Zone	Africa/Bangui	1:14:20	-	LMT	1912
                -+			1:00	-	WAT
                -+Zone	Africa/Ndjamena	1:00:12 -	LMT	1912
                -+			1:00	-	WAT	1979 Oct 14
                -+			1:00	1:00	WAST	1980 Mar  8
                -+			1:00	-	WAT
                -+Zone	Indian/Comoro	2:53:04 -	LMT	1911 Jul   # Moroni, Gran Comoro
                -+			3:00	-	EAT
                -+Zone Africa/Kinshasa	1:01:12 -	LMT	1897 Nov 9
                -+			1:00	-	WAT
                -+Zone Africa/Lubumbashi	1:49:52 -	LMT	1897 Nov 9
                -+			2:00	-	CAT
                -+Zone Africa/Brazzaville	1:01:08 -	LMT	1912
                -+			1:00	-	WAT
                -+Zone	Africa/Abidjan	-0:16:08 -	LMT	1912
                -+			 0:00	-	GMT
                -+Zone	Africa/Djibouti	2:52:36 -	LMT	1911 Jul
                -+			3:00	-	EAT
                -+Rule	Egypt	1940	only	-	Jul	15	0:00	1:00	S
                -+Rule	Egypt	1940	only	-	Oct	 1	0:00	0	-
                -+Rule	Egypt	1941	only	-	Apr	15	0:00	1:00	S
                -+Rule	Egypt	1941	only	-	Sep	16	0:00	0	-
                -+Rule	Egypt	1942	1944	-	Apr	 1	0:00	1:00	S
                -+Rule	Egypt	1942	only	-	Oct	27	0:00	0	-
                -+Rule	Egypt	1943	1945	-	Nov	 1	0:00	0	-
                -+Rule	Egypt	1945	only	-	Apr	16	0:00	1:00	S
                -+Rule	Egypt	1957	only	-	May	10	0:00	1:00	S
                -+Rule	Egypt	1957	1958	-	Oct	 1	0:00	0	-
                -+Rule	Egypt	1958	only	-	May	 1	0:00	1:00	S
                -+Rule	Egypt	1959	1981	-	May	 1	1:00	1:00	S
                -+Rule	Egypt	1959	1965	-	Sep	30	3:00	0	-
                -+Rule	Egypt	1966	1994	-	Oct	 1	3:00	0	-
                -+Rule	Egypt	1982	only	-	Jul	25	1:00	1:00	S
                -+Rule	Egypt	1983	only	-	Jul	12	1:00	1:00	S
                -+Rule	Egypt	1984	1988	-	May	 1	1:00	1:00	S
                -+Rule	Egypt	1989	only	-	May	 6	1:00	1:00	S
                -+Rule	Egypt	1990	1994	-	May	 1	1:00	1:00	S
                -+Rule	Egypt	1995	max	-	Apr	lastFri	 0:00s	1:00	S
                -+Rule	Egypt	1995	2005	-	Sep	lastThu	23:00s	0	-
                -+Rule	Egypt	2006	only	-	Sep	21	23:00s	0	-
                -+Rule	Egypt	2007	only	-	Sep	Thu>=1	23:00s	0	-
                -+Rule	Egypt	2008	only	-	Aug	lastThu	23:00s	0	-
                -+Rule	Egypt	2009	only	-	Aug	20	23:00s	0	-
                -+Rule	Egypt	2010	only	-	Aug	11	0:00	0	-
                -+Rule	Egypt	2010	only	-	Sep	10	0:00	1:00	S
                -+Rule	Egypt	2010	max	-	Sep	lastThu	23:00s	0	-
                -+Zone	Africa/Cairo	2:05:00 -	LMT	1900 Oct
                -+			2:00	Egypt	EE%sT
                -+Zone	Africa/Malabo	0:35:08 -	LMT	1912
                -+			0:00	-	GMT	1963 Dec 15
                -+			1:00	-	WAT
                -+Zone	Africa/Asmara	2:35:32 -	LMT	1870
                -+			2:35:32	-	AMT	1890	      # Asmara Mean Time
                -+			2:35:20	-	ADMT	1936 May 5    # Adis Dera MT
                -+			3:00	-	EAT
                -+Zone Africa/Addis_Ababa	2:34:48 -	LMT	1870
                -+			2:35:20	-	ADMT	1936 May 5    # Adis Dera MT
                -+			3:00	-	EAT
                -+Zone Africa/Libreville	0:37:48 -	LMT	1912
                -+			1:00	-	WAT
                -+Zone	Africa/Banjul	-1:06:36 -	LMT	1912
                -+			-1:06:36 -	BMT	1935	# Banjul Mean Time
                -+			-1:00	-	WAT	1964
                -+			 0:00	-	GMT
                -+Rule	Ghana	1936	1942	-	Sep	 1	0:00	0:20	GHST
                -+Rule	Ghana	1936	1942	-	Dec	31	0:00	0	GMT
                -+Zone	Africa/Accra	-0:00:52 -	LMT	1918
                -+			 0:00	Ghana	%s
                -+Zone	Africa/Conakry	-0:54:52 -	LMT	1912
                -+			 0:00	-	GMT	1934 Feb 26
                -+			-1:00	-	WAT	1960
                -+			 0:00	-	GMT
                -+Zone	Africa/Bissau	-1:02:20 -	LMT	1911 May 26
                -+			-1:00	-	WAT	1975
                -+			 0:00	-	GMT
                -+Zone	Africa/Nairobi	2:27:16	-	LMT	1928 Jul
                -+			3:00	-	EAT	1930
                -+			2:30	-	BEAT	1940
                -+			2:44:45	-	BEAUT	1960
                -+			3:00	-	EAT
                -+Zone	Africa/Maseru	1:50:00 -	LMT	1903 Mar
                -+			2:00	-	SAST	1943 Sep 19 2:00
                -+			2:00	1:00	SAST	1944 Mar 19 2:00
                -+			2:00	-	SAST
                -+Zone	Africa/Monrovia	-0:43:08 -	LMT	1882
                -+			-0:43:08 -	MMT	1919 Mar # Monrovia Mean Time
                -+			-0:44:30 -	LRT	1972 May # Liberia Time
                -+			 0:00	-	GMT
                -+Rule	Libya	1951	only	-	Oct	14	2:00	1:00	S
                -+Rule	Libya	1952	only	-	Jan	 1	0:00	0	-
                -+Rule	Libya	1953	only	-	Oct	 9	2:00	1:00	S
                -+Rule	Libya	1954	only	-	Jan	 1	0:00	0	-
                -+Rule	Libya	1955	only	-	Sep	30	0:00	1:00	S
                -+Rule	Libya	1956	only	-	Jan	 1	0:00	0	-
                -+Rule	Libya	1982	1984	-	Apr	 1	0:00	1:00	S
                -+Rule	Libya	1982	1985	-	Oct	 1	0:00	0	-
                -+Rule	Libya	1985	only	-	Apr	 6	0:00	1:00	S
                -+Rule	Libya	1986	only	-	Apr	 4	0:00	1:00	S
                -+Rule	Libya	1986	only	-	Oct	 3	0:00	0	-
                -+Rule	Libya	1987	1989	-	Apr	 1	0:00	1:00	S
                -+Rule	Libya	1987	1989	-	Oct	 1	0:00	0	-
                -+Zone	Africa/Tripoli	0:52:44 -	LMT	1920
                -+			1:00	Libya	CE%sT	1959
                -+			2:00	-	EET	1982
                -+			1:00	Libya	CE%sT	1990 May  4
                -+			2:00	-	EET	1996 Sep 30
                -+			1:00	-	CET	1997 Apr  4
                -+			1:00	1:00	CEST	1997 Oct  4
                -+			2:00	-	EET
                -+Zone Indian/Antananarivo 3:10:04 -	LMT	1911 Jul
                -+			3:00	-	EAT	1954 Feb 27 23:00s
                -+			3:00	1:00	EAST	1954 May 29 23:00s
                -+			3:00	-	EAT
                -+Zone	Africa/Blantyre	2:20:00 -	LMT	1903 Mar
                -+			2:00	-	CAT
                -+Zone	Africa/Bamako	-0:32:00 -	LMT	1912
                -+			 0:00	-	GMT	1934 Feb 26
                -+			-1:00	-	WAT	1960 Jun 20
                -+			 0:00	-	GMT
                -+Zone Africa/Nouakchott	-1:03:48 -	LMT	1912
                -+			 0:00	-	GMT	1934 Feb 26
                -+			-1:00	-	WAT	1960 Nov 28
                -+			 0:00	-	GMT
                -+Rule Mauritius	1982	only	-	Oct	10	0:00	1:00	S
                -+Rule Mauritius	1983	only	-	Mar	21	0:00	0	-
                -+Rule Mauritius	2008	only	-	Oct	lastSun	2:00	1:00	S
                -+Rule Mauritius	2009	only	-	Mar	lastSun	2:00	0	-
                -+Zone Indian/Mauritius	3:50:00 -	LMT	1907		# Port Louis
                -+			4:00 Mauritius	MU%sT	# Mauritius Time
                -+Zone	Indian/Mayotte	3:00:56 -	LMT	1911 Jul	# Mamoutzou
                -+			3:00	-	EAT
                -+Rule	Morocco	1939	only	-	Sep	12	 0:00	1:00	S
                -+Rule	Morocco	1939	only	-	Nov	19	 0:00	0	-
                -+Rule	Morocco	1940	only	-	Feb	25	 0:00	1:00	S
                -+Rule	Morocco	1945	only	-	Nov	18	 0:00	0	-
                -+Rule	Morocco	1950	only	-	Jun	11	 0:00	1:00	S
                -+Rule	Morocco	1950	only	-	Oct	29	 0:00	0	-
                -+Rule	Morocco	1967	only	-	Jun	 3	12:00	1:00	S
                -+Rule	Morocco	1967	only	-	Oct	 1	 0:00	0	-
                -+Rule	Morocco	1974	only	-	Jun	24	 0:00	1:00	S
                -+Rule	Morocco	1974	only	-	Sep	 1	 0:00	0	-
                -+Rule	Morocco	1976	1977	-	May	 1	 0:00	1:00	S
                -+Rule	Morocco	1976	only	-	Aug	 1	 0:00	0	-
                -+Rule	Morocco	1977	only	-	Sep	28	 0:00	0	-
                -+Rule	Morocco	1978	only	-	Jun	 1	 0:00	1:00	S
                -+Rule	Morocco	1978	only	-	Aug	 4	 0:00	0	-
                -+Rule	Morocco	2008	only	-	Jun	 1	 0:00	1:00	S
                -+Rule	Morocco	2008	only	-	Sep	 1	 0:00	0	-
                -+Rule	Morocco	2009	only	-	Jun	 1	 0:00	1:00	S
                -+Rule	Morocco	2009	only	-	Aug	 21	 0:00	0	-
                -+Rule	Morocco	2010	only	-	May	 2	 0:00	1:00	S
                -+Rule	Morocco	2010	only	-	Aug	 8	 0:00	0	-
                -+Zone Africa/Casablanca	-0:30:20 -	LMT	1913 Oct 26
                -+			 0:00	Morocco	WE%sT	1984 Mar 16
                -+			 1:00	-	CET	1986
                -+			 0:00	Morocco	WE%sT
                -+Zone Africa/El_Aaiun	-0:52:48 -	LMT	1934 Jan
                -+			-1:00	-	WAT	1976 Apr 14
                -+			 0:00	-	WET
                -+Zone	Africa/Maputo	2:10:20 -	LMT	1903 Mar
                -+			2:00	-	CAT
                -+Rule	Namibia	1994	max	-	Sep	Sun>=1	2:00	1:00	S
                -+Rule	Namibia	1995	max	-	Apr	Sun>=1	2:00	0	-
                -+Zone	Africa/Windhoek	1:08:24 -	LMT	1892 Feb 8
                -+			1:30	-	SWAT	1903 Mar	# SW Africa Time
                -+			2:00	-	SAST	1942 Sep 20 2:00
                -+			2:00	1:00	SAST	1943 Mar 21 2:00
                -+			2:00	-	SAST	1990 Mar 21 # independence
                -+			2:00	-	CAT	1994 Apr  3
                -+			1:00	Namibia	WA%sT
                -+Zone	Africa/Niamey	 0:08:28 -	LMT	1912
                -+			-1:00	-	WAT	1934 Feb 26
                -+			 0:00	-	GMT	1960
                -+			 1:00	-	WAT
                -+Zone	Africa/Lagos	0:13:36 -	LMT	1919 Sep
                -+			1:00	-	WAT
                -+Zone	Indian/Reunion	3:41:52 -	LMT	1911 Jun	# Saint-Denis
                -+			4:00	-	RET	# Reunion Time
                -+Zone	Africa/Kigali	2:00:16 -	LMT	1935 Jun
                -+			2:00	-	CAT
                -+Zone Atlantic/St_Helena	-0:22:48 -	LMT	1890		# Jamestown
                -+			-0:22:48 -	JMT	1951	# Jamestown Mean Time
                -+			 0:00	-	GMT
                -+Zone	Africa/Sao_Tome	 0:26:56 -	LMT	1884
                -+			-0:36:32 -	LMT	1912	# Lisbon Mean Time
                -+			 0:00	-	GMT
                -+Zone	Africa/Dakar	-1:09:44 -	LMT	1912
                -+			-1:00	-	WAT	1941 Jun
                -+			 0:00	-	GMT
                -+Zone	Indian/Mahe	3:41:48 -	LMT	1906 Jun	# Victoria
                -+			4:00	-	SCT	# Seychelles Time
                -+Rule	SL	1935	1942	-	Jun	 1	0:00	0:40	SLST
                -+Rule	SL	1935	1942	-	Oct	 1	0:00	0	WAT
                -+Rule	SL	1957	1962	-	Jun	 1	0:00	1:00	SLST
                -+Rule	SL	1957	1962	-	Sep	 1	0:00	0	GMT
                -+Zone	Africa/Freetown	-0:53:00 -	LMT	1882
                -+			-0:53:00 -	FMT	1913 Jun # Freetown Mean Time
                -+			-1:00	SL	%s	1957
                -+			 0:00	SL	%s
                -+Zone Africa/Mogadishu	3:01:28 -	LMT	1893 Nov
                -+			3:00	-	EAT	1931
                -+			2:30	-	BEAT	1957
                -+			3:00	-	EAT
                -+Rule	SA	1942	1943	-	Sep	Sun>=15	2:00	1:00	-
                -+Rule	SA	1943	1944	-	Mar	Sun>=15	2:00	0	-
                -+Zone Africa/Johannesburg 1:52:00 -	LMT	1892 Feb 8
                -+			1:30	-	SAST	1903 Mar
                -+			2:00	SA	SAST
                -+Rule	Sudan	1970	only	-	May	 1	0:00	1:00	S
                -+Rule	Sudan	1970	1985	-	Oct	15	0:00	0	-
                -+Rule	Sudan	1971	only	-	Apr	30	0:00	1:00	S
                -+Rule	Sudan	1972	1985	-	Apr	lastSun	0:00	1:00	S
                -+Zone	Africa/Khartoum	2:10:08 -	LMT	1931
                -+			2:00	Sudan	CA%sT	2000 Jan 15 12:00
                -+			3:00	-	EAT
                -+Zone	Africa/Mbabane	2:04:24 -	LMT	1903 Mar
                -+			2:00	-	SAST
                -+Zone Africa/Dar_es_Salaam 2:37:08 -	LMT	1931
                -+			3:00	-	EAT	1948
                -+			2:44:45	-	BEAUT	1961
                -+			3:00	-	EAT
                -+Zone	Africa/Lome	0:04:52 -	LMT	1893
                -+			0:00	-	GMT
                -+Rule	Tunisia	1939	only	-	Apr	15	23:00s	1:00	S
                -+Rule	Tunisia	1939	only	-	Nov	18	23:00s	0	-
                -+Rule	Tunisia	1940	only	-	Feb	25	23:00s	1:00	S
                -+Rule	Tunisia	1941	only	-	Oct	 6	 0:00	0	-
                -+Rule	Tunisia	1942	only	-	Mar	 9	 0:00	1:00	S
                -+Rule	Tunisia	1942	only	-	Nov	 2	 3:00	0	-
                -+Rule	Tunisia	1943	only	-	Mar	29	 2:00	1:00	S
                -+Rule	Tunisia	1943	only	-	Apr	17	 2:00	0	-
                -+Rule	Tunisia	1943	only	-	Apr	25	 2:00	1:00	S
                -+Rule	Tunisia	1943	only	-	Oct	 4	 2:00	0	-
                -+Rule	Tunisia	1944	1945	-	Apr	Mon>=1	 2:00	1:00	S
                -+Rule	Tunisia	1944	only	-	Oct	 8	 0:00	0	-
                -+Rule	Tunisia	1945	only	-	Sep	16	 0:00	0	-
                -+Rule	Tunisia	1977	only	-	Apr	30	 0:00s	1:00	S
                -+Rule	Tunisia	1977	only	-	Sep	24	 0:00s	0	-
                -+Rule	Tunisia	1978	only	-	May	 1	 0:00s	1:00	S
                -+Rule	Tunisia	1978	only	-	Oct	 1	 0:00s	0	-
                -+Rule	Tunisia	1988	only	-	Jun	 1	 0:00s	1:00	S
                -+Rule	Tunisia	1988	1990	-	Sep	lastSun	 0:00s	0	-
                -+Rule	Tunisia	1989	only	-	Mar	26	 0:00s	1:00	S
                -+Rule	Tunisia	1990	only	-	May	 1	 0:00s	1:00	S
                -+Rule	Tunisia	2005	only	-	May	 1	 0:00s	1:00	S
                -+Rule	Tunisia	2005	only	-	Sep	30	 1:00s	0	-
                -+Rule	Tunisia	2006	2008	-	Mar	lastSun	 2:00s	1:00	S
                -+Rule	Tunisia	2006	2008	-	Oct	lastSun	 2:00s	0	-
                -+Zone	Africa/Tunis	0:40:44 -	LMT	1881 May 12
                -+			0:09:21	-	PMT	1911 Mar 11    # Paris Mean Time
                -+			1:00	Tunisia	CE%sT
                -+Zone	Africa/Kampala	2:09:40 -	LMT	1928 Jul
                -+			3:00	-	EAT	1930
                -+			2:30	-	BEAT	1948
                -+			2:44:45	-	BEAUT	1957
                -+			3:00	-	EAT
                -+Zone	Africa/Lusaka	1:53:08 -	LMT	1903 Mar
                -+			2:00	-	CAT
                -+Zone	Africa/Harare	2:04:12 -	LMT	1903 Mar
                -+			2:00	-	CAT
                -Index: examples/tz/etcetera
                -===================================================================
                ---- examples/tz/etcetera	(revision 0)
                -+++ examples/tz/etcetera	(revision 0)
                -@@ -0,0 +1,36 @@
                -+Zone	Etc/GMT		0	-	GMT
                -+Zone	Etc/UTC		0	-	UTC
                -+Zone	Etc/UCT		0	-	UCT
                -+Link	Etc/GMT				GMT
                -+Link	Etc/UTC				Etc/Universal
                -+Link	Etc/UTC				Etc/Zulu
                -+Link	Etc/GMT				Etc/Greenwich
                -+Link	Etc/GMT				Etc/GMT-0
                -+Link	Etc/GMT				Etc/GMT+0
                -+Link	Etc/GMT				Etc/GMT0
                -+Zone	Etc/GMT-14	14	-	GMT-14	# 14 hours ahead of GMT
                -+Zone	Etc/GMT-13	13	-	GMT-13
                -+Zone	Etc/GMT-12	12	-	GMT-12
                -+Zone	Etc/GMT-11	11	-	GMT-11
                -+Zone	Etc/GMT-10	10	-	GMT-10
                -+Zone	Etc/GMT-9	9	-	GMT-9
                -+Zone	Etc/GMT-8	8	-	GMT-8
                -+Zone	Etc/GMT-7	7	-	GMT-7
                -+Zone	Etc/GMT-6	6	-	GMT-6
                -+Zone	Etc/GMT-5	5	-	GMT-5
                -+Zone	Etc/GMT-4	4	-	GMT-4
                -+Zone	Etc/GMT-3	3	-	GMT-3
                -+Zone	Etc/GMT-2	2	-	GMT-2
                -+Zone	Etc/GMT-1	1	-	GMT-1
                -+Zone	Etc/GMT+1	-1	-	GMT+1
                -+Zone	Etc/GMT+2	-2	-	GMT+2
                -+Zone	Etc/GMT+3	-3	-	GMT+3
                -+Zone	Etc/GMT+4	-4	-	GMT+4
                -+Zone	Etc/GMT+5	-5	-	GMT+5
                -+Zone	Etc/GMT+6	-6	-	GMT+6
                -+Zone	Etc/GMT+7	-7	-	GMT+7
                -+Zone	Etc/GMT+8	-8	-	GMT+8
                -+Zone	Etc/GMT+9	-9	-	GMT+9
                -+Zone	Etc/GMT+10	-10	-	GMT+10
                -+Zone	Etc/GMT+11	-11	-	GMT+11
                -+Zone	Etc/GMT+12	-12	-	GMT+12
                -Index: examples/tz/europe
                -===================================================================
                ---- examples/tz/europe	(revision 0)
                -+++ examples/tz/europe	(revision 0)
                -@@ -0,0 +1,1058 @@
                -+Rule	GB-Eire	1916	only	-	May	21	2:00s	1:00	BST
                -+Rule	GB-Eire	1916	only	-	Oct	 1	2:00s	0	GMT
                -+Rule	GB-Eire	1917	only	-	Apr	 8	2:00s	1:00	BST
                -+Rule	GB-Eire	1917	only	-	Sep	17	2:00s	0	GMT
                -+Rule	GB-Eire	1918	only	-	Mar	24	2:00s	1:00	BST
                -+Rule	GB-Eire	1918	only	-	Sep	30	2:00s	0	GMT
                -+Rule	GB-Eire	1919	only	-	Mar	30	2:00s	1:00	BST
                -+Rule	GB-Eire	1919	only	-	Sep	29	2:00s	0	GMT
                -+Rule	GB-Eire	1920	only	-	Mar	28	2:00s	1:00	BST
                -+Rule	GB-Eire	1920	only	-	Oct	25	2:00s	0	GMT
                -+Rule	GB-Eire	1921	only	-	Apr	 3	2:00s	1:00	BST
                -+Rule	GB-Eire	1921	only	-	Oct	 3	2:00s	0	GMT
                -+Rule	GB-Eire	1922	only	-	Mar	26	2:00s	1:00	BST
                -+Rule	GB-Eire	1922	only	-	Oct	 8	2:00s	0	GMT
                -+Rule	GB-Eire	1923	only	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1923	1924	-	Sep	Sun>=16	2:00s	0	GMT
                -+Rule	GB-Eire	1924	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1925	1926	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1925	1938	-	Oct	Sun>=2	2:00s	0	GMT
                -+Rule	GB-Eire	1927	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1928	1929	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1930	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1931	1932	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1933	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1934	only	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1935	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1936	1937	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1938	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1939	only	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1939	only	-	Nov	Sun>=16	2:00s	0	GMT
                -+Rule	GB-Eire	1940	only	-	Feb	Sun>=23	2:00s	1:00	BST
                -+Rule	GB-Eire	1941	only	-	May	Sun>=2	1:00s	2:00	BDST
                -+Rule	GB-Eire	1941	1943	-	Aug	Sun>=9	1:00s	1:00	BST
                -+Rule	GB-Eire	1942	1944	-	Apr	Sun>=2	1:00s	2:00	BDST
                -+Rule	GB-Eire	1944	only	-	Sep	Sun>=16	1:00s	1:00	BST
                -+Rule	GB-Eire	1945	only	-	Apr	Mon>=2	1:00s	2:00	BDST
                -+Rule	GB-Eire	1945	only	-	Jul	Sun>=9	1:00s	1:00	BST
                -+Rule	GB-Eire	1945	1946	-	Oct	Sun>=2	2:00s	0	GMT
                -+Rule	GB-Eire	1946	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1947	only	-	Mar	16	2:00s	1:00	BST
                -+Rule	GB-Eire	1947	only	-	Apr	13	1:00s	2:00	BDST
                -+Rule	GB-Eire	1947	only	-	Aug	10	1:00s	1:00	BST
                -+Rule	GB-Eire	1947	only	-	Nov	 2	2:00s	0	GMT
                -+Rule	GB-Eire	1948	only	-	Mar	14	2:00s	1:00	BST
                -+Rule	GB-Eire	1948	only	-	Oct	31	2:00s	0	GMT
                -+Rule	GB-Eire	1949	only	-	Apr	 3	2:00s	1:00	BST
                -+Rule	GB-Eire	1949	only	-	Oct	30	2:00s	0	GMT
                -+Rule	GB-Eire	1950	1952	-	Apr	Sun>=14	2:00s	1:00	BST
                -+Rule	GB-Eire	1950	1952	-	Oct	Sun>=21	2:00s	0	GMT
                -+Rule	GB-Eire	1953	only	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1953	1960	-	Oct	Sun>=2	2:00s	0	GMT
                -+Rule	GB-Eire	1954	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1955	1956	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1957	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1958	1959	-	Apr	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1960	only	-	Apr	Sun>=9	2:00s	1:00	BST
                -+Rule	GB-Eire	1961	1963	-	Mar	lastSun	2:00s	1:00	BST
                -+Rule	GB-Eire	1961	1968	-	Oct	Sun>=23	2:00s	0	GMT
                -+Rule	GB-Eire	1964	1967	-	Mar	Sun>=19	2:00s	1:00	BST
                -+Rule	GB-Eire	1968	only	-	Feb	18	2:00s	1:00	BST
                -+Rule	GB-Eire	1972	1980	-	Mar	Sun>=16	2:00s	1:00	BST
                -+Rule	GB-Eire	1972	1980	-	Oct	Sun>=23	2:00s	0	GMT
                -+Rule	GB-Eire	1981	1995	-	Mar	lastSun	1:00u	1:00	BST
                -+Rule	GB-Eire 1981	1989	-	Oct	Sun>=23	1:00u	0	GMT
                -+Rule	GB-Eire 1990	1995	-	Oct	Sun>=22	1:00u	0	GMT
                -+Zone	Europe/London	-0:01:15 -	LMT	1847 Dec  1 0:00s
                -+			 0:00	GB-Eire	%s	1968 Oct 27
                -+			 1:00	-	BST	1971 Oct 31 2:00u
                -+			 0:00	GB-Eire	%s	1996
                -+			 0:00	EU	GMT/BST
                -+Link	Europe/London	Europe/Jersey
                -+Link	Europe/London	Europe/Guernsey
                -+Link	Europe/London	Europe/Isle_of_Man
                -+Zone	Europe/Dublin	-0:25:00 -	LMT	1880 Aug  2
                -+			-0:25:21 -	DMT	1916 May 21 2:00
                -+			-0:25:21 1:00	IST	1916 Oct  1 2:00s
                -+			 0:00	GB-Eire	%s	1921 Dec  6 # independence
                -+			 0:00	GB-Eire	GMT/IST	1940 Feb 25 2:00
                -+			 0:00	1:00	IST	1946 Oct  6 2:00
                -+			 0:00	-	GMT	1947 Mar 16 2:00
                -+			 0:00	1:00	IST	1947 Nov  2 2:00
                -+			 0:00	-	GMT	1948 Apr 18 2:00
                -+			 0:00	GB-Eire	GMT/IST	1968 Oct 27
                -+			 1:00	-	IST	1971 Oct 31 2:00u
                -+			 0:00	GB-Eire	GMT/IST	1996
                -+			 0:00	EU	GMT/IST
                -+Rule	EU	1977	1980	-	Apr	Sun>=1	 1:00u	1:00	S
                -+Rule	EU	1977	only	-	Sep	lastSun	 1:00u	0	-
                -+Rule	EU	1978	only	-	Oct	 1	 1:00u	0	-
                -+Rule	EU	1979	1995	-	Sep	lastSun	 1:00u	0	-
                -+Rule	EU	1981	max	-	Mar	lastSun	 1:00u	1:00	S
                -+Rule	EU	1996	max	-	Oct	lastSun	 1:00u	0	-
                -+Rule	W-Eur	1977	1980	-	Apr	Sun>=1	 1:00s	1:00	S
                -+Rule	W-Eur	1977	only	-	Sep	lastSun	 1:00s	0	-
                -+Rule	W-Eur	1978	only	-	Oct	 1	 1:00s	0	-
                -+Rule	W-Eur	1979	1995	-	Sep	lastSun	 1:00s	0	-
                -+Rule	W-Eur	1981	max	-	Mar	lastSun	 1:00s	1:00	S
                -+Rule	W-Eur	1996	max	-	Oct	lastSun	 1:00s	0	-
                -+Rule	C-Eur	1916	only	-	Apr	30	23:00	1:00	S
                -+Rule	C-Eur	1916	only	-	Oct	 1	 1:00	0	-
                -+Rule	C-Eur	1917	1918	-	Apr	Mon>=15	 2:00s	1:00	S
                -+Rule	C-Eur	1917	1918	-	Sep	Mon>=15	 2:00s	0	-
                -+Rule	C-Eur	1940	only	-	Apr	 1	 2:00s	1:00	S
                -+Rule	C-Eur	1942	only	-	Nov	 2	 2:00s	0	-
                -+Rule	C-Eur	1943	only	-	Mar	29	 2:00s	1:00	S
                -+Rule	C-Eur	1943	only	-	Oct	 4	 2:00s	0	-
                -+Rule	C-Eur	1944	1945	-	Apr	Mon>=1	 2:00s	1:00	S
                -+Rule	C-Eur	1944	only	-	Oct	 2	 2:00s	0	-
                -+Rule	C-Eur	1945	only	-	Sep	16	 2:00s	0	-
                -+Rule	C-Eur	1977	1980	-	Apr	Sun>=1	 2:00s	1:00	S
                -+Rule	C-Eur	1977	only	-	Sep	lastSun	 2:00s	0	-
                -+Rule	C-Eur	1978	only	-	Oct	 1	 2:00s	0	-
                -+Rule	C-Eur	1979	1995	-	Sep	lastSun	 2:00s	0	-
                -+Rule	C-Eur	1981	max	-	Mar	lastSun	 2:00s	1:00	S
                -+Rule	C-Eur	1996	max	-	Oct	lastSun	 2:00s	0	-
                -+Rule	E-Eur	1977	1980	-	Apr	Sun>=1	 0:00	1:00	S
                -+Rule	E-Eur	1977	only	-	Sep	lastSun	 0:00	0	-
                -+Rule	E-Eur	1978	only	-	Oct	 1	 0:00	0	-
                -+Rule	E-Eur	1979	1995	-	Sep	lastSun	 0:00	0	-
                -+Rule	E-Eur	1981	max	-	Mar	lastSun	 0:00	1:00	S
                -+Rule	E-Eur	1996	max	-	Oct	lastSun	 0:00	0	-
                -+Rule	Russia	1917	only	-	Jul	 1	23:00	1:00	MST	# Moscow Summer Time
                -+Rule	Russia	1917	only	-	Dec	28	 0:00	0	MMT	# Moscow Mean Time
                -+Rule	Russia	1918	only	-	May	31	22:00	2:00	MDST	# Moscow Double Summer Time
                -+Rule	Russia	1918	only	-	Sep	16	 1:00	1:00	MST
                -+Rule	Russia	1919	only	-	May	31	23:00	2:00	MDST
                -+Rule	Russia	1919	only	-	Jul	 1	 2:00	1:00	S
                -+Rule	Russia	1919	only	-	Aug	16	 0:00	0	-
                -+Rule	Russia	1921	only	-	Feb	14	23:00	1:00	S
                -+Rule	Russia	1921	only	-	Mar	20	23:00	2:00	M # Midsummer
                -+Rule	Russia	1921	only	-	Sep	 1	 0:00	1:00	S
                -+Rule	Russia	1921	only	-	Oct	 1	 0:00	0	-
                -+Rule	Russia	1981	1984	-	Apr	 1	 0:00	1:00	S
                -+Rule	Russia	1981	1983	-	Oct	 1	 0:00	0	-
                -+Rule	Russia	1984	1991	-	Sep	lastSun	 2:00s	0	-
                -+Rule	Russia	1985	1991	-	Mar	lastSun	 2:00s	1:00	S
                -+Rule	Russia	1992	only	-	Mar	lastSat	 23:00	1:00	S
                -+Rule	Russia	1992	only	-	Sep	lastSat	 23:00	0	-
                -+Rule	Russia	1993	max	-	Mar	lastSun	 2:00s	1:00	S
                -+Rule	Russia	1993	1995	-	Sep	lastSun	 2:00s	0	-
                -+Rule	Russia	1996	max	-	Oct	lastSun	 2:00s	0	-
                -+Zone	WET		0:00	EU	WE%sT
                -+Zone	CET		1:00	C-Eur	CE%sT
                -+Zone	MET		1:00	C-Eur	ME%sT
                -+Zone	EET		2:00	EU	EE%sT
                -+Rule	Albania	1940	only	-	Jun	16	0:00	1:00	S
                -+Rule	Albania	1942	only	-	Nov	 2	3:00	0	-
                -+Rule	Albania	1943	only	-	Mar	29	2:00	1:00	S
                -+Rule	Albania	1943	only	-	Apr	10	3:00	0	-
                -+Rule	Albania	1974	only	-	May	 4	0:00	1:00	S
                -+Rule	Albania	1974	only	-	Oct	 2	0:00	0	-
                -+Rule	Albania	1975	only	-	May	 1	0:00	1:00	S
                -+Rule	Albania	1975	only	-	Oct	 2	0:00	0	-
                -+Rule	Albania	1976	only	-	May	 2	0:00	1:00	S
                -+Rule	Albania	1976	only	-	Oct	 3	0:00	0	-
                -+Rule	Albania	1977	only	-	May	 8	0:00	1:00	S
                -+Rule	Albania	1977	only	-	Oct	 2	0:00	0	-
                -+Rule	Albania	1978	only	-	May	 6	0:00	1:00	S
                -+Rule	Albania	1978	only	-	Oct	 1	0:00	0	-
                -+Rule	Albania	1979	only	-	May	 5	0:00	1:00	S
                -+Rule	Albania	1979	only	-	Sep	30	0:00	0	-
                -+Rule	Albania	1980	only	-	May	 3	0:00	1:00	S
                -+Rule	Albania	1980	only	-	Oct	 4	0:00	0	-
                -+Rule	Albania	1981	only	-	Apr	26	0:00	1:00	S
                -+Rule	Albania	1981	only	-	Sep	27	0:00	0	-
                -+Rule	Albania	1982	only	-	May	 2	0:00	1:00	S
                -+Rule	Albania	1982	only	-	Oct	 3	0:00	0	-
                -+Rule	Albania	1983	only	-	Apr	18	0:00	1:00	S
                -+Rule	Albania	1983	only	-	Oct	 1	0:00	0	-
                -+Rule	Albania	1984	only	-	Apr	 1	0:00	1:00	S
                -+Zone	Europe/Tirane	1:19:20 -	LMT	1914
                -+			1:00	-	CET	1940 Jun 16
                -+			1:00	Albania	CE%sT	1984 Jul
                -+			1:00	EU	CE%sT
                -+Zone	Europe/Andorra	0:06:04 -	LMT	1901
                -+			0:00	-	WET	1946 Sep 30
                -+			1:00	-	CET	1985 Mar 31 2:00
                -+			1:00	EU	CE%sT
                -+Rule	Austria	1920	only	-	Apr	 5	2:00s	1:00	S
                -+Rule	Austria	1920	only	-	Sep	13	2:00s	0	-
                -+Rule	Austria	1946	only	-	Apr	14	2:00s	1:00	S
                -+Rule	Austria	1946	1948	-	Oct	Sun>=1	2:00s	0	-
                -+Rule	Austria	1947	only	-	Apr	 6	2:00s	1:00	S
                -+Rule	Austria	1948	only	-	Apr	18	2:00s	1:00	S
                -+Rule	Austria	1980	only	-	Apr	 6	0:00	1:00	S
                -+Rule	Austria	1980	only	-	Sep	28	0:00	0	-
                -+Zone	Europe/Vienna	1:05:20 -	LMT	1893 Apr
                -+			1:00	C-Eur	CE%sT	1920
                -+			1:00	Austria	CE%sT	1940 Apr  1 2:00s
                -+			1:00	C-Eur	CE%sT	1945 Apr  2 2:00s
                -+			1:00	1:00	CEST	1945 Apr 12 2:00s
                -+			1:00	-	CET	1946
                -+			1:00	Austria	CE%sT	1981
                -+			1:00	EU	CE%sT
                -+Zone	Europe/Minsk	1:50:16 -	LMT	1880
                -+			1:50	-	MMT	1924 May 2 # Minsk Mean Time
                -+			2:00	-	EET	1930 Jun 21
                -+			3:00	-	MSK	1941 Jun 28
                -+			1:00	C-Eur	CE%sT	1944 Jul  3
                -+			3:00	Russia	MSK/MSD	1990
                -+			3:00	-	MSK	1991 Mar 31 2:00s
                -+			2:00	1:00	EEST	1991 Sep 29 2:00s
                -+			2:00	-	EET	1992 Mar 29 0:00s
                -+			2:00	1:00	EEST	1992 Sep 27 0:00s
                -+			2:00	Russia	EE%sT
                -+Rule	Belgium	1918	only	-	Mar	 9	 0:00s	1:00	S
                -+Rule	Belgium	1918	1919	-	Oct	Sat>=1	23:00s	0	-
                -+Rule	Belgium	1919	only	-	Mar	 1	23:00s	1:00	S
                -+Rule	Belgium	1920	only	-	Feb	14	23:00s	1:00	S
                -+Rule	Belgium	1920	only	-	Oct	23	23:00s	0	-
                -+Rule	Belgium	1921	only	-	Mar	14	23:00s	1:00	S
                -+Rule	Belgium	1921	only	-	Oct	25	23:00s	0	-
                -+Rule	Belgium	1922	only	-	Mar	25	23:00s	1:00	S
                -+Rule	Belgium	1922	1927	-	Oct	Sat>=1	23:00s	0	-
                -+Rule	Belgium	1923	only	-	Apr	21	23:00s	1:00	S
                -+Rule	Belgium	1924	only	-	Mar	29	23:00s	1:00	S
                -+Rule	Belgium	1925	only	-	Apr	 4	23:00s	1:00	S
                -+Rule	Belgium	1926	only	-	Apr	17	23:00s	1:00	S
                -+Rule	Belgium	1927	only	-	Apr	 9	23:00s	1:00	S
                -+Rule	Belgium	1928	only	-	Apr	14	23:00s	1:00	S
                -+Rule	Belgium	1928	1938	-	Oct	Sun>=2	 2:00s	0	-
                -+Rule	Belgium	1929	only	-	Apr	21	 2:00s	1:00	S
                -+Rule	Belgium	1930	only	-	Apr	13	 2:00s	1:00	S
                -+Rule	Belgium	1931	only	-	Apr	19	 2:00s	1:00	S
                -+Rule	Belgium	1932	only	-	Apr	 3	 2:00s	1:00	S
                -+Rule	Belgium	1933	only	-	Mar	26	 2:00s	1:00	S
                -+Rule	Belgium	1934	only	-	Apr	 8	 2:00s	1:00	S
                -+Rule	Belgium	1935	only	-	Mar	31	 2:00s	1:00	S
                -+Rule	Belgium	1936	only	-	Apr	19	 2:00s	1:00	S
                -+Rule	Belgium	1937	only	-	Apr	 4	 2:00s	1:00	S
                -+Rule	Belgium	1938	only	-	Mar	27	 2:00s	1:00	S
                -+Rule	Belgium	1939	only	-	Apr	16	 2:00s	1:00	S
                -+Rule	Belgium	1939	only	-	Nov	19	 2:00s	0	-
                -+Rule	Belgium	1940	only	-	Feb	25	 2:00s	1:00	S
                -+Rule	Belgium	1944	only	-	Sep	17	 2:00s	0	-
                -+Rule	Belgium	1945	only	-	Apr	 2	 2:00s	1:00	S
                -+Rule	Belgium	1945	only	-	Sep	16	 2:00s	0	-
                -+Rule	Belgium	1946	only	-	May	19	 2:00s	1:00	S
                -+Rule	Belgium	1946	only	-	Oct	 7	 2:00s	0	-
                -+Zone	Europe/Brussels	0:17:30 -	LMT	1880
                -+			0:17:30	-	BMT	1892 May  1 12:00 # Brussels MT
                -+			0:00	-	WET	1914 Nov  8
                -+			1:00	-	CET	1916 May  1  0:00
                -+			1:00	C-Eur	CE%sT	1918 Nov 11 11:00u
                -+			0:00	Belgium	WE%sT	1940 May 20  2:00s
                -+			1:00	C-Eur	CE%sT	1944 Sep  3
                -+			1:00	Belgium	CE%sT	1977
                -+			1:00	EU	CE%sT
                -+Rule	Bulg	1979	only	-	Mar	31	23:00	1:00	S
                -+Rule	Bulg	1979	only	-	Oct	 1	 1:00	0	-
                -+Rule	Bulg	1980	1982	-	Apr	Sat>=1	23:00	1:00	S
                -+Rule	Bulg	1980	only	-	Sep	29	 1:00	0	-
                -+Rule	Bulg	1981	only	-	Sep	27	 2:00	0	-
                -+Zone	Europe/Sofia	1:33:16 -	LMT	1880
                -+			1:56:56	-	IMT	1894 Nov 30 # Istanbul MT?
                -+			2:00	-	EET	1942 Nov  2  3:00
                -+			1:00	C-Eur	CE%sT	1945
                -+			1:00	-	CET	1945 Apr 2 3:00
                -+			2:00	-	EET	1979 Mar 31 23:00
                -+			2:00	Bulg	EE%sT	1982 Sep 26  2:00
                -+			2:00	C-Eur	EE%sT	1991
                -+			2:00	E-Eur	EE%sT	1997
                -+			2:00	EU	EE%sT
                -+Rule	Czech	1945	only	-	Apr	 8	2:00s	1:00	S
                -+Rule	Czech	1945	only	-	Nov	18	2:00s	0	-
                -+Rule	Czech	1946	only	-	May	 6	2:00s	1:00	S
                -+Rule	Czech	1946	1949	-	Oct	Sun>=1	2:00s	0	-
                -+Rule	Czech	1947	only	-	Apr	20	2:00s	1:00	S
                -+Rule	Czech	1948	only	-	Apr	18	2:00s	1:00	S
                -+Rule	Czech	1949	only	-	Apr	 9	2:00s	1:00	S
                -+Zone	Europe/Prague	0:57:44 -	LMT	1850
                -+			0:57:44	-	PMT	1891 Oct     # Prague Mean Time
                -+			1:00	C-Eur	CE%sT	1944 Sep 17 2:00s
                -+			1:00	Czech	CE%sT	1979
                -+			1:00	EU	CE%sT
                -+Rule	Denmark	1916	only	-	May	14	23:00	1:00	S
                -+Rule	Denmark	1916	only	-	Sep	30	23:00	0	-
                -+Rule	Denmark	1940	only	-	May	15	 0:00	1:00	S
                -+Rule	Denmark	1945	only	-	Apr	 2	 2:00s	1:00	S
                -+Rule	Denmark	1945	only	-	Aug	15	 2:00s	0	-
                -+Rule	Denmark	1946	only	-	May	 1	 2:00s	1:00	S
                -+Rule	Denmark	1946	only	-	Sep	 1	 2:00s	0	-
                -+Rule	Denmark	1947	only	-	May	 4	 2:00s	1:00	S
                -+Rule	Denmark	1947	only	-	Aug	10	 2:00s	0	-
                -+Rule	Denmark	1948	only	-	May	 9	 2:00s	1:00	S
                -+Rule	Denmark	1948	only	-	Aug	 8	 2:00s	0	-
                -+Zone Europe/Copenhagen	 0:50:20 -	LMT	1890
                -+			 0:50:20 -	CMT	1894 Jan  1 # Copenhagen MT
                -+			 1:00	Denmark	CE%sT	1942 Nov  2 2:00s
                -+			 1:00	C-Eur	CE%sT	1945 Apr  2 2:00
                -+			 1:00	Denmark	CE%sT	1980
                -+			 1:00	EU	CE%sT
                -+Zone Atlantic/Faroe	-0:27:04 -	LMT	1908 Jan 11	# Torshavn
                -+			 0:00	-	WET	1981
                -+			 0:00	EU	WE%sT
                -+Rule	Thule	1991	1992	-	Mar	lastSun	2:00	1:00	D
                -+Rule	Thule	1991	1992	-	Sep	lastSun	2:00	0	S
                -+Rule	Thule	1993	2006	-	Apr	Sun>=1	2:00	1:00	D
                -+Rule	Thule	1993	2006	-	Oct	lastSun	2:00	0	S
                -+Rule	Thule	2007	max	-	Mar	Sun>=8	2:00	1:00	D
                -+Rule	Thule	2007	max	-	Nov	Sun>=1	2:00	0	S
                -+Zone America/Danmarkshavn -1:14:40 -	LMT	1916 Jul 28
                -+			-3:00	-	WGT	1980 Apr  6 2:00
                -+			-3:00	EU	WG%sT	1996
                -+			0:00	-	GMT
                -+Zone America/Scoresbysund -1:27:52 -	LMT	1916 Jul 28 # Ittoqqortoormiit
                -+			-2:00	-	CGT	1980 Apr  6 2:00
                -+			-2:00	C-Eur	CG%sT	1981 Mar 29
                -+			-1:00	EU	EG%sT
                -+Zone America/Godthab	-3:26:56 -	LMT	1916 Jul 28 # Nuuk
                -+			-3:00	-	WGT	1980 Apr  6 2:00
                -+			-3:00	EU	WG%sT
                -+Zone America/Thule	-4:35:08 -	LMT	1916 Jul 28 # Pituffik air base
                -+			-4:00	Thule	A%sT
                -+Zone	Europe/Tallinn	1:39:00	-	LMT	1880
                -+			1:39:00	-	TMT	1918 Feb # Tallinn Mean Time
                -+			1:00	C-Eur	CE%sT	1919 Jul
                -+			1:39:00	-	TMT	1921 May
                -+			2:00	-	EET	1940 Aug  6
                -+			3:00	-	MSK	1941 Sep 15
                -+			1:00	C-Eur	CE%sT	1944 Sep 22
                -+			3:00	Russia	MSK/MSD	1989 Mar 26 2:00s
                -+			2:00	1:00	EEST	1989 Sep 24 2:00s
                -+			2:00	C-Eur	EE%sT	1998 Sep 22
                -+			2:00	EU	EE%sT	1999 Nov  1
                -+			2:00	-	EET	2002 Feb 21
                -+			2:00	EU	EE%sT
                -+Rule	Finland	1942	only	-	Apr	3	0:00	1:00	S
                -+Rule	Finland	1942	only	-	Oct	3	0:00	0	-
                -+Rule	Finland	1981	1982	-	Mar	lastSun	2:00	1:00	S
                -+Rule	Finland	1981	1982	-	Sep	lastSun	3:00	0	-
                -+Zone	Europe/Helsinki	1:39:52 -	LMT	1878 May 31
                -+			1:39:52	-	HMT	1921 May    # Helsinki Mean Time
                -+			2:00	Finland	EE%sT	1983
                -+			2:00	EU	EE%sT
                -+Link	Europe/Helsinki	Europe/Mariehamn
                -+Rule	France	1916	only	-	Jun	14	23:00s	1:00	S
                -+Rule	France	1916	1919	-	Oct	Sun>=1	23:00s	0	-
                -+Rule	France	1917	only	-	Mar	24	23:00s	1:00	S
                -+Rule	France	1918	only	-	Mar	 9	23:00s	1:00	S
                -+Rule	France	1919	only	-	Mar	 1	23:00s	1:00	S
                -+Rule	France	1920	only	-	Feb	14	23:00s	1:00	S
                -+Rule	France	1920	only	-	Oct	23	23:00s	0	-
                -+Rule	France	1921	only	-	Mar	14	23:00s	1:00	S
                -+Rule	France	1921	only	-	Oct	25	23:00s	0	-
                -+Rule	France	1922	only	-	Mar	25	23:00s	1:00	S
                -+Rule	France	1922	1938	-	Oct	Sat>=1	23:00s	0	-
                -+Rule	France	1923	only	-	May	26	23:00s	1:00	S
                -+Rule	France	1924	only	-	Mar	29	23:00s	1:00	S
                -+Rule	France	1925	only	-	Apr	 4	23:00s	1:00	S
                -+Rule	France	1926	only	-	Apr	17	23:00s	1:00	S
                -+Rule	France	1927	only	-	Apr	 9	23:00s	1:00	S
                -+Rule	France	1928	only	-	Apr	14	23:00s	1:00	S
                -+Rule	France	1929	only	-	Apr	20	23:00s	1:00	S
                -+Rule	France	1930	only	-	Apr	12	23:00s	1:00	S
                -+Rule	France	1931	only	-	Apr	18	23:00s	1:00	S
                -+Rule	France	1932	only	-	Apr	 2	23:00s	1:00	S
                -+Rule	France	1933	only	-	Mar	25	23:00s	1:00	S
                -+Rule	France	1934	only	-	Apr	 7	23:00s	1:00	S
                -+Rule	France	1935	only	-	Mar	30	23:00s	1:00	S
                -+Rule	France	1936	only	-	Apr	18	23:00s	1:00	S
                -+Rule	France	1937	only	-	Apr	 3	23:00s	1:00	S
                -+Rule	France	1938	only	-	Mar	26	23:00s	1:00	S
                -+Rule	France	1939	only	-	Apr	15	23:00s	1:00	S
                -+Rule	France	1939	only	-	Nov	18	23:00s	0	-
                -+Rule	France	1940	only	-	Feb	25	 2:00	1:00	S
                -+Rule	France	1941	only	-	May	 5	 0:00	2:00	M # Midsummer
                -+Rule	France	1941	only	-	Oct	 6	 0:00	1:00	S
                -+Rule	France	1942	only	-	Mar	 9	 0:00	2:00	M
                -+Rule	France	1942	only	-	Nov	 2	 3:00	1:00	S
                -+Rule	France	1943	only	-	Mar	29	 2:00	2:00	M
                -+Rule	France	1943	only	-	Oct	 4	 3:00	1:00	S
                -+Rule	France	1944	only	-	Apr	 3	 2:00	2:00	M
                -+Rule	France	1944	only	-	Oct	 8	 1:00	1:00	S
                -+Rule	France	1945	only	-	Apr	 2	 2:00	2:00	M
                -+Rule	France	1945	only	-	Sep	16	 3:00	0	-
                -+Rule	France	1976	only	-	Mar	28	 1:00	1:00	S
                -+Rule	France	1976	only	-	Sep	26	 1:00	0	-
                -+Zone	Europe/Paris	0:09:21 -	LMT	1891 Mar 15  0:01
                -+			0:09:21	-	PMT	1911 Mar 11  0:01  # Paris MT
                -+			0:00	France	WE%sT	1940 Jun 14 23:00
                -+			1:00	C-Eur	CE%sT	1944 Aug 25
                -+			0:00	France	WE%sT	1945 Sep 16  3:00
                -+			1:00	France	CE%sT	1977
                -+			1:00	EU	CE%sT
                -+Rule	Germany	1946	only	-	Apr	14	2:00s	1:00	S
                -+Rule	Germany	1946	only	-	Oct	 7	2:00s	0	-
                -+Rule	Germany	1947	1949	-	Oct	Sun>=1	2:00s	0	-
                -+Rule	Germany	1947	only	-	Apr	 6	3:00s	1:00	S
                -+Rule	Germany	1947	only	-	May	11	2:00s	2:00	M
                -+Rule	Germany	1947	only	-	Jun	29	3:00	1:00	S
                -+Rule	Germany	1948	only	-	Apr	18	2:00s	1:00	S
                -+Rule	Germany	1949	only	-	Apr	10	2:00s	1:00	S
                -+Rule SovietZone	1945	only	-	May	24	2:00	2:00	M # Midsummer
                -+Rule SovietZone	1945	only	-	Sep	24	3:00	1:00	S
                -+Rule SovietZone	1945	only	-	Nov	18	2:00s	0	-
                -+Zone	Europe/Berlin	0:53:28 -	LMT	1893 Apr
                -+			1:00	C-Eur	CE%sT	1945 May 24 2:00
                -+			1:00 SovietZone	CE%sT	1946
                -+			1:00	Germany	CE%sT	1980
                -+			1:00	EU	CE%sT
                -+Zone Europe/Gibraltar	-0:21:24 -	LMT	1880 Aug  2 0:00s
                -+			0:00	GB-Eire	%s	1957 Apr 14 2:00
                -+			1:00	-	CET	1982
                -+			1:00	EU	CE%sT
                -+Rule	Greece	1932	only	-	Jul	 7	0:00	1:00	S
                -+Rule	Greece	1932	only	-	Sep	 1	0:00	0	-
                -+Rule	Greece	1941	only	-	Apr	 7	0:00	1:00	S
                -+Rule	Greece	1942	only	-	Nov	 2	3:00	0	-
                -+Rule	Greece	1943	only	-	Mar	30	0:00	1:00	S
                -+Rule	Greece	1943	only	-	Oct	 4	0:00	0	-
                -+Rule	Greece	1952	only	-	Jul	 1	0:00	1:00	S
                -+Rule	Greece	1952	only	-	Nov	 2	0:00	0	-
                -+Rule	Greece	1975	only	-	Apr	12	0:00s	1:00	S
                -+Rule	Greece	1975	only	-	Nov	26	0:00s	0	-
                -+Rule	Greece	1976	only	-	Apr	11	2:00s	1:00	S
                -+Rule	Greece	1976	only	-	Oct	10	2:00s	0	-
                -+Rule	Greece	1977	1978	-	Apr	Sun>=1	2:00s	1:00	S
                -+Rule	Greece	1977	only	-	Sep	26	2:00s	0	-
                -+Rule	Greece	1978	only	-	Sep	24	4:00	0	-
                -+Rule	Greece	1979	only	-	Apr	 1	9:00	1:00	S
                -+Rule	Greece	1979	only	-	Sep	29	2:00	0	-
                -+Rule	Greece	1980	only	-	Apr	 1	0:00	1:00	S
                -+Rule	Greece	1980	only	-	Sep	28	0:00	0	-
                -+Zone	Europe/Athens	1:34:52 -	LMT	1895 Sep 14
                -+			1:34:52	-	AMT	1916 Jul 28 0:01     # Athens MT
                -+			2:00	Greece	EE%sT	1941 Apr 30
                -+			1:00	Greece	CE%sT	1944 Apr  4
                -+			2:00	Greece	EE%sT	1981
                -+			# Shanks & Pottenger say it switched to C-Eur in 1981;
                -+			# go with EU instead, since Greece joined it on Jan 1.
                -+			2:00	EU	EE%sT
                -+Rule	Hungary	1918	only	-	Apr	 1	 3:00	1:00	S
                -+Rule	Hungary	1918	only	-	Sep	29	 3:00	0	-
                -+Rule	Hungary	1919	only	-	Apr	15	 3:00	1:00	S
                -+Rule	Hungary	1919	only	-	Sep	15	 3:00	0	-
                -+Rule	Hungary	1920	only	-	Apr	 5	 3:00	1:00	S
                -+Rule	Hungary	1920	only	-	Sep	30	 3:00	0	-
                -+Rule	Hungary	1945	only	-	May	 1	23:00	1:00	S
                -+Rule	Hungary	1945	only	-	Nov	 3	 0:00	0	-
                -+Rule	Hungary	1946	only	-	Mar	31	 2:00s	1:00	S
                -+Rule	Hungary	1946	1949	-	Oct	Sun>=1	 2:00s	0	-
                -+Rule	Hungary	1947	1949	-	Apr	Sun>=4	 2:00s	1:00	S
                -+Rule	Hungary	1950	only	-	Apr	17	 2:00s	1:00	S
                -+Rule	Hungary	1950	only	-	Oct	23	 2:00s	0	-
                -+Rule	Hungary	1954	1955	-	May	23	 0:00	1:00	S
                -+Rule	Hungary	1954	1955	-	Oct	 3	 0:00	0	-
                -+Rule	Hungary	1956	only	-	Jun	Sun>=1	 0:00	1:00	S
                -+Rule	Hungary	1956	only	-	Sep	lastSun	 0:00	0	-
                -+Rule	Hungary	1957	only	-	Jun	Sun>=1	 1:00	1:00	S
                -+Rule	Hungary	1957	only	-	Sep	lastSun	 3:00	0	-
                -+Rule	Hungary	1980	only	-	Apr	 6	 1:00	1:00	S
                -+Zone	Europe/Budapest	1:16:20 -	LMT	1890 Oct
                -+			1:00	C-Eur	CE%sT	1918
                -+			1:00	Hungary	CE%sT	1941 Apr  6  2:00
                -+			1:00	C-Eur	CE%sT	1945
                -+			1:00	Hungary	CE%sT	1980 Sep 28  2:00s
                -+			1:00	EU	CE%sT
                -+Rule	Iceland	1917	1918	-	Feb	19	23:00	1:00	S
                -+Rule	Iceland	1917	only	-	Oct	21	 1:00	0	-
                -+Rule	Iceland	1918	only	-	Nov	16	 1:00	0	-
                -+Rule	Iceland	1939	only	-	Apr	29	23:00	1:00	S
                -+Rule	Iceland	1939	only	-	Nov	29	 2:00	0	-
                -+Rule	Iceland	1940	only	-	Feb	25	 2:00	1:00	S
                -+Rule	Iceland	1940	only	-	Nov	 3	 2:00	0	-
                -+Rule	Iceland	1941	only	-	Mar	 2	 1:00s	1:00	S
                -+Rule	Iceland	1941	only	-	Nov	 2	 1:00s	0	-
                -+Rule	Iceland	1942	only	-	Mar	 8	 1:00s	1:00	S
                -+Rule	Iceland	1942	only	-	Oct	25	 1:00s	0	-
                -+Rule	Iceland	1943	1946	-	Mar	Sun>=1	 1:00s	1:00	S
                -+Rule	Iceland	1943	1948	-	Oct	Sun>=22	 1:00s	0	-
                -+Rule	Iceland	1947	1967	-	Apr	Sun>=1	 1:00s	1:00	S
                -+Rule	Iceland	1949	only	-	Oct	30	 1:00s	0	-
                -+Rule	Iceland	1950	1966	-	Oct	Sun>=22	 1:00s	0	-
                -+Rule	Iceland	1967	only	-	Oct	29	 1:00s	0	-
                -+Zone Atlantic/Reykjavik	-1:27:24 -	LMT	1837
                -+			-1:27:48 -	RMT	1908 # Reykjavik Mean Time?
                -+			-1:00	Iceland	IS%sT	1968 Apr 7 1:00s
                -+			 0:00	-	GMT
                -+Rule	Italy	1916	only	-	Jun	 3	0:00s	1:00	S
                -+Rule	Italy	1916	only	-	Oct	 1	0:00s	0	-
                -+Rule	Italy	1917	only	-	Apr	 1	0:00s	1:00	S
                -+Rule	Italy	1917	only	-	Sep	30	0:00s	0	-
                -+Rule	Italy	1918	only	-	Mar	10	0:00s	1:00	S
                -+Rule	Italy	1918	1919	-	Oct	Sun>=1	0:00s	0	-
                -+Rule	Italy	1919	only	-	Mar	 2	0:00s	1:00	S
                -+Rule	Italy	1920	only	-	Mar	21	0:00s	1:00	S
                -+Rule	Italy	1920	only	-	Sep	19	0:00s	0	-
                -+Rule	Italy	1940	only	-	Jun	15	0:00s	1:00	S
                -+Rule	Italy	1944	only	-	Sep	17	0:00s	0	-
                -+Rule	Italy	1945	only	-	Apr	 2	2:00	1:00	S
                -+Rule	Italy	1945	only	-	Sep	15	0:00s	0	-
                -+Rule	Italy	1946	only	-	Mar	17	2:00s	1:00	S
                -+Rule	Italy	1946	only	-	Oct	 6	2:00s	0	-
                -+Rule	Italy	1947	only	-	Mar	16	0:00s	1:00	S
                -+Rule	Italy	1947	only	-	Oct	 5	0:00s	0	-
                -+Rule	Italy	1948	only	-	Feb	29	2:00s	1:00	S
                -+Rule	Italy	1948	only	-	Oct	 3	2:00s	0	-
                -+Rule	Italy	1966	1968	-	May	Sun>=22	0:00	1:00	S
                -+Rule	Italy	1966	1969	-	Sep	Sun>=22	0:00	0	-
                -+Rule	Italy	1969	only	-	Jun	 1	0:00	1:00	S
                -+Rule	Italy	1970	only	-	May	31	0:00	1:00	S
                -+Rule	Italy	1970	only	-	Sep	lastSun	0:00	0	-
                -+Rule	Italy	1971	1972	-	May	Sun>=22	0:00	1:00	S
                -+Rule	Italy	1971	only	-	Sep	lastSun	1:00	0	-
                -+Rule	Italy	1972	only	-	Oct	 1	0:00	0	-
                -+Rule	Italy	1973	only	-	Jun	 3	0:00	1:00	S
                -+Rule	Italy	1973	1974	-	Sep	lastSun	0:00	0	-
                -+Rule	Italy	1974	only	-	May	26	0:00	1:00	S
                -+Rule	Italy	1975	only	-	Jun	 1	0:00s	1:00	S
                -+Rule	Italy	1975	1977	-	Sep	lastSun	0:00s	0	-
                -+Rule	Italy	1976	only	-	May	30	0:00s	1:00	S
                -+Rule	Italy	1977	1979	-	May	Sun>=22	0:00s	1:00	S
                -+Rule	Italy	1978	only	-	Oct	 1	0:00s	0	-
                -+Rule	Italy	1979	only	-	Sep	30	0:00s	0	-
                -+Zone	Europe/Rome	0:49:56 -	LMT	1866 Sep 22
                -+			0:49:56	-	RMT	1893 Nov  1 0:00s # Rome Mean
                -+			1:00	Italy	CE%sT	1942 Nov  2 2:00s
                -+			1:00	C-Eur	CE%sT	1944 Jul
                -+			1:00	Italy	CE%sT	1980
                -+			1:00	EU	CE%sT
                -+Link	Europe/Rome	Europe/Vatican
                -+Link	Europe/Rome	Europe/San_Marino
                -+Rule	Latvia	1989	1996	-	Mar	lastSun	 2:00s	1:00	S
                -+Rule	Latvia	1989	1996	-	Sep	lastSun	 2:00s	0	-
                -+Zone	Europe/Riga	1:36:24	-	LMT	1880
                -+			1:36:24	-	RMT	1918 Apr 15 2:00 #Riga Mean Time
                -+			1:36:24	1:00	LST	1918 Sep 16 3:00 #Latvian Summer
                -+			1:36:24	-	RMT	1919 Apr  1 2:00
                -+			1:36:24	1:00	LST	1919 May 22 3:00
                -+			1:36:24	-	RMT	1926 May 11
                -+			2:00	-	EET	1940 Aug  5
                -+			3:00	-	MSK	1941 Jul
                -+			1:00	C-Eur	CE%sT	1944 Oct 13
                -+			3:00	Russia	MSK/MSD	1989 Mar lastSun 2:00s
                -+			2:00	1:00	EEST	1989 Sep lastSun 2:00s
                -+			2:00	Latvia	EE%sT	1997 Jan 21
                -+			2:00	EU	EE%sT	2000 Feb 29
                -+			2:00	-	EET	2001 Jan  2
                -+			2:00	EU	EE%sT
                -+Zone	Europe/Vaduz	0:38:04 -	LMT	1894 Jun
                -+			1:00	-	CET	1981
                -+			1:00	EU	CE%sT
                -+Zone	Europe/Vilnius	1:41:16	-	LMT	1880
                -+			1:24:00	-	WMT	1917	    # Warsaw Mean Time
                -+			1:35:36	-	KMT	1919 Oct 10 # Kaunas Mean Time
                -+			1:00	-	CET	1920 Jul 12
                -+			2:00	-	EET	1920 Oct  9
                -+			1:00	-	CET	1940 Aug  3
                -+			3:00	-	MSK	1941 Jun 24
                -+			1:00	C-Eur	CE%sT	1944 Aug
                -+			3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
                -+			2:00	1:00	EEST	1991 Sep 29 2:00s
                -+			2:00	C-Eur	EE%sT	1998
                -+			2:00	-	EET	1998 Mar 29 1:00u
                -+			1:00	EU	CE%sT	1999 Oct 31 1:00u
                -+			2:00	-	EET	2003 Jan  1
                -+			2:00	EU	EE%sT
                -+Rule	Lux	1916	only	-	May	14	23:00	1:00	S
                -+Rule	Lux	1916	only	-	Oct	 1	 1:00	0	-
                -+Rule	Lux	1917	only	-	Apr	28	23:00	1:00	S
                -+Rule	Lux	1917	only	-	Sep	17	 1:00	0	-
                -+Rule	Lux	1918	only	-	Apr	Mon>=15	 2:00s	1:00	S
                -+Rule	Lux	1918	only	-	Sep	Mon>=15	 2:00s	0	-
                -+Rule	Lux	1919	only	-	Mar	 1	23:00	1:00	S
                -+Rule	Lux	1919	only	-	Oct	 5	 3:00	0	-
                -+Rule	Lux	1920	only	-	Feb	14	23:00	1:00	S
                -+Rule	Lux	1920	only	-	Oct	24	 2:00	0	-
                -+Rule	Lux	1921	only	-	Mar	14	23:00	1:00	S
                -+Rule	Lux	1921	only	-	Oct	26	 2:00	0	-
                -+Rule	Lux	1922	only	-	Mar	25	23:00	1:00	S
                -+Rule	Lux	1922	only	-	Oct	Sun>=2	 1:00	0	-
                -+Rule	Lux	1923	only	-	Apr	21	23:00	1:00	S
                -+Rule	Lux	1923	only	-	Oct	Sun>=2	 2:00	0	-
                -+Rule	Lux	1924	only	-	Mar	29	23:00	1:00	S
                -+Rule	Lux	1924	1928	-	Oct	Sun>=2	 1:00	0	-
                -+Rule	Lux	1925	only	-	Apr	 5	23:00	1:00	S
                -+Rule	Lux	1926	only	-	Apr	17	23:00	1:00	S
                -+Rule	Lux	1927	only	-	Apr	 9	23:00	1:00	S
                -+Rule	Lux	1928	only	-	Apr	14	23:00	1:00	S
                -+Rule	Lux	1929	only	-	Apr	20	23:00	1:00	S
                -+Zone Europe/Luxembourg	0:24:36 -	LMT	1904 Jun
                -+			1:00	Lux	CE%sT	1918 Nov 25
                -+			0:00	Lux	WE%sT	1929 Oct  6 2:00s
                -+			0:00	Belgium	WE%sT	1940 May 14 3:00
                -+			1:00	C-Eur	WE%sT	1944 Sep 18 3:00
                -+			1:00	Belgium	CE%sT	1977
                -+			1:00	EU	CE%sT
                -+Rule	Malta	1973	only	-	Mar	31	0:00s	1:00	S
                -+Rule	Malta	1973	only	-	Sep	29	0:00s	0	-
                -+Rule	Malta	1974	only	-	Apr	21	0:00s	1:00	S
                -+Rule	Malta	1974	only	-	Sep	16	0:00s	0	-
                -+Rule	Malta	1975	1979	-	Apr	Sun>=15	2:00	1:00	S
                -+Rule	Malta	1975	1980	-	Sep	Sun>=15	2:00	0	-
                -+Rule	Malta	1980	only	-	Mar	31	2:00	1:00	S
                -+Zone	Europe/Malta	0:58:04 -	LMT	1893 Nov  2 0:00s # Valletta
                -+			1:00	Italy	CE%sT	1942 Nov  2 2:00s
                -+			1:00	C-Eur	CE%sT	1945 Apr  2 2:00s
                -+			1:00	Italy	CE%sT	1973 Mar 31
                -+			1:00	Malta	CE%sT	1981
                -+			1:00	EU	CE%sT
                -+Zone	Europe/Chisinau	1:55:20 -	LMT	1880
                -+			1:55	-	CMT	1918 Feb 15 # Chisinau MT
                -+			1:44:24	-	BMT	1931 Jul 24 # Bucharest MT
                -+			2:00	Romania	EE%sT	1940 Aug 15
                -+			2:00	1:00	EEST	1941 Jul 17
                -+			1:00	C-Eur	CE%sT	1944 Aug 24
                -+			3:00	Russia	MSK/MSD	1990
                -+			3:00	-	MSK	1990 May 6
                -+			2:00	-	EET	1991
                -+			2:00	Russia	EE%sT	1992
                -+			2:00	E-Eur	EE%sT	1997
                -+			2:00	EU	EE%sT
                -+Zone	Europe/Monaco	0:29:32 -	LMT	1891 Mar 15
                -+			0:09:21	-	PMT	1911 Mar 11    # Paris Mean Time
                -+			0:00	France	WE%sT	1945 Sep 16 3:00
                -+			1:00	France	CE%sT	1977
                -+			1:00	EU	CE%sT
                -+Rule	Neth	1916	only	-	May	 1	0:00	1:00	NST	# Netherlands Summer Time
                -+Rule	Neth	1916	only	-	Oct	 1	0:00	0	AMT	# Amsterdam Mean Time
                -+Rule	Neth	1917	only	-	Apr	16	2:00s	1:00	NST
                -+Rule	Neth	1917	only	-	Sep	17	2:00s	0	AMT
                -+Rule	Neth	1918	1921	-	Apr	Mon>=1	2:00s	1:00	NST
                -+Rule	Neth	1918	1921	-	Sep	lastMon	2:00s	0	AMT
                -+Rule	Neth	1922	only	-	Mar	lastSun	2:00s	1:00	NST
                -+Rule	Neth	1922	1936	-	Oct	Sun>=2	2:00s	0	AMT
                -+Rule	Neth	1923	only	-	Jun	Fri>=1	2:00s	1:00	NST
                -+Rule	Neth	1924	only	-	Mar	lastSun	2:00s	1:00	NST
                -+Rule	Neth	1925	only	-	Jun	Fri>=1	2:00s	1:00	NST
                -+Rule	Neth	1926	1931	-	May	15	2:00s	1:00	NST
                -+Rule	Neth	1932	only	-	May	22	2:00s	1:00	NST
                -+Rule	Neth	1933	1936	-	May	15	2:00s	1:00	NST
                -+Rule	Neth	1937	only	-	May	22	2:00s	1:00	NST
                -+Rule	Neth	1937	only	-	Jul	 1	0:00	1:00	S
                -+Rule	Neth	1937	1939	-	Oct	Sun>=2	2:00s	0	-
                -+Rule	Neth	1938	1939	-	May	15	2:00s	1:00	S
                -+Rule	Neth	1945	only	-	Apr	 2	2:00s	1:00	S
                -+Rule	Neth	1945	only	-	Sep	16	2:00s	0	-
                -+Zone Europe/Amsterdam	0:19:32 -	LMT	1835
                -+			0:19:32	Neth	%s	1937 Jul  1
                -+			0:20	Neth	NE%sT	1940 May 16 0:00 # Dutch Time
                -+			1:00	C-Eur	CE%sT	1945 Apr  2 2:00
                -+			1:00	Neth	CE%sT	1977
                -+			1:00	EU	CE%sT
                -+Rule	Norway	1916	only	-	May	22	1:00	1:00	S
                -+Rule	Norway	1916	only	-	Sep	30	0:00	0	-
                -+Rule	Norway	1945	only	-	Apr	 2	2:00s	1:00	S
                -+Rule	Norway	1945	only	-	Oct	 1	2:00s	0	-
                -+Rule	Norway	1959	1964	-	Mar	Sun>=15	2:00s	1:00	S
                -+Rule	Norway	1959	1965	-	Sep	Sun>=15	2:00s	0	-
                -+Rule	Norway	1965	only	-	Apr	25	2:00s	1:00	S
                -+Zone	Europe/Oslo	0:43:00 -	LMT	1895 Jan  1
                -+			1:00	Norway	CE%sT	1940 Aug 10 23:00
                -+			1:00	C-Eur	CE%sT	1945 Apr  2  2:00
                -+			1:00	Norway	CE%sT	1980
                -+			1:00	EU	CE%sT
                -+Link	Europe/Oslo	Arctic/Longyearbyen
                -+Rule	Poland	1918	1919	-	Sep	16	2:00s	0	-
                -+Rule	Poland	1919	only	-	Apr	15	2:00s	1:00	S
                -+Rule	Poland	1944	only	-	Apr	 3	2:00s	1:00	S
                -+Rule	Poland	1944	only	-	Oct	 4	2:00	0	-
                -+Rule	Poland	1945	only	-	Apr	29	0:00	1:00	S
                -+Rule	Poland	1945	only	-	Nov	 1	0:00	0	-
                -+Rule	Poland	1946	only	-	Apr	14	0:00s	1:00	S
                -+Rule	Poland	1946	only	-	Oct	 7	2:00s	0	-
                -+Rule	Poland	1947	only	-	May	 4	2:00s	1:00	S
                -+Rule	Poland	1947	1949	-	Oct	Sun>=1	2:00s	0	-
                -+Rule	Poland	1948	only	-	Apr	18	2:00s	1:00	S
                -+Rule	Poland	1949	only	-	Apr	10	2:00s	1:00	S
                -+Rule	Poland	1957	only	-	Jun	 2	1:00s	1:00	S
                -+Rule	Poland	1957	1958	-	Sep	lastSun	1:00s	0	-
                -+Rule	Poland	1958	only	-	Mar	30	1:00s	1:00	S
                -+Rule	Poland	1959	only	-	May	31	1:00s	1:00	S
                -+Rule	Poland	1959	1961	-	Oct	Sun>=1	1:00s	0	-
                -+Rule	Poland	1960	only	-	Apr	 3	1:00s	1:00	S
                -+Rule	Poland	1961	1964	-	May	lastSun	1:00s	1:00	S
                -+Rule	Poland	1962	1964	-	Sep	lastSun	1:00s	0	-
                -+Zone	Europe/Warsaw	1:24:00 -	LMT	1880
                -+			1:24:00	-	WMT	1915 Aug  5   # Warsaw Mean Time
                -+			1:00	C-Eur	CE%sT	1918 Sep 16 3:00
                -+			2:00	Poland	EE%sT	1922 Jun
                -+			1:00	Poland	CE%sT	1940 Jun 23 2:00
                -+			1:00	C-Eur	CE%sT	1944 Oct
                -+			1:00	Poland	CE%sT	1977
                -+			1:00	W-Eur	CE%sT	1988
                -+			1:00	EU	CE%sT
                -+Rule	Port	1916	only	-	Jun	17	23:00	1:00	S
                -+Rule	Port	1916	only	-	Nov	 1	 1:00	0	-
                -+Rule	Port	1917	only	-	Feb	28	23:00s	1:00	S
                -+Rule	Port	1917	1921	-	Oct	14	23:00s	0	-
                -+Rule	Port	1918	only	-	Mar	 1	23:00s	1:00	S
                -+Rule	Port	1919	only	-	Feb	28	23:00s	1:00	S
                -+Rule	Port	1920	only	-	Feb	29	23:00s	1:00	S
                -+Rule	Port	1921	only	-	Feb	28	23:00s	1:00	S
                -+Rule	Port	1924	only	-	Apr	16	23:00s	1:00	S
                -+Rule	Port	1924	only	-	Oct	14	23:00s	0	-
                -+Rule	Port	1926	only	-	Apr	17	23:00s	1:00	S
                -+Rule	Port	1926	1929	-	Oct	Sat>=1	23:00s	0	-
                -+Rule	Port	1927	only	-	Apr	 9	23:00s	1:00	S
                -+Rule	Port	1928	only	-	Apr	14	23:00s	1:00	S
                -+Rule	Port	1929	only	-	Apr	20	23:00s	1:00	S
                -+Rule	Port	1931	only	-	Apr	18	23:00s	1:00	S
                -+Rule	Port	1931	1932	-	Oct	Sat>=1	23:00s	0	-
                -+Rule	Port	1932	only	-	Apr	 2	23:00s	1:00	S
                -+Rule	Port	1934	only	-	Apr	 7	23:00s	1:00	S
                -+Rule	Port	1934	1938	-	Oct	Sat>=1	23:00s	0	-
                -+Rule	Port	1935	only	-	Mar	30	23:00s	1:00	S
                -+Rule	Port	1936	only	-	Apr	18	23:00s	1:00	S
                -+Rule	Port	1937	only	-	Apr	 3	23:00s	1:00	S
                -+Rule	Port	1938	only	-	Mar	26	23:00s	1:00	S
                -+Rule	Port	1939	only	-	Apr	15	23:00s	1:00	S
                -+Rule	Port	1939	only	-	Nov	18	23:00s	0	-
                -+Rule	Port	1940	only	-	Feb	24	23:00s	1:00	S
                -+Rule	Port	1940	1941	-	Oct	 5	23:00s	0	-
                -+Rule	Port	1941	only	-	Apr	 5	23:00s	1:00	S
                -+Rule	Port	1942	1945	-	Mar	Sat>=8	23:00s	1:00	S
                -+Rule	Port	1942	only	-	Apr	25	22:00s	2:00	M # Midsummer
                -+Rule	Port	1942	only	-	Aug	15	22:00s	1:00	S
                -+Rule	Port	1942	1945	-	Oct	Sat>=24	23:00s	0	-
                -+Rule	Port	1943	only	-	Apr	17	22:00s	2:00	M
                -+Rule	Port	1943	1945	-	Aug	Sat>=25	22:00s	1:00	S
                -+Rule	Port	1944	1945	-	Apr	Sat>=21	22:00s	2:00	M
                -+Rule	Port	1946	only	-	Apr	Sat>=1	23:00s	1:00	S
                -+Rule	Port	1946	only	-	Oct	Sat>=1	23:00s	0	-
                -+Rule	Port	1947	1949	-	Apr	Sun>=1	 2:00s	1:00	S
                -+Rule	Port	1947	1949	-	Oct	Sun>=1	 2:00s	0	-
                -+Rule	Port	1951	1965	-	Apr	Sun>=1	 2:00s	1:00	S
                -+Rule	Port	1951	1965	-	Oct	Sun>=1	 2:00s	0	-
                -+Rule	Port	1977	only	-	Mar	27	 0:00s	1:00	S
                -+Rule	Port	1977	only	-	Sep	25	 0:00s	0	-
                -+Rule	Port	1978	1979	-	Apr	Sun>=1	 0:00s	1:00	S
                -+Rule	Port	1978	only	-	Oct	 1	 0:00s	0	-
                -+Rule	Port	1979	1982	-	Sep	lastSun	 1:00s	0	-
                -+Rule	Port	1980	only	-	Mar	lastSun	 0:00s	1:00	S
                -+Rule	Port	1981	1982	-	Mar	lastSun	 1:00s	1:00	S
                -+Rule	Port	1983	only	-	Mar	lastSun	 2:00s	1:00	S
                -+Zone	Europe/Lisbon	-0:36:32 -	LMT	1884
                -+			-0:36:32 -	LMT	1912 Jan  1  # Lisbon Mean Time
                -+			 0:00	Port	WE%sT	1966 Apr  3 2:00
                -+			 1:00	-	CET	1976 Sep 26 1:00
                -+			 0:00	Port	WE%sT	1983 Sep 25 1:00s
                -+			 0:00	W-Eur	WE%sT	1992 Sep 27 1:00s
                -+			 1:00	EU	CE%sT	1996 Mar 31 1:00u
                -+			 0:00	EU	WE%sT
                -+Zone Atlantic/Azores	-1:42:40 -	LMT	1884		# Ponta Delgada
                -+			-1:54:32 -	HMT	1911 May 24  # Horta Mean Time
                -+			-2:00	Port	AZO%sT	1966 Apr  3 2:00 # Azores Time
                -+			-1:00	Port	AZO%sT	1983 Sep 25 1:00s
                -+			-1:00	W-Eur	AZO%sT	1992 Sep 27 1:00s
                -+			 0:00	EU	WE%sT	1993 Mar 28 1:00u
                -+			-1:00	EU	AZO%sT
                -+Zone Atlantic/Madeira	-1:07:36 -	LMT	1884		# Funchal
                -+			-1:07:36 -	FMT	1911 May 24  # Funchal Mean Time
                -+			-1:00	Port	MAD%sT	1966 Apr  3 2:00 # Madeira Time
                -+			 0:00	Port	WE%sT	1983 Sep 25 1:00s
                -+			 0:00	EU	WE%sT
                -+Rule	Romania	1932	only	-	May	21	 0:00s	1:00	S
                -+Rule	Romania	1932	1939	-	Oct	Sun>=1	 0:00s	0	-
                -+Rule	Romania	1933	1939	-	Apr	Sun>=2	 0:00s	1:00	S
                -+Rule	Romania	1979	only	-	May	27	 0:00	1:00	S
                -+Rule	Romania	1979	only	-	Sep	lastSun	 0:00	0	-
                -+Rule	Romania	1980	only	-	Apr	 5	23:00	1:00	S
                -+Rule	Romania	1980	only	-	Sep	lastSun	 1:00	0	-
                -+Rule	Romania	1991	1993	-	Mar	lastSun	 0:00s	1:00	S
                -+Rule	Romania	1991	1993	-	Sep	lastSun	 0:00s	0	-
                -+Zone Europe/Bucharest	1:44:24 -	LMT	1891 Oct
                -+			1:44:24	-	BMT	1931 Jul 24	# Bucharest MT
                -+			2:00	Romania	EE%sT	1981 Mar 29 2:00s
                -+			2:00	C-Eur	EE%sT	1991
                -+			2:00	Romania	EE%sT	1994
                -+			2:00	E-Eur	EE%sT	1997
                -+			2:00	EU	EE%sT
                -+Zone Europe/Kaliningrad	 1:22:00 -	LMT	1893 Apr
                -+			 1:00	C-Eur	CE%sT	1945
                -+			 2:00	Poland	CE%sT	1946
                -+			 3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
                -+			 2:00	Russia	EE%sT
                -+Zone Europe/Moscow	 2:30:20 -	LMT	1880
                -+			 2:30	-	MMT	1916 Jul  3 # Moscow Mean Time
                -+			 2:30:48 Russia	%s	1919 Jul  1 2:00
                -+			 3:00	Russia	MSK/MSD	1922 Oct
                -+			 2:00	-	EET	1930 Jun 21
                -+			 3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
                -+			 2:00	Russia	EE%sT	1992 Jan 19 2:00s
                -+			 3:00	Russia	MSK/MSD
                -+Zone Europe/Volgograd	 2:57:40 -	LMT	1920 Jan  3
                -+			 3:00	-	TSAT	1925 Apr  6 # Tsaritsyn Time
                -+			 3:00	-	STAT	1930 Jun 21 # Stalingrad Time
                -+			 4:00	-	STAT	1961 Nov 11
                -+			 4:00	Russia	VOL%sT	1989 Mar 26 2:00s # Volgograd T
                -+			 3:00	Russia	VOL%sT	1991 Mar 31 2:00s
                -+			 4:00	-	VOLT	1992 Mar 29 2:00s
                -+			 3:00	Russia	VOL%sT
                -+Zone Europe/Samara	 3:20:36 -	LMT	1919 Jul  1 2:00
                -+			 3:00	-	SAMT	1930 Jun 21
                -+			 4:00	-	SAMT	1935 Jan 27
                -+			 4:00	Russia	KUY%sT	1989 Mar 26 2:00s # Kuybyshev
                -+			 3:00	Russia	KUY%sT	1991 Mar 31 2:00s
                -+			 2:00	Russia	KUY%sT	1991 Sep 29 2:00s
                -+			 3:00	-	KUYT	1991 Oct 20 3:00
                -+			 4:00	Russia	SAM%sT	2010 Mar 28 2:00s # Samara Time
                -+			 3:00	Russia	SAM%sT
                -+Zone Asia/Yekaterinburg	 4:02:24 -	LMT	1919 Jul 15 4:00
                -+			 4:00	-	SVET	1930 Jun 21 # Sverdlovsk Time
                -+			 5:00	Russia	SVE%sT	1991 Mar 31 2:00s
                -+			 4:00	Russia	SVE%sT	1992 Jan 19 2:00s
                -+			 5:00	Russia	YEK%sT	# Yekaterinburg Time
                -+Zone Asia/Omsk		 4:53:36 -	LMT	1919 Nov 14
                -+			 5:00	-	OMST	1930 Jun 21 # Omsk TIme
                -+			 6:00	Russia	OMS%sT	1991 Mar 31 2:00s
                -+			 5:00	Russia	OMS%sT	1992 Jan 19 2:00s
                -+			 6:00	Russia	OMS%sT
                -+Zone Asia/Novosibirsk	 5:31:40 -	LMT	1919 Dec 14 6:00
                -+			 6:00	-	NOVT	1930 Jun 21 # Novosibirsk Time
                -+			 7:00	Russia	NOV%sT	1991 Mar 31 2:00s
                -+			 6:00	Russia	NOV%sT	1992 Jan 19 2:00s
                -+			 7:00	Russia	NOV%sT	1993 May 23 # say Shanks & P.
                -+			 6:00	Russia	NOV%sT
                -+Zone Asia/Novokuznetsk	 5:48:48 -	NMT	1920 Jan  6
                -+			 6:00	-	KRAT	1930 Jun 21 # Krasnoyarsk Time
                -+			 7:00	Russia	KRA%sT	1991 Mar 31 2:00s
                -+			 6:00	Russia	KRA%sT	1992 Jan 19 2:00s
                -+			 7:00	Russia	KRA%sT	2010 Mar 28 2:00s
                -+			 6:00	Russia	NOV%sT # Novosibirsk/Novokuznetsk Time
                -+Zone Asia/Krasnoyarsk	 6:11:20 -	LMT	1920 Jan  6
                -+			 6:00	-	KRAT	1930 Jun 21 # Krasnoyarsk Time
                -+			 7:00	Russia	KRA%sT	1991 Mar 31 2:00s
                -+			 6:00	Russia	KRA%sT	1992 Jan 19 2:00s
                -+			 7:00	Russia	KRA%sT
                -+Zone Asia/Irkutsk	 6:57:20 -	LMT	1880
                -+			 6:57:20 -	IMT	1920 Jan 25 # Irkutsk Mean Time
                -+			 7:00	-	IRKT	1930 Jun 21 # Irkutsk Time
                -+			 8:00	Russia	IRK%sT	1991 Mar 31 2:00s
                -+			 7:00	Russia	IRK%sT	1992 Jan 19 2:00s
                -+			 8:00	Russia	IRK%sT
                -+Zone Asia/Yakutsk	 8:38:40 -	LMT	1919 Dec 15
                -+			 8:00	-	YAKT	1930 Jun 21 # Yakutsk Time
                -+			 9:00	Russia	YAK%sT	1991 Mar 31 2:00s
                -+			 8:00	Russia	YAK%sT	1992 Jan 19 2:00s
                -+			 9:00	Russia	YAK%sT
                -+Zone Asia/Vladivostok	 8:47:44 -	LMT	1922 Nov 15
                -+			 9:00	-	VLAT	1930 Jun 21 # Vladivostok Time
                -+			10:00	Russia	VLA%sT	1991 Mar 31 2:00s
                -+			 9:00	Russia	VLA%sST	1992 Jan 19 2:00s
                -+			10:00	Russia	VLA%sT
                -+Zone Asia/Sakhalin	 9:30:48 -	LMT	1905 Aug 23
                -+			 9:00	-	CJT	1938
                -+			 9:00	-	JST	1945 Aug 25
                -+			11:00	Russia	SAK%sT	1991 Mar 31 2:00s # Sakhalin T.
                -+			10:00	Russia	SAK%sT	1992 Jan 19 2:00s
                -+			11:00	Russia	SAK%sT	1997 Mar lastSun 2:00s
                -+			10:00	Russia	SAK%sT
                -+Zone Asia/Magadan	10:03:12 -	LMT	1924 May  2
                -+			10:00	-	MAGT	1930 Jun 21 # Magadan Time
                -+			11:00	Russia	MAG%sT	1991 Mar 31 2:00s
                -+			10:00	Russia	MAG%sT	1992 Jan 19 2:00s
                -+			11:00	Russia	MAG%sT
                -+Zone Asia/Kamchatka	10:34:36 -	LMT	1922 Nov 10
                -+			11:00	-	PETT	1930 Jun 21 # P-K Time
                -+			12:00	Russia	PET%sT	1991 Mar 31 2:00s
                -+			11:00	Russia	PET%sT	1992 Jan 19 2:00s
                -+			12:00	Russia	PET%sT	2010 Mar 28 2:00s
                -+			11:00	Russia	PET%sT
                -+Zone Asia/Anadyr	11:49:56 -	LMT	1924 May  2
                -+			12:00	-	ANAT	1930 Jun 21 # Anadyr Time
                -+			13:00	Russia	ANA%sT	1982 Apr  1 0:00s
                -+			12:00	Russia	ANA%sT	1991 Mar 31 2:00s
                -+			11:00	Russia	ANA%sT	1992 Jan 19 2:00s
                -+			12:00	Russia	ANA%sT	2010 Mar 28 2:00s
                -+			11:00	Russia	ANA%sT
                -+Zone	Europe/Belgrade	1:22:00	-	LMT	1884
                -+			1:00	-	CET	1941 Apr 18 23:00
                -+			1:00	C-Eur	CE%sT	1945
                -+			1:00	-	CET	1945 May 8 2:00s
                -+			1:00	1:00	CEST	1945 Sep 16  2:00s
                -+			1:00	-	CET	1982 Nov 27
                -+			1:00	EU	CE%sT
                -+Link Europe/Belgrade Europe/Ljubljana	# Slovenia
                -+Link Europe/Belgrade Europe/Podgorica	# Montenegro
                -+Link Europe/Belgrade Europe/Sarajevo	# Bosnia and Herzegovina
                -+Link Europe/Belgrade Europe/Skopje	# Macedonia
                -+Link Europe/Belgrade Europe/Zagreb	# Croatia
                -+Link Europe/Prague Europe/Bratislava
                -+Rule	Spain	1917	only	-	May	 5	23:00s	1:00	S
                -+Rule	Spain	1917	1919	-	Oct	 6	23:00s	0	-
                -+Rule	Spain	1918	only	-	Apr	15	23:00s	1:00	S
                -+Rule	Spain	1919	only	-	Apr	 5	23:00s	1:00	S
                -+Rule	Spain	1924	only	-	Apr	16	23:00s	1:00	S
                -+Rule	Spain	1924	only	-	Oct	 4	23:00s	0	-
                -+Rule	Spain	1926	only	-	Apr	17	23:00s	1:00	S
                -+Rule	Spain	1926	1929	-	Oct	Sat>=1	23:00s	0	-
                -+Rule	Spain	1927	only	-	Apr	 9	23:00s	1:00	S
                -+Rule	Spain	1928	only	-	Apr	14	23:00s	1:00	S
                -+Rule	Spain	1929	only	-	Apr	20	23:00s	1:00	S
                -+Rule	Spain	1937	only	-	May	22	23:00s	1:00	S
                -+Rule	Spain	1937	1939	-	Oct	Sat>=1	23:00s	0	-
                -+Rule	Spain	1938	only	-	Mar	22	23:00s	1:00	S
                -+Rule	Spain	1939	only	-	Apr	15	23:00s	1:00	S
                -+Rule	Spain	1940	only	-	Mar	16	23:00s	1:00	S
                -+Rule	Spain	1942	only	-	May	 2	22:00s	2:00	M # Midsummer
                -+Rule	Spain	1942	only	-	Sep	 1	22:00s	1:00	S
                -+Rule	Spain	1943	1946	-	Apr	Sat>=13	22:00s	2:00	M
                -+Rule	Spain	1943	only	-	Oct	 3	22:00s	1:00	S
                -+Rule	Spain	1944	only	-	Oct	10	22:00s	1:00	S
                -+Rule	Spain	1945	only	-	Sep	30	 1:00	1:00	S
                -+Rule	Spain	1946	only	-	Sep	30	 0:00	0	-
                -+Rule	Spain	1949	only	-	Apr	30	23:00	1:00	S
                -+Rule	Spain	1949	only	-	Sep	30	 1:00	0	-
                -+Rule	Spain	1974	1975	-	Apr	Sat>=13	23:00	1:00	S
                -+Rule	Spain	1974	1975	-	Oct	Sun>=1	 1:00	0	-
                -+Rule	Spain	1976	only	-	Mar	27	23:00	1:00	S
                -+Rule	Spain	1976	1977	-	Sep	lastSun	 1:00	0	-
                -+Rule	Spain	1977	1978	-	Apr	 2	23:00	1:00	S
                -+Rule	Spain	1978	only	-	Oct	 1	 1:00	0	-
                -+Rule SpainAfrica 1967	only	-	Jun	 3	12:00	1:00	S
                -+Rule SpainAfrica 1967	only	-	Oct	 1	 0:00	0	-
                -+Rule SpainAfrica 1974	only	-	Jun	24	 0:00	1:00	S
                -+Rule SpainAfrica 1974	only	-	Sep	 1	 0:00	0	-
                -+Rule SpainAfrica 1976	1977	-	May	 1	 0:00	1:00	S
                -+Rule SpainAfrica 1976	only	-	Aug	 1	 0:00	0	-
                -+Rule SpainAfrica 1977	only	-	Sep	28	 0:00	0	-
                -+Rule SpainAfrica 1978	only	-	Jun	 1	 0:00	1:00	S
                -+Rule SpainAfrica 1978	only	-	Aug	 4	 0:00	0	-
                -+Zone	Europe/Madrid	-0:14:44 -	LMT	1901 Jan  1  0:00s
                -+			 0:00	Spain	WE%sT	1946 Sep 30
                -+			 1:00	Spain	CE%sT	1979
                -+			 1:00	EU	CE%sT
                -+Zone	Africa/Ceuta	-0:21:16 -	LMT	1901
                -+			 0:00	-	WET	1918 May  6 23:00
                -+			 0:00	1:00	WEST	1918 Oct  7 23:00
                -+			 0:00	-	WET	1924
                -+			 0:00	Spain	WE%sT	1929
                -+			 0:00 SpainAfrica WE%sT 1984 Mar 16
                -+			 1:00	-	CET	1986
                -+			 1:00	EU	CE%sT
                -+Zone	Atlantic/Canary	-1:01:36 -	LMT	1922 Mar # Las Palmas de Gran C.
                -+			-1:00	-	CANT	1946 Sep 30 1:00 # Canaries Time
                -+			 0:00	-	WET	1980 Apr  6 0:00s
                -+			 0:00	1:00	WEST	1980 Sep 28 0:00s
                -+			 0:00	EU	WE%sT
                -+Zone Europe/Stockholm	1:12:12 -	LMT	1879 Jan  1
                -+			1:00:14	-	SET	1900 Jan  1	# Swedish Time
                -+			1:00	-	CET	1916 May 14 23:00
                -+			1:00	1:00	CEST	1916 Oct  1 01:00
                -+			1:00	-	CET	1980
                -+			1:00	EU	CE%sT
                -+Rule	Swiss	1941	1942	-	May	Mon>=1	1:00	1:00	S
                -+Rule	Swiss	1941	1942	-	Oct	Mon>=1	2:00	0	-
                -+Zone	Europe/Zurich	0:34:08 -	LMT	1848 Sep 12
                -+			0:29:44	-	BMT	1894 Jun # Bern Mean Time
                -+			1:00	Swiss	CE%sT	1981
                -+			1:00	EU	CE%sT
                -+Rule	Turkey	1916	only	-	May	 1	0:00	1:00	S
                -+Rule	Turkey	1916	only	-	Oct	 1	0:00	0	-
                -+Rule	Turkey	1920	only	-	Mar	28	0:00	1:00	S
                -+Rule	Turkey	1920	only	-	Oct	25	0:00	0	-
                -+Rule	Turkey	1921	only	-	Apr	 3	0:00	1:00	S
                -+Rule	Turkey	1921	only	-	Oct	 3	0:00	0	-
                -+Rule	Turkey	1922	only	-	Mar	26	0:00	1:00	S
                -+Rule	Turkey	1922	only	-	Oct	 8	0:00	0	-
                -+Rule	Turkey	1924	only	-	May	13	0:00	1:00	S
                -+Rule	Turkey	1924	1925	-	Oct	 1	0:00	0	-
                -+Rule	Turkey	1925	only	-	May	 1	0:00	1:00	S
                -+Rule	Turkey	1940	only	-	Jun	30	0:00	1:00	S
                -+Rule	Turkey	1940	only	-	Oct	 5	0:00	0	-
                -+Rule	Turkey	1940	only	-	Dec	 1	0:00	1:00	S
                -+Rule	Turkey	1941	only	-	Sep	21	0:00	0	-
                -+Rule	Turkey	1942	only	-	Apr	 1	0:00	1:00	S
                -+Rule	Turkey	1942	only	-	Nov	 1	0:00	0	-
                -+Rule	Turkey	1945	only	-	Apr	 2	0:00	1:00	S
                -+Rule	Turkey	1945	only	-	Oct	 8	0:00	0	-
                -+Rule	Turkey	1946	only	-	Jun	 1	0:00	1:00	S
                -+Rule	Turkey	1946	only	-	Oct	 1	0:00	0	-
                -+Rule	Turkey	1947	1948	-	Apr	Sun>=16	0:00	1:00	S
                -+Rule	Turkey	1947	1950	-	Oct	Sun>=2	0:00	0	-
                -+Rule	Turkey	1949	only	-	Apr	10	0:00	1:00	S
                -+Rule	Turkey	1950	only	-	Apr	19	0:00	1:00	S
                -+Rule	Turkey	1951	only	-	Apr	22	0:00	1:00	S
                -+Rule	Turkey	1951	only	-	Oct	 8	0:00	0	-
                -+Rule	Turkey	1962	only	-	Jul	15	0:00	1:00	S
                -+Rule	Turkey	1962	only	-	Oct	 8	0:00	0	-
                -+Rule	Turkey	1964	only	-	May	15	0:00	1:00	S
                -+Rule	Turkey	1964	only	-	Oct	 1	0:00	0	-
                -+Rule	Turkey	1970	1972	-	May	Sun>=2	0:00	1:00	S
                -+Rule	Turkey	1970	1972	-	Oct	Sun>=2	0:00	0	-
                -+Rule	Turkey	1973	only	-	Jun	 3	1:00	1:00	S
                -+Rule	Turkey	1973	only	-	Nov	 4	3:00	0	-
                -+Rule	Turkey	1974	only	-	Mar	31	2:00	1:00	S
                -+Rule	Turkey	1974	only	-	Nov	 3	5:00	0	-
                -+Rule	Turkey	1975	only	-	Mar	30	0:00	1:00	S
                -+Rule	Turkey	1975	1976	-	Oct	lastSun	0:00	0	-
                -+Rule	Turkey	1976	only	-	Jun	 1	0:00	1:00	S
                -+Rule	Turkey	1977	1978	-	Apr	Sun>=1	0:00	1:00	S
                -+Rule	Turkey	1977	only	-	Oct	16	0:00	0	-
                -+Rule	Turkey	1979	1980	-	Apr	Sun>=1	3:00	1:00	S
                -+Rule	Turkey	1979	1982	-	Oct	Mon>=11	0:00	0	-
                -+Rule	Turkey	1981	1982	-	Mar	lastSun	3:00	1:00	S
                -+Rule	Turkey	1983	only	-	Jul	31	0:00	1:00	S
                -+Rule	Turkey	1983	only	-	Oct	 2	0:00	0	-
                -+Rule	Turkey	1985	only	-	Apr	20	0:00	1:00	S
                -+Rule	Turkey	1985	only	-	Sep	28	0:00	0	-
                -+Rule	Turkey	1986	1990	-	Mar	lastSun	2:00s	1:00	S
                -+Rule	Turkey	1986	1990	-	Sep	lastSun	2:00s	0	-
                -+Rule	Turkey	1991	2006	-	Mar	lastSun	1:00s	1:00	S
                -+Rule	Turkey	1991	1995	-	Sep	lastSun	1:00s	0	-
                -+Rule	Turkey	1996	2006	-	Oct	lastSun	1:00s	0	-
                -+Zone	Europe/Istanbul	1:55:52 -	LMT	1880
                -+			1:56:56	-	IMT	1910 Oct # Istanbul Mean Time?
                -+			2:00	Turkey	EE%sT	1978 Oct 15
                -+			3:00	Turkey	TR%sT	1985 Apr 20 # Turkey Time
                -+			2:00	Turkey	EE%sT	2007
                -+			2:00	EU	EE%sT	2011 Mar 27 1:00u
                -+			2:00	-	EET	2011 Mar 28 1:00u
                -+			2:00	EU	EE%sT
                -+Link	Europe/Istanbul	Asia/Istanbul	# Istanbul is in both continents.
                -+Zone Europe/Kiev	2:02:04 -	LMT	1880
                -+			2:02:04	-	KMT	1924 May  2 # Kiev Mean Time
                -+			2:00	-	EET	1930 Jun 21
                -+			3:00	-	MSK	1941 Sep 20
                -+			1:00	C-Eur	CE%sT	1943 Nov  6
                -+			3:00	Russia	MSK/MSD	1990
                -+			3:00	-	MSK	1990 Jul  1 2:00
                -+			2:00	-	EET	1992
                -+			2:00	E-Eur	EE%sT	1995
                -+			2:00	EU	EE%sT
                -+Zone Europe/Uzhgorod	1:29:12 -	LMT	1890 Oct
                -+			1:00	-	CET	1940
                -+			1:00	C-Eur	CE%sT	1944 Oct
                -+			1:00	1:00	CEST	1944 Oct 26
                -+			1:00	-	CET	1945 Jun 29
                -+			3:00	Russia	MSK/MSD	1990
                -+			3:00	-	MSK	1990 Jul  1 2:00
                -+			1:00	-	CET	1991 Mar 31 3:00
                -+			2:00	-	EET	1992
                -+			2:00	E-Eur	EE%sT	1995
                -+			2:00	EU	EE%sT
                -+Zone Europe/Zaporozhye	2:20:40 -	LMT	1880
                -+			2:20	-	CUT	1924 May  2 # Central Ukraine T
                -+			2:00	-	EET	1930 Jun 21
                -+			3:00	-	MSK	1941 Aug 25
                -+			1:00	C-Eur	CE%sT	1943 Oct 25
                -+			3:00	Russia	MSK/MSD	1991 Mar 31 2:00
                -+			2:00	E-Eur	EE%sT	1995
                -+			2:00	EU	EE%sT
                -+Zone Europe/Simferopol	2:16:24 -	LMT	1880
                -+			2:16	-	SMT	1924 May  2 # Simferopol Mean T
                -+			2:00	-	EET	1930 Jun 21
                -+			3:00	-	MSK	1941 Nov
                -+			1:00	C-Eur	CE%sT	1944 Apr 13
                -+			3:00	Russia	MSK/MSD	1990
                -+			3:00	-	MSK	1990 Jul  1 2:00
                -+			2:00	-	EET	1992
                -+			2:00	E-Eur	EE%sT	1994 May
                -+			3:00	E-Eur	MSK/MSD	1996 Mar 31 3:00s
                -+			3:00	1:00	MSD	1996 Oct 27 3:00s
                -+			3:00	Russia	MSK/MSD	1997
                -+			3:00	-	MSK	1997 Mar lastSun 1:00u
                -+			2:00	EU	EE%sT
                -Index: examples/tz/solar87
                -===================================================================
                ---- examples/tz/solar87	(revision 0)
                -+++ examples/tz/solar87	(revision 0)
                -@@ -0,0 +1,391 @@
                -+# 
                -+# @(#)solar87	8.2
                -+# This file is in the public domain, so clarified as of
                -+# 2009-05-17 by Arthur David Olson.
                -+
                -+# So much for footnotes about Saudi Arabia.
                -+# Apparent noon times below are for Riyadh; your mileage will vary.
                -+# Times were computed using formulas in the U.S. Naval Observatory's
                -+# Almanac for Computers 1987; the formulas "will give EqT to an accuracy of
                -+# [plus or minus two] seconds during the current year."
                -+#
                -+# Rounding to the nearest five seconds results in fewer than
                -+# 256 different "time types"--a limit that's faced because time types are
                -+# stored on disk as unsigned chars.
                -+
                -+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
                -+Rule	sol87	1987	only	-	Jan	1	12:03:20s -0:03:20 -
                -+Rule	sol87	1987	only	-	Jan	2	12:03:50s -0:03:50 -
                -+Rule	sol87	1987	only	-	Jan	3	12:04:15s -0:04:15 -
                -+Rule	sol87	1987	only	-	Jan	4	12:04:45s -0:04:45 -
                -+Rule	sol87	1987	only	-	Jan	5	12:05:10s -0:05:10 -
                -+Rule	sol87	1987	only	-	Jan	6	12:05:40s -0:05:40 -
                -+Rule	sol87	1987	only	-	Jan	7	12:06:05s -0:06:05 -
                -+Rule	sol87	1987	only	-	Jan	8	12:06:30s -0:06:30 -
                -+Rule	sol87	1987	only	-	Jan	9	12:06:55s -0:06:55 -
                -+Rule	sol87	1987	only	-	Jan	10	12:07:20s -0:07:20 -
                -+Rule	sol87	1987	only	-	Jan	11	12:07:45s -0:07:45 -
                -+Rule	sol87	1987	only	-	Jan	12	12:08:10s -0:08:10 -
                -+Rule	sol87	1987	only	-	Jan	13	12:08:30s -0:08:30 -
                -+Rule	sol87	1987	only	-	Jan	14	12:08:55s -0:08:55 -
                -+Rule	sol87	1987	only	-	Jan	15	12:09:15s -0:09:15 -
                -+Rule	sol87	1987	only	-	Jan	16	12:09:35s -0:09:35 -
                -+Rule	sol87	1987	only	-	Jan	17	12:09:55s -0:09:55 -
                -+Rule	sol87	1987	only	-	Jan	18	12:10:15s -0:10:15 -
                -+Rule	sol87	1987	only	-	Jan	19	12:10:35s -0:10:35 -
                -+Rule	sol87	1987	only	-	Jan	20	12:10:55s -0:10:55 -
                -+Rule	sol87	1987	only	-	Jan	21	12:11:10s -0:11:10 -
                -+Rule	sol87	1987	only	-	Jan	22	12:11:30s -0:11:30 -
                -+Rule	sol87	1987	only	-	Jan	23	12:11:45s -0:11:45 -
                -+Rule	sol87	1987	only	-	Jan	24	12:12:00s -0:12:00 -
                -+Rule	sol87	1987	only	-	Jan	25	12:12:15s -0:12:15 -
                -+Rule	sol87	1987	only	-	Jan	26	12:12:30s -0:12:30 -
                -+Rule	sol87	1987	only	-	Jan	27	12:12:40s -0:12:40 -
                -+Rule	sol87	1987	only	-	Jan	28	12:12:55s -0:12:55 -
                -+Rule	sol87	1987	only	-	Jan	29	12:13:05s -0:13:05 -
                -+Rule	sol87	1987	only	-	Jan	30	12:13:15s -0:13:15 -
                -+Rule	sol87	1987	only	-	Jan	31	12:13:25s -0:13:25 -
                -+Rule	sol87	1987	only	-	Feb	1	12:13:35s -0:13:35 -
                -+Rule	sol87	1987	only	-	Feb	2	12:13:40s -0:13:40 -
                -+Rule	sol87	1987	only	-	Feb	3	12:13:50s -0:13:50 -
                -+Rule	sol87	1987	only	-	Feb	4	12:13:55s -0:13:55 -
                -+Rule	sol87	1987	only	-	Feb	5	12:14:00s -0:14:00 -
                -+Rule	sol87	1987	only	-	Feb	6	12:14:05s -0:14:05 -
                -+Rule	sol87	1987	only	-	Feb	7	12:14:10s -0:14:10 -
                -+Rule	sol87	1987	only	-	Feb	8	12:14:10s -0:14:10 -
                -+Rule	sol87	1987	only	-	Feb	9	12:14:15s -0:14:15 -
                -+Rule	sol87	1987	only	-	Feb	10	12:14:15s -0:14:15 -
                -+Rule	sol87	1987	only	-	Feb	11	12:14:15s -0:14:15 -
                -+Rule	sol87	1987	only	-	Feb	12	12:14:15s -0:14:15 -
                -+Rule	sol87	1987	only	-	Feb	13	12:14:15s -0:14:15 -
                -+Rule	sol87	1987	only	-	Feb	14	12:14:15s -0:14:15 -
                -+Rule	sol87	1987	only	-	Feb	15	12:14:10s -0:14:10 -
                -+Rule	sol87	1987	only	-	Feb	16	12:14:10s -0:14:10 -
                -+Rule	sol87	1987	only	-	Feb	17	12:14:05s -0:14:05 -
                -+Rule	sol87	1987	only	-	Feb	18	12:14:00s -0:14:00 -
                -+Rule	sol87	1987	only	-	Feb	19	12:13:55s -0:13:55 -
                -+Rule	sol87	1987	only	-	Feb	20	12:13:50s -0:13:50 -
                -+Rule	sol87	1987	only	-	Feb	21	12:13:45s -0:13:45 -
                -+Rule	sol87	1987	only	-	Feb	22	12:13:35s -0:13:35 -
                -+Rule	sol87	1987	only	-	Feb	23	12:13:30s -0:13:30 -
                -+Rule	sol87	1987	only	-	Feb	24	12:13:20s -0:13:20 -
                -+Rule	sol87	1987	only	-	Feb	25	12:13:10s -0:13:10 -
                -+Rule	sol87	1987	only	-	Feb	26	12:13:00s -0:13:00 -
                -+Rule	sol87	1987	only	-	Feb	27	12:12:50s -0:12:50 -
                -+Rule	sol87	1987	only	-	Feb	28	12:12:40s -0:12:40 -
                -+Rule	sol87	1987	only	-	Mar	1	12:12:30s -0:12:30 -
                -+Rule	sol87	1987	only	-	Mar	2	12:12:20s -0:12:20 -
                -+Rule	sol87	1987	only	-	Mar	3	12:12:05s -0:12:05 -
                -+Rule	sol87	1987	only	-	Mar	4	12:11:55s -0:11:55 -
                -+Rule	sol87	1987	only	-	Mar	5	12:11:40s -0:11:40 -
                -+Rule	sol87	1987	only	-	Mar	6	12:11:25s -0:11:25 -
                -+Rule	sol87	1987	only	-	Mar	7	12:11:15s -0:11:15 -
                -+Rule	sol87	1987	only	-	Mar	8	12:11:00s -0:11:00 -
                -+Rule	sol87	1987	only	-	Mar	9	12:10:45s -0:10:45 -
                -+Rule	sol87	1987	only	-	Mar	10	12:10:30s -0:10:30 -
                -+Rule	sol87	1987	only	-	Mar	11	12:10:15s -0:10:15 -
                -+Rule	sol87	1987	only	-	Mar	12	12:09:55s -0:09:55 -
                -+Rule	sol87	1987	only	-	Mar	13	12:09:40s -0:09:40 -
                -+Rule	sol87	1987	only	-	Mar	14	12:09:25s -0:09:25 -
                -+Rule	sol87	1987	only	-	Mar	15	12:09:10s -0:09:10 -
                -+Rule	sol87	1987	only	-	Mar	16	12:08:50s -0:08:50 -
                -+Rule	sol87	1987	only	-	Mar	17	12:08:35s -0:08:35 -
                -+Rule	sol87	1987	only	-	Mar	18	12:08:15s -0:08:15 -
                -+Rule	sol87	1987	only	-	Mar	19	12:08:00s -0:08:00 -
                -+Rule	sol87	1987	only	-	Mar	20	12:07:40s -0:07:40 -
                -+Rule	sol87	1987	only	-	Mar	21	12:07:25s -0:07:25 -
                -+Rule	sol87	1987	only	-	Mar	22	12:07:05s -0:07:05 -
                -+Rule	sol87	1987	only	-	Mar	23	12:06:50s -0:06:50 -
                -+Rule	sol87	1987	only	-	Mar	24	12:06:30s -0:06:30 -
                -+Rule	sol87	1987	only	-	Mar	25	12:06:10s -0:06:10 -
                -+Rule	sol87	1987	only	-	Mar	26	12:05:55s -0:05:55 -
                -+Rule	sol87	1987	only	-	Mar	27	12:05:35s -0:05:35 -
                -+Rule	sol87	1987	only	-	Mar	28	12:05:15s -0:05:15 -
                -+Rule	sol87	1987	only	-	Mar	29	12:05:00s -0:05:00 -
                -+Rule	sol87	1987	only	-	Mar	30	12:04:40s -0:04:40 -
                -+Rule	sol87	1987	only	-	Mar	31	12:04:25s -0:04:25 -
                -+Rule	sol87	1987	only	-	Apr	1	12:04:05s -0:04:05 -
                -+Rule	sol87	1987	only	-	Apr	2	12:03:45s -0:03:45 -
                -+Rule	sol87	1987	only	-	Apr	3	12:03:30s -0:03:30 -
                -+Rule	sol87	1987	only	-	Apr	4	12:03:10s -0:03:10 -
                -+Rule	sol87	1987	only	-	Apr	5	12:02:55s -0:02:55 -
                -+Rule	sol87	1987	only	-	Apr	6	12:02:35s -0:02:35 -
                -+Rule	sol87	1987	only	-	Apr	7	12:02:20s -0:02:20 -
                -+Rule	sol87	1987	only	-	Apr	8	12:02:05s -0:02:05 -
                -+Rule	sol87	1987	only	-	Apr	9	12:01:45s -0:01:45 -
                -+Rule	sol87	1987	only	-	Apr	10	12:01:30s -0:01:30 -
                -+Rule	sol87	1987	only	-	Apr	11	12:01:15s -0:01:15 -
                -+Rule	sol87	1987	only	-	Apr	12	12:00:55s -0:00:55 -
                -+Rule	sol87	1987	only	-	Apr	13	12:00:40s -0:00:40 -
                -+Rule	sol87	1987	only	-	Apr	14	12:00:25s -0:00:25 -
                -+Rule	sol87	1987	only	-	Apr	15	12:00:10s -0:00:10 -
                -+Rule	sol87	1987	only	-	Apr	16	11:59:55s 0:00:05 -
                -+Rule	sol87	1987	only	-	Apr	17	11:59:45s 0:00:15 -
                -+Rule	sol87	1987	only	-	Apr	18	11:59:30s 0:00:30 -
                -+Rule	sol87	1987	only	-	Apr	19	11:59:15s 0:00:45 -
                -+Rule	sol87	1987	only	-	Apr	20	11:59:05s 0:00:55 -
                -+Rule	sol87	1987	only	-	Apr	21	11:58:50s 0:01:10 -
                -+Rule	sol87	1987	only	-	Apr	22	11:58:40s 0:01:20 -
                -+Rule	sol87	1987	only	-	Apr	23	11:58:25s 0:01:35 -
                -+Rule	sol87	1987	only	-	Apr	24	11:58:15s 0:01:45 -
                -+Rule	sol87	1987	only	-	Apr	25	11:58:05s 0:01:55 -
                -+Rule	sol87	1987	only	-	Apr	26	11:57:55s 0:02:05 -
                -+Rule	sol87	1987	only	-	Apr	27	11:57:45s 0:02:15 -
                -+Rule	sol87	1987	only	-	Apr	28	11:57:35s 0:02:25 -
                -+Rule	sol87	1987	only	-	Apr	29	11:57:25s 0:02:35 -
                -+Rule	sol87	1987	only	-	Apr	30	11:57:15s 0:02:45 -
                -+Rule	sol87	1987	only	-	May	1	11:57:10s 0:02:50 -
                -+Rule	sol87	1987	only	-	May	2	11:57:00s 0:03:00 -
                -+Rule	sol87	1987	only	-	May	3	11:56:55s 0:03:05 -
                -+Rule	sol87	1987	only	-	May	4	11:56:50s 0:03:10 -
                -+Rule	sol87	1987	only	-	May	5	11:56:45s 0:03:15 -
                -+Rule	sol87	1987	only	-	May	6	11:56:40s 0:03:20 -
                -+Rule	sol87	1987	only	-	May	7	11:56:35s 0:03:25 -
                -+Rule	sol87	1987	only	-	May	8	11:56:30s 0:03:30 -
                -+Rule	sol87	1987	only	-	May	9	11:56:25s 0:03:35 -
                -+Rule	sol87	1987	only	-	May	10	11:56:25s 0:03:35 -
                -+Rule	sol87	1987	only	-	May	11	11:56:20s 0:03:40 -
                -+Rule	sol87	1987	only	-	May	12	11:56:20s 0:03:40 -
                -+Rule	sol87	1987	only	-	May	13	11:56:20s 0:03:40 -
                -+Rule	sol87	1987	only	-	May	14	11:56:20s 0:03:40 -
                -+Rule	sol87	1987	only	-	May	15	11:56:20s 0:03:40 -
                -+Rule	sol87	1987	only	-	May	16	11:56:20s 0:03:40 -
                -+Rule	sol87	1987	only	-	May	17	11:56:20s 0:03:40 -
                -+Rule	sol87	1987	only	-	May	18	11:56:20s 0:03:40 -
                -+Rule	sol87	1987	only	-	May	19	11:56:25s 0:03:35 -
                -+Rule	sol87	1987	only	-	May	20	11:56:25s 0:03:35 -
                -+Rule	sol87	1987	only	-	May	21	11:56:30s 0:03:30 -
                -+Rule	sol87	1987	only	-	May	22	11:56:35s 0:03:25 -
                -+Rule	sol87	1987	only	-	May	23	11:56:40s 0:03:20 -
                -+Rule	sol87	1987	only	-	May	24	11:56:45s 0:03:15 -
                -+Rule	sol87	1987	only	-	May	25	11:56:50s 0:03:10 -
                -+Rule	sol87	1987	only	-	May	26	11:56:55s 0:03:05 -
                -+Rule	sol87	1987	only	-	May	27	11:57:00s 0:03:00 -
                -+Rule	sol87	1987	only	-	May	28	11:57:10s 0:02:50 -
                -+Rule	sol87	1987	only	-	May	29	11:57:15s 0:02:45 -
                -+Rule	sol87	1987	only	-	May	30	11:57:25s 0:02:35 -
                -+Rule	sol87	1987	only	-	May	31	11:57:30s 0:02:30 -
                -+Rule	sol87	1987	only	-	Jun	1	11:57:40s 0:02:20 -
                -+Rule	sol87	1987	only	-	Jun	2	11:57:50s 0:02:10 -
                -+Rule	sol87	1987	only	-	Jun	3	11:58:00s 0:02:00 -
                -+Rule	sol87	1987	only	-	Jun	4	11:58:10s 0:01:50 -
                -+Rule	sol87	1987	only	-	Jun	5	11:58:20s 0:01:40 -
                -+Rule	sol87	1987	only	-	Jun	6	11:58:30s 0:01:30 -
                -+Rule	sol87	1987	only	-	Jun	7	11:58:40s 0:01:20 -
                -+Rule	sol87	1987	only	-	Jun	8	11:58:50s 0:01:10 -
                -+Rule	sol87	1987	only	-	Jun	9	11:59:05s 0:00:55 -
                -+Rule	sol87	1987	only	-	Jun	10	11:59:15s 0:00:45 -
                -+Rule	sol87	1987	only	-	Jun	11	11:59:30s 0:00:30 -
                -+Rule	sol87	1987	only	-	Jun	12	11:59:40s 0:00:20 -
                -+Rule	sol87	1987	only	-	Jun	13	11:59:50s 0:00:10 -
                -+Rule	sol87	1987	only	-	Jun	14	12:00:05s -0:00:05 -
                -+Rule	sol87	1987	only	-	Jun	15	12:00:15s -0:00:15 -
                -+Rule	sol87	1987	only	-	Jun	16	12:00:30s -0:00:30 -
                -+Rule	sol87	1987	only	-	Jun	17	12:00:45s -0:00:45 -
                -+Rule	sol87	1987	only	-	Jun	18	12:00:55s -0:00:55 -
                -+Rule	sol87	1987	only	-	Jun	19	12:01:10s -0:01:10 -
                -+Rule	sol87	1987	only	-	Jun	20	12:01:20s -0:01:20 -
                -+Rule	sol87	1987	only	-	Jun	21	12:01:35s -0:01:35 -
                -+Rule	sol87	1987	only	-	Jun	22	12:01:50s -0:01:50 -
                -+Rule	sol87	1987	only	-	Jun	23	12:02:00s -0:02:00 -
                -+Rule	sol87	1987	only	-	Jun	24	12:02:15s -0:02:15 -
                -+Rule	sol87	1987	only	-	Jun	25	12:02:25s -0:02:25 -
                -+Rule	sol87	1987	only	-	Jun	26	12:02:40s -0:02:40 -
                -+Rule	sol87	1987	only	-	Jun	27	12:02:50s -0:02:50 -
                -+Rule	sol87	1987	only	-	Jun	28	12:03:05s -0:03:05 -
                -+Rule	sol87	1987	only	-	Jun	29	12:03:15s -0:03:15 -
                -+Rule	sol87	1987	only	-	Jun	30	12:03:30s -0:03:30 -
                -+Rule	sol87	1987	only	-	Jul	1	12:03:40s -0:03:40 -
                -+Rule	sol87	1987	only	-	Jul	2	12:03:50s -0:03:50 -
                -+Rule	sol87	1987	only	-	Jul	3	12:04:05s -0:04:05 -
                -+Rule	sol87	1987	only	-	Jul	4	12:04:15s -0:04:15 -
                -+Rule	sol87	1987	only	-	Jul	5	12:04:25s -0:04:25 -
                -+Rule	sol87	1987	only	-	Jul	6	12:04:35s -0:04:35 -
                -+Rule	sol87	1987	only	-	Jul	7	12:04:45s -0:04:45 -
                -+Rule	sol87	1987	only	-	Jul	8	12:04:55s -0:04:55 -
                -+Rule	sol87	1987	only	-	Jul	9	12:05:05s -0:05:05 -
                -+Rule	sol87	1987	only	-	Jul	10	12:05:15s -0:05:15 -
                -+Rule	sol87	1987	only	-	Jul	11	12:05:20s -0:05:20 -
                -+Rule	sol87	1987	only	-	Jul	12	12:05:30s -0:05:30 -
                -+Rule	sol87	1987	only	-	Jul	13	12:05:40s -0:05:40 -
                -+Rule	sol87	1987	only	-	Jul	14	12:05:45s -0:05:45 -
                -+Rule	sol87	1987	only	-	Jul	15	12:05:50s -0:05:50 -
                -+Rule	sol87	1987	only	-	Jul	16	12:06:00s -0:06:00 -
                -+Rule	sol87	1987	only	-	Jul	17	12:06:05s -0:06:05 -
                -+Rule	sol87	1987	only	-	Jul	18	12:06:10s -0:06:10 -
                -+Rule	sol87	1987	only	-	Jul	19	12:06:15s -0:06:15 -
                -+Rule	sol87	1987	only	-	Jul	20	12:06:15s -0:06:15 -
                -+Rule	sol87	1987	only	-	Jul	21	12:06:20s -0:06:20 -
                -+Rule	sol87	1987	only	-	Jul	22	12:06:25s -0:06:25 -
                -+Rule	sol87	1987	only	-	Jul	23	12:06:25s -0:06:25 -
                -+Rule	sol87	1987	only	-	Jul	24	12:06:25s -0:06:25 -
                -+Rule	sol87	1987	only	-	Jul	25	12:06:30s -0:06:30 -
                -+Rule	sol87	1987	only	-	Jul	26	12:06:30s -0:06:30 -
                -+Rule	sol87	1987	only	-	Jul	27	12:06:30s -0:06:30 -
                -+Rule	sol87	1987	only	-	Jul	28	12:06:30s -0:06:30 -
                -+Rule	sol87	1987	only	-	Jul	29	12:06:25s -0:06:25 -
                -+Rule	sol87	1987	only	-	Jul	30	12:06:25s -0:06:25 -
                -+Rule	sol87	1987	only	-	Jul	31	12:06:25s -0:06:25 -
                -+Rule	sol87	1987	only	-	Aug	1	12:06:20s -0:06:20 -
                -+Rule	sol87	1987	only	-	Aug	2	12:06:15s -0:06:15 -
                -+Rule	sol87	1987	only	-	Aug	3	12:06:10s -0:06:10 -
                -+Rule	sol87	1987	only	-	Aug	4	12:06:05s -0:06:05 -
                -+Rule	sol87	1987	only	-	Aug	5	12:06:00s -0:06:00 -
                -+Rule	sol87	1987	only	-	Aug	6	12:05:55s -0:05:55 -
                -+Rule	sol87	1987	only	-	Aug	7	12:05:50s -0:05:50 -
                -+Rule	sol87	1987	only	-	Aug	8	12:05:40s -0:05:40 -
                -+Rule	sol87	1987	only	-	Aug	9	12:05:35s -0:05:35 -
                -+Rule	sol87	1987	only	-	Aug	10	12:05:25s -0:05:25 -
                -+Rule	sol87	1987	only	-	Aug	11	12:05:15s -0:05:15 -
                -+Rule	sol87	1987	only	-	Aug	12	12:05:05s -0:05:05 -
                -+Rule	sol87	1987	only	-	Aug	13	12:04:55s -0:04:55 -
                -+Rule	sol87	1987	only	-	Aug	14	12:04:45s -0:04:45 -
                -+Rule	sol87	1987	only	-	Aug	15	12:04:35s -0:04:35 -
                -+Rule	sol87	1987	only	-	Aug	16	12:04:25s -0:04:25 -
                -+Rule	sol87	1987	only	-	Aug	17	12:04:10s -0:04:10 -
                -+Rule	sol87	1987	only	-	Aug	18	12:04:00s -0:04:00 -
                -+Rule	sol87	1987	only	-	Aug	19	12:03:45s -0:03:45 -
                -+Rule	sol87	1987	only	-	Aug	20	12:03:30s -0:03:30 -
                -+Rule	sol87	1987	only	-	Aug	21	12:03:15s -0:03:15 -
                -+Rule	sol87	1987	only	-	Aug	22	12:03:00s -0:03:00 -
                -+Rule	sol87	1987	only	-	Aug	23	12:02:45s -0:02:45 -
                -+Rule	sol87	1987	only	-	Aug	24	12:02:30s -0:02:30 -
                -+Rule	sol87	1987	only	-	Aug	25	12:02:15s -0:02:15 -
                -+Rule	sol87	1987	only	-	Aug	26	12:02:00s -0:02:00 -
                -+Rule	sol87	1987	only	-	Aug	27	12:01:40s -0:01:40 -
                -+Rule	sol87	1987	only	-	Aug	28	12:01:25s -0:01:25 -
                -+Rule	sol87	1987	only	-	Aug	29	12:01:05s -0:01:05 -
                -+Rule	sol87	1987	only	-	Aug	30	12:00:50s -0:00:50 -
                -+Rule	sol87	1987	only	-	Aug	31	12:00:30s -0:00:30 -
                -+Rule	sol87	1987	only	-	Sep	1	12:00:10s -0:00:10 -
                -+Rule	sol87	1987	only	-	Sep	2	11:59:50s 0:00:10 -
                -+Rule	sol87	1987	only	-	Sep	3	11:59:35s 0:00:25 -
                -+Rule	sol87	1987	only	-	Sep	4	11:59:15s 0:00:45 -
                -+Rule	sol87	1987	only	-	Sep	5	11:58:55s 0:01:05 -
                -+Rule	sol87	1987	only	-	Sep	6	11:58:35s 0:01:25 -
                -+Rule	sol87	1987	only	-	Sep	7	11:58:15s 0:01:45 -
                -+Rule	sol87	1987	only	-	Sep	8	11:57:55s 0:02:05 -
                -+Rule	sol87	1987	only	-	Sep	9	11:57:30s 0:02:30 -
                -+Rule	sol87	1987	only	-	Sep	10	11:57:10s 0:02:50 -
                -+Rule	sol87	1987	only	-	Sep	11	11:56:50s 0:03:10 -
                -+Rule	sol87	1987	only	-	Sep	12	11:56:30s 0:03:30 -
                -+Rule	sol87	1987	only	-	Sep	13	11:56:10s 0:03:50 -
                -+Rule	sol87	1987	only	-	Sep	14	11:55:45s 0:04:15 -
                -+Rule	sol87	1987	only	-	Sep	15	11:55:25s 0:04:35 -
                -+Rule	sol87	1987	only	-	Sep	16	11:55:05s 0:04:55 -
                -+Rule	sol87	1987	only	-	Sep	17	11:54:45s 0:05:15 -
                -+Rule	sol87	1987	only	-	Sep	18	11:54:20s 0:05:40 -
                -+Rule	sol87	1987	only	-	Sep	19	11:54:00s 0:06:00 -
                -+Rule	sol87	1987	only	-	Sep	20	11:53:40s 0:06:20 -
                -+Rule	sol87	1987	only	-	Sep	21	11:53:15s 0:06:45 -
                -+Rule	sol87	1987	only	-	Sep	22	11:52:55s 0:07:05 -
                -+Rule	sol87	1987	only	-	Sep	23	11:52:35s 0:07:25 -
                -+Rule	sol87	1987	only	-	Sep	24	11:52:15s 0:07:45 -
                -+Rule	sol87	1987	only	-	Sep	25	11:51:55s 0:08:05 -
                -+Rule	sol87	1987	only	-	Sep	26	11:51:35s 0:08:25 -
                -+Rule	sol87	1987	only	-	Sep	27	11:51:10s 0:08:50 -
                -+Rule	sol87	1987	only	-	Sep	28	11:50:50s 0:09:10 -
                -+Rule	sol87	1987	only	-	Sep	29	11:50:30s 0:09:30 -
                -+Rule	sol87	1987	only	-	Sep	30	11:50:10s 0:09:50 -
                -+Rule	sol87	1987	only	-	Oct	1	11:49:50s 0:10:10 -
                -+Rule	sol87	1987	only	-	Oct	2	11:49:35s 0:10:25 -
                -+Rule	sol87	1987	only	-	Oct	3	11:49:15s 0:10:45 -
                -+Rule	sol87	1987	only	-	Oct	4	11:48:55s 0:11:05 -
                -+Rule	sol87	1987	only	-	Oct	5	11:48:35s 0:11:25 -
                -+Rule	sol87	1987	only	-	Oct	6	11:48:20s 0:11:40 -
                -+Rule	sol87	1987	only	-	Oct	7	11:48:00s 0:12:00 -
                -+Rule	sol87	1987	only	-	Oct	8	11:47:45s 0:12:15 -
                -+Rule	sol87	1987	only	-	Oct	9	11:47:25s 0:12:35 -
                -+Rule	sol87	1987	only	-	Oct	10	11:47:10s 0:12:50 -
                -+Rule	sol87	1987	only	-	Oct	11	11:46:55s 0:13:05 -
                -+Rule	sol87	1987	only	-	Oct	12	11:46:40s 0:13:20 -
                -+Rule	sol87	1987	only	-	Oct	13	11:46:25s 0:13:35 -
                -+Rule	sol87	1987	only	-	Oct	14	11:46:10s 0:13:50 -
                -+Rule	sol87	1987	only	-	Oct	15	11:45:55s 0:14:05 -
                -+Rule	sol87	1987	only	-	Oct	16	11:45:45s 0:14:15 -
                -+Rule	sol87	1987	only	-	Oct	17	11:45:30s 0:14:30 -
                -+Rule	sol87	1987	only	-	Oct	18	11:45:20s 0:14:40 -
                -+Rule	sol87	1987	only	-	Oct	19	11:45:05s 0:14:55 -
                -+Rule	sol87	1987	only	-	Oct	20	11:44:55s 0:15:05 -
                -+Rule	sol87	1987	only	-	Oct	21	11:44:45s 0:15:15 -
                -+Rule	sol87	1987	only	-	Oct	22	11:44:35s 0:15:25 -
                -+Rule	sol87	1987	only	-	Oct	23	11:44:25s 0:15:35 -
                -+Rule	sol87	1987	only	-	Oct	24	11:44:20s 0:15:40 -
                -+Rule	sol87	1987	only	-	Oct	25	11:44:10s 0:15:50 -
                -+Rule	sol87	1987	only	-	Oct	26	11:44:05s 0:15:55 -
                -+Rule	sol87	1987	only	-	Oct	27	11:43:55s 0:16:05 -
                -+Rule	sol87	1987	only	-	Oct	28	11:43:50s 0:16:10 -
                -+Rule	sol87	1987	only	-	Oct	29	11:43:45s 0:16:15 -
                -+Rule	sol87	1987	only	-	Oct	30	11:43:45s 0:16:15 -
                -+Rule	sol87	1987	only	-	Oct	31	11:43:40s 0:16:20 -
                -+Rule	sol87	1987	only	-	Nov	1	11:43:40s 0:16:20 -
                -+Rule	sol87	1987	only	-	Nov	2	11:43:35s 0:16:25 -
                -+Rule	sol87	1987	only	-	Nov	3	11:43:35s 0:16:25 -
                -+Rule	sol87	1987	only	-	Nov	4	11:43:35s 0:16:25 -
                -+Rule	sol87	1987	only	-	Nov	5	11:43:35s 0:16:25 -
                -+Rule	sol87	1987	only	-	Nov	6	11:43:40s 0:16:20 -
                -+Rule	sol87	1987	only	-	Nov	7	11:43:40s 0:16:20 -
                -+Rule	sol87	1987	only	-	Nov	8	11:43:45s 0:16:15 -
                -+Rule	sol87	1987	only	-	Nov	9	11:43:50s 0:16:10 -
                -+Rule	sol87	1987	only	-	Nov	10	11:43:55s 0:16:05 -
                -+Rule	sol87	1987	only	-	Nov	11	11:44:00s 0:16:00 -
                -+Rule	sol87	1987	only	-	Nov	12	11:44:05s 0:15:55 -
                -+Rule	sol87	1987	only	-	Nov	13	11:44:15s 0:15:45 -
                -+Rule	sol87	1987	only	-	Nov	14	11:44:20s 0:15:40 -
                -+Rule	sol87	1987	only	-	Nov	15	11:44:30s 0:15:30 -
                -+Rule	sol87	1987	only	-	Nov	16	11:44:40s 0:15:20 -
                -+Rule	sol87	1987	only	-	Nov	17	11:44:50s 0:15:10 -
                -+Rule	sol87	1987	only	-	Nov	18	11:45:05s 0:14:55 -
                -+Rule	sol87	1987	only	-	Nov	19	11:45:15s 0:14:45 -
                -+Rule	sol87	1987	only	-	Nov	20	11:45:30s 0:14:30 -
                -+Rule	sol87	1987	only	-	Nov	21	11:45:45s 0:14:15 -
                -+Rule	sol87	1987	only	-	Nov	22	11:46:00s 0:14:00 -
                -+Rule	sol87	1987	only	-	Nov	23	11:46:15s 0:13:45 -
                -+Rule	sol87	1987	only	-	Nov	24	11:46:30s 0:13:30 -
                -+Rule	sol87	1987	only	-	Nov	25	11:46:50s 0:13:10 -
                -+Rule	sol87	1987	only	-	Nov	26	11:47:10s 0:12:50 -
                -+Rule	sol87	1987	only	-	Nov	27	11:47:25s 0:12:35 -
                -+Rule	sol87	1987	only	-	Nov	28	11:47:45s 0:12:15 -
                -+Rule	sol87	1987	only	-	Nov	29	11:48:05s 0:11:55 -
                -+Rule	sol87	1987	only	-	Nov	30	11:48:30s 0:11:30 -
                -+Rule	sol87	1987	only	-	Dec	1	11:48:50s 0:11:10 -
                -+Rule	sol87	1987	only	-	Dec	2	11:49:10s 0:10:50 -
                -+Rule	sol87	1987	only	-	Dec	3	11:49:35s 0:10:25 -
                -+Rule	sol87	1987	only	-	Dec	4	11:50:00s 0:10:00 -
                -+Rule	sol87	1987	only	-	Dec	5	11:50:25s 0:09:35 -
                -+Rule	sol87	1987	only	-	Dec	6	11:50:50s 0:09:10 -
                -+Rule	sol87	1987	only	-	Dec	7	11:51:15s 0:08:45 -
                -+Rule	sol87	1987	only	-	Dec	8	11:51:40s 0:08:20 -
                -+Rule	sol87	1987	only	-	Dec	9	11:52:05s 0:07:55 -
                -+Rule	sol87	1987	only	-	Dec	10	11:52:30s 0:07:30 -
                -+Rule	sol87	1987	only	-	Dec	11	11:53:00s 0:07:00 -
                -+Rule	sol87	1987	only	-	Dec	12	11:53:25s 0:06:35 -
                -+Rule	sol87	1987	only	-	Dec	13	11:53:55s 0:06:05 -
                -+Rule	sol87	1987	only	-	Dec	14	11:54:25s 0:05:35 -
                -+Rule	sol87	1987	only	-	Dec	15	11:54:50s 0:05:10 -
                -+Rule	sol87	1987	only	-	Dec	16	11:55:20s 0:04:40 -
                -+Rule	sol87	1987	only	-	Dec	17	11:55:50s 0:04:10 -
                -+Rule	sol87	1987	only	-	Dec	18	11:56:20s 0:03:40 -
                -+Rule	sol87	1987	only	-	Dec	19	11:56:50s 0:03:10 -
                -+Rule	sol87	1987	only	-	Dec	20	11:57:20s 0:02:40 -
                -+Rule	sol87	1987	only	-	Dec	21	11:57:50s 0:02:10 -
                -+Rule	sol87	1987	only	-	Dec	22	11:58:20s 0:01:40 -
                -+Rule	sol87	1987	only	-	Dec	23	11:58:50s 0:01:10 -
                -+Rule	sol87	1987	only	-	Dec	24	11:59:20s 0:00:40 -
                -+Rule	sol87	1987	only	-	Dec	25	11:59:50s 0:00:10 -
                -+Rule	sol87	1987	only	-	Dec	26	12:00:20s -0:00:20 -
                -+Rule	sol87	1987	only	-	Dec	27	12:00:45s -0:00:45 -
                -+Rule	sol87	1987	only	-	Dec	28	12:01:15s -0:01:15 -
                -+Rule	sol87	1987	only	-	Dec	29	12:01:45s -0:01:45 -
                -+Rule	sol87	1987	only	-	Dec	30	12:02:15s -0:02:15 -
                -+Rule	sol87	1987	only	-	Dec	31	12:02:45s -0:02:45 -
                -+
                -+# Riyadh is at about 46 degrees 46 minutes East:  3 hrs, 7 mins, 4 secs
                -+# Before and after 1987, we'll operate on local mean solar time.
                -+
                -+# Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
                -+Zone	Asia/Riyadh87	3:07:04	-		zzz	1987
                -+			3:07:04	sol87		zzz	1988
                -+			3:07:04	-		zzz
                -+# For backward compatibility...
                -+Link	Asia/Riyadh87	Mideast/Riyadh87
                -Index: examples/tz/leapseconds
                -===================================================================
                ---- examples/tz/leapseconds	(revision 0)
                -+++ examples/tz/leapseconds	(revision 0)
                -@@ -0,0 +1,87 @@
                -+# 
                -+# @(#)leapseconds	8.11
                -+# This file is in the public domain, so clarified as of
                -+# 2009-05-17 by Arthur David Olson.
                -+
                -+# Allowance for leapseconds added to each timezone file.
                -+
                -+# The International Earth Rotation Service periodically uses leap seconds
                -+# to keep UTC to within 0.9 s of UT1
                -+# (which measures the true angular orientation of the earth in space); see
                -+# Terry J Quinn, The BIPM and the accurate measure of time,
                -+# Proc IEEE 79, 7 (July 1991), 894-905.
                -+# There were no leap seconds before 1972, because the official mechanism
                -+# accounting for the discrepancy between atomic time and the earth's rotation
                -+# did not exist until the early 1970s.
                -+
                -+# The correction (+ or -) is made at the given time, so lines
                -+# will typically look like:
                -+#	Leap	YEAR	MON	DAY	23:59:60	+	R/S
                -+# or
                -+#	Leap	YEAR	MON	DAY	23:59:59	-	R/S
                -+
                -+# If the leapsecond is Rolling (R) the given time is local time
                -+# If the leapsecond is Stationary (S) the given time is UTC
                -+
                -+# Leap	YEAR	MONTH	DAY	HH:MM:SS	CORR	R/S
                -+Leap	1972	Jun	30	23:59:60	+	S
                -+Leap	1972	Dec	31	23:59:60	+	S
                -+Leap	1973	Dec	31	23:59:60	+	S
                -+Leap	1974	Dec	31	23:59:60	+	S
                -+Leap	1975	Dec	31	23:59:60	+	S
                -+Leap	1976	Dec	31	23:59:60	+	S
                -+Leap	1977	Dec	31	23:59:60	+	S
                -+Leap	1978	Dec	31	23:59:60	+	S
                -+Leap	1979	Dec	31	23:59:60	+	S
                -+Leap	1981	Jun	30	23:59:60	+	S
                -+Leap	1982	Jun	30	23:59:60	+	S
                -+Leap	1983	Jun	30	23:59:60	+	S
                -+Leap	1985	Jun	30	23:59:60	+	S
                -+Leap	1987	Dec	31	23:59:60	+	S
                -+Leap	1989	Dec	31	23:59:60	+	S
                -+Leap	1990	Dec	31	23:59:60	+	S
                -+Leap	1992	Jun	30	23:59:60	+	S
                -+Leap	1993	Jun	30	23:59:60	+	S
                -+Leap	1994	Jun	30	23:59:60	+	S
                -+Leap	1995	Dec	31	23:59:60	+	S
                -+Leap	1997	Jun	30	23:59:60	+	S
                -+Leap	1998	Dec	31	23:59:60	+	S
                -+Leap	2005	Dec	31	23:59:60	+	S
                -+Leap	2008	Dec	31	23:59:60	+	S
                -+
                -+# INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS)
                -+#
                -+# SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE ET DES SYSTEMES DE REFERENCE
                -+#
                -+# SERVICE DE LA ROTATION TERRESTRE
                -+# OBSERVATOIRE DE PARIS
                -+# 61, Av. de l'Observatoire 75014 PARIS (France)
                -+# Tel.      : 33 (0) 1 40 51 22 29
                -+# FAX       : 33 (0) 1 40 51 22 91
                -+# Internet  : services.iers@obspm.fr
                -+#
                -+# Paris, 2 February 2011
                -+#
                -+# Bulletin C 41
                -+#
                -+# To authorities responsible
                -+# for the measurement and
                -+# distribution of time
                -+#
                -+# INFORMATION ON UTC - TAI
                -+#
                -+# NO positive leap second will be introduced at the end of June 2011.
                -+# The difference between Coordinated Universal Time UTC and the
                -+# International Atomic Time TAI is :		
                -+#
                -+# from 2009 January 1, 0h UTC, until further notice : UTC-TAI = -34 s
                -+#
                -+# Leap seconds can be introduced in UTC at the end of the months of December
                -+# or June,  depending on the evolution of UT1-TAI. Bulletin C is mailed every
                -+# six months, either to announce a time step in UTC, or to confirm that there
                -+# will be no time step at the next possible date.
                -+#
                -+# Daniel GAMBIS
                -+# Head			
                -+# Earth Orientation Center of the IERS
                -+# Observatoire de Paris, France
                -Index: examples/tz/solar88
                -===================================================================
                ---- examples/tz/solar88	(revision 0)
                -+++ examples/tz/solar88	(revision 0)
                -@@ -0,0 +1,391 @@
                -+# 
                -+# @(#)solar88	8.2
                -+# This file is in the public domain, so clarified as of
                -+# 2009-05-17 by Arthur David Olson.
                -+
                -+# Apparent noon times below are for Riyadh; they're a bit off for other places.
                -+# Times were computed using formulas in the U.S. Naval Observatory's
                -+# Almanac for Computers 1988; the formulas "will give EqT to an accuracy of
                -+# [plus or minus two] seconds during the current year."
                -+#
                -+# Rounding to the nearest five seconds results in fewer than
                -+# 256 different "time types"--a limit that's faced because time types are
                -+# stored on disk as unsigned chars.
                -+
                -+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
                -+Rule	sol88	1988	only	-	Jan	1	12:03:15s -0:03:15 -
                -+Rule	sol88	1988	only	-	Jan	2	12:03:40s -0:03:40 -
                -+Rule	sol88	1988	only	-	Jan	3	12:04:10s -0:04:10 -
                -+Rule	sol88	1988	only	-	Jan	4	12:04:40s -0:04:40 -
                -+Rule	sol88	1988	only	-	Jan	5	12:05:05s -0:05:05 -
                -+Rule	sol88	1988	only	-	Jan	6	12:05:30s -0:05:30 -
                -+Rule	sol88	1988	only	-	Jan	7	12:06:00s -0:06:00 -
                -+Rule	sol88	1988	only	-	Jan	8	12:06:25s -0:06:25 -
                -+Rule	sol88	1988	only	-	Jan	9	12:06:50s -0:06:50 -
                -+Rule	sol88	1988	only	-	Jan	10	12:07:15s -0:07:15 -
                -+Rule	sol88	1988	only	-	Jan	11	12:07:40s -0:07:40 -
                -+Rule	sol88	1988	only	-	Jan	12	12:08:05s -0:08:05 -
                -+Rule	sol88	1988	only	-	Jan	13	12:08:25s -0:08:25 -
                -+Rule	sol88	1988	only	-	Jan	14	12:08:50s -0:08:50 -
                -+Rule	sol88	1988	only	-	Jan	15	12:09:10s -0:09:10 -
                -+Rule	sol88	1988	only	-	Jan	16	12:09:30s -0:09:30 -
                -+Rule	sol88	1988	only	-	Jan	17	12:09:50s -0:09:50 -
                -+Rule	sol88	1988	only	-	Jan	18	12:10:10s -0:10:10 -
                -+Rule	sol88	1988	only	-	Jan	19	12:10:30s -0:10:30 -
                -+Rule	sol88	1988	only	-	Jan	20	12:10:50s -0:10:50 -
                -+Rule	sol88	1988	only	-	Jan	21	12:11:05s -0:11:05 -
                -+Rule	sol88	1988	only	-	Jan	22	12:11:25s -0:11:25 -
                -+Rule	sol88	1988	only	-	Jan	23	12:11:40s -0:11:40 -
                -+Rule	sol88	1988	only	-	Jan	24	12:11:55s -0:11:55 -
                -+Rule	sol88	1988	only	-	Jan	25	12:12:10s -0:12:10 -
                -+Rule	sol88	1988	only	-	Jan	26	12:12:25s -0:12:25 -
                -+Rule	sol88	1988	only	-	Jan	27	12:12:40s -0:12:40 -
                -+Rule	sol88	1988	only	-	Jan	28	12:12:50s -0:12:50 -
                -+Rule	sol88	1988	only	-	Jan	29	12:13:00s -0:13:00 -
                -+Rule	sol88	1988	only	-	Jan	30	12:13:10s -0:13:10 -
                -+Rule	sol88	1988	only	-	Jan	31	12:13:20s -0:13:20 -
                -+Rule	sol88	1988	only	-	Feb	1	12:13:30s -0:13:30 -
                -+Rule	sol88	1988	only	-	Feb	2	12:13:40s -0:13:40 -
                -+Rule	sol88	1988	only	-	Feb	3	12:13:45s -0:13:45 -
                -+Rule	sol88	1988	only	-	Feb	4	12:13:55s -0:13:55 -
                -+Rule	sol88	1988	only	-	Feb	5	12:14:00s -0:14:00 -
                -+Rule	sol88	1988	only	-	Feb	6	12:14:05s -0:14:05 -
                -+Rule	sol88	1988	only	-	Feb	7	12:14:10s -0:14:10 -
                -+Rule	sol88	1988	only	-	Feb	8	12:14:10s -0:14:10 -
                -+Rule	sol88	1988	only	-	Feb	9	12:14:15s -0:14:15 -
                -+Rule	sol88	1988	only	-	Feb	10	12:14:15s -0:14:15 -
                -+Rule	sol88	1988	only	-	Feb	11	12:14:15s -0:14:15 -
                -+Rule	sol88	1988	only	-	Feb	12	12:14:15s -0:14:15 -
                -+Rule	sol88	1988	only	-	Feb	13	12:14:15s -0:14:15 -
                -+Rule	sol88	1988	only	-	Feb	14	12:14:15s -0:14:15 -
                -+Rule	sol88	1988	only	-	Feb	15	12:14:10s -0:14:10 -
                -+Rule	sol88	1988	only	-	Feb	16	12:14:10s -0:14:10 -
                -+Rule	sol88	1988	only	-	Feb	17	12:14:05s -0:14:05 -
                -+Rule	sol88	1988	only	-	Feb	18	12:14:00s -0:14:00 -
                -+Rule	sol88	1988	only	-	Feb	19	12:13:55s -0:13:55 -
                -+Rule	sol88	1988	only	-	Feb	20	12:13:50s -0:13:50 -
                -+Rule	sol88	1988	only	-	Feb	21	12:13:45s -0:13:45 -
                -+Rule	sol88	1988	only	-	Feb	22	12:13:40s -0:13:40 -
                -+Rule	sol88	1988	only	-	Feb	23	12:13:30s -0:13:30 -
                -+Rule	sol88	1988	only	-	Feb	24	12:13:20s -0:13:20 -
                -+Rule	sol88	1988	only	-	Feb	25	12:13:15s -0:13:15 -
                -+Rule	sol88	1988	only	-	Feb	26	12:13:05s -0:13:05 -
                -+Rule	sol88	1988	only	-	Feb	27	12:12:55s -0:12:55 -
                -+Rule	sol88	1988	only	-	Feb	28	12:12:45s -0:12:45 -
                -+Rule	sol88	1988	only	-	Feb	29	12:12:30s -0:12:30 -
                -+Rule	sol88	1988	only	-	Mar	1	12:12:20s -0:12:20 -
                -+Rule	sol88	1988	only	-	Mar	2	12:12:10s -0:12:10 -
                -+Rule	sol88	1988	only	-	Mar	3	12:11:55s -0:11:55 -
                -+Rule	sol88	1988	only	-	Mar	4	12:11:45s -0:11:45 -
                -+Rule	sol88	1988	only	-	Mar	5	12:11:30s -0:11:30 -
                -+Rule	sol88	1988	only	-	Mar	6	12:11:15s -0:11:15 -
                -+Rule	sol88	1988	only	-	Mar	7	12:11:00s -0:11:00 -
                -+Rule	sol88	1988	only	-	Mar	8	12:10:45s -0:10:45 -
                -+Rule	sol88	1988	only	-	Mar	9	12:10:30s -0:10:30 -
                -+Rule	sol88	1988	only	-	Mar	10	12:10:15s -0:10:15 -
                -+Rule	sol88	1988	only	-	Mar	11	12:10:00s -0:10:00 -
                -+Rule	sol88	1988	only	-	Mar	12	12:09:45s -0:09:45 -
                -+Rule	sol88	1988	only	-	Mar	13	12:09:30s -0:09:30 -
                -+Rule	sol88	1988	only	-	Mar	14	12:09:10s -0:09:10 -
                -+Rule	sol88	1988	only	-	Mar	15	12:08:55s -0:08:55 -
                -+Rule	sol88	1988	only	-	Mar	16	12:08:40s -0:08:40 -
                -+Rule	sol88	1988	only	-	Mar	17	12:08:20s -0:08:20 -
                -+Rule	sol88	1988	only	-	Mar	18	12:08:05s -0:08:05 -
                -+Rule	sol88	1988	only	-	Mar	19	12:07:45s -0:07:45 -
                -+Rule	sol88	1988	only	-	Mar	20	12:07:30s -0:07:30 -
                -+Rule	sol88	1988	only	-	Mar	21	12:07:10s -0:07:10 -
                -+Rule	sol88	1988	only	-	Mar	22	12:06:50s -0:06:50 -
                -+Rule	sol88	1988	only	-	Mar	23	12:06:35s -0:06:35 -
                -+Rule	sol88	1988	only	-	Mar	24	12:06:15s -0:06:15 -
                -+Rule	sol88	1988	only	-	Mar	25	12:06:00s -0:06:00 -
                -+Rule	sol88	1988	only	-	Mar	26	12:05:40s -0:05:40 -
                -+Rule	sol88	1988	only	-	Mar	27	12:05:20s -0:05:20 -
                -+Rule	sol88	1988	only	-	Mar	28	12:05:05s -0:05:05 -
                -+Rule	sol88	1988	only	-	Mar	29	12:04:45s -0:04:45 -
                -+Rule	sol88	1988	only	-	Mar	30	12:04:25s -0:04:25 -
                -+Rule	sol88	1988	only	-	Mar	31	12:04:10s -0:04:10 -
                -+Rule	sol88	1988	only	-	Apr	1	12:03:50s -0:03:50 -
                -+Rule	sol88	1988	only	-	Apr	2	12:03:35s -0:03:35 -
                -+Rule	sol88	1988	only	-	Apr	3	12:03:15s -0:03:15 -
                -+Rule	sol88	1988	only	-	Apr	4	12:03:00s -0:03:00 -
                -+Rule	sol88	1988	only	-	Apr	5	12:02:40s -0:02:40 -
                -+Rule	sol88	1988	only	-	Apr	6	12:02:25s -0:02:25 -
                -+Rule	sol88	1988	only	-	Apr	7	12:02:05s -0:02:05 -
                -+Rule	sol88	1988	only	-	Apr	8	12:01:50s -0:01:50 -
                -+Rule	sol88	1988	only	-	Apr	9	12:01:35s -0:01:35 -
                -+Rule	sol88	1988	only	-	Apr	10	12:01:15s -0:01:15 -
                -+Rule	sol88	1988	only	-	Apr	11	12:01:00s -0:01:00 -
                -+Rule	sol88	1988	only	-	Apr	12	12:00:45s -0:00:45 -
                -+Rule	sol88	1988	only	-	Apr	13	12:00:30s -0:00:30 -
                -+Rule	sol88	1988	only	-	Apr	14	12:00:15s -0:00:15 -
                -+Rule	sol88	1988	only	-	Apr	15	12:00:00s 0:00:00 -
                -+Rule	sol88	1988	only	-	Apr	16	11:59:45s 0:00:15 -
                -+Rule	sol88	1988	only	-	Apr	17	11:59:30s 0:00:30 -
                -+Rule	sol88	1988	only	-	Apr	18	11:59:20s 0:00:40 -
                -+Rule	sol88	1988	only	-	Apr	19	11:59:05s 0:00:55 -
                -+Rule	sol88	1988	only	-	Apr	20	11:58:55s 0:01:05 -
                -+Rule	sol88	1988	only	-	Apr	21	11:58:40s 0:01:20 -
                -+Rule	sol88	1988	only	-	Apr	22	11:58:30s 0:01:30 -
                -+Rule	sol88	1988	only	-	Apr	23	11:58:15s 0:01:45 -
                -+Rule	sol88	1988	only	-	Apr	24	11:58:05s 0:01:55 -
                -+Rule	sol88	1988	only	-	Apr	25	11:57:55s 0:02:05 -
                -+Rule	sol88	1988	only	-	Apr	26	11:57:45s 0:02:15 -
                -+Rule	sol88	1988	only	-	Apr	27	11:57:35s 0:02:25 -
                -+Rule	sol88	1988	only	-	Apr	28	11:57:30s 0:02:30 -
                -+Rule	sol88	1988	only	-	Apr	29	11:57:20s 0:02:40 -
                -+Rule	sol88	1988	only	-	Apr	30	11:57:10s 0:02:50 -
                -+Rule	sol88	1988	only	-	May	1	11:57:05s 0:02:55 -
                -+Rule	sol88	1988	only	-	May	2	11:56:55s 0:03:05 -
                -+Rule	sol88	1988	only	-	May	3	11:56:50s 0:03:10 -
                -+Rule	sol88	1988	only	-	May	4	11:56:45s 0:03:15 -
                -+Rule	sol88	1988	only	-	May	5	11:56:40s 0:03:20 -
                -+Rule	sol88	1988	only	-	May	6	11:56:35s 0:03:25 -
                -+Rule	sol88	1988	only	-	May	7	11:56:30s 0:03:30 -
                -+Rule	sol88	1988	only	-	May	8	11:56:25s 0:03:35 -
                -+Rule	sol88	1988	only	-	May	9	11:56:25s 0:03:35 -
                -+Rule	sol88	1988	only	-	May	10	11:56:20s 0:03:40 -
                -+Rule	sol88	1988	only	-	May	11	11:56:20s 0:03:40 -
                -+Rule	sol88	1988	only	-	May	12	11:56:20s 0:03:40 -
                -+Rule	sol88	1988	only	-	May	13	11:56:20s 0:03:40 -
                -+Rule	sol88	1988	only	-	May	14	11:56:20s 0:03:40 -
                -+Rule	sol88	1988	only	-	May	15	11:56:20s 0:03:40 -
                -+Rule	sol88	1988	only	-	May	16	11:56:20s 0:03:40 -
                -+Rule	sol88	1988	only	-	May	17	11:56:20s 0:03:40 -
                -+Rule	sol88	1988	only	-	May	18	11:56:25s 0:03:35 -
                -+Rule	sol88	1988	only	-	May	19	11:56:25s 0:03:35 -
                -+Rule	sol88	1988	only	-	May	20	11:56:30s 0:03:30 -
                -+Rule	sol88	1988	only	-	May	21	11:56:35s 0:03:25 -
                -+Rule	sol88	1988	only	-	May	22	11:56:40s 0:03:20 -
                -+Rule	sol88	1988	only	-	May	23	11:56:45s 0:03:15 -
                -+Rule	sol88	1988	only	-	May	24	11:56:50s 0:03:10 -
                -+Rule	sol88	1988	only	-	May	25	11:56:55s 0:03:05 -
                -+Rule	sol88	1988	only	-	May	26	11:57:00s 0:03:00 -
                -+Rule	sol88	1988	only	-	May	27	11:57:05s 0:02:55 -
                -+Rule	sol88	1988	only	-	May	28	11:57:15s 0:02:45 -
                -+Rule	sol88	1988	only	-	May	29	11:57:20s 0:02:40 -
                -+Rule	sol88	1988	only	-	May	30	11:57:30s 0:02:30 -
                -+Rule	sol88	1988	only	-	May	31	11:57:40s 0:02:20 -
                -+Rule	sol88	1988	only	-	Jun	1	11:57:50s 0:02:10 -
                -+Rule	sol88	1988	only	-	Jun	2	11:57:55s 0:02:05 -
                -+Rule	sol88	1988	only	-	Jun	3	11:58:05s 0:01:55 -
                -+Rule	sol88	1988	only	-	Jun	4	11:58:15s 0:01:45 -
                -+Rule	sol88	1988	only	-	Jun	5	11:58:30s 0:01:30 -
                -+Rule	sol88	1988	only	-	Jun	6	11:58:40s 0:01:20 -
                -+Rule	sol88	1988	only	-	Jun	7	11:58:50s 0:01:10 -
                -+Rule	sol88	1988	only	-	Jun	8	11:59:00s 0:01:00 -
                -+Rule	sol88	1988	only	-	Jun	9	11:59:15s 0:00:45 -
                -+Rule	sol88	1988	only	-	Jun	10	11:59:25s 0:00:35 -
                -+Rule	sol88	1988	only	-	Jun	11	11:59:35s 0:00:25 -
                -+Rule	sol88	1988	only	-	Jun	12	11:59:50s 0:00:10 -
                -+Rule	sol88	1988	only	-	Jun	13	12:00:00s 0:00:00 -
                -+Rule	sol88	1988	only	-	Jun	14	12:00:15s -0:00:15 -
                -+Rule	sol88	1988	only	-	Jun	15	12:00:25s -0:00:25 -
                -+Rule	sol88	1988	only	-	Jun	16	12:00:40s -0:00:40 -
                -+Rule	sol88	1988	only	-	Jun	17	12:00:55s -0:00:55 -
                -+Rule	sol88	1988	only	-	Jun	18	12:01:05s -0:01:05 -
                -+Rule	sol88	1988	only	-	Jun	19	12:01:20s -0:01:20 -
                -+Rule	sol88	1988	only	-	Jun	20	12:01:30s -0:01:30 -
                -+Rule	sol88	1988	only	-	Jun	21	12:01:45s -0:01:45 -
                -+Rule	sol88	1988	only	-	Jun	22	12:02:00s -0:02:00 -
                -+Rule	sol88	1988	only	-	Jun	23	12:02:10s -0:02:10 -
                -+Rule	sol88	1988	only	-	Jun	24	12:02:25s -0:02:25 -
                -+Rule	sol88	1988	only	-	Jun	25	12:02:35s -0:02:35 -
                -+Rule	sol88	1988	only	-	Jun	26	12:02:50s -0:02:50 -
                -+Rule	sol88	1988	only	-	Jun	27	12:03:00s -0:03:00 -
                -+Rule	sol88	1988	only	-	Jun	28	12:03:15s -0:03:15 -
                -+Rule	sol88	1988	only	-	Jun	29	12:03:25s -0:03:25 -
                -+Rule	sol88	1988	only	-	Jun	30	12:03:40s -0:03:40 -
                -+Rule	sol88	1988	only	-	Jul	1	12:03:50s -0:03:50 -
                -+Rule	sol88	1988	only	-	Jul	2	12:04:00s -0:04:00 -
                -+Rule	sol88	1988	only	-	Jul	3	12:04:10s -0:04:10 -
                -+Rule	sol88	1988	only	-	Jul	4	12:04:25s -0:04:25 -
                -+Rule	sol88	1988	only	-	Jul	5	12:04:35s -0:04:35 -
                -+Rule	sol88	1988	only	-	Jul	6	12:04:45s -0:04:45 -
                -+Rule	sol88	1988	only	-	Jul	7	12:04:55s -0:04:55 -
                -+Rule	sol88	1988	only	-	Jul	8	12:05:05s -0:05:05 -
                -+Rule	sol88	1988	only	-	Jul	9	12:05:10s -0:05:10 -
                -+Rule	sol88	1988	only	-	Jul	10	12:05:20s -0:05:20 -
                -+Rule	sol88	1988	only	-	Jul	11	12:05:30s -0:05:30 -
                -+Rule	sol88	1988	only	-	Jul	12	12:05:35s -0:05:35 -
                -+Rule	sol88	1988	only	-	Jul	13	12:05:45s -0:05:45 -
                -+Rule	sol88	1988	only	-	Jul	14	12:05:50s -0:05:50 -
                -+Rule	sol88	1988	only	-	Jul	15	12:05:55s -0:05:55 -
                -+Rule	sol88	1988	only	-	Jul	16	12:06:00s -0:06:00 -
                -+Rule	sol88	1988	only	-	Jul	17	12:06:05s -0:06:05 -
                -+Rule	sol88	1988	only	-	Jul	18	12:06:10s -0:06:10 -
                -+Rule	sol88	1988	only	-	Jul	19	12:06:15s -0:06:15 -
                -+Rule	sol88	1988	only	-	Jul	20	12:06:20s -0:06:20 -
                -+Rule	sol88	1988	only	-	Jul	21	12:06:25s -0:06:25 -
                -+Rule	sol88	1988	only	-	Jul	22	12:06:25s -0:06:25 -
                -+Rule	sol88	1988	only	-	Jul	23	12:06:25s -0:06:25 -
                -+Rule	sol88	1988	only	-	Jul	24	12:06:30s -0:06:30 -
                -+Rule	sol88	1988	only	-	Jul	25	12:06:30s -0:06:30 -
                -+Rule	sol88	1988	only	-	Jul	26	12:06:30s -0:06:30 -
                -+Rule	sol88	1988	only	-	Jul	27	12:06:30s -0:06:30 -
                -+Rule	sol88	1988	only	-	Jul	28	12:06:30s -0:06:30 -
                -+Rule	sol88	1988	only	-	Jul	29	12:06:25s -0:06:25 -
                -+Rule	sol88	1988	only	-	Jul	30	12:06:25s -0:06:25 -
                -+Rule	sol88	1988	only	-	Jul	31	12:06:20s -0:06:20 -
                -+Rule	sol88	1988	only	-	Aug	1	12:06:15s -0:06:15 -
                -+Rule	sol88	1988	only	-	Aug	2	12:06:15s -0:06:15 -
                -+Rule	sol88	1988	only	-	Aug	3	12:06:10s -0:06:10 -
                -+Rule	sol88	1988	only	-	Aug	4	12:06:05s -0:06:05 -
                -+Rule	sol88	1988	only	-	Aug	5	12:05:55s -0:05:55 -
                -+Rule	sol88	1988	only	-	Aug	6	12:05:50s -0:05:50 -
                -+Rule	sol88	1988	only	-	Aug	7	12:05:45s -0:05:45 -
                -+Rule	sol88	1988	only	-	Aug	8	12:05:35s -0:05:35 -
                -+Rule	sol88	1988	only	-	Aug	9	12:05:25s -0:05:25 -
                -+Rule	sol88	1988	only	-	Aug	10	12:05:20s -0:05:20 -
                -+Rule	sol88	1988	only	-	Aug	11	12:05:10s -0:05:10 -
                -+Rule	sol88	1988	only	-	Aug	12	12:05:00s -0:05:00 -
                -+Rule	sol88	1988	only	-	Aug	13	12:04:50s -0:04:50 -
                -+Rule	sol88	1988	only	-	Aug	14	12:04:35s -0:04:35 -
                -+Rule	sol88	1988	only	-	Aug	15	12:04:25s -0:04:25 -
                -+Rule	sol88	1988	only	-	Aug	16	12:04:15s -0:04:15 -
                -+Rule	sol88	1988	only	-	Aug	17	12:04:00s -0:04:00 -
                -+Rule	sol88	1988	only	-	Aug	18	12:03:50s -0:03:50 -
                -+Rule	sol88	1988	only	-	Aug	19	12:03:35s -0:03:35 -
                -+Rule	sol88	1988	only	-	Aug	20	12:03:20s -0:03:20 -
                -+Rule	sol88	1988	only	-	Aug	21	12:03:05s -0:03:05 -
                -+Rule	sol88	1988	only	-	Aug	22	12:02:50s -0:02:50 -
                -+Rule	sol88	1988	only	-	Aug	23	12:02:35s -0:02:35 -
                -+Rule	sol88	1988	only	-	Aug	24	12:02:20s -0:02:20 -
                -+Rule	sol88	1988	only	-	Aug	25	12:02:00s -0:02:00 -
                -+Rule	sol88	1988	only	-	Aug	26	12:01:45s -0:01:45 -
                -+Rule	sol88	1988	only	-	Aug	27	12:01:30s -0:01:30 -
                -+Rule	sol88	1988	only	-	Aug	28	12:01:10s -0:01:10 -
                -+Rule	sol88	1988	only	-	Aug	29	12:00:50s -0:00:50 -
                -+Rule	sol88	1988	only	-	Aug	30	12:00:35s -0:00:35 -
                -+Rule	sol88	1988	only	-	Aug	31	12:00:15s -0:00:15 -
                -+Rule	sol88	1988	only	-	Sep	1	11:59:55s 0:00:05 -
                -+Rule	sol88	1988	only	-	Sep	2	11:59:35s 0:00:25 -
                -+Rule	sol88	1988	only	-	Sep	3	11:59:20s 0:00:40 -
                -+Rule	sol88	1988	only	-	Sep	4	11:59:00s 0:01:00 -
                -+Rule	sol88	1988	only	-	Sep	5	11:58:40s 0:01:20 -
                -+Rule	sol88	1988	only	-	Sep	6	11:58:20s 0:01:40 -
                -+Rule	sol88	1988	only	-	Sep	7	11:58:00s 0:02:00 -
                -+Rule	sol88	1988	only	-	Sep	8	11:57:35s 0:02:25 -
                -+Rule	sol88	1988	only	-	Sep	9	11:57:15s 0:02:45 -
                -+Rule	sol88	1988	only	-	Sep	10	11:56:55s 0:03:05 -
                -+Rule	sol88	1988	only	-	Sep	11	11:56:35s 0:03:25 -
                -+Rule	sol88	1988	only	-	Sep	12	11:56:15s 0:03:45 -
                -+Rule	sol88	1988	only	-	Sep	13	11:55:50s 0:04:10 -
                -+Rule	sol88	1988	only	-	Sep	14	11:55:30s 0:04:30 -
                -+Rule	sol88	1988	only	-	Sep	15	11:55:10s 0:04:50 -
                -+Rule	sol88	1988	only	-	Sep	16	11:54:50s 0:05:10 -
                -+Rule	sol88	1988	only	-	Sep	17	11:54:25s 0:05:35 -
                -+Rule	sol88	1988	only	-	Sep	18	11:54:05s 0:05:55 -
                -+Rule	sol88	1988	only	-	Sep	19	11:53:45s 0:06:15 -
                -+Rule	sol88	1988	only	-	Sep	20	11:53:25s 0:06:35 -
                -+Rule	sol88	1988	only	-	Sep	21	11:53:00s 0:07:00 -
                -+Rule	sol88	1988	only	-	Sep	22	11:52:40s 0:07:20 -
                -+Rule	sol88	1988	only	-	Sep	23	11:52:20s 0:07:40 -
                -+Rule	sol88	1988	only	-	Sep	24	11:52:00s 0:08:00 -
                -+Rule	sol88	1988	only	-	Sep	25	11:51:40s 0:08:20 -
                -+Rule	sol88	1988	only	-	Sep	26	11:51:15s 0:08:45 -
                -+Rule	sol88	1988	only	-	Sep	27	11:50:55s 0:09:05 -
                -+Rule	sol88	1988	only	-	Sep	28	11:50:35s 0:09:25 -
                -+Rule	sol88	1988	only	-	Sep	29	11:50:15s 0:09:45 -
                -+Rule	sol88	1988	only	-	Sep	30	11:49:55s 0:10:05 -
                -+Rule	sol88	1988	only	-	Oct	1	11:49:35s 0:10:25 -
                -+Rule	sol88	1988	only	-	Oct	2	11:49:20s 0:10:40 -
                -+Rule	sol88	1988	only	-	Oct	3	11:49:00s 0:11:00 -
                -+Rule	sol88	1988	only	-	Oct	4	11:48:40s 0:11:20 -
                -+Rule	sol88	1988	only	-	Oct	5	11:48:25s 0:11:35 -
                -+Rule	sol88	1988	only	-	Oct	6	11:48:05s 0:11:55 -
                -+Rule	sol88	1988	only	-	Oct	7	11:47:50s 0:12:10 -
                -+Rule	sol88	1988	only	-	Oct	8	11:47:30s 0:12:30 -
                -+Rule	sol88	1988	only	-	Oct	9	11:47:15s 0:12:45 -
                -+Rule	sol88	1988	only	-	Oct	10	11:47:00s 0:13:00 -
                -+Rule	sol88	1988	only	-	Oct	11	11:46:45s 0:13:15 -
                -+Rule	sol88	1988	only	-	Oct	12	11:46:30s 0:13:30 -
                -+Rule	sol88	1988	only	-	Oct	13	11:46:15s 0:13:45 -
                -+Rule	sol88	1988	only	-	Oct	14	11:46:00s 0:14:00 -
                -+Rule	sol88	1988	only	-	Oct	15	11:45:45s 0:14:15 -
                -+Rule	sol88	1988	only	-	Oct	16	11:45:35s 0:14:25 -
                -+Rule	sol88	1988	only	-	Oct	17	11:45:20s 0:14:40 -
                -+Rule	sol88	1988	only	-	Oct	18	11:45:10s 0:14:50 -
                -+Rule	sol88	1988	only	-	Oct	19	11:45:00s 0:15:00 -
                -+Rule	sol88	1988	only	-	Oct	20	11:44:45s 0:15:15 -
                -+Rule	sol88	1988	only	-	Oct	21	11:44:40s 0:15:20 -
                -+Rule	sol88	1988	only	-	Oct	22	11:44:30s 0:15:30 -
                -+Rule	sol88	1988	only	-	Oct	23	11:44:20s 0:15:40 -
                -+Rule	sol88	1988	only	-	Oct	24	11:44:10s 0:15:50 -
                -+Rule	sol88	1988	only	-	Oct	25	11:44:05s 0:15:55 -
                -+Rule	sol88	1988	only	-	Oct	26	11:44:00s 0:16:00 -
                -+Rule	sol88	1988	only	-	Oct	27	11:43:55s 0:16:05 -
                -+Rule	sol88	1988	only	-	Oct	28	11:43:50s 0:16:10 -
                -+Rule	sol88	1988	only	-	Oct	29	11:43:45s 0:16:15 -
                -+Rule	sol88	1988	only	-	Oct	30	11:43:40s 0:16:20 -
                -+Rule	sol88	1988	only	-	Oct	31	11:43:40s 0:16:20 -
                -+Rule	sol88	1988	only	-	Nov	1	11:43:35s 0:16:25 -
                -+Rule	sol88	1988	only	-	Nov	2	11:43:35s 0:16:25 -
                -+Rule	sol88	1988	only	-	Nov	3	11:43:35s 0:16:25 -
                -+Rule	sol88	1988	only	-	Nov	4	11:43:35s 0:16:25 -
                -+Rule	sol88	1988	only	-	Nov	5	11:43:40s 0:16:20 -
                -+Rule	sol88	1988	only	-	Nov	6	11:43:40s 0:16:20 -
                -+Rule	sol88	1988	only	-	Nov	7	11:43:45s 0:16:15 -
                -+Rule	sol88	1988	only	-	Nov	8	11:43:45s 0:16:15 -
                -+Rule	sol88	1988	only	-	Nov	9	11:43:50s 0:16:10 -
                -+Rule	sol88	1988	only	-	Nov	10	11:44:00s 0:16:00 -
                -+Rule	sol88	1988	only	-	Nov	11	11:44:05s 0:15:55 -
                -+Rule	sol88	1988	only	-	Nov	12	11:44:10s 0:15:50 -
                -+Rule	sol88	1988	only	-	Nov	13	11:44:20s 0:15:40 -
                -+Rule	sol88	1988	only	-	Nov	14	11:44:30s 0:15:30 -
                -+Rule	sol88	1988	only	-	Nov	15	11:44:40s 0:15:20 -
                -+Rule	sol88	1988	only	-	Nov	16	11:44:50s 0:15:10 -
                -+Rule	sol88	1988	only	-	Nov	17	11:45:00s 0:15:00 -
                -+Rule	sol88	1988	only	-	Nov	18	11:45:15s 0:14:45 -
                -+Rule	sol88	1988	only	-	Nov	19	11:45:25s 0:14:35 -
                -+Rule	sol88	1988	only	-	Nov	20	11:45:40s 0:14:20 -
                -+Rule	sol88	1988	only	-	Nov	21	11:45:55s 0:14:05 -
                -+Rule	sol88	1988	only	-	Nov	22	11:46:10s 0:13:50 -
                -+Rule	sol88	1988	only	-	Nov	23	11:46:30s 0:13:30 -
                -+Rule	sol88	1988	only	-	Nov	24	11:46:45s 0:13:15 -
                -+Rule	sol88	1988	only	-	Nov	25	11:47:05s 0:12:55 -
                -+Rule	sol88	1988	only	-	Nov	26	11:47:20s 0:12:40 -
                -+Rule	sol88	1988	only	-	Nov	27	11:47:40s 0:12:20 -
                -+Rule	sol88	1988	only	-	Nov	28	11:48:00s 0:12:00 -
                -+Rule	sol88	1988	only	-	Nov	29	11:48:25s 0:11:35 -
                -+Rule	sol88	1988	only	-	Nov	30	11:48:45s 0:11:15 -
                -+Rule	sol88	1988	only	-	Dec	1	11:49:05s 0:10:55 -
                -+Rule	sol88	1988	only	-	Dec	2	11:49:30s 0:10:30 -
                -+Rule	sol88	1988	only	-	Dec	3	11:49:55s 0:10:05 -
                -+Rule	sol88	1988	only	-	Dec	4	11:50:15s 0:09:45 -
                -+Rule	sol88	1988	only	-	Dec	5	11:50:40s 0:09:20 -
                -+Rule	sol88	1988	only	-	Dec	6	11:51:05s 0:08:55 -
                -+Rule	sol88	1988	only	-	Dec	7	11:51:35s 0:08:25 -
                -+Rule	sol88	1988	only	-	Dec	8	11:52:00s 0:08:00 -
                -+Rule	sol88	1988	only	-	Dec	9	11:52:25s 0:07:35 -
                -+Rule	sol88	1988	only	-	Dec	10	11:52:55s 0:07:05 -
                -+Rule	sol88	1988	only	-	Dec	11	11:53:20s 0:06:40 -
                -+Rule	sol88	1988	only	-	Dec	12	11:53:50s 0:06:10 -
                -+Rule	sol88	1988	only	-	Dec	13	11:54:15s 0:05:45 -
                -+Rule	sol88	1988	only	-	Dec	14	11:54:45s 0:05:15 -
                -+Rule	sol88	1988	only	-	Dec	15	11:55:15s 0:04:45 -
                -+Rule	sol88	1988	only	-	Dec	16	11:55:45s 0:04:15 -
                -+Rule	sol88	1988	only	-	Dec	17	11:56:15s 0:03:45 -
                -+Rule	sol88	1988	only	-	Dec	18	11:56:40s 0:03:20 -
                -+Rule	sol88	1988	only	-	Dec	19	11:57:10s 0:02:50 -
                -+Rule	sol88	1988	only	-	Dec	20	11:57:40s 0:02:20 -
                -+Rule	sol88	1988	only	-	Dec	21	11:58:10s 0:01:50 -
                -+Rule	sol88	1988	only	-	Dec	22	11:58:40s 0:01:20 -
                -+Rule	sol88	1988	only	-	Dec	23	11:59:10s 0:00:50 -
                -+Rule	sol88	1988	only	-	Dec	24	11:59:40s 0:00:20 -
                -+Rule	sol88	1988	only	-	Dec	25	12:00:10s -0:00:10 -
                -+Rule	sol88	1988	only	-	Dec	26	12:00:40s -0:00:40 -
                -+Rule	sol88	1988	only	-	Dec	27	12:01:10s -0:01:10 -
                -+Rule	sol88	1988	only	-	Dec	28	12:01:40s -0:01:40 -
                -+Rule	sol88	1988	only	-	Dec	29	12:02:10s -0:02:10 -
                -+Rule	sol88	1988	only	-	Dec	30	12:02:35s -0:02:35 -
                -+Rule	sol88	1988	only	-	Dec	31	12:03:05s -0:03:05 -
                -+
                -+# Riyadh is at about 46 degrees 46 minutes East:  3 hrs, 7 mins, 4 secs
                -+# Before and after 1988, we'll operate on local mean solar time.
                -+
                -+# Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
                -+Zone	Asia/Riyadh88	3:07:04	-		zzz	1988
                -+			3:07:04	sol88		zzz	1989
                -+			3:07:04	-		zzz
                -+# For backward compatibility...
                -+Link	Asia/Riyadh88	Mideast/Riyadh88
                -Index: examples/tz/solar89
                -===================================================================
                ---- examples/tz/solar89	(revision 0)
                -+++ examples/tz/solar89	(revision 0)
                -@@ -0,0 +1,396 @@
                -+# 
                -+# @(#)solar89	8.2
                -+# This file is in the public domain, so clarified as of
                -+# 2009-05-17 by Arthur David Olson.
                -+
                -+# Apparent noon times below are for Riyadh; they're a bit off for other places.
                -+# Times were computed using a formula provided by the U. S. Naval Observatory:
                -+#	eqt = -105.8 * sin(l) + 596.2 * sin(2 * l) + 4.4 * sin(3 * l)
                -+#		-12.7 * sin(4 * l) - 429.0 * cos(l) - 2.1 * cos (2 * l)
                -+#		+ 19.3 * cos(3 * l);
                -+# where l is the "mean longitude of the Sun" given by
                -+#	l = 279.642 degrees + 0.985647 * d
                -+# and d is the interval in days from January 0, 0 hours Universal Time
                -+# (equaling the day of the year plus the fraction of a day from zero hours).
                -+# The accuracy of the formula is plus or minus three seconds.
                -+#
                -+# Rounding to the nearest five seconds results in fewer than
                -+# 256 different "time types"--a limit that's faced because time types are
                -+# stored on disk as unsigned chars.
                -+
                -+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
                -+Rule	sol89	1989	only	-	Jan	1	12:03:35s -0:03:35 -
                -+Rule	sol89	1989	only	-	Jan	2	12:04:05s -0:04:05 -
                -+Rule	sol89	1989	only	-	Jan	3	12:04:30s -0:04:30 -
                -+Rule	sol89	1989	only	-	Jan	4	12:05:00s -0:05:00 -
                -+Rule	sol89	1989	only	-	Jan	5	12:05:25s -0:05:25 -
                -+Rule	sol89	1989	only	-	Jan	6	12:05:50s -0:05:50 -
                -+Rule	sol89	1989	only	-	Jan	7	12:06:15s -0:06:15 -
                -+Rule	sol89	1989	only	-	Jan	8	12:06:45s -0:06:45 -
                -+Rule	sol89	1989	only	-	Jan	9	12:07:10s -0:07:10 -
                -+Rule	sol89	1989	only	-	Jan	10	12:07:35s -0:07:35 -
                -+Rule	sol89	1989	only	-	Jan	11	12:07:55s -0:07:55 -
                -+Rule	sol89	1989	only	-	Jan	12	12:08:20s -0:08:20 -
                -+Rule	sol89	1989	only	-	Jan	13	12:08:45s -0:08:45 -
                -+Rule	sol89	1989	only	-	Jan	14	12:09:05s -0:09:05 -
                -+Rule	sol89	1989	only	-	Jan	15	12:09:25s -0:09:25 -
                -+Rule	sol89	1989	only	-	Jan	16	12:09:45s -0:09:45 -
                -+Rule	sol89	1989	only	-	Jan	17	12:10:05s -0:10:05 -
                -+Rule	sol89	1989	only	-	Jan	18	12:10:25s -0:10:25 -
                -+Rule	sol89	1989	only	-	Jan	19	12:10:45s -0:10:45 -
                -+Rule	sol89	1989	only	-	Jan	20	12:11:05s -0:11:05 -
                -+Rule	sol89	1989	only	-	Jan	21	12:11:20s -0:11:20 -
                -+Rule	sol89	1989	only	-	Jan	22	12:11:35s -0:11:35 -
                -+Rule	sol89	1989	only	-	Jan	23	12:11:55s -0:11:55 -
                -+Rule	sol89	1989	only	-	Jan	24	12:12:10s -0:12:10 -
                -+Rule	sol89	1989	only	-	Jan	25	12:12:20s -0:12:20 -
                -+Rule	sol89	1989	only	-	Jan	26	12:12:35s -0:12:35 -
                -+Rule	sol89	1989	only	-	Jan	27	12:12:50s -0:12:50 -
                -+Rule	sol89	1989	only	-	Jan	28	12:13:00s -0:13:00 -
                -+Rule	sol89	1989	only	-	Jan	29	12:13:10s -0:13:10 -
                -+Rule	sol89	1989	only	-	Jan	30	12:13:20s -0:13:20 -
                -+Rule	sol89	1989	only	-	Jan	31	12:13:30s -0:13:30 -
                -+Rule	sol89	1989	only	-	Feb	1	12:13:40s -0:13:40 -
                -+Rule	sol89	1989	only	-	Feb	2	12:13:45s -0:13:45 -
                -+Rule	sol89	1989	only	-	Feb	3	12:13:55s -0:13:55 -
                -+Rule	sol89	1989	only	-	Feb	4	12:14:00s -0:14:00 -
                -+Rule	sol89	1989	only	-	Feb	5	12:14:05s -0:14:05 -
                -+Rule	sol89	1989	only	-	Feb	6	12:14:10s -0:14:10 -
                -+Rule	sol89	1989	only	-	Feb	7	12:14:10s -0:14:10 -
                -+Rule	sol89	1989	only	-	Feb	8	12:14:15s -0:14:15 -
                -+Rule	sol89	1989	only	-	Feb	9	12:14:15s -0:14:15 -
                -+Rule	sol89	1989	only	-	Feb	10	12:14:20s -0:14:20 -
                -+Rule	sol89	1989	only	-	Feb	11	12:14:20s -0:14:20 -
                -+Rule	sol89	1989	only	-	Feb	12	12:14:20s -0:14:20 -
                -+Rule	sol89	1989	only	-	Feb	13	12:14:15s -0:14:15 -
                -+Rule	sol89	1989	only	-	Feb	14	12:14:15s -0:14:15 -
                -+Rule	sol89	1989	only	-	Feb	15	12:14:10s -0:14:10 -
                -+Rule	sol89	1989	only	-	Feb	16	12:14:10s -0:14:10 -
                -+Rule	sol89	1989	only	-	Feb	17	12:14:05s -0:14:05 -
                -+Rule	sol89	1989	only	-	Feb	18	12:14:00s -0:14:00 -
                -+Rule	sol89	1989	only	-	Feb	19	12:13:55s -0:13:55 -
                -+Rule	sol89	1989	only	-	Feb	20	12:13:50s -0:13:50 -
                -+Rule	sol89	1989	only	-	Feb	21	12:13:40s -0:13:40 -
                -+Rule	sol89	1989	only	-	Feb	22	12:13:35s -0:13:35 -
                -+Rule	sol89	1989	only	-	Feb	23	12:13:25s -0:13:25 -
                -+Rule	sol89	1989	only	-	Feb	24	12:13:15s -0:13:15 -
                -+Rule	sol89	1989	only	-	Feb	25	12:13:05s -0:13:05 -
                -+Rule	sol89	1989	only	-	Feb	26	12:12:55s -0:12:55 -
                -+Rule	sol89	1989	only	-	Feb	27	12:12:45s -0:12:45 -
                -+Rule	sol89	1989	only	-	Feb	28	12:12:35s -0:12:35 -
                -+Rule	sol89	1989	only	-	Mar	1	12:12:25s -0:12:25 -
                -+Rule	sol89	1989	only	-	Mar	2	12:12:10s -0:12:10 -
                -+Rule	sol89	1989	only	-	Mar	3	12:12:00s -0:12:00 -
                -+Rule	sol89	1989	only	-	Mar	4	12:11:45s -0:11:45 -
                -+Rule	sol89	1989	only	-	Mar	5	12:11:35s -0:11:35 -
                -+Rule	sol89	1989	only	-	Mar	6	12:11:20s -0:11:20 -
                -+Rule	sol89	1989	only	-	Mar	7	12:11:05s -0:11:05 -
                -+Rule	sol89	1989	only	-	Mar	8	12:10:50s -0:10:50 -
                -+Rule	sol89	1989	only	-	Mar	9	12:10:35s -0:10:35 -
                -+Rule	sol89	1989	only	-	Mar	10	12:10:20s -0:10:20 -
                -+Rule	sol89	1989	only	-	Mar	11	12:10:05s -0:10:05 -
                -+Rule	sol89	1989	only	-	Mar	12	12:09:50s -0:09:50 -
                -+Rule	sol89	1989	only	-	Mar	13	12:09:30s -0:09:30 -
                -+Rule	sol89	1989	only	-	Mar	14	12:09:15s -0:09:15 -
                -+Rule	sol89	1989	only	-	Mar	15	12:09:00s -0:09:00 -
                -+Rule	sol89	1989	only	-	Mar	16	12:08:40s -0:08:40 -
                -+Rule	sol89	1989	only	-	Mar	17	12:08:25s -0:08:25 -
                -+Rule	sol89	1989	only	-	Mar	18	12:08:05s -0:08:05 -
                -+Rule	sol89	1989	only	-	Mar	19	12:07:50s -0:07:50 -
                -+Rule	sol89	1989	only	-	Mar	20	12:07:30s -0:07:30 -
                -+Rule	sol89	1989	only	-	Mar	21	12:07:15s -0:07:15 -
                -+Rule	sol89	1989	only	-	Mar	22	12:06:55s -0:06:55 -
                -+Rule	sol89	1989	only	-	Mar	23	12:06:35s -0:06:35 -
                -+Rule	sol89	1989	only	-	Mar	24	12:06:20s -0:06:20 -
                -+Rule	sol89	1989	only	-	Mar	25	12:06:00s -0:06:00 -
                -+Rule	sol89	1989	only	-	Mar	26	12:05:40s -0:05:40 -
                -+Rule	sol89	1989	only	-	Mar	27	12:05:25s -0:05:25 -
                -+Rule	sol89	1989	only	-	Mar	28	12:05:05s -0:05:05 -
                -+Rule	sol89	1989	only	-	Mar	29	12:04:50s -0:04:50 -
                -+Rule	sol89	1989	only	-	Mar	30	12:04:30s -0:04:30 -
                -+Rule	sol89	1989	only	-	Mar	31	12:04:10s -0:04:10 -
                -+Rule	sol89	1989	only	-	Apr	1	12:03:55s -0:03:55 -
                -+Rule	sol89	1989	only	-	Apr	2	12:03:35s -0:03:35 -
                -+Rule	sol89	1989	only	-	Apr	3	12:03:20s -0:03:20 -
                -+Rule	sol89	1989	only	-	Apr	4	12:03:00s -0:03:00 -
                -+Rule	sol89	1989	only	-	Apr	5	12:02:45s -0:02:45 -
                -+Rule	sol89	1989	only	-	Apr	6	12:02:25s -0:02:25 -
                -+Rule	sol89	1989	only	-	Apr	7	12:02:10s -0:02:10 -
                -+Rule	sol89	1989	only	-	Apr	8	12:01:50s -0:01:50 -
                -+Rule	sol89	1989	only	-	Apr	9	12:01:35s -0:01:35 -
                -+Rule	sol89	1989	only	-	Apr	10	12:01:20s -0:01:20 -
                -+Rule	sol89	1989	only	-	Apr	11	12:01:05s -0:01:05 -
                -+Rule	sol89	1989	only	-	Apr	12	12:00:50s -0:00:50 -
                -+Rule	sol89	1989	only	-	Apr	13	12:00:35s -0:00:35 -
                -+Rule	sol89	1989	only	-	Apr	14	12:00:20s -0:00:20 -
                -+Rule	sol89	1989	only	-	Apr	15	12:00:05s -0:00:05 -
                -+Rule	sol89	1989	only	-	Apr	16	11:59:50s 0:00:10 -
                -+Rule	sol89	1989	only	-	Apr	17	11:59:35s 0:00:25 -
                -+Rule	sol89	1989	only	-	Apr	18	11:59:20s 0:00:40 -
                -+Rule	sol89	1989	only	-	Apr	19	11:59:10s 0:00:50 -
                -+Rule	sol89	1989	only	-	Apr	20	11:58:55s 0:01:05 -
                -+Rule	sol89	1989	only	-	Apr	21	11:58:45s 0:01:15 -
                -+Rule	sol89	1989	only	-	Apr	22	11:58:30s 0:01:30 -
                -+Rule	sol89	1989	only	-	Apr	23	11:58:20s 0:01:40 -
                -+Rule	sol89	1989	only	-	Apr	24	11:58:10s 0:01:50 -
                -+Rule	sol89	1989	only	-	Apr	25	11:58:00s 0:02:00 -
                -+Rule	sol89	1989	only	-	Apr	26	11:57:50s 0:02:10 -
                -+Rule	sol89	1989	only	-	Apr	27	11:57:40s 0:02:20 -
                -+Rule	sol89	1989	only	-	Apr	28	11:57:30s 0:02:30 -
                -+Rule	sol89	1989	only	-	Apr	29	11:57:20s 0:02:40 -
                -+Rule	sol89	1989	only	-	Apr	30	11:57:15s 0:02:45 -
                -+Rule	sol89	1989	only	-	May	1	11:57:05s 0:02:55 -
                -+Rule	sol89	1989	only	-	May	2	11:57:00s 0:03:00 -
                -+Rule	sol89	1989	only	-	May	3	11:56:50s 0:03:10 -
                -+Rule	sol89	1989	only	-	May	4	11:56:45s 0:03:15 -
                -+Rule	sol89	1989	only	-	May	5	11:56:40s 0:03:20 -
                -+Rule	sol89	1989	only	-	May	6	11:56:35s 0:03:25 -
                -+Rule	sol89	1989	only	-	May	7	11:56:30s 0:03:30 -
                -+Rule	sol89	1989	only	-	May	8	11:56:30s 0:03:30 -
                -+Rule	sol89	1989	only	-	May	9	11:56:25s 0:03:35 -
                -+Rule	sol89	1989	only	-	May	10	11:56:25s 0:03:35 -
                -+Rule	sol89	1989	only	-	May	11	11:56:20s 0:03:40 -
                -+Rule	sol89	1989	only	-	May	12	11:56:20s 0:03:40 -
                -+Rule	sol89	1989	only	-	May	13	11:56:20s 0:03:40 -
                -+Rule	sol89	1989	only	-	May	14	11:56:20s 0:03:40 -
                -+Rule	sol89	1989	only	-	May	15	11:56:20s 0:03:40 -
                -+Rule	sol89	1989	only	-	May	16	11:56:20s 0:03:40 -
                -+Rule	sol89	1989	only	-	May	17	11:56:20s 0:03:40 -
                -+Rule	sol89	1989	only	-	May	18	11:56:25s 0:03:35 -
                -+Rule	sol89	1989	only	-	May	19	11:56:25s 0:03:35 -
                -+Rule	sol89	1989	only	-	May	20	11:56:30s 0:03:30 -
                -+Rule	sol89	1989	only	-	May	21	11:56:35s 0:03:25 -
                -+Rule	sol89	1989	only	-	May	22	11:56:35s 0:03:25 -
                -+Rule	sol89	1989	only	-	May	23	11:56:40s 0:03:20 -
                -+Rule	sol89	1989	only	-	May	24	11:56:45s 0:03:15 -
                -+Rule	sol89	1989	only	-	May	25	11:56:55s 0:03:05 -
                -+Rule	sol89	1989	only	-	May	26	11:57:00s 0:03:00 -
                -+Rule	sol89	1989	only	-	May	27	11:57:05s 0:02:55 -
                -+Rule	sol89	1989	only	-	May	28	11:57:15s 0:02:45 -
                -+Rule	sol89	1989	only	-	May	29	11:57:20s 0:02:40 -
                -+Rule	sol89	1989	only	-	May	30	11:57:30s 0:02:30 -
                -+Rule	sol89	1989	only	-	May	31	11:57:35s 0:02:25 -
                -+Rule	sol89	1989	only	-	Jun	1	11:57:45s 0:02:15 -
                -+Rule	sol89	1989	only	-	Jun	2	11:57:55s 0:02:05 -
                -+Rule	sol89	1989	only	-	Jun	3	11:58:05s 0:01:55 -
                -+Rule	sol89	1989	only	-	Jun	4	11:58:15s 0:01:45 -
                -+Rule	sol89	1989	only	-	Jun	5	11:58:25s 0:01:35 -
                -+Rule	sol89	1989	only	-	Jun	6	11:58:35s 0:01:25 -
                -+Rule	sol89	1989	only	-	Jun	7	11:58:45s 0:01:15 -
                -+Rule	sol89	1989	only	-	Jun	8	11:59:00s 0:01:00 -
                -+Rule	sol89	1989	only	-	Jun	9	11:59:10s 0:00:50 -
                -+Rule	sol89	1989	only	-	Jun	10	11:59:20s 0:00:40 -
                -+Rule	sol89	1989	only	-	Jun	11	11:59:35s 0:00:25 -
                -+Rule	sol89	1989	only	-	Jun	12	11:59:45s 0:00:15 -
                -+Rule	sol89	1989	only	-	Jun	13	12:00:00s 0:00:00 -
                -+Rule	sol89	1989	only	-	Jun	14	12:00:10s -0:00:10 -
                -+Rule	sol89	1989	only	-	Jun	15	12:00:25s -0:00:25 -
                -+Rule	sol89	1989	only	-	Jun	16	12:00:35s -0:00:35 -
                -+Rule	sol89	1989	only	-	Jun	17	12:00:50s -0:00:50 -
                -+Rule	sol89	1989	only	-	Jun	18	12:01:05s -0:01:05 -
                -+Rule	sol89	1989	only	-	Jun	19	12:01:15s -0:01:15 -
                -+Rule	sol89	1989	only	-	Jun	20	12:01:30s -0:01:30 -
                -+Rule	sol89	1989	only	-	Jun	21	12:01:40s -0:01:40 -
                -+Rule	sol89	1989	only	-	Jun	22	12:01:55s -0:01:55 -
                -+Rule	sol89	1989	only	-	Jun	23	12:02:10s -0:02:10 -
                -+Rule	sol89	1989	only	-	Jun	24	12:02:20s -0:02:20 -
                -+Rule	sol89	1989	only	-	Jun	25	12:02:35s -0:02:35 -
                -+Rule	sol89	1989	only	-	Jun	26	12:02:45s -0:02:45 -
                -+Rule	sol89	1989	only	-	Jun	27	12:03:00s -0:03:00 -
                -+Rule	sol89	1989	only	-	Jun	28	12:03:10s -0:03:10 -
                -+Rule	sol89	1989	only	-	Jun	29	12:03:25s -0:03:25 -
                -+Rule	sol89	1989	only	-	Jun	30	12:03:35s -0:03:35 -
                -+Rule	sol89	1989	only	-	Jul	1	12:03:45s -0:03:45 -
                -+Rule	sol89	1989	only	-	Jul	2	12:04:00s -0:04:00 -
                -+Rule	sol89	1989	only	-	Jul	3	12:04:10s -0:04:10 -
                -+Rule	sol89	1989	only	-	Jul	4	12:04:20s -0:04:20 -
                -+Rule	sol89	1989	only	-	Jul	5	12:04:30s -0:04:30 -
                -+Rule	sol89	1989	only	-	Jul	6	12:04:40s -0:04:40 -
                -+Rule	sol89	1989	only	-	Jul	7	12:04:50s -0:04:50 -
                -+Rule	sol89	1989	only	-	Jul	8	12:05:00s -0:05:00 -
                -+Rule	sol89	1989	only	-	Jul	9	12:05:10s -0:05:10 -
                -+Rule	sol89	1989	only	-	Jul	10	12:05:20s -0:05:20 -
                -+Rule	sol89	1989	only	-	Jul	11	12:05:25s -0:05:25 -
                -+Rule	sol89	1989	only	-	Jul	12	12:05:35s -0:05:35 -
                -+Rule	sol89	1989	only	-	Jul	13	12:05:40s -0:05:40 -
                -+Rule	sol89	1989	only	-	Jul	14	12:05:50s -0:05:50 -
                -+Rule	sol89	1989	only	-	Jul	15	12:05:55s -0:05:55 -
                -+Rule	sol89	1989	only	-	Jul	16	12:06:00s -0:06:00 -
                -+Rule	sol89	1989	only	-	Jul	17	12:06:05s -0:06:05 -
                -+Rule	sol89	1989	only	-	Jul	18	12:06:10s -0:06:10 -
                -+Rule	sol89	1989	only	-	Jul	19	12:06:15s -0:06:15 -
                -+Rule	sol89	1989	only	-	Jul	20	12:06:20s -0:06:20 -
                -+Rule	sol89	1989	only	-	Jul	21	12:06:20s -0:06:20 -
                -+Rule	sol89	1989	only	-	Jul	22	12:06:25s -0:06:25 -
                -+Rule	sol89	1989	only	-	Jul	23	12:06:25s -0:06:25 -
                -+Rule	sol89	1989	only	-	Jul	24	12:06:30s -0:06:30 -
                -+Rule	sol89	1989	only	-	Jul	25	12:06:30s -0:06:30 -
                -+Rule	sol89	1989	only	-	Jul	26	12:06:30s -0:06:30 -
                -+Rule	sol89	1989	only	-	Jul	27	12:06:30s -0:06:30 -
                -+Rule	sol89	1989	only	-	Jul	28	12:06:30s -0:06:30 -
                -+Rule	sol89	1989	only	-	Jul	29	12:06:25s -0:06:25 -
                -+Rule	sol89	1989	only	-	Jul	30	12:06:25s -0:06:25 -
                -+Rule	sol89	1989	only	-	Jul	31	12:06:20s -0:06:20 -
                -+Rule	sol89	1989	only	-	Aug	1	12:06:20s -0:06:20 -
                -+Rule	sol89	1989	only	-	Aug	2	12:06:15s -0:06:15 -
                -+Rule	sol89	1989	only	-	Aug	3	12:06:10s -0:06:10 -
                -+Rule	sol89	1989	only	-	Aug	4	12:06:05s -0:06:05 -
                -+Rule	sol89	1989	only	-	Aug	5	12:06:00s -0:06:00 -
                -+Rule	sol89	1989	only	-	Aug	6	12:05:50s -0:05:50 -
                -+Rule	sol89	1989	only	-	Aug	7	12:05:45s -0:05:45 -
                -+Rule	sol89	1989	only	-	Aug	8	12:05:35s -0:05:35 -
                -+Rule	sol89	1989	only	-	Aug	9	12:05:30s -0:05:30 -
                -+Rule	sol89	1989	only	-	Aug	10	12:05:20s -0:05:20 -
                -+Rule	sol89	1989	only	-	Aug	11	12:05:10s -0:05:10 -
                -+Rule	sol89	1989	only	-	Aug	12	12:05:00s -0:05:00 -
                -+Rule	sol89	1989	only	-	Aug	13	12:04:50s -0:04:50 -
                -+Rule	sol89	1989	only	-	Aug	14	12:04:40s -0:04:40 -
                -+Rule	sol89	1989	only	-	Aug	15	12:04:30s -0:04:30 -
                -+Rule	sol89	1989	only	-	Aug	16	12:04:15s -0:04:15 -
                -+Rule	sol89	1989	only	-	Aug	17	12:04:05s -0:04:05 -
                -+Rule	sol89	1989	only	-	Aug	18	12:03:50s -0:03:50 -
                -+Rule	sol89	1989	only	-	Aug	19	12:03:35s -0:03:35 -
                -+Rule	sol89	1989	only	-	Aug	20	12:03:25s -0:03:25 -
                -+Rule	sol89	1989	only	-	Aug	21	12:03:10s -0:03:10 -
                -+Rule	sol89	1989	only	-	Aug	22	12:02:55s -0:02:55 -
                -+Rule	sol89	1989	only	-	Aug	23	12:02:40s -0:02:40 -
                -+Rule	sol89	1989	only	-	Aug	24	12:02:20s -0:02:20 -
                -+Rule	sol89	1989	only	-	Aug	25	12:02:05s -0:02:05 -
                -+Rule	sol89	1989	only	-	Aug	26	12:01:50s -0:01:50 -
                -+Rule	sol89	1989	only	-	Aug	27	12:01:30s -0:01:30 -
                -+Rule	sol89	1989	only	-	Aug	28	12:01:15s -0:01:15 -
                -+Rule	sol89	1989	only	-	Aug	29	12:00:55s -0:00:55 -
                -+Rule	sol89	1989	only	-	Aug	30	12:00:40s -0:00:40 -
                -+Rule	sol89	1989	only	-	Aug	31	12:00:20s -0:00:20 -
                -+Rule	sol89	1989	only	-	Sep	1	12:00:00s 0:00:00 -
                -+Rule	sol89	1989	only	-	Sep	2	11:59:45s 0:00:15 -
                -+Rule	sol89	1989	only	-	Sep	3	11:59:25s 0:00:35 -
                -+Rule	sol89	1989	only	-	Sep	4	11:59:05s 0:00:55 -
                -+Rule	sol89	1989	only	-	Sep	5	11:58:45s 0:01:15 -
                -+Rule	sol89	1989	only	-	Sep	6	11:58:25s 0:01:35 -
                -+Rule	sol89	1989	only	-	Sep	7	11:58:05s 0:01:55 -
                -+Rule	sol89	1989	only	-	Sep	8	11:57:45s 0:02:15 -
                -+Rule	sol89	1989	only	-	Sep	9	11:57:20s 0:02:40 -
                -+Rule	sol89	1989	only	-	Sep	10	11:57:00s 0:03:00 -
                -+Rule	sol89	1989	only	-	Sep	11	11:56:40s 0:03:20 -
                -+Rule	sol89	1989	only	-	Sep	12	11:56:20s 0:03:40 -
                -+Rule	sol89	1989	only	-	Sep	13	11:56:00s 0:04:00 -
                -+Rule	sol89	1989	only	-	Sep	14	11:55:35s 0:04:25 -
                -+Rule	sol89	1989	only	-	Sep	15	11:55:15s 0:04:45 -
                -+Rule	sol89	1989	only	-	Sep	16	11:54:55s 0:05:05 -
                -+Rule	sol89	1989	only	-	Sep	17	11:54:35s 0:05:25 -
                -+Rule	sol89	1989	only	-	Sep	18	11:54:10s 0:05:50 -
                -+Rule	sol89	1989	only	-	Sep	19	11:53:50s 0:06:10 -
                -+Rule	sol89	1989	only	-	Sep	20	11:53:30s 0:06:30 -
                -+Rule	sol89	1989	only	-	Sep	21	11:53:10s 0:06:50 -
                -+Rule	sol89	1989	only	-	Sep	22	11:52:45s 0:07:15 -
                -+Rule	sol89	1989	only	-	Sep	23	11:52:25s 0:07:35 -
                -+Rule	sol89	1989	only	-	Sep	24	11:52:05s 0:07:55 -
                -+Rule	sol89	1989	only	-	Sep	25	11:51:45s 0:08:15 -
                -+Rule	sol89	1989	only	-	Sep	26	11:51:25s 0:08:35 -
                -+Rule	sol89	1989	only	-	Sep	27	11:51:05s 0:08:55 -
                -+Rule	sol89	1989	only	-	Sep	28	11:50:40s 0:09:20 -
                -+Rule	sol89	1989	only	-	Sep	29	11:50:20s 0:09:40 -
                -+Rule	sol89	1989	only	-	Sep	30	11:50:00s 0:10:00 -
                -+Rule	sol89	1989	only	-	Oct	1	11:49:45s 0:10:15 -
                -+Rule	sol89	1989	only	-	Oct	2	11:49:25s 0:10:35 -
                -+Rule	sol89	1989	only	-	Oct	3	11:49:05s 0:10:55 -
                -+Rule	sol89	1989	only	-	Oct	4	11:48:45s 0:11:15 -
                -+Rule	sol89	1989	only	-	Oct	5	11:48:30s 0:11:30 -
                -+Rule	sol89	1989	only	-	Oct	6	11:48:10s 0:11:50 -
                -+Rule	sol89	1989	only	-	Oct	7	11:47:50s 0:12:10 -
                -+Rule	sol89	1989	only	-	Oct	8	11:47:35s 0:12:25 -
                -+Rule	sol89	1989	only	-	Oct	9	11:47:20s 0:12:40 -
                -+Rule	sol89	1989	only	-	Oct	10	11:47:00s 0:13:00 -
                -+Rule	sol89	1989	only	-	Oct	11	11:46:45s 0:13:15 -
                -+Rule	sol89	1989	only	-	Oct	12	11:46:30s 0:13:30 -
                -+Rule	sol89	1989	only	-	Oct	13	11:46:15s 0:13:45 -
                -+Rule	sol89	1989	only	-	Oct	14	11:46:00s 0:14:00 -
                -+Rule	sol89	1989	only	-	Oct	15	11:45:50s 0:14:10 -
                -+Rule	sol89	1989	only	-	Oct	16	11:45:35s 0:14:25 -
                -+Rule	sol89	1989	only	-	Oct	17	11:45:20s 0:14:40 -
                -+Rule	sol89	1989	only	-	Oct	18	11:45:10s 0:14:50 -
                -+Rule	sol89	1989	only	-	Oct	19	11:45:00s 0:15:00 -
                -+Rule	sol89	1989	only	-	Oct	20	11:44:50s 0:15:10 -
                -+Rule	sol89	1989	only	-	Oct	21	11:44:40s 0:15:20 -
                -+Rule	sol89	1989	only	-	Oct	22	11:44:30s 0:15:30 -
                -+Rule	sol89	1989	only	-	Oct	23	11:44:20s 0:15:40 -
                -+Rule	sol89	1989	only	-	Oct	24	11:44:10s 0:15:50 -
                -+Rule	sol89	1989	only	-	Oct	25	11:44:05s 0:15:55 -
                -+Rule	sol89	1989	only	-	Oct	26	11:44:00s 0:16:00 -
                -+Rule	sol89	1989	only	-	Oct	27	11:43:50s 0:16:10 -
                -+Rule	sol89	1989	only	-	Oct	28	11:43:45s 0:16:15 -
                -+Rule	sol89	1989	only	-	Oct	29	11:43:40s 0:16:20 -
                -+Rule	sol89	1989	only	-	Oct	30	11:43:40s 0:16:20 -
                -+Rule	sol89	1989	only	-	Oct	31	11:43:35s 0:16:25 -
                -+Rule	sol89	1989	only	-	Nov	1	11:43:35s 0:16:25 -
                -+Rule	sol89	1989	only	-	Nov	2	11:43:35s 0:16:25 -
                -+Rule	sol89	1989	only	-	Nov	3	11:43:30s 0:16:30 -
                -+Rule	sol89	1989	only	-	Nov	4	11:43:35s 0:16:25 -
                -+Rule	sol89	1989	only	-	Nov	5	11:43:35s 0:16:25 -
                -+Rule	sol89	1989	only	-	Nov	6	11:43:35s 0:16:25 -
                -+Rule	sol89	1989	only	-	Nov	7	11:43:40s 0:16:20 -
                -+Rule	sol89	1989	only	-	Nov	8	11:43:45s 0:16:15 -
                -+Rule	sol89	1989	only	-	Nov	9	11:43:50s 0:16:10 -
                -+Rule	sol89	1989	only	-	Nov	10	11:43:55s 0:16:05 -
                -+Rule	sol89	1989	only	-	Nov	11	11:44:00s 0:16:00 -
                -+Rule	sol89	1989	only	-	Nov	12	11:44:05s 0:15:55 -
                -+Rule	sol89	1989	only	-	Nov	13	11:44:15s 0:15:45 -
                -+Rule	sol89	1989	only	-	Nov	14	11:44:25s 0:15:35 -
                -+Rule	sol89	1989	only	-	Nov	15	11:44:35s 0:15:25 -
                -+Rule	sol89	1989	only	-	Nov	16	11:44:45s 0:15:15 -
                -+Rule	sol89	1989	only	-	Nov	17	11:44:55s 0:15:05 -
                -+Rule	sol89	1989	only	-	Nov	18	11:45:10s 0:14:50 -
                -+Rule	sol89	1989	only	-	Nov	19	11:45:20s 0:14:40 -
                -+Rule	sol89	1989	only	-	Nov	20	11:45:35s 0:14:25 -
                -+Rule	sol89	1989	only	-	Nov	21	11:45:50s 0:14:10 -
                -+Rule	sol89	1989	only	-	Nov	22	11:46:05s 0:13:55 -
                -+Rule	sol89	1989	only	-	Nov	23	11:46:25s 0:13:35 -
                -+Rule	sol89	1989	only	-	Nov	24	11:46:40s 0:13:20 -
                -+Rule	sol89	1989	only	-	Nov	25	11:47:00s 0:13:00 -
                -+Rule	sol89	1989	only	-	Nov	26	11:47:20s 0:12:40 -
                -+Rule	sol89	1989	only	-	Nov	27	11:47:35s 0:12:25 -
                -+Rule	sol89	1989	only	-	Nov	28	11:47:55s 0:12:05 -
                -+Rule	sol89	1989	only	-	Nov	29	11:48:20s 0:11:40 -
                -+Rule	sol89	1989	only	-	Nov	30	11:48:40s 0:11:20 -
                -+Rule	sol89	1989	only	-	Dec	1	11:49:00s 0:11:00 -
                -+Rule	sol89	1989	only	-	Dec	2	11:49:25s 0:10:35 -
                -+Rule	sol89	1989	only	-	Dec	3	11:49:50s 0:10:10 -
                -+Rule	sol89	1989	only	-	Dec	4	11:50:15s 0:09:45 -
                -+Rule	sol89	1989	only	-	Dec	5	11:50:35s 0:09:25 -
                -+Rule	sol89	1989	only	-	Dec	6	11:51:00s 0:09:00 -
                -+Rule	sol89	1989	only	-	Dec	7	11:51:30s 0:08:30 -
                -+Rule	sol89	1989	only	-	Dec	8	11:51:55s 0:08:05 -
                -+Rule	sol89	1989	only	-	Dec	9	11:52:20s 0:07:40 -
                -+Rule	sol89	1989	only	-	Dec	10	11:52:50s 0:07:10 -
                -+Rule	sol89	1989	only	-	Dec	11	11:53:15s 0:06:45 -
                -+Rule	sol89	1989	only	-	Dec	12	11:53:45s 0:06:15 -
                -+Rule	sol89	1989	only	-	Dec	13	11:54:10s 0:05:50 -
                -+Rule	sol89	1989	only	-	Dec	14	11:54:40s 0:05:20 -
                -+Rule	sol89	1989	only	-	Dec	15	11:55:10s 0:04:50 -
                -+Rule	sol89	1989	only	-	Dec	16	11:55:40s 0:04:20 -
                -+Rule	sol89	1989	only	-	Dec	17	11:56:05s 0:03:55 -
                -+Rule	sol89	1989	only	-	Dec	18	11:56:35s 0:03:25 -
                -+Rule	sol89	1989	only	-	Dec	19	11:57:05s 0:02:55 -
                -+Rule	sol89	1989	only	-	Dec	20	11:57:35s 0:02:25 -
                -+Rule	sol89	1989	only	-	Dec	21	11:58:05s 0:01:55 -
                -+Rule	sol89	1989	only	-	Dec	22	11:58:35s 0:01:25 -
                -+Rule	sol89	1989	only	-	Dec	23	11:59:05s 0:00:55 -
                -+Rule	sol89	1989	only	-	Dec	24	11:59:35s 0:00:25 -
                -+Rule	sol89	1989	only	-	Dec	25	12:00:05s -0:00:05 -
                -+Rule	sol89	1989	only	-	Dec	26	12:00:35s -0:00:35 -
                -+Rule	sol89	1989	only	-	Dec	27	12:01:05s -0:01:05 -
                -+Rule	sol89	1989	only	-	Dec	28	12:01:35s -0:01:35 -
                -+Rule	sol89	1989	only	-	Dec	29	12:02:00s -0:02:00 -
                -+Rule	sol89	1989	only	-	Dec	30	12:02:30s -0:02:30 -
                -+Rule	sol89	1989	only	-	Dec	31	12:03:00s -0:03:00 -
                -+
                -+# Riyadh is at about 46 degrees 46 minutes East:  3 hrs, 7 mins, 4 secs
                -+# Before and after 1989, we'll operate on local mean solar time.
                -+
                -+# Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
                -+Zone	Asia/Riyadh89	3:07:04	-		zzz	1989
                -+			3:07:04	sol89		zzz	1990
                -+			3:07:04	-		zzz
                -+# For backward compatibility...
                -+Link	Asia/Riyadh89	Mideast/Riyadh89
                -Index: examples/tz/yearistype.sh
                -===================================================================
                ---- examples/tz/yearistype.sh	(revision 0)
                -+++ examples/tz/yearistype.sh	(revision 0)
                -@@ -0,0 +1,40 @@
                -+#! /bin/sh
                -+
                -+: 'This file is in the public domain, so clarified as of'
                -+: '2006-07-17 by Arthur David Olson.'
                -+
                -+: '@(#)yearistype.sh	8.2'
                -+
                -+case $#-$1 in
                -+	2-|2-0*|2-*[!0-9]*)
                -+		echo "$0: wild year - $1" >&2
                -+		exit 1 ;;
                -+esac
                -+
                -+case $#-$2 in
                -+	2-even)
                -+		case $1 in
                -+			*[24680])			exit 0 ;;
                -+			*)				exit 1 ;;
                -+		esac ;;
                -+	2-nonpres|2-nonuspres)
                -+		case $1 in
                -+			*[02468][048]|*[13579][26])	exit 1 ;;
                -+			*)				exit 0 ;;
                -+		esac ;;
                -+	2-odd)
                -+		case $1 in
                -+			*[13579])			exit 0 ;;
                -+			*)				exit 1 ;;
                -+		esac ;;
                -+	2-uspres)
                -+		case $1 in
                -+			*[02468][048]|*[13579][26])	exit 0 ;;
                -+			*)				exit 1 ;;
                -+		esac ;;
                -+	2-*)
                -+		echo "$0: wild type - $2" >&2 ;;
                -+esac
                -+
                -+echo "$0: usage is $0 year even|odd|uspres|nonpres|nonuspres" >&2
                -+exit 1
                -Index: examples/tz/factory
                -===================================================================
                ---- examples/tz/factory	(revision 0)
                -+++ examples/tz/factory	(revision 0)
                -@@ -0,0 +1 @@
                -+Zone	Factory	0	- "Local time zone must be set--see zic manual page"
                -Index: examples/tz/pacificnew
                -===================================================================
                ---- examples/tz/pacificnew	(revision 0)
                -+++ examples/tz/pacificnew	(revision 0)
                -@@ -0,0 +1,29 @@
                -+# 
                -+# @(#)pacificnew	8.2
                -+# This file is in the public domain, so clarified as of
                -+# 2009-05-17 by Arthur David Olson.
                -+
                -+# From Arthur David Olson (1989-04-05):
                -+# On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
                -+# establishing "Pacific Presidential Election Time"; it was not acted on
                -+# by the Senate or signed into law by the President.
                -+# You might want to change the "PE" (Presidential Election) below to
                -+# "Q" (Quadrennial) to maintain three-character zone abbreviations.
                -+# If you're really conservative, you might want to change it to "D".
                -+# Avoid "L" (Leap Year), which won't be true in 2100.
                -+
                -+# If Presidential Election Time is ever established, replace "XXXX" below
                -+# with the year the law takes effect and uncomment the "##" lines.
                -+
                -+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
                -+## Rule	Twilite	XXXX	max	-	Apr	Sun>=1	2:00	1:00	D
                -+## Rule	Twilite	XXXX	max	uspres	Oct	lastSun	2:00	1:00	PE
                -+## Rule	Twilite	XXXX	max	uspres	Nov	Sun>=7	2:00	0	S
                -+## Rule	Twilite	XXXX	max	nonpres	Oct	lastSun	2:00	0	S
                -+
                -+# Zone	NAME			GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
                -+## Zone	America/Los_Angeles-PET	-8:00	US		P%sT	XXXX
                -+##				-8:00	Twilite		P%sT
                -+
                -+# For now...
                -+Link	America/Los_Angeles	US/Pacific-New	##
                -Index: examples/tz/antarctica
                -===================================================================
                ---- examples/tz/antarctica	(revision 0)
                -+++ examples/tz/antarctica	(revision 0)
                -@@ -0,0 +1,108 @@
                -+Rule	RussAQ	1981	1984	-	Apr	 1	 0:00	1:00	S
                -+Rule	RussAQ	1981	1983	-	Oct	 1	 0:00	0	-
                -+Rule	RussAQ	1984	1991	-	Sep	lastSun	 2:00s	0	-
                -+Rule	RussAQ	1985	1991	-	Mar	lastSun	 2:00s	1:00	S
                -+Rule	RussAQ	1992	only	-	Mar	lastSat	 23:00	1:00	S
                -+Rule	RussAQ	1992	only	-	Sep	lastSat	 23:00	0	-
                -+Rule	RussAQ	1993	max	-	Mar	lastSun	 2:00s	1:00	S
                -+Rule	RussAQ	1993	1995	-	Sep	lastSun	 2:00s	0	-
                -+Rule	RussAQ	1996	max	-	Oct	lastSun	 2:00s	0	-
                -+Rule	ArgAQ	1964	1966	-	Mar	 1	0:00	0	-
                -+Rule	ArgAQ	1964	1966	-	Oct	15	0:00	1:00	S
                -+Rule	ArgAQ	1967	only	-	Apr	 2	0:00	0	-
                -+Rule	ArgAQ	1967	1968	-	Oct	Sun>=1	0:00	1:00	S
                -+Rule	ArgAQ	1968	1969	-	Apr	Sun>=1	0:00	0	-
                -+Rule	ArgAQ	1974	only	-	Jan	23	0:00	1:00	S
                -+Rule	ArgAQ	1974	only	-	May	 1	0:00	0	-
                -+Rule	ChileAQ	1972	1986	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	ChileAQ	1974	1987	-	Oct	Sun>=9	4:00u	1:00	S
                -+Rule	ChileAQ	1987	only	-	Apr	12	3:00u	0	-
                -+Rule	ChileAQ	1988	1989	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	ChileAQ	1988	only	-	Oct	Sun>=1	4:00u	1:00	S
                -+Rule	ChileAQ	1989	only	-	Oct	Sun>=9	4:00u	1:00	S
                -+Rule	ChileAQ	1990	only	-	Mar	18	3:00u	0	-
                -+Rule	ChileAQ	1990	only	-	Sep	16	4:00u	1:00	S
                -+Rule	ChileAQ	1991	1996	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	ChileAQ	1991	1997	-	Oct	Sun>=9	4:00u	1:00	S
                -+Rule	ChileAQ	1997	only	-	Mar	30	3:00u	0	-
                -+Rule	ChileAQ	1998	only	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	ChileAQ	1998	only	-	Sep	27	4:00u	1:00	S
                -+Rule	ChileAQ	1999	only	-	Apr	 4	3:00u	0	-
                -+Rule	ChileAQ	1999	max	-	Oct	Sun>=9	4:00u	1:00	S
                -+Rule	ChileAQ	2000	max	-	Mar	Sun>=9	3:00u	0	-
                -+Rule	AusAQ	1917	only	-	Jan	 1	0:01	1:00	-
                -+Rule	AusAQ	1917	only	-	Mar	25	2:00	0	-
                -+Rule	AusAQ	1942	only	-	Jan	 1	2:00	1:00	-
                -+Rule	AusAQ	1942	only	-	Mar	29	2:00	0	-
                -+Rule	AusAQ	1942	only	-	Sep	27	2:00	1:00	-
                -+Rule	AusAQ	1943	1944	-	Mar	lastSun	2:00	0	-
                -+Rule	AusAQ	1943	only	-	Oct	 3	2:00	1:00	-
                -+Rule	ATAQ	1967	only	-	Oct	Sun>=1	2:00s	1:00	-
                -+Rule	ATAQ	1968	only	-	Mar	lastSun	2:00s	0	-
                -+Rule	ATAQ	1968	1985	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	ATAQ	1969	1971	-	Mar	Sun>=8	2:00s	0	-
                -+Rule	ATAQ	1972	only	-	Feb	lastSun	2:00s	0	-
                -+Rule	ATAQ	1973	1981	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	ATAQ	1982	1983	-	Mar	lastSun	2:00s	0	-
                -+Rule	ATAQ	1984	1986	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	ATAQ	1986	only	-	Oct	Sun>=15	2:00s	1:00	-
                -+Rule	ATAQ	1987	1990	-	Mar	Sun>=15	2:00s	0	-
                -+Rule	ATAQ	1987	only	-	Oct	Sun>=22	2:00s	1:00	-
                -+Rule	ATAQ	1988	1990	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	ATAQ	1991	1999	-	Oct	Sun>=1	2:00s	1:00	-
                -+Rule	ATAQ	1991	2005	-	Mar	lastSun	2:00s	0	-
                -+Rule	ATAQ	2000	only	-	Aug	lastSun	2:00s	1:00	-
                -+Rule	ATAQ	2001	max	-	Oct	Sun>=1	2:00s	1:00	-
                -+Rule	ATAQ	2006	only	-	Apr	Sun>=1	2:00s	0	-
                -+Rule	ATAQ	2007	only	-	Mar	lastSun	2:00s	0	-
                -+Rule	ATAQ	2008	max	-	Apr	Sun>=1	2:00s	0	-
                -+Zone Antarctica/Casey	0	-	zzz	1969
                -+			8:00	-	WST	2009 Oct 18 2:00
                -+						# Western (Aus) Standard Time
                -+			11:00	-	CAST	2010 Mar 5 2:00
                -+						# Casey Time
                -+			8:00	-	WST
                -+Zone Antarctica/Davis	0	-	zzz	1957 Jan 13
                -+			7:00	-	DAVT	1964 Nov # Davis Time
                -+			0	-	zzz	1969 Feb
                -+			7:00	-	DAVT	2009 Oct 18 2:00
                -+			5:00	-	DAVT	2010 Mar 10 20:00u
                -+			7:00	-	DAVT
                -+Zone Antarctica/Mawson	0	-	zzz	1954 Feb 13
                -+			6:00	-	MAWT	2009 Oct 18 2:00
                -+						# Mawson Time
                -+			5:00	-	MAWT
                -+Zone Antarctica/Macquarie 0	-	zzz	1911
                -+			10:00	-	EST	1916 Oct 1 2:00
                -+			10:00	1:00	EST	1917 Feb
                -+			10:00	AusAQ	EST	1967
                -+			10:00	ATAQ	EST	2010 Apr 4 3:00
                -+			11:00	-	MIST	# Macquarie Island Time
                -+Zone Indian/Kerguelen	0	-	zzz	1950	# Port-aux-Francais
                -+			5:00	-	TFT	# ISO code TF Time
                -+Zone Antarctica/DumontDUrville 0 -	zzz	1947
                -+			10:00	-	PMT	1952 Jan 14 # Port-Martin Time
                -+			0	-	zzz	1956 Nov
                -+			10:00	-	DDUT	# Dumont-d'Urville Time
                -+Zone Antarctica/Syowa	0	-	zzz	1957 Jan 29
                -+			3:00	-	SYOT	# Syowa Time
                -+Rule	NZAQ	1974	only	-	Nov	 3	2:00s	1:00	D
                -+Rule	NZAQ	1975	1988	-	Oct	lastSun	2:00s	1:00	D
                -+Rule	NZAQ	1989	only	-	Oct	 8	2:00s	1:00	D
                -+Rule	NZAQ	1990	2006	-	Oct	Sun>=1	2:00s	1:00	D
                -+Rule	NZAQ	1975	only	-	Feb	23	2:00s	0	S
                -+Rule	NZAQ	1976	1989	-	Mar	Sun>=1	2:00s	0	S
                -+Rule	NZAQ	1990	2007	-	Mar	Sun>=15	2:00s	0	S
                -+Rule	NZAQ	2007	max	-	Sep	lastSun	2:00s	1:00	D
                -+Rule	NZAQ	2008	max	-	Apr	Sun>=1	2:00s	0	S
                -+Zone Antarctica/Vostok	0	-	zzz	1957 Dec 16
                -+			6:00	-	VOST	# Vostok time
                -+Zone Antarctica/Rothera	0	-	zzz	1976 Dec  1
                -+			-3:00	-	ROTT	# Rothera time
                -+Zone Antarctica/Palmer	0	-	zzz	1965
                -+			-4:00	ArgAQ	AR%sT	1969 Oct 5
                -+			-3:00	ArgAQ	AR%sT	1982 May
                -+			-4:00	ChileAQ	CL%sT
                -+Zone Antarctica/McMurdo	0	-	zzz	1956
                -+			12:00	NZAQ	NZ%sT
                -+Link	Antarctica/McMurdo	Antarctica/South_Pole
                -Index: examples/tz/australasia
                -===================================================================
                ---- examples/tz/australasia	(revision 0)
                -+++ examples/tz/australasia	(revision 0)
                -@@ -0,0 +1,304 @@
                -+Rule	Aus	1917	only	-	Jan	 1	0:01	1:00	-
                -+Rule	Aus	1917	only	-	Mar	25	2:00	0	-
                -+Rule	Aus	1942	only	-	Jan	 1	2:00	1:00	-
                -+Rule	Aus	1942	only	-	Mar	29	2:00	0	-
                -+Rule	Aus	1942	only	-	Sep	27	2:00	1:00	-
                -+Rule	Aus	1943	1944	-	Mar	lastSun	2:00	0	-
                -+Rule	Aus	1943	only	-	Oct	 3	2:00	1:00	-
                -+Zone Australia/Darwin	 8:43:20 -	LMT	1895 Feb
                -+			 9:00	-	CST	1899 May
                -+			 9:30	Aus	CST
                -+Rule	AW	1974	only	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AW	1975	only	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AW	1983	only	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AW	1984	only	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AW	1991	only	-	Nov	17	2:00s	1:00	-
                -+Rule	AW	1992	only	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AW	2006	only	-	Dec	 3	2:00s	1:00	-
                -+Rule	AW	2007	2009	-	Mar	lastSun	2:00s	0	-
                -+Rule	AW	2007	2008	-	Oct	lastSun	2:00s	1:00	-
                -+Zone Australia/Perth	 7:43:24 -	LMT	1895 Dec
                -+			 8:00	Aus	WST	1943 Jul
                -+			 8:00	AW	WST
                -+Zone Australia/Eucla	 8:35:28 -	LMT	1895 Dec
                -+			 8:45	Aus	CWST	1943 Jul
                -+			 8:45	AW	CWST
                -+Rule	AQ	1971	only	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AQ	1972	only	-	Feb	lastSun	2:00s	0	-
                -+Rule	AQ	1989	1991	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AQ	1990	1992	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	Holiday	1992	1993	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	Holiday	1993	1994	-	Mar	Sun>=1	2:00s	0	-
                -+Zone Australia/Brisbane	10:12:08 -	LMT	1895
                -+			10:00	Aus	EST	1971
                -+			10:00	AQ	EST
                -+Zone Australia/Lindeman  9:55:56 -	LMT	1895
                -+			10:00	Aus	EST	1971
                -+			10:00	AQ	EST	1992 Jul
                -+			10:00	Holiday	EST
                -+Rule	AS	1971	1985	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AS	1986	only	-	Oct	19	2:00s	1:00	-
                -+Rule	AS	1987	2007	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AS	1972	only	-	Feb	27	2:00s	0	-
                -+Rule	AS	1973	1985	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AS	1986	1990	-	Mar	Sun>=15	2:00s	0	-
                -+Rule	AS	1991	only	-	Mar	3	2:00s	0	-
                -+Rule	AS	1992	only	-	Mar	22	2:00s	0	-
                -+Rule	AS	1993	only	-	Mar	7	2:00s	0	-
                -+Rule	AS	1994	only	-	Mar	20	2:00s	0	-
                -+Rule	AS	1995	2005	-	Mar	lastSun	2:00s	0	-
                -+Rule	AS	2006	only	-	Apr	2	2:00s	0	-
                -+Rule	AS	2007	only	-	Mar	lastSun	2:00s	0	-
                -+Rule	AS	2008	max	-	Apr	Sun>=1	2:00s	0	-
                -+Rule	AS	2008	max	-	Oct	Sun>=1	2:00s	1:00	-
                -+Zone Australia/Adelaide	9:14:20 -	LMT	1895 Feb
                -+			9:00	-	CST	1899 May
                -+			9:30	Aus	CST	1971
                -+			9:30	AS	CST
                -+Rule	AT	1967	only	-	Oct	Sun>=1	2:00s	1:00	-
                -+Rule	AT	1968	only	-	Mar	lastSun	2:00s	0	-
                -+Rule	AT	1968	1985	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AT	1969	1971	-	Mar	Sun>=8	2:00s	0	-
                -+Rule	AT	1972	only	-	Feb	lastSun	2:00s	0	-
                -+Rule	AT	1973	1981	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AT	1982	1983	-	Mar	lastSun	2:00s	0	-
                -+Rule	AT	1984	1986	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AT	1986	only	-	Oct	Sun>=15	2:00s	1:00	-
                -+Rule	AT	1987	1990	-	Mar	Sun>=15	2:00s	0	-
                -+Rule	AT	1987	only	-	Oct	Sun>=22	2:00s	1:00	-
                -+Rule	AT	1988	1990	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AT	1991	1999	-	Oct	Sun>=1	2:00s	1:00	-
                -+Rule	AT	1991	2005	-	Mar	lastSun	2:00s	0	-
                -+Rule	AT	2000	only	-	Aug	lastSun	2:00s	1:00	-
                -+Rule	AT	2001	max	-	Oct	Sun>=1	2:00s	1:00	-
                -+Rule	AT	2006	only	-	Apr	Sun>=1	2:00s	0	-
                -+Rule	AT	2007	only	-	Mar	lastSun	2:00s	0	-
                -+Rule	AT	2008	max	-	Apr	Sun>=1	2:00s	0	-
                -+Zone Australia/Hobart	9:49:16	-	LMT	1895 Sep
                -+			10:00	-	EST	1916 Oct 1 2:00
                -+			10:00	1:00	EST	1917 Feb
                -+			10:00	Aus	EST	1967
                -+			10:00	AT	EST
                -+Zone Australia/Currie	9:35:28	-	LMT	1895 Sep
                -+			10:00	-	EST	1916 Oct 1 2:00
                -+			10:00	1:00	EST	1917 Feb
                -+			10:00	Aus	EST	1971 Jul
                -+			10:00	AT	EST
                -+Rule	AV	1971	1985	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AV	1972	only	-	Feb	lastSun	2:00s	0	-
                -+Rule	AV	1973	1985	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AV	1986	1990	-	Mar	Sun>=15	2:00s	0	-
                -+Rule	AV	1986	1987	-	Oct	Sun>=15	2:00s	1:00	-
                -+Rule	AV	1988	1999	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AV	1991	1994	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AV	1995	2005	-	Mar	lastSun	2:00s	0	-
                -+Rule	AV	2000	only	-	Aug	lastSun	2:00s	1:00	-
                -+Rule	AV	2001	2007	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AV	2006	only	-	Apr	Sun>=1	2:00s	0	-
                -+Rule	AV	2007	only	-	Mar	lastSun	2:00s	0	-
                -+Rule	AV	2008	max	-	Apr	Sun>=1	2:00s	0	-
                -+Rule	AV	2008	max	-	Oct	Sun>=1	2:00s	1:00	-
                -+Zone Australia/Melbourne 9:39:52 -	LMT	1895 Feb
                -+			10:00	Aus	EST	1971
                -+			10:00	AV	EST
                -+Rule	AN	1971	1985	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AN	1972	only	-	Feb	27	2:00s	0	-
                -+Rule	AN	1973	1981	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AN	1982	only	-	Apr	Sun>=1	2:00s	0	-
                -+Rule	AN	1983	1985	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AN	1986	1989	-	Mar	Sun>=15	2:00s	0	-
                -+Rule	AN	1986	only	-	Oct	19	2:00s	1:00	-
                -+Rule	AN	1987	1999	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AN	1990	1995	-	Mar	Sun>=1	2:00s	0	-
                -+Rule	AN	1996	2005	-	Mar	lastSun	2:00s	0	-
                -+Rule	AN	2000	only	-	Aug	lastSun	2:00s	1:00	-
                -+Rule	AN	2001	2007	-	Oct	lastSun	2:00s	1:00	-
                -+Rule	AN	2006	only	-	Apr	Sun>=1	2:00s	0	-
                -+Rule	AN	2007	only	-	Mar	lastSun	2:00s	0	-
                -+Rule	AN	2008	max	-	Apr	Sun>=1	2:00s	0	-
                -+Rule	AN	2008	max	-	Oct	Sun>=1	2:00s	1:00	-
                -+Zone Australia/Sydney	10:04:52 -	LMT	1895 Feb
                -+			10:00	Aus	EST	1971
                -+			10:00	AN	EST
                -+Zone Australia/Broken_Hill 9:25:48 -	LMT	1895 Feb
                -+			10:00	-	EST	1896 Aug 23
                -+			9:00	-	CST	1899 May
                -+			9:30	Aus	CST	1971
                -+			9:30	AN	CST	2000
                -+			9:30	AS	CST
                -+Rule	LH	1981	1984	-	Oct	lastSun	2:00	1:00	-
                -+Rule	LH	1982	1985	-	Mar	Sun>=1	2:00	0	-
                -+Rule	LH	1985	only	-	Oct	lastSun	2:00	0:30	-
                -+Rule	LH	1986	1989	-	Mar	Sun>=15	2:00	0	-
                -+Rule	LH	1986	only	-	Oct	19	2:00	0:30	-
                -+Rule	LH	1987	1999	-	Oct	lastSun	2:00	0:30	-
                -+Rule	LH	1990	1995	-	Mar	Sun>=1	2:00	0	-
                -+Rule	LH	1996	2005	-	Mar	lastSun	2:00	0	-
                -+Rule	LH	2000	only	-	Aug	lastSun	2:00	0:30	-
                -+Rule	LH	2001	2007	-	Oct	lastSun	2:00	0:30	-
                -+Rule	LH	2006	only	-	Apr	Sun>=1	2:00	0	-
                -+Rule	LH	2007	only	-	Mar	lastSun	2:00	0	-
                -+Rule	LH	2008	max	-	Apr	Sun>=1	2:00	0	-
                -+Rule	LH	2008	max	-	Oct	Sun>=1	2:00	0:30	-
                -+Zone Australia/Lord_Howe 10:36:20 -	LMT	1895 Feb
                -+			10:00	-	EST	1981 Mar
                -+			10:30	LH	LHST
                -+Zone Indian/Christmas	7:02:52 -	LMT	1895 Feb
                -+			7:00	-	CXT	# Christmas Island Time
                -+Rule	Cook	1978	only	-	Nov	12	0:00	0:30	HS
                -+Rule	Cook	1979	1991	-	Mar	Sun>=1	0:00	0	-
                -+Rule	Cook	1979	1990	-	Oct	lastSun	0:00	0:30	HS
                -+Zone Pacific/Rarotonga	-10:39:04 -	LMT	1901		# Avarua
                -+			-10:30	-	CKT	1978 Nov 12	# Cook Is Time
                -+			-10:00	Cook	CK%sT
                -+Zone	Indian/Cocos	6:27:40	-	LMT	1900
                -+			6:30	-	CCT	# Cocos Islands Time
                -+Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	S
                -+Rule	Fiji	1999	2000	-	Feb	lastSun	3:00	0	-
                -+Rule	Fiji	2009	only	-	Nov	29	2:00	1:00	S
                -+Rule	Fiji	2010	only	-	Mar	lastSun	3:00	0	-
                -+Rule	Fiji	2010	only	-	Oct	24	2:00	1:00	S
                -+Rule	Fiji	2011	only	-	Mar	Sun>=1	3:00	0	-
                -+Zone	Pacific/Fiji	11:53:40 -	LMT	1915 Oct 26	# Suva
                -+			12:00	Fiji	FJ%sT	# Fiji Time
                -+Zone	Pacific/Gambier	 -8:59:48 -	LMT	1912 Oct	# Rikitea
                -+			 -9:00	-	GAMT	# Gambier Time
                -+Zone	Pacific/Marquesas -9:18:00 -	LMT	1912 Oct
                -+			 -9:30	-	MART	# Marquesas Time
                -+Zone	Pacific/Tahiti	 -9:58:16 -	LMT	1912 Oct	# Papeete
                -+			-10:00	-	TAHT	# Tahiti Time
                -+Zone	Pacific/Guam	-14:21:00 -	LMT	1844 Dec 31
                -+			 9:39:00 -	LMT	1901		# Agana
                -+			10:00	-	GST	2000 Dec 23	# Guam
                -+			10:00	-	ChST	# Chamorro Standard Time
                -+Zone Pacific/Tarawa	 11:32:04 -	LMT	1901		# Bairiki
                -+			 12:00	-	GILT		 # Gilbert Is Time
                -+Zone Pacific/Enderbury	-11:24:20 -	LMT	1901
                -+			-12:00	-	PHOT	1979 Oct # Phoenix Is Time
                -+			-11:00	-	PHOT	1995
                -+			 13:00	-	PHOT
                -+Zone Pacific/Kiritimati	-10:29:20 -	LMT	1901
                -+			-10:40	-	LINT	1979 Oct # Line Is Time
                -+			-10:00	-	LINT	1995
                -+			 14:00	-	LINT
                -+Zone Pacific/Saipan	-14:17:00 -	LMT	1844 Dec 31
                -+			 9:43:00 -	LMT	1901
                -+			 9:00	-	MPT	1969 Oct # N Mariana Is Time
                -+			10:00	-	MPT	2000 Dec 23
                -+			10:00	-	ChST	# Chamorro Standard Time
                -+Zone Pacific/Majuro	11:24:48 -	LMT	1901
                -+			11:00	-	MHT	1969 Oct # Marshall Islands Time
                -+			12:00	-	MHT
                -+Zone Pacific/Kwajalein	11:09:20 -	LMT	1901
                -+			11:00	-	MHT	1969 Oct
                -+			-12:00	-	KWAT	1993 Aug 20	# Kwajalein Time
                -+			12:00	-	MHT
                -+Zone Pacific/Chuuk	10:07:08 -	LMT	1901
                -+			10:00	-	CHUT			# Chuuk Time
                -+Zone Pacific/Pohnpei	10:32:52 -	LMT	1901		# Kolonia
                -+			11:00	-	PONT			# Pohnpei Time
                -+Zone Pacific/Kosrae	10:51:56 -	LMT	1901
                -+			11:00	-	KOST	1969 Oct	# Kosrae Time
                -+			12:00	-	KOST	1999
                -+			11:00	-	KOST
                -+Zone	Pacific/Nauru	11:07:40 -	LMT	1921 Jan 15	# Uaobe
                -+			11:30	-	NRT	1942 Mar 15	# Nauru Time
                -+			9:00	-	JST	1944 Aug 15
                -+			11:30	-	NRT	1979 May
                -+			12:00	-	NRT
                -+Rule	NC	1977	1978	-	Dec	Sun>=1	0:00	1:00	S
                -+Rule	NC	1978	1979	-	Feb	27	0:00	0	-
                -+Rule	NC	1996	only	-	Dec	 1	2:00s	1:00	S
                -+Rule	NC	1997	only	-	Mar	 2	2:00s	0	-
                -+Zone	Pacific/Noumea	11:05:48 -	LMT	1912 Jan 13
                -+			11:00	NC	NC%sT
                -+Rule	NZ	1927	only	-	Nov	 6	2:00	1:00	S
                -+Rule	NZ	1928	only	-	Mar	 4	2:00	0	M
                -+Rule	NZ	1928	1933	-	Oct	Sun>=8	2:00	0:30	S
                -+Rule	NZ	1929	1933	-	Mar	Sun>=15	2:00	0	M
                -+Rule	NZ	1934	1940	-	Apr	lastSun	2:00	0	M
                -+Rule	NZ	1934	1940	-	Sep	lastSun	2:00	0:30	S
                -+Rule	NZ	1946	only	-	Jan	 1	0:00	0	S
                -+Rule	NZ	1974	only	-	Nov	Sun>=1	2:00s	1:00	D
                -+Rule	Chatham	1974	only	-	Nov	Sun>=1	2:45s	1:00	D
                -+Rule	NZ	1975	only	-	Feb	lastSun	2:00s	0	S
                -+Rule	Chatham	1975	only	-	Feb	lastSun	2:45s	0	S
                -+Rule	NZ	1975	1988	-	Oct	lastSun	2:00s	1:00	D
                -+Rule	Chatham	1975	1988	-	Oct	lastSun	2:45s	1:00	D
                -+Rule	NZ	1976	1989	-	Mar	Sun>=1	2:00s	0	S
                -+Rule	Chatham	1976	1989	-	Mar	Sun>=1	2:45s	0	S
                -+Rule	NZ	1989	only	-	Oct	Sun>=8	2:00s	1:00	D
                -+Rule	Chatham	1989	only	-	Oct	Sun>=8	2:45s	1:00	D
                -+Rule	NZ	1990	2006	-	Oct	Sun>=1	2:00s	1:00	D
                -+Rule	Chatham	1990	2006	-	Oct	Sun>=1	2:45s	1:00	D
                -+Rule	NZ	1990	2007	-	Mar	Sun>=15	2:00s	0	S
                -+Rule	Chatham	1990	2007	-	Mar	Sun>=15	2:45s	0	S
                -+Rule	NZ	2007	max	-	Sep	lastSun	2:00s	1:00	D
                -+Rule	Chatham	2007	max	-	Sep	lastSun	2:45s	1:00	D
                -+Rule	NZ	2008	max	-	Apr	Sun>=1	2:00s	0	S
                -+Rule	Chatham	2008	max	-	Apr	Sun>=1	2:45s	0	S
                -+Zone Pacific/Auckland	11:39:04 -	LMT	1868 Nov  2
                -+			11:30	NZ	NZ%sT	1946 Jan  1
                -+			12:00	NZ	NZ%sT
                -+Zone Pacific/Chatham	12:13:48 -	LMT	1957 Jan  1
                -+			12:45	Chatham	CHA%sT
                -+Zone	Pacific/Niue	-11:19:40 -	LMT	1901		# Alofi
                -+			-11:20	-	NUT	1951	# Niue Time
                -+			-11:30	-	NUT	1978 Oct 1
                -+			-11:00	-	NUT
                -+Zone	Pacific/Norfolk	11:11:52 -	LMT	1901		# Kingston
                -+			11:12	-	NMT	1951	# Norfolk Mean Time
                -+			11:30	-	NFT		# Norfolk Time
                -+Zone Pacific/Palau	8:57:56 -	LMT	1901		# Koror
                -+			9:00	-	PWT	# Palau Time
                -+Zone Pacific/Port_Moresby 9:48:40 -	LMT	1880
                -+			9:48:32	-	PMMT	1895	# Port Moresby Mean Time
                -+			10:00	-	PGT		# Papua New Guinea Time
                -+Zone Pacific/Pitcairn	-8:40:20 -	LMT	1901		# Adamstown
                -+			-8:30	-	PNT	1998 Apr 27 00:00
                -+			-8:00	-	PST	# Pitcairn Standard Time
                -+Zone Pacific/Pago_Pago	 12:37:12 -	LMT	1879 Jul  5
                -+			-11:22:48 -	LMT	1911
                -+			-11:30	-	SAMT	1950		# Samoa Time
                -+			-11:00	-	NST	1967 Apr	# N=Nome
                -+			-11:00	-	BST	1983 Nov 30	# B=Bering
                -+			-11:00	-	SST			# S=Samoa
                -+Zone Pacific/Apia	 12:33:04 -	LMT	1879 Jul  5
                -+			-11:26:56 -	LMT	1911
                -+			-11:30	-	SAMT	1950		# Samoa Time
                -+			-11:00	-	WST	2010 Sep 26
                -+			-11:00	1:00	WSDT	2011 Apr 2 4:00
                -+			-11:00	-	WST
                -+Zone Pacific/Guadalcanal 10:39:48 -	LMT	1912 Oct	# Honiara
                -+			11:00	-	SBT	# Solomon Is Time
                -+Zone	Pacific/Fakaofo	-11:24:56 -	LMT	1901
                -+			-10:00	-	TKT	# Tokelau Time
                -+Rule	Tonga	1999	only	-	Oct	 7	2:00s	1:00	S
                -+Rule	Tonga	2000	only	-	Mar	19	2:00s	0	-
                -+Rule	Tonga	2000	2001	-	Nov	Sun>=1	2:00	1:00	S
                -+Rule	Tonga	2001	2002	-	Jan	lastSun	2:00	0	-
                -+Zone Pacific/Tongatapu	12:19:20 -	LMT	1901
                -+			12:20	-	TOT	1941 # Tonga Time
                -+			13:00	-	TOT	1999
                -+			13:00	Tonga	TO%sT
                -+Zone Pacific/Funafuti	11:56:52 -	LMT	1901
                -+			12:00	-	TVT	# Tuvalu Time
                -+Zone Pacific/Johnston	-10:00	-	HST
                -+Zone Pacific/Midway	-11:49:28 -	LMT	1901
                -+			-11:00	-	NST	1956 Jun  3
                -+			-11:00	1:00	NDT	1956 Sep  2
                -+			-11:00	-	NST	1967 Apr	# N=Nome
                -+			-11:00	-	BST	1983 Nov 30	# B=Bering
                -+			-11:00	-	SST			# S=Samoa
                -+Zone	Pacific/Wake	11:06:28 -	LMT	1901
                -+			12:00	-	WAKT	# Wake Time
                -+Rule	Vanuatu	1983	only	-	Sep	25	0:00	1:00	S
                -+Rule	Vanuatu	1984	1991	-	Mar	Sun>=23	0:00	0	-
                -+Rule	Vanuatu	1984	only	-	Oct	23	0:00	1:00	S
                -+Rule	Vanuatu	1985	1991	-	Sep	Sun>=23	0:00	1:00	S
                -+Rule	Vanuatu	1992	1993	-	Jan	Sun>=23	0:00	0	-
                -+Rule	Vanuatu	1992	only	-	Oct	Sun>=23	0:00	1:00	S
                -+Zone	Pacific/Efate	11:13:16 -	LMT	1912 Jan 13		# Vila
                -+			11:00	Vanuatu	VU%sT	# Vanuatu Time
                -+Zone	Pacific/Wallis	12:15:20 -	LMT	1901
                -+			12:00	-	WFT	# Wallis & Futuna Time
                -Index: examples/tz/systemv
                -===================================================================
                ---- examples/tz/systemv	(revision 0)
                -+++ examples/tz/systemv	(revision 0)
                -@@ -0,0 +1,39 @@
                -+# 
                -+# @(#)systemv	8.2
                -+# This file is in the public domain, so clarified as of
                -+# 2009-05-17 by Arthur David Olson.
                -+
                -+# Old rules, should the need arise.
                -+# No attempt is made to handle Newfoundland, since it cannot be expressed
                -+# using the System V "TZ" scheme (half-hour offset), or anything outside
                -+# North America (no support for non-standard DST start/end dates), nor
                -+# the changes in the DST rules in the US after 1976 (which occurred after
                -+# the old rules were written).
                -+#
                -+# If you need the old rules, uncomment ## lines.
                -+# Compile this *without* leap second correction for true conformance.
                -+
                -+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
                -+Rule	SystemV	min	1973	-	Apr	lastSun	2:00	1:00	D
                -+Rule	SystemV	min	1973	-	Oct	lastSun	2:00	0	S
                -+Rule	SystemV	1974	only	-	Jan	6	2:00	1:00	D
                -+Rule	SystemV	1974	only	-	Nov	lastSun	2:00	0	S
                -+Rule	SystemV	1975	only	-	Feb	23	2:00	1:00	D
                -+Rule	SystemV	1975	only	-	Oct	lastSun	2:00	0	S
                -+Rule	SystemV	1976	max	-	Apr	lastSun	2:00	1:00	D
                -+Rule	SystemV	1976	max	-	Oct	lastSun	2:00	0	S
                -+
                -+# Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
                -+## Zone	SystemV/AST4ADT	-4:00	SystemV		A%sT
                -+## Zone	SystemV/EST5EDT	-5:00	SystemV		E%sT
                -+## Zone	SystemV/CST6CDT	-6:00	SystemV		C%sT
                -+## Zone	SystemV/MST7MDT	-7:00	SystemV		M%sT
                -+## Zone	SystemV/PST8PDT	-8:00	SystemV		P%sT
                -+## Zone	SystemV/YST9YDT	-9:00	SystemV		Y%sT
                -+## Zone	SystemV/AST4	-4:00	-		AST
                -+## Zone	SystemV/EST5	-5:00	-		EST
                -+## Zone	SystemV/CST6	-6:00	-		CST
                -+## Zone	SystemV/MST7	-7:00	-		MST
                -+## Zone	SystemV/PST8	-8:00	-		PST
                -+## Zone	SystemV/YST9	-9:00	-		YST
                -+## Zone	SystemV/HST10	-10:00	-		HST
                -Index: examples/tz/northamerica
                -===================================================================
                ---- examples/tz/northamerica	(revision 0)
                -+++ examples/tz/northamerica	(revision 0)
                -@@ -0,0 +1,965 @@
                -+Rule	US	1918	1919	-	Mar	lastSun	2:00	1:00	D
                -+Rule	US	1918	1919	-	Oct	lastSun	2:00	0	S
                -+Rule	US	1942	only	-	Feb	9	2:00	1:00	W # War
                -+Rule	US	1945	only	-	Aug	14	23:00u	1:00	P # Peace
                -+Rule	US	1945	only	-	Sep	30	2:00	0	S
                -+Rule	US	1967	2006	-	Oct	lastSun	2:00	0	S
                -+Rule	US	1967	1973	-	Apr	lastSun	2:00	1:00	D
                -+Rule	US	1974	only	-	Jan	6	2:00	1:00	D
                -+Rule	US	1975	only	-	Feb	23	2:00	1:00	D
                -+Rule	US	1976	1986	-	Apr	lastSun	2:00	1:00	D
                -+Rule	US	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
                -+Rule	US	2007	max	-	Mar	Sun>=8	2:00	1:00	D
                -+Rule	US	2007	max	-	Nov	Sun>=1	2:00	0	S
                -+Zone	EST		 -5:00	-	EST
                -+Zone	MST		 -7:00	-	MST
                -+Zone	HST		-10:00	-	HST
                -+Zone	EST5EDT		 -5:00	US	E%sT
                -+Zone	CST6CDT		 -6:00	US	C%sT
                -+Zone	MST7MDT		 -7:00	US	M%sT
                -+Zone	PST8PDT		 -8:00	US	P%sT
                -+Rule	NYC	1920	only	-	Mar	lastSun	2:00	1:00	D
                -+Rule	NYC	1920	only	-	Oct	lastSun	2:00	0	S
                -+Rule	NYC	1921	1966	-	Apr	lastSun	2:00	1:00	D
                -+Rule	NYC	1921	1954	-	Sep	lastSun	2:00	0	S
                -+Rule	NYC	1955	1966	-	Oct	lastSun	2:00	0	S
                -+Zone America/New_York	-4:56:02 -	LMT	1883 Nov 18 12:03:58
                -+			-5:00	US	E%sT	1920
                -+			-5:00	NYC	E%sT	1942
                -+			-5:00	US	E%sT	1946
                -+			-5:00	NYC	E%sT	1967
                -+			-5:00	US	E%sT
                -+Rule	Chicago	1920	only	-	Jun	13	2:00	1:00	D
                -+Rule	Chicago	1920	1921	-	Oct	lastSun	2:00	0	S
                -+Rule	Chicago	1921	only	-	Mar	lastSun	2:00	1:00	D
                -+Rule	Chicago	1922	1966	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Chicago	1922	1954	-	Sep	lastSun	2:00	0	S
                -+Rule	Chicago	1955	1966	-	Oct	lastSun	2:00	0	S
                -+Zone America/Chicago	-5:50:36 -	LMT	1883 Nov 18 12:09:24
                -+			-6:00	US	C%sT	1920
                -+			-6:00	Chicago	C%sT	1936 Mar  1 2:00
                -+			-5:00	-	EST	1936 Nov 15 2:00
                -+			-6:00	Chicago	C%sT	1942
                -+			-6:00	US	C%sT	1946
                -+			-6:00	Chicago	C%sT	1967
                -+			-6:00	US	C%sT
                -+Zone America/North_Dakota/Center -6:45:12 - LMT	1883 Nov 18 12:14:48
                -+			-7:00	US	M%sT	1992 Oct 25 02:00
                -+			-6:00	US	C%sT
                -+Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21
                -+			-7:00	US	M%sT	2003 Oct 26 02:00
                -+			-6:00	US	C%sT
                -+Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53
                -+			-7:00	US	M%sT	2010 Nov  7 2:00
                -+			-6:00	US	C%sT
                -+Rule	Denver	1920	1921	-	Mar	lastSun	2:00	1:00	D
                -+Rule	Denver	1920	only	-	Oct	lastSun	2:00	0	S
                -+Rule	Denver	1921	only	-	May	22	2:00	0	S
                -+Rule	Denver	1965	1966	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Denver	1965	1966	-	Oct	lastSun	2:00	0	S
                -+Zone America/Denver	-6:59:56 -	LMT	1883 Nov 18 12:00:04
                -+			-7:00	US	M%sT	1920
                -+			-7:00	Denver	M%sT	1942
                -+			-7:00	US	M%sT	1946
                -+			-7:00	Denver	M%sT	1967
                -+			-7:00	US	M%sT
                -+Rule	CA	1948	only	-	Mar	14	2:00	1:00	D
                -+Rule	CA	1949	only	-	Jan	 1	2:00	0	S
                -+Rule	CA	1950	1966	-	Apr	lastSun	2:00	1:00	D
                -+Rule	CA	1950	1961	-	Sep	lastSun	2:00	0	S
                -+Rule	CA	1962	1966	-	Oct	lastSun	2:00	0	S
                -+Zone America/Los_Angeles -7:52:58 -	LMT	1883 Nov 18 12:07:02
                -+			-8:00	US	P%sT	1946
                -+			-8:00	CA	P%sT	1967
                -+			-8:00	US	P%sT
                -+Zone America/Juneau	 15:02:19 -	LMT	1867 Oct 18
                -+			 -8:57:41 -	LMT	1900 Aug 20 12:00
                -+			 -8:00	-	PST	1942
                -+			 -8:00	US	P%sT	1946
                -+			 -8:00	-	PST	1969
                -+			 -8:00	US	P%sT	1980 Apr 27 2:00
                -+			 -9:00	US	Y%sT	1980 Oct 26 2:00	
                -+			 -8:00	US	P%sT	1983 Oct 30 2:00
                -+			 -9:00	US	Y%sT	1983 Nov 30
                -+			 -9:00	US	AK%sT
                -+Zone America/Sitka	 -14:58:47 -	LMT	1867 Oct 18
                -+			 -9:01:13 -	LMT	1900 Aug 20 12:00
                -+			 -8:00	-	PST	1942
                -+			 -8:00	US	P%sT	1946
                -+			 -8:00	-	PST	1969
                -+			 -8:00	US	P%sT	1983 Oct 30 2:00
                -+			 -9:00	US	Y%sT	1983 Nov 30
                -+			 -9:00	US	AK%sT
                -+Zone America/Metlakatla	 15:13:42 -	LMT	1867 Oct 18
                -+			 -8:46:18 -	LMT	1900 Aug 20 12:00
                -+			 -8:00	-	PST	1942
                -+			 -8:00	US	P%sT	1946
                -+			 -8:00	-	PST	1969
                -+			 -8:00	US	P%sT	1983 Oct 30 2:00
                -+			 -8:00	US	MeST
                -+Zone America/Yakutat	 14:41:05 -	LMT	1867 Oct 18
                -+			 -9:18:55 -	LMT	1900 Aug 20 12:00
                -+			 -9:00	-	YST	1942
                -+			 -9:00	US	Y%sT	1946
                -+			 -9:00	-	YST	1969
                -+			 -9:00	US	Y%sT	1983 Nov 30
                -+			 -9:00	US	AK%sT
                -+Zone America/Anchorage	 14:00:24 -	LMT	1867 Oct 18
                -+			 -9:59:36 -	LMT	1900 Aug 20 12:00
                -+			-10:00	-	CAT	1942
                -+			-10:00	US	CAT/CAWT 1945 Aug 14 23:00u
                -+			-10:00	US	CAT/CAPT 1946 # Peace
                -+			-10:00	-	CAT	1967 Apr
                -+			-10:00	-	AHST	1969
                -+			-10:00	US	AH%sT	1983 Oct 30 2:00
                -+			 -9:00	US	Y%sT	1983 Nov 30
                -+			 -9:00	US	AK%sT
                -+Zone America/Nome	 12:58:21 -	LMT	1867 Oct 18
                -+			-11:01:38 -	LMT	1900 Aug 20 12:00
                -+			-11:00	-	NST	1942
                -+			-11:00	US	N%sT	1946
                -+			-11:00	-	NST	1967 Apr
                -+			-11:00	-	BST	1969
                -+			-11:00	US	B%sT	1983 Oct 30 2:00
                -+			 -9:00	US	Y%sT	1983 Nov 30
                -+			 -9:00	US	AK%sT
                -+Zone America/Adak	 12:13:21 -	LMT	1867 Oct 18
                -+			-11:46:38 -	LMT	1900 Aug 20 12:00
                -+			-11:00	-	NST	1942
                -+			-11:00	US	N%sT	1946
                -+			-11:00	-	NST	1967 Apr
                -+			-11:00	-	BST	1969
                -+			-11:00	US	B%sT	1983 Oct 30 2:00
                -+			-10:00	US	AH%sT	1983 Nov 30
                -+			-10:00	US	HA%sT
                -+Zone Pacific/Honolulu	-10:31:26 -	LMT	1896 Jan 13 12:00 #Schmitt&Cox
                -+			-10:30	-	HST	1933 Apr 30 2:00 #Laws 1933
                -+			-10:30	1:00	HDT	1933 May 21 12:00 #Laws 1933+12
                -+			-10:30	-	HST	1942 Feb 09 2:00 #Schmitt&Cox+2
                -+			-10:30	1:00	HDT	1945 Sep 30 2:00 #Schmitt&Fox+2
                -+			-10:30	US	H%sT	1947 Jun  8 2:00 #Schmitt&Fox+2
                -+			-10:00	-	HST
                -+Zone America/Phoenix	-7:28:18 -	LMT	1883 Nov 18 11:31:42
                -+			-7:00	US	M%sT	1944 Jan  1 00:01
                -+			-7:00	-	MST	1944 Apr  1 00:01
                -+			-7:00	US	M%sT	1944 Oct  1 00:01
                -+			-7:00	-	MST	1967
                -+			-7:00	US	M%sT	1968 Mar 21
                -+			-7:00	-	MST
                -+Link America/Denver America/Shiprock
                -+Zone America/Boise	-7:44:49 -	LMT	1883 Nov 18 12:15:11
                -+			-8:00	US	P%sT	1923 May 13 2:00
                -+			-7:00	US	M%sT	1974
                -+			-7:00	-	MST	1974 Feb  3 2:00
                -+			-7:00	US	M%sT
                -+Rule Indianapolis 1941	only	-	Jun	22	2:00	1:00	D
                -+Rule Indianapolis 1941	1954	-	Sep	lastSun	2:00	0	S
                -+Rule Indianapolis 1946	1954	-	Apr	lastSun	2:00	1:00	D
                -+Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22
                -+			-6:00	US	C%sT	1920
                -+			-6:00 Indianapolis C%sT	1942
                -+			-6:00	US	C%sT	1946
                -+			-6:00 Indianapolis C%sT	1955 Apr 24 2:00
                -+			-5:00	-	EST	1957 Sep 29 2:00
                -+			-6:00	-	CST	1958 Apr 27 2:00
                -+			-5:00	-	EST	1969
                -+			-5:00	US	E%sT	1971
                -+			-5:00	-	EST	2006
                -+			-5:00	US	E%sT
                -+Rule	Marengo	1951	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Marengo	1951	only	-	Sep	lastSun	2:00	0	S
                -+Rule	Marengo	1954	1960	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Marengo	1954	1960	-	Sep	lastSun	2:00	0	S
                -+Zone America/Indiana/Marengo -5:45:23 -	LMT	1883 Nov 18 12:14:37
                -+			-6:00	US	C%sT	1951
                -+			-6:00	Marengo	C%sT	1961 Apr 30 2:00
                -+			-5:00	-	EST	1969
                -+			-5:00	US	E%sT	1974 Jan  6 2:00
                -+			-6:00	1:00	CDT	1974 Oct 27 2:00
                -+			-5:00	US	E%sT	1976
                -+			-5:00	-	EST	2006
                -+			-5:00	US	E%sT
                -+Rule Vincennes	1946	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule Vincennes	1946	only	-	Sep	lastSun	2:00	0	S
                -+Rule Vincennes	1953	1954	-	Apr	lastSun	2:00	1:00	D
                -+Rule Vincennes	1953	1959	-	Sep	lastSun	2:00	0	S
                -+Rule Vincennes	1955	only	-	May	 1	0:00	1:00	D
                -+Rule Vincennes	1956	1963	-	Apr	lastSun	2:00	1:00	D
                -+Rule Vincennes	1960	only	-	Oct	lastSun	2:00	0	S
                -+Rule Vincennes	1961	only	-	Sep	lastSun	2:00	0	S
                -+Rule Vincennes	1962	1963	-	Oct	lastSun	2:00	0	S
                -+Zone America/Indiana/Vincennes -5:50:07 - LMT	1883 Nov 18 12:09:53
                -+			-6:00	US	C%sT	1946
                -+			-6:00 Vincennes	C%sT	1964 Apr 26 2:00
                -+			-5:00	-	EST	1969
                -+			-5:00	US	E%sT	1971
                -+			-5:00	-	EST	2006 Apr  2 2:00
                -+			-6:00	US	C%sT	2007 Nov  4 2:00
                -+			-5:00	US	E%sT
                -+Rule Perry	1946	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule Perry	1946	only	-	Sep	lastSun	2:00	0	S
                -+Rule Perry	1953	1954	-	Apr	lastSun	2:00	1:00	D
                -+Rule Perry	1953	1959	-	Sep	lastSun	2:00	0	S
                -+Rule Perry	1955	only	-	May	 1	0:00	1:00	D
                -+Rule Perry	1956	1963	-	Apr	lastSun	2:00	1:00	D
                -+Rule Perry	1960	only	-	Oct	lastSun	2:00	0	S
                -+Rule Perry	1961	only	-	Sep	lastSun	2:00	0	S
                -+Rule Perry	1962	1963	-	Oct	lastSun	2:00	0	S
                -+Zone America/Indiana/Tell_City -5:47:03 - LMT	1883 Nov 18 12:12:57
                -+			-6:00	US	C%sT	1946
                -+			-6:00 Perry	C%sT	1964 Apr 26 2:00
                -+			-5:00	-	EST	1969
                -+			-5:00	US	E%sT	1971
                -+			-5:00	-	EST	2006 Apr  2 2:00
                -+			-6:00	US	C%sT
                -+Rule	Pike	1955	only	-	May	 1	0:00	1:00	D
                -+Rule	Pike	1955	1960	-	Sep	lastSun	2:00	0	S
                -+Rule	Pike	1956	1964	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Pike	1961	1964	-	Oct	lastSun	2:00	0	S
                -+Zone America/Indiana/Petersburg -5:49:07 - LMT	1883 Nov 18 12:10:53
                -+			-6:00	US	C%sT	1955
                -+			-6:00	Pike	C%sT	1965 Apr 25 2:00
                -+			-5:00	-	EST	1966 Oct 30 2:00
                -+			-6:00	US	C%sT	1977 Oct 30 2:00
                -+			-5:00	-	EST	2006 Apr  2 2:00
                -+			-6:00	US	C%sT	2007 Nov  4 2:00
                -+			-5:00	US	E%sT
                -+Rule	Starke	1947	1961	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Starke	1947	1954	-	Sep	lastSun	2:00	0	S
                -+Rule	Starke	1955	1956	-	Oct	lastSun	2:00	0	S
                -+Rule	Starke	1957	1958	-	Sep	lastSun	2:00	0	S
                -+Rule	Starke	1959	1961	-	Oct	lastSun	2:00	0	S
                -+Zone America/Indiana/Knox -5:46:30 -	LMT	1883 Nov 18 12:13:30
                -+			-6:00	US	C%sT	1947
                -+			-6:00	Starke	C%sT	1962 Apr 29 2:00
                -+			-5:00	-	EST	1963 Oct 27 2:00
                -+			-6:00	US	C%sT	1991 Oct 27 2:00
                -+			-5:00	-	EST	2006 Apr  2 2:00
                -+			-6:00	US	C%sT
                -+Rule	Pulaski	1946	1960	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Pulaski	1946	1954	-	Sep	lastSun	2:00	0	S
                -+Rule	Pulaski	1955	1956	-	Oct	lastSun	2:00	0	S
                -+Rule	Pulaski	1957	1960	-	Sep	lastSun	2:00	0	S
                -+Zone America/Indiana/Winamac -5:46:25 - LMT	1883 Nov 18 12:13:35
                -+			-6:00	US	C%sT	1946
                -+			-6:00	Pulaski	C%sT	1961 Apr 30 2:00
                -+			-5:00	-	EST	1969
                -+			-5:00	US	E%sT	1971
                -+			-5:00	-	EST	2006 Apr  2 2:00
                -+			-6:00	US	C%sT	2007 Mar 11 2:00
                -+			-5:00	US	E%sT
                -+Zone America/Indiana/Vevay -5:40:16 -	LMT	1883 Nov 18 12:19:44
                -+			-6:00	US	C%sT	1954 Apr 25 2:00
                -+			-5:00	-	EST	1969
                -+			-5:00	US	E%sT	1973
                -+			-5:00	-	EST	2006
                -+			-5:00	US	E%sT
                -+Rule Louisville	1921	only	-	May	1	2:00	1:00	D
                -+Rule Louisville	1921	only	-	Sep	1	2:00	0	S
                -+Rule Louisville	1941	1961	-	Apr	lastSun	2:00	1:00	D
                -+Rule Louisville	1941	only	-	Sep	lastSun	2:00	0	S
                -+Rule Louisville	1946	only	-	Jun	2	2:00	0	S
                -+Rule Louisville	1950	1955	-	Sep	lastSun	2:00	0	S
                -+Rule Louisville	1956	1960	-	Oct	lastSun	2:00	0	S
                -+Zone America/Kentucky/Louisville -5:43:02 -	LMT	1883 Nov 18 12:16:58
                -+			-6:00	US	C%sT	1921
                -+			-6:00 Louisville C%sT	1942
                -+			-6:00	US	C%sT	1946
                -+			-6:00 Louisville C%sT	1961 Jul 23 2:00
                -+			-5:00	-	EST	1968
                -+			-5:00	US	E%sT	1974 Jan  6 2:00
                -+			-6:00	1:00	CDT	1974 Oct 27 2:00
                -+			-5:00	US	E%sT
                -+Zone America/Kentucky/Monticello -5:39:24 - LMT	1883 Nov 18 12:20:36
                -+			-6:00	US	C%sT	1946
                -+			-6:00	-	CST	1968
                -+			-6:00	US	C%sT	2000 Oct 29  2:00
                -+			-5:00	US	E%sT
                -+Rule	Detroit	1948	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Detroit	1948	only	-	Sep	lastSun	2:00	0	S
                -+Rule	Detroit	1967	only	-	Jun	14	2:00	1:00	D
                -+Rule	Detroit	1967	only	-	Oct	lastSun	2:00	0	S
                -+Zone America/Detroit	-5:32:11 -	LMT	1905
                -+			-6:00	-	CST	1915 May 15 2:00
                -+			-5:00	-	EST	1942
                -+			-5:00	US	E%sT	1946
                -+			-5:00	Detroit	E%sT	1973
                -+			-5:00	US	E%sT	1975
                -+			-5:00	-	EST	1975 Apr 27 2:00
                -+			-5:00	US	E%sT
                -+Rule Menominee	1946	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule Menominee	1946	only	-	Sep	lastSun	2:00	0	S
                -+Rule Menominee	1966	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule Menominee	1966	only	-	Oct	lastSun	2:00	0	S
                -+Zone America/Menominee	-5:50:27 -	LMT	1885 Sep 18 12:00
                -+			-6:00	US	C%sT	1946
                -+			-6:00 Menominee	C%sT	1969 Apr 27 2:00
                -+			-5:00	-	EST	1973 Apr 29 2:00
                -+			-6:00	US	C%sT
                -+Rule	Canada	1918	only	-	Apr	14	2:00	1:00	D
                -+Rule	Canada	1918	only	-	Oct	31	2:00	0	S
                -+Rule	Canada	1942	only	-	Feb	 9	2:00	1:00	W # War
                -+Rule	Canada	1945	only	-	Aug	14	23:00u	1:00	P # Peace
                -+Rule	Canada	1945	only	-	Sep	30	2:00	0	S
                -+Rule	Canada	1974	1986	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Canada	1974	2006	-	Oct	lastSun	2:00	0	S
                -+Rule	Canada	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
                -+Rule	Canada	2007	max	-	Mar	Sun>=8	2:00	1:00	D
                -+Rule	Canada	2007	max	-	Nov	Sun>=1	2:00	0	S
                -+Rule	StJohns	1917	only	-	Apr	 8	2:00	1:00	D
                -+Rule	StJohns	1917	only	-	Sep	17	2:00	0	S
                -+Rule	StJohns	1919	only	-	May	 5	23:00	1:00	D
                -+Rule	StJohns	1919	only	-	Aug	12	23:00	0	S
                -+Rule	StJohns	1920	1935	-	May	Sun>=1	23:00	1:00	D
                -+Rule	StJohns	1920	1935	-	Oct	lastSun	23:00	0	S
                -+Rule	StJohns	1936	1941	-	May	Mon>=9	0:00	1:00	D
                -+Rule	StJohns	1936	1941	-	Oct	Mon>=2	0:00	0	S
                -+Rule	StJohns	1946	1950	-	May	Sun>=8	2:00	1:00	D
                -+Rule	StJohns	1946	1950	-	Oct	Sun>=2	2:00	0	S
                -+Rule	StJohns	1951	1986	-	Apr	lastSun	2:00	1:00	D
                -+Rule	StJohns	1951	1959	-	Sep	lastSun	2:00	0	S
                -+Rule	StJohns	1960	1986	-	Oct	lastSun	2:00	0	S
                -+Rule	StJohns	1987	only	-	Apr	Sun>=1	0:01	1:00	D
                -+Rule	StJohns	1987	2006	-	Oct	lastSun	0:01	0	S
                -+Rule	StJohns	1988	only	-	Apr	Sun>=1	0:01	2:00	DD
                -+Rule	StJohns	1989	2006	-	Apr	Sun>=1	0:01	1:00	D
                -+Rule	StJohns	2007	max	-	Mar	Sun>=8	0:01	1:00	D
                -+Rule	StJohns	2007	max	-	Nov	Sun>=1	0:01	0	S
                -+Zone America/St_Johns	-3:30:52 -	LMT	1884
                -+			-3:30:52 StJohns N%sT	1918
                -+			-3:30:52 Canada	N%sT	1919
                -+			-3:30:52 StJohns N%sT	1935 Mar 30
                -+			-3:30	StJohns	N%sT	1942 May 11
                -+			-3:30	Canada	N%sT	1946
                -+			-3:30	StJohns	N%sT
                -+Zone America/Goose_Bay	-4:01:40 -	LMT	1884 # Happy Valley-Goose Bay
                -+			-3:30:52 -	NST	1918
                -+			-3:30:52 Canada N%sT	1919
                -+			-3:30:52 -	NST	1935 Mar 30
                -+			-3:30	-	NST	1936
                -+			-3:30	StJohns	N%sT	1942 May 11
                -+			-3:30	Canada	N%sT	1946
                -+			-3:30	StJohns	N%sT	1966 Mar 15 2:00
                -+			-4:00	StJohns	A%sT
                -+Rule	Halifax	1916	only	-	Apr	 1	0:00	1:00	D
                -+Rule	Halifax	1916	only	-	Oct	 1	0:00	0	S
                -+Rule	Halifax	1920	only	-	May	 9	0:00	1:00	D
                -+Rule	Halifax	1920	only	-	Aug	29	0:00	0	S
                -+Rule	Halifax	1921	only	-	May	 6	0:00	1:00	D
                -+Rule	Halifax	1921	1922	-	Sep	 5	0:00	0	S
                -+Rule	Halifax	1922	only	-	Apr	30	0:00	1:00	D
                -+Rule	Halifax	1923	1925	-	May	Sun>=1	0:00	1:00	D
                -+Rule	Halifax	1923	only	-	Sep	 4	0:00	0	S
                -+Rule	Halifax	1924	only	-	Sep	15	0:00	0	S
                -+Rule	Halifax	1925	only	-	Sep	28	0:00	0	S
                -+Rule	Halifax	1926	only	-	May	16	0:00	1:00	D
                -+Rule	Halifax	1926	only	-	Sep	13	0:00	0	S
                -+Rule	Halifax	1927	only	-	May	 1	0:00	1:00	D
                -+Rule	Halifax	1927	only	-	Sep	26	0:00	0	S
                -+Rule	Halifax	1928	1931	-	May	Sun>=8	0:00	1:00	D
                -+Rule	Halifax	1928	only	-	Sep	 9	0:00	0	S
                -+Rule	Halifax	1929	only	-	Sep	 3	0:00	0	S
                -+Rule	Halifax	1930	only	-	Sep	15	0:00	0	S
                -+Rule	Halifax	1931	1932	-	Sep	Mon>=24	0:00	0	S
                -+Rule	Halifax	1932	only	-	May	 1	0:00	1:00	D
                -+Rule	Halifax	1933	only	-	Apr	30	0:00	1:00	D
                -+Rule	Halifax	1933	only	-	Oct	 2	0:00	0	S
                -+Rule	Halifax	1934	only	-	May	20	0:00	1:00	D
                -+Rule	Halifax	1934	only	-	Sep	16	0:00	0	S
                -+Rule	Halifax	1935	only	-	Jun	 2	0:00	1:00	D
                -+Rule	Halifax	1935	only	-	Sep	30	0:00	0	S
                -+Rule	Halifax	1936	only	-	Jun	 1	0:00	1:00	D
                -+Rule	Halifax	1936	only	-	Sep	14	0:00	0	S
                -+Rule	Halifax	1937	1938	-	May	Sun>=1	0:00	1:00	D
                -+Rule	Halifax	1937	1941	-	Sep	Mon>=24	0:00	0	S
                -+Rule	Halifax	1939	only	-	May	28	0:00	1:00	D
                -+Rule	Halifax	1940	1941	-	May	Sun>=1	0:00	1:00	D
                -+Rule	Halifax	1946	1949	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Halifax	1946	1949	-	Sep	lastSun	2:00	0	S
                -+Rule	Halifax	1951	1954	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Halifax	1951	1954	-	Sep	lastSun	2:00	0	S
                -+Rule	Halifax	1956	1959	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Halifax	1956	1959	-	Sep	lastSun	2:00	0	S
                -+Rule	Halifax	1962	1973	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Halifax	1962	1973	-	Oct	lastSun	2:00	0	S
                -+Zone America/Halifax	-4:14:24 -	LMT	1902 Jun 15
                -+			-4:00	Halifax	A%sT	1918
                -+			-4:00	Canada	A%sT	1919
                -+			-4:00	Halifax	A%sT	1942 Feb  9 2:00s
                -+			-4:00	Canada	A%sT	1946
                -+			-4:00	Halifax	A%sT	1974
                -+			-4:00	Canada	A%sT
                -+Zone America/Glace_Bay	-3:59:48 -	LMT	1902 Jun 15
                -+			-4:00	Canada	A%sT	1953
                -+			-4:00	Halifax	A%sT	1954
                -+			-4:00	-	AST	1972
                -+			-4:00	Halifax	A%sT	1974
                -+			-4:00	Canada	A%sT
                -+Rule	Moncton	1933	1935	-	Jun	Sun>=8	1:00	1:00	D
                -+Rule	Moncton	1933	1935	-	Sep	Sun>=8	1:00	0	S
                -+Rule	Moncton	1936	1938	-	Jun	Sun>=1	1:00	1:00	D
                -+Rule	Moncton	1936	1938	-	Sep	Sun>=1	1:00	0	S
                -+Rule	Moncton	1939	only	-	May	27	1:00	1:00	D
                -+Rule	Moncton	1939	1941	-	Sep	Sat>=21	1:00	0	S
                -+Rule	Moncton	1940	only	-	May	19	1:00	1:00	D
                -+Rule	Moncton	1941	only	-	May	 4	1:00	1:00	D
                -+Rule	Moncton	1946	1972	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Moncton	1946	1956	-	Sep	lastSun	2:00	0	S
                -+Rule	Moncton	1957	1972	-	Oct	lastSun	2:00	0	S
                -+Rule	Moncton	1993	2006	-	Apr	Sun>=1	0:01	1:00	D
                -+Rule	Moncton	1993	2006	-	Oct	lastSun	0:01	0	S
                -+Zone America/Moncton	-4:19:08 -	LMT	1883 Dec  9
                -+			-5:00	-	EST	1902 Jun 15
                -+			-4:00	Canada	A%sT	1933
                -+			-4:00	Moncton	A%sT	1942
                -+			-4:00	Canada	A%sT	1946
                -+			-4:00	Moncton	A%sT	1973
                -+			-4:00	Canada	A%sT	1993
                -+			-4:00	Moncton	A%sT	2007
                -+			-4:00	Canada	A%sT
                -+Rule	Mont	1917	only	-	Mar	25	2:00	1:00	D
                -+Rule	Mont	1917	only	-	Apr	24	0:00	0	S
                -+Rule	Mont	1919	only	-	Mar	31	2:30	1:00	D
                -+Rule	Mont	1919	only	-	Oct	25	2:30	0	S
                -+Rule	Mont	1920	only	-	May	 2	2:30	1:00	D
                -+Rule	Mont	1920	1922	-	Oct	Sun>=1	2:30	0	S
                -+Rule	Mont	1921	only	-	May	 1	2:00	1:00	D
                -+Rule	Mont	1922	only	-	Apr	30	2:00	1:00	D
                -+Rule	Mont	1924	only	-	May	17	2:00	1:00	D
                -+Rule	Mont	1924	1926	-	Sep	lastSun	2:30	0	S
                -+Rule	Mont	1925	1926	-	May	Sun>=1	2:00	1:00	D
                -+Rule	Mont	1927	only	-	May	1	0:00	1:00	D
                -+Rule	Mont	1927	1932	-	Sep	lastSun	0:00	0	S
                -+Rule	Mont	1928	1931	-	Apr	lastSun	0:00	1:00	D
                -+Rule	Mont	1932	only	-	May	1	0:00	1:00	D
                -+Rule	Mont	1933	1940	-	Apr	lastSun	0:00	1:00	D
                -+Rule	Mont	1933	only	-	Oct	1	0:00	0	S
                -+Rule	Mont	1934	1939	-	Sep	lastSun	0:00	0	S
                -+Rule	Mont	1946	1973	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Mont	1945	1948	-	Sep	lastSun	2:00	0	S
                -+Rule	Mont	1949	1950	-	Oct	lastSun	2:00	0	S
                -+Rule	Mont	1951	1956	-	Sep	lastSun	2:00	0	S
                -+Rule	Mont	1957	1973	-	Oct	lastSun	2:00	0	S
                -+Zone America/Blanc-Sablon -3:48:28 -	LMT	1884
                -+			-4:00	Canada	A%sT	1970
                -+			-4:00	-	AST
                -+Zone America/Montreal	-4:54:16 -	LMT	1884
                -+			-5:00	Mont	E%sT	1918
                -+			-5:00	Canada	E%sT	1919
                -+			-5:00	Mont	E%sT	1942 Feb  9 2:00s
                -+			-5:00	Canada	E%sT	1946
                -+			-5:00	Mont	E%sT	1974
                -+			-5:00	Canada	E%sT
                -+Rule	Toronto	1919	only	-	Mar	30	23:30	1:00	D
                -+Rule	Toronto	1919	only	-	Oct	26	0:00	0	S
                -+Rule	Toronto	1920	only	-	May	 2	2:00	1:00	D
                -+Rule	Toronto	1920	only	-	Sep	26	0:00	0	S
                -+Rule	Toronto	1921	only	-	May	15	2:00	1:00	D
                -+Rule	Toronto	1921	only	-	Sep	15	2:00	0	S
                -+Rule	Toronto	1922	1923	-	May	Sun>=8	2:00	1:00	D
                -+Rule	Toronto	1922	1926	-	Sep	Sun>=15	2:00	0	S
                -+Rule	Toronto	1924	1927	-	May	Sun>=1	2:00	1:00	D
                -+Rule	Toronto	1927	1932	-	Sep	lastSun	2:00	0	S
                -+Rule	Toronto	1928	1931	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Toronto	1932	only	-	May	1	2:00	1:00	D
                -+Rule	Toronto	1933	1940	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Toronto	1933	only	-	Oct	1	2:00	0	S
                -+Rule	Toronto	1934	1939	-	Sep	lastSun	2:00	0	S
                -+Rule	Toronto	1945	1946	-	Sep	lastSun	2:00	0	S
                -+Rule	Toronto	1946	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Toronto	1947	1949	-	Apr	lastSun	0:00	1:00	D
                -+Rule	Toronto	1947	1948	-	Sep	lastSun	0:00	0	S
                -+Rule	Toronto	1949	only	-	Nov	lastSun	0:00	0	S
                -+Rule	Toronto	1950	1973	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Toronto	1950	only	-	Nov	lastSun	2:00	0	S
                -+Rule	Toronto	1951	1956	-	Sep	lastSun	2:00	0	S
                -+Rule	Toronto	1957	1973	-	Oct	lastSun	2:00	0	S
                -+Zone America/Toronto	-5:17:32 -	LMT	1895
                -+			-5:00	Canada	E%sT	1919
                -+			-5:00	Toronto	E%sT	1942 Feb  9 2:00s
                -+			-5:00	Canada	E%sT	1946
                -+			-5:00	Toronto	E%sT	1974
                -+			-5:00	Canada	E%sT
                -+Zone America/Thunder_Bay -5:57:00 -	LMT	1895
                -+			-6:00	-	CST	1910
                -+			-5:00	-	EST	1942
                -+			-5:00	Canada	E%sT	1970
                -+			-5:00	Mont	E%sT	1973
                -+			-5:00	-	EST	1974
                -+			-5:00	Canada	E%sT
                -+Zone America/Nipigon	-5:53:04 -	LMT	1895
                -+			-5:00	Canada	E%sT	1940 Sep 29
                -+			-5:00	1:00	EDT	1942 Feb  9 2:00s
                -+			-5:00	Canada	E%sT
                -+Zone America/Rainy_River -6:18:16 -	LMT	1895
                -+			-6:00	Canada	C%sT	1940 Sep 29
                -+			-6:00	1:00	CDT	1942 Feb  9 2:00s
                -+			-6:00	Canada	C%sT
                -+Zone America/Atikokan	-6:06:28 -	LMT	1895
                -+			-6:00	Canada	C%sT	1940 Sep 29
                -+			-6:00	1:00	CDT	1942 Feb  9 2:00s
                -+			-6:00	Canada	C%sT	1945 Sep 30 2:00
                -+			-5:00	-	EST
                -+Rule	Winn	1916	only	-	Apr	23	0:00	1:00	D
                -+Rule	Winn	1916	only	-	Sep	17	0:00	0	S
                -+Rule	Winn	1918	only	-	Apr	14	2:00	1:00	D
                -+Rule	Winn	1918	only	-	Oct	31	2:00	0	S
                -+Rule	Winn	1937	only	-	May	16	2:00	1:00	D
                -+Rule	Winn	1937	only	-	Sep	26	2:00	0	S
                -+Rule	Winn	1942	only	-	Feb	 9	2:00	1:00	W # War
                -+Rule	Winn	1945	only	-	Aug	14	23:00u	1:00	P # Peace
                -+Rule	Winn	1945	only	-	Sep	lastSun	2:00	0	S
                -+Rule	Winn	1946	only	-	May	12	2:00	1:00	D
                -+Rule	Winn	1946	only	-	Oct	13	2:00	0	S
                -+Rule	Winn	1947	1949	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Winn	1947	1949	-	Sep	lastSun	2:00	0	S
                -+Rule	Winn	1950	only	-	May	 1	2:00	1:00	D
                -+Rule	Winn	1950	only	-	Sep	30	2:00	0	S
                -+Rule	Winn	1951	1960	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Winn	1951	1958	-	Sep	lastSun	2:00	0	S
                -+Rule	Winn	1959	only	-	Oct	lastSun	2:00	0	S
                -+Rule	Winn	1960	only	-	Sep	lastSun	2:00	0	S
                -+Rule	Winn	1963	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Winn	1963	only	-	Sep	22	2:00	0	S
                -+Rule	Winn	1966	1986	-	Apr	lastSun	2:00s	1:00	D
                -+Rule	Winn	1966	2005	-	Oct	lastSun	2:00s	0	S
                -+Rule	Winn	1987	2005	-	Apr	Sun>=1	2:00s	1:00	D
                -+Zone America/Winnipeg	-6:28:36 -	LMT	1887 Jul 16
                -+			-6:00	Winn	C%sT	2006
                -+			-6:00	Canada	C%sT
                -+Rule	Regina	1918	only	-	Apr	14	2:00	1:00	D
                -+Rule	Regina	1918	only	-	Oct	31	2:00	0	S
                -+Rule	Regina	1930	1934	-	May	Sun>=1	0:00	1:00	D
                -+Rule	Regina	1930	1934	-	Oct	Sun>=1	0:00	0	S
                -+Rule	Regina	1937	1941	-	Apr	Sun>=8	0:00	1:00	D
                -+Rule	Regina	1937	only	-	Oct	Sun>=8	0:00	0	S
                -+Rule	Regina	1938	only	-	Oct	Sun>=1	0:00	0	S
                -+Rule	Regina	1939	1941	-	Oct	Sun>=8	0:00	0	S
                -+Rule	Regina	1942	only	-	Feb	 9	2:00	1:00	W # War
                -+Rule	Regina	1945	only	-	Aug	14	23:00u	1:00	P # Peace
                -+Rule	Regina	1945	only	-	Sep	lastSun	2:00	0	S
                -+Rule	Regina	1946	only	-	Apr	Sun>=8	2:00	1:00	D
                -+Rule	Regina	1946	only	-	Oct	Sun>=8	2:00	0	S
                -+Rule	Regina	1947	1957	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Regina	1947	1957	-	Sep	lastSun	2:00	0	S
                -+Rule	Regina	1959	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Regina	1959	only	-	Oct	lastSun	2:00	0	S
                -+Rule	Swift	1957	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Swift	1957	only	-	Oct	lastSun	2:00	0	S
                -+Rule	Swift	1959	1961	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Swift	1959	only	-	Oct	lastSun	2:00	0	S
                -+Rule	Swift	1960	1961	-	Sep	lastSun	2:00	0	S
                -+Zone America/Regina	-6:58:36 -	LMT	1905 Sep
                -+			-7:00	Regina	M%sT	1960 Apr lastSun 2:00
                -+			-6:00	-	CST
                -+Zone America/Swift_Current -7:11:20 -	LMT	1905 Sep
                -+			-7:00	Canada	M%sT	1946 Apr lastSun 2:00
                -+			-7:00	Regina	M%sT	1950
                -+			-7:00	Swift	M%sT	1972 Apr lastSun 2:00
                -+			-6:00	-	CST
                -+Rule	Edm	1918	1919	-	Apr	Sun>=8	2:00	1:00	D
                -+Rule	Edm	1918	only	-	Oct	31	2:00	0	S
                -+Rule	Edm	1919	only	-	May	27	2:00	0	S
                -+Rule	Edm	1920	1923	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Edm	1920	only	-	Oct	lastSun	2:00	0	S
                -+Rule	Edm	1921	1923	-	Sep	lastSun	2:00	0	S
                -+Rule	Edm	1942	only	-	Feb	 9	2:00	1:00	W # War
                -+Rule	Edm	1945	only	-	Aug	14	23:00u	1:00	P # Peace
                -+Rule	Edm	1945	only	-	Sep	lastSun	2:00	0	S
                -+Rule	Edm	1947	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Edm	1947	only	-	Sep	lastSun	2:00	0	S
                -+Rule	Edm	1967	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Edm	1967	only	-	Oct	lastSun	2:00	0	S
                -+Rule	Edm	1969	only	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Edm	1969	only	-	Oct	lastSun	2:00	0	S
                -+Rule	Edm	1972	1986	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Edm	1972	2006	-	Oct	lastSun	2:00	0	S
                -+Zone America/Edmonton	-7:33:52 -	LMT	1906 Sep
                -+			-7:00	Edm	M%sT	1987
                -+			-7:00	Canada	M%sT
                -+Rule	Vanc	1918	only	-	Apr	14	2:00	1:00	D
                -+Rule	Vanc	1918	only	-	Oct	31	2:00	0	S
                -+Rule	Vanc	1942	only	-	Feb	 9	2:00	1:00	W # War
                -+Rule	Vanc	1945	only	-	Aug	14	23:00u	1:00	P # Peace
                -+Rule	Vanc	1945	only	-	Sep	30	2:00	0	S
                -+Rule	Vanc	1946	1986	-	Apr	lastSun	2:00	1:00	D
                -+Rule	Vanc	1946	only	-	Oct	13	2:00	0	S
                -+Rule	Vanc	1947	1961	-	Sep	lastSun	2:00	0	S
                -+Rule	Vanc	1962	2006	-	Oct	lastSun	2:00	0	S
                -+Zone America/Vancouver	-8:12:28 -	LMT	1884
                -+			-8:00	Vanc	P%sT	1987
                -+			-8:00	Canada	P%sT
                -+Zone America/Dawson_Creek -8:00:56 -	LMT	1884
                -+			-8:00	Canada	P%sT	1947
                -+			-8:00	Vanc	P%sT	1972 Aug 30 2:00
                -+			-7:00	-	MST
                -+Rule	NT_YK	1918	only	-	Apr	14	2:00	1:00	D
                -+Rule	NT_YK	1918	only	-	Oct	27	2:00	0	S
                -+Rule	NT_YK	1919	only	-	May	25	2:00	1:00	D
                -+Rule	NT_YK	1919	only	-	Nov	 1	0:00	0	S
                -+Rule	NT_YK	1942	only	-	Feb	 9	2:00	1:00	W # War
                -+Rule	NT_YK	1945	only	-	Aug	14	23:00u	1:00	P # Peace
                -+Rule	NT_YK	1945	only	-	Sep	30	2:00	0	S
                -+Rule	NT_YK	1965	only	-	Apr	lastSun	0:00	2:00	DD
                -+Rule	NT_YK	1965	only	-	Oct	lastSun	2:00	0	S
                -+Rule	NT_YK	1980	1986	-	Apr	lastSun	2:00	1:00	D
                -+Rule	NT_YK	1980	2006	-	Oct	lastSun	2:00	0	S
                -+Rule	NT_YK	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
                -+Zone America/Pangnirtung 0	-	zzz	1921 # trading post est.
                -+			-4:00	NT_YK	A%sT	1995 Apr Sun>=1 2:00
                -+			-5:00	Canada	E%sT	1999 Oct 31 2:00
                -+			-6:00	Canada	C%sT	2000 Oct 29 2:00
                -+			-5:00	Canada	E%sT
                -+Zone America/Iqaluit	0	-	zzz	1942 Aug # Frobisher Bay est.
                -+			-5:00	NT_YK	E%sT	1999 Oct 31 2:00
                -+			-6:00	Canada	C%sT	2000 Oct 29 2:00
                -+			-5:00	Canada	E%sT
                -+Rule	Resolute 2006	max	-	Nov	Sun>=1	2:00	0	ES
                -+Rule	Resolute 2007	max	-	Mar	Sun>=8	2:00	0	CD
                -+Zone America/Resolute	0	-	zzz	1947 Aug 31 # Resolute founded
                -+			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
                -+			-5:00	-	EST	2001 Apr  1 3:00
                -+			-6:00	Canada	C%sT	2006 Oct 29 2:00
                -+			-5:00	Resolute	%sT
                -+Zone America/Rankin_Inlet 0	-	zzz	1957 # Rankin Inlet founded
                -+			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
                -+			-5:00	-	EST	2001 Apr  1 3:00
                -+			-6:00	Canada	C%sT
                -+Zone America/Cambridge_Bay 0	-	zzz	1920 # trading post est.?
                -+			-7:00	NT_YK	M%sT	1999 Oct 31 2:00
                -+			-6:00	Canada	C%sT	2000 Oct 29 2:00
                -+			-5:00	-	EST	2000 Nov  5 0:00
                -+			-6:00	-	CST	2001 Apr  1 3:00
                -+			-7:00	Canada	M%sT
                -+Zone America/Yellowknife 0	-	zzz	1935 # Yellowknife founded?
                -+			-7:00	NT_YK	M%sT	1980
                -+			-7:00	Canada	M%sT
                -+Zone America/Inuvik	0	-	zzz	1953 # Inuvik founded
                -+			-8:00	NT_YK	P%sT	1979 Apr lastSun 2:00
                -+			-7:00	NT_YK	M%sT	1980
                -+			-7:00	Canada	M%sT
                -+Zone America/Whitehorse	-9:00:12 -	LMT	1900 Aug 20
                -+			-9:00	NT_YK	Y%sT	1966 Jul 1 2:00
                -+			-8:00	NT_YK	P%sT	1980
                -+			-8:00	Canada	P%sT
                -+Zone America/Dawson	-9:17:40 -	LMT	1900 Aug 20
                -+			-9:00	NT_YK	Y%sT	1973 Oct 28 0:00
                -+			-8:00	NT_YK	P%sT	1980
                -+			-8:00	Canada	P%sT
                -+Rule	Mexico	1939	only	-	Feb	5	0:00	1:00	D
                -+Rule	Mexico	1939	only	-	Jun	25	0:00	0	S
                -+Rule	Mexico	1940	only	-	Dec	9	0:00	1:00	D
                -+Rule	Mexico	1941	only	-	Apr	1	0:00	0	S
                -+Rule	Mexico	1943	only	-	Dec	16	0:00	1:00	W # War
                -+Rule	Mexico	1944	only	-	May	1	0:00	0	S
                -+Rule	Mexico	1950	only	-	Feb	12	0:00	1:00	D
                -+Rule	Mexico	1950	only	-	Jul	30	0:00	0	S
                -+Rule	Mexico	1996	2000	-	Apr	Sun>=1	2:00	1:00	D
                -+Rule	Mexico	1996	2000	-	Oct	lastSun	2:00	0	S
                -+Rule	Mexico	2001	only	-	May	Sun>=1	2:00	1:00	D
                -+Rule	Mexico	2001	only	-	Sep	lastSun	2:00	0	S
                -+Rule	Mexico	2002	max	-	Apr	Sun>=1	2:00	1:00	D
                -+Rule	Mexico	2002	max	-	Oct	lastSun	2:00	0	S
                -+Zone America/Cancun	-5:47:04 -	LMT	1922 Jan  1  0:12:56
                -+			-6:00	-	CST	1981 Dec 23
                -+			-5:00	Mexico	E%sT	1998 Aug  2  2:00
                -+			-6:00	Mexico	C%sT
                -+Zone America/Merida	-5:58:28 -	LMT	1922 Jan  1  0:01:32
                -+			-6:00	-	CST	1981 Dec 23
                -+			-5:00	-	EST	1982 Dec  2
                -+			-6:00	Mexico	C%sT
                -+Zone America/Matamoros	-6:40:00 -	LMT	1921 Dec 31 23:20:00
                -+			-6:00	-	CST	1988
                -+			-6:00	US	C%sT	1989
                -+			-6:00	Mexico	C%sT	2010
                -+			-6:00	US	C%sT
                -+Zone America/Monterrey	-6:41:16 -	LMT	1921 Dec 31 23:18:44
                -+			-6:00	-	CST	1988
                -+			-6:00	US	C%sT	1989
                -+			-6:00	Mexico	C%sT
                -+Zone America/Mexico_City -6:36:36 -	LMT	1922 Jan  1 0:23:24
                -+			-7:00	-	MST	1927 Jun 10 23:00
                -+			-6:00	-	CST	1930 Nov 15
                -+			-7:00	-	MST	1931 May  1 23:00
                -+			-6:00	-	CST	1931 Oct
                -+			-7:00	-	MST	1932 Apr  1
                -+			-6:00	Mexico	C%sT	2001 Sep 30 02:00
                -+			-6:00	-	CST	2002 Feb 20
                -+			-6:00	Mexico	C%sT
                -+Zone America/Ojinaga	-6:57:40 -	LMT	1922 Jan 1 0:02:20
                -+			-7:00	-	MST	1927 Jun 10 23:00
                -+			-6:00	-	CST	1930 Nov 15
                -+			-7:00	-	MST	1931 May  1 23:00
                -+			-6:00	-	CST	1931 Oct
                -+			-7:00	-	MST	1932 Apr  1
                -+			-6:00	-	CST	1996
                -+			-6:00	Mexico	C%sT	1998
                -+			-6:00	-	CST	1998 Apr Sun>=1 3:00
                -+			-7:00	Mexico	M%sT	2010
                -+			-7:00	US	M%sT
                -+Zone America/Chihuahua	-7:04:20 -	LMT	1921 Dec 31 23:55:40
                -+			-7:00	-	MST	1927 Jun 10 23:00
                -+			-6:00	-	CST	1930 Nov 15
                -+			-7:00	-	MST	1931 May  1 23:00
                -+			-6:00	-	CST	1931 Oct
                -+			-7:00	-	MST	1932 Apr  1
                -+			-6:00	-	CST	1996
                -+			-6:00	Mexico	C%sT	1998
                -+			-6:00	-	CST	1998 Apr Sun>=1 3:00
                -+			-7:00	Mexico	M%sT
                -+Zone America/Hermosillo	-7:23:52 -	LMT	1921 Dec 31 23:36:08
                -+			-7:00	-	MST	1927 Jun 10 23:00
                -+			-6:00	-	CST	1930 Nov 15
                -+			-7:00	-	MST	1931 May  1 23:00
                -+			-6:00	-	CST	1931 Oct
                -+			-7:00	-	MST	1932 Apr  1
                -+			-6:00	-	CST	1942 Apr 24
                -+			-7:00	-	MST	1949 Jan 14
                -+			-8:00	-	PST	1970
                -+			-7:00	Mexico	M%sT	1999
                -+			-7:00	-	MST
                -+Zone America/Mazatlan	-7:05:40 -	LMT	1921 Dec 31 23:54:20
                -+			-7:00	-	MST	1927 Jun 10 23:00
                -+			-6:00	-	CST	1930 Nov 15
                -+			-7:00	-	MST	1931 May  1 23:00
                -+			-6:00	-	CST	1931 Oct
                -+			-7:00	-	MST	1932 Apr  1
                -+			-6:00	-	CST	1942 Apr 24
                -+			-7:00	-	MST	1949 Jan 14
                -+			-8:00	-	PST	1970
                -+			-7:00	Mexico	M%sT
                -+Zone America/Bahia_Banderas	-7:01:00 -	LMT	1921 Dec 31 23:59:00
                -+			-7:00	-	MST	1927 Jun 10 23:00
                -+			-6:00	-	CST	1930 Nov 15
                -+			-7:00	-	MST	1931 May  1 23:00
                -+			-6:00	-	CST	1931 Oct
                -+			-7:00	-	MST	1932 Apr  1
                -+			-6:00	-	CST	1942 Apr 24
                -+			-7:00	-	MST	1949 Jan 14
                -+			-8:00	-	PST	1970
                -+			-7:00	Mexico	M%sT	2010 Apr 4 2:00
                -+			-6:00	Mexico	C%sT
                -+Zone America/Tijuana	-7:48:04 -	LMT	1922 Jan  1  0:11:56
                -+			-7:00	-	MST	1924
                -+			-8:00	-	PST	1927 Jun 10 23:00
                -+			-7:00	-	MST	1930 Nov 15
                -+			-8:00	-	PST	1931 Apr  1
                -+			-8:00	1:00	PDT	1931 Sep 30
                -+			-8:00	-	PST	1942 Apr 24
                -+			-8:00	1:00	PWT	1945 Aug 14 23:00u
                -+			-8:00	1:00	PPT	1945 Nov 12 # Peace
                -+			-8:00	-	PST	1948 Apr  5
                -+			-8:00	1:00	PDT	1949 Jan 14
                -+			-8:00	-	PST	1954
                -+			-8:00	CA	P%sT	1961
                -+			-8:00	-	PST	1976
                -+			-8:00	US	P%sT	1996
                -+			-8:00	Mexico	P%sT	2001
                -+			-8:00	US	P%sT	2002 Feb 20
                -+			-8:00	Mexico	P%sT	2010
                -+			-8:00	US	P%sT
                -+Zone America/Santa_Isabel	-7:39:28 -	LMT	1922 Jan  1  0:20:32
                -+			-7:00	-	MST	1924
                -+			-8:00	-	PST	1927 Jun 10 23:00
                -+			-7:00	-	MST	1930 Nov 15
                -+			-8:00	-	PST	1931 Apr  1
                -+			-8:00	1:00	PDT	1931 Sep 30
                -+			-8:00	-	PST	1942 Apr 24
                -+			-8:00	1:00	PWT	1945 Aug 14 23:00u
                -+			-8:00	1:00	PPT	1945 Nov 12 # Peace
                -+			-8:00	-	PST	1948 Apr  5
                -+			-8:00	1:00	PDT	1949 Jan 14
                -+			-8:00	-	PST	1954
                -+			-8:00	CA	P%sT	1961
                -+			-8:00	-	PST	1976
                -+			-8:00	US	P%sT	1996
                -+			-8:00	Mexico	P%sT	2001
                -+			-8:00	US	P%sT	2002 Feb 20
                -+			-8:00	Mexico	P%sT
                -+Zone America/Anguilla	-4:12:16 -	LMT	1912 Mar 2
                -+			-4:00	-	AST
                -+Zone	America/Antigua	-4:07:12 -	LMT	1912 Mar 2
                -+			-5:00	-	EST	1951
                -+			-4:00	-	AST
                -+Rule	Bahamas	1964	1975	-	Oct	lastSun	2:00	0	S
                -+Rule	Bahamas	1964	1975	-	Apr	lastSun	2:00	1:00	D
                -+Zone	America/Nassau	-5:09:24 -	LMT	1912 Mar 2
                -+			-5:00	Bahamas	E%sT	1976
                -+			-5:00	US	E%sT
                -+Rule	Barb	1977	only	-	Jun	12	2:00	1:00	D
                -+Rule	Barb	1977	1978	-	Oct	Sun>=1	2:00	0	S
                -+Rule	Barb	1978	1980	-	Apr	Sun>=15	2:00	1:00	D
                -+Rule	Barb	1979	only	-	Sep	30	2:00	0	S
                -+Rule	Barb	1980	only	-	Sep	25	2:00	0	S
                -+Zone America/Barbados	-3:58:28 -	LMT	1924		# Bridgetown
                -+			-3:58:28 -	BMT	1932	  # Bridgetown Mean Time
                -+			-4:00	Barb	A%sT
                -+Rule	Belize	1918	1942	-	Oct	Sun>=2	0:00	0:30	HD
                -+Rule	Belize	1919	1943	-	Feb	Sun>=9	0:00	0	S
                -+Rule	Belize	1973	only	-	Dec	 5	0:00	1:00	D
                -+Rule	Belize	1974	only	-	Feb	 9	0:00	0	S
                -+Rule	Belize	1982	only	-	Dec	18	0:00	1:00	D
                -+Rule	Belize	1983	only	-	Feb	12	0:00	0	S
                -+Zone	America/Belize	-5:52:48 -	LMT	1912 Apr
                -+			-6:00	Belize	C%sT
                -+Zone Atlantic/Bermuda	-4:19:04 -	LMT	1930 Jan  1 2:00    # Hamilton
                -+			-4:00	-	AST	1974 Apr 28 2:00
                -+			-4:00	Bahamas	A%sT	1976
                -+			-4:00	US	A%sT
                -+Zone	America/Cayman	-5:25:32 -	LMT	1890		# Georgetown
                -+			-5:07:12 -	KMT	1912 Feb    # Kingston Mean Time
                -+			-5:00	-	EST
                -+Rule	CR	1979	1980	-	Feb	lastSun	0:00	1:00	D
                -+Rule	CR	1979	1980	-	Jun	Sun>=1	0:00	0	S
                -+Rule	CR	1991	1992	-	Jan	Sat>=15	0:00	1:00	D
                -+Rule	CR	1991	only	-	Jul	 1	0:00	0	S
                -+Rule	CR	1992	only	-	Mar	15	0:00	0	S
                -+Zone America/Costa_Rica	-5:36:20 -	LMT	1890		# San Jose
                -+			-5:36:20 -	SJMT	1921 Jan 15 # San Jose Mean Time
                -+			-6:00	CR	C%sT
                -+Rule	Cuba	1928	only	-	Jun	10	0:00	1:00	D
                -+Rule	Cuba	1928	only	-	Oct	10	0:00	0	S
                -+Rule	Cuba	1940	1942	-	Jun	Sun>=1	0:00	1:00	D
                -+Rule	Cuba	1940	1942	-	Sep	Sun>=1	0:00	0	S
                -+Rule	Cuba	1945	1946	-	Jun	Sun>=1	0:00	1:00	D
                -+Rule	Cuba	1945	1946	-	Sep	Sun>=1	0:00	0	S
                -+Rule	Cuba	1965	only	-	Jun	1	0:00	1:00	D
                -+Rule	Cuba	1965	only	-	Sep	30	0:00	0	S
                -+Rule	Cuba	1966	only	-	May	29	0:00	1:00	D
                -+Rule	Cuba	1966	only	-	Oct	2	0:00	0	S
                -+Rule	Cuba	1967	only	-	Apr	8	0:00	1:00	D
                -+Rule	Cuba	1967	1968	-	Sep	Sun>=8	0:00	0	S
                -+Rule	Cuba	1968	only	-	Apr	14	0:00	1:00	D
                -+Rule	Cuba	1969	1977	-	Apr	lastSun	0:00	1:00	D
                -+Rule	Cuba	1969	1971	-	Oct	lastSun	0:00	0	S
                -+Rule	Cuba	1972	1974	-	Oct	8	0:00	0	S
                -+Rule	Cuba	1975	1977	-	Oct	lastSun	0:00	0	S
                -+Rule	Cuba	1978	only	-	May	7	0:00	1:00	D
                -+Rule	Cuba	1978	1990	-	Oct	Sun>=8	0:00	0	S
                -+Rule	Cuba	1979	1980	-	Mar	Sun>=15	0:00	1:00	D
                -+Rule	Cuba	1981	1985	-	May	Sun>=5	0:00	1:00	D
                -+Rule	Cuba	1986	1989	-	Mar	Sun>=14	0:00	1:00	D
                -+Rule	Cuba	1990	1997	-	Apr	Sun>=1	0:00	1:00	D
                -+Rule	Cuba	1991	1995	-	Oct	Sun>=8	0:00s	0	S
                -+Rule	Cuba	1996	only	-	Oct	 6	0:00s	0	S
                -+Rule	Cuba	1997	only	-	Oct	12	0:00s	0	S
                -+Rule	Cuba	1998	1999	-	Mar	lastSun	0:00s	1:00	D
                -+Rule	Cuba	1998	2003	-	Oct	lastSun	0:00s	0	S
                -+Rule	Cuba	2000	2004	-	Apr	Sun>=1	0:00s	1:00	D
                -+Rule	Cuba	2006	max	-	Oct	lastSun	0:00s	0	S
                -+Rule	Cuba	2007	only	-	Mar	Sun>=8	0:00s	1:00	D
                -+Rule	Cuba	2008	only	-	Mar	Sun>=15	0:00s	1:00	D
                -+Rule	Cuba	2009	2010	-	Mar	Sun>=8	0:00s	1:00	D
                -+Rule	Cuba	2011	only	-	Mar	Sun>=15	0:00s	1:00	D
                -+Rule	Cuba	2012	max	-	Mar	Sun>=8	0:00s	1:00	D
                -+Zone	America/Havana	-5:29:28 -	LMT	1890
                -+			-5:29:36 -	HMT	1925 Jul 19 12:00 # Havana MT
                -+			-5:00	Cuba	C%sT
                -+Zone America/Dominica	-4:05:36 -	LMT	1911 Jul 1 0:01		# Roseau
                -+			-4:00	-	AST
                -+Rule	DR	1966	only	-	Oct	30	0:00	1:00	D
                -+Rule	DR	1967	only	-	Feb	28	0:00	0	S
                -+Rule	DR	1969	1973	-	Oct	lastSun	0:00	0:30	HD
                -+Rule	DR	1970	only	-	Feb	21	0:00	0	S
                -+Rule	DR	1971	only	-	Jan	20	0:00	0	S
                -+Rule	DR	1972	1974	-	Jan	21	0:00	0	S
                -+Zone America/Santo_Domingo -4:39:36 -	LMT	1890
                -+			-4:40	-	SDMT	1933 Apr  1 12:00 # S. Dom. MT
                -+			-5:00	DR	E%sT	1974 Oct 27
                -+			-4:00	-	AST	2000 Oct 29 02:00
                -+			-5:00	US	E%sT	2000 Dec  3 01:00
                -+			-4:00	-	AST
                -+Rule	Salv	1987	1988	-	May	Sun>=1	0:00	1:00	D
                -+Rule	Salv	1987	1988	-	Sep	lastSun	0:00	0	S
                -+Zone America/El_Salvador -5:56:48 -	LMT	1921		# San Salvador
                -+			-6:00	Salv	C%sT
                -+Zone	America/Grenada	-4:07:00 -	LMT	1911 Jul	# St George's
                -+			-4:00	-	AST
                -+Zone America/Guadeloupe	-4:06:08 -	LMT	1911 Jun 8	# Pointe a Pitre
                -+			-4:00	-	AST
                -+Link America/Guadeloupe	America/St_Barthelemy
                -+Link America/Guadeloupe	America/Marigot
                -+Rule	Guat	1973	only	-	Nov	25	0:00	1:00	D
                -+Rule	Guat	1974	only	-	Feb	24	0:00	0	S
                -+Rule	Guat	1983	only	-	May	21	0:00	1:00	D
                -+Rule	Guat	1983	only	-	Sep	22	0:00	0	S
                -+Rule	Guat	1991	only	-	Mar	23	0:00	1:00	D
                -+Rule	Guat	1991	only	-	Sep	 7	0:00	0	S
                -+Rule	Guat	2006	only	-	Apr	30	0:00	1:00	D
                -+Rule	Guat	2006	only	-	Oct	 1	0:00	0	S
                -+Zone America/Guatemala	-6:02:04 -	LMT	1918 Oct 5
                -+			-6:00	Guat	C%sT
                -+Rule	Haiti	1983	only	-	May	8	0:00	1:00	D
                -+Rule	Haiti	1984	1987	-	Apr	lastSun	0:00	1:00	D
                -+Rule	Haiti	1983	1987	-	Oct	lastSun	0:00	0	S
                -+Rule	Haiti	1988	1997	-	Apr	Sun>=1	1:00s	1:00	D
                -+Rule	Haiti	1988	1997	-	Oct	lastSun	1:00s	0	S
                -+Rule	Haiti	2005	2006	-	Apr	Sun>=1	0:00	1:00	D
                -+Rule	Haiti	2005	2006	-	Oct	lastSun	0:00	0	S
                -+Zone America/Port-au-Prince -4:49:20 -	LMT	1890
                -+			-4:49	-	PPMT	1917 Jan 24 12:00 # P-a-P MT
                -+			-5:00	Haiti	E%sT
                -+Rule	Hond	1987	1988	-	May	Sun>=1	0:00	1:00	D
                -+Rule	Hond	1987	1988	-	Sep	lastSun	0:00	0	S
                -+Rule	Hond	2006	only	-	May	Sun>=1	0:00	1:00	D
                -+Rule	Hond	2006	only	-	Aug	Mon>=1	0:00	0	S
                -+Zone America/Tegucigalpa -5:48:52 -	LMT	1921 Apr
                -+			-6:00	Hond	C%sT
                -+Zone	America/Jamaica	-5:07:12 -	LMT	1890		# Kingston
                -+			-5:07:12 -	KMT	1912 Feb    # Kingston Mean Time
                -+			-5:00	-	EST	1974 Apr 28 2:00
                -+			-5:00	US	E%sT	1984
                -+			-5:00	-	EST
                -+Zone America/Martinique	-4:04:20 -      LMT	1890		# Fort-de-France
                -+			-4:04:20 -	FFMT	1911 May     # Fort-de-France MT
                -+			-4:00	-	AST	1980 Apr  6
                -+			-4:00	1:00	ADT	1980 Sep 28
                -+			-4:00	-	AST
                -+Zone America/Montserrat	-4:08:52 -	LMT	1911 Jul 1 0:01   # Cork Hill
                -+			-4:00	-	AST
                -+Rule	Nic	1979	1980	-	Mar	Sun>=16	0:00	1:00	D
                -+Rule	Nic	1979	1980	-	Jun	Mon>=23	0:00	0	S
                -+Rule	Nic	2005	only	-	Apr	10	0:00	1:00	D
                -+Rule	Nic	2005	only	-	Oct	Sun>=1	0:00	0	S
                -+Rule	Nic	2006	only	-	Apr	30	2:00	1:00	D
                -+Rule	Nic	2006	only	-	Oct	Sun>=1	1:00	0	S
                -+Zone	America/Managua	-5:45:08 -	LMT	1890
                -+			-5:45:12 -	MMT	1934 Jun 23 # Managua Mean Time?
                -+			-6:00	-	CST	1973 May
                -+			-5:00	-	EST	1975 Feb 16
                -+			-6:00	Nic	C%sT	1992 Jan  1 4:00
                -+			-5:00	-	EST	1992 Sep 24
                -+			-6:00	-	CST	1993
                -+			-5:00	-	EST	1997
                -+			-6:00	Nic	C%sT
                -+Zone	America/Panama	-5:18:08 -	LMT	1890
                -+			-5:19:36 -	CMT	1908 Apr 22   # Colon Mean Time
                -+			-5:00	-	EST
                -+Zone America/Puerto_Rico -4:24:25 -	LMT	1899 Mar 28 12:00    # San Juan
                -+			-4:00	-	AST	1942 May  3
                -+			-4:00	US	A%sT	1946
                -+			-4:00	-	AST
                -+Zone America/St_Kitts	-4:10:52 -	LMT	1912 Mar 2	# Basseterre
                -+			-4:00	-	AST
                -+Zone America/St_Lucia	-4:04:00 -	LMT	1890		# Castries
                -+			-4:04:00 -	CMT	1912	    # Castries Mean Time
                -+			-4:00	-	AST
                -+Zone America/Miquelon	-3:44:40 -	LMT	1911 May 15	# St Pierre
                -+			-4:00	-	AST	1980 May
                -+			-3:00	-	PMST	1987 # Pierre & Miquelon Time
                -+			-3:00	Canada	PM%sT
                -+Zone America/St_Vincent	-4:04:56 -	LMT	1890		# Kingstown
                -+			-4:04:56 -	KMT	1912	   # Kingstown Mean Time
                -+			-4:00	-	AST
                -+Rule	TC	1979	1986	-	Apr	lastSun	2:00	1:00	D
                -+Rule	TC	1979	2006	-	Oct	lastSun	2:00	0	S
                -+Rule	TC	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
                -+Rule	TC	2007	max	-	Mar	Sun>=8	2:00	1:00	D
                -+Rule	TC	2007	max	-	Nov	Sun>=1	2:00	0	S
                -+Zone America/Grand_Turk	-4:44:32 -	LMT	1890
                -+			-5:07:12 -	KMT	1912 Feb    # Kingston Mean Time
                -+			-5:00	TC	E%sT
                -+Zone America/Tortola	-4:18:28 -	LMT	1911 Jul    # Road Town
                -+			-4:00	-	AST
                -+Zone America/St_Thomas	-4:19:44 -	LMT	1911 Jul    # Charlotte Amalie
                -+			-4:00	-	AST
                -Index: examples/tz/asia
                -===================================================================
                ---- examples/tz/asia	(revision 0)
                -+++ examples/tz/asia	(revision 0)
                -@@ -0,0 +1,731 @@
                -+Rule	EUAsia	1981	max	-	Mar	lastSun	 1:00u	1:00	S
                -+Rule	EUAsia	1979	1995	-	Sep	lastSun	 1:00u	0	-
                -+Rule	EUAsia	1996	max	-	Oct	lastSun	 1:00u	0	-
                -+Rule E-EurAsia	1981	max	-	Mar	lastSun	 0:00	1:00	S
                -+Rule E-EurAsia	1979	1995	-	Sep	lastSun	 0:00	0	-
                -+Rule E-EurAsia	1996	max	-	Oct	lastSun	 0:00	0	-
                -+Rule RussiaAsia	1981	1984	-	Apr	1	 0:00	1:00	S
                -+Rule RussiaAsia	1981	1983	-	Oct	1	 0:00	0	-
                -+Rule RussiaAsia	1984	1991	-	Sep	lastSun	 2:00s	0	-
                -+Rule RussiaAsia	1985	1991	-	Mar	lastSun	 2:00s	1:00	S
                -+Rule RussiaAsia	1992	only	-	Mar	lastSat	23:00	1:00	S
                -+Rule RussiaAsia	1992	only	-	Sep	lastSat	23:00	0	-
                -+Rule RussiaAsia	1993	max	-	Mar	lastSun	 2:00s	1:00	S
                -+Rule RussiaAsia	1993	1995	-	Sep	lastSun	 2:00s	0	-
                -+Rule RussiaAsia	1996	max	-	Oct	lastSun	 2:00s	0	-
                -+Zone	Asia/Kabul	4:36:48 -	LMT	1890
                -+			4:00	-	AFT	1945
                -+			4:30	-	AFT
                -+Zone	Asia/Yerevan	2:58:00 -	LMT	1924 May  2
                -+			3:00	-	YERT	1957 Mar    # Yerevan Time
                -+			4:00 RussiaAsia YER%sT	1991 Mar 31 2:00s
                -+			3:00	1:00	YERST	1991 Sep 23 # independence
                -+			3:00 RussiaAsia	AM%sT	1995 Sep 24 2:00s
                -+			4:00	-	AMT	1997
                -+			4:00 RussiaAsia	AM%sT
                -+Rule	Azer	1997	max	-	Mar	lastSun	 4:00	1:00	S
                -+Rule	Azer	1997	max	-	Oct	lastSun	 5:00	0	-
                -+Zone	Asia/Baku	3:19:24 -	LMT	1924 May  2
                -+			3:00	-	BAKT	1957 Mar    # Baku Time
                -+			4:00 RussiaAsia BAK%sT	1991 Mar 31 2:00s
                -+			3:00	1:00	BAKST	1991 Aug 30 # independence
                -+			3:00 RussiaAsia	AZ%sT	1992 Sep lastSat 23:00
                -+			4:00	-	AZT	1996 # Azerbaijan time
                -+			4:00	EUAsia	AZ%sT	1997
                -+			4:00	Azer	AZ%sT
                -+Zone	Asia/Bahrain	3:22:20 -	LMT	1920		# Al Manamah
                -+			4:00	-	GST	1972 Jun
                -+			3:00	-	AST
                -+Rule	Dhaka	2009	only	-	Jun	19	23:00	1:00	S
                -+Rule	Dhaka	2009	only	-	Dec	31	23:59	0	-
                -+Zone	Asia/Dhaka	6:01:40 -	LMT	1890
                -+			5:53:20	-	HMT	1941 Oct    # Howrah Mean Time?
                -+			6:30	-	BURT	1942 May 15 # Burma Time
                -+			5:30	-	IST	1942 Sep
                -+			6:30	-	BURT	1951 Sep 30
                -+			6:00	-	DACT	1971 Mar 26 # Dacca Time
                -+			6:00	-	BDT	2009
                -+			6:00	Dhaka	BD%sT
                -+Zone	Asia/Thimphu	5:58:36 -	LMT	1947 Aug 15 # or Thimbu
                -+			5:30	-	IST	1987 Oct
                -+			6:00	-	BTT	# Bhutan Time
                -+Zone	Indian/Chagos	4:49:40	-	LMT	1907
                -+			5:00	-	IOT	1996 # BIOT Time
                -+			6:00	-	IOT
                -+Zone	Asia/Brunei	7:39:40 -	LMT	1926 Mar   # Bandar Seri Begawan
                -+			7:30	-	BNT	1933
                -+			8:00	-	BNT
                -+Zone	Asia/Rangoon	6:24:40 -	LMT	1880		# or Yangon
                -+			6:24:36	-	RMT	1920	   # Rangoon Mean Time?
                -+			6:30	-	BURT	1942 May   # Burma Time
                -+			9:00	-	JST	1945 May 3
                -+			6:30	-	MMT		   # Myanmar Time
                -+Zone	Asia/Phnom_Penh	6:59:40 -	LMT	1906 Jun  9
                -+			7:06:20	-	SMT	1911 Mar 11 0:01 # Saigon MT?
                -+			7:00	-	ICT	1912 May
                -+			8:00	-	ICT	1931 May
                -+			7:00	-	ICT
                -+Rule	Shang	1940	only	-	Jun	 3	0:00	1:00	D
                -+Rule	Shang	1940	1941	-	Oct	 1	0:00	0	S
                -+Rule	Shang	1941	only	-	Mar	16	0:00	1:00	D
                -+Rule	PRC	1986	only	-	May	 4	0:00	1:00	D
                -+Rule	PRC	1986	1991	-	Sep	Sun>=11	0:00	0	S
                -+Rule	PRC	1987	1991	-	Apr	Sun>=10	0:00	1:00	D
                -+Zone	Asia/Harbin	8:26:44	-	LMT	1928 # or Haerbin
                -+			8:30	-	CHAT	1932 Mar # Changbai Time
                -+			8:00	-	CST	1940
                -+			9:00	-	CHAT	1966 May
                -+			8:30	-	CHAT	1980 May
                -+			8:00	PRC	C%sT
                -+Zone	Asia/Shanghai	8:05:52	-	LMT	1928
                -+			8:00	Shang	C%sT	1949
                -+			8:00	PRC	C%sT
                -+Zone	Asia/Chongqing	7:06:20	-	LMT	1928 # or Chungking
                -+			7:00	-	LONT	1980 May # Long-shu Time
                -+			8:00	PRC	C%sT
                -+Zone	Asia/Urumqi	5:50:20	-	LMT	1928 # or Urumchi
                -+			6:00	-	URUT	1980 May # Urumqi Time
                -+			8:00	PRC	C%sT
                -+Zone	Asia/Kashgar	5:03:56	-	LMT	1928 # or Kashi or Kaxgar
                -+			5:30	-	KAST	1940	 # Kashgar Time
                -+			5:00	-	KAST	1980 May
                -+			8:00	PRC	C%sT
                -+Rule	HK	1941	only	-	Apr	1	3:30	1:00	S
                -+Rule	HK	1941	only	-	Sep	30	3:30	0	-
                -+Rule	HK	1946	only	-	Apr	20	3:30	1:00	S
                -+Rule	HK	1946	only	-	Dec	1	3:30	0	-
                -+Rule	HK	1947	only	-	Apr	13	3:30	1:00	S
                -+Rule	HK	1947	only	-	Dec	30	3:30	0	-
                -+Rule	HK	1948	only	-	May	2	3:30	1:00	S
                -+Rule	HK	1948	1951	-	Oct	lastSun	3:30	0	-
                -+Rule	HK	1952	only	-	Oct	25	3:30	0	-
                -+Rule	HK	1949	1953	-	Apr	Sun>=1	3:30	1:00	S
                -+Rule	HK	1953	only	-	Nov	1	3:30	0	-
                -+Rule	HK	1954	1964	-	Mar	Sun>=18	3:30	1:00	S
                -+Rule	HK	1954	only	-	Oct	31	3:30	0	-
                -+Rule	HK	1955	1964	-	Nov	Sun>=1	3:30	0	-
                -+Rule	HK	1965	1976	-	Apr	Sun>=16	3:30	1:00	S
                -+Rule	HK	1965	1976	-	Oct	Sun>=16	3:30	0	-
                -+Rule	HK	1973	only	-	Dec	30	3:30	1:00	S
                -+Rule	HK	1979	only	-	May	Sun>=8	3:30	1:00	S
                -+Rule	HK	1979	only	-	Oct	Sun>=16	3:30	0	-
                -+Zone	Asia/Hong_Kong	7:36:36 -	LMT	1904 Oct 30
                -+			8:00	HK	HK%sT	1941 Dec 25
                -+			9:00	-	JST	1945 Sep 15
                -+			8:00	HK	HK%sT
                -+Rule	Taiwan	1945	1951	-	May	1	0:00	1:00	D
                -+Rule	Taiwan	1945	1951	-	Oct	1	0:00	0	S
                -+Rule	Taiwan	1952	only	-	Mar	1	0:00	1:00	D
                -+Rule	Taiwan	1952	1954	-	Nov	1	0:00	0	S
                -+Rule	Taiwan	1953	1959	-	Apr	1	0:00	1:00	D
                -+Rule	Taiwan	1955	1961	-	Oct	1	0:00	0	S
                -+Rule	Taiwan	1960	1961	-	Jun	1	0:00	1:00	D
                -+Rule	Taiwan	1974	1975	-	Apr	1	0:00	1:00	D
                -+Rule	Taiwan	1974	1975	-	Oct	1	0:00	0	S
                -+Rule	Taiwan	1979	only	-	Jun	30	0:00	1:00	D
                -+Rule	Taiwan	1979	only	-	Sep	30	0:00	0	S
                -+Zone	Asia/Taipei	8:06:00 -	LMT	1896 # or Taibei or T'ai-pei
                -+			8:00	Taiwan	C%sT
                -+Rule	Macau	1961	1962	-	Mar	Sun>=16	3:30	1:00	S
                -+Rule	Macau	1961	1964	-	Nov	Sun>=1	3:30	0	-
                -+Rule	Macau	1963	only	-	Mar	Sun>=16	0:00	1:00	S
                -+Rule	Macau	1964	only	-	Mar	Sun>=16	3:30	1:00	S
                -+Rule	Macau	1965	only	-	Mar	Sun>=16	0:00	1:00	S
                -+Rule	Macau	1965	only	-	Oct	31	0:00	0	-
                -+Rule	Macau	1966	1971	-	Apr	Sun>=16	3:30	1:00	S
                -+Rule	Macau	1966	1971	-	Oct	Sun>=16	3:30	0	-
                -+Rule	Macau	1972	1974	-	Apr	Sun>=15	0:00	1:00	S
                -+Rule	Macau	1972	1973	-	Oct	Sun>=15	0:00	0	-
                -+Rule	Macau	1974	1977	-	Oct	Sun>=15	3:30	0	-
                -+Rule	Macau	1975	1977	-	Apr	Sun>=15	3:30	1:00	S
                -+Rule	Macau	1978	1980	-	Apr	Sun>=15	0:00	1:00	S
                -+Rule	Macau	1978	1980	-	Oct	Sun>=15	0:00	0	-
                -+Zone	Asia/Macau	7:34:20 -	LMT	1912
                -+			8:00	Macau	MO%sT	1999 Dec 20 # return to China
                -+			8:00	PRC	C%sT
                -+Rule	Cyprus	1975	only	-	Apr	13	0:00	1:00	S
                -+Rule	Cyprus	1975	only	-	Oct	12	0:00	0	-
                -+Rule	Cyprus	1976	only	-	May	15	0:00	1:00	S
                -+Rule	Cyprus	1976	only	-	Oct	11	0:00	0	-
                -+Rule	Cyprus	1977	1980	-	Apr	Sun>=1	0:00	1:00	S
                -+Rule	Cyprus	1977	only	-	Sep	25	0:00	0	-
                -+Rule	Cyprus	1978	only	-	Oct	2	0:00	0	-
                -+Rule	Cyprus	1979	1997	-	Sep	lastSun	0:00	0	-
                -+Rule	Cyprus	1981	1998	-	Mar	lastSun	0:00	1:00	S
                -+Zone	Asia/Nicosia	2:13:28 -	LMT	1921 Nov 14
                -+			2:00	Cyprus	EE%sT	1998 Sep
                -+			2:00	EUAsia	EE%sT
                -+Link	Asia/Nicosia	Europe/Nicosia
                -+Zone	Asia/Tbilisi	2:59:16 -	LMT	1880
                -+			2:59:16	-	TBMT	1924 May  2 # Tbilisi Mean Time
                -+			3:00	-	TBIT	1957 Mar    # Tbilisi Time
                -+			4:00 RussiaAsia TBI%sT	1991 Mar 31 2:00s
                -+			3:00	1:00	TBIST	1991 Apr  9 # independence
                -+			3:00 RussiaAsia GE%sT	1992 # Georgia Time
                -+			3:00 E-EurAsia	GE%sT	1994 Sep lastSun
                -+			4:00 E-EurAsia	GE%sT	1996 Oct lastSun
                -+			4:00	1:00	GEST	1997 Mar lastSun
                -+			4:00 E-EurAsia	GE%sT	2004 Jun 27
                -+			3:00 RussiaAsia	GE%sT	2005 Mar lastSun 2:00
                -+			4:00	-	GET
                -+Zone	Asia/Dili	8:22:20 -	LMT	1912
                -+			8:00	-	TLT	1942 Feb 21 23:00 # E Timor Time
                -+			9:00	-	JST	1945 Sep 23
                -+			9:00	-	TLT	1976 May  3
                -+			8:00	-	CIT	2000 Sep 17 00:00
                -+			9:00	-	TLT
                -+Zone	Asia/Kolkata	5:53:28 -	LMT	1880	# Kolkata
                -+			5:53:20	-	HMT	1941 Oct    # Howrah Mean Time?
                -+			6:30	-	BURT	1942 May 15 # Burma Time
                -+			5:30	-	IST	1942 Sep
                -+			5:30	1:00	IST	1945 Oct 15
                -+			5:30	-	IST
                -+Zone Asia/Jakarta	7:07:12 -	LMT	1867 Aug 10
                -+			7:07:12	-	JMT	1923 Dec 31 23:47:12 # Jakarta
                -+			7:20	-	JAVT	1932 Nov	 # Java Time
                -+			7:30	-	WIT	1942 Mar 23
                -+			9:00	-	JST	1945 Sep 23
                -+			7:30	-	WIT	1948 May
                -+			8:00	-	WIT	1950 May
                -+			7:30	-	WIT	1964
                -+			7:00	-	WIT
                -+Zone Asia/Pontianak	7:17:20	-	LMT	1908 May
                -+			7:17:20	-	PMT	1932 Nov    # Pontianak MT
                -+			7:30	-	WIT	1942 Jan 29
                -+			9:00	-	JST	1945 Sep 23
                -+			7:30	-	WIT	1948 May
                -+			8:00	-	WIT	1950 May
                -+			7:30	-	WIT	1964
                -+			8:00	-	CIT	1988 Jan  1
                -+			7:00	-	WIT
                -+Zone Asia/Makassar	7:57:36 -	LMT	1920
                -+			7:57:36	-	MMT	1932 Nov    # Macassar MT
                -+			8:00	-	CIT	1942 Feb  9
                -+			9:00	-	JST	1945 Sep 23
                -+			8:00	-	CIT
                -+Zone Asia/Jayapura	9:22:48 -	LMT	1932 Nov
                -+			9:00	-	EIT	1944 Sep  1
                -+			9:30	-	CST	1964
                -+			9:00	-	EIT
                -+Rule	Iran	1978	1980	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	1978	only	-	Oct	21	0:00	0	S
                -+Rule	Iran	1979	only	-	Sep	19	0:00	0	S
                -+Rule	Iran	1980	only	-	Sep	23	0:00	0	S
                -+Rule	Iran	1991	only	-	May	 3	0:00	1:00	D
                -+Rule	Iran	1992	1995	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	1991	1995	-	Sep	22	0:00	0	S
                -+Rule	Iran	1996	only	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	1996	only	-	Sep	21	0:00	0	S
                -+Rule	Iran	1997	1999	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	1997	1999	-	Sep	22	0:00	0	S
                -+Rule	Iran	2000	only	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2000	only	-	Sep	21	0:00	0	S
                -+Rule	Iran	2001	2003	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	2001	2003	-	Sep	22	0:00	0	S
                -+Rule	Iran	2004	only	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2004	only	-	Sep	21	0:00	0	S
                -+Rule	Iran	2005	only	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	2005	only	-	Sep	22	0:00	0	S
                -+Rule	Iran	2008	only	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2008	only	-	Sep	21	0:00	0	S
                -+Rule	Iran	2009	2011	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	2009	2011	-	Sep	22	0:00	0	S
                -+Rule	Iran	2012	only	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2012	only	-	Sep	21	0:00	0	S
                -+Rule	Iran	2013	2015	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	2013	2015	-	Sep	22	0:00	0	S
                -+Rule	Iran	2016	only	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2016	only	-	Sep	21	0:00	0	S
                -+Rule	Iran	2017	2019	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	2017	2019	-	Sep	22	0:00	0	S
                -+Rule	Iran	2020	only	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2020	only	-	Sep	21	0:00	0	S
                -+Rule	Iran	2021	2023	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	2021	2023	-	Sep	22	0:00	0	S
                -+Rule	Iran	2024	only	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2024	only	-	Sep	21	0:00	0	S
                -+Rule	Iran	2025	2027	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	2025	2027	-	Sep	22	0:00	0	S
                -+Rule	Iran	2028	2029	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2028	2029	-	Sep	21	0:00	0	S
                -+Rule	Iran	2030	2031	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	2030	2031	-	Sep	22	0:00	0	S
                -+Rule	Iran	2032	2033	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2032	2033	-	Sep	21	0:00	0	S
                -+Rule	Iran	2034	2035	-	Mar	22	0:00	1:00	D
                -+Rule	Iran	2034	2035	-	Sep	22	0:00	0	S
                -+Rule	Iran	2036	2037	-	Mar	21	0:00	1:00	D
                -+Rule	Iran	2036	2037	-	Sep	21	0:00	0	S
                -+Zone	Asia/Tehran	3:25:44	-	LMT	1916
                -+			3:25:44	-	TMT	1946	# Tehran Mean Time
                -+			3:30	-	IRST	1977 Nov
                -+			4:00	Iran	IR%sT	1979
                -+			3:30	Iran	IR%sT
                -+Rule	Iraq	1982	only	-	May	1	0:00	1:00	D
                -+Rule	Iraq	1982	1984	-	Oct	1	0:00	0	S
                -+Rule	Iraq	1983	only	-	Mar	31	0:00	1:00	D
                -+Rule	Iraq	1984	1985	-	Apr	1	0:00	1:00	D
                -+Rule	Iraq	1985	1990	-	Sep	lastSun	1:00s	0	S
                -+Rule	Iraq	1986	1990	-	Mar	lastSun	1:00s	1:00	D
                -+Rule	Iraq	1991	2007	-	Apr	 1	3:00s	1:00	D
                -+Rule	Iraq	1991	2007	-	Oct	 1	3:00s	0	S
                -+Zone	Asia/Baghdad	2:57:40	-	LMT	1890
                -+			2:57:36	-	BMT	1918	    # Baghdad Mean Time?
                -+			3:00	-	AST	1982 May
                -+			3:00	Iraq	A%sT
                -+Rule	Zion	1940	only	-	Jun	 1	0:00	1:00	D
                -+Rule	Zion	1942	1944	-	Nov	 1	0:00	0	S
                -+Rule	Zion	1943	only	-	Apr	 1	2:00	1:00	D
                -+Rule	Zion	1944	only	-	Apr	 1	0:00	1:00	D
                -+Rule	Zion	1945	only	-	Apr	16	0:00	1:00	D
                -+Rule	Zion	1945	only	-	Nov	 1	2:00	0	S
                -+Rule	Zion	1946	only	-	Apr	16	2:00	1:00	D
                -+Rule	Zion	1946	only	-	Nov	 1	0:00	0	S
                -+Rule	Zion	1948	only	-	May	23	0:00	2:00	DD
                -+Rule	Zion	1948	only	-	Sep	 1	0:00	1:00	D
                -+Rule	Zion	1948	1949	-	Nov	 1	2:00	0	S
                -+Rule	Zion	1949	only	-	May	 1	0:00	1:00	D
                -+Rule	Zion	1950	only	-	Apr	16	0:00	1:00	D
                -+Rule	Zion	1950	only	-	Sep	15	3:00	0	S
                -+Rule	Zion	1951	only	-	Apr	 1	0:00	1:00	D
                -+Rule	Zion	1951	only	-	Nov	11	3:00	0	S
                -+Rule	Zion	1952	only	-	Apr	20	2:00	1:00	D
                -+Rule	Zion	1952	only	-	Oct	19	3:00	0	S
                -+Rule	Zion	1953	only	-	Apr	12	2:00	1:00	D
                -+Rule	Zion	1953	only	-	Sep	13	3:00	0	S
                -+Rule	Zion	1954	only	-	Jun	13	0:00	1:00	D
                -+Rule	Zion	1954	only	-	Sep	12	0:00	0	S
                -+Rule	Zion	1955	only	-	Jun	11	2:00	1:00	D
                -+Rule	Zion	1955	only	-	Sep	11	0:00	0	S
                -+Rule	Zion	1956	only	-	Jun	 3	0:00	1:00	D
                -+Rule	Zion	1956	only	-	Sep	30	3:00	0	S
                -+Rule	Zion	1957	only	-	Apr	29	2:00	1:00	D
                -+Rule	Zion	1957	only	-	Sep	22	0:00	0	S
                -+Rule	Zion	1974	only	-	Jul	 7	0:00	1:00	D
                -+Rule	Zion	1974	only	-	Oct	13	0:00	0	S
                -+Rule	Zion	1975	only	-	Apr	20	0:00	1:00	D
                -+Rule	Zion	1975	only	-	Aug	31	0:00	0	S
                -+Rule	Zion	1985	only	-	Apr	14	0:00	1:00	D
                -+Rule	Zion	1985	only	-	Sep	15	0:00	0	S
                -+Rule	Zion	1986	only	-	May	18	0:00	1:00	D
                -+Rule	Zion	1986	only	-	Sep	 7	0:00	0	S
                -+Rule	Zion	1987	only	-	Apr	15	0:00	1:00	D
                -+Rule	Zion	1987	only	-	Sep	13	0:00	0	S
                -+Rule	Zion	1988	only	-	Apr	 9	0:00	1:00	D
                -+Rule	Zion	1988	only	-	Sep	 3	0:00	0	S
                -+Rule	Zion	1989	only	-	Apr	30	0:00	1:00	D
                -+Rule	Zion	1989	only	-	Sep	 3	0:00	0	S
                -+Rule	Zion	1990	only	-	Mar	25	0:00	1:00	D
                -+Rule	Zion	1990	only	-	Aug	26	0:00	0	S
                -+Rule	Zion	1991	only	-	Mar	24	0:00	1:00	D
                -+Rule	Zion	1991	only	-	Sep	 1	0:00	0	S
                -+Rule	Zion	1992	only	-	Mar	29	0:00	1:00	D
                -+Rule	Zion	1992	only	-	Sep	 6	0:00	0	S
                -+Rule	Zion	1993	only	-	Apr	 2	0:00	1:00	D
                -+Rule	Zion	1993	only	-	Sep	 5	0:00	0	S
                -+Rule	Zion	1994	only	-	Apr	 1	0:00	1:00	D
                -+Rule	Zion	1994	only	-	Aug	28	0:00	0	S
                -+Rule	Zion	1995	only	-	Mar	31	0:00	1:00	D
                -+Rule	Zion	1995	only	-	Sep	 3	0:00	0	S
                -+Rule	Zion	1996	only	-	Mar	15	0:00	1:00	D
                -+Rule	Zion	1996	only	-	Sep	16	0:00	0	S
                -+Rule	Zion	1997	only	-	Mar	21	0:00	1:00	D
                -+Rule	Zion	1997	only	-	Sep	14	0:00	0	S
                -+Rule	Zion	1998	only	-	Mar	20	0:00	1:00	D
                -+Rule	Zion	1998	only	-	Sep	 6	0:00	0	S
                -+Rule	Zion	1999	only	-	Apr	 2	2:00	1:00	D
                -+Rule	Zion	1999	only	-	Sep	 3	2:00	0	S
                -+Rule	Zion	2000	only	-	Apr	14	2:00	1:00	D
                -+Rule	Zion	2000	only	-	Oct	 6	1:00	0	S
                -+Rule	Zion	2001	only	-	Apr	 9	1:00	1:00	D
                -+Rule	Zion	2001	only	-	Sep	24	1:00	0	S
                -+Rule	Zion	2002	only	-	Mar	29	1:00	1:00	D
                -+Rule	Zion	2002	only	-	Oct	 7	1:00	0	S
                -+Rule	Zion	2003	only	-	Mar	28	1:00	1:00	D
                -+Rule	Zion	2003	only	-	Oct	 3	1:00	0	S
                -+Rule	Zion	2004	only	-	Apr	 7	1:00	1:00	D
                -+Rule	Zion	2004	only	-	Sep	22	1:00	0	S
                -+Rule	Zion	2005	only	-	Apr	 1	2:00	1:00	D
                -+Rule	Zion	2005	only	-	Oct	 9	2:00	0	S
                -+Rule	Zion	2006	2010	-	Mar	Fri>=26	2:00	1:00	D
                -+Rule	Zion	2006	only	-	Oct	 1	2:00	0	S
                -+Rule	Zion	2007	only	-	Sep	16	2:00	0	S
                -+Rule	Zion	2008	only	-	Oct	 5	2:00	0	S
                -+Rule	Zion	2009	only	-	Sep	27	2:00	0	S
                -+Rule	Zion	2010	only	-	Sep	12	2:00	0	S
                -+Rule	Zion	2011	only	-	Apr	 1	2:00	1:00	D
                -+Rule	Zion	2011	only	-	Oct	 2	2:00	0	S
                -+Rule	Zion	2012	2015	-	Mar	Fri>=26	2:00	1:00	D
                -+Rule	Zion	2012	only	-	Sep	23	2:00	0	S
                -+Rule	Zion	2013	only	-	Sep	 8	2:00	0	S
                -+Rule	Zion	2014	only	-	Sep	28	2:00	0	S
                -+Rule	Zion	2015	only	-	Sep	20	2:00	0	S
                -+Rule	Zion	2016	only	-	Apr	 1	2:00	1:00	D
                -+Rule	Zion	2016	only	-	Oct	 9	2:00	0	S
                -+Rule	Zion	2017	2021	-	Mar	Fri>=26	2:00	1:00	D
                -+Rule	Zion	2017	only	-	Sep	24	2:00	0	S
                -+Rule	Zion	2018	only	-	Sep	16	2:00	0	S
                -+Rule	Zion	2019	only	-	Oct	 6	2:00	0	S
                -+Rule	Zion	2020	only	-	Sep	27	2:00	0	S
                -+Rule	Zion	2021	only	-	Sep	12	2:00	0	S
                -+Rule	Zion	2022	only	-	Apr	 1	2:00	1:00	D
                -+Rule	Zion	2022	only	-	Oct	 2	2:00	0	S
                -+Rule	Zion	2023	2032	-	Mar	Fri>=26	2:00	1:00	D
                -+Rule	Zion	2023	only	-	Sep	24	2:00	0	S
                -+Rule	Zion	2024	only	-	Oct	 6	2:00	0	S
                -+Rule	Zion	2025	only	-	Sep	28	2:00	0	S
                -+Rule	Zion	2026	only	-	Sep	20	2:00	0	S
                -+Rule	Zion	2027	only	-	Oct	10	2:00	0	S
                -+Rule	Zion	2028	only	-	Sep	24	2:00	0	S
                -+Rule	Zion	2029	only	-	Sep	16	2:00	0	S
                -+Rule	Zion	2030	only	-	Oct	 6	2:00	0	S
                -+Rule	Zion	2031	only	-	Sep	21	2:00	0	S
                -+Rule	Zion	2032	only	-	Sep	12	2:00	0	S
                -+Rule	Zion	2033	only	-	Apr	 1	2:00	1:00	D
                -+Rule	Zion	2033	only	-	Oct	 2	2:00	0	S
                -+Rule	Zion	2034	2037	-	Mar	Fri>=26	2:00	1:00	D
                -+Rule	Zion	2034	only	-	Sep	17	2:00	0	S
                -+Rule	Zion	2035	only	-	Oct	 7	2:00	0	S
                -+Rule	Zion	2036	only	-	Sep	28	2:00	0	S
                -+Rule	Zion	2037	only	-	Sep	13	2:00	0	S
                -+Zone	Asia/Jerusalem	2:20:56 -	LMT	1880
                -+			2:20:40	-	JMT	1918	# Jerusalem Mean Time?
                -+			2:00	Zion	I%sT
                -+Rule	Japan	1948	only	-	May	Sun>=1	2:00	1:00	D
                -+Rule	Japan	1948	1951	-	Sep	Sat>=8	2:00	0	S
                -+Rule	Japan	1949	only	-	Apr	Sun>=1	2:00	1:00	D
                -+Rule	Japan	1950	1951	-	May	Sun>=1	2:00	1:00	D
                -+Zone	Asia/Tokyo	9:18:59	-	LMT	1887 Dec 31 15:00u
                -+			9:00	-	JST	1896
                -+			9:00	-	CJT	1938
                -+			9:00	Japan	J%sT
                -+Rule	Jordan	1973	only	-	Jun	6	0:00	1:00	S
                -+Rule	Jordan	1973	1975	-	Oct	1	0:00	0	-
                -+Rule	Jordan	1974	1977	-	May	1	0:00	1:00	S
                -+Rule	Jordan	1976	only	-	Nov	1	0:00	0	-
                -+Rule	Jordan	1977	only	-	Oct	1	0:00	0	-
                -+Rule	Jordan	1978	only	-	Apr	30	0:00	1:00	S
                -+Rule	Jordan	1978	only	-	Sep	30	0:00	0	-
                -+Rule	Jordan	1985	only	-	Apr	1	0:00	1:00	S
                -+Rule	Jordan	1985	only	-	Oct	1	0:00	0	-
                -+Rule	Jordan	1986	1988	-	Apr	Fri>=1	0:00	1:00	S
                -+Rule	Jordan	1986	1990	-	Oct	Fri>=1	0:00	0	-
                -+Rule	Jordan	1989	only	-	May	8	0:00	1:00	S
                -+Rule	Jordan	1990	only	-	Apr	27	0:00	1:00	S
                -+Rule	Jordan	1991	only	-	Apr	17	0:00	1:00	S
                -+Rule	Jordan	1991	only	-	Sep	27	0:00	0	-
                -+Rule	Jordan	1992	only	-	Apr	10	0:00	1:00	S
                -+Rule	Jordan	1992	1993	-	Oct	Fri>=1	0:00	0	-
                -+Rule	Jordan	1993	1998	-	Apr	Fri>=1	0:00	1:00	S
                -+Rule	Jordan	1994	only	-	Sep	Fri>=15	0:00	0	-
                -+Rule	Jordan	1995	1998	-	Sep	Fri>=15	0:00s	0	-
                -+Rule	Jordan	1999	only	-	Jul	 1	0:00s	1:00	S
                -+Rule	Jordan	1999	2002	-	Sep	lastFri	0:00s	0	-
                -+Rule	Jordan	2000	2001	-	Mar	lastThu	0:00s	1:00	S
                -+Rule	Jordan	2002	max	-	Mar	lastThu	24:00	1:00	S
                -+Rule	Jordan	2003	only	-	Oct	24	0:00s	0	-
                -+Rule	Jordan	2004	only	-	Oct	15	0:00s	0	-
                -+Rule	Jordan	2005	only	-	Sep	lastFri	0:00s	0	-
                -+Rule	Jordan	2006	max	-	Oct	lastFri	0:00s	0	-
                -+Zone	Asia/Amman	2:23:44 -	LMT	1931
                -+			2:00	Jordan	EE%sT
                -+Zone	Asia/Almaty	5:07:48 -	LMT	1924 May  2 # or Alma-Ata
                -+			5:00	-	ALMT	1930 Jun 21 # Alma-Ata Time
                -+			6:00 RussiaAsia ALM%sT	1991
                -+			6:00	-	ALMT	1992
                -+			6:00 RussiaAsia	ALM%sT	2005 Mar 15
                -+			6:00	-	ALMT
                -+Zone	Asia/Qyzylorda	4:21:52 -	LMT	1924 May  2
                -+			4:00	-	KIZT	1930 Jun 21 # Kizilorda Time
                -+			5:00	-	KIZT	1981 Apr  1
                -+			5:00	1:00	KIZST	1981 Oct  1
                -+			6:00	-	KIZT	1982 Apr  1
                -+			5:00 RussiaAsia	KIZ%sT	1991
                -+			5:00	-	KIZT	1991 Dec 16 # independence
                -+			5:00	-	QYZT	1992 Jan 19 2:00
                -+			6:00 RussiaAsia	QYZ%sT	2005 Mar 15
                -+			6:00	-	QYZT
                -+Zone	Asia/Aqtobe	3:48:40	-	LMT	1924 May  2
                -+			4:00	-	AKTT	1930 Jun 21 # Aktyubinsk Time
                -+			5:00	-	AKTT	1981 Apr  1
                -+			5:00	1:00	AKTST	1981 Oct  1
                -+			6:00	-	AKTT	1982 Apr  1
                -+			5:00 RussiaAsia	AKT%sT	1991
                -+			5:00	-	AKTT	1991 Dec 16 # independence
                -+			5:00 RussiaAsia	AQT%sT	2005 Mar 15 # Aqtobe Time
                -+			5:00	-	AQTT
                -+Zone	Asia/Aqtau	3:21:04	-	LMT	1924 May  2
                -+			4:00	-	FORT	1930 Jun 21 # Fort Shevchenko T
                -+			5:00	-	FORT	1963
                -+			5:00	-	SHET	1981 Oct  1 # Shevchenko Time
                -+			6:00	-	SHET	1982 Apr  1
                -+			5:00 RussiaAsia	SHE%sT	1991
                -+			5:00	-	SHET	1991 Dec 16 # independence
                -+			5:00 RussiaAsia	AQT%sT	1995 Mar lastSun 2:00 # Aqtau Time
                -+			4:00 RussiaAsia	AQT%sT	2005 Mar 15
                -+			5:00	-	AQTT
                -+Zone	Asia/Oral	3:25:24	-	LMT	1924 May  2 # or Ural'sk
                -+			4:00	-	URAT	1930 Jun 21 # Ural'sk time
                -+			5:00	-	URAT	1981 Apr  1
                -+			5:00	1:00	URAST	1981 Oct  1
                -+			6:00	-	URAT	1982 Apr  1
                -+			5:00 RussiaAsia	URA%sT	1989 Mar 26 2:00
                -+			4:00 RussiaAsia	URA%sT	1991
                -+			4:00	-	URAT	1991 Dec 16 # independence
                -+			4:00 RussiaAsia	ORA%sT	2005 Mar 15 # Oral Time
                -+			5:00	-	ORAT
                -+Rule	Kyrgyz	1992	1996	-	Apr	Sun>=7	0:00s	1:00	S
                -+Rule	Kyrgyz	1992	1996	-	Sep	lastSun	0:00	0	-
                -+Rule	Kyrgyz	1997	2005	-	Mar	lastSun	2:30	1:00	S
                -+Rule	Kyrgyz	1997	2004	-	Oct	lastSun	2:30	0	-
                -+Zone	Asia/Bishkek	4:58:24 -	LMT	1924 May  2
                -+			5:00	-	FRUT	1930 Jun 21 # Frunze Time
                -+			6:00 RussiaAsia FRU%sT	1991 Mar 31 2:00s
                -+			5:00	1:00	FRUST	1991 Aug 31 2:00 # independence
                -+			5:00	Kyrgyz	KG%sT	2005 Aug 12    # Kyrgyzstan Time
                -+			6:00	-	KGT
                -+Rule	ROK	1960	only	-	May	15	0:00	1:00	D
                -+Rule	ROK	1960	only	-	Sep	13	0:00	0	S
                -+Rule	ROK	1987	1988	-	May	Sun>=8	0:00	1:00	D
                -+Rule	ROK	1987	1988	-	Oct	Sun>=8	0:00	0	S
                -+Zone	Asia/Seoul	8:27:52	-	LMT	1890
                -+			8:30	-	KST	1904 Dec
                -+			9:00	-	KST	1928
                -+			8:30	-	KST	1932
                -+			9:00	-	KST	1954 Mar 21
                -+			8:00	ROK	K%sT	1961 Aug 10
                -+			8:30	-	KST	1968 Oct
                -+			9:00	ROK	K%sT
                -+Zone	Asia/Pyongyang	8:23:00 -	LMT	1890
                -+			8:30	-	KST	1904 Dec
                -+			9:00	-	KST	1928
                -+			8:30	-	KST	1932
                -+			9:00	-	KST	1954 Mar 21
                -+			8:00	-	KST	1961 Aug 10
                -+			9:00	-	KST
                -+Zone	Asia/Kuwait	3:11:56 -	LMT	1950
                -+			3:00	-	AST
                -+Zone	Asia/Vientiane	6:50:24 -	LMT	1906 Jun  9 # or Viangchan
                -+			7:06:20	-	SMT	1911 Mar 11 0:01 # Saigon MT?
                -+			7:00	-	ICT	1912 May
                -+			8:00	-	ICT	1931 May
                -+			7:00	-	ICT
                -+Rule	Lebanon	1920	only	-	Mar	28	0:00	1:00	S
                -+Rule	Lebanon	1920	only	-	Oct	25	0:00	0	-
                -+Rule	Lebanon	1921	only	-	Apr	3	0:00	1:00	S
                -+Rule	Lebanon	1921	only	-	Oct	3	0:00	0	-
                -+Rule	Lebanon	1922	only	-	Mar	26	0:00	1:00	S
                -+Rule	Lebanon	1922	only	-	Oct	8	0:00	0	-
                -+Rule	Lebanon	1923	only	-	Apr	22	0:00	1:00	S
                -+Rule	Lebanon	1923	only	-	Sep	16	0:00	0	-
                -+Rule	Lebanon	1957	1961	-	May	1	0:00	1:00	S
                -+Rule	Lebanon	1957	1961	-	Oct	1	0:00	0	-
                -+Rule	Lebanon	1972	only	-	Jun	22	0:00	1:00	S
                -+Rule	Lebanon	1972	1977	-	Oct	1	0:00	0	-
                -+Rule	Lebanon	1973	1977	-	May	1	0:00	1:00	S
                -+Rule	Lebanon	1978	only	-	Apr	30	0:00	1:00	S
                -+Rule	Lebanon	1978	only	-	Sep	30	0:00	0	-
                -+Rule	Lebanon	1984	1987	-	May	1	0:00	1:00	S
                -+Rule	Lebanon	1984	1991	-	Oct	16	0:00	0	-
                -+Rule	Lebanon	1988	only	-	Jun	1	0:00	1:00	S
                -+Rule	Lebanon	1989	only	-	May	10	0:00	1:00	S
                -+Rule	Lebanon	1990	1992	-	May	1	0:00	1:00	S
                -+Rule	Lebanon	1992	only	-	Oct	4	0:00	0	-
                -+Rule	Lebanon	1993	max	-	Mar	lastSun	0:00	1:00	S
                -+Rule	Lebanon	1993	1998	-	Sep	lastSun	0:00	0	-
                -+Rule	Lebanon	1999	max	-	Oct	lastSun	0:00	0	-
                -+Zone	Asia/Beirut	2:22:00 -	LMT	1880
                -+			2:00	Lebanon	EE%sT
                -+Rule	NBorneo	1935	1941	-	Sep	14	0:00	0:20	TS # one-Third Summer
                -+Rule	NBorneo	1935	1941	-	Dec	14	0:00	0	-
                -+Zone Asia/Kuala_Lumpur	6:46:46 -	LMT	1901 Jan  1
                -+			6:55:25	-	SMT	1905 Jun  1 # Singapore M.T.
                -+			7:00	-	MALT	1933 Jan  1 # Malaya Time
                -+			7:00	0:20	MALST	1936 Jan  1
                -+			7:20	-	MALT	1941 Sep  1
                -+			7:30	-	MALT	1942 Feb 16
                -+			9:00	-	JST	1945 Sep 12
                -+			7:30	-	MALT	1982 Jan  1
                -+			8:00	-	MYT	# Malaysia Time
                -+Zone Asia/Kuching	7:21:20	-	LMT	1926 Mar
                -+			7:30	-	BORT	1933	# Borneo Time
                -+			8:00	NBorneo	BOR%sT	1942 Feb 16
                -+			9:00	-	JST	1945 Sep 12
                -+			8:00	-	BORT	1982 Jan  1
                -+			8:00	-	MYT
                -+Zone	Indian/Maldives	4:54:00 -	LMT	1880	# Male
                -+			4:54:00	-	MMT	1960	# Male Mean Time
                -+			5:00	-	MVT		# Maldives Time
                -+Rule	Mongol	1983	1984	-	Apr	1	0:00	1:00	S
                -+Rule	Mongol	1983	only	-	Oct	1	0:00	0	-
                -+Rule	Mongol	1985	1998	-	Mar	lastSun	0:00	1:00	S
                -+Rule	Mongol	1984	1998	-	Sep	lastSun	0:00	0	-
                -+Rule	Mongol	2001	only	-	Apr	lastSat	2:00	1:00	S
                -+Rule	Mongol	2001	2006	-	Sep	lastSat	2:00	0	-
                -+Rule	Mongol	2002	2006	-	Mar	lastSat	2:00	1:00	S
                -+Zone	Asia/Hovd	6:06:36 -	LMT	1905 Aug
                -+			6:00	-	HOVT	1978	# Hovd Time
                -+			7:00	Mongol	HOV%sT
                -+Zone	Asia/Ulaanbaatar 7:07:32 -	LMT	1905 Aug
                -+			7:00	-	ULAT	1978	# Ulaanbaatar Time
                -+			8:00	Mongol	ULA%sT
                -+Zone	Asia/Choibalsan	7:38:00 -	LMT	1905 Aug
                -+			7:00	-	ULAT	1978
                -+			8:00	-	ULAT	1983 Apr
                -+			9:00	Mongol	CHO%sT	2008 Mar 31 # Choibalsan Time
                -+			8:00	Mongol	CHO%sT
                -+Zone	Asia/Kathmandu	5:41:16 -	LMT	1920
                -+			5:30	-	IST	1986
                -+			5:45	-	NPT	# Nepal Time
                -+Zone	Asia/Muscat	3:54:20 -	LMT	1920
                -+			4:00	-	GST
                -+Rule Pakistan	2002	only	-	Apr	Sun>=2	0:01	1:00	S
                -+Rule Pakistan	2002	only	-	Oct	Sun>=2	0:01	0	-
                -+Rule Pakistan	2008	only	-	Jun	1	0:00	1:00	S
                -+Rule Pakistan	2008	only	-	Nov	1	0:00	0	-
                -+Rule Pakistan	2009	only	-	Apr	15	0:00	1:00	S
                -+Rule Pakistan	2009	only	-	Nov	1	0:00	0	-
                -+Zone	Asia/Karachi	4:28:12 -	LMT	1907
                -+			5:30	-	IST	1942 Sep
                -+			5:30	1:00	IST	1945 Oct 15
                -+			5:30	-	IST	1951 Sep 30
                -+			5:00	-	KART	1971 Mar 26 # Karachi Time
                -+			5:00 Pakistan	PK%sT	# Pakistan Time
                -+Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
                -+Rule EgyptAsia	1957	1958	-	Oct	 1	0:00	0	-
                -+Rule EgyptAsia	1958	only	-	May	 1	0:00	1:00	S
                -+Rule EgyptAsia	1959	1967	-	May	 1	1:00	1:00	S
                -+Rule EgyptAsia	1959	1965	-	Sep	30	3:00	0	-
                -+Rule EgyptAsia	1966	only	-	Oct	 1	3:00	0	-
                -+Rule Palestine	1999	2005	-	Apr	Fri>=15	0:00	1:00	S
                -+Rule Palestine	1999	2003	-	Oct	Fri>=15	0:00	0	-
                -+Rule Palestine	2004	only	-	Oct	 1	1:00	0	-
                -+Rule Palestine	2005	only	-	Oct	 4	2:00	0	-
                -+Rule Palestine	2006	2008	-	Apr	 1	0:00	1:00	S
                -+Rule Palestine	2006	only	-	Sep	22	0:00	0	-
                -+Rule Palestine	2007	only	-	Sep	Thu>=8	2:00	0	-
                -+Rule Palestine	2008	only	-	Aug	lastFri	2:00	0	-
                -+Rule Palestine	2009	only	-	Mar	lastFri	0:00	1:00	S
                -+Rule Palestine	2010	max	-	Mar	lastSat	0:01	1:00	S
                -+Rule Palestine	2009	max	-	Sep	Fri>=1	2:00	0	-
                -+Rule Palestine	2010	only	-	Aug	11	0:00	0	-
                -+Zone	Asia/Gaza	2:17:52	-	LMT	1900 Oct
                -+			2:00	Zion	EET	1948 May 15
                -+			2:00 EgyptAsia	EE%sT	1967 Jun  5
                -+			2:00	Zion	I%sT	1996
                -+			2:00	Jordan	EE%sT	1999
                -+			2:00 Palestine	EE%sT
                -+Rule	Phil	1936	only	-	Nov	1	0:00	1:00	S
                -+Rule	Phil	1937	only	-	Feb	1	0:00	0	-
                -+Rule	Phil	1954	only	-	Apr	12	0:00	1:00	S
                -+Rule	Phil	1954	only	-	Jul	1	0:00	0	-
                -+Rule	Phil	1978	only	-	Mar	22	0:00	1:00	S
                -+Rule	Phil	1978	only	-	Sep	21	0:00	0	-
                -+Zone	Asia/Manila	-15:56:00 -	LMT	1844 Dec 31
                -+			8:04:00 -	LMT	1899 May 11
                -+			8:00	Phil	PH%sT	1942 May
                -+			9:00	-	JST	1944 Nov
                -+			8:00	Phil	PH%sT
                -+Zone	Asia/Qatar	3:26:08 -	LMT	1920	# Al Dawhah / Doha
                -+			4:00	-	GST	1972 Jun
                -+			3:00	-	AST
                -+Zone	Asia/Riyadh	3:06:52 -	LMT	1950
                -+			3:00	-	AST
                -+Zone	Asia/Singapore	6:55:25 -	LMT	1901 Jan  1
                -+			6:55:25	-	SMT	1905 Jun  1 # Singapore M.T.
                -+			7:00	-	MALT	1933 Jan  1 # Malaya Time
                -+			7:00	0:20	MALST	1936 Jan  1
                -+			7:20	-	MALT	1941 Sep  1
                -+			7:30	-	MALT	1942 Feb 16
                -+			9:00	-	JST	1945 Sep 12
                -+			7:30	-	MALT	1965 Aug  9 # independence
                -+			7:30	-	SGT	1982 Jan  1 # Singapore Time
                -+			8:00	-	SGT
                -+Zone	Asia/Colombo	5:19:24 -	LMT	1880
                -+			5:19:32	-	MMT	1906	# Moratuwa Mean Time
                -+			5:30	-	IST	1942 Jan  5
                -+			5:30	0:30	IHST	1942 Sep
                -+			5:30	1:00	IST	1945 Oct 16 2:00
                -+			5:30	-	IST	1996 May 25 0:00
                -+			6:30	-	LKT	1996 Oct 26 0:30
                -+			6:00	-	LKT	2006 Apr 15 0:30
                -+			5:30	-	IST
                -+Rule	Syria	1920	1923	-	Apr	Sun>=15	2:00	1:00	S
                -+Rule	Syria	1920	1923	-	Oct	Sun>=1	2:00	0	-
                -+Rule	Syria	1962	only	-	Apr	29	2:00	1:00	S
                -+Rule	Syria	1962	only	-	Oct	1	2:00	0	-
                -+Rule	Syria	1963	1965	-	May	1	2:00	1:00	S
                -+Rule	Syria	1963	only	-	Sep	30	2:00	0	-
                -+Rule	Syria	1964	only	-	Oct	1	2:00	0	-
                -+Rule	Syria	1965	only	-	Sep	30	2:00	0	-
                -+Rule	Syria	1966	only	-	Apr	24	2:00	1:00	S
                -+Rule	Syria	1966	1976	-	Oct	1	2:00	0	-
                -+Rule	Syria	1967	1978	-	May	1	2:00	1:00	S
                -+Rule	Syria	1977	1978	-	Sep	1	2:00	0	-
                -+Rule	Syria	1983	1984	-	Apr	9	2:00	1:00	S
                -+Rule	Syria	1983	1984	-	Oct	1	2:00	0	-
                -+Rule	Syria	1986	only	-	Feb	16	2:00	1:00	S
                -+Rule	Syria	1986	only	-	Oct	9	2:00	0	-
                -+Rule	Syria	1987	only	-	Mar	1	2:00	1:00	S
                -+Rule	Syria	1987	1988	-	Oct	31	2:00	0	-
                -+Rule	Syria	1988	only	-	Mar	15	2:00	1:00	S
                -+Rule	Syria	1989	only	-	Mar	31	2:00	1:00	S
                -+Rule	Syria	1989	only	-	Oct	1	2:00	0	-
                -+Rule	Syria	1990	only	-	Apr	1	2:00	1:00	S
                -+Rule	Syria	1990	only	-	Sep	30	2:00	0	-
                -+Rule	Syria	1991	only	-	Apr	 1	0:00	1:00	S
                -+Rule	Syria	1991	1992	-	Oct	 1	0:00	0	-
                -+Rule	Syria	1992	only	-	Apr	 8	0:00	1:00	S
                -+Rule	Syria	1993	only	-	Mar	26	0:00	1:00	S
                -+Rule	Syria	1993	only	-	Sep	25	0:00	0	-
                -+Rule	Syria	1994	1996	-	Apr	 1	0:00	1:00	S
                -+Rule	Syria	1994	2005	-	Oct	 1	0:00	0	-
                -+Rule	Syria	1997	1998	-	Mar	lastMon	0:00	1:00	S
                -+Rule	Syria	1999	2006	-	Apr	 1	0:00	1:00	S
                -+Rule	Syria	2006	only	-	Sep	22	0:00	0	-
                -+Rule	Syria	2007	only	-	Mar	lastFri	0:00	1:00	S
                -+Rule	Syria	2007	only	-	Nov	 Fri>=1	0:00	0	-
                -+Rule	Syria	2008	only	-	Apr	Fri>=1	0:00	1:00	S
                -+Rule	Syria	2008	only	-	Nov	1	0:00	0	-
                -+Rule	Syria	2009	only	-	Mar	lastFri	0:00	1:00	S
                -+Rule	Syria	2010	max	-	Apr	Fri>=1	0:00	1:00	S
                -+Rule	Syria	2009	max	-	Oct	lastFri	0:00	0	-
                -+Zone	Asia/Damascus	2:25:12 -	LMT	1920	# Dimashq
                -+			2:00	Syria	EE%sT
                -+Zone	Asia/Dushanbe	4:35:12 -	LMT	1924 May  2
                -+			5:00	-	DUST	1930 Jun 21 # Dushanbe Time
                -+			6:00 RussiaAsia DUS%sT	1991 Mar 31 2:00s
                -+			5:00	1:00	DUSST	1991 Sep  9 2:00s
                -+			5:00	-	TJT		    # Tajikistan Time
                -+Zone	Asia/Bangkok	6:42:04	-	LMT	1880
                -+			6:42:04	-	BMT	1920 Apr # Bangkok Mean Time
                -+			7:00	-	ICT
                -+Zone	Asia/Ashgabat	3:53:32 -	LMT	1924 May  2 # or Ashkhabad
                -+			4:00	-	ASHT	1930 Jun 21 # Ashkhabad Time
                -+			5:00 RussiaAsia	ASH%sT	1991 Mar 31 2:00
                -+			4:00 RussiaAsia	ASH%sT	1991 Oct 27 # independence
                -+			4:00 RussiaAsia	TM%sT	1992 Jan 19 2:00
                -+			5:00	-	TMT
                -+Zone	Asia/Dubai	3:41:12 -	LMT	1920
                -+			4:00	-	GST
                -+Zone	Asia/Samarkand	4:27:12 -	LMT	1924 May  2
                -+			4:00	-	SAMT	1930 Jun 21 # Samarkand Time
                -+			5:00	-	SAMT	1981 Apr  1
                -+			5:00	1:00	SAMST	1981 Oct  1
                -+			6:00	-	TAST	1982 Apr  1 # Tashkent Time
                -+			5:00 RussiaAsia	SAM%sT	1991 Sep  1 # independence
                -+			5:00 RussiaAsia	UZ%sT	1992
                -+			5:00	-	UZT
                -+Zone	Asia/Tashkent	4:37:12 -	LMT	1924 May  2
                -+			5:00	-	TAST	1930 Jun 21 # Tashkent Time
                -+			6:00 RussiaAsia	TAS%sT	1991 Mar 31 2:00
                -+			5:00 RussiaAsia	TAS%sT	1991 Sep  1 # independence
                -+			5:00 RussiaAsia	UZ%sT	1992
                -+			5:00	-	UZT
                -+Zone	Asia/Ho_Chi_Minh	7:06:40 -	LMT	1906 Jun  9
                -+			7:06:20	-	SMT	1911 Mar 11 0:01 # Saigon MT?
                -+			7:00	-	ICT	1912 May
                -+			8:00	-	ICT	1931 May
                -+			7:00	-	ICT
                -+Zone	Asia/Aden	3:00:48	-	LMT	1950
                -+			3:00	-	AST
                -Index: examples/tz/backward
                -===================================================================
                ---- examples/tz/backward	(revision 0)
                -+++ examples/tz/backward	(revision 0)
                -@@ -0,0 +1,110 @@
                -+Link	Africa/Asmara		Africa/Asmera
                -+Link	Africa/Bamako		Africa/Timbuktu
                -+Link	America/Argentina/Catamarca	America/Argentina/ComodRivadavia
                -+Link	America/Adak		America/Atka
                -+Link	America/Argentina/Buenos_Aires	America/Buenos_Aires
                -+Link	America/Argentina/Catamarca	America/Catamarca
                -+Link	America/Atikokan	America/Coral_Harbour
                -+Link	America/Argentina/Cordoba	America/Cordoba
                -+Link	America/Tijuana		America/Ensenada
                -+Link	America/Indiana/Indianapolis	America/Fort_Wayne
                -+Link	America/Indiana/Indianapolis	America/Indianapolis
                -+Link	America/Argentina/Jujuy	America/Jujuy
                -+Link	America/Indiana/Knox	America/Knox_IN
                -+Link	America/Kentucky/Louisville	America/Louisville
                -+Link	America/Argentina/Mendoza	America/Mendoza
                -+Link	America/Rio_Branco	America/Porto_Acre
                -+Link	America/Argentina/Cordoba	America/Rosario
                -+Link	America/St_Thomas	America/Virgin
                -+Link	Asia/Ashgabat		Asia/Ashkhabad
                -+Link	Asia/Chongqing		Asia/Chungking
                -+Link	Asia/Dhaka		Asia/Dacca
                -+Link	Asia/Kathmandu		Asia/Katmandu
                -+Link	Asia/Kolkata		Asia/Calcutta
                -+Link	Asia/Macau		Asia/Macao
                -+Link	Asia/Jerusalem		Asia/Tel_Aviv
                -+Link	Asia/Ho_Chi_Minh	Asia/Saigon
                -+Link	Asia/Thimphu		Asia/Thimbu
                -+Link	Asia/Makassar		Asia/Ujung_Pandang
                -+Link	Asia/Ulaanbaatar	Asia/Ulan_Bator
                -+Link	Atlantic/Faroe		Atlantic/Faeroe
                -+Link	Europe/Oslo		Atlantic/Jan_Mayen
                -+Link	Australia/Sydney	Australia/ACT
                -+Link	Australia/Sydney	Australia/Canberra
                -+Link	Australia/Lord_Howe	Australia/LHI
                -+Link	Australia/Sydney	Australia/NSW
                -+Link	Australia/Darwin	Australia/North
                -+Link	Australia/Brisbane	Australia/Queensland
                -+Link	Australia/Adelaide	Australia/South
                -+Link	Australia/Hobart	Australia/Tasmania
                -+Link	Australia/Melbourne	Australia/Victoria
                -+Link	Australia/Perth		Australia/West
                -+Link	Australia/Broken_Hill	Australia/Yancowinna
                -+Link	America/Rio_Branco	Brazil/Acre
                -+Link	America/Noronha		Brazil/DeNoronha
                -+Link	America/Sao_Paulo	Brazil/East
                -+Link	America/Manaus		Brazil/West
                -+Link	America/Halifax		Canada/Atlantic
                -+Link	America/Winnipeg	Canada/Central
                -+Link	America/Regina		Canada/East-Saskatchewan
                -+Link	America/Toronto		Canada/Eastern
                -+Link	America/Edmonton	Canada/Mountain
                -+Link	America/St_Johns	Canada/Newfoundland
                -+Link	America/Vancouver	Canada/Pacific
                -+Link	America/Regina		Canada/Saskatchewan
                -+Link	America/Whitehorse	Canada/Yukon
                -+Link	America/Santiago	Chile/Continental
                -+Link	Pacific/Easter		Chile/EasterIsland
                -+Link	America/Havana		Cuba
                -+Link	Africa/Cairo		Egypt
                -+Link	Europe/Dublin		Eire
                -+Link	Europe/London		Europe/Belfast
                -+Link	Europe/Chisinau		Europe/Tiraspol
                -+Link	Europe/London		GB
                -+Link	Europe/London		GB-Eire
                -+Link	Etc/GMT			GMT+0
                -+Link	Etc/GMT			GMT-0
                -+Link	Etc/GMT			GMT0
                -+Link	Etc/GMT			Greenwich
                -+Link	Asia/Hong_Kong		Hongkong
                -+Link	Atlantic/Reykjavik	Iceland
                -+Link	Asia/Tehran		Iran
                -+Link	Asia/Jerusalem		Israel
                -+Link	America/Jamaica		Jamaica
                -+Link	Asia/Tokyo		Japan
                -+Link	Pacific/Kwajalein	Kwajalein
                -+Link	Africa/Tripoli		Libya
                -+Link	America/Tijuana		Mexico/BajaNorte
                -+Link	America/Mazatlan	Mexico/BajaSur
                -+Link	America/Mexico_City	Mexico/General
                -+Link	Pacific/Auckland	NZ
                -+Link	Pacific/Chatham		NZ-CHAT
                -+Link	America/Denver		Navajo
                -+Link	Asia/Shanghai		PRC
                -+Link	Pacific/Pago_Pago	Pacific/Samoa
                -+Link	Pacific/Chuuk		Pacific/Yap
                -+Link	Pacific/Chuuk		Pacific/Truk
                -+Link	Pacific/Pohnpei		Pacific/Ponape
                -+Link	Europe/Warsaw		Poland
                -+Link	Europe/Lisbon		Portugal
                -+Link	Asia/Taipei		ROC
                -+Link	Asia/Seoul		ROK
                -+Link	Asia/Singapore		Singapore
                -+Link	Europe/Istanbul		Turkey
                -+Link	Etc/UCT			UCT
                -+Link	America/Anchorage	US/Alaska
                -+Link	America/Adak		US/Aleutian
                -+Link	America/Phoenix		US/Arizona
                -+Link	America/Chicago		US/Central
                -+Link	America/Indiana/Indianapolis	US/East-Indiana
                -+Link	America/New_York	US/Eastern
                -+Link	Pacific/Honolulu	US/Hawaii
                -+Link	America/Indiana/Knox	US/Indiana-Starke
                -+Link	America/Detroit		US/Michigan
                -+Link	America/Denver		US/Mountain
                -+Link	America/Los_Angeles	US/Pacific
                -+Link	Pacific/Pago_Pago	US/Samoa
                -+Link	Etc/UTC			UTC
                -+Link	Etc/UTC			Universal
                -+Link	Europe/Moscow		W-SU
                -+Link	Etc/UTC			Zulu
                -Index: examples/index.html
                -===================================================================
                ---- examples/index.html	(revision 316)
                -+++ examples/index.html	(working copy)
                -@@ -31,7 +31,7 @@
                -     
                -     
                  -
                • Using other symbols than circles for points (with symbol plugin)
                • --
                • Plotting time series and visitors per day with zooming and weekends (with selection plugin)
                • -+
                • Plotting time series, visitors per day with zooming and weekends (with selection plugin) and time zone support
                • -
                • Multiple axes and interacting with the axes
                • -
                • Thresholding the data (with threshold plugin)
                • -
                • Stacked charts (with stacking plugin)
                • diff --git a/build/lib/tmpl.js b/build/lib/tmpl.js deleted file mode 100755 index 2e51817..0000000 --- a/build/lib/tmpl.js +++ /dev/null @@ -1,34 +0,0 @@ -// Simple JavaScript Templating -// http://ejohn.org/blog/javascript-micro-templating/ -// John Resig - http://ejohn.org/ - MIT Licensed -(function() { - var cache = {}; - - this.tmpl = function tmpl(str, data) { - // Figure out if we're getting a template, or if we need to - // load the template - and be sure to cache the result. - var fn = !/\W/.test(str) ? - cache[str] = cache[str] || - tmpl(document.getElementById(str).innerHTML) : - - // Generate a reusable function that will serve as a template - // generator (and which will be cached). - new Function("obj", - "var p=[],print=function(){p.push.apply(p,arguments);};" + - - // Introduce the data as local variables using with(){} - "with(obj){p.push('" + - - // Convert the template into pure JavaScript - str.replace(/[\r\t\n]/g, " ") - .replace(/'(?=[^%]*%})/g,"\t") - .split("'").join("\\'") - .split("\t").join("'") - .replace(/{%=(.+?)%}/g, "',$1,'") - .split("{%").join("');") - .split("%}").join("p.push('") - + "');}return p.join('');"); - // Provide some basic currying to the user - return data ? fn(data) : fn; - }; -})(); \ No newline at end of file diff --git a/build/link_changer.sh b/build/link_changer.sh deleted file mode 100755 index 77a0d86..0000000 --- a/build/link_changer.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -for i in exp* -do - cat $i/content.html | sed 's/"userfiles/"..\/images\/userfiles/' | sed 's/"\/userfiles/"..\/images\/userfiles/' > temp_file_abcd.html - cp temp_file_abcd.html $i/content.html -done diff --git a/build/theme-blue-icon b/build/theme-blue-icon deleted file mode 100644 index e69de29..0000000 diff --git a/scripts/backup b/scripts/backup index 1cf2410..9c7b068 100755 --- a/scripts/backup +++ b/scripts/backup @@ -1,8 +1,10 @@ #/bin/bash -# Backup Script for Computer Programming Lab +# backup Script for Vibration and Acoustics Lab -# Backup Script takes the backup of the database used by the lab. -# Since there is no database being used for Computer Programming Lab, +# backup Script takes the backup of the data used by the lab. +# Since there is no data being used by Vibration and Acoustics Lab, # the script does nothing. +# Usage of the script -echo "There is no database used for the lab." +# To use backup script, run the command +# ./scripts/backup diff --git a/scripts/restore b/scripts/restore index 9eb0734..ec471c8 100755 --- a/scripts/restore +++ b/scripts/restore @@ -1,8 +1,11 @@ #!/bin/bash -# Restore Script for Computer Programming Lab +# Restore Script for Vibration and Acoustics Lab -# Restore Script restores the backup of the database used by the lab. -# Since there is no database being used for Computer Programming Lab, +# Restore Script restores the backup of the data used by the lab. +# Since there is no data being used by Vibration and Acoustics Lab, # the script does nothing. -echo "There is no database used for the lab." +# Usage of the script + +# To use restore script, run the command +# ./scripts/restore diff --git a/scripts/shutdown b/scripts/shutdown deleted file mode 100755 index ebe91c3..0000000 --- a/scripts/shutdown +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -# shutdown script stops all the services on the container required to -# run the lab for the safe dissembling of the lab - -# Usage of the Script - -# To use shutdown.sh, run the command -# ./scripts/shutdown.sh - -# stops the Apache service -service apache2 stop diff --git a/scripts/startup b/scripts/start similarity index 100% rename from scripts/startup rename to scripts/start diff --git a/scripts/stop b/scripts/stop new file mode 100755 index 0000000..afc6eb7 --- /dev/null +++ b/scripts/stop @@ -0,0 +1,10 @@ +# stop script stops all the services on the container started by the lab. + +# Usage of the Script + +# To use stop.sh, run the command +# ./scripts/stop.sh + +# stops the Apache service +service apache2 stop + diff --git a/scripts/test b/scripts/test new file mode 100755 index 0000000..ff28a93 --- /dev/null +++ b/scripts/test @@ -0,0 +1,21 @@ +# test script checks if all the services used by the lab are running properly +# or not. +# This script also tests the backup and restore scripts in case the +# lab uses any data. +# Since Vibration and Acoustics Lab only needs Apache to run all the time, +# it will only check for status of Apache2 service. +# Usage of the Script + +# To use test script, run the command +# ./scripts/test + +# checks for the status of Apache service +status=$(service apache2 status) + +#echo the test result +if [ $? -eq 0 ] +then + echo "Test Passed!" +else + echo "Test Failed!" +fi diff --git a/scripts/test.sh b/scripts/test.sh deleted file mode 100755 index 7e2dc01..0000000 --- a/scripts/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -mkdir foo -echo "mkdir foo" -cd foo -echo "inside foo" -pwd -cd .. -pwd