diff options
Diffstat (limited to 'wqflask/wqflask/static/packages/jqplot/examples')
149 files changed, 36710 insertions, 0 deletions
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv b/wqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv new file mode 100644 index 00000000..453517b0 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv @@ -0,0 +1,25 @@ +Product or service,v01,v02,v03,v04,v05,v06,v07,v08,v09,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20
+Rice,15.8442,13.0993,11.2898,10.7892,10.252,9.0165,8.5287,7.7442,6.9867,6.5213,5.9473,5.4766,4.9214,4.6398,3.8935,3.5228,3.0128,2.4847,2.0357,1.0672
+Bread and other cereals,1.7703,2.2535,2.2753,2.7927,2.2509,2.4341,2.5518,2.5547,2.4204,2.4186,2.4261,2.2927,2.4386,2.2295,2.2203,1.915,1.8791,1.7941,1.6567,0.9296
+Meat,8.3728,8.1221,8.3989,7.9758,8.8246,8.2377,8.432,7.8466,7.5343,7.1171,6.9801,6.9349,5.8307,5.7089,4.927,4.2237,3.6872,3.1429,2.581,1.3766
+Fish and seafood,9.1249,8.7326,7.6122,7.8577,7.1625,6.8527,6.5158,6.1715,6.1298,5.8702,5.3456,4.9906,4.4424,4.3022,3.5298,3.405,2.9977,2.4159,2.0832,1.1499
+Fruits and vegetables,8.0508,7.7875,7.6534,7.4448,7.3702,7.4188,7.3882,7.1647,6.9617,6.6576,6.6077,6.4823,5.9117,5.8149,5.505,5.5355,5.0907,4.569,4.3049,2.6325
+Other food products,10.4408,9.8278,9.9293,9.5176,9.6658,9.2359,9.2842,8.6497,8.7656,8.2962,8.155,7.7294,7.3674,6.9888,6.2995,5.7314,5.2703,4.6947,3.9614,2.2509
+Catering services,4.1883,4.7514,5.3198,5.8819,5.1732,5.5764,6.1713,6.7915,6.8511,7.2681,7.1461,8.109,9.2649,9.5322,11.2138,12.8299,12.9621,13.8936,13.7828,10.0525
+Non-alcoholic beverages,0.6641,0.8454,0.9018,1.0461,1.0113,1.235,1.279,1.3049,1.5024,1.4471,1.5358,1.5796,1.6471,1.6443,1.6562,1.6763,1.6097,1.5039,1.3752,0.864
+Alcoholic beverages,0.5221,0.6997,0.8513,0.8849,0.9168,0.9099,0.8339,0.9921,1.1169,1.1764,1.1936,1.1415,1.1181,1.2889,1.1378,1.023,1.1283,1.0417,0.9839,0.587
+Tobacco and narcotics,1.0969,1.188,1.0713,1.2803,1.1787,1.148,1.3229,1.1726,1.3764,1.3887,1.4011,1.3034,1.4368,1.5017,1.4899,1.4123,1.3168,1.1407,0.8458,0.38
+Clothing and footwear,2.275,2.5511,3.1025,2.9834,3.2857,3.7625,3.1928,3.7071,4.0364,3.629,3.9258,3.2208,3.7113,3.3166,3.4775,3.429,3.6121,3.4569,3.8416,4.1323
+Rentals (actual or imputed) and maintenance and repair of the dwelling,16.0654,15.719,16.3773,16.0175,15.8853,16.132,16.1309,16.3491,15.8512,16.4743,16.2862,15.7327,16.2793,16.6329,17.4903,17.4425,17.3413,18.3527,18.5029,15.2763
+Water supply and miscellaneous services related to the dwelling,1.1145,1.176,1.1183,1.0411,1.0058,1.0796,1.0321,1.0714,1.1117,1.0278,1.136,1.1397,1.1556,1.2206,1.2871,1.2361,1.2111,1.2312,1.1545,0.7881
+Electricity gas and other fuels,4.5928,4.7558,4.8855,4.4684,4.6677,4.6038,4.7789,4.6098,4.4171,4.5078,4.4137,4.4645,4.2693,4.2836,4.1709,4.159,3.8423,3.9957,3.6816,2.5785
+Furnishing household equipment and routine household maintenance,2.1027,2.1576,2.0721,2.0623,2.3498,2.2573,2.2866,2.3766,2.2488,2.3665,2.3445,2.2474,2.3345,2.2479,2.158,2.355,2.0744,2.2269,3.0474,3.8925
+Health,1.2709,1.6007,1.3996,1.612,1.4649,1.5875,1.7056,1.7315,1.7378,2.0401,2.3265,2.1096,2.0513,2.1548,2.0634,2.2206,1.8427,2.4817,2.3066,2.1685
+Transport,4.6414,5.6167,5.9571,6.5372,7.0242,7.6332,7.9823,8.3906,9.112,9.6872,10.2014,11.0074,11.375,11.6753,12.0489,12.0692,13.2962,13.2183,14.6559,32.0912
+Communication,0.2334,0.3642,0.5267,0.5911,0.8888,1.1633,1.0997,1.76,1.9811,2.1708,2.931,3.2634,3.6254,4.107,4.6944,5.0941,5.9984,6.2419,6.6059,5.8353
+Recreation and culture,2.2553,2.8903,2.9564,3.2839,3.4822,3.255,3.1666,3.4245,3.4066,3.8536,3.6333,4.0331,4.4847,4.3552,4.2768,4.1439,4.7196,4.6585,4.4286,3.921
+Education,0.3437,0.3282,0.4805,0.3881,0.4796,0.9766,0.6589,0.6443,1.0423,0.7941,1.064,1.5504,1.3977,1.5226,1.8344,1.9186,2.3022,2.8188,2.8424,2.7792
+Personal care,3.4466,3.5641,3.5711,3.4219,3.2835,3.3569,3.3416,3.4544,3.3675,3.2806,3.118,3.1881,3.2252,3.0588,3.0051,2.9868,3.0361,2.8972,2.9611,2.2867
+Other miscellaneous goods and services,1.5831,1.9691,2.2498,2.122,2.3766,2.1273,2.3165,2.0884,2.0421,2.0067,1.8809,2.0027,1.7115,1.7734,1.6204,1.6702,1.769,1.7391,2.3607,2.9604
+Food and non-alcoholic beverages,58.4561,55.4196,53.3806,53.3059,51.7105,50.007,50.1509,48.2276,47.1521,45.5962,44.1436,43.5952,41.8242,40.8606,39.2451,38.8396,36.5095,34.4988,31.7809,20.3231
+Non food,41.5439,44.5804,46.6194,46.6941,48.2895,49.993,49.8491,51.7724,52.8479,54.4038,55.8564,56.4048,58.1758,59.1394,60.7549,61.1604,63.4905,65.5012,68.2191,79.6769
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/ages.json b/wqflask/wqflask/static/packages/jqplot/examples/ages.json new file mode 100644 index 00000000..86916187 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/ages.json @@ -0,0 +1,5 @@ +[[1043353182,539695335,503657847,28.24,27.51,29.01,51.78], +[0.0085318435343400800,0.0088774027062416400,0.0094714560875224100,0.0101640893891056000,0.0108249758696292000,0.0113773174183149000,0.0117954271696904000,0.0120868766491156000,0.0122726357410028000,0.0123620512208843000,0.0124092312631522000,0.0123929933989534000,0.0123170841477326000,0.0121788940682660000,0.0119848553256476000,0.0117367932349178000,0.0114334768233470000,0.0110840887113746000,0.0107005336950161000,0.0102889073661635000,0.0098746874267631800,0.0094727992165526500,0.0091066817836288100,0.0087853078056091400,0.0085176451289595700,0.0082955898249666400,0.0081021034227657000,0.0079410857437656400,0.0078129432771183200,0.0077041517746791700,0.0076076629996558600,0.0075063773837400400,0.0074212932416191700,0.0073577960797626100,0.0073199937766648000,0.0072872222696609900,0.0072249036551971000,0.0071436496521446000,0.0070535868312601700,0.0069442503777637000,0.0068032069975035000,0.0066093294501292200,0.0063936409488174700,0.0061768176372133200,0.0059737878831400300,0.0057724507581444500,0.0055456647375558400,0.0053139201135624000,0.0050952395722700100,0.0048873227886988200,0.0046839194356973000,0.0044709211871979300,0.0042683374557587400,0.0040886232834079100,0.0039394433696905200,0.0038097165950705600,0.0036797119436340500,0.0035595490798891500,0.0034559622921317600,0.0033586853733251200,0.0032515219944251700,0.0031141174480235800,0.0029601056879342400,0.0027997057390388600,0.0026388958299152400,0.0024706340765107900,0.0022829305753990900,0.0020900571013307600,0.0019037152224417700,0.0017251049256371200,0.0015499961243315000,0.0013709889555399900,0.0011982773790103000,0.0010401790931594200,0.0009015220565900700,0.0007812832602556460,0.0006749752626942340,0.0005833580512023270,0.0005061657847658260,0.0004399544894590220,0.0003808034210932470,0.0003273788998735520,0.0002794993115460400,0.0002369793671257210,0.0001995479850687680,0.0001668101805315270,0.0001383186716039340,0.0001138075253115040,0.0000929924552954457,0.0000755223736670678,0.0000610047525059652,0.0000490638302928227,0.0000396489252832302,0.0000330891826825378,0.0000281195284929135,0.0001070412478036410], +[0.0071192629623232800,0.0072839317935624000,0.0075693293189514500,0.0079091875498352200,0.0082360857829773300,0.0084979038169712600,0.0086893986451354100,0.0088353986277422900,0.0089633895658643000,0.0090878796761182500,0.0092337667384807200,0.0093792123312149900,0.0095192745279032600,0.0096463104169553400,0.0097588790000607600,0.0098544841215461300,0.0099282199747865200,0.0099763812248601700,0.0099957597226035700,0.0099801585489242500,0.0099375446097938400,0.0098709094654945100,0.0097926096630396900,0.0097014318757340600,0.0095968423362564000,0.0094699215837397400,0.0093120985109391200,0.0091337644254482100,0.0089445678055607600,0.0087423328014590000,0.0085321350430430500,0.0083104164267343500,0.0081040369311665900,0.0079207770770160300,0.0077675098774536000,0.0076284130950824500,0.0074765938644635800,0.0073237591351693500,0.0071772210497332700,0.0070244435483804400,0.0068550745015274400,0.0066526057090785200,0.0064404461001358000,0.0062305720357510500,0.0060342707683446500,0.0058408705961082800,0.0056264339860478000,0.0054065565344313600,0.0051920462742280000,0.0049765895152515200,0.0047558832991186200,0.0045207003388048400,0.0042899070487080500,0.0040745089551306800,0.0038817655555785800,0.0037053224400247200,0.0035332134254902200,0.0033727187145046400,0.0032284905944481100,0.0030937679725170100,0.0029582187048090100,0.0028081834596732200,0.0026513461722362800,0.0024926069125082600,0.0023353006048059200,0.0021744630786167700,0.0020021420693961100,0.0018298895084829500,0.0016671380010344600,0.0015153637133401800,0.0013712248188900700,0.0012284616818527500,0.0010934572254154500,0.0009707133813897040,0.0008622603131043950,0.0007661899219731710,0.0006786114871838230,0.0006005435486257860,0.0005322956370150040,0.0004715229254612440,0.0004158721219136000,0.0003645948643149670,0.0003176904909297340,0.0002751152300590630,0.0002367021156783720,0.0002021700726755280,0.0001712214234345020,0.0001437557719387760,0.0001197138111336940,0.0000989925882290494,0.0000814263200020563,0.0000667991474109870,0.0000549164545704749,0.0000455518367647343,0.0000384480445034309,0.0001437755914949950], +[1.284165231,1.3059697282,1.3408259576,1.3770498469,1.4083776842,1.4346340126,1.4545779876,1.4658887137,1.4671638972,1.457608962,1.4400548643,1.4158684686,1.3864911961,1.3528812542,1.3159697978,1.27622903,1.2340137083,1.1905291022,1.1471037258,1.1047013276,1.0647737249,1.0283340659,0.9964942039,0.9703629438,0.9510519527,0.9386721807,0.932316307,0.9316292996,0.9359838821,0.9443012277,0.9554470086,0.9678781103,0.9812761433,0.9953894103,1.0098153246,1.0236249732,1.035479081,1.0451994053,1.0530930686,1.0593183708,1.0634438538,1.0645809137,1.0637641578,1.0623066923,1.0608111193,1.0589993944,1.0561690641,1.0531914677,1.0515722425,1.052330754,1.0553372965,1.0597522653,1.0661637808,1.0752634417,1.0874733411,1.1017415355,1.1159815378,1.1309096828,1.1470504754,1.1633078085,1.1777943775,1.1882903501,1.1963378464,1.2035708256,1.2108560457,1.2175013424,1.2218302494,1.2239011525,1.223611334,1.2198647763,1.2112533925,1.1958739376,1.1742717733,1.1482333683,1.1203430352,1.0926602484,1.0658097999,1.040887396,1.0189501507,0.9998112064,0.9811922123,0.9621730704,0.9427349027,0.9230154312,0.903354613,0.8841353287,0.8656369091,0.8483181293,0.8323701879,0.8174967062,0.8028084248,0.7870522949,0.7736454722,0.7783827557,0.7836945697,0.7977724963], +[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,"95+", ""]]
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gif b/wqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gif Binary files differnew file mode 100644 index 00000000..3288d103 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gif diff --git a/wqflask/wqflask/static/packages/jqplot/examples/area.html b/wqflask/wqflask/static/packages/jqplot/examples/area.html new file mode 100644 index 00000000..2aa52884 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/area.html @@ -0,0 +1,229 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Filled (Area) Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="zooming.html">Previous</a> <a href="./">Examples</a> <a href="axisLabelTests.html">Next</a></div> + + +<!-- Example scripts go here --> + +<style type="text/css"> +.jqplot-target { + margin: 30px; +} + +#customTooltipDiv { + position: absolute; + display: none; + color: #333333; + font-size: 0.8em; + border: 1px solid #666666; + background-color: rgba(160, 160, 160, 0.2); + padding: 2px; +} +</style> + +<p>Area charts support highlighting and mouse events by default. The options and handlers and callbacks are essentially the same as with bar, pie, donut and funnel charts. One notable exception for area charts is that no data point index will be provided to the callback and the entire data set for the highlighted area will be returned. This is because the area is not associated with one particular data point, but with the entire data set of the series.</p> + +<div><span>Moused Over: </span><span id="info1b">Nothing</span></div> + +<div id="chart1b" style="width:400px;height:260px;"></div> + +<p>For the chart below, mouseover has been disabled and click handling is enabled by setting "highlightMouseDown: true". For "fillToZero" area charts that have both negative and positive values as shown below, clicking in either the positive of negative regions will generate the same result.</p> + +<div><span>You Clicked: </span><span id="info1c">Nothing yet</span></div> + +<div id="chart1c" style="width:400px;height:260px;"></div> + +<div id="chart2" style="width:600px;height:260px;"></div> + +<div id="customTooltipDiv">I'm a tooltip.</div> + + + +<script class="code" language="javascript" type="text/javascript"> +$(document).ready(function(){ + + var l2 = [11, 9, 5, 12, 14]; + var l3 = [4, 8, 5, 3, 6]; + var l4 = [12, 6, 13, 11, 2]; + + + var plot1b = $.jqplot('chart1b',[l2, l3, l4],{ + stackSeries: true, + showMarker: false, + seriesDefaults: { + fill: true + }, + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer, + ticks: ["Mon", "Tue", "Wed", "Thr", "Fri"] + } + } + }); + + $('#chart1b').bind('jqplotDataHighlight', + function (ev, seriesIndex, pointIndex, data) { + $('#info1b').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); + } + ); + + $('#chart1b').bind('jqplotDataUnhighlight', + function (ev) { + $('#info1b').html('Nothing'); + } + ); +}); +</script> + + +<script class="code" language="javascript" type="text/javascript"> +$(document).ready(function(){ + var l5 = [4, -3, 3, 6, 2, -2]; + var plot1c = $.jqplot('chart1c',[l5],{ + stackSeries: true, + showMarker: false, + seriesDefaults: { + fill: true, + fillToZero: true, + rendererOptions: { + highlightMouseDown: true + } + } + }); + + $('#chart1c').bind('jqplotDataClick', + function (ev, seriesIndex, pointIndex, data) { + $('#info1c').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); + } + ); +}); +</script> + + +<script class="code" language="javascript" type="text/javascript"> +$(document).ready(function(){ + var l6 = [11, 9, 5, 12, 14, 8, 7, 9, 6, 11, 9, 3, 4]; + var l7 = [4, 8, 5, 3, 6, 5, 3, 2, 6, 7, 4, 3, 2]; + var l8 = [12, 6, 13, 11, 2, 3, 4, 2, 1, 5, 7, 4, 8]; + + var ticks = [[1,'Dec 10'], [2,'Jan 11'], [3,'Feb 11'], [4,'Mar 11'], [5,'Apr 11'], [6,'May 11'], [7,'Jun 11'], [8,'Jul 11'], [9,'Aug 11'], [10,'Sep 11'], [11,'Oct 11'], [12,'Nov 11'], [13,'Dec 11']]; + + + plot2 = $.jqplot('chart2',[l6, l7, l8],{ + stackSeries: true, + showMarker: false, + highlighter: { + show: true, + showTooltip: false + }, + seriesDefaults: { + fill: true, + }, + series: [ + {label: 'Beans'}, + {label: 'Oranges'}, + {label: 'Crackers'} + ], + legend: { + show: true, + placement: 'outsideGrid' + }, + grid: { + drawBorder: false, + shadow: false + }, + axes: { + xaxis: { + ticks: ticks, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -90 + }, + drawMajorGridlines: false + } + } + }); + + // capture the highlighters highlight event and show a custom tooltip. + $('#chart2').bind('jqplotHighlighterHighlight', + function (ev, seriesIndex, pointIndex, data, plot) { + // create some content for the tooltip. Here we want the label of the tick, + // which is not supplied to the highlighters standard tooltip. + var content = plot.series[seriesIndex].label + ', ' + plot.series[seriesIndex]._xaxis.ticks[pointIndex][1] + ', ' + data[1]; + // get a handle on our custom tooltip element, which was previously created + // and styled. Be sure it is initiallly hidden! + var elem = $('#customTooltipDiv'); + elem.html(content); + // Figure out where to position the tooltip. + var h = elem.outerHeight(); + var w = elem.outerWidth(); + var left = ev.pageX - w - 10; + var top = ev.pageY - h - 10; + // now stop any currently running animation, position the tooltip, and fade in. + elem.stop(true, true).css({left:left, top:top}).fadeIn(200); + } + ); + + // Hide the tooltip when unhighliting. + $('#chart2').bind('jqplotHighlighterUnhighlight', + function (ev) { + $('#customTooltipDiv').fadeOut(300); + } + ); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html b/wqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html new file mode 100644 index 00000000..88d3fbb4 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html @@ -0,0 +1,157 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Line Charts and Options</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="area.html">Previous</a> <a href="./">Examples</a> <a href="axisLabelsRotatedText.html">Next</a></div> + + +<!-- Example scripts go here --> + +<p>jqPlot support axis labels through the "label" option of each axis. The default label renderer creates labels in div tags, which allows full css control over every label. Labels are assigned css classes like "jqplot-axis_name-label" where "axis_name" will be xaxis, yaxis, etc.</p> + +<div id="chart1" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<p>By including the "jqplot.canvasTextRenderer.min.js" and "jqplot.canvasAxisLabelRenderer.min.js" plugins, you can render label text directly onto canvas elements. This allows text to be rotated and yaxes will have their labels rotated 90 degrees by default. By default the labels will be rendered using the Hershey font metrics and not stroked as text. Most recent browsers (include IE 9) support native text rendering in canvas elements.</p> + +<div id="chart2" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<p>If a visitors is using a browser suppporting native canvas fonts, the plot belowsupported browser, they will see the labels in the plot below rendered as 12 pt Georgia (or their system serif font if Georgia is unavailable). If they are on an unsupported browser, they will see the default Hershey font.</p> + +<div id="chart3" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var cosPoints = []; + for (var i=0; i<2*Math.PI; i+=0.1){ + cosPoints.push([i, Math.cos(i)]); + } + var plot1 = $.jqplot('chart1', [cosPoints], { + series:[{showMarker:false}], + axes:{ + xaxis:{ + label:'Angle (radians)' + }, + yaxis:{ + label:'Cosine' + } + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var cosPoints = []; + for (var i=0; i<2*Math.PI; i+=0.1){ + cosPoints.push([i, Math.cos(i)]); + } + var plot2 = $.jqplot('chart2', [cosPoints], { + series:[{showMarker:false}], + axes:{ + xaxis:{ + label:'Angle (radians)', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + yaxis:{ + label:'Cosine', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + } + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var cosPoints = []; + for (var i=0; i<2*Math.PI; i+=0.1){ + cosPoints.push([i, Math.cos(i)]); + } + var plot3 = $.jqplot('chart3', [cosPoints], { + series:[{showMarker:false}], + axes:{ + xaxis:{ + label:'Angle (radians)', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + labelOptions: { + fontFamily: 'Georgia, Serif', + fontSize: '12pt' + } + }, + yaxis:{ + label:'Cosine', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + labelOptions: { + fontFamily: 'Georgia, Serif', + fontSize: '12pt' + } + } + } + }); +}); +</script> + + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html b/wqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html new file mode 100644 index 00000000..5f886ecc --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html @@ -0,0 +1,229 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Axis Labels and Rotated Text</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="axisLabelTests.html">Previous</a> <a href="./">Examples</a> <a href="axisScalingForceTickAt.html">Next</a></div> + + <div class="example-plot" id="chart1"></div><div class="example-plot" id="chart2"></div><div class="example-plot" id="chart3"></div><div class="example-plot" id="chart4"></div> +<!-- Example scripts go here --> + + <style type="text/css"> + .jqplot-point-label {white-space: nowrap;} +/* .jqplot-yaxis-label {font-size: 14pt;}*/ +/* .jqplot-yaxis-tick {font-size: 7pt;}*/ + + div.jqplot-target { + height: 400px; + width: 750px; + margin: 70px; + } + </style> + + + <script class="code" type="text/javascript" language="javascript"> +$(document).ready(function(){ + var line1 = [6.5, 9.2, 14, 19.65, 26.4, 35, 51]; + + var plot1 = $.jqplot('chart1', [line1], { + legend: {show:false}, + axes:{ + xaxis:{ + tickOptions:{ + angle: -30 + }, + tickRenderer:$.jqplot.CanvasAxisTickRenderer, + label:'Core Motor Amperage', + labelOptions:{ + fontFamily:'Helvetica', + fontSize: '14pt' + }, + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + yaxis:{ + renderer:$.jqplot.LogAxisRenderer, + tickOptions:{ + labelPosition: 'middle', + angle:-30 + }, + tickRenderer:$.jqplot.CanvasAxisTickRenderer, + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + labelOptions:{ + fontFamily:'Helvetica', + fontSize: '14pt' + }, + label:'Core Motor Voltage' + } + } + }); + +}); +</script> +<script class="code" type="text/javascript" language="javascript"> +$(document).ready(function(){ + var line2 = [['1/1/2008', 42], ['2/14/2008', 56], ['3/7/2008', 39], ['4/22/2008', 81]]; + + var plot2 = $.jqplot('chart2', [line2], { + axes: { + xaxis: { + renderer: $.jqplot.DateAxisRenderer, + label: 'Incliment Occurrance', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + // labelPosition: 'middle', + angle: 15 + } + + }, + yaxis: { + label: 'Incliment Factor', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + } + } + }); + +}); +</script> +<script class="code" type="text/javascript" language="javascript"> +$(document).ready(function(){ + var line3 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp Marketing Gimmick', 9], + ['HDTV Receiver', 15], ['8 Track Control Module', 12], + ['SSPFM (Sealed Sludge Pump Fourier Modulator)', 3], + ['Transcender/Spice Rack', 6], ['Hair Spray Rear View Mirror Danger Indicator', 18]]; + + var plot3 = $.jqplot('chart3', [line3], { + series:[{renderer:$.jqplot.BarRenderer}], + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer, + label: 'Warranty Concern', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -30, + fontFamily: 'Courier New', + fontSize: '9pt' + } + + }, + yaxis: { + label: 'Occurance', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + } + } + }); + + +}); +</script> + + <script class="code" type="text/javascript" language="javascript"> +$(document).ready(function(){ + + var line = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], + ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], + ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]]; + + var line2 = [['Nickle', 28], ['Aluminum', 13], ['Xenon', 54], ['Silver', 47], + ['Sulfer', 16], ['Silicon', 14], ['Vanadium', 23]]; + + var plot4 = $.jqplot('chart4', [line, line2], { + title: 'Concern vs. Occurrance', + series:[{renderer:$.jqplot.BarRenderer}, {xaxis:'x2axis', yaxis:'y2axis'}], + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer, + label: 'Warranty Concern', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: 30 + } + }, + x2axis: { + renderer: $.jqplot.CategoryAxisRenderer, + label: 'Metal', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: 30 + } + }, + yaxis: { + autoscale:true, + label: 'Occurance', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: 30 + } + }, + y2axis: { + autoscale:true, + label: 'Number', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: 30 + } + } + } + }); +}); + </script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html b/wqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html new file mode 100644 index 00000000..f9b8056b --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html @@ -0,0 +1,242 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Force Plot to Have Tick at 0 or 100</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="axisLabelsRotatedText.html">Previous</a> <a href="./">Examples</a> <a href="bandedLine.html">Next</a></div> + + +<!-- Example scripts go here --> + + +<script language="javascript" type="text/javascript"> + + function makeContinuousData(npoints, ybase, yvariation) { + var data = []; + if (yvariation == null) { + yvariation = ybase; + ybase = (Math.random() - 0.5) * 2 * yvariation; + } + for (j=0; j<npoints; j++) { + data.push([j, ybase]); + ybase += (Math.random() - 0.5) * 2 * yvariation; + } + return data; + } + + function makeRandomData(npoints, yvariation) { + var data = []; + for (j=0; j<npoints; j++) { + var y = (Math.random() - 0.5) * 2 * yvariation; + data.push([j, y]); + } + return data; + } + function makeDualContinuousData(npoints, xbase, xvariation, ybase, yvariation) { + var data = []; + if (ybase == null && yvariation == null) { + xvariation = xbase; + yvariation = xvariation; + xbase = (Math.random() - 0.5) * 2 * xvariation; + ybase = (Math.random() - 0.5) * 2 * yvariation; + } + for (j=0; j<npoints; j++) { + data.push([xbase, ybase]); + xbase += (Math.random()) * xvariation; + ybase += (Math.random() - 0.5) * 2 * yvariation; + } + return data; + } + + var plotOptions = { + axes: { + yaxis: { + rendererOptions: { forceTickAt0: true, forceTickAt100: true } + } + } + }; + +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot1 = $.jqplot('chart1',[makeContinuousData(100, 55)], {}); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot2 = $.jqplot('chart2',[makeContinuousData(100, 1, 0.001)], {}); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot3 = $.jqplot('chart3',[makeContinuousData(20, 40, 5)], { + axes: { + yaxis: { + rendererOptions: { forceTickAt0: true, forceTickAt100: true } + } + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot4 = $.jqplot('chart4',[makeContinuousData(20, 40, 5)], { + axesDefaults: { + pad: 0 + }, + axes: { + yaxis: { + rendererOptions: { forceTickAt0: true, forceTickAt100: true } + } + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot5 = $.jqplot('chart5',[makeContinuousData(20, 40, 5)], { + axes: { + xaxis: { + padMin: 0, + padMax: 1.2 + }, + yaxis: { + padMax: 0, + rendererOptions: { forceTickAt0: true, forceTickAt100: true } + } + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot6 = $.jqplot('chart6',[makeContinuousData(20, 40, 8)], { + axes: { + yaxis: { + rendererOptions: { forceTickAt0: true, forceTickAt100: true } + } + }, + canvasOverlay: { + show: true, + objects: [ + {horizontalLine: { + name: 'pebbles', + y: 0, + lineWidth: 3, + color: 'rgb(100, 55, 124)', + shadow: true, + lineCap: 'butt', + xOffset: 0 + }}, + {dashedHorizontalLine: { + name: 'bam-bam', + y: 100, + lineWidth: 4, + dashPattern: [8, 16], + lineCap: 'round', + xOffset: '25', + color: 'rgb(66, 98, 144)', + shadow: false + }} + ] + } + }); +}); + +function lineup(plot, name) { + var co = plot.plugins.canvasOverlay; + var line = co.get(name); + line.options.y += 5; + co.draw(plot); +} + +function linedown(plot, name) { + var co = plot.plugins.canvasOverlay; + var line = co.get(name); + line.options.y -= 5; + co.draw(plot); +} + +</script> + +<div id="chart1" style="height:300px; width:600px;margin: 30px;"></div> +<pre class="code brush: js"></pre> +<div id="chart2" style="height:300px; width:600px;margin: 30px;"></div> +<pre class="code brush: js"></pre> +<div id="chart3" style="height:300px; width:600px;margin: 30px;"></div> +<pre class="code brush: js"></pre> +<div id="chart4" style="height:300px; width:600px;margin: 30px;"></div> +<pre class="code brush: js"></pre> +<div id="chart5" style="height:300px; width:600px;margin: 30px;"></div> +<pre class="code brush: js"></pre> +<div id="chart6" style="height:300px; width:600px;margin: 30px;"></div> + +<div> +<button onclick="lineup(plot6, 'pebbles')"> Pebbles Up </button> +<button onclick="linedown(plot6, 'pebbles')"> Pebbles Down </button> +</div> +<div> +<button onclick="lineup(plot6, 'bam-bam')">Bam-Bam Up</button> +<button onclick="linedown(plot6, 'bam-bam')">Bam-Bam Down</button> +</div> + +<pre class="code brush: js"></pre> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- Additional plugins go here --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bandedLine.html b/wqflask/wqflask/static/packages/jqplot/examples/bandedLine.html new file mode 100644 index 00000000..1da1926c --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/bandedLine.html @@ -0,0 +1,310 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Error Bands and Confidence Intervals</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="axisScalingForceTickAt.html">Previous</a> <a href="./">Examples</a> <a href="bar-charts.html">Next</a></div> + + +<!-- Example scripts go here --> +<p>Bands (like confidence intervals or error bands) can be added to line charts through the "bands" option of the line renderer. The band data can be automatically computed or manually assigned. If assigned manually, the simpliest approach is to set the "rendererOptions: { bandData: [] }" array on the series. Note that band data is taken into account when axes scale themselves so bands will not get clipped.</p> + + +<p>Band data can be supplied as arrays of [x,y] values. One array for the upper band line and one for the lower band line.</p> + + <div id="chart01" style="height:300px; width:600px;"></div> + <pre class="code brush:js"></pre> + + +<p>The number of points in the band data arrays does not have to correspond to the number of points in the data series. Also, band data will be drawn as smoothed lines if the data series is smoothed.</p> + + <div id="chart02" style="height:300px; width:600px;"></div> + <pre class="code brush:js"></pre> + +<p>In this example, band data is supplied as an array of arrays of y values for the low and hi bands. X values for the bands are taken from the x values of the series. The band data is of the form: [ [y low 1, y hi 1], [y low 2, y hi 2], ... ] and there must be a corresponding array of low/hi y values for each x value in the data series.</p> + + <div id="chart1" style="height:300px; width:600px;"></div> + <pre class="code brush:js"></pre> + +<p>The band data can also be supplied as an array of [low y values], [hi y values]. In this case there must also be an equal number of low y values and hi y values as there are data points in the series. X values for the low and hi bands will be taken from the series data. Additionally, the order of low/hi values does not matter as long as they are consistent. jqPlot will figure out which is the low values and which are the high values.</p> + + <div id="chart2" style="height:300px; width:600px;"></div> + <pre class="code brush:js"></pre> + +<p>Band data does not have to be provided. By default, jqPlot will compute +/- 3% band intervals if the "rendererOptions: { bands: { show: true } }" option is set. The band intervals can be customized as well through the "rendererOptions: { bands: { interval: [number|string|arry] } }" option. Valid intervals are:</p> + +<ul> +<li> '1.7' - will add bands at y +/- 1.7 above and below the line.</li> +<li> '10%' - will compute +/- 10% interval bands.</li> +<li> [3, '-10%'] - will add bands at y + 3 and y - 10% above and below the line.</li> +</ul> + +<p>Examples of such interval specifications are shown below:</p> + + <div id="chart3" style="height:300px; width:600px;"></div> + <pre class="code brush:js"></pre> + <div id="chart4" style="height:300px; width:600px;"></div> + <pre class="code brush:js"></pre> + + <div id="chart5" style="height:300px; width:600px;"></div> + <pre class="code brush:js"></pre> + +<p>You can also customize the fill color of the bands and turn on/off band lines. By default, bands respond to the mouse over event, but they can be set to respond to mouse down as well.</p> + <div id="chart6" style="height:300px; width:600px;"></div> + <pre class="code brush:js"></pre> + +<p>Note, the plots on this page all extend the following pre-defined theme:</p> + + <pre class="code brush:js"></pre> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // Band data in arrays of [x,y] values. + bdat = [[['7/1/2011', 8], ['7/2/2011', 9], ['7/3/2011', 8], ['7/4/2011', 13], ['7/5/2011', 11], ['7/6/2011', 13]], + [['7/1/2011', 12], ['7/2/2011', 13], ['7/3/2011', 12], ['7/4/2011', 17], ['7/5/2011', 15], ['7/6/2011', 17]]]; + + dat = [['7/1/2011', 10], ['7/2/2011', 11], ['7/3/2011', 10], ['7/4/2011', 15], ['7/5/2011', 13], ['7/6/2011', 15]]; + + plot01 = $.jqplot('chart01', [dat], $.extend(true, {}, myTheme, { + series: [{ + rendererOptions: { + bandData: bdat + } + }], + axes: { + xaxis: { + renderer: $.jqplot.DateAxisRenderer, + min: '7/1/2011', + max: '7/6/2011', + tickInterval: '1 day' + } + } + })); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // Band data in arrays of [x,y] values. + // Here the low band line (1st array) has 5 points and the hi band line has 4 points. + bdat = [[['7/1/2011', 9], ['7/3/2011', 7], ['7/4/2011', 13], ['7/5/2011', 11], ['7/6/2011', 13]], + [['7/1/2011', 12], ['7/3/2011', 14], ['7/4/2011', 18], ['7/6/2011', 16]]]; + + dat = [['7/1/2011', 10], ['7/2/2011', 11], ['7/3/2011', 10], ['7/4/2011', 15], ['7/5/2011', 13], ['7/6/2011', 15]]; + + plot02 = $.jqplot('chart02', [dat], $.extend(true, {}, myTheme, { + series: [{ + rendererOptions: { + bandData: bdat, + + // turn on smoothing + smooth: true + } + }], + axes: { + xaxis: { + renderer: $.jqplot.DateAxisRenderer, + min: '7/1/2011', + max: '7/6/2011', + tickInterval: '1 day' + } + } + })); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // data points for line. + dat = [[0, 10], [1, 11], [2, 10], [3, 15], [4, 13], [5, 15]]; + + // band data in [[low_y_1, hi_y_1], [low_y_2, hi_y_2],...] format + bdat = [[7, 13], [8, 14], [7, 13], [12, 18], [10, 16], [12, 18]]; + + plot1 = $.jqplot('chart1', [dat], $.extend(true, {}, myTheme, { + series: [{ + rendererOptions: { + // Set the band data on the series. + // Bands will be turned on automatically if + // valid band data is present. + bandData: bdat, + smooth: true + } + }] + })); +}); + +</script> + + +<script class="code" type="text/javascript"> + +$(document).ready(function(){ + // here band data specified as an array of [low y values] and [hi y values] + bdat = [[7, 8, 7, 12, 10, 12], [13, 14, 13, 18, 16, 18]]; + + // Same plot as before with different band data specification and smoothed lines. + plot2 = $.jqplot('chart2', [dat], $.extend(true, {}, myTheme, { + series: [ + { + rendererOptions: { + bandData: bdat, + smooth: true + } + }] + })); +}); + +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot3 = $.jqplot('chart3', [dat], $.extend(true, {}, myTheme, { + series: [{ + rendererOptions: { + bands: { + // draw bands at 1.7 "units" above and below line. + interval: 1.7 + }, + smooth: true + } + }] + })); +}); + +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot4 = $.jqplot('chart4', [dat], $.extend(true, {}, myTheme, { + series: [{ + rendererOptions: { + bands: { + // draw interval at 10% above and below line. + interval: '10%' + }, + smooth: true + } + }] + })); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot5 = $.jqplot('chart5', [dat], $.extend(true, {}, myTheme, { + series: [{ + rendererOptions: { + bands: { + // draw interval at 3 units above and 10% below line. + interval: [3, '-10%'] + }, + smooth: true + } + }] + })); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + plot6 = $.jqplot('chart6', [dat], $.extend(true, {}, myTheme, { + series: [{ + rendererOptions: { + bands: { + // draw interval at 3 units above and 10% below line. + interval: 4, + fillColor: 'rgba(198, 88, 88, 0.6)', + showLines: true + }, + + // highlight the band on mouse down, not on mouse over. + highlightMouseDown: true, + smooth: true + } + }] + })); +}); +</script> + +<script class="code" type="text/javascript"> +/////// +// A default set of reusable plot options. Note that line +// smoothing is turned on. Bands will be drawn with the same +// smoothing as the line. +////// +myTheme = { + grid: { + drawBorder: false, + shadow: false, + background: 'rgba(255, 255, 255, 0.0)' + }, + seriesDefaults: { + shadow: false, + showMarker: false + }, + axes: { + xaxis: { + pad: 1.0, + tickOptions: { + showGridline: false + } + }, + yaxis: { + pad: 1.05 + } + } +}; +</script> +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bar-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/bar-charts.html new file mode 100644 index 00000000..67e9dcca --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/bar-charts.html @@ -0,0 +1,219 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Vertical and Horizontal Bar Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="bandedLine.html">Previous</a> <a href="./">Examples</a> <a href="barLineAnimated.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <style type="text/css"> + + .note { + font-size: 0.8em; + } + .jqplot-yaxis-tick { + white-space: nowrap; + } + </style> + + <div id="chart1" style="width:600px; height:250px;"></div> + + <pre class="code brush: js"></pre> + + <div id="chart2" style="width:400px; height:300px;"></div> + + <pre class="code brush: js"></pre> + + <p class="text">Click on a bar in the plot below to update the text box.</p> + <p class="text">You Clicked: + <span id="info3">Nothing yet.</span> + </p> + <div id="chart3" style="width:400px; height:300px;"></div> + + <pre class="code brush: js"></pre> + + <script class="code" type="text/javascript"> +$(document).ready(function(){ + var s1 = [200, 600, 700, 1000]; + var s2 = [460, -210, 690, 820]; + var s3 = [-260, -440, 320, 200]; + // Can specify a custom tick Array. + // Ticks should match up one for each y value (category) in the series. + var ticks = ['May', 'June', 'July', 'August']; + + var plot1 = $.jqplot('chart1', [s1, s2, s3], { + // The "seriesDefaults" option is an options object that will + // be applied to all series in the chart. + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions: {fillToZero: true} + }, + // Custom labels for the series are specified with the "label" + // option on the series option. Here a series option object + // is specified for each series. + series:[ + {label:'Hotel'}, + {label:'Event Regristration'}, + {label:'Airfare'} + ], + // Show the legend and put it outside the grid, but inside the + // plot container, shrinking the grid to accomodate the legend. + // A value of "outside" would not shrink the grid and allow + // the legend to overflow the container. + legend: { + show: true, + placement: 'outsideGrid' + }, + axes: { + // Use a category axis on the x axis and use our custom ticks. + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer, + ticks: ticks + }, + // Pad the y axis just a little so bars can get close to, but + // not touch, the grid boundaries. 1.2 is the default padding. + yaxis: { + pad: 1.05, + tickOptions: {formatString: '$%d'} + } + } + }); +}); + </script> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // For horizontal bar charts, x an y values must will be "flipped" + // from their vertical bar counterpart. + var plot2 = $.jqplot('chart2', [ + [[2,1], [4,2], [6,3], [3,4]], + [[5,1], [1,2], [3,3], [4,4]], + [[4,1], [7,2], [1,3], [2,4]]], { + seriesDefaults: { + renderer:$.jqplot.BarRenderer, + // Show point labels to the right ('e'ast) of each bar. + // edgeTolerance of -15 allows labels flow outside the grid + // up to 15 pixels. If they flow out more than that, they + // will be hidden. + pointLabels: { show: true, location: 'e', edgeTolerance: -15 }, + // Rotate the bar shadow as if bar is lit from top right. + shadowAngle: 135, + // Here's where we tell the chart it is oriented horizontally. + rendererOptions: { + barDirection: 'horizontal' + } + }, + axes: { + yaxis: { + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var s1 = [2, 6, 7, 10]; + var s2 = [7, 5, 3, 4]; + var s3 = [14, 9, 3, 8]; + plot3 = $.jqplot('chart3', [s1, s2, s3], { + // Tell the plot to stack the bars. + stackSeries: true, + captureRightClick: true, + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions: { + // Put a 30 pixel margin between bars. + barMargin: 30, + // Highlight bars when mouse button pressed. + // Disables default highlighting on mouse over. + highlightMouseDown: true + }, + pointLabels: {show: true} + }, + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer + }, + yaxis: { + // Don't pad out the bottom of the data range. By default, + // axes scaled as if data extended 10% above and below the + // actual range to prevent data points right on grid boundaries. + // Don't want to do that here. + padMin: 0 + } + }, + legend: { + show: true, + location: 'e', + placement: 'outside' + } + }); + // Bind a listener to the "jqplotDataClick" event. Here, simply change + // the text of the info3 element to show what series and ponit were + // clicked along with the data for that point. + $('#chart3').bind('jqplotDataClick', + function (ev, seriesIndex, pointIndex, data) { + $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); + } + ); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html b/wqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html new file mode 100644 index 00000000..7f485242 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html @@ -0,0 +1,165 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Animated Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="bar-charts.html">Previous</a> <a href="./">Examples</a> <a href="barTest.html">Next</a></div> + + +<!-- Example scripts go here --> + + <div id="chart1" style="width:700px; height:300px"></div> + + <p>This plot animates the bars bottom to top and the line series left to right upon initial page load. Since the <code>animateReplot: true</code> option is set, the bars and line will also animate upon calls to <code>plot1.replot( { resetAxes: true } )</code>.</p> + + <pre class="code brush:js"></pre> + + + <script class="code" type="text/javascript"> + + $(document).ready(function () { + var s1 = [[2002, 112000], [2003, 122000], [2004, 104000], [2005, 99000], [2006, 121000], + [2007, 148000], [2008, 114000], [2009, 133000], [2010, 161000], [2011, 173000]]; + var s2 = [[2002, 10200], [2003, 10800], [2004, 11200], [2005, 11800], [2006, 12400], + [2007, 12800], [2008, 13200], [2009, 12600], [2010, 13100]]; + + plot1 = $.jqplot("chart1", [s2, s1], { + // Turns on animatino for all series in this plot. + animate: true, + // Will animate plot on calls to plot1.replot({resetAxes:true}) + animateReplot: true, + cursor: { + show: true, + zoom: true, + looseZoom: true, + showTooltip: false + }, + series:[ + { + pointLabels: { + show: true + }, + renderer: $.jqplot.BarRenderer, + showHighlight: false, + yaxis: 'y2axis', + rendererOptions: { + // Speed up the animation a little bit. + // This is a number of milliseconds. + // Default for bar series is 3000. + animation: { + speed: 2500 + }, + barWidth: 15, + barPadding: -15, + barMargin: 0, + highlightMouseOver: false + } + }, + { + rendererOptions: { + // speed up the animation a little bit. + // This is a number of milliseconds. + // Default for a line series is 2500. + animation: { + speed: 2000 + } + } + } + ], + axesDefaults: { + pad: 0 + }, + axes: { + // These options will set up the x axis like a category axis. + xaxis: { + tickInterval: 1, + drawMajorGridlines: false, + drawMinorGridlines: true, + drawMajorTickMarks: false, + rendererOptions: { + tickInset: 0.5, + minorTicks: 1 + } + }, + yaxis: { + tickOptions: { + formatString: "$%'d" + }, + rendererOptions: { + forceTickAt0: true + } + }, + y2axis: { + tickOptions: { + formatString: "$%'d" + }, + rendererOptions: { + // align the ticks on the y2 axis with the y axis. + alignTicks: true, + forceTickAt0: true + } + } + }, + highlighter: { + show: true, + showLabel: true, + tooltipAxes: 'y', + sizeAdjust: 7.5 , tooltipLocation : 'ne' + } + }); + + }); + + +</script> +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/barTest.html b/wqflask/wqflask/static/packages/jqplot/examples/barTest.html new file mode 100644 index 00000000..f28ad688 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/barTest.html @@ -0,0 +1,299 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Bar Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="barLineAnimated.html">Previous</a> <a href="./">Examples</a> <a href="bezierCurve.html">Next</a></div> + + +<!-- Example scripts go here --> + + <p>Below is a default bar plot. Bars will highlight on mouseover. Events are triggered when you mouseover a bar and also when you click on a bar. Here We capture the 'jqplotDataClick' event and display the clicked series index, point index and data values. When series data is assigned as a 1-dimensional array as in this example, jqPlot automatically converts it into a 2-dimensional array for plotting. So a series defined as [2, 6, 7, 10] will become [[1,2], [2,6], [3,7], [4,10]].<p> + + <div><span>You Clicked: </span><span id="info1">Nothing yet</span></div> + + <div id="chart1" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div> +<pre class="code brush:js"></pre> + + <p>The plot target also fires a 'jqplotDataMouseOver' when the cursor is moused over a bar even if highlighting is turned off. This event will fire continuously as the user mouses over the bar. 'jqplotDataHighlight' fires only once when the user first passes over the bar. Additionally, a 'jqplotDataUnhighlight' event is fired when the user moves out of a bar (if highlighting is enabled).<p> + + <div><span>Moused Over: </span><span id="info2">Nothing</span></div> + + <div id="chart2" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div> +<pre class="code brush:js"></pre> + + <div><span>Moused Over: </span><span id="info2b">Nothing</span></div> + <div><span>Clicked: </span><span id="info2c">Nothing</span></div> + + <div id="chart2b" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div> +<pre class="code brush:js"></pre> + + <p>The next example has the plot's 'captureRightClick' option set to true. This causes the plot to fire a 'jqplotRightClick' event the the user clicks the right mouse button over a bar. Here, the 'highlightMouseDown' option is also set to true. This will highlight a slice on mouse down instead of on move over. Highlighting will occur for either left or right click.</p> + + <div><span>You Right Clicked: </span><span id="info3">Nothing yet</span></div> + + <div id="chart3" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div> +<pre class="code brush:js"></pre> + + <div id="chart4" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div> +<pre class="code brush:js"></pre> + + <div id="chart5" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div> +<pre class="code brush:js"></pre> + +<p>A pie chart is added to test for incompatibilities.</p> + <div id="chart6" style="margin-top:20px; margin-left:20px; width:300px; height:200px;"></div> +<pre class="code brush:js"></pre> + +<p>The nex example shows the placement of point labels on negative bars. They shou be placed on the opposite position. That is, if it is placed 'north' to the positive bars, then it should be placed 'south' to the negative bars.</p> + <div id="chart7" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div> +<pre class="code brush:js"></pre> + + <script class="code" type="text/javascript">$(document).ready(function(){ + $.jqplot.config.enablePlugins = true; + var s1 = [2, 6, 7, 10]; + var ticks = ['a', 'b', 'c', 'd']; + + plot1 = $.jqplot('chart1', [s1], { + // Only animate if we're not using excanvas (not in IE 7 or IE 8).. + animate: !$.jqplot.use_excanvas, + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + pointLabels: { show: true } + }, + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer, + ticks: ticks + } + }, + highlighter: { show: false } + }); + + $('#chart1').bind('jqplotDataClick', + function (ev, seriesIndex, pointIndex, data) { + $('#info1').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); + } + ); + });</script> + + <script class="code" type="text/javascript">$(document).ready(function(){ + var s1 = [2, 6, 7, 10]; + var s2 = [7, 5, 3, 2]; + var ticks = ['a', 'b', 'c', 'd']; + + plot2 = $.jqplot('chart2', [s1, s2], { + seriesDefaults: { + renderer:$.jqplot.BarRenderer, + pointLabels: { show: true } + }, + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer, + ticks: ticks + } + } + }); + + $('#chart2').bind('jqplotDataHighlight', + function (ev, seriesIndex, pointIndex, data) { + $('#info2').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); + } + ); + + $('#chart2').bind('jqplotDataUnhighlight', + function (ev) { + $('#info2').html('Nothing'); + } + ); + });</script> + + <script class="code" type="text/javascript">$(document).ready(function(){ + plot2b = $.jqplot('chart2b', [[[2,1], [4,2], [6,3], [3,4]], [[5,1], [1,2], [3,3], [4,4]], [[4,1], [7,2], [1,3], [2,4]]], { + seriesDefaults: { + renderer:$.jqplot.BarRenderer, + pointLabels: { show: true, location: 'e', edgeTolerance: -15 }, + shadowAngle: 135, + rendererOptions: { + barDirection: 'horizontal' + } + }, + axes: { + yaxis: { + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); + + $('#chart2b').bind('jqplotDataHighlight', + function (ev, seriesIndex, pointIndex, data) { + $('#info2b').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data+ ', pageX: '+ev.pageX+', pageY: '+ev.pageY); + } + ); + $('#chart2b').bind('jqplotDataClick', + function (ev, seriesIndex, pointIndex, data) { + $('#info2c').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data+ ', pageX: '+ev.pageX+', pageY: '+ev.pageY); + } + ); + + $('#chart2b').bind('jqplotDataUnhighlight', + function (ev) { + $('#info2b').html('Nothing'); + } + ); + });</script> + + <script class="code" type="text/javascript">$(document).ready(function(){ + var s1 = [2, 6, 7, 10]; + var s2 = [7, 5, 3, 2]; + var s3 = [14, 9, 3, 8]; + plot3 = $.jqplot('chart3', [s1, s2, s3], { + stackSeries: true, + captureRightClick: true, + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions: { + highlightMouseDown: true + }, + pointLabels: {show: true} + }, + legend: { + show: true, + location: 'e', + placement: 'outside' + } + }); + + $('#chart3').bind('jqplotDataRightClick', + function (ev, seriesIndex, pointIndex, data) { + $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); + } + ); + });</script> + + <script class="code" type="text/javascript">$(document).ready(function(){ + plot4 = $.jqplot('chart4', [[[2,1], [6,2], [7,3], [10,4]], [[7,1], [5,2],[3,3],[2,4]], [[14,1], [9,2], [9,3], [8,4]]], { + stackSeries: true, + captureRightClick: true, + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + shadowAngle: 135, + rendererOptions: { + barDirection: 'horizontal', + highlightMouseDown: true + }, + pointLabels: {show: true, formatString: '%d'} + }, + legend: { + show: true, + location: 'e', + placement: 'outside' + }, + axes: { + yaxis: { + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); + });</script> + + <script class="code" type="text/javascript">$(document).ready(function(){ + plot5 = $.jqplot('chart5', [[[2,1], [null,2], [7,3], [10,4]]], { + captureRightClick: true, + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + shadowAngle: 135, + rendererOptions: { + barDirection: 'horizontal', + highlightMouseDown: true + }, + pointLabels: {show: true, formatString: '%d'} + }, + legend: { + show: true, + location: 'e', + placement: 'outside' + }, + axes: { + yaxis: { + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); + });</script> + + <script class="code" type="text/javascript">$(document).ready(function(){ + plot6 = $.jqplot('chart6', [[1,2,3,4]], {seriesDefaults:{renderer:$.jqplot.PieRenderer}}); + });</script> + + <script class="code" type="text/javascript">$(document).ready(function(){ + var s1 = [2, -6, 7, -5]; + var ticks = ['a', 'b', 'c', 'd']; + + plot7 = $.jqplot('chart7', [s1], { + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions: { fillToZero: true }, + pointLabels: { show: true } + }, + axes: { + // yaxis: { autoscale: true }, + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer, + ticks: ticks + } + } + }); + });</script> +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html b/wqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html new file mode 100644 index 00000000..4741fb57 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html @@ -0,0 +1,125 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Bezier Curve Plots</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="barTest.html">Previous</a> <a href="./">Examples</a> <a href="blockPlot.html">Next</a></div> + + +<!-- Example scripts go here --> + + <p>The Bezier curve renderer can distinguish between two different input data formats. This first example has the data passed in as 2 data points, the second one defining the Bezier curve to the end point. With this format, non-default axes renderers will require specifying the minimum and maximum on the axes.</p> +<pre> + [[xstart, ystart], [cp1x, cp1y, cp2x, cp2y, xend, yend]]; +</pre> +<div id="chart1" class='plot' style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div> +<p>This second example has the data broken out into 4 points, which will be assembled to define the Bezier Curve. With this format, any axes renderer can be used without explicitly specifying the minimum and maximum.</p> +<pre> + [[xstart, ystart], [cp1x, cp1y], [cp2x, cp2y], [xend, yend]]; +</pre> +<div id="chart2" class='plot' style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div> +<p> Here is an example using a date axis renderer with Bezier curves. The data looks like:</p> +<pre> + [['01/01/2010', 6], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 3]] +</pre> + +<div id="chart3" class='plot' style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + + var line1 = [[0, 1], [2, 2, 4, .5, 6, 0]]; + var line2 = [[0, 5], [2, 6, 5, 1, 6, .5]]; + var line3 = [[0, 6], [3, 9, 4, 8, 6, 3]]; + var line4 = [[0, 7], [2, 9, 4, 8, 6, 6]]; + var line5 = [[0, 8], [3, 9, 4, 8, 6, 8]]; + + plot1 = $.jqplot("chart1", [line1,line2, line3, line4, line5], { + seriesDefaults: {renderer:$.jqplot.BezierCurveRenderer}, + legend:{show:true} + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + + var s1 = [[0, 1], [2, 2], [4, .5], [6, 0]]; + var s2 = [[0, 5], [2, 6], [5, 1], [6, .5]]; + var s3 = [[0, 6], [3, 9], [4, 8], [6, 3]]; + var s4 = [[0, 7], [2, 9], [4, 8], [6, 6]]; + var s5 = [[0, 8], [3, 9], [4, 8], [6, 8]]; + + plot2 = $.jqplot("chart2", [s1,s2, s3, s4, s5], { + seriesDefaults: {renderer:$.jqplot.BezierCurveRenderer}, + legend:{show:true} + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + + var s1 = [['01/01/2010', 1], ['02/01/2010', 2], ['03/01/2010', .5], ['04/01/2010', 0]]; + var s2 = [['01/01/2010', 5], ['02/01/2010', 6], ['03/01/2010', 1], ['04/01/2010', .5]]; + var s3 = [['01/01/2010', 6], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 3]]; + var s4 = [['01/01/2010', 7], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 6]]; + var s5 = [['01/01/2010', 8], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 8]]; + + plot3 = $.jqplot("chart3", [s1,s2, s3, s4, s5], { + seriesDefaults: {renderer:$.jqplot.BezierCurveRenderer}, + axes:{xaxis:{renderer:$.jqplot.DateAxisRenderer, numberTicks:4}}, + legend:{show:true} + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.BezierCurveRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/blockPlot.html b/wqflask/wqflask/static/packages/jqplot/examples/blockPlot.html new file mode 100644 index 00000000..cfbe68bd --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/blockPlot.html @@ -0,0 +1,199 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Block Plots</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="bezierCurve.html">Previous</a> <a href="./">Examples</a> <a href="bodyOpenerNoHeader.html">Next</a></div> + + +<!-- Example scripts go here --> + + <p>Below is an example block plot. This plot also uses the Enhanced Legend Renderer plugin. Clicking on an item in the legend will toggle display of the appropriate series.</p> + + <div id="chart1" class="plot" style="width:500px;height:300px;margin-bottom:30px;"></div> + +<p>Blocks can be moved by selecting the series, the point, and an optional duration parameter. If specified, duration will animate the movement. Duration is either a number in milliseconds, or the keywords 'fast' or 'slow'. Higher numbers will cause a slower animation.</p> + Series: <select id="seriesId"> + <option value="0" selected>First</option> + <option value="1">Second</option> + <option value="2">Third</option> + </select> + Point: <select id="pointId"> + <option value="0" selected>first</option> + <option value="1">second</option> + <option value="2">third</option> + <option value="3">fourth</option> + <option value="4">fifth</option> + <option value="5">six</option> + </select> + Duration: <select id="duration"> + <option value="" selected>None</option> + <option value="150">100</option> + <option value="fast">fast</option> + <option value="300">300</option> + <option value="300">400</option> + <option value="300">500</option> + <option value="slow">slow</option> + <option value="900">700</option> + <option value="900">800</option> + <option value="900">900</option> + </select> + X: <button id="mxval" type="button" value="-0.5" onclick="move('x', -1);">-1</button> <button id="pxval" type="button" value="-0.5" onclick="move('x', 0.5);">0.5</button> + Y: <button id="myval" type="button" name="myval" value="-10" onclick="move('y', -30);">-30</button> <button id="pyval" type="button" name="pyval" value="10" onclick="move('y', 15);">15</button> + + <pre class="code brush:js"></pre> + + + <p>This second chart is like the first except the "varyBlockColors" renderer option is set to true. This will vary the color of each block in a series separately. This allows displaying a third dimension to the data such as grouping beverage products by producer and by category such as "cola", "tea", "energy drink", etc.</p> + + <p>Also, the legend has it's "showSwathces" option set to false, since the blocks of each series will be of varying color and won't correspond to one swatch color. This still enables the user to show and hide the series by clicking on a label in the legend.</p> + + <div id="chart2" class="plot" style="width:500px;height:300px;margin-bottom:30px;"></div> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + + var s1 = [[0.9, 120, 'Vernors'], [1.8, 140, 'Fanta'], [3.2, 90, 'Barqs', {background:'#ddbb33'}], + [4.1, 140, 'Arizon Iced Tea'], [4.5, 91, 'Red Bull'], [6.8, 17, 'Go Girl']]; + var s2 = [[1.3, 44, 'Pepsi'], [2.1, 170, 'Sierra Mist'], [2.6, 66, 'Moutain Dew'], + [4, 52, 'Sobe'], [5.4, 16, 'Amp'], [6, 48, 'Aquafina']]; + var s3 = [[1, 59, 'Coca-Cola', {background:'rgb(250, 160, 160)'}], [2, 50, 'Ambasa'], + [3, 90, 'Mello Yello'], [4, 90, 'Sprite'], [5, 71, 'Squirt'], [5, 155, 'Youki']]; + + $('#chart1').jqplot([s1, s2, s3],{ + seriesDefaults:{ + renderer:$.jqplot.BlockRenderer + }, + legend:{ + renderer: $.jqplot.EnhancedLegendRenderer, + show:true + }, + series: [ + {}, + {rendererOptions: { + css:{background:'#A1EED6'} + }}, + {rendererOptions: { + css:{background:'#D3E4A0'} + }} + ], + axes: { + xaxis: { + min:0, + max: 8 + }, + yaxis: { + min:0, + max: 200 + } + } + }); +}); + + function move(dir, val) { + var plot1 = $('#chart1').data('jqplot'); + val = parseFloat(val); + var sidx = parseInt($('#seriesId').val()); + var pidx = parseInt($('#pointId').val()); + var duration = $('#duration').val(); + var x = plot1.series[sidx].data[pidx][0]; + var y = plot1.series[sidx].data[pidx][1]; + (dir == 'x') ? x += val : y += val; + plot1.series[sidx].moveBlock(pidx, x, y, duration); + } + +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var s1 = [[0.9, 120, 'Vernors'], [1.8, 140, 'Fanta'], [3.2, 90, 'Barqs'], + [4.1, 140, 'Arizon Iced Tea'], [4.5, 91, 'Red Bull'], [6.8, 17, 'Go Girl']]; + var s2 = [[1.3, 44, 'Pepsi'], [2.1, 170, 'Sierra Mist'], [2.6, 66, 'Moutain Dew'], + [4, 52, 'Sobe'], [5.4, 16, 'Amp'], [6, 48, 'Aquafina']]; + var s3 = [[1, 59, 'Coca-Cola'], [2, 50, 'Sprite'], [3, 90, 'Mello Yello'], + [4, 90, 'Ambasa'], [5, 71, 'Squirt'], [5, 155, 'Youki']]; + + + var plot2 = $.jqplot('chart2',[s1, s2, s3],{ + seriesDefaults:{ + renderer:$.jqplot.BlockRenderer, + rendererOptions: { + varyBlockColors: true + }, + pointLabels:{ + show: false + } + }, + legend:{ + renderer: $.jqplot.EnhancedLegendRenderer, + show:true, + showSwatches: false + }, + series: [{label: 'Independent Brands'}, {label: 'Pepsi Brands'}, {label: 'Coke Brands'}], + axes: { + xaxis: { + min:0, + max: 8 + }, + yaxis: { + min:0, + max: 200 + } + } + }); + + }); + +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.blockRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.enhancedLegendRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html b/wqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html new file mode 100644 index 00000000..d210b98e --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html @@ -0,0 +1,213 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Bubble Plots</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="bodyOpenerNoHeader.html">Previous</a> <a href="./">Examples</a> <a href="bubbleChart.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css"> + + .note { + font-size: 0.8em; + } + + #tooltip1b { + font-size: 12px; + color: rgb(15%, 15%, 15%); + padding:2px; + background-color: rgba(95%, 95%, 95%, 0.8); + } + + #legend1b { + font-size: 12px; + border: 1px solid #cdcdcd; + border-collapse: collapse; + } + #legend1b td, #legend1b th { + border: 1px solid #cdcdcd; + padding: 1px 4px; + } + + + </style> + +<p>Bubble charts represent 3 dimensional data. First, a basic bubble chart with the "bubbleGradients: true" option to specify gradient fills. Radial gradients are not supported in IE version before IE 9 and will be automatically disabled.</p> + +<div id="chart1" style="height:340px; width:460px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<p>Data is passed in to a bubble chart as a series of [x, y, radius, <label or object>]. The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.</p> + +<p>By default, all bubbles are scaled according to the size of the plot area. The radius value in the data point will be adjusted to fit the bubbles in the chart. If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.</p> + +<p>Next are some basic customizations of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.</p> + +<div id="chart2" style="height:340px; width:460px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<p>In the following example, display of a custom toolip and highlighting of a custom table legend is performed by binding to the "jqplotDataHighlight" and "jqplotDataUnhighlight" events. The custom legend table here is dynamically created with a few lines of jQuery (O.K., it could be done in one line) based on the data array of the plot.</p> + +<div style="position:absolute;z-index:99;display:none;" id="tooltip1b"></div> + +<table style="margin-left:auto; margin-right:auto;"><tr> + <td><div id="chart1b" style="width:460px;height:340px;"></div></td> + <td><div style="height:340px;"><table id="legend1b"><tr><th>Company</th><th>R Value</th></tr></table></div></td> +</tr></table> + +<pre class="code prettyprint brush: js"></pre> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + + var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], + [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], + [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]]; + + var plot1 = $.jqplot('chart1',[arr],{ + title: 'Bubble Chart with Gradient Fills', + seriesDefaults:{ + renderer: $.jqplot.BubbleRenderer, + rendererOptions: { + bubbleGradients: true + }, + shadow: true + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + + var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], + [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], + [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]]; + + var plot2 = $.jqplot('chart2',[arr],{ + title: 'Transparent Bubbles', + seriesDefaults:{ + renderer: $.jqplot.BubbleRenderer, + rendererOptions: { + bubbleAlpha: 0.6, + highlightAlpha: 0.8 + }, + shadow: true, + shadowAlpha: 0.05 + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + + var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], + [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], + [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]]; + + var plot1b = $.jqplot('chart1b',[arr],{ + title: 'Tooltip and Custom Legend Highlighting', + seriesDefaults:{ + renderer: $.jqplot.BubbleRenderer, + rendererOptions: { + bubbleAlpha: 0.6, + highlightAlpha: 0.8, + showLabels: false + }, + shadow: true, + shadowAlpha: 0.05 + } + }); + + // Legend is a simple table in the html. + // Dynamically populate it with the labels from each data value. + $.each(arr, function(index, val) { + $('#legend1b').append('<tr><td>'+val[3]+'</td><td>'+val[2]+'</td></tr>'); + }); + + // Now bind function to the highlight event to show the tooltip + // and highlight the row in the legend. + $('#chart1b').bind('jqplotDataHighlight', + function (ev, seriesIndex, pointIndex, data, radius) { + var chart_left = $('#chart1b').offset().left, + chart_top = $('#chart1b').offset().top, + x = plot1b.axes.xaxis.u2p(data[0]), // convert x axis unita to pixels + y = plot1b.axes.yaxis.u2p(data[1]); // convert y axis units to pixels + var color = 'rgb(50%,50%,100%)'; + $('#tooltip1b').css({left:chart_left+x+radius+5, top:chart_top+y}); + $('#tooltip1b').html('<span style="font-size:14px;font-weight:bold;color:' + + color + ';">' + data[3] + '</span><br />' + 'x: ' + data[0] + + '<br />' + 'y: ' + data[1] + '<br />' + 'r: ' + data[2]); + $('#tooltip1b').show(); + $('#legend1b tr').css('background-color', '#ffffff'); + $('#legend1b tr').eq(pointIndex+1).css('background-color', color); + }); + + // Bind a function to the unhighlight event to clean up after highlighting. + $('#chart1b').bind('jqplotDataUnhighlight', + function (ev, seriesIndex, pointIndex, data) { + $('#tooltip1b').empty(); + $('#tooltip1b').hide(); + $('#legend1b tr').css('background-color', '#ffffff'); + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.bubbleRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html b/wqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html new file mode 100644 index 00000000..628d9066 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html @@ -0,0 +1,264 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Bubble Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="bubble-plots.html">Previous</a> <a href="./">Examples</a> <a href="candlestick-charts.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css"> + .jqplot-target { + margin-bottom: 2em; + } + + .note { + font-size: 0.8em; + } + + #tooltip1b { + font-size: 12px; + color: rgb(15%, 15%, 15%); + padding:2px; + background-color: rgba(95%, 95%, 95%, 0.8); + } + + #legend1b { + font-size: 12px; + border: 1px solid #cdcdcd; + border-collapse: collapse; + } + #legend1b td, #legend1b th { + border: 1px solid #cdcdcd; + padding: 1px 4px; + } + </style> + + + <p>Bubble charts represent 3 dimensional data. Data is passed in to a bubble chart as a series of [x, y, radius, <label or object>]. The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.</p> + +<p>By default, all bubbles are scaled according to the size of the plot area. The radius value in the data point will be adjusted to fit the bubbles in the chart. If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.</p> + +<p>The below chart show basic customization of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.</p> + +<div id="chart1" class="plot" style="width:460px;height:340px;"></div> +<pre class="code brush:js"></pre> + +<div style="position:absolute;z-index:99;display:none;" id="tooltip1b"></div> + +<table><tr> + <td><div id="chart1b" class="plot" style="width:460px;height:340px;"></div></td> + <td><div style="height:340px;"><table id="legend1b"><tr><th>Company</th><th>R Value</th></tr></table></div></td> +</tr></table> +<pre class="code brush:js"></pre> + +<p>Below is a basic bubble chart showing usage of the optional label and color properties passed in with the data.</p> + +<div id="chart1c" class="plot" style="width:460px;height:340px;"></div> +<pre class="code brush:js"></pre> + +<p>The next chart uses the "bubbleGradients: true" option to specify gradient fills on the bubbles. Radial gradients are not supported in IE<sup>*</sup> and will be automatically disabled.</p> + +<div id="chart2" class="plot" style="width:460px;height:340px;"></div> + +<p class="note"><sup>*</sup>Radial gradients are not supported in IE 7 and IE 8 because they are not supported in the excanvas emulation layer used by jqPlot to render charts in IE 7 and IE 8. jqPlot renders charts using the HTML canvas element which is supported by nearly every browser including IE 9. Excanvas translates the canvas rendering to VML rendering for IE 7 and 8, but unfortunately does not properly handle radial gradients.</p> + +<pre class="code brush:js"></pre> + +<p>The following bubble chart shows the "autoscalePointsFactor" and "autoscaleMultiplier" options which can be used to control bubble scaling. The "autoscalePointsFactor" options controls bubble scaling with the number of points on the plot. A negative value will decrease bubble size and number of bubbles increases. The "autoscaleMultiplier" will makes all bubbles larger or smaller for values greater or less than 1.0.</p> + +<p>This chart also demonstrates some of the highlighting options. Bubble highlighting is controlled with the "highlightMouseOver" and "highlightMouseDown" boolean options. Here the "highlightMouseDown: true" option is set which causes the plot to highlight on mousedown (click). This automatically sets the "highlightMouseOver" option to false.</p> + +<p>Events are also trigger with plot interaction. Specifically, "jqplotDataHighlight", "jqplotDataUnhighlight", "jqplotDataClick" and "jqplotDataRightClick" events are triggered. Handlers are passed an event object, the series index, the point index, and the bubble data.</p> + +<div id="chart3" class="plot" style="width:600px;height:400px;"></div> +<pre class="code brush:js"></pre> + +<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){ + + var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], + [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], + [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]]; + + plot1 = $.jqplot('chart1',[arr],{ + title: 'Transparent Bubbles', + seriesDefaults:{ + renderer: $.jqplot.BubbleRenderer, + rendererOptions: { + bubbleAlpha: 0.6, + highlightAlpha: 0.8 + }, + shadow: true, + shadowAlpha: 0.05 + } + }); +});</script> + +<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){ + + var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], + [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], + [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]]; + + plot1b = $.jqplot('chart1b',[arr],{ + title: 'Tooltip and Custom Legend Highlighting', + seriesDefaults:{ + renderer: $.jqplot.BubbleRenderer, + rendererOptions: { + bubbleAlpha: 0.6, + highlightAlpha: 0.8, + showLabels: false + }, + shadow: true, + shadowAlpha: 0.05 + } + }); + + // Legend is a simple table in the html. + // Now populate it with the labels from each data value. + $.each(arr, function(index, val) { + $('#legend1b').append('<tr><td>'+val[3]+'</td><td>'+val[2]+'</td></tr>'); + }); + + // Now bind function to the highlight event to show the tooltip + // and highlight the row in the legend. + $('#chart1b').bind('jqplotDataHighlight', + function (ev, seriesIndex, pointIndex, data, radius) { + var chart_left = $('#chart1b').offset().left, + chart_top = $('#chart1b').offset().top, + x = plot1b.axes.xaxis.u2p(data[0]), // convert x axis unita to pixels on grid + y = plot1b.axes.yaxis.u2p(data[1]); // convert y axis units to pixels on grid + var color = 'rgb(50%,50%,100%)'; + $('#tooltip1b').css({left:chart_left+x+radius+5, top:chart_top+y}); + $('#tooltip1b').html('<span style="font-size:14px;font-weight:bold;color:'+color+';">' + + data[3] + '</span><br />' + 'x: '+data[0] + '<br />' + 'y: ' + + data[1] + '<br />' + 'r: ' + data[2]); + $('#tooltip1b').show(); + $('#legend1b tr').css('background-color', '#ffffff'); + $('#legend1b tr').eq(pointIndex+1).css('background-color', color); + }); + + // Bind a function to the unhighlight event to clean up after highlighting. + $('#chart1b').bind('jqplotDataUnhighlight', + function (ev, seriesIndex, pointIndex, data) { + $('#tooltip1b').empty(); + $('#tooltip1b').hide(); + $('#legend1b tr').css('background-color', '#ffffff'); + }); +});</script> + +<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){ + + var arr = [[11, 123, 1236, {label:"Acura", color:'sandybrown'}], + [45, 92, 1067, {label:"Alfa Romeo", color:'skyblue'}], + [24, 104, 1176, {label:"AM General", color:"salmon"}], [50, 23, 610, {color:"papayawhip"}], + [18, 17, 539, "Audi"], [7, 89, 864], [2, 13, 1026, "Bugatti"]]; + + plot1c = $.jqplot('chart1c',[arr],{ + title: 'Bubble Data Customizations', + seriesDefaults:{ + renderer: $.jqplot.BubbleRenderer + } + }); + +});</script> + +<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){ + + var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], + [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], + [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]]; + + plot2 = $.jqplot('chart2',[arr],{ + title: 'Bubble Gradient Fills*', + seriesDefaults:{ + renderer: $.jqplot.BubbleRenderer, + rendererOptions: { + bubbleGradients: true + }, + shadow: true + } + }); + +});</script> + +<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){ + + var arr = [[44, 66, 897, "Acura"], [25, 40, 1119, "Alfa Romeo"], [2, 33, 1197, "AM General"], + [4, 132, 896, "Aston Martin Lagonda"], [2, 129, 314, "Audi"], [14, 47, 612, "BMW"], + [45, 112, 719, "Bugatti"], [11, 38, 785, "Buick"], [15, 39, 367, "Cadillac"], + [6, 133, 726, "Chevrolet"], [48, 84, 1082, "Citroen"], [40, 18, 1047, "DaimlerChrysler Corporation"], + [24, 107, 1065, "Daewoo Motor Co."], [27, 92, 792, "Delorean Motor Company"], [1, 78, 803, "Dodge"], + [5, 149, 320, "Ferrari"], [11, 127, 497, "Fiat"], [14, 18, 805, "Ford Motor Company"], + [9, 101, 394, "General Motors"], [16, 57, 338, "GMC"], [19, 89, 977, "Holden"], + [35, 78, 464, "Honda"], [18, 130, 364, "Hummer"], [37, 20, 699, "Hyundai"], + [33, 140, 457, "Infiniti"], [12, 122, 533, "Isuzu"], [25, 67, 767, "Jaguar Cars"], + [0, 7, 481, "Jeep"], [38, 36, 611, "Jensen Motors"], [43, 91, 943, "Kia"], [45, 21, 569, "Laforza"]]; + + plot3 = $.jqplot('chart3',[arr],{ + title: 'Bubble Auto Scaling Options', + seriesDefaults:{ + renderer: $.jqplot.BubbleRenderer, + rendererOptions: { + autoscalePointsFactor: -0.15, + autoscaleMultiplier: 0.85, + highlightMouseDown: true, + bubbleAlpha: 0.7 + }, + shadow: true, + shadowAlpha: 0.05 + } + }); + +});</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.bubbleRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html new file mode 100644 index 00000000..c0262e34 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html @@ -0,0 +1,209 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Open Hi Low Close and Candlestick Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="bubbleChart.html">Previous</a> <a href="./">Examples</a> <a href="candlestick.html">Next</a></div> + + +<!-- Example scripts go here --> + +<p>OHLC, HLC and Candlestick charts are all created using the $.jqplot.OHLCRenderer plugin. The plots on this page make use of the highlighter plugin which shows a customized tooltip as the mouse moves over a data point.</p> +<div id="chart1" style="height:250px; width:600px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<div id="chart2" style="height:250px; width:600px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<p>The previous plots use the following data set. jqPlot will parse most human readable date formats. It is always safest, however, to pass a date in as a JavaScript timestamp rather than have jqPlot parse an arbitrary date string.</p> + +<pre class="code prettyprint brush: js"></pre> + + +<script class="code" language="javascript" type="text/javascript"> +$(document).ready(function(){ + // Note, the ohlc data is specified below + var plot1 = $.jqplot('chart1',[ohlc],{ + // use the y2 axis on the right of the plot + //rather than the y axis on the left. + seriesDefaults:{yaxis:'y2axis'}, + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer, + tickOptions:{formatString:'%b %e'}, + // For date axes, we can specify ticks options as human + // readable dates. You should be as specific as possible, + // however, and include a date and time since some + // browser treat dates without a time as UTC and some + // treat dates without time as local time. + // Generally, if a time is specified without a time zone, + // the browser assumes the time zone of the client. + min: "09-01-2008 16:00", + max: "06-22-2009 16:00", + tickInterval: "6 weeks" + }, + y2axis: { + tickOptions:{formatString:'$%d'} + } + }, + series: [{renderer:$.jqplot.OHLCRenderer}], + highlighter: { + show: true, + showMarker:false, + tooltipAxes: 'xy', + yvalues: 4, + // You can customize the tooltip format string of the highlighter + // to include any arbitrary text or html and use format string + // placeholders (%s here) to represent x and y values. + formatString:'<table class="jqplot-highlighter"> \ + <tr><td>date:</td><td>%s</td></tr> \ + <tr><td>open:</td><td>%s</td></tr> \ + <tr><td>hi:</td><td>%s</td></tr> \ + <tr><td>low:</td><td>%s</td></tr> \ + <tr><td>close:</td><td>%s</td></tr></table>' + } + }); + +}); +</script> + +<script class="code" language="javascript" type="text/javascript"> +$(document).ready(function(){ + var plot2 = $.jqplot('chart2',[ohlc],{ + seriesDefaults:{yaxis:'y2axis'}, + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer, + tickOptions:{formatString:'%b %e'}, + min: "09-01-2008", + max: "06-22-2009", + tickInterval: "6 weeks" + }, + y2axis: { + tickOptions:{formatString:'$%d'} + } + }, + // To make a candle stick chart, set the "candleStick" option to true. + series: [ + { + renderer:$.jqplot.OHLCRenderer, + rendererOptions:{ candleStick:true } + } + ], + highlighter: { + show: true, + showMarker:false, + tooltipAxes: 'xy', + yvalues: 4, + formatString:'<table class="jqplot-highlighter"> \ + <tr><td>date:</td><td>%s</td></tr> \ + <tr><td>open:</td><td>%s</td></tr> \ + <tr><td>hi:</td><td>%s</td></tr> \ + <tr><td>low:</td><td>%s</td></tr> \ + <tr><td>close:</td><td>%s</td></tr></table>' + } + }); + +}); +</script> + + +<script class="code" language="javascript" type="text/javascript"> +ohlc = [ + ['06/15/2009 16:00:00', 136.01, 139.5, 134.53, 139.48], + ['06/08/2009 16:00:00', 143.82, 144.56, 136.04, 136.97], + ['06/01/2009 16:00:00', 136.47, 146.4, 136, 144.67], + ['05/26/2009 16:00:00', 124.76, 135.9, 124.55, 135.81], + ['05/18/2009 16:00:00', 123.73, 129.31, 121.57, 122.5], + ['05/11/2009 16:00:00', 127.37, 130.96, 119.38, 122.42], + ['05/04/2009 16:00:00', 128.24, 133.5, 126.26, 129.19], + ['04/27/2009 16:00:00', 122.9, 127.95, 122.66, 127.24], + ['04/20/2009 16:00:00', 121.73, 127.2, 118.6, 123.9], + ['04/13/2009 16:00:00', 120.01, 124.25, 115.76, 123.42], + ['04/06/2009 16:00:00', 114.94, 120, 113.28, 119.57], + ['03/30/2009 16:00:00', 104.51, 116.13, 102.61, 115.99], + ['03/23/2009 16:00:00', 102.71, 109.98, 101.75, 106.85], + ['03/16/2009 16:00:00', 96.53, 103.48, 94.18, 101.59], + ['03/09/2009 16:00:00', 84.18, 97.2, 82.57, 95.93], + ['03/02/2009 16:00:00', 88.12, 92.77, 82.33, 85.3], + ['02/23/2009 16:00:00', 91.65, 92.92, 86.51, 89.31], + ['02/17/2009 16:00:00', 96.87, 97.04, 89, 91.2], + ['02/09/2009 16:00:00', 100, 103, 95.77, 99.16], + ['02/02/2009 16:00:00', 89.1, 100, 88.9, 99.72], + ['01/26/2009 16:00:00', 88.86, 95, 88.3, 90.13], + ['01/20/2009 16:00:00', 81.93, 90, 78.2, 88.36], + ['01/12/2009 16:00:00', 90.46, 90.99, 80.05, 82.33], + ['01/05/2009 16:00:00', 93.17, 97.17, 90.04, 90.58], + ['12/29/2008 16:00:00', 86.52, 91.04, 84.72, 90.75], + ['12/22/2008 16:00:00', 90.02, 90.03, 84.55, 85.81], + ['12/15/2008 16:00:00', 95.99, 96.48, 88.02, 90], + ['12/08/2008 16:00:00', 97.28, 103.6, 92.53, 98.27], + ['12/01/2008 16:00:00', 91.3, 96.23, 86.5, 94], + ['11/24/2008 16:00:00', 85.21, 95.25, 84.84, 92.67], + ['11/17/2008 16:00:00', 88.48, 91.58, 79.14, 82.58], + ['11/10/2008 16:00:00', 100.17, 100.4, 86.02, 90.24], + ['11/03/2008 16:00:00', 105.93, 111.79, 95.72, 98.24], + ['10/27/2008 16:00:00', 95.07, 112.19, 91.86, 107.59], + ['10/20/2008 16:00:00', 99.78, 101.25, 90.11, 96.38], + ['10/13/2008 16:00:00', 104.55, 116.4, 85.89, 97.4], + ['10/06/2008 16:00:00', 91.96, 101.5, 85, 96.8], + ['09/29/2008 16:00:00', 119.62, 119.68, 94.65, 97.07], + ['09/22/2008 16:00:00', 139.94, 140.25, 123, 128.24], + ['09/15/2008 16:00:00', 142.03, 147.69, 120.68, 140.91] +]; +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/candlestick.html b/wqflask/wqflask/static/packages/jqplot/examples/candlestick.html new file mode 100644 index 00000000..b213d6ec --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/candlestick.html @@ -0,0 +1,322 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Candlestick and Open Hi Low Close charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="candlestick-charts.html">Previous</a> <a href="./">Examples</a> <a href="canvas-overlay.html">Next</a></div> + + +<!-- Example scripts go here --> + +<div id="chart1" class="code" style="margin:20px;height:240px; width:640px;"></div> +<pre class="code brush:js"></pre> +<div id="chart2" class="code" style="margin:20px;height:240px; width:640px;"></div> +<pre class="code brush:js"></pre> +<div id="chart2b" class="code" style="margin:20px;height:240px; width:640px;"></div> +<pre class="code brush:js"></pre> +<div id="chart3" class="code" style="margin:20px;height:240px; width:640px;"></div> +<pre class="code brush:js"></pre> +<div id="chart4" class="code" style="margin:20px;height:320px; width:500px;"></div> +<pre class="code brush:js"></pre> +<p>The examples on this page use the folowing code:</p> +<pre class="common brush:js"></pre> + +<script class="common" type="text/javascript"> + + ohlc = [['07/06/2009', 138.7, 139.68, 135.18, 135.4], + ['06/29/2009', 143.46, 144.66, 139.79, 140.02], + ['06/22/2009', 140.67, 143.56, 132.88, 142.44], + ['06/15/2009', 136.01, 139.5, 134.53, 139.48], + ['06/08/2009', 143.82, 144.56, 136.04, 136.97], + ['06/01/2009', 136.47, 146.4, 136, 144.67], + ['05/26/2009', 124.76, 135.9, 124.55, 135.81], + ['05/18/2009', 123.73, 129.31, 121.57, 122.5], + ['05/11/2009', 127.37, 130.96, 119.38, 122.42], + ['05/04/2009', 128.24, 133.5, 126.26, 129.19], + ['04/27/2009', 122.9, 127.95, 122.66, 127.24], + ['04/20/2009', 121.73, 127.2, 118.6, 123.9], + ['04/13/2009', 120.01, 124.25, 115.76, 123.42], + ['04/06/2009', 114.94, 120, 113.28, 119.57], + ['03/30/2009', 104.51, 116.13, 102.61, 115.99], + ['03/23/2009', 102.71, 109.98, 101.75, 106.85], + ['03/16/2009', 96.53, 103.48, 94.18, 101.59], + ['03/09/2009', 84.18, 97.2, 82.57, 95.93], + ['03/02/2009', 88.12, 92.77, 82.33, 85.3], + ['02/23/2009', 91.65, 92.92, 86.51, 89.31], + ['02/17/2009', 96.87, 97.04, 89, 91.2], + ['02/09/2009', 100, 103, 95.77, 99.16], + ['02/02/2009', 89.1, 100, 88.9, 99.72], + ['01/26/2009', 88.86, 95, 88.3, 90.13], + ['01/20/2009', 81.93, 90, 78.2, 88.36], + ['01/12/2009', 90.46, 90.99, 80.05, 82.33], + ['01/05/2009', 93.17, 97.17, 90.04, 90.58], + ['12/29/2008', 86.52, 91.04, 84.72, 90.75], + ['12/22/2008', 90.02, 90.03, 84.55, 85.81], + ['12/15/2008', 95.99, 96.48, 88.02, 90], + ['12/08/2008', 97.28, 103.6, 92.53, 98.27], + ['12/01/2008', 91.3, 96.23, 86.5, 94], + ['11/24/2008', 85.21, 95.25, 84.84, 92.67], + ['11/17/2008', 88.48, 91.58, 79.14, 82.58], + ['11/10/2008', 100.17, 100.4, 86.02, 90.24], + ['11/03/2008', 105.93, 111.79, 95.72, 98.24], + ['10/27/2008', 95.07, 112.19, 91.86, 107.59], + ['10/20/2008', 99.78, 101.25, 90.11, 96.38], + ['10/13/2008', 104.55, 116.4, 85.89, 97.4], + ['10/06/2008', 91.96, 101.5, 85, 96.8], + ['09/29/2008', 119.62, 119.68, 94.65, 97.07], + ['09/22/2008', 139.94, 140.25, 123, 128.24], + ['09/15/2008', 142.03, 147.69, 120.68, 140.91], + ['09/08/2008', 164.57, 164.89, 146, 148.94] + ]; + + ohlc_b = [['07/06/2009', 138.7, 139.68, 135.18, 135.4, 'j'], + ['06/29/2009', 143.46, 144.66, 139.79, 140.02, 'q'], + ['06/22/2009', 140.67, 143.56, 132.88, 142.44, 'p'], + ['06/15/2009', 136.01, 139.5, 134.53, 139.48, 'l'], + ['06/08/2009', 143.82, 144.56, 136.04, 136.97, 'o'], + ['06/01/2009', 136.47, 146.4, 136, 144.67, 't'], + ['05/26/2009', 124.76, 135.9, 124.55, 135.81, '_'], + ['05/18/2009', 123.73, 129.31, 121.57, 122.5, 'c'], + ['05/11/2009', 127.37, 130.96, 119.38, 122.42, 'h'], + ['05/04/2009', 128.24, 133.5, 126.26, 129.19, 'a'], + ['04/27/2009', 122.9, 127.95, 122.66, 127.24, 'r'], + ['04/20/2009', 121.73, 127.2, 118.6, 123.9, 't'], + ['04/13/2009', 120.01, 124.25, 115.76, 123.42, 's'] + ]; + + hlc = [['07/06/2009', 139.68, 135.18, 135.4], + ['06/29/2009', 144.66, 139.79, 140.02], + ['06/22/2009', 143.56, 132.88, 142.44], + ['06/15/2009', 139.5, 134.53, 139.48], + ['06/08/2009', 144.56, 136.04, 136.97], + ['06/01/2009', 146.4, 136, 144.67], + ['05/26/2009', 135.9, 124.55, 135.81], + ['05/18/2009', 129.31, 121.57, 122.5], + ['05/11/2009', 130.96, 119.38, 122.42], + ['05/04/2009', 133.5, 126.26, 129.19], + ['04/27/2009', 127.95, 122.66, 127.24], + ['04/20/2009', 127.2, 118.6, 123.9], + ['04/13/2009', 124.25, 115.76, 123.42], + ['04/06/2009', 120, 113.28, 119.57], + ['03/30/2009', 116.13, 102.61, 115.99], + ['03/23/2009', 109.98, 101.75, 106.85], + ['03/16/2009', 103.48, 94.18, 101.59], + ['03/09/2009', 97.2, 82.57, 95.93], + ['03/02/2009', 92.77, 82.33, 85.3], + ['02/23/2009', 92.92, 86.51, 89.31], + ['02/17/2009', 97.04, 89, 91.2], + ['02/09/2009', 103, 95.77, 99.16], + ['02/02/2009', 100, 88.9, 99.72], + ['01/26/2009', 95, 88.3, 90.13], + ['01/20/2009', 90, 78.2, 88.36], + ['01/12/2009', 90.99, 80.05, 82.33], + ['01/05/2009', 97.17, 90.04, 90.58], + ['12/29/2008', 91.04, 84.72, 90.75], + ['12/22/2008', 90.03, 84.55, 85.81], + ['12/15/2008', 96.48, 88.02, 90], + ['12/08/2008', 103.6, 92.53, 98.27], + ['12/01/2008', 96.23, 86.5, 94], + ['11/24/2008', 95.25, 84.84, 92.67], + ['11/17/2008', 91.58, 79.14, 82.58], + ['11/10/2008', 100.4, 86.02, 90.24], + ['11/03/2008', 111.79, 95.72, 98.24], + ['10/27/2008', 112.19, 91.86, 107.59], + ['10/20/2008', 101.25, 90.11, 96.38], + ['10/13/2008', 116.4, 85.89, 97.4], + ['10/06/2008', 101.5, 85, 96.8], + ['09/29/2008', 119.68, 94.65, 97.07], + ['09/22/2008', 140.25, 123, 128.24], + ['09/15/2008', 147.69, 120.68, 140.91], + ['09/08/2008', 164.89, 146, 148.94] + ]; + +</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + $.jqplot.config.enablePlugins = true; + plot1 = $.jqplot('chart1',[ohlc],{ + title: 'Chart', + axesDefaults:{}, + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer + }, + yaxis: { + tickOptions:{ prefix: '$' } + } + }, + series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{}}], + cursor:{ + zoom:true, + tooltipOffset: 10, + tooltipLocation: 'nw' + } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot2 = $.jqplot('chart2',[ohlc],{ + title: 'Chart', + axesDefaults:{}, + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer + }, + yaxis: { + tickOptions:{ prefix: '$' } + } + }, + series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}], + cursor:{ + zoom:true, + tooltipOffset: 10, + tooltipLocation: 'nw' + }, + highlighter: { + showMarker:false, + tooltipAxes: 'xy', + yvalues: 4, + formatString:'<table class="jqplot-highlighter"> \ + <tr><td>date:</td><td>%s</td></tr> \ + <tr><td>open:</td><td>%s</td></tr> \ + <tr><td>hi:</td><td>%s</td></tr> \ + <tr><td>low:</td><td>%s</td></tr> \ + <tr><td>close:</td><td>%s</td></tr></table>' + } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot2b = $.jqplot('chart2b',[ohlc_b],{ + title: 'Chart', + axesDefaults:{}, + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer + }, + yaxis: { + tickOptions:{ prefix: '$' } + } + }, + series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}], + cursor:{ + zoom:false, + tooltipOffset: 10, + tooltipLocation: 'nw' + }, + highlighter: { + showMarker:false, + tooltipAxes: 'xy', + yvalues: 5, + formatString:'<table class="jqplot-highlighter"> \ + <tr><td>date:</td><td>%s</td></tr> \ + <tr><td>open:</td><td>%s</td></tr> \ + <tr><td>hi:</td><td>%s</td></tr> \ + <tr><td>low:</td><td>%s</td></tr> \ + <tr><td>close:</td><td>%s</td></tr> \ + <tr><td>letter:</td><td>%s</td></tr></table>' + } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot3 = $.jqplot('chart3',[hlc],{ + title: 'Chart', + axesDefaults:{}, + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer + }, + yaxis: { + tickOptions:{ prefix: '$' } + } + }, + series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{}}], + cursor:{ + zoom:true, + tooltipOffset: 10, + tooltipLocation: 'nw' + } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var catOHLC = [[1, 138.7, 139.68, 135.18, 135.4], + [2, 143.46, 144.66, 139.79, 140.02], + [3, 140.67, 143.56, 132.88, 142.44], + [4, 136.01, 139.5, 134.53, 139.48], + [5, 143.82, 144.56, 136.04, 136.97], + [6, 136.47, 146.4, 136, 144.67], + [7, 124.76, 135.9, 124.55, 135.81], + [8, 123.73, 129.31, 121.57, 122.5]]; + + var ticks = ['Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun', 'Mon', 'Tue']; + + plot4 = $.jqplot('chart4',[catOHLC],{ + axes: { + xaxis: { + renderer:$.jqplot.CategoryAxisRenderer, + ticks:ticks + }, + yaxis: { + tickOptions:{ prefix: '$' } + } + }, + series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}] + }); +});</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html b/wqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html new file mode 100644 index 00000000..c1ff2f00 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html @@ -0,0 +1,231 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Draw Lines on Plots - Canvas Overlay</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="candlestick.html">Previous</a> <a href="./">Examples</a> <a href="cursor-highlighter.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <div id="chart1" style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div> + <button onclick="lineup()">Up</button> + <button onclick="linedown()">Down</button> + +<pre class="code prettyprint brush: js"></pre> + + <div id="chart2" style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div> +<pre class="code prettyprint brush: js"></pre> + + + <script class="code" type="text/javascript"> +$(document).ready(function(){ + var s1 = [[2009, 3.5], [2010, 4.4], [2011, 6.0], [2012, 9.1], [2013, 12.0], [2014, 14.4]]; + + var grid = { + gridLineWidth: 1.5, + gridLineColor: 'rgb(235,235,235)', + drawGridlines: true + }; + + plot1 = $.jqplot('chart1', [s1], { + series:[{ + renderer:$.jqplot.BarRenderer, + rendererOptions: { + barWidth: 30 + } + }], + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer + } + }, + grid: grid, + canvasOverlay: { + show: true, + objects: [ + {horizontalLine: { + name: 'barney', + y: 4, + lineWidth: 6, + color: 'rgb(100, 55, 124)', + shadow: false + }}, + {horizontalLine: { + name: 'fred', + y: 6, + lineWidth: 12, + xminOffset: '8px', + xmaxOffset: '29px', + color: 'rgb(50, 55, 30)', + shadow: false + }}, + {dashedHorizontalLine: { + name: 'wilma', + y: 8, + lineWidth: 2, + xOffset: '54', + color: 'rgb(133, 120, 24)', + shadow: false + }}, + {horizontalLine: { + name: 'pebbles', + y: 10, + lineWidth: 3, + xOffset: 0, + color: 'rgb(89, 198, 154)', + shadow: false + }}, + {dashedHorizontalLine: { + name: 'bam-bam', + y: 14, + lineWidth: 5, + dashPattern: [16, 12], + lineCap: 'round', + xOffset: '20', + color: 'rgb(66, 98, 144)', + shadow: false + }} + ] + } + }); +}); + +function lineup() { + var co = plot1.plugins.canvasOverlay; + var line = co.get('fred'); + line.options.y += 1; + co.draw(plot1); +} + +function linedown() { + var co = plot1.plugins.canvasOverlay; + var line = co.get('fred'); + line.options.y -= 1; + co.draw(plot1); +} + + </script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var s2 = [[9, 3.5], [15, 4.4], [22, 6.0], [38, 9.1], [51, 12.0], [62, 14.4]]; + + var grid = { + gridLineWidth: 1.5, + gridLineColor: 'rgb(235,235,235)', + drawGridlines: true + }; + + plot2 = $.jqplot('chart2', [s2], { + grid: grid, + canvasOverlay: { + show: true, + objects: [ + {verticalLine: { + name: 'barney', + x: 10, + lineWidth: 6, + color: 'rgb(100, 55, 124)', + shadow: false + }}, + {verticalLine: { + name: 'fred', + x: 15, + lineWidth: 12, + yminOffset: '8px', + ymaxOffset: '29px', + color: 'rgb(50, 55, 30)', + shadow: false + }}, + {dashedVerticalLine: { + name: 'wilma', + x: 20, + lineWidth: 2, + yOffset: '14', + color: 'rgb(133, 120, 24)', + shadow: false + }}, + {verticalLine: { + name: 'pebbles', + x: 35, + lineWidth: 3, + yOffset: 0, + lineCap: 'butt', + color: 'rgb(89, 198, 154)', + shadow: false + }}, + {dashedVerticalLine: { + name: 'bam-bam', + x: 45, + lineWidth: 5, + dashPattern: [16, 12], + lineCap: 'round', + yOffset: '20px', + color: 'rgb(66, 98, 144)', + shadow: false + }} + ] + } + }); + +}); + + +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/README b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/README new file mode 100644 index 00000000..a0a0cc5a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/README @@ -0,0 +1,140 @@ +jQuery.colorpicker v0.6
+
+Copyright (c) 2011 Martijn W. van der Lee
+Licensed under the MIT.
+
+Full-featured colorpicker for jQueryUI with full theming support.
+Most images from jPicker by Christopher T. Tillman.
+Sourcecode created from scratch by Martijn W. van der Lee.
+
+IE support; make sure you have a doctype defined, or the colorpicker will not display correctly.
+
+Options:
+ alpha: false
+ Whether or not to show the inputs for alpha.
+
+ altAlpha: true
+ Change the opacity of the altField element(s) according to the alpha
+ setting.
+
+ altField: ''
+ Change the background color of the elements specified in this element.
+
+ altOnChange: true
+ If true, the altField element(s) are updated on every change, otherwise
+ only upon closing.
+
+ altProperties: 'background-color'
+ Comma-separated list of CSS properties to set color of in the altField.
+ The following properties are allowed, all others are ignored.
+ background-color
+ color
+ border-color
+ outline-color
+
+ autoOpen: false
+ If true, the dialog opens automatically upon page load.
+
+ buttonColorize: false
+ If a buttonimage is specified, change the background color of the
+ image when the color is changed.
+
+ buttonImage: 'images/ui-colorpicker.png'
+ Same as jQueryUI DatePicker.
+
+ buttonImageOnly: false
+ Same as jQueryUI DatePicker.
+
+ buttonText: 'Color'
+ Same as jQueryUI DatePicker.
+
+ closeOnOutside: true
+ Close the window when clicking outside the colorpicker display.
+
+ color: '#00FF00'
+ Initial color. Formats recognized are:
+ #rrggbb
+ rrggbb (same as previous, but without the #)
+ rgb(rrr,ggg,bbb)
+ rgba(rrr,ggg,bbb,a.a)
+ rgb(rrr%,ggg%,bbb%)
+ rgba(rrr%,ggg%,bbb%,aaa%)
+ w3c-defined color name
+
+ duration: 'fast'
+ Same as jQueryUI DatePicker.
+
+ hsv: true
+ Whether or not to show the inputs for HSV.
+
+ layout: { ... }
+ Set the position of elements in a table layout.
+ You could create any layout possible with HTML tables by specifying cell
+ position and size of each part.
+ @todo document how this works.
+
+ limit: ''
+ Limit the selectable colors to any of the predefined limits:
+ '' No limitations, allow 8bpp color for a palette of all
+ 16 million colors.
+ 'websafe' Set of 216 colors composed of 00, 33, 66, 99, cc and ff
+ color channel values in #rrggbb.
+ 'nibble' 4 bits per color, can be easily converted to #rgb format.
+ The palette is limited to 4096 colors.
+ 'binary' Allow only #00 or #ff as color channel values for primary
+ colors only; only 8 colors are available with this limit.
+
+ mode: 'h'
+ Determines the functionality of the map and bar components. Allowed values
+ are; 'h', 's', 'l', 'r', 'g', 'b' or 'a', for hue, saturation, luminosity,
+ red, green, blue and alpha respectively.
+
+ parts: ''
+ Determine which parts to display.
+ Use any of the preset names ('full', 'popup' or 'inline') or specify
+ an array of part names (i.e. ['header', 'map', 'bar', 'hex', 'inputs',
+ 'preview', 'swatches', 'footer']). If an empty string is given, the parts
+ will be automatically chosen as preset 'popup' or 'inline' depending on
+ the context in which the colorpicker is used.
+
+ rgb: true, // Show RGB controls and modes
+ Whether or not to show the inputs for RGB.
+
+ showAnim: 'fadeIn'
+ Same as jQueryUI DatePicker.
+
+ showOn: 'focus'
+ Same as jQueryUI DatePicker.
+
+ showOptions: {}
+ Same as jQueryUI DatePicker.
+
+ swatches: null
+ 'null' to show swatches of HTML colors or provide your own object
+ with colornames and [r,g,b] array.
+ For example { 'red': [ 255, 0, 0 ], 'blue': [0, 0, 255] }
+
+ title: 'Pick a color'
+ Title to display in the header.
+
+Events:
+ onClose: null
+ Triggered when the popup is closed.
+
+ onSelect: null
+ Triggered on each change, confirmation (click on OK button) and
+ cancellation (click on Cancel, outside window or window close button)
+ respectively.
+ Note that onSelect may be triggered in rapid succession when dragging the
+ mouse accross the map or bar and may be triggered without a change in color
+ upon specific user interactions.
+
+Methods:
+ open
+ Open the dialog
+
+ close
+ Close the dialog
+
+ destroy
+ Destroy the widget
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO new file mode 100644 index 00000000..acc10df3 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO @@ -0,0 +1,14 @@ +Make simple blog page + demo
+
+Post to...
+ http://wiki.jqueryui.com/w/page/12137750/ColorPicker
+ - screenshot
+ - link(s)
+ - check specs/requirements and add/fix them
+
+Colorwheel
+Triangle/wheel
+Related-colors swatching
+Configurable swatch layout
+ container-width/height, swatch-width/height
+ Autoscaling (table?)
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.png Binary files differnew file mode 100644 index 00000000..2950daeb --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.png Binary files differnew file mode 100644 index 00000000..e42ad081 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.png Binary files differnew file mode 100644 index 00000000..6e980cfa --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.png Binary files differnew file mode 100644 index 00000000..80eb2bbe --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.png Binary files differnew file mode 100644 index 00000000..6756cee6 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.png Binary files differnew file mode 100644 index 00000000..64992968 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.png Binary files differnew file mode 100644 index 00000000..853d38c6 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.png Binary files differnew file mode 100644 index 00000000..0dd9a2f8 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.png Binary files differnew file mode 100644 index 00000000..e244c689 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html new file mode 100644 index 00000000..a3f14211 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html @@ -0,0 +1,85 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+ <title>jqcp</title>
+ <!-- jQuery/jQueryUI (hosted) -->
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
+ <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
+ <script src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
+ <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/ui-lightness/jquery-ui.css" rel="stylesheet" type="text/css"/>
+ <!--link href="aristo/Aristo.css" rel="stylesheet" type="text/css"/-->
+ <style>
+ body {
+ font-family: 'Segoe UI', Verdana, Arial, Helvetica, sans-serif;
+ font-size: 62.5%;
+ }
+
+ #switcher {
+ float: right;
+ display: inline-block;
+ }
+ </style>
+ <script src="jquery.colorpicker.js"></script>
+ <link href="jquery.colorpicker.css" rel="stylesheet" type="text/css"/>
+ <script>
+ $( function() {
+ $('#switcher').themeswitcher();
+
+ $('#cp1').colorpicker({
+ onClose: function(hex, rgba, inst) {
+
+ },
+ onSelect: function(hex, rgba, inst) {
+ //console.log(hex);
+ //console.log(rgba);
+ //console.log(inst);
+ },
+ showOn: 'both',
+ showHeader: true,
+ showSwatches: true,
+ buttonColorize: true,
+ altField: '.cp1-alt',
+ altProperties: 'background-color,color'
+ });
+
+ $('#cp2').colorpicker({
+ alpha: true,
+ showButtonPanel: true
+ });
+
+ var cpb = $('#cp-buttons').colorpicker({
+ showOn: '',
+ parts: ['bar', 'map']
+ });
+ $('#cp-button-open').click( function() {
+ cpb.colorpicker('open');
+ });
+ $('#cp-button-close').click( function() {
+ cpb.colorpicker('close');
+ });
+ $('#cp-button-disable').click( function() {
+ cpb.colorpicker('disable');
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="switcher"></div>
+
+ Color: <input type="color" id="cp1" value="ff9900"/>
+ <div class="cp1-alt" style="border: 1px inset; width: 180px; height: 60px;">
+ <div style=" background-color: white; border: 1px solid black; margin: 5px; padding: 5px; font-size: 20px; font-weight: bold;">Text</div>
+ </div>
+
+ <hr/>
+
+ Inline:<div id="cp2"></div>
+
+ <hr/>
+
+ Activated by buttons: <input type="color" id="cp-buttons" value="927abc"/>
+ <br/><button id="cp-button-open">Open</button>
+ <br/><button id="cp-button-close">Close</button>
+ <br/><button id="cp-button-disable">Disable</button>
+ </body>
+</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css new file mode 100644 index 00000000..4e61a526 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css @@ -0,0 +1,129 @@ +.ui-colorpicker {
+ display: inline-block;
+ width: auto;
+}
+
+.ui-colorpicker-inline {
+ position: static;
+}
+
+.ui-colorpicker .ui-colorpicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-colorpicker .ui-colorpicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-colorpicker .ui-colorpicker-buttonpane button.ui-colorpicker-current { float:left; }
+
+.ui-colorpicker table {
+ font-size: 100%; /* Reset browser table font-size */
+ margin: 0;
+}
+
+.ui-colorpicker table td {
+ vertical-align: top;
+}
+
+.ui-colorpicker-padding-left {
+ padding-left: 10px;
+}
+.ui-colorpicker-padding-top {
+ padding-top: 10px;
+}
+
+.ui-colorpicker-border {
+ border: 1px inset;
+ display: inline-block;
+}
+
+/* Bar & map */
+#ui-colorpicker-map > *,
+#ui-colorpicker-bar > * {
+ position: absolute;
+ cursor: crosshair;
+}
+
+#ui-colorpicker-map-pointer,
+#ui-colorpicker-bar-pointer {
+ position: absolute;
+}
+/* Map */
+#ui-colorpicker-map,
+#ui-colorpicker-map > * {
+ display: block;
+ width: 256px;
+ height: 256px;
+ overflow: hidden;
+}
+
+#ui-colorpicker-map-layer-1,
+#ui-colorpicker-map-layer-2 { background: url(images/map.png) no-repeat; }
+#ui-colorpicker-map-layer-alpha { background: url(images/map-opacity.png); }
+#ui-colorpicker-map-pointer { display: inline-block; width: 15px; height: 15px; background: url(images/map-pointer.png) no-repeat; }
+
+
+/* Bar */
+#ui-colorpicker-bar,
+#ui-colorpicker-bar > * {
+ display: block;
+ width: 20px;
+ height: 256px;
+ overflow: hidden;
+ background-repeat: repeat-x;
+}
+
+#ui-colorpicker-bar-layer-1,
+#ui-colorpicker-bar-layer-2,
+#ui-colorpicker-bar-layer-3,
+#ui-colorpicker-bar-layer-4 { background: url(images/bar.png) repeat-x; }
+#ui-colorpicker-bar-layer-alpha { background: url(images/bar-opacity.png); }
+#ui-colorpicker-bar-layer-alphabar { background: url(images/bar-alpha.png); }
+#ui-colorpicker-bar-pointer { display: inline-block; width: 20px; height: 7px; background: url(images/bar-pointer.png) no-repeat; }
+
+/* Preview */
+#ui-colorpicker-preview {
+ text-align: center;
+}
+
+#ui-colorpicker-preview-initial {
+ cursor: pointer;
+}
+
+#ui-colorpicker-preview-initial,
+#ui-colorpicker-preview-current {
+ width: 50px;
+ height: 20px;
+ display: inline-block;
+}
+
+#ui-colorpicker-preview-initial-alpha,
+#ui-colorpicker-preview-current-alpha {
+ width: 50px;
+ height: 20px;
+ display: inline-block;
+ background: url(images/preview-opacity.png) repeat;
+}
+
+/* Inputs */
+#ui-colorpicker-inputs label {
+ width: 1.5em;
+ display: inline-block;
+}
+
+/* Hex */
+#ui-colorpicker-hex {
+ text-align: center;
+}
+
+/* Swatches */
+#ui-colorpicker-swatches {
+ width: 84px;
+ height: 256px;
+ overflow: auto;
+ background-color: #f8f8f8;
+}
+
+.ui-colorpicker-swatch {
+ cursor: pointer;
+ float: left;
+ width: 11px;
+ height: 11px;
+ border-right: 1px solid black;
+ border-bottom: 1px solid black;
+}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js new file mode 100644 index 00000000..6ad9a564 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js @@ -0,0 +1,1654 @@ +/*jslint devel: true, bitwise: true, regexp: true, browser: true, confusion: true, unparam: true, eqeq: true, white: true, nomen: true, plusplus: true, maxerr: 50, indent: 4 */
+/*globals jQuery */
+
+/*
+ * ColorPicker v0.6
+ *
+ * Copyright (c) 2011 Martijn W. van der Lee
+ * Licensed under the MIT.
+ *
+ * Full-featured colorpicker for jQueryUI with full theming support.
+ * Most images from jPicker by Christopher T. Tillman.
+ * Sourcecode created from scratch by Martijn W. van der Lee.
+ *
+ * @todo Custom buttons ->none" -> special "none" state?
+ * @todo Undo/redo memory?
+ * @todo Small size variant (128x128)
+ * @todo Distance between rgb/hsv/a options
+ * @todo Force hex correction (limit and padding) upon done
+ * @todo if limit, correct initial color upon open
+ * @todo Shared swatches; cookies/session/global
+ * @todo Language files: Done/Color/Pick a color/H/S/V/R/G/B/A/color swatches
+ * @todo isRTL? What to RTL, besides button?
+ * @todo Implement 'disabled' option
+ * @todo Include header/footer in layout?
+ * @todo Split inputs into rgb/hsv/a parts
+ * @todo Modal popup mode
+ */
+
+(function ($) {
+ "use strict";
+
+ var _container_popup = '<div class="ui-colorpicker ui-colorpicker-dialog ui-dialog ui-widget ui-widget-content ui-corner-all colorpicker-container" style="display: none;"></div>',
+
+ _container_inline = '<div class="ui-colorpicker ui-colorpicker-inline ui-dialog ui-widget ui-widget-content ui-corner-all"></div>',
+
+ _parts_lists = {
+ 'full': ['header', 'map', 'bar', 'hex', 'inputs', 'preview', 'swatches', 'footer'],
+ 'popup': ['map', 'bar', 'hex', 'inputs', 'preview', 'footer'],
+ 'inline': ['map', 'bar', 'hex', 'inputs', 'preview']
+ },
+
+ _colors = {
+ 'Black': [0x00, 0x00, 0x00],
+ 'DimGray': [0x69, 0x69, 0x69],
+ 'Gray': [0x80, 0x80, 0x80],
+ 'DarkGray': [0xA9, 0xA9, 0xA9],
+ 'Silver': [0xC0, 0xC0, 0xC0],
+ 'LightGrey': [0xD3, 0xD3, 0xD3],
+ 'Gainsboro': [0xDC, 0xDC, 0xDC],
+ 'WhiteSmoke': [0xF5, 0xF5, 0xF5],
+ 'White': [0xFF, 0xFF, 0xFF],
+ 'RosyBrown': [0xBC, 0x8F, 0x8F],
+ 'IndianRed': [0xCD, 0x5C, 0x5C],
+ 'Brown': [0xA5, 0x2A, 0x2A],
+ 'FireBrick': [0xB2, 0x22, 0x22],
+ 'LightCoral': [0xF0, 0x80, 0x80],
+ 'Maroon': [0x80, 0x00, 0x00],
+ 'DarkRed': [0x8B, 0x00, 0x00],
+ 'Red': [0xFF, 0x00, 0x00],
+ 'Snow': [0xFF, 0xFA, 0xFA],
+ 'Salmon': [0xFA, 0x80, 0x72],
+ 'MistyRose': [0xFF, 0xE4, 0xE1],
+ 'Tomato': [0xFF, 0x63, 0x47],
+ 'DarkSalmon': [0xE9, 0x96, 0x7A],
+ 'OrangeRed': [0xFF, 0x45, 0x00],
+ 'Coral': [0xFF, 0x7F, 0x50],
+ 'LightSalmon': [0xFF, 0xA0, 0x7A],
+ 'Sienna': [0xA0, 0x52, 0x2D],
+ 'Seashell': [0xFF, 0xF5, 0xEE],
+ 'Chocolate': [0xD2, 0x69, 0x1E],
+ 'SaddleBrown': [0x8B, 0x45, 0x13],
+ 'SandyBrown': [0xF4, 0xA4, 0x60],
+ 'PeachPuff': [0xFF, 0xDA, 0xB9],
+ 'Peru': [0xCD, 0x85, 0x3F],
+ 'Linen': [0xFA, 0xF0, 0xE6],
+ 'DarkOrange': [0xFF, 0x8C, 0x00],
+ 'Bisque': [0xFF, 0xE4, 0xC4],
+ 'BurlyWood': [0xDE, 0xB8, 0x87],
+ 'Tan': [0xD2, 0xB4, 0x8C],
+ 'AntiqueWhite': [0xFA, 0xEB, 0xD7],
+ 'NavajoWhite': [0xFF, 0xDE, 0xAD],
+ 'BlanchedAlmond': [0xFF, 0xEB, 0xCD],
+ 'PapayaWhip': [0xFF, 0xEF, 0xD5],
+ 'Orange': [0xFF, 0xA5, 0x00],
+ 'Moccasin': [0xFF, 0xE4, 0xB5],
+ 'Wheat': [0xF5, 0xDE, 0xB3],
+ 'OldLace': [0xFD, 0xF5, 0xE6],
+ 'FloralWhite': [0xFF, 0xFA, 0xF0],
+ 'Goldenrod': [0xDA, 0xA5, 0x20],
+ 'DarkGoldenrod': [0xB8, 0x86, 0x0B],
+ 'Cornsilk': [0xFF, 0xF8, 0xDC],
+ 'Gold': [0xFF, 0xD7, 0x00],
+ 'PaleGoldenrod': [0xEE, 0xE8, 0xAA],
+ 'Khaki': [0xF0, 0xE6, 0x8C],
+ 'LemonChiffon': [0xFF, 0xFA, 0xCD],
+ 'DarkKhaki': [0xBD, 0xB7, 0x6B],
+ 'Beige': [0xF5, 0xF5, 0xDC],
+ 'LightGoldenrodYellow': [0xFA, 0xFA, 0xD2],
+ 'Olive': [0x80, 0x80, 0x00],
+ 'Yellow': [0xFF, 0xFF, 0x00],
+ 'LightYellow': [0xFF, 0xFF, 0xE0],
+ 'Ivory': [0xFF, 0xFF, 0xF0],
+ 'OliveDrab': [0x6B, 0x8E, 0x23],
+ 'YellowGreen': [0x9A, 0xCD, 0x32],
+ 'DarkOliveGreen': [0x55, 0x6B, 0x2F],
+ 'GreenYellow': [0xAD, 0xFF, 0x2F],
+ 'LawnGreen': [0x7C, 0xFC, 0x00],
+ 'Chartreuse': [0x7F, 0xFF, 0x00],
+ 'DarkSeaGreen': [0x8F, 0xBC, 0x8F],
+ 'ForestGreen': [0x22, 0x8B, 0x22],
+ 'LimeGreen': [0x32, 0xCD, 0x32],
+ 'LightGreen': [0x90, 0xEE, 0x90],
+ 'PaleGreen': [0x98, 0xFB, 0x98],
+ 'DarkGreen': [0x00, 0x64, 0x00],
+ 'Green': [0x00, 0x80, 0x00],
+ 'Lime': [0x00, 0xFF, 0x00],
+ 'Honeydew': [0xF0, 0xFF, 0xF0],
+ 'MediumSeaGreen': [0x3C, 0xB3, 0x71],
+ 'SeaGreen': [0x2E, 0x8B, 0x57],
+ 'SpringGreen': [0x00, 0xFF, 0x7F],
+ 'MintCream': [0xF5, 0xFF, 0xFA],
+ 'MediumSpringGreen': [0x00, 0xFA, 0x9A],
+ 'MediumAquamarine': [0x66, 0xCD, 0xAA],
+ 'Aquamarine': [0x7F, 0xFF, 0xD4],
+ 'Turquoise': [0x40, 0xE0, 0xD0],
+ 'LightSeaGreen': [0x20, 0xB2, 0xAA],
+ 'MediumTurquoise': [0x48, 0xD1, 0xCC],
+ 'DarkSlateGray': [0x2F, 0x4F, 0x4F],
+ 'PaleTurquoise': [0xAF, 0xEE, 0xEE],
+ 'Teal': [0x00, 0x80, 0x80],
+ 'DarkCyan': [0x00, 0x8B, 0x8B],
+ 'DarkTurquoise': [0x00, 0xCE, 0xD1],
+ 'Aqua': [0x00, 0xFF, 0xFF],
+ 'Cyan': [0x00, 0xFF, 0xFF],
+ 'LightCyan': [0xE0, 0xFF, 0xFF],
+ 'Azure': [0xF0, 0xFF, 0xFF],
+ 'CadetBlue': [0x5F, 0x9E, 0xA0],
+ 'PowderBlue': [0xB0, 0xE0, 0xE6],
+ 'LightBlue': [0xAD, 0xD8, 0xE6],
+ 'DeepSkyBlue': [0x00, 0xBF, 0xFF],
+ 'SkyBlue': [0x87, 0xCE, 0xEB],
+ 'LightSkyBlue': [0x87, 0xCE, 0xFA],
+ 'SteelBlue': [0x46, 0x82, 0xB4],
+ 'AliceBlue': [0xF0, 0xF8, 0xFF],
+ 'DodgerBlue': [0x1E, 0x90, 0xFF],
+ 'SlateGray': [0x70, 0x80, 0x90],
+ 'LightSlateGray': [0x77, 0x88, 0x99],
+ 'LightSteelBlue': [0xB0, 0xC4, 0xDE],
+ 'CornflowerBlue': [0x64, 0x95, 0xED],
+ 'RoyalBlue': [0x41, 0x69, 0xE1],
+ 'MidnightBlue': [0x19, 0x19, 0x70],
+ 'Lavender': [0xE6, 0xE6, 0xFA],
+ 'Navy': [0x00, 0x00, 0x80],
+ 'DarkBlue': [0x00, 0x00, 0x8B],
+ 'MediumBlue': [0x00, 0x00, 0xCD],
+ 'Blue': [0x00, 0x00, 0xFF],
+ 'GhostWhite': [0xF8, 0xF8, 0xFF],
+ 'DarkSlateBlue': [0x48, 0x3D, 0x8B],
+ 'SlateBlue': [0x6A, 0x5A, 0xCD],
+ 'MediumSlateBlue': [0x7B, 0x68, 0xEE],
+ 'MediumPurple': [0x93, 0x70, 0xDB],
+ 'BlueViolet': [0x8A, 0x2B, 0xE2],
+ 'Indigo': [0x4B, 0x00, 0x82],
+ 'DarkOrchid': [0x99, 0x32, 0xCC],
+ 'DarkViolet': [0x94, 0x00, 0xD3],
+ 'MediumOrchid': [0xBA, 0x55, 0xD3],
+ 'Thistle': [0xD8, 0xBF, 0xD8],
+ 'Plum': [0xDD, 0xA0, 0xDD],
+ 'Violet': [0xEE, 0x82, 0xEE],
+ 'Purple': [0x80, 0x00, 0x80],
+ 'DarkMagenta': [0x8B, 0x00, 0x8B],
+ 'Magenta': [0xFF, 0x00, 0xFF],
+ 'Fuchsia': [0xFF, 0x00, 0xFF],
+ 'Orchid': [0xDA, 0x70, 0xD6],
+ 'MediumVioletRed': [0xC7, 0x15, 0x85],
+ 'DeepPink': [0xFF, 0x14, 0x93],
+ 'HotPink': [0xFF, 0x69, 0xB4],
+ 'PaleVioletRed': [0xDB, 0x70, 0x93],
+ 'LavenderBlush': [0xFF, 0xF0, 0xF5],
+ 'Crimson': [0xDC, 0x14, 0x3C],
+ 'Pink': [0xFF, 0xC0, 0xCB],
+ 'LightPink': [0xFF, 0xB6, 0xC1]
+ };
+
+ $.widget("vanderlee.colorpicker", {
+ options: {
+ alpha: false, // Show alpha controls and mode
+ altAlpha: true, // change opacity of altField as well?
+ altField: '', // selector for DOM elements which change background color on change.
+ altOnChange: true, // true to update on each change, false to update only on close.
+ altProperties: 'background-color', // comma separated list of any of 'background-color', 'color', 'border-color', 'outline-color'
+ autoOpen: false, // Open dialog automatically upon creation
+ buttonColorize: false,
+ buttonImage: 'images/ui-colorpicker.png',
+ buttonImageOnly: false,
+ buttonText: 'Color', // Text on the button and/or title of button image.
+ closeOnOutside: true, // Close the dialog when clicking outside the dialog (not for inline)
+ color: '#00FF00', // Initial color (for inline only)
+ duration: 'fast',
+ hsv: true, // Show HSV controls and modes
+ layout: {
+ map: [0, 0, 1, 3], // Left, Top, Width, Height (in table cells).
+ bar: [1, 0, 1, 3],
+ preview: [2, 0, 1, 1],
+ inputs: [2, 1, 1, 1],
+ hex: [2, 2, 1, 1],
+ swatches: [3, 0, 1, 3]
+ },
+ limit: '', // Limit color "resolution": '', 'websafe', 'nibble', 'binary'
+ mode: 'h', // Initial editing mode, h, s, v, r, g, b or a
+ parts: '',
+ rgb: true, // Show RGB controls and modes
+ showAnim: 'fadeIn',
+ showOn: 'focus', // 'focus', 'button', 'both'
+ showOptions: {},
+ swatches: null,
+ title: 'Pick a color',
+
+ onClose: null,
+ onSelect: null
+ },
+
+ _create: function () {
+ var self = this;
+
+ self.opened = false;
+ self.generated = false;
+ self.inline = false;
+ self.changed = false;
+
+ self.dialog = null;
+ self.button = null;
+ self.image = null;
+
+ self.mode = self.options.mode;
+
+ if (self.options.swatches === null) {
+ self.options.swatches = _colors;
+ }
+
+ if (this.element[0].nodeName.toLowerCase() === 'input') {
+ if (self.element.val()) {
+ self.options.color = self.element.val();
+ }
+ self._loadColor();
+
+ $('body').append(_container_popup);
+ self.dialog = $('.ui-colorpicker:last');
+
+ // Click outside/inside
+ $(document).mousedown(function (event) {
+ if (!self.opened || event.target === self.element[0]) {
+ return;
+ }
+
+ // Check if clicked on any part of dialog
+ if ($(event.target).parents('.ui-colorpicker').length > 0) {
+ self.element.blur(); // inside window!
+ return;
+ }
+
+ // Check if clicked on button
+ var p,
+ parents = $(event.target).parents();
+ for (p in parents) {
+ if (self.button !== null && parents[p] === self.button[0]) {
+ return;
+ }
+ }
+
+ // no closeOnOutside
+ if (!self.options.closeOnOutside) {
+ return;
+ }
+
+ self.close();
+ });
+
+ if (self.options.showOn === 'focus' || self.options.showOn === 'both') {
+ self.element.focus(function () {
+ self.open();
+ });
+ }
+ if (self.options.showOn === 'button' || self.options.showOn === 'both') {
+ if (self.options.buttonImage !== '') {
+ self.image = $('<img/>').attr({
+ 'src': self.options.buttonImage,
+ 'alt': self.options.buttonText,
+ 'title': self.options.buttonText
+ });
+
+ if (self.options.buttonColorize) {
+ self.image.css('background-color', self.color.toCSS());
+ }
+ }
+
+ if (self.options.buttonImageOnly && self.image) {
+ self.button = self.image;
+ } else {
+ self.button = $('<button type="button"></button>').html(self.image || self.options.buttonText).button();
+ self.image = self.image ? $('img', self.button).first() : null;
+ }
+ self.button.insertAfter(self.element).click(function () {
+ self[self.opened ? 'close' : 'open']();
+ });
+ }
+
+ if (self.options.autoOpen) {
+ self.open();
+ }
+
+ self.element.keydown(function (event) {
+ if (event.keyCode === 9) {
+ self.close();
+ }
+ });
+
+ self.element.keyup(function (event) {
+ var rgb = self._parseHex(self.element.val());
+ if (rgb) {
+ self.color = (rgb === false ? new self.Color() : new self.Color(rgb[0], rgb[1], rgb[2]));
+ self._change();
+ }
+ });
+ } else {
+ self.inline = true;
+
+ $(this.element).html(_container_inline);
+ self.dialog = $('.ui-colorpicker', this.element);
+
+ self._generate();
+
+ self.opened = true;
+ }
+
+ return this;
+ },
+
+ destroy: function() {
+ this.element.unbind();
+
+ if (this.image !== null) {
+ this.image.remove();
+ }
+
+ if (this.button !== null) {
+ this.button.remove();
+ }
+
+ if (this.dialog !== null) {
+ this.dialog.remove();
+ }
+ },
+
+ _setOption: function(key, value){
+ var self = this;
+
+ switch (key) {
+ case "disabled":
+ if (value) {
+ self.dialog.addClass('ui-colorpicker-disabled');
+ } else {
+ self.dialog.removeClass('ui-colorpicker-disabled');
+ }
+ break;
+ }
+
+ $.Widget.prototype._setOption.apply(self, arguments);
+ },
+
+ _setAltField: function () {
+ if (this.options.altField && this.options.altProperties) {
+ var index,
+ property,
+ properties = this.options.altProperties.split(',');
+
+ for (index in properties) {
+ property = $.trim(properties[index]);
+ switch (property) {
+ case 'color':
+ case 'background-color':
+ case 'outline-color':
+ case 'border-color':
+ $(this.options.altField).css(property, this.color.toCSS());
+ break;
+ }
+ }
+
+ if (this.options.altAlpha) {
+ $(this.options.altField).css('opacity', this.color.a);
+ }
+ }
+ },
+
+ _loadColor: function () {
+ var rgb = this._parseColor(this.options.color); //@todo
+ this.color = (rgb === false ? new this.Color() : new this.Color(rgb[0], rgb[1], rgb[2]));
+ this.currentColor = $.extend({}, this.color);
+
+ this._setAltField();
+ },
+
+ _generate: function () {
+ var self = this,
+ index,
+ part,
+ parts_list;
+
+ // Determine the parts to include in this colorpicker
+ if (typeof self.options.parts === 'string') {
+ if (self.options.parts in _parts_lists) {
+ parts_list = _parts_lists[self.options.parts];
+ } else {
+ // automatic
+ parts_list = _parts_lists[self.inline ? 'inline' : 'popup'];
+ }
+ } else {
+ parts_list = self.options.parts;
+ }
+
+ // Add any parts to the internal parts list
+ self.parts = {};
+ for (index in parts_list) {
+ part = parts_list[index];
+ if (part in self._parts) {
+ self.parts[part] = new self._parts[part](self);
+ }
+ }
+
+
+ if (typeof this.color !== "object" || this.color.constructor !== this.Color) {
+ self._loadColor();
+ }
+
+ if (!self.generated) {
+ var layout_parts = [];
+
+ for (index in self.options.layout) {
+ if (index in self.parts) {
+ layout_parts.push({
+ part: index,
+ pos: self.options.layout[index]
+ });
+ }
+ }
+
+ $(self._layoutTable(layout_parts, function(cell, x, y) {
+ var classes = [];
+
+ if (x > 0) {
+ classes.push('ui-colorpicker-padding-left');
+ }
+
+ if (y > 0) {
+ classes.push('ui-colorpicker-padding-top');
+ }
+
+ return '<td id="ui-colorpicker-' + cell.part + '-container"'
+ + (cell.pos[2] > 1 ? ' colspan="' + cell.pos[2] + '"' : '')
+ + (cell.pos[3] > 1 ? ' rowspan="' + cell.pos[3] + '"' : '')
+ + (classes.length > 0 ? ' class="' + classes.join(' ') + '"' : '')
+ + ' valign="top"></td>';
+ })).appendTo(self.dialog).addClass('ui-dialog-content ui-widget-content');
+
+ self._initAllParts();
+ self._generateAllParts();
+ self.generated = true;
+ }
+ },
+
+ _layoutTable: function(layout, callback) {
+ var layout = layout.sort(function(a, b) {
+ if (a.pos[1] == b.pos[1]) {
+ return a.pos[0] - b.pos[0];
+ }
+ return a.pos[1] - b.pos[1];
+ }),
+ bitmap,
+ x,
+ y,
+ width, height,
+ columns, rows,
+ index,
+ cell,
+ html;
+
+ // Determine dimensions of the table
+ width = 0;
+ height = 0;
+ for (index in layout) {
+ width = Math.max(width, layout[index].pos[0] + layout[index].pos[2]);
+ height = Math.max(height, layout[index].pos[1] + layout[index].pos[3]);
+ }
+
+ // Initialize bitmap
+ bitmap = [];
+ for (x = 0; x < width; ++x) {
+ bitmap.push(new Array(height));
+ }
+
+ // Mark rows and columns which have layout assigned
+ rows = new Array(height);
+ columns = new Array(width);
+ for (index in layout) {
+ // mark columns
+ for (x = 0; x < layout[index].pos[2]; x += 1) {
+ columns[layout[index].pos[0] + x] = true;
+ }
+ for (y = 0; y < layout[index].pos[3]; y += 1) {
+ rows[layout[index].pos[1] + y] = true;
+ }
+ }
+
+ // Generate the table
+ html = '';
+ cell = layout[index = 0];
+ for (y = 0; y < height; ++y) {
+ html += '<tr>';
+ for (x = 0; x < width;) {
+ if (cell !== undefined && x == cell.pos[0] && y == cell.pos[1]) {
+ // Create a "real" cell
+ var w,
+ h;
+
+ html += callback(cell, x, y);
+
+ for (h = 0; h < cell.pos[3]; h +=1) {
+ for (w = 0; w < cell.pos[2]; w +=1) {
+ bitmap[x + w][y + h] = true;
+ }
+ }
+
+ x += cell.pos[2];
+ cell = layout[++index];
+ } else {
+ // Fill in the gaps
+ var colspan = 0;
+ var walked = false;
+
+ while (x < width && bitmap[x][y] === undefined && (cell === undefined || y < cell.pos[1] || (y == cell.pos[1] && x < cell.pos[0]))) {
+ if (columns[x] === true) {
+ colspan += 1;
+ }
+ walked = true;
+ x += 1;
+ }
+
+ if (colspan > 0) {
+ html += '<td colspan="'+colspan+'"></td>';
+ } else if (!walked) {
+ x += 1;
+ }
+ }
+ }
+ html += '</tr>';
+ }
+
+ return '<table cellspacing="0" cellpadding="0" border="0"><tbody>' + html + '</tbody></table>';
+ },
+
+ _effectGeneric: function (show, slide, fade, callback) {
+ var self = this;
+
+ if ($.effects && $.effects[self.options.showAnim]) {
+ self.dialog[show](self.options.showAnim, self.options.showOptions, self.options.duration, callback);
+ } else {
+ self.dialog[(self.options.showAnim === 'slideDown' ?
+ slide
+ : (self.options.showAnim === 'fadeIn' ?
+ fade
+ : show))]((self.options.showAnim ? self.options.duration : null), callback);
+ if (!self.options.showAnim || !self.options.duration) {
+ callback();
+ }
+ }
+ },
+
+ _effectShow: function (callback) {
+ this._effectGeneric('show', 'slideDown', 'fadeIn', callback);
+ },
+
+ _effectHide: function (callback) {
+ this._effectGeneric('hide', 'slideUp', 'fadeOut', callback);
+ },
+
+ open: function () {
+ if (!this.opened) {
+ this._generate();
+
+ var offset = this.element.offset(),
+ x = offset.left,
+ y = offset.top + this.element.outerHeight();
+ x -= Math.max(0, (x + this.dialog.width()) - $(window).width() + 20);
+ y -= Math.max(0, (y + this.dialog.height()) - $(window).height() + 20);
+ this.dialog.css({'left': x, 'top': y});
+
+ this._effectShow();
+ this.opened = true;
+ }
+ },
+
+ close: function () {
+ var self = this;
+
+ this._setAltField();
+
+ self.currentColor = $.extend({}, self.color);
+ self.changed = false;
+
+ // tear down the interface
+ self._effectHide(function () {
+ self.dialog.empty();
+ self.generated = false;
+
+ self.opened = false;
+ self._callback(self.options.onClose);
+ });
+ },
+
+ _callback: function (f) {
+ var self = this;
+
+ if (f instanceof Function) {
+ f(self.color.toCSS(), {
+ r: self.color.r,
+ g: self.color.g,
+ b: self.color.b,
+ a: self.color.a
+ }, self);
+ }
+ },
+
+ _generateAllParts: function () {
+ $.each(this.parts, function (index, part) {
+ part.generate();
+ });
+ },
+
+ _initAllParts: function () {
+ $.each(this.parts, function (index, part) {
+ part.init();
+ });
+ },
+
+ _change: function () {
+ this.changed = true;
+
+ switch (this.options.limit) {
+ case 'websafe':
+ this.color.limit(6);
+ break;
+
+ case 'nibble':
+ this.color.limit(16);
+ break;
+
+ case 'binary':
+ this.color.limit(2);
+ break;
+ }
+
+ // update colors
+ if (!this.inline) {
+ if (!this.color.equals(this._parseHex(this.element.val()))) {
+ this.element.val(this.color.toHex());
+ }
+
+ if (this.image && this.options.buttonColorize) {
+ this.image.css('background-color', this.color.toCSS());
+ }
+
+ if (this.options.altOnChange) {
+ this._setAltField();
+ }
+ }
+
+ // callback
+ this._callback(this.options.onSelect);
+
+ $.each(this.parts, function (index, part) {
+ part.repaint();
+ });
+ },
+
+ _intToHex: function (dec) {
+ var result = dec.toString(16);
+ if (result.length === 1) {
+ result = ('0' + result);
+ }
+ return result.toLowerCase();
+ },
+
+ // This will be deprecated by jQueryUI 1.9 widget
+ _hoverable: function (e) {
+ e.hover(function () {
+ e.addClass("ui-state-hover");
+ }, function () {
+ e.removeClass("ui-state-hover");
+ });
+ },
+
+ // This will be deprecated by jQueryUI 1.9 widget
+ _focusable: function (e) {
+ e.focus(function () {
+ e.addClass("ui-state-focus");
+ }).blur(function () {
+ e.removeClass("ui-state-focus");
+ });
+ },
+
+ _parts: {
+ header: function (inst) {
+ var self = this,
+ e = null,
+ _html;
+
+ _html = function () {
+ return '<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">'
+ + '<span class="ui-dialog-title">' + inst.options.title + '</span>'
+ + '<a href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button">'
+ + '<div class="ui-icon ui-icon-closethick"></div></a></div>';
+ };
+
+ this.init = function () {
+ e = $(_html()).prependTo(inst.dialog);
+ var close = $('.ui-dialog-titlebar-close', e);
+ inst._hoverable(close);
+ inst._focusable(close);
+
+ close.click( function() {
+ inst.close()
+ });
+ };
+
+ this.repaint = function () {
+ };
+
+ this.generate = function () {
+ this.repaint();
+ };
+ },
+
+ map: function (inst) {
+ var self = this,
+ e = null,
+ _mousedown, _mouseup, _mousemove, _html;
+
+ _mousedown = function (event) {
+ if (!inst.opened) {
+ return;
+ }
+
+ var div = $('#ui-colorpicker-map-layer-pointer', e),
+ offset = div.offset(),
+ width = div.width(),
+ height = div.height(),
+ x = event.pageX - offset.left,
+ y = event.pageY - offset.top;
+
+ if (x >= 0 && x < width && y >= 0 && y < height) {
+ event.stopImmediatePropagation();
+ event.preventDefault();
+ $(document).unbind('mousedown', _mousedown);
+ $(document).bind('mouseup', _mouseup);
+ $(document).bind('mousemove', _mousemove);
+ _mousemove(event);
+ }
+ };
+
+ _mouseup = function (event) {
+ event.stopImmediatePropagation();
+ event.preventDefault();
+ $(document).unbind('mouseup', _mouseup);
+ $(document).unbind('mousemove', _mousemove);
+ $(document).bind('mousedown', _mousedown);
+ };
+
+ _mousemove = function (event) {
+ event.stopImmediatePropagation();
+ event.preventDefault();
+
+ if (event.pageX === self.x && event.pageY === self.y) {
+ return;
+ }
+ self.x = event.pageX;
+ self.y = event.pageY;
+
+ var div = $('#ui-colorpicker-map-layer-pointer', e),
+ offset = div.offset(),
+ width = div.width(),
+ height = div.height(),
+ x = event.pageX - offset.left,
+ y = event.pageY - offset.top;
+
+ x = Math.max(0, Math.min(x / width, 1));
+ y = Math.max(0, Math.min(y / height, 1));
+
+ // interpret values
+ switch (inst.mode) {
+ case 'h':
+ inst.color.s = x;
+ inst.color.v = 1 - y;
+ inst.color.updateRGB();
+ break;
+
+ case 's':
+ case 'a':
+ inst.color.h = x;
+ inst.color.v = 1 - y;
+ inst.color.updateRGB();
+ break;
+
+ case 'v':
+ inst.color.h = x;
+ inst.color.s = 1 - y;
+ inst.color.updateRGB();
+ break;
+
+ case 'r':
+ inst.color.b = x;
+ inst.color.g = 1 - y;
+ inst.color.updateHSV();
+ break;
+
+ case 'g':
+ inst.color.b = x;
+ inst.color.r = 1 - y;
+ inst.color.updateHSV();
+ break;
+
+ case 'b':
+ inst.color.r = x;
+ inst.color.g = 1 - y;
+ inst.color.updateHSV();
+ break;
+ }
+
+ inst._change();
+ };
+
+ _html = function () {
+ var html = '<div id="ui-colorpicker-map" class="ui-colorpicker-border">'
+ + '<span id="ui-colorpicker-map-layer-1"> </span>'
+ + '<span id="ui-colorpicker-map-layer-2"> </span>'
+ + (inst.options.alpha ? '<span id="ui-colorpicker-map-layer-alpha"> </span>' : '')
+ + '<span id="ui-colorpicker-map-layer-pointer"><span id="ui-colorpicker-map-pointer"></span></span></div>';
+ return html;
+ };
+
+ this.generate = function () {
+ switch (inst.mode) {
+ case 'h':
+ $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show();
+ $('#ui-colorcasepicker-map-layer-2', e).hide();
+ break;
+
+ case 's':
+ case 'a':
+ $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show();
+ $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show();
+ break;
+
+ case 'v':
+ $(e).css('background-color', 'black');
+ $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -780px', 'opacity': ''}).show();
+ $('#ui-colorpicker-map-layer-2', e).hide();
+ break;
+
+ case 'r':
+ $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1040px', 'opacity': ''}).show();
+ $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show();
+ break;
+
+ case 'g':
+ $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show();
+ $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1820px', 'opacity': ''}).show();
+ break;
+
+ case 'b':
+ $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -2080px', 'opacity': ''}).show();
+ $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show();
+ break;
+ }
+ self.repaint();
+ };
+
+ this.repaint = function () {
+ var div = $('#ui-colorpicker-map-layer-pointer', e),
+ x = 0,
+ y = 0;
+
+ switch (inst.mode) {
+ case 'h':
+ x = inst.color.s * div.width();
+ y = (1 - inst.color.v) * div.width();
+ $(e).css('background-color', inst.color.normClone().toCSS());
+ break;
+
+ case 's':
+ case 'a':
+ x = inst.color.h * div.width();
+ y = (1 - inst.color.v) * div.width();
+ $('#ui-colorpicker-map-layer-2', e).css('opacity', 1 - inst.color.s);
+ break;
+
+ case 'v':
+ x = inst.color.h * div.width();
+ y = (1 - inst.color.s) * div.width();
+ $('#ui-colorpicker-map-layer-1', e).css('opacity', inst.color.v);
+ break;
+
+ case 'r':
+ x = inst.color.b * div.width();
+ y = (1 - inst.color.g) * div.width();
+ $('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.r);
+ break;
+
+ case 'g':
+ x = inst.color.b * div.width();
+ y = (1 - inst.color.r) * div.width();
+ $('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.g);
+ break;
+
+ case 'b':
+ x = inst.color.r * div.width();
+ y = (1 - inst.color.g) * div.width();
+ $('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.b);
+ break;
+ }
+
+ if (inst.options.alpha) {
+ $('#ui-colorpicker-map-layer-alpha', e).css('opacity', 1 - inst.color.a);
+ }
+
+ $('#ui-colorpicker-map-pointer', e).css({
+ 'left': x - 7,
+ 'top': y - 7
+ });
+ };
+
+ this.init = function () {
+ e = $(_html()).appendTo($('#ui-colorpicker-map-container', inst.dialog));
+
+ e.bind('mousedown', _mousedown);
+ };
+ },
+
+ bar: function (inst) {
+ var self = this,
+ e = null,
+ _mousedown, _mouseup, _mousemove, _html;
+
+ _mousedown = function (event) {
+ if (!inst.opened) {
+ return;
+ }
+
+ var div = $('#ui-colorpicker-bar-layer-pointer', e),
+ offset = div.offset(),
+ width = div.width(),
+ height = div.height(),
+ x = event.pageX - offset.left,
+ y = event.pageY - offset.top;
+
+ if (x >= 0 && x < width && y >= 0 && y < height) {
+ event.stopImmediatePropagation();
+ event.preventDefault();
+ $(document).unbind('mousedown', _mousedown);
+ $(document).bind('mouseup', _mouseup);
+ $(document).bind('mousemove', _mousemove);
+ _mousemove(event);
+ }
+ };
+
+ _mouseup = function (event) {
+ event.stopImmediatePropagation();
+ event.preventDefault();
+ $(document).unbind('mouseup', _mouseup);
+ $(document).unbind('mousemove', _mousemove);
+ $(document).bind('mousedown', _mousedown);
+ };
+
+ _mousemove = function (event) {
+ event.stopImmediatePropagation();
+ event.preventDefault();
+
+ if (event.pageY === self.y) {
+ return;
+ }
+ self.y = event.pageY;
+
+ var div = $('#ui-colorpicker-bar-layer-pointer', e),
+ offset = div.offset(),
+ height = div.height(),
+ y = event.pageY - offset.top;
+
+ y = Math.max(0, Math.min(y / height, 1));
+
+ // interpret values
+ switch (inst.mode) {
+ case 'h':
+ inst.color.h = 1 - y;
+ inst.color.updateRGB();
+ break;
+
+ case 's':
+ inst.color.s = 1 - y;
+ inst.color.updateRGB();
+ break;
+
+ case 'v':
+ inst.color.v = 1 - y;
+ inst.color.updateRGB();
+ break;
+
+ case 'r':
+ inst.color.r = 1 - y;
+ inst.color.updateHSV();
+ break;
+
+ case 'g':
+ inst.color.g = 1 - y;
+ inst.color.updateHSV();
+ break;
+
+ case 'b':
+ inst.color.b = 1 - y;
+ inst.color.updateHSV();
+ break;
+
+ case 'a':
+ inst.color.a = 1 - y;
+ break;
+ }
+
+ inst._change();
+ };
+
+ _html = function () {
+ var html = '<div id="ui-colorpicker-bar" class="ui-colorpicker-border">'
+ + '<span id="ui-colorpicker-bar-layer-1"> </span>'
+ + '<span id="ui-colorpicker-bar-layer-2"> </span>'
+ + '<span id="ui-colorpicker-bar-layer-3"> </span>'
+ + '<span id="ui-colorpicker-bar-layer-4"> </span>';
+
+ if (inst.options.alpha) {
+ html += '<span id="ui-colorpicker-bar-layer-alpha"> </span>'
+ + '<span id="ui-colorpicker-bar-layer-alphabar"> </span>';
+ }
+
+ html += '<span id="ui-colorpicker-bar-layer-pointer"><span id="ui-colorpicker-bar-pointer"></span></span></div>';
+
+ return html;
+ };
+
+ this.generate = function () {
+ switch (inst.mode) {
+ case 'h':
+ case 's':
+ case 'v':
+ case 'r':
+ case 'g':
+ case 'b':
+ $('#ui-colorpicker-bar-layer-alpha', e).show();
+ $('#ui-colorpicker-bar-layer-alphabar', e).hide();
+ break;
+
+ case 'a':
+ $('#ui-colorpicker-bar-layer-alpha', e).hide();
+ $('#ui-colorpicker-bar-layer-alphabar', e).show();
+ break;
+ }
+
+ switch (inst.mode) {
+ case 'h':
+ $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-2', e).hide();
+ $('#ui-colorpicker-bar-layer-3', e).hide();
+ $('#ui-colorpicker-bar-layer-4', e).hide();
+ break;
+
+ case 's':
+ $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-3', e).hide();
+ $('#ui-colorpicker-bar-layer-4', e).hide();
+ break;
+
+ case 'v':
+ $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -520px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-2', e).hide();
+ $('#ui-colorpicker-bar-layer-3', e).hide();
+ $('#ui-colorpicker-bar-layer-4', e).hide();
+ break;
+
+ case 'r':
+ $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -780px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -1040px', 'opacity': ''}).show();
+ break;
+
+ case 'g':
+ $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -2600px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -1820px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -2080px', 'opacity': ''}).show();
+ break;
+
+ case 'b':
+ $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -3640px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -3380px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -2860px', 'opacity': ''}).show();
+ $('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -3120px', 'opacity': ''}).show();
+ break;
+
+ case 'a':
+ $('#ui-colorpicker-bar-layer-1', e).hide();
+ $('#ui-colorpicker-bar-layer-2', e).hide();
+ $('#ui-colorpicker-bar-layer-3', e).hide();
+ $('#ui-colorpicker-bar-layer-4', e).hide();
+ break;
+ }
+ self.repaint();
+ };
+
+ this.repaint = function () {
+ var div = $('#ui-colorpicker-bar-layer-pointer', e),
+ y = 0;
+
+ switch (inst.mode) {
+ case 'h':
+ y = (1 - inst.color.h) * div.height();
+ break;
+
+ case 's':
+ y = (1 - inst.color.s) * div.height();
+ $('#ui-colorpicker-bar-layer-2', e).css('opacity', 1 - inst.color.v);
+ $(e).css('background-color', inst.color.normClone().toCSS());
+ break;
+
+ case 'v':
+ y = (1 - inst.color.v) * div.height();
+ $(e).css('background-color', inst.color.normClone().toCSS());
+ break;
+
+ case 'r':
+ y = (1 - inst.color.r) * div.height();
+ $('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.b - inst.color.g)));
+ $('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.g - inst.color.b)));
+ $('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.b, inst.color.g));
+ break;
+
+ case 'g':
+ y = (1 - inst.color.g) * div.height();
+ $('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.b - inst.color.r)));
+ $('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.r - inst.color.b)));
+ $('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.r, inst.color.b));
+ break;
+
+ case 'b':
+ y = (1 - inst.color.b) * div.height();
+ $('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.r - inst.color.g)));
+ $('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.g - inst.color.r)));
+ $('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.r, inst.color.g));
+ break;
+
+ case 'a':
+ y = (1 - inst.color.a) * div.height();
+ $(e).css('background-color', inst.color.normClone().toCSS());
+ break;
+ }
+
+ if (inst.mode !== 'a') {
+ $('#ui-colorpicker-bar-layer-alpha', e).css('opacity', 1 - inst.color.a);
+ }
+
+ $('#ui-colorpicker-bar-pointer', e).css('top', y - 3);
+ };
+
+ this.init = function () {
+ e = $(_html()).appendTo($('#ui-colorpicker-bar-container', inst.dialog));
+
+ e.bind('mousedown', _mousedown);
+ };
+ },
+
+ inputs: function (inst) {
+ var self = this,
+ e = null,
+ _html;
+
+ _html = function () {
+ var html = '<div id="ui-colorpicker-inputs">';
+
+ if (inst.options.hsv) {
+ html += '<div id="ui-colorpicker-h"><input class="ui-colorpicker-mode" type="radio" value="h"/><label>H:</label><input class="ui-colorpicker-number ui-colorpicker-number-hsv" type="number" min="0" max="360" size="10"/><span class="ui-colorpicker-unit">°</span></div>'
+ + '<div id="ui-colorpicker-s"><input class="ui-colorpicker-mode" type="radio" value="s"/><label>S:</label><input class="ui-colorpicker-number ui-colorpicker-number-hsv" type="number" min="0" max="100" size="10"/><span class="ui-colorpicker-unit">%</span></div>'
+ + '<div id="ui-colorpicker-v"><input class="ui-colorpicker-mode" type="radio" value="v"/><label>V:</label><input class="ui-colorpicker-number ui-colorpicker-number-hsv" type="number" min="0" max="100" size="10"/><span class="ui-colorpicker-unit">%</span></div>';
+ }
+
+ if (inst.options.rgb) {
+ html += '<div id="ui-colorpicker-r"><input class="ui-colorpicker-mode" type="radio" value="r"/><label>R:</label><input class="ui-colorpicker-number ui-colorpicker-number-rgb" type="number" min="0" max="255" size="10"/><span class="ui-colorpicker-unit"></span></div>'
+ + '<div id="ui-colorpicker-g"><input class="ui-colorpicker-mode" type="radio" value="g"/><label>G:</label><input class="ui-colorpicker-number ui-colorpicker-number-rgb" type="number" min="0" max="255" size="10"/><span class="ui-colorpicker-unit"></span></div>'
+ + '<div id="ui-colorpicker-b"><input class="ui-colorpicker-mode" type="radio" value="b"/><label>B:</label><input class="ui-colorpicker-number ui-colorpicker-number-rgb" type="number" min="0" max="255" size="10"/><span class="ui-colorpicker-unit"></span></div>';
+ }
+
+ if (inst.options.alpha) {
+ html += '<div id="ui-colorpicker-a"><input class="ui-colorpicker-mode" name="mode" type="radio" value="a"/><label>A:</label><input class="ui-colorpicker-number ui-colorpicker-number-a" type="number" min="0" max="100" size="10"/><span class="ui-colorpicker-unit">%</span></div>';
+ }
+
+ return html + '</div>';
+ };
+
+ this.init = function () {
+ e = $(_html()).appendTo($('#ui-colorpicker-inputs-container', inst.dialog));
+
+ $('.ui-colorpicker-mode', e).click(function () {
+ inst.mode = $(this).val();
+ inst._generateAllParts();
+ });
+
+ $('.ui-colorpicker-number', e).bind('change input keyup', function () {
+ inst.color.r = $('#ui-colorpicker-r .ui-colorpicker-number', e).val() / 255;
+ inst.color.g = $('#ui-colorpicker-g .ui-colorpicker-number', e).val() / 255;
+ inst.color.b = $('#ui-colorpicker-b .ui-colorpicker-number', e).val() / 255;
+ inst.color.a = $('#ui-colorpicker-a .ui-colorpicker-number', e).val() / 100;
+ inst.color.h = $('#ui-colorpicker-h .ui-colorpicker-number', e).val() / 360;
+ inst.color.s = $('#ui-colorpicker-s .ui-colorpicker-number', e).val() / 100;
+ inst.color.v = $('#ui-colorpicker-v .ui-colorpicker-number', e).val() / 100;
+
+ if ($(this).hasClass('ui-colorpicker-number-hsv')) {
+ inst.color.updateRGB();
+ } else if ($(this).hasClass('ui-colorpicker-number-rgb')) {
+ inst.color.updateHSV();
+ }
+
+ inst._change();
+ });
+ };
+
+ this.repaint = function () {
+ var c = $.extend(inst.color);
+ c.h *= 360;
+ c.s *= 100;
+ c.v *= 100;
+ c.r *= 255;
+ c.g *= 255;
+ c.b *= 255;
+ c.a *= 100;
+
+ $.each(c, function (index, value) {
+ var v = Math.round(value);
+ if (!$('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).is(':focus')
+ && $('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).val() !== v) {
+ $('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).val(v);
+ }
+ });
+ };
+
+ this.generate = function () {
+ $('.ui-colorpicker-mode', e).each(function () {
+ $(this).attr('checked', $(this).val() === inst.mode);
+ });
+ this.repaint();
+ };
+ },
+
+ preview: function (inst) {
+ var self = this,
+ e = null,
+ _html;
+
+ _html = function () {
+ return '<div id="ui-colorpicker-preview">'
+ + '<span class="ui-colorpicker-border">'
+ + '<div id="ui-colorpicker-preview-initial"><div id="ui-colorpicker-preview-initial-alpha"></div></div>'
+ + '<div id="ui-colorpicker-preview-current"><div id="ui-colorpicker-preview-current-alpha"></div></div>'
+ + '</span>'
+ + '</div>';
+ };
+
+ this.init = function () {
+ e = $(_html()).appendTo($('#ui-colorpicker-preview-container', inst.dialog));
+
+ $('#ui-colorpicker-preview-initial', e).click(function () {
+ inst.color = $.extend({}, inst.currentColor);
+ inst._change();
+ });
+
+ };
+
+ this.repaint = function () {
+ $('#ui-colorpicker-preview-initial', e).css('background-color', inst.currentColor.toCSS()).attr('title', inst.currentColor.toHex());
+ $('#ui-colorpicker-preview-initial-alpha', e).css('opacity', 1 - inst.currentColor.a);
+ $('#ui-colorpicker-preview-current', e).css('background-color', inst.color.toCSS()).attr('title', inst.color.toHex());
+ $('#ui-colorpicker-preview-current-alpha', e).css('opacity', 1 - inst.color.a);
+ };
+
+ this.generate = function () {
+ if (inst.options.alpha) {
+ $('#ui-colorpicker-preview-initial-alpha, #ui-colorpicker-preview-current-alpha', e).show();
+ } else {
+ $('#ui-colorpicker-preview-initial-alpha, #ui-colorpicker-preview-current-alpha', e).hide();
+ }
+
+ this.repaint();
+ };
+ },
+
+ hex: function (inst) {
+ var self = this,
+ e = null,
+ _html;
+
+ _html = function () {
+ var html = '';
+
+ if (inst.options.alpha) {
+ html += '<input id="ui-colorpicker-hex-alpha" maxlength="2" size="2"/>';
+ }
+
+ html += '<input id="ui-colorpicker-hex-input" maxlength="6" size="6"/>';
+
+ return '<div id="ui-colorpicker-hex"><label for="ui-colorpicker-hex-input">#: </label>' + html + '</div>';
+ };
+
+ this.init = function () {
+ e = $(_html()).appendTo($('#ui-colorpicker-hex-container', inst.dialog));
+
+ $('#ui-colorpicker-hex-input', e).bind('change keyup', function () {
+ var rgb = inst._parseHex($(this).val());
+ inst.color.r = rgb[0];
+ inst.color.g = rgb[1];
+ inst.color.b = rgb[2];
+ inst.color.updateHSV();
+ inst._change();
+ });
+
+ $('#ui-colorpicker-hex-alpha', e).bind('change keyup', function () {
+ inst.color.a = parseInt($('#ui-colorpicker-hex-alpha', e).val(), 16);
+ inst._change();
+ });
+ };
+
+ this.repaint = function () {
+ if (!$('#ui-colorpicker-hex-input', e).is(':focus')) {
+ $('#ui-colorpicker-hex-input', e).val(inst.color.toHex(true));
+ }
+
+ if (!$('#ui-colorpicker-hex-alpha', e).is(':focus')) {
+ $('#ui-colorpicker-hex-alpha', e).val(inst._intToHex(inst.color.a * 255));
+ }
+ };
+
+ this.generate = function () {
+ this.repaint();
+ };
+ },
+
+ swatches: function (inst) {
+ var self = this,
+ e = null,
+ _html;
+
+ _html = function () {
+ var html = '';
+
+ $.each(inst.options.swatches, function (name, color) {
+ var hex = inst._intToHex(color[0]) + inst._intToHex(color[1]) + inst._intToHex(color[2]);
+ html += '<div class="ui-colorpicker-swatch" style="background-color: #' + hex + '" title="' + name + '"></div>';
+ });
+
+ return '<div id="ui-colorpicker-swatches" class="ui-colorpicker-border">' + html + '</div>';
+ };
+
+ this.init = function () {
+ e = $(_html()).appendTo($('#ui-colorpicker-swatches-container', inst.dialog));
+
+ $('.ui-colorpicker-swatch', e).click(function () {
+ var rgb = inst._parseColor($(this).css('background-color'));
+ inst.color = (rgb === false ? new inst.Color() : new inst.Color(rgb[0], rgb[1], rgb[2]));
+ inst._change();
+ });
+ };
+
+ this.repaint = function () {
+ // Not affected by changing color;
+ };
+
+ this.generate = function () {
+ // Not affected by changing color;
+ };
+ },
+
+ footer: function (inst) {
+ var self = this,
+ e = null,
+ _html;
+
+ _html = function () {
+ return '<div class="ui-dialog-buttonpane ui-widget-content">'
+ + (inst.options.alpha ? '<button class="ui-colorpicker-transparent">transparent</button>' : '')
+ + (inst.inline ? '' : '<div class="ui-dialog-buttonset">'
+ + '<button class="ui-colorpicker-close">Done</button>'
+ + '</div>')
+ + '</div>';
+ };
+
+ this.init = function () {
+ e = $(_html()).appendTo(inst.dialog);
+
+ $('.ui-colorpicker-close', e).button().click(function () {
+ inst.close();
+ });
+
+ if (inst.options.alpha) {
+ $('.ui-colorpicker-transparent', e).button().click(function () {
+ inst.color.a = 0;
+ inst._change();
+ });
+ }
+ };
+
+ this.repaint = function () {};
+
+ this.generate = function () {};
+ }
+ },
+
+ _parseHex: function (color) {
+ var name = $.trim(color).toLowerCase(),
+ c,
+ m;
+
+ if (_colors[name]) {
+ c = _colors[name];
+ return [c[0] / 255, c[1] / 255, c[2] / 255];
+ }
+
+ // {#}rrggbb
+ m = /^#?([a-fA-F0-9]{0,6})/.exec(color);
+ if (m) {
+ c = parseInt(m[1], 16);
+ return [((c >> 16) & 0xFF) / 255,
+ ((c >> 8) & 0xFF) / 255,
+ (c & 0xFF) / 255];
+ }
+ },
+
+ _parseColor: function (color) {
+ var m;
+
+ // rgba(r,g,b,a)
+ m = /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/.exec(color);
+ if (m) {
+ return [
+ m[1] / 255,
+ m[2] / 255,
+ m[3] / 255,
+ m[4] / 255
+ ];
+ }
+
+ // rgba(r%,g%,b%,a%)
+ m = /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/.exec(color);
+ if (m) {
+ return [
+ m[1] / 100,
+ m[2] / 100,
+ m[3] / 100,
+ m[4] / 100
+ ];
+ }
+
+ // #rrggbb
+ m = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color);
+ if (m) {
+ return [
+ parseInt(m[1], 16) / 255,
+ parseInt(m[2], 16) / 255,
+ parseInt(m[3], 16) / 255
+ ];
+ }
+
+ // #rgb
+ m = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color);
+ if (m) {
+ return [
+ parseInt(m[1] + m[1], 16) / 255,
+ parseInt(m[2] + m[2], 16) / 255,
+ parseInt(m[3] + m[3], 16) / 255
+ ];
+ }
+
+ return this._parseHex(color);
+ },
+
+ Color: function () {
+ var a, args = arguments;
+
+ this.updateRGB = function () {
+ this.h = Math.max(0, Math.min(this.h, 1));
+ this.s = Math.max(0, Math.min(this.s, 1));
+ this.v = Math.max(0, Math.min(this.v, 1));
+
+ if (this.s === 0) {
+ this.r = this.g = this.b = this.v;
+ } else {
+ var var_h = this.h === 1 ? 0 : this.h * 6,
+ var_i = Math.floor(var_h),
+ var_1 = this.v * (1 - this.s),
+ var_2 = this.v * (1 - this.s * (var_h - var_i)),
+ var_3 = this.v * (1 - this.s * (1 - (var_h - var_i)));
+
+ if (var_i === 0) {
+ this.r = this.v;
+ this.g = var_3;
+ this.b = var_1;
+ } else if (var_i === 1) {
+ this.r = var_2;
+ this.g = this.v;
+ this.b = var_1;
+ } else if (var_i === 2) {
+ this.r = var_1;
+ this.g = this.v;
+ this.b = var_3;
+ } else if (var_i === 3) {
+ this.r = var_1;
+ this.g = var_2;
+ this.b = this.v;
+ } else if (var_i === 4) {
+ this.r = var_3;
+ this.g = var_1;
+ this.b = this.v;
+ } else {
+ this.r = this.v;
+ this.g = var_1;
+ this.b = var_2;
+ }
+ }
+ return this;
+ };
+
+ this.updateHSV = function () {
+ var minVal, maxVal, delta, del_R, del_G, del_B;
+ this.r = Math.max(0, Math.min(this.r, 1));
+ this.g = Math.max(0, Math.min(this.g, 1));
+ this.b = Math.max(0, Math.min(this.b, 1));
+
+ minVal = Math.min(this.r, this.g, this.b);
+ maxVal = Math.max(this.r, this.g, this.b);
+ delta = maxVal - minVal;
+
+ this.v = maxVal;
+
+ if (delta === 0) {
+ this.h = 0;
+ this.s = 0;
+ } else {
+ this.s = delta / maxVal;
+ del_R = (((maxVal - this.r) / 6) + (delta / 2)) / delta;
+ del_G = (((maxVal - this.g) / 6) + (delta / 2)) / delta;
+ del_B = (((maxVal - this.b) / 6) + (delta / 2)) / delta;
+
+ if (this.r === maxVal) {
+ this.h = del_B - del_G;
+ } else if (this.g === maxVal) {
+ this.h = (1 / 3) + del_R - del_B;
+ } else if (this.b === maxVal) {
+ this.h = (2 / 3) + del_G - del_R;
+ }
+
+ if (this.h < 0) {
+ this.h += 1;
+ } else if (this.h > 1) {
+ this.h -= 1;
+ }
+ }
+ return this;
+ };
+
+ this._hexify = function (number) {
+ // return Math.round(number).toString(16);
+ var digits = '0123456789abcdef',
+ lsd = number % 16,
+ msd = (number - lsd) / 16,
+ hexified = digits.charAt(msd) + digits.charAt(lsd);
+ return hexified;
+ };
+
+ this.toHex = function () {
+ return this._hexify(this.r * 255) + this._hexify(this.g * 255) + this._hexify(this.b * 255);
+ };
+
+ this.toCSS = function () {
+ return '#' + this.toHex();
+ };
+
+ this.toHexAlpha = function () {
+ return this._hexify(this.a * 255);
+ };
+
+ this.normClone = function () {
+ return $.extend({}, this, {s: 1, v: 1}).updateRGB();
+ };
+
+ this.equals = function (rgb) {
+ return rgb[0] === this.r
+ && rgb[1] === this.g
+ && rgb[2] === this.b;
+ };
+
+ this.limit = function (steps) {
+ steps -= 1;
+ this.r = Math.round(this.r * steps) / steps;
+ this.g = Math.round(this.g * steps) / steps;
+ this.b = Math.round(this.b * steps) / steps;
+ this.updateHSV();
+ };
+
+ for (a = 0; a < args.length; a += 1) {
+ args[a] = Math.max(0, Math.min(args[a], 1));
+ }
+
+ if (args.length === 0) {
+ this.r = 0;
+ this.g = 0;
+ this.b = 0;
+ this.a = 1;
+ this.h = 0;
+ this.s = 0;
+ this.v = 0;
+ } else if (args.length === 3) {
+ // r,g,b
+ this.r = args[0] || 0;
+ this.g = args[1] || 0;
+ this.b = args[2] || 0;
+ this.a = 1;
+ this.updateHSV();
+ } else if (args.length === 7) {
+ // r,g,b,a,h,s,v
+ this.r = args[0] || 0;
+ this.g = args[1] || 0;
+ this.b = args[2] || 0;
+ this.a = args[3] || 0;
+ this.h = args[4] || 0;
+ this.s = args[5] || 0;
+ this.v = args[6] || 0;
+ }
+ }
+ });
+
+}(jQuery));
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html b/wqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html new file mode 100644 index 00000000..ef35aebf --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html @@ -0,0 +1,137 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Data Point Highlighting, Tooltips and Cursor Tracking</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="canvas-overlay.html">Previous</a> <a href="./">Examples</a> <a href="customHighlighterCursorTrendline.html">Next</a></div> + + +<!-- Example scripts go here --> + +<p>The Highlighter plugin will highlight data points near the mouse and display an optional tooltip with the data point value. By default, the tooltip values will be formatted with the same formatter as used to display the axes tick values. The text format can be customized with an optional sprintf style format string.</p> + +<div id="chart1" style="height:300px; width:600px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<p>The Cursor plugin changes the mouse cursor when it enters the graph area and displays an optional tooltip with the mouse position. The tooltip can be in a fixed location, or it can follow the mouse. The pointer style, set to "crosshair" by default, can also be customized. Tooltip values are formatted similar to the Highlighter plugin. By default they use the axes formatters, but can be customized with a sprintf format string.</p> + +<div id="chart2" style="height:300px; width:600px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1=[['23-May-08', 578.55], ['20-Jun-08', 566.5], ['25-Jul-08', 480.88], ['22-Aug-08', 509.84], + ['26-Sep-08', 454.13], ['24-Oct-08', 379.75], ['21-Nov-08', 303], ['26-Dec-08', 308.56], + ['23-Jan-09', 299.14], ['20-Feb-09', 346.51], ['20-Mar-09', 325.99], ['24-Apr-09', 386.15]]; + var plot1 = $.jqplot('chart1', [line1], { + title:'Data Point Highlighting', + axes:{ + xaxis:{ + renderer:$.jqplot.DateAxisRenderer, + tickOptions:{ + formatString:'%b %#d' + } + }, + yaxis:{ + tickOptions:{ + formatString:'$%.2f' + } + } + }, + highlighter: { + show: true, + sizeAdjust: 7.5 + }, + cursor: { + show: false + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1=[['23-May-08', 578.55], ['20-Jun-08', 566.5], ['25-Jul-08', 480.88], ['22-Aug-08', 509.84], + ['26-Sep-08', 454.13], ['24-Oct-08', 379.75], ['21-Nov-08', 303], ['26-Dec-08', 308.56], + ['23-Jan-09', 299.14], ['20-Feb-09', 346.51], ['20-Mar-09', 325.99], ['24-Apr-09', 386.15]]; + var plot2 = $.jqplot('chart2', [line1], { + title:'Mouse Cursor Tracking', + axes:{ + xaxis:{ + renderer:$.jqplot.DateAxisRenderer, + tickOptions:{ + formatString:'%b %#d' + } + }, + yaxis:{ + tickOptions:{ + formatString:'$%.2f' + } + } + }, + highlighter: { + show: false + }, + cursor: { + show: true, + tooltipLocation:'sw' + } + }); +}); +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html b/wqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html new file mode 100644 index 00000000..d5ed6ce4 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html @@ -0,0 +1,104 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Highlighting, Dragging Points, Cursor and Trend Lines.</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="cursor-highlighter.html">Previous</a> <a href="./">Examples</a> <a href="dashboardWidget.html">Next</a></div> + + <div class="example-plot" id="chart1"></div> +<!-- Example scripts go here --> + + <script class="code" type="text/javascript"> + + $(document).ready(function () { + + $.jqplot.config.enablePlugins = true; + + s1 = [['23-May-08',1],['24-May-08',4],['25-May-08',2],['26-May-08', 6]]; + + plot1 = $.jqplot('chart1',[s1],{ + title: 'Highlighting, Dragging, Cursor and Trend Line', + axes: { + xaxis: { + renderer: $.jqplot.DateAxisRenderer, + tickOptions: { + formatString: '%#m/%#d/%y' + }, + numberTicks: 4 + }, + yaxis: { + tickOptions: { + formatString: '$%.2f' + } + } + }, + highlighter: { + sizeAdjust: 10, + tooltipLocation: 'n', + tooltipAxes: 'y', + tooltipFormatString: '<b><i><span style="color:red;">hello</span></i></b> %.2f', + useAxesFormatters: false + }, + cursor: { + show: true + } + }); + }); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.dragable.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.trendline.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html b/wqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html new file mode 100644 index 00000000..d57f1de3 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html @@ -0,0 +1,212 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Animated Dashboard Sample - Filled Line with Log Axis</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="customHighlighterCursorTrendline.html">Previous</a> <a href="./">Examples</a> <a href="dashedLines.html">Next</a></div> + + +<!-- Example scripts go here --> + <link class="include" rel="stylesheet" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.css" /> + + <style type="text/css"> + .jqplot-target { + margin: 20px; + height: 340px; + width: 600px; + color: #dddddd; + } + + .ui-widget-content { + background: rgb(57,57,57); + } + + table.jqplot-table-legend { + border: 0px; + background-color: rgba(100,100,100, 0.0); + } + + .jqplot-highlighter-tooltip { + background-color: rgba(57,57,57, 0.9); + padding: 7px; + color: #dddddd; + } + + + + </style> + + <div class="ui-widget ui-corner-all"> + <div class="ui-widget-header ui-corner-top">Hi Powered Data</div> + <div class="ui-widget-content ui-corner-bottom" > + <div id="chart1"></div> + </div> + </div> + + <pre class="code brush:js"></pre> + + <script class="code" type="text/javascript"> + + $(document).ready(function () { + $.jqplot._noToImageButton = true; + var prevYear = [["2011-08-01",398], ["2011-08-02",255.25], ["2011-08-03",263.9], ["2011-08-04",154.24], + ["2011-08-05",210.18], ["2011-08-06",109.73], ["2011-08-07",166.91], ["2011-08-08",330.27], ["2011-08-09",546.6], + ["2011-08-10",260.5], ["2011-08-11",330.34], ["2011-08-12",464.32], ["2011-08-13",432.13], ["2011-08-14",197.78], + ["2011-08-15",311.93], ["2011-08-16",650.02], ["2011-08-17",486.13], ["2011-08-18",330.99], ["2011-08-19",504.33], + ["2011-08-20",773.12], ["2011-08-21",296.5], ["2011-08-22",280.13], ["2011-08-23",428.9], ["2011-08-24",469.75], + ["2011-08-25",628.07], ["2011-08-26",516.5], ["2011-08-27",405.81], ["2011-08-28",367.5], ["2011-08-29",492.68], + ["2011-08-30",700.79], ["2011-08-31",588.5], ["2011-09-01",511.83], ["2011-09-02",721.15], ["2011-09-03",649.62], + ["2011-09-04",653.14], ["2011-09-06",900.31], ["2011-09-07",803.59], ["2011-09-08",851.19], ["2011-09-09",2059.24], + ["2011-09-10",994.05], ["2011-09-11",742.95], ["2011-09-12",1340.98], ["2011-09-13",839.78], ["2011-09-14",1769.21], + ["2011-09-15",1559.01], ["2011-09-16",2099.49], ["2011-09-17",1510.22], ["2011-09-18",1691.72], + ["2011-09-19",1074.45], ["2011-09-20",1529.41], ["2011-09-21",1876.44], ["2011-09-22",1986.02], + ["2011-09-23",1461.91], ["2011-09-24",1460.3], ["2011-09-25",1392.96], ["2011-09-26",2164.85], + ["2011-09-27",1746.86], ["2011-09-28",2220.28], ["2011-09-29",2617.91], ["2011-09-30",3236.63]]; + + var currYear = [["2011-08-01",796.01], ["2011-08-02",510.5], ["2011-08-03",527.8], ["2011-08-04",308.48], + ["2011-08-05",420.36], ["2011-08-06",219.47], ["2011-08-07",333.82], ["2011-08-08",660.55], ["2011-08-09",1093.19], + ["2011-08-10",521], ["2011-08-11",660.68], ["2011-08-12",928.65], ["2011-08-13",864.26], ["2011-08-14",395.55], + ["2011-08-15",623.86], ["2011-08-16",1300.05], ["2011-08-17",972.25], ["2011-08-18",661.98], ["2011-08-19",1008.67], + ["2011-08-20",1546.23], ["2011-08-21",593], ["2011-08-22",560.25], ["2011-08-23",857.8], ["2011-08-24",939.5], + ["2011-08-25",1256.14], ["2011-08-26",1033.01], ["2011-08-27",811.63], ["2011-08-28",735.01], ["2011-08-29",985.35], + ["2011-08-30",1401.58], ["2011-08-31",1177], ["2011-09-01",1023.66], ["2011-09-02",1442.31], ["2011-09-03",1299.24], + ["2011-09-04",1306.29], ["2011-09-06",1800.62], ["2011-09-07",1607.18], ["2011-09-08",1702.38], + ["2011-09-09",4118.48], ["2011-09-10",1988.11], ["2011-09-11",1485.89], ["2011-09-12",2681.97], + ["2011-09-13",1679.56], ["2011-09-14",3538.43], ["2011-09-15",3118.01], ["2011-09-16",4198.97], + ["2011-09-17",3020.44], ["2011-09-18",3383.45], ["2011-09-19",2148.91], ["2011-09-20",3058.82], + ["2011-09-21",3752.88], ["2011-09-22",3972.03], ["2011-09-23",2923.82], ["2011-09-24",2920.59], + ["2011-09-25",2785.93], ["2011-09-26",4329.7], ["2011-09-27",3493.72], ["2011-09-28",4440.55], + ["2011-09-29",5235.81], ["2011-09-30",6473.25]]; + + var plot1 = $.jqplot("chart1", [prevYear, currYear], { + seriesColors: ["rgba(78, 135, 194, 0.7)", "rgb(211, 235, 59)"], + title: 'Monthly TurnKey Revenue', + highlighter: { + show: true, + sizeAdjust: 1, + tooltipOffset: 9 + }, + grid: { + background: 'rgba(57,57,57,0.0)', + drawBorder: false, + shadow: false, + gridLineColor: '#666666', + gridLineWidth: 2 + }, + legend: { + show: true, + placement: 'outside' + }, + seriesDefaults: { + rendererOptions: { + smooth: true, + animation: { + show: true + } + }, + showMarker: false + }, + series: [ + { + fill: true, + label: '2010' + }, + { + label: '2011' + } + ], + axesDefaults: { + rendererOptions: { + baselineWidth: 1.5, + baselineColor: '#444444', + drawBaseline: false + } + }, + axes: { + xaxis: { + renderer: $.jqplot.DateAxisRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + formatString: "%b %e", + angle: -30, + textColor: '#dddddd' + }, + min: "2011-08-01", + max: "2011-09-30", + tickInterval: "7 days", + drawMajorGridlines: false + }, + yaxis: { + renderer: $.jqplot.LogAxisRenderer, + pad: 0, + rendererOptions: { + minorTicks: 1 + }, + tickOptions: { + formatString: "$%'d", + showMark: false + } + } + } + }); + + $('.jqplot-highlighter-tooltip').addClass('ui-corner-all') + }); + + + </script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dashedLines.html b/wqflask/wqflask/static/packages/jqplot/examples/dashedLines.html new file mode 100644 index 00000000..d1bf48fb --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/dashedLines.html @@ -0,0 +1,227 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Dashed Lines with Smoothing</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="dashboardWidget.html">Previous</a> <a href="./">Examples</a> <a href="data-renderers.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css"> + .jqplot-target { + margin-bottom: 2em; + } + + p { + margin: 2em 0; + } + </style> + + + <div id="chart1" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div> + + <div id="chart1b" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div> + + <div id="chart2" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div> + + <div id="chart3" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div> + + <div id="chart4" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div> + + <div id="chart4b" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div> + + <div id="chart5" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div> + + <script class="code" type="text/javascript"> + + $(document).ready(function () { + s1 = [[0, 2], [1, 6], [2, 7], [3, 10]]; + + // Lines can be drawn as solid, dashed or dotted with the "linePattern" option. + // The default is "solid". Other basic options are "dashed" and "dotted". + + plot1 = $.jqplot("chart1", [s1], { + seriesDefaults:{ + linePattern: 'dashed', + showMarker: false, + shadow: false + } + }); + }); +</script> + + <script class="code" type="text/javascript"> + + $(document).ready(function () { + + s1 = [[0, 2], [1, 6], [2, 7], [3, 10]]; + + // Size of the dashes is proportional to the width of the line. + + plot1b = $.jqplot("chart1b", [s1], { + seriesDefaults:{ + linePattern: 'dashed', + lineWidth: 7, + showMarker: false, + shadow: false + } + }); + }); +</script> + + + <script class="code" type="text/javascript"> + $(document).ready(function () { + s2 = [[0, 6.29], [0.1, 8.21], [0.2, 8.92], [0.3, 7.33], [0.4, 7.91], [0.5, 3.6], [0.6, 6.88], + [0.7, 1.5], [0.8, 0.08], [0.9, 6.36], [1, 0.5], [1.1, 9.14], [1.2, 6.23], [1.3, 2.66], + [1.4, 9.9], [1.5, 7.44], [1.6, 7.82], [1.7, 8.57], [1.8, 3.99], [1.9, 3.83], [2, 6.78], + [2.1, 7.63], [2.2, 6.94], [2.3, 1.24], [2.4, 2.25], [2.5, 0.67], [2.6, 6.73], [2.7, 2.25], + [2.8, 7.72], [2.9, 9.36], [3, 8.49]]; + + // Here is the default dotted line. + + plot2 = $.jqplot("chart2", [s2], { + seriesDefaults:{ + linePattern: 'dotted', + showMarker: false, + shadow: false + } + }); + }); +</script> + + + <script class="code" type="text/javascript"> + $(document).ready(function () { + + // Dashes and dots work with smoothed lines as well. + + plot3 = $.jqplot("chart3", [s2], { + seriesDefaults:{ + linePattern: 'dashed', + showMarker: false, + shadow: false, + rendererOptions: { + smooth: true + } + } + }); + }); +</script> + + + <script class="code" type="text/javascript"> + $(document).ready(function () { + + // A user defined linePattern can be specified as well. The format + // of a linePattern definition is an array like [dash length, gap length, ...]. + // The line looks best when the line pattern array has an even number + // of elements, so it begins with a dash and ends with a gap. + // The dash and gap lengths are scaled to the line thickness. + + plot4 = $.jqplot("chart4", [s2], { + seriesDefaults:{ + linePattern: [4, 3, 1, 3, 1, 3], + showMarker: false, + shadow: false, + rendererOptions: { + smooth: true + } + } + }); + }); +</script> + + +<script class="code" type="text/javascript"> + $(document).ready(function () { + + // The linePattern option also accepts a shorthand string + // notation of dash (-) and dot (.) characters to create + // a customized pattern. + + plot4b = $.jqplot("chart4b", [s2], { + seriesDefaults:{ + linePattern: '-.', + showMarker: false, + shadow: false, + rendererOptions: { + smooth: true + } + } + }); + }); +</script> + + <script class="code" type="text/javascript"> + $(document).ready(function () { + + // The default dash length and gap length can be controlled + // with the dashLength and gapLength config parameters. + + $.jqplot.config.dashLength = 5; + $.jqplot.config.gapLength = 2; + + plot5 = $.jqplot("chart5", [s2], { + seriesDefaults:{ + linePattern: 'dashed', + showMarker: false, + shadow: false, + rendererOptions: { + smooth: true + } + } + }); + }); +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/data-renderers.html b/wqflask/wqflask/static/packages/jqplot/examples/data-renderers.html new file mode 100644 index 00000000..ba835d58 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/data-renderers.html @@ -0,0 +1,144 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>AJAX and JSON Data Loading via Data Renderers</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="dashedLines.html">Previous</a> <a href="./">Examples</a> <a href="date-axes.html">Next</a></div> + + +<!-- Example scripts go here --> + +<p>Data renderers allow jqPlot to pull data from any external source (e.g. a function implementing an AJAX call). Simply assign the external source to the "dataRenderer" plot option. The only requirement on data renderers is that it must return a valid jqPlot data array.</p> + +<div id="chart1" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<p>Data renderers get passed options by the plot. The signiture for a data renderer is:</p> + + +<pre class="brush: js"> +function(userData, plotObject, options) { + ... + return data; +} +</pre> + + +<p>Where userData is whatever data was passed into the plot, plotObject is a reference back to the plot itself, and options are any options passed into the plots "dataRendererOption" option. The following example shows a more complicated example which uses ajax pulls data from an external json data source.</p> + +<div id="chart2" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // Our data renderer function, returns an array of the form: + // [[[x1, sin(x1)], [x2, sin(x2)], ...]] + var sineRenderer = function() { + var data = [[]]; + for (var i=0; i<13; i+=0.5) { + data[0].push([i, Math.sin(i)]); + } + return data; + }; + + // we have an empty data array here, but use the "dataRenderer" + // option to tell the plot to get data from our renderer. + var plot1 = $.jqplot('chart1',[],{ + title: 'Sine Data Renderer', + dataRenderer: sineRenderer + }); +}); +</script> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // Our ajax data renderer which here retrieves a text file. + // it could contact any source and pull data, however. + // The options argument isn't used in this renderer. + var ajaxDataRenderer = function(url, plot, options) { + var ret = null; + $.ajax({ + // have to use synchronous here, else the function + // will return before the data is fetched + async: false, + url: url, + dataType:"json", + success: function(data) { + ret = data; + } + }); + return ret; + }; + + // The url for our json data + var jsonurl = "./jsondata.txt"; + + // passing in the url string as the jqPlot data argument is a handy + // shortcut for our renderer. You could also have used the + // "dataRendererOptions" option to pass in the url. + var plot2 = $.jqplot('chart2', jsonurl,{ + title: "AJAX JSON Data Renderer", + dataRenderer: ajaxDataRenderer, + dataRendererOptions: { + unusedOptionalUrl: jsonurl + } + }); +}); +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.json2.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/date-axes.html b/wqflask/wqflask/static/packages/jqplot/examples/date-axes.html new file mode 100644 index 00000000..4fa3f620 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/date-axes.html @@ -0,0 +1,107 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Date Axes</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="data-renderers.html">Previous</a> <a href="./">Examples</a> <a href="dateAxisLogAxisZooming.html">Next</a></div> + + +<!-- Example scripts go here --> +<p>Date axes support is provided through the dateAxisRenderer plugin. Date axes expand javascripts native date handling capabilities. This allow dates to be input in almost any unambiguous form, not just in milliseconds!</p> + +<p><em>Note, although jqPlot will parse most any human readable date, it is safest to use javascript time stamps when possible. Also, it is best to specify a date and time and not just a date alone. This is due to inconsistent browser handling of local time vs. UTC with bare dates.</em></p> + +<div id="chart1" style="height:300px; width:650px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<p>Date Axes also provide powerful formatting features. This allows custom formatter strings to be used to format axis tick labels precisely the way you want.</p> + +<div id="chart2" style="height:300px; width:650px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1=[['2008-08-12 4:00PM',4], ['2008-09-12 4:00PM',6.5], ['2008-10-12 4:00PM',5.7], ['2008-11-12 4:00PM',9], ['2008-12-12 4:00PM',8.2]]; + var plot1 = $.jqplot('chart1', [line1], { + title:'Default Date Axis', + axes:{ + xaxis:{ + renderer:$.jqplot.DateAxisRenderer + } + }, + series:[{lineWidth:4, markerOptions:{style:'square'}}] + }); +}); +</script> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1=[['2008-06-30 8:00AM',4], ['2008-7-14 8:00AM',6.5], ['2008-7-28 8:00AM',5.7], ['2008-8-11 8:00AM',9], ['2008-8-25 8:00AM',8.2]]; + var plot2 = $.jqplot('chart2', [line1], { + title:'Customized Date Axis', + axes:{ + xaxis:{ + renderer:$.jqplot.DateAxisRenderer, + tickOptions:{formatString:'%b %#d, %#I %p'}, + min:'June 16, 2008 8:00AM', + tickInterval:'2 weeks' + } + }, + series:[{lineWidth:4, markerOptions:{style:'square'}}] + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html b/wqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html new file mode 100644 index 00000000..81f0f1c7 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html @@ -0,0 +1,101 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Zooming with Date and Log Axes</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="date-axes.html">Previous</a> <a href="./">Examples</a> <a href="dateAxisRenderer.html">Next</a></div> + + <div class="example-plot" id="chart1" style="width: 700px; height: 400px;"></div> + +<!-- Example scripts go here --> + +<script type="text/javascript" src="yahooData.js" ></script> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + plot1 = $.jqplot('chart1', [yahoo], { + series: [{ + renderer: $.jqplot.OHLCRenderer, + rendererOptions: { + candleStick: true + } + }], + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer, + rendererOptions: { + tickInset: 0 + }, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -30 + } + }, + yaxis: { + renderer: $.jqplot.LogAxisRenderer, + tickOptions:{ prefix: '$' } + } + }, + cursor:{ + show: true, + zoom: true + } + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html b/wqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html new file mode 100644 index 00000000..b0b72fba --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html @@ -0,0 +1,292 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Date Axes</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="dateAxisLogAxisZooming.html">Previous</a> <a href="./">Examples</a> <a href="fillBetweenLines.html">Next</a></div> + + +<!-- Example scripts go here --> + +<p class="text">Date axis renderer with default settings. Ticks are given wider spacing by default since date axes typically have longer tick labels.</p> +<div id="chart1" style="margin:20px;height:240px; width:640px;"></div> +<p class="text">Date axis recognizes rotated tick labels. It will space ticks a little closer when labels are rotated.</p> +<div id="chart2" style="margin:20px;height:240px; width:640px;"></div> +<p class="text">If you want more or less ticks, specify the "numberTicks" options. Date axes will try to produce the desired number of ticks, but may adjust to get a nice interval.</p> +<div id="chart3" style="margin:20px;height:240px; width:640px;"></div> + +<script type="text/javascript"> + var ohlc = [['07/06/09', 138.7, 139.68, 135.18, 135.4], + ['06/29/09', 143.46, 144.66, 139.79, 140.02], + ['06/22/09', 140.67, 143.56, 132.88, 142.44], + ['06/15/09', 136.01, 139.5, 134.53, 139.48], + ['06/08/09', 143.82, 144.56, 136.04, 136.97], + ['06/01/09', 136.47, 146.4, 136, 144.67], + ['05/26/09', 124.76, 135.9, 124.55, 135.81], + ['05/18/09', 123.73, 129.31, 121.57, 122.5], + ['05/11/09', 127.37, 130.96, 119.38, 122.42], + ['05/04/09', 128.24, 133.5, 126.26, 129.19], + ['04/27/09', 122.9, 127.95, 122.66, 127.24], + ['04/20/09', 121.73, 127.2, 118.6, 123.9], + ['04/13/09', 120.01, 124.25, 115.76, 123.42], + ['04/06/09', 114.94, 120, 113.28, 119.57], + ['03/30/09', 104.51, 116.13, 102.61, 115.99], + ['03/23/09', 102.71, 109.98, 101.75, 106.85], + ['03/16/09', 96.53, 103.48, 94.18, 101.59], + ['03/09/09', 84.18, 97.2, 82.57, 95.93], + ['03/02/09', 88.12, 92.77, 82.33, 85.3], + ['02/23/09', 91.65, 92.92, 86.51, 89.31], + ['02/17/09', 96.87, 97.04, 89, 91.2], + ['02/09/09', 100, 103, 95.77, 99.16], + ['02/02/09', 89.1, 100, 88.9, 99.72], + ['01/26/09', 88.86, 95, 88.3, 90.13], + ['01/20/09', 81.93, 90, 78.2, 88.36], + ['01/12/09', 90.46, 90.99, 80.05, 82.33], + ['01/05/09', 93.17, 97.17, 90.04, 90.58], + ['12/29/08', 86.52, 91.04, 84.72, 90.75], + ['12/22/08', 90.02, 90.03, 84.55, 85.81], + ['12/15/08', 95.99, 96.48, 88.02, 90], + ['12/08/08', 97.28, 103.6, 92.53, 98.27], + ['12/01/08', 91.3, 96.23, 86.5, 94], + ['11/24/08', 85.21, 95.25, 84.84, 92.67], + ['11/17/08', 88.48, 91.58, 79.14, 82.58], + ['11/10/08', 100.17, 100.4, 86.02, 90.24], + ['11/03/08', 105.93, 111.79, 95.72, 98.24], + ['10/27/08', 95.07, 112.19, 91.86, 107.59], + ['10/20/08', 99.78, 101.25, 90.11, 96.38], + ['10/13/08', 104.55, 116.4, 85.89, 97.4], + ['10/06/08', 91.96, 101.5, 85, 96.8], + ['09/29/08', 119.62, 119.68, 94.65, 97.07], + ['09/22/08', 139.94, 140.25, 123, 128.24], + ['09/15/08', 142.03, 147.69, 120.68, 140.91], + ['09/08/08', 164.57, 164.89, 146, 148.94] + ]; + + var hlc = [['07/06/09', 139.68, 135.18, 135.4], + ['06/29/09', 144.66, 139.79, 140.02], + ['06/22/09', 143.56, 132.88, 142.44], + ['06/15/09', 139.5, 134.53, 139.48], + ['06/08/09', 144.56, 136.04, 136.97], + ['06/01/09', 146.4, 136, 144.67], + ['05/26/09', 135.9, 124.55, 135.81], + ['05/18/09', 129.31, 121.57, 122.5], + ['05/11/09', 130.96, 119.38, 122.42], + ['05/04/09', 133.5, 126.26, 129.19], + ['04/27/09', 127.95, 122.66, 127.24], + ['04/20/09', 127.2, 118.6, 123.9], + ['04/13/09', 124.25, 115.76, 123.42], + ['04/06/09', 120, 113.28, 119.57], + ['03/30/09', 116.13, 102.61, 115.99], + ['03/23/09', 109.98, 101.75, 106.85], + ['03/16/09', 103.48, 94.18, 101.59], + ['03/09/09', 97.2, 82.57, 95.93], + ['03/02/09', 92.77, 82.33, 85.3], + ['02/23/09', 92.92, 86.51, 89.31], + ['02/17/09', 97.04, 89, 91.2], + ['02/09/09', 103, 95.77, 99.16], + ['02/02/09', 100, 88.9, 99.72], + ['01/26/09', 95, 88.3, 90.13], + ['01/20/09', 90, 78.2, 88.36], + ['01/12/09', 90.99, 80.05, 82.33], + ['01/05/09', 97.17, 90.04, 90.58], + ['12/29/08', 91.04, 84.72, 90.75], + ['12/22/08', 90.03, 84.55, 85.81], + ['12/15/08', 96.48, 88.02, 90], + ['12/08/08', 103.6, 92.53, 98.27], + ['12/01/08', 96.23, 86.5, 94], + ['11/24/08', 95.25, 84.84, 92.67], + ['11/17/08', 91.58, 79.14, 82.58], + ['11/10/08', 100.4, 86.02, 90.24], + ['11/03/08', 111.79, 95.72, 98.24], + ['10/27/08', 112.19, 91.86, 107.59], + ['10/20/08', 101.25, 90.11, 96.38], + ['10/13/08', 116.4, 85.89, 97.4], + ['10/06/08', 101.5, 85, 96.8], + ['09/29/08', 119.68, 94.65, 97.07], + ['09/22/08', 140.25, 123, 128.24], + ['09/15/08', 147.69, 120.68, 140.91], + ['09/08/08', 164.89, 146, 148.94] + ]; +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + title: "CandleStick Chart", + // Globally enable plugins like cursor and highlighter + $.jqplot.config.enablePlugins = true; + + // for 2 digit years, set the default centry to 2000. + $.jsDate.config.defaultCentury = 2000; + + plot1 = $.jqplot('chart1',[ohlc],{ + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer + }, + yaxis: { + tickOptions:{prefix: '$'} + } + }, + series: [ + { + renderer:$.jqplot.OHLCRenderer, + rendererOptions:{ + candleStick:true + } + } + ], + highlighter: { + showMarker:false, + tooltipAxes: 'xy', + yvalues: 4, + formatString:'<table class="jqplot-highlighter"> \ + <tr><td>date:</td><td>%s</td></tr> \ + <tr><td>open:</td><td>%s</td></tr> \ + <tr><td>hi:</td><td>%s</td></tr> \ + <tr><td>low:</td><td>%s</td></tr> \ + <tr><td>close:</td><td>%s</td></tr> \ + </table>' + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + + plot2 = $.jqplot('chart2',[ohlc],{ + title: 'OHLC chart', + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -30 + } + }, + yaxis: { + tickOptions:{ + prefix: '$' + } + } + }, + series: [ + { + renderer:$.jqplot.OHLCRenderer + } + ], + highlighter: { + showMarker:false, + tooltipAxes: 'xy', + yvalues: 4, + formatString:'<table class="jqplot-highlighter"> \ + <tr><td>date:</td><td>%s</td></tr> \ + <tr><td>open:</td><td>%s</td></tr> \ + <tr><td>hi:</td><td>%s</td></tr> \ + <tr><td>low:</td><td>%s</td></tr> \ + <tr><td>close:</td><td>%s</td></tr> \ + </table>' + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + + plot3 = $.jqplot('chart3',[ohlc],{ + axesDefaults:{}, + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + numberTicks: 7, + tickOptions: { + angle: -30 + } + }, + yaxis: { + tickOptions:{ + prefix: '$' + } + } + }, + series: [ + { + renderer:$.jqplot.OHLCRenderer, + rendererOptions:{ + candleStick:true + } + } + ], + highlighter: { + showMarker:false, + tooltipAxes: 'xy', + yvalues: 4, + formatString:'<table class="jqplot-highlighter"> \ + <tr><td>date:</td><td>%s</td></tr> \ + <tr><td>open:</td><td>%s</td></tr> \ + <tr><td>hi:</td><td>%s</td></tr> \ + <tr><td>low:</td><td>%s</td></tr> \ + <tr><td>close:</td><td>%s</td></tr> \ + </table>' + } + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/example.js b/wqflask/wqflask/static/packages/jqplot/examples/example.js new file mode 100644 index 00000000..ff85cd20 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/example.js @@ -0,0 +1,114 @@ +$(document).ready(function(){ + if (!$.jqplot._noCodeBlock) { + $('script.code').each(function(index) { + if ($('pre.code').eq(index).length ) { + $('pre.code').eq(index).text($(this).html()); + } + else { + // var str = $(this).text(); + // $('div.jqplot-target').eq(index).after($('<pre class="code">'+str+'</pre>')); + var pre = $('<pre class="code prettyprint brush: js"></pre>'); + $('div.jqplot-target').eq(index).after(pre); + pre.text($(this).html()); + pre = null; + } + }); + + $('script.common').each(function(index) { + $('pre.common').eq(index).text($(this).html()); + }); + + var elstr=''; + if ($('script.include, link.include').length > 0) { + + if ($('pre.include').length == 0) { + var temp = [ + '<div class="code prettyprint include">', + '<p class="text">The charts on this page depend on the following files:</p>', + '<pre class="include prettyprint brush: html gutter: false"></pre>', + '</div>' + ]; + + temp = $(temp.join('\n')); + $('div.example-content').append(temp); + temp = null; + } + + + $('script.include').each(function(index) { + if (elstr !== '') { + elstr += '\n'; + } + elstr += '<script type="text/javascript" src="'+$(this).attr('src')+'"></script>'; + }); + + $('link.include').each(function(index) { + if (elstr !== '') { + elstr += '\n'; + } + elstr += '<link rel="stylesheet" type="text/css" hrf="'+$(this).attr('href')+'" />'; + }) + + $('pre.include').text(elstr); + } + + else { + $('pre.include').remove(); + $('div.include').remove(); + } + } + + if (!$.jqplot.use_excanvas) { + $('div.jqplot-target').each(function(){ + var outerDiv = $(document.createElement('div')); + var header = $(document.createElement('div')); + var div = $(document.createElement('div')); + + outerDiv.append(header); + outerDiv.append(div); + + outerDiv.addClass('jqplot-image-container'); + header.addClass('jqplot-image-container-header'); + div.addClass('jqplot-image-container-content'); + + header.html('Right Click to Save Image As...'); + + var close = $(document.createElement('a')); + close.addClass('jqplot-image-container-close'); + close.html('Close'); + close.attr('href', '#'); + close.click(function() { + $(this).parents('div.jqplot-image-container').hide(500); + }) + header.append(close); + + $(this).after(outerDiv); + outerDiv.hide(); + + outerDiv = header = div = close = null; + + if (!$.jqplot._noToImageButton) { + var btn = $(document.createElement('button')); + btn.text('View Plot Image'); + btn.addClass('jqplot-image-button'); + btn.bind('click', {chart: $(this)}, function(evt) { + var imgelem = evt.data.chart.jqplotToImageElem(); + var div = $(this).nextAll('div.jqplot-image-container').first(); + div.children('div.jqplot-image-container-content').empty(); + div.children('div.jqplot-image-container-content').append(imgelem); + div.show(500); + div = null; + }); + + $(this).after(btn); + btn.after('<br />'); + btn = null; + } + }); + } + + SyntaxHighlighter.defaults['toolbar'] = true; + SyntaxHighlighter.all(); + + $(document).unload(function() {$('*').unbind(); }); +});
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/example.min.js b/wqflask/wqflask/static/packages/jqplot/examples/example.min.js new file mode 100644 index 00000000..132e2295 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/example.min.js @@ -0,0 +1 @@ +$(document).ready(function(){if(!$.jqplot._noCodeBlock){$("script.code").each(function(c){if($("pre.code").eq(c).length){$("pre.code").eq(c).text($(this).html())}else{var d=$('<pre class="code prettyprint brush: js"></pre>');$("div.jqplot-target").eq(c).after(d);d.text($(this).html());d=null}});$("script.common").each(function(c){$("pre.common").eq(c).text($(this).html())});var b="";if($("script.include, link.include").length>0){if($("pre.include").length==0){var a=['<div class="code prettyprint include">','<p class="text">The charts on this page depend on the following files:</p>','<pre class="include prettyprint brush: html gutter: false"></pre>',"</div>"];a=$(a.join("\n"));$("div.example-content").append(a);a=null}$("script.include").each(function(c){if(b!==""){b+="\n"}b+='<script type="text/javascript" src="'+$(this).attr("src")+'"><\/script>'});$("link.include").each(function(c){if(b!==""){b+="\n"}b+='<link rel="stylesheet" type="text/css" hrf="'+$(this).attr("href")+'" />'});$("pre.include").text(b)}else{$("pre.include").remove();$("div.include").remove()}}if(!$.jqplot.use_excanvas){$("div.jqplot-target").each(function(){var d=$(document.createElement("div"));var g=$(document.createElement("div"));var f=$(document.createElement("div"));d.append(g);d.append(f);d.addClass("jqplot-image-container");g.addClass("jqplot-image-container-header");f.addClass("jqplot-image-container-content");g.html("Right Click to Save Image As...");var e=$(document.createElement("a"));e.addClass("jqplot-image-container-close");e.html("Close");e.attr("href","#");e.click(function(){$(this).parents("div.jqplot-image-container").hide(500)});g.append(e);$(this).after(d);d.hide();d=g=f=e=null;if(!$.jqplot._noToImageButton){var c=$(document.createElement("button"));c.text("View Plot Image");c.addClass("jqplot-image-button");c.bind("click",{chart:$(this)},function(h){var j=h.data.chart.jqplotToImageElem();var i=$(this).nextAll("div.jqplot-image-container").first();i.children("div.jqplot-image-container-content").empty();i.children("div.jqplot-image-container-content").append(j);i.show(500);i=null});$(this).after(c);c.after("<br />");c=null}})}SyntaxHighlighter.defaults.toolbar=true;SyntaxHighlighter.all();$(document).unload(function(){$("*").unbind()})});
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/examples.css b/wqflask/wqflask/static/packages/jqplot/examples/examples.css new file mode 100644 index 00000000..9a084d0c --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/examples.css @@ -0,0 +1,140 @@ +body { + margin:0px; + padding: 0px; + font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; +} + +div.logo { + position: relative; + height: 94px; + padding: 0px; + margin-bottom: 30px; + top: 0px; + background-image: url('./images/logo.jpg'); + background-repeat: no-repeat; + background-color: #292929; +} + +div.nav { + position:relative; + top: 70px; + text-align: right; +} + +a.nav span { + font-size: 11px; + position: relative; + bottom: 2px; +} + +a.nav:visited { + text-decoration: none; + border: 0px; + color: #aaaaaa; +} + +a.nav, a.nav:link { + border: 0px; + text-decoration: none; + font-family: Tahoma, "Helvetica Neue", "Trebuchet MS", Verdana, Arial, sans-serif; + font-size: 16px; + color: #aaaaaa; + margin-right: 11px; +} + +a.nav:hover { + text-decoration: none; + border: 0px; + color: #E0771C; +} + +a.nav:active { + text-decoration: none; + border: 0px; + color: #E0771C; +} + +div.example-content { + margin: 30px 50px; +} + +div.example-nav { + margin-bottom:30px; +} + +pre.code-block{ + background: #D8F4DC; + border: 1px solid rgb(200, 200, 200); + padding-top: 1em; + padding-left: 3em; + padding-bottom: 1em; + margin-top: 1em; + margin-bottom: 3em; + +} + +pre.code { +/* background: #D8F4DC;*/ + border: 1px solid rgb(200, 200, 200); + padding-top: 1em; + padding-left: 3em; + padding-bottom: 1em; + margin-top: 1em; + margin-bottom: 4em; + +} + +div.include { + margin-bottom: 2em; +} + +p { + margin: 2em 0; +} + +.jqplot-image-button { + margin-bottom: 15px; + margin-top: 15px; +} + +div.jqplot-image-container { + position: relative; + z-index: 11; + + margin: auto; + display: none; + background-color: #ffffff; + border: 1px solid #999; + display: inline-block; + margin-top: 25px; +} + +div.jqplot-image-container-header { + font-size: 1.0em; + font-weight: bold; + padding: 5px 15px; + background-color: #eee; +} + +div.jqplot-image-container-content { + padding: 15px; + background-color: #ffffff; +} + +a.jqplot-image-container-close { + float: right; +} + +div.example-plot { + width: 500px; + height: 300px; +} + +.jqplot-table-legend-label { + white-space: nowrap; +} + +div.syntaxhighlighter { + margin-top: 4em !important; + margin-bottom: 3em !important; +}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/examples.min.css b/wqflask/wqflask/static/packages/jqplot/examples/examples.min.css new file mode 100644 index 00000000..e5c93c3a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/examples.min.css @@ -0,0 +1 @@ +body{margin:0;padding:0;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;}div.logo{position:relative;height:94px;padding:0;margin-bottom:30px;top:0;background-image:url('./images/logo.jpg');background-repeat:no-repeat;background-color:#292929;}div.nav{position:relative;top:70px;text-align:right;}a.nav span{font-size:11px;position:relative;bottom:2px;}a.nav:visited{text-decoration:none;border:0;color:#aaa;}a.nav,a.nav:link{border:0;text-decoration:none;font-family:Tahoma,"Helvetica Neue","Trebuchet MS",Verdana,Arial,sans-serif;font-size:16px;color:#aaa;margin-right:11px;}a.nav:hover{text-decoration:none;border:0;color:#E0771C;}a.nav:active{text-decoration:none;border:0;color:#E0771C;}div.example-content{margin:30px 50px;}div.example-nav{margin-bottom:30px;}pre.code-block{background:#D8F4DC;border:1px solid #c8c8c8;padding-top:1em;padding-left:3em;padding-bottom:1em;margin-top:1em;margin-bottom:3em;}pre.code{border:1px solid #c8c8c8;padding-top:1em;padding-left:3em;padding-bottom:1em;margin-top:1em;margin-bottom:4em;}div.include{margin-bottom:2em;}p{margin:2em 0;}.jqplot-image-button{margin-bottom:15px;margin-top:15px;}div.jqplot-image-container{position:relative;z-index:11;margin:auto;display:none;background-color:#fff;border:1px solid #999;display:inline-block;margin-top:25px;}div.jqplot-image-container-header{font-size:1.0em;font-weight:bold;padding:5px 15px;background-color:#eee;}div.jqplot-image-container-content{padding:15px;background-color:#fff;}a.jqplot-image-container-close{float:right;}div.example-plot{width:500px;height:300px;}.jqplot-table-legend-label{white-space:nowrap;}div.syntaxhighlighter{margin-top:4em!important;margin-bottom:3em!important;}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html b/wqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html new file mode 100644 index 00000000..50c2d66a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html @@ -0,0 +1,134 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Charts with Fill Between Lines</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="dateAxisRenderer.html">Previous</a> <a href="./">Examples</a> <a href="hiddenPlotsInTabs.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css" media="screen"> + .jqplot-axis { + font-size: 0.85em; + } + .jqplot-title { + font-size: 1.1em; + } + </style> + + + <div id="chart1" style="margin-top:20px; margin-left:20px; width:600px; height:400px;"></div> + + <p>Enter 2 series to fill between:</p> + + <label for="series1">First Series: </label> + <input type="text" name="series1" value="1" /> + <label for="series2"> Second Series: </label> + <input type="text" name="series2" value="3" /> + <button name="changeFill">Change Fill</button> + + <pre class="code brush:js"></pre> + + + <script class="code" type="text/javascript" language="javascript"> + $(document).ready(function(){ + var l0 = [6, 11, 10, 13, 11, 7]; + var l1 = [3, 6, 7, 7, 5, 3]; + var l2 = [4, 8, 9, 10, 8, 6]; + var l3 = [9, 13, 14, 16, 17, 19]; + var l4 = [15, 17, 16, 18, 13, 11]; + + var plot1 = $.jqplot("chart1", [l0, l1, l2, l3, l4], { + title: "Fill between 2 lines", + axesDefaults: { + pad: 1.05 + }, + ////// + // Use the fillBetween option to control fill between two + // lines on a plot. + ////// + fillBetween: { + // series1: Required, if missing won't fill. + series1: 1, + // series2: Required, if missing won't fill. + series2: 3, + // color: Optional, defaults to fillColor of series1. + color: "rgba(227, 167, 111, 0.7)", + // baseSeries: Optional. Put fill on a layer below this series + // index. Defaults to 0 (first series). If an index higher than 0 is + // used, fill will hide series below it. + baseSeries: 0, + // fill: Optional, defaults to true. False to turn off fill. + fill: true + }, + seriesDefaults: { + rendererOptions: { + ////// + // Turn on line smoothing. By default, a constrained cubic spline + // interpolation algorithm is used which will not overshoot or + // undershoot any data points. + ////// + smooth: true + } + } + }); + + // bind a function to the change button to update the plot's fillBetween series + // and replot(). + $("button[name=changeFill]").click(function(e) { + plot1.fillBetween.series1 = parseInt($("input[name=series1]").val()); + plot1.fillBetween.series2 = parseInt($("input[name=series2]").val()); + plot1.replot(); + }); + }); + </script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html b/wqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html new file mode 100644 index 00000000..1a508baa --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html @@ -0,0 +1,225 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Hidden Plots</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="fillBetweenLines.html">Previous</a> <a href="./">Examples</a> <a href="kcp_area.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css"> + .ui-tabs, .ui-accordion { + width: 690px; + margin: 2em auto; + } + .ui-tabs-nav, .ui-accordion-header { + font-size: 12px; + } + + .ui-tabs-panel, .ui-accordion-content { + font-size: 14px; + } + + .jqplot-target { + font-size: 18px; + } + + ol.description { + list-style-position: inside; + font-size:15px; + margin:1.5em auto; + padding:0 15px; + width:600px; + } + </style> + +<p class="description">This page demonstrates placing plots within jQuery UI widgets. Tab 2 and tab 3 contain plots. Using a combination of alternate sizing specification and the jqplot "replot" method the plots are properly displayed when their containers are shown.</p> + + <p class="description">The alternate sizing specifications for setting plot height and width are needed because a hidden element (or child of a hidden element) has no size. The first example in tab 2 uses custom "data-height" and "data-width" attributes on the plot target element. The second example uses "width" and "height" properties specified on the options object passed into the $.jqplot() function.</p> + + <p class="description">The default plot size is 300px wide by 400px high. The default setting can be overridden by specifying different values to the $.jqplot.config.defaultHeight and $.jqplot.config.defaultWidth properties. Height and width values are taken in this order of precedence: + </p> + + <ol class="description"> + <li>The css properties of the plot target if available (not available with display:none;).</li> + <li>Options object passed into the $.jqplot() function.</li> + <li>Custom data-height and data-width attributes on the plot target.</li> + <li>The config defaults.</li> + </ol> + + <div id="tabs"> + <ul> + <li><a href="#tabs-1">Tab 1</a></li> + <li><a href="#tabs-2">Tab 2</a></li> + <li><a href="#tabs-3">Tab 3</a></li> + </ul> + <div id="tabs-1"> + Tabs 2 and 3 have plots. Since tabs 2 and 3 are initially inactive, their contents (and the plots) are initially hidden. + </div> + + <div id="tabs-2"> + <p>This plot was in an initially hidden container. It's hieght and width are set by the "data-height" and "data-width" properties of the plot container.</p> + <div id="chart1" data-height="260px" data-width="480px" style="margin-top:20px; margin-left:20px;"></div> + </div> + + <div id="tabs-3"> + <p>This plot is in an initially hidden container. It's height and width are set by the 'height' and 'width' properties of the options object passed into the plot constructor.</p> + <div id="chart2" style="margin-top:20px; margin-left:20px;"></div> + </div> + + </div> + + <p class="description">In the accordion below, section 2 contains a plot. Sizing plots in hidden accordion sections is very similar to sizing in a tab widget. Because of the default animation on accordions, however, the plot will not draw itself until the entire accordion panel is shown.</p> + +<div id="accordion" style="margin-top:50px"> + + <h3><a href="#">Section 1</a></h3> + <div> + Here is section 1 there is no plot. Section 2 has a plot that will display once the section is completely shown. + </div> + + <h3><a href="#">Section 2</a></h3> + <div> + <p> + This plot also has it's height and width set with the data-height and data-width attributes. Note, if you want the accordion widget to properly size itself </em>before</em> the plot is shown, you must also specify a css height and width on the plot target. + </p> + <div id="chart3" data-height="200" data-width="400" style="width:400px; height: 200px; margin-top: 20px; margin-left: 20px"></div> + </div> + +</div> + +<p class="description">Code for generating the plots follows. It is critical to bind the callback to the UI widgets "show" or "change" method which calls the plots "replot" method. Without this, the plot won't properly redraw itself when it's container becomes visible.</p> + +<p class="description"> + Note in the ui.index and plot._drawCount properties in the tabsshow callback. ui.index gives the index of the activated tab. plot._drawCount keeps track of how many times the plot was visibly drawn (or redrawn/replotted). Generally, replot only needs to be called the first time the plot is visibly drawn, hence the check for plot._drawCount === 0. + </p> + +<pre class="code brush:js"></pre> + +<script class="code" type="text/javascript"> + $(document).ready(function() { + $.jqplot.config.enablePlugins = false; + + var l1 = [18, 36, 14, 11]; + var l2 = [[2, 14], [7, 2], [8,5]]; + var l3 = [4, 7, 9, 2, 11, 5, 9, 13, 8, 7]; + var l4 = [['peech',3], ['cabbage', 2], ['bean', 4], ['orange', 5]]; + + $("#tabs").tabs(); + $("#accordion").accordion(); + + var plot1 = $.jqplot('chart1', [l1, l2, l3], { + title: "I was hidden", + lengend:{show:true}, + series:[{},{yaxis:'y2axis'}, {yaxis:'y3axis'}], + cursor:{show:true, zoom:true}, + axesDefaults:{useSeriesColor:true, rendererOptions: { alignTicks: true}} + }); + + var plot2 = $.jqplot('chart2', [l4], { + height: 200, + width: 300, + series:[{renderer:$.jqplot.PieRenderer}], + legend:{show:true} + }); + + var catOHLC = [[1, 138.7, 139.68, 135.18, 135.4], + [2, 143.46, 144.66, 139.79, 140.02], + [3, 140.67, 143.56, 132.88, 142.44], + [4, 136.01, 139.5, 134.53, 139.48], + [5, 143.82, 144.56, 136.04, 136.97], + [6, 136.47, 146.4, 136, 144.67], + [7, 124.76, 135.9, 124.55, 135.81], + [8, 123.73, 129.31, 121.57, 122.5]]; + + var ticks = ['Tue', 'Wed', 'Thu', 'Fri', 'Mon', 'Tue', 'Wed', 'Thr']; + + var plot3 = $.jqplot('chart3',[catOHLC],{ + grid:{ drawGridlines:true}, + title: 'A CandleStick Chart', + axes: { + xaxis: { + renderer:$.jqplot.CategoryAxisRenderer, + ticks:ticks + }, + yaxis: { + tickOptions:{formatString:'$%.2f'} + } + }, + series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}] + }); + + $('#tabs').bind('tabsshow', function(event, ui) { + if (ui.index === 1 && plot1._drawCount === 0) { + plot1.replot(); + } + else if (ui.index === 2 && plot2._drawCount === 0) { + plot2.replot(); + } + }); + + $('#accordion').bind('accordionchange', function(event, ui) { + var index = $(this).find("h3").index ( ui.newHeader[0] ); + if (index === 1) { + plot3.replot(); + } + }); + + }); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/images/logo.jpg b/wqflask/wqflask/static/packages/jqplot/examples/images/logo.jpg Binary files differnew file mode 100644 index 00000000..a12fffcd --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/images/logo.jpg diff --git a/wqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.png b/wqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.png Binary files differnew file mode 100644 index 00000000..e244c689 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/index.html b/wqflask/wqflask/static/packages/jqplot/examples/index.html new file mode 100644 index 00000000..2947604a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/index.html @@ -0,0 +1,108 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>jqPlot Sample Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> +<!-- Index content goes here --> + +<style type="text/css"> + + p.example-link { + margin-top: 0.5em; + margin-bottom: 0.5em; + margin-left: 120px; + } + +</style> + +<div class="example-links"> + +<p class="example-link"><a class="example-link" href="area.html">Filled (Area) Charts</a></p> +<p class="example-link"><a class="example-link" href="axisLabelTests.html">Line Charts and Options</a></p> +<p class="example-link"><a class="example-link" href="axisLabelsRotatedText.html">Axis Labels and Rotated Text</a></p> +<p class="example-link"><a class="example-link" href="axisScalingForceTickAt.html">Force Plot to Have Tick at 0 or 100</a></p> +<p class="example-link"><a class="example-link" href="bandedLine.html">Error Bands and Confidence Intervals</a></p> +<p class="example-link"><a class="example-link" href="bar-charts.html">Vertical and Horizontal Bar Charts</a></p> +<p class="example-link"><a class="example-link" href="barLineAnimated.html">Animated Charts</a></p> +<p class="example-link"><a class="example-link" href="barTest.html">Bar Charts</a></p> +<p class="example-link"><a class="example-link" href="bezierCurve.html">Bezier Curve Plots</a></p> +<p class="example-link"><a class="example-link" href="blockPlot.html">Block Plots</a></p> +<p class="example-link"><a class="example-link" href="bubble-plots.html">Bubble Plots</a></p> +<p class="example-link"><a class="example-link" href="bubbleChart.html">Bubble Charts</a></p> +<p class="example-link"><a class="example-link" href="candlestick-charts.html">Open Hi Low Close and Candlestick Charts</a></p> +<p class="example-link"><a class="example-link" href="candlestick.html">Candlestick and Open Hi Low Close charts</a></p> +<p class="example-link"><a class="example-link" href="canvas-overlay.html">Draw Lines on Plots - Canvas Overlay</a></p> +<p class="example-link"><a class="example-link" href="cursor-highlighter.html">Data Point Highlighting, Tooltips and Cursor Tracking</a></p> +<p class="example-link"><a class="example-link" href="customHighlighterCursorTrendline.html">Highlighting, Dragging Points, Cursor and Trend Lines.</a></p> +<p class="example-link"><a class="example-link" href="dashboardWidget.html">Animated Dashboard Sample - Filled Line with Log Axis</a></p> +<p class="example-link"><a class="example-link" href="dashedLines.html">Dashed Lines with Smoothing</a></p> +<p class="example-link"><a class="example-link" href="data-renderers.html">AJAX and JSON Data Loading via Data Renderers</a></p> +<p class="example-link"><a class="example-link" href="date-axes.html">Date Axes</a></p> +<p class="example-link"><a class="example-link" href="dateAxisLogAxisZooming.html">Zooming with Date and Log Axes</a></p> +<p class="example-link"><a class="example-link" href="dateAxisRenderer.html">Date Axes</a></p> +<p class="example-link"><a class="example-link" href="fillBetweenLines.html">Charts with Fill Between Lines</a></p> +<p class="example-link"><a class="example-link" href="hiddenPlotsInTabs.html">Hidden Plots</a></p> +<p class="example-link"><a class="example-link" href="kcp_area.html">Area Chart</a></p> +<p class="example-link"><a class="example-link" href="kcp_area2.html">Area Chart 2</a></p> +<p class="example-link"><a class="example-link" href="kcp_cdf.html">Cumulative Density Function Chart</a></p> +<p class="example-link"><a class="example-link" href="kcp_engel.html">Engel Curves</a></p> +<p class="example-link"><a class="example-link" href="kcp_lorenz.html">Lorenz Curves</a></p> +<p class="example-link"><a class="example-link" href="kcp_pdf.html">Probability Density Function Chart</a></p> +<p class="example-link"><a class="example-link" href="kcp_pyramid.html">Pyramid Charts</a></p> +<p class="example-link"><a class="example-link" href="kcp_pyramid2.html">Pyramid Charts 2</a></p> +<p class="example-link"><a class="example-link" href="kcp_pyramid_by_age.html">Pyramid Chart By Age</a></p> +<p class="example-link"><a class="example-link" href="kcp_quintiles.html">Quintile Pyramid Charts</a></p> +<p class="example-link"><a class="example-link" href="line-charts.html">Line Charts and Options</a></p> +<p class="example-link"><a class="example-link" href="mekkoCharts.html">Mekko Charts</a></p> +<p class="example-link"><a class="example-link" href="meritOrder.html">Merit Order Charts</a></p> +<p class="example-link"><a class="example-link" href="meterGauge.html">Meter Gauge</a></p> +<p class="example-link"><a class="example-link" href="multipleBarColors.html">Bar Colors Example</a></p> +<p class="example-link"><a class="example-link" href="pie-donut-charts.html">Pie and Donut Charts</a></p> +<p class="example-link"><a class="example-link" href="pieTest.html">Pie Charts and Options</a></p> +<p class="example-link"><a class="example-link" href="pieTest4.html">Pie Charts and Options 2</a></p> +<p class="example-link"><a class="example-link" href="point-labels.html">Data Point labels</a></p> +<p class="example-link"><a class="example-link" href="resizablePlot.html">Resizable Plots</a></p> +<p class="example-link"><a class="example-link" href="rotated-tick-labels.html">Rotated Labels and Font Styling</a></p> +<p class="example-link"><a class="example-link" href="rotatedTickLabelsZoom.html">Date Axes, Rotated Labels and Zooming</a></p> +<p class="example-link"><a class="example-link" href="selectorSyntax.html">Plot Creation with jQuery Selectors</a></p> +<p class="example-link"><a class="example-link" href="smoothedLine.html">Smoothed Lines</a></p> +<p class="example-link"><a class="example-link" href="theming.html">Chart Theming</a></p> +<p class="example-link"><a class="example-link" href="waterfall.html">Waterfall Charts</a></p> +<p class="example-link"><a class="example-link" href="waterfall2.html">Waterfall charts 2</a></p> +<p class="example-link"><a class="example-link" href="zoom1.html">Zooming</a></p> +<p class="example-link"><a class="example-link" href="zoomOptions.html">Zoom Options</a></p> +<p class="example-link"><a class="example-link" href="zoomProxy.html">Zoom Proxy - Control one plot from another</a></p> +<p class="example-link"><a class="example-link" href="zooming.html">Plot Zooming and Cursor Control</a></p> + +</div> + +<!-- End Index content --> + + + </div> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png Binary files differnew file mode 100644 index 00000000..5b5dab2a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png Binary files differnew file mode 100644 index 00000000..ac8b229a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png Binary files differnew file mode 100644 index 00000000..ad3d6346 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png Binary files differnew file mode 100644 index 00000000..42ccba26 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png Binary files differnew file mode 100644 index 00000000..5a46b47c --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png Binary files differnew file mode 100644 index 00000000..86c2baa6 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png Binary files differnew file mode 100644 index 00000000..4443fdc1 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png Binary files differnew file mode 100644 index 00000000..7c9fa6c6 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png Binary files differnew file mode 100644 index 00000000..b273ff11 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png Binary files differnew file mode 100644 index 00000000..09d1cdc8 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png Binary files differnew file mode 100644 index 00000000..59bd45b9 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png Binary files differnew file mode 100644 index 00000000..6d02426c --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png Binary files differnew file mode 100644 index 00000000..2ab019b7 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css new file mode 100644 index 00000000..0f1a7e77 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css @@ -0,0 +1,568 @@ +/* + * jQuery UI CSS Framework 1.8.16 + * + * 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.16 + * + * 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=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,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: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; 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 #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; 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 #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_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 #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.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_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_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: 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: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Resizable 1.8.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css new file mode 100644 index 00000000..08821f53 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css @@ -0,0 +1 @@ +.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);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget{font-family:Verdana,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:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;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 #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_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 #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.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;}.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_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}.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{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;}.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;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.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;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.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;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.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;}.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;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.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;}input.ui-button{padding:.4em 1em;}.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;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.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;}.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;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.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;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.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;}.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:0;}.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;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.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/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png Binary files differnew file mode 100644 index 00000000..954e22db --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png Binary files differnew file mode 100644 index 00000000..64ece570 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png Binary files differnew file mode 100644 index 00000000..abdc0108 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png Binary files differnew file mode 100644 index 00000000..9b383f4d --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png Binary files differnew file mode 100644 index 00000000..a23baad2 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png Binary files differnew file mode 100644 index 00000000..42ccba26 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png Binary files differnew file mode 100644 index 00000000..39d5824d --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png Binary files differnew file mode 100644 index 00000000..f1273672 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png Binary files differnew file mode 100644 index 00000000..359397ac --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png Binary files differnew file mode 100644 index 00000000..a641a371 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png Binary files differnew file mode 100644 index 00000000..85e63e9f --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png Binary files differnew file mode 100644 index 00000000..e117effa --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png Binary files differnew file mode 100644 index 00000000..42f8f992 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css new file mode 100644 index 00000000..cd66d537 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css @@ -0,0 +1,612 @@ +/* + * jQuery UI CSS Framework 1.9pre + * + * 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 Accordion 1.9pre + * + * 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-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-heading { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-heading { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-accordion-header-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.9pre + * + * 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 Button 1.9pre + * + * 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 Datepicker 1.9pre + * + * 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 Dialog 1.9pre + * + * 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 Menu 1.9pre + * + * 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/Menu#theming + */ +.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; } +.ui-menu .ui-menu { margin-top: -3px; position: absolute; } +.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; } +.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; } +.ui-menu .ui-menu-item a.ui-state-focus, +.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; } + +.ui-menu li.ui-state-disabled { font-weight: normal; padding: .0em .4em; margin: .4em 0 .2em; line-height: 1.5; } + +/* icon support */ +.ui-menu-icons { position: relative; } +.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; } + +/* left-aligned */ +.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; } + +/* right-aligned */ +.ui-menu .ui-menu-icon { position: static; float: right; } +/* + * jQuery UI Menubar 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + */ +.ui-menubar { list-style: none; margin: 0; padding-left: 0; } + +.ui-menubar-item { float: left; } + +.ui-menubar .ui-button { float: left; font-weight: normal; border-top-width: 0 !important; border-bottom-width: 0 !important; margin: 0; outline: none; } +.ui-menubar .ui-menubar-link { border-right: 1px dashed transparent; border-left: 1px dashed transparent; } + +.ui-menubar .ui-menu { width: 200px; position: absolute; z-index: 9999; } +/* + * jQuery UI Progressbar 1.9pre + * + * 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; overflow: hidden; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* + * jQuery UI Resizable 1.9pre + * + * 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.9pre + * + * 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 Slider 1.9pre + * + * 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 Spinner 1.9pre + * + * 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/Spinner#theming + */ +.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; } +.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; } +.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; z-index: 100; text-align: center; vertical-align: middle; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; } +.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */ +.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */ +.ui-spinner-up { top: 0; } +.ui-spinner-down { bottom: 0; } + +/* TR overrides */ +span.ui-spinner { background: none; } +.ui-spinner .ui-icon-triangle-1-s { + /* need to fix icons sprite */ + background-position:-65px -16px; +} +/* + * jQuery UI Tabs 1.9pre + * + * 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: 0; margin: 1px .2em 0 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-active { margin-bottom: -1px; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active 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; } +/* + * jQuery UI Tooltip 1.9pre + * + * 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/Tooltip#theming + */ +.ui-tooltip { + padding:8px; + position:absolute; + z-index:9999; + -o-box-shadow: 0 0 5px #aaa; + -moz-box-shadow: 0 0 5px #aaa; + -webkit-box-shadow: 0 0 5px #aaa; + box-shadow: 0 0 5px #aaa; +} +/* Fades and background-images don't work well together in IE6, drop the image */ +* html .ui-tooltip { + background-image: none; +} +body .ui-tooltip { border-width:2px; } +/* + * jQuery UI CSS Framework 1.9pre + * + * 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/ + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } +.ui-widget-content a { color: #222222/*{fcContent}*/; } +.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } +.ui-widget-header a { color: #222222/*{fcHeader}*/; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; 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 #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; 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 #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } +.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)/*{iconsContent}*/; } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } + +/* 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-on { background-position: -96px -144px; } +.ui-icon-radio-off { 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/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } +.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css new file mode 100644 index 00000000..56a9be11 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css @@ -0,0 +1,10 @@ +/* + * jQuery UI CSS Framework 1.9pre + * + * 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 + */ +.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);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-heading{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-heading{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-accordion-header-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;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.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;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.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;}input.ui-button{padding:.4em 1em;}.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;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.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;}.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:0;}.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;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.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;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none;}.ui-menu .ui-menu{margin-top:-3px;position:absolute;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal;}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-menu li.ui-state-disabled{font-weight:normal;padding:.0em .4em;margin:.4em 0 .2em;line-height:1.5;}.ui-menu-icons{position:relative;}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em;}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em;}.ui-menu .ui-menu-icon{position:static;float:right;}.ui-menubar{list-style:none;margin:0;padding-left:0;}.ui-menubar-item{float:left;}.ui-menubar .ui-button{float:left;font-weight:normal;border-top-width:0!important;border-bottom-width:0!important;margin:0;outline:none;}.ui-menubar .ui-menubar-link{border-right:1px dashed transparent;border-left:1px dashed transparent;}.ui-menubar .ui-menu{width:200px;position:absolute;z-index:9999;}.ui-progressbar{height:2em;text-align:left;overflow:hidden;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.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;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.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;}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle;}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px;}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;z-index:100;text-align:center;vertical-align:middle;position:absolute;cursor:default;display:block;overflow:hidden;right:0;}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none;}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0;}.ui-spinner-up{top:0;}.ui-spinner-down{bottom:0;}span.ui-spinner{background:none;}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.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:0;margin:1px .2em 0 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-active{margin-bottom:-1px;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}* html .ui-tooltip{background-image:none;}body .ui-tooltip{border-width:2px;}.ui-widget{font-family:Verdana,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:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;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 #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_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 #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.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;}.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_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}.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-on{background-position:-96px -144px;}.ui-icon-radio-off{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{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;}.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;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css new file mode 100644 index 00000000..5547c7b9 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css @@ -0,0 +1,568 @@ +/* + * jQuery UI CSS Framework 1.8.16 + * + * 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.16 + * + * 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: 1.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: #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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css new file mode 100644 index 00000000..78f7d3d0 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css @@ -0,0 +1 @@ +.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);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,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:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #ddd;background:#eee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;color:#333;}.ui-widget-content a{color:#333;}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold;}.ui-widget-header a{color:#fff;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;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:#fff 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;}.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:#fff;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff;}.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;}.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);}.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{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;}.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;}.ui-widget-overlay{background:#666 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:#000 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;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.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;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.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;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.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;}.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;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.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;}input.ui-button{padding:.4em 1em;}.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;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.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;}.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;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.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;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.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;}.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:0;}.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;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.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/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js new file mode 100644 index 00000000..5ca2642d --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js @@ -0,0 +1,473 @@ +/*! + * jQuery UI 1.9pre + * + * 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(a,g){function d(e,f){var i=e.nodeName.toLowerCase();if("area"===i){i=e.parentNode;var b=i.name;if(!e.href||!b||i.nodeName.toLowerCase()!=="map")return false;i=a("img[usemap=#"+b+"]")[0];return!!i&&c(i)}return(/input|select|textarea|button|object/.test(i)?!e.disabled:"a"==i?e.href||f:f)&&c(e)}function c(e){return!a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(!a.ui.version){a.extend(a.ui,{version:"1.9pre", +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}});a.fn.extend({_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var i=this;setTimeout(function(){a(i).focus(); +f&&f.call(i)},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;e=a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this, +"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!e.length?a(document):e},zIndex:function(e){if(e!==g)return this.css("zIndex",e);if(this.length){e=a(this[0]);for(var f;e.length&&e[0]!==document;){f=e.css("position");if(f==="absolute"||f==="relative"||f==="fixed"){f=parseInt(e.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}e=e.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", +function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(e,f){function i(l,j,m,n){a.each(b,function(){j-=parseFloat(a.curCSS(l,"padding"+this,true))||0;if(m)j-=parseFloat(a.curCSS(l,"border"+this+"Width",true))||0;if(n)j-=parseFloat(a.curCSS(l,"margin"+this,true))||0});return j}var b=f==="Width"?["Left","Right"]:["Top","Bottom"],h=f.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth, +outerHeight:a.fn.outerHeight};a.fn["inner"+f]=function(l){if(l===g)return k["inner"+f].call(this);return this.each(function(){a(this).css(h,i(this,l)+"px")})};a.fn["outer"+f]=function(l,j){if(typeof l!=="number")return k["outer"+f].call(this,l);return this.each(function(){a(this).css(h,i(this,l,true,j)+"px")})}});a.extend(a.expr[":"],{data:function(e,f,i){return!!a.data(e,i[3])},focusable:function(e){return d(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(e){var f=a.attr(e,"tabindex"),i=isNaN(f); +return(i||f>=0)&&d(e,!i)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart"in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(e,f,i){e=a.ui[e].prototype;for(var b in i){e.plugins[b]=e.plugins[b]||[];e.plugins[b].push([f,i[b]])}},call:function(e,f,i){if((f=e.plugins[f])&&e.element[0].parentNode)for(var b= +0;b<f.length;b++)e.options[f[b][0]]&&f[b][1].apply(e.element,i)}},contains:a.contains,hasScroll:function(e,f){if(a(e).css("overflow")==="hidden")return false;var i=f&&f==="left"?"scrollLeft":"scrollTop",b=false;if(e[i]>0)return true;e[i]=1;b=e[i]>0;e[i]=0;return b},isOverAxis:function(e,f,i){return e>f&&e<f+i},isOver:function(e,f,i,b,h,k){return a.ui.isOverAxis(e,i,h)&&a.ui.isOverAxis(f,b,k)}})}})(jQuery); +(function(a,g){var d=Array.prototype.slice,c=a.cleanData;a.cleanData=function(e){for(var f=0,i;(i=e[f])!=null;f++)try{a(i).triggerHandler("remove")}catch(b){}c(e)};a.widget=function(e,f,i){var b=e.split(".")[0],h;e=e.split(".")[1];h=b+"-"+e;if(!i){i=f;f=a.Widget}a.expr[":"][h]=function(l){return!!a.data(l,e)};a[b]=a[b]||{};a[b][e]=a.extend(function(l,j){if(!this._createWidget)return new a[b][e](l,j);arguments.length&&this._createWidget(l,j)},a[b][e],{version:i.version});var k=new f;k.options=a.widget.extend({}, +k.options);a.each(i,function(l,j){if(a.isFunction(j))i[l]=function(){var m=function(o){return f.prototype[o].apply(this,d.call(arguments,1))},n=function(o,p){return f.prototype[o].apply(this,p)};return function(){var o=this._super,p=this._superApply,q;this._super=m;this._superApply=n;q=j.apply(this,arguments);this._super=o;this._superApply=p;return q}}()});a[b][e].prototype=a.widget.extend(k,{namespace:b,widgetName:e,widgetEventPrefix:e,widgetBaseClass:h},i);a.widget.bridge(e,a[b][e])};a.widget.extend= +function(e){for(var f=d.call(arguments,1),i=0,b=f.length,h,k;i<b;i++)for(h in f[i]){k=f[i][h];if(f[i].hasOwnProperty(h)&&k!==g)e[h]=a.isPlainObject(k)?a.widget.extend({},e[h],k):k}return e};a.widget.bridge=function(e,f){a.fn[e]=function(i){var b=typeof i==="string",h=d.call(arguments,1),k=this;i=!b&&h.length?a.widget.extend.apply(null,[i].concat(h)):i;b?this.each(function(){var l=a.data(this,e);if(!l)return a.error("cannot call methods on "+e+" prior to initialization; attempted to call method '"+ +i+"'");if(!a.isFunction(l[i])||i.charAt(0)==="_")return a.error("no such method '"+i+"' for "+e+" widget instance");var j=l[i].apply(l,h);if(j!==l&&j!==g){k=j&&j.jquery?k.pushStack(j.get()):j;return false}}):this.each(function(){var l=a.data(this,e);l?l.option(i||{})._init():f(i,this)});return k}};a.Widget=function(e,f){if(!this._createWidget)return new a[namespace][name](e,f);arguments.length&&this._createWidget(e,f)};a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>", +options:{disabled:false,create:null},_createWidget:function(e,f){f=a(f||this.defaultElement||this)[0];this.element=a(f);this.options=a.widget.extend({},this.options,this._getCreateOptions(),e);this.bindings=a();this.hoverable=a();this.focusable=a();if(f!==this){a.data(f,this.widgetName,this);this._bind({remove:"destroy"})}this._create();this._trigger("create");this._init()},_getCreateOptions:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy();this.element.unbind("."+this.widgetName).removeData(this.widgetName); +this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled");this.bindings.unbind("."+this.widgetName);this.hoverable.removeClass("ui-state-hover");this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(e,f){var i=e,b,h,k;if(arguments.length===0)return a.widget.extend({},this.options);if(typeof e==="string"){i={};b=e.split(".");e=b.shift();if(b.length){h=i[e]=a.widget.extend({}, +this.options[e]);for(k=0;k<b.length-1;k++){h[b[k]]=h[b[k]]||{};h=h[b[k]]}e=b.pop();if(f===g)return h[e]===g?null:h[e];h[e]=f}else{if(f===g)return this.options[e]===g?null:this.options[e];i[e]=f}}this._setOptions(i);return this},_setOptions:function(e){var f=this;a.each(e,function(i,b){f._setOption(i,b)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget().toggleClass(this.widgetBaseClass+"-disabled ui-state-disabled",!!f).attr("aria-disabled",f);this.hoverable.removeClass("ui-state-hover"); +this.focusable.removeClass("ui-state-focus")}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_bind:function(e,f){if(f){e=a(e);this.bindings=this.bindings.add(e)}else{f=e;e=this.element}var i=this;a.each(f,function(b,h){function k(){if(!(i.options.disabled===true||a(this).hasClass("ui-state-disabled")))return(typeof h==="string"?i[h]:h).apply(i,arguments)}var l=b.match(/^(\w+)\s*(.*)$/),j=l[1]+"."+i.widgetName;(l= +l[2])?i.widget().delegate(l,j,k):e.bind(j,k)})},_delay:function(e,f){var i=this;return setTimeout(function(){return(typeof e==="string"?i[e]:e).apply(i,arguments)},f||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e);this._bind(e,{mouseenter:function(f){a(f.currentTarget).addClass("ui-state-hover")},mouseleave:function(f){a(f.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e);this._bind(e,{focusin:function(f){a(f.currentTarget).addClass("ui-state-focus")}, +focusout:function(f){a(f.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,f,i){var b=this.options[e];f=a.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();i=i||{};if(f.originalEvent){e=a.event.props.length;for(var h;e;){h=a.event.props[--e];f[h]=f.originalEvent[h]}}this.element.trigger(f,i);i=a.isArray(i)?[f].concat(i):[f,i];return!(a.isFunction(b)&&b.apply(this.element[0],i)===false||f.isDefaultPrevented())}};a.each({show:"fadeIn",hide:"fadeOut"}, +function(e,f){a.Widget.prototype["_"+e]=function(i,b,h){if(typeof b==="string")b={effect:b};var k,l=!b?e:b===true||typeof b==="number"?f:b.effect||f;b=b||{};if(typeof b==="number")b={duration:b};k=!a.isEmptyObject(b);b.complete=h;b.delay&&i.delay(b.delay);if(k&&a.effects&&(a.effects.effect[l]||a.uiBackCompat!==false&&a.effects[l]))i[e](b);else if(l!==e&&i[l])i[l](b.duration,b.easing,h);else i.queue(function(j){a(this)[e]();h&&h.call(i[0]);j()})}});if(a.uiBackCompat!==false)a.Widget.prototype._getCreateOptions= +function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]}})(jQuery); +(function(a){var g=false;a(document).mouseup(function(){g=false});a.widget("ui.mouse",{version:"1.9pre",options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(c){return d._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===a.data(c.target,d.widgetName+".preventClickEvent")){a.removeData(c.target,d.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false}, +_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(d){if(!g){this._mouseStarted&&this._mouseUp(d);this._mouseDownEvent=d;var c=this,e=d.which==1,f=typeof this.options.cancel=="string"&&d.target.nodeName?a(d.target).closest(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(d))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(d)&& +this._mouseDelayMet(d)){this._mouseStarted=this._mouseStart(d)!==false;if(!this._mouseStarted){d.preventDefault();return true}}true===a.data(d.target,this.widgetName+".preventClickEvent")&&a.removeData(d.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(i){return c._mouseMove(i)};this._mouseUpDelegate=function(i){return c._mouseUp(i)};a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);d.preventDefault(); +return g=true}},_mouseMove:function(d){if(a.browser.msie&&!(document.documentMode>=9)&&!d.button)return this._mouseUp(d);if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,d)!==false)?this._mouseDrag(d):this._mouseUp(d);return!this._mouseStarted},_mouseUp:function(d){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName, +this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;d.target==this._mouseDownEvent.target&&a.data(d.target,this.widgetName+".preventClickEvent",true);this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +(function(a){a.widget("ui.draggable",a.ui.mouse,{version:"1.9pre",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(g){var d= +this.options;if(this.helper||d.disabled||a(g.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(g);if(!this.handle)return false;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(a(this).offset()).appendTo("body")});return true},_mouseStart:function(g){var d=this.options;this.helper= +this._createHelper(g);this._cacheHelperProportions();if(a.ui.ddmanager)a.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};a.extend(this.offset,{click:{left:g.pageX-this.offset.left,top:g.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); +this.originalPosition=this.position=this._generatePosition(g);this.originalPageX=g.pageX;this.originalPageY=g.pageY;d.cursorAt&&this._adjustOffsetFromHelper(d.cursorAt);d.containment&&this._setContainment();if(this._trigger("start",g)===false){this._clear();return false}this._cacheHelperProportions();a.ui.ddmanager&&!d.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,g);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(g,true);a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,g);return true}, +_mouseDrag:function(g,d){this.position=this._generatePosition(g);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();if(this._trigger("drag",g,c)===false){this._mouseUp({});return false}this.position=c.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";a.ui.ddmanager&&a.ui.ddmanager.drag(this,g);return false},_mouseStop:function(g){var d= +false;if(a.ui.ddmanager&&!this.options.dropBehaviour)d=a.ui.ddmanager.drop(this,g);if(this.dropped){d=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!d||this.options.revert=="valid"&&d||this.options.revert===true||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d)){var c=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",g)!== +false&&c._clear()})}else this._trigger("stop",g)!==false&&this._clear();return false},_mouseUp:function(g){this.options.iframeFix===true&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,g);return a.ui.mouse.prototype._mouseUp.call(this,g)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(g){var d=!this.options.handle||!a(this.options.handle,this.element).length? +true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==g.target)d=true});return d},_createHelper:function(g){var d=this.options;g=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[g])):d.helper=="clone"?this.element.clone().removeAttr("id"):this.element;g.parents("body").length||g.appendTo(d.appendTo=="parent"?this.element[0].parentNode:d.appendTo);g[0]!=this.element[0]&&!/(fixed|absolute)/.test(g.css("position"))&&g.css("position","absolute");return g}, +_adjustOffsetFromHelper:function(g){if(typeof g=="string")g=g.split(" ");if(a.isArray(g))g={left:+g[0],top:+g[1]||0};if("left"in g)this.offset.click.left=g.left+this.margins.left;if("right"in g)this.offset.click.left=this.helperProportions.width-g.right+this.margins.left;if("top"in g)this.offset.click.top=g.top+this.margins.top;if("bottom"in g)this.offset.click.top=this.helperProportions.height-g.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var g= +this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0])){g.left+=this.scrollParent.scrollLeft();g.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)g={top:0,left:0};return{top:g.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:g.left+(parseInt(this.offsetParent.css("borderLeftWidth"), +10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var g=this.element.position();return{top:g.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:g.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 g=this.options;if(g.containment=="parent")g.containment=this.helper[0].parentNode;if(g.containment=="document"||g.containment=="window")this.containment=[g.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,g.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, +(g.containment=="document"?0:a(window).scrollLeft())+a(g.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(g.containment=="document"?0:a(window).scrollTop())+(a(g.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(g.containment)&&g.containment.constructor!=Array){g=a(g.containment);var d=g[0];if(d){g.offset();var c=a(d).css("overflow")!= +"hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(c?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"), +10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=g}}else if(g.containment.constructor==Array)this.containment=g.containment},_convertPositionTo:function(g,d){if(!d)d=this.position;var c=g=="absolute"?1:-1,e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(e[0].tagName);return{top:d.top+ +this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:e.scrollTop())*c),left:d.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*c)}},_generatePosition:function(g){var d=this.options,c=this.cssPosition=="absolute"&& +!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName),f=g.pageX,i=g.pageY;if(this.originalPosition){var b;if(this.containment){if(this.relative_container){b=this.relative_container.offset();b=[this.containment[0]+b.left,this.containment[1]+b.top,this.containment[2]+b.left,this.containment[3]+b.top]}else b=this.containment;if(g.pageX-this.offset.click.left<b[0])f=b[0]+this.offset.click.left;if(g.pageY- +this.offset.click.top<b[1])i=b[1]+this.offset.click.top;if(g.pageX-this.offset.click.left>b[2])f=b[2]+this.offset.click.left;if(g.pageY-this.offset.click.top>b[3])i=b[3]+this.offset.click.top}if(d.grid){i=d.grid[1]?this.originalPageY+Math.round((i-this.originalPageY)/d.grid[1])*d.grid[1]:this.originalPageY;i=b?!(i-this.offset.click.top<b[1]||i-this.offset.click.top>b[3])?i:!(i-this.offset.click.top<b[1])?i-d.grid[1]:i+d.grid[1]:i;f=d.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/d.grid[0])* +d.grid[0]:this.originalPageX;f=b?!(f-this.offset.click.left<b[0]||f-this.offset.click.left>b[2])?f:!(f-this.offset.click.left<b[0])?f-d.grid[0]:f+d.grid[0]:f}}return{top:i-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version< +526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?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(g,d,c){c=c||this._uiHash();a.ui.plugin.call(this,g,[d,c]);if(g=="drag")this.positionAbs=this._convertPositionTo("absolute");return a.Widget.prototype._trigger.call(this,g,d, +c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});a.ui.plugin.add("draggable","connectToSortable",{start:function(g,d){var c=a(this).data("draggable"),e=c.options,f=a.extend({},d,{item:c.element});c.sortables=[];a(e.connectToSortable).each(function(){var i=a.data(this,"sortable");if(i&&!i.options.disabled){c.sortables.push({instance:i,shouldRevert:i.options.revert});i.refreshPositions();i._trigger("activate", +g,f)}})},stop:function(g,d){var c=a(this).data("draggable"),e=a.extend({},d,{item:c.element});a.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(g);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",g,e)}})},drag:function(g,d){var c=a(this).data("draggable"),e=this;a.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=a(e).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 d.helper[0]};g.target=this.instance.currentItem[0];this.instance._mouseCapture(g,true);this.instance._mouseStart(g,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",g);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(g)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",g,this.instance._uiHash(this.instance));this.instance._mouseStop(g,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&& +this.instance.placeholder.remove();c._trigger("fromSortable",g);c.dropped=false}})}});a.ui.plugin.add("draggable","cursor",{start:function(){var g=a("body"),d=a(this).data("draggable").options;if(g.css("cursor"))d._cursor=g.css("cursor");g.css("cursor",d.cursor)},stop:function(){var g=a(this).data("draggable").options;g._cursor&&a("body").css("cursor",g._cursor)}});a.ui.plugin.add("draggable","opacity",{start:function(g,d){var c=a(d.helper),e=a(this).data("draggable").options;if(c.css("opacity"))e._opacity= +c.css("opacity");c.css("opacity",e.opacity)},stop:function(g,d){var c=a(this).data("draggable").options;c._opacity&&a(d.helper).css("opacity",c._opacity)}});a.ui.plugin.add("draggable","scroll",{start:function(){var g=a(this).data("draggable");if(g.scrollParent[0]!=document&&g.scrollParent[0].tagName!="HTML")g.overflowOffset=g.scrollParent.offset()},drag:function(g){var d=a(this).data("draggable"),c=d.options,e=false;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!= +"x")if(d.overflowOffset.top+d.scrollParent[0].offsetHeight-g.pageY<c.scrollSensitivity)d.scrollParent[0].scrollTop=e=d.scrollParent[0].scrollTop+c.scrollSpeed;else if(g.pageY-d.overflowOffset.top<c.scrollSensitivity)d.scrollParent[0].scrollTop=e=d.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(d.overflowOffset.left+d.scrollParent[0].offsetWidth-g.pageX<c.scrollSensitivity)d.scrollParent[0].scrollLeft=e=d.scrollParent[0].scrollLeft+c.scrollSpeed;else if(g.pageX-d.overflowOffset.left< +c.scrollSensitivity)d.scrollParent[0].scrollLeft=e=d.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(g.pageY-a(document).scrollTop()<c.scrollSensitivity)e=a(document).scrollTop(a(document).scrollTop()-c.scrollSpeed);else if(a(window).height()-(g.pageY-a(document).scrollTop())<c.scrollSensitivity)e=a(document).scrollTop(a(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(g.pageX-a(document).scrollLeft()<c.scrollSensitivity)e=a(document).scrollLeft(a(document).scrollLeft()- +c.scrollSpeed);else if(a(window).width()-(g.pageX-a(document).scrollLeft())<c.scrollSensitivity)e=a(document).scrollLeft(a(document).scrollLeft()+c.scrollSpeed)}e!==false&&a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,g)}});a.ui.plugin.add("draggable","snap",{start:function(){var g=a(this).data("draggable"),d=g.options;g.snapElements=[];a(d.snap.constructor!=String?d.snap.items||":data(draggable)":d.snap).each(function(){var c=a(this),e=c.offset();this!=g.element[0]&&g.snapElements.push({item:this, +width:c.outerWidth(),height:c.outerHeight(),top:e.top,left:e.left})})},drag:function(g,d){for(var c=a(this).data("draggable"),e=c.options,f=e.snapTolerance,i=d.offset.left,b=i+c.helperProportions.width,h=d.offset.top,k=h+c.helperProportions.height,l=c.snapElements.length-1;l>=0;l--){var j=c.snapElements[l].left,m=j+c.snapElements[l].width,n=c.snapElements[l].top,o=n+c.snapElements[l].height;if(j-f<i&&i<m+f&&n-f<h&&h<o+f||j-f<i&&i<m+f&&n-f<k&&k<o+f||j-f<b&&b<m+f&&n-f<h&&h<o+f||j-f<b&&b<m+f&&n-f<k&& +k<o+f){if(e.snapMode!="inner"){var p=Math.abs(n-k)<=f,q=Math.abs(o-h)<=f,u=Math.abs(j-b)<=f,s=Math.abs(m-i)<=f;if(p)d.position.top=c._convertPositionTo("relative",{top:n-c.helperProportions.height,left:0}).top-c.margins.top;if(q)d.position.top=c._convertPositionTo("relative",{top:o,left:0}).top-c.margins.top;if(u)d.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)d.position.left=c._convertPositionTo("relative",{top:0,left:m}).left-c.margins.left}var r= +p||q||u||s;if(e.snapMode!="outer"){p=Math.abs(n-h)<=f;q=Math.abs(o-k)<=f;u=Math.abs(j-i)<=f;s=Math.abs(m-b)<=f;if(p)d.position.top=c._convertPositionTo("relative",{top:n,left:0}).top-c.margins.top;if(q)d.position.top=c._convertPositionTo("relative",{top:o-c.helperProportions.height,left:0}).top-c.margins.top;if(u)d.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)d.position.left=c._convertPositionTo("relative",{top:0,left:m-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[l].snapping&& +(p||q||u||s||r))c.options.snap.snap&&c.options.snap.snap.call(c.element,g,a.extend(c._uiHash(),{snapItem:c.snapElements[l].item}));c.snapElements[l].snapping=p||q||u||s||r}else{c.snapElements[l].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,g,a.extend(c._uiHash(),{snapItem:c.snapElements[l].item}));c.snapElements[l].snapping=false}}}});a.ui.plugin.add("draggable","stack",{start:function(){var g=a(this).data("draggable").options;g=a.makeArray(a(g.stack)).sort(function(c,e){return(parseInt(a(c).css("zIndex"), +10)||0)-(parseInt(a(e).css("zIndex"),10)||0)});if(g.length){var d=parseInt(g[0].style.zIndex)||0;a(g).each(function(c){this.style.zIndex=d+c});this[0].style.zIndex=d+g.length}}});a.ui.plugin.add("draggable","zIndex",{start:function(g,d){var c=a(d.helper),e=a(this).data("draggable").options;if(c.css("zIndex"))e._zIndex=c.css("zIndex");c.css("zIndex",e.zIndex)},stop:function(g,d){var c=a(this).data("draggable").options;c._zIndex&&a(d.helper).css("zIndex",c._zIndex)}})})(jQuery); +(function(a){a.widget("ui.droppable",{version:"1.9pre",widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var g=this.options,d=g.accept;this.isover=0;this.isout=1;this.accept=a.isFunction(d)?d:function(c){return c.is(d)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};a.ui.ddmanager.droppables[g.scope]=a.ui.ddmanager.droppables[g.scope]||[]; +a.ui.ddmanager.droppables[g.scope].push(this);g.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var g=a.ui.ddmanager.droppables[this.options.scope],d=0;d<g.length;d++)g[d]==this&&g.splice(d,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(g,d){if(g=="accept")this.accept=a.isFunction(d)?d:function(c){return c.is(d)};a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(g){var d= +a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass);d&&this._trigger("activate",g,this.ui(d))},_deactivate:function(g){var d=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);d&&this._trigger("deactivate",g,this.ui(d))},_over:function(g){var d=a.ui.ddmanager.current;if(!(!d||(d.currentItem||d.element)[0]==this.element[0]))if(this.accept.call(this.element[0],d.currentItem||d.element)){this.options.hoverClass&& +this.element.addClass(this.options.hoverClass);this._trigger("over",g,this.ui(d))}},_out:function(g){var d=a.ui.ddmanager.current;if(!(!d||(d.currentItem||d.element)[0]==this.element[0]))if(this.accept.call(this.element[0],d.currentItem||d.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",g,this.ui(d))}},_drop:function(g,d){var c=d||a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var f= +a.data(this,"droppable");if(f.options.greedy&&!f.options.disabled&&f.options.scope==c.options.scope&&f.accept.call(f.element[0],c.currentItem||c.element)&&a.ui.intersect(c,a.extend(f,{offset:f.element.offset()}),f.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop", +g,this.ui(c));return this.element}return false},ui:function(g){return{draggable:g.currentItem||g.element,helper:g.helper,position:g.position,offset:g.positionAbs}}});a.ui.intersect=function(g,d,c){if(!d.offset)return false;var e=(g.positionAbs||g.position.absolute).left,f=e+g.helperProportions.width,i=(g.positionAbs||g.position.absolute).top,b=i+g.helperProportions.height,h=d.offset.left,k=h+d.proportions.width,l=d.offset.top,j=l+d.proportions.height;switch(c){case "fit":return h<=e&&f<=k&&l<=i&& +b<=j;case "intersect":return h<e+g.helperProportions.width/2&&f-g.helperProportions.width/2<k&&l<i+g.helperProportions.height/2&&b-g.helperProportions.height/2<j;case "pointer":return a.ui.isOver((g.positionAbs||g.position.absolute).top+(g.clickOffset||g.offset.click).top,(g.positionAbs||g.position.absolute).left+(g.clickOffset||g.offset.click).left,l,h,d.proportions.height,d.proportions.width);case "touch":return(i>=l&&i<=j||b>=l&&b<=j||i<l&&b>j)&&(e>=h&&e<=k||f>=h&&f<=k||e<h&&f>k);default:return false}}; +a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(g,d){var c=a.ui.ddmanager.droppables[g.options.scope]||[],e=d?d.type:null,f=(g.currentItem||g.element).find(":data(droppable)").andSelf(),i=0;a:for(;i<c.length;i++)if(!(c[i].options.disabled||g&&!c[i].accept.call(c[i].element[0],g.currentItem||g.element))){for(var b=0;b<f.length;b++)if(f[b]==c[i].element[0]){c[i].proportions.height=0;continue a}c[i].visible=c[i].element.css("display")!="none";if(c[i].visible){e=="mousedown"&& +c[i]._activate.call(c[i],d);c[i].offset=c[i].element.offset();c[i].proportions={width:c[i].element[0].offsetWidth,height:c[i].element[0].offsetHeight}}}},drop:function(g,d){var c=false;a.each(a.ui.ddmanager.droppables[g.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&a.ui.intersect(g,this,this.options.tolerance))c=c||this._drop.call(this,d);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],g.currentItem||g.element)){this.isout=1;this.isover= +0;this._deactivate.call(this,d)}}});return c},dragStart:function(g,d){g.element.parentsUntil("body").bind("scroll.droppable",function(){g.options.refreshPositions||a.ui.ddmanager.prepareOffsets(g,d)})},drag:function(g,d){g.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(g,d);a.each(a.ui.ddmanager.droppables[g.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=a.ui.intersect(g,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover== +0?"isover":null){var e;if(this.options.greedy){var f=this.element.parents(":data(droppable):eq(0)");if(f.length){e=a.data(f[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,d)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,d);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,d)}}}})},dragStop:function(g,d){g.element.parentsUntil("body").unbind("scroll.droppable");g.options.refreshPositions||a.ui.ddmanager.prepareOffsets(g, +d)}}})(jQuery); +(function(a){a.widget("ui.resizable",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var c=this,e=this.options;this.element.addClass("ui-resizable");a.extend(this,{_aspectRatio:!!e.aspectRatio,aspectRatio:e.aspectRatio,originalElement:this.element, +_proportionallyResizeElements:[],_helper:e.helper||e.ghost||e.animate?e.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&a.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').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=e.handles||(!a(".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 f=this.handles.split(",");this.handles={};for(var i=0;i<f.length;i++){var b=a.trim(f[i]),h=a('<div class="ui-resizable-handle '+("ui-resizable-"+b)+'"></div>');/sw|se|ne|nw/.test(b)&&h.css({zIndex:++e.zIndex});"se"==b&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[b]=".ui-resizable-"+b;this.element.append(h)}}this._renderAxis=function(k){k=k||this.element;for(var l in this.handles){if(this.handles[l].constructor== +String)this.handles[l]=a(this.handles[l],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=a(this.handles[l],this.element),m=0;m=/sw|ne|nw|se|n|s/.test(l)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(l)?"Top":/se|sw|s/.test(l)?"Bottom":/^e$/.test(l)?"Right":"Left"].join("");k.css(j,m);this._proportionallyResize()}a(this.handles[l])}};this._renderAxis(this.element);this._handles=a(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!c.resizing){if(this.className)var k=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);c.axis=k&&k[1]?k[1]:"se"}});if(e.autoHide){this._handles.hide();a(this.element).addClass("ui-resizable-autohide").hover(function(){if(!e.disabled){a(this).removeClass("ui-resizable-autohide");c._handles.show()}},function(){if(!e.disabled)if(!c.resizing){a(this).addClass("ui-resizable-autohide");c._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); +var c=function(f){a(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){c(this.element);var e=this.element;e.after(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);c(this.originalElement);return this},_mouseCapture:function(c){var e= +false,f;for(f in this.handles)if(a(this.handles[f])[0]==c.target)e=true;return!this.options.disabled&&e},_mouseStart:function(c){var e=this.options,f=this.element.position(),i=this.element;this.resizing=true;this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()};if(i.is(".ui-draggable")||/absolute/.test(i.css("position")))i.css({position:"absolute",top:f.top,left:f.left});a.browser.opera&&/relative/.test(i.css("position"))&&i.css({position:"relative",top:"auto",left:"auto"}); +this._renderProxy();f=g(this.helper.css("left"));var b=g(this.helper.css("top"));if(e.containment){f+=a(e.containment).scrollLeft()||0;b+=a(e.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:f,top:b};this.size=this._helper?{width:i.outerWidth(),height:i.outerHeight()}:{width:i.width(),height:i.height()};this.originalSize=this._helper?{width:i.outerWidth(),height:i.outerHeight()}:{width:i.width(),height:i.height()};this.originalPosition={left:f,top:b};this.sizeDiff= +{width:i.outerWidth()-i.width(),height:i.outerHeight()-i.height()};this.originalMousePosition={left:c.pageX,top:c.pageY};this.aspectRatio=typeof e.aspectRatio=="number"?e.aspectRatio:this.originalSize.width/this.originalSize.height||1;e=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",e=="auto"?this.axis+"-resize":e);i.addClass("ui-resizable-resizing");this._propagate("start",c);return true},_mouseDrag:function(c){var e=this.helper,f=this.originalMousePosition,i=this._change[this.axis]; +if(!i)return false;f=i.apply(this,[c,c.pageX-f.left||0,c.pageY-f.top||0]);this._updateVirtualBoundaries(c.shiftKey);if(this._aspectRatio||c.shiftKey)f=this._updateRatio(f,c);f=this._respectSize(f,c);this._propagate("resize",c);e.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(f);this._trigger("resize",c,this.ui());return false}, +_mouseStop:function(c){this.resizing=false;var e=this.options;if(this._helper){var f=this._proportionallyResizeElements,i=f.length&&/textarea/i.test(f[0].nodeName);f=i&&a.ui.hasScroll(f[0],"left")?0:this.sizeDiff.height;i=i?0:this.sizeDiff.width;i={width:this.helper.width()-i,height:this.helper.height()-f};f=parseInt(this.element.css("left"),10)+(this.position.left-this.originalPosition.left)||null;var b=parseInt(this.element.css("top"),10)+(this.position.top-this.originalPosition.top)||null;e.animate|| +this.element.css(a.extend(i,{top:b,left:f}));this.helper.height(this.size.height);this.helper.width(this.size.width);this._helper&&!e.animate&&this._proportionallyResize()}a("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",c);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(c){var e=this.options,f,i,b;e={minWidth:d(e.minWidth)?e.minWidth:0,maxWidth:d(e.maxWidth)?e.maxWidth:Infinity,minHeight:d(e.minHeight)?e.minHeight: +0,maxHeight:d(e.maxHeight)?e.maxHeight:Infinity};if(this._aspectRatio||c){c=e.minHeight*this.aspectRatio;i=e.minWidth/this.aspectRatio;f=e.maxHeight*this.aspectRatio;b=e.maxWidth/this.aspectRatio;if(c>e.minWidth)e.minWidth=c;if(i>e.minHeight)e.minHeight=i;if(f<e.maxWidth)e.maxWidth=f;if(b<e.maxHeight)e.maxHeight=b}this._vBoundaries=e},_updateCache:function(c){this.offset=this.helper.offset();if(d(c.left))this.position.left=c.left;if(d(c.top))this.position.top=c.top;if(d(c.height))this.size.height= +c.height;if(d(c.width))this.size.width=c.width},_updateRatio:function(c){var e=this.position,f=this.size,i=this.axis;if(d(c.height))c.width=c.height*this.aspectRatio;else if(d(c.width))c.height=c.width/this.aspectRatio;if(i=="sw"){c.left=e.left+(f.width-c.width);c.top=null}if(i=="nw"){c.top=e.top+(f.height-c.height);c.left=e.left+(f.width-c.width)}return c},_respectSize:function(c){var e=this._vBoundaries,f=this.axis,i=d(c.width)&&e.maxWidth&&e.maxWidth<c.width,b=d(c.height)&&e.maxHeight&&e.maxHeight< +c.height,h=d(c.width)&&e.minWidth&&e.minWidth>c.width,k=d(c.height)&&e.minHeight&&e.minHeight>c.height;if(h)c.width=e.minWidth;if(k)c.height=e.minHeight;if(i)c.width=e.maxWidth;if(b)c.height=e.maxHeight;var l=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,m=/sw|nw|w/.test(f);f=/nw|ne|n/.test(f);if(h&&m)c.left=l-e.minWidth;if(i&&m)c.left=l-e.maxWidth;if(k&&f)c.top=j-e.minHeight;if(b&&f)c.top=j-e.maxHeight;if((e=!c.width&&!c.height)&&!c.left&&c.top)c.top=null; +else if(e&&!c.top&&c.left)c.left=null;return c},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var c=this.helper||this.element,e=0;e<this._proportionallyResizeElements.length;e++){var f=this._proportionallyResizeElements[e];if(!this.borderDif){var i=[f.css("borderTopWidth"),f.css("borderRightWidth"),f.css("borderBottomWidth"),f.css("borderLeftWidth")],b=[f.css("paddingTop"),f.css("paddingRight"),f.css("paddingBottom"),f.css("paddingLeft")];this.borderDif=a.map(i, +function(h,k){var l=parseInt(h,10)||0,j=parseInt(b[k],10)||0;return l+j})}a.browser.msie&&(a(c).is(":hidden")||a(c).parents(":hidden").length)||f.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var c=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var e=a.browser.msie&&a.browser.version<7,f=e?1:0;e=e?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ +e,height:this.element.outerHeight()+e,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++c.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(c,e){return{width:this.originalSize.width+e}},w:function(c,e){return{left:this.originalPosition.left+e,width:this.originalSize.width-e}},n:function(c,e,f){return{top:this.originalPosition.top+f,height:this.originalSize.height-f}},s:function(c,e,f){return{height:this.originalSize.height+ +f}},se:function(c,e,f){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[c,e,f]))},sw:function(c,e,f){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[c,e,f]))},ne:function(c,e,f){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[c,e,f]))},nw:function(c,e,f){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[c,e,f]))}},_propagate:function(c,e){a.ui.plugin.call(this,c,[e,this.ui()]); +c!="resize"&&this._trigger(c,e,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}}});a.ui.plugin.add("resizable","alsoResize",{start:function(){var c=a(this).data("resizable").options,e=function(f){a(f).each(function(){var i=a(this);i.data("resizable-alsoresize",{width:parseInt(i.width(),10),height:parseInt(i.height(),10), +left:parseInt(i.css("left"),10),top:parseInt(i.css("top"),10),position:i.css("position")})})};if(typeof c.alsoResize=="object"&&!c.alsoResize.parentNode)if(c.alsoResize.length){c.alsoResize=c.alsoResize[0];e(c.alsoResize)}else a.each(c.alsoResize,function(f){e(f)});else e(c.alsoResize)},resize:function(c,e){var f=a(this).data("resizable"),i=f.options,b=f.originalSize,h=f.originalPosition,k={height:f.size.height-b.height||0,width:f.size.width-b.width||0,top:f.position.top-h.top||0,left:f.position.left- +h.left||0},l=function(j,m){a(j).each(function(){var n=a(this),o=a(this).data("resizable-alsoresize"),p={},q=m&&m.length?m:n.parents(e.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(q,function(u,s){var r=(o[s]||0)+(k[s]||0);if(r&&r>=0)p[s]=r||null});if(a.browser.opera&&/relative/.test(n.css("position"))){f._revertToRelativePosition=true;n.css({position:"absolute",top:"auto",left:"auto"})}n.css(p)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?a.each(i.alsoResize, +function(j,m){l(j,m)}):l(i.alsoResize)},stop:function(){var c=a(this).data("resizable"),e=c.options,f=function(i){a(i).each(function(){var b=a(this);b.css({position:b.data("resizable-alsoresize").position})})};if(c._revertToRelativePosition){c._revertToRelativePosition=false;typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(i){f(i)}):f(e.alsoResize)}a(this).removeData("resizable-alsoresize")}});a.ui.plugin.add("resizable","animate",{stop:function(c){var e=a(this).data("resizable"), +f=e.options,i=e._proportionallyResizeElements,b=i.length&&/textarea/i.test(i[0].nodeName),h=b&&a.ui.hasScroll(i[0],"left")?0:e.sizeDiff.height;b={width:e.size.width-(b?0:e.sizeDiff.width),height:e.size.height-h};h=parseInt(e.element.css("left"),10)+(e.position.left-e.originalPosition.left)||null;var k=parseInt(e.element.css("top"),10)+(e.position.top-e.originalPosition.top)||null;e.element.animate(a.extend(b,k&&h?{top:k,left:h}:{}),{duration:f.animateDuration,easing:f.animateEasing,step:function(){var l= +{width:parseInt(e.element.css("width"),10),height:parseInt(e.element.css("height"),10),top:parseInt(e.element.css("top"),10),left:parseInt(e.element.css("left"),10)};i&&i.length&&a(i[0]).css({width:l.width,height:l.height});e._updateCache(l);e._propagate("resize",c)}})}});a.ui.plugin.add("resizable","containment",{start:function(){var c=a(this).data("resizable"),e=c.element,f=c.options.containment;if(e=f instanceof a?f.get(0):/parent/.test(f)?e.parent().get(0):f){c.containerElement=a(e);if(/document/.test(f)|| +f==document){c.containerOffset={left:0,top:0};c.containerPosition={left:0,top:0};c.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight}}else{var i=a(e),b=[];a(["Top","Right","Left","Bottom"]).each(function(l,j){b[l]=g(i.css("padding"+j))});c.containerOffset=i.offset();c.containerPosition=i.position();c.containerSize={height:i.innerHeight()-b[3],width:i.innerWidth()-b[1]};f=c.containerOffset;var h=c.containerSize.height, +k=c.containerSize.width;k=a.ui.hasScroll(e,"left")?e.scrollWidth:k;h=a.ui.hasScroll(e)?e.scrollHeight:h;c.parentData={element:e,left:f.left,top:f.top,width:k,height:h}}}},resize:function(c){var e=a(this).data("resizable"),f=e.options,i=e.containerOffset,b=e.position;c=e._aspectRatio||c.shiftKey;var h={top:0,left:0},k=e.containerElement;if(k[0]!=document&&/static/.test(k.css("position")))h=i;if(b.left<(e._helper?i.left:0)){e.size.width+=e._helper?e.position.left-i.left:e.position.left-h.left;if(c)e.size.height= +e.size.width/f.aspectRatio;e.position.left=f.helper?i.left:0}if(b.top<(e._helper?i.top:0)){e.size.height+=e._helper?e.position.top-i.top:e.position.top;if(c)e.size.width=e.size.height*f.aspectRatio;e.position.top=e._helper?i.top:0}e.offset.left=e.parentData.left+e.position.left;e.offset.top=e.parentData.top+e.position.top;f=Math.abs((e._helper?e.offset.left-h.left:e.offset.left-h.left)+e.sizeDiff.width);i=Math.abs((e._helper?e.offset.top-h.top:e.offset.top-i.top)+e.sizeDiff.height);b=e.containerElement.get(0)== +e.element.parent().get(0);h=/relative|absolute/.test(e.containerElement.css("position"));if(b&&h)f-=e.parentData.left;if(f+e.size.width>=e.parentData.width){e.size.width=e.parentData.width-f;if(c)e.size.height=e.size.width/e.aspectRatio}if(i+e.size.height>=e.parentData.height){e.size.height=e.parentData.height-i;if(c)e.size.width=e.size.height*e.aspectRatio}},stop:function(){var c=a(this).data("resizable"),e=c.options,f=c.containerOffset,i=c.containerPosition,b=c.containerElement,h=a(c.helper),k= +h.offset(),l=h.outerWidth()-c.sizeDiff.width;h=h.outerHeight()-c.sizeDiff.height;c._helper&&!e.animate&&/relative/.test(b.css("position"))&&a(this).css({left:k.left-i.left-f.left,width:l,height:h});c._helper&&!e.animate&&/static/.test(b.css("position"))&&a(this).css({left:k.left-i.left-f.left,width:l,height:h})}});a.ui.plugin.add("resizable","ghost",{start:function(){var c=a(this).data("resizable"),e=c.options,f=c.size;c.ghost=c.originalElement.clone();c.ghost.css({opacity:0.25,display:"block",position:"relative", +height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:"");c.ghost.appendTo(c.helper)},resize:function(){var c=a(this).data("resizable");c.ghost&&c.ghost.css({position:"relative",height:c.size.height,width:c.size.width})},stop:function(){var c=a(this).data("resizable");c.ghost&&c.helper&&c.helper.get(0).removeChild(c.ghost.get(0))}});a.ui.plugin.add("resizable","grid",{resize:function(){var c=a(this).data("resizable"),e=c.options, +f=c.size,i=c.originalSize,b=c.originalPosition,h=c.axis;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-i.width)/(e.grid[0]||1))*(e.grid[0]||1);e=Math.round((f.height-i.height)/(e.grid[1]||1))*(e.grid[1]||1);if(/^(se|s|e)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e}else if(/^(ne)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e;c.position.top=b.top-e}else{if(/^(sw)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e}else{c.size.width= +i.width+k;c.size.height=i.height+e;c.position.top=b.top-e}c.position.left=b.left-k}}});var g=function(c){return parseInt(c,10)||0},d=function(c){return!isNaN(parseInt(c,10))}})(jQuery); +(function(a){a.widget("ui.selectable",a.ui.mouse,{version:"1.9pre",options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var g=this;this.element.addClass("ui-selectable");this.dragged=false;var d;this.refresh=function(){d=a(g.options.filter,g.element[0]);d.each(function(){var c=a(this),e=c.offset();a.data(this,"selectable-item",{element:this,$element:c,left:e.left,top:e.top,right:e.left+c.outerWidth(),bottom:e.top+c.outerHeight(),startselected:false, +selected:c.hasClass("ui-selected"),selecting:c.hasClass("ui-selecting"),unselecting:c.hasClass("ui-unselecting")})})};this.refresh();this.selectees=d.addClass("ui-selectee");this._mouseInit();this.helper=a("<div class='ui-selectable-helper'></div>")},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(g){var d= +this;this.opos=[g.pageX,g.pageY];if(!this.options.disabled){var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",g);a(c.appendTo).append(this.helper);this.helper.css({left:g.clientX,top:g.clientY,width:0,height:0});c.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!g.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting= +true;d._trigger("unselecting",g,{unselecting:e.element})}});a(g.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){var f=!g.metaKey||!e.$element.hasClass("ui-selected");e.$element.removeClass(f?"ui-unselecting":"ui-selected").addClass(f?"ui-selecting":"ui-unselecting");e.unselecting=!f;e.selecting=f;(e.selected=f)?d._trigger("selecting",g,{selecting:e.element}):d._trigger("unselecting",g,{unselecting:e.element});return false}})}},_mouseDrag:function(g){var d=this; +this.dragged=true;if(!this.options.disabled){var c=this.options,e=this.opos[0],f=this.opos[1],i=g.pageX,b=g.pageY;if(e>i){var h=i;i=e;e=h}if(f>b){h=b;b=f;f=h}this.helper.css({left:e,top:f,width:i-e,height:b-f});this.selectees.each(function(){var k=a.data(this,"selectable-item");if(!(!k||k.element==d.element[0])){var l=false;if(c.tolerance=="touch")l=!(k.left>i||k.right<e||k.top>b||k.bottom<f);else if(c.tolerance=="fit")l=k.left>e&&k.right<i&&k.top>f&&k.bottom<b;if(l){if(k.selected){k.$element.removeClass("ui-selected"); +k.selected=false}if(k.unselecting){k.$element.removeClass("ui-unselecting");k.unselecting=false}if(!k.selecting){k.$element.addClass("ui-selecting");k.selecting=true;d._trigger("selecting",g,{selecting:k.element})}}else{if(k.selecting)if(g.metaKey&&k.startselected){k.$element.removeClass("ui-selecting");k.selecting=false;k.$element.addClass("ui-selected");k.selected=true}else{k.$element.removeClass("ui-selecting");k.selecting=false;if(k.startselected){k.$element.addClass("ui-unselecting");k.unselecting= +true}d._trigger("unselecting",g,{unselecting:k.element})}if(k.selected)if(!g.metaKey&&!k.startselected){k.$element.removeClass("ui-selected");k.selected=false;k.$element.addClass("ui-unselecting");k.unselecting=true;d._trigger("unselecting",g,{unselecting:k.element})}}}});return false}},_mouseStop:function(g){var d=this;this.dragged=false;a(".ui-unselecting",this.element[0]).each(function(){var c=a.data(this,"selectable-item");c.$element.removeClass("ui-unselecting");c.unselecting=false;c.startselected= +false;d._trigger("unselected",g,{unselected:c.element})});a(".ui-selecting",this.element[0]).each(function(){var c=a.data(this,"selectable-item");c.$element.removeClass("ui-selecting").addClass("ui-selected");c.selecting=false;c.selected=true;c.startselected=true;d._trigger("selected",g,{selected:c.element})});this._trigger("stop",g);this.helper.remove();return false}})})(jQuery); +(function(a){a.widget("ui.sortable",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var g=this.options;this.containerCache= +{};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?g.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");this._mouseDestroy();for(var g=this.items.length-1;g>=0;g--)this.items[g].item.removeData(this.widgetName+"-item");return this},_setOption:function(g, +d){if(g==="disabled"){this.options[g]=d;this.widget().toggleClass("ui-sortable-disabled",!!d)}else a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(g,d){var c=this;if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(g);var e=null,f=this;a(g.target).parents().each(function(){if(a.data(this,c.widgetName+"-item")==f){e=a(this);return false}});if(a.data(g.target,c.widgetName+"-item")==f)e=a(g.target);if(!e)return false; +if(this.options.handle&&!d){var i=false;a(this.options.handle,e).find("*").andSelf().each(function(){if(this==g.target)i=true});if(!i)return false}this.currentItem=e;this._removeCurrentsFromItems();return true},_mouseStart:function(g,d,c){d=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(g);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");a.extend(this.offset,{click:{left:g.pageX-this.offset.left,top:g.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(g);this.originalPageX=g.pageX;this.originalPageY=g.pageY;d.cursorAt&&this._adjustOffsetFromHelper(d.cursorAt);this.domPosition={prev:this.currentItem.prev()[0], +parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();d.containment&&this._setContainment();if(d.cursor){if(a("body").css("cursor"))this._storedCursor=a("body").css("cursor");a("body").css("cursor",d.cursor)}if(d.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",d.opacity)}if(d.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex", +d.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",g,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",g,this._uiHash(this));if(a.ui.ddmanager)a.ui.ddmanager.current=this;a.ui.ddmanager&&!d.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,g);this.dragging=true;this.helper.addClass("ui-sortable-helper"); +this._mouseDrag(g);return true},_mouseDrag:function(g){this.position=this._generatePosition(g);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var d=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-g.pageY<d.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+d.scrollSpeed; +else if(g.pageY-this.overflowOffset.top<d.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-d.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-g.pageX<d.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+d.scrollSpeed;else if(g.pageX-this.overflowOffset.left<d.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-d.scrollSpeed}else{if(g.pageY-a(document).scrollTop()<d.scrollSensitivity)c= +a(document).scrollTop(a(document).scrollTop()-d.scrollSpeed);else if(a(window).height()-(g.pageY-a(document).scrollTop())<d.scrollSensitivity)c=a(document).scrollTop(a(document).scrollTop()+d.scrollSpeed);if(g.pageX-a(document).scrollLeft()<d.scrollSensitivity)c=a(document).scrollLeft(a(document).scrollLeft()-d.scrollSpeed);else if(a(window).width()-(g.pageX-a(document).scrollLeft())<d.scrollSensitivity)c=a(document).scrollLeft(a(document).scrollLeft()+d.scrollSpeed)}c!==false&&a.ui.ddmanager&&!d.dropBehaviour&& +a.ui.ddmanager.prepareOffsets(this,g)}this.positionAbs=this._convertPositionTo("absolute");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";for(d=this.items.length-1;d>=0;d--){c=this.items[d];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!a.contains(this.placeholder[0],e)&&(this.options.type== +"semi-dynamic"?!a.contains(this.element[0],e):1)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(g,c);else break;this._trigger("change",g,this._uiHash());break}}this._contactContainers(g);a.ui.ddmanager&&a.ui.ddmanager.drag(this,g);this._trigger("sort",g,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(g,d){if(g){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,g);if(this.options.revert){var c= +this,e=c.placeholder.offset();c.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.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(g)})}else this._clear(g,d);return false}},cancel:function(){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 g=this.containers.length-1;g>=0;g--){this.containers[g]._trigger("deactivate",null,this._uiHash(this));if(this.containers[g].containerCache.over){this.containers[g]._trigger("out",null,this._uiHash(this));this.containers[g].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();a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(g){var d=this._getItemsAsjQuery(g&&g.connected),c=[];g=g||{};a(d).each(function(){var e=(a(g.item||this).attr(g.attribute||"id")||"").match(g.expression||/(.+)[-=_](.+)/);if(e)c.push((g.key||e[1]+"[]")+"="+ +(g.key&&g.expression?e[1]:e[2]))});!c.length&&g.key&&c.push(g.key+"=");return c.join("&")},toArray:function(g){var d=this._getItemsAsjQuery(g&&g.connected),c=[];g=g||{};d.each(function(){c.push(a(g.item||this).attr(g.attribute||"id")||"")});return c},_intersectsWith:function(g){var d=this.positionAbs.left,c=d+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,i=g.left,b=i+g.width,h=g.top,k=h+g.height,l=this.offset.click.top,j=this.offset.click.left;return this.options.tolerance== +"pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>g[this.floating?"width":"height"]?e+l>h&&e+l<k&&d+j>i&&d+j<b:i<d+this.helperProportions.width/2&&c-this.helperProportions.width/2<b&&h<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(g){var d=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,g.top,g.height);g=a.ui.isOverAxis(this.positionAbs.left+ +this.offset.click.left,g.left,g.width);d=d&&g;g=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!d)return false;return this.floating?c&&c=="right"||g=="down"?2:1:g&&(g=="down"?2:1)},_intersectsWithSides:function(g){var d=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,g.top+g.height/2,g.height);g=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,g.left+g.width/2,g.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection(); +return this.floating&&e?e=="right"&&g||e=="left"&&!g:c&&(c=="down"&&d||c=="up"&&!d)},_getDragVerticalDirection:function(){var g=this.positionAbs.top-this.lastPositionAbs.top;return g!=0&&(g>0?"down":"up")},_getDragHorizontalDirection:function(){var g=this.positionAbs.left-this.lastPositionAbs.left;return g!=0&&(g>0?"right":"left")},refresh:function(g){this._refreshItems(g);this.refreshPositions();return this},_connectWith:function(){var g=this.options;return g.connectWith.constructor==String?[g.connectWith]: +g.connectWith},_getItemsAsjQuery:function(g){var d=[],c=[],e=this._connectWith();if(e&&g)for(g=e.length-1;g>=0;g--)for(var f=a(e[g]),i=f.length-1;i>=0;i--){var b=a.data(f[i],this.widgetName);if(b&&b!=this&&!b.options.disabled)c.push([a.isFunction(b.options.items)?b.options.items.call(b.element):a(b.options.items,b.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),b])}c.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}): +a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(g=c.length-1;g>=0;g--)c[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){for(var g=this.currentItem.find(":data("+this.widgetName+"-item)"),d=0;d<this.items.length;d++)for(var c=0;c<g.length;c++)g[c]==this.items[d].item[0]&&this.items.splice(d,1)},_refreshItems:function(g){this.items=[];this.containers=[this];var d=this.items,c=[[a.isFunction(this.options.items)? +this.options.items.call(this.element[0],g,{item:this.currentItem}):a(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var i=a(e[f]),b=i.length-1;b>=0;b--){var h=a.data(i[b],this.widgetName);if(h&&h!=this&&!h.options.disabled){c.push([a.isFunction(h.options.items)?h.options.items.call(h.element[0],g,{item:this.currentItem}):a(h.options.items,h.element),h]);this.containers.push(h)}}for(f=c.length-1;f>=0;f--){g=c[f][1];e=c[f][0];b=0;for(i=e.length;b< +i;b++){h=a(e[b]);h.data(this.widgetName+"-item",g);d.push({item:h,instance:g,width:0,height:0,left:0,top:0})}}},refreshPositions:function(g){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var d=this.items.length-1;d>=0;d--){var c=this.items[d];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?a(this.options.toleranceElement,c.item):c.item;if(!g){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(d=this.containers.length-1;d>=0;d--){e=this.containers[d].element.offset();this.containers[d].containerCache.left=e.left;this.containers[d].containerCache.top=e.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}return this},_createPlaceholder:function(g){var d= +g||this,c=d.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=a(document.createElement(d.currentItem[0].nodeName)).addClass(e||d.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,i){if(!(e&&!c.forcePlaceholderSize)){i.height()||i.height(d.currentItem.innerHeight()-parseInt(d.currentItem.css("paddingTop")||0,10)-parseInt(d.currentItem.css("paddingBottom")|| +0,10));i.width()||i.width(d.currentItem.innerWidth()-parseInt(d.currentItem.css("paddingLeft")||0,10)-parseInt(d.currentItem.css("paddingRight")||0,10))}}}}d.placeholder=a(c.placeholder.element.call(d.element,d.currentItem));d.currentItem.after(d.placeholder);c.placeholder.update(d,d.placeholder)},_contactContainers:function(g){for(var d=null,c=null,e=this.containers.length-1;e>=0;e--)if(!a.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(d&& +a.contains(this.containers[e].element[0],d.element[0]))){d=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",g,this._uiHash(this));this.containers[e].containerCache.over=0}if(d)if(this.containers.length===1){this.containers[c]._trigger("over",g,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){d=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],i=this.items.length- +1;i>=0;i--)if(a.contains(this.containers[c].element[0],this.items[i].item[0])){var b=this.items[i][this.containers[c].floating?"left":"top"];if(Math.abs(b-f)<d){d=Math.abs(b-f);e=this.items[i]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(g,e,null,true):this._rearrange(g,null,this.containers[c].element,true);this._trigger("change",g,this._uiHash());this.containers[c]._trigger("change",g,this._uiHash(this));this.options.placeholder.update(this.currentContainer, +this.placeholder);this.containers[c]._trigger("over",g,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(g){var d=this.options;g=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[g,this.currentItem])):d.helper=="clone"?this.currentItem.clone():this.currentItem;g.parents("body").length||a(d.appendTo!="parent"?d.appendTo:this.currentItem[0].parentNode)[0].appendChild(g[0]);if(g[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width, +height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(g[0].style.width==""||d.forceHelperSize)g.width(this.currentItem.width());if(g[0].style.height==""||d.forceHelperSize)g.height(this.currentItem.height());return g},_adjustOffsetFromHelper:function(g){if(typeof g=="string")g=g.split(" ");if(a.isArray(g))g={left:+g[0],top:+g[1]||0};if("left"in g)this.offset.click.left=g.left+this.margins.left;if("right"in +g)this.offset.click.left=this.helperProportions.width-g.right+this.margins.left;if("top"in g)this.offset.click.top=g.top+this.margins.top;if("bottom"in g)this.offset.click.top=this.helperProportions.height-g.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var g=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0])){g.left+=this.scrollParent.scrollLeft();g.top+= +this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)g={top:0,left:0};return{top:g.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:g.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var g=this.currentItem.position();return{top:g.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(), +left:g.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var g=this.options;if(g.containment=="parent")g.containment=this.helper[0].parentNode; +if(g.containment=="document"||g.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(g.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(g.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(g.containment)){var d=a(g.containment)[0];g=a(g.containment).offset(); +var c=a(d).css("overflow")!="hidden";this.containment=[g.left+(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0)-this.margins.left,g.top+(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0)-this.margins.top,g.left+(c?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,g.top+(c?Math.max(d.scrollHeight, +d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(g,d){if(!d)d=this.position;var c=g=="absolute"?1:-1,e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(e[0].tagName);return{top:d.top+this.offset.relative.top*c+this.offset.parent.top* +c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:e.scrollTop())*c),left:d.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*c)}},_generatePosition:function(g){var d=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent: +this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=g.pageX,i=g.pageY;if(this.originalPosition){if(this.containment){if(g.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(g.pageY-this.offset.click.top<this.containment[1])i=this.containment[1]+this.offset.click.top;if(g.pageX-this.offset.click.left> +this.containment[2])f=this.containment[2]+this.offset.click.left;if(g.pageY-this.offset.click.top>this.containment[3])i=this.containment[3]+this.offset.click.top}if(d.grid){i=this.originalPageY+Math.round((i-this.originalPageY)/d.grid[1])*d.grid[1];i=this.containment?!(i-this.offset.click.top<this.containment[1]||i-this.offset.click.top>this.containment[3])?i:!(i-this.offset.click.top<this.containment[1])?i-d.grid[1]:i+d.grid[1]:i;f=this.originalPageX+Math.round((f-this.originalPageX)/d.grid[0])* +d.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-d.grid[0]:f+d.grid[0]:f}}return{top:i-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&& +this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(g,d,c,e){c?c[0].appendChild(this.placeholder[0]):d.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?d.item[0]:d.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,i=this.counter;window.setTimeout(function(){i==f.counter&&f.refreshPositions(!e)},0)},_clear:function(g,d){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem.parent().length&& +this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!d&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]|| +this.domPosition.parent!=this.currentItem.parent()[0])&&!d)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!a.contains(this.element[0],this.currentItem[0])){d||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(a.contains(this.containers[e].element[0],this.currentItem[0])&&!d){c.push(function(f){return function(i){f._trigger("receive",i,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(i){f._trigger("update", +i,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){d||c.push(function(f){return function(i){f._trigger("deactivate",i,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(i){f._trigger("out",i,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&a("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(!d){this._trigger("beforeStop",g,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,g);this._trigger("stop",g,this._uiHash())}return false}d||this._trigger("beforeStop",g,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!d){for(e= +0;e<c.length;e++)c[e].call(this,g);this._trigger("stop",g,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(g){var d=g||this;return{helper:d.helper,placeholder:d.placeholder||a([]),position:d.position,originalPosition:d.originalPosition,offset:d.positionAbs,item:d.currentItem,sender:g?g.element:null}}})})(jQuery); +jQuery.effects||function(a,g){function d(l){var j;if(l&&l.constructor===Array&&l.length===3)return l;if(j=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(l))return[parseInt(j[1],10),parseInt(j[2],10),parseInt(j[3],10)];if(j=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(l))return[parseFloat(j[1])*2.55,parseFloat(j[2])*2.55,parseFloat(j[3])*2.55];if(j=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(l))return[parseInt(j[1], +16),parseInt(j[2],16),parseInt(j[3],16)];if(j=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(l))return[parseInt(j[1]+j[1],16),parseInt(j[2]+j[2],16),parseInt(j[3]+j[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(l))return b.transparent;return b[a.trim(l).toLowerCase()]}function c(){var l=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,j={},m,n;if(l&&l.length&&l[0]&&l[l[0]])for(n=l.length;n--;){m=l[n];if(typeof l[m]==="string")j[a.camelCase(m)]=l[m]}else for(m in l)if(typeof l[m]=== +"string")j[m]=l[m];return j}function e(l,j,m,n){if(a.isPlainObject(l))return l;l={effect:l};if(j===g)j={};if(a.isFunction(j)){n=j;m=null;j={}}if(a.type(j)==="number"||a.fx.speeds[j]){n=m;m=j;j={}}if(a.isFunction(m)){n=m;m=null}j&&a.extend(l,j);m=m||j.duration;l.duration=a.fx.off?0:typeof m==="number"?m:m in a.fx.speeds?a.fx.speeds[m]:a.fx.speeds._default;l.complete=n||j.complete;return l}function f(l){if(!l||typeof l==="number"||a.fx.speeds[l])return true;if(typeof l==="string"&&!a.effects.effect[l]){if(i&& +a.effects[l])return false;return true}return false}var i=a.uiBackCompat!==false;a.effects={effect:{}};a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(l,j){a.fx.step[j]=function(m){if(!m.colorInit){var n;n=m.elem;var o=j,p;do{p=a.curCSS(n,o);if(p!=""&&p!=="transparent"||a.nodeName(n,"body"))break;o="backgroundColor"}while(n=n.parentNode);n=d(p);m.start=n;m.end=d(m.end);m.colorInit=true}m.elem.style[j]= +"rgb("+Math.max(Math.min(parseInt(m.pos*(m.end[0]-m.start[0])+m.start[0],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[1]-m.start[1])+m.start[1],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[2]-m.start[2])+m.start[2],10),255),0)+")"}});var b={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]},h=["add","remove","toggle"],k={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(l,j){a.fx.step[j]=function(m){if(m.end!=="none"&&!m.setAttr||m.pos===1&&!m.setAttr){jQuery.style(m.elem,j,m.end);m.setAttr= +true}}});a.effects.animateClass=function(l,j,m,n){var o=a.speed(j,m,n);return this.queue(function(){var p=a(this),q=p.attr("class")||"",u,s=o.children?p.find("*").andSelf():p;s=s.map(function(){var r=a(this);return{el:r,originalStyleAttr:r.attr("style")||" ",start:c.call(this)}});a.each(h,function(r,t){if(l[t])p[t+"Class"](l[t])});u=p.attr("class");s=s.map(function(){this.end=c.call(this.el[0]);var r=this.start,t=this.end,v={},w,x;for(w in t){x=t[w];if(r[w]!=x)if(!k[w])if(a.fx.step[w]||!isNaN(parseFloat(x)))v[w]= +x}this.diff=v;return this});p.attr("class",q);s=s.map(function(){var r=this,t=a.Deferred();this.el.animate(this.diff,{duration:o.duration,easing:o.easing,queue:false,complete:function(){t.resolve(r)}});return t.promise()});a.when.apply(a,s.get()).done(function(){p.attr("class",u);a.each(arguments,function(){if(typeof this.el.attr("style")==="object"){this.el.attr("style").cssText="";this.el.attr("style").cssText=this.originalStyleAttr}else this.el.attr("style",this.originalStyleAttr)});o.complete.call(p[0])})})}; +a.fn.extend({_addClass:a.fn.addClass,addClass:function(l,j,m,n){return j?a.effects.animateClass.apply(this,[{add:l},j,m,n]):this._addClass(l)},_removeClass:a.fn.removeClass,removeClass:function(l,j,m,n){return j?a.effects.animateClass.apply(this,[{remove:l},j,m,n]):this._removeClass(l)},_toggleClass:a.fn.toggleClass,toggleClass:function(l,j,m,n,o){return typeof j==="boolean"||j===g?m?a.effects.animateClass.apply(this,[j?{add:l}:{remove:l},m,n,o]):this._toggleClass(l,j):a.effects.animateClass.apply(this, +[{toggle:l},j,m,n])},switchClass:function(l,j,m,n,o){return a.effects.animateClass.apply(this,[{add:j,remove:l},m,n,o])}});a.extend(a.effects,{version:"1.9pre",save:function(l,j){for(var m=0;m<j.length;m++)j[m]!==null&&l.data("ec.storage."+j[m],l[0].style[j[m]])},restore:function(l,j){for(var m=0;m<j.length;m++)j[m]!==null&&l.css(j[m],l.data("ec.storage."+j[m]))},setMode:function(l,j){if(j==="toggle")j=l.is(":hidden")?"show":"hide";return j},getBaseline:function(l,j){var m,n;switch(l[0]){case "top":m= +0;break;case "middle":m=0.5;break;case "bottom":m=1;break;default:m=l[0]/j.height}switch(l[1]){case "left":n=0;break;case "center":n=0.5;break;case "right":n=1;break;default:n=l[1]/j.width}return{x:n,y:m}},createWrapper:function(l){if(l.parent().is(".ui-effects-wrapper"))return l.parent();var j={width:l.outerWidth(true),height:l.outerHeight(true),"float":l.css("float")},m=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}), +n={width:l.width(),height:l.height()},o=document.activeElement;l.wrap(m);if(l[0]===o||a.contains(l[0],o))a(o).focus();m=l.parent();if(l.css("position")==="static"){m.css({position:"relative"});l.css({position:"relative"})}else{a.extend(j,{position:l.css("position"),zIndex:l.css("z-index")});a.each(["top","left","bottom","right"],function(p,q){j[q]=l.css(q);if(isNaN(parseInt(j[q],10)))j[q]="auto"});l.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}l.css(n);return m.css(j).show()}, +removeWrapper:function(l){var j=document.activeElement;if(l.parent().is(".ui-effects-wrapper")){l.parent().replaceWith(l);if(l[0]===j||a.contains(l[0],j))a(j).focus()}return l},setTransition:function(l,j,m,n){n=n||{};a.each(j,function(o,p){var q=l.cssUnit(p);if(q[0]>0)n[p]=q[0]*m+q[1]});return n}});a.fn.extend({effect:function(){function l(q){function u(){a.isFunction(r)&&r.call(s[0]);a.isFunction(q)&&q()}var s=a(this),r=j.complete,t=j.mode;(s.is(":hidden")?t==="hide":t==="show")?u():o.call(s[0], +j,u)}var j=e.apply(this,arguments),m=j.mode,n=j.queue,o=a.effects.effect[j.effect],p=!o&&i&&a.effects[j.effect];if(a.fx.off||!(o||p))return m?this[m](j.duration,j.complete):this.each(function(){j.complete&&j.complete.call(this)});return o?n===false?this.each(l):this.queue(n||"fx",l):p.call(this,{options:j,duration:j.duration,callback:j.complete,mode:j.mode})},_show:a.fn.show,show:function(l){if(f(l))return this._show.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="show";return this.effect.call(this, +j)}},_hide:a.fn.hide,hide:function(l){if(f(l))return this._hide.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="hide";return this.effect.call(this,j)}},__toggle:a.fn.toggle,toggle:function(l){if(f(l)||typeof l==="boolean"||a.isFunction(l))return this.__toggle.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="toggle";return this.effect.call(this,j)}},cssUnit:function(l){var j=this.css(l),m=[];a.each(["em","px","%","pt"],function(n,o){if(j.indexOf(o)>0)m=[parseFloat(j), +o]});return m}});a.easing.jswing=a.easing.swing;a.extend(a.easing,{def:"easeOutQuad",swing:function(l,j,m,n,o){return a.easing[a.easing.def](l,j,m,n,o)},easeInQuad:function(l,j,m,n,o){return n*(j/=o)*j+m},easeOutQuad:function(l,j,m,n,o){return-n*(j/=o)*(j-2)+m},easeInOutQuad:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j+m;return-n/2*(--j*(j-2)-1)+m},easeInCubic:function(l,j,m,n,o){return n*(j/=o)*j*j+m},easeOutCubic:function(l,j,m,n,o){return n*((j=j/o-1)*j*j+1)+m},easeInOutCubic:function(l,j, +m,n,o){if((j/=o/2)<1)return n/2*j*j*j+m;return n/2*((j-=2)*j*j+2)+m},easeInQuart:function(l,j,m,n,o){return n*(j/=o)*j*j*j+m},easeOutQuart:function(l,j,m,n,o){return-n*((j=j/o-1)*j*j*j-1)+m},easeInOutQuart:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j*j*j+m;return-n/2*((j-=2)*j*j*j-2)+m},easeInQuint:function(l,j,m,n,o){return n*(j/=o)*j*j*j*j+m},easeOutQuint:function(l,j,m,n,o){return n*((j=j/o-1)*j*j*j*j+1)+m},easeInOutQuint:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j*j*j*j+m;return n/2* +((j-=2)*j*j*j*j+2)+m},easeInSine:function(l,j,m,n,o){return-n*Math.cos(j/o*(Math.PI/2))+n+m},easeOutSine:function(l,j,m,n,o){return n*Math.sin(j/o*(Math.PI/2))+m},easeInOutSine:function(l,j,m,n,o){return-n/2*(Math.cos(Math.PI*j/o)-1)+m},easeInExpo:function(l,j,m,n,o){return j==0?m:n*Math.pow(2,10*(j/o-1))+m},easeOutExpo:function(l,j,m,n,o){return j==o?m+n:n*(-Math.pow(2,-10*j/o)+1)+m},easeInOutExpo:function(l,j,m,n,o){if(j==0)return m;if(j==o)return m+n;if((j/=o/2)<1)return n/2*Math.pow(2,10*(j-1))+ +m;return n/2*(-Math.pow(2,-10*--j)+2)+m},easeInCirc:function(l,j,m,n,o){return-n*(Math.sqrt(1-(j/=o)*j)-1)+m},easeOutCirc:function(l,j,m,n,o){return n*Math.sqrt(1-(j=j/o-1)*j)+m},easeInOutCirc:function(l,j,m,n,o){if((j/=o/2)<1)return-n/2*(Math.sqrt(1-j*j)-1)+m;return n/2*(Math.sqrt(1-(j-=2)*j)+1)+m},easeInElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3,q=n;if(j==0)return m;if((j/=o)==1)return m+n;if(q<Math.abs(n)){q=n;l=p/4}else l=p/(2*Math.PI)*Math.asin(n/q);return-(q*Math.pow(2,10*(j-=1))*Math.sin((j* +o-l)*2*Math.PI/p))+m},easeOutElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3,q=n;if(j==0)return m;if((j/=o)==1)return m+n;if(q<Math.abs(n)){q=n;l=p/4}else l=p/(2*Math.PI)*Math.asin(n/q);return q*Math.pow(2,-10*j)*Math.sin((j*o-l)*2*Math.PI/p)+n+m},easeInOutElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3*1.5,q=n;if(j==0)return m;if((j/=o/2)==2)return m+n;if(q<Math.abs(n)){q=n;l=p/4}else l=p/(2*Math.PI)*Math.asin(n/q);if(j<1)return-0.5*q*Math.pow(2,10*(j-=1))*Math.sin((j*o-l)*2*Math.PI/p)+m;return q* +Math.pow(2,-10*(j-=1))*Math.sin((j*o-l)*2*Math.PI/p)*0.5+n+m},easeInBack:function(l,j,m,n,o,p){if(p==g)p=1.70158;return n*(j/=o)*j*((p+1)*j-p)+m},easeOutBack:function(l,j,m,n,o,p){if(p==g)p=1.70158;return n*((j=j/o-1)*j*((p+1)*j+p)+1)+m},easeInOutBack:function(l,j,m,n,o,p){if(p==g)p=1.70158;if((j/=o/2)<1)return n/2*j*j*(((p*=1.525)+1)*j-p)+m;return n/2*((j-=2)*j*(((p*=1.525)+1)*j+p)+2)+m},easeInBounce:function(l,j,m,n,o){return n-a.easing.easeOutBounce(l,o-j,0,n,o)+m},easeOutBounce:function(l,j,m, +n,o){return(j/=o)<1/2.75?n*7.5625*j*j+m:j<2/2.75?n*(7.5625*(j-=1.5/2.75)*j+0.75)+m:j<2.5/2.75?n*(7.5625*(j-=2.25/2.75)*j+0.9375)+m:n*(7.5625*(j-=2.625/2.75)*j+0.984375)+m},easeInOutBounce:function(l,j,m,n,o){if(j<o/2)return a.easing.easeInBounce(l,j*2,0,n,o)*0.5+m;return a.easing.easeOutBounce(l,j*2-o,0,n,o)*0.5+n*0.5+m}})}(jQuery); +(function(a){var g=/up|down|vertical/,d=/up|left|vertical|horizontal/;a.effects.effect.blind=function(c,e){var f=a(this),i=["position","top","bottom","left","right","height","width"],b=a.effects.setMode(f,c.mode||"hide"),h=c.direction||"up",k=g.test(h),l=k?"height":"width",j=k?"top":"left";h=d.test(h);var m={},n=b==="show",o,p;f.parent().is(".ui-effects-wrapper")?a.effects.save(f.parent(),i):a.effects.save(f,i);f.show();p=parseInt(f.css("top"),10);o=a.effects.createWrapper(f).css({overflow:"hidden"}); +p=k?o[l]()+p:o[l]();m[l]=n?p:0;if(!h){f.css(k?"bottom":"right",0).css(k?"top":"left","").css({position:"absolute"});m[j]=n?0:p}if(n){o.css(l,0);h||o.css(j,p)}o.animate(m,{duration:c.duration,easing:c.easing,queue:false,complete:function(){b==="hide"&&f.hide();a.effects.restore(f,i);a.effects.removeWrapper(f);e()}})}})(jQuery); +(function(a){a.effects.effect.bounce=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"effect"),i=f==="hide",b=f==="show",h=g.direction||"up";f=g.distance;var k=g.times||5,l=k*2+(b||i?1:0),j=g.duration/l,m=g.easing,n=h==="up"||h==="down"?"top":"left";h=h==="up"||h==="left";var o,p,q=c.queue(),u=q.length;if(b||i)e.push("opacity");a.effects.save(c,e);c.show();a.effects.createWrapper(c);f||(f=c[n==="top"?"outerHeight":"outerWidth"]()/ +3);if(b){p={opacity:1};p[n]=0;c.css("opacity",0).css(n,h?-f*2:f*2).animate(p,j,m)}if(i)f/=Math.pow(2,k-1);p={};for(b=p[n]=0;b<k;b++){o={};o[n]=(h?"-=":"+=")+f;c.animate(o,j,m).animate(p,j,m);f=i?f*2:f/2}if(i){o={opacity:0};o[n]=(h?"-=":"+=")+f;c.animate(o,j,m)}c.queue(function(){i&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()});u>1&&q.splice.apply(q,[1,0].concat(q.splice(u,l+1)));c.dequeue()}})(jQuery); +(function(a){a.effects.effect.clip=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"hide")==="show",i=(g.direction||"vertical")==="vertical",b=i?"height":"width";i=i?"top":"left";var h={},k,l;a.effects.save(c,e);c.show();k=a.effects.createWrapper(c).css({overflow:"hidden"});k=c[0].tagName==="IMG"?k:c;l=k[b]();if(f){k.css(b,0);k.css(i,l/2)}h[b]=f?l:0;h[i]=f?0:l/2;k.animate(h,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f|| +c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery); +(function(a){a.effects.effect.drop=function(g,d){var c=a(this),e=["position","top","bottom","left","right","opacity","height","width"],f=a.effects.setMode(c,g.mode||"hide"),i=f==="show",b=g.direction||"left",h=b==="up"||b==="down"?"top":"left";b=b==="up"||b==="left"?"pos":"neg";var k={opacity:i?1:0},l;a.effects.save(c,e);c.show();a.effects.createWrapper(c);l=g.distance||c[h=="top"?"outerHeight":"outerWidth"]({margin:true})/2;if(i)c.css("opacity",0).css(h,b=="pos"?-l:l);k[h]=(i?b==="pos"?"+=":"-=": +b==="pos"?"-=":"+=")+l;c.animate(k,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f=="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery); +(function(a){a.effects.effect.explode=function(g,d){function c(){j.push(this);if(j.length==e*f){i.css({visibility:"visible"});a(j).remove();b||i.hide();d()}}var e=g.pieces?Math.round(Math.sqrt(g.pieces)):3,f=e,i=a(this),b=a.effects.setMode(i,g.mode||"hide")==="show",h=i.show().css("visibility","hidden").offset(),k=Math.ceil(i.outerWidth()/f),l=Math.ceil(i.outerHeight()/e),j=[],m,n,o,p,q,u;for(m=0;m<e;m++){p=h.top+m*l;u=m-(e-1)/2;for(n=0;n<f;n++){o=h.left+n*k;q=n-(f-1)/2;i.clone().appendTo("body").wrap("<div></div>").css({position:"absolute", +visibility:"visible",left:-n*k,top:-m*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:k,height:l,left:o+(b?q*k:0),top:p+(b?u*l:0),opacity:b?0:1}).animate({left:o+(b?0:q*k),top:p+(b?0:u*l),opacity:b?1:0},g.duration||500,g.easing,c)}}}})(jQuery); +(function(a){a.effects.effect.fade=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"toggle")==="hide";c.show();c.animate({opacity:e?0:1},{queue:false,duration:g.duration,easing:g.easing,complete:function(){e&&c.hide();d()}})}})(jQuery); +(function(a){a.effects.effect.fold=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"hide"),i=f==="show",b=f==="hide";f=g.size||15;var h=/([0-9]+)%/.exec(f),k=!!g.horizFirst,l=i!=k,j=l?["width","height"]:["height","width"],m=g.duration/2,n,o={},p={};a.effects.save(c,e);c.show();n=a.effects.createWrapper(c).css({overflow:"hidden"});l=l?[n.width(),n.height()]:[n.height(),n.width()];if(h)f=parseInt(h[1],10)/100*l[b?0:1];if(i)n.css(k? +{height:0,width:f}:{height:f,width:0});o[j[0]]=i?l[0]:f;p[j[1]]=i?l[1]:0;n.animate(o,m,g.easing).animate(p,m,g.easing,function(){b&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()})}})(jQuery); +(function(a){a.effects.effect.highlight=function(g,d){var c=a(this),e=["backgroundImage","backgroundColor","opacity"],f=a.effects.setMode(c,g.mode||"show"),i={backgroundColor:c.css("backgroundColor")};if(f==="hide")i.opacity=0;a.effects.save(c,e);c.show().css({backgroundImage:"none",backgroundColor:g.color||"#ffff99"}).animate(i,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f==="hide"&&c.hide();a.effects.restore(c,e);d()}})}})(jQuery); +(function(a){a.effects.effect.pulsate=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"show"),f=e==="show",i=e==="hide";e=(g.times||5)*2+(f||e==="hide"?1:0);var b=g.duration/e,h=0,k=c.queue(),l=k.length;if(f||!c.is(":visible")){c.css("opacity",0).show();h=1}for(f=1;f<e;f++){c.animate({opacity:h},b,g.easing);h=1-h}c.animate({opacity:h},b,g.easing);c.queue(function(){i&&c.hide();d()});l>1&&k.splice.apply(k,[1,0].concat(k.splice(l,e+1)));c.dequeue()}})(jQuery); +(function(a){a.effects.effect.puff=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"hide"),f=e==="hide",i=parseInt(g.percent,10)||150,b=i/100,h={height:c.height(),width:c.width()};a.extend(g,{effect:"scale",queue:false,fade:true,mode:e,complete:d,percent:f?i:100,from:f?h:{height:h.height*b,width:h.width*b}});c.effect(g)};a.effects.effect.scale=function(g,d){var c=a(this),e=a.extend(true,{},g),f=a.effects.setMode(c,g.mode||"effect"),i=parseInt(g.percent,10)||(parseInt(g.percent,10)==0?0: +f=="hide"?0:100),b=g.direction||"both",h=g.origin,k={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};i={y:b!="horizontal"?i/100:1,x:b!="vertical"?i/100:1};e.effect="size";e.queue=false;e.complete=d;if(f!="effect"){e.origin=h||["middle","center"];e.restore=true}e.from=g.from||(f=="show"?{height:0,width:0}:k);e.to={height:k.height*i.y,width:k.width*i.x,outerHeight:k.outerHeight*i.y,outerWidth:k.outerWidth*i.x};if(e.fade){if(f=="show"){e.from.opacity=0;e.to.opacity= +1}if(f=="hide"){e.from.opacity=1;e.to.opacity=0}}c.effect(e)};a.effects.effect.size=function(g,d){var c=a(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],f=["position","top","bottom","left","right","overflow","opacity"],i=["width","height","overflow"],b=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],l=a.effects.setMode(c,g.mode||"effect"),j=g.restore|| +l!=="effect",m=g.scale||"both",n=g.origin||["middle","center"],o,p,q,u=c.css("position"),s=c.css("bottom")!=="auto"?"bottom":"top";originalHorizontalPositioning=c.css("right")!=="auto"?"right":"left";l==="show"&&c.show();o={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};c.from=g.from||o;c.to=g.to||o;q={from:{y:c.from.height/o.height,x:c.from.width/o.width},to:{y:c.to.height/o.height,x:c.to.width/o.width}};if(m=="box"||m=="both"){if(q.from.y!==q.to.y){e=e.concat(h); +c.from=a.effects.setTransition(c,h,q.from.y,c.from);c.to=a.effects.setTransition(c,h,q.to.y,c.to)}if(q.from.x!==q.to.x){e=e.concat(k);c.from=a.effects.setTransition(c,k,q.from.x,c.from);c.to=a.effects.setTransition(c,k,q.to.x,c.to)}}if(m=="content"||m=="both")if(q.from.y!==q.to.y){e=e.concat(b);c.from=a.effects.setTransition(c,b,q.from.y,c.from);c.to=a.effects.setTransition(c,b,q.to.y,c.to)}a.effects.save(c,j?e:f);c.show();a.effects.createWrapper(c);c.css("overflow","hidden").css(c.from);if(n){p= +a.effects.getBaseline(n,o);c.from.top=(o.outerHeight-c.outerHeight())*p.y;c.from.left=(o.outerWidth-c.outerWidth())*p.x;c.to.top=(o.outerHeight-c.to.outerHeight)*p.y;c.to.left=(o.outerWidth-c.to.outerWidth)*p.x}c.css(c.from);if(m=="content"||m=="both"){h=h.concat(["marginTop","marginBottom"]).concat(b);k=k.concat(["marginLeft","marginRight"]);i=e.concat(h).concat(k);c.find("*[width]").each(function(){var r=a(this),t={height:r.height(),width:r.width()};j&&a.effects.save(r,i);r.from={height:t.height* +q.from.y,width:t.width*q.from.x};r.to={height:t.height*q.to.y,width:t.width*q.to.x};if(q.from.y!=q.to.y){r.from=a.effects.setTransition(r,h,q.from.y,r.from);r.to=a.effects.setTransition(r,h,q.to.y,r.to)}if(q.from.x!=q.to.x){r.from=a.effects.setTransition(r,k,q.from.x,r.from);r.to=a.effects.setTransition(r,k,q.to.x,r.to)}r.css(r.from);r.animate(r.to,g.duration,g.easing,function(){j&&a.effects.restore(r,i)})})}c.animate(c.to,{queue:false,duration:g.duration,easing:g.easing,complete:function(){c.to.opacity=== +0&&c.css("opacity",c.from.opacity);l=="hide"&&c.hide();a.effects.restore(c,j?e:f);j||(u==="static"?c.css({position:"relative",top:c.to.top,left:c.to.left}):a.each([s,originalHorizontalPositioning],function(r,t){c.css(t,function(v,w){var x=parseInt(w,10),C=r?c.to.left:c.to.top,A=r?c.to.outerWidth-c.from.outerWidth:c.to.outerHeight-c.from.outerHeight,y=n[r]===t,D=n[r]==="middle"||n[r]==="center";if(w==="auto")return C+"px";if(!(t=="left"||t=="top"))if(u==="relative")C*=-1;else D||(C-=A*(y?-1:1));return x+ +C+"px"})}));a.effects.removeWrapper(c);d()}})}})(jQuery); +(function(a){a.effects.effect.shake=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"effect"),i=g.direction||"left",b=g.distance||20,h=g.times||3,k=h*2+1,l=g.duration,j=i=="up"||i=="down"?"top":"left",m=i=="up"||i=="left";i={};var n={},o={},p=c.queue(),q=p.length;a.effects.save(c,e);c.show();a.effects.createWrapper(c);i[j]=(m?"-=":"+=")+b;n[j]=(m?"+=":"-=")+b*2;o[j]=(m?"-=":"+=")+b*2;c.animate(i,l,g.easing);for(b=1;b<h;b++)c.animate(n, +l,g.easing).animate(o,l,g.easing);c.animate(n,l,g.easing).animate(i,l/2,g.easing).queue(function(){f==="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()});q>1&&p.splice.apply(p,[1,0].concat(p.splice(q,k+1)));c.dequeue()}})(jQuery); +(function(a){a.effects.effect.slide=function(g,d){var c=a(this),e=["position","top","bottom","left","right","width","height"],f=a.effects.setMode(c,g.mode||"show"),i=f==="show",b=g.direction||"left",h=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left";var k,l={};a.effects.save(c,e);c.show();k=g.distance||c[h==="top"?"outerHeight":"outerWidth"]({margin:true});a.effects.createWrapper(c).css({overflow:"hidden"});if(i)c.css(h,b?isNaN(k)?"-"+k:-k:k);l[h]=(i?b?"+=":"-=":b?"-=":"+=")+k;c.animate(l,{queue:false, +duration:g.duration,easing:g.easing,complete:function(){f==="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery); +(function(a){a.effects.effect.transfer=function(g,d){var c=a(this),e=a(g.to),f=e.css("position")==="fixed",i=a("body"),b=f?i.scrollTop():0;i=f?i.scrollLeft():0;var h=e.offset();e={top:h.top-b,left:h.left-i,height:e.innerHeight(),width:e.innerWidth()};h=c.offset();var k=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(g.className).css({top:h.top-b,left:h.left-i,height:c.innerHeight(),width:c.innerWidth(),position:f?"fixed":"absolute"}).animate(e,g.duration,g.easing,function(){k.remove(); +d()})}})(jQuery); +(function(a){a.widget("ui.accordion",{version:"1.9pre",options:{active:0,animated:"slide",collapsible:false,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var g=this.options;this.lastToggle={};this.element.addClass("ui-accordion ui-widget ui-helper-reset");this.headers=this.element.find(g.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all");this._hoverable(this.headers); +this._focusable(this.headers);this.headers.find(":first-child").addClass("ui-accordion-heading");this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(!g.collapsible&&g.active===false)g.active=0;if(g.active<0)g.active+=this.headers.length;this.active=this._findActive(g.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");this._createIcons(); +this.refresh();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown.accordion",a.proxy(this,"_keydown")).next().attr("role","tabpanel");this.headers.not(this.active).attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();this.active.length?this.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):this.headers.eq(0).attr("tabIndex",0);a.browser.safari||this.headers.find("a").attr("tabIndex",-1);this._setupEvents(g.event)},_createIcons:function(){var g= +this.options.icons;if(g){a("<span>").addClass("ui-accordion-header-icon ui-icon "+g.header).prependTo(this.headers);this.active.children(".ui-accordion-header-icon").removeClass(g.header).addClass(g.activeHeader);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-accordion-header-icon").remove();this.element.removeClass("ui-accordion-icons")},_destroy:function(){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").find("a").removeAttr("tabIndex").end().find(".ui-accordion-heading").removeClass("ui-accordion-heading"); +this._destroyIcons();var g=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");this.options.heightStyle!=="content"&&g.css("height","")},_setOption:function(g,d){if(g==="active")this._activate(d);else{if(g==="event"){this.options.event&&this.headers.unbind(this.options.event+".accordion",this._eventHandler);this._setupEvents(d)}this._super("_setOption", +g,d);g==="collapsible"&&!d&&this.options.active===false&&this._activate(0);if(g==="icons"){this._destroyIcons();d&&this._createIcons()}g==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-accordion-disabled ui-state-disabled",!!d)}},_keydown:function(g){if(!(this.options.disabled||g.altKey||g.ctrlKey)){var d=a.ui.keyCode,c=this.headers.length,e=this.headers.index(g.target),f=false;switch(g.keyCode){case d.RIGHT:case d.DOWN:f=this.headers[(e+1)%c];break;case d.LEFT:case d.UP:f=this.headers[(e- +1+c)%c];break;case d.SPACE:case d.ENTER:this._eventHandler(g)}if(f){a(g.target).attr("tabIndex",-1);a(f).attr("tabIndex",0);f.focus();g.preventDefault()}}},refresh:function(){var g=this.options,d=this.element.parent(),c,e;if(g.heightStyle==="fill"){if(!a.support.minHeight){e=d.css("overflow");d.css("overflow","hidden")}c=d.height();this.element.siblings(":visible").each(function(){var f=a(this),i=f.css("position");i==="absolute"||i==="fixed"||(c-=f.outerHeight(true))});e&&d.css("overflow",e);this.headers.each(function(){c-= +a(this).outerHeight(true)});this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else if(g.heightStyle==="auto"){c=0;this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c)}return this},_activate:function(g){g=this._findActive(g)[0];if(g!==this.active[0]){g=g||this.active[0];this._eventHandler({target:g,currentTarget:g,preventDefault:a.noop})}},_findActive:function(g){return typeof g==="number"? +this.headers.eq(g):a()},_setupEvents:function(g){g&&this.headers.bind(g.split(" ").join(".accordion ")+".accordion",a.proxy(this,"_eventHandler"))},_eventHandler:function(g){var d=this.options,c=this.active,e=a(g.currentTarget),f=e[0]===c[0],i=f&&d.collapsible,b=i?a():e.next(),h=c.next();b={oldHeader:c,oldContent:h,newHeader:i?a():e,newContent:b};g.preventDefault();if(!(d.disabled||f&&!d.collapsible||this._trigger("beforeActivate",g,b)===false)){d.active=i?false:this.headers.index(e);this.active= +f?a():e;this._toggle(b);c.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-accordion-header-icon").removeClass(d.icons.activeHeader).addClass(d.icons.header);if(!f){e.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-accordion-header-icon").removeClass(d.icons.header).addClass(d.icons.activeHeader);e.next().addClass("ui-accordion-content-active")}}},_toggle:function(g){function d(){c._completed(g)} +var c=this,e=c.options,f=g.newContent,i=g.oldContent;if(e.animated){var b=a.ui.accordion.animations;e=e.animated;var h;if(!b[e]){h={easing:a.easing[e]?e:"slide",duration:700};e="slide"}b[e]({widget:c,toShow:f,toHide:i,prevShow:c.lastToggle.toShow,prevHide:c.lastToggle.toHide,complete:d,down:f.length&&(!i.length||f.index()<i.index())},h)}else{i.hide();f.show();d()}i.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur();f.prev().attr({"aria-expanded":"true","aria-selected":"true", +tabIndex:0}).focus()},_completed:function(g){var d=g.newContent,c=g.oldContent;this.options.heightStyle==="content"&&d.add(c).css({height:"",overflow:""});c.removeClass("ui-accordion-content-active");if(c.length)c.parent()[0].className=c.parent()[0].className;this._trigger("activate",null,g)}});a.extend(a.ui.accordion,{animations:{slide:function(g,d){if(g.prevShow||g.prevHide){g.prevHide.stop(true,true);g.toHide=g.prevShow}var c=g.toShow.css("overflow"),e=g.toHide.css("overflow"),f=0,i={},b={},h; +g=a.extend({easing:"swing",duration:300},g,d);g.widget.lastToggle=g;if(g.toHide.size())if(g.toShow.size()){var k=g.toShow;h=k[0].style.width;k.width(parseInt(k.parent().width(),10)-parseInt(k.css("paddingLeft"),10)-parseInt(k.css("paddingRight"),10)-(parseInt(k.css("borderLeftWidth"),10)||0)-(parseInt(k.css("borderRightWidth"),10)||0));a.each(["height","paddingTop","paddingBottom"],function(l,j){b[j]="hide";var m=(""+a.css(g.toShow[0],j)).match(/^([\d+-.]+)(.*)$/);i[j]={value:j==="height"&&m[1]=== +"0"?1:m[1],unit:m[2]||"px"}});g.toShow.css({height:0,overflow:"hidden"}).show();g.toHide.filter(":hidden").each(g.complete).end().filter(":visible").animate(b,{step:function(l,j){if(j.prop=="height"||j.prop=="paddingTop"||j.prop=="paddingBottom")f=j.end-j.start===0?0:(j.now-j.start)/(j.end-j.start);g.toShow[0].style[j.prop]=f*i[j.prop].value+i[j.prop].unit},duration:g.duration,easing:g.easing,complete:function(){g.toShow.css({width:h,overflow:c});g.toHide.css("overflow",e);g.complete()}})}else g.toHide.animate({height:"hide", +paddingTop:"hide",paddingBottom:"hide"},g);else{h=g.toShow[0].style.width;g.toShow.show().width(g.toShow.width()).hide().animate({height:"show",paddingTop:"show",paddingBottom:"show"},{duration:g.duration,easing:g.easing,complete:function(){g.toShow.width(h);g.complete()}})}},bounceslide:function(g){this.slide(g,{easing:g.down?"easeOutBounce":"swing",duration:g.down?1E3:200})}}});if(a.uiBackCompat!==false){(function(g,d){g.extend(d.options,{navigation:false,navigationFilter:function(){return this.href.toLowerCase()=== +location.href.toLowerCase()}});var c=d._create;d._create=function(){if(this.options.navigation){var e=this,f=this.element.find(this.options.header),i=f.next(),b=f.add(i).find("a").filter(this.options.navigationFilter)[0];b&&f.add(i).each(function(h){if(g.contains(this,b)){e.options.active=Math.floor(h/2);return false}})}c.call(this)}})(jQuery,jQuery.ui.accordion.prototype);(function(g,d){g.extend(d.options,{heightStyle:null,autoHeight:true,clearStyle:false,fillSpace:false});var c=d._create,e=d._setOption; +g.extend(d,{_create:function(){this.options.heightStyle=this.options.heightStyle||this._mergeHeightStyle();c.call(this)},_setOption:function(f){if(f==="autoHeight"||f==="clearStyle"||f==="fillSpace")this.options.heightStyle=this._mergeHeightStyle();e.apply(this,arguments)},_mergeHeightStyle:function(){var f=this.options;if(f.fillSpace)return"fill";if(f.clearStyle)return"content";if(f.autoHeight)return"auto"}})})(jQuery,jQuery.ui.accordion.prototype);(function(g,d){g.extend(d.options.icons,{activeHeader:null, +headerSelected:"ui-icon-triangle-1-s"});var c=d._createIcons;d._createIcons=function(){this.options.icons.activeHeader=this.options.icons.activeHeader||this.options.icons.headerSelected;c.call(this)}})(jQuery,jQuery.ui.accordion.prototype);(function(g,d){d.activate=d._activate;var c=d._findActive;d._findActive=function(e){if(e===-1)e=false;if(e&&typeof e!=="number"){e=this.headers.index(this.headers.filter(e));if(e===-1)e=false}return c.call(this,e)}})(jQuery,jQuery.ui.accordion.prototype);jQuery.ui.accordion.prototype.resize= +jQuery.ui.accordion.prototype.refresh;(function(g,d){g.extend(d.options,{change:null,changestart:null});var c=d._trigger;d._trigger=function(e,f,i){var b=c.apply(this,arguments);if(!b)return false;if(e==="beforeActivate")b=c.call(this,"changestart",f,i);else if(e==="activate")b=c.call(this,"change",f,i);return b}})(jQuery,jQuery.ui.accordion.prototype)}})(jQuery); +(function(a){var g=0;a.widget("ui.autocomplete",{version:"1.9pre",defaultElement:"<input>",options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var d=this,c=this.element[0].ownerDocument,e,f;this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"];this.element.addClass("ui-autocomplete-input").attr("autocomplete", +"off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(i){if(d.options.disabled||d.element.prop("readOnly"))f=e=true;else{f=e=false;var b=a.ui.keyCode;switch(i.keyCode){case b.PAGE_UP:e=true;d._move("previousPage",i);break;case b.PAGE_DOWN:e=true;d._move("nextPage",i);break;case b.UP:e=true;d._move("previous",i);i.preventDefault();break;case b.DOWN:e=true;d._move("next",i);i.preventDefault();break;case b.ENTER:case b.NUMPAD_ENTER:if(d.menu.active){e= +true;i.preventDefault()}case b.TAB:if(!d.menu.active)break;d.menu.select(i);break;case b.ESCAPE:if(d.menu.element.is(":visible")){d._value(d.term);d.close(i)}break;default:d._searchTimeout(i)}}}).bind("keypress.autocomplete",function(i){if(e){e=false;i.preventDefault()}else{var b=a.ui.keyCode;switch(i.keyCode){case b.PAGE_UP:d._move("previousPage",i);break;case b.PAGE_DOWN:d._move("nextPage",i);break;case b.UP:d._move("previous",i);i.preventDefault();break;case b.DOWN:d._move("next",i);i.preventDefault()}}}).bind("input.autocomplete", +function(i){if(f){f=false;i.preventDefault()}else d._searchTimeout(i)}).bind("focus.autocomplete",function(){if(!d.options.disabled){d.selectedItem=null;d.previous=d._value()}}).bind("blur.autocomplete",function(i){if(!d.options.disabled){clearTimeout(d.searching);d.closing=setTimeout(function(){d.close(i);d._change(i)},150)}});this._initSource();this.response=function(){return d._response.apply(d,arguments)};this.menu=a("<ul></ul>").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body", +c)[0]).mousedown(function(i){var b=d.menu.element[0];a(i.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(h){h.target!==d.element[0]&&h.target!==b&&!a.contains(b,h.target)&&d.close()})},1);setTimeout(function(){clearTimeout(d.closing)},13)}).menu({input:a(),focus:function(i,b){var h=b.item.data("item.autocomplete");false!==d._trigger("focus",i,{item:h})&&/^key/.test(i.originalEvent.type)&&d._value(h.value)},select:function(i,b){var h=b.item.data("item.autocomplete"), +k=d.previous;if(d.element[0]!==c.activeElement){d.element.focus();d.previous=k;setTimeout(function(){d.previous=k;d.selectedItem=h},1)}false!==d._trigger("select",i,{item:h})&&d._value(h.value);d.term=d._value();d.close(i);d.selectedItem=h}}).zIndex(this.element.zIndex()+1).hide().data("menu");a.fn.bgiframe&&this.menu.element.bgiframe()},_destroy:function(){clearTimeout(this.searching);this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); +this.menu.element.remove()},_setOption:function(d,c){this._super("_setOption",d,c);d==="source"&&this._initSource();if(d==="appendTo")this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]);d==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var d=this,c,e;if(a.isArray(this.options.source)){c=this.options.source;this.source=function(f,i){i(a.ui.autocomplete.filter(c,f.term))}}else if(typeof this.options.source==="string"){e=this.options.source;this.source=function(f, +i){d.xhr&&d.xhr.abort();d.xhr=a.ajax({url:e,data:f,dataType:"json",autocompleteRequest:++g,success:function(b){this.autocompleteRequest===g&&i(b)},error:function(){this.autocompleteRequest===g&&i([])}})}}else this.source=this.options.source},_searchTimeout:function(d){var c=this;clearTimeout(c.searching);c.searching=setTimeout(function(){if(c.term!==c._value()){c.selectedItem=null;c.search(null,d)}},c.options.delay)},search:function(d,c){d=d!=null?d:this._value();this.term=this._value();if(d.length< +this.options.minLength)return this.close(c);clearTimeout(this.closing);if(this._trigger("search",c)!==false)return this._search(d)},_search:function(d){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:d},this.response)},_response:function(d){if(d)d=this._normalize(d);this._trigger("response",null,{content:d});if(!this.options.disabled&&d&&d.length){this._suggest(d);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")}, +close:function(d){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.blur();this._trigger("close",d)}},_change:function(d){this.previous!==this._value()&&this._trigger("change",d,{item:this.selectedItem})},_normalize:function(d){if(d.length&&d[0].label&&d[0].value)return d;return a.map(d,function(c){if(typeof c==="string")return{label:c,value:c};return a.extend({label:c.label||c.value,value:c.value||c.label},c)})},_suggest:function(d){var c=this.menu.element.empty().zIndex(this.element.zIndex()+ +1);this._renderMenu(c,d);this.menu.blur();this.menu.refresh();c.show();this._resizeMenu();c.position(a.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var d=this.menu.element;d.outerWidth(Math.max(d.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(d,c){var e=this;a.each(c,function(f,i){e._renderItem(d,i)})},_renderItem:function(d,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(d)}, +_move:function(d,c){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(d)||this.menu.last()&&/^next/.test(d)){this._value(this.term);this.menu.blur()}else this.menu[d](c);else this.search(null,c)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)}});a.extend(a.ui.autocomplete,{escapeRegex:function(d){return d.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(d,c){var e=RegExp(a.ui.autocomplete.escapeRegex(c), +"i");return a.grep(d,function(f){return e.test(f.label||f.value||f)})}})})(jQuery); +(function(a){var g,d,c,e,f=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},i=function(b){var h=b.name,k=b.form,l=a([]);if(h)l=k?a(k).find("[name='"+h+"']"):a("[name='"+h+"']",b.ownerDocument).filter(function(){return!this.form});return l};a.widget("ui.button",{version:"1.9pre",defaultElement:"<button>",options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button", +f);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.prop("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,k=this.type==="checkbox"||this.type==="radio",l="ui-state-hover"+(!k?" ui-state-active":"");if(h.label===null)h.label=this.buttonElement.html();if(this.element.is(":disabled"))h.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button", +function(){if(!h.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){h.disabled||a(this).removeClass(l)}).bind("click.button",function(j){if(h.disabled){j.preventDefault();j.stopImmediatePropagation()}});this.element.bind("focus.button",function(){b.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){b.buttonElement.removeClass("ui-state-focus")});if(k){this.element.bind("change.button",function(){e|| +b.refresh()});this.buttonElement.bind("mousedown.button",function(j){if(!h.disabled){e=false;d=j.pageX;c=j.pageY}}).bind("mouseup.button",function(j){if(!h.disabled)if(d!==j.pageX||c!==j.pageY)e=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(h.disabled||e)return false;a(this).toggleClass("ui-state-active");b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(h.disabled||e)return false; +a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed","true");var j=b.element[0];i(j).not(j).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(h.disabled)return false;a(this).addClass("ui-state-active");g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(h.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button", +function(j){if(h.disabled)return false;if(j.keyCode==a.ui.keyCode.SPACE||j.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(j){j.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",h.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio": +this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){var b=this.element.parents().last(),h="label[for='"+this.element.attr("id")+"']";this.buttonElement=b.find(h);if(!this.buttonElement.length){b=b.length?b.siblings():this.element.siblings();this.buttonElement=b.filter(h);if(!this.buttonElement.length)this.buttonElement=b.find(h)}this.element.addClass("ui-helper-hidden-accessible");(b=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active"); +this.buttonElement.prop("aria-pressed",b)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()); +this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(b,h){this._super("_setOption",b,h);if(b==="disabled")h?this.element.prop("disabled",true):this.element.prop("disabled",false);else this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")i(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", +"false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"), +h=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),k=this.options.icons,l=k.primary&&k.secondary,j=[];if(k.primary||k.secondary){if(this.options.text)j.push("ui-button-text-icon"+(l?"s":k.primary?"-primary":"-secondary"));k.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+k.primary+"'></span>");k.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+k.secondary+"'></span>");if(!this.options.text){j.push(l?"ui-button-icons-only": +"ui-button-icon-only");this.hasTitle||b.attr("title",h)}}else j.push("ui-button-text-only");b.addClass(j.join(" "))}}});a.ui.button.version="1.9pre";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,h){b==="disabled"&&this.buttons.button("option",b,h);this._super("_setOption",b,h)},refresh:function(){var b=this.element.css("direction")=== +"rtl";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(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"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")}})})(jQuery); +(function(a,g){function d(){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,disabled:false};a.extend(this._defaults,this.regional[""]);this.dpDiv=c(a('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function c(b){return b.delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a", +"mouseout",function(){a(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&a(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&a(this).removeClass("ui-datepicker-next-hover")}).delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a","mouseover",function(){if(!a.datepicker._isDisabledDatepicker(i.inline?b.parent()[0]:i.input[0])){a(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); +a(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&a(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&a(this).addClass("ui-datepicker-next-hover")}})}function e(b,h){a.extend(b,h);for(var k in h)if(h[k]==null||h[k]==g)b[k]=h[k];return b}a.extend(a.ui,{datepicker:{version:"1.9pre"}});var f=(new Date).getTime(),i;a.extend(d.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("", +arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(b){e(this._defaults,b||{});return this},_attachDatepicker:function(b,h){var k=null,l;for(l in this._defaults){var j=b.getAttribute("date:"+l);if(j){k=k||{};try{k[l]=eval(j)}catch(m){k[l]=j}}}l=b.nodeName.toLowerCase();j=l=="div"||l=="span";if(!b.id){this.uuid+=1;b.id="dp"+this.uuid}var n=this._newInst(a(b),j);n.settings=a.extend({},h||{},k||{});if(l=="input")this._connectDatepicker(b,n);else j&&this._inlineDatepicker(b, +n)},_newInst:function(b,h){return{id:b[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:b,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:h,dpDiv:!h?this.dpDiv:c(a('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(b,h){var k=a(b);h.append=a([]);h.trigger=a([]);if(!k.hasClass(this.markerClassName)){this._attachments(k,h);k.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", +function(l,j,m){h.settings[j]=m}).bind("getData.datepicker",function(l,j){return this._get(h,j)});this._autoSize(h);a.data(b,"datepicker",h);h.settings.disabled&&this._disableDatepicker(b)}},_attachments:function(b,h){var k=this._get(h,"appendText"),l=this._get(h,"isRTL");h.append&&h.append.remove();if(k){h.append=a('<span class="'+this._appendClass+'">'+k+"</span>");b[l?"before":"after"](h.append)}b.unbind("focus",this._showDatepicker);h.trigger&&h.trigger.remove();k=this._get(h,"showOn");if(k== +"focus"||k=="both")b.focus(this._showDatepicker);if(k=="button"||k=="both"){k=this._get(h,"buttonText");var j=this._get(h,"buttonImage");h.trigger=a(this._get(h,"buttonImageOnly")?a("<img/>").addClass(this._triggerClass).attr({src:j,alt:k,title:k}):a('<button type="button"></button>').addClass(this._triggerClass).html(j==""?k:a("<img/>").attr({src:j,alt:k,title:k})));b[l?"before":"after"](h.trigger);h.trigger.click(function(){a.datepicker._datepickerShowing&&a.datepicker._lastInput==b[0]?a.datepicker._hideDatepicker(): +a.datepicker._showDatepicker(b[0]);return false})}},_autoSize:function(b){if(this._get(b,"autoSize")&&!b.inline){var h=new Date(2009,11,20),k=this._get(b,"dateFormat");if(k.match(/[DM]/)){var l=function(j){for(var m=0,n=0,o=0;o<j.length;o++)if(j[o].length>m){m=j[o].length;n=o}return n};h.setMonth(l(this._get(b,k.match(/MM/)?"monthNames":"monthNamesShort")));h.setDate(l(this._get(b,k.match(/DD/)?"dayNames":"dayNamesShort"))+20-h.getDay())}b.input.attr("size",this._formatDate(b,h).length)}},_inlineDatepicker:function(b, +h){var k=a(b);if(!k.hasClass(this.markerClassName)){k.addClass(this.markerClassName).append(h.dpDiv).bind("setData.datepicker",function(l,j,m){h.settings[j]=m}).bind("getData.datepicker",function(l,j){return this._get(h,j)});a.data(b,"datepicker",h);this._setDate(h,this._getDefaultDate(h),true);this._updateDatepicker(h);this._updateAlternate(h);h.settings.disabled&&this._disableDatepicker(b);h.dpDiv.css("display","block")}},_dialogDatepicker:function(b,h,k,l,j){b=this._dialogInst;if(!b){this.uuid+= +1;this._dialogInput=a('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);a("body").append(this._dialogInput);b=this._dialogInst=this._newInst(this._dialogInput,false);b.settings={};a.data(this._dialogInput[0],"datepicker",b)}e(b.settings,l||{});h=h&&h.constructor==Date?this._formatDate(b,h):h;this._dialogInput.val(h);this._pos=j?j.length?j:[j.pageX,j.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");b.settings.onSelect=k;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);a.blockUI&&a.blockUI(this.dpDiv);a.data(this._dialogInput[0],"datepicker",b);return this},_destroyDatepicker:function(b){var h= +a(b),k=a.data(b,"datepicker");if(h.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();a.removeData(b,"datepicker");if(l=="input"){k.append.remove();k.trigger.remove();h.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(l=="div"||l=="span")h.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(b){var h=a(b),k=a.data(b,"datepicker");if(h.hasClass(this.markerClassName)){var l= +b.nodeName.toLowerCase();if(l=="input"){b.disabled=false;k.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(l=="div"||l=="span"){h=h.children("."+this._inlineClass);h.children().removeClass("ui-state-disabled");h.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",false)}this._disabledInputs=a.map(this._disabledInputs,function(j){return j==b?null:j})}},_disableDatepicker:function(b){var h=a(b),k=a.data(b, +"datepicker");if(h.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();if(l=="input"){b.disabled=true;k.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(l=="div"||l=="span"){h=h.children("."+this._inlineClass);h.children().addClass("ui-state-disabled");h.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",true)}this._disabledInputs=a.map(this._disabledInputs,function(j){return j==b? +null:j});this._disabledInputs[this._disabledInputs.length]=b}},_isDisabledDatepicker:function(b){if(!b)return false;for(var h=0;h<this._disabledInputs.length;h++)if(this._disabledInputs[h]==b)return true;return false},_getInst:function(b){try{return a.data(b,"datepicker")}catch(h){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(b,h,k){var l=this._getInst(b);if(arguments.length==2&&typeof h=="string")return h=="defaults"?a.extend({},a.datepicker._defaults):l?h=="all"? +a.extend({},l.settings):this._get(l,h):null;var j=h||{};if(typeof h=="string"){j={};j[h]=k}if(l){this._curInst==l&&this._hideDatepicker();var m=this._getDateDatepicker(b,true),n=this._getMinMaxDate(l,"min"),o=this._getMinMaxDate(l,"max");e(l.settings,j);if(n!==null&&j.dateFormat!==g&&j.minDate===g)l.settings.minDate=this._formatDate(l,n);if(o!==null&&j.dateFormat!==g&&j.maxDate===g)l.settings.maxDate=this._formatDate(l,o);this._attachments(a(b),l);this._autoSize(l);this._setDate(l,m);this._updateAlternate(l); +this._updateDatepicker(l)}},_changeDatepicker:function(b,h,k){this._optionDatepicker(b,h,k)},_refreshDatepicker:function(b){(b=this._getInst(b))&&this._updateDatepicker(b)},_setDateDatepicker:function(b,h){var k=this._getInst(b);if(k){this._setDate(k,h);this._updateDatepicker(k);this._updateAlternate(k)}},_getDateDatepicker:function(b,h){var k=this._getInst(b);k&&!k.inline&&this._setDateFromField(k,h);return k?this._getDate(k):null},_doKeyDown:function(b){var h=a.datepicker._getInst(b.target),k=true, +l=h.dpDiv.is(".ui-datepicker-rtl");h._keyEvent=true;if(a.datepicker._datepickerShowing)switch(b.keyCode){case 9:a.datepicker._hideDatepicker();k=false;break;case 13:k=a("td."+a.datepicker._dayOverClass+":not(."+a.datepicker._currentClass+")",h.dpDiv);k[0]&&a.datepicker._selectDay(b.target,h.selectedMonth,h.selectedYear,k[0]);if(b=a.datepicker._get(h,"onSelect")){k=a.datepicker._formatDate(h);b.apply(h.input?h.input[0]:null,[k,h])}else a.datepicker._hideDatepicker();return false;case 27:a.datepicker._hideDatepicker(); +break;case 33:a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(h,"stepBigMonths"):-a.datepicker._get(h,"stepMonths"),"M");break;case 34:a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(h,"stepBigMonths"):+a.datepicker._get(h,"stepMonths"),"M");break;case 35:if(b.ctrlKey||b.metaKey)a.datepicker._clearDate(b.target);k=b.ctrlKey||b.metaKey;break;case 36:if(b.ctrlKey||b.metaKey)a.datepicker._gotoToday(b.target);k=b.ctrlKey||b.metaKey;break;case 37:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target, +l?+1:-1,"D");k=b.ctrlKey||b.metaKey;if(b.originalEvent.altKey)a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(h,"stepBigMonths"):-a.datepicker._get(h,"stepMonths"),"M");break;case 38:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,-7,"D");k=b.ctrlKey||b.metaKey;break;case 39:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,l?-1:+1,"D");k=b.ctrlKey||b.metaKey;if(b.originalEvent.altKey)a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(h,"stepBigMonths"): ++a.datepicker._get(h,"stepMonths"),"M");break;case 40:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,+7,"D");k=b.ctrlKey||b.metaKey;break;default:k=false}else if(b.keyCode==36&&b.ctrlKey)a.datepicker._showDatepicker(this);else k=false;if(k){b.preventDefault();b.stopPropagation()}},_doKeyPress:function(b){var h=a.datepicker._getInst(b.target);if(a.datepicker._get(h,"constrainInput")){h=a.datepicker._possibleChars(a.datepicker._get(h,"dateFormat"));var k=String.fromCharCode(b.charCode==g? +b.keyCode:b.charCode);return b.ctrlKey||b.metaKey||k<" "||!h||h.indexOf(k)>-1}},_doKeyUp:function(b){b=a.datepicker._getInst(b.target);if(b.input.val()!=b.lastVal)try{if(a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,a.datepicker._getFormatConfig(b))){a.datepicker._setDateFromField(b);a.datepicker._updateAlternate(b);a.datepicker._updateDatepicker(b)}}catch(h){a.datepicker.log(h)}return true},_showDatepicker:function(b){b=b.target||b;if(b.nodeName.toLowerCase()!= +"input")b=a("input",b.parentNode)[0];if(!(a.datepicker._isDisabledDatepicker(b)||a.datepicker._lastInput==b)){var h=a.datepicker._getInst(b);if(a.datepicker._curInst&&a.datepicker._curInst!=h){a.datepicker._curInst.dpDiv.stop(true,true);h&&a.datepicker._datepickerShowing&&a.datepicker._hideDatepicker(a.datepicker._curInst.input[0])}var k=a.datepicker._get(h,"beforeShow");k=k?k.apply(b,[b,h]):{};if(k!==false){e(h.settings,k);h.lastVal=null;a.datepicker._lastInput=b;a.datepicker._setDateFromField(h); +if(a.datepicker._inDialog)b.value="";if(!a.datepicker._pos){a.datepicker._pos=a.datepicker._findPos(b);a.datepicker._pos[1]+=b.offsetHeight}var l=false;a(b).parents().each(function(){l|=a(this).css("position")=="fixed";return!l});if(l&&a.browser.opera){a.datepicker._pos[0]-=document.documentElement.scrollLeft;a.datepicker._pos[1]-=document.documentElement.scrollTop}k={left:a.datepicker._pos[0],top:a.datepicker._pos[1]};a.datepicker._pos=null;h.dpDiv.empty();h.dpDiv.css({position:"absolute",display:"block", +top:"-1000px"});a.datepicker._updateDatepicker(h);k=a.datepicker._checkOffset(h,k,l);h.dpDiv.css({position:a.datepicker._inDialog&&a.blockUI?"static":l?"fixed":"absolute",display:"none",left:k.left+"px",top:k.top+"px"});if(!h.inline){k=a.datepicker._get(h,"showAnim");var j=a.datepicker._get(h,"duration"),m=function(){var n=h.dpDiv.find("iframe.ui-datepicker-cover");if(n.length){var o=a.datepicker._getBorders(h.dpDiv);n.css({left:-o[0],top:-o[1],width:h.dpDiv.outerWidth(),height:h.dpDiv.outerHeight()})}}; +h.dpDiv.zIndex(a(b).zIndex()+1);a.datepicker._datepickerShowing=true;if(a.effects&&(a.effects.effect[k]||a.effects[k]))h.dpDiv.show(k,a.datepicker._get(h,"showOptions"),j,m);else h.dpDiv[k||"show"](k?j:null,m);if(!k||!j)m();h.input.is(":visible")&&!h.input.is(":disabled")&&h.input.focus();a.datepicker._curInst=h}}}},_updateDatepicker:function(b){this.maxRows=4;var h=a.datepicker._getBorders(b.dpDiv);i=b;b.dpDiv.empty().append(this._generateHTML(b));var k=b.dpDiv.find("iframe.ui-datepicker-cover"); +k.length&&k.css({left:-h[0],top:-h[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()});b.dpDiv.find("."+this._dayOverClass+" a").mouseover();h=this._getNumberOfMonths(b);k=h[1];b.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");k>1&&b.dpDiv.addClass("ui-datepicker-multi-"+k).css("width",17*k+"em");b.dpDiv[(h[0]!=1||h[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");b.dpDiv[(this._get(b,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"); +b==a.datepicker._curInst&&a.datepicker._datepickerShowing&&b.input&&b.input.is(":visible")&&!b.input.is(":disabled")&&b.input[0]!=document.activeElement&&b.input.focus();if(b.yearshtml){var l=b.yearshtml;setTimeout(function(){l===b.yearshtml&&b.yearshtml&&b.dpDiv.find("select.ui-datepicker-year:first").replaceWith(b.yearshtml);l=b.yearshtml=null},0)}},_getBorders:function(b){var h=function(k){return{thin:1,medium:2,thick:3}[k]||k};return[parseFloat(h(b.css("border-left-width"))),parseFloat(h(b.css("border-top-width")))]}, +_checkOffset:function(b,h,k){var l=b.dpDiv.outerWidth(),j=b.dpDiv.outerHeight(),m=b.input?b.input.outerWidth():0,n=b.input?b.input.outerHeight():0,o=document.documentElement.clientWidth+a(document).scrollLeft(),p=document.documentElement.clientHeight+a(document).scrollTop();h.left-=this._get(b,"isRTL")?l-m:0;h.left-=k&&h.left==b.input.offset().left?a(document).scrollLeft():0;h.top-=k&&h.top==b.input.offset().top+n?a(document).scrollTop():0;h.left-=Math.min(h.left,h.left+l>o&&o>l?Math.abs(h.left+l- +o):0);h.top-=Math.min(h.top,h.top+j>p&&p>j?Math.abs(j+n):0);return h},_findPos:function(b){for(var h=this._get(this._getInst(b),"isRTL");b&&(b.type=="hidden"||b.nodeType!=1||a.expr.filters.hidden(b));)b=b[h?"previousSibling":"nextSibling"];b=a(b).offset();return[b.left,b.top]},_hideDatepicker:function(b){var h=this._curInst;if(!(!h||b&&h!=a.data(b,"datepicker")))if(this._datepickerShowing){b=this._get(h,"showAnim");var k=this._get(h,"duration"),l=function(){a.datepicker._tidyDialog(h);this._curInst= +null};if(a.effects&&(a.effects.effect[b]||a.effects[b]))h.dpDiv.hide(b,a.datepicker._get(h,"showOptions"),k,l);else h.dpDiv[b=="slideDown"?"slideUp":b=="fadeIn"?"fadeOut":"hide"](b?k:null,l);b||l();this._datepickerShowing=false;if(b=this._get(h,"onClose"))b.apply(h.input?h.input[0]:null,[h.input?h.input.val():"",h]);this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(a.blockUI){a.unblockUI();a("body").append(this.dpDiv)}}this._inDialog=false}}, +_tidyDialog:function(b){b.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(b){if(a.datepicker._curInst){b=a(b.target);var h=a.datepicker._getInst(b[0]);if(b[0].id!=a.datepicker._mainDivId&&b.parents("#"+a.datepicker._mainDivId).length==0&&!b.hasClass(a.datepicker.markerClassName)&&!b.hasClass(a.datepicker._triggerClass)&&a.datepicker._datepickerShowing&&!(a.datepicker._inDialog&&a.blockUI)||b.hasClass(a.datepicker.markerClassName)&&a.datepicker._curInst!= +h)a.datepicker._hideDatepicker()}},_adjustDate:function(b,h,k){b=a(b);var l=this._getInst(b[0]);if(!this._isDisabledDatepicker(b[0])){this._adjustInstDate(l,h+(k=="M"?this._get(l,"showCurrentAtPos"):0),k);this._updateDatepicker(l)}},_gotoToday:function(b){b=a(b);var h=this._getInst(b[0]);if(this._get(h,"gotoCurrent")&&h.currentDay){h.selectedDay=h.currentDay;h.drawMonth=h.selectedMonth=h.currentMonth;h.drawYear=h.selectedYear=h.currentYear}else{var k=new Date;h.selectedDay=k.getDate();h.drawMonth= +h.selectedMonth=k.getMonth();h.drawYear=h.selectedYear=k.getFullYear()}this._notifyChange(h);this._adjustDate(b)},_selectMonthYear:function(b,h,k){b=a(b);var l=this._getInst(b[0]);l["selected"+(k=="M"?"Month":"Year")]=l["draw"+(k=="M"?"Month":"Year")]=parseInt(h.options[h.selectedIndex].value,10);this._notifyChange(l);this._adjustDate(b)},_selectDay:function(b,h,k,l){var j=a(b);if(!(a(l).hasClass(this._unselectableClass)||this._isDisabledDatepicker(j[0]))){j=this._getInst(j[0]);j.selectedDay=j.currentDay= +a("a",l).html();j.selectedMonth=j.currentMonth=h;j.selectedYear=j.currentYear=k;this._selectDate(b,this._formatDate(j,j.currentDay,j.currentMonth,j.currentYear))}},_clearDate:function(b){b=a(b);this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(b,h){var k=this._getInst(a(b)[0]);h=h!=null?h:this._formatDate(k);k.input&&k.input.val(h);this._updateAlternate(k);var l=this._get(k,"onSelect");if(l)l.apply(k.input?k.input[0]:null,[h,k]);else k.input&&k.input.trigger("change");if(k.inline)this._updateDatepicker(k); +else{this._hideDatepicker();this._lastInput=k.input[0];typeof k.input[0]!="object"&&k.input.focus();this._lastInput=null}},_updateAlternate:function(b){var h=this._get(b,"altField");if(h){var k=this._get(b,"altFormat")||this._get(b,"dateFormat"),l=this._getDate(b),j=this.formatDate(k,l,this._getFormatConfig(b));a(h).each(function(){a(this).val(j)})}},noWeekends:function(b){b=b.getDay();return[b>0&&b<6,""]},iso8601Week:function(b){b=new Date(b.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var h= +b.getTime();b.setMonth(0);b.setDate(1);return Math.floor(Math.round((h-b)/864E5)/7)+1},parseDate:function(b,h,k){if(b==null||h==null)throw"Invalid arguments";h=typeof h=="object"?h.toString():h+"";if(h=="")return null;var l=(k?k.shortYearCutoff:null)||this._defaults.shortYearCutoff;l=typeof l!="string"?l:(new Date).getFullYear()%100+parseInt(l,10);for(var j=(k?k.dayNamesShort:null)||this._defaults.dayNamesShort,m=(k?k.dayNames:null)||this._defaults.dayNames,n=(k?k.monthNamesShort:null)||this._defaults.monthNamesShort, +o=(k?k.monthNames:null)||this._defaults.monthNames,p=k=-1,q=-1,u=-1,s=false,r=function(y){(y=C+1<b.length&&b.charAt(C+1)==y)&&C++;return y},t=function(y){var D=r(y);y=h.substring(x).match(RegExp("^\\d{1,"+(y=="@"?14:y=="!"?20:y=="y"&&D?4:y=="o"?3:2)+"}"));if(!y)throw"Missing number at position "+x;x+=y[0].length;return parseInt(y[0],10)},v=function(y,D,J){y=a.map(r(y)?J:D,function(H,E){return[[E,H]]}).sort(function(H,E){return-(H[1].length-E[1].length)});var I=-1;a.each(y,function(H,E){var K=E[1]; +if(h.substr(x,K.length).toLowerCase()==K.toLowerCase()){I=E[0];x+=K.length;return false}});if(I!=-1)return I+1;else throw"Unknown name at position "+x;},w=function(){if(h.charAt(x)!=b.charAt(C))throw"Unexpected literal at position "+x;x++},x=0,C=0;C<b.length;C++)if(s)if(b.charAt(C)=="'"&&!r("'"))s=false;else w();else switch(b.charAt(C)){case "d":q=t("d");break;case "D":v("D",j,m);break;case "o":u=t("o");break;case "m":p=t("m");break;case "M":p=v("M",n,o);break;case "y":k=t("y");break;case "@":var A= +new Date(t("@"));k=A.getFullYear();p=A.getMonth()+1;q=A.getDate();break;case "!":A=new Date((t("!")-this._ticksTo1970)/1E4);k=A.getFullYear();p=A.getMonth()+1;q=A.getDate();break;case "'":if(r("'"))w();else s=true;break;default:w()}if(x<h.length){j=h.substr(x);if(!/^\s+/.test(j))throw"Extra/unparsed characters found in date: "+j;}if(k==-1)k=(new Date).getFullYear();else if(k<100)k+=(new Date).getFullYear()-(new Date).getFullYear()%100+(k<=l?0:-100);if(u>-1){p=1;q=u;do{l=this._getDaysInMonth(k,p-1); +if(q<=l)break;p++;q-=l}while(1)}A=this._daylightSavingAdjust(new Date(k,p-1,q));if(A.getFullYear()!=k||A.getMonth()+1!=p||A.getDate()!=q)throw"Invalid date";return A},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))*864E9,formatDate:function(b,h,k){if(!h)return""; +var l=(k?k.dayNamesShort:null)||this._defaults.dayNamesShort,j=(k?k.dayNames:null)||this._defaults.dayNames,m=(k?k.monthNamesShort:null)||this._defaults.monthNamesShort;k=(k?k.monthNames:null)||this._defaults.monthNames;var n=function(r){(r=s+1<b.length&&b.charAt(s+1)==r)&&s++;return r},o=function(r,t,v){t=""+t;if(n(r))for(;t.length<v;)t="0"+t;return t},p=function(r,t,v,w){return n(r)?w[t]:v[t]},q="",u=false;if(h)for(var s=0;s<b.length;s++)if(u)if(b.charAt(s)=="'"&&!n("'"))u=false;else q+=b.charAt(s); +else switch(b.charAt(s)){case "d":q+=o("d",h.getDate(),2);break;case "D":q+=p("D",h.getDay(),l,j);break;case "o":q+=o("o",Math.round(((new Date(h.getFullYear(),h.getMonth(),h.getDate())).getTime()-(new Date(h.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":q+=o("m",h.getMonth()+1,2);break;case "M":q+=p("M",h.getMonth(),m,k);break;case "y":q+=n("y")?h.getFullYear():(h.getYear()%100<10?"0":"")+h.getYear()%100;break;case "@":q+=h.getTime();break;case "!":q+=h.getTime()*1E4+this._ticksTo1970; +break;case "'":if(n("'"))q+="'";else u=true;break;default:q+=b.charAt(s)}return q},_possibleChars:function(b){for(var h="",k=false,l=function(m){(m=j+1<b.length&&b.charAt(j+1)==m)&&j++;return m},j=0;j<b.length;j++)if(k)if(b.charAt(j)=="'"&&!l("'"))k=false;else h+=b.charAt(j);else switch(b.charAt(j)){case "d":case "m":case "y":case "@":h+="0123456789";break;case "D":case "M":return null;case "'":if(l("'"))h+="'";else k=true;break;default:h+=b.charAt(j)}return h},_get:function(b,h){return b.settings[h]!== +g?b.settings[h]:this._defaults[h]},_setDateFromField:function(b,h){if(b.input.val()!=b.lastVal){var k=this._get(b,"dateFormat"),l=b.lastVal=b.input?b.input.val():null,j,m;j=m=this._getDefaultDate(b);var n=this._getFormatConfig(b);try{j=this.parseDate(k,l,n)||m}catch(o){this.log(o);l=h?"":l}b.selectedDay=j.getDate();b.drawMonth=b.selectedMonth=j.getMonth();b.drawYear=b.selectedYear=j.getFullYear();b.currentDay=l?j.getDate():0;b.currentMonth=l?j.getMonth():0;b.currentYear=l?j.getFullYear():0;this._adjustInstDate(b)}}, +_getDefaultDate:function(b){return this._restrictMinMax(b,this._determineDate(b,this._get(b,"defaultDate"),new Date))},_determineDate:function(b,h,k){var l=function(j){var m=new Date;m.setDate(m.getDate()+j);return m};if(h=(h=h==null||h===""?k:typeof h=="string"?function(j){try{return a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),j,a.datepicker._getFormatConfig(b))}catch(m){}var n=(j.toLowerCase().match(/^c/)?a.datepicker._getDate(b):null)||new Date,o=n.getFullYear(),p=n.getMonth();n=n.getDate(); +for(var q=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,u=q.exec(j);u;){switch(u[2]||"d"){case "d":case "D":n+=parseInt(u[1],10);break;case "w":case "W":n+=parseInt(u[1],10)*7;break;case "m":case "M":p+=parseInt(u[1],10);n=Math.min(n,a.datepicker._getDaysInMonth(o,p));break;case "y":case "Y":o+=parseInt(u[1],10);n=Math.min(n,a.datepicker._getDaysInMonth(o,p))}u=q.exec(j)}return new Date(o,p,n)}(h):typeof h=="number"?isNaN(h)?k:l(h):new Date(h.getTime()))&&h.toString()=="Invalid Date"?k:h){h.setHours(0);h.setMinutes(0); +h.setSeconds(0);h.setMilliseconds(0)}return this._daylightSavingAdjust(h)},_daylightSavingAdjust:function(b){if(!b)return null;b.setHours(b.getHours()>12?b.getHours()+2:0);return b},_setDate:function(b,h,k){var l=!h,j=b.selectedMonth,m=b.selectedYear;h=this._restrictMinMax(b,this._determineDate(b,h,new Date));b.selectedDay=b.currentDay=h.getDate();b.drawMonth=b.selectedMonth=b.currentMonth=h.getMonth();b.drawYear=b.selectedYear=b.currentYear=h.getFullYear();if((j!=b.selectedMonth||m!=b.selectedYear)&& +!k)this._notifyChange(b);this._adjustInstDate(b);if(b.input)b.input.val(l?"":this._formatDate(b))},_getDate:function(b){return!b.currentYear||b.input&&b.input.val()==""?null:this._daylightSavingAdjust(new Date(b.currentYear,b.currentMonth,b.currentDay))},_generateHTML:function(b){var h=new Date;h=this._daylightSavingAdjust(new Date(h.getFullYear(),h.getMonth(),h.getDate()));var k=this._get(b,"isRTL"),l=this._get(b,"showButtonPanel"),j=this._get(b,"hideIfNoPrevNext"),m=this._get(b,"navigationAsDateFormat"), +n=this._getNumberOfMonths(b),o=this._get(b,"showCurrentAtPos"),p=this._get(b,"stepMonths"),q=n[0]!=1||n[1]!=1,u=this._daylightSavingAdjust(!b.currentDay?new Date(9999,9,9):new Date(b.currentYear,b.currentMonth,b.currentDay)),s=this._getMinMaxDate(b,"min"),r=this._getMinMaxDate(b,"max");o=b.drawMonth-o;var t=b.drawYear;if(o<0){o+=12;t--}if(r){var v=this._daylightSavingAdjust(new Date(r.getFullYear(),r.getMonth()-n[0]*n[1]+1,r.getDate()));for(v=s&&v<s?s:v;this._daylightSavingAdjust(new Date(t,o,1))> +v;){o--;if(o<0){o=11;t--}}}b.drawMonth=o;b.drawYear=t;v=this._get(b,"prevText");v=!m?v:this.formatDate(v,this._daylightSavingAdjust(new Date(t,o-p,1)),this._getFormatConfig(b));v=this._canAdjustMonth(b,-1,t,o)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+f+".datepicker._adjustDate('#"+b.id+"', -"+p+", 'M');\" title=\""+v+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"e":"w")+'">'+v+"</span></a>":j?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ +v+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"e":"w")+'">'+v+"</span></a>";var w=this._get(b,"nextText");w=!m?w:this.formatDate(w,this._daylightSavingAdjust(new Date(t,o+p,1)),this._getFormatConfig(b));j=this._canAdjustMonth(b,+1,t,o)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+f+".datepicker._adjustDate('#"+b.id+"', +"+p+", 'M');\" title=\""+w+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"w":"e")+'">'+w+"</span></a>":j?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ +w+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"w":"e")+'">'+w+"</span></a>";p=this._get(b,"currentText");w=this._get(b,"gotoCurrent")&&b.currentDay?u:h;p=!m?p:this.formatDate(p,w,this._getFormatConfig(b));m=!b.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+f+'.datepicker._hideDatepicker();">'+this._get(b,"closeText")+"</button>":"";l=l?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(k?m:"")+(this._isInRange(b, +w)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+f+".datepicker._gotoToday('#"+b.id+"');\">"+p+"</button>":"")+(k?"":m)+"</div>":"";m=parseInt(this._get(b,"firstDay"),10);m=isNaN(m)?0:m;p=this._get(b,"showWeek");w=this._get(b,"dayNames");this._get(b,"dayNamesShort");var x=this._get(b,"dayNamesMin"),C=this._get(b,"monthNames"),A=this._get(b,"monthNamesShort"),y=this._get(b,"beforeShowDay"),D=this._get(b,"showOtherMonths"), +J=this._get(b,"selectOtherMonths");this._get(b,"calculateWeek");for(var I=this._getDefaultDate(b),H="",E=0;E<n[0];E++){var K="";this.maxRows=4;for(var M=0;M<n[1];M++){var P=this._daylightSavingAdjust(new Date(t,o,b.selectedDay)),B=" ui-corner-all",F="";if(q){F+='<div class="ui-datepicker-group';if(n[1]>1)switch(M){case 0:F+=" ui-datepicker-group-first";B=" ui-corner-"+(k?"right":"left");break;case n[1]-1:F+=" ui-datepicker-group-last";B=" ui-corner-"+(k?"left":"right");break;default:F+=" ui-datepicker-group-middle"; +B=""}F+='">'}F+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+B+'">'+(/all|left/.test(B)&&E==0?k?j:v:"")+(/all|right/.test(B)&&E==0?k?v:j:"")+this._generateMonthYearHeader(b,o,t,s,r,E>0||M>0,C,A)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var G=p?'<th class="ui-datepicker-week-col">'+this._get(b,"weekHeader")+"</th>":"";for(B=0;B<7;B++){var z=(B+m)%7;G+="<th"+((B+m+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+w[z]+'">'+x[z]+"</span></th>"}F+= +G+"</tr></thead><tbody>";G=this._getDaysInMonth(t,o);if(t==b.selectedYear&&o==b.selectedMonth)b.selectedDay=Math.min(b.selectedDay,G);B=(this._getFirstDayOfMonth(t,o)-m+7)%7;G=Math.ceil((B+G)/7);this.maxRows=G=q?this.maxRows>G?this.maxRows:G:G;z=this._daylightSavingAdjust(new Date(t,o,1-B));for(var Q=0;Q<G;Q++){F+="<tr>";var R=!p?"":'<td class="ui-datepicker-week-col">'+this._get(b,"calculateWeek")(z)+"</td>";for(B=0;B<7;B++){var N=y?y.apply(b.input?b.input[0]:null,[z]):[true,""],L=z.getMonth()!= +o,O=L&&!J||!N[0]||s&&z<s||r&&z>r;R+='<td class="'+((B+m+6)%7>=5?" ui-datepicker-week-end":"")+(L?" ui-datepicker-other-month":"")+(z.getTime()==P.getTime()&&o==b.selectedMonth&&b._keyEvent||I.getTime()==z.getTime()&&I.getTime()==P.getTime()?" "+this._dayOverClass:"")+(O?" "+this._unselectableClass+" ui-state-disabled":"")+(L&&!D?"":" "+N[1]+(z.getTime()==u.getTime()?" "+this._currentClass:"")+(z.getTime()==h.getTime()?" ui-datepicker-today":""))+'"'+((!L||D)&&N[2]?' title="'+N[2]+'"':"")+(O?"":' onclick="DP_jQuery_'+ +f+".datepicker._selectDay('#"+b.id+"',"+z.getMonth()+","+z.getFullYear()+', this);return false;"')+">"+(L&&!D?" ":O?'<span class="ui-state-default">'+z.getDate()+"</span>":'<a class="ui-state-default'+(z.getTime()==h.getTime()?" ui-state-highlight":"")+(z.getTime()==u.getTime()?" ui-state-active":"")+(L?" ui-priority-secondary":"")+'" href="#">'+z.getDate()+"</a>")+"</td>";z.setDate(z.getDate()+1);z=this._daylightSavingAdjust(z)}F+=R+"</tr>"}o++;if(o>11){o=0;t++}F+="</tbody></table>"+(q?"</div>"+ +(n[0]>0&&M==n[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");K+=F}H+=K}H+=l+(a.browser.msie&&parseInt(a.browser.version,10)<7&&!b.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");b._keyEvent=false;return H},_generateMonthYearHeader:function(b,h,k,l,j,m,n,o){var p=this._get(b,"changeMonth"),q=this._get(b,"changeYear"),u=this._get(b,"showMonthAfterYear"),s='<div class="ui-datepicker-title">',r="";if(m||!p)r+='<span class="ui-datepicker-month">'+ +n[h]+"</span>";else{n=l&&l.getFullYear()==k;var t=j&&j.getFullYear()==k;r+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+f+".datepicker._selectMonthYear('#"+b.id+"', this, 'M');\" >";for(var v=0;v<12;v++)if((!n||v>=l.getMonth())&&(!t||v<=j.getMonth()))r+='<option value="'+v+'"'+(v==h?' selected="selected"':"")+">"+o[v]+"</option>";r+="</select>"}u||(s+=r+(m||!(p&&q)?" ":""));if(!b.yearshtml){b.yearshtml="";if(m||!q)s+='<span class="ui-datepicker-year">'+k+"</span>";else{o=this._get(b, +"yearRange").split(":");var w=(new Date).getFullYear();n=function(x){x=x.match(/c[+-].*/)?k+parseInt(x.substring(1),10):x.match(/[+-].*/)?w+parseInt(x,10):parseInt(x,10);return isNaN(x)?w:x};h=n(o[0]);o=Math.max(h,n(o[1]||""));h=l?Math.max(h,l.getFullYear()):h;o=j?Math.min(o,j.getFullYear()):o;for(b.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+f+".datepicker._selectMonthYear('#"+b.id+"', this, 'Y');\" >";h<=o;h++)b.yearshtml+='<option value="'+h+'"'+(h==k?' selected="selected"': +"")+">"+h+"</option>";b.yearshtml+="</select>";s+=b.yearshtml;b.yearshtml=null}}s+=this._get(b,"yearSuffix");if(u)s+=(m||!(p&&q)?" ":"")+r;s+="</div>";return s},_adjustInstDate:function(b,h,k){var l=b.drawYear+(k=="Y"?h:0),j=b.drawMonth+(k=="M"?h:0);h=Math.min(b.selectedDay,this._getDaysInMonth(l,j))+(k=="D"?h:0);l=this._restrictMinMax(b,this._daylightSavingAdjust(new Date(l,j,h)));b.selectedDay=l.getDate();b.drawMonth=b.selectedMonth=l.getMonth();b.drawYear=b.selectedYear=l.getFullYear();if(k== +"M"||k=="Y")this._notifyChange(b)},_restrictMinMax:function(b,h){var k=this._getMinMaxDate(b,"min"),l=this._getMinMaxDate(b,"max");k=k&&h<k?k:h;return l&&k>l?l:k},_notifyChange:function(b){var h=this._get(b,"onChangeMonthYear");if(h)h.apply(b.input?b.input[0]:null,[b.selectedYear,b.selectedMonth+1,b])},_getNumberOfMonths:function(b){b=this._get(b,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(b,h){return this._determineDate(b,this._get(b,h+"Date"),null)}, +_getDaysInMonth:function(b,h){return 32-this._daylightSavingAdjust(new Date(b,h,32)).getDate()},_getFirstDayOfMonth:function(b,h){return(new Date(b,h,1)).getDay()},_canAdjustMonth:function(b,h,k,l){var j=this._getNumberOfMonths(b);k=this._daylightSavingAdjust(new Date(k,l+(h<0?h:j[0]*j[1]),1));h<0&&k.setDate(this._getDaysInMonth(k.getFullYear(),k.getMonth()));return this._isInRange(b,k)},_isInRange:function(b,h){var k=this._getMinMaxDate(b,"min"),l=this._getMinMaxDate(b,"max");return(!k||h.getTime()>= +k.getTime())&&(!l||h.getTime()<=l.getTime())},_getFormatConfig:function(b){var h=this._get(b,"shortYearCutoff");h=typeof h!="string"?h:(new Date).getFullYear()%100+parseInt(h,10);return{shortYearCutoff:h,dayNamesShort:this._get(b,"dayNamesShort"),dayNames:this._get(b,"dayNames"),monthNamesShort:this._get(b,"monthNamesShort"),monthNames:this._get(b,"monthNames")}},_formatDate:function(b,h,k,l){if(!h){b.currentDay=b.selectedDay;b.currentMonth=b.selectedMonth;b.currentYear=b.selectedYear}h=h?typeof h== +"object"?h:this._daylightSavingAdjust(new Date(l,k,h)):this._daylightSavingAdjust(new Date(b.currentYear,b.currentMonth,b.currentDay));return this.formatDate(this._get(b,"dateFormat"),h,this._getFormatConfig(b))}});a.fn.datepicker=function(b){if(!this.length)return this;if(!a.datepicker.initialized){a(document).mousedown(a.datepicker._checkExternalClick).find("body").append(a.datepicker.dpDiv);a.datepicker.initialized=true}var h=Array.prototype.slice.call(arguments,1);if(typeof b=="string"&&(b=="isDisabled"|| +b=="getDate"||b=="widget"))return a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(h));if(b=="option"&&arguments.length==2&&typeof arguments[1]=="string")return a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(h));return this.each(function(){typeof b=="string"?a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this].concat(h)):a.datepicker._attachDatepicker(this,b)})};a.datepicker=new d;a.datepicker.initialized=false;a.datepicker.uuid=(new Date).getTime(); +a.datepicker.version="1.9pre";window["DP_jQuery_"+f]=a})(jQuery); +(function(a,g){var d={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},c={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};a.widget("ui.dialog",{version:"1.9pre",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",of:window,collision:"fit",using:function(e){var f=a(this).css(e).offset().top; +f<0&&a(this).css("top",e.top-f)}},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 e=this,f=e.options,i=f.title||" ",b=a.ui.dialog.getTitleId(e.element),h=(e.uiDialog=a("<div>")).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+f.dialogClass).css({display:"none",outline:0,zIndex:f.zIndex}).attr("tabIndex", +-1).keydown(function(j){if(f.closeOnEscape&&!j.isDefaultPrevented()&&j.keyCode&&j.keyCode===a.ui.keyCode.ESCAPE){e.close(j);j.preventDefault()}}).attr({role:"dialog","aria-labelledby":b}).mousedown(function(j){e.moveToTop(false,j)}).appendTo("body");e.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(h);var k=(e.uiDialogTitlebar=a("<div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(h),l=a("<a href='#'></a>").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", +"button").click(function(j){j.preventDefault();e.close(j)}).appendTo(k);(e.uiDialogTitlebarCloseText=a("<span>")).addClass("ui-icon ui-icon-closethick").text(f.closeText).appendTo(l);a("<span>").addClass("ui-dialog-title").attr("id",b).html(i).prependTo(k);k.find("*").add(k).disableSelection();this._hoverable(l);this._focusable(l);f.draggable&&a.fn.draggable&&e._makeDraggable();f.resizable&&a.fn.resizable&&e._makeResizable();e._createButtons(f.buttons);e._isOpen=false;a.fn.bgiframe&&h.bgiframe()}, +_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){this.overlay&&this.overlay.destroy();this.uiDialog.hide();this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();this.originalTitle&&this.element.attr("title",this.originalTitle)},widget:function(){return this.uiDialog},close:function(e){if(!this._isOpen)return f;var f=this,i,b;if(false!==f._trigger("beforeClose",e)){f._isOpen=false;f.overlay&&f.overlay.destroy();f.uiDialog.unbind("keypress.ui-dialog"); +if(f.options.hide)f.uiDialog.hide(f.options.hide,function(){f._trigger("close",e)});else{f.uiDialog.hide();f._trigger("close",e)}a.ui.dialog.overlay.resize();if(f.options.modal){i=0;a(".ui-dialog").each(function(){if(this!==f.uiDialog[0]){b=a(this).css("z-index");isNaN(b)||(i=Math.max(i,b))}});a.ui.dialog.maxZ=i}return f}},isOpen:function(){return this._isOpen},moveToTop:function(e,f){var i=this.options;if(i.modal&&!e||!i.stack&&!i.modal)return this._trigger("focus",f);if(i.zIndex>a.ui.dialog.maxZ)a.ui.dialog.maxZ= +i.zIndex;if(this.overlay){a.ui.dialog.maxZ+=1;a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ;this.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ)}i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()};a.ui.dialog.maxZ+=1;this.uiDialog.css("z-index",a.ui.dialog.maxZ);this.element.attr(i);this._trigger("focus",f);return this},open:function(){if(!this._isOpen){var e=this.options,f=this.uiDialog;this._size();this._position(e.position);f.show(e.show);this.overlay=e.modal?new a.ui.dialog.overlay(this): +null;this.moveToTop(true);e.modal&&f.bind("keydown.ui-dialog",function(i){if(i.keyCode===a.ui.keyCode.TAB){var b=a(":tabbable",this),h=b.filter(":first");b=b.filter(":last");if(i.target===b[0]&&!i.shiftKey){h.focus(1);return false}else if(i.target===h[0]&&i.shiftKey){b.focus(1);return false}}});e=this.element.find(":tabbable");if(!e.length){e=f.find(".ui-dialog-buttonpane :tabbable");e.length||(e=f)}e.eq(0).focus();this._isOpen=true;this._trigger("open");return this}},_createButtons:function(e){var f= +this,i=false;f.uiDialog.find(".ui-dialog-buttonpane").remove();typeof e==="object"&&e!==null&&a.each(e,function(){return!(i=true)});if(i){var b=a("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),h=a("<div>").addClass("ui-dialog-buttonset").appendTo(b);a.each(e,function(k,l){l=a.isFunction(l)?{click:l,text:k}:l;var j=a("<button type='button'>").attr(l,true).unbind("click").click(function(){l.click.apply(f.element[0],arguments)}).appendTo(h);a.fn.button&&j.button()}); +f.uiDialog.addClass("ui-dialog-buttons");b.appendTo(f.uiDialog)}else f.uiDialog.removeClass("ui-dialog-buttons")},_makeDraggable:function(){function e(h){return{position:h.position,offset:h.offset}}var f=this,i=f.options,b=a(document);f.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(h,k){a(this).addClass("ui-dialog-dragging");f._trigger("dragStart",h,e(k))},drag:function(h,k){f._trigger("drag",h,e(k))}, +stop:function(h,k){i.position=[k.position.left-b.scrollLeft(),k.position.top-b.scrollTop()];a(this).removeClass("ui-dialog-dragging");f._trigger("dragStop",h,e(k));a.ui.dialog.overlay.resize()}})},_makeResizable:function(e){function f(k){return{originalPosition:k.originalPosition,originalSize:k.originalSize,position:k.position,size:k.size}}e=e===g?this.options.resizable:e;var i=this,b=i.options,h=i.uiDialog.css("position");e=typeof e==="string"?e:"n,e,s,w,se,sw,ne,nw";i.uiDialog.resizable({cancel:".ui-dialog-content", +containment:"document",alsoResize:i.element,maxWidth:b.maxWidth,maxHeight:b.maxHeight,minWidth:b.minWidth,minHeight:i._minHeight(),handles:e,start:function(k,l){a(this).addClass("ui-dialog-resizing");i._trigger("resizeStart",k,f(l))},resize:function(k,l){i._trigger("resize",k,f(l))},stop:function(k,l){a(this).removeClass("ui-dialog-resizing");b.height=a(this).height();b.width=a(this).width();i._trigger("resizeStop",k,f(l));a.ui.dialog.overlay.resize()}}).css("position",h).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")}, +_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(e){var f=[],i=[0,0],b;if(e){if(typeof e==="string"||typeof e==="object"&&"0"in e){f=e.split?e.split(" "):[e[0],e[1]];if(f.length===1)f[1]=f[0];a.each(["left","top"],function(h,k){if(+f[h]===f[h]){i[h]=f[h];f[h]=k}});e={my:f.join(" "),at:f.join(" "),offset:i.join(" ")}}e=a.extend({},a.ui.dialog.prototype.options.position,e)}else e=a.ui.dialog.prototype.options.position;(b= +this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.position(e);b||this.uiDialog.hide()},_setOptions:function(e){var f=this,i={},b=false;a.each(e,function(h,k){f._setOption(h,k);if(h in d)b=true;if(h in c)i[h]=k});b&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",i)},_setOption:function(e,f){var i=this.uiDialog;switch(e){case "buttons":this._createButtons(f);break;case "closeText":this.uiDialogTitlebarCloseText.text(""+f);break;case "dialogClass":i.removeClass(this.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ +f);break;case "disabled":f?i.addClass("ui-dialog-disabled"):i.removeClass("ui-dialog-disabled");break;case "draggable":var b=i.is(":data(draggable)");b&&!f&&i.draggable("destroy");!b&&f&&this._makeDraggable();break;case "position":this._position(f);break;case "resizable":(b=i.is(":data(resizable)"))&&!f&&i.resizable("destroy");b&&typeof f==="string"&&i.resizable("option","handles",f);!b&&f!==false&&this._makeResizable(f);break;case "title":a(".ui-dialog-title",this.uiDialogTitlebar).html(""+(f||" "))}this._super("_setOption", +e,f)},_size:function(){var e=this.options,f,i,b=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(e.minWidth>e.width)e.width=e.minWidth;f=this.uiDialog.css({height:"auto",width:e.width}).height();i=Math.max(0,e.minHeight-f);if(e.height==="auto")if(a.support.minHeight)this.element.css({minHeight:i,height:"auto"});else{this.uiDialog.show();e=this.element.css("height","auto").height();b||this.uiDialog.hide();this.element.height(Math.max(e,i))}else this.element.height(Math.max(e.height- +f,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});a.extend(a.ui.dialog,{uuid:0,maxZ:0,getTitleId:function(e){e=e.attr("id");if(!e){this.uuid+=1;e=this.uuid}return"ui-dialog-title-"+e},overlay:function(e){this.$el=a.ui.dialog.overlay.create(e)}});a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length=== +0){setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(i){if(a(i.target).zIndex()<a.ui.dialog.overlay.maxZ)return false})},1);a(document).bind("keydown.dialog-overlay",function(i){if(e.options.closeOnEscape&&!i.isDefaultPrevented()&&i.keyCode&&i.keyCode===a.ui.keyCode.ESCAPE){e.close(i);i.preventDefault()}});a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize)}var f=(this.oldInstances.pop()||a("<div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), +height:this.height()});a.fn.bgiframe&&f.bgiframe();this.instances.push(f);return f},destroy:function(e){var f=a.inArray(e,this.instances);f!==-1&&this.oldInstances.push(this.instances.splice(f,1)[0]);this.instances.length===0&&a([document,window]).unbind(".dialog-overlay");e.height(0).width(0).remove();var i=0;a.each(this.instances,function(){i=Math.max(i,this.css("z-index"))});this.maxZ=i},height:function(){var e,f;if(a.browser.msie){e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); +f=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return e<f?a(window).height()+"px":e+"px"}else return a(document).height()+"px"},width:function(){var e,f;if(a.browser.msie){e=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);f=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return e<f?a(window).width()+"px":e+"px"}else return a(document).width()+"px"},resize:function(){var e=a([]);a.each(a.ui.dialog.overlay.instances,function(){e= +e.add(this)});e.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}});a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})})(jQuery); +(function(a){var g=0;a.widget("ui.menu",{version:"1.9pre",defaultElement:"<ul>",delay:150,options:{items:"ul",position:{my:"left top",at:"right top"}},_create:function(){this.activeMenu=this.element;this.isScrolling=false;this.menuId=this.element.attr("id")||"ui-menu-"+g++;this.element.find(".ui-icon").length&&this.element.addClass("ui-menu-icons");this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({id:this.menuId,role:"menu"}).bind("click.menu",a.proxy(function(d){this.options.disabled&& +d.preventDefault()},this));this._bind({"click .ui-menu-item:has(a)":function(d){d.stopImmediatePropagation();var c=a(d.currentTarget);if(!this.active||this.active[0]!==c[0])this.focus(d,c);this.select(d)},"mouseover .ui-menu-item":function(d){d.stopImmediatePropagation();if(!this.isScrolling){var c=a(d.currentTarget);c.siblings().children(".ui-state-active").removeClass("ui-state-active");this.focus(d,c)}this.isScrolling=false},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll","mouseout .ui-menu-item":"blur", +focus:function(d){this.focus(d,a(d.target).children(".ui-menu-item:first"))},blur:function(d){this._delay(function(){a.contains(this.element[0],document.activeElement)||this.collapseAll(d)},0)},scroll:function(){this.isScrolling=true}});this.refresh();this.element.attr("tabIndex",0);this._bind({keydown:function(d){switch(d.keyCode){case a.ui.keyCode.PAGE_UP:this.previousPage(d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.PAGE_DOWN:this.nextPage(d);d.preventDefault();d.stopImmediatePropagation(); +break;case a.ui.keyCode.HOME:this._move("first","first",d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.END:this._move("last","last",d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.UP:this.previous(d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.DOWN:this.next(d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.LEFT:this.collapse(d)&&d.stopImmediatePropagation();d.preventDefault();break;case a.ui.keyCode.RIGHT:this.expand(d)&& +d.stopImmediatePropagation();d.preventDefault();break;case a.ui.keyCode.ENTER:if(this.active.children("a[aria-haspopup='true']").length)this.expand(d)&&d.stopImmediatePropagation();else{this.select(d);d.stopImmediatePropagation()}d.preventDefault();break;case a.ui.keyCode.ESCAPE:this.collapse(d)&&d.stopImmediatePropagation();d.preventDefault();break;default:d.stopPropagation();clearTimeout(this.filterTimer);var c;c=this.previousFilter||"";var e=String.fromCharCode(d.keyCode),f=false;if(e==c)f=true; +else e=c+e;var i=function(b){return b.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")};c=this.activeMenu.children(".ui-menu-item").filter(function(){return RegExp("^"+i(e),"i").test(a(this).children("a").text())});c=f&&c.index(this.active.next())!=-1?this.active.nextAll(".ui-menu-item"):c;if(!c.length){e=String.fromCharCode(d.keyCode);c=this.activeMenu.children(".ui-menu-item").filter(function(){return RegExp("^"+i(e),"i").test(a(this).children("a").text())})}if(c.length){this.focus(d,c);if(c.length>1){this.previousFilter= +e;this.filterTimer=this._delay(function(){delete this.previousFilter},1E3)}else delete this.previousFilter}else delete this.previousFilter}}});this._bind(document,{click:function(d){a(d.target).closest(".ui-menu").length||this.collapseAll(d)}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").show(); +this.element.find(".ui-menu-item").unbind(".menu").removeClass("ui-menu-item").removeAttr("role").children("a").removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").removeAttr("id").children(".ui-icon").remove()},refresh:function(){var d=this.element.find(this.options.items+":not( .ui-menu )").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr("role","menu").hide().attr("aria-hidden","true").attr("aria-expanded","false"), +c=this.menuId;d.add(this.element).children(":not( .ui-menu-item ):has( a )").addClass("ui-menu-item").attr("role","presentation").children("a").addClass("ui-corner-all").attr("tabIndex",-1).attr("role","menuitem").attr("id",function(e){return c+"-"+e});d.each(function(){var e=a(this),f=e.prev("a");f.attr("aria-haspopup","true").prepend('<span class="ui-menu-icon ui-icon ui-icon-carat-1-e"></span>');e.attr("aria-labelledby",f.attr("id"))})},focus:function(d,c){this.blur(d);if(this._hasScroll()){var e= +parseFloat(a.curCSS(this.activeMenu[0],"borderTopWidth",true))||0,f=parseFloat(a.curCSS(this.activeMenu[0],"paddingTop",true))||0;e=c.offset().top-this.activeMenu.offset().top-e-f;f=this.activeMenu.scrollTop();var i=this.activeMenu.height(),b=c.height();if(e<0)this.activeMenu.scrollTop(f+e);else e+b>i&&this.activeMenu.scrollTop(f+e-i+b)}this.active=c.first().children("a").addClass("ui-state-focus").end();this.element.attr("aria-activedescendant",this.active.children("a").attr("id"));this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"); +this.timer=this._delay(function(){this._close()},this.delay);e=a("> .ui-menu",c);e.length&&/^mouse/.test(d.type)&&this._startOpening(e);this.activeMenu=c.parent();this._trigger("focus",d,{item:c})},blur:function(d){if(this.active){clearTimeout(this.timer);this.active.children("a").removeClass("ui-state-focus");this.active=null;this._trigger("blur",d,{item:this.active})}},_startOpening:function(d){clearTimeout(this.timer);if(d.attr("aria-hidden")==="true")this.timer=this._delay(function(){this._close(); +this._open(d)},this.delay)},_open:function(d){clearTimeout(this.timer);this.element.find(".ui-menu").not(d.parents()).hide().attr("aria-hidden","true");var c=a.extend({},{of:this.active},a.type(this.options.position)=="function"?this.options.position(this.active):this.options.position);d.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(c)},collapseAll:function(d,c){var e=c?this.element:a(d&&d.target).closest(this.element.find(".ui-menu"));if(!e.length)e=this.element;this._close(e); +this.blur(d);this.activeMenu=e},_close:function(d){d||(d=this.active?this.active.parent():this.element);d.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(d){var c=this.active&&this.active.parent().closest(".ui-menu-item",this.element);if(c&&c.length){this._close();this.focus(d,c);return true}},expand:function(d){var c=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first(); +if(c&&c.length){this._open(c.parent());this._delay(function(){this.focus(d,c)},20);return true}},next:function(d){this._move("next","first",d)},previous:function(d){this._move("prev","last",d)},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(d,c,e){if(this.active){d=d==="first"||d==="last"?this.active[d==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[d+ +"All"](".ui-menu-item").eq(0);d.length?this.focus(e,d):this.focus(e,this.activeMenu.children(".ui-menu-item")[c]())}else this.focus(e,this.activeMenu.children(".ui-menu-item")[c]())},nextPage:function(d){if(this._hasScroll())if(this.active){if(!this.last()){var c=this.active.offset().top,e=this.element.height(),f;this.active.nextAll(".ui-menu-item").each(function(){f=a(this);return a(this).offset().top-c-e<0});this.focus(d,f)}}else this.focus(d,this.activeMenu.children(".ui-menu-item").first());else this.focus(d, +this.activeMenu.children(".ui-menu-item")[!this.active?"first":"last"]())},previousPage:function(d){if(this._hasScroll())if(this.active){if(!this.first()){var c=this.active.offset().top,e=this.element.height(),f;this.active.prevAll(".ui-menu-item").each(function(){f=a(this);return a(this).offset().top-c+e>0});this.focus(d,f)}}else this.focus(d,this.activeMenu.children(".ui-menu-item").first());else this.focus(d,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.height()< +this.element.prop("scrollHeight")},select:function(d){var c={item:this.active};this.collapseAll(d,true);this._trigger("select",d,c)}})})(jQuery); +(function(a){a.widget("ui.menubar",{version:"1.9pre",options:{autoExpand:false,buttons:false,menuIcon:false,position:{my:"left top",at:"left bottom"}},_create:function(){var g=this,d=this.items=this.element.children("li").addClass("ui-menubar-item").attr("role","presentation").children("button, a");d.slice(1).attr("tabIndex",-1);this.element.addClass("ui-menubar ui-widget-header ui-helper-clearfix").attr("role","menubar");this._focusable(d);this._hoverable(d);d.next("ul").menu({position:{within:this.options.position.within}, +select:function(c,e){e.item.parents("ul.ui-menu:last").hide();g._close();a(c.target).prev().focus();g._trigger("select",c,e)}}).hide().attr({"aria-hidden":"true","aria-expanded":"false"}).bind("keydown.menubar",function(c){if(!a(this).is(":hidden"))switch(c.keyCode){case a.ui.keyCode.LEFT:g._left(c);c.preventDefault();break;case a.ui.keyCode.RIGHT:g._right(c);c.preventDefault()}});d.each(function(){var c=a(this),e=c.next("ul");c.bind("click.menubar focus.menubar mouseenter.menubar",function(f){if(!(f.type== +"focus"&&!f.originalEvent)){f.preventDefault();if(f.type=="click"&&e.is(":visible")&&g.active&&g.active[0]==e[0])g._close();else if(g.open&&f.type=="mouseenter"||f.type=="click"||g.options.autoExpand){g.options.autoExpand&&clearTimeout(g.closeTimer);g._open(f,e)}}}).bind("keydown",function(f){switch(f.keyCode){case a.ui.keyCode.SPACE:case a.ui.keyCode.UP:case a.ui.keyCode.DOWN:g._open(f,a(this).next());f.preventDefault();break;case a.ui.keyCode.LEFT:g._prev(f,a(this));f.preventDefault();break;case a.ui.keyCode.RIGHT:g._next(f, +a(this));f.preventDefault()}}).addClass("ui-button ui-widget ui-button-text-only ui-menubar-link").attr("role","menuitem").attr("aria-haspopup","true").wrapInner("<span class='ui-button-text'></span>");if(g.options.menuIcon){c.addClass("ui-state-default").append("<span class='ui-button-icon-secondary ui-icon ui-icon-triangle-1-s'></span>");c.removeClass("ui-button-text-only").addClass("ui-button-text-icon-secondary")}g.options.buttons||c.addClass("ui-menubar-link").removeClass("ui-state-default")}); +g._bind({keydown:function(c){if(c.keyCode==a.ui.keyCode.ESCAPE&&g.active&&g.active.menu("collapse",c)!==true){var e=g.active;g.active.blur();g._close(c);e.prev().focus()}},focusin:function(){clearTimeout(g.closeTimer)},focusout:function(c){g.closeTimer=setTimeout(function(){g._close(c)},150)},"mouseleave .ui-menubar-item":function(c){if(g.options.autoExpand)g.closeTimer=setTimeout(function(){g._close(c)},150)},"mouseenter .ui-menubar-item":function(){clearTimeout(g.closeTimer)}})},_destroy:function(){var g= +this.element.children("li").removeClass("ui-menubar-item").removeAttr("role").children("button, a");this.element.removeClass("ui-menubar ui-widget-header ui-helper-clearfix").removeAttr("role").unbind(".menubar");g.unbind(".menubar").removeClass("ui-button ui-widget ui-button-text-only ui-menubar-link ui-state-default").removeAttr("role").removeAttr("aria-haspopup").children("span.ui-button-text").each(function(){var d=a(this);d.parent().html(d.html())}).end().children(".ui-icon").remove();this.element.find(":ui-menu").menu("destroy").show().removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("tabindex").unbind(".menubar")}, +_close:function(){if(this.active&&this.active.length){this.active.menu("collapseAll").hide().attr({"aria-hidden":"true","aria-expanded":"false"});this.active.prev().removeClass("ui-state-active").removeAttr("tabIndex");this.active=null;this.open=false}},_open:function(g,d){if(!(this.active&&this.active[0]==d[0])){if(this.active){this.active.menu("collapseAll").hide().attr({"aria-hidden":"true","aria-expanded":"false"});this.active.prev().removeClass("ui-state-active")}var c=d.prev().addClass("ui-state-active").attr("tabIndex", +-1);this.active=d.show().position(a.extend({of:c},this.options.position)).removeAttr("aria-hidden").attr("aria-expanded","true").menu("focus",g,d.children("li").first()).focus().focusin();this.open=true}},_prev:function(g,d){d.attr("tabIndex",-1);var c=d.parent().prevAll("li").children(".ui-button").eq(0);c.length?c.removeAttr("tabIndex")[0].focus():this.element.children("li:last").children(".ui-button:last").removeAttr("tabIndex")[0].focus()},_next:function(g,d){d.attr("tabIndex",-1);var c=d.parent().nextAll("li").children(".ui-button").eq(0); +c.length?c.removeAttr("tabIndex")[0].focus():this.element.children("li:first").children(".ui-button:first").removeAttr("tabIndex")[0].focus()},_left:function(g){var d=this.active.parent().prevAll("li:eq(0)").children(".ui-menu").eq(0);d.length||(d=this.element.children("li:last").children(".ui-menu:first"));this._open(g,d)},_right:function(g){var d=this.active.parent().nextAll("li:eq(0)").children(".ui-menu").eq(0);d.length||(d=this.element.children("li:first").children(".ui-menu:first"));this._open(g, +d)}})})(jQuery); +(function(a){var g=0;a.widget("ui.popup",{version:"1.9pre",options:{position:{my:"left top",at:"left bottom"},show:{effect:"slideDown",duration:"fast"},hide:{effect:"fadeOut",duration:"fast"}},_create:function(){if(!this.options.trigger)this.options.trigger=this.element.prev();if(!this.element.attr("id")){this.element.attr("id","ui-popup-"+g++);this.generatedId=true}if(!this.element.attr("role")){this.element.attr("role","dialog");this.generatedRole=true}this.options.trigger.attr("aria-haspopup","true").attr("aria-owns", +this.element.attr("id"));this.element.addClass("ui-popup");this._beforeClose();this.element.hide();this._bind(this.options.trigger,{keydown:function(d){a.ui.button&&this.options.trigger.is("a:ui-button")&&d.keyCode==a.ui.keyCode.SPACE&&d.preventDefault();d.keyCode==a.ui.keyCode.SPACE&&this.options.trigger.is("a:not(:ui-button)")&&this.options.trigger.trigger("click",d);if(d.keyCode==a.ui.keyCode.DOWN){d.preventDefault();this.options.trigger.trigger("click",d)}},click:function(d){d.preventDefault(); +if(!this.isOpen){clearTimeout(this.closeTimer);this._delay(function(){this.open(d)},1)}}});if(!a.ui.menu||!this.element.is(":ui-menu"))this._bind({keydown:function(d){if(d.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this.element),e=c.first();c=c.last();if(d.target===c[0]&&!d.shiftKey){e.focus(1);d.preventDefault()}else if(d.target===e[0]&&d.shiftKey){c.focus(1);d.preventDefault()}}}});this._bind({keyup:function(d){if(d.keyCode==a.ui.keyCode.ESCAPE&&this.element.is(":visible")){this.close(d);this.options.trigger.focus()}}}); +this._bind(document,{click:function(d){this.isOpen&&!a(d.target).closest(".ui-popup").length&&this.close(d)}})},_destroy:function(){this.element.show().removeClass("ui-popup").removeAttr("aria-hidden").removeAttr("aria-expanded").unbind("keypress.ui-popup");this.options.trigger.removeAttr("aria-haspopup").removeAttr("aria-owns");this.generatedId&&this.element.removeAttr("id");this.generatedRole&&this.element.removeAttr("role")},open:function(d){var c=a.extend({},{of:this.options.trigger},this.options.position); +this._show(this.element,this.options.show);this.element.attr("aria-hidden","false").attr("aria-expanded","true").position(c);if(a.ui.menu&&this.element.is(":ui-menu")){this.element.menu("focus",d,this.element.children("li").first());this.element.focus()}else{c=this.element.find(":tabbable");this.removeTabIndex=false;if(!c.length){if(!this.element.is(":tabbable")){this.element.attr("tabindex","0");this.removeTabIndex=true}c=c.add(this.element[0])}c.first().focus(1)}this.options.trigger.attr("tabindex", +-1);this.isOpen=true;this._trigger("open",d)},close:function(d){this._beforeClose();this._hide(this.element,this.options.hide);this.options.trigger.attr("tabindex",0);this.removeTabIndex&&this.element.removeAttr("tabindex");this.isOpen=false;this._trigger("close",d)},_beforeClose:function(){this.element.attr("aria-hidden","true").attr("aria-expanded","false")}})})(jQuery); +(function(a,g){a.ui=a.ui||{};var d=/left|center|right/,c=/top|center|bottom/,e=/[+-]\d+%?/,f=/^\w+/,i=/%$/,b=a.fn.position;a.position={scrollbarWidth:function(){var h,k,l=a("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>");k=l.children()[0];a("body").append(l);h=k.offsetWidth;l.css("overflow","scroll");k=k.offsetWidth;if(h===k)k=l[0].clientWidth;l.remove();return h-k},getScrollInfo:function(h){var k=h[0]!==window,l=k?h.css("overflow-x"): +"";k=k?h.css("overflow-y"):"";l=l==="auto"||l==="scroll"?a.position.scrollbarWidth():0;k=k==="auto"||k==="scroll"?a.position.scrollbarWidth():0;return{height:h.height()<h[0].scrollHeight?k:0,width:h.width()<h[0].scrollWidth?l:0}}};a.fn.position=function(h){if(!h||!h.of)return b.apply(this,arguments);h=a.extend({},h);var k=a(h.of),l=a(h.within||window),j=k[0],m=(h.collision||"flip").split(" "),n={},o,p,q,u;if(j.nodeType===9){p=k.width();q=k.height();u={top:0,left:0}}else if(a.isWindow(j)){p=k.width(); +q=k.height();u={top:k.scrollTop(),left:k.scrollLeft()}}else if(j.preventDefault){h.at="left top";p=q=0;u={top:h.of.pageY,left:h.of.pageX}}else{p=k.outerWidth();q=k.outerHeight();u=k.offset()}a.each(["my","at"],function(){var s=(h[this]||"").split(" "),r,t;if(s.length===1)s=d.test(s[0])?s.concat(["center"]):c.test(s[0])?["center"].concat(s):["center","center"];s[0]=d.test(s[0])?s[0]:"center";s[1]=c.test(s[1])?s[1]:"center";r=e.exec(s[0]);t=e.exec(s[1]);n[this]=[r?r[0]:0,t?t[0]:0];h[this]=[f.exec(s[0])[0], +f.exec(s[1])[0]]});if(m.length===1)m[1]=m[0];if(h.at[0]==="right")u.left+=p;else if(h.at[0]==="center")u.left+=p/2;if(h.at[1]==="bottom")u.top+=q;else if(h.at[1]==="center")u.top+=q/2;o=[parseInt(n.at[0],10)*(i.test(n.at[0])?p/100:1),parseInt(n.at[1],10)*(i.test(n.at[1])?q/100:1)];u.left+=o[0];u.top+=o[1];return this.each(function(){var s=a(this),r=s.outerWidth(),t=s.outerHeight(),v=parseInt(a.curCSS(this,"marginLeft",true))||0,w=parseInt(a.curCSS(this,"marginTop",true))||0,x=a.position.getScrollInfo(l), +C=r+v+(parseInt(a.curCSS(this,"marginRight",true))||0)+x.width,A=t+w+(parseInt(a.curCSS(this,"marginBottom",true))||0)+x.height,y=a.extend({},u),D=[parseInt(n.my[0],10)*(i.test(n.my[0])?s.outerWidth()/100:1),parseInt(n.my[1],10)*(i.test(n.my[1])?s.outerHeight()/100:1)],J;if(h.my[0]==="right")y.left-=r;else if(h.my[0]==="center")y.left-=r/2;if(h.my[1]==="bottom")y.top-=t;else if(h.my[1]==="center")y.top-=t/2;y.left+=D[0];y.top+=D[1];J={marginLeft:v,marginTop:w};a.each(["left","top"],function(I,H){if(a.ui.position[m[I]])a.ui.position[m[I]][H](y, +{targetWidth:p,targetHeight:q,elemWidth:r,elemHeight:t,collisionPosition:J,collisionWidth:C,collisionHeight:A,offset:[o[0]+D[0],o[1]+D[1]],my:h.my,at:h.at,within:l,elem:s})});a.fn.bgiframe&&s.bgiframe();s.offset(a.extend(y,{using:h.using}))})};a.ui.position={fit:{left:function(h,k){var l=k.within,j=a(window),m=a.isWindow(k.within[0]),n=m?j.scrollLeft():l.offset().left;j=m?j.width():l.outerWidth();m=h.left-k.collisionPosition.marginLeft;l=n-m;var o=m+k.collisionWidth-j-n;if(k.collisionWidth>j)if(l> +0&&o<=0){n=h.left+l+k.collisionWidth-j-n;h.left+=l-n}else h.left=o>0&&l<=0?n:l>o?n+j-k.collisionWidth:n;else if(l>0)h.left+=l;else if(o>0)h.left-=o;else h.left=Math.max(h.left-m,h.left)},top:function(h,k){var l=k.within,j=a(window),m=a.isWindow(k.within[0]),n=m?j.scrollTop():l.offset().top;j=m?j.height():l.outerHeight();m=h.top-k.collisionPosition.marginTop;l=n-m;var o=m+k.collisionHeight-j-n;if(k.collisionHeight>j)if(l>0&&o<=0){n=h.top+l+k.collisionHeight-j-n;h.top+=l-n}else h.top=o>0&&l<=0?n:l> +o?n+j-k.collisionHeight:n;else if(l>0)h.top+=l;else if(o>0)h.top-=o;else h.top=Math.max(h.top-m,h.top)}},flip:{left:function(h,k){if(k.at[0]!=="center"){k.elem.removeClass("ui-flipped-left ui-flipped-right");var l=k.within;a(window);var j=a.isWindow(k.within[0]),m=(j?0:l.offset().left)+l.scrollLeft(),n=j?l.width():l.outerWidth();j=h.left-k.collisionPosition.marginLeft;l=j-m;var o=j+k.collisionWidth-n-m;j=k.my[0]==="left"?-k.elemWidth:k.my[0]==="right"?k.elemWidth:0;var p=k.at[0]==="left"?k.targetWidth: +-k.targetWidth,q=-2*k.offset[0];if(l<0){m=h.left+j+p+q+k.collisionWidth-n-m;if(m<0||m<Math.abs(l)){k.elem.addClass("ui-flipped-right");h.left+=j+p+q}}else if(o>0){m=h.left-k.collisionPosition.marginLeft+j+p+q-m;if(m>0||Math.abs(m)<o){k.elem.addClass("ui-flipped-left");h.left+=j+p+q}}}},top:function(h,k){if(k.at[1]!=="center"){k.elem.removeClass("ui-flipped-top ui-flipped-bottom");var l=k.within;a(window);var j=a.isWindow(k.within[0]),m=(j?0:l.offset().top)+l.scrollTop(),n=j?l.height():l.outerHeight(); +j=h.top-k.collisionPosition.marginTop;l=j-m;var o=j+k.collisionHeight-n-m;j=k.my[1]==="top"?-k.elemHeight:k.my[1]==="bottom"?k.elemHeight:0;var p=k.at[1]==="top"?k.targetHeight:-k.targetHeight,q=-2*k.offset[1];if(l<0){m=h.top+j+p+q+k.collisionHeight-n-m;if(h.top+j+p+q>l&&(m<0||m<Math.abs(l))){k.elem.addClass("ui-flipped-bottom");h.top+=j+p+q}}else if(o>0){m=h.top-k.collisionPosition.marginTop+j+p+q-m;if(h.top+j+p+q>o&&(m>0||Math.abs(m)<o)){k.elem.addClass("ui-flipped-top");h.top+=j+p+q}}}}},flipfit:{left:function(){a.ui.position.flip.left.apply(this, +arguments);a.ui.position.fit.left.apply(this,arguments)},top:function(){a.ui.position.flip.top.apply(this,arguments);a.ui.position.fit.top.apply(this,arguments)}}};a.uiBackCompat!==false&&function(h){var k=h.fn.position;h.fn.position=function(l){if(!l||!l.offset)return k.call(this,l);var j=l.offset.split(" "),m=l.at.split(" ");if(j.length===1)j[1]=j[0];if(/^\d/.test(j[0]))j[0]="+"+j[0];if(/^\d/.test(j[1]))j[1]="+"+j[1];if(m.length===1)if(/left|center|right/.test(m[0]))m[1]="center";else{m[1]=m[0]; +m[0]="center"}return k.call(this,h.extend(l,{at:m[0]+j[0]+" "+m[1]+j[1],offset:g}))}}(jQuery)})(jQuery); +(function(a,g){a.widget("ui.progressbar",{version:"1.9pre",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=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").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()},value:function(d){if(d===g)return this._value();this._setOption("value",d);return this},_setOption:function(d,c){if(d==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}this._super("_setOption",d,c)},_value:function(){var d=this.options.value;if(typeof d!=="number")d=0;return Math.min(this.options.max,Math.max(this.min,d))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var d= +this.value(),c=this._percentage();if(this.oldValue!==d){this.oldValue=d;this._trigger("change")}this.valueDiv.toggle(d>this.min).toggleClass("ui-corner-right",d===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",d)}})})(jQuery); +(function(a){a.widget("ui.slider",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var g=this,d=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),e=d.values&&d.values.length||1,f=[];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"+(d.disabled?" ui-slider-disabled ui-disabled":""));this.range=a([]);if(d.range){if(d.range===true){if(!d.values)d.values=[this._valueMin(),this._valueMin()];if(d.values.length&&d.values.length!==2)d.values=[d.values[0],d.values[0]]}this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:""))}for(var i=c.length;i<e;i+=1)f.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>"); +this.handles=c.add(a(f.join("")).appendTo(g.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(b){b.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(d.disabled)a(this).blur();else{a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(b){a(this).data("index.ui-slider-handle", +b)});this.handles.keydown(function(b){var h=true,k=a(this).data("index.ui-slider-handle"),l,j,m;if(!g.options.disabled){switch(b.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:h=false;if(!g._keySliding){g._keySliding=true;a(this).addClass("ui-state-active");l=g._start(b,k);if(l===false)return}}m=g.options.step;l=g.options.values&&g.options.values.length? +j=g.values(k):j=g.value();switch(b.keyCode){case a.ui.keyCode.HOME:j=g._valueMin();break;case a.ui.keyCode.END:j=g._valueMax();break;case a.ui.keyCode.PAGE_UP:j=g._trimAlignValue(l+(g._valueMax()-g._valueMin())/5);break;case a.ui.keyCode.PAGE_DOWN:j=g._trimAlignValue(l-(g._valueMax()-g._valueMin())/5);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(l===g._valueMax())return;j=g._trimAlignValue(l+m);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(l===g._valueMin())return;j=g._trimAlignValue(l- +m)}g._slide(b,k,j);return h}}).keyup(function(b){var h=a(this).data("index.ui-slider-handle");if(g._keySliding){g._keySliding=false;g._stop(b,h);g._change(b,h);a(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(g){var d=this.options,c,e,f,i,b;if(d.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:g.pageX,y:g.pageY});e=this._valueMax()-this._valueMin()+1;i=this;this.handles.each(function(h){var k=Math.abs(c-i.values(h));if(e>k){e=k;f=a(this);b=h}});if(d.range===true&&this.values(1)===d.min){b+=1;f=a(this.handles[b])}if(this._start(g,b)===false)return false; +this._mouseSliding=true;i._handleIndex=b;f.addClass("ui-state-active").focus();d=f.offset();this._clickOffset=!a(g.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:g.pageX-d.left-f.width()/2,top:g.pageY-d.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(g,b,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(g){var d= +this._normValueFromMouse({x:g.pageX,y:g.pageY});this._slide(g,this._handleIndex,d);return false},_mouseStop:function(g){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(g,this._handleIndex);this._change(g,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(g){var d;if(this.orientation==="horizontal"){d= +this.elementSize.width;g=g.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{d=this.elementSize.height;g=g.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}d=g/d;if(d>1)d=1;if(d<0)d=0;if(this.orientation==="vertical")d=1-d;g=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+d*g)},_start:function(g,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d); +c.values=this.values()}return this._trigger("start",g,c)},_slide:function(g,d,c){var e;if(this.options.values&&this.options.values.length){e=this.values(d?0:1);if(this.options.values.length===2&&this.options.range===true&&(d===0&&c>e||d===1&&c<e))c=e;if(c!==this.values(d)){e=this.values();e[d]=c;g=this._trigger("slide",g,{handle:this.handles[d],value:c,values:e});this.values(d?0:1);g!==false&&this.values(d,c,true)}}else if(c!==this.value()){g=this._trigger("slide",g,{handle:this.handles[d],value:c}); +g!==false&&this.value(c)}},_stop:function(g,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("stop",g,c)},_change:function(g,d){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("change",g,c)}},value:function(g){if(arguments.length){this.options.value= +this._trimAlignValue(g);this._refreshValue();this._change(null,0)}else return this._value()},values:function(g,d){var c,e,f;if(arguments.length>1){this.options.values[g]=this._trimAlignValue(d);this._refreshValue();this._change(null,g)}else if(arguments.length)if(a.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(g): +this.value();else return this._values()},_setOption:function(g,d){var c,e=0;if(a.isArray(this.options.values))e=this.options.values.length;a.Widget.prototype._setOption.apply(this,arguments);switch(g){case "disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.prop("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.prop("disabled",false);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(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false}},_value:function(){var g=this.options.value;return g=this._trimAlignValue(g)},_values:function(g){var d,c;if(arguments.length){d=this.options.values[g]; +d=this._trimAlignValue(d)}else{d=this.options.values.slice();for(c=0;c<d.length;c+=1)d[c]=this._trimAlignValue(d[c])}return d},_trimAlignValue:function(g){if(g<=this._valueMin())return this._valueMin();if(g>=this._valueMax())return this._valueMax();var d=this.options.step>0?this.options.step:1,c=(g-this._valueMin())%d;g-=c;if(Math.abs(c)*2>=d)g+=c>0?d:-d;return parseFloat(g.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var g= +this.options.range,d=this.options,c=this,e=!this._animateOff?d.animate:false,f,i={},b,h,k,l;if(this.options.values&&this.options.values.length)this.handles.each(function(j){f=(c.values(j)-c._valueMin())/(c._valueMax()-c._valueMin())*100;i[c.orientation==="horizontal"?"left":"bottom"]=f+"%";a(this).stop(1,1)[e?"animate":"css"](i,d.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(j===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},d.animate);if(j===1)c.range[e?"animate":"css"]({width:f- +b+"%"},{queue:false,duration:d.animate})}else{if(j===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},d.animate);if(j===1)c.range[e?"animate":"css"]({height:f-b+"%"},{queue:false,duration:d.animate})}b=f});else{h=this.value();k=this._valueMin();l=this._valueMax();f=l!==k?(h-k)/(l-k)*100:0;i[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](i,d.animate);if(g==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"}, +d.animate);if(g==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:d.animate});if(g==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},d.animate);if(g==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:d.animate})}}})})(jQuery); +(function(a){function g(d){return function(){var c=this.element.val();d.apply(this,arguments);this._refresh();c!==this.element.val()&&this._trigger("change")}}a.widget("ui.spinner",{version:"1.9pre",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,incremental:true,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._value(this.element.val(),true);this._draw();this._bind(this._events);this._refresh()},_getCreateOptions:function(){var d= +{},c=this.element;a.each(["min","max","step"],function(e,f){var i=c.attr(f);if(i!==undefined&&i.length)d[f]=i});return d},_events:{keydown:function(d){this._start(d)&&this._keydown(d)&&d.preventDefault()},keyup:"_stop",focus:function(){this.uiSpinner.addClass("ui-state-active");this.previous=this.element.val()},blur:function(d){this._refresh();this.uiSpinner.removeClass("ui-state-active");this.previous!==this.element.val()&&this._trigger("change",d)},mousewheel:function(d,c){if(c){if(!this.spinning&& +!this._start(d))return false;this._spin((c>0?1:-1)*this.options.step,d);clearTimeout(this.mousewheelTimer);this.mousewheelTimer=setTimeout(function(){this.spinning&&this._stop(d)},100);d.preventDefault()}},"mousedown .ui-spinner-button":function(d){d.preventDefault();document.activeElement!==this.element[0]&&this.element.focus();if(this._start(d)!==false)this._repeat(null,a(d.currentTarget).hasClass("ui-spinner-up")?1:-1,d)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(d){if(a(d.currentTarget).hasClass("ui-state-active")){if(this._start(d)=== +false)return false;this._repeat(null,a(d.currentTarget).hasClass("ui-spinner-up")?1:-1,d)}},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var d=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this._hoverable(d);this.element.attr("role","spinbutton");this.buttons=d.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all");this.buttons.height()===d.height()&&d.height()> +0&&d.height(d.height());this.options.disabled&&this.disable()},_keydown:function(d){var c=this.options,e=a.ui.keyCode;switch(d.keyCode){case e.UP:this._repeat(null,1,d);return true;case e.DOWN:this._repeat(null,-1,d);return true;case e.PAGE_UP:this._repeat(null,c.page,d);return true;case e.PAGE_DOWN:this._repeat(null,-c.page,d);return true}return false},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-state-default ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon ui-icon-triangle-1-n'>▲</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon ui-icon-triangle-1-s'>▼</span></a>"}, +_start:function(d){if(!this.spinning&&this._trigger("start",d)===false)return false;if(!this.counter)this.counter=1;return this.spinning=true},_repeat:function(d,c,e){d=d||500;clearTimeout(this.timer);this.timer=this._delay(function(){this._repeat(40,c,e)},d);this._spin(c*this.options.step,e)},_spin:function(d,c){var e=this.value()||0;if(!this.counter)this.counter=1;e=this._adjustValue(e+d*this._increment(this.counter));if(!this.spinning||this._trigger("spin",c,{value:e})!==false){this._value(e); +this.counter++}},_increment:function(d){var c=this.options.incremental;if(c)return a.isFunction(c)?c(d):Math.floor(d*d*d/5E4-d*d/500+17*d/200+1);return 1},_precision:function(){var d=this._precisionOf(this.options.step);if(this.options.min!==null)d=Math.max(d,this._precisionOf(this.options.min));return d},_precisionOf:function(d){d=d.toString();var c=d.indexOf(".");return c===-1?0:d.length-c-1},_adjustValue:function(d){var c,e=this.options;c=e.min!==null?e.min:0;d=Math.round((d-c)/e.step)*e.step; +d=parseFloat((c+d).toFixed(this._precision()));if(e.max!==null&&d>e.max)return e.max;if(e.min!==null&&d<e.min)return e.min;return d},_stop:function(d){if(this.spinning){clearTimeout(this.timer);clearTimeout(this.mousewheelTimer);this.counter=0;this.spinning=false;this._trigger("stop",d)}},_setOption:function(d,c){this._super("_setOption",d,c);if(d==="disabled")if(c){this.element.prop("disabled",true);this.buttons.button("disable")}else{this.element.prop("disabled",false);this.buttons.button("enable")}}, +_setOptions:g(function(d){this._super("_setOptions",d);this._value(this.element.val())}),_parse:function(d){if(typeof d==="string"&&d!=="")d=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(d,10,this.options.culture):+d;return d===""||isNaN(d)?null:d},_format:function(d){if(d==="")return"";return window.Globalize&&this.options.numberFormat?Globalize.format(d,this.options.numberFormat,this.options.culture):d},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max, +"aria-valuenow":this._parse(this.element.val())})},_value:function(d,c){var e;if(d!==""){e=this._parse(d);if(e!==null){c||(e=this._adjustValue(e));d=this._format(e)}}this.element.val(d);this._refresh()},destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",false).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");this._super("destroy");this.uiSpinner.replaceWith(this.element)},stepUp:g(function(d){this._stepUp(d)}), +_stepUp:function(d){this._spin((d||1)*this.options.step)},stepDown:g(function(d){this._stepDown(d)}),_stepDown:function(d){this._spin((d||1)*-this.options.step)},pageUp:g(function(d){this._stepUp((d||1)*this.options.page)}),pageDown:g(function(d){this._stepDown((d||1)*this.options.page)}),value:function(d){if(!arguments.length)return this._parse(this.element.val());g(this._value).call(this,d)},widget:function(){return this.uiSpinner}})})(jQuery); +(function(a,g){var d=0,c=function(){var f=/#.*$/,i=location.href.replace(f,"");return function(b){b=b.cloneNode(false);return b.hash.length>1&&b.href.replace(f,"")===i}}();a.widget("ui.tabs",{version:"1.9pre",options:{active:null,collapsible:false,event:"click",fx:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var f=this,i=f.options,b=i.active;f.running=false;f.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");f._processTabs();if(b===null){location.hash&& +f.anchors.each(function(h,k){if(k.hash===location.hash){b=h;return false}});if(b===null)b=f.lis.filter(".ui-tabs-active").index();if(b===null||b===-1)b=f.lis.length?0:false}if(b!==false){b=this.lis.eq(b).index();if(b===-1)b=i.collapsible?false:0}i.active=b;if(!i.collapsible&&i.active===false&&this.anchors.length)i.active=0;if(a.isArray(i.disabled))i.disabled=a.unique(i.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(h){return f.lis.index(h)}))).sort();this._setupFx(i.fx);this._refresh(); +this.panels.hide();this.lis.removeClass("ui-tabs-active ui-state-active");if(i.active!==false&&this.anchors.length){this.active=this._findActive(i.active);f._getPanelForTab(this.active).show();this.lis.eq(i.active).addClass("ui-tabs-active ui-state-active");this.load(i.active)}else this.active=a()},_setOption:function(f,i){if(f=="active")this._activate(i);else if(f==="disabled")this._setupDisabled(i);else{this._super("_setOption",f,i);f==="collapsible"&&!i&&this.options.active===false&&this._activate(0); +f==="event"&&this._setupEvents(i);f==="fx"&&this._setupFx(i)}},_tabId:function(f){return a(f).attr("aria-controls")||"ui-tabs-"+ ++d},_sanitizeSelector:function(f){return f?f.replace(/[!"$%&'()*+,.\/:;<=>?@[\]^`{|}~]/g,"\\$&"):""},refresh:function(){var f=this.options,i=this.list.children(":has(a[href])");f.disabled=a.map(i.filter(".ui-state-disabled"),function(b){return i.index(b)});this._processTabs();this._refresh();this.panels.not(this._getPanelForTab(this.active)).hide();if(f.active===false|| +!this.anchors.length){f.active=false;this.active=a()}else if(this.active.length&&!a.contains(this.list[0],this.active[0])){f=f.active-1;this._activate(f>=0?f:0)}else f.active=this.anchors.index(this.active)},_refresh:function(){var f=this.options;this.element.toggleClass("ui-tabs-collapsible",f.collapsible);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"); +this._setupDisabled(f.disabled);this._setupEvents(f.event);this.lis.unbind(".tabs");this._focusable(this.lis);this._hoverable(this.lis)},_processTabs:function(){var f=this;this.list=this.element.find("ol,ul").eq(0);this.lis=a(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);this.anchors.each(function(i,b){var h,k;if(c(b)){h=b.hash;k=f.element.find(f._sanitizeSelector(h))}else{var l=f._tabId(b);h="#"+l;k=f.element.find(h);if(!k.length){k= +f._createPanel(l);k.insertAfter(f.panels[i-1]||f.list)}}if(k.length)f.panels=f.panels.add(k);a(b).attr("aria-controls",h.substring(1))})},_createPanel:function(f){return a("<div></div>").attr("id",f).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("destroy.tabs",true)},_setupDisabled:function(f){if(a.isArray(f))if(f.length){if(f.length===this.anchors.length)f=true}else f=false;for(var i=0,b;b=this.lis[i];i++)a(b).toggleClass("ui-state-disabled",f===true||a.inArray(i,f)!==-1);this.options.disabled= +f},_setupFx:function(f){if(f)if(a.isArray(f)){this.hideFx=f[0];this.showFx=f[1]}else this.hideFx=this.showFx=f},_resetStyle:function(f,i){!a.support.opacity&&i.opacity&&f[0].style.removeAttribute("filter")},_setupEvents:function(f){this.anchors.unbind(".tabs");f&&this.anchors.bind(f.split(" ").join(".tabs ")+".tabs",a.proxy(this,"_eventHandler"));this.anchors.bind("click.tabs",function(i){i.preventDefault()})},_eventHandler:function(f){var i=this.options,b=this.active,h=a(f.currentTarget),k=h[0]=== +b[0],l=k&&i.collapsible,j=l?a():this._getPanelForTab(h),m=!b.length?a():this._getPanelForTab(b),n=h.closest("li");b={oldTab:b,oldPanel:m,newTab:l?a():h,newPanel:j};f.preventDefault();if(n.hasClass("ui-state-disabled")||n.hasClass("ui-tabs-loading")||this.running||k&&!i.collapsible||this._trigger("beforeActivate",f,b)===false)h[0].blur();else{i.active=l?false:this.anchors.index(h);this.active=k?a():h;this.xhr&&this.xhr.abort();if(!m.length&&!j.length)throw"jQuery UI Tabs: Mismatching fragment identifier."; +if(j.length){this.load(this.anchors.index(h),f);h[0].blur()}this._toggle(f,b)}},_toggle:function(f,i){function b(){k.running=false;k._trigger("activate",f,i)}function h(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active");if(l.length&&k.showFx)l.animate(k.showFx,k.showFx.duration||"normal",function(){k._resetStyle(a(this),k.showFx);b()});else{l.show();b()}}var k=this,l=i.newPanel,j=i.oldPanel;k.running=true;if(j.length&&k.hideFx)j.animate(k.hideFx,k.hideFx.duration||"normal",function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"); +k._resetStyle(a(this),k.hideFx);h()});else{i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");j.hide();h()}},_activate:function(f){f=this._findActive(f)[0];if(f!==this.active[0]){f=f||this.active[0];this._eventHandler({target:f,currentTarget:f,preventDefault:a.noop})}},_findActive:function(f){return typeof f==="number"?this.anchors.eq(f):typeof f==="string"?this.anchors.filter("[href$='"+f+"']"):a()},_getIndex:function(f){if(typeof f=="string")f=this.anchors.index(this.anchors.filter("[href$="+ +f+"]"));return f},_destroy:function(){this.xhr&&this.xhr.abort();this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.unbind(".tabs").removeData("href.tabs").removeData("load.tabs");this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass("ui-state-default ui-corner-top ui-tabs-active ui-state-active ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom")}); +return this},enable:function(f){var i=this.options.disabled;if(i!==false){if(f===g)i=false;else{f=this._getIndex(f);i=a.isArray(i)?a.map(i,function(b){return b!==f?b:null}):a.map(this.lis,function(b,h){return h!==f?h:null})}this._setupDisabled(i)}},disable:function(f){var i=this.options.disabled;if(i!==true){if(f===g)i=true;else{f=this._getIndex(f);if(a.inArray(f,i)!==-1)return;i=a.isArray(i)?a.merge([f],i).sort():[f]}this._setupDisabled(i)}},load:function(f,i){f=this._getIndex(f);var b=this,h=this.anchors.eq(f), +k=b._getPanelForTab(h),l={tab:h,panel:k};if(!c(h[0])){if(this.xhr=a.ajax({url:h.attr("href"),beforeSend:function(j,m){return b._trigger("beforeLoad",i,a.extend({jqXHR:j,ajaxSettings:m},l))}})){this.lis.eq(f).addClass("ui-tabs-loading");this.xhr.success(function(j){setTimeout(function(){k.html(j);b._trigger("load",i,l)},1)}).complete(function(j,m){setTimeout(function(){m==="abort"&&b.panels.stop(false,true);b.lis.eq(f).removeClass("ui-tabs-loading");j===b.xhr&&delete b.xhr})})}return this}},_getPanelForTab:function(f){return this.element.find(this._sanitizeSelector("#"+ +a(f).attr("aria-controls")))}});if(a.uiBackCompat!==false){a.ui.tabs.prototype._ui=function(f,i){return{tab:f,panel:i,index:this.anchors.index(f)}};(function(f,i){i.url=function(b,h){this.anchors.eq(b).attr("href",h)}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{ajaxOptions:null,cache:false});var b=i._create,h=i._setOption,k=i._destroy,l=i.url||f.noop;f.extend(i,{_create:function(){b.call(this);var j=this;this.element.bind("tabsbeforeload.tabs",function(m,n){if(f.data(n.tab[0], +"cache.tabs"))m.preventDefault();else{f.extend(n.ajaxSettings,j.options.ajaxOptions,{error:function(o,p){try{j.options.ajaxOptions.error(o,p,n.tab.closest("li").index(),n.tab[0])}catch(q){}}});n.jqXHR.success(function(){j.options.cache&&f.data(n.tab[0],"cache.tabs",true)})}})},_setOption:function(j,m){j==="cache"&&m===false&&this.anchors.removeData("cache.tabs");h.apply(this,arguments)},_destroy:function(){this.anchors.removeData("cache.tabs");k.call(this)},url:function(j){this.anchors.eq(j).removeData("cache.tabs"); +l.apply(this,arguments)}})})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.abort=function(){this.xhr&&this.xhr.abort()}})(jQuery,jQuery.ui.tabs.prototype);a.widget("ui.tabs",a.ui.tabs,{options:{spinner:"<em>Loading…</em>"},_create:function(){this._super("_create");this._bind({tabsbeforeload:function(f,i){if(this.options.spinner){var b=i.tab.find("span"),h=b.html();b.html(this.options.spinner);i.jqXHR.complete(function(){b.html(h)})}}})}});(function(f,i){f.extend(i.options,{enable:null,disable:null}); +var b=i.enable,h=i.disable;i.enable=function(k){var l=this.options,j;if(k&&l.disabled===true||f.isArray(l.disabled)&&f.inArray(k,l.disabled)!==-1)j=true;b.apply(this,arguments);j&&this._trigger("enable",null,this._ui(this.anchors[k],this.panels[k]))};i.disable=function(k){var l=this.options,j;if(k&&l.disabled===false||f.isArray(l.disabled)&&f.inArray(k,l.disabled)===-1)j=true;h.apply(this,arguments);j&&this._trigger("disable",null,this._ui(this.anchors[k],this.panels[k]))}})(jQuery,jQuery.ui.tabs.prototype); +(function(f,i){f.extend(i.options,{add:null,remove:null,tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"});i.add=function(b,h,k){if(k===g)k=this.anchors.length;var l=this.options;h=f(l.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,h));b=!b.indexOf("#")?b.replace("#",""):this._tabId(h.find("a")[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);h.find("a").attr("aria-controls",b);var j=k>=this.lis.length,m=this.element.find("#"+b);if(!m.length){m= +this._createPanel(b);if(j)k>0?m.insertAfter(this.panels.eq(-1)):m.appendTo(this.element);else m.insertBefore(this.panels[k])}m.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide();j?h.appendTo(this.list):h.insertBefore(this.lis[k]);l.disabled=f.map(l.disabled,function(n){return n>=k?++n:n});this.refresh();this.lis.length===1&&l.active===false&&this.option("active",0);this._trigger("add",null,this._ui(this.anchors[k],this.panels[k]));return this};i.remove=function(b){b=this._getIndex(b); +var h=this.options,k=this.lis.eq(b).remove(),l=this._getPanelForTab(k.find("a[aria-controls]")).remove();if(k.hasClass("ui-tabs-active")&&this.anchors.length>2)this._activate(b+(b+1<this.anchors.length?1:-1));h.disabled=f.map(f.grep(h.disabled,function(j){return j!==b}),function(j){return j>=b?--j:j});this.refresh();this._trigger("remove",null,this._ui(k.find("a")[0],l[0]));return this}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.length=function(){return this.anchors.length}})(jQuery,jQuery.ui.tabs.prototype); +(function(f,i){f.extend(i.options,{idPrefix:"ui-tabs-"});i._tabId=function(b){return f(b).attr("aria-controls")||b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+ ++d}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{panelTemplate:"<div></div>"});i._createPanel=function(b){return f(this.options.panelTemplate).attr("id",b).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("destroy.tabs",true)}})(jQuery,jQuery.ui.tabs.prototype); +(function(f,i){var b=i._create,h=i._setOption,k=i._eventHandler;i._create=function(){var l=this.options;if(l.active===null&&l.selected!==g)l.active=l.selected===-1?false:l.selected;b.call(this);l.selected=l.active;if(l.selected===false)l.selected=-1};i._setOption=function(l,j){if(l!=="selected")return h.apply(this,arguments);var m=this.options;h.call(this,"active",j===-1?false:j);m.selected=m.active;if(m.selected===false)m.selected=-1};i._eventHandler=function(){k.apply(this,arguments);this.options.selected= +this.options.active;if(this.options.selected===false)this.options.selected=-1}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{show:null,select:null});var b=i._create,h=i._trigger;i._create=function(){b.call(this);this.options.active!==false&&this._trigger("show",null,this._ui(this.active[0],this._getPanelForTab(this.active)[0]))};i._trigger=function(k,l,j){if(!h.apply(this,arguments))return false;if(k==="beforeActivate"&&j.newTab.length)h.call(this,"select",l,{tab:j.newTab[0], +panel:j.newPanel[0],index:j.newTab.closest("li").index()});else k==="activate"&&j.newTab.length&&h.call(this,"show",l,{tab:j.newTab[0],panel:j.newPanel[0],index:j.newTab.closest("li").index()})}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.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.anchors.eq(b).trigger(this.options.event+".tabs")}})(jQuery,jQuery.ui.tabs.prototype);var e=0;a.widget("ui.tabs", +a.ui.tabs,{options:{cookie:null},_create:function(){var f=this.options,i;if(f.active==null&&f.cookie){i=parseInt(this._cookie(),10);if(i===-1)i=false;f.active=i}this._super("_create")},_cookie:function(f){var i=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++e)];if(arguments.length){i.push(f===false?-1:f);i.push(this.options.cookie)}return a.cookie.apply(null,i)},_refresh:function(){this._super("_refresh");this.options.cookie&&this._cookie(this.options.active,this.options.cookie)}, +_eventHandler:function(){this._superApply("_eventHandler",arguments);this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super("_destroy");this.options.cookie&&this._cookie(null,this.options.cookie)}});a.widget("ui.tabs",a.ui.tabs,{_trigger:function(f,i,b){b=a.extend({},b);if(f==="load"){b.panel=b.panel[0];b.tab=b.tab[0]}return this._super("_trigger",f,i,b)}})}})(jQuery); +(function(a){var g=0;a.widget("ui.tooltip",{version:"1.9pre",options:{content:function(){return a(this).attr("title")},hide:true,items:"[title]",position:{my:"left+15 center",at:"right center",collision:"flipfit flipfit"},show:true,tooltipClass:null,close:null,open:null},_create:function(){this._bind({mouseover:"open",focusin:"open"});this.tooltips={}},_setOption:function(d,c){if(d==="disabled"){this[c?"_disable":"_enable"]();this.options[d]=c}else this._super("_setOption",d,c)},_disable:function(){var d= +this;a.each(this.tooltips,function(c,e){var f=a.Event("blur");f.target=f.currentTarget=e[0];d.close(f,true)});this.element.find(this.options.items).andSelf().each(function(){var c=a(this);c.is("[title]")&&c.data("tooltip-title",c.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var d=a(this);d.data("tooltip-title")&&d.attr("title",d.data("tooltip-title"))})},open:function(d){var c,e=this,f=a(d?d.target:this.element).closest(this.options.items); +if(!(!f.length||f.attr("aria-describedby"))){f.data("tooltip-title")||f.data("tooltip-title",f.attr("title"));(c=this.options.content.call(f[0],function(i){setTimeout(function(){e._open(d,f,i)},1)}))&&e._open(d,f,c)}},_open:function(d,c,e){if(e){c.is("[title]")&&c.attr("title","");var f=this._find(c);if(!f.length){f=this._tooltip(c);c.attr("aria-describedby",f.attr("id"))}f.find(".ui-tooltip-content").html(e);f.stop(true).position(a.extend({of:c},this.options.position)).hide();this._show(f,this.options.show); +this._trigger("open",d,{tooltip:f});this._bind(c,{mouseleave:"close",blur:"close",keyup:function(i){if(i.keyCode==a.ui.keyCode.ESCAPE){i=a.Event(i);i.currentTarget=c[0];this.close(i,true)}}})}},close:function(d,c){var e=this,f=a(d?d.currentTarget:this.element),i=this._find(f);if(!(!c&&document.activeElement===f[0])){f.data("tooltip-title")&&f.attr("title",f.data("tooltip-title"));f.removeAttr("aria-describedby");i.stop(true);this._hide(i,this.options.hide,function(){a(this).remove();delete e.tooltips[this.id]}); +f.unbind("mouseleave.tooltip blur.tooltip keyup.tooltip");this._trigger("close",d,{tooltip:i})}},_tooltip:function(d){var c="ui-tooltip-"+g++,e=a("<div>").attr({id:c,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));a("<div>").addClass("ui-tooltip-content").appendTo(e);e.appendTo(document.body);a.fn.bgiframe&&e.bgiframe();this.tooltips[c]=d;return e},_find:function(d){return(d=d.attr("aria-describedby"))?a("#"+d):a()},_destroy:function(){a.each(this.tooltips, +function(d){a("#"+d).remove()})}})})(jQuery); diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js new file mode 100644 index 00000000..cd515f36 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js @@ -0,0 +1,11767 @@ +/*! + * jQuery UI 1.8.16 + * + * 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( $, undefined ) { + +// prevent duplicate loading +// this is only a problem because we proxy existing functions +// and we don't want to double proxy them +$.ui = $.ui || {}; +if ( $.ui.version ) { + return; +} + +$.extend( $.ui, { + version: "1.8.16", + + keyCode: { + ALT: 18, + BACKSPACE: 8, + CAPS_LOCK: 20, + COMMA: 188, + COMMAND: 91, + COMMAND_LEFT: 91, // COMMAND + COMMAND_RIGHT: 93, + CONTROL: 17, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + INSERT: 45, + LEFT: 37, + MENU: 93, // COMMAND_RIGHT + 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 // COMMAND + } +}); + +// plugins +$.fn.extend({ + propAttr: $.fn.prop || $.fn.attr, + + _focus: $.fn.focus, + focus: function( delay, fn ) { + return typeof delay === "number" ? + this.each(function() { + var elem = this; + setTimeout(function() { + $( elem ).focus(); + if ( fn ) { + fn.call( elem ); + } + }, delay ); + }) : + this._focus.apply( this, arguments ); + }, + + scrollParent: function() { + var scrollParent; + if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { + scrollParent = this.parents().filter(function() { + return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); + }).eq(0); + } else { + scrollParent = this.parents().filter(function() { + return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); + }).eq(0); + } + + return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent; + }, + + zIndex: function( zIndex ) { + if ( zIndex !== undefined ) { + return this.css( "zIndex", zIndex ); + } + + if ( this.length ) { + var elem = $( this[ 0 ] ), position, value; + while ( elem.length && elem[ 0 ] !== document ) { + // Ignore z-index if position is set to a value where z-index is ignored by the browser + // This makes behavior of this function consistent across browsers + // WebKit always returns auto if the element is positioned + position = elem.css( "position" ); + if ( position === "absolute" || position === "relative" || position === "fixed" ) { + // IE returns 0 when zIndex is not specified + // other browsers return a string + // we ignore the case of nested elements with an explicit value of 0 + // <div style="z-index: -10;"><div style="z-index: 0;"></div></div> + value = parseInt( elem.css( "zIndex" ), 10 ); + if ( !isNaN( value ) && value !== 0 ) { + return value; + } + } + elem = elem.parent(); + } + } + + return 0; + }, + + disableSelection: function() { + return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + + ".ui-disableSelection", function( event ) { + event.preventDefault(); + }); + }, + + enableSelection: function() { + return this.unbind( ".ui-disableSelection" ); + } +}); + +$.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0; + if ( border ) { + size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0; + } + }); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each(function() { + $( this ).css( type, reduce( this, size ) + "px" ); + }); + }; + + $.fn[ "outer" + name] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each(function() { + $( this).css( type, reduce( this, size, true, margin ) + "px" ); + }); + }; +}); + +// selectors +function focusable( element, isTabIndexNotNaN ) { + var nodeName = element.nodeName.toLowerCase(); + if ( "area" === nodeName ) { + var map = element.parentNode, + mapName = map.name, + img; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap=#" + mapName + "]" )[0]; + return !!img && visible( img ); + } + return ( /input|select|textarea|button|object/.test( nodeName ) + ? !element.disabled + : "a" == nodeName + ? element.href || isTabIndexNotNaN + : isTabIndexNotNaN) + // the element and all of its ancestors must be visible + && visible( element ); +} + +function visible( element ) { + return !$( element ).parents().andSelf().filter(function() { + return $.curCSS( this, "visibility" ) === "hidden" || + $.expr.filters.hidden( this ); + }).length; +} + +$.extend( $.expr[ ":" ], { + data: function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + }, + + focusable: function( element ) { + return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) ); + }, + + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ), + isTabIndexNaN = isNaN( tabIndex ); + return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN ); + } +}); + +// support +$(function() { + var body = document.body, + div = body.appendChild( div = document.createElement( "div" ) ); + + $.extend( div.style, { + minHeight: "100px", + height: "auto", + padding: 0, + borderWidth: 0 + }); + + $.support.minHeight = div.offsetHeight === 100; + $.support.selectstart = "onselectstart" in div; + + // set display to none to avoid a layout bug in IE + // http://dev.jquery.com/ticket/4014 + body.removeChild( div ).style.display = "none"; +}); + + + + + +// deprecated +$.extend( $.ui, { + // $.ui.plugin is deprecated. Use the proxy pattern instead. + plugin: { + add: function( module, option, set ) { + var proto = $.ui[ module ].prototype; + for ( var i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args ) { + var set = instance.plugins[ name ]; + if ( !set || !instance.element[ 0 ].parentNode ) { + return; + } + + for ( var i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } + }, + + // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains() + contains: function( a, b ) { + return document.compareDocumentPosition ? + a.compareDocumentPosition( b ) & 16 : + a !== b && a.contains( b ); + }, + + // only used by resizable + hasScroll: function( el, a ) { + + //If overflow is hidden, the element might have extra content, but the user wants to hide it + if ( $( el ).css( "overflow" ) === "hidden") { + return false; + } + + var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", + has = false; + + if ( el[ scroll ] > 0 ) { + return true; + } + + // TODO: determine which cases actually cause this to happen + // if the element doesn't have the scroll set, see if it's possible to + // set the scroll + el[ scroll ] = 1; + has = ( el[ scroll ] > 0 ); + el[ scroll ] = 0; + return has; + }, + + // these are odd functions, fix the API or move into individual plugins + isOverAxis: function( x, reference, size ) { + //Determines when x coordinate is over "b" element axis + return ( x > reference ) && ( x < ( reference + size ) ); + }, + isOver: function( y, x, top, left, height, width ) { + //Determines when x, y coordinates is over "b" element + return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width ); + } +}); + +})( jQuery ); +/*! + * jQuery UI Widget 1.8.16 + * + * 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++ ) { + try { + $( elem ).triggerHandler( "remove" ); + // http://bugs.jquery.com/ticket/8235 + } catch( e ) {} + } + _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() { + try { + $( this ).triggerHandler( "remove" ); + // http://bugs.jquery.com/ticket/8235 + } catch( e ) {} + }); + } + } + 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 ); +/*! + * jQuery UI Mouse 1.8.16 + * + * 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/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +var mouseHandled = false; +$( document ).mouseup( function( e ) { + mouseHandled = false; +}); + +$.widget("ui.mouse", { + options: { + cancel: ':input,option', + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var self = this; + + this.element + .bind('mousedown.'+this.widgetName, function(event) { + return self._mouseDown(event); + }) + .bind('click.'+this.widgetName, function(event) { + if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) { + $.removeData(event.target, self.widgetName + '.preventClickEvent'); + event.stopImmediatePropagation(); + return false; + } + }); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.unbind('.'+this.widgetName); + }, + + _mouseDown: function(event) { + // don't let more than one widget handle mouseStart + if( mouseHandled ) { return }; + + // we may have missed mouseup (out of window) + (this._mouseStarted && this._mouseUp(event)); + + this._mouseDownEvent = event; + + var self = this, + btnIsLeft = (event.which == 1), + // event.target.nodeName works around a bug in IE 8 with + // disabled inputs (#7620) + elIsCancel = (typeof this.options.cancel == "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false); + if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if (!this.mouseDelayMet) { + this._mouseDelayTimer = setTimeout(function() { + self.mouseDelayMet = true; + }, this.options.delay); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = (this._mouseStart(event) !== false); + if (!this._mouseStarted) { + event.preventDefault(); + return true; + } + } + + // Click event may never have fired (Gecko & Opera) + if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) { + $.removeData(event.target, this.widgetName + '.preventClickEvent'); + } + + // these delegates are required to keep context + this._mouseMoveDelegate = function(event) { + return self._mouseMove(event); + }; + this._mouseUpDelegate = function(event) { + return self._mouseUp(event); + }; + $(document) + .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate) + .bind('mouseup.'+this.widgetName, this._mouseUpDelegate); + + event.preventDefault(); + + mouseHandled = true; + return true; + }, + + _mouseMove: function(event) { + // IE mouseup check - mouseup happened when mouse was out of window + if ($.browser.msie && !(document.documentMode >= 9) && !event.button) { + return this._mouseUp(event); + } + + if (this._mouseStarted) { + this._mouseDrag(event); + return event.preventDefault(); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = + (this._mouseStart(this._mouseDownEvent, event) !== false); + (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); + } + + return !this._mouseStarted; + }, + + _mouseUp: function(event) { + $(document) + .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate) + .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate); + + if (this._mouseStarted) { + this._mouseStarted = false; + + if (event.target == this._mouseDownEvent.target) { + $.data(event.target, this.widgetName + '.preventClickEvent', true); + } + + this._mouseStop(event); + } + + return false; + }, + + _mouseDistanceMet: function(event) { + return (Math.max( + Math.abs(this._mouseDownEvent.pageX - event.pageX), + Math.abs(this._mouseDownEvent.pageY - event.pageY) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function(event) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function(event) {}, + _mouseDrag: function(event) {}, + _mouseStop: function(event) {}, + _mouseCapture: function(event) { return true; } +}); + +})(jQuery); +/* + * jQuery UI Draggable 1.8.16 + * + * 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( $, undefined ) { + +$.widget("ui.draggable", $.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')) return; + this.element + .removeData("draggable") + .unbind(".draggable") + .removeClass("ui-draggable" + + " ui-draggable-dragging" + + " ui-draggable-disabled"); + this._mouseDestroy(); + + return this; + }, + + _mouseCapture: function(event) { + + var o = this.options; + + // among others, prevent a drag on a resizable-handle + if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle')) + return false; + + //Quit if we're not on a valid handle + this.handle = this._getHandle(event); + if (!this.handle) + return false; + + if ( o.iframeFix ) { + $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() { + $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>') + .css({ + width: this.offsetWidth+"px", height: this.offsetHeight+"px", + position: "absolute", opacity: "0.001", zIndex: 1000 + }) + .css($(this).offset()) + .appendTo("body"); + }); + } + + return true; + + }, + + _mouseStart: function(event) { + + var o = this.options; + + //Create and append the visible helper + this.helper = this._createHelper(event); + + //Cache the helper size + this._cacheHelperProportions(); + + //If ddmanager is used for droppables, set the global draggable + if($.ui.ddmanager) + $.ui.ddmanager.current = this; + + /* + * - Position generation - + * This block generates everything position related - it's the core of draggables. + */ + + //Cache the margins of the original element + this._cacheMargins(); + + //Store the helper's css position + this.cssPosition = this.helper.css("position"); + this.scrollParent = this.helper.scrollParent(); + + //The element's absolute position on the page minus margins + this.offset = this.positionAbs = this.element.offset(); + this.offset = { + top: this.offset.top - this.margins.top, + left: this.offset.left - this.margins.left + }; + + $.extend(this.offset, { + click: { //Where the click happened, relative to the element + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }, + parent: this._getParentOffset(), + relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper + }); + + //Generate the original position + this.originalPosition = this.position = this._generatePosition(event); + this.originalPageX = event.pageX; + this.originalPageY = event.pageY; + + //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied + (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); + + //Set a containment if given in the options + if(o.containment) + this._setContainment(); + + //Trigger event + callbacks + if(this._trigger("start", event) === false) { + this._clear(); + return false; + } + + //Recache the helper size + this._cacheHelperProportions(); + + //Prepare the droppable offsets + if ($.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(this, event); + + this.helper.addClass("ui-draggable-dragging"); + this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position + + //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003) + if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event); + + return true; + }, + + _mouseDrag: function(event, noPropagation) { + + //Compute the helpers position + this.position = this._generatePosition(event); + this.positionAbs = this._convertPositionTo("absolute"); + + //Call plugins and callbacks and use the resulting position if something is returned + if (!noPropagation) { + var ui = this._uiHash(); + if(this._trigger('drag', event, ui) === false) { + this._mouseUp({}); + return false; + } + this.position = ui.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'; + if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); + + return false; + }, + + _mouseStop: function(event) { + + //If we are using droppables, inform the manager about the drop + var dropped = false; + if ($.ui.ddmanager && !this.options.dropBehaviour) + dropped = $.ui.ddmanager.drop(this, event); + + //if a drop comes from outside (a sortable) + if(this.dropped) { + dropped = this.dropped; + this.dropped = false; + } + + //if the original element is removed, don't bother to continue if helper is set to "original" + if((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original") + return false; + + if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) { + var self = this; + $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { + if(self._trigger("stop", event) !== false) { + self._clear(); + } + }); + } else { + if(this._trigger("stop", event) !== false) { + this._clear(); + } + } + + return false; + }, + + _mouseUp: function(event) { + if (this.options.iframeFix === true) { + $("div.ui-draggable-iframeFix").each(function() { + this.parentNode.removeChild(this); + }); //Remove frame helpers + } + + //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003) + if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event); + + return $.ui.mouse.prototype._mouseUp.call(this, event); + }, + + cancel: function() { + + if(this.helper.is(".ui-draggable-dragging")) { + this._mouseUp({}); + } else { + this._clear(); + } + + return this; + + }, + + _getHandle: function(event) { + + var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false; + $(this.options.handle, this.element) + .find("*") + .andSelf() + .each(function() { + if(this == event.target) handle = true; + }); + + return handle; + + }, + + _createHelper: function(event) { + + var o = this.options; + var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element); + + if(!helper.parents('body').length) + helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo)); + + if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) + helper.css("position", "absolute"); + + return helper; + + }, + + _adjustOffsetFromHelper: function(obj) { + if (typeof obj == 'string') { + obj = obj.split(' '); + } + if ($.isArray(obj)) { + obj = {left: +obj[0], top: +obj[1] || 0}; + } + if ('left' in obj) { + this.offset.click.left = obj.left + this.margins.left; + } + if ('right' in obj) { + this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; + } + if ('top' in obj) { + this.offset.click.top = obj.top + this.margins.top; + } + if ('bottom' in obj) { + this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; + } + }, + + _getParentOffset: function() { + + //Get the offsetParent and cache its position + this.offsetParent = this.helper.offsetParent(); + var po = this.offsetParent.offset(); + + // This is a special case where we need to modify a offset calculated on start, since the following happened: + // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent + // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that + // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag + if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { + po.left += this.scrollParent.scrollLeft(); + po.top += this.scrollParent.scrollTop(); + } + + if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information + || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix + po = { top: 0, left: 0 }; + + return { + top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), + left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) + }; + + }, + + _getRelativeOffset: function() { + + if(this.cssPosition == "relative") { + var p = this.element.position(); + return { + top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), + left: p.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 o = this.options; + if(o.containment == 'parent') o.containment = this.helper[0].parentNode; + if(o.containment == 'document' || o.containment == 'window') this.containment = [ + o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, + o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, + (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, + (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top + ]; + + if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) { + var c = $(o.containment); + var ce = c[0]; if(!ce) return; + var co = c.offset(); + var over = ($(ce).css("overflow") != 'hidden'); + + this.containment = [ + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0), + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0), + (over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, + (over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom + ]; + this.relative_container = c; + + } else if(o.containment.constructor == Array) { + this.containment = o.containment; + } + + }, + + _convertPositionTo: function(d, pos) { + + if(!pos) pos = this.position; + var mod = d == "absolute" ? 1 : -1; + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + + return { + top: ( + pos.top // The absolute mouse position + + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) + ), + left: ( + pos.left // The absolute mouse position + + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) + ) + }; + + }, + + _generatePosition: function(event) { + + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + var pageX = event.pageX; + var pageY = event.pageY; + + /* + * - Position constraining - + * Constrain the position to a mix of grid, containment. + */ + + if(this.originalPosition) { //If we are not dragging yet, we won't check for options + var containment; + if(this.containment) { + if (this.relative_container){ + var co = this.relative_container.offset(); + containment = [ this.containment[0] + co.left, + this.containment[1] + co.top, + this.containment[2] + co.left, + this.containment[3] + co.top ]; + } + else { + containment = this.containment; + } + + if(event.pageX - this.offset.click.left < containment[0]) pageX = containment[0] + this.offset.click.left; + if(event.pageY - this.offset.click.top < containment[1]) pageY = containment[1] + this.offset.click.top; + if(event.pageX - this.offset.click.left > containment[2]) pageX = containment[2] + this.offset.click.left; + if(event.pageY - this.offset.click.top > containment[3]) pageY = containment[3] + this.offset.click.top; + } + + if(o.grid) { + //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950) + var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY; + pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; + + var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX; + pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; + } + + } + + return { + top: ( + pageY // The absolute mouse position + - this.offset.click.top // Click offset (relative to the element) + - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.top // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) + ), + left: ( + pageX // The absolute mouse position + - this.offset.click.left // Click offset (relative to the element) + - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.left // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) + ) + }; + + }, + + _clear: function() { + this.helper.removeClass("ui-draggable-dragging"); + if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove(); + //if($.ui.ddmanager) $.ui.ddmanager.current = null; + this.helper = null; + this.cancelHelperRemoval = false; + }, + + // From now on bulk stuff - mainly helpers + + _trigger: function(type, event, ui) { + ui = ui || this._uiHash(); + $.ui.plugin.call(this, type, [event, ui]); + if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins + return $.Widget.prototype._trigger.call(this, type, event, ui); + }, + + plugins: {}, + + _uiHash: function(event) { + return { + helper: this.helper, + position: this.position, + originalPosition: this.originalPosition, + offset: this.positionAbs + }; + } + +}); + +$.extend($.ui.draggable, { + version: "1.8.16" +}); + +$.ui.plugin.add("draggable", "connectToSortable", { + start: function(event, ui) { + + var inst = $(this).data("draggable"), o = inst.options, + uiSortable = $.extend({}, ui, { item: inst.element }); + inst.sortables = []; + $(o.connectToSortable).each(function() { + var sortable = $.data(this, 'sortable'); + if (sortable && !sortable.options.disabled) { + inst.sortables.push({ + instance: sortable, + shouldRevert: sortable.options.revert + }); + sortable.refreshPositions(); // Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page). + sortable._trigger("activate", event, uiSortable); + } + }); + + }, + stop: function(event, ui) { + + //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper + var inst = $(this).data("draggable"), + uiSortable = $.extend({}, ui, { item: inst.element }); + + $.each(inst.sortables, function() { + if(this.instance.isOver) { + + this.instance.isOver = 0; + + inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance + this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work) + + //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid' + if(this.shouldRevert) this.instance.options.revert = true; + + //Trigger the stop of the sortable + this.instance._mouseStop(event); + + this.instance.options.helper = this.instance.options._helper; + + //If the helper has been the original item, restore properties in the sortable + if(inst.options.helper == 'original') + this.instance.currentItem.css({ top: 'auto', left: 'auto' }); + + } else { + this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance + this.instance._trigger("deactivate", event, uiSortable); + } + + }); + + }, + drag: function(event, ui) { + + var inst = $(this).data("draggable"), self = this; + + var checkPos = function(o) { + var dyClick = this.offset.click.top, dxClick = this.offset.click.left; + var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left; + var itemHeight = o.height, itemWidth = o.width; + var itemTop = o.top, itemLeft = o.left; + + return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth); + }; + + $.each(inst.sortables, function(i) { + + //Copy over some variables to allow calling the sortable's native _intersectsWith + this.instance.positionAbs = inst.positionAbs; + this.instance.helperProportions = inst.helperProportions; + this.instance.offset.click = inst.offset.click; + + if(this.instance._intersectsWith(this.instance.containerCache)) { + + //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once + if(!this.instance.isOver) { + + this.instance.isOver = 1; + //Now we fake the start of dragging for the sortable instance, + //by cloning the list group item, appending it to the sortable and using it as inst.currentItem + //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one) + this.instance.currentItem = $(self).clone().removeAttr('id').appendTo(this.instance.element).data("sortable-item", true); + this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it + this.instance.options.helper = function() { return ui.helper[0]; }; + + event.target = this.instance.currentItem[0]; + this.instance._mouseCapture(event, true); + this.instance._mouseStart(event, true, true); + + //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes + this.instance.offset.click.top = inst.offset.click.top; + this.instance.offset.click.left = inst.offset.click.left; + this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left; + this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top; + + inst._trigger("toSortable", event); + inst.dropped = this.instance.element; //draggable revert needs that + //hack so receive/update callbacks work (mostly) + inst.currentItem = inst.element; + this.instance.fromOutside = inst; + + } + + //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable + if(this.instance.currentItem) this.instance._mouseDrag(event); + + } else { + + //If it doesn't intersect with the sortable, and it intersected before, + //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval + if(this.instance.isOver) { + + this.instance.isOver = 0; + this.instance.cancelHelperRemoval = true; + + //Prevent reverting on this forced stop + this.instance.options.revert = false; + + // The out event needs to be triggered independently + this.instance._trigger('out', event, this.instance._uiHash(this.instance)); + + this.instance._mouseStop(event, true); + this.instance.options.helper = this.instance.options._helper; + + //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size + this.instance.currentItem.remove(); + if(this.instance.placeholder) this.instance.placeholder.remove(); + + inst._trigger("fromSortable", event); + inst.dropped = false; //draggable revert needs that + } + + }; + + }); + + } +}); + +$.ui.plugin.add("draggable", "cursor", { + start: function(event, ui) { + var t = $('body'), o = $(this).data('draggable').options; + if (t.css("cursor")) o._cursor = t.css("cursor"); + t.css("cursor", o.cursor); + }, + stop: function(event, ui) { + var o = $(this).data('draggable').options; + if (o._cursor) $('body').css("cursor", o._cursor); + } +}); + +$.ui.plugin.add("draggable", "opacity", { + start: function(event, ui) { + var t = $(ui.helper), o = $(this).data('draggable').options; + if(t.css("opacity")) o._opacity = t.css("opacity"); + t.css('opacity', o.opacity); + }, + stop: function(event, ui) { + var o = $(this).data('draggable').options; + if(o._opacity) $(ui.helper).css('opacity', o._opacity); + } +}); + +$.ui.plugin.add("draggable", "scroll", { + start: function(event, ui) { + var i = $(this).data("draggable"); + if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset(); + }, + drag: function(event, ui) { + + var i = $(this).data("draggable"), o = i.options, scrolled = false; + + if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') { + + if(!o.axis || o.axis != 'x') { + if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) + i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed; + else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) + i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed; + } + + if(!o.axis || o.axis != 'y') { + if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) + i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed; + else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) + i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed; + } + + } else { + + if(!o.axis || o.axis != 'x') { + if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); + else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); + } + + if(!o.axis || o.axis != 'y') { + if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); + else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); + } + + } + + if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(i, event); + + } +}); + +$.ui.plugin.add("draggable", "snap", { + start: function(event, ui) { + + var i = $(this).data("draggable"), o = i.options; + i.snapElements = []; + + $(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() { + var $t = $(this); var $o = $t.offset(); + if(this != i.element[0]) i.snapElements.push({ + item: this, + width: $t.outerWidth(), height: $t.outerHeight(), + top: $o.top, left: $o.left + }); + }); + + }, + drag: function(event, ui) { + + var inst = $(this).data("draggable"), o = inst.options; + var d = o.snapTolerance; + + var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, + y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; + + for (var i = inst.snapElements.length - 1; i >= 0; i--){ + + var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width, + t = inst.snapElements[i].top, b = t + inst.snapElements[i].height; + + //Yes, I know, this is insane ;) + if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) { + if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); + inst.snapElements[i].snapping = false; + continue; + } + + if(o.snapMode != 'inner') { + var ts = Math.abs(t - y2) <= d; + var bs = Math.abs(b - y1) <= d; + var ls = Math.abs(l - x2) <= d; + var rs = Math.abs(r - x1) <= d; + if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; + if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; + if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; + } + + var first = (ts || bs || ls || rs); + + if(o.snapMode != 'outer') { + var ts = Math.abs(t - y1) <= d; + var bs = Math.abs(b - y2) <= d; + var ls = Math.abs(l - x1) <= d; + var rs = Math.abs(r - x2) <= d; + if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; + if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; + if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; + } + + if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) + (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); + inst.snapElements[i].snapping = (ts || bs || ls || rs || first); + + }; + + } +}); + +$.ui.plugin.add("draggable", "stack", { + start: function(event, ui) { + + var o = $(this).data("draggable").options; + + var group = $.makeArray($(o.stack)).sort(function(a,b) { + return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); + }); + if (!group.length) { return; } + + var min = parseInt(group[0].style.zIndex) || 0; + $(group).each(function(i) { + this.style.zIndex = min + i; + }); + + this[0].style.zIndex = min + group.length; + + } +}); + +$.ui.plugin.add("draggable", "zIndex", { + start: function(event, ui) { + var t = $(ui.helper), o = $(this).data("draggable").options; + if(t.css("zIndex")) o._zIndex = t.css("zIndex"); + t.css('zIndex', o.zIndex); + }, + stop: function(event, ui) { + var o = $(this).data("draggable").options; + if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex); + } +}); + +})(jQuery); +/* + * jQuery UI Droppable 1.8.16 + * + * 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/Droppables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.mouse.js + * jquery.ui.draggable.js + */ +(function( $, undefined ) { + +$.widget("ui.droppable", { + widgetEventPrefix: "drop", + options: { + accept: '*', + activeClass: false, + addClasses: true, + greedy: false, + hoverClass: false, + scope: 'default', + tolerance: 'intersect' + }, + _create: function() { + + var o = this.options, accept = o.accept; + this.isover = 0; this.isout = 1; + + this.accept = $.isFunction(accept) ? accept : function(d) { + return d.is(accept); + }; + + //Store the droppable's proportions + this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; + + // Add the reference and positions to the manager + $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || []; + $.ui.ddmanager.droppables[o.scope].push(this); + + (o.addClasses && this.element.addClass("ui-droppable")); + + }, + + destroy: function() { + var drop = $.ui.ddmanager.droppables[this.options.scope]; + for ( var i = 0; i < drop.length; i++ ) + if ( drop[i] == this ) + drop.splice(i, 1); + + this.element + .removeClass("ui-droppable ui-droppable-disabled") + .removeData("droppable") + .unbind(".droppable"); + + return this; + }, + + _setOption: function(key, value) { + + if(key == 'accept') { + this.accept = $.isFunction(value) ? value : function(d) { + return d.is(value); + }; + } + $.Widget.prototype._setOption.apply(this, arguments); + }, + + _activate: function(event) { + var draggable = $.ui.ddmanager.current; + if(this.options.activeClass) this.element.addClass(this.options.activeClass); + (draggable && this._trigger('activate', event, this.ui(draggable))); + }, + + _deactivate: function(event) { + var draggable = $.ui.ddmanager.current; + if(this.options.activeClass) this.element.removeClass(this.options.activeClass); + (draggable && this._trigger('deactivate', event, this.ui(draggable))); + }, + + _over: function(event) { + + var draggable = $.ui.ddmanager.current; + if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element + + if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if(this.options.hoverClass) this.element.addClass(this.options.hoverClass); + this._trigger('over', event, this.ui(draggable)); + } + + }, + + _out: function(event) { + + var draggable = $.ui.ddmanager.current; + if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element + + if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); + this._trigger('out', event, this.ui(draggable)); + } + + }, + + _drop: function(event,custom) { + + var draggable = custom || $.ui.ddmanager.current; + if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element + + var childrenIntersection = false; + this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() { + var inst = $.data(this, 'droppable'); + if( + inst.options.greedy + && !inst.options.disabled + && inst.options.scope == draggable.options.scope + && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) + && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance) + ) { childrenIntersection = true; return false; } + }); + if(childrenIntersection) return false; + + if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if(this.options.activeClass) this.element.removeClass(this.options.activeClass); + if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); + this._trigger('drop', event, this.ui(draggable)); + return this.element; + } + + return false; + + }, + + ui: function(c) { + return { + draggable: (c.currentItem || c.element), + helper: c.helper, + position: c.position, + offset: c.positionAbs + }; + } + +}); + +$.extend($.ui.droppable, { + version: "1.8.16" +}); + +$.ui.intersect = function(draggable, droppable, toleranceMode) { + + if (!droppable.offset) return false; + + var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width, + y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height; + var l = droppable.offset.left, r = l + droppable.proportions.width, + t = droppable.offset.top, b = t + droppable.proportions.height; + + switch (toleranceMode) { + case 'fit': + return (l <= x1 && x2 <= r + && t <= y1 && y2 <= b); + break; + case 'intersect': + return (l < x1 + (draggable.helperProportions.width / 2) // Right Half + && x2 - (draggable.helperProportions.width / 2) < r // Left Half + && t < y1 + (draggable.helperProportions.height / 2) // Bottom Half + && y2 - (draggable.helperProportions.height / 2) < b ); // Top Half + break; + case 'pointer': + var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left), + draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top), + isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width); + return isOver; + break; + case 'touch': + return ( + (y1 >= t && y1 <= b) || // Top edge touching + (y2 >= t && y2 <= b) || // Bottom edge touching + (y1 < t && y2 > b) // Surrounded vertically + ) && ( + (x1 >= l && x1 <= r) || // Left edge touching + (x2 >= l && x2 <= r) || // Right edge touching + (x1 < l && x2 > r) // Surrounded horizontally + ); + break; + default: + return false; + break; + } + +}; + +/* + This manager tracks offsets of draggables and droppables +*/ +$.ui.ddmanager = { + current: null, + droppables: { 'default': [] }, + prepareOffsets: function(t, event) { + + var m = $.ui.ddmanager.droppables[t.options.scope] || []; + var type = event ? event.type : null; // workaround for #2317 + var list = (t.currentItem || t.element).find(":data(droppable)").andSelf(); + + droppablesLoop: for (var i = 0; i < m.length; i++) { + + if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue; //No disabled and non-accepted + for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item + m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; //If the element is not visible, continue + + if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables + + m[i].offset = m[i].element.offset(); + m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight }; + + } + + }, + drop: function(draggable, event) { + + var dropped = false; + $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { + + if(!this.options) return; + if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) + dropped = dropped || this._drop.call(this, event); + + if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + this.isout = 1; this.isover = 0; + this._deactivate.call(this, event); + } + + }); + return dropped; + + }, + dragStart: function( draggable, event ) { + //Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003) + draggable.element.parents( ":not(body,html)" ).bind( "scroll.droppable", function() { + if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event ); + }); + }, + drag: function(draggable, event) { + + //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. + if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event); + + //Run through all droppables and check their positions based on specific tolerance options + $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { + + if(this.options.disabled || this.greedyChild || !this.visible) return; + var intersects = $.ui.intersect(draggable, this, this.options.tolerance); + + var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null); + if(!c) return; + + var parentInstance; + if (this.options.greedy) { + var parent = this.element.parents(':data(droppable):eq(0)'); + if (parent.length) { + parentInstance = $.data(parent[0], 'droppable'); + parentInstance.greedyChild = (c == 'isover' ? 1 : 0); + } + } + + // we just moved into a greedy child + if (parentInstance && c == 'isover') { + parentInstance['isover'] = 0; + parentInstance['isout'] = 1; + parentInstance._out.call(parentInstance, event); + } + + this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0; + this[c == "isover" ? "_over" : "_out"].call(this, event); + + // we just moved out of a greedy child + if (parentInstance && c == 'isout') { + parentInstance['isout'] = 0; + parentInstance['isover'] = 1; + parentInstance._over.call(parentInstance, event); + } + }); + + }, + dragStop: function( draggable, event ) { + draggable.element.parents( ":not(body,html)" ).unbind( "scroll.droppable" ); + //Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003) + if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event ); + } +}; + +})(jQuery); +/* + * jQuery UI Resizable 1.8.16 + * + * 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/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.resizable", $.ui.mouse, { + widgetEventPrefix: "resize", + options: { + alsoResize: false, + animate: false, + animateDuration: "slow", + animateEasing: "swing", + aspectRatio: false, + autoHide: false, + containment: false, + ghost: false, + grid: false, + handles: "e,s,se", + helper: false, + maxHeight: null, + maxWidth: null, + minHeight: 10, + minWidth: 10, + zIndex: 1000 + }, + _create: function() { + + var self = this, o = this.options; + this.element.addClass("ui-resizable"); + + $.extend(this, { + _aspectRatio: !!(o.aspectRatio), + aspectRatio: o.aspectRatio, + originalElement: this.element, + _proportionallyResizeElements: [], + _helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null + }); + + //Wrap the element if it cannot hold child nodes + if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { + + //Opera fix for relative positioning + if (/relative/.test(this.element.css('position')) && $.browser.opera) + this.element.css({ position: 'relative', top: 'auto', left: 'auto' }); + + //Create a wrapper element and set the wrapper to the new current internal element + this.element.wrap( + $('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({ + position: this.element.css('position'), + width: this.element.outerWidth(), + height: this.element.outerHeight(), + top: this.element.css('top'), + left: this.element.css('left') + }) + ); + + //Overwrite the original this.element + this.element = this.element.parent().data( + "resizable", this.element.data('resizable') + ); + + this.elementIsWrapper = true; + + //Move margins to the wrapper + 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}); + + //Prevent Safari textarea resize + this.originalResizeStyle = this.originalElement.css('resize'); + this.originalElement.css('resize', 'none'); + + //Push the actual element to our proportionallyResize internal array + this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' })); + + // avoid IE jump (hard set the margin) + this.originalElement.css({ margin: this.originalElement.css('margin') }); + + // fix handlers offset + this._proportionallyResize(); + + } + + this.handles = o.handles || (!$('.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 n = this.handles.split(","); this.handles = {}; + + for(var i = 0; i < n.length; i++) { + + var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle; + var axis = $('<div class="ui-resizable-handle ' + hname + '"></div>'); + + // increase zIndex of sw, se, ne, nw axis + //TODO : this modifies original option + if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex }); + + //TODO : What's going on here? + if ('se' == handle) { + axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se'); + }; + + //Insert into internal handles object and append to element + this.handles[handle] = '.ui-resizable-'+handle; + this.element.append(axis); + } + + } + + this._renderAxis = function(target) { + + target = target || this.element; + + for(var i in this.handles) { + + if(this.handles[i].constructor == String) + this.handles[i] = $(this.handles[i], this.element).show(); + + //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls) + if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { + + var axis = $(this.handles[i], this.element), padWrapper = 0; + + //Checking the correct pad and border + padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth(); + + //The padding type i have to apply... + var padPos = [ 'padding', + /ne|nw|n/.test(i) ? 'Top' : + /se|sw|s/.test(i) ? 'Bottom' : + /^e$/.test(i) ? 'Right' : 'Left' ].join(""); + + target.css(padPos, padWrapper); + + this._proportionallyResize(); + + } + + //TODO: What's that good for? There's not anything to be executed left + if(!$(this.handles[i]).length) + continue; + + } + }; + + //TODO: make renderAxis a prototype function + this._renderAxis(this.element); + + this._handles = $('.ui-resizable-handle', this.element) + .disableSelection(); + + //Matching axis name + this._handles.mouseover(function() { + if (!self.resizing) { + if (this.className) + var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); + //Axis, default = se + self.axis = axis && axis[1] ? axis[1] : 'se'; + } + }); + + //If we want to auto hide the elements + if (o.autoHide) { + this._handles.hide(); + $(this.element) + .addClass("ui-resizable-autohide") + .hover(function() { + if (o.disabled) return; + $(this).removeClass("ui-resizable-autohide"); + self._handles.show(); + }, + function(){ + if (o.disabled) return; + if (!self.resizing) { + $(this).addClass("ui-resizable-autohide"); + self._handles.hide(); + } + }); + } + + //Initialize the mouse interaction + this._mouseInit(); + + }, + + destroy: function() { + + this._mouseDestroy(); + + var _destroy = function(exp) { + $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") + .removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove(); + }; + + //TODO: Unwrap at same DOM position + if (this.elementIsWrapper) { + _destroy(this.element); + var wrapper = this.element; + wrapper.after( + this.originalElement.css({ + position: wrapper.css('position'), + width: wrapper.outerWidth(), + height: wrapper.outerHeight(), + top: wrapper.css('top'), + left: wrapper.css('left') + }) + ).remove(); + } + + this.originalElement.css('resize', this.originalResizeStyle); + _destroy(this.originalElement); + + return this; + }, + + _mouseCapture: function(event) { + var handle = false; + for (var i in this.handles) { + if ($(this.handles[i])[0] == event.target) { + handle = true; + } + } + + return !this.options.disabled && handle; + }, + + _mouseStart: function(event) { + + var o = this.options, iniPos = this.element.position(), el = this.element; + + this.resizing = true; + this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() }; + + // bugfix for http://dev.jquery.com/ticket/1749 + if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) { + el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left }); + } + + //Opera fixing relative position + if ($.browser.opera && (/relative/).test(el.css('position'))) + el.css({ position: 'relative', top: 'auto', left: 'auto' }); + + this._renderProxy(); + + var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top')); + + if (o.containment) { + curleft += $(o.containment).scrollLeft() || 0; + curtop += $(o.containment).scrollTop() || 0; + } + + //Store needed variables + this.offset = this.helper.offset(); + this.position = { left: curleft, top: curtop }; + this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; + this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; + this.originalPosition = { left: curleft, top: curtop }; + this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() }; + this.originalMousePosition = { left: event.pageX, top: event.pageY }; + + //Aspect Ratio + this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1); + + var cursor = $('.ui-resizable-' + this.axis).css('cursor'); + $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor); + + el.addClass("ui-resizable-resizing"); + this._propagate("start", event); + return true; + }, + + _mouseDrag: function(event) { + + //Increase performance, avoid regex + var el = this.helper, o = this.options, props = {}, + self = this, smp = this.originalMousePosition, a = this.axis; + + var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0; + var trigger = this._change[a]; + if (!trigger) return false; + + // Calculate the attrs that will be change + var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff; + + // Put this in the mouseDrag handler since the user can start pressing shift while resizing + this._updateVirtualBoundaries(event.shiftKey); + if (this._aspectRatio || event.shiftKey) + data = this._updateRatio(data, event); + + data = this._respectSize(data, event); + + // plugins callbacks need to be called first + this._propagate("resize", event); + + el.css({ + top: this.position.top + "px", left: this.position.left + "px", + width: this.size.width + "px", height: this.size.height + "px" + }); + + if (!this._helper && this._proportionallyResizeElements.length) + this._proportionallyResize(); + + this._updateCache(data); + + // calling the user callback at the end + this._trigger('resize', event, this.ui()); + + return false; + }, + + _mouseStop: function(event) { + + this.resizing = false; + var o = this.options, self = this; + + if(this._helper) { + var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), + soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height, + soffsetw = ista ? 0 : self.sizeDiff.width; + + var s = { width: (self.helper.width() - soffsetw), height: (self.helper.height() - soffseth) }, + left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null, + top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null; + + if (!o.animate) + this.element.css($.extend(s, { top: top, left: left })); + + self.helper.height(self.size.height); + self.helper.width(self.size.width); + + if (this._helper && !o.animate) this._proportionallyResize(); + } + + $('body').css('cursor', 'auto'); + + this.element.removeClass("ui-resizable-resizing"); + + this._propagate("stop", event); + + if (this._helper) this.helper.remove(); + return false; + + }, + + _updateVirtualBoundaries: function(forceAspectRatio) { + var o = this.options, pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b; + + b = { + minWidth: isNumber(o.minWidth) ? o.minWidth : 0, + maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity, + minHeight: isNumber(o.minHeight) ? o.minHeight : 0, + maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity + }; + + if(this._aspectRatio || forceAspectRatio) { + // We want to create an enclosing box whose aspect ration is the requested one + // First, compute the "projected" size for each dimension based on the aspect ratio and other dimension + pMinWidth = b.minHeight * this.aspectRatio; + pMinHeight = b.minWidth / this.aspectRatio; + pMaxWidth = b.maxHeight * this.aspectRatio; + pMaxHeight = b.maxWidth / this.aspectRatio; + + if(pMinWidth > b.minWidth) b.minWidth = pMinWidth; + if(pMinHeight > b.minHeight) b.minHeight = pMinHeight; + if(pMaxWidth < b.maxWidth) b.maxWidth = pMaxWidth; + if(pMaxHeight < b.maxHeight) b.maxHeight = pMaxHeight; + } + this._vBoundaries = b; + }, + + _updateCache: function(data) { + var o = this.options; + this.offset = this.helper.offset(); + if (isNumber(data.left)) this.position.left = data.left; + if (isNumber(data.top)) this.position.top = data.top; + if (isNumber(data.height)) this.size.height = data.height; + if (isNumber(data.width)) this.size.width = data.width; + }, + + _updateRatio: function(data, event) { + + var o = this.options, cpos = this.position, csize = this.size, a = this.axis; + + if (isNumber(data.height)) data.width = (data.height * this.aspectRatio); + else if (isNumber(data.width)) data.height = (data.width / this.aspectRatio); + + if (a == 'sw') { + data.left = cpos.left + (csize.width - data.width); + data.top = null; + } + if (a == 'nw') { + data.top = cpos.top + (csize.height - data.height); + data.left = cpos.left + (csize.width - data.width); + } + + return data; + }, + + _respectSize: function(data, event) { + + var el = this.helper, o = this._vBoundaries, pRatio = this._aspectRatio || event.shiftKey, a = this.axis, + ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), + isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height); + + if (isminw) data.width = o.minWidth; + if (isminh) data.height = o.minHeight; + if (ismaxw) data.width = o.maxWidth; + if (ismaxh) data.height = o.maxHeight; + + var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height; + var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); + + if (isminw && cw) data.left = dw - o.minWidth; + if (ismaxw && cw) data.left = dw - o.maxWidth; + if (isminh && ch) data.top = dh - o.minHeight; + if (ismaxh && ch) data.top = dh - o.maxHeight; + + // fixing jump error on top/left - bug #2330 + var isNotwh = !data.width && !data.height; + if (isNotwh && !data.left && data.top) data.top = null; + else if (isNotwh && !data.top && data.left) data.left = null; + + return data; + }, + + _proportionallyResize: function() { + + var o = this.options; + if (!this._proportionallyResizeElements.length) return; + var element = this.helper || this.element; + + for (var i=0; i < this._proportionallyResizeElements.length; i++) { + + var prel = this._proportionallyResizeElements[i]; + + if (!this.borderDif) { + var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')], + p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')]; + + this.borderDif = $.map(b, function(v, i) { + var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0; + return border + padding; + }); + } + + if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length))) + continue; + + prel.css({ + height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0, + width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0 + }); + + }; + + }, + + _renderProxy: function() { + + var el = this.element, o = this.options; + this.elementOffset = el.offset(); + + if(this._helper) { + + this.helper = this.helper || $('<div style="overflow:hidden;"></div>'); + + // fix ie6 offset TODO: This seems broken + var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0), + pxyoffset = ( ie6 ? 2 : -1 ); + + this.helper.addClass(this._helper).css({ + width: this.element.outerWidth() + pxyoffset, + height: this.element.outerHeight() + pxyoffset, + position: 'absolute', + left: this.elementOffset.left - ie6offset +'px', + top: this.elementOffset.top - ie6offset +'px', + zIndex: ++o.zIndex //TODO: Don't modify option + }); + + this.helper + .appendTo("body") + .disableSelection(); + + } else { + this.helper = this.element; + } + + }, + + _change: { + e: function(event, dx, dy) { + return { width: this.originalSize.width + dx }; + }, + w: function(event, dx, dy) { + var o = this.options, cs = this.originalSize, sp = this.originalPosition; + return { left: sp.left + dx, width: cs.width - dx }; + }, + n: function(event, dx, dy) { + var o = this.options, cs = this.originalSize, sp = this.originalPosition; + return { top: sp.top + dy, height: cs.height - dy }; + }, + s: function(event, dx, dy) { + return { height: this.originalSize.height + dy }; + }, + se: function(event, dx, dy) { + return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + }, + sw: function(event, dx, dy) { + return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + }, + ne: function(event, dx, dy) { + return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + }, + nw: function(event, dx, dy) { + return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + } + }, + + _propagate: function(n, event) { + $.ui.plugin.call(this, n, [event, this.ui()]); + (n != "resize" && this._trigger(n, event, 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 + }; + } + +}); + +$.extend($.ui.resizable, { + version: "1.8.16" +}); + +/* + * Resizable Extensions + */ + +$.ui.plugin.add("resizable", "alsoResize", { + + start: function (event, ui) { + var self = $(this).data("resizable"), o = self.options; + + var _store = function (exp) { + $(exp).each(function() { + var el = $(this); + el.data("resizable-alsoresize", { + width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), + left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10), + position: el.css('position') // to reset Opera on stop() + }); + }); + }; + + if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) { + if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); } + else { $.each(o.alsoResize, function (exp) { _store(exp); }); } + }else{ + _store(o.alsoResize); + } + }, + + resize: function (event, ui) { + var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition; + + var delta = { + height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0, + top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0 + }, + + _alsoResize = function (exp, c) { + $(exp).each(function() { + var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, + css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left']; + + $.each(css, function (i, prop) { + var sum = (start[prop]||0) + (delta[prop]||0); + if (sum && sum >= 0) + style[prop] = sum || null; + }); + + // Opera fixing relative position + if ($.browser.opera && /relative/.test(el.css('position'))) { + self._revertToRelativePosition = true; + el.css({ position: 'absolute', top: 'auto', left: 'auto' }); + } + + el.css(style); + }); + }; + + if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) { + $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); }); + }else{ + _alsoResize(o.alsoResize); + } + }, + + stop: function (event, ui) { + var self = $(this).data("resizable"), o = self.options; + + var _reset = function (exp) { + $(exp).each(function() { + var el = $(this); + // reset position for Opera - no need to verify it was changed + el.css({ position: el.data("resizable-alsoresize").position }); + }); + }; + + if (self._revertToRelativePosition) { + self._revertToRelativePosition = false; + if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) { + $.each(o.alsoResize, function (exp) { _reset(exp); }); + }else{ + _reset(o.alsoResize); + } + } + + $(this).removeData("resizable-alsoresize"); + } +}); + +$.ui.plugin.add("resizable", "animate", { + + stop: function(event, ui) { + var self = $(this).data("resizable"), o = self.options; + + var pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), + soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height, + soffsetw = ista ? 0 : self.sizeDiff.width; + + var style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) }, + left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null, + top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null; + + self.element.animate( + $.extend(style, top && left ? { top: top, left: left } : {}), { + duration: o.animateDuration, + easing: o.animateEasing, + step: function() { + + var data = { + width: parseInt(self.element.css('width'), 10), + height: parseInt(self.element.css('height'), 10), + top: parseInt(self.element.css('top'), 10), + left: parseInt(self.element.css('left'), 10) + }; + + if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height }); + + // propagating resize, and updating values for each animation step + self._updateCache(data); + self._propagate("resize", event); + + } + } + ); + } + +}); + +$.ui.plugin.add("resizable", "containment", { + + start: function(event, ui) { + var self = $(this).data("resizable"), o = self.options, el = self.element; + var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc; + if (!ce) return; + + self.containerElement = $(ce); + + if (/document/.test(oc) || oc == document) { + self.containerOffset = { left: 0, top: 0 }; + self.containerPosition = { left: 0, top: 0 }; + + self.parentData = { + element: $(document), left: 0, top: 0, + width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight + }; + } + + // i'm a node, so compute top, left, right, bottom + else { + var element = $(ce), p = []; + $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); }); + + self.containerOffset = element.offset(); + self.containerPosition = element.position(); + self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) }; + + var co = self.containerOffset, ch = self.containerSize.height, cw = self.containerSize.width, + width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch); + + self.parentData = { + element: ce, left: co.left, top: co.top, width: width, height: height + }; + } + }, + + resize: function(event, ui) { + var self = $(this).data("resizable"), o = self.options, + ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position, + pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement; + + if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co; + + if (cp.left < (self._helper ? co.left : 0)) { + self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left)); + if (pRatio) self.size.height = self.size.width / o.aspectRatio; + self.position.left = o.helper ? co.left : 0; + } + + if (cp.top < (self._helper ? co.top : 0)) { + self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top); + if (pRatio) self.size.width = self.size.height * o.aspectRatio; + self.position.top = self._helper ? co.top : 0; + } + + self.offset.left = self.parentData.left+self.position.left; + self.offset.top = self.parentData.top+self.position.top; + + var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ), + hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height ); + + var isParent = self.containerElement.get(0) == self.element.parent().get(0), + isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position')); + + if(isParent && isOffsetRelative) woset -= self.parentData.left; + + if (woset + self.size.width >= self.parentData.width) { + self.size.width = self.parentData.width - woset; + if (pRatio) self.size.height = self.size.width / self.aspectRatio; + } + + if (hoset + self.size.height >= self.parentData.height) { + self.size.height = self.parentData.height - hoset; + if (pRatio) self.size.width = self.size.height * self.aspectRatio; + } + }, + + stop: function(event, ui){ + var self = $(this).data("resizable"), o = self.options, cp = self.position, + co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement; + + var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height; + + if (self._helper && !o.animate && (/relative/).test(ce.css('position'))) + $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); + + if (self._helper && !o.animate && (/static/).test(ce.css('position'))) + $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); + + } +}); + +$.ui.plugin.add("resizable", "ghost", { + + start: function(event, ui) { + + var self = $(this).data("resizable"), o = self.options, cs = self.size; + + self.ghost = self.originalElement.clone(); + self.ghost + .css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 }) + .addClass('ui-resizable-ghost') + .addClass(typeof o.ghost == 'string' ? o.ghost : ''); + + self.ghost.appendTo(self.helper); + + }, + + resize: function(event, ui){ + var self = $(this).data("resizable"), o = self.options; + if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width }); + }, + + stop: function(event, ui){ + var self = $(this).data("resizable"), o = self.options; + if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0)); + } + +}); + +$.ui.plugin.add("resizable", "grid", { + + resize: function(event, ui) { + var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey; + o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid; + var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1); + + if (/^(se|s|e)$/.test(a)) { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + } + else if (/^(ne)$/.test(a)) { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + self.position.top = op.top - oy; + } + else if (/^(sw)$/.test(a)) { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + self.position.left = op.left - ox; + } + else { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + self.position.top = op.top - oy; + self.position.left = op.left - ox; + } + } + +}); + +var num = function(v) { + return parseInt(v, 10) || 0; +}; + +var isNumber = function(value) { + return !isNaN(parseInt(value, 10)); +}; + +})(jQuery); +/* + * jQuery UI Selectable 1.8.16 + * + * 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( $, undefined ) { + +$.widget("ui.selectable", $.ui.mouse, { + options: { + appendTo: 'body', + autoRefresh: true, + distance: 0, + filter: '*', + tolerance: 'touch' + }, + _create: function() { + var self = this; + + this.element.addClass("ui-selectable"); + + this.dragged = false; + + // cache selectee children based on filter + var selectees; + this.refresh = function() { + selectees = $(self.options.filter, self.element[0]); + selectees.each(function() { + var $this = $(this); + var pos = $this.offset(); + $.data(this, "selectable-item", { + element: this, + $element: $this, + left: pos.left, + top: pos.top, + right: pos.left + $this.outerWidth(), + bottom: pos.top + $this.outerHeight(), + startselected: false, + selected: $this.hasClass('ui-selected'), + selecting: $this.hasClass('ui-selecting'), + unselecting: $this.hasClass('ui-unselecting') + }); + }); + }; + this.refresh(); + + this.selectees = selectees.addClass("ui-selectee"); + + this._mouseInit(); + + this.helper = $("<div class='ui-selectable-helper'></div>"); + }, + + 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(event) { + var self = this; + + this.opos = [event.pageX, event.pageY]; + + if (this.options.disabled) + return; + + var options = this.options; + + this.selectees = $(options.filter, this.element[0]); + + this._trigger("start", event); + + $(options.appendTo).append(this.helper); + // position helper (lasso) + this.helper.css({ + "left": event.clientX, + "top": event.clientY, + "width": 0, + "height": 0 + }); + + if (options.autoRefresh) { + this.refresh(); + } + + this.selectees.filter('.ui-selected').each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.startselected = true; + if (!event.metaKey) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + }); + + $(event.target).parents().andSelf().each(function() { + var selectee = $.data(this, "selectable-item"); + if (selectee) { + var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected'); + selectee.$element + .removeClass(doSelect ? "ui-unselecting" : "ui-selected") + .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); + selectee.unselecting = !doSelect; + selectee.selecting = doSelect; + selectee.selected = doSelect; + // selectable (UN)SELECTING callback + if (doSelect) { + self._trigger("selecting", event, { + selecting: selectee.element + }); + } else { + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + return false; + } + }); + + }, + + _mouseDrag: function(event) { + var self = this; + this.dragged = true; + + if (this.options.disabled) + return; + + var options = this.options; + + var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY; + if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; } + if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; } + this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1}); + + this.selectees.each(function() { + var selectee = $.data(this, "selectable-item"); + //prevent helper from being selected if appendTo: selectable + if (!selectee || selectee.element == self.element[0]) + return; + var hit = false; + if (options.tolerance == 'touch') { + hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) ); + } else if (options.tolerance == 'fit') { + hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2); + } + + if (hit) { + // SELECT + if (selectee.selected) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + } + if (selectee.unselecting) { + selectee.$element.removeClass('ui-unselecting'); + selectee.unselecting = false; + } + if (!selectee.selecting) { + selectee.$element.addClass('ui-selecting'); + selectee.selecting = true; + // selectable SELECTING callback + self._trigger("selecting", event, { + selecting: selectee.element + }); + } + } else { + // UNSELECT + if (selectee.selecting) { + if (event.metaKey && selectee.startselected) { + selectee.$element.removeClass('ui-selecting'); + selectee.selecting = false; + selectee.$element.addClass('ui-selected'); + selectee.selected = true; + } else { + selectee.$element.removeClass('ui-selecting'); + selectee.selecting = false; + if (selectee.startselected) { + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + } + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + } + if (selectee.selected) { + if (!event.metaKey && !selectee.startselected) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + } + } + }); + + return false; + }, + + _mouseStop: function(event) { + var self = this; + + this.dragged = false; + + var options = this.options; + + $('.ui-unselecting', this.element[0]).each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.$element.removeClass('ui-unselecting'); + selectee.unselecting = false; + selectee.startselected = false; + self._trigger("unselected", event, { + unselected: selectee.element + }); + }); + $('.ui-selecting', this.element[0]).each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.$element.removeClass('ui-selecting').addClass('ui-selected'); + selectee.selecting = false; + selectee.selected = true; + selectee.startselected = true; + self._trigger("selected", event, { + selected: selectee.element + }); + }); + this._trigger("stop", event); + + this.helper.remove(); + + return false; + } + +}); + +$.extend($.ui.selectable, { + version: "1.8.16" +}); + +})(jQuery); +/* + * jQuery UI Sortable 1.8.16 + * + * 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/Sortables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.sortable", $.ui.mouse, { + widgetEventPrefix: "sort", + options: { + appendTo: "parent", + axis: false, + connectWith: false, + containment: false, + cursor: 'auto', + cursorAt: false, + dropOnEmpty: true, + forcePlaceholderSize: false, + forceHelperSize: false, + grid: false, + handle: false, + helper: "original", + items: '> *', + opacity: false, + placeholder: false, + revert: false, + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + scope: "default", + tolerance: "intersect", + zIndex: 1000 + }, + _create: function() { + + var o = this.options; + this.containerCache = {}; + this.element.addClass("ui-sortable"); + + //Get the items + this.refresh(); + + //Let's determine if the items are being displayed horizontally + this.floating = this.items.length ? o.axis === 'x' || (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false; + + //Let's determine the parent's offset + this.offset = this.element.offset(); + + //Initialize mouse events for interaction + this._mouseInit(); + + }, + + destroy: function() { + this.element + .removeClass("ui-sortable ui-sortable-disabled") + .removeData("sortable") + .unbind(".sortable"); + this._mouseDestroy(); + + for ( var i = this.items.length - 1; i >= 0; i-- ) + this.items[i].item.removeData("sortable-item"); + + return this; + }, + + _setOption: function(key, value){ + if ( key === "disabled" ) { + this.options[ key ] = value; + + this.widget() + [ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" ); + } else { + // Don't call widget base _setOption for disable as it adds ui-state-disabled class + $.Widget.prototype._setOption.apply(this, arguments); + } + }, + + _mouseCapture: function(event, overrideHandle) { + + if (this.reverting) { + return false; + } + + if(this.options.disabled || this.options.type == 'static') return false; + + //We have to refresh the items data once first + this._refreshItems(event); + + //Find out if the clicked node (or one of its parents) is a actual item in this.items + var currentItem = null, self = this, nodes = $(event.target).parents().each(function() { + if($.data(this, 'sortable-item') == self) { + currentItem = $(this); + return false; + } + }); + if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target); + + if(!currentItem) return false; + if(this.options.handle && !overrideHandle) { + var validHandle = false; + + $(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; }); + if(!validHandle) return false; + } + + this.currentItem = currentItem; + this._removeCurrentsFromItems(); + return true; + + }, + + _mouseStart: function(event, overrideHandle, noActivation) { + + var o = this.options, self = this; + this.currentContainer = this; + + //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture + this.refreshPositions(); + + //Create and append the visible helper + this.helper = this._createHelper(event); + + //Cache the helper size + this._cacheHelperProportions(); + + /* + * - Position generation - + * This block generates everything position related - it's the core of draggables. + */ + + //Cache the margins of the original element + this._cacheMargins(); + + //Get the next scrolling parent + this.scrollParent = this.helper.scrollParent(); + + //The element's absolute position on the page minus margins + this.offset = this.currentItem.offset(); + this.offset = { + top: this.offset.top - this.margins.top, + left: this.offset.left - this.margins.left + }; + + // Only after we got the offset, we can change the helper's position to absolute + // TODO: Still need to figure out a way to make relative sorting possible + this.helper.css("position", "absolute"); + this.cssPosition = this.helper.css("position"); + + $.extend(this.offset, { + click: { //Where the click happened, relative to the element + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }, + parent: this._getParentOffset(), + relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper + }); + + //Generate the original position + this.originalPosition = this._generatePosition(event); + this.originalPageX = event.pageX; + this.originalPageY = event.pageY; + + //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied + (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); + + //Cache the former DOM position + this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; + + //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way + if(this.helper[0] != this.currentItem[0]) { + this.currentItem.hide(); + } + + //Create the placeholder + this._createPlaceholder(); + + //Set a containment if given in the options + if(o.containment) + this._setContainment(); + + if(o.cursor) { // cursor option + if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor"); + $('body').css("cursor", o.cursor); + } + + if(o.opacity) { // opacity option + if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity"); + this.helper.css("opacity", o.opacity); + } + + if(o.zIndex) { // zIndex option + if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex"); + this.helper.css("zIndex", o.zIndex); + } + + //Prepare scrolling + if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') + this.overflowOffset = this.scrollParent.offset(); + + //Call callbacks + this._trigger("start", event, this._uiHash()); + + //Recache the helper size + if(!this._preserveHelperProportions) + this._cacheHelperProportions(); + + + //Post 'activate' events to possible containers + if(!noActivation) { + for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); } + } + + //Prepare possible droppables + if($.ui.ddmanager) + $.ui.ddmanager.current = this; + + if ($.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(this, event); + + this.dragging = true; + + this.helper.addClass("ui-sortable-helper"); + this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position + return true; + + }, + + _mouseDrag: function(event) { + + //Compute the helpers position + this.position = this._generatePosition(event); + this.positionAbs = this._convertPositionTo("absolute"); + + if (!this.lastPositionAbs) { + this.lastPositionAbs = this.positionAbs; + } + + //Do scrolling + if(this.options.scroll) { + var o = this.options, scrolled = false; + if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') { + + if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) + this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; + else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) + this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; + + if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) + this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; + else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) + this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; + + } else { + + if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); + else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); + + if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); + else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); + + } + + if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(this, event); + } + + //Regenerate the absolute position used for position checks + this.positionAbs = this._convertPositionTo("absolute"); + + //Set the helper 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'; + + //Rearrange + for (var i = this.items.length - 1; i >= 0; i--) { + + //Cache variables and intersection, continue if no intersection + var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item); + if (!intersection) continue; + + if(itemElement != this.currentItem[0] //cannot intersect with itself + && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before + && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked + && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true) + //&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container + ) { + + this.direction = intersection == 1 ? "down" : "up"; + + if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) { + this._rearrange(event, item); + } else { + break; + } + + this._trigger("change", event, this._uiHash()); + break; + } + } + + //Post events to containers + this._contactContainers(event); + + //Interconnect with droppables + if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); + + //Call callbacks + this._trigger('sort', event, this._uiHash()); + + this.lastPositionAbs = this.positionAbs; + return false; + + }, + + _mouseStop: function(event, noPropagation) { + + if(!event) return; + + //If we are using droppables, inform the manager about the drop + if ($.ui.ddmanager && !this.options.dropBehaviour) + $.ui.ddmanager.drop(this, event); + + if(this.options.revert) { + var self = this; + var cur = self.placeholder.offset(); + + self.reverting = true; + + $(this.helper).animate({ + left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), + top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) + }, parseInt(this.options.revert, 10) || 500, function() { + self._clear(event); + }); + } else { + this._clear(event, noPropagation); + } + + return false; + + }, + + cancel: function() { + + var self = this; + + if(this.dragging) { + + this._mouseUp({ target: null }); + + if(this.options.helper == "original") + this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); + else + this.currentItem.show(); + + //Post deactivating events to containers + for (var i = this.containers.length - 1; i >= 0; i--){ + this.containers[i]._trigger("deactivate", null, self._uiHash(this)); + if(this.containers[i].containerCache.over) { + this.containers[i]._trigger("out", null, self._uiHash(this)); + this.containers[i].containerCache.over = 0; + } + } + + } + + if (this.placeholder) { + //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! + if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]); + if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove(); + + $.extend(this, { + helper: null, + dragging: false, + reverting: false, + _noFinalSort: null + }); + + if(this.domPosition.prev) { + $(this.domPosition.prev).after(this.currentItem); + } else { + $(this.domPosition.parent).prepend(this.currentItem); + } + } + + return this; + + }, + + serialize: function(o) { + + var items = this._getItemsAsjQuery(o && o.connected); + var str = []; o = o || {}; + + $(items).each(function() { + var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/)); + if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2])); + }); + + if(!str.length && o.key) { + str.push(o.key + '='); + } + + return str.join('&'); + + }, + + toArray: function(o) { + + var items = this._getItemsAsjQuery(o && o.connected); + var ret = []; o = o || {}; + + items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); }); + return ret; + + }, + + /* Be careful with the following core functions */ + _intersectsWith: function(item) { + + var x1 = this.positionAbs.left, + x2 = x1 + this.helperProportions.width, + y1 = this.positionAbs.top, + y2 = y1 + this.helperProportions.height; + + var l = item.left, + r = l + item.width, + t = item.top, + b = t + item.height; + + var dyClick = this.offset.click.top, + dxClick = this.offset.click.left; + + var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r; + + if( this.options.tolerance == "pointer" + || this.options.forcePointerForContainers + || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height']) + ) { + return isOverElement; + } else { + + return (l < x1 + (this.helperProportions.width / 2) // Right Half + && x2 - (this.helperProportions.width / 2) < r // Left Half + && t < y1 + (this.helperProportions.height / 2) // Bottom Half + && y2 - (this.helperProportions.height / 2) < b ); // Top Half + + } + }, + + _intersectsWithPointer: function(item) { + + var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), + isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), + isOverElement = isOverElementHeight && isOverElementWidth, + verticalDirection = this._getDragVerticalDirection(), + horizontalDirection = this._getDragHorizontalDirection(); + + if (!isOverElement) + return false; + + return this.floating ? + ( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 ) + : ( verticalDirection && (verticalDirection == "down" ? 2 : 1) ); + + }, + + _intersectsWithSides: function(item) { + + var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), + isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), + verticalDirection = this._getDragVerticalDirection(), + horizontalDirection = this._getDragHorizontalDirection(); + + if (this.floating && horizontalDirection) { + return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf)); + } else { + return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf)); + } + + }, + + _getDragVerticalDirection: function() { + var delta = this.positionAbs.top - this.lastPositionAbs.top; + return delta != 0 && (delta > 0 ? "down" : "up"); + }, + + _getDragHorizontalDirection: function() { + var delta = this.positionAbs.left - this.lastPositionAbs.left; + return delta != 0 && (delta > 0 ? "right" : "left"); + }, + + refresh: function(event) { + this._refreshItems(event); + this.refreshPositions(); + return this; + }, + + _connectWith: function() { + var options = this.options; + return options.connectWith.constructor == String + ? [options.connectWith] + : options.connectWith; + }, + + _getItemsAsjQuery: function(connected) { + + var self = this; + var items = []; + var queries = []; + var connectWith = this._connectWith(); + + if(connectWith && connected) { + for (var i = connectWith.length - 1; i >= 0; i--){ + var cur = $(connectWith[i]); + for (var j = cur.length - 1; j >= 0; j--){ + var inst = $.data(cur[j], 'sortable'); + if(inst && inst != this && !inst.options.disabled) { + queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]); + } + }; + }; + } + + queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]); + + for (var i = queries.length - 1; i >= 0; i--){ + queries[i][0].each(function() { + items.push(this); + }); + }; + + return $(items); + + }, + + _removeCurrentsFromItems: function() { + + var list = this.currentItem.find(":data(sortable-item)"); + + for (var i=0; i < this.items.length; i++) { + + for (var j=0; j < list.length; j++) { + if(list[j] == this.items[i].item[0]) + this.items.splice(i,1); + }; + + }; + + }, + + _refreshItems: function(event) { + + this.items = []; + this.containers = [this]; + var items = this.items; + var self = this; + var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]]; + var connectWith = this._connectWith(); + + if(connectWith) { + for (var i = connectWith.length - 1; i >= 0; i--){ + var cur = $(connectWith[i]); + for (var j = cur.length - 1; j >= 0; j--){ + var inst = $.data(cur[j], 'sortable'); + if(inst && inst != this && !inst.options.disabled) { + queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); + this.containers.push(inst); + } + }; + }; + } + + for (var i = queries.length - 1; i >= 0; i--) { + var targetData = queries[i][1]; + var _queries = queries[i][0]; + + for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) { + var item = $(_queries[j]); + + item.data('sortable-item', targetData); // Data for target checking (mouse manager) + + items.push({ + item: item, + instance: targetData, + width: 0, height: 0, + left: 0, top: 0 + }); + }; + }; + + }, + + refreshPositions: function(fast) { + + //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change + if(this.offsetParent && this.helper) { + this.offset.parent = this._getParentOffset(); + } + + for (var i = this.items.length - 1; i >= 0; i--){ + var item = this.items[i]; + + //We ignore calculating positions of all connected containers when we're not over them + if(item.instance != this.currentContainer && this.currentContainer && item.item[0] != this.currentItem[0]) + continue; + + var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; + + if (!fast) { + item.width = t.outerWidth(); + item.height = t.outerHeight(); + } + + var p = t.offset(); + item.left = p.left; + item.top = p.top; + }; + + if(this.options.custom && this.options.custom.refreshContainers) { + this.options.custom.refreshContainers.call(this); + } else { + for (var i = this.containers.length - 1; i >= 0; i--){ + var p = this.containers[i].element.offset(); + this.containers[i].containerCache.left = p.left; + this.containers[i].containerCache.top = p.top; + this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); + this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); + }; + } + + return this; + }, + + _createPlaceholder: function(that) { + + var self = that || this, o = self.options; + + if(!o.placeholder || o.placeholder.constructor == String) { + var className = o.placeholder; + o.placeholder = { + element: function() { + + var el = $(document.createElement(self.currentItem[0].nodeName)) + .addClass(className || self.currentItem[0].className+" ui-sortable-placeholder") + .removeClass("ui-sortable-helper")[0]; + + if(!className) + el.style.visibility = "hidden"; + + return el; + }, + update: function(container, p) { + + // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that + // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified + if(className && !o.forcePlaceholderSize) return; + + //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item + if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); }; + if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); }; + } + }; + } + + //Create the placeholder + self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem)); + + //Append it after the actual current item + self.currentItem.after(self.placeholder); + + //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) + o.placeholder.update(self, self.placeholder); + + }, + + _contactContainers: function(event) { + + // get innermost container that intersects with item + var innermostContainer = null, innermostIndex = null; + + + for (var i = this.containers.length - 1; i >= 0; i--){ + + // never consider a container that's located within the item itself + if($.ui.contains(this.currentItem[0], this.containers[i].element[0])) + continue; + + if(this._intersectsWith(this.containers[i].containerCache)) { + + // if we've already found a container and it's more "inner" than this, then continue + if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0])) + continue; + + innermostContainer = this.containers[i]; + innermostIndex = i; + + } else { + // container doesn't intersect. trigger "out" event if necessary + if(this.containers[i].containerCache.over) { + this.containers[i]._trigger("out", event, this._uiHash(this)); + this.containers[i].containerCache.over = 0; + } + } + + } + + // if no intersecting containers found, return + if(!innermostContainer) return; + + // move the item into the container if it's not there already + if(this.containers.length === 1) { + this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); + this.containers[innermostIndex].containerCache.over = 1; + } else if(this.currentContainer != this.containers[innermostIndex]) { + + //When entering a new container, we will find the item with the least distance and append our item near it + var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; + for (var j = this.items.length - 1; j >= 0; j--) { + if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; + var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; + if(Math.abs(cur - base) < dist) { + dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; + } + } + + if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled + return; + + this.currentContainer = this.containers[innermostIndex]; + itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); + this._trigger("change", event, this._uiHash()); + this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); + + //Update the placeholder + this.options.placeholder.update(this.currentContainer, this.placeholder); + + this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); + this.containers[innermostIndex].containerCache.over = 1; + } + + + }, + + _createHelper: function(event) { + + var o = this.options; + var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem); + + if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already + $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); + + if(helper[0] == this.currentItem[0]) + this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; + + if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width()); + if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height()); + + return helper; + + }, + + _adjustOffsetFromHelper: function(obj) { + if (typeof obj == 'string') { + obj = obj.split(' '); + } + if ($.isArray(obj)) { + obj = {left: +obj[0], top: +obj[1] || 0}; + } + if ('left' in obj) { + this.offset.click.left = obj.left + this.margins.left; + } + if ('right' in obj) { + this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; + } + if ('top' in obj) { + this.offset.click.top = obj.top + this.margins.top; + } + if ('bottom' in obj) { + this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; + } + }, + + _getParentOffset: function() { + + + //Get the offsetParent and cache its position + this.offsetParent = this.helper.offsetParent(); + var po = this.offsetParent.offset(); + + // This is a special case where we need to modify a offset calculated on start, since the following happened: + // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent + // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that + // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag + if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { + po.left += this.scrollParent.scrollLeft(); + po.top += this.scrollParent.scrollTop(); + } + + if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information + || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix + po = { top: 0, left: 0 }; + + return { + top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), + left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) + }; + + }, + + _getRelativeOffset: function() { + + if(this.cssPosition == "relative") { + var p = this.currentItem.position(); + return { + top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), + left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() + }; + } else { + return { top: 0, left: 0 }; + } + + }, + + _cacheMargins: function() { + this.margins = { + left: (parseInt(this.currentItem.css("marginLeft"),10) || 0), + top: (parseInt(this.currentItem.css("marginTop"),10) || 0) + }; + }, + + _cacheHelperProportions: function() { + this.helperProportions = { + width: this.helper.outerWidth(), + height: this.helper.outerHeight() + }; + }, + + _setContainment: function() { + + var o = this.options; + if(o.containment == 'parent') o.containment = this.helper[0].parentNode; + if(o.containment == 'document' || o.containment == 'window') this.containment = [ + 0 - this.offset.relative.left - this.offset.parent.left, + 0 - this.offset.relative.top - this.offset.parent.top, + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top + ]; + + if(!(/^(document|window|parent)$/).test(o.containment)) { + var ce = $(o.containment)[0]; + var co = $(o.containment).offset(); + var over = ($(ce).css("overflow") != 'hidden'); + + this.containment = [ + co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, + co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, + co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, + co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top + ]; + } + + }, + + _convertPositionTo: function(d, pos) { + + if(!pos) pos = this.position; + var mod = d == "absolute" ? 1 : -1; + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + + return { + top: ( + pos.top // The absolute mouse position + + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) + ), + left: ( + pos.left // The absolute mouse position + + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) + ) + }; + + }, + + _generatePosition: function(event) { + + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + + // This is another very weird special case that only happens for relative elements: + // 1. If the css position is relative + // 2. and the scroll parent is the document or similar to the offset parent + // we have to refresh the relative offset during the scroll so there are no jumps + if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) { + this.offset.relative = this._getRelativeOffset(); + } + + var pageX = event.pageX; + var pageY = event.pageY; + + /* + * - Position constraining - + * Constrain the position to a mix of grid, containment. + */ + + if(this.originalPosition) { //If we are not dragging yet, we won't check for options + + if(this.containment) { + if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left; + if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top; + if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left; + if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top; + } + + if(o.grid) { + var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; + pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; + + var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; + pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; + } + + } + + return { + top: ( + pageY // The absolute mouse position + - this.offset.click.top // Click offset (relative to the element) + - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.top // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) + ), + left: ( + pageX // The absolute mouse position + - this.offset.click.left // Click offset (relative to the element) + - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.left // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) + ) + }; + + }, + + _rearrange: function(event, i, a, hardRefresh) { + + a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling)); + + //Various things done here to improve the performance: + // 1. we create a setTimeout, that calls refreshPositions + // 2. on the instance, we have a counter variable, that get's higher after every append + // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same + // 4. this lets only the last addition to the timeout stack through + this.counter = this.counter ? ++this.counter : 1; + var self = this, counter = this.counter; + + window.setTimeout(function() { + if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove + },0); + + }, + + _clear: function(event, noPropagation) { + + this.reverting = false; + // We delay all events that have to be triggered to after the point where the placeholder has been removed and + // everything else normalized again + var delayedTriggers = [], self = this; + + // We first have to update the dom position of the actual currentItem + // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) + if(!this._noFinalSort && this.currentItem.parent().length) this.placeholder.before(this.currentItem); + this._noFinalSort = null; + + if(this.helper[0] == this.currentItem[0]) { + for(var i in this._storedCSS) { + if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = ''; + } + this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); + } else { + this.currentItem.show(); + } + + if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); }); + if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed + if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element + if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); + for (var i = this.containers.length - 1; i >= 0; i--){ + if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) { + delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + } + }; + }; + + //Post events to containers + for (var i = this.containers.length - 1; i >= 0; i--){ + if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + if(this.containers[i].containerCache.over) { + delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + this.containers[i].containerCache.over = 0; + } + } + + //Do what was originally in plugins + if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor + if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity + if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index + + this.dragging = false; + if(this.cancelHelperRemoval) { + if(!noPropagation) { + this._trigger("beforeStop", event, this._uiHash()); + for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events + this._trigger("stop", event, this._uiHash()); + } + return false; + } + + if(!noPropagation) this._trigger("beforeStop", event, this._uiHash()); + + //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! + this.placeholder[0].parentNode.removeChild(this.placeholder[0]); + + if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null; + + if(!noPropagation) { + for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events + this._trigger("stop", event, this._uiHash()); + } + + this.fromOutside = false; + return true; + + }, + + _trigger: function() { + if ($.Widget.prototype._trigger.apply(this, arguments) === false) { + this.cancel(); + } + }, + + _uiHash: function(inst) { + var self = inst || this; + return { + helper: self.helper, + placeholder: self.placeholder || $([]), + position: self.position, + originalPosition: self.originalPosition, + offset: self.positionAbs, + item: self.currentItem, + sender: inst ? inst.element : null + }; + } + +}); + +$.extend($.ui.sortable, { + version: "1.8.16" +}); + +})(jQuery); +/* + * jQuery UI Effects 1.8.16 + * + * 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($, undefined) { + +$.effects = {}; + + + +/******************************************************************************/ +/****************************** COLOR ANIMATIONS ******************************/ +/******************************************************************************/ + +// override the animation for color styles +$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', + 'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'], +function(i, attr) { + $.fx.step[attr] = function(fx) { + if (!fx.colorInit) { + fx.start = getColor(fx.elem, attr); + fx.end = getRGB(fx.end); + fx.colorInit = true; + } + + fx.elem.style[attr] = 'rgb(' + + Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' + + Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' + + Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')'; + }; +}); + +// Color Conversion functions from highlightFade +// By Blair Mitchelmore +// http://jquery.offput.ca/highlightFade/ + +// Parse strings looking for color tuples [255,255,255] +function getRGB(color) { + var result; + + // Check if we're already dealing with an array of colors + if ( color && color.constructor == Array && color.length == 3 ) + return color; + + // Look for rgb(num,num,num) + if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) + return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; + + // Look for rgb(num%,num%,num%) + if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) + return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; + + // Look for #a0b1c2 + if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) + return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; + + // Look for #fff + if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) + return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; + + // Look for rgba(0, 0, 0, 0) == transparent in Safari 3 + if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) + return colors['transparent']; + + // Otherwise, we're most likely dealing with a named color + return colors[$.trim(color).toLowerCase()]; +} + +function getColor(elem, attr) { + var color; + + do { + color = $.curCSS(elem, attr); + + // Keep going until we find an element that has color, or we hit the body + if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") ) + break; + + attr = "backgroundColor"; + } while ( elem = elem.parentNode ); + + return getRGB(color); +}; + +// Some named colors to work with +// From Interface by Stefan Petre +// http://interface.eyecon.ro/ + +var colors = { + 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] +}; + + + +/******************************************************************************/ +/****************************** CLASS ANIMATIONS ******************************/ +/******************************************************************************/ + +var classAnimationActions = ['add', 'remove', 'toggle'], + shorthandStyles = { + border: 1, + borderBottom: 1, + borderColor: 1, + borderLeft: 1, + borderRight: 1, + borderTop: 1, + borderWidth: 1, + margin: 1, + padding: 1 + }; + +function getElementStyles() { + var style = document.defaultView + ? document.defaultView.getComputedStyle(this, null) + : this.currentStyle, + newStyle = {}, + key, + camelCase; + + // webkit enumerates style porperties + if (style && style.length && style[0] && style[style[0]]) { + var len = style.length; + while (len--) { + key = style[len]; + if (typeof style[key] == 'string') { + camelCase = key.replace(/\-(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); + newStyle[camelCase] = style[key]; + } + } + } else { + for (key in style) { + if (typeof style[key] === 'string') { + newStyle[key] = style[key]; + } + } + } + + return newStyle; +} + +function filterStyles(styles) { + var name, value; + for (name in styles) { + value = styles[name]; + if ( + // ignore null and undefined values + value == null || + // ignore functions (when does this occur?) + $.isFunction(value) || + // shorthand styles that need to be expanded + name in shorthandStyles || + // ignore scrollbars (break in IE) + (/scrollbar/).test(name) || + + // only colors or values that can be converted to numbers + (!(/color/i).test(name) && isNaN(parseFloat(value))) + ) { + delete styles[name]; + } + } + + return styles; +} + +function styleDifference(oldStyle, newStyle) { + var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459 + name; + + for (name in newStyle) { + if (oldStyle[name] != newStyle[name]) { + diff[name] = newStyle[name]; + } + } + + return diff; +} + +$.effects.animateClass = function(value, duration, easing, callback) { + if ($.isFunction(easing)) { + callback = easing; + easing = null; + } + + return this.queue(function() { + var that = $(this), + originalStyleAttr = that.attr('style') || ' ', + originalStyle = filterStyles(getElementStyles.call(this)), + newStyle, + className = that.attr('class'); + + $.each(classAnimationActions, function(i, action) { + if (value[action]) { + that[action + 'Class'](value[action]); + } + }); + newStyle = filterStyles(getElementStyles.call(this)); + that.attr('class', className); + + that.animate(styleDifference(originalStyle, newStyle), { + queue: false, + duration: duration, + easing: easing, + complete: function() { + $.each(classAnimationActions, function(i, action) { + if (value[action]) { that[action + 'Class'](value[action]); } + }); + // work around bug in IE by clearing the cssText before setting it + if (typeof that.attr('style') == 'object') { + that.attr('style').cssText = ''; + that.attr('style').cssText = originalStyleAttr; + } else { + that.attr('style', originalStyleAttr); + } + if (callback) { callback.apply(this, arguments); } + $.dequeue( this ); + } + }); + }); +}; + +$.fn.extend({ + _addClass: $.fn.addClass, + addClass: function(classNames, speed, easing, callback) { + return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames); + }, + + _removeClass: $.fn.removeClass, + removeClass: function(classNames,speed,easing,callback) { + return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames); + }, + + _toggleClass: $.fn.toggleClass, + toggleClass: function(classNames, force, speed, easing, callback) { + if ( typeof force == "boolean" || force === undefined ) { + if ( !speed ) { + // without speed parameter; + return this._toggleClass(classNames, force); + } else { + return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]); + } + } else { + // without switch parameter; + return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]); + } + }, + + switchClass: function(remove,add,speed,easing,callback) { + return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]); + } +}); + + + +/******************************************************************************/ +/*********************************** EFFECTS **********************************/ +/******************************************************************************/ + +$.extend($.effects, { + version: "1.8.16", + + // Saves a set of properties in a data storage + save: function(element, set) { + for(var i=0; i < set.length; i++) { + if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]); + } + }, + + // Restores a set of previously saved properties from a data storage + restore: function(element, set) { + for(var i=0; i < set.length; i++) { + if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i])); + } + }, + + setMode: function(el, mode) { + if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle + return mode; + }, + + getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value + // this should be a little more flexible in the future to handle a string & hash + var y, x; + switch (origin[0]) { + case 'top': y = 0; break; + case 'middle': y = 0.5; break; + case 'bottom': y = 1; break; + default: y = origin[0] / original.height; + }; + switch (origin[1]) { + case 'left': x = 0; break; + case 'center': x = 0.5; break; + case 'right': x = 1; break; + default: x = origin[1] / original.width; + }; + return {x: x, y: y}; + }, + + // Wraps the element around a wrapper that copies position properties + createWrapper: function(element) { + + // if the element is already wrapped, return it + if (element.parent().is('.ui-effects-wrapper')) { + return element.parent(); + } + + // wrap the element + var props = { + width: element.outerWidth(true), + height: element.outerHeight(true), + 'float': element.css('float') + }, + wrapper = $('<div></div>') + .addClass('ui-effects-wrapper') + .css({ + fontSize: '100%', + background: 'transparent', + border: 'none', + margin: 0, + padding: 0 + }), + active = document.activeElement; + + element.wrap(wrapper); + + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).focus(); + } + + wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element + + // transfer positioning properties to the wrapper + if (element.css('position') == 'static') { + wrapper.css({ position: 'relative' }); + element.css({ position: 'relative' }); + } else { + $.extend(props, { + position: element.css('position'), + zIndex: element.css('z-index') + }); + $.each(['top', 'left', 'bottom', 'right'], function(i, pos) { + props[pos] = element.css(pos); + if (isNaN(parseInt(props[pos], 10))) { + props[pos] = 'auto'; + } + }); + element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' }); + } + + return wrapper.css(props).show(); + }, + + removeWrapper: function(element) { + var parent, + active = document.activeElement; + + if (element.parent().is('.ui-effects-wrapper')) { + parent = element.parent().replaceWith(element); + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).focus(); + } + return parent; + } + + return element; + }, + + setTransition: function(element, list, factor, value) { + value = value || {}; + $.each(list, function(i, x){ + unit = element.cssUnit(x); + if (unit[0] > 0) value[x] = unit[0] * factor + unit[1]; + }); + return value; + } +}); + + +function _normalizeArguments(effect, options, speed, callback) { + // shift params for method overloading + if (typeof effect == 'object') { + callback = options; + speed = null; + options = effect; + effect = options.effect; + } + if ($.isFunction(options)) { + callback = options; + speed = null; + options = {}; + } + if (typeof options == 'number' || $.fx.speeds[options]) { + callback = speed; + speed = options; + options = {}; + } + if ($.isFunction(speed)) { + callback = speed; + speed = null; + } + + options = options || {}; + + speed = speed || options.duration; + speed = $.fx.off ? 0 : typeof speed == 'number' + ? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default; + + callback = callback || options.complete; + + return [effect, options, speed, callback]; +} + +function standardSpeed( speed ) { + // valid standard speeds + if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) { + return true; + } + + // invalid strings - treat as "normal" speed + if ( typeof speed === "string" && !$.effects[ speed ] ) { + return true; + } + + return false; +} + +$.fn.extend({ + effect: function(effect, options, speed, callback) { + var args = _normalizeArguments.apply(this, arguments), + // TODO: make effects take actual parameters instead of a hash + args2 = { + options: args[1], + duration: args[2], + callback: args[3] + }, + mode = args2.options.mode, + effectMethod = $.effects[effect]; + + if ( $.fx.off || !effectMethod ) { + // delegate to the original method (e.g., .show()) if possible + if ( mode ) { + return this[ mode ]( args2.duration, args2.callback ); + } else { + return this.each(function() { + if ( args2.callback ) { + args2.callback.call( this ); + } + }); + } + } + + return effectMethod.call(this, args2); + }, + + _show: $.fn.show, + show: function(speed) { + if ( standardSpeed( speed ) ) { + return this._show.apply(this, arguments); + } else { + var args = _normalizeArguments.apply(this, arguments); + args[1].mode = 'show'; + return this.effect.apply(this, args); + } + }, + + _hide: $.fn.hide, + hide: function(speed) { + if ( standardSpeed( speed ) ) { + return this._hide.apply(this, arguments); + } else { + var args = _normalizeArguments.apply(this, arguments); + args[1].mode = 'hide'; + return this.effect.apply(this, args); + } + }, + + // jQuery core overloads toggle and creates _toggle + __toggle: $.fn.toggle, + toggle: function(speed) { + if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { + return this.__toggle.apply(this, arguments); + } else { + var args = _normalizeArguments.apply(this, arguments); + args[1].mode = 'toggle'; + return this.effect.apply(this, args); + } + }, + + // helper functions + cssUnit: function(key) { + var style = this.css(key), val = []; + $.each( ['em','px','%','pt'], function(i, unit){ + if(style.indexOf(unit) > 0) + val = [parseFloat(style), unit]; + }); + return val; + } +}); + + + +/******************************************************************************/ +/*********************************** EASING ***********************************/ +/******************************************************************************/ + +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +$.easing.jswing = $.easing.swing; + +$.extend($.easing, +{ + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { + //alert($.easing.default); + return $.easing[$.easing.def](x, t, b, c, d); + }, + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + easeInCubic: function (x, t, b, c, d) { + return c*(t/=d)*t*t + b; + }, + easeOutCubic: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; + }, + easeInOutCubic: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + }, + easeInQuart: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t + b; + }, + easeOutQuart: function (x, t, b, c, d) { + return -c * ((t=t/d-1)*t*t*t - 1) + b; + }, + easeInOutQuart: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + }, + easeInQuint: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t*t + b; + }, + easeOutQuint: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t*t*t + 1) + b; + }, + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + }, + easeInSine: function (x, t, b, c, d) { + return -c * Math.cos(t/d * (Math.PI/2)) + c + b; + }, + easeOutSine: function (x, t, b, c, d) { + return c * Math.sin(t/d * (Math.PI/2)) + b; + }, + easeInOutSine: function (x, t, b, c, d) { + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInCirc: function (x, t, b, c, d) { + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + }, + easeOutCirc: function (x, t, b, c, d) { + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + }, + easeInOutCirc: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + }, + easeInElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + easeInOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + easeInBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + easeOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + easeInOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + }, + easeInBounce: function (x, t, b, c, d) { + return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b; + }, + easeOutBounce: function (x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + easeInOutBounce: function (x, t, b, c, d) { + if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; + return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + } +}); + +/* + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +})(jQuery); +/* + * jQuery UI Effects Blind 1.8.16 + * + * 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/Blind + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.blind = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'vertical'; // Default direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var ref = (direction == 'vertical') ? 'height' : 'width'; + var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width(); + if(mode == 'show') wrapper.css(ref, 0); // Shift + + // Animation + var animation = {}; + animation[ref] = mode == 'show' ? distance : 0; + + // Animate + wrapper.animate(animation, o.duration, o.options.easing, function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Bounce 1.8.16 + * + * 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/Bounce + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.bounce = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var direction = o.options.direction || 'up'; // Default direction + var distance = o.options.distance || 20; // Default distance + var times = o.options.times || 5; // Default # of times + var speed = o.duration || 250; // Default speed per bounce + if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3); + if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift + if (mode == 'hide') distance = distance / (times * 2); + if (mode != 'hide') times--; + + // Animate + if (mode == 'show') { // Show Bounce + var animation = {opacity: 1}; + animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation, speed / 2, o.options.easing); + distance = distance / 2; + times--; + }; + for (var i = 0; i < times; i++) { // Bounces + var animation1 = {}, animation2 = {}; + animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing); + distance = (mode == 'hide') ? distance * 2 : distance / 2; + }; + if (mode == 'hide') { // Last Bounce + var animation = {opacity: 0}; + animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + el.animate(animation, speed / 2, o.options.easing, function(){ + el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + } else { + var animation1 = {}, animation2 = {}; + animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){ + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + }; + el.queue('fx', function() { el.dequeue(); }); + el.dequeue(); + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Clip 1.8.16 + * + * 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/Clip + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.clip = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right','height','width']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'vertical'; // Default direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var animate = el[0].tagName == 'IMG' ? wrapper : el; + var ref = { + size: (direction == 'vertical') ? 'height' : 'width', + position: (direction == 'vertical') ? 'top' : 'left' + }; + var distance = (direction == 'vertical') ? animate.height() : animate.width(); + if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift + + // Animation + var animation = {}; + animation[ref.size] = mode == 'show' ? distance : 0; + animation[ref.position] = mode == 'show' ? 0 : distance / 2; + + // Animate + animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Drop 1.8.16 + * + * 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/Drop + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.drop = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right','opacity']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'left'; // Default Direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2); + if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift + + // Animation + var animation = {opacity: mode == 'show' ? 1 : 0}; + animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; + + // Animate + el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Explode 1.8.16 + * + * 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/Explode + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.explode = function(o) { + + return this.queue(function() { + + var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + + o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode; + var el = $(this).show().css('visibility', 'hidden'); + var offset = el.offset(); + + //Substract the margins - not fixing the problem yet. + offset.top -= parseInt(el.css("marginTop"),10) || 0; + offset.left -= parseInt(el.css("marginLeft"),10) || 0; + + var width = el.outerWidth(true); + var height = el.outerHeight(true); + + for(var i=0;i<rows;i++) { // = + for(var j=0;j<cells;j++) { // || + el + .clone() + .appendTo('body') + .wrap('<div></div>') + .css({ + position: 'absolute', + visibility: 'visible', + left: -j*(width/cells), + top: -i*(height/rows) + }) + .parent() + .addClass('ui-effects-explode') + .css({ + position: 'absolute', + overflow: 'hidden', + width: width/cells, + height: height/rows, + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0), + opacity: o.options.mode == 'show' ? 0 : 1 + }).animate({ + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)), + opacity: o.options.mode == 'show' ? 1 : 0 + }, o.duration || 500); + } + } + + // Set a timeout, to call the callback approx. when the other animations have finished + setTimeout(function() { + + o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide(); + if(o.callback) o.callback.apply(el[0]); // Callback + el.dequeue(); + + $('div.ui-effects-explode').remove(); + + }, o.duration || 500); + + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Fade 1.8.16 + * + * 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( $, undefined ) { + +$.effects.fade = function(o) { + return this.queue(function() { + var elem = $(this), + mode = $.effects.setMode(elem, o.options.mode || 'hide'); + + elem.animate({ opacity: mode }, { + queue: false, + duration: o.duration, + easing: o.options.easing, + complete: function() { + (o.callback && o.callback.apply(this, arguments)); + elem.dequeue(); + } + }); + }); +}; + +})(jQuery); +/* + * jQuery UI Effects Fold 1.8.16 + * + * 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( $, undefined ) { + +$.effects.fold = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var size = o.options.size || 15; // Default fold size + var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value + var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2; + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var widthFirst = ((mode == 'show') != horizFirst); + var ref = widthFirst ? ['width', 'height'] : ['height', 'width']; + var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()]; + var percent = /([0-9]+)%/.exec(size); + if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1]; + if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift + + // Animation + var animation1 = {}, animation2 = {}; + animation1[ref[0]] = mode == 'show' ? distance[0] : size; + animation2[ref[1]] = mode == 'show' ? distance[1] : 0; + + // Animate + wrapper.animate(animation1, duration, o.options.easing) + .animate(animation2, duration, o.options.easing, function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Highlight 1.8.16 + * + * 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( $, undefined ) { + +$.effects.highlight = function(o) { + return this.queue(function() { + var elem = $(this), + props = ['backgroundImage', 'backgroundColor', 'opacity'], + mode = $.effects.setMode(elem, o.options.mode || 'show'), + animation = { + backgroundColor: elem.css('backgroundColor') + }; + + if (mode == 'hide') { + animation.opacity = 0; + } + + $.effects.save(elem, props); + elem + .show() + .css({ + backgroundImage: 'none', + backgroundColor: o.options.color || '#ffff99' + }) + .animate(animation, { + queue: false, + duration: o.duration, + easing: o.options.easing, + complete: function() { + (mode == 'hide' && elem.hide()); + $.effects.restore(elem, props); + (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter')); + (o.callback && o.callback.apply(this, arguments)); + elem.dequeue(); + } + }); + }); +}; + +})(jQuery); +/* + * jQuery UI Effects Pulsate 1.8.16 + * + * 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( $, undefined ) { + +$.effects.pulsate = function(o) { + return this.queue(function() { + var elem = $(this), + mode = $.effects.setMode(elem, o.options.mode || 'show'); + times = ((o.options.times || 5) * 2) - 1; + duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2, + isVisible = elem.is(':visible'), + animateTo = 0; + + if (!isVisible) { + elem.css('opacity', 0).show(); + animateTo = 1; + } + + if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) { + times--; + } + + for (var i = 0; i < times; i++) { + elem.animate({ opacity: animateTo }, duration, o.options.easing); + animateTo = (animateTo + 1) % 2; + } + + elem.animate({ opacity: animateTo }, duration, o.options.easing, function() { + if (animateTo == 0) { + elem.hide(); + } + (o.callback && o.callback.apply(this, arguments)); + }); + + elem + .queue('fx', function() { elem.dequeue(); }) + .dequeue(); + }); +}; + +})(jQuery); +/* + * jQuery UI Effects Scale 1.8.16 + * + * 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/Scale + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.puff = function(o) { + return this.queue(function() { + var elem = $(this), + mode = $.effects.setMode(elem, o.options.mode || 'hide'), + percent = parseInt(o.options.percent, 10) || 150, + factor = percent / 100, + original = { height: elem.height(), width: elem.width() }; + + $.extend(o.options, { + fade: true, + mode: mode, + percent: mode == 'hide' ? percent : 100, + from: mode == 'hide' + ? original + : { + height: original.height * factor, + width: original.width * factor + } + }); + + elem.effect('scale', o.options, o.duration, o.callback); + elem.dequeue(); + }); +}; + +$.effects.scale = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this); + + // Set options + var options = $.extend(true, {}, o.options); + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent + var direction = o.options.direction || 'both'; // Set default axis + var origin = o.options.origin; // The origin of the scaling + if (mode != 'effect') { // Set default origin and restore for show/hide + options.origin = origin || ['middle','center']; + options.restore = true; + } + var original = {height: el.height(), width: el.width()}; // Save original + el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state + + // Adjust + var factor = { // Set scaling factor + y: direction != 'horizontal' ? (percent / 100) : 1, + x: direction != 'vertical' ? (percent / 100) : 1 + }; + el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state + + if (o.options.fade) { // Fade option to support puff + if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;}; + if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;}; + }; + + // Animation + options.from = el.from; options.to = el.to; options.mode = mode; + + // Animate + el.effect('size', options, o.duration, o.callback); + el.dequeue(); + }); + +}; + +$.effects.size = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity']; + var props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore + var props2 = ['width','height','overflow']; // Copy for children + var cProps = ['fontSize']; + var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom']; + var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var restore = o.options.restore || false; // Default restore + var scale = o.options.scale || 'both'; // Default scale mode + var origin = o.options.origin; // The origin of the sizing + var original = {height: el.height(), width: el.width()}; // Save original + el.from = o.options.from || original; // Default from state + el.to = o.options.to || original; // Default to state + // Adjust + if (origin) { // Calculate baseline shifts + var baseline = $.effects.getBaseline(origin, original); + el.from.top = (original.height - el.from.height) * baseline.y; + el.from.left = (original.width - el.from.width) * baseline.x; + el.to.top = (original.height - el.to.height) * baseline.y; + el.to.left = (original.width - el.to.width) * baseline.x; + }; + var factor = { // Set scaling factor + from: {y: el.from.height / original.height, x: el.from.width / original.width}, + to: {y: el.to.height / original.height, x: el.to.width / original.width} + }; + if (scale == 'box' || scale == 'both') { // Scale the css box + if (factor.from.y != factor.to.y) { // Vertical props scaling + props = props.concat(vProps); + el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from); + el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to); + }; + if (factor.from.x != factor.to.x) { // Horizontal props scaling + props = props.concat(hProps); + el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from); + el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to); + }; + }; + if (scale == 'content' || scale == 'both') { // Scale the content + if (factor.from.y != factor.to.y) { // Vertical props scaling + props = props.concat(cProps); + el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from); + el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to); + }; + }; + $.effects.save(el, restore ? props : props1); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + el.css('overflow','hidden').css(el.from); // Shift + + // Animate + if (scale == 'content' || scale == 'both') { // Scale the children + vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size + hProps = hProps.concat(['marginLeft','marginRight']); // Add margins + props2 = props.concat(vProps).concat(hProps); // Concat + el.find("*[width]").each(function(){ + child = $(this); + if (restore) $.effects.save(child, props2); + var c_original = {height: child.height(), width: child.width()}; // Save original + child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x}; + child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x}; + if (factor.from.y != factor.to.y) { // Vertical props scaling + child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from); + child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to); + }; + if (factor.from.x != factor.to.x) { // Horizontal props scaling + child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from); + child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to); + }; + child.css(child.from); // Shift children + child.animate(child.to, o.duration, o.options.easing, function(){ + if (restore) $.effects.restore(child, props2); // Restore children + }); // Animate children + }); + }; + + // Animate + el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if (el.to.opacity === 0) { + el.css('opacity', el.from.opacity); + } + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Shake 1.8.16 + * + * 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/Shake + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.shake = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var direction = o.options.direction || 'left'; // Default direction + var distance = o.options.distance || 20; // Default distance + var times = o.options.times || 3; // Default # of times + var speed = o.duration || o.options.duration || 140; // Default speed per shake + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + + // Animation + var animation = {}, animation1 = {}, animation2 = {}; + animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2; + animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2; + + // Animate + el.animate(animation, speed, o.options.easing); + for (var i = 1; i < times; i++) { // Shakes + el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing); + }; + el.animate(animation1, speed, o.options.easing). + animate(animation, speed / 2, o.options.easing, function(){ // Last shake + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + el.queue('fx', function() { el.dequeue(); }); + el.dequeue(); + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Slide 1.8.16 + * + * 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/Slide + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.slide = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode + var direction = o.options.direction || 'left'; // Default Direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true})); + if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift + + // Animation + var animation = {}; + animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; + + // Animate + el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Transfer 1.8.16 + * + * 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/Transfer + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.transfer = function(o) { + return this.queue(function() { + var elem = $(this), + target = $(o.options.to), + endPosition = target.offset(), + animation = { + top: endPosition.top, + left: endPosition.left, + height: target.innerHeight(), + width: target.innerWidth() + }, + startPosition = elem.offset(), + transfer = $('<div class="ui-effects-transfer"></div>') + .appendTo(document.body) + .addClass(o.options.className) + .css({ + top: startPosition.top, + left: startPosition.left, + height: elem.innerHeight(), + width: elem.innerWidth(), + position: 'absolute' + }) + .animate(animation, o.duration, o.options.easing, function() { + transfer.remove(); + (o.callback && o.callback.apply(elem[0], arguments)); + elem.dequeue(); + }); + }); +}; + +})(jQuery); +/* + * jQuery UI Accordion 1.8.16 + * + * 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 + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.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 self = this, + options = self.options; + + self.running = 0; + + self.element + .addClass( "ui-accordion ui-widget ui-helper-reset" ) + // in lack of child-selectors in CSS + // we need to mark top-LIs in a UL-accordion for some IE-fix + .children( "li" ) + .addClass( "ui-accordion-li-fix" ); + + self.headers = self.element.find( options.header ) + .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" ) + .bind( "mouseenter.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-hover" ); + }) + .bind( "mouseleave.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( "ui-state-hover" ); + }) + .bind( "focus.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-focus" ); + }) + .bind( "blur.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( "ui-state-focus" ); + }); + + self.headers.next() + .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ); + + if ( options.navigation ) { + var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 ); + if ( current.length ) { + var header = current.closest( ".ui-accordion-header" ); + if ( header.length ) { + // anchor within header + self.active = header; + } else { + // anchor within content + self.active = current.closest( ".ui-accordion-content" ).prev(); + } + } + } + + self.active = self._findActive( self.active || options.active ) + .addClass( "ui-state-default ui-state-active" ) + .toggleClass( "ui-corner-all" ) + .toggleClass( "ui-corner-top" ); + self.active.next().addClass( "ui-accordion-content-active" ); + + self._createIcons(); + self.resize(); + + // ARIA + self.element.attr( "role", "tablist" ); + + self.headers + .attr( "role", "tab" ) + .bind( "keydown.accordion", function( event ) { + return self._keydown( event ); + }) + .next() + .attr( "role", "tabpanel" ); + + self.headers + .not( self.active || "" ) + .attr({ + "aria-expanded": "false", + "aria-selected": "false", + tabIndex: -1 + }) + .next() + .hide(); + + // make sure at least one header is in the tab order + if ( !self.active.length ) { + self.headers.eq( 0 ).attr( "tabIndex", 0 ); + } else { + self.active + .attr({ + "aria-expanded": "true", + "aria-selected": "true", + tabIndex: 0 + }); + } + + // only need links in tab order for Safari + if ( !$.browser.safari ) { + self.headers.find( "a" ).attr( "tabIndex", -1 ); + } + + if ( options.event ) { + self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) { + self._clickHandler.call( self, event, this ); + event.preventDefault(); + }); + } + }, + + _createIcons: function() { + var options = this.options; + if ( options.icons ) { + $( "<span></span>" ) + .addClass( "ui-icon " + options.icons.header ) + .prependTo( this.headers ); + this.active.children( ".ui-icon" ) + .toggleClass(options.icons.header) + .toggleClass(options.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 options = 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 contents = 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 ( options.autoHeight || options.fillHeight ) { + contents.css( "height", "" ); + } + + return $.Widget.prototype.destroy.call( this ); + }, + + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); + + if ( key == "active" ) { + this.activate( value ); + } + if ( key == "icons" ) { + this._destroyIcons(); + if ( value ) { + this._createIcons(); + } + } + // #5332 - opacity doesn't cascade to positioned elements in IE + // so we need to add the disabled class to the headers and panels + if ( key == "disabled" ) { + this.headers.add(this.headers.next()) + [ value ? "addClass" : "removeClass" ]( + "ui-accordion-disabled ui-state-disabled" ); + } + }, + + _keydown: function( event ) { + if ( this.options.disabled || event.altKey || event.ctrlKey ) { + return; + } + + var keyCode = $.ui.keyCode, + length = this.headers.length, + currentIndex = this.headers.index( event.target ), + toFocus = false; + + switch ( event.keyCode ) { + case keyCode.RIGHT: + case keyCode.DOWN: + toFocus = this.headers[ ( currentIndex + 1 ) % length ]; + break; + case keyCode.LEFT: + case keyCode.UP: + toFocus = this.headers[ ( currentIndex - 1 + length ) % length ]; + break; + case keyCode.SPACE: + case keyCode.ENTER: + this._clickHandler( { target: event.target }, event.target ); + event.preventDefault(); + } + + if ( toFocus ) { + $( event.target ).attr( "tabIndex", -1 ); + $( toFocus ).attr( "tabIndex", 0 ); + toFocus.focus(); + return false; + } + + return true; + }, + + resize: function() { + var options = this.options, + maxHeight; + + if ( options.fillSpace ) { + if ( $.browser.msie ) { + var defOverflow = this.element.parent().css( "overflow" ); + this.element.parent().css( "overflow", "hidden"); + } + maxHeight = this.element.parent().height(); + if ($.browser.msie) { + this.element.parent().css( "overflow", defOverflow ); + } + + this.headers.each(function() { + maxHeight -= $( this ).outerHeight( true ); + }); + + this.headers.next() + .each(function() { + $( this ).height( Math.max( 0, maxHeight - + $( this ).innerHeight() + $( this ).height() ) ); + }) + .css( "overflow", "auto" ); + } else if ( options.autoHeight ) { + maxHeight = 0; + this.headers.next() + .each(function() { + maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() ); + }) + .height( maxHeight ); + } + + return this; + }, + + activate: function( index ) { + // TODO this gets called on init, changing the option without an explicit call for that + this.options.active = index; + // call clickHandler with custom event + var active = this._findActive( index )[ 0 ]; + this._clickHandler( { target: active }, active ); + + return this; + }, + + _findActive: function( selector ) { + return selector + ? typeof selector === "number" + ? this.headers.filter( ":eq(" + selector + ")" ) + : this.headers.not( this.headers.not( selector ) ) + : selector === false + ? $( [] ) + : this.headers.filter( ":eq(0)" ); + }, + + // TODO isn't event.target enough? why the separate target argument? + _clickHandler: function( event, target ) { + var options = this.options; + if ( options.disabled ) { + return; + } + + // called only when using activate(false) to close all parts programmatically + if ( !event.target ) { + if ( !options.collapsible ) { + return; + } + this.active + .removeClass( "ui-state-active ui-corner-top" ) + .addClass( "ui-state-default ui-corner-all" ) + .children( ".ui-icon" ) + .removeClass( options.icons.headerSelected ) + .addClass( options.icons.header ); + this.active.next().addClass( "ui-accordion-content-active" ); + var toHide = this.active.next(), + data = { + options: options, + newHeader: $( [] ), + oldHeader: options.active, + newContent: $( [] ), + oldContent: toHide + }, + toShow = ( this.active = $( [] ) ); + this._toggle( toShow, toHide, data ); + return; + } + + // get the click target + var clicked = $( event.currentTarget || target ), + clickedIsActive = clicked[0] === this.active[0]; + + // TODO the option is changed, is that correct? + // TODO if it is correct, shouldn't that happen after determining that the click is valid? + options.active = options.collapsible && clickedIsActive ? + false : + this.headers.index( clicked ); + + // if animations are still active, or the active header is the target, ignore click + if ( this.running || ( !options.collapsible && clickedIsActive ) ) { + return; + } + + // find elements to show and hide + var active = this.active, + toShow = clicked.next(), + toHide = this.active.next(), + data = { + options: options, + newHeader: clickedIsActive && options.collapsible ? $([]) : clicked, + oldHeader: this.active, + newContent: clickedIsActive && options.collapsible ? $([]) : toShow, + oldContent: toHide + }, + down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] ); + + // when the call to ._toggle() comes after the class changes + // it causes a very odd bug in IE 8 (see #6720) + this.active = clickedIsActive ? $([]) : clicked; + this._toggle( toShow, toHide, data, clickedIsActive, down ); + + // switch classes + active + .removeClass( "ui-state-active ui-corner-top" ) + .addClass( "ui-state-default ui-corner-all" ) + .children( ".ui-icon" ) + .removeClass( options.icons.headerSelected ) + .addClass( options.icons.header ); + if ( !clickedIsActive ) { + clicked + .removeClass( "ui-state-default ui-corner-all" ) + .addClass( "ui-state-active ui-corner-top" ) + .children( ".ui-icon" ) + .removeClass( options.icons.header ) + .addClass( options.icons.headerSelected ); + clicked + .next() + .addClass( "ui-accordion-content-active" ); + } + + return; + }, + + _toggle: function( toShow, toHide, data, clickedIsActive, down ) { + var self = this, + options = self.options; + + self.toShow = toShow; + self.toHide = toHide; + self.data = data; + + var complete = function() { + if ( !self ) { + return; + } + return self._completed.apply( self, arguments ); + }; + + // trigger changestart event + self._trigger( "changestart", null, self.data ); + + // count elements to animate + self.running = toHide.size() === 0 ? toShow.size() : toHide.size(); + + if ( options.animated ) { + var animOptions = {}; + + if ( options.collapsible && clickedIsActive ) { + animOptions = { + toShow: $( [] ), + toHide: toHide, + complete: complete, + down: down, + autoHeight: options.autoHeight || options.fillSpace + }; + } else { + animOptions = { + toShow: toShow, + toHide: toHide, + complete: complete, + down: down, + autoHeight: options.autoHeight || options.fillSpace + }; + } + + if ( !options.proxied ) { + options.proxied = options.animated; + } + + if ( !options.proxiedDuration ) { + options.proxiedDuration = options.duration; + } + + options.animated = $.isFunction( options.proxied ) ? + options.proxied( animOptions ) : + options.proxied; + + options.duration = $.isFunction( options.proxiedDuration ) ? + options.proxiedDuration( animOptions ) : + options.proxiedDuration; + + var animations = $.ui.accordion.animations, + duration = options.duration, + easing = options.animated; + + if ( easing && !animations[ easing ] && !$.easing[ easing ] ) { + easing = "slide"; + } + if ( !animations[ easing ] ) { + animations[ easing ] = function( options ) { + this.slide( options, { + easing: easing, + duration: duration || 700 + }); + }; + } + + animations[ easing ]( animOptions ); + } else { + if ( options.collapsible && clickedIsActive ) { + toShow.toggle(); + } else { + toHide.hide(); + toShow.show(); + } + + complete( true ); + } + + // TODO assert that the blur and focus triggers are really necessary, remove otherwise + toHide.prev() + .attr({ + "aria-expanded": "false", + "aria-selected": "false", + tabIndex: -1 + }) + .blur(); + toShow.prev() + .attr({ + "aria-expanded": "true", + "aria-selected": "true", + tabIndex: 0 + }) + .focus(); + }, + + _completed: function( cancel ) { + this.running = cancel ? 0 : --this.running; + if ( this.running ) { + return; + } + + if ( this.options.clearStyle ) { + this.toShow.add( this.toHide ).css({ + height: "", + overflow: "" + }); + } + + // other classes are removed before the animation; this one needs to stay until completed + this.toHide.removeClass( "ui-accordion-content-active" ); + // Work around for rendering bug in IE (#5421) + if ( this.toHide.length ) { + this.toHide.parent()[0].className = this.toHide.parent()[0].className; + } + + this._trigger( "change", null, this.data ); + } +}); + +$.extend( $.ui.accordion, { + version: "1.8.16", + animations: { + slide: function( options, additions ) { + options = $.extend({ + easing: "swing", + duration: 300 + }, options, additions ); + if ( !options.toHide.size() ) { + options.toShow.animate({ + height: "show", + paddingTop: "show", + paddingBottom: "show" + }, options ); + return; + } + if ( !options.toShow.size() ) { + options.toHide.animate({ + height: "hide", + paddingTop: "hide", + paddingBottom: "hide" + }, options ); + return; + } + var overflow = options.toShow.css( "overflow" ), + percentDone = 0, + showProps = {}, + hideProps = {}, + fxAttrs = [ "height", "paddingTop", "paddingBottom" ], + originalWidth; + // fix width before calculating height of hidden element + var s = options.toShow; + originalWidth = s[0].style.width; + s.width( parseInt( s.parent().width(), 10 ) + - parseInt( s.css( "paddingLeft" ), 10 ) + - parseInt( s.css( "paddingRight" ), 10 ) + - ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 ) + - ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) ); + + $.each( fxAttrs, function( i, prop ) { + hideProps[ prop ] = "hide"; + + var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ ); + showProps[ prop ] = { + value: parts[ 1 ], + unit: parts[ 2 ] || "px" + }; + }); + options.toShow.css({ height: 0, overflow: "hidden" }).show(); + options.toHide + .filter( ":hidden" ) + .each( options.complete ) + .end() + .filter( ":visible" ) + .animate( hideProps, { + step: function( now, settings ) { + // only calculate the percent when animating height + // IE gets very inconsistent results when animating elements + // with small values, which is common for padding + if ( settings.prop == "height" ) { + percentDone = ( settings.end - settings.start === 0 ) ? 0 : + ( settings.now - settings.start ) / ( settings.end - settings.start ); + } + + options.toShow[ 0 ].style[ settings.prop ] = + ( percentDone * showProps[ settings.prop ].value ) + + showProps[ settings.prop ].unit; + }, + duration: options.duration, + easing: options.easing, + complete: function() { + if ( !options.autoHeight ) { + options.toShow.css( "height", "" ); + } + options.toShow.css({ + width: originalWidth, + overflow: overflow + }); + options.complete(); + } + }); + }, + bounceslide: function( options ) { + this.slide( options, { + easing: options.down ? "easeOutBounce" : "swing", + duration: options.down ? 1000 : 200 + }); + } + } +}); + +})( jQuery ); +/* + * jQuery UI Autocomplete 1.8.16 + * + * 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( $, undefined ) { + +// used to prevent race conditions with remote data sources +var requestIndex = 0; + +$.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 self = this, + doc = this.element[ 0 ].ownerDocument, + suppressKeyPress; + + this.element + .addClass( "ui-autocomplete-input" ) + .attr( "autocomplete", "off" ) + // TODO verify these actually work as intended + .attr({ + role: "textbox", + "aria-autocomplete": "list", + "aria-haspopup": "true" + }) + .bind( "keydown.autocomplete", function( event ) { + if ( self.options.disabled || self.element.propAttr( "readOnly" ) ) { + return; + } + + suppressKeyPress = false; + var keyCode = $.ui.keyCode; + switch( event.keyCode ) { + case keyCode.PAGE_UP: + self._move( "previousPage", event ); + break; + case keyCode.PAGE_DOWN: + self._move( "nextPage", event ); + break; + case keyCode.UP: + self._move( "previous", event ); + // prevent moving cursor to beginning of text field in some browsers + event.preventDefault(); + break; + case keyCode.DOWN: + self._move( "next", event ); + // prevent moving cursor to end of text field in some browsers + event.preventDefault(); + break; + case keyCode.ENTER: + case keyCode.NUMPAD_ENTER: + // when menu is open and has focus + if ( self.menu.active ) { + // #6055 - Opera still allows the keypress to occur + // which causes forms to submit + suppressKeyPress = true; + event.preventDefault(); + } + //passthrough - ENTER and TAB both select the current element + case keyCode.TAB: + if ( !self.menu.active ) { + return; + } + self.menu.select( event ); + break; + case keyCode.ESCAPE: + self.element.val( self.term ); + self.close( event ); + break; + default: + // keypress is triggered before the input value is changed + clearTimeout( self.searching ); + self.searching = setTimeout(function() { + // only search if the value has changed + if ( self.term != self.element.val() ) { + self.selectedItem = null; + self.search( null, event ); + } + }, self.options.delay ); + break; + } + }) + .bind( "keypress.autocomplete", function( event ) { + if ( suppressKeyPress ) { + suppressKeyPress = false; + event.preventDefault(); + } + }) + .bind( "focus.autocomplete", function() { + if ( self.options.disabled ) { + return; + } + + self.selectedItem = null; + self.previous = self.element.val(); + }) + .bind( "blur.autocomplete", function( event ) { + if ( self.options.disabled ) { + return; + } + + clearTimeout( self.searching ); + // clicks on the menu (or a button to trigger a search) will cause a blur event + self.closing = setTimeout(function() { + self.close( event ); + self._change( event ); + }, 150 ); + }); + this._initSource(); + this.response = function() { + return self._response.apply( self, arguments ); + }; + this.menu = $( "<ul></ul>" ) + .addClass( "ui-autocomplete" ) + .appendTo( $( this.options.appendTo || "body", doc )[0] ) + // prevent the close-on-blur in case of a "slow" click on the menu (long mousedown) + .mousedown(function( event ) { + // clicking on the scrollbar causes focus to shift to the body + // but we can't detect a mouseup or a click immediately afterward + // so we have to track the next mousedown and close the menu if + // the user clicks somewhere outside of the autocomplete + var menuElement = self.menu.element[ 0 ]; + if ( !$( event.target ).closest( ".ui-menu-item" ).length ) { + setTimeout(function() { + $( document ).one( 'mousedown', function( event ) { + if ( event.target !== self.element[ 0 ] && + event.target !== menuElement && + !$.ui.contains( menuElement, event.target ) ) { + self.close(); + } + }); + }, 1 ); + } + + // use another timeout to make sure the blur-event-handler on the input was already triggered + setTimeout(function() { + clearTimeout( self.closing ); + }, 13); + }) + .menu({ + focus: function( event, ui ) { + var item = ui.item.data( "item.autocomplete" ); + if ( false !== self._trigger( "focus", event, { item: item } ) ) { + // use value to match what will end up in the input, if it was a key event + if ( /^key/.test(event.originalEvent.type) ) { + self.element.val( item.value ); + } + } + }, + selected: function( event, ui ) { + var item = ui.item.data( "item.autocomplete" ), + previous = self.previous; + + // only trigger when focus was lost (click on menu) + if ( self.element[0] !== doc.activeElement ) { + self.element.focus(); + self.previous = previous; + // #6109 - IE triggers two focus events and the second + // is asynchronous, so we need to reset the previous + // term synchronously and asynchronously :-( + setTimeout(function() { + self.previous = previous; + self.selectedItem = item; + }, 1); + } + + if ( false !== self._trigger( "select", event, { item: item } ) ) { + self.element.val( item.value ); + } + // reset the term after the select event + // this allows custom select handling to work properly + self.term = self.element.val(); + + self.close( event ); + self.selectedItem = item; + }, + blur: function( event, ui ) { + // don't set the value of the text field if it's already correct + // this prevents moving the cursor unnecessarily + if ( self.menu.element.is(":visible") && + ( self.element.val() !== self.term ) ) { + self.element.val( self.term ); + } + } + }) + .zIndex( this.element.zIndex() + 1 ) + // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 + .css({ top: 0, left: 0 }) + .hide() + .data( "menu" ); + if ( $.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(); + $.Widget.prototype.destroy.call( this ); + }, + + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); + if ( key === "source" ) { + this._initSource(); + } + if ( key === "appendTo" ) { + this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] ) + } + if ( key === "disabled" && value && this.xhr ) { + this.xhr.abort(); + } + }, + + _initSource: function() { + var self = this, + array, + url; + if ( $.isArray(this.options.source) ) { + array = this.options.source; + this.source = function( request, response ) { + response( $.ui.autocomplete.filter(array, request.term) ); + }; + } else if ( typeof this.options.source === "string" ) { + url = this.options.source; + this.source = function( request, response ) { + if ( self.xhr ) { + self.xhr.abort(); + } + self.xhr = $.ajax({ + url: url, + data: request, + dataType: "json", + autocompleteRequest: ++requestIndex, + success: function( data, status ) { + if ( this.autocompleteRequest === requestIndex ) { + response( data ); + } + }, + error: function() { + if ( this.autocompleteRequest === requestIndex ) { + response( [] ); + } + } + }); + }; + } else { + this.source = this.options.source; + } + }, + + search: function( value, event ) { + value = value != null ? value : this.element.val(); + + // always save the actual value, not the one passed as an argument + this.term = this.element.val(); + + if ( value.length < this.options.minLength ) { + return this.close( event ); + } + + clearTimeout( this.closing ); + if ( this._trigger( "search", event ) === false ) { + return; + } + + return this._search( value ); + }, + + _search: function( value ) { + this.pending++; + this.element.addClass( "ui-autocomplete-loading" ); + + this.source( { term: value }, this.response ); + }, + + _response: function( content ) { + if ( !this.options.disabled && content && content.length ) { + content = this._normalize( content ); + this._suggest( content ); + this._trigger( "open" ); + } else { + this.close(); + } + this.pending--; + if ( !this.pending ) { + this.element.removeClass( "ui-autocomplete-loading" ); + } + }, + + close: function( event ) { + clearTimeout( this.closing ); + if ( this.menu.element.is(":visible") ) { + this.menu.element.hide(); + this.menu.deactivate(); + this._trigger( "close", event ); + } + }, + + _change: function( event ) { + if ( this.previous !== this.element.val() ) { + this._trigger( "change", event, { item: this.selectedItem } ); + } + }, + + _normalize: function( items ) { + // assume all items have the right format when the first item is complete + if ( items.length && items[0].label && items[0].value ) { + return items; + } + return $.map( items, function(item) { + if ( typeof item === "string" ) { + return { + label: item, + value: item + }; + } + return $.extend({ + label: item.label || item.value, + value: item.value || item.label + }, item ); + }); + }, + + _suggest: function( items ) { + var ul = this.menu.element + .empty() + .zIndex( this.element.zIndex() + 1 ); + this._renderMenu( ul, items ); + // TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate + this.menu.deactivate(); + this.menu.refresh(); + + // size and position menu + ul.show(); + this._resizeMenu(); + ul.position( $.extend({ + of: this.element + }, this.options.position )); + + if ( this.options.autoFocus ) { + this.menu.next( new $.Event("mouseover") ); + } + }, + + _resizeMenu: function() { + var ul = this.menu.element; + ul.outerWidth( Math.max( + ul.width( "" ).outerWidth(), + this.element.outerWidth() + ) ); + }, + + _renderMenu: function( ul, items ) { + var self = this; + $.each( items, function( index, item ) { + self._renderItem( ul, item ); + }); + }, + + _renderItem: function( ul, item) { + return $( "<li></li>" ) + .data( "item.autocomplete", item ) + .append( $( "<a></a>" ).text( item.label ) ) + .appendTo( ul ); + }, + + _move: function( direction, event ) { + if ( !this.menu.element.is(":visible") ) { + this.search( null, event ); + return; + } + if ( this.menu.first() && /^previous/.test(direction) || + this.menu.last() && /^next/.test(direction) ) { + this.element.val( this.term ); + this.menu.deactivate(); + return; + } + this.menu[ direction ]( event ); + }, + + widget: function() { + return this.menu.element; + } +}); + +$.extend( $.ui.autocomplete, { + escapeRegex: function( value ) { + return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + }, + filter: function(array, term) { + var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" ); + return $.grep( array, function(value) { + return matcher.test( value.label || value.value || value ); + }); + } +}); + +}( jQuery )); + +/* + * jQuery UI Menu (not officially released) + * + * This widget isn't yet finished and the API is subject to change. We plan to finish + * it for the next release. You're welcome to give it a try anyway and give us feedback, + * as long as you're okay with migrating your code later on. We can help with that, too. + * + * 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 + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function($) { + +$.widget("ui.menu", { + _create: function() { + var self = this; + this.element + .addClass("ui-menu ui-widget ui-widget-content ui-corner-all") + .attr({ + role: "listbox", + "aria-activedescendant": "ui-active-menuitem" + }) + .click(function( event ) { + if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) { + return; + } + // temporary + event.preventDefault(); + self.select( event ); + }); + this.refresh(); + }, + + refresh: function() { + var self = this; + + // don't refresh list items that are already adapted + var items = this.element.children("li:not(.ui-menu-item):has(a)") + .addClass("ui-menu-item") + .attr("role", "menuitem"); + + items.children("a") + .addClass("ui-corner-all") + .attr("tabindex", -1) + // mouseenter doesn't work with event delegation + .mouseenter(function( event ) { + self.activate( event, $(this).parent() ); + }) + .mouseleave(function() { + self.deactivate(); + }); + }, + + activate: function( event, item ) { + this.deactivate(); + if (this.hasScroll()) { + var offset = item.offset().top - this.element.offset().top, + scroll = this.element.scrollTop(), + elementHeight = this.element.height(); + if (offset < 0) { + this.element.scrollTop( scroll + offset); + } else if (offset >= elementHeight) { + this.element.scrollTop( scroll + offset - elementHeight + item.height()); + } + } + this.active = item.eq(0) + .children("a") + .addClass("ui-state-hover") + .attr("id", "ui-active-menuitem") + .end(); + this._trigger("focus", event, { item: item }); + }, + + deactivate: function() { + if (!this.active) { return; } + + this.active.children("a") + .removeClass("ui-state-hover") + .removeAttr("id"); + this._trigger("blur"); + this.active = null; + }, + + next: function(event) { + this.move("next", ".ui-menu-item:first", event); + }, + + previous: function(event) { + this.move("prev", ".ui-menu-item:last", event); + }, + + 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(direction, edge, event) { + if (!this.active) { + this.activate(event, this.element.children(edge)); + return; + } + var next = this.active[direction + "All"](".ui-menu-item").eq(0); + if (next.length) { + this.activate(event, next); + } else { + this.activate(event, this.element.children(edge)); + } + }, + + // TODO merge with previousPage + nextPage: function(event) { + if (this.hasScroll()) { + // TODO merge with no-scroll-else + if (!this.active || this.last()) { + this.activate(event, this.element.children(".ui-menu-item:first")); + return; + } + var base = this.active.offset().top, + height = this.element.height(), + result = this.element.children(".ui-menu-item").filter(function() { + var close = $(this).offset().top - base - height + $(this).height(); + // TODO improve approximation + return close < 10 && close > -10; + }); + + // TODO try to catch this earlier when scrollTop indicates the last page anyway + if (!result.length) { + result = this.element.children(".ui-menu-item:last"); + } + this.activate(event, result); + } else { + this.activate(event, this.element.children(".ui-menu-item") + .filter(!this.active || this.last() ? ":first" : ":last")); + } + }, + + // TODO merge with nextPage + previousPage: function(event) { + if (this.hasScroll()) { + // TODO merge with no-scroll-else + if (!this.active || this.first()) { + this.activate(event, this.element.children(".ui-menu-item:last")); + return; + } + + var base = this.active.offset().top, + height = this.element.height(); + result = this.element.children(".ui-menu-item").filter(function() { + var close = $(this).offset().top - base + height - $(this).height(); + // TODO improve approximation + return close < 10 && close > -10; + }); + + // TODO try to catch this earlier when scrollTop indicates the last page anyway + if (!result.length) { + result = this.element.children(".ui-menu-item:first"); + } + this.activate(event, result); + } else { + this.activate(event, this.element.children(".ui-menu-item") + .filter(!this.active || this.first() ? ":last" : ":first")); + } + }, + + hasScroll: function() { + return this.element.height() < this.element[ $.fn.prop ? "prop" : "attr" ]("scrollHeight"); + }, + + select: function( event ) { + this._trigger("selected", event, { item: this.active }); + } +}); + +}(jQuery)); +/* + * jQuery UI Button 1.8.16 + * + * 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 + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +var lastActive, startXPos, startYPos, clickDragged, + baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", + stateClasses = "ui-state-hover ui-state-active ", + typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", + formResetHandler = function() { + var buttons = $( this ).find( ":ui-button" ); + setTimeout(function() { + buttons.button( "refresh" ); + }, 1 ); + }, + radioGroup = function( radio ) { + var name = radio.name, + form = radio.form, + radios = $( [] ); + if ( name ) { + if ( form ) { + radios = $( form ).find( "[name='" + name + "']" ); + } else { + radios = $( "[name='" + name + "']", radio.ownerDocument ) + .filter(function() { + return !this.form; + }); + } + } + return radios; + }; + +$.widget( "ui.button", { + options: { + disabled: null, + text: true, + label: null, + icons: { + primary: null, + secondary: null + } + }, + _create: function() { + this.element.closest( "form" ) + .unbind( "reset.button" ) + .bind( "reset.button", formResetHandler ); + + if ( typeof this.options.disabled !== "boolean" ) { + this.options.disabled = this.element.propAttr( "disabled" ); + } + + this._determineButtonType(); + this.hasTitle = !!this.buttonElement.attr( "title" ); + + var self = this, + options = this.options, + toggleButton = this.type === "checkbox" || this.type === "radio", + hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ), + focusClass = "ui-state-focus"; + + if ( options.label === null ) { + options.label = this.buttonElement.html(); + } + + if ( this.element.is( ":disabled" ) ) { + options.disabled = true; + } + + this.buttonElement + .addClass( baseClasses ) + .attr( "role", "button" ) + .bind( "mouseenter.button", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-hover" ); + if ( this === lastActive ) { + $( this ).addClass( "ui-state-active" ); + } + }) + .bind( "mouseleave.button", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( hoverClass ); + }) + .bind( "click.button", function( event ) { + if ( options.disabled ) { + event.preventDefault(); + event.stopImmediatePropagation(); + } + }); + + this.element + .bind( "focus.button", function() { + // no need to check disabled, focus won't be triggered anyway + self.buttonElement.addClass( focusClass ); + }) + .bind( "blur.button", function() { + self.buttonElement.removeClass( focusClass ); + }); + + if ( toggleButton ) { + this.element.bind( "change.button", function() { + if ( clickDragged ) { + return; + } + self.refresh(); + }); + // if mouse moves between mousedown and mouseup (drag) set clickDragged flag + // prevents issue where button state changes but checkbox/radio checked state + // does not in Firefox (see ticket #6970) + this.buttonElement + .bind( "mousedown.button", function( event ) { + if ( options.disabled ) { + return; + } + clickDragged = false; + startXPos = event.pageX; + startYPos = event.pageY; + }) + .bind( "mouseup.button", function( event ) { + if ( options.disabled ) { + return; + } + if ( startXPos !== event.pageX || startYPos !== event.pageY ) { + clickDragged = true; + } + }); + } + + if ( this.type === "checkbox" ) { + this.buttonElement.bind( "click.button", function() { + if ( options.disabled || clickDragged ) { + return false; + } + $( this ).toggleClass( "ui-state-active" ); + self.buttonElement.attr( "aria-pressed", self.element[0].checked ); + }); + } else if ( this.type === "radio" ) { + this.buttonElement.bind( "click.button", function() { + if ( options.disabled || clickDragged ) { + return false; + } + $( this ).addClass( "ui-state-active" ); + self.buttonElement.attr( "aria-pressed", "true" ); + + var radio = self.element[ 0 ]; + radioGroup( radio ) + .not( radio ) + .map(function() { + return $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", "false" ); + }); + } else { + this.buttonElement + .bind( "mousedown.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).addClass( "ui-state-active" ); + lastActive = this; + $( document ).one( "mouseup", function() { + lastActive = null; + }); + }) + .bind( "mouseup.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).removeClass( "ui-state-active" ); + }) + .bind( "keydown.button", function(event) { + if ( options.disabled ) { + return false; + } + if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) { + $( this ).addClass( "ui-state-active" ); + } + }) + .bind( "keyup.button", function() { + $( this ).removeClass( "ui-state-active" ); + }); + + if ( this.buttonElement.is("a") ) { + this.buttonElement.keyup(function(event) { + if ( event.keyCode === $.ui.keyCode.SPACE ) { + // TODO pass through original event correctly (just as 2nd argument doesn't work) + $( this ).click(); + } + }); + } + } + + // TODO: pull out $.Widget's handling for the disabled option into + // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can + // be overridden by individual plugins + this._setOption( "disabled", options.disabled ); + this._resetButton(); + }, + + _determineButtonType: function() { + + if ( this.element.is(":checkbox") ) { + this.type = "checkbox"; + } else if ( this.element.is(":radio") ) { + this.type = "radio"; + } else if ( this.element.is("input") ) { + this.type = "input"; + } else { + this.type = "button"; + } + + if ( this.type === "checkbox" || this.type === "radio" ) { + // we don't search against the document in case the element + // is disconnected from the DOM + var ancestor = this.element.parents().filter(":last"), + labelSelector = "label[for='" + this.element.attr("id") + "']"; + this.buttonElement = ancestor.find( labelSelector ); + if ( !this.buttonElement.length ) { + ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings(); + this.buttonElement = ancestor.filter( labelSelector ); + if ( !this.buttonElement.length ) { + this.buttonElement = ancestor.find( labelSelector ); + } + } + this.element.addClass( "ui-helper-hidden-accessible" ); + + var checked = this.element.is( ":checked" ); + if ( checked ) { + this.buttonElement.addClass( "ui-state-active" ); + } + this.buttonElement.attr( "aria-pressed", checked ); + } else { + this.buttonElement = this.element; + } + }, + + widget: function() { + return this.buttonElement; + }, + + destroy: function() { + this.element + .removeClass( "ui-helper-hidden-accessible" ); + this.buttonElement + .removeClass( baseClasses + " " + stateClasses + " " + typeClasses ) + .removeAttr( "role" ) + .removeAttr( "aria-pressed" ) + .html( this.buttonElement.find(".ui-button-text").html() ); + + if ( !this.hasTitle ) { + this.buttonElement.removeAttr( "title" ); + } + + $.Widget.prototype.destroy.call( this ); + }, + + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); + if ( key === "disabled" ) { + if ( value ) { + this.element.propAttr( "disabled", true ); + } else { + this.element.propAttr( "disabled", false ); + } + return; + } + this._resetButton(); + }, + + refresh: function() { + var isDisabled = this.element.is( ":disabled" ); + if ( isDisabled !== this.options.disabled ) { + this._setOption( "disabled", isDisabled ); + } + if ( this.type === "radio" ) { + radioGroup( this.element[0] ).each(function() { + if ( $( this ).is( ":checked" ) ) { + $( this ).button( "widget" ) + .addClass( "ui-state-active" ) + .attr( "aria-pressed", "true" ); + } else { + $( this ).button( "widget" ) + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", "false" ); + } + }); + } else if ( this.type === "checkbox" ) { + if ( this.element.is( ":checked" ) ) { + this.buttonElement + .addClass( "ui-state-active" ) + .attr( "aria-pressed", "true" ); + } else { + this.buttonElement + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", "false" ); + } + } + }, + + _resetButton: function() { + if ( this.type === "input" ) { + if ( this.options.label ) { + this.element.val( this.options.label ); + } + return; + } + var buttonElement = this.buttonElement.removeClass( typeClasses ), + buttonText = $( "<span></span>" ) + .addClass( "ui-button-text" ) + .html( this.options.label ) + .appendTo( buttonElement.empty() ) + .text(), + icons = this.options.icons, + multipleIcons = icons.primary && icons.secondary, + buttonClasses = []; + + if ( icons.primary || icons.secondary ) { + if ( this.options.text ) { + buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) ); + } + + if ( icons.primary ) { + buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" ); + } + + if ( icons.secondary ) { + buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" ); + } + + if ( !this.options.text ) { + buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" ); + + if ( !this.hasTitle ) { + buttonElement.attr( "title", buttonText ); + } + } + } else { + buttonClasses.push( "ui-button-text-only" ); + } + buttonElement.addClass( buttonClasses.join( " " ) ); + } +}); + +$.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( key, value ) { + if ( key === "disabled" ) { + this.buttons.button( "option", key, value ); + } + + $.Widget.prototype._setOption.apply( this, arguments ); + }, + + refresh: function() { + var ltr = 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 $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-corner-all ui-corner-left ui-corner-right" ) + .filter( ":first" ) + .addClass( ltr ? "ui-corner-left" : "ui-corner-right" ) + .end() + .filter( ":last" ) + .addClass( ltr ? "ui-corner-right" : "ui-corner-left" ) + .end() + .end(); + }, + + destroy: function() { + this.element.removeClass( "ui-buttonset" ); + this.buttons + .map(function() { + return $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-corner-left ui-corner-right" ) + .end() + .button( "destroy" ); + + $.Widget.prototype.destroy.call( this ); + } +}); + +}( jQuery ) ); +/* + * jQuery UI Datepicker 1.8.16 + * + * 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 + * + * Depends: + * jquery.ui.core.js + */ +(function( $, undefined ) { + +$.extend($.ui, { datepicker: { version: "1.8.16" } }); + +var PROP_NAME = 'datepicker'; +var dpuuid = new Date().getTime(); +var instActive; + +/* Date picker manager. + Use the singleton instance of this class, $.datepicker, to interact with the date picker. + Settings for (groups of) date pickers are maintained in an instance object, + allowing multiple different settings on the same page. */ + +function Datepicker() { + this.debug = false; // Change this to true to start debugging + this._curInst = null; // The current instance in use + this._keyEvent = false; // If the last event was a key event + this._disabledInputs = []; // List of date picker inputs that have been disabled + this._datepickerShowing = false; // True if the popup picker is showing , false if not + this._inDialog = false; // True if showing within a "dialog", false if not + this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division + this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class + this._appendClass = 'ui-datepicker-append'; // The name of the append marker class + this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class + this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class + this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class + this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class + this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class + this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class + this.regional = []; // Available regional settings, indexed by language code + this.regional[''] = { // Default regional settings + closeText: 'Done', // Display text for close link + prevText: 'Prev', // Display text for previous month link + nextText: 'Next', // Display text for next month link + currentText: 'Today', // Display text for current month link + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], // Names of months for drop-down and formatting + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday + weekHeader: 'Wk', // Column header for week of the year + dateFormat: 'mm/dd/yy', // See format options on parseDate + firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ... + isRTL: false, // True if right-to-left language, false if left-to-right + showMonthAfterYear: false, // True if the year select precedes month, false for month then year + yearSuffix: '' // Additional text to append to the year in the month headers + }; + this._defaults = { // Global defaults for all the date picker instances + showOn: 'focus', // 'focus' for popup on focus, + // 'button' for trigger button, or 'both' for either + showAnim: 'fadeIn', // Name of jQuery animation for popup + showOptions: {}, // Options for enhanced animations + defaultDate: null, // Used when field is blank: actual date, + // +/-number for offset from today, null for today + appendText: '', // Display text following the input box, e.g. showing the format + buttonText: '...', // Text for trigger button + buttonImage: '', // URL for trigger button image + buttonImageOnly: false, // True if the image appears alone, false if it appears on a button + hideIfNoPrevNext: false, // True to hide next/previous month links + // if not applicable, false to just disable them + navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links + gotoCurrent: false, // True if today link goes back to current selection instead + changeMonth: false, // True if month can be selected directly, false if only prev/next + changeYear: false, // True if year can be selected directly, false if only prev/next + yearRange: 'c-10:c+10', // Range of years to display in drop-down, + // either relative to today's year (-nn:+nn), relative to currently displayed year + // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n) + showOtherMonths: false, // True to show dates in other months, false to leave blank + selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable + showWeek: false, // True to show week of the year, false to not show it + calculateWeek: this.iso8601Week, // How to calculate the week of the year, + // takes a Date and returns the number of the week for it + shortYearCutoff: '+10', // Short year values < this are in the current century, + // > this are in the previous century, + // string value starting with '+' for current year + value + minDate: null, // The earliest selectable date, or null for no limit + maxDate: null, // The latest selectable date, or null for no limit + duration: 'fast', // Duration of display/closure + beforeShowDay: null, // Function that takes a date and returns an array with + // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '', + // [2] = cell title (optional), e.g. $.datepicker.noWeekends + beforeShow: null, // Function that takes an input field and + // returns a set of custom settings for the date picker + onSelect: null, // Define a callback function when a date is selected + onChangeMonthYear: null, // Define a callback function when the month or year is changed + onClose: null, // Define a callback function when the datepicker is closed + numberOfMonths: 1, // Number of months to show at a time + showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0) + stepMonths: 1, // Number of months to step back/forward + stepBigMonths: 12, // Number of months to step back/forward for the big links + altField: '', // Selector for an alternate field to store selected dates into + altFormat: '', // The date format to use for the alternate field + constrainInput: true, // The input is constrained by the current date format + showButtonPanel: false, // True to show button panel, false to not show it + autoSize: false, // True to size the input for the date format, false to leave as is + disabled: false // The initial disabled state + }; + $.extend(this._defaults, this.regional['']); + this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')); +} + +$.extend(Datepicker.prototype, { + /* Class name added to elements to indicate already configured with a date picker. */ + markerClassName: 'hasDatepicker', + + //Keep track of the maximum number of rows displayed (see #7043) + maxRows: 4, + + /* Debug logging (if enabled). */ + log: function () { + if (this.debug) + console.log.apply('', arguments); + }, + + // TODO rename to "widget" when switching to widget factory + _widgetDatepicker: function() { + return this.dpDiv; + }, + + /* Override the default settings for all instances of the date picker. + @param settings object - the new settings to use as defaults (anonymous object) + @return the manager object */ + setDefaults: function(settings) { + extendRemove(this._defaults, settings || {}); + return this; + }, + + /* Attach the date picker to a jQuery selection. + @param target element - the target input field or division or span + @param settings object - the new settings to use for this date picker instance (anonymous) */ + _attachDatepicker: function(target, settings) { + // check for settings on the control itself - in namespace 'date:' + var inlineSettings = null; + for (var attrName in this._defaults) { + var attrValue = target.getAttribute('date:' + attrName); + if (attrValue) { + inlineSettings = inlineSettings || {}; + try { + inlineSettings[attrName] = eval(attrValue); + } catch (err) { + inlineSettings[attrName] = attrValue; + } + } + } + var nodeName = target.nodeName.toLowerCase(); + var inline = (nodeName == 'div' || nodeName == 'span'); + if (!target.id) { + this.uuid += 1; + target.id = 'dp' + this.uuid; + } + var inst = this._newInst($(target), inline); + inst.settings = $.extend({}, settings || {}, inlineSettings || {}); + if (nodeName == 'input') { + this._connectDatepicker(target, inst); + } else if (inline) { + this._inlineDatepicker(target, inst); + } + }, + + /* Create a new instance object. */ + _newInst: function(target, inline) { + var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars + return {id: id, input: target, // associated target + selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection + drawMonth: 0, drawYear: 0, // month being drawn + inline: inline, // is datepicker inline or not + dpDiv: (!inline ? this.dpDiv : // presentation div + bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')))}; + }, + + /* Attach the date picker to an input field. */ + _connectDatepicker: function(target, inst) { + var input = $(target); + inst.append = $([]); + inst.trigger = $([]); + if (input.hasClass(this.markerClassName)) + return; + this._attachments(input, inst); + input.addClass(this.markerClassName).keydown(this._doKeyDown). + keypress(this._doKeyPress).keyup(this._doKeyUp). + bind("setData.datepicker", function(event, key, value) { + inst.settings[key] = value; + }).bind("getData.datepicker", function(event, key) { + return this._get(inst, key); + }); + this._autoSize(inst); + $.data(target, PROP_NAME, inst); + //If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665) + if( inst.settings.disabled ) { + this._disableDatepicker( target ); + } + }, + + /* Make attachments based on settings. */ + _attachments: function(input, inst) { + var appendText = this._get(inst, 'appendText'); + var isRTL = this._get(inst, 'isRTL'); + if (inst.append) + inst.append.remove(); + if (appendText) { + inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>'); + input[isRTL ? 'before' : 'after'](inst.append); + } + input.unbind('focus', this._showDatepicker); + if (inst.trigger) + inst.trigger.remove(); + var showOn = this._get(inst, 'showOn'); + if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field + input.focus(this._showDatepicker); + if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked + var buttonText = this._get(inst, 'buttonText'); + var buttonImage = this._get(inst, 'buttonImage'); + inst.trigger = $(this._get(inst, 'buttonImageOnly') ? + $('<img/>').addClass(this._triggerClass). + attr({ src: buttonImage, alt: buttonText, title: buttonText }) : + $('<button type="button"></button>').addClass(this._triggerClass). + html(buttonImage == '' ? buttonText : $('<img/>').attr( + { src:buttonImage, alt:buttonText, title:buttonText }))); + input[isRTL ? 'before' : 'after'](inst.trigger); + inst.trigger.click(function() { + if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0]) + $.datepicker._hideDatepicker(); + else + $.datepicker._showDatepicker(input[0]); + return false; + }); + } + }, + + /* Apply the maximum length for the date format. */ + _autoSize: function(inst) { + if (this._get(inst, 'autoSize') && !inst.inline) { + var date = new Date(2009, 12 - 1, 20); // Ensure double digits + var dateFormat = this._get(inst, 'dateFormat'); + if (dateFormat.match(/[DM]/)) { + var findMax = function(names) { + var max = 0; + var maxI = 0; + for (var i = 0; i < names.length; i++) { + if (names[i].length > max) { + max = names[i].length; + maxI = i; + } + } + return maxI; + }; + date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? + 'monthNames' : 'monthNamesShort')))); + date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? + 'dayNames' : 'dayNamesShort'))) + 20 - date.getDay()); + } + inst.input.attr('size', this._formatDate(inst, date).length); + } + }, + + /* Attach an inline date picker to a div. */ + _inlineDatepicker: function(target, inst) { + var divSpan = $(target); + if (divSpan.hasClass(this.markerClassName)) + return; + divSpan.addClass(this.markerClassName).append(inst.dpDiv). + bind("setData.datepicker", function(event, key, value){ + inst.settings[key] = value; + }).bind("getData.datepicker", function(event, key){ + return this._get(inst, key); + }); + $.data(target, PROP_NAME, inst); + this._setDate(inst, this._getDefaultDate(inst), true); + this._updateDatepicker(inst); + this._updateAlternate(inst); + //If disabled option is true, disable the datepicker before showing it (see ticket #5665) + if( inst.settings.disabled ) { + this._disableDatepicker( target ); + } + // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements + // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height + inst.dpDiv.css( "display", "block" ); + }, + + /* Pop-up the date picker in a "dialog" box. + @param input element - ignored + @param date string or Date - the initial date to display + @param onSelect function - the function to call when a date is selected + @param settings object - update the dialog date picker instance's settings (anonymous object) + @param pos int[2] - coordinates for the dialog's position within the screen or + event - with x/y coordinates or + leave empty for default (screen centre) + @return the manager object */ + _dialogDatepicker: function(input, date, onSelect, settings, pos) { + var inst = this._dialogInst; // internal instance + if (!inst) { + this.uuid += 1; + var id = 'dp' + this.uuid; + this._dialogInput = $('<input type="text" id="' + id + + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'); + this._dialogInput.keydown(this._doKeyDown); + $('body').append(this._dialogInput); + inst = this._dialogInst = this._newInst(this._dialogInput, false); + inst.settings = {}; + $.data(this._dialogInput[0], PROP_NAME, inst); + } + extendRemove(inst.settings, settings || {}); + date = (date && date.constructor == Date ? this._formatDate(inst, date) : date); + this._dialogInput.val(date); + + this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); + if (!this._pos) { + var browserWidth = document.documentElement.clientWidth; + var browserHeight = document.documentElement.clientHeight; + var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; + var scrollY = document.documentElement.scrollTop || document.body.scrollTop; + this._pos = // should use actual width/height below + [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; + } + + // move input on screen for focus, but hidden behind dialog + this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px'); + inst.settings.onSelect = onSelect; + this._inDialog = true; + this.dpDiv.addClass(this._dialogClass); + this._showDatepicker(this._dialogInput[0]); + if ($.blockUI) + $.blockUI(this.dpDiv); + $.data(this._dialogInput[0], PROP_NAME, inst); + return this; + }, + + /* Detach a datepicker from its control. + @param target element - the target input field or division or span */ + _destroyDatepicker: function(target) { + var $target = $(target); + var inst = $.data(target, PROP_NAME); + if (!$target.hasClass(this.markerClassName)) { + return; + } + var nodeName = target.nodeName.toLowerCase(); + $.removeData(target, PROP_NAME); + if (nodeName == 'input') { + inst.append.remove(); + inst.trigger.remove(); + $target.removeClass(this.markerClassName). + unbind('focus', this._showDatepicker). + unbind('keydown', this._doKeyDown). + unbind('keypress', this._doKeyPress). + unbind('keyup', this._doKeyUp); + } else if (nodeName == 'div' || nodeName == 'span') + $target.removeClass(this.markerClassName).empty(); + }, + + /* Enable the date picker to a jQuery selection. + @param target element - the target input field or division or span */ + _enableDatepicker: function(target) { + var $target = $(target); + var inst = $.data(target, PROP_NAME); + if (!$target.hasClass(this.markerClassName)) { + return; + } + var nodeName = target.nodeName.toLowerCase(); + if (nodeName == 'input') { + target.disabled = false; + inst.trigger.filter('button'). + each(function() { this.disabled = false; }).end(). + filter('img').css({opacity: '1.0', cursor: ''}); + } + else if (nodeName == 'div' || nodeName == 'span') { + var inline = $target.children('.' + this._inlineClass); + inline.children().removeClass('ui-state-disabled'); + inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). + removeAttr("disabled"); + } + this._disabledInputs = $.map(this._disabledInputs, + function(value) { return (value == target ? null : value); }); // delete entry + }, + + /* Disable the date picker to a jQuery selection. + @param target element - the target input field or division or span */ + _disableDatepicker: function(target) { + var $target = $(target); + var inst = $.data(target, PROP_NAME); + if (!$target.hasClass(this.markerClassName)) { + return; + } + var nodeName = target.nodeName.toLowerCase(); + if (nodeName == 'input') { + target.disabled = true; + inst.trigger.filter('button'). + each(function() { this.disabled = true; }).end(). + filter('img').css({opacity: '0.5', cursor: 'default'}); + } + else if (nodeName == 'div' || nodeName == 'span') { + var inline = $target.children('.' + this._inlineClass); + inline.children().addClass('ui-state-disabled'); + inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). + attr("disabled", "disabled"); + } + this._disabledInputs = $.map(this._disabledInputs, + function(value) { return (value == target ? null : value); }); // delete entry + this._disabledInputs[this._disabledInputs.length] = target; + }, + + /* Is the first field in a jQuery collection disabled as a datepicker? + @param target element - the target input field or division or span + @return boolean - true if disabled, false if enabled */ + _isDisabledDatepicker: function(target) { + if (!target) { + return false; + } + for (var i = 0; i < this._disabledInputs.length; i++) { + if (this._disabledInputs[i] == target) + return true; + } + return false; + }, + + /* Retrieve the instance data for the target control. + @param target element - the target input field or division or span + @return object - the associated instance data + @throws error if a jQuery problem getting data */ + _getInst: function(target) { + try { + return $.data(target, PROP_NAME); + } + catch (err) { + throw 'Missing instance data for this datepicker'; + } + }, + + /* Update or retrieve the settings for a date picker attached to an input field or division. + @param target element - the target input field or division or span + @param name object - the new settings to update or + string - the name of the setting to change or retrieve, + when retrieving also 'all' for all instance settings or + 'defaults' for all global defaults + @param value any - the new value for the setting + (omit if above is an object or to retrieve a value) */ + _optionDatepicker: function(target, name, value) { + var inst = this._getInst(target); + if (arguments.length == 2 && typeof name == 'string') { + return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) : + (inst ? (name == 'all' ? $.extend({}, inst.settings) : + this._get(inst, name)) : null)); + } + var settings = name || {}; + if (typeof name == 'string') { + settings = {}; + settings[name] = value; + } + if (inst) { + if (this._curInst == inst) { + this._hideDatepicker(); + } + var date = this._getDateDatepicker(target, true); + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + extendRemove(inst.settings, settings); + // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided + if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined) + inst.settings.minDate = this._formatDate(inst, minDate); + if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined) + inst.settings.maxDate = this._formatDate(inst, maxDate); + this._attachments($(target), inst); + this._autoSize(inst); + this._setDate(inst, date); + this._updateAlternate(inst); + this._updateDatepicker(inst); + } + }, + + // change method deprecated + _changeDatepicker: function(target, name, value) { + this._optionDatepicker(target, name, value); + }, + + /* Redraw the date picker attached to an input field or division. + @param target element - the target input field or division or span */ + _refreshDatepicker: function(target) { + var inst = this._getInst(target); + if (inst) { + this._updateDatepicker(inst); + } + }, + + /* Set the dates for a jQuery selection. + @param target element - the target input field or division or span + @param date Date - the new date */ + _setDateDatepicker: function(target, date) { + var inst = this._getInst(target); + if (inst) { + this._setDate(inst, date); + this._updateDatepicker(inst); + this._updateAlternate(inst); + } + }, + + /* Get the date(s) for the first entry in a jQuery selection. + @param target element - the target input field or division or span + @param noDefault boolean - true if no default date is to be used + @return Date - the current date */ + _getDateDatepicker: function(target, noDefault) { + var inst = this._getInst(target); + if (inst && !inst.inline) + this._setDateFromField(inst, noDefault); + return (inst ? this._getDate(inst) : null); + }, + + /* Handle keystrokes. */ + _doKeyDown: function(event) { + var inst = $.datepicker._getInst(event.target); + var handled = true; + var isRTL = inst.dpDiv.is('.ui-datepicker-rtl'); + inst._keyEvent = true; + if ($.datepicker._datepickerShowing) + switch (event.keyCode) { + case 9: $.datepicker._hideDatepicker(); + handled = false; + break; // hide on tab out + case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + + $.datepicker._currentClass + ')', inst.dpDiv); + if (sel[0]) + $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); + var onSelect = $.datepicker._get(inst, 'onSelect'); + if (onSelect) { + var dateStr = $.datepicker._formatDate(inst); + + // trigger custom callback + onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); + } + else + $.datepicker._hideDatepicker(); + return false; // don't submit the form + break; // select the value on enter + case 27: $.datepicker._hideDatepicker(); + break; // hide on escape + case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? + -$.datepicker._get(inst, 'stepBigMonths') : + -$.datepicker._get(inst, 'stepMonths')), 'M'); + break; // previous month/year on page up/+ ctrl + case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? + +$.datepicker._get(inst, 'stepBigMonths') : + +$.datepicker._get(inst, 'stepMonths')), 'M'); + break; // next month/year on page down/+ ctrl + case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target); + handled = event.ctrlKey || event.metaKey; + break; // clear on ctrl or command +end + case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target); + handled = event.ctrlKey || event.metaKey; + break; // current on ctrl or command +home + case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D'); + handled = event.ctrlKey || event.metaKey; + // -1 day on ctrl or command +left + if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? + -$.datepicker._get(inst, 'stepBigMonths') : + -$.datepicker._get(inst, 'stepMonths')), 'M'); + // next month/year on alt +left on Mac + break; + case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D'); + handled = event.ctrlKey || event.metaKey; + break; // -1 week on ctrl or command +up + case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D'); + handled = event.ctrlKey || event.metaKey; + // +1 day on ctrl or command +right + if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? + +$.datepicker._get(inst, 'stepBigMonths') : + +$.datepicker._get(inst, 'stepMonths')), 'M'); + // next month/year on alt +right + break; + case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D'); + handled = event.ctrlKey || event.metaKey; + break; // +1 week on ctrl or command +down + default: handled = false; + } + else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home + $.datepicker._showDatepicker(this); + else { + handled = false; + } + if (handled) { + event.preventDefault(); + event.stopPropagation(); + } + }, + + /* Filter entered characters - based on date format. */ + _doKeyPress: function(event) { + var inst = $.datepicker._getInst(event.target); + if ($.datepicker._get(inst, 'constrainInput')) { + var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')); + var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode); + return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1); + } + }, + + /* Synchronise manual entry and field/alternate field. */ + _doKeyUp: function(event) { + var inst = $.datepicker._getInst(event.target); + if (inst.input.val() != inst.lastVal) { + try { + var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), + (inst.input ? inst.input.val() : null), + $.datepicker._getFormatConfig(inst)); + if (date) { // only if valid + $.datepicker._setDateFromField(inst); + $.datepicker._updateAlternate(inst); + $.datepicker._updateDatepicker(inst); + } + } + catch (event) { + $.datepicker.log(event); + } + } + return true; + }, + + /* Pop-up the date picker for a given input field. + If false returned from beforeShow event handler do not show. + @param input element - the input field attached to the date picker or + event - if triggered by focus */ + _showDatepicker: function(input) { + input = input.target || input; + if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger + input = $('input', input.parentNode)[0]; + if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here + return; + var inst = $.datepicker._getInst(input); + if ($.datepicker._curInst && $.datepicker._curInst != inst) { + if ( $.datepicker._datepickerShowing ) { + $.datepicker._triggerOnClose($.datepicker._curInst); + } + $.datepicker._curInst.dpDiv.stop(true, true); + } + var beforeShow = $.datepicker._get(inst, 'beforeShow'); + var beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {}; + if(beforeShowSettings === false){ + //false + return; + } + extendRemove(inst.settings, beforeShowSettings); + inst.lastVal = null; + $.datepicker._lastInput = input; + $.datepicker._setDateFromField(inst); + if ($.datepicker._inDialog) // hide cursor + input.value = ''; + if (!$.datepicker._pos) { // position below input + $.datepicker._pos = $.datepicker._findPos(input); + $.datepicker._pos[1] += input.offsetHeight; // add the height + } + var isFixed = false; + $(input).parents().each(function() { + isFixed |= $(this).css('position') == 'fixed'; + return !isFixed; + }); + if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled + $.datepicker._pos[0] -= document.documentElement.scrollLeft; + $.datepicker._pos[1] -= document.documentElement.scrollTop; + } + var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; + $.datepicker._pos = null; + //to avoid flashes on Firefox + inst.dpDiv.empty(); + // determine sizing offscreen + inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'}); + $.datepicker._updateDatepicker(inst); + // fix width for dynamic number of date pickers + // and adjust position before showing + offset = $.datepicker._checkOffset(inst, offset, isFixed); + inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? + 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none', + left: offset.left + 'px', top: offset.top + 'px'}); + if (!inst.inline) { + var showAnim = $.datepicker._get(inst, 'showAnim'); + var duration = $.datepicker._get(inst, 'duration'); + var postProcess = function() { + var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only + if( !! cover.length ){ + var borders = $.datepicker._getBorders(inst.dpDiv); + cover.css({left: -borders[0], top: -borders[1], + width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()}); + } + }; + inst.dpDiv.zIndex($(input).zIndex()+1); + $.datepicker._datepickerShowing = true; + if ($.effects && $.effects[showAnim]) + inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); + else + inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess); + if (!showAnim || !duration) + postProcess(); + if (inst.input.is(':visible') && !inst.input.is(':disabled')) + inst.input.focus(); + $.datepicker._curInst = inst; + } + }, + + /* Generate the date picker content. */ + _updateDatepicker: function(inst) { + var self = this; + self.maxRows = 4; //Reset the max number of rows being displayed (see #7043) + var borders = $.datepicker._getBorders(inst.dpDiv); + instActive = inst; // for delegate hover events + inst.dpDiv.empty().append(this._generateHTML(inst)); + var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only + if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6 + cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()}) + } + inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover(); + var numMonths = this._getNumberOfMonths(inst); + var cols = numMonths[1]; + var width = 17; + inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width(''); + if (cols > 1) + inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em'); + inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') + + 'Class']('ui-datepicker-multi'); + inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') + + 'Class']('ui-datepicker-rtl'); + if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input && + // #6694 - don't focus the input if it's already focused + // this breaks the change event in IE + inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement) + inst.input.focus(); + // deffered render of the years select (to avoid flashes on Firefox) + if( inst.yearshtml ){ + var origyearshtml = inst.yearshtml; + setTimeout(function(){ + //assure that inst.yearshtml didn't change. + if( origyearshtml === inst.yearshtml && inst.yearshtml ){ + inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml); + } + origyearshtml = inst.yearshtml = null; + }, 0); + } + }, + + /* Retrieve the size of left and top borders for an element. + @param elem (jQuery object) the element of interest + @return (number[2]) the left and top borders */ + _getBorders: function(elem) { + var convert = function(value) { + return {thin: 1, medium: 2, thick: 3}[value] || value; + }; + return [parseFloat(convert(elem.css('border-left-width'))), + parseFloat(convert(elem.css('border-top-width')))]; + }, + + /* Check positioning to remain on screen. */ + _checkOffset: function(inst, offset, isFixed) { + var dpWidth = inst.dpDiv.outerWidth(); + var dpHeight = inst.dpDiv.outerHeight(); + var inputWidth = inst.input ? inst.input.outerWidth() : 0; + var inputHeight = inst.input ? inst.input.outerHeight() : 0; + var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft(); + var viewHeight = document.documentElement.clientHeight + $(document).scrollTop(); + + offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0); + offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0; + offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; + + // now check if datepicker is showing outside window viewport - move to a better place if so. + offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? + Math.abs(offset.left + dpWidth - viewWidth) : 0); + offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? + Math.abs(dpHeight + inputHeight) : 0); + + return offset; + }, + + /* Find an object's position on the screen. */ + _findPos: function(obj) { + var inst = this._getInst(obj); + var isRTL = this._get(inst, 'isRTL'); + while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) { + obj = obj[isRTL ? 'previousSibling' : 'nextSibling']; + } + var position = $(obj).offset(); + return [position.left, position.top]; + }, + + /* Trigger custom callback of onClose. */ + _triggerOnClose: function(inst) { + var onClose = this._get(inst, 'onClose'); + if (onClose) + onClose.apply((inst.input ? inst.input[0] : null), + [(inst.input ? inst.input.val() : ''), inst]); + }, + + /* Hide the date picker from view. + @param input element - the input field attached to the date picker */ + _hideDatepicker: function(input) { + var inst = this._curInst; + if (!inst || (input && inst != $.data(input, PROP_NAME))) + return; + if (this._datepickerShowing) { + var showAnim = this._get(inst, 'showAnim'); + var duration = this._get(inst, 'duration'); + var postProcess = function() { + $.datepicker._tidyDialog(inst); + this._curInst = null; + }; + if ($.effects && $.effects[showAnim]) + inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); + else + inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' : + (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess); + if (!showAnim) + postProcess(); + $.datepicker._triggerOnClose(inst); + this._datepickerShowing = false; + this._lastInput = null; + if (this._inDialog) { + this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' }); + if ($.blockUI) { + $.unblockUI(); + $('body').append(this.dpDiv); + } + } + this._inDialog = false; + } + }, + + /* Tidy up after a dialog display. */ + _tidyDialog: function(inst) { + inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar'); + }, + + /* Close date picker if clicked elsewhere. */ + _checkExternalClick: function(event) { + if (!$.datepicker._curInst) + return; + var $target = $(event.target); + if ($target[0].id != $.datepicker._mainDivId && + $target.parents('#' + $.datepicker._mainDivId).length == 0 && + !$target.hasClass($.datepicker.markerClassName) && + !$target.hasClass($.datepicker._triggerClass) && + $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI)) + $.datepicker._hideDatepicker(); + }, + + /* Adjust one of the date sub-fields. */ + _adjustDate: function(id, offset, period) { + var target = $(id); + var inst = this._getInst(target[0]); + if (this._isDisabledDatepicker(target[0])) { + return; + } + this._adjustInstDate(inst, offset + + (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning + period); + this._updateDatepicker(inst); + }, + + /* Action for current link. */ + _gotoToday: function(id) { + var target = $(id); + var inst = this._getInst(target[0]); + if (this._get(inst, 'gotoCurrent') && inst.currentDay) { + inst.selectedDay = inst.currentDay; + inst.drawMonth = inst.selectedMonth = inst.currentMonth; + inst.drawYear = inst.selectedYear = inst.currentYear; + } + else { + var date = new Date(); + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + } + this._notifyChange(inst); + this._adjustDate(target); + }, + + /* Action for selecting a new month/year. */ + _selectMonthYear: function(id, select, period) { + var target = $(id); + var inst = this._getInst(target[0]); + inst['selected' + (period == 'M' ? 'Month' : 'Year')] = + inst['draw' + (period == 'M' ? 'Month' : 'Year')] = + parseInt(select.options[select.selectedIndex].value,10); + this._notifyChange(inst); + this._adjustDate(target); + }, + + /* Action for selecting a day. */ + _selectDay: function(id, month, year, td) { + var target = $(id); + if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { + return; + } + var inst = this._getInst(target[0]); + inst.selectedDay = inst.currentDay = $('a', td).html(); + inst.selectedMonth = inst.currentMonth = month; + inst.selectedYear = inst.currentYear = year; + this._selectDate(id, this._formatDate(inst, + inst.currentDay, inst.currentMonth, inst.currentYear)); + }, + + /* Erase the input field and hide the date picker. */ + _clearDate: function(id) { + var target = $(id); + var inst = this._getInst(target[0]); + this._selectDate(target, ''); + }, + + /* Update the input field with the selected date. */ + _selectDate: function(id, dateStr) { + var target = $(id); + var inst = this._getInst(target[0]); + dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); + if (inst.input) + inst.input.val(dateStr); + this._updateAlternate(inst); + var onSelect = this._get(inst, 'onSelect'); + if (onSelect) + onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback + else if (inst.input) + inst.input.trigger('change'); // fire the change event + if (inst.inline) + this._updateDatepicker(inst); + else { + this._hideDatepicker(); + this._lastInput = inst.input[0]; + if (typeof(inst.input[0]) != 'object') + inst.input.focus(); // restore focus + this._lastInput = null; + } + }, + + /* Update any alternate field to synchronise with the main field. */ + _updateAlternate: function(inst) { + var altField = this._get(inst, 'altField'); + if (altField) { // update alternate field too + var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat'); + var date = this._getDate(inst); + var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); + $(altField).each(function() { $(this).val(dateStr); }); + } + }, + + /* Set as beforeShowDay function to prevent selection of weekends. + @param date Date - the date to customise + @return [boolean, string] - is this date selectable?, what is its CSS class? */ + noWeekends: function(date) { + var day = date.getDay(); + return [(day > 0 && day < 6), '']; + }, + + /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. + @param date Date - the date to get the week for + @return number - the number of the week within the year that contains this date */ + iso8601Week: function(date) { + var checkDate = new Date(date.getTime()); + // Find Thursday of this week starting on Monday + checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); + var time = checkDate.getTime(); + checkDate.setMonth(0); // Compare with Jan 1 + checkDate.setDate(1); + return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; + }, + + /* Parse a string value into a date object. + See formatDate below for the possible formats. + + @param format string - the expected format of the date + @param value string - the date in the above format + @param settings Object - attributes include: + shortYearCutoff number - the cutoff year for determining the century (optional) + dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) + dayNames string[7] - names of the days from Sunday (optional) + monthNamesShort string[12] - abbreviated names of the months (optional) + monthNames string[12] - names of the months (optional) + @return Date - the extracted date value or null if value is blank */ + parseDate: function (format, value, settings) { + if (format == null || value == null) + throw 'Invalid arguments'; + value = (typeof value == 'object' ? value.toString() : value + ''); + if (value == '') + return null; + var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff; + shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : + new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); + var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; + var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; + var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; + var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; + var year = -1; + var month = -1; + var day = -1; + var doy = -1; + var literal = false; + // Check whether a format character is doubled + var lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); + if (matches) + iFormat++; + return matches; + }; + // Extract a number from the string value + var getNumber = function(match) { + var isDoubled = lookAhead(match); + var size = (match == '@' ? 14 : (match == '!' ? 20 : + (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2)))); + var digits = new RegExp('^\\d{1,' + size + '}'); + var num = value.substring(iValue).match(digits); + if (!num) + throw 'Missing number at position ' + iValue; + iValue += num[0].length; + return parseInt(num[0], 10); + }; + // Extract a name from the string value and convert to an index + var getName = function(match, shortNames, longNames) { + var names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) { + return [ [k, v] ]; + }).sort(function (a, b) { + return -(a[1].length - b[1].length); + }); + var index = -1; + $.each(names, function (i, pair) { + var name = pair[1]; + if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) { + index = pair[0]; + iValue += name.length; + return false; + } + }); + if (index != -1) + return index + 1; + else + throw 'Unknown name at position ' + iValue; + }; + // Confirm that a literal character matches the string value + var checkLiteral = function() { + if (value.charAt(iValue) != format.charAt(iFormat)) + throw 'Unexpected literal at position ' + iValue; + iValue++; + }; + var iValue = 0; + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) + if (format.charAt(iFormat) == "'" && !lookAhead("'")) + literal = false; + else + checkLiteral(); + else + switch (format.charAt(iFormat)) { + case 'd': + day = getNumber('d'); + break; + case 'D': + getName('D', dayNamesShort, dayNames); + break; + case 'o': + doy = getNumber('o'); + break; + case 'm': + month = getNumber('m'); + break; + case 'M': + month = getName('M', monthNamesShort, monthNames); + break; + case 'y': + year = getNumber('y'); + break; + case '@': + var date = new Date(getNumber('@')); + year = date.getFullYear(); + month = date.getMonth() + 1; + day = date.getDate(); + break; + case '!': + var date = new Date((getNumber('!') - this._ticksTo1970) / 10000); + year = date.getFullYear(); + month = date.getMonth() + 1; + day = date.getDate(); + break; + case "'": + if (lookAhead("'")) + checkLiteral(); + else + literal = true; + break; + default: + checkLiteral(); + } + } + if (iValue < value.length){ + throw "Extra/unparsed characters found in date: " + value.substring(iValue); + } + if (year == -1) + year = new Date().getFullYear(); + else if (year < 100) + year += new Date().getFullYear() - new Date().getFullYear() % 100 + + (year <= shortYearCutoff ? 0 : -100); + if (doy > -1) { + month = 1; + day = doy; + do { + var dim = this._getDaysInMonth(year, month - 1); + if (day <= dim) + break; + month++; + day -= dim; + } while (true); + } + var date = this._daylightSavingAdjust(new Date(year, month - 1, day)); + if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day) + throw 'Invalid date'; // E.g. 31/02/00 + return date; + }, + + /* Standard date formats. */ + ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601) + 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', // RFC 822 + TICKS: '!', + TIMESTAMP: '@', + W3C: 'yy-mm-dd', // ISO 8601 + + _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), + + /* Format a date object into a string value. + The format can be combinations of the following: + d - day of month (no leading zero) + dd - day of month (two digit) + o - day of year (no leading zeros) + oo - day of year (three digit) + D - day name short + DD - day name long + m - month of year (no leading zero) + mm - month of year (two digit) + M - month name short + MM - month name long + y - year (two digit) + yy - year (four digit) + @ - Unix timestamp (ms since 01/01/1970) + ! - Windows ticks (100ns since 01/01/0001) + '...' - literal text + '' - single quote + + @param format string - the desired format of the date + @param date Date - the date value to format + @param settings Object - attributes include: + dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) + dayNames string[7] - names of the days from Sunday (optional) + monthNamesShort string[12] - abbreviated names of the months (optional) + monthNames string[12] - names of the months (optional) + @return string - the date in the above format */ + formatDate: function (format, date, settings) { + if (!date) + return ''; + var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; + var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; + var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; + var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; + // Check whether a format character is doubled + var lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); + if (matches) + iFormat++; + return matches; + }; + // Format a number, with leading zero if necessary + var formatNumber = function(match, value, len) { + var num = '' + value; + if (lookAhead(match)) + while (num.length < len) + num = '0' + num; + return num; + }; + // Format a name, short or long as requested + var formatName = function(match, value, shortNames, longNames) { + return (lookAhead(match) ? longNames[value] : shortNames[value]); + }; + var output = ''; + var literal = false; + if (date) + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) + if (format.charAt(iFormat) == "'" && !lookAhead("'")) + literal = false; + else + output += format.charAt(iFormat); + else + switch (format.charAt(iFormat)) { + case 'd': + output += formatNumber('d', date.getDate(), 2); + break; + case 'D': + output += formatName('D', date.getDay(), dayNamesShort, dayNames); + break; + case 'o': + output += formatNumber('o', + Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3); + break; + case 'm': + output += formatNumber('m', date.getMonth() + 1, 2); + break; + case 'M': + output += formatName('M', date.getMonth(), monthNamesShort, monthNames); + break; + case 'y': + output += (lookAhead('y') ? date.getFullYear() : + (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100); + break; + case '@': + output += date.getTime(); + break; + case '!': + output += date.getTime() * 10000 + this._ticksTo1970; + break; + case "'": + if (lookAhead("'")) + output += "'"; + else + literal = true; + break; + default: + output += format.charAt(iFormat); + } + } + return output; + }, + + /* Extract all possible characters from the date format. */ + _possibleChars: function (format) { + var chars = ''; + var literal = false; + // Check whether a format character is doubled + var lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); + if (matches) + iFormat++; + return matches; + }; + for (var iFormat = 0; iFormat < format.length; iFormat++) + if (literal) + if (format.charAt(iFormat) == "'" && !lookAhead("'")) + literal = false; + else + chars += format.charAt(iFormat); + else + switch (format.charAt(iFormat)) { + case 'd': case 'm': case 'y': case '@': + chars += '0123456789'; + break; + case 'D': case 'M': + return null; // Accept anything + case "'": + if (lookAhead("'")) + chars += "'"; + else + literal = true; + break; + default: + chars += format.charAt(iFormat); + } + return chars; + }, + + /* Get a setting value, defaulting if necessary. */ + _get: function(inst, name) { + return inst.settings[name] !== undefined ? + inst.settings[name] : this._defaults[name]; + }, + + /* Parse existing date and initialise date picker. */ + _setDateFromField: function(inst, noDefault) { + if (inst.input.val() == inst.lastVal) { + return; + } + var dateFormat = this._get(inst, 'dateFormat'); + var dates = inst.lastVal = inst.input ? inst.input.val() : null; + var date, defaultDate; + date = defaultDate = this._getDefaultDate(inst); + var settings = this._getFormatConfig(inst); + try { + date = this.parseDate(dateFormat, dates, settings) || defaultDate; + } catch (event) { + this.log(event); + dates = (noDefault ? '' : dates); + } + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + inst.currentDay = (dates ? date.getDate() : 0); + inst.currentMonth = (dates ? date.getMonth() : 0); + inst.currentYear = (dates ? date.getFullYear() : 0); + this._adjustInstDate(inst); + }, + + /* Retrieve the default date shown on opening. */ + _getDefaultDate: function(inst) { + return this._restrictMinMax(inst, + this._determineDate(inst, this._get(inst, 'defaultDate'), new Date())); + }, + + /* A date may be specified as an exact value or a relative one. */ + _determineDate: function(inst, date, defaultDate) { + var offsetNumeric = function(offset) { + var date = new Date(); + date.setDate(date.getDate() + offset); + return date; + }; + var offsetString = function(offset) { + try { + return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), + offset, $.datepicker._getFormatConfig(inst)); + } + catch (e) { + // Ignore + } + var date = (offset.toLowerCase().match(/^c/) ? + $.datepicker._getDate(inst) : null) || new Date(); + var year = date.getFullYear(); + var month = date.getMonth(); + var day = date.getDate(); + var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g; + var matches = pattern.exec(offset); + while (matches) { + switch (matches[2] || 'd') { + case 'd' : case 'D' : + day += parseInt(matches[1],10); break; + case 'w' : case 'W' : + day += parseInt(matches[1],10) * 7; break; + case 'm' : case 'M' : + month += parseInt(matches[1],10); + day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); + break; + case 'y': case 'Y' : + year += parseInt(matches[1],10); + day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); + break; + } + matches = pattern.exec(offset); + } + return new Date(year, month, day); + }; + var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) : + (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); + newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate); + if (newDate) { + newDate.setHours(0); + newDate.setMinutes(0); + newDate.setSeconds(0); + newDate.setMilliseconds(0); + } + return this._daylightSavingAdjust(newDate); + }, + + /* Handle switch to/from daylight saving. + Hours may be non-zero on daylight saving cut-over: + > 12 when midnight changeover, but then cannot generate + midnight datetime, so jump to 1AM, otherwise reset. + @param date (Date) the date to check + @return (Date) the corrected date */ + _daylightSavingAdjust: function(date) { + if (!date) return null; + date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); + return date; + }, + + /* Set the date(s) directly. */ + _setDate: function(inst, date, noChange) { + var clear = !date; + var origMonth = inst.selectedMonth; + var origYear = inst.selectedYear; + var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); + inst.selectedDay = inst.currentDay = newDate.getDate(); + inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); + inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); + if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange) + this._notifyChange(inst); + this._adjustInstDate(inst); + if (inst.input) { + inst.input.val(clear ? '' : this._formatDate(inst)); + } + }, + + /* Retrieve the date(s) directly. */ + _getDate: function(inst) { + var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null : + this._daylightSavingAdjust(new Date( + inst.currentYear, inst.currentMonth, inst.currentDay))); + return startDate; + }, + + /* Generate the HTML for the current state of the date picker. */ + _generateHTML: function(inst) { + var today = new Date(); + today = this._daylightSavingAdjust( + new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time + var isRTL = this._get(inst, 'isRTL'); + var showButtonPanel = this._get(inst, 'showButtonPanel'); + var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext'); + var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat'); + var numMonths = this._getNumberOfMonths(inst); + var showCurrentAtPos = this._get(inst, 'showCurrentAtPos'); + var stepMonths = this._get(inst, 'stepMonths'); + var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1); + var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : + new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + var drawMonth = inst.drawMonth - showCurrentAtPos; + var drawYear = inst.drawYear; + if (drawMonth < 0) { + drawMonth += 12; + drawYear--; + } + if (maxDate) { + var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), + maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); + maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); + while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { + drawMonth--; + if (drawMonth < 0) { + drawMonth = 11; + drawYear--; + } + } + } + inst.drawMonth = drawMonth; + inst.drawYear = drawYear; + var prevText = this._get(inst, 'prevText'); + prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, + this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), + this._getFormatConfig(inst))); + var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? + '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid + + '.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' + + ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' : + (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>')); + var nextText = this._get(inst, 'nextText'); + nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, + this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), + this._getFormatConfig(inst))); + var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? + '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid + + '.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' + + ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' : + (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>')); + var currentText = this._get(inst, 'currentText'); + var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today); + currentText = (!navigationAsDateFormat ? currentText : + this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); + var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid + + '.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : ''); + var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') + + (this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid + + '.datepicker._gotoToday(\'#' + inst.id + '\');"' + + '>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : ''; + var firstDay = parseInt(this._get(inst, 'firstDay'),10); + firstDay = (isNaN(firstDay) ? 0 : firstDay); + var showWeek = this._get(inst, 'showWeek'); + var dayNames = this._get(inst, 'dayNames'); + var dayNamesShort = this._get(inst, 'dayNamesShort'); + var dayNamesMin = this._get(inst, 'dayNamesMin'); + var monthNames = this._get(inst, 'monthNames'); + var monthNamesShort = this._get(inst, 'monthNamesShort'); + var beforeShowDay = this._get(inst, 'beforeShowDay'); + var showOtherMonths = this._get(inst, 'showOtherMonths'); + var selectOtherMonths = this._get(inst, 'selectOtherMonths'); + var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week; + var defaultDate = this._getDefaultDate(inst); + var html = ''; + for (var row = 0; row < numMonths[0]; row++) { + var group = ''; + this.maxRows = 4; + for (var col = 0; col < numMonths[1]; col++) { + var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); + var cornerClass = ' ui-corner-all'; + var calender = ''; + if (isMultiMonth) { + calender += '<div class="ui-datepicker-group'; + if (numMonths[1] > 1) + switch (col) { + case 0: calender += ' ui-datepicker-group-first'; + cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break; + case numMonths[1]-1: calender += ' ui-datepicker-group-last'; + cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break; + default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break; + } + calender += '">'; + } + calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' + + (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') + + (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') + + this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, + row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers + '</div><table class="ui-datepicker-calendar"><thead>' + + '<tr>'; + var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : ''); + for (var dow = 0; dow < 7; dow++) { // days of the week + var day = (dow + firstDay) % 7; + thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' + + '<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>'; + } + calender += thead + '</tr></thead><tbody>'; + var daysInMonth = this._getDaysInMonth(drawYear, drawMonth); + if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth) + inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); + var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; + var curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate + var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043) + this.maxRows = numRows; + var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); + for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows + calender += '<tr>'; + var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' + + this._get(inst, 'calculateWeek')(printDate) + '</td>'); + for (var dow = 0; dow < 7; dow++) { // create date picker days + var daySettings = (beforeShowDay ? + beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']); + var otherMonth = (printDate.getMonth() != drawMonth); + var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || + (minDate && printDate < minDate) || (maxDate && printDate > maxDate); + tbody += '<td class="' + + ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends + (otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months + ((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key + (defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ? + // or defaultDate is current printedDate and defaultDate is selectedDate + ' ' + this._dayOverClass : '') + // highlight selected day + (unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') + // highlight unselectable days + (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates + (printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day + (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different) + ((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title + (unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' + + inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + // actions + (otherMonth && !showOtherMonths ? ' ' : // display for other months + (unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' + + (printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') + + (printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day + (otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months + '" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date + printDate.setDate(printDate.getDate() + 1); + printDate = this._daylightSavingAdjust(printDate); + } + calender += tbody + '</tr>'; + } + drawMonth++; + if (drawMonth > 11) { + drawMonth = 0; + drawYear++; + } + calender += '</tbody></table>' + (isMultiMonth ? '</div>' + + ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : ''); + group += calender; + } + html += group; + } + html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ? + '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : ''); + inst._keyEvent = false; + return html; + }, + + /* Generate the month and year header. */ + _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, + secondary, monthNames, monthNamesShort) { + var changeMonth = this._get(inst, 'changeMonth'); + var changeYear = this._get(inst, 'changeYear'); + var showMonthAfterYear = this._get(inst, 'showMonthAfterYear'); + var html = '<div class="ui-datepicker-title">'; + var monthHtml = ''; + // month selection + if (secondary || !changeMonth) + monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>'; + else { + var inMinYear = (minDate && minDate.getFullYear() == drawYear); + var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear); + monthHtml += '<select class="ui-datepicker-month" ' + + 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' + + '>'; + for (var month = 0; month < 12; month++) { + if ((!inMinYear || month >= minDate.getMonth()) && + (!inMaxYear || month <= maxDate.getMonth())) + monthHtml += '<option value="' + month + '"' + + (month == drawMonth ? ' selected="selected"' : '') + + '>' + monthNamesShort[month] + '</option>'; + } + monthHtml += '</select>'; + } + if (!showMonthAfterYear) + html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : ''); + // year selection + if ( !inst.yearshtml ) { + inst.yearshtml = ''; + if (secondary || !changeYear) + html += '<span class="ui-datepicker-year">' + drawYear + '</span>'; + else { + // determine range of years to display + var years = this._get(inst, 'yearRange').split(':'); + var thisYear = new Date().getFullYear(); + var determineYear = function(value) { + var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) : + (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) : + parseInt(value, 10))); + return (isNaN(year) ? thisYear : year); + }; + var year = determineYear(years[0]); + var endYear = Math.max(year, determineYear(years[1] || '')); + year = (minDate ? Math.max(year, minDate.getFullYear()) : year); + endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); + inst.yearshtml += '<select class="ui-datepicker-year" ' + + 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' + + '>'; + for (; year <= endYear; year++) { + inst.yearshtml += '<option value="' + year + '"' + + (year == drawYear ? ' selected="selected"' : '') + + '>' + year + '</option>'; + } + inst.yearshtml += '</select>'; + + html += inst.yearshtml; + inst.yearshtml = null; + } + } + html += this._get(inst, 'yearSuffix'); + if (showMonthAfterYear) + html += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml; + html += '</div>'; // Close datepicker_header + return html; + }, + + /* Adjust one of the date sub-fields. */ + _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._restrictMinMax(inst, + this._daylightSavingAdjust(new Date(year, month, day))); + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + if (period == 'M' || period == 'Y') + this._notifyChange(inst); + }, + + /* Ensure a date is within any min/max bounds. */ + _restrictMinMax: function(inst, date) { + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + var newDate = (minDate && date < minDate ? minDate : date); + newDate = (maxDate && newDate > maxDate ? maxDate : newDate); + return newDate; + }, + + /* Notify change of month/year. */ + _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]); + }, + + /* Determine the number of months to show. */ + _getNumberOfMonths: function(inst) { + var numMonths = this._get(inst, 'numberOfMonths'); + return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths)); + }, + + /* Determine the current maximum date - ensure no time components are set. */ + _getMinMaxDate: function(inst, minMax) { + return this._determineDate(inst, this._get(inst, minMax + 'Date'), null); + }, + + /* Find the number of days in a given month. */ + _getDaysInMonth: function(year, month) { + return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); + }, + + /* Find the day of the week of the first of a month. */ + _getFirstDayOfMonth: function(year, month) { + return new Date(year, month, 1).getDay(); + }, + + /* Determines if we should allow a "next/prev" month display change. */ + _canAdjustMonth: function(inst, offset, curYear, curMonth) { + var numMonths = this._getNumberOfMonths(inst); + var date = this._daylightSavingAdjust(new Date(curYear, + curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); + if (offset < 0) + date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); + return this._isInRange(inst, date); + }, + + /* Is the given date in the accepted range? */ + _isInRange: function(inst, date) { + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + return ((!minDate || date.getTime() >= minDate.getTime()) && + (!maxDate || date.getTime() <= maxDate.getTime())); + }, + + /* Provide the configuration settings for formatting/parsing. */ + _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')}; + }, + + /* Format the given date for display. */ + _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)); + } +}); + +/* + * Bind hover events for datepicker elements. + * Done via delegate so the binding only occurs once in the lifetime of the parent div. + * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. + */ +function bindHover(dpDiv) { + var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a'; + return dpDiv.bind('mouseout', function(event) { + var elem = $( event.target ).closest( selector ); + if ( !elem.length ) { + return; + } + elem.removeClass( "ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover" ); + }) + .bind('mouseover', function(event) { + var elem = $( event.target ).closest( selector ); + if ($.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) || + !elem.length ) { + return; + } + elem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover'); + elem.addClass('ui-state-hover'); + if (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover'); + if (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover'); + }); +} + +/* jQuery extend now ignores nulls! */ +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; +}; + +/* Determine whether an object is an array. */ +function isArray(a) { + return (a && (($.browser.safari && typeof a == 'object' && a.length) || + (a.constructor && a.constructor.toString().match(/\Array\(\)/)))); +}; + +/* Invoke the datepicker functionality. + @param options string - a command, optionally followed by additional parameters or + Object - settings for attaching new datepicker functionality + @return jQuery object */ +$.fn.datepicker = function(options){ + + /* Verify an empty collection wasn't passed - Fixes #6976 */ + if ( !this.length ) { + return this; + } + + /* Initialise the date picker. */ + 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' || options == 'widget')) + 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(); // singleton instance +$.datepicker.initialized = false; +$.datepicker.uuid = new Date().getTime(); +$.datepicker.version = "1.8.16"; + +// Workaround for #4055 +// Add another global to avoid noConflict issues with inline event handlers +window['DP_jQuery_' + dpuuid] = $; + +})(jQuery); +/* + * jQuery UI Dialog 1.8.16 + * + * 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( $, undefined ) { + +var uiDialogClasses = + 'ui-dialog ' + + 'ui-widget ' + + 'ui-widget-content ' + + 'ui-corner-all ', + sizeRelatedOptions = { + buttons: true, + height: true, + maxHeight: true, + maxWidth: true, + minHeight: true, + minWidth: true, + width: true + }, + resizableRelatedOptions = { + maxHeight: true, + maxWidth: true, + minHeight: true, + minWidth: true + }, + // support for jQuery 1.3.2 - handle common attrFn methods for dialog + attrFn = $.attrFn || { + val: true, + css: true, + html: true, + text: true, + data: true, + width: true, + height: true, + offset: true, + click: true + }; + +$.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', + // ensure that the titlebar is never outside the document + using: function(pos) { + var topOffset = $(this).css(pos).offset().top; + if (topOffset < 0) { + $(this).css('top', pos.top - topOffset); + } + } + }, + resizable: true, + show: null, + stack: true, + title: '', + width: 300, + zIndex: 1000 + }, + + _create: function() { + this.originalTitle = this.element.attr('title'); + // #5742 - .attr() might return a DOMElement + if ( typeof this.originalTitle !== "string" ) { + this.originalTitle = ""; + } + + this.options.title = this.options.title || this.originalTitle; + var self = this, + options = self.options, + + title = options.title || ' ', + titleId = $.ui.dialog.getTitleId(self.element), + + uiDialog = (self.uiDialog = $('<div></div>')) + .appendTo(document.body) + .hide() + .addClass(uiDialogClasses + options.dialogClass) + .css({ + zIndex: options.zIndex + }) + // setting tabIndex makes the div focusable + // setting outline to 0 prevents a border on focus in Mozilla + .attr('tabIndex', -1).css('outline', 0).keydown(function(event) { + if (options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && + event.keyCode === $.ui.keyCode.ESCAPE) { + + self.close(event); + event.preventDefault(); + } + }) + .attr({ + role: 'dialog', + 'aria-labelledby': titleId + }) + .mousedown(function(event) { + self.moveToTop(false, event); + }), + + uiDialogContent = self.element + .show() + .removeAttr('title') + .addClass( + 'ui-dialog-content ' + + 'ui-widget-content') + .appendTo(uiDialog), + + uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>')) + .addClass( + 'ui-dialog-titlebar ' + + 'ui-widget-header ' + + 'ui-corner-all ' + + 'ui-helper-clearfix' + ) + .prependTo(uiDialog), + + uiDialogTitlebarClose = $('<a href="#"></a>') + .addClass( + 'ui-dialog-titlebar-close ' + + 'ui-corner-all' + ) + .attr('role', 'button') + .hover( + function() { + uiDialogTitlebarClose.addClass('ui-state-hover'); + }, + function() { + uiDialogTitlebarClose.removeClass('ui-state-hover'); + } + ) + .focus(function() { + uiDialogTitlebarClose.addClass('ui-state-focus'); + }) + .blur(function() { + uiDialogTitlebarClose.removeClass('ui-state-focus'); + }) + .click(function(event) { + self.close(event); + return false; + }) + .appendTo(uiDialogTitlebar), + + uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>')) + .addClass( + 'ui-icon ' + + 'ui-icon-closethick' + ) + .text(options.closeText) + .appendTo(uiDialogTitlebarClose), + + uiDialogTitle = $('<span></span>') + .addClass('ui-dialog-title') + .attr('id', titleId) + .html(title) + .prependTo(uiDialogTitlebar); + + //handling of deprecated beforeclose (vs beforeClose) option + //Ticket #4669 http://dev.jqueryui.com/ticket/4669 + //TODO: remove in 1.9pre + if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) { + options.beforeClose = options.beforeclose; + } + + uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection(); + + if (options.draggable && $.fn.draggable) { + self._makeDraggable(); + } + if (options.resizable && $.fn.resizable) { + self._makeResizable(); + } + + self._createButtons(options.buttons); + self._isOpen = false; + + if ($.fn.bgiframe) { + uiDialog.bgiframe(); + } + }, + + _init: function() { + if ( this.options.autoOpen ) { + this.open(); + } + }, + + destroy: function() { + var self = this; + + if (self.overlay) { + self.overlay.destroy(); + } + self.uiDialog.hide(); + self.element + .unbind('.dialog') + .removeData('dialog') + .removeClass('ui-dialog-content ui-widget-content') + .hide().appendTo('body'); + self.uiDialog.remove(); + + if (self.originalTitle) { + self.element.attr('title', self.originalTitle); + } + + return self; + }, + + widget: function() { + return this.uiDialog; + }, + + close: function(event) { + var self = this, + maxZ, thisZ; + + if (false === self._trigger('beforeClose', event)) { + return; + } + + if (self.overlay) { + self.overlay.destroy(); + } + self.uiDialog.unbind('keypress.ui-dialog'); + + self._isOpen = false; + + if (self.options.hide) { + self.uiDialog.hide(self.options.hide, function() { + self._trigger('close', event); + }); + } else { + self.uiDialog.hide(); + self._trigger('close', event); + } + + $.ui.dialog.overlay.resize(); + + // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) + if (self.options.modal) { + maxZ = 0; + $('.ui-dialog').each(function() { + if (this !== self.uiDialog[0]) { + thisZ = $(this).css('z-index'); + if(!isNaN(thisZ)) { + maxZ = Math.max(maxZ, thisZ); + } + } + }); + $.ui.dialog.maxZ = maxZ; + } + + return self; + }, + + isOpen: function() { + return this._isOpen; + }, + + // the force parameter allows us to move modal dialogs to their correct + // position on open + moveToTop: function(force, event) { + var self = this, + options = self.options, + saveScroll; + + if ((options.modal && !force) || + (!options.stack && !options.modal)) { + return self._trigger('focus', event); + } + + if (options.zIndex > $.ui.dialog.maxZ) { + $.ui.dialog.maxZ = options.zIndex; + } + if (self.overlay) { + $.ui.dialog.maxZ += 1; + self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ); + } + + //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed. + // http://ui.jquery.com/bugs/ticket/3193 + saveScroll = { scrollTop: self.element.scrollTop(), scrollLeft: self.element.scrollLeft() }; + $.ui.dialog.maxZ += 1; + self.uiDialog.css('z-index', $.ui.dialog.maxZ); + self.element.attr(saveScroll); + self._trigger('focus', event); + + return self; + }, + + open: function() { + if (this._isOpen) { return; } + + var self = this, + options = self.options, + uiDialog = self.uiDialog; + + self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null; + self._size(); + self._position(options.position); + uiDialog.show(options.show); + self.moveToTop(true); + + // prevent tabbing out of modal dialogs + if (options.modal) { + uiDialog.bind('keypress.ui-dialog', function(event) { + if (event.keyCode !== $.ui.keyCode.TAB) { + return; + } + + var tabbables = $(':tabbable', this), + first = tabbables.filter(':first'), + last = tabbables.filter(':last'); + + if (event.target === last[0] && !event.shiftKey) { + first.focus(1); + return false; + } else if (event.target === first[0] && event.shiftKey) { + last.focus(1); + return false; + } + }); + } + + // set focus to the first tabbable element in the content area or the first button + // if there are no tabbable elements, set focus on the dialog itself + $(self.element.find(':tabbable').get().concat( + uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat( + uiDialog.get()))).eq(0).focus(); + + self._isOpen = true; + self._trigger('open'); + + return self; + }, + + _createButtons: function(buttons) { + var self = this, + hasButtons = false, + uiDialogButtonPane = $('<div></div>') + .addClass( + 'ui-dialog-buttonpane ' + + 'ui-widget-content ' + + 'ui-helper-clearfix' + ), + uiButtonSet = $( "<div></div>" ) + .addClass( "ui-dialog-buttonset" ) + .appendTo( uiDialogButtonPane ); + + // if we already have a button pane, remove it + self.uiDialog.find('.ui-dialog-buttonpane').remove(); + + if (typeof buttons === 'object' && buttons !== null) { + $.each(buttons, function() { + return !(hasButtons = true); + }); + } + if (hasButtons) { + $.each(buttons, function(name, props) { + props = $.isFunction( props ) ? + { click: props, text: name } : + props; + var button = $('<button type="button"></button>') + .click(function() { + props.click.apply(self.element[0], arguments); + }) + .appendTo(uiButtonSet); + // can't use .attr( props, true ) with jQuery 1.3.2. + $.each( props, function( key, value ) { + if ( key === "click" ) { + return; + } + if ( key in attrFn ) { + button[ key ]( value ); + } else { + button.attr( key, value ); + } + }); + if ($.fn.button) { + button.button(); + } + }); + uiDialogButtonPane.appendTo(self.uiDialog); + } + }, + + _makeDraggable: function() { + var self = this, + options = self.options, + doc = $(document), + heightBeforeDrag; + + function filteredUi(ui) { + return { + position: ui.position, + offset: ui.offset + }; + } + + self.uiDialog.draggable({ + cancel: '.ui-dialog-content, .ui-dialog-titlebar-close', + handle: '.ui-dialog-titlebar', + containment: 'document', + start: function(event, ui) { + heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height(); + $(this).height($(this).height()).addClass("ui-dialog-dragging"); + self._trigger('dragStart', event, filteredUi(ui)); + }, + drag: function(event, ui) { + self._trigger('drag', event, filteredUi(ui)); + }, + stop: function(event, ui) { + options.position = [ui.position.left - doc.scrollLeft(), + ui.position.top - doc.scrollTop()]; + $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag); + self._trigger('dragStop', event, filteredUi(ui)); + $.ui.dialog.overlay.resize(); + } + }); + }, + + _makeResizable: function(handles) { + handles = (handles === undefined ? this.options.resizable : handles); + var self = this, + options = self.options, + // .ui-resizable has position: relative defined in the stylesheet + // but dialogs have to use absolute or fixed positioning + position = self.uiDialog.css('position'), + resizeHandles = (typeof handles === 'string' ? + handles : + 'n,e,s,w,se,sw,ne,nw' + ); + + function filteredUi(ui) { + return { + originalPosition: ui.originalPosition, + originalSize: ui.originalSize, + position: ui.position, + size: ui.size + }; + } + + self.uiDialog.resizable({ + cancel: '.ui-dialog-content', + containment: 'document', + alsoResize: self.element, + maxWidth: options.maxWidth, + maxHeight: options.maxHeight, + minWidth: options.minWidth, + minHeight: self._minHeight(), + handles: resizeHandles, + start: function(event, ui) { + $(this).addClass("ui-dialog-resizing"); + self._trigger('resizeStart', event, filteredUi(ui)); + }, + resize: function(event, ui) { + self._trigger('resize', event, filteredUi(ui)); + }, + stop: function(event, ui) { + $(this).removeClass("ui-dialog-resizing"); + options.height = $(this).height(); + options.width = $(this).width(); + self._trigger('resizeStop', event, filteredUi(ui)); + $.ui.dialog.overlay.resize(); + } + }) + .css('position', position) + .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se'); + }, + + _minHeight: function() { + var options = this.options; + + if (options.height === 'auto') { + return options.minHeight; + } else { + return Math.min(options.minHeight, options.height); + } + }, + + _position: function(position) { + var myAt = [], + offset = [0, 0], + isVisible; + + if (position) { + // deep extending converts arrays to objects in jQuery <= 1.3.2 :-( + // if (typeof position == 'string' || $.isArray(position)) { + // myAt = $.isArray(position) ? position : position.split(' '); + + if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) { + myAt = position.split ? position.split(' ') : [position[0], position[1]]; + if (myAt.length === 1) { + myAt[1] = myAt[0]; + } + + $.each(['left', 'top'], function(i, offsetPosition) { + if (+myAt[i] === myAt[i]) { + offset[i] = myAt[i]; + myAt[i] = offsetPosition; + } + }); + + position = { + my: myAt.join(" "), + at: myAt.join(" "), + offset: offset.join(" ") + }; + } + + position = $.extend({}, $.ui.dialog.prototype.options.position, position); + } else { + position = $.ui.dialog.prototype.options.position; + } + + // need to show the dialog to get the actual offset in the position plugin + isVisible = this.uiDialog.is(':visible'); + if (!isVisible) { + this.uiDialog.show(); + } + this.uiDialog + // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 + .css({ top: 0, left: 0 }) + .position($.extend({ of: window }, position)); + if (!isVisible) { + this.uiDialog.hide(); + } + }, + + _setOptions: function( options ) { + var self = this, + resizableOptions = {}, + resize = false; + + $.each( options, function( key, value ) { + self._setOption( key, value ); + + if ( key in sizeRelatedOptions ) { + resize = true; + } + if ( key in resizableRelatedOptions ) { + resizableOptions[ key ] = value; + } + }); + + if ( resize ) { + this._size(); + } + if ( this.uiDialog.is( ":data(resizable)" ) ) { + this.uiDialog.resizable( "option", resizableOptions ); + } + }, + + _setOption: function(key, value){ + var self = this, + uiDialog = self.uiDialog; + + switch (key) { + //handling of deprecated beforeclose (vs beforeClose) option + //Ticket #4669 http://dev.jqueryui.com/ticket/4669 + //TODO: remove in 1.9pre + case "beforeclose": + key = "beforeClose"; + break; + case "buttons": + self._createButtons(value); + break; + case "closeText": + // ensure that we always pass a string + self.uiDialogTitlebarCloseText.text("" + value); + break; + case "dialogClass": + uiDialog + .removeClass(self.options.dialogClass) + .addClass(uiDialogClasses + value); + break; + case "disabled": + if (value) { + uiDialog.addClass('ui-dialog-disabled'); + } else { + uiDialog.removeClass('ui-dialog-disabled'); + } + break; + case "draggable": + var isDraggable = uiDialog.is( ":data(draggable)" ); + if ( isDraggable && !value ) { + uiDialog.draggable( "destroy" ); + } + + if ( !isDraggable && value ) { + self._makeDraggable(); + } + break; + case "position": + self._position(value); + break; + case "resizable": + // currently resizable, becoming non-resizable + var isResizable = uiDialog.is( ":data(resizable)" ); + if (isResizable && !value) { + uiDialog.resizable('destroy'); + } + + // currently resizable, changing handles + if (isResizable && typeof value === 'string') { + uiDialog.resizable('option', 'handles', value); + } + + // currently non-resizable, becoming resizable + if (!isResizable && value !== false) { + self._makeResizable(value); + } + break; + case "title": + // convert whatever was passed in o a string, for html() to not throw up + $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || ' ')); + break; + } + + $.Widget.prototype._setOption.apply(self, arguments); + }, + + _size: function() { + /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content + * divs will both have width and height set, so we need to reset them + */ + var options = this.options, + nonContentHeight, + minContentHeight, + isVisible = this.uiDialog.is( ":visible" ); + + // reset content sizing + this.element.show().css({ + width: 'auto', + minHeight: 0, + height: 0 + }); + + if (options.minWidth > options.width) { + options.width = options.minWidth; + } + + // reset wrapper sizing + // determine the height of all the non-content elements + nonContentHeight = this.uiDialog.css({ + height: 'auto', + width: options.width + }) + .height(); + minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); + + if ( options.height === "auto" ) { + // only needed for IE6 support + if ( $.support.minHeight ) { + this.element.css({ + minHeight: minContentHeight, + height: "auto" + }); + } else { + this.uiDialog.show(); + var autoHeight = this.element.css( "height", "auto" ).height(); + if ( !isVisible ) { + this.uiDialog.hide(); + } + this.element.height( Math.max( autoHeight, minContentHeight ) ); + } + } else { + this.element.height( Math.max( options.height - nonContentHeight, 0 ) ); + } + + if (this.uiDialog.is(':data(resizable)')) { + this.uiDialog.resizable('option', 'minHeight', this._minHeight()); + } + } +}); + +$.extend($.ui.dialog, { + version: "1.8.16", + + uuid: 0, + maxZ: 0, + + getTitleId: function($el) { + var id = $el.attr('id'); + if (!id) { + this.uuid += 1; + id = this.uuid; + } + return 'ui-dialog-title-' + id; + }, + + overlay: function(dialog) { + this.$el = $.ui.dialog.overlay.create(dialog); + } +}); + +$.extend($.ui.dialog.overlay, { + instances: [], + // reuse old instances due to IE memory leak with alpha transparency (see #5185) + oldInstances: [], + maxZ: 0, + events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','), + function(event) { return event + '.dialog-overlay'; }).join(' '), + create: function(dialog) { + if (this.instances.length === 0) { + // prevent use of anchors and inputs + // we use a setTimeout in case the overlay is created from an + // event that we're going to be cancelling (see #2804) + setTimeout(function() { + // handle $(el).dialog().dialog('close') (see #4065) + if ($.ui.dialog.overlay.instances.length) { + $(document).bind($.ui.dialog.overlay.events, function(event) { + // stop events if the z-index of the target is < the z-index of the overlay + // we cannot return true when we don't want to cancel the event (#3523) + if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) { + return false; + } + }); + } + }, 1); + + // allow closing by pressing the escape key + $(document).bind('keydown.dialog-overlay', function(event) { + if (dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && + event.keyCode === $.ui.keyCode.ESCAPE) { + + dialog.close(event); + event.preventDefault(); + } + }); + + // handle window resize + $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize); + } + + var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay')) + .appendTo(document.body) + .css({ + width: this.width(), + height: this.height() + }); + + if ($.fn.bgiframe) { + $el.bgiframe(); + } + + this.instances.push($el); + return $el; + }, + + destroy: function($el) { + var indexOf = $.inArray($el, this.instances); + if (indexOf != -1){ + this.oldInstances.push(this.instances.splice(indexOf, 1)[0]); + } + + if (this.instances.length === 0) { + $([document, window]).unbind('.dialog-overlay'); + } + + $el.remove(); + + // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) + var maxZ = 0; + $.each(this.instances, function() { + maxZ = Math.max(maxZ, this.css('z-index')); + }); + this.maxZ = maxZ; + }, + + height: function() { + var scrollHeight, + offsetHeight; + // handle IE 6 + if ($.browser.msie && $.browser.version < 7) { + scrollHeight = Math.max( + document.documentElement.scrollHeight, + document.body.scrollHeight + ); + offsetHeight = Math.max( + document.documentElement.offsetHeight, + document.body.offsetHeight + ); + + if (scrollHeight < offsetHeight) { + return $(window).height() + 'px'; + } else { + return scrollHeight + 'px'; + } + // handle "good" browsers + } else { + return $(document).height() + 'px'; + } + }, + + width: function() { + var scrollWidth, + offsetWidth; + // handle IE + if ( $.browser.msie ) { + scrollWidth = Math.max( + document.documentElement.scrollWidth, + document.body.scrollWidth + ); + offsetWidth = Math.max( + document.documentElement.offsetWidth, + document.body.offsetWidth + ); + + if (scrollWidth < offsetWidth) { + return $(window).width() + 'px'; + } else { + return scrollWidth + 'px'; + } + // handle "good" browsers + } else { + return $(document).width() + 'px'; + } + }, + + resize: function() { + /* If the dialog is draggable and the user drags it past the + * right edge of the window, the document becomes wider so we + * need to stretch the overlay. If the user then drags the + * dialog back to the left, the document will become narrower, + * so we need to shrink the overlay to the appropriate size. + * This is handled by shrinking the overlay before setting it + * to the full document size. + */ + var $overlays = $([]); + $.each($.ui.dialog.overlay.instances, function() { + $overlays = $overlays.add(this); + }); + + $overlays.css({ + width: 0, + height: 0 + }).css({ + width: $.ui.dialog.overlay.width(), + height: $.ui.dialog.overlay.height() + }); + } +}); + +$.extend($.ui.dialog.overlay.prototype, { + destroy: function() { + $.ui.dialog.overlay.destroy(this.$el); + } +}); + +}(jQuery)); +/* + * jQuery UI Position 1.8.16 + * + * 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( $, undefined ) { + +$.ui = $.ui || {}; + +var horizontalPositions = /left|center|right/, + verticalPositions = /top|center|bottom/, + center = "center", + _position = $.fn.position, + _offset = $.fn.offset; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var target = $( options.of ), + targetElem = target[0], + collision = ( options.collision || "flip" ).split( " " ), + offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ], + targetWidth, + targetHeight, + basePosition; + + if ( targetElem.nodeType === 9 ) { + targetWidth = target.width(); + targetHeight = target.height(); + basePosition = { top: 0, left: 0 }; + // TODO: use $.isWindow() in 1.9 + } else if ( targetElem.setTimeout ) { + targetWidth = target.width(); + targetHeight = target.height(); + basePosition = { top: target.scrollTop(), left: target.scrollLeft() }; + } else if ( targetElem.preventDefault ) { + // force left top to allow flipping + options.at = "left top"; + targetWidth = targetHeight = 0; + basePosition = { top: options.of.pageY, left: options.of.pageX }; + } else { + targetWidth = target.outerWidth(); + targetHeight = target.outerHeight(); + basePosition = target.offset(); + } + + // force my and at to have valid horizontal and veritcal positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[this] || "" ).split( " " ); + if ( pos.length === 1) { + pos = horizontalPositions.test( pos[0] ) ? + pos.concat( [center] ) : + verticalPositions.test( pos[0] ) ? + [ center ].concat( pos ) : + [ center, center ]; + } + pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center; + pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center; + options[ this ] = pos; + }); + + // normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + // normalize offset option + offset[ 0 ] = parseInt( offset[0], 10 ) || 0; + if ( offset.length === 1 ) { + offset[ 1 ] = offset[ 0 ]; + } + offset[ 1 ] = parseInt( offset[1], 10 ) || 0; + + if ( options.at[0] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[0] === center ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[1] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[1] === center ) { + basePosition.top += targetHeight / 2; + } + + basePosition.left += offset[ 0 ]; + basePosition.top += offset[ 1 ]; + + return this.each(function() { + var elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0, + marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0, + collisionWidth = elemWidth + marginLeft + + ( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ), + collisionHeight = elemHeight + marginTop + + ( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ), + position = $.extend( {}, basePosition ), + collisionPosition; + + if ( options.my[0] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[0] === center ) { + position.left -= elemWidth / 2; + } + + if ( options.my[1] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[1] === center ) { + position.top -= elemHeight / 2; + } + + // prevent fractions (see #5280) + position.left = Math.round( position.left ); + position.top = Math.round( position.top ); + + collisionPosition = { + left: position.left - marginLeft, + top: position.top - marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[i] ] ) { + $.ui.position[ collision[i] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: offset, + my: options.my, + at: options.at + }); + } + }); + + if ( $.fn.bgiframe ) { + elem.bgiframe(); + } + elem.offset( $.extend( position, { using: options.using } ) ); + }); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var win = $( window ), + over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(); + position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left ); + }, + top: function( position, data ) { + var win = $( window ), + over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(); + position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top ); + } + }, + + flip: { + left: function( position, data ) { + if ( data.at[0] === center ) { + return; + } + var win = $( window ), + over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(), + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + -data.targetWidth, + offset = -2 * data.offset[ 0 ]; + position.left += data.collisionPosition.left < 0 ? + myOffset + atOffset + offset : + over > 0 ? + myOffset + atOffset + offset : + 0; + }, + top: function( position, data ) { + if ( data.at[1] === center ) { + return; + } + var win = $( window ), + over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(), + myOffset = data.my[ 1 ] === "top" ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + -data.targetHeight, + offset = -2 * data.offset[ 1 ]; + position.top += data.collisionPosition.top < 0 ? + myOffset + atOffset + offset : + over > 0 ? + myOffset + atOffset + offset : + 0; + } + } +}; + +// offset setter from jQuery 1.4 +if ( !$.offset.setOffset ) { + $.offset.setOffset = function( elem, options ) { + // set position first, in-case top/left are set even on static elem + if ( /static/.test( $.curCSS( elem, "position" ) ) ) { + elem.style.position = "relative"; + } + var curElem = $( elem ), + curOffset = curElem.offset(), + curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0, + curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0, + props = { + top: (options.top - curOffset.top) + curTop, + left: (options.left - curOffset.left) + curLeft + }; + + if ( 'using' in options ) { + options.using.call( elem, props ); + } else { + curElem.css( props ); + } + }; + + $.fn.offset = function( options ) { + var elem = this[ 0 ]; + if ( !elem || !elem.ownerDocument ) { return null; } + if ( options ) { + return this.each(function() { + $.offset.setOffset( this, options ); + }); + } + return _offset.call( this ); + }; +} + +}( jQuery )); +/* + * jQuery UI Progressbar 1.8.16 + * + * 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( $, undefined ) { + +$.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 = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" ) + .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(); + + $.Widget.prototype.destroy.apply( this, arguments ); + }, + + value: function( newValue ) { + if ( newValue === undefined ) { + return this._value(); + } + + this._setOption( "value", newValue ); + return this; + }, + + _setOption: function( key, value ) { + if ( key === "value" ) { + this.options.value = value; + this._refreshValue(); + if ( this._value() === this.options.max ) { + this._trigger( "complete" ); + } + } + + $.Widget.prototype._setOption.apply( this, arguments ); + }, + + _value: function() { + var val = this.options.value; + // normalize invalid value + if ( typeof val !== "number" ) { + val = 0; + } + return Math.min( this.options.max, Math.max( this.min, val ) ); + }, + + _percentage: function() { + return 100 * this._value() / this.options.max; + }, + + _refreshValue: function() { + var value = this.value(); + var percentage = this._percentage(); + + if ( this.oldValue !== value ) { + this.oldValue = value; + this._trigger( "change" ); + } + + this.valueDiv + .toggle( value > this.min ) + .toggleClass( "ui-corner-right", value === this.options.max ) + .width( percentage.toFixed(0) + "%" ); + this.element.attr( "aria-valuenow", value ); + } +}); + +$.extend( $.ui.progressbar, { + version: "1.8.16" +}); + +})( jQuery ); +/* + * jQuery UI Slider 1.8.16 + * + * 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, + existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ), + handle = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>", + handleCount = ( o.values && o.values.length ) || 1, + handles = []; + + 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" + + ( o.disabled ? " ui-slider-disabled ui-disabled" : "" ) ); + + this.range = $([]); + + if ( o.range ) { + if ( o.range === true ) { + 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] ]; + } + } + + this.range = $( "<div></div>" ) + .appendTo( this.element ) + .addClass( "ui-slider-range" + + // note: this isn't the most fittingly semantic framework class for this element, + // but worked best visually with a variety of themes + " ui-widget-header" + + ( ( o.range === "min" || o.range === "max" ) ? " ui-slider-range-" + o.range : "" ) ); + } + + for ( var i = existingHandles.length; i < handleCount; i += 1 ) { + handles.push( handle ); + } + + this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( self.element ) ); + + 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.propAttr( "disabled", true ); + this.element.addClass( "ui-disabled" ); + } else { + this.handles.propAttr( "disabled", false ); + 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.16" +}); + +}(jQuery)); +/* + * jQuery UI Tabs 1.8.16 + * + * 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( $, undefined ) { + +var tabId = 0, + listId = 0; + +function getNextTabId() { + return ++tabId; +} + +function getNextListId() { + return ++listId; +} + +$.widget( "ui.tabs", { + options: { + add: null, + ajaxOptions: null, + cache: false, + cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true } + collapsible: false, + disable: null, + disabled: [], + enable: null, + event: "click", + fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 } + idPrefix: "ui-tabs-", + load: null, + panelTemplate: "<div></div>", + remove: null, + select: null, + show: null, + spinner: "<em>Loading…</em>", + tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>" + }, + + _create: function() { + this._tabify( true ); + }, + + _setOption: function( key, value ) { + if ( key == "selected" ) { + if (this.options.collapsible && value == this.options.selected ) { + return; + } + this.select( value ); + } else { + this.options[ key ] = value; + this._tabify(); + } + }, + + _tabId: function( a ) { + return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) || + this.options.idPrefix + getNextTabId(); + }, + + _sanitizeSelector: function( hash ) { + // we need this because an id may contain a ":" + return hash.replace( /:/g, "\\:" ); + }, + + _cookie: function() { + var cookie = this.cookie || + ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() ); + return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) ); + }, + + _ui: function( tab, panel ) { + return { + tab: tab, + panel: panel, + index: this.anchors.index( tab ) + }; + }, + + _cleanup: function() { + // restore all former loading tabs labels + this.lis.filter( ".ui-state-processing" ) + .removeClass( "ui-state-processing" ) + .find( "span:data(label.tabs)" ) + .each(function() { + var el = $( this ); + el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" ); + }); + }, + + _tabify: function( init ) { + var self = this, + o = this.options, + fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash + + this.list = this.element.find( "ol,ul" ).eq( 0 ); + this.lis = $( " > li:has(a[href])", this.list ); + this.anchors = this.lis.map(function() { + return $( "a", this )[ 0 ]; + }); + this.panels = $( [] ); + + this.anchors.each(function( i, a ) { + var href = $( a ).attr( "href" ); + // For dynamically created HTML that contains a hash as href IE < 8 expands + // such href to the full page url with hash and then misinterprets tab as ajax. + // Same consideration applies for an added tab with a fragment identifier + // since a[href=#fragment-identifier] does unexpectedly not match. + // Thus normalize href attribute... + var hrefBase = href.split( "#" )[ 0 ], + baseEl; + if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] || + ( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) { + href = a.hash; + a.href = href; + } + + // inline tab + if ( fragmentId.test( href ) ) { + self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) ); + // remote tab + // prevent loading the page itself if href is just "#" + } else if ( href && href !== "#" ) { + // required for restore on destroy + $.data( a, "href.tabs", href ); + + // TODO until #3808 is fixed strip fragment identifier from url + // (IE fails to load from such url) + $.data( a, "load.tabs", href.replace( /#.*$/, "" ) ); + + var id = self._tabId( a ); + a.href = "#" + id; + var $panel = self.element.find( "#" + id ); + if ( !$panel.length ) { + $panel = $( o.panelTemplate ) + .attr( "id", id ) + .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) + .insertAfter( self.panels[ i - 1 ] || self.list ); + $panel.data( "destroy.tabs", true ); + } + self.panels = self.panels.add( $panel ); + // invalid tab href + } else { + o.disabled.push( i ); + } + }); + + // initialization from scratch + if ( init ) { + // attach necessary classes for styling + 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" ); + + // Selected tab + // use "selected" option or try to retrieve: + // 1. from fragment identifier in url + // 2. from cookie + // 3. from selected class attribute on <li> + if ( o.selected === undefined ) { + if ( location.hash ) { + this.anchors.each(function( i, a ) { + if ( a.hash == location.hash ) { + o.selected = i; + return false; + } + }); + } + if ( typeof o.selected !== "number" && o.cookie ) { + o.selected = parseInt( self._cookie(), 10 ); + } + if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) { + o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); + } + o.selected = o.selected || ( this.lis.length ? 0 : -1 ); + } else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release + o.selected = -1; + } + + // sanity check - default to first tab... + o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 ) + ? o.selected + : 0; + + // Take disabling tabs via class attribute from HTML + // into account and update option properly. + // A selected tab cannot become disabled. + o.disabled = $.unique( o.disabled.concat( + $.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) { + return self.lis.index( n ); + }) + ) ).sort(); + + if ( $.inArray( o.selected, o.disabled ) != -1 ) { + o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 ); + } + + // highlight selected tab + this.panels.addClass( "ui-tabs-hide" ); + this.lis.removeClass( "ui-tabs-selected ui-state-active" ); + // check for length avoids error when initializing empty list + if ( o.selected >= 0 && this.anchors.length ) { + self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" ); + this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" ); + + // seems to be expected behavior that the show callback is fired + self.element.queue( "tabs", function() { + self._trigger( "show", null, + self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) ); + }); + + this.load( o.selected ); + } + + // clean up to avoid memory leaks in certain versions of IE 6 + // TODO: namespace this event + $( window ).bind( "unload", function() { + self.lis.add( self.anchors ).unbind( ".tabs" ); + self.lis = self.anchors = self.panels = null; + }); + // update selected after add/remove + } else { + o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); + } + + // update collapsible + // TODO: use .toggleClass() + this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" ); + + // set or update cookie after init and add/remove respectively + if ( o.cookie ) { + this._cookie( o.selected, o.cookie ); + } + + // disable tabs + for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) { + $( li )[ $.inArray( i, o.disabled ) != -1 && + // TODO: use .toggleClass() + !$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" ); + } + + // reset cache if switching from cached to not cached + if ( o.cache === false ) { + this.anchors.removeData( "cache.tabs" ); + } + + // remove all handlers before, tabify may run on existing tabs after add or option change + this.lis.add( this.anchors ).unbind( ".tabs" ); + + if ( o.event !== "mouseover" ) { + var addState = function( state, el ) { + if ( el.is( ":not(.ui-state-disabled)" ) ) { + el.addClass( "ui-state-" + state ); + } + }; + var removeState = function( state, el ) { + el.removeClass( "ui-state-" + state ); + }; + this.lis.bind( "mouseover.tabs" , function() { + addState( "hover", $( this ) ); + }); + this.lis.bind( "mouseout.tabs", function() { + removeState( "hover", $( this ) ); + }); + this.anchors.bind( "focus.tabs", function() { + addState( "focus", $( this ).closest( "li" ) ); + }); + this.anchors.bind( "blur.tabs", function() { + removeState( "focus", $( this ).closest( "li" ) ); + }); + } + + // set up animations + var hideFx, showFx; + if ( o.fx ) { + if ( $.isArray( o.fx ) ) { + hideFx = o.fx[ 0 ]; + showFx = o.fx[ 1 ]; + } else { + hideFx = showFx = o.fx; + } + } + + // Reset certain styles left over from animation + // and prevent IE's ClearType bug... + function resetStyle( $el, fx ) { + $el.css( "display", "" ); + if ( !$.support.opacity && fx.opacity ) { + $el[ 0 ].style.removeAttribute( "filter" ); + } + } + + // Show a tab... + var showTab = showFx + ? function( clicked, $show ) { + $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); + $show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way + .animate( showFx, showFx.duration || "normal", function() { + resetStyle( $show, showFx ); + self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); + }); + } + : function( clicked, $show ) { + $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); + $show.removeClass( "ui-tabs-hide" ); + self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); + }; + + // Hide a tab, $show is optional... + var hideTab = hideFx + ? function( clicked, $hide ) { + $hide.animate( hideFx, hideFx.duration || "normal", function() { + self.lis.removeClass( "ui-tabs-selected ui-state-active" ); + $hide.addClass( "ui-tabs-hide" ); + resetStyle( $hide, hideFx ); + self.element.dequeue( "tabs" ); + }); + } + : function( clicked, $hide, $show ) { + self.lis.removeClass( "ui-tabs-selected ui-state-active" ); + $hide.addClass( "ui-tabs-hide" ); + self.element.dequeue( "tabs" ); + }; + + // attach tab event handler, unbind to avoid duplicates from former tabifying... + this.anchors.bind( o.event + ".tabs", function() { + var el = this, + $li = $(el).closest( "li" ), + $hide = self.panels.filter( ":not(.ui-tabs-hide)" ), + $show = self.element.find( self._sanitizeSelector( el.hash ) ); + + // If tab is already selected and not collapsible or tab disabled or + // or is already loading or click callback returns false stop here. + // Check if click handler returns false last so that it is not executed + // for a disabled or loading tab! + if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) || + $li.hasClass( "ui-state-disabled" ) || + $li.hasClass( "ui-state-processing" ) || + self.panels.filter( ":animated" ).length || + self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) { + this.blur(); + return false; + } + + o.selected = self.anchors.index( this ); + + self.abort(); + + // if tab may be closed + if ( o.collapsible ) { + if ( $li.hasClass( "ui-tabs-selected" ) ) { + o.selected = -1; + + if ( o.cookie ) { + self._cookie( o.selected, o.cookie ); + } + + self.element.queue( "tabs", function() { + hideTab( el, $hide ); + }).dequeue( "tabs" ); + + this.blur(); + return false; + } else if ( !$hide.length ) { + if ( o.cookie ) { + self._cookie( o.selected, o.cookie ); + } + + self.element.queue( "tabs", function() { + showTab( el, $show ); + }); + + // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171 + self.load( self.anchors.index( this ) ); + + this.blur(); + return false; + } + } + + if ( o.cookie ) { + self._cookie( o.selected, o.cookie ); + } + + // show new tab + if ( $show.length ) { + if ( $hide.length ) { + self.element.queue( "tabs", function() { + hideTab( el, $hide ); + }); + } + self.element.queue( "tabs", function() { + showTab( el, $show ); + }); + + self.load( self.anchors.index( this ) ); + } else { + throw "jQuery UI Tabs: Mismatching fragment identifier."; + } + + // Prevent IE from keeping other link focussed when using the back button + // and remove dotted border from clicked link. This is controlled via CSS + // in modern browsers; blur() removes focus from address bar in Firefox + // which can become a usability and annoying problem with tabs('rotate'). + if ( $.browser.msie ) { + this.blur(); + } + }); + + // disable click in any case + this.anchors.bind( "click.tabs", function(){ + return false; + }); + }, + + _getIndex: function( index ) { + // meta-function to give users option to provide a href string instead of a numerical index. + // also sanitizes numerical indexes to valid values. + if ( typeof index == "string" ) { + index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) ); + } + + return index; + }, + + destroy: function() { + var o = 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 href = $.data( this, "href.tabs" ); + if ( href ) { + this.href = href; + } + var $this = $( this ).unbind( ".tabs" ); + $.each( [ "href", "load", "cache" ], function( i, prefix ) { + $this.removeData( prefix + ".tabs" ); + }); + }); + + this.lis.unbind( ".tabs" ).add( this.panels ).each(function() { + if ( $.data( this, "destroy.tabs" ) ) { + $( this ).remove(); + } else { + $( 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" + ].join( " " ) ); + } + }); + + if ( o.cookie ) { + this._cookie( null, o.cookie ); + } + + return this; + }, + + add: function( url, label, index ) { + if ( index === undefined ) { + index = this.anchors.length; + } + + var self = this, + o = this.options, + $li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ), + id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] ); + + $li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true ); + + // try to find an existing element before creating a new one + var $panel = self.element.find( "#" + id ); + if ( !$panel.length ) { + $panel = $( o.panelTemplate ) + .attr( "id", id ) + .data( "destroy.tabs", true ); + } + $panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" ); + + if ( index >= this.lis.length ) { + $li.appendTo( this.list ); + $panel.appendTo( this.list[ 0 ].parentNode ); + } else { + $li.insertBefore( this.lis[ index ] ); + $panel.insertBefore( this.panels[ index ] ); + } + + o.disabled = $.map( o.disabled, function( n, i ) { + return n >= index ? ++n : n; + }); + + this._tabify(); + + if ( this.anchors.length == 1 ) { + o.selected = 0; + $li.addClass( "ui-tabs-selected ui-state-active" ); + $panel.removeClass( "ui-tabs-hide" ); + this.element.queue( "tabs", function() { + self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) ); + }); + + this.load( 0 ); + } + + this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + return this; + }, + + remove: function( index ) { + index = this._getIndex( index ); + var o = this.options, + $li = this.lis.eq( index ).remove(), + $panel = this.panels.eq( index ).remove(); + + // If selected tab was removed focus tab to the right or + // in case the last tab was removed the tab to the left. + if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) { + this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) ); + } + + o.disabled = $.map( + $.grep( o.disabled, function(n, i) { + return n != index; + }), + function( n, i ) { + return n >= index ? --n : n; + }); + + this._tabify(); + + this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) ); + return this; + }, + + enable: function( index ) { + index = this._getIndex( index ); + var o = this.options; + if ( $.inArray( index, o.disabled ) == -1 ) { + return; + } + + this.lis.eq( index ).removeClass( "ui-state-disabled" ); + o.disabled = $.grep( o.disabled, function( n, i ) { + return n != index; + }); + + this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + return this; + }, + + disable: function( index ) { + index = this._getIndex( index ); + var self = this, o = this.options; + // cannot disable already selected tab + if ( index != o.selected ) { + this.lis.eq( index ).addClass( "ui-state-disabled" ); + + o.disabled.push( index ); + o.disabled.sort(); + + this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + } + + return this; + }, + + select: function( index ) { + index = this._getIndex( index ); + if ( index == -1 ) { + if ( this.options.collapsible && this.options.selected != -1 ) { + index = this.options.selected; + } else { + return this; + } + } + this.anchors.eq( index ).trigger( this.options.event + ".tabs" ); + return this; + }, + + load: function( index ) { + index = this._getIndex( index ); + var self = this, + o = this.options, + a = this.anchors.eq( index )[ 0 ], + url = $.data( a, "load.tabs" ); + + this.abort(); + + // not remote or from cache + if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) { + this.element.dequeue( "tabs" ); + return; + } + + // load remote from here on + this.lis.eq( index ).addClass( "ui-state-processing" ); + + if ( o.spinner ) { + var span = $( "span", a ); + span.data( "label.tabs", span.html() ).html( o.spinner ); + } + + this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, { + url: url, + success: function( r, s ) { + self.element.find( self._sanitizeSelector( a.hash ) ).html( r ); + + // take care of tab labels + self._cleanup(); + + if ( o.cache ) { + $.data( a, "cache.tabs", true ); + } + + self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); + try { + o.ajaxOptions.success( r, s ); + } + catch ( e ) {} + }, + error: function( xhr, s, e ) { + // take care of tab labels + self._cleanup(); + + self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); + try { + // Passing index avoid a race condition when this method is + // called after the user has selected another tab. + // Pass the anchor that initiated this request allows + // loadError to manipulate the tab content panel via $(a.hash) + o.ajaxOptions.error( xhr, s, index, a ); + } + catch ( e ) {} + } + } ) ); + + // last, so that load event is fired before show... + self.element.dequeue( "tabs" ); + + return this; + }, + + abort: function() { + // stop possibly running animations + this.element.queue( [] ); + this.panels.stop( false, true ); + + // "tabs" queue must not contain more than two elements, + // which are the callbacks for the latest clicked tab... + this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) ); + + // terminate pending requests from other tabs + if ( this.xhr ) { + this.xhr.abort(); + delete this.xhr; + } + + // take care of tab labels + this._cleanup(); + return this; + }, + + url: function( index, url ) { + this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url ); + return this; + }, + + length: function() { + return this.anchors.length; + } +}); + +$.extend( $.ui.tabs, { + version: "1.8.16" +}); + +/* + * Tabs Extensions + */ + +/* + * Rotate + */ +$.extend( $.ui.tabs.prototype, { + rotation: null, + rotate: function( ms, continuing ) { + var self = this, + o = this.options; + + var rotate = self._rotate || ( self._rotate = function( e ) { + clearTimeout( self.rotation ); + self.rotation = setTimeout(function() { + var t = o.selected; + self.select( ++t < self.anchors.length ? t : 0 ); + }, ms ); + + if ( e ) { + e.stopPropagation(); + } + }); + + var stop = self._unrotate || ( self._unrotate = !continuing + ? function(e) { + if (e.clientX) { // in case of a true click + self.rotate(null); + } + } + : function( e ) { + t = o.selected; + rotate(); + }); + + // start rotation + if ( ms ) { + this.element.bind( "tabsshow", rotate ); + this.anchors.bind( o.event + ".tabs", stop ); + rotate(); + // stop rotation + } else { + clearTimeout( self.rotation ); + this.element.unbind( "tabsshow", rotate ); + this.anchors.unbind( o.event + ".tabs", stop ); + delete this._rotate; + delete this._unrotate; + } + + return this; + } +}); + +})( jQuery ); diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js new file mode 100644 index 00000000..14c9064f --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js @@ -0,0 +1,791 @@ +/*! + * jQuery UI 1.8.16 + * + * 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.16", +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({propAttr:c.fn.prop||c.fn.attr,_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;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&& +c.ui.isOverAxis(b,e,i)}})}})(jQuery); +;/*! + * jQuery UI Widget 1.8.16 + * + * 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(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=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(){try{b(this).triggerHandler("remove")}catch(d){}});return l.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(true,{},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.charAt(0)==="_")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!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():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){b.data(c,this.widgetName,this);this.element=b(c);this.options= +b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.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(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_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); +;/*! + * jQuery UI Mouse 1.8.16 + * + * 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/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+ +this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.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}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&& +!(document.documentMode>=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.16 + * + * 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.16 + * + * 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;if(b.iframeFix)d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').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.left<g[0])e=g[0]+this.offset.click.left; +if(a.pageY-this.offset.click.top<g[1])h=g[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>g[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.top<g[1]||h-this.offset.click.top>g[3])?h:!(h-this.offset.click.top<g[1])?h-b.grid[1]:h+b.grid[1]:h;e=b.grid[0]?this.originalPageX+Math.round((e-this.originalPageX)/ +b.grid[0])*b.grid[0]:this.originalPageX;e=g?!(e-this.offset.click.left<g[0]||e-this.offset.click.left>g[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.16"});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<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left< +c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()- +c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this, +width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,h=b.offset.left,g=h+c.helperProportions.width,n=b.offset.top,o=n+c.helperProportions.height,i=c.snapElements.length-1;i>=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<h&&h<l+e&&k-e<n&&n<m+e||j-e<h&&h<l+e&&k-e<o&&o<m+e||j-e<g&&g<l+e&&k-e<n&&n<m+e||j-e<g&&g<l+e&&k-e<o&& +o<m+e){if(f.snapMode!="inner"){var p=Math.abs(k-o)<=e,q=Math.abs(m-n)<=e,r=Math.abs(j-g)<=e,s=Math.abs(l-h)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l}).left-c.margins.left}var t= +p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(k-n)<=e;q=Math.abs(m-o)<=e;r=Math.abs(j-h)<=e;s=Math.abs(l-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[i].snapping&& +(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=p||q||r||s||t}else{c.snapElements[i].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"), +10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery); +;/* + * jQuery UI Droppable 1.8.16 + * + * 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/Droppables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.mouse.js + * jquery.ui.draggable.js + */ +(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this); +a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&& +this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass); +this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g= +d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop", +a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.16"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height; +switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>= +i&&e<=k||g>=i&&g<=k||e<i&&g>k);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<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!= +"none";if(c[f].visible){e=="mousedown"&&c[f]._activate.call(c[f],b);c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight}}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem|| +a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},dragStart:function(a,b){a.element.parents(":not(body,html)").bind("scroll.droppable",function(){a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)})},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance); +if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})},dragStop:function(a,b){a.element.parents(":not(body,html)").unbind("scroll.droppable"); +a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)}}})(jQuery); +;/* + * jQuery UI Resizable 1.8.16 + * + * 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/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element, +_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').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<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/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(c<a.maxWidth)a.maxWidth=c;if(f<a.maxHeight)a.maxHeight=f}this._vBoundaries=a},_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,d=this.axis;if(k(b.height))b.width=b.height*this.aspectRatio;else if(k(b.width))b.height=b.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._vBoundaries,c=this.axis,d=k(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=k(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=k(b.width)&&a.minWidth&& +a.minWidth>b.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<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)|| +0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');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.16"});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.16 + * + * 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("<div class='ui-selectable-helper'></div>")},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.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting"); +a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&& +!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d= +e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.16"})})(jQuery); +;/* + * jQuery UI Sortable 1.8.16 + * + * 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/Sortables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",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<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top< +b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()- +b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this, +a)}this.positionAbs=this._convertPositionTo("absolute");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";for(b=this.items.length-1;b>=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+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers|| +this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection(); +var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)}, +_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"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<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element), +this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=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<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&& +this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=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)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b= +this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width== +""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());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.currentItem.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.currentItem.css("marginLeft"), +10)||0,top:parseInt(this.currentItem.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)){var b=d(a.containment)[0];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]}},_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,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&& +this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?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,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset(); +var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>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.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g- +this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0], +this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]= +"";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove", +f,this._uiHash())});for(e=this.containers.length-1;e>=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<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()}, +_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.16"})})(jQuery); +;/* + * jQuery UI Accordion 1.8.16 + * + * 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 + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(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,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("<span></span>").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.16", +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.16 + * + * 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.propAttr("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("<ul></ul>").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<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close(); +this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label|| +b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new d.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this; +d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").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()<this.element[d.fn.prop?"prop":"attr"]("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery); +;/* + * jQuery UI Button 1.8.16 + * + * 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 + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(b){var h,i,j,g,l=function(){var a=b(this).find(":ui-button");setTimeout(function(){a.button("refresh")},1)},k=function(a){var c=a.name,e=a.form,f=b([]);if(c)f=e?b(e).find("[name='"+c+"']"):b("[name='"+c+"']",a.ownerDocument).filter(function(){return!this.form});return f};b.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",l);if(typeof this.options.disabled!== +"boolean")this.options.disabled=this.element.propAttr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var a=this,c=this.options,e=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!e?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){b(this).addClass("ui-state-hover"); +this===h&&b(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||b(this).removeClass(f)}).bind("click.button",function(d){if(c.disabled){d.preventDefault();d.stopImmediatePropagation()}});this.element.bind("focus.button",function(){a.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){a.buttonElement.removeClass("ui-state-focus")});if(e){this.element.bind("change.button",function(){g||a.refresh()});this.buttonElement.bind("mousedown.button",function(d){if(!c.disabled){g= +false;i=d.pageX;j=d.pageY}}).bind("mouseup.button",function(d){if(!c.disabled)if(i!==d.pageX||j!==d.pageY)g=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).toggleClass("ui-state-active");a.buttonElement.attr("aria-pressed",a.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).addClass("ui-state-active");a.buttonElement.attr("aria-pressed","true"); +var d=a.element[0];k(d).not(d).map(function(){return b(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;b(this).addClass("ui-state-active");h=this;b(document).one("mouseup",function(){h=null})}).bind("mouseup.button",function(){if(c.disabled)return false;b(this).removeClass("ui-state-active")}).bind("keydown.button",function(d){if(c.disabled)return false;if(d.keyCode==b.ui.keyCode.SPACE|| +d.keyCode==b.ui.keyCode.ENTER)b(this).addClass("ui-state-active")}).bind("keyup.button",function(){b(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(d){d.keyCode===b.ui.keyCode.SPACE&&b(this).click()})}this._setOption("disabled",c.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type=== +"radio"){var a=this.element.parents().filter(":last"),c="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(c);if(!this.buttonElement.length){a=a.length?a.siblings():this.element.siblings();this.buttonElement=a.filter(c);if(!this.buttonElement.length)this.buttonElement=a.find(c)}this.element.addClass("ui-helper-hidden-accessible");(a=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",a)}else this.buttonElement=this.element}, +widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||this.buttonElement.removeAttr("title"); +b.Widget.prototype.destroy.call(this)},_setOption:function(a,c){b.Widget.prototype._setOption.apply(this,arguments);if(a==="disabled")c?this.element.propAttr("disabled",true):this.element.propAttr("disabled",false);else this._resetButton()},refresh:function(){var a=this.element.is(":disabled");a!==this.options.disabled&&this._setOption("disabled",a);if(this.type==="radio")k(this.element[0]).each(function(){b(this).is(":checked")?b(this).button("widget").addClass("ui-state-active").attr("aria-pressed", +"true"):b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var a=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"), +c=b("<span></span>").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("<span class='ui-button-icon-primary ui-icon "+e.primary+"'></span>");e.secondary&&a.append("<span class='ui-button-icon-secondary ui-icon "+e.secondary+"'></span>");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.16 + * + * 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("<div></div>")).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.isDefaultPrevented()&&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("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), +h=c('<a href="#"></a>').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("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").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.scrollTop(),scrollLeft:d.element.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("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").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('<button type="button"></button>').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.16",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()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&!d.isDefaultPrevented()&&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("<div></div>").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<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+ +"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery); +;/* + * jQuery UI Slider 1.8.16 + * + * 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(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,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];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?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){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]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>"); +this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.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(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(!a.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(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length? +(h=a.values(l)):(h=a.value());switch(g.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(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i- +m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._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(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.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(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false; +this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.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(a,g,c);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 f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c}); +a!==false&&this.value(c)}},_stop: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()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){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()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value= +this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a): +this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);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(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a]; +return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%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,f=!this._animateOff?b.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,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e- +g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.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,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"}, +b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery); +;/* + * jQuery UI Tabs 1.8.16 + * + * 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:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_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<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=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.16"});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<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&& +a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery); +;/* + * jQuery UI Datepicker 1.8.16 + * + * 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 + * + * Depends: + * jquery.ui.core.js + */ +(function(d,C){function M(){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,disabled:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=N(d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}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.16"}});var B=(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('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_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);b.settings.disabled&&this._disableDatepicker(a)}},_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('<span class="'+this._appendClass+'">'+c+"</span>");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("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==""?c:d("<img/>").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;g<f.length;g++)if(f[g].length>h){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.settings.disabled&&this._disableDatepicker(a);b.dpDiv.css("display","block")}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+= +1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');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<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"? +d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true),i=this._getMinMaxDate(e,"min"),g=this._getMinMaxDate(e,"max");H(e.settings,f);if(i!==null&&f.dateFormat!==C&&f.minDate===C)e.settings.minDate=this._formatDate(e,i);if(g!==null&&f.dateFormat!==C&&f.maxDate===C)e.settings.maxDate=this._formatDate(e,g);this._attachments(d(a),e);this._autoSize(e);this._setDate(e,h);this._updateAlternate(e); +this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl"); +b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]&&d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]);if(a=d.datepicker._get(b,"onSelect")){c=d.datepicker._formatDate(b);a.apply(b.input?b.input[0]:null,[c,b])}else d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target, +a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c= +a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b, +"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==C?a.keyCode:a.charCode); +return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-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");c=c?c.apply(a,[a,b]):{};if(c!==false){H(b.settings,c);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["selected"+(c=="M"? +"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_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=A+1<a.length&&a.charAt(A+1)==p)&&A++;return p},m=function(p){var D= +o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&D?4:p=="o"?3:2)+"}");p=b.substring(q).match(p);if(!p)throw"Missing number at position "+q;q+=p[0].length;return parseInt(p[0],10)},n=function(p,D,K){p=d.map(o(p)?K:D,function(w,x){return[[x,w]]}).sort(function(w,x){return-(w[1].length-x[1].length)});var E=-1;d.each(p,function(w,x){w=x[1];if(b.substr(q,w.length).toLowerCase()==w.toLowerCase()){E=x[0];q+=w.length;return false}});if(E!=-1)return E+1;else throw"Unknown name at position "+q;},s= +function(){if(b.charAt(q)!=a.charAt(A))throw"Unexpected literal at position "+q;q++},q=0,A=0;A<a.length;A++)if(k)if(a.charAt(A)=="'"&&!o("'"))k=false;else s();else switch(a.charAt(A)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();j=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();j=v.getMonth()+ +1;l=v.getDate();break;case "'":if(o("'"))s();else k=true;break;default:s()}if(q<b.length)throw"Extra/unparsed characters found in date: "+b.substring(q);if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-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+1<a.length&&a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,s){return i(o)?s[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()- +(new Date(b.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f= +0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==C?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a); +var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date; +i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g= +Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()> +12?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&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){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)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";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)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>";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?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+B+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,s)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+ +B+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";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"),A=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;x<i[0];x++){var O= +"";this.maxRows=4;for(var G=0;G<i[1];G++){var P=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",y="";if(l){y+='<div class="ui-datepicker-group';if(i[1]>1)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+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/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,A,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var z=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+s[r]+'">'+q[r]+"</span></th>"}y+=z+"</tr></thead><tbody>";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<z;Q++){y+="<tr>";var R=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(r)+"</td>";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&&r<k||o&&r>o;R+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(r.getTime()== +P.getTime()&&g==a.selectedMonth&&a._keyEvent||E.getTime()==r.getTime()&&E.getTime()==P.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!D?"":" "+I[1]+(r.getTime()==u.getTime()?" "+this._currentClass:"")+(r.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!F||D)&&I[2]?' title="'+I[2]+'"':"")+(L?"":' onclick="DP_jQuery_'+B+".datepicker._selectDay('#"+a.id+"',"+r.getMonth()+","+r.getFullYear()+', this);return false;"')+">"+(F&&!D?" ":L?'<span class="ui-state-default">'+ +r.getDate()+"</span>":'<a class="ui-state-default'+(r.getTime()==b.getTime()?" ui-state-highlight":"")+(r.getTime()==u.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+'" href="#">'+r.getDate()+"</a>")+"</td>";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+"</tr>"}g++;if(g>11){g=0;m++}y+="</tbody></table>"+(l?"</div>"+(i[0]>0&&G==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>': +"");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='<div class="ui-datepicker-title">',o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&& +(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";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+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="</div>";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&&b<c?c:b;return b=a&&b>a?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.16";window["DP_jQuery_"+B]=d})(jQuery); +;/* + * jQuery UI Progressbar 1.8.16 + * + * 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("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").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.16"})})(jQuery); +;/* + * jQuery UI Effects 1.8.16 + * + * 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.16",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b= +0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}), +d=document.activeElement;c.wrap(b);if(c[0]===d||f.contains(c[0],d))f(d).focus();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(e,g){a[g]=c.css(g);if(isNaN(parseInt(a[g],10)))a[g]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){var a,b=document.activeElement; +if(c.parent().is(".ui-effects-wrapper")){a=c.parent().replaceWith(c);if(c[0]===b||f.contains(c[0],b))f(b).focus();return a}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<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic: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<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g= +0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158; +if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c, +a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery); +;/* + * jQuery UI Effects Blind 1.8.16 + * + * 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/Blind + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a, +g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Bounce 1.8.16 + * + * 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/Bounce + * + * Depends: + * jquery.effects.core.js + */ +(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/ +3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a); +b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery); +;/* + * jQuery UI Effects Clip 1.8.16 + * + * 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/Clip + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position, +c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Drop 1.8.16 + * + * 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/Drop + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e== +"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Explode 1.8.16 + * + * 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/Explode + * + * Depends: + * jquery.effects.core.js + */ +(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f= +0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").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.16 + * + * 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.16 + * + * 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.16 + * + * 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.16 + * + * 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<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration, +a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery); +;/* + * jQuery UI Effects Scale 1.8.16 + * + * 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/Scale + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a, +b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity= +1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"], +p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}}; +if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a); +a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from); +child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a, +n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Shake 1.8.16 + * + * 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/Shake + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]= +(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery); +;/* + * jQuery UI Effects Slide 1.8.16 + * + * 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/Slide + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e); +var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Transfer 1.8.16 + * + * 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/Transfer + * + * Depends: + * jquery.effects.core.js + */ +(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').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/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js new file mode 100644 index 00000000..d75b4f3c --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js @@ -0,0 +1,80 @@ +/* + * jQuery UI Effects Blind 1.9pre + * + * 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/Blind + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +var rvertical = /up|down|vertical/, + rpositivemotion = /up|left|vertical|horizontal/; + +$.effects.effect.blind = function( o, done ) { + // Create element + var el = $( this ), + props = [ "position", "top", "bottom", "left", "right", "height", "width" ], + mode = $.effects.setMode( el, o.mode || "hide" ), + direction = o.direction || "up", + vertical = rvertical.test( direction ), + ref = vertical ? "height" : "width", + ref2 = vertical ? "top" : "left", + motion = rpositivemotion.test( direction ), + animation = {}, + show = mode === "show", + wrapper, distance, top; + + // if already wrapped, the wrapper's properties are my property. #6245 + if ( el.parent().is( ".ui-effects-wrapper" ) ) { + $.effects.save( el.parent(), props ); + } else { + $.effects.save( el, props ); + } + el.show(); + top = parseInt(el.css('top'), 10); + wrapper = $.effects.createWrapper( el ).css({ + overflow: "hidden" + }); + + distance = vertical ? wrapper[ ref ]() + top : wrapper[ ref ](); + + animation[ ref ] = show ? distance : 0; + if ( !motion ) { + el + .css( vertical ? "bottom" : "right", 0 ) + .css( vertical ? "top" : "left", "" ) + .css({ position: "absolute" }); + animation[ ref2 ] = show ? 0 : distance; + } + + // start at 0 if we are showing + if ( show ) { + wrapper.css( ref, 0 ); + if ( ! motion ) { + wrapper.css( ref2, distance ); + } + } + + // Animate + wrapper.animate( animation, { + duration: o.duration, + easing: o.easing, + queue: false, + complete: function() { + if ( mode === "hide" ) { + el.hide(); + } + $.effects.restore( el, props ); + $.effects.removeWrapper( el ); + done(); + } + }); + +}; + +})(jQuery); diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js new file mode 100644 index 00000000..101c15d4 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js @@ -0,0 +1,14 @@ +/* + * jQuery UI Effects Blind 1.9pre + * + * 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/Blind + * + * Depends: + * jquery.effects.core.js + */ +(function(b){var n=/up|down|vertical/,o=/up|left|vertical|horizontal/;b.effects.effect.blind=function(g,p){var a=b(this),i=["position","top","bottom","left","right","height","width"],l=b.effects.setMode(a,g.mode||"hide"),e=g.direction||"up",f=n.test(e),h=f?"height":"width",m=f?"top":"left";e=o.test(e);var j={},k=l==="show",c,d;a.parent().is(".ui-effects-wrapper")?b.effects.save(a.parent(),i):b.effects.save(a,i);a.show();d=parseInt(a.css("top"),10);c=b.effects.createWrapper(a).css({overflow:"hidden"}); +d=f?c[h]()+d:c[h]();j[h]=k?d:0;if(!e){a.css(f?"bottom":"right",0).css(f?"top":"left","").css({position:"absolute"});j[m]=k?0:d}if(k){c.css(h,0);e||c.css(m,d)}c.animate(j,{duration:g.duration,easing:g.easing,queue:false,complete:function(){l==="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);p()}})}})(jQuery); diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js new file mode 100644 index 00000000..ab9349a8 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js @@ -0,0 +1,890 @@ +/* + * jQuery UI Effects 1.9pre + * + * 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($, undefined) { + +var backCompat = $.uiBackCompat !== false; + +$.effects = { + effect: {} +}; + +/******************************************************************************/ +/****************************** COLOR ANIMATIONS ******************************/ +/******************************************************************************/ + +// override the animation for color styles +$.each(["backgroundColor", "borderBottomColor", "borderLeftColor", + "borderRightColor", "borderTopColor", "borderColor", "color", "outlineColor"], +function(i, attr) { + $.fx.step[attr] = function(fx) { + if (!fx.colorInit) { + fx.start = getColor(fx.elem, attr); + fx.end = getRGB(fx.end); + fx.colorInit = true; + } + + fx.elem.style[attr] = "rgb(" + + Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + "," + + Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + "," + + Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ")"; + }; +}); + +// Color Conversion functions from highlightFade +// By Blair Mitchelmore +// http://jquery.offput.ca/highlightFade/ + +// Parse strings looking for color tuples [255,255,255] +function getRGB(color) { + var result; + + // Check if we're already dealing with an array of colors + if ( color && color.constructor === Array && color.length === 3 ) + return color; + + // Look for rgb(num,num,num) + if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) + return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; + + // Look for rgb(num%,num%,num%) + if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) + return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; + + // Look for #a0b1c2 + if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) + return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; + + // Look for #fff + if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) + return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; + + // Look for rgba(0, 0, 0, 0) == transparent in Safari 3 + if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) + return colors["transparent"]; + + // Otherwise, we're most likely dealing with a named color + return colors[$.trim(color).toLowerCase()]; +} + +function getColor(elem, attr) { + var color; + + do { + color = $.curCSS(elem, attr); + + // Keep going until we find an element that has color, or we hit the body + if ( color != "" && color !== "transparent" || $.nodeName(elem, "body") ) + break; + + attr = "backgroundColor"; + } while ( elem = elem.parentNode ); + + return getRGB(color); +}; + +// Some named colors to work with +// From Interface by Stefan Petre +// http://interface.eyecon.ro/ + +var colors = { + 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] +}; + + + +/******************************************************************************/ +/****************************** CLASS ANIMATIONS ******************************/ +/******************************************************************************/ + +var classAnimationActions = [ "add", "remove", "toggle" ], + shorthandStyles = { + border: 1, + borderBottom: 1, + borderColor: 1, + borderLeft: 1, + borderRight: 1, + borderTop: 1, + borderWidth: 1, + margin: 1, + padding: 1 + }, + // prefix used for storing data on .data() + dataSpace = "ec.storage."; + +$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) { + $.fx.step[ prop ] = function( fx ) { + if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { + jQuery.style( fx.elem, prop, fx.end ); + fx.setAttr = true; + } + }; +}); + +function getElementStyles() { + var style = this.ownerDocument.defaultView + ? this.ownerDocument.defaultView.getComputedStyle( this, null ) + : this.currentStyle, + newStyle = {}, + key, + camelCase, + len; + + // webkit enumerates style porperties + if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { + len = style.length; + while ( len-- ) { + key = style[ len ]; + if ( typeof style[ key ] === "string" ) { + newStyle[ $.camelCase( key ) ] = style[ key ]; + } + } + } else { + for ( key in style ) { + if ( typeof style[ key ] === "string" ) { + newStyle[ key ] = style[ key ]; + } + } + } + + return newStyle; +} + + +function styleDifference( oldStyle, newStyle ) { + var diff = {}, + name, value; + + for ( name in newStyle ) { + value = newStyle[ name ]; + if ( oldStyle[ name ] != value ) { + if ( !shorthandStyles[ name ] ) { + if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { + diff[ name ] = value; + } + } + } + } + + return diff; +} + +$.effects.animateClass = function( value, duration, easing, callback ) { + var o = $.speed( duration, easing, callback ); + + return this.queue( function() { + var animated = $( this ), + baseClass = animated.attr( "class" ) || "", + finalClass, + allAnimations = o.children ? animated.find( "*" ).andSelf() : animated; + + // map the animated objects to store the original styles. + allAnimations = allAnimations.map(function() { + var el = $( this ); + return { + el: el, + originalStyleAttr: el.attr( "style" ) || " ", + start: getElementStyles.call( this ) + }; + }); + + // apply class change + $.each( classAnimationActions, function(i, action) { + if ( value[ action ] ) { + animated[ action + "Class" ]( value[ action ] ); + } + }); + finalClass = animated.attr( "class" ); + + // map all animated objects again - calculate new styles and diff + allAnimations = allAnimations.map(function() { + this.end = getElementStyles.call( this.el[ 0 ] ); + this.diff = styleDifference( this.start, this.end ); + return this; + }); + + // apply original class + animated.attr( "class", baseClass ); + + // map all animated objects again - this time collecting a promise + allAnimations = allAnimations.map(function() { + var styleInfo = this, + dfd = $.Deferred(); + + this.el.animate( this.diff, { + duration: o.duration, + easing: o.easing, + queue: false, + complete: function() { + dfd.resolve( styleInfo ); + } + }); + return dfd.promise(); + }); + + // once all animations have completed: + $.when.apply( $, allAnimations.get() ).done(function() { + + // set the final class + animated.attr( "class", finalClass ); + + // for each animated element + $.each( arguments, function() { + if ( typeof this.el.attr( "style" ) === "object" ) { + this.el.attr( "style" ).cssText = ""; + this.el.attr( "style" ).cssText = this.originalStyleAttr; + } else { + this.el.attr( "style", this.originalStyleAttr ); + } + }); + + // this is guarnteed to be there if you use jQuery.speed() + // it also handles dequeuing the next anim... + o.complete.call( animated[ 0 ] ); + }); + }); +}; + +$.fn.extend({ + _addClass: $.fn.addClass, + addClass: function( classNames, speed, easing, callback ) { + return speed ? + $.effects.animateClass.apply( this, [{ add: classNames }, speed, easing, callback ]) : + this._addClass(classNames); + }, + + _removeClass: $.fn.removeClass, + removeClass: function( classNames, speed, easing, callback ) { + return speed ? + $.effects.animateClass.apply( this, [{ remove: classNames }, speed, easing, callback ]) : + this._removeClass(classNames); + }, + + _toggleClass: $.fn.toggleClass, + toggleClass: function( classNames, force, speed, easing, callback ) { + if ( typeof force === "boolean" || force === undefined ) { + if ( !speed ) { + // without speed parameter; + return this._toggleClass( classNames, force ); + } else { + return $.effects.animateClass.apply( this, [( force ? { add:classNames } : { remove:classNames }), speed, easing, callback ]); + } + } else { + // without force parameter; + return $.effects.animateClass.apply( this, [{ toggle: classNames }, force, speed, easing ]); + } + }, + + switchClass: function( remove, add, speed, easing, callback) { + return $.effects.animateClass.apply( this, [{ + add: add, + remove: remove + }, speed, easing, callback ]); + } +}); + + + +/******************************************************************************/ +/*********************************** EFFECTS **********************************/ +/******************************************************************************/ + +$.extend( $.effects, { + version: "1.9pre", + + // Saves a set of properties in a data storage + save: function( element, set ) { + for( var i=0; i < set.length; i++ ) { + if ( set[ i ] !== null ) { + element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); + } + } + }, + + // Restores a set of previously saved properties from a data storage + restore: function( element, set ) { + for( var i=0; i < set.length; i++ ) { + if ( set[ i ] !== null ) { + element.css( set[ i ], element.data( dataSpace + set[ i ] ) ); + } + } + }, + + setMode: function( el, mode ) { + if (mode === "toggle") { + mode = el.is( ":hidden" ) ? "show" : "hide"; + } + return mode; + }, + + // Translates a [top,left] array into a baseline value + // this should be a little more flexible in the future to handle a string & hash + getBaseline: function( origin, original ) { + var y, x; + switch ( origin[ 0 ] ) { + case "top": y = 0; break; + case "middle": y = 0.5; break; + case "bottom": y = 1; break; + default: y = origin[ 0 ] / original.height; + }; + switch ( origin[ 1 ] ) { + case "left": x = 0; break; + case "center": x = 0.5; break; + case "right": x = 1; break; + default: x = origin[ 1 ] / original.width; + }; + return { + x: x, + y: y + }; + }, + + // Wraps the element around a wrapper that copies position properties + createWrapper: function( element ) { + + // if the element is already wrapped, return it + if ( element.parent().is( ".ui-effects-wrapper" )) { + return element.parent(); + } + + // wrap the element + var props = { + width: element.outerWidth(true), + height: element.outerHeight(true), + "float": element.css( "float" ) + }, + wrapper = $( "<div></div>" ) + .addClass( "ui-effects-wrapper" ) + .css({ + fontSize: "100%", + background: "transparent", + border: "none", + margin: 0, + padding: 0 + }), + // Store the size in case width/height are defined in % - Fixes #5245 + size = { + width: element.width(), + height: element.height() + }, + active = document.activeElement; + + element.wrap( wrapper ); + + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).focus(); + } + + wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element + + // transfer positioning properties to the wrapper + if ( element.css( "position" ) === "static" ) { + wrapper.css({ position: "relative" }); + element.css({ position: "relative" }); + } else { + $.extend( props, { + position: element.css( "position" ), + zIndex: element.css( "z-index" ) + }); + $.each([ "top", "left", "bottom", "right" ], function(i, pos) { + props[ pos ] = element.css( pos ); + if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { + props[ pos ] = "auto"; + } + }); + element.css({ + position: "relative", + top: 0, + left: 0, + right: "auto", + bottom: "auto" + }); + } + element.css(size); + + return wrapper.css( props ).show(); + }, + + removeWrapper: function( element ) { + var active = document.activeElement; + + if ( element.parent().is( ".ui-effects-wrapper" ) ) { + element.parent().replaceWith( element ); + + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).focus(); + } + } + + + return element; + }, + + setTransition: function( element, list, factor, value ) { + value = value || {}; + $.each( list, function(i, x){ + var unit = element.cssUnit( x ); + if ( unit[ 0 ] > 0 ) value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; + }); + return value; + } +}); + +// return an effect options object for the given parameters: +function _normalizeArguments( effect, options, speed, callback ) { + + // short path for passing an effect options object: + if ( $.isPlainObject( effect ) ) { + return effect; + } + + // convert to an object + effect = { effect: effect }; + + // catch (effect) + if ( options === undefined ) { + options = {}; + } + + // catch (effect, callback) + if ( $.isFunction( options ) ) { + callback = options; + speed = null; + options = {}; + } + + // catch (effect, speed, ?) + if ( $.type( options ) === "number" || $.fx.speeds[ options ]) { + callback = speed; + speed = options; + options = {}; + } + + // catch (effect, options, callback) + if ( $.isFunction( speed ) ) { + callback = speed; + speed = null; + } + + // add options to effect + if ( options ) { + $.extend( effect, options ); + } + + speed = speed || options.duration; + effect.duration = $.fx.off ? 0 : typeof speed === "number" + ? speed : speed in $.fx.speeds ? $.fx.speeds[ speed ] : $.fx.speeds._default; + + effect.complete = callback || options.complete; + + return effect; +} + +function standardSpeed( speed ) { + // valid standard speeds + if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) { + return true; + } + + // invalid strings - treat as "normal" speed + if ( typeof speed === "string" && !$.effects.effect[ speed ] ) { + // TODO: remove in 2.0 (#7115) + if ( backCompat && $.effects[ speed ] ) { + return false; + } + return true; + } + + return false; +} + +$.fn.extend({ + effect: function( effect, options, speed, callback ) { + var args = _normalizeArguments.apply( this, arguments ), + mode = args.mode, + queue = args.queue, + effectMethod = $.effects.effect[ args.effect ], + + // DEPRECATED: remove in 2.0 (#7115) + oldEffectMethod = !effectMethod && backCompat && $.effects[ args.effect ]; + + if ( $.fx.off || !( effectMethod || oldEffectMethod ) ) { + // delegate to the original method (e.g., .show()) if possible + if ( mode ) { + return this[ mode ]( args.duration, args.complete ); + } else { + return this.each( function() { + if ( args.complete ) { + args.complete.call( this ); + } + }); + } + } + + function run( next ) { + var elem = $( this ), + complete = args.complete, + mode = args.mode; + + function done() { + if ( $.isFunction( complete ) ) { + complete.call( elem[0] ); + } + if ( $.isFunction( next ) ) { + next(); + } + } + + // if the element is hiddden and mode is hide, + // or element is visible and mode is show + if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { + done(); + } else { + effectMethod.call( elem[0], args, done ); + } + } + + // TODO: remove this check in 2.0, effectMethod will always be true + if ( effectMethod ) { + return queue === false ? this.each( run ) : this.queue( queue || "fx", run ); + } else { + // DEPRECATED: remove in 2.0 (#7115) + return oldEffectMethod.call(this, { + options: args, + duration: args.duration, + callback: args.complete, + mode: args.mode + }); + } + }, + + _show: $.fn.show, + show: function( speed ) { + if ( standardSpeed( speed ) ) { + return this._show.apply( this, arguments ); + } else { + var args = _normalizeArguments.apply( this, arguments ); + args.mode = "show"; + return this.effect.call( this, args ); + } + }, + + _hide: $.fn.hide, + hide: function( speed ) { + if ( standardSpeed( speed ) ) { + return this._hide.apply( this, arguments ); + } else { + var args = _normalizeArguments.apply( this, arguments ); + args.mode = "hide"; + return this.effect.call( this, args ); + } + }, + + // jQuery core overloads toggle and creates _toggle + __toggle: $.fn.toggle, + toggle: function( speed ) { + if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { + return this.__toggle.apply( this, arguments ); + } else { + var args = _normalizeArguments.apply( this, arguments ); + args.mode = "toggle"; + return this.effect.call( this, args ); + } + }, + + // helper functions + cssUnit: function(key) { + var style = this.css( key ), + val = []; + + $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { + if ( style.indexOf( unit ) > 0 ) + val = [ parseFloat( style ), unit ]; + }); + return val; + } +}); + + + +/******************************************************************************/ +/*********************************** EASING ***********************************/ +/******************************************************************************/ + +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +$.easing.jswing = $.easing.swing; + +$.extend( $.easing, { + def: "easeOutQuad", + swing: function ( x, t, b, c, d ) { + return $.easing[ $.easing.def ]( x, t, b, c, d ); + }, + easeInQuad: function ( x, t, b, c, d ) { + return c * ( t /= d ) * t + b; + }, + easeOutQuad: function ( x, t, b, c, d ) { + return -c * ( t /= d ) * ( t - 2 ) + b; + }, + easeInOutQuad: function ( x, t, b, c, d ) { + if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t + b; + return -c / 2 * ( ( --t ) * ( t-2 ) - 1) + b; + }, + easeInCubic: function ( x, t, b, c, d ) { + return c * ( t /= d ) * t * t + b; + }, + easeOutCubic: function ( x, t, b, c, d ) { + return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b; + }, + easeInOutCubic: function ( x, t, b, c, d ) { + if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t + b; + return c / 2 * ( ( t -= 2 ) * t * t + 2) + b; + }, + easeInQuart: function ( x, t, b, c, d ) { + return c * ( t /= d ) * t * t * t + b; + }, + easeOutQuart: function ( x, t, b, c, d ) { + return -c * ( ( t = t / d - 1 ) * t * t * t - 1) + b; + }, + easeInOutQuart: function ( x, t, b, c, d ) { + if ( (t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t + b; + return -c / 2 * ( ( t -= 2 ) * t * t * t - 2) + b; + }, + easeInQuint: function ( x, t, b, c, d ) { + return c * ( t /= d ) * t * t * t * t + b; + }, + easeOutQuint: function ( x, t, b, c, d ) { + return c * ( ( t = t / d - 1 ) * t * t * t * t + 1) + b; + }, + easeInOutQuint: function ( x, t, b, c, d ) { + if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t * t + b; + return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2) + b; + }, + easeInSine: function ( x, t, b, c, d ) { + return -c * Math.cos( t / d * ( Math.PI / 2 ) ) + c + b; + }, + easeOutSine: function ( x, t, b, c, d ) { + return c * Math.sin( t / d * ( Math.PI /2 ) ) + b; + }, + easeInOutSine: function ( x, t, b, c, d ) { + return -c / 2 * ( Math.cos( Math.PI * t / d ) - 1 ) + b; + }, + easeInExpo: function ( x, t, b, c, d ) { + return ( t==0 ) ? b : c * Math.pow( 2, 10 * ( t / d - 1) ) + b; + }, + easeOutExpo: function ( x, t, b, c, d ) { + return ( t==d ) ? b + c : c * ( -Math.pow( 2, -10 * t / d) + 1) + b; + }, + easeInOutExpo: function ( x, t, b, c, d ) { + if ( t==0 ) return b; + if ( t==d ) return b + c; + if ( ( t /= d / 2) < 1) return c / 2 * Math.pow( 2, 10 * (t - 1) ) + b; + return c / 2 * ( -Math.pow( 2, -10 * --t ) + 2 ) + b; + }, + easeInCirc: function ( x, t, b, c, d ) { + return -c * ( Math.sqrt( 1 - ( t /= d ) * t ) - 1 ) + b; + }, + easeOutCirc: function ( x, t, b, c, d ) { + return c * Math.sqrt( 1 - ( t = t / d - 1 ) * t ) + b; + }, + easeInOutCirc: function ( x, t, b, c, d ) { + if ( ( t /= d / 2) < 1 ) return -c / 2 * ( Math.sqrt( 1 - t * t ) - 1 ) + b; + return c / 2 * ( Math.sqrt( 1 - ( t -= 2 ) * t ) + 1 ) + b; + }, + easeInElastic: function ( x, t, b, c, d ) { + var s = 1.70158, + p = d * 0.3, + a = c; + if ( t == 0 ) return b; + if ( ( t /= d ) == 1 ) return b+c; + if ( a < Math.abs( c ) ) { + a = c; + s = p / 4; + } else { + s = p / ( 2 * Math.PI ) * Math.asin( c / a ); + } + return - ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s) * ( 2 * Math.PI ) / p ) ) + b; + }, + easeOutElastic: function ( x, t, b, c, d ) { + var s = 1.70158, + p = d * 0.3, + a = c; + if ( t == 0 ) return b; + if ( ( t /= d ) == 1 ) return b+c; + if ( a < Math.abs( c ) ) { + a = c; + s = p / 4; + } else { + s = p / ( 2 * Math.PI ) * Math.asin( c / a ); + } + return a * Math.pow( 2, -10 * t ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) + c + b; + }, + easeInOutElastic: function ( x, t, b, c, d ) { + var s = 1.70158, + p = d * ( 0.3 * 1.5 ), + a = c; + if ( t == 0 ) return b; + if ( ( t /= d / 2 ) == 2 ) return b+c; + if ( a < Math.abs( c ) ) { + a = c; + s = p / 4; + } else { + s = p / ( 2 * Math.PI ) * Math.asin( c / a ); + } + if ( t < 1 ) return -.5 * ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) ) + b; + return a * Math.pow( 2, -10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) *.5 + c + b; + }, + easeInBack: function ( x, t, b, c, d, s ) { + if ( s == undefined ) s = 1.70158; + return c * ( t /= d ) * t * ( ( s+1 ) * t - s ) + b; + }, + easeOutBack: function ( x, t, b, c, d, s ) { + if ( s == undefined ) s = 1.70158; + return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s) + 1) + b; + }, + easeInOutBack: function ( x, t, b, c, d, s ) { + if ( s == undefined ) s = 1.70158; + if ( ( t /= d / 2 ) < 1 ) return c / 2 * ( t * t * ( ( ( s *= 1.525 ) + 1 ) * t - s ) ) + b; + return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= 1.525 ) + 1 ) * t + s) + 2) + b; + }, + easeInBounce: function ( x, t, b, c, d ) { + return c - $.easing.easeOutBounce( x, d - t, 0, c, d ) + b; + }, + easeOutBounce: function ( x, t, b, c, d ) { + if ( ( t /= d ) < ( 1 / 2.75 ) ) { + return c * ( 7.5625 * t * t ) + b; + } else if ( t < ( 2 / 2.75 ) ) { + return c * ( 7.5625 * ( t -= ( 1.5 / 2.75 ) ) * t + .75 ) + b; + } else if ( t < ( 2.5 / 2.75 ) ) { + return c * ( 7.5625 * ( t -= ( 2.25/ 2.75 ) ) * t + .9375 ) + b; + } else { + return c * ( 7.5625 * ( t -= ( 2.625 / 2.75 ) ) * t + .984375 ) + b; + } + }, + easeInOutBounce: function ( x, t, b, c, d ) { + if ( t < d / 2 ) return $.easing.easeInBounce( x, t * 2, 0, c, d ) * .5 + b; + return $.easing.easeOutBounce( x, t * 2 - d, 0, c, d ) * .5 + c * .5 + b; + } +}); + +/* + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +})(jQuery); diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js new file mode 100644 index 00000000..9e92123a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js @@ -0,0 +1,32 @@ +/* + * jQuery UI Effects 1.9pre + * + * 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,m){function r(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 s.transparent;return s[f.trim(c).toLowerCase()]}function t(){var c=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(d=c.length;d--;){b=c[d];if(typeof c[b]==="string")a[f.camelCase(b)]=c[b]}else for(b in c)if(typeof c[b]=== +"string")a[b]=c[b];return a}function o(c,a,b,d){if(f.isPlainObject(c))return c;c={effect:c};if(a===m)a={};if(f.isFunction(a)){d=a;b=null;a={}}if(f.type(a)==="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a&&f.extend(c,a);b=b||a.duration;c.duration=f.fx.off?0:typeof b==="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;c.complete=d||a.complete;return c}function q(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects.effect[c]){if(u&& +f.effects[c])return false;return true}return false}var u=f.uiBackCompat!==false;f.effects={effect:{}};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){var d;d=b.elem;var e=a,g;do{g=f.curCSS(d,e);if(g!=""&&g!=="transparent"||f.nodeName(d,"body"))break;e="backgroundColor"}while(d=d.parentNode);d=r(g);b.start=d;b.end=r(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 s={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]},w=["add","remove","toggle"],x={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(c,a){f.fx.step[a]=function(b){if(b.end!=="none"&&!b.setAttr||b.pos===1&&!b.setAttr){jQuery.style(b.elem,a,b.end);b.setAttr= +true}}});f.effects.animateClass=function(c,a,b,d){var e=f.speed(a,b,d);return this.queue(function(){var g=f(this),h=g.attr("class")||"",n,j=e.children?g.find("*").andSelf():g;j=j.map(function(){var k=f(this);return{el:k,originalStyleAttr:k.attr("style")||" ",start:t.call(this)}});f.each(w,function(k,i){if(c[i])g[i+"Class"](c[i])});n=g.attr("class");j=j.map(function(){this.end=t.call(this.el[0]);var k=this.start,i=this.end,v={},l,p;for(l in i){p=i[l];if(k[l]!=p)if(!x[l])if(f.fx.step[l]||!isNaN(parseFloat(p)))v[l]= +p}this.diff=v;return this});g.attr("class",h);j=j.map(function(){var k=this,i=f.Deferred();this.el.animate(this.diff,{duration:e.duration,easing:e.easing,queue:false,complete:function(){i.resolve(k)}});return i.promise()});f.when.apply(f,j.get()).done(function(){g.attr("class",n);f.each(arguments,function(){if(typeof this.el.attr("style")==="object"){this.el.attr("style").cssText="";this.el.attr("style").cssText=this.originalStyleAttr}else this.el.attr("style",this.originalStyleAttr)});e.complete.call(g[0])})})}; +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===m?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.9pre",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a==="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b,d;switch(c[0]){case "top":b= +0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":d=0;break;case "center":d=0.5;break;case "right":d=1;break;default:d=c[1]/a.width}return{x:d,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}), +d={width:c.width(),height:c.height()},e=document.activeElement;c.wrap(b);if(c[0]===e||f.contains(c[0],e))f(e).focus();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(g,h){a[h]=c.css(h);if(isNaN(parseInt(a[h],10)))a[h]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}c.css(d);return b.css(a).show()}, +removeWrapper:function(c){var a=document.activeElement;if(c.parent().is(".ui-effects-wrapper")){c.parent().replaceWith(c);if(c[0]===a||f.contains(c[0],a))f(a).focus()}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){var h=c.cssUnit(g);if(h[0]>0)d[g]=h[0]*b+h[1]});return d}});f.fn.extend({effect:function(){function c(h){function n(){f.isFunction(k)&&k.call(j[0]);f.isFunction(h)&&h()}var j=f(this),k=a.complete,i=a.mode;(j.is(":hidden")?i==="hide":i==="show")?n():e.call(j[0], +a,n)}var a=o.apply(this,arguments),b=a.mode,d=a.queue,e=f.effects.effect[a.effect],g=!e&&u&&f.effects[a.effect];if(f.fx.off||!(e||g))return b?this[b](a.duration,a.complete):this.each(function(){a.complete&&a.complete.call(this)});return e?d===false?this.each(c):this.queue(d||"fx",c):g.call(this,{options:a,duration:a.duration,callback:a.complete,mode:a.mode})},_show:f.fn.show,show:function(c){if(q(c))return this._show.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="show";return this.effect.call(this, +a)}},_hide:f.fn.hide,hide:function(c){if(q(c))return this._hide.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="hide";return this.effect.call(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(q(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="toggle";return this.effect.call(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=e*0.3,h=d;if(a==0)return b;if((a/=e)==1)return b+d;if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a* +e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=e*0.3,h=d;if(a==0)return b;if((a/=e)==1)return b+d;if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=e*0.3*1.5,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h* +Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==m)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==m)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==m)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b, +d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery); diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery.print.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery.print.js new file mode 100644 index 00000000..0569bd4d --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery.print.js @@ -0,0 +1,103 @@ +// <--- --------------------------------------------------------------------------------------- ----
+
+// Blog Entry:
+// Ask Ben: Print Part Of A Web Page With jQuery
+
+// Author:
+// Ben Nadel / Kinky Solutions
+
+// Link:
+// http://www.bennadel.com/index.cfm?event=blog.view&id=1591
+
+// Date Posted:
+// May 21, 2009 at 9:10 PM
+
+// ---- --------------------------------------------------------------------------------------- --->
+
+
+// Create a jquery plugin that prints the given element.
+jQuery.fn.print = function(){
+ // NOTE: We are trimming the jQuery collection down to the
+ // first element in the collection.
+ if (this.size() > 1){
+ this.eq( 0 ).print();
+ return;
+ } else if (!this.size()){
+ return;
+ }
+
+ var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
+ var imgelem = chart.jqplotToImageElem();
+ console.log(imgelem);
+
+ // ASSERT: At this point, we know that the current jQuery
+ // collection (as defined by THIS), contains only one
+ // printable element.
+
+ // Create a random name for the print frame.
+ var strFrameName = ("printer-" + (new Date()).getTime());
+
+ // Create an iFrame with the new name.
+ var jFrame = $( "<iframe name='" + strFrameName + "'>" );
+
+ // Hide the frame (sort of) and attach to the body.
+ jFrame
+ .css( "width", "1px" )
+ .css( "height", "1px" )
+ .css( "position", "absolute" )
+ .css( "left", "-9999px" )
+ .appendTo( $( "body:first" ) )
+ ;
+
+ // Get a FRAMES reference to the new frame.
+ var objFrame = window.frames[ strFrameName ];
+
+ // Get a reference to the DOM in the new frame.
+ var objDoc = objFrame.document;
+
+ // Grab all the style tags and copy to the new
+ // document so that we capture look and feel of
+ // the current document.
+
+ // Create a temp document DIV to hold the style tags.
+ // This is the only way I could find to get the style
+ // tags into IE.
+ var jStyleDiv = $( "<div>" ).append(
+ $( "style" ).clone()
+ );
+
+ // Write the HTML for the document. In this, we will
+ // write out the HTML of the current element.
+ objDoc.open();
+ objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
+ objDoc.write( "<html>" );
+ objDoc.write( "<body>" );
+ objDoc.write( "<head>" );
+ objDoc.write( "<title>" );
+ objDoc.write( document.title );
+ objDoc.write( "</title>" );
+ objDoc.write( jStyleDiv.html() );
+ objDoc.write( "</head>" );
+ if ($.jqplot.use_excanvas) {
+ objDoc.write( this.html() );
+ }
+ else {
+ objDoc.write( '<img src="' + imgelem.src + '">' );
+ }
+ objDoc.write( "</body>" );
+ objDoc.write( "</html>" );
+ objDoc.close();
+
+ // Print the document.
+ objFrame.focus();
+ objFrame.print();
+
+ // Have the frame remove itself in about a minute so that
+ // we don't build up too many of these frames.
+ setTimeout(
+ function(){
+ jFrame.remove();
+ },
+ (60 * 1000)
+ );
+}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js new file mode 100644 index 00000000..27c8d8d2 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js @@ -0,0 +1,28 @@ +/// <reference path="http://code.jquery.com/jquery-1.4.1-vsdoc.js" /> +/* +* Print Element Plugin 1.2 +* +* Copyright (c) 2010 Erik Zaadi +* +* Inspired by PrintArea (http://plugins.jquery.com/project/PrintArea) and +* http://stackoverflow.com/questions/472951/how-do-i-print-an-iframe-from-javascript-in-safari-chrome +* +* Home Page : http://projects.erikzaadi/jQueryPlugins/jQuery.printElement +* Issues (bug reporting) : http://github.com/erikzaadi/jQueryPlugins/issues/labels/printElement +* jQuery plugin page : http://plugins.jquery.com/project/printElement +* +* Thanks to David B (http://github.com/ungenio) and icgJohn (http://www.blogger.com/profile/11881116857076484100) +* For their great contributions! +* +* Dual licensed under the MIT and GPL licenses: +* http://www.opensource.org/licenses/mit-license.php +* http://www.gnu.org/licenses/gpl.html +* +* Note, Iframe Printing is not supported in Opera and Chrome 3.0, a popup window will be shown instead +*/ +;(function(g){function k(c){c&&c.printPage?c.printPage():setTimeout(function(){k(c)},50)}function l(c){c=a(c);a(":checked",c).each(function(){this.setAttribute("checked","checked")});a("input[type='text']",c).each(function(){this.setAttribute("value",a(this).val())});a("select",c).each(function(){var b=a(this);a("option",b).each(function(){b.val()==a(this).val()&&this.setAttribute("selected","selected")})});a("textarea",c).each(function(){var b=a(this).attr("value");if(a.browser.b&&this.firstChild)this.firstChild.textContent= +b;else this.innerHTML=b});return a("<div></div>").append(c.clone()).html()}function m(c,b){var i=a(c);c=l(c);var d=[];d.push("<html><head><title>"+b.pageTitle+"</title>");if(b.overrideElementCSS){if(b.overrideElementCSS.length>0)for(var f=0;f<b.overrideElementCSS.length;f++){var e=b.overrideElementCSS[f];typeof e=="string"?d.push('<link type="text/css" rel="stylesheet" href="'+e+'" >'):d.push('<link type="text/css" rel="stylesheet" href="'+e.href+'" media="'+e.media+'" >')}}else a("link",j).filter(function(){return a(this).attr("rel").toLowerCase()== +"stylesheet"}).each(function(){d.push('<link type="text/css" rel="stylesheet" href="'+a(this).attr("href")+'" media="'+a(this).attr("media")+'" >')});d.push('<base href="'+(g.location.protocol+"//"+g.location.hostname+(g.location.port?":"+g.location.port:"")+g.location.pathname)+'" />');d.push('</head><body style="'+b.printBodyOptions.styleToAdd+'" class="'+b.printBodyOptions.classNameToAdd+'">');d.push('<div class="'+i.attr("class")+'">'+c+"</div>");d.push('<script type="text/javascript">function printPage(){focus();print();'+ +(!a.browser.opera&&!b.leaveOpen&&b.printMode.toLowerCase()=="popup"?"close();":"")+"}<\/script>");d.push("</body></html>");return d.join("")}var j=g.document,a=g.jQuery;a.fn.printElement=function(c){var b=a.extend({},a.fn.printElement.defaults,c);if(b.printMode=="iframe")if(a.browser.opera||/chrome/.test(navigator.userAgent.toLowerCase()))b.printMode="popup";a("[id^='printElement_']").remove();return this.each(function(){var i=a.a?a.extend({},b,a(this).data()):b,d=a(this);d=m(d,i);var f=null,e=null; +if(i.printMode.toLowerCase()=="popup"){f=g.open("about:blank","printElementWindow","width=650,height=440,scrollbars=yes");e=f.document}else{f="printElement_"+Math.round(Math.random()*99999).toString();var h=j.createElement("IFRAME");a(h).attr({style:i.iframeElementOptions.styleToAdd,id:f,className:i.iframeElementOptions.classNameToAdd,frameBorder:0,scrolling:"no",src:"about:blank"});j.body.appendChild(h);e=h.contentWindow||h.contentDocument;if(e.document)e=e.document;h=j.frames?j.frames[f]:j.getElementById(f); +f=h.contentWindow||h}focus();e.open();e.write(d);e.close();k(f)})};a.fn.printElement.defaults={printMode:"iframe",pageTitle:"",overrideElementCSS:null,printBodyOptions:{styleToAdd:"padding:10px;margin:10px;",classNameToAdd:""},leaveOpen:false,iframeElementOptions:{styleToAdd:"border:none;position:absolute;width:0px;height:0px;bottom:0px;left:0px;",classNameToAdd:""}};a.fn.printElement.cssElement={href:"",media:""}})(window);
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jsondata.txt b/wqflask/wqflask/static/packages/jqplot/examples/jsondata.txt new file mode 100644 index 00000000..b6a0cffa --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/jsondata.txt @@ -0,0 +1 @@ +[[1, 3, 2, 4, 6, 9]]
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp.print.js b/wqflask/wqflask/static/packages/jqplot/examples/kcp.print.js new file mode 100644 index 00000000..0f1d3719 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp.print.js @@ -0,0 +1,136 @@ +// <--- --------------------------------------------------------------------------------------- ----
+
+// Blog Entry:
+// Ask Ben: Print Part Of A Web Page With jQuery
+
+// Author:
+// Ben Nadel / Kinky Solutions
+
+// Link:
+// http://www.bennadel.com/index.cfm?event=blog.view&id=1591
+
+// Date Posted:
+// May 21, 2009 at 9:10 PM
+
+// ---- --------------------------------------------------------------------------------------- --->
+
+
+// Create a jquery plugin that prints the given element.
+jQuery.fn.print = function(){
+ // NOTE: We are trimming the jQuery collection down to the
+ // first element in the collection.
+ if (this.size() > 1){
+ this.eq( 0 ).print();
+ return;
+ } else if (!this.size()){
+ return;
+ }
+
+ var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
+ // var imgelem = chart.jqplotToImageElem();
+ var imageElemStr = chart.jqplotToImageElemStr();
+ // var statsrows = $(this).closest('div.quintile-outer-container').find('table.stats-table tr');
+ var statsTable = $('<div></div>').append($(this).closest('div.quintile-outer-container').find('table.stats-table').clone());
+ // var rowstyles = window.getComputedStyle(statsrows.get(0), '');
+
+ // ASSERT: At this point, we know that the current jQuery
+ // collection (as defined by THIS), contains only one
+ // printable element.
+
+ // Create a random name for the print frame.
+ var strFrameName = ("printer-" + (new Date()).getTime());
+
+ // Create an iFrame with the new name.
+ var jFrame = $( "<iframe name='" + strFrameName + "'>" );
+
+ // Hide the frame (sort of) and attach to the body.
+ jFrame
+ .css( "width", "1px" )
+ .css( "height", "1px" )
+ .css( "position", "absolute" )
+ .css( "left", "-9999px" )
+ .appendTo( $( "body:first" ) )
+ ;
+
+ // Get a FRAMES reference to the new frame.
+ var objFrame = window.frames[ strFrameName ];
+
+ // Get a reference to the DOM in the new frame.
+ var objDoc = objFrame.document;
+
+ // Grab all the style tags and copy to the new
+ // document so that we capture look and feel of
+ // the current document.
+
+ // Create a temp document DIV to hold the style tags.
+ // This is the only way I could find to get the style
+ // tags into IE.
+ var jStyleDiv = $( "<div>" ).append(
+ $( "style" ).clone()
+ );
+
+ // Write the HTML for the document. In this, we will
+ // write out the HTML of the current element.
+ objDoc.open();
+ objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
+ objDoc.write( "<html>" );
+ objDoc.write( "<body>" );
+ objDoc.write( "<head>" );
+ objDoc.write( "<title>" );
+ objDoc.write( document.title );
+ objDoc.write( "</title>" );
+ objDoc.write( jStyleDiv.html() );
+ objDoc.write( "</head>" );
+
+ // Typically, would just write out the html.
+ // objDoc.write( this.html() );
+
+ // We need to do specific manipulation for kcp quintiles.
+ objDoc.write( '<div class="quintile-outer-container ui-widget ui-corner-all"> \
+ <div class="quintile-content ui-widget-content ui-corner-bottom"> \
+ <table class="quintile-display"> \
+ <tr> \
+ <td class="chart-cell">');
+
+ objDoc.write(imageElemStr);
+
+ objDoc.write('</td> <td class="stats-cell">');
+
+ objDoc.write(statsTable.html());
+
+ objDoc.write('</td></tr></table></div></div>');
+
+ objDoc.write( "</body>" );
+ objDoc.write( "</html>" );
+ objDoc.close();
+
+ //
+ // When the iframe is completely loaded, print it.
+ // This seemed worked in IE 9, but caused problems in FF.
+ //
+ // $(objFrame).load(function() {
+ // objFrame.focus();
+ // objFrame.print();
+ // });
+
+ //
+ // This works in all supported browsers.
+ // Note, might have to adjust time.
+ //
+ setTimeout(
+ function() {
+ objFrame.focus();
+ objFrame.print();
+ }, 750);
+
+
+ // Have the frame remove itself in about a minute so that
+ // we don't build up too many of these frames.
+ setTimeout(
+ function(){
+ jFrame.empty();
+ jFrame.remove();
+ },
+ (60 * 1000)
+ );
+}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area.html new file mode 100644 index 00000000..58a33198 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area.html @@ -0,0 +1,284 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Area Chart</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="index.html">Previous</a> <a href="./">Examples</a> <a href="kcp_area2.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + + <style type="text/css"> + + .chart-container { + border: 1px solid darkblue; + padding: 30px 0px 30px 30px; + width: 900px; + height: 400px; + + } + + table.jqplot-table-legend { + font-size: 0.65em; + line-height: 1em; + margin: 0px 0px 10px 15px; + border-collapse: collapse; + } + + td.jqplot-table-legend-label { + width: 20em; + } + + div.jqplot-table-legend-swatch { + border-width: 2px 6px; + } + + div.jqplot-table-legend-swatch-outline { + border: none; + } + + tr.jqplot-table-legend td { + padding: 2px; + } + + .legend-row-highlighted { + background-color: #666666; + } + + .legend-text-highlighted { + color: #ffffff; + } + + #chart1 { + width: 96%; + height: 96%; + } + + .jqplot-datestamp { + font-size: 0.8em; + color: #777; +/* margin-top: 1em; + text-align: right;*/ + font-style: italic; + position: absolute; + bottom: 15px; + right: 15px; + } + + td.controls li { + list-style-type: none; + } + + td.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + pre.code { + margin-top: 45px; + clear: both; + } + + </style> + + <div class="chart-container"> + <div id="chart1"></div> + <div class="jqplot-datestamp"></div> + </div> + + <pre class="code brush:js"></pre> + + <script class="code" type="text/javascript"> +$(document).ready(function(){ + + /////////// + // Function to parse a csv file. + // Note, this IS NOT a complete parser. It does not handle quoted text. + // It is implemented to demonstrate functionality from within JavaScript. + // If a full csv parser is needed, check out: + // http://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm + /////////// + var parseCSVFile = function(url) { + var ret = null; + var labels = []; + var ticks = []; + var values = []; + var temp; + $.ajax({ + // have to use synchronous here, else returns before data is fetched + async: false, + url: url, + dataType:'text', + success: function(data) { + // parse csv data + var lines = data.split('\n'); + var line; + for (var i=0, l=lines.length; i<l; i++) { + line = lines[i].replace('\r', '').split(','); + // console.log(line); + if (line.length > 1) { + if (i === 0) { + ticks = line.slice(1, line.length); + for (var n=0, nl=ticks.length; n<nl; n++) { + ticks[n] = [n+1, ticks[n]]; + } + } + else { + labels.push(line[0]); + values.push(line.slice(1, line.length)); + temp = values[values.length-1]; + // make a copy of temp + temp = temp.slice(0, temp.length); + for (var n=0, nl=temp.length; n<nl; n++) { + values[values.length-1][n] = parseFloat(temp[n]); + } + } + } + } + ret = [values, labels, ticks]; + } + }); + return ret; + }; + + var jsonurl = "./KCPsample4.csv"; + + var infos = parseCSVFile(jsonurl); + + // area plots are made with all series except last 2 + data = infos[0].slice(0, infos[0].length-2); + labels = infos[1].slice(0, infos[1].length-2); + ticks = infos[2]; + + // make the plot + + plot1 = $.jqplot('chart1', data, { + title: 'Area Plot', + stackSeries: true, + seriesDefaults: { + showMarker: false, + fill: true, + fillAndStroke: true + }, + legend: { + show: true, + placement: 'outsideGrid', + labels: labels, + location: 'ne', + rowSpacing: '0px' + }, + axesDefaults: { + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + axes: { + xaxis: { + pad: 0, + ticks: ticks, + label: 'Population Vingtile', + tickOptions: { + showGridline: false + } + }, + yaxis: { + min: 0, + max: 100, + label: 'Share of Item in Total Expenditure (%)', + tickOptions: { + showGridline: false, + suffix: '%' + } + } + }, + grid: { + drawBorder: false, + shadow: false, + // background: 'rgba(0,0,0,0)' works to make transparent. + background: 'white' + } + }); + + // add a date at the bottom. + + var d = new $.jsDate(); + $('div.jqplot-datestamp').html('Generated on '+d.strftime('%v')); + + // make it resizable. + + $("div.chart-container").resizable({delay:20}); + + $('div.chart-container').bind('resize', function(event, ui) { + plot1.replot(); + }); + + $('#chart1').bind('jqplotDataHighlight', function(ev, seriesIndex, pointIndex, data) { + var idx = 21 - seriesIndex + $('tr.jqplot-table-legend').removeClass('legend-row-highlighted'); + $('tr.jqplot-table-legend').children('.jqplot-table-legend-label').removeClass('legend-text-highlighted'); + $('tr.jqplot-table-legend').eq(idx).addClass('legend-row-highlighted'); + $('tr.jqplot-table-legend').eq(idx).children('.jqplot-table-legend-label').addClass('legend-text-highlighted'); + }); + + $('#chart1').bind('jqplotDataUnhighlight', function(ev, seriesIndex, pointIndex, data) { + $('tr.jqplot-table-legend').removeClass('legend-row-highlighted'); + $('tr.jqplot-table-legend').children('.jqplot-table-legend-label').removeClass('legend-text-highlighted'); + }); +}); + +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html new file mode 100644 index 00000000..9550b2ca --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html @@ -0,0 +1,217 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Area Chart 2</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="kcp_area.html">Previous</a> <a href="./">Examples</a> <a href="kcp_cdf.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + + <style type="text/css"> + + .chart-container { + border: 1px solid darkblue; + padding: 30px 0px 30px 30px; + width: 900px; + height: 400px; + + } + + table.jqplot-table-legend { + border: 0px; + } + + td.jqplot-table-legend-label { + padding: 0.25em; + } + + td.jqplot-table-legend-label + td.jqplot-table-legend-swatch { + padding-left: 1.5em; + } + + div.jqplot-table-legend-swatch { + border-width: 4px 6px; + } + + div.jqplot-table-legend-swatch-outline { + border: none; + } + + #chart1 { + width: 96%; + height: 96%; + } + + .jqplot-datestamp { + font-size: 0.8em; + color: #777; +/* margin-top: 1em; + text-align: right;*/ + font-style: italic; + position: absolute; + bottom: 15px; + right: 15px; + } + + td.controls li { + list-style-type: none; + } + + td.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + pre.code { + margin-top: 45px; + clear: both; + } + + </style> + + <div class="chart-container"> + <div id="chart1"></div> + <div class="jqplot-datestamp"></div> + </div> + + <pre class="code brush:js"></pre> + + <script class="code" type="text/javascript"> +$(document).ready(function(){ + + var labels = ['Rural', 'Urban']; + + // make the plot + + var makePlot = function (data, textStatus, jqXHR) { + plot1 = $.jqplot('chart1', [data.rural, data.urban], { + title: 'Contribution of Urban and Rural Population to National Percentiles (edited data)', + stackSeries: true, + seriesColors: ['#77933C', '#B9CDE5'], + seriesDefaults: { + showMarker: false, + fill: true, + fillAndStroke: true + }, + legend: { + show: true, + renderer: $.jqplot.EnhancedLegendRenderer, + rendererOptions: { + numberRows: 1 + }, + placement: 'outsideGrid', + labels: labels, + location: 's' + }, + axes: { + xaxis: { + pad: 0, + min: 1, + max: 100, + label: 'Population Percentile', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + tickInterval: 3, + tickOptions: { + showGridline: false + } + }, + yaxis: { + min: 0, + max: 1, + label: 'Percentage of Population', + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + tickOptions: { + formatter: $.jqplot.PercentTickFormatter, + showGridline: false, + formatString: '%d%%' + } + } + }, + grid: { + drawBorder: false, + shadow: false, + // background: 'rgba(0,0,0,0)' works to make transparent. + background: 'white' + } + }); + }; + + // data is in json format in plain file. + // Each series is represented by a 1-D array of y values. + // X values will be added by jqPlot and will start 1 by default. + $.getJSON('kcp_area2.json', '', makePlot); + + // add a date at the bottom. + + var d = new $.jsDate(); + $('div.jqplot-datestamp').html('Generated on '+d.strftime('%v')); + + // make it resizable. + + $("div.chart-container").resizable({delay:20}); + + $('div.chart-container').bind('resize', function(event, ui) { + plot1.replot(); + }); +}); + +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.enhancedLegendRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json new file mode 100644 index 00000000..167454a3 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json @@ -0,0 +1,2 @@ +{"rural": [0.9176, 0.9296, 0.927, 0.9251, 0.9241, 0.9225, 0.9197, 0.9164, 0.9131, 0.9098, 0.9064, 0.9028, 0.8991, 0.8957, 0.8925, 0.8896, 0.8869, 0.8844, 0.882, 0.8797, 0.8776, 0.8755, 0.8735, 0.8715, 0.8696, 0.8677, 0.8658, 0.8637, 0.8616, 0.8594, 0.8572, 0.8548, 0.8524, 0.8499, 0.8473, 0.8446, 0.8418, 0.8389, 0.8359, 0.8328, 0.8295, 0.8262, 0.8227, 0.8191, 0.8155, 0.8119, 0.8083, 0.8048, 0.8013, 0.7979, 0.7945, 0.7912, 0.7879, 0.7846, 0.7813, 0.778, 0.7747, 0.7714, 0.768, 0.7647, 0.7612, 0.7577, 0.7538, 0.7496, 0.7449, 0.7398, 0.7342, 0.7279, 0.721, 0.7137, 0.7059, 0.6977, 0.6889, 0.6797, 0.6698, 0.6593, 0.6482, 0.6367, 0.6247, 0.6121, 0.5989, 0.5852, 0.571, 0.5561, 0.5402, 0.5232, 0.505, 0.4855, 0.4643, 0.4414, 0.4166, 0.3893, 0.3577, 0.3204, 0.2764, 0.2272, 0.1774, 0.1231, 0.0855, 0.0849], +"urban": [0.0824, 0.0704, 0.073, 0.0749, 0.0759, 0.0775, 0.0803, 0.0836, 0.0869, 0.0902, 0.0936, 0.0972, 0.1009, 0.1043, 0.1075, 0.1104, 0.1131, 0.1156, 0.118, 0.1203, 0.1224, 0.1245, 0.1265, 0.1285, 0.1304, 0.1323, 0.1342, 0.1363, 0.1384, 0.1406, 0.1428, 0.1452, 0.1476, 0.1501, 0.1527, 0.1554, 0.1582, 0.1611, 0.1641, 0.1672, 0.1705, 0.1738, 0.1773, 0.1809, 0.1845, 0.1881, 0.1917, 0.1952, 0.1987, 0.2021, 0.2055, 0.2088, 0.2121, 0.2154, 0.2187, 0.222, 0.2253, 0.2286, 0.232, 0.2353, 0.2388, 0.2423, 0.2462, 0.2504, 0.2551, 0.2602, 0.2658, 0.2721, 0.279, 0.2863, 0.2941, 0.3023, 0.3111, 0.3203, 0.3302, 0.3407, 0.3518, 0.3633, 0.3753, 0.3879, 0.4011, 0.4148, 0.429, 0.4439, 0.4598, 0.4768, 0.495, 0.5145, 0.5357, 0.5586, 0.5834, 0.6107, 0.6423, 0.6796, 0.7236, 0.7728, 0.8226, 0.8769, 0.9145, 0.9151]}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html new file mode 100644 index 00000000..7fc9c654 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html @@ -0,0 +1,351 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Cumulative Density Function Chart</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="kcp_area2.html">Previous</a> <a href="./">Examples</a> <a href="kcp_engel.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + + <style type="text/css"> + + .chart-container { + border: 1px solid darkblue; + padding: 30px; + width: 500px; + height: 400px; + + } + + #chart1 { + width: 96%; + height: 96%; + } + + .jqplot-datestamp { + font-size: 0.8em; + color: #777; +/* margin-top: 1em; + text-align: right;*/ + font-style: italic; + position: absolute; + bottom: 15px; + right: 15px; + } + + td.controls li { + list-style-type: none; + } + + td.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + pre.code { + margin-top: 45px; + clear: both; + } + + </style> + + <table class="app"> + <td class="controls"> + + <div> + Data Series: + <ul> + <li><input name="dataSeries" value="national" type="radio" checked />National</li> + <li><input name="dataSeries" value="urban" type="radio" />Urban</li> + <li><input name="dataSeries" value="rural" type="radio" />Rural</li> + </ul> + </div> + + <div> + Background Color: + <ul> + <li><input name="backgroundColor" value="white" type="radio" checked />Default</li> + <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li> + </ul> + </div> + + <div> + Line Width: + <ul> + <li><input name="lineWidth" value="2.5" type="radio" checked />Thin</li> + <li><input name="lineWidth" value="5" type="radio" />Thick</li> + </ul> + </div> + + <div> + Grids: + <ul> + <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li> + <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li> + </ul> + </div> + + <div> + Set lines at: + <ul> + <li><input name="userLine1" value="8250" type="text" size="8" /> and </li> + <li><input name="userLine2" value="60000" type="text" size="8" /></li> + </ul> + </div> + </td> + + <td class="chart"> + <div class="chart-container"> + <div id="chart1"></div> + <div class="jqplot-datestamp"></div> + </div> + </td> + + </table> + + <pre class="code brush:js"></pre> + + <script class="code" type="text/javascript"> +$(document).ready(function(){ + var dataSets = { + national: [[1521.3938, 0.034259], [1626.3757, 0.036908], [1738.6018, 0.039957], [1858.5719, 0.043623], [1986.8205, 0.048008], [2123.9187, 0.053278], [2270.4772, 0.059665], [2427.1488, 0.067405], [2594.6313, 0.076951], [2773.6707, 0.088909], [2965.0643, 0.103706], [3169.6651, 0.121406], [3388.384, 0.142376], [3622.1955, 0.167456], [3872.1408, 0.198392], [4139.3332, 0.237371], [4424.963, 0.287096], [4730.3023, 0.350664], [5056.7112, 0.43322], [5405.6431, 0.546538], [5778.6531, 0.703419], [6177.4022, 0.921534], [6603.6665, 1.225405], [7059.3446, 1.658248], [7546.4664, 2.286919], [8067.2013, 3.168531], [8623.869, 4.338121], [9218.9488, 5.828025], [9855.0905, 7.674282], [10535.1293, 9.856185], [11262.0934, 12.427952], [12039.2208, 15.374906], [12869.973, 18.559853], [13758.0502, 21.938501], [14707.4081, 25.480211], [15722.2754, 29.195872], [16807.1724, 33.040813], [17966.9296, 36.929108], [19206.7162, 40.883239], [20532.0529, 44.934876], [21948.8429, 48.979949], [23463.3991, 52.874709], [25082.4581, 56.569122], [26813.238, 60.143349], [28663.448, 63.632698], [30641.3597, 67.019887], [32755.7239, 70.272329], [35015.9867, 73.31569], [37432.2159, 76.137996], [40015.1736, 78.734309], [42776.4074, 81.144203], [45728.1335, 83.364771], [48883.5393, 85.40072], [52256.6796, 87.276365], [55862.5786, 88.994984], [59717.3573, 90.547773], [63838.07, 91.930153], [68243.1267, 93.143588], [72952.1481, 94.19365], [77986.109, 95.093093], [83367.4313, 95.863261], [89120.1733, 96.518119], [95269.7861, 97.07861], [101843.7444, 97.555507], [108871.3294, 97.958887], [116383.8431, 98.29631], [124414.8718, 98.57645], [132999.9458, 98.805892], [142177.421, 98.994988], [151988.1749, 99.15183], [162475.9062, 99.279882], [173687.5023, 99.384116], [185672.5653, 99.470272], [198484.6408, 99.541871], [212180.7957, 99.601871], [226822.0345, 99.653556], [242473.814, 99.698334], [259205.3802, 99.737113], [277091.4846, 99.770733], [296211.7947, 99.800151], [316651.475, 99.826487], [338501.5668, 99.85018], [361859.7555, 99.871291], [386829.3815, 99.889939], [413522.0015, 99.906286], [442056.5084, 99.92045], [472559.9991, 99.932702], [505168.8456, 99.9433], [540027.3147, 99.952485], [577291.1437, 99.960528], [617126.311, 99.96755], [659710.2484, 99.9736], [705233.3359, 99.978742], [753896.9752, 99.983126], [805918.5808, 99.986929], [861529.8645, 99.990275], [920978.5269, 99.993221], [984529.3611, 99.995794], [1052466.484, 99.998031], [1125090.461, 100]], + + urban: [[2918.1368, 0.022476], [3099.059, 0.026364], [3291.1983, 0.031079], [3495.2501, 0.03683], [3711.9529, 0.043812], [3942.0911, 0.052123], [4186.4977, 0.061977], [4446.0574, 0.07392], [4721.7095, 0.08836], [5014.4519, 0.105627], [5325.3441, 0.126649], [5655.5113, 0.152991], [6006.1487, 0.186685], [6378.5253, 0.230466], [6773.9889, 0.288337], [7193.971, 0.364009], [7639.9917, 0.462362], [8113.6654, 0.591815], [8616.7064, 0.763717], [9150.9356, 0.990265], [9718.2865, 1.291577], [10320.8128, 1.689361], [10960.6953, 2.197829], [11640.25, 2.833156], [12361.9366, 3.607935], [13128.3672, 4.531058], [13942.3158, 5.612064], [14806.7287, 6.829389], [15724.7345, 8.150496], [16699.656, 9.587093], [17735.0219, 11.139531], [18834.5796, 12.843232], [20002.3091, 14.744], [21242.4369, 16.882944], [22559.4426, 19.274088], [23958.1299, 21.898373], [25443.5105, 24.70402], [27020.9832, 27.725078], [28696.2577, 31.02485], [30475.3976, 34.577391], [32364.8747, 38.361881], [34371.4652, 42.220399], [36502.4624, 46.204947], [38765.5793, 50.279452], [41169.0072, 54.284933], [43721.489, 58.020934], [46432.1785, 61.527083], [49310.9281, 65.059633], [52368.1573, 68.631977], [55614.9317, 72.134933], [59063.062, 75.35901], [62724.914, 78.289798], [66613.7972, 80.980675], [70743.7873, 83.426691], [75129.8328, 85.63051], [79787.8886, 87.600439], [84734.6595, 89.324337], [89988.1253, 90.82494], [95567.3009, 92.132382], [101492.3799, 93.28344], [107784.9158, 94.291515], [114467.4749, 95.165628], [121564.3462, 95.917569], [129101.2165, 96.566309], [137105.3654, 97.111687], [145605.9093, 97.557321], [154633.333, 97.923776], [164220.4481, 98.224115], [174401.955, 98.472073], [185214.7052, 98.683427], [196698.0321, 98.864412], [208893.1174, 99.018636], [221844.2859, 99.150765], [235598.4142, 99.266909], [250205.285, 99.369967], [265718.0332, 99.460335], [282192.2909, 99.538693], [299687.9363, 99.60658], [318268.2947, 99.665149], [338000.617, 99.716006], [358956.683, 99.76009], [381211.6455, 99.798168], [404846.394, 99.830962], [429946.4736, 99.858805], [456602.7336, 99.881656], [484912.1405, 99.900176], [514976.218, 99.91564], [546904.2389, 99.928971], [580811.7657, 99.940546], [616821.5259, 99.950572], [655064.5111, 99.959091], [695677.8688, 99.966315], [738809.2149, 99.97239], [784614.6621, 99.97761], [833260.0023, 99.982252], [884922.1907, 99.986425], [939786.4993, 99.990223], [998052.3412, 99.993742], [1059930.608, 99.996997], [1125645.267, 100]], + + rural: [[1522.3755, 0.044856], [1621.4335, 0.048153], [1726.937, 0.051764], [1839.3056, 0.055907], [1958.9857, 0.060801], [2086.4531, 0.066762], [2222.2145, 0.073899], [2366.8099, 0.082612], [2520.8136, 0.093168], [2684.8381, 0.106164], [2859.5353, 0.122508], [3045.6, 0.142886], [3243.7713, 0.16758], [3454.8371, 0.19669], [3679.6367, 0.23118], [3919.0639, 0.273098], [4174.0698, 0.325019], [4445.6684, 0.390807], [4734.9398, 0.474177], [5043.0332, 0.579565], [5371.1735, 0.719638], [5720.6654, 0.911325], [6092.8986, 1.175054], [6489.3516, 1.537895], [6911.6011, 2.041596], [7361.3256, 2.758826], [7840.3135, 3.776691], [8350.4675, 5.133703], [8893.8162, 6.852621], [9472.5195, 8.948744], [10088.8789, 11.417648], [10745.3427, 14.293846], [11444.5212, 17.634387], [12189.194, 21.360828], [12982.3225, 25.29956], [13827.0569, 29.428878], [14726.7567, 33.707138], [15684.9997, 38.129755], [16705.5921, 42.671778], [17792.5925, 47.229102], [18950.322, 51.800588], [20183.3846, 56.383771], [21496.6782, 60.886558], [22895.4161, 65.12792], [24385.1837, 69.030354], [25971.888, 72.617033], [27661.8365, 75.986887], [29461.7179, 79.112304], [31378.744, 81.975561], [33420.5079, 84.537139], [35595.0905, 86.782817], [37911.2052, 88.71901], [40378.0258, 90.413815], [43005.3584, 91.908817], [45803.6014, 93.228911], [48783.9674, 94.381653], [51958.2609, 95.359352], [55339.1005, 96.170082], [58939.867, 96.837248], [62774.9884, 97.378991], [66859.655, 97.8273], [71210.033, 98.200135], [75843.5542, 98.506646], [80778.5711, 98.752685], [86034.7015, 98.949784], [91632.7482, 99.10766], [97595.1423, 99.232528], [103945.4998, 99.334335], [110709.0646, 99.42121], [117912.6058, 99.497035], [125584.9876, 99.563629], [133756.5988, 99.621726], [142459.781, 99.672192], [151729.4076, 99.715746], [161602.1937, 99.752893], [172117.386, 99.784601], [183316.6015, 99.811139], [195244.7151, 99.833203], [207948.9717, 99.852181], [221479.8735, 99.868723], [235890.9734, 99.883153], [251240.0159, 99.89576], [267587.7958, 99.906951], [284999.0141, 99.917064], [303543.4372, 99.926265], [323294.5157, 99.9346], [344330.7648, 99.942191], [366735.4418, 99.949086], [390598.3214, 99.955426], [416013.9199, 99.961279], [443083.2701, 99.966677], [471913.507, 99.971673], [502620.1526, 99.976302], [535324.8297, 99.980575], [570156.9769, 99.984496], [607256.1655, 99.988063], [646769.3381, 99.991314], [688853.5686, 99.994366], [733675.418, 99.997264], [781414.486, 100]] + }; + + // Initial values for the user lines. + var userLine1Val = 8250; + var userLine2Val = 60000; + + + + plot1 = $.jqplot("chart1", [dataSets.national], { + title: "Cumulative Density Function", + cursor: { + show: false + }, + highlighter: { + show: true, + showMarker: false, + useAxesFormatters: false, + formatString: '%d, %.1f' + }, + axesDefaults: { + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + seriesDefaults: { + showMarker: false + }, + axes: { + xaxis: { + label: "Per Capita Expenditure (local currency)", + renderer: $.jqplot.LogAxisRenderer, + pad:0, + ticks: [700, 7000, 70000, 700000, {value:1000000, showLabel:false, showMark:false, showGridline:false}], + tickOptions: { + formatString: "%d" + } + }, + yaxis: { + label: "Population Share (%)", + forceTickAt0: true, + pad: 0 + } + }, + grid: { + drawBorder: false, + shadow: false, + // background: 'rgba(0,0,0,0)' works. + background: "white" + }, + canvasOverlay: { + show: true, + objects: [ + {verticalLine: { + name: "line1", + x: userLine1Val, + color: "#d4c35D", + yOffset: 0, + shadow: false, + showTooltip: true, + tooltipFormatString: "PCE=%'d", + showTooltipPrecision: 0.5 + }}, + {verticalLine: { + name: "line2", + x: userLine2Val, + color: "#d4c35D", + yOffset: 0, + shadow: false, + showTooltip: true, + tooltipFormatString: "PCE=%'d", + showTooltipPrecision: 0.5 + }} + ] + } + }); + + // add a date at the bottom. + + var d = new $.jsDate(); + $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v")); + + // initialize form elements + // set these before attaching event handlers. + + $("input[type=radio][name=dataSeries]").attr("checked", false); + $("input[type=radio][name=dataSeries][value=national]").attr("checked", true); + + $("input[type=radio][name=backgroundColor]").attr("checked", false); + $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true); + + $("input[type=radio][name=lineWidth]").attr("checked", false); + $('input[type=radio][name=lineWidth][value="2.5"]').attr("checked", true); + + $("input[type=text][name=userLine1]").val(userLine1Val); + $("input[type=text][name=userLine2]").val(userLine2Val); + + $("input[type=checkbox][name=gridsVertical]").attr("checked", true); + $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true); + + $("input[type=radio][name=backgroundColor]").change(function(){ + plot1.grid.background = $(this).val(); + plot1.replot(); + }); + + $("input[type=radio][name=dataSeries]").change(function(){ + var val = $(this).val(); + plot1.series[0].data = dataSets[val]; + + switch (val) { + case "national": + plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5"; + break; + case "urban": + plot1.series[0].renderer.shapeRenderer.strokeStyle = "#c54b62"; + break; + case "rural": + plot1.series[0].renderer.shapeRenderer.strokeStyle = "#b2c54b"; + break; + default: + plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5"; + break; + } + // hack to make sure plot auto computes a new format string if needed. + plot1.axes.yaxis.tickOptions.formatString = '' + plot1.replot({resetAxes:["yaxis"]}); + }); + + $("input[type=checkbox][name=gridsVertical]").change(function(){ + plot1.axes.xaxis.tickOptions.showGridline = this.checked; + plot1.replot(); + }); + + $("input[type=checkbox][name=gridsHorizontal]").change(function(){ + plot1.axes.yaxis.tickOptions.showGridline = this.checked; + plot1.replot(); + }); + + $("input[type=text][name=userLine1]").keyup(function(){ + var val = parseFloat($(this).val()); + plot1.plugins.canvasOverlay.get("line1").options.x = val; + plot1.replot(); + }); + + $("input[type=text][name=userLine2]").keyup(function(){ + var val = parseFloat($(this).val()); + plot1.plugins.canvasOverlay.get("line2").options.x = val; + plot1.replot(); + }); + + $("input[type=radio][name=lineWidth]").change(function(){ + var val = parseFloat($(this).val()), shadowOffset; + plot1.series[0].renderer.shapeRenderer.lineWidth = val; + plot1.series[0].renderer.shadowRenderer.lineWidth = val; + // for thick lines, scale shadow offset. + if (val > 2.5) { + shadowOffset = 1.25 * (1 + (Math.atan((val/2.5))/0.785398163 - 1)*0.6); + // var shadow_offset = this.shadowOffset; + } + // for skinny lines, don't make such a big shadow. + else { + shadowOffset = 1.25*Math.atan((val/2.5))/0.785398163; + } + plot1.series[0].renderer.shadowRenderer.offset = shadowOffset; + plot1.plugins.canvasOverlay.get("line1").options.lineWidth = val; + plot1.plugins.canvasOverlay.get("line2").options.lineWidth = val; + plot1.replot(); + }); + + + $("div.chart-container").resizable({delay:20}); + + $("div.chart-container").bind("resize", function(event, ui) { + plot1.replot(); + }); +}); + +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html new file mode 100644 index 00000000..940c2d5a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html @@ -0,0 +1,256 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Engel Curves</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="kcp_cdf.html">Previous</a> <a href="./">Examples</a> <a href="kcp_lorenz.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + + <style type="text/css"> + + .chart-container { + border: 1px solid darkblue; + padding: 30px 0px 30px 30px; + width: 900px; + height: 400px; + + } + + table.jqplot-table-legend { + font-size: 0.65em; + line-height: 1em; + margin: 0px 0px 10px 15px; + } + + td.jqplot-table-legend-label { + width: 20em; + } + + div.jqplot-table-legend-swatch { + border-width: 1.5px 6px; + } + + div.jqplot-table-legend-swatch-outline { + border: none; + } + + #chart1 { + width: 96%; + height: 96%; + } + + .jqplot-datestamp { + font-size: 0.8em; + color: #777; +/* margin-top: 1em; + text-align: right;*/ + font-style: italic; + position: absolute; + bottom: 15px; + right: 15px; + } + + td.controls li { + list-style-type: none; + } + + td.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + pre.code { + margin-top: 45px; + clear: both; + } + + </style> + + <div class="chart-container"> + <div id="chart1"></div> + <div class="jqplot-datestamp"></div> + </div> + + <pre class="code brush:js"></pre> + + <script class="code" type="text/javascript"> +$(document).ready(function(){ + + /////////// + // This is NOT a full csv parser. + // It does not handle quoated text. + // It is for demonstration only. + // For a full featured csv parser, look at: + // + // http://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm + /////////// + + var parseCSVFile = function(url) { + var ret = null; + var labels = []; + var ticks = []; + var values = []; + var temp; + $.ajax({ + // have to use synchronous here, else returns before data is fetched + async: false, + url: url, + dataType:"text", + success: function(data) { + // parse csv data + var lines = data.split('\n'); + var line; + for (var i=0, l=lines.length; i<l; i++) { + line = lines[i].replace('\r', '').split(','); + // console.log(line); + if (line.length > 1) { + if (i === 0) { + ticks = line.slice(1, line.length); + } + else { + labels.push(line[0]); + values.push(line.slice(1, line.length)); + temp = values[values.length-1]; + for (n in temp) { + values[values.length-1][n] = parseFloat(temp[n]); + } + } + } + } + ret = [values, labels, ticks]; + } + }); + return ret; + }; + + var jsonurl = "./KCPsample4.csv"; + + var infos = parseCSVFile(jsonurl); + var data = infos[0]; + var labels = infos[1]; + var ticks = infos[2]; + + // make the plot + + plot1 = $.jqplot("chart1", data, { + title: "Engel Curves", + animate: true, + axesDefaults: { + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + seriesDefaults: { + showMarker: false + }, + legend: { + show: true, + renderer: $.jqplot.EnhancedLegendRenderer, + placement: "outsideGrid", + labels: labels, + location: "ne", + rowSpacing: "0px", + rendererOptions: { + // set to true to replot when toggling series on/off + // set to an options object to pass in replot options. + seriesToggle: 'normal', + seriesToggleReplot: {resetAxes: true} + } + }, + axes: { + xaxis: { + label: 'Population Percentile', + pad: 1.01, + tickOptions: { + showGridline: false + } + }, + yaxis: { + label: 'Share in Total Expenditure (%)', + tickOptions: { + suffix: '%' + }, + padMin: 0, + padMax: 1.05 + } + }, + grid: { + drawBorder: false, + shadow: false, + // background: 'rgba(0,0,0,0)' works to make transparent. + background: "white" + } + }); + + // add a date at the bottom. + + var d = new $.jsDate(); + $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v")); + + // make it resizable. + + $("div.chart-container").resizable({delay:20}); + + $("div.chart-container").bind("resize", function(event, ui) { + plot1.replot(); + }); +}); + +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here -->> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.enhancedLegendRenderer.min.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html new file mode 100644 index 00000000..2fcf661d --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html @@ -0,0 +1,528 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Lorenz Curves</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="kcp_engel.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pdf.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + + <style type="text/css"> + + .chart-container { + border: 1px solid darkblue; + padding: 30px; + width: 500px; + height: 400px; + + } + + #chart1 { + width: 96%; + height: 96%; + } + + .jqplot-datestamp { + font-size: 0.8em; + color: #777; +/* margin-top: 1em; + text-align: right;*/ + font-style: italic; + position: absolute; + bottom: 15px; + right: 15px; + } + + td.controls li { + list-style-type: none; + } + + td.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + pre.code { + margin-top: 45px; + clear: both; + } + + </style> + + <table class="app"> + <td class="controls"> + + <div> + Data Series: + <ul> + <li><input class="dataSeries-checkbox" name="dataSeries_national" value="national" type="checkbox" checked />National</li> + <li><input class="dataSeries-checkbox" name="dataSeries_urban" value="urban" type="checkbox" />Urban</li> + <li><input class="dataSeries-checkbox" name="dataSeries_rural" value="rural" type="checkbox" />Rural</li> + </ul> + </div> + + <div> + Background Color: + <ul> + <li><input name="backgroundColor" value="white" type="radio" checked />Default</li> + <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li> + </ul> + </div> + + <div> + Line Width: + <ul> + <li><input name="lineWidth" value="2.5" type="radio" checked />Thin</li> + <li><input name="lineWidth" value="5" type="radio" />Thick</li> + </ul> + </div> + + <div> + Grids: + <ul> + <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li> + <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li> + </ul> + </div> + + <div> + Cutoff Lines: + <ul> + <li><input name="cutoffLines" value="showCutoffLines" type="checkbox" checked />Show</li> + <li>Low: <input name="userLine1" value="42" type="text" size="6" /></li> + <li>High: <input name="userLine2" value="75" type="text" size="6" /></li> + </ul> + </div> + </td> + + <td class="chart"> + <div class="chart-container"> + <div id="chart1"></div> + <div class="jqplot-datestamp"></div> + </div> + </td> + + </table> + + <pre class="code brush:js"></pre> + + + + <script class="code" type="text/javascript"> +$(document).ready(function(){ + var dataSets = { + national: [[0, 0], [0.034259, 0.000122], [0.036908, 0.000271], [0.039957, 0.000457], [0.043623, 0.000699], [0.048008, 0.001005], [0.053278, 0.001404], [0.059665, 0.001916], [0.067405, 0.002587], [0.076951, 0.003482], [0.088909, 0.004676], [0.103706, 0.006234], [0.121406, 0.008198], [0.142376, 0.010698], [0.167456, 0.013945], [0.198392, 0.018266], [0.237371, 0.024152], [0.287096, 0.03217], [0.350664, 0.043128], [0.43322, 0.058856], [0.546538, 0.08196], [0.703419, 0.116382], [0.921534, 0.167573], [1.225405, 0.244101], [1.658248, 0.362099], [2.286919, 0.545089], [3.168531, 0.811148], [4.338121, 1.180312], [5.828025, 1.677699], [7.674282, 2.317937], [9.856185, 3.124879], [12.427952, 4.135038], [15.374906, 5.337835], [18.559853, 6.704187], [21.938501, 8.240167], [25.480211, 9.968066], [29.195872, 11.896316], [33.040813, 13.995922], [36.929108, 16.268393], [40.883239, 18.753271], [44.934876, 21.456742], [48.979949, 24.281483], [52.874709, 27.163823], [56.569122, 30.090586], [60.143349, 33.155912], [63.632698, 36.332609], [67.019887, 39.647977], [70.272329, 42.982924], [73.31569, 46.301522], [76.137996, 49.580067], [78.734309, 52.80729], [81.144203, 56.013671], [83.364771, 59.154237], [85.40072, 62.237023], [87.276365, 65.274088], [88.994984, 68.231226], [90.547773, 71.063226], [91.930153, 73.740825], [93.143588, 76.235257], [94.19365, 78.526502], [95.093093, 80.626967], [95.863261, 82.534767], [96.518119, 84.276606], [97.07861, 85.871008], [97.555507, 87.313822], [97.958887, 88.612275], [98.29631, 89.76839], [98.57645, 90.788966], [98.805892, 91.680096], [98.994988, 92.471419], [99.15183, 93.168954], [99.279882, 93.771844], [99.384116, 94.303287], [99.470272, 94.773123], [99.541871, 95.191639], [99.601871, 95.572501], [99.653556, 95.924822], [99.698334, 96.25129], [99.737113, 96.553878], [99.770733, 96.834228], [99.800151, 97.099569], [99.826487, 97.355328], [99.85018, 97.600349], [99.871291, 97.832168], [99.889939, 98.050737], [99.906286, 98.254414], [99.92045, 98.442305], [99.932702, 98.616245], [99.9433, 98.776877], [99.952485, 98.926517], [99.960528, 99.066855], [99.96755, 99.196967], [99.9736, 99.316087], [99.978742, 99.423943], [99.983126, 99.523155], [99.986929, 99.615949], [99.990275, 99.703425], [99.993221, 99.785398], [99.995794, 99.861721], [99.998031, 99.932812], [100, 100]], + + urban: [[0, 0], [0.022476, 0.000211], [0.026364, 0.000483], [0.031079, 0.000832], [0.03683, 0.001286], [0.043812, 0.001867], [0.052123, 0.002596], [0.061977, 0.003523], [0.07392, 0.00472], [0.08836, 0.006245], [0.105627, 0.008192], [0.126649, 0.010745], [0.152991, 0.014185], [0.186685, 0.01887], [0.230466, 0.025421], [0.288337, 0.034602], [0.364009, 0.047302], [0.462362, 0.064833], [0.591815, 0.0896], [0.763717, 0.124292], [0.990265, 0.173076], [1.291577, 0.242086], [1.689361, 0.337485], [2.197829, 0.465168], [2.833156, 0.632983], [3.607935, 0.847553], [4.531058, 1.117227], [5.612064, 1.448077], [6.829389, 1.832426], [8.150496, 2.276607], [9.587093, 2.787319], [11.139531, 3.375891], [12.843232, 4.068491], [14.744, 4.894875], [16.882944, 5.879821], [19.274088, 7.043989], [21.898373, 8.377077], [24.70402, 9.889069], [27.725078, 11.639484], [31.02485, 13.647365], [34.577391, 15.957918], [38.361881, 18.496115], [42.220399, 21.242326], [46.204947, 24.281703], [50.279452, 27.501128], [54.284933, 30.800251], [58.020934, 34.003512], [61.527083, 37.314968], [65.059633, 40.928214], [68.631977, 44.751812], [72.134933, 48.615769], [75.35901, 52.332308], [78.289798, 55.927374], [80.980675, 59.439449], [83.426691, 62.80086], [85.63051, 66.024375], [87.600439, 69.040545], [89.324337, 71.839628], [90.82494, 74.405703], [92.132382, 76.808559], [93.28344, 79.051197], [94.291515, 81.128944], [95.165628, 83.025406], [95.917569, 84.765777], [96.566309, 86.346045], [97.111687, 87.728898], [97.557321, 88.935715], [97.923776, 89.98232], [98.224115, 90.896808], [98.472073, 91.712405], [98.683427, 92.454973], [98.864412, 93.127257], [99.018636, 93.73762], [99.150765, 94.298112], [99.266909, 94.826197], [99.369967, 95.321988], [99.460335, 95.779249], [99.538693, 96.200706], [99.60658, 96.587402], [99.665149, 96.942925], [99.716006, 97.27086], [99.76009, 97.572073], [99.798168, 97.847633], [99.830962, 98.099393], [99.858805, 98.322381], [99.881656, 98.513678], [99.900176, 98.68098], [99.91564, 98.83196], [99.928971, 98.970904], [99.940546, 99.098968], [99.950572, 99.216266], [99.959091, 99.321169], [99.966315, 99.415471], [99.97239, 99.500041], [99.97761, 99.578707], [99.982252, 99.653757], [99.986425, 99.725788], [99.990223, 99.796075], [99.993742, 99.865362], [99.996997, 99.933105], [100, 100]], + + rural: [[0, 0], [0.044856, 0.00021], [0.048153, 0.000449], [0.051764, 0.000737], [0.055907, 0.001092], [0.060801, 0.00155], [0.066762, 0.002138], [0.073899, 0.002894], [0.082612, 0.003876], [0.093168, 0.005148], [0.106164, 0.006835], [0.122508, 0.009095], [0.142886, 0.012069], [0.16758, 0.015833], [0.19669, 0.020566], [0.23118, 0.026579], [0.273098, 0.034447], [0.325019, 0.044958], [0.390807, 0.059161], [0.474177, 0.078318], [0.579565, 0.104359], [0.719638, 0.14226], [0.911325, 0.197784], [1.175054, 0.278915], [1.537895, 0.397967], [2.041596, 0.57646], [2.758826, 0.848809], [3.776691, 1.250019], [5.133703, 1.8048], [6.852621, 2.537016], [8.948744, 3.478047], [11.417648, 4.640509], [14.293846, 6.085098], [17.634387, 7.851123], [21.360828, 9.886831], [25.29956, 12.160142], [29.428878, 14.674388], [33.707138, 17.452533], [38.129755, 20.506174], [42.671778, 23.796002], [47.229102, 27.303349], [51.800588, 31.060857], [56.383771, 35.053496], [60.886558, 39.145526], [65.12792, 43.181575], [69.030354, 47.116849], [72.617033, 51.025646], [75.986887, 54.923636], [79.112304, 58.743632], [81.975561, 62.443223], [84.537139, 65.922443], [86.782817, 69.135506], [88.71901, 72.103335], [90.413815, 74.878966], [91.908817, 77.500639], [93.228911, 79.953304], [94.381653, 82.20716], [95.359352, 84.209133], [96.170082, 85.973719], [96.837248, 87.5051], [97.378991, 88.838761], [97.8273, 90.020506], [98.200135, 91.065991], [98.506646, 91.96714], [98.752685, 92.735267], [98.949784, 93.390185], [99.10766, 93.94721], [99.232528, 94.417506], [99.334335, 94.838423], [99.42121, 95.226477], [99.497035, 95.589049], [99.563629, 95.927413], [99.621726, 96.240868], [99.672192, 96.530566], [99.715746, 96.794464], [99.752893, 97.034788], [99.784601, 97.251679], [99.811139, 97.442528], [99.833203, 97.614678], [99.852181, 97.774104], [99.868723, 97.92227], [99.883153, 98.05955], [99.89576, 98.188276], [99.906951, 98.310902], [99.917064, 98.429897], [99.926265, 98.545001], [99.9346, 98.656238], [99.942191, 98.76409], [99.949086, 98.868769], [99.955426, 98.971691], [99.961279, 99.072938], [99.966677, 99.172455], [99.971673, 99.270765], [99.976302, 99.367541], [99.980575, 99.462525], [99.984496, 99.554946], [99.988063, 99.644199], [99.991314, 99.731953], [99.994366, 99.820708], [99.997264, 99.910225], [100, 100]] + } + + // Initial values for the user lines. + var userLine1Val = 42; + var userLine2Val = 75; + + // find the index of the data point with the closest y value. + // assumes y values are monotonically increasing. + var findXValue = function (y, data) { + var l = data.length; + var temp; + var d; + var idx; + var mid = Math.round(l/2); + var interval = mid; + var prevInterval = mid; + var dist = null; + var absDist = null; + var hold = null; + var ret = null; + var x, x0, x1, y0, y1, lowidx, hiidx; + + // check to see if we're in range + if (y > data[l-1][1]) { + return [l-1, data[l-1]]; + } + else if (y < data[0][1]) { + return [0, data[0]]; + } + + for (var i=0; i<l; i++) { + d = data[mid][1]; + dist = d - y; + absDist = Math.abs(dist); + interval = Math.round(interval/2); + + if (absDist < hold || hold === null) { + hold = absDist; + idx = mid; + } + + // if we're right on the pont, get out of here + if (dist === 0) { + ret = [idx, data[idx]]; + break; + } + + // if we've narrowed it down to an interval, + // interpolate and get out of here + else if (prevInterval === 1) { + // to the right, interpolate -1 to here + if (dist > 0) { + lowidx = idx - 1; + hiidx = idx; + } + else { + lowidx = idx; + hiidx = idx + 1; + } + + x0 = data[lowidx][0]; + x1 = data[hiidx][0]; + y0 = data[lowidx][1]; + y1 = data[hiidx][1]; + + x = x0 + (y - y0) / (y1 - y0) * (x1 - x0); + + ret = [idx, [x, y]]; + break; + } + // to the right, go left and reduce + else if (dist > 0) { + mid -= interval; + } + // to the left go right and increase + else if (dist < 0) { + mid += interval; + } + + prevInterval = interval; + } + return ret; + } + + // determine initial values for horizontal and vertical overlay lines. + + var line1x = findXValue(userLine1Val, dataSets.national)[1][0]; + var line2x = findXValue(userLine2Val, dataSets.national)[1][0];; + var line3y = userLine1Val; + var line4y = userLine2Val; + + // make the plot + + plot1 = $.jqplot("chart1", [dataSets.national, dataSets.urban, dataSets.rural], { + title: "Lorenz Curve", + // To control the size of the grid, can set the gridPadding option, + + // gridPadding: {top: 40, bottom: 60, left: 70, right: 50}, + + // but must know size of container ahead of time and figure out what paddings + // you want to get a square grid. + // Alternatively, can use the gridDimensions option. + // gridDimensions doesn't get reapplied on replot() because plots + // _gridPadding attribute is set the first time it is drawn and it + // won't be overwritten. + + gridDimensions: {height: 290, width: 290}, + seriesColors: ["#4bb2c5", "#c54b62", "#b2c54b"], + cursor: { + show: false + }, + highlighter: { + show: true, + showMarker: false, + useAxesFormatters: false, + formatString: '%d, %.1f' + }, + axesDefaults: { + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + seriesDefaults: { + showMarker: false + }, + series: [ + {show: true}, + {show: false}, + {show: false} + ], + axes: { + xaxis: { + label: '% of Population', + pad:0 + }, + yaxis: { + label: '% of Expenditure', + pad: 0 + } + }, + grid: { + drawBorder: false, + shadow: false, + // background: 'rgba(0,0,0,0)' works. + background: "white" + }, + canvasOverlay: { + show: true, + objects: [, + {line: { + name: "line5", + start: [0,0], + stop: [100,100], + color: "#666666", + shadow: false, + showTooltip: false, + lineWidth: 3 + }}, + {horizontalLine: { + name: "line1", + y: userLine1Val, + color: "#d4c35D", + xmin: 0, + xmax: line1x, + shadow: false, + showTooltip: true, + tooltipFormatString: "%nPS=%'d", + showTooltipPrecision: 0.5 + }}, + {horizontalLine: { + name: "line2", + y: userLine2Val, + color: "#d4c35D", + xmin: 0, + xmax: line2x, + shadow: false, + showTooltip: true, + tooltipFormatString: "%nPS=%'d", + showTooltipPrecision: 0.5 + }}, + {verticalLine: { + name: "line3", + x: line1x, + color: "#d4c35D", + ymin: 0, + ymax: line3y, + shadow: false, + showTooltip: true, + tooltipFormatString: "PCE=%'d", + showTooltipPrecision: 0.5 + }}, + {verticalLine: { + name: "line4", + x: line2x, + color: "#d4c35D", + ymin: 0, + ymax: line4y, + shadow: false, + showTooltip: true, + tooltipFormatString: "PCE=%'d", + showTooltipPrecision: 0.5 + }} + ] + } + }); + + // add a date at the bottom. + + var d = new $.jsDate(); + $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v")); + + // initialize form elements + // set these before attaching event handlers. + + $("input.dataSeries-checkbox").attr("checked", false); + $("input.dataSeries-checkbox[name=dataSeries_national]").attr("checked", true); + + $("input[type=radio][name=backgroundColor]").attr("checked", false); + $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true); + + $("input[type=radio][name=lineWidth]").attr("checked", false); + $('input[type=radio][name=lineWidth][value="2.5"]').attr("checked", true); + + $("input[type=text][name=userLine1]").val(userLine1Val); + $("input[type=text][name=userLine2]").val(userLine2Val); + + $("input[type=checkbox][name=gridsVertical]").attr("checked", true); + $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true); + $("input[type=checkbox][name=cutoffLines]").attr("checked", true); + + + // attach event handlers to form elements + + $("input[type=radio][name=backgroundColor]").change(function(){ + plot1.grid.background = $(this).val(); + plot1.replot(); + }); + + $("input.dataSeries-checkbox").change(function(){ + + plot1.series[0].show = false; + plot1.series[1].show = false; + plot1.series[2].show = false; + + if ($('input[name=dataSeries_national]').get(0).checked === true) { + plot1.series[0].show = true; + } + + if ($('input[name=dataSeries_urban]').get(0).checked === true) { + plot1.series[1].show = true; + } + + if ($('input[name=dataSeries_rural]').get(0).checked === true) { + plot1.series[2].show = true; + } + + // var co = plot1.plugins.canvasOverlay; + // var x1max = findXValue($("input[type=text][name=userLine1]").val(), dataSets[val])[1][0]; + // co.get("line1").options.xmax = co.get("line3").options.x = x1max; + // var x2max = findXValue($("input[type=text][name=userLine2]").val(), dataSets[val])[1][0]; + // co.get("line2").options.xmax = co.get("line4").options.x = x2max; + + plot1.replot(); + }); + + $("input[type=checkbox][name=gridsVertical]").change(function(){ + plot1.axes.xaxis.tickOptions.showGridline = this.checked; + plot1.replot(); + }); + + $("input[type=checkbox][name=gridsHorizontal]").change(function(){ + plot1.axes.yaxis.tickOptions.showGridline = this.checked; + plot1.replot(); + }); + + $("input[type=checkbox][name=cutoffLines]").change(function(){ + var co = plot1.plugins.canvasOverlay; + if (this.checked) { + co.get('line1').options.show = true; + co.get('line2').options.show = true; + co.get('line3').options.show = true; + co.get('line4').options.show = true; + } + else { + co.get('line1').options.show = false; + co.get('line2').options.show = false; + co.get('line3').options.show = false; + co.get('line4').options.show = false; + } + plot1.replot(); + }); + + $("input[type=text][name=userLine1]").keyup(function(){ + var val = parseFloat($(this).val()); + + var co = plot1.plugins.canvasOverlay; + + co.get("line1").options.y = val; + co.get("line3").options.ymax = val; + + var xx = findXValue(val, plot1.series[0].data)[1][0]; + co.get("line1").options.xmax = co.get("line3").options.x = xx; + + plot1.replot(); + }); + + $("input[type=text][name=userLine2]").keyup(function(){ + var val = parseFloat($(this).val()); + + var co = plot1.plugins.canvasOverlay; + + co.get("line2").options.y = val; + co.get("line4").options.ymax = val; + + var xx = findXValue(val, plot1.series[0].data)[1][0]; + co.get("line2").options.xmax = co.get("line4").options.x = xx; + + plot1.replot(); + }); + + $("input[type=radio][name=lineWidth]").change(function(){ + var val = parseFloat($(this).val()), shadowOffset; + plot1.series[0].renderer.shapeRenderer.lineWidth = val; + plot1.series[0].renderer.shadowRenderer.lineWidth = val; + // for thick lines, scale shadow offset. + if (val > 2.5) { + shadowOffset = 1.25 * (1 + (Math.atan((val/2.5))/0.785398163 - 1)*0.6); + // var shadow_offset = this.shadowOffset; + } + // for skinny lines, don't make such a big shadow. + else { + shadowOffset = 1.25*Math.atan((val/2.5))/0.785398163; + } + plot1.series[0].renderer.shadowRenderer.offset = shadowOffset; + for (var i=0, l=plot1.plugins.canvasOverlay.objects.length; i<l; i++) { + plot1.plugins.canvasOverlay.objects[i].options.lineWidth = val; + } + plot1.replot(); + }); + + + $("div.chart-container").resizable({delay:20, aspectRatio: true}); + + $("div.chart-container").bind("resize", function(event, ui) { + plot1.replot(); + }); + + $(".jqplot-target").mouseleave(function(){ $('.jqplot-canvasOverlay-tooltip, .jqplot-highlighter-tooltip, .jqpot-cursor-tooltip').hide(); }); +}); + +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here -->> + <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html new file mode 100644 index 00000000..161ae911 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html @@ -0,0 +1,387 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Probability Density Function Chart</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="kcp_lorenz.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pyramid.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + + <style type="text/css"> + + .chart-container { + border: 1px solid darkblue; + padding: 30px; + width: 500px; + height: 400px; + + } + + #chart1 { + width: 96%; + height: 96%; + } + + .jqplot-datestamp { + font-size: 0.8em; + color: #777; +/* margin-top: 1em; + text-align: right;*/ + font-style: italic; + position: absolute; + bottom: 15px; + right: 15px; + } + + td.controls li { + list-style-type: none; + } + + td.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + pre.code { + margin-top: 45px; + clear: both; + } + + + </style> + + <table class="app"> + <td class="controls"> + + <div> + Data Series: + <ul> + <li><input name="dataSeries" value="national" type="radio" checked />National</li> + <li><input name="dataSeries" value="urban" type="radio" />Urban</li> + <li><input name="dataSeries" value="rural" type="radio" />Rural</li> + </ul> + </div> + + <div> + Background Color: + <ul> + <li><input name="backgroundColor" value="white" type="radio" checked />Default</li> + <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li> + </ul> + </div> + + <div> + Line Width: + <ul> + <li><input name="lineWidth" value="2.5" type="radio" checked />Thin</li> + <li><input name="lineWidth" value="5" type="radio" />Thick</li> + </ul> + </div> + + <div> + Grids: + <ul> + <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li> + <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li> + </ul> + </div> + + <div> + Set lines at: + <ul> + <li><input name="userLine1" value="8250" type="text" size="8" /> and </li> + <li><input name="userLine2" value="60000" type="text" size="8" /></li> + </ul> + </div> + </td> + + <td class="chart"> + <div class="chart-container"> + <div id="chart1"></div> + <div class="jqplot-datestamp"></div> + </div> + </td> + + </table> + + <pre class="code brush:js"></pre> + + + + <script class="code" type="text/javascript"> +$(document).ready(function(){ + var dataSets = { + national: [[1521.3938, 0.03708],[1626.3757, 0.042449],[1738.6018, 0.049646],[1858.5719, 0.060338],[1986.8205, 0.071497], + [2123.9187, 0.087044],[2270.4772, 0.104666],[2427.1488, 0.128184],[2594.6313, 0.159819],[2773.6707, 0.199611], + [2965.0643, 0.243673],[3169.6651, 0.287224],[3388.384, 0.342159],[3622.1955, 0.415635],[3872.1408, 0.517318], + [4139.3332, 0.659341],[4424.963, 0.840113],[4730.3023, 1.074108],[5056.7112, 1.442097],[5405.6431, 1.981591], + [5778.6531, 2.7619],[6177.4022, 3.842131],[6603.6665, 5.373085],[7059.3446, 7.749981],[7546.4664, 11.242774], + [8067.2013, 15.291262],[8623.869, 19.8475],[9218.9488, 25.015106],[9855.0905, 30.121086],[10535.1293, 35.513309], + [11262.0934, 41.587183],[12039.2208, 46.321554],[12869.973, 49.223654],[13758.0502, 51.762768],[14707.4081, 54.47173], + [15722.2754, 56.863937],[16807.1724, 57.920473],[17966.9296, 58.642722],[19206.7162, 59.984755],[20532.0529, 61.048963], + [21948.8429, 59.669989],[23463.3991, 56.956409],[25082.4581, 54.101304],[26813.238, 53.0051],[28663.448, 51.385158], + [30641.3597, 50.165756],[32755.7239, 47.205435],[35015.9867, 43.941876],[37432.2159, 40.609332],[40015.1736, 37.393368], + [42776.4074, 34.753172],[45728.1335, 31.843056],[48883.5393, 29.239575],[52256.6796, 26.946508],[55862.5786, 24.54375], + [59717.3573, 21.987525],[63838.07, 19.447158],[68243.1267, 16.947396],[72952.1481, 14.562087],[77986.109, 12.487872], + [83367.4313, 10.610279],[89120.1733, 9.061827],[95269.7861, 7.759485],[101843.7444, 6.5685],[108871.3294, 5.529717], + [116383.8431, 4.605731],[124414.8718, 3.803268],[132999.9458, 3.106561],[142177.421, 2.580555],[151988.1749, 2.127878], + [162475.9062, 1.720439],[173687.5023, 1.418638],[185672.5653, 1.173246],[198484.6408, 0.977631],[212180.7957, 0.832246], + [226822.0345, 0.720185],[242473.814, 0.624252],[259205.3802, 0.54125],[277091.4846, 0.469102],[296211.7947, 0.415329], + [316651.475, 0.374489],[338501.5668, 0.335609],[361859.7555, 0.297025],[386829.3815, 0.261974],[413522.0015, 0.228367], + [442056.5084, 0.19707],[472559.9991, 0.17066],[505168.8456, 0.147428],[540027.3147, 0.128476],[577291.1437, 0.112712], + [617126.311, 0.097754],[659710.2484, 0.083718],[705233.3359, 0.070908],[753896.9752, 0.061016],[805918.5808, 0.053385], + [861529.8645, 0.047077],[920978.5269, 0.041268],[984529.3611, 0.035943],[1052466.484, 0.031318],[1125090.461, 0.027688]], + + urban: [[2918.1368, 0.0059], [3099.059, 0.0071], [3291.1983, 0.0086], [3495.2501, 0.0105], [3711.9529, 0.0127], + [3942.0911, 0.015], [4186.4977, 0.018], [4446.0574, 0.0218], [4721.7095, 0.0262], [5014.4519, 0.0315], + [5325.3441, 0.03890], [5655.5113, 0.0493], [6006.1487, 0.0633], [6378.5253, 0.0833], [6773.9889, 0.1099], + [7193.971, 0.1432], [7639.9917, 0.18610], [8113.6654, 0.2476], [8616.7064, 0.3266], [9150.9356, 0.432399], + [9718.2865, 0.5759], [10320.8128, 0.7497], [10960.6953, 0.9448], [11640.25, 1.1693], [12361.9366, 1.4078], + [13128.3672, 1.6660], [13942.3158, 1.9247], [14806.7287, 2.10529], [15724.7345, 2.291], [16699.656, 2.4804], + [17735.0219, 2.6917], [18834.5796, 2.9825], [20002.3091, 3.350899], [21242.4369, 3.7607], [22559.4426, 4.1855], + [23958.1299, 4.5129], [25443.5105, 4.8198], [27020.9832, 5.254099], [28696.2577, 5.6751], [30475.3976, 6.1493], + [32364.8747, 6.3607], [34371.4652, 6.4803], [36502.4624, 6.7534], [38765.5793, 6.7358], [41169.0072, 6.4996], + [43721.489, 5.9422], [46432.1785, 5.7844], [49310.9281, 5.943099], [52368.1573, 5.9219], [55614.9317, 5.635099], + [59063.062, 5.1036], [62724.914, 4.6486], [66613.7972, 4.2762], [70743.7873, 3.8538], [75129.8328, 3.4799], + [79787.8886, 3.066], [84734.6595, 2.6792], [89988.1253, 2.312799], [95567.3009, 2.0393], [101492.3799, 1.7922], + [107784.9158, 1.5635], [114467.4749, 1.3438], [121564.3462, 1.1612], [129101.2165, 0.992799], [137105.3654, 0.818], + [145605.9093, 0.6722], [154633.333, 0.549], [164220.4481, 0.4517], [174401.955, 0.379299], [185214.7052, 0.3252], + [196698.0321, 0.2772], [208893.1174, 0.23700], [221844.2859, 0.2049], [235598.4142, 0.1818], [250205.285, 0.1607], + [265718.0332, 0.1396], [282192.2909, 0.1211], [299687.9363, 0.1047], [318268.2947, 0.0906], [338000.617, 0.0787], + [358956.683, 0.0681], [381211.6455, 0.0586], [404846.394, 0.0504], [429946.4736, 0.0421], [456602.7336, 0.034], + [484912.1405, 0.02799], [514976.218, 0.0238], [546904.2389, 0.0206], [580811.7657, 0.0179], [616821.5259, 0.0154], + [655064.5111, 0.013], [695677.8688, 0.011], [738809.2149, 0.0093], [784614.6621, 0.0081], [833260.0023, 0.0073], + [884922.1907, 0.0066], [939786.4993, 0.0061], [998052.3412, 0.0056], [1059930.608, 0.0052], [1125645.267, 0.0048]], + + rural: [[1522.3755, 0.005], [1621.4335, 0.005], [1726.937, 0.006], [1839.3056, 0.00699], [1958.9857, 0.009], + [2086.4531, 0.01], [2222.2145, 0.012], [2366.8099, 0.015], [2520.8136, 0.018], [2684.8381, 0.023], [2859.5353, 0.029], + [3045.6, 0.036], [3243.7713, 0.043], [3454.8371, 0.05], [3679.6367, 0.06], [3919.0639, 0.074], [4174.0698, 0.092], + [4445.6684, 0.117], [4734.9398, 0.148], [5043.0332, 0.189], [5371.1735, 0.258], [5720.6654, 0.356], + [6092.8986, 0.488], [6489.3516, 0.672], [6911.6011, 0.946], [7361.3256, 1.355], [7840.3135, 1.87399], + [8350.4675, 2.434], [8893.8162, 3.016], [9472.5195, 3.639], [10088.8789, 4.22], [10745.3427, 4.92399], + [11444.5212, 5.652], [12189.194, 6.117], [12982.3225, 6.414], [13827.0569, 6.66], [14726.7567, 6.9099], + [15684.9997, 7.131], [16705.5921, 7.213], [17792.5925, 7.22], [18950.322, 7.263], [20183.3846, 7.2459], + [21496.6782, 6.973], [22895.4161, 6.457], [24385.1837, 5.9110], [25971.888, 5.513], [27661.8365, 5.162], + [29461.7179, 4.749], [31378.744, 4.319], [33420.5079, 3.81299], [35595.0905, 3.306], [37911.2052, 2.867], + [40378.0258, 2.518], [43005.3584, 2.233], [45803.6014, 1.96099], [48783.9674, 1.692], [51958.2609, 1.411], + [55339.1005, 1.168],[58939.867, 0.9520], [62774.9884, 0.77799], [66859.655, 0.647], [71210.033, 0.538], + [75843.5542, 0.4349], [80778.5711, 0.348], [86034.7015, 0.2789999], [91632.7482, 0.22300], [97595.1423, 0.177], + [103945.4998, 0.148], [110709.0646, 0.128], [117912.6058, 0.112999], [125584.9876, 0.099], [133756.5988, 0.086], + [142459.781, 0.074], [151729.4076, 0.064], [161602.1937, 0.054], [172117.386, 0.046], [183316.6015, 0.038], + [195244.7151, 0.032], [207948.9717, 0.02799], [221479.8735, 0.025], [235890.9734, 0.021], [251240.0159, 0.019], + [267587.7958, 0.017], [284999.0141, 0.015], [303543.4372, 0.013999], [323294.5157, 0.013], [344330.7648, 0.011], + [366735.4418, 0.01], [390598.3214, 0.01], [416013.9199, 0.009], [443083.2701, 0.008], [471913.507, 0.008], + [502620.1526, 0.00699], [535324.8297, 0.006], [570156.9769, 0.006], [607256.1655, 0.005], [646769.3381, 0.005], + [688853.5686, 0.005], [733675.418, 0.004], [781414.486, 0.004]] + } + + + + plot1 = $.jqplot("chart1", [dataSets.national], { + title: "Probability Density Function", + cursor: { + show: false + }, + highlighter: { + show: true, + showMarker: false, + useAxesFormatters: false, + formatString: '%d, %.1f' + }, + axesDefaults: { + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + seriesDefaults: { + showMarker: false + }, + axes: { + xaxis: { + label: 'Per Capita Expenditure (local currency)', + renderer: $.jqplot.LogAxisRenderer, + pad:0, + ticks: [700, 7000, 70000, 700000, {value:1000000, showLabel:false, showMark:false, showGridline:false}], + tickOptions: { + formatString: "%d" + } + }, + yaxis: { + label: 'Population Share (%)', + forceTickAt0: true, + pad: 0 + } + }, + grid: { + drawBorder: false, + shadow: false, + // background: 'rgba(0,0,0,0)' works. + background: "white" + }, + canvasOverlay: { + show: true, + objects: [ + {verticalLine: { + name: "line1", + x: 8250, + color: "#d4c35D", + yOffset: 0, + shadow: false, + showTooltip: true, + tooltipFormatString: "PCE=%'d", + showTooltipPrecision: 0.5 + }}, + {verticalLine: { + name: "line2", + x: 60000, + color: "#d4c35D", + yOffset: 0, + shadow: false, + showTooltip: true, + tooltipFormatString: "PCE=%'d", + showTooltipPrecision: 0.5 + }} + ] + } + }); + + var d = new $.jsDate(); + $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v")); + + $("input[type=radio][name=backgroundColor]").change(function(){ + plot1.grid.background = $(this).val(); + plot1.replot(); + }); + + $("input[type=radio][name=dataSeries]").change(function(){ + var val = $(this).val(); + plot1.series[0].data = dataSets[val]; + + switch (val) { + case "national": + plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5"; + break; + case "urban": + plot1.series[0].renderer.shapeRenderer.strokeStyle = "#c54b62"; + break; + case "rural": + plot1.series[0].renderer.shapeRenderer.strokeStyle = "#b2c54b"; + break; + default: + plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5"; + break; + } + // hack to make sure plot auto computes a new format string if needed. + plot1.axes.yaxis.tickOptions.formatString = '' + plot1.replot({resetAxes:["yaxis"]}); + }); + + $("input[type=checkbox][name=gridsVertical]").change(function(){ + plot1.axes.xaxis.tickOptions.showGridline = this.checked; + plot1.replot(); + }); + + $("input[type=checkbox][name=gridsHorizontal]").change(function(){ + plot1.axes.yaxis.tickOptions.showGridline = this.checked; + plot1.replot(); + }); + + $("input[type=text][name=userLine1]").keyup(function(){ + var val = parseFloat($(this).val()); + plot1.plugins.canvasOverlay.get("line1").options.x = val; + plot1.replot(); + }); + + $("input[type=text][name=userLine2]").keyup(function(){ + var val = parseFloat($(this).val()); + plot1.plugins.canvasOverlay.get("line2").options.x = val; + plot1.replot(); + }); + + $("input[type=radio][name=lineWidth]").change(function(){ + var val = parseFloat($(this).val()), shadowOffset; + plot1.series[0].renderer.shapeRenderer.lineWidth = val; + plot1.series[0].renderer.shadowRenderer.lineWidth = val; + // for thick lines, scale shadow offset. + if (val > 2.5) { + shadowOffset = 1.25 * (1 + (Math.atan((val/2.5))/0.785398163 - 1)*0.6); + // var shadow_offset = this.shadowOffset; + } + // for skinny lines, don't make such a big shadow. + else { + shadowOffset = 1.25*Math.atan((val/2.5))/0.785398163; + } + plot1.series[0].renderer.shadowRenderer.offset = shadowOffset; + plot1.plugins.canvasOverlay.get("line1").options.lineWidth = val; + plot1.plugins.canvasOverlay.get("line2").options.lineWidth = val; + plot1.replot(); + }); + + + $("div.chart-container").resizable({delay:20}); + + $("div.chart-container").bind("resize", function(event, ui) { + plot1.replot(); + }); +}); + +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here -->> + <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html new file mode 100644 index 00000000..ed048869 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html @@ -0,0 +1,590 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Pyramid Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="kcp_pdf.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pyramid2.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + + + <style type="text/css"> + .chart-container { + border: 1px solid darkblue; + padding: 30px; + width: 600px; + height: 700px; + } + + #chart1 { + width: 96%; + height: 96%; + } + + .jqplot-datestamp { + font-size: 0.8em; + color: #777; + /* margin-top: 1em; + text-align: right;*/ + font-style: italic; + position: absolute; + bottom: 15px; + right: 15px; + } + + td.controls li { + list-style-type: none; + } + + td.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + pre.code { + margin-top: 45px; + clear: both; + } + + div.tooltip { + border: 1px solid #aaa; + margin-right: 10px; + } + + </style> + + <table class="app"> + <td class="controls"> + + <div style="margin-bottom: 15px;"> + Axes: + <select name="axisPosition"> + <option value="both">Left & Right</option> + <option value = "left">Left</option> + <option value = "right">Right</option> + <option value = "mid">Mid</option> + </select> + </div> + + <div> + Background Color: + <ul> + <li><input name="backgroundColor" value="white" type="radio" checked />Default</li> + <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li> + </ul> + </div> + + <div> + Pyramid Color: + <ul> + <li><input name="seriesColor" value="green" type="radio" checked />Green</li> + <li><input name="seriesColor" value="blue" type="radio" />Blue</li> + </ul> + </div> + + <div> + Grids: + <ul> + <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li> + <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li> + <li><input name="showMinorTicks" value="true" type="checkbox" />Only major</li> + <li><input name="plotBands" value="true" type="checkbox" />Plot Bands</li> + </ul> + </div> + + <div> + <ul> + <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li> + <!-- value for showContour is speed at which to fade lines in/out --> + <li><input name="showContour" value="500" type="checkbox" checked />Comparison Line</li> + </ul> + </div> + + <div class="tooltip"> + <table> + <tr> + <td>Age: </td><td><div class="tooltip-item" id="tooltipAge"> </div></td> + </tr> + <tr> + <td>Male: </td><td><div class="tooltip-item" id="tooltipMale"> </div></td> + </tr> + <tr> + <td>Female: </td><td><div class="tooltip-item" id="tooltipFemale"> </div></td> + </tr> + <tr> + <td>Ratio: </td><td><div class="tooltip-item" id="tooltipRatio"> </div></td> + </tr> + </table> + </div> + </td> + + <td class="chart"> + <div class="chart-container"> + <div id="chart1"></div> + <div class="jqplot-datestamp"></div> + </div> + </td> + + </table> + + <pre class="code brush:js"></pre> + + + + <script class="code" type="text/javascript" language="javascript"> + $(document).ready(function(){ + + // the "x" values from the data will go into the ticks array. + // ticks should be strings for this case where we have values like "75+" + var ticks = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75+", ""]; + + // The "y" values of the data are put into seperate series arrays. + var male = [0.635441, 1.066868, 0.889602, 0.816883, 1.016458, 0.916705, 0.79569, 0.970443, 1.046451, 1.335686, 0.926962, 0.936646, 0.919405, 0.722027, 0.896342, 0.993397, 0.613794, 0.916921, 0.828748, 0.43487, 0.391652, 0.517303, 0.507104, 0.336168, 0.554176, 0.691826, 0.66553, 0.686232, 0.7097, 0.356915, 0.756028, 0.430155, 0.420597, 0.608589, 0.609348, 0.83607, 0.79871, 0.63388, 0.866719, 0.711042, 1.160429, 0.439268, 0.659694, 0.468406, 0.340002, 0.996662, 0.371047, 0.638918, 0.462334, 0.467053, 0.545638, 0.463275, 0.480992, 0.515747, 0.499415, 0.287639, 0.520332, 0.443779, 0.334986, 0.43161, 0.474405, 0.179186, 0.620127, 0.219074, 0.411669, 0.495684, 0.315231, 0.275056, 0.157341, 0.113926, 0.24991, 0.128113, 0.175297, 0.103093, 0.253292, 0.988836]; + var female = [0.767078, 0.679554, 1.064493, 0.915063, 0.860792, 0.785728, 0.892471, 0.687886, 1.055313, 0.921839, 0.659624, 1.14516, 0.910735, 1.279864, 0.714669, 0.873929, 0.928453, 0.595752, 1.093534, 0.501142, 0.52829, 0.411606, 0.633309, 0.616121, 0.621781, 0.621598, 0.638378, 0.703724, 0.742589, 0.48523, 0.735727, 0.898816, 0.740614, 0.991105, 1.48909, 1.226996, 1.020624, 0.737742, 0.946817, 0.69129, 0.933744, 0.957472, 0.793112, 0.581121, 0.767528, 1.031739, 1.202133, 0.626926, 0.959522, 0.594303, 1.202145, 0.611707, 0.480779, 0.383338, 0.532876, 0.849878, 0.52453, 0.660183, 0.25419, 0.137567, 0.762322, 0.490294, 0.463194, 0.566921, 0.353006, 0.730591, 0.34669, 0.271638, 0.309785, 0.152756, 0.478111, 0.177234, 0.269302, 0.396318, 0.194934, 1.683044]; + var male2 = [0.230476, 0.175917, 0.225027, 0.40564, 0.408617, 0.495873, 0.441314, 0.282774, 0.47483, 0.393433, 0.580612, 0.220204, 0.514281, 0.32985, 0.514933, 0.507871, 0.398236, 0.362535, 0.603625, 0.528885, 0.550904, 0.87645, 0.857331, 0.713371, 0.703566, 0.703473, 0.858118, 0.751679, 0.832039, 0.752134, 1.202689, 1.069239, 1.051431, 0.732728, 0.992696, 0.828825, 0.723044, 0.857868, 1.088298, 0.86951, 0.914989, 0.549574, 0.672405, 0.637425, 0.530195, 0.706179, 0.941525, 0.576152, 0.913033, 0.647477, 0.734785, 0.441276, 0.583452, 0.537074, 0.7625, 0.662768, 0.307013, 0.384606, 0.470416, 0.22771, 0.470173, 0.152773, 0.338433, 0.348797, 0.10273, 0.285215, 0.139796, 0.186955, 0.143478, 0.178882, 0.141022, 0.1435, 0.146959, 0.056583, 0.05317, 0.784258]; + var female2 = [0.203297, 0.298698, 0.452947, 0.783013, 0.50033, 0.53629, 0.451817, 0.69927, 0.741356, 0.545433, 0.559643, 0.334842, 0.443899, 0.437309, 0.584658, 0.451757, 0.509258, 0.73483, 0.640501, 0.698825, 0.803701, 1.018148, 1.504918, 0.701318, 0.781324, 1.792142, 0.968484, 1.3288, 1.059729, 1.079985, 2.245553, 1.080526, 1.122927, 1.512428, 1.296163, 1.047212, 0.988065, 1.239462, 1.521174, 1.05187, 1.253013, 0.983437, 1.181799, 1.090029, 0.718064, 1.578813, 1.121987, 1.010202, 1.438581, 1.051654, 1.656156, 0.732428, 0.719311, 0.742441, 0.623806, 0.643911, 0.579092, 0.472909, 0.683453, 0.39008, 0.437458, 0.464595, 0.385552, 0.520029, 0.240536, 0.457316, 0.339587, 0.203276, 0.282141, 0.19517, 0.283663, 0.12404, 0.147211, 0.141153, 0.177653, 1.193951]; + + // Custom color arrays are set up for each series to get the look that is desired. + // Two color arrays are created for the default and optional color which the user can pick. + var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"]; + var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"]; + + // To accomodate changing y axis, need to keep track of plot options, so they are defined separately + // changing axes will require recreating the plot, so need to keep + // track of state changes. + var plotOptions = { + // We set up a customized title which acts as labels for the left and right sides of the pyramid. + title: '<div style="float:left;width:50%;text-align:center">Male</div><div style="float:right;width:50%;text-align:center">Female</div>', + + // by default, the series will use the green color scheme. + seriesColors: greenColors, + + grid: { + drawBorder: false, + shadow: false, + background: 'white', + rendererOptions: { + // plotBands is an option of the pyramidGridRenderer. + // it will put banding at starting at a specified value + // along the y axis with an adjustable interval. + plotBands: { + show: false + } + } + }, + + // This makes the effective starting value of the axes 0 instead of 1. + // For display, the y axis will use the ticks we supplied. + defaultAxisStart: 0, + seriesDefaults: { + renderer: $.jqplot.PyramidRenderer, + rendererOptions: { + barPadding: 2, + offsetBars: true + }, + yaxis: 'yaxis', + shadow: false + }, + + // We have 4 series, the left and right pyramid bars and + // the left and rigt overlay lines. + series: [ + // For pyramid plots, the default side is right. + // We want to override here to put first set of bars + // on left. + { + rendererOptions:{ + side: 'left', + synchronizeHighlight: 1 + } + }, + { + yaxis: 'y2axis', + rendererOptions:{ + synchronizeHighlight: 0 + } + }, + // Pyramid series are filled bars by default. + // The overlay series will be unfilled lines. + { + rendererOptions: { + fill: false, + side: 'left' + } + }, + { + yaxis: 'y2axis', + rendererOptions: { + fill: false + } + } + ], + + // Set up all the y axes, since users are allowed to switch between them. + // The only axis that will show is the one that the series are "attached" to. + // We need the appropriate options for the others for when the user switches. + axes: { + xaxis: { + tickOptions: {}, + rendererOptions: { + baselineWidth: 2 + } + }, + yaxis: { + label: 'Age', + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + tickInterval: 5, + showMinorTicks: true, + ticks: ticks, + rendererOptions: { + category: false, + baselineWidth: 2 + } + }, + yMidAxis: { + label: 'Age', + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + tickInterval: 5, + showMinorTicks: true, + ticks: ticks, + rendererOptions: { + category: false, + baselineWidth: 2 + } + }, + y2axis: { + label: 'Age', + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + tickInterval: 5, + showMinorTicks: true, + ticks: ticks, + rendererOptions: { + category: false, + baselineWidth: 2 + } + } + } + }; + + // initialize form elements + // set these before attaching event handlers. + + $('input[type=checkbox][name=gridsVertical]').attr('checked', true); + $('input[type=checkbox][name=gridsHorizontal]').attr('checked', true); + $('input[type=checkbox][name=showMinorTicks]').attr('checked', false); + $('input[type=checkbox][name=plotBands]').attr('checked', false); + $('input[type=checkbox][name=showContour]').attr('checked', true); + $('input[type=checkbox][name=barPadding]').attr('checked', true); + $('select[name=axisPosition]').val('both'); + $('input[type=radio][name=backgroundColor]').attr('checked', false); + $('input[type=radio][name=backgroundColor][value=white]').attr('checked', true); + $('input[type=radio][name=backgroundColor]').attr('checked', false); + $('input[type=radio][name=backgroundColor][value=white]').attr('checked', true); + $('input[type=radio][name=seriesColor]').attr('checked', false); + $('input[type=radio][name=seriesColor][value=green]').attr('checked', true); + + plot1 = $.jqplot('chart1', [male, female, male2, female2], plotOptions); + + + // After plot creation, check to see if contours should be displayed + checkContour(); + + ////// + // The followng functions use verbose css selectors to make + // it clear exactly which elements they are binging to/operating on + ////// + + ////// + // Function which checkes if the countour lines checkbox is checked. + // If not, hide the contour lines by hiding the canvases they are + // drawn on. + ////// + function checkContour() { + if (!$('input[type=checkbox][name=showContour]').get(0).checked) { + plot1.series[2].canvas._elem.addClass('jqplot-series-hidden'); + plot1.series[2].canvas._elem.hide(); + plot1.series[3].canvas._elem.addClass('jqplot-series-hidden'); + plot1.series[3].canvas._elem.hide(); + } + } + + $('select[name=axisPosition]').change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + + switch ($(this).val()) { + case 'both': + plotOptions.series[0].yaxis = 'yaxis'; + plotOptions.series[1].yaxis = 'y2axis'; + plotOptions.series[2].yaxis = 'yaxis'; + plotOptions.series[3].yaxis = 'y2axis'; + break; + case 'left': + plotOptions.series[0].yaxis = 'yaxis'; + plotOptions.series[1].yaxis = 'yaxis'; + plotOptions.series[2].yaxis = 'yaxis'; + plotOptions.series[3].yaxis = 'yaxis'; + break; + case 'right': + plotOptions.series[0].yaxis = 'y2axis'; + plotOptions.series[1].yaxis = 'y2axis'; + plotOptions.series[2].yaxis = 'y2axis'; + plotOptions.series[3].yaxis = 'y2axis'; + break; + case 'mid': + plotOptions.series[0].yaxis = 'yMidAxis'; + plotOptions.series[1].yaxis = 'yMidAxis'; + plotOptions.series[2].yaxis = 'yMidAxis'; + plotOptions.series[3].yaxis = 'yMidAxis'; + break; + default: + break; + + } + + plot1.destroy(); + plot1 = $.jqplot('chart1', [male, female, male2, female2], plotOptions); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $('input[type=radio][name=backgroundColor]').change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.grid.background = $(this).val(); + plotOptions.grid.background = $(this).val(); + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $('input[type=radio][name=seriesColor]').change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + if ($(this).val() === 'blue') { + // reset highlight colors so they will be recalculated. + plot1.series[0].highlightColors = []; + plot1.series[1].highlightColors = []; + // reset series color to properly calculate highlight color. + plot1.series[0].color = blueColors[0]; + plot1.series[1].color = blueColors[1]; + // to actually draw a new color, have to set the color on the shaperenderer. + plot1.series[0].renderer.shapeRenderer.fillStyle = blueColors[0]; + plot1.series[1].renderer.shapeRenderer.fillStyle = blueColors[1]; + // update plot options state. + plotOptions.seriesColors = blueColors; + } + else if ($(this).val() === 'green') { + // reset highlight colors so they will be recalculated. + plot1.series[0].highlightColors = []; + plot1.series[1].highlightColors = []; + // reset series color to properly calculate highlight color. + plot1.series[0].color = greenColors[0]; + plot1.series[1].color = greenColors[1]; + // to actually draw a new color, have to set the color on the shaperenderer. + plot1.series[0].renderer.shapeRenderer.fillStyle = greenColors[0]; + plot1.series[1].renderer.shapeRenderer.fillStyle = greenColors[1]; + // update plot options state. + plotOptions.seriesColors = blueColors; + } + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $('input[type=checkbox][name=gridsVertical]').change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.axes.xaxis.tickOptions.showGridline = this.checked; + plotOptions.axes.xaxis.tickOptions.showGridline = this.checked; + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $('input[type=checkbox][name=gridsHorizontal]').change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.axes.yaxis.tickOptions.showGridline = this.checked; + plot1.axes.y2axis.tickOptions.showGridline = this.checked; + plot1.axes.yMidAxis.tickOptions.showGridline = this.checked; + plotOptions.axes.yaxis.tickOptions.showGridline = this.checked; + plotOptions.axes.y2axis.tickOptions.showGridline = this.checked; + plotOptions.axes.yMidAxis.tickOptions.showGridline = this.checked; + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $('input[type=checkbox][name=showMinorTicks]').change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.axes.yaxis.showMinorTicks = !this.checked; + plot1.axes.y2axis.showMinorTicks = !this.checked; + plot1.axes.yMidAxis.showMinorTicks = !this.checked; + plotOptions.axes.yaxis.showMinorTicks = !this.checked; + plotOptions.axes.y2axis.showMinorTicks = !this.checked; + plotOptions.axes.yMidAxis.showMinorTicks = !this.checked; + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $('input[type=checkbox][name=plotBands]').change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.grid.plotBands.show = this.checked; + plotOptions.grid.rendererOptions.plotBands.show = this.checked; + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $('input[type=checkbox][name=showContour]').change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var speed = $(this).val(); + if (this.checked) { + plot1.series[2].canvas._elem.removeClass('jqplot-series-hidden'); + plot1.series[2].canvas._elem.fadeIn(speed); + plot1.series[3].canvas._elem.removeClass('jqplot-series-hidden'); + plot1.series[3].canvas._elem.fadeIn(speed); + } + else { + plot1.series[2].canvas._elem.addClass('jqplot-series-hidden'); + plot1.series[2].canvas._elem.fadeOut(speed); + plot1.series[3].canvas._elem.addClass('jqplot-series-hidden'); + plot1.series[3].canvas._elem.fadeOut(speed); + } + }); + + $('input[type=checkbox][name=barPadding]').change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + if (this.checked) { + var val = parseFloat($(this).val()); + plot1.series[0].barPadding = val; + plot1.series[1].barPadding = val; + plotOptions.seriesDefaults.rendererOptions.barPadding = val; + } + else { + plot1.series[0].barPadding = 0; + plot1.series[1].barPadding = 0; + plotOptions.seriesDefaults.rendererOptions.barPadding = 0; + } + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + // bind to the data highlighting event to make custom tooltip: + $('.jqplot-target').bind('jqplotDataHighlight', function(evt, seriesIndex, pointIndex, data) { + // Here, assume first series is male poulation and second series is female population. + // Adjust series indices as appropriate. + var malePopulation = Math.abs(plot1.series[0].data[pointIndex][1]); + var femalePopulation = Math.abs(plot1.series[1].data[pointIndex][1]); + var ratio = femalePopulation / malePopulation * 100; + + $('#tooltipMale').stop(true, true).fadeIn(250).html(malePopulation.toPrecision(4)); + $('#tooltipFemale').stop(true, true).fadeIn(250).html(femalePopulation.toPrecision(4)); + $('#tooltipRatio').stop(true, true).fadeIn(250).html(ratio.toPrecision(4)); + + // Since we don't know which axis is rendererd and acive with out a little extra work, + // just use the supplied ticks array to get the age label. + $('#tooltipAge').stop(true, true).fadeIn(250).html(ticks[pointIndex]); + }); + + // bind to the data highlighting event to make custom tooltip: + $('.jqplot-target').bind('jqplotDataUnhighlight', function(evt, seriesIndex, pointIndex, data) { + // clear out all the tooltips. + $('.tooltip-item').stop(true, true).fadeOut(200).html(''); + }); + + // add a date at the bottom. + + var d = new $.jsDate(); + $('div.jqplot-datestamp').html('Generated on '+d.strftime('%v')); + + $("div.chart-container").resizable({delay:20}); + + $("div.chart-container").bind("resize", function(event, ui) { + plot1.replot(); + }); + + }); + </script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + + <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. --> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script> + + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html new file mode 100644 index 00000000..3714fd0c --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html @@ -0,0 +1,578 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Pyramid Charts 2</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="kcp_pyramid.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pyramid_by_age.html">Next</a></div> + + +<!-- Example scripts go here --> + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + + <style type="text/css"> + .chart-container { + border: 1px solid darkblue; + padding: 30px; + width: 600px; + height: 700px; + } + + #chart1 { + width: 96%; + height: 96%; + } + + .jqplot-datestamp { + font-size: 0.8em; + color: #777; + /* margin-top: 1em; + text-align: right;*/ + font-style: italic; + position: absolute; + bottom: 15px; + right: 15px; + } + + td.controls li { + list-style-type: none; + } + + td.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + pre.code { + margin-top: 45px; + clear: both; + } + + </style> + + <table class="app"> + <td class="controls"> + + <div style="margin-bottom: 15px;"> + Axes: + <select name="axisPosition"> + <option value="both">Left & Right</option> + <option value = "left">Left</option> + <option value = "right">Right</option> + <option value = "mid">Mid</option> + </select> + </div> + + <div> + Background Color: + <ul> + <li><input name="backgroundColor" value="white" type="radio" checked />Default</li> + <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li> + </ul> + </div> + + <div> + Pyramid Color: + <ul> + <li><input name="seriesColor" value="green" type="radio" checked />Green</li> + <li><input name="seriesColor" value="blue" type="radio" />Blue</li> + </ul> + </div> + + <div> + Grids: + <ul> + <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li> + <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li> + <li><input name="showMinorTicks" value="true" type="checkbox" />Only major</li> + <li><input name="plotBands" value="true" type="checkbox" />Plot Bands</li> + </ul> + </div> + + <div> + <ul> + <li><input name="barPadding" value="4" type="checkbox" checked />Gap between bars</li> + <!-- value for showContour is speed at which to fade lines in/out --> + <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li> + </ul> + </div> + + <div class="tooltip"> + <table> + <tr> + <td>Age: </td><td><div class="tooltip-item" id="tooltipAge"> </div></td> + </tr> + <tr> + <td>Male: </td><td><div class="tooltip-item" id="tooltipMale"> </div></td> + </tr> + <tr> + <td>Female: </td><td><div class="tooltip-item" id="tooltipFemale"> </div></td> + </tr> + <tr> + <td>Ratio: </td><td><div class="tooltip-item" id="tooltipRatio"> </div></td> + </tr> + </table> + </div> + </td> + + <td class="chart"> + <div class="chart-container"> + <div id="chart1"></div> + <div class="jqplot-datestamp"></div> + </div> + </td> + + </table> + + <pre class="code brush:js"></pre> + + + + <script class="code" type="text/javascript" language="javascript"> + $(document).ready(function(){ + + // the "x" values from the data will go into the ticks array. + // ticks should be strings for this case where we have values like "75+" + var ticks = ["0-4", "5-9", "10-14", "15-19", "20-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74", "75+"]; + + // The "y" values of the data are put into seperate series arrays. + var male = [4.425251, 5.064975, 4.401382, 3.787731, 2.306403, 3.110203, 2.824716, 3.846422, 3.067799, 2.936013, 2.505067, 2.018346, 1.90446, 1.357237, 0.909704, 0.988836]; + var female = [4.28698, 4.343237, 4.710053, 3.99281, 2.811107, 3.191518, 4.855351, 4.62347, 4.032976, 4.414623, 3.210845, 2.426347, 2.635736, 1.811459, 1.515899, 1.683044]; + var male2 = [1.445677, 2.088224, 2.159879, 2.401152, 3.701622, 3.897444, 5.048783, 4.367545, 3.304588, 3.784367, 3.059088, 2.052513, 1.412907, 0.934326, 0.541234, 0.784258]; + var female2 =[2.238284, 2.974165, 2.360351, 3.03517, 4.80941, 6.229139, 7.257596, 5.847782, 5.226342, 6.201237, 4.474141, 2.769444, 2.048169, 1.47749, 0.87372, 1.193951]; + + // Custom color arrays are set up for each series to get the look that is desired. + // Two color arrays are created for the default and optional color which the user can pick. + var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"]; + var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"]; + + // To accomodate changing y axis, need to keep track of plot options. + // changing axes will require recreating the plot, so need to keep + // track of state changes. + var plotOptions = { + // We set up a customized title which acts as labels for the left and right sides of the pyramid. + title: '<div style="float:left;width:50%;text-align:center">Male</div><div style="float:right;width:50%;text-align:center">Female</div>', + + // by default, the series will use the green color scheme. + seriesColors: greenColors, + + grid: { + drawBorder: false, + shadow: false, + background: "white", + rendererOptions: { + // plotBands is an option of the pyramidGridRenderer. + // it will put banding at starting at a specified value + // along the y axis with an adjustable interval. + plotBands: { + show: false, + interval: 2 + } + }, + }, + + // This makes the effective starting value of the axes 0 instead of 1. + // For display, the y axis will use the ticks we supplied. + defaultAxisStart: 0, + seriesDefaults: { + renderer: $.jqplot.PyramidRenderer, + rendererOptions: { + barPadding: 4 + }, + yaxis: "yaxis", + shadow: false + }, + + // We have 4 series, the left and right pyramid bars and + // the left and rigt overlay lines. + series: [ + // For pyramid plots, the default side is right. + // We want to override here to put first set of bars + // on left. + { + rendererOptions:{ + side: 'left', + synchronizeHighlight: 1 + } + }, + { + yaxis: "y2axis", + rendererOptions:{ + synchronizeHighlight: 0 + } + }, + // Pyramid series are filled bars by default. + // The overlay series will be unfilled lines. + { + rendererOptions: { + fill: false, + side: "left" + } + }, + { + yaxis: "y2axis", + rendererOptions: { + fill: false + } + } + ], + + // Set up all the y axes, since users are allowed to switch between them. + // The only axis that will show is the one that the series are "attached" to. + // We need the appropriate options for the others for when the user switches. + axes: { + xaxis: { + tickOptions: {}, + rendererOptions: { + baselineWidth: 2 + } + }, + yaxis: { + label: "Age", + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: true, + ticks: ticks, + rendererOptions: { + category: true, + baselineWidth: 2 + } + }, + yMidAxis: { + label: "Age", + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: true, + ticks: ticks, + rendererOptions: { + category: true, + baselineWidth: 2 + } + }, + y2axis: { + label: "Age", + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: true, + ticks: ticks, + rendererOptions: { + category: true, + baselineWidth: 2 + } + } + } + }; + + // initialize form elements + // set these before attaching event handlers. + + $("input[type=checkbox][name=gridsVertical]").attr("checked", true); + $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true); + $("input[type=checkbox][name=showMinorTicks]").attr("checked", false); + $("input[type=checkbox][name=plotBands]").attr("checked", false); + $("input[type=checkbox][name=showContour]").attr("checked", true); + $("input[type=checkbox][name=barPadding]").attr("checked", true); + $("select[name=axisPosition]").val("both"); + $("input[type=radio][name=backgroundColor]").attr("checked", false); + $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true); + $("input[type=radio][name=backgroundColor]").attr("checked", false); + $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true); + $("input[type=radio][name=seriesColor]").attr("checked", false); + $("input[type=radio][name=seriesColor][value=green]").attr("checked", true); + + plot1 = $.jqplot("chart1", [male, female, male2, female2], plotOptions); + + // After plot creation, check to see if contours should be displayed + checkContour(); + + ////// + // The followng functions use verbose css selectors to make + // it clear exactly which elements they are binging to/operating on + ////// + + ////// + // Function which checkes if the countour lines checkbox is checked. + // If not, hide the contour lines. + ////// + function checkContour() { + if (!$("input[type=checkbox][name=showContour]").get(0).checked) { + plot1.series[2].canvas._elem.addClass("jqplot-series-hidden"); + plot1.series[2].canvas._elem.hide(); + plot1.series[3].canvas._elem.addClass("jqplot-series-hidden"); + plot1.series[3].canvas._elem.hide(); + } + } + + $("select[name=axisPosition]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + + switch ($(this).val()) { + case "both": + plotOptions.series[0].yaxis = "yaxis"; + plotOptions.series[1].yaxis = "y2axis"; + plotOptions.series[2].yaxis = "yaxis"; + plotOptions.series[3].yaxis = "y2axis"; + break; + case "left": + plotOptions.series[0].yaxis = "yaxis"; + plotOptions.series[1].yaxis = "yaxis"; + plotOptions.series[2].yaxis = "yaxis"; + plotOptions.series[3].yaxis = "yaxis"; + break; + case "right": + plotOptions.series[0].yaxis = "y2axis"; + plotOptions.series[1].yaxis = "y2axis"; + plotOptions.series[2].yaxis = "y2axis"; + plotOptions.series[3].yaxis = "y2axis"; + break; + case "mid": + plotOptions.series[0].yaxis = "yMidAxis"; + plotOptions.series[1].yaxis = "yMidAxis"; + plotOptions.series[2].yaxis = "yMidAxis"; + plotOptions.series[3].yaxis = "yMidAxis"; + break; + default: + break; + + } + + plot1.destroy(); + plot1 = $.jqplot("chart1", [male, female, male2, female2], plotOptions); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $("input[type=radio][name=backgroundColor]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.grid.background = $(this).val(); + plotOptions.grid.background = $(this).val(); + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $("input[type=radio][name=seriesColor]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + if ($(this).val() === "blue") { + // reset highlight colors so they will be recalculated. + plot1.series[0].highlightColors = []; + plot1.series[1].highlightColors = []; + // reset series color to properly calculate highlight color. + plot1.series[0].color = blueColors[0]; + plot1.series[1].color = blueColors[1]; + // to actually draw a new color, have to set the color on the shaperenderer. + plot1.series[0].renderer.shapeRenderer.fillStyle = blueColors[0]; + plot1.series[1].renderer.shapeRenderer.fillStyle = blueColors[1]; + // update plot options state. + plotOptions.seriesColors = blueColors; + } + else if ($(this).val() === "green") { + // reset highlight colors so they will be recalculated. + plot1.series[0].highlightColors = []; + plot1.series[1].highlightColors = []; + // reset series color to properly calculate highlight color. + plot1.series[0].color = greenColors[0]; + plot1.series[1].color = greenColors[1]; + // to actually draw a new color, have to set the color on the shaperenderer. + plot1.series[0].renderer.shapeRenderer.fillStyle = greenColors[0]; + plot1.series[1].renderer.shapeRenderer.fillStyle = greenColors[1]; + // update plot options state. + plotOptions.seriesColors = blueColors; + } + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + + $("input[type=checkbox][name=gridsVertical]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.axes.xaxis.tickOptions.showGridline = this.checked; + plotOptions.axes.xaxis.tickOptions.showGridline = this.checked; + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $("input[type=checkbox][name=gridsHorizontal]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.axes.yaxis.tickOptions.showGridline = this.checked; + plot1.axes.y2axis.tickOptions.showGridline = this.checked; + plot1.axes.yMidAxis.tickOptions.showGridline = this.checked; + plotOptions.axes.yaxis.tickOptions.showGridline = this.checked; + plotOptions.axes.y2axis.tickOptions.showGridline = this.checked; + plotOptions.axes.yMidAxis.tickOptions.showGridline = this.checked; + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $("input[type=checkbox][name=showMinorTicks]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.axes.yaxis.showMinorTicks = !this.checked; + plot1.axes.y2axis.showMinorTicks = !this.checked; + plot1.axes.yMidAxis.showMinorTicks = !this.checked; + plotOptions.axes.yaxis.showMinorTicks = !this.checked; + plotOptions.axes.y2axis.showMinorTicks = !this.checked; + plotOptions.axes.yMidAxis.showMinorTicks = !this.checked; + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $("input[type=checkbox][name=plotBands]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + plot1.grid.plotBands.show = this.checked; + plotOptions.grid.rendererOptions.plotBands.show = this.checked; + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + $("input[type=checkbox][name=showContour]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var speed = $(this).val(); + if (this.checked) { + plot1.series[2].canvas._elem.removeClass("jqplot-series-hidden"); + plot1.series[2].canvas._elem.fadeIn(speed); + plot1.series[3].canvas._elem.removeClass("jqplot-series-hidden"); + plot1.series[3].canvas._elem.fadeIn(speed); + } + else { + plot1.series[2].canvas._elem.addClass("jqplot-series-hidden"); + plot1.series[2].canvas._elem.fadeOut(speed); + plot1.series[3].canvas._elem.addClass("jqplot-series-hidden"); + plot1.series[3].canvas._elem.fadeOut(speed); + } + }); + + $("input[type=checkbox][name=barPadding]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + if (this.checked) { + var val = parseFloat($(this).val()); + plot1.series[0].barPadding = val; + plot1.series[1].barPadding = val; + plotOptions.seriesDefaults.rendererOptions.barPadding = val; + } + else { + plot1.series[0].barPadding = 0; + plot1.series[1].barPadding = 0; + plotOptions.seriesDefaults.rendererOptions.barPadding = 0; + } + plot1.replot(); + // Finally, check to see if we need to hide contour lines. + checkContour(); + }); + + // bind to the data highlighting event to make custom tooltip: + $(".jqplot-target").bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) { + // Here, assume first series is male poulation and second series is female population. + // Adjust series indices as appropriate. + var malePopulation = Math.abs(plot1.series[0].data[pointIndex][1]); + var femalePopulation = Math.abs(plot1.series[1].data[pointIndex][1]); + var ratio = femalePopulation / malePopulation * 100; + + $("#tooltipMale").stop(true, true).fadeIn(250).html(malePopulation.toPrecision(4)); + $("#tooltipFemale").stop(true, true).fadeIn(250).html(femalePopulation.toPrecision(4)); + $("#tooltipRatio").stop(true, true).fadeIn(250).html(ratio.toPrecision(4)); + + // Since we don't know which axis is rendererd and acive with out a little extra work, + // just use the supplied ticks array to get the age label. + $("#tooltipAge").stop(true, true).fadeIn(250).html(ticks[pointIndex]); + }); + + // bind to the data highlighting event to make custom tooltip: + $(".jqplot-target").bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) { + // clear out all the tooltips. + $(".tooltip-item").stop(true, true).fadeOut(200).html(''); + }); + + // add a date at the bottom. + + var d = new $.jsDate(); + $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v")); + + $("div.chart-container").resizable({delay:20}); + + $("div.chart-container").bind("resize", function(event, ui) { + plot1.replot(); + }); + + }); + </script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + + <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. --> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script> + + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html new file mode 100644 index 00000000..7fbf935e --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html @@ -0,0 +1,859 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Pyramid Chart By Age</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + <link href="colorpicker/jquery.colorpicker.css" rel="stylesheet" type="text/css"/> + + <style type="text/css"> + + html { + width: 100%; + height: 100%; + } + + body { + width: 98%; + height: 97%; + margin: 6px; + } + + .quintile-outer-container { + width: 97%; + height: 97%; + margin: auto; + } + + .jqplot-chart { +/* width: 400px; + height: 400px;*/ + } + + .quintile-toolbar .ui-icon { + float: right; + margin: 3px 5px; + } + + table.stats-table td, table.highlighted-stats-table td { + background-color: rgb(230, 230, 230); + padding: 0.5em; + } + + col.label { + width: 14em; + } + + col.value { + width: 7em; + } + + td.quintile-value { + width: 7em; + text-align: right; + } + + table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header { + background-color: rgb(200, 200, 200); + } + + table.stats-table, table.highlighted-stats-table, td.contour-cell { + font-size: 0.7em; + } + + td.contour-cell { + height: 1.5em; + padding-left: 20px; + padding-bottom: 1.5em; + } + + table.highlighted-stats-table { + margin-top: 15px; + } + + div.stats-cell div.input { + font-size: 0.7em; + margin-top: 1.5em; + } + + div.content-container { + padding-left: 230px; /* LC width */ + padding-right: 300px; /* RC width */ + height: 100%; + } + + div.content-container .column { + position: relative; + float: left; + } + + div.controls { + width: 170px; /* LC width */ + right: 230px; /* LC width */ + padding-left: 30px; + padding-right: 30px; + margin-left: -100%; + margin-top: 30px; + } + + div.chart-cell { + width: 100%; + height: 100%; + } + + div.stats-cell { + width: 270px; /* RC width */ + margin-right: -300px; /* RC width */ + padding-right: 30px; + margin-top: 30px; + } + + div.controls, div.controls select { + font-size: 0.8em; + } + + div.controls li { + list-style-type: none; + } + + div.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + div.overlay-chart-container { + display: none; + z-index: 11; + position: fixed; + width: 800px; + left: 50%; + margin-left: -400px; + background-color: white; + } + + div.overlay-chart-container div.ui-icon { + float: right; + margin: 3px 5px; + } + + div.overlay-shadow { + display: none; + z-index: 10; + background-color: rgba(0, 0, 0, 0.8); + position: fixed; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + } + + div.ui-colorpicker div.ui-dialog-titlebar { + padding: 0.1em 0.3em; + } + + input.color { + display: none; + } + + div.colorpicker-container span { + padding: 3px; + } + + div.quintile-content { + width: 100%; + height: 100%; + } + + + @media print { + div.stats-cell { + vertical-align: top; + padding-top: 35px; + } + + table.stats-table, table.stats-table td { + color: #aaaaaa; + border: 1px solid #bbbbbb; + border-collapse: collapse; + } + + table.stats-table tr { + font-family: Verdana,Arial,sans-serif; + /*font-size: 0.7em;*/ + } + } + + </style> + + +</head> +<body> + +<!-- Example scripts go here --> + + + <div class="overlay-shadow"></div> + + <div class="overlay-chart-container ui-corner-all"> + <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div> + <div class="overlay-chart-container-content ui-corner-bottom"></div> + </div> + + <div class="quintile-outer-container ui-widget ui-corner-all"> + <div class="quintile-toolbar ui-widget-header ui-corner-top"> + <span class="quintile-title">Income Level:</span> + </div> + <div class="quintile-content ui-widget-content ui-corner-bottom"> + + <div class="content-container"> + + + <div class="chart-cell column"> + <div id="agesChart" class="jqplot-chart"></div> + </div> + + <div class="controls column"> + <table> + <tr> + <td> + Axes: + </td> + <td> + <select name="axisPosition"> + <option value="both">Left & Right</option> + <option value = "left">Left</option> + <option value = "right">Right</option> + <option value = "mid">Mid</option> + </select> + </td> + </tr> + <tr> + <td> + Colors: + </td> + <td> + <ul> + <li><input class="color" type="color" id="colorMale" /> Male</li> + <li><input class="color" type="color" id="colorFemale" /> Female</li> + <li><input class="color" type="color" id="colorBackground" /> Background</li> + <li><input class="color" type="color" id="colorPlotBands" /> Plot Bands</li> + </ul> + </td> + </tr> + <tr> + <td> + Grids: + </td> + <td> + <ul> + <li><input name="gridsVertical" value="vertical" type="checkbox" />Vertical</li> + <li><input name="gridsHorizontal" value="horizontal" type="checkbox" />Horizontal</li> + <li><input name="showMinorTicks" value="true" type="checkbox" checked />Only major</li> + <li><input name="plotBands" value="true" type="checkbox" checked />Plot Bands</li> + </ul> + </td> + </tr> + <tr> + <td colspan="2"> + <ul> + <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li> + <!-- value for showContour is speed at which to fade lines in/out --> + <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li> + </ul> + </td> + </tr> + </table> + </div> + + <div class="stats-cell column"> + <table class="stats-table"> + <colgroup> + <col class="label"> + <col class="value"> + </colgroup> + <tbody> + <tr> + <td class="ui-corner-tl">Mean Age:</td> + <td class="quintile-value summary-meanAge ui-corner-tr"></td> + </tr> + <tr> + <td>Sex Ratio:</td> + <td class="quintile-value summary-sexRatio"></td> + </tr> + <tr> + <td>Age Dependency Ratio:</td> + <td class="quintile-value summary-ageDependencyRatio"></td> + </tr> + <tr> + <td>Population, Total:</td> + <td class="quintile-value summary-populationTotal"></td> + </tr> + <tr> + <td>Population, Male:</td> + <td class="quintile-value summary-populationMale"></td> + </tr> + <tr> + <td class="ui-corner-bl">Population, Female:</td> + <td class="quintile-value summary-populationFemale ui-corner-br"></td> + </tr> + </tbody> + </table> + <table class="highlighted-stats-table"> + <colgroup> + <col class="label"> + <col class="value"> + </colgroup> + <tbody> + <tr class="tooltip-header"> + <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Age: <span class="tooltip-item tooltipAge"> </span></td> + </tr> + <tr> + <td>Population, Male: </td> + <td class="quintile-value"><span class="tooltip-item tooltipMale"> </span></td> + </tr> + <tr> + <td>Population, Female: </td> + <td class="quintile-value"><span class="tooltip-item tooltipFemale"> </span></td> + </tr> + <tr> + <td class="ui-corner-bl">Sex Ratio: </td> + <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio"> </span></td> + </tr> + <tbody> + </table> + </div> + + </div> + + </div> + </div> + + + + <script class="code" type="text/javascript"> + $(document).ready(function(){ + + // if browser supports canvas, show additional toolbar icons + if (!$.jqplot.use_excanvas) { + $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>'); + } + + // for this demo, all data is same for each quintile. + // could do something like this to get the index of the quintile. + // <!-- var quintileIndex = parseInt(< ? php echo $_GET["qidx"]; ? >); --> + + var male; + var female; + var summaryTable; + var sexRatios; + jsondata = []; + + $.ajax({ + type: "GET", + dataType: 'json', + async: false, + url: "ages.json", + contentType: "application/json", + success: function (retdata) { + // array of arrays of data for each quintile + // each quintile array has data for following: + // 0: summary table + // 1: male data + // 2: female data + // 3: ratios + jsondata = retdata; + }, + error: function (xhr) { console.log("ERROR: ", xhr.statusText) } + }); + + + // the "x" values from the data will go into the ticks array. + // ticks should be strings for this case where we have values like "75+" + var ticks = jsondata[4]; + + $('td.summary-meanAge').each(function(index) { + $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][3])); + }); + + $('td.summary-sexRatio').each(function(index) { + $(this).html($.jqplot.sprintf('%5.2f', jsondata[3][0])); + }); + + $('td.summary-ageDependencyRatio').each(function(index) { + $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][6])); + }); + + $('td.summary-populationTotal').each(function(index) { + $(this).html($.jqplot.sprintf("%'d", jsondata[0][0])); + }); + + $('td.summary-populationMale').each(function(index) { + $(this).html($.jqplot.sprintf("%'d", jsondata[0][1])); + }); + + $('td.summary-populationFemale').each(function(index) { + $(this).html($.jqplot.sprintf("%'d", jsondata[0][2])); + }); + + // These two variables should be removed outside of the jqplot.com example environment. + $.jqplot._noToImageButton = true; + $.jqplot._noCodeBlock = true; + + // Custom color arrays are set up for each series to get the look that is desired. + // Two color arrays are created for the default and optional color which the user can pick. + var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"]; + var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"]; + + // To accomodate changing y axis, need to keep track of plot options. + // changing axes will require recreating the plot, so need to keep + // track of state changes. + var plotOptions = { + // We set up a customized title which acts as labels for the left and right sides of the pyramid. + title: { + text: '<span style="margin-left:25%;">Male</span><span style="margin-left:33%;">Female</span>', + textAlign: 'left' + }, + // by default, the series will use the green color scheme. + seriesColors: greenColors, + + grid: { + drawBorder: false, + shadow: false, + background: "#ffffff", + rendererOptions: { + // plotBands is an option of the pyramidGridRenderer. + // it will put banding at starting at a specified value + // along the y axis with an adjustable interval. + plotBands: { + show: true, + interval: 10, + color: 'rgb(245, 235, 215)' + } + } + }, + + // This makes the effective starting value of the axes 0 instead of 1. + // For display, the y axis will use the ticks we supplied. + defaultAxisStart: 0, + seriesDefaults: { + renderer: $.jqplot.PyramidRenderer, + rendererOptions: { + barPadding: 1.5, + offsetBars: true + }, + yaxis: "yaxis", + shadow: false + }, + + // We have 4 series, the left and right pyramid bars and + // the left and rigt overlay lines. + series: [ + // For pyramid plots, the default side is right. + // We want to override here to put first set of bars + // on left. + { + rendererOptions:{ + side: "left", + synchronizeHighlight: 1 + } + }, + { + yaxis: "y2axis", + rendererOptions: { + synchronizeHighlight: 0 + } + }, + { + rendererOptions: { + fill: false, + side: 'left' + } + }, + { + yaxis: 'y2axis', + rendererOptions: { + fill: false + } + } + ], + axesDefaults: { + tickOptions: { + showGridline: false + }, + pad: 0, + rendererOptions: { + baselineWidth: 2 + } + }, + + // Set up all the y axes, since users are allowed to switch between them. + // The only axis that will show is the one that the series are "attached" to. + // We need the appropriate options for the others for when the user switches. + axes: { + xaxis: { + tickOptions: { + formatter: $.jqplot.PercentTickFormatter, + formatString: '%.1f%%' + } + }, + yaxis: { + label: "Age", + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: false, + tickInterval: 5, + ticks: ticks, + rendererOptions: { + tickSpacingFactor: 15, + category: false + } + }, + yMidAxis: { + label: "Age", + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: false, + tickInterval: 5, + ticks: ticks, + rendererOptions: { + tickSpacingFactor: 15, + category: false + } + }, + y2axis: { + label: "Age", + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: false, + tickInterval: 5, + ticks: ticks, + rendererOptions: { + tickSpacingFactor: 15, + category: false + } + } + } + }; + + // resize the chart container to fill the space + $('#agesChart').height($('div.chart-cell').height()*0.96); + $('#agesChart').width($('div.chart-cell').width()*0.97); + + // $('#agesChart').jqplot([jsondata[1], jsondata[2]], plotOptions); + $.jqplot.config.addDomReference = true; + var plot1 = $.jqplot('agesChart', [jsondata[1], jsondata[2]], plotOptions); + + $(window).resize (function(event, ui) { + // pass in resetAxes: true option to get rid of old ticks and axis properties + // which should be recomputed based on new plot size. + $('#agesChart').height($('div.chart-cell').height()*0.96); + $('#agesChart').width($('div.chart-cell').width()*0.97); + plot1.replot( { resetAxes: true } ); + }); + + // initialize form elements + // set these before attaching event handlers. + + $("input[type=checkbox][name=gridsVertical]").attr("checked", false); + $("input[type=checkbox][name=gridsHorizontal]").attr("checked", false); + $("input[type=checkbox][name=showMinorTicks]").attr("checked", true); + $("input[type=checkbox][name=plotBands]").attr("checked", true); + $("input[type=checkbox][name=showContour]").attr("checked", true); + $("input[type=checkbox][name=barPadding]").attr("checked", true); + $("select[name=axisPosition]").val("both"); + + ////// + // The followng functions use verbose css selectors to make + // it clear exactly which elements they are binging to/operating on + ////// + + $("select[name=axisPosition]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + + var opts = {series:[{}, {}, {}, {}]}; + + switch ($(this).val()) { + case "both": + opts.series[0].yaxis = "yaxis"; + opts.series[1].yaxis = "y2axis"; + opts.series[2].yaxis = "yaxis"; + opts.series[3].yaxis = "y2axis"; + break; + case "left": + opts.series[0].yaxis = "yaxis"; + opts.series[1].yaxis = "yaxis"; + opts.series[2].yaxis = "yaxis"; + opts.series[3].yaxis = "yaxis"; + break; + case "right": + opts.series[0].yaxis = "y2axis"; + opts.series[1].yaxis = "y2axis"; + opts.series[2].yaxis = "y2axis"; + opts.series[3].yaxis = "y2axis"; + break; + case "mid": + opts.series[0].yaxis = "yMidAxis"; + opts.series[1].yaxis = "yMidAxis"; + opts.series[2].yaxis = "yMidAxis"; + opts.series[3].yaxis = "yMidAxis"; + break; + default: + break; + + } + + plot1.replot(opts); + }); + + // bind to the data highlighting event to make custom tooltip: + $(".jqplot-target").each(function(index){ + $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) { + // Here, assume first series is male poulation and second series is female population. + // Adjust series indices as appropriate. + var plot = $(this).data('jqplot'); + var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * jsondata[0][1]; + var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * jsondata[0][2]; + var malePopulation = jsondata[1][pointIndex] * jsondata[0][1]; + var femalePopulation = jsondata[2][pointIndex] * jsondata[0][2]; + // var ratio = femalePopulation / malePopulation * 100; + var ratio = jsondata[3][pointIndex]; + + $('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation)); + $('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation)); + $('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio)); + + // Since we don't know which axis is rendererd and acive with out a little extra work, + // just use the supplied ticks array to get the age label. + $('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]); + }); + }); + + // bind to the data highlighting event to make custom tooltip: + $(".jqplot-target").each(function() { + $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) { + // clear out all the tooltips. + $(".tooltip-item").fadeOut(250); + }); + }); + + $('.ui-icon-print').click(function(){ + $(this).parent().next().print(); + }); + + + $("input[type=checkbox][name=gridsVertical]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var opts = {axes: {xaxis: {tickOptions: {showGridline: this.checked}}}}; + plot1.replot(opts); + }); + + + $("input[type=checkbox][name=gridsHorizontal]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var opts = { + axes: { + yaxis: { + tickOptions: {showGridline: this.checked} + }, + y2axis: { + tickOptions: {showGridline: this.checked} + }, + yMidAxis: { + tickOptions: {showGridline: this.checked} + } + } + }; + plot1.replot(opts); + }); + + $("input[type=checkbox][name=plotBands]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var opts = {grid:{ rendererOptions: {plotBands: { show: this.checked}}}}; + plot1.replot(opts); + }); + + //// + // To-Do + // + // initialize form elements on reload. + // figure out what overlay line would be. + // have to adjust ticks to do show minor. + // make like kcp_pyramid.php + //// + $("input[type=checkbox][name=showMinorTicks]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var opts = { + axes: { + yaxis: { + showMinorTicks: !this.checked + }, + y2axis: { + showMinorTicks: !this.checked + }, + yMidAxis: { + showMinorTicks: !this.checked + } + } + }; + plot1.replot(opts); + }); + + $("input[type=checkbox][name=barPadding]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + if (this.checked) { + var val = parseFloat($(this).val()); + var opts = { + seriesDefaults: { + rendererOptions: { + barPadding: val + } + } + }; + } + else { + var opts = { + seriesDefaults: { + rendererOptions: { + barPadding: 0 + } + } + }; + } + plot1.replot(opts); + }); + + + $('.ui-icon-image').each(function() { + $(this).bind('click', function(evt) { + var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target'); + var imgelem = chart.jqplotToImageElem(); + var div = $('div.overlay-chart-container-content'); + div.empty(); + div.append(imgelem); + $('div.overlay-shadow').fadeIn(600); + div.parent().fadeIn(1000); + div = null; + }); + }); + + $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){ + var div = $('div.overlay-chart-container-content'); + div.parent().fadeOut(600); + $('div.overlay-shadow').fadeOut(1000); + }); + + function applyColors () { + var opts = {series:[{}, {}], grid:{rendererOptions:{plotBands:{}}}}; + opts.series[0].color = $('#colorMale').data('colorpicker').color.toCSS(); + opts.series[1].color = $('#colorFemale').data('colorpicker').color.toCSS(); + opts.grid.background = $('#colorBackground').data('colorpicker').color.toCSS(); + opts.grid.rendererOptions.plotBands.color = $('#colorPlotBands').data('colorpicker').color.toCSS(); + + plot1.replot(opts); + + }; + + // $('#colorMale').val(plot1.series[0].color); + + $('#colorMale').colorpicker({ + showOn: 'button', + showHeader: true, + showSwatches: true, + buttonColorize: true, + buttonImageOnly: true, + parts: 'full', + color: plot1.series[0].color, + onClose: applyColors + + }); + + $('#colorFemale').colorpicker({ + showOn: 'button', + showHeader: true, + showSwatches: true, + buttonColorize: true, + buttonImageOnly: true, + parts: 'full', + color: plot1.series[1].color, + onClose: applyColors + + }); + + $('#colorBackground').colorpicker({ + showOn: 'button', + showHeader: true, + showSwatches: true, + buttonColorize: true, + buttonImageOnly: true, + parts: 'full', + color: plot1.grid.background, + onClose: applyColors + + }); + + $('#colorPlotBands').colorpicker({ + showOn: 'button', + showHeader: true, + showSwatches: true, + buttonColorize: true, + buttonImageOnly: true, + parts: 'full', + color: plot1.grid.plotBands.color, + onClose: applyColors + + }); + + }); + </script> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> + + + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + + <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. --> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script> + + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.json2.min.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + <script class="include" type="text/javascript" src="kcp.print.js"></script> + + <script src="colorpicker/jquery.colorpicker.js"></script> + + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php new file mode 100644 index 00000000..6e6bb3ba --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php @@ -0,0 +1,862 @@ +<!DOCTYPE html> + +<html> +<head> +<?php + $title = "Pyramid Chart By Age"; +?> + + <title><?php print $title ?></title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.css" /> + <link rel="stylesheet" type="text/css" href="examples.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + <link href="colorpicker/jquery.colorpicker.css" rel="stylesheet" type="text/css"/> + + <style type="text/css"> + + html { + width: 100%; + height: 100%; + } + + body { + width: 98%; + height: 97%; + margin: 6px; + } + + .quintile-outer-container { + width: 97%; + height: 97%; + margin: auto; + } + + .jqplot-chart { +/* width: 400px; + height: 400px;*/ + } + + .quintile-toolbar .ui-icon { + float: right; + margin: 3px 5px; + } + + table.stats-table td, table.highlighted-stats-table td { + background-color: rgb(230, 230, 230); + padding: 0.5em; + } + + col.label { + width: 14em; + } + + col.value { + width: 7em; + } + + td.quintile-value { + width: 7em; + text-align: right; + } + + table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header { + background-color: rgb(200, 200, 200); + } + + table.stats-table, table.highlighted-stats-table, td.contour-cell { + font-size: 0.7em; + } + + td.contour-cell { + height: 1.5em; + padding-left: 20px; + padding-bottom: 1.5em; + } + + table.highlighted-stats-table { + margin-top: 15px; + } + + div.stats-cell div.input { + font-size: 0.7em; + margin-top: 1.5em; + } + + div.content-container { + padding-left: 230px; /* LC width */ + padding-right: 300px; /* RC width */ + height: 100%; + } + + div.content-container .column { + position: relative; + float: left; + } + + div.controls { + width: 170px; /* LC width */ + right: 230px; /* LC width */ + padding-left: 30px; + padding-right: 30px; + margin-left: -100%; + margin-top: 30px; + } + + div.chart-cell { + width: 100%; + height: 100%; + } + + div.stats-cell { + width: 270px; /* RC width */ + margin-right: -300px; /* RC width */ + padding-right: 30px; + margin-top: 30px; + } + + div.controls, div.controls select { + font-size: 0.8em; + } + + div.controls li { + list-style-type: none; + } + + div.controls ul { + margin-top: 0.5em; + padding-left: 0.2em; + } + + div.overlay-chart-container { + display: none; + z-index: 11; + position: fixed; + width: 800px; + left: 50%; + margin-left: -400px; + background-color: white; + } + + div.overlay-chart-container div.ui-icon { + float: right; + margin: 3px 5px; + } + + div.overlay-shadow { + display: none; + z-index: 10; + background-color: rgba(0, 0, 0, 0.8); + position: fixed; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + } + + div.ui-colorpicker div.ui-dialog-titlebar { + padding: 0.1em 0.3em; + } + + input.color { + display: none; + } + + div.colorpicker-container span { + padding: 3px; + } + + div.quintile-content { + width: 100%; + height: 100%; + } + + + @media print { + div.stats-cell { + vertical-align: top; + padding-top: 35px; + } + + table.stats-table, table.stats-table td { + color: #aaaaaa; + border: 1px solid #bbbbbb; + border-collapse: collapse; + } + + table.stats-table tr { + font-family: Verdana,Arial,sans-serif; + /*font-size: 0.7em;*/ + } + } + + </style> + + +</head> +<body> + +<!-- Example scripts go here --> + + + <div class="overlay-shadow"></div> + + <div class="overlay-chart-container ui-corner-all"> + <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div> + <div class="overlay-chart-container-content ui-corner-bottom"></div> + </div> + + <div class="quintile-outer-container ui-widget ui-corner-all"> + <div class="quintile-toolbar ui-widget-header ui-corner-top"> + <span class="quintile-title">Income Level:</span> + </div> + <div class="quintile-content ui-widget-content ui-corner-bottom"> + + <div class="content-container"> + + + <div class="chart-cell column"> + <div id="agesChart" class="jqplot-chart"></div> + </div> + + <div class="controls column"> + <table> + <tr> + <td> + Axes: + </td> + <td> + <select name="axisPosition"> + <option value="both">Left & Right</option> + <option value = "left">Left</option> + <option value = "right">Right</option> + <option value = "mid">Mid</option> + </select> + </td> + </tr> + <tr> + <td> + Colors: + </td> + <td> + <ul> + <li><input class="color" type="color" id="colorMale" /> Male</li> + <li><input class="color" type="color" id="colorFemale" /> Female</li> + <li><input class="color" type="color" id="colorBackground" /> Background</li> + <li><input class="color" type="color" id="colorPlotBands" /> Plot Bands</li> + </ul> + </td> + </tr> + <tr> + <td> + Grids: + </td> + <td> + <ul> + <li><input name="gridsVertical" value="vertical" type="checkbox" />Vertical</li> + <li><input name="gridsHorizontal" value="horizontal" type="checkbox" />Horizontal</li> + <li><input name="showMinorTicks" value="true" type="checkbox" checked />Only major</li> + <li><input name="plotBands" value="true" type="checkbox" checked />Plot Bands</li> + </ul> + </td> + </tr> + <tr> + <td colspan="2"> + <ul> + <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li> + <!-- value for showContour is speed at which to fade lines in/out --> + <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li> + </ul> + </td> + </tr> + </table> + </div> + + <div class="stats-cell column"> + <table class="stats-table"> + <colgroup> + <col class="label"> + <col class="value"> + </colgroup> + <tbody> + <tr> + <td class="ui-corner-tl">Mean Age:</td> + <td class="quintile-value summary-meanAge ui-corner-tr"></td> + </tr> + <tr> + <td>Sex Ratio:</td> + <td class="quintile-value summary-sexRatio"></td> + </tr> + <tr> + <td>Age Dependency Ratio:</td> + <td class="quintile-value summary-ageDependencyRatio"></td> + </tr> + <tr> + <td>Population, Total:</td> + <td class="quintile-value summary-populationTotal"></td> + </tr> + <tr> + <td>Population, Male:</td> + <td class="quintile-value summary-populationMale"></td> + </tr> + <tr> + <td class="ui-corner-bl">Population, Female:</td> + <td class="quintile-value summary-populationFemale ui-corner-br"></td> + </tr> + </tbody> + </table> + <table class="highlighted-stats-table"> + <colgroup> + <col class="label"> + <col class="value"> + </colgroup> + <tbody> + <tr class="tooltip-header"> + <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Age: <span class="tooltip-item tooltipAge"> </span></td> + </tr> + <tr> + <td>Population, Male: </td> + <td class="quintile-value"><span class="tooltip-item tooltipMale"> </span></td> + </tr> + <tr> + <td>Population, Female: </td> + <td class="quintile-value"><span class="tooltip-item tooltipFemale"> </span></td> + </tr> + <tr> + <td class="ui-corner-bl">Sex Ratio: </td> + <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio"> </span></td> + </tr> + <tbody> + </table> + </div> + + </div> + + </div> + </div> + + + + <script class="code" type="text/javascript"> + $(document).ready(function(){ + + // if browser supports canvas, show additional toolbar icons + if (!$.jqplot.use_excanvas) { + $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>'); + } + + // for this demo, all data is same for each quintile. + // could do something like this to get the index of the quintile. + // <!-- var quintileIndex = parseInt(< ? php echo $_GET["qidx"]; ? >); --> + + var male; + var female; + var summaryTable; + var sexRatios; + jsondata = []; + + $.ajax({ + type: "GET", + dataType: 'json', + async: false, + url: "ages.json", + contentType: "application/json", + success: function (retdata) { + // array of arrays of data for each quintile + // each quintile array has data for following: + // 0: summary table + // 1: male data + // 2: female data + // 3: ratios + jsondata = retdata; + }, + error: function (xhr) { console.log("ERROR: ", xhr.statusText) } + }); + + + // the "x" values from the data will go into the ticks array. + // ticks should be strings for this case where we have values like "75+" + var ticks = jsondata[4]; + + $('td.summary-meanAge').each(function(index) { + $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][3])); + }); + + $('td.summary-sexRatio').each(function(index) { + $(this).html($.jqplot.sprintf('%5.2f', jsondata[3][0])); + }); + + $('td.summary-ageDependencyRatio').each(function(index) { + $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][6])); + }); + + $('td.summary-populationTotal').each(function(index) { + $(this).html($.jqplot.sprintf("%'d", jsondata[0][0])); + }); + + $('td.summary-populationMale').each(function(index) { + $(this).html($.jqplot.sprintf("%'d", jsondata[0][1])); + }); + + $('td.summary-populationFemale').each(function(index) { + $(this).html($.jqplot.sprintf("%'d", jsondata[0][2])); + }); + + // These two variables should be removed outside of the jqplot.com example environment. + $.jqplot._noToImageButton = true; + $.jqplot._noCodeBlock = true; + + // Custom color arrays are set up for each series to get the look that is desired. + // Two color arrays are created for the default and optional color which the user can pick. + var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"]; + var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"]; + + // To accomodate changing y axis, need to keep track of plot options. + // changing axes will require recreating the plot, so need to keep + // track of state changes. + var plotOptions = { + // We set up a customized title which acts as labels for the left and right sides of the pyramid. + title: { + text: '<span style="margin-left:25%;">Male</span><span style="margin-left:33%;">Female</span>', + textAlign: 'left' + }, + // by default, the series will use the green color scheme. + seriesColors: greenColors, + + grid: { + drawBorder: false, + shadow: false, + background: "#ffffff", + rendererOptions: { + // plotBands is an option of the pyramidGridRenderer. + // it will put banding at starting at a specified value + // along the y axis with an adjustable interval. + plotBands: { + show: true, + interval: 10, + color: 'rgb(245, 235, 215)' + } + } + }, + + // This makes the effective starting value of the axes 0 instead of 1. + // For display, the y axis will use the ticks we supplied. + defaultAxisStart: 0, + seriesDefaults: { + renderer: $.jqplot.PyramidRenderer, + rendererOptions: { + barPadding: 1.5, + offsetBars: true + }, + yaxis: "yaxis", + shadow: false + }, + + // We have 4 series, the left and right pyramid bars and + // the left and rigt overlay lines. + series: [ + // For pyramid plots, the default side is right. + // We want to override here to put first set of bars + // on left. + { + rendererOptions:{ + side: "left", + synchronizeHighlight: 1 + } + }, + { + yaxis: "y2axis", + rendererOptions: { + synchronizeHighlight: 0 + } + }, + { + rendererOptions: { + fill: false, + side: 'left' + } + }, + { + yaxis: 'y2axis', + rendererOptions: { + fill: false + } + } + ], + axesDefaults: { + tickOptions: { + showGridline: false + }, + pad: 0, + rendererOptions: { + baselineWidth: 2 + } + }, + + // Set up all the y axes, since users are allowed to switch between them. + // The only axis that will show is the one that the series are "attached" to. + // We need the appropriate options for the others for when the user switches. + axes: { + xaxis: { + tickOptions: { + formatter: $.jqplot.PercentTickFormatter, + formatString: '%.1f%%' + } + }, + yaxis: { + label: "Age", + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: false, + tickInterval: 5, + ticks: ticks, + rendererOptions: { + tickSpacingFactor: 15, + category: false + } + }, + yMidAxis: { + label: "Age", + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: false, + tickInterval: 5, + ticks: ticks, + rendererOptions: { + tickSpacingFactor: 15, + category: false + } + }, + y2axis: { + label: "Age", + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: false, + tickInterval: 5, + ticks: ticks, + rendererOptions: { + tickSpacingFactor: 15, + category: false + } + } + } + }; + + // resize the chart container to fill the space + $('#agesChart').height($('div.chart-cell').height()*0.96); + $('#agesChart').width($('div.chart-cell').width()*0.97); + + // $('#agesChart').jqplot([jsondata[1], jsondata[2]], plotOptions); + $.jqplot.config.addDomReference = true; + var plot1 = $.jqplot('agesChart', [jsondata[1], jsondata[2]], plotOptions); + + $(window).resize (function(event, ui) { + // pass in resetAxes: true option to get rid of old ticks and axis properties + // which should be recomputed based on new plot size. + $('#agesChart').height($('div.chart-cell').height()*0.96); + $('#agesChart').width($('div.chart-cell').width()*0.97); + plot1.replot( { resetAxes: true } ); + }); + + // initialize form elements + // set these before attaching event handlers. + + $("input[type=checkbox][name=gridsVertical]").attr("checked", false); + $("input[type=checkbox][name=gridsHorizontal]").attr("checked", false); + $("input[type=checkbox][name=showMinorTicks]").attr("checked", true); + $("input[type=checkbox][name=plotBands]").attr("checked", true); + $("input[type=checkbox][name=showContour]").attr("checked", true); + $("input[type=checkbox][name=barPadding]").attr("checked", true); + $("select[name=axisPosition]").val("both"); + + ////// + // The followng functions use verbose css selectors to make + // it clear exactly which elements they are binging to/operating on + ////// + + $("select[name=axisPosition]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + + var opts = {series:[{}, {}, {}, {}]}; + + switch ($(this).val()) { + case "both": + opts.series[0].yaxis = "yaxis"; + opts.series[1].yaxis = "y2axis"; + opts.series[2].yaxis = "yaxis"; + opts.series[3].yaxis = "y2axis"; + break; + case "left": + opts.series[0].yaxis = "yaxis"; + opts.series[1].yaxis = "yaxis"; + opts.series[2].yaxis = "yaxis"; + opts.series[3].yaxis = "yaxis"; + break; + case "right": + opts.series[0].yaxis = "y2axis"; + opts.series[1].yaxis = "y2axis"; + opts.series[2].yaxis = "y2axis"; + opts.series[3].yaxis = "y2axis"; + break; + case "mid": + opts.series[0].yaxis = "yMidAxis"; + opts.series[1].yaxis = "yMidAxis"; + opts.series[2].yaxis = "yMidAxis"; + opts.series[3].yaxis = "yMidAxis"; + break; + default: + break; + + } + + plot1.replot(opts); + }); + + // bind to the data highlighting event to make custom tooltip: + $(".jqplot-target").each(function(index){ + $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) { + // Here, assume first series is male poulation and second series is female population. + // Adjust series indices as appropriate. + var plot = $(this).data('jqplot'); + var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * jsondata[0][1]; + var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * jsondata[0][2]; + var malePopulation = jsondata[1][pointIndex] * jsondata[0][1]; + var femalePopulation = jsondata[2][pointIndex] * jsondata[0][2]; + // var ratio = femalePopulation / malePopulation * 100; + var ratio = jsondata[3][pointIndex]; + + $('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation)); + $('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation)); + $('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio)); + + // Since we don't know which axis is rendererd and acive with out a little extra work, + // just use the supplied ticks array to get the age label. + $('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]); + }); + }); + + // bind to the data highlighting event to make custom tooltip: + $(".jqplot-target").each(function() { + $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) { + // clear out all the tooltips. + $(".tooltip-item").fadeOut(250); + }); + }); + + $('.ui-icon-print').click(function(){ + $(this).parent().next().print(); + }); + + + $("input[type=checkbox][name=gridsVertical]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var opts = {axes: {xaxis: {tickOptions: {showGridline: this.checked}}}}; + plot1.replot(opts); + }); + + + $("input[type=checkbox][name=gridsHorizontal]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var opts = { + axes: { + yaxis: { + tickOptions: {showGridline: this.checked} + }, + y2axis: { + tickOptions: {showGridline: this.checked} + }, + yMidAxis: { + tickOptions: {showGridline: this.checked} + } + } + }; + plot1.replot(opts); + }); + + $("input[type=checkbox][name=plotBands]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var opts = {grid:{ rendererOptions: {plotBands: { show: this.checked}}}}; + plot1.replot(opts); + }); + + //// + // To-Do + // + // initialize form elements on reload. + // figure out what overlay line would be. + // have to adjust ticks to do show minor. + // make like kcp_pyramid.php + //// + $("input[type=checkbox][name=showMinorTicks]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + var opts = { + axes: { + yaxis: { + showMinorTicks: !this.checked + }, + y2axis: { + showMinorTicks: !this.checked + }, + yMidAxis: { + showMinorTicks: !this.checked + } + } + }; + plot1.replot(opts); + }); + + $("input[type=checkbox][name=barPadding]").change(function(){ + // this refers to the html element we are binding to. + // $(this) is jQuery object on that element. + if (this.checked) { + var val = parseFloat($(this).val()); + var opts = { + seriesDefaults: { + rendererOptions: { + barPadding: val + } + } + }; + } + else { + var opts = { + seriesDefaults: { + rendererOptions: { + barPadding: 0 + } + } + }; + } + plot1.replot(opts); + }); + + + $('.ui-icon-image').each(function() { + $(this).bind('click', function(evt) { + var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target'); + var imgelem = chart.jqplotToImageElem(); + var div = $('div.overlay-chart-container-content'); + div.empty(); + div.append(imgelem); + $('div.overlay-shadow').fadeIn(600); + div.parent().fadeIn(1000); + div = null; + }); + }); + + $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){ + var div = $('div.overlay-chart-container-content'); + div.parent().fadeOut(600); + $('div.overlay-shadow').fadeOut(1000); + }); + + function applyColors () { + var opts = {series:[{}, {}], grid:{rendererOptions:{plotBands:{}}}}; + opts.series[0].color = $('#colorMale').data('colorpicker').color.toCSS(); + opts.series[1].color = $('#colorFemale').data('colorpicker').color.toCSS(); + opts.grid.background = $('#colorBackground').data('colorpicker').color.toCSS(); + opts.grid.rendererOptions.plotBands.color = $('#colorPlotBands').data('colorpicker').color.toCSS(); + + plot1.replot(opts); + + }; + + // $('#colorMale').val(plot1.series[0].color); + + $('#colorMale').colorpicker({ + showOn: 'button', + showHeader: true, + showSwatches: true, + buttonColorize: true, + buttonImageOnly: true, + parts: 'full', + color: plot1.series[0].color, + onClose: applyColors + + }); + + $('#colorFemale').colorpicker({ + showOn: 'button', + showHeader: true, + showSwatches: true, + buttonColorize: true, + buttonImageOnly: true, + parts: 'full', + color: plot1.series[1].color, + onClose: applyColors + + }); + + $('#colorBackground').colorpicker({ + showOn: 'button', + showHeader: true, + showSwatches: true, + buttonColorize: true, + buttonImageOnly: true, + parts: 'full', + color: plot1.grid.background, + onClose: applyColors + + }); + + $('#colorPlotBands').colorpicker({ + showOn: 'button', + showHeader: true, + showSwatches: true, + buttonColorize: true, + buttonImageOnly: true, + parts: 'full', + color: plot1.grid.plotBands.color, + onClose: applyColors + + }); + + }); + </script> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> + + + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.js"></script> + + <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. --> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.js"></script> + + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.json2.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> + <script class="include" type="text/javascript" src="kcp.print.js"></script> + + <script src="colorpicker/jquery.colorpicker.js"></script> + + <script type="text/javascript" src="example.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html new file mode 100644 index 00000000..72077554 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html @@ -0,0 +1,663 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Quintile Pyramid Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="kcp_pyramid_by_age.html">Previous</a> <a href="./">Examples</a> <a href="line-charts.html">Next</a></div> + + +<!-- Example scripts go here --> + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + + <style type="text/css"> + + .quintile-outer-container { + width: 900px; + margin-bottom: 25px; + } + + .jqplot-chart { + width: 500px; + height: 400px; + } + + pre.code { + margin-top: 45px; + clear: both; + } + + .quintile-toolbar .ui-icon { + float: right; + margin: 3px 5px; + } + + table.stats-table td, table.highlighted-stats-table td { + background-color: rgb(230, 230, 230); + padding: 0.5em; + } + + col.label { + width: 14em; + } + + col.value { + width: 7em; + } + + td.quintile-value { + width: 7em; + text-align: right; + } + + table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header { + background-color: rgb(200, 200, 200); + } + + table.stats-table, table.highlighted-stats-table, td.contour-cell { + font-size: 0.7em; + } + + td.contour-cell { + height: 1.5em; + padding-left: 20px; + padding-bottom: 1.5em; + } + + table.highlighted-stats-table { + margin-top: 15px; + } + + td.stats-cell { + padding-left: 20px; + padding-top: 20px; + vertical-align: top; + + } + + td.stats-cell div.input { + font-size: 0.7em; + margin-top: 1.5em; + } + + div.overlay-chart-container { + display: none; + z-index: 11; + position: fixed; + width: 588px; + left: 50%; + margin-left: -294px; + background-color: white; + } + + div.overlay-chart-container .ui-icon { + float: right; + margin: 3px 5px; + } + + div.overlay-shadow { + display: none; + z-index: 10; + background-color: rgba(0, 0, 0, 0.8); + position: fixed; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + } + + @media print { + td.stats-cell { + vertical-align: top; + padding-top: 35px; + } + + table.stats-table, table.stats-table td { + color: #aaaaaa; + border: 1px solid #bbbbbb; + border-collapse: collapse; + } + + table.stats-table tr { + font-family: Verdana,Arial,sans-serif; + /*font-size: 0.7em;*/ + } + } + + </style> + + <div class="overlay-shadow"></div> + + <div class="overlay-chart-container ui-corner-all"> + <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div> + <div class="overlay-chart-container-content ui-corner-bottom"></div> + </div> + + <div class="quintile-outer-container ui-widget ui-corner-all"> + <div class="quintile-toolbar ui-widget-header ui-corner-top"> + <span class="quintile-title">Income Level: First Quintile</span> + <div class="quintile-toggle ui-icon ui-icon-arrowthickstop-1-n"></div> + <div class="ui-icon ui-icon-newwin"></div> + </div> + <div class="quintile-content ui-widget-content ui-corner-bottom"> + <table class="quintile-display"> + <tr> + <td class="chart-cell" rowspan="2"> + <div class="jqplot-chart"></div> + </td> + <td class="stats-cell"> + <table class="stats-table"> + <colgroup> + <col class="label"> + <col class="value"> + </colgroup> + <tbody> + <tr> + <td class="ui-corner-tl">Mean Age:</td> + <td class="quintile-value summary-meanAge ui-corner-tr"></td> + </tr> + <tr> + <td>Sex Ratio:</td> + <td class="quintile-value summary-sexRatio"></td> + </tr> + <tr> + <td>Age Dependency Ratio:</td> + <td class="quintile-value summary-ageDependencyRatio"></td> + </tr> + <tr> + <td>Population, Total:</td> + <td class="quintile-value summary-populationTotal"></td> + </tr> + <tr> + <td>Population, Male:</td> + <td class="quintile-value summary-populationMale"></td> + </tr> + <tr> + <td class="ui-corner-bl">Population, Female:</td> + <td class="quintile-value summary-populationFemale ui-corner-br"></td> + </tr> + </tbody> + </table> + <table class="highlighted-stats-table"> + <colgroup> + <col class="label"> + <col class="value"> + </colgroup> + <tbody> + <tr class="tooltip-header"> + <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Range: <span class="tooltip-item tooltipAge"> </span></td> + </tr> + <tr> + <td>Population, Male: </td> + <td class="quintile-value"><span class="tooltip-item tooltipMale"> </span></td> + </tr> + <tr> + <td>Population, Female: </td> + <td class="quintile-value"><span class="tooltip-item tooltipFemale"> </span></td> + </tr> + <tr> + <td class="ui-corner-bl">Sex Ratio: </td> + <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio"> </span></td> + </tr> + <tbody> + </table> + </td> + </tr> + <tr> + <td class="contour-cell"> + <input name="showContour" type="checkbox" /> Use as overlay on other charts? + </td> + </tr> + </table> + </div> + </div> + + + + <script class="code" type="text/javascript" language="javascript"> + $(document).ready(function(){ + + // if browser supports canvas, show additional toolbar icons + if (!$.jqplot.use_excanvas) { + $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>'); + } + + var quintHash = {0: 'First Quintile', 1: 'Second Quintile', 2: 'Third Quintile', 3: 'Fourth Quintile', 4: 'Fifth Quintile'} + + // Add the needed containers: + for (var i=1; i<5; i++) { + var el = $('div.quintile-outer-container:last') + var clone = el.clone(); + clone.find('span.quintile-title').html('Income Level: ' + quintHash[i]); + clone.insertAfter(el); + } + + var male; + var female; + var summaryTable; + var sexRatios; + var quintiles; + + $.ajax({ + type: "GET", + dataType: 'json', + async: false, + url: "quintiles.json", + contentType: "application/json", + success: function (retdata) { + // array of arrays of data for each quintile + // each quintile array has data for following: + // 0: summary table + // 1: male data + // 2: female data + // 3: ratios + quintiles = retdata; + }, + error: function (xhr) { console.log(xhr.statusText) } + }); + + $('td.summary-meanAge').each(function(index) { + $(this).html($.jqplot.sprintf('%5.2f', quintiles[index][0][3])); + }); + + $('td.summary-sexRatio').each(function(index) { + $(this).html($.jqplot.sprintf('%5.2f', quintiles[index][3][0])); + }); + + $('td.summary-ageDependencyRatio').each(function(index) { + $(this).html($.jqplot.sprintf('%5.2f', quintiles[index][0][6])); + }); + + $('td.summary-populationTotal').each(function(index) { + $(this).html($.jqplot.sprintf("%'d", quintiles[index][0][0])); + }); + + $('td.summary-populationMale').each(function(index) { + $(this).html($.jqplot.sprintf("%'d", quintiles[index][0][1])); + }); + + $('td.summary-populationFemale').each(function(index) { + $(this).html($.jqplot.sprintf("%'d", quintiles[index][0][2])); + }); + + // These two variables should be removed outside of the jqplot.com example environment. + $.jqplot._noToImageButton = true; + $.jqplot._noCodeBlock = true; + + // the "x" values from the data will go into the ticks array. + // ticks should be strings for this case where we have values like "75+" + var ticks = ["0-4", "5-9", "10-14", "15-19", "20-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74", "75-79", "80-84", "85-90", "90-94", "95+"]; + + // Custom color arrays are set up for each series to get the look that is desired. + // Two color arrays are created for the default and optional color which the user can pick. + var greenColors = ["#526D2C", "#77933C"]; + + // These options are common to all plots. + var plotOptions = { + // We set up a customized title which acts as labels for the left and right sides of the pyramid. + title: { + text: '<span style="position:relative;left:25%;">Male</span><span style="position:relative;left:50%;">Female</span>', + textAlign: 'left' + }, + // by default, the series will use the green color scheme. + seriesColors: greenColors, + + grid: { + drawBorder: false, + shadow: false, + background: "white", + rendererOptions: { + // plotBands is an option of the pyramidGridRenderer. + // it will put banding at starting at a specified value + // along the y axis with an adjustable interval. + plotBands: { + show: true, + interval: 2, + color: 'rgb(250, 240, 225)' + } + } + }, + + // This makes the effective starting value of the axes 0 instead of 1. + // For display, the y axis will use the ticks we supplied. + defaultAxisStart: 0, + seriesDefaults: { + renderer: $.jqplot.PyramidRenderer, + rendererOptions: { + barPadding: 4, + fill: false + }, + yaxis: "yaxis", + shadow: false, + show: false + }, + + // We have 10 series, but only 2 will be shown at a time unless an overlay is turned on. + // Set up options for all series now, so when turned on they will look right. + series: [ + // For pyramid plots, the default side is right. + // We want to override here to put first set of bars + // on left. + { + rendererOptions:{ + side: "left" + } + }, + { + yaxis: "y2axis" + }, + { + rendererOptions: { + side: 'left' + } + }, + { + yaxis: 'y2axis' + }, + { + rendererOptions: { + side: 'left' + } + }, + { + yaxis: 'y2axis' + }, + { + rendererOptions: { + side: 'left' + } + }, + { + yaxis: 'y2axis' + }, + { + rendererOptions: { + side: 'left' + } + }, + { + yaxis: 'y2axis' + } + ], + axesDefaults: { + tickOptions: { + showGridline: false + }, + pad: 0, + rendererOptions: { + baselineWidth: 2 + }, + scaleToHiddenSeries: true + }, + + // Set up all the y axes, since users are allowed to switch between them. + // The only axis that will show is the one that the series are "attached" to. + // We need the appropriate options for the others for when the user switches. + axes: { + xaxis: { + tickOptions: { + formatter: $.jqplot.PercentTickFormatter, + formatString: '%d%%' + } + }, + yaxis: { + label: "Age", + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: true, + ticks: ticks, + rendererOptions: { + category: true + } + }, + y2axis: { + label: "Age", + // Use canvas label renderer to get rotated labels. + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + // include empty tick options, they will be used + // as users set options with plot controls. + tickOptions: {}, + showMinorTicks: true, + ticks: ticks, + rendererOptions: { + category: true + } + } + } + }; + + // These options are different for each series. + // sopts are common options for the overlay series in each plot. + var sopts = {color: '#C57225'}; + + // An array of 5 elements, one for each plot. + var plotOptsArr = []; + + // Options for each individual plot + plotOptsArr[0] = $.extend(true, {}, plotOptions, {series:[{show: true, rendererOptions:{synchronizeHighlight: 1, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 0, fill: true}}, sopts, sopts, sopts, sopts, sopts, sopts, sopts, sopts]}); + + plotOptsArr[1] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 3, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 2, fill: true}}, sopts, sopts, sopts, sopts, sopts, sopts]}); + + plotOptsArr[2] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 5, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 4, fill: true}}, sopts, sopts, sopts, sopts]}); + + plotOptsArr[3] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, sopts, sopts, sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 7, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 6, fill: true}}, sopts, sopts]}); + + plotOptsArr[4] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, sopts, sopts, sopts, sopts, sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 9, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 8, fill: true}}]}); + + + // Create all the plots at one time. + // Use jQuery selecctor syntax to select all the plot targets. Here, no id's were specified on the targets, so they are auto generated. + // You can get a reference to the individual plot object by: + // var plot = $('div.jqplot-chart').eq(0).data('jqplot'); + // + $('div.jqplot-chart').jqplot([quintiles[0][1], quintiles[0][2], quintiles[1][1], quintiles[1][2], quintiles[2][1], quintiles[2][2], quintiles[3][1], quintiles[3][2], quintiles[4][1], quintiles[4][2]], plotOptsArr[0], plotOptsArr[1], plotOptsArr[2], plotOptsArr[3], plotOptsArr[4]); + + ////// + // The followng functions use verbose css selectors to make + // it clear exactly which elements they are binging to/operating on + ////// + + // bind to the data highlighting event to make custom tooltip: + $(".jqplot-target").each(function(index){ + $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) { + // Here, assume first series is male poulation and second series is female population. + // Adjust series indices as appropriate. + var plot = $(this).data('jqplot'); + var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * quintiles[index][0][1]; + var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * quintiles[index][0][2]; + var malePopulation = quintiles[index][1][pointIndex] * quintiles[index][0][1]; + var femalePopulation = quintiles[index][2][pointIndex] * quintiles[index][0][2]; + // var ratio = femalePopulation / malePopulation * 100; + var ratio = quintiles[index][3][pointIndex+1]; + + $(this).closest('table').find('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation)); + $(this).closest('table').find('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation)); + $(this).closest('table').find('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio)); + + // Since we don't know which axis is rendererd and acive with out a little extra work, + // just use the supplied ticks array to get the age label. + $(this).closest('table').find('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]); + }); + }); + + // bind to the data highlighting event to make custom tooltip: + $(".jqplot-target").each(function() { + $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) { + // clear out all the tooltips. + $(this).closest('table').find(".tooltip-item").fadeOut(250); + }); + }); + + // Open and close the plot container. + $('.quintile-toggle').each(function() { + $(this).click(function(e) { + if ($(this).hasClass('ui-icon-arrowthickstop-1-n')) { + $(this).parent().next('.quintile-content').effect('blind', {mode:'hide'}, 600); + // $('.quintile-content').jqplotEffect('blind', {mode: 'hide'}, 600); + $(this).removeClass('ui-icon-arrowthickstop-1-n'); + $(this).addClass('ui-icon-arrowthickstop-1-s'); + } + else if ($(this).hasClass('ui-icon-arrowthickstop-1-s')) { + $(this).parent().next('.quintile-content').effect('blind', {mode:'show'}, 600, function() { + $(this).find('div.jqplot-chart').data('jqplot').replot(); + }); + // $('.quintile-content').jqplotEffect('blind', {mode: 'show'}, 150); + $(this).removeClass('ui-icon-arrowthickstop-1-s'); + $(this).addClass('ui-icon-arrowthickstop-1-n'); + } + }); + }); + + // Handle each of the checkboxes to display overlays. + $('input[type=checkbox][name=showContour]').each(function(index) { + // on load/reload, clear all the check boxes. + $(this).get(0).checked = false; + + // bind to change event event on the checkbox. + $(this).change(function(evt){ + + // if check box is checked. + if (this.checked) { + // uncheck all other check boxes. + $('input[type=checkbox][name=showContour]').each(function(cidx) { + if (cidx !== index) { + this.checked = false; + } + }); + + // On each chart, show the checked plot's overlay and + // show the original plot. + $('div.jqplot-chart').each(function(pidx) { + var plot = $(this).data('jqplot'); + + // Set up options to hide all series. + var seriesOpts = [{show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}]; + + // Show series for this particular plot (pidx) and for the checked plot (index). + seriesOpts[2 * pidx].show = true; + seriesOpts[2 * pidx + 1].show = true; + seriesOpts[2 * index].show = true; + seriesOpts[2 * index + 1].show = true; + + // replot with the new options. + plot.replot({series: seriesOpts}); + + }); + } + + // if check box is not checked. + else { + $('div.jqplot-chart').each(function(pidx) { + // Set up options to hide all series. + var seriesOpts = [{show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}]; + var plot = $(this).data('jqplot'); + + // Here showing only the series for this particular plot (pidx). + seriesOpts[2 * pidx].show = true; + seriesOpts[2 * pidx + 1].show = true; + + // replot with the new options. + plot.replot({series: seriesOpts}); + }); + } + }) + }); + + $('.ui-icon-print').click(function(){ + $(this).parent().next().print(); + }); + + + $('.ui-icon-image').each(function() { + $(this).bind('click', function(evt) { + var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target'); + var imgelem = chart.jqplotToImageElem(); + var div = $('div.overlay-chart-container-content'); + div.empty(); + div.append(imgelem); + $('div.overlay-shadow').fadeIn(600); + div.parent().fadeIn(1000); + div = null; + }); + }); + + + $('.ui-icon-newwin').each(function(index) { + $(this).bind('click', function(evt) { + var url = 'kcp_pyramid_by_age.html?qidx='+index; + window.open(url); + }); + }); + + $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){ + var div = $('div.overlay-chart-container-content'); + div.parent().fadeOut(600); + $('div.overlay-shadow').fadeOut(1000); + }); + + }); + </script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + + <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. --> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script> + + <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.js"></script> + <script class="include" type="text/javascript" src="kcp.print.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/line-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/line-charts.html new file mode 100644 index 00000000..0151bb23 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/line-charts.html @@ -0,0 +1,193 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Line Charts and Options</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="kcp_quintiles.html">Previous</a> <a href="./">Examples</a> <a href="mekkoCharts.html">Next</a></div> + + +<!-- Example scripts go here --> + +<p>The most basic jqPlot chart takes a series of data and plots a line. No options need to be supplied. Data is passed in as an array of series. A series can be either an array of y values or an array of [x,y] data pairs. If y values only, x values are assigned like 1, 2, 3, ... Note, for this plot you don't need any plugins.</p> + +<div id="chart1" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<p>The following plot uses a number of options to set the title, add axis labels, and shows how to use the canvasAxisLabelRenderer plugin to provide rotated axis labels.</p> + +<div id="chart2" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<p>There are numerous line style options to control how the lines and markers are displayed.</p> + +<div id="chart3" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var plot1 = $.jqplot ('chart1', [[3,7,9,1,5,3,8,2,5]]); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var plot2 = $.jqplot ('chart2', [[3,7,9,1,5,3,8,2,5]], { + // Give the plot a title. + title: 'Plot With Options', + // You can specify options for all axes on the plot at once with + // the axesDefaults object. Here, we're using a canvas renderer + // to draw the axis label which allows rotated text. + axesDefaults: { + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + // Likewise, seriesDefaults specifies default options for all + // series in a plot. Options specified in seriesDefaults or + // axesDefaults can be overridden by individual series or + // axes options. + // Here we turn on smoothing for the line. + seriesDefaults: { + rendererOptions: { + smooth: true + } + }, + // An axes object holds options for all axes. + // Allowable axes are xaxis, x2axis, yaxis, y2axis, y3axis, ... + // Up to 9 y axes are supported. + axes: { + // options for each axis are specified in seperate option objects. + xaxis: { + label: "X Axis", + // Turn off "padding". This will allow data point to lie on the + // edges of the grid. Default padding is 1.2 and will keep all + // points inside the bounds of the grid. + pad: 0 + }, + yaxis: { + label: "Y Axis" + } + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // Some simple loops to build up data arrays. + var cosPoints = []; + for (var i=0; i<2*Math.PI; i+=1){ + cosPoints.push([i, Math.cos(i)]); + } + + var sinPoints = []; + for (var i=0; i<2*Math.PI; i+=0.4){ + sinPoints.push([i, 2*Math.sin(i-.8)]); + } + + var powPoints1 = []; + for (var i=0; i<2*Math.PI; i+=1) { + powPoints1.push([i, 2.5 + Math.pow(i/4, 2)]); + } + + var powPoints2 = []; + for (var i=0; i<2*Math.PI; i+=1) { + powPoints2.push([i, -2.5 - Math.pow(i/4, 2)]); + } + + var plot3 = $.jqplot('chart3', [cosPoints, sinPoints, powPoints1, powPoints2], + { + title:'Line Style Options', + // Set default options on all series, turn on smoothing. + seriesDefaults: { + rendererOptions: { + smooth: true + } + }, + // Series options are specified as an array of objects, one object + // for each series. + series:[ + { + // Change our line width and use a diamond shaped marker. + lineWidth:2, + markerOptions: { style:'dimaond' } + }, + { + // Don't show a line, just show markers. + // Make the markers 7 pixels with an 'x' style + showLine:false, + markerOptions: { size: 7, style:"x" } + }, + { + // Use (open) circlular markers. + markerOptions: { style:"circle" } + }, + { + // Use a thicker, 5 pixel line and 10 pixel + // filled square markers. + lineWidth:5, + markerOptions: { style:"filledSquare", size:10 } + } + ] + } + ); + +}); +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html b/wqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html new file mode 100644 index 00000000..91b3395b --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html @@ -0,0 +1,269 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Mekko Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="line-charts.html">Previous</a> <a href="./">Examples</a> <a href="meritOrder.html">Next</a></div> + + +<!-- Example scripts go here --> + <style type="text/css" media="screen"> + body { + margin: 15px; + font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; + } + + p { + margin-top: 20px; + margin-bottom: 20px; + } + + .jqplot-target { + margin: 60px; + } + + pre { + padding: 10px; + background-color: #efead9; + margin: 10px; + } + .jqplot-axis { + font-size: 0.8em; + } + + .jqplot-mekko-barLabel { + font-size: 1em; + } + + #chart2 .jqplot-axis { + font-size: 0.7em; + } + + #chart3 .jqplot-title { + padding-bottom: 40px; + } + </style> +<p>Data is specified per bar in the chart. You can specify data as an array of y values, or as an array of [label, value] pairs. Note that labels are used only on the first series. Labels on subsequent series are ignored:</p> +<pre> +bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]]; +bar2 = [15,6,9,13,6]; +bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]]; +</pre> + + <p>If you want to place labels for each bar under the axis, you use the barLabels option on the axes. The bar labels can be styled with the ".jqplot-mekko-barLabel" css class.</p> +<pre> +barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy']; +axes:{xaxis:{barLabels:barLabels}} +</pre> + + <div id="chart1" style="width:500px; height:300px;"></div> + + <p>You can add a secondary x axes, and the tick spacing of the axes can be separately controlled with the "tickMode" option. "bar" will produce tics at bar boundaries, "even" will produce evenly spaced ticks. If you set the axes max greater than the sum of the data range (the maximum x value), the plot will be padded. Note that you should set the max on both axes to the same value.</p> + +<pre> +axes:{ + xaxis:{ + barLabels:barLabels, + max: 175 + }, + x2axis:{ + show:true, + tickMode:'even', + max: 175 + } +} +</pre> + + <p>Here the borders between chart areas have been given a custom color using the "borderColor" option on the series renderer.</p> + +<pre> + seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {borderColor: '#dddddd'}} +</pre> + + <p>Additionally, the legend can be placed "outside" (the default for a mekko chart) or "inside" of the grid area with the "placement" option on the legend renderer.</p> + +<pre> +legend:{ + show:true, + rendererOptions:{placement: "insideGrid"}, + location:'e' +}, +</pre> + + <div id="chart2" style="width:500px; height:300px;"></div> + + <p>Legend labels can be specified independently of the series with the "labels" option on the legend. These will override any labels specified with the series. There are also options to control the number of rows and number of columns in the legend as well as placement.</p> + + <p>Here the legend is positioned to the "north" and set to render 1 row tall (number of columns determined automatically). Note that an extra css specification was added to pad the bottom of the title of this chart to give room for the legend above the plot.</p> + +<pre> +legendLabels = ['hotels', 'rides', 'buses', 'instruments', 'totes']; + +legend:{ + show:true, + location: 'n', + labels: legendLabels, + rendererOptions:{numberRows: 1, placement: "outside"} +}, +</pre> + + <p>Also, the borders between the chart areas have been turned off with the "showBorders: false" option.</p> + +<pre> + seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {showBorders: false}} +</pre> + + <div id="chart3" style="width:500px; height:300px;"></div> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]]; + var bar2 = [15,6,9,13,6]; + var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]]; + var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy']; + + var plot1 = $.jqplot('chart1', [bar1, bar2, bar3], { + title: 'Revenue Breakdown per Character', + seriesDefaults:{renderer:$.jqplot.MekkoRenderer}, + legend:{show:true}, + axesDefaults:{ + renderer:$.jqplot.MekkoAxisRenderer + }, + axes:{ + xaxis:{ + barLabels:barLabels, + tickOptions:{formatString:'$%dM'} + } + } + }); +}); +</script> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]]; + var bar2 = [15,6,9,13,6]; + var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]]; + var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy']; + + var plot2 = $.jqplot('chart2', [bar1, bar2, bar3], { + title: 'Revenue Breakdown per Character', + seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {borderColor: '#dddddd'}}, + legend:{ + show:true, + rendererOptions:{placement: "insideGrid"}, + location:'e' + }, + axesDefaults:{ + renderer:$.jqplot.MekkoAxisRenderer, + tickOptions:{} + }, + axes:{ + xaxis:{ + barLabels:barLabels, + rendererOptions: { + barLabelOptions: { + angle: -35 + }, + barLabelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + max: 175, + tickOptions:{formatString:'$%dM'} + }, + x2axis:{ + show:true, + tickMode:'even', + max: 175, + tickOptions:{formatString:'$%dM'} + } + } + }); +}); +</script> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]]; + var bar2 = [15,6,9,13,6]; + var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]]; + var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy']; + + var legendLabels = ['hotels', 'rides', 'buses', 'instruments', 'totes']; + + var plot3 = $.jqplot('chart3', [bar1, bar2, bar3], { + title: 'Revenue Breakdown per Character', + seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {showBorders: false}}, + legend:{ + show:true, + location: 'n', + labels: legendLabels, + rendererOptions:{numberRows: 1, placement: "outside"} + }, + axesDefaults:{ + renderer:$.jqplot.MekkoAxisRenderer, + tickOptions:{showGridline:false} + }, + axes:{ + xaxis:{ + tickMode:"bar", + tickOptions:{formatString:'$%dM'} + } + } + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.mekkoRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.mekkoAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/meritOrder.html b/wqflask/wqflask/static/packages/jqplot/examples/meritOrder.html new file mode 100644 index 00000000..67191726 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/meritOrder.html @@ -0,0 +1,103 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Merit Order Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="mekkoCharts.html">Previous</a> <a href="./">Examples</a> <a href="meterGauge.html">Next</a></div> + + +<!-- Example scripts go here --> + <style type="text/css" media="screen"> + body { + margin: 15px; + font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; + } + + p { + margin-top: 20px; + margin-bottom: 20px; + } + + .jqplot-target { + margin: 60px; + } + + pre { + padding: 10px; + background-color: #efead9; + margin: 10px; + } + + #chart3 .jqplot-title { + padding-bottom: 40px; + } + </style> + + <div id="chart1" style="width:500px; height:300px;"></div> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + var data = [[473.34, 5.89], [232.35, 25.45], [2387.56, 28.55], [1484.8, 31.98], [0, 32.52], [0, 33.31], [0, 37.63], [3675.31, 47.98], [0, 61.06], [0, 61.6], [3035.76, 65.05], [3437.74, 70.62], [192.53, 75.32], [426.12, 84.5], [0, 117.45], [0, 139.08]]; + + plot1 = $.jqplot('chart1', [[data[0]], [data[1]], [data[2]], [data[3]]], { + seriesDefaults:{renderer:$.jqplot.MeritOrderRenderer}, + legend:{show:false}, + axesDefaults:{ + renderer:$.jqplot.MeritOrderAxisRenderer + } + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.meritOrderRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.meritOrderAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/meterGauge.html b/wqflask/wqflask/static/packages/jqplot/examples/meterGauge.html new file mode 100644 index 00000000..bbb278ef --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/meterGauge.html @@ -0,0 +1,179 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Meter Gauge</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="meritOrder.html">Previous</a> <a href="./">Examples</a> <a href="multipleBarColors.html">Next</a></div> + + +<!-- Example scripts go here --> + + +<style type="text/css"> + +.plot { + margin-bottom: 30px; + margin-left: auto; + margin-right: auto; +} + +#chart0 .jqplot-meterGauge-label { + font-size: 10pt; +} + +#chart1 .jqplot-meterGauge-tick { + font-size: 6pt; +} + +#chart2 .jqplot-meterGauge-tick { + font-size: 8pt; +} + +#chart3 .jqplot-meterGauge-tick, #chart0 .jqplot-meterGauge-tic { + font-size: 10pt; +} + +#chart4 .jqplot-meterGauge-tick, #chart4 .jqplot-meterGauge-label { + font-size: 12pt; +} +</style> + + +<p>A meter gauge plot shows a data value in a speedometer style gauge. The "series" in consists of a single data value that positions the needle on the gauge. The span of the gauge will be automatically determined, or can be set with the "min" and "max" values in the "rendererOptions" of the series. The plot below also specifies a chart title and a "label" for the gauge.</p> + +<div id="chart0" class="plot" style="width:250px;height:170px;"></div> + +<p>For small gauges, it can be desirable to turn off the tick labels by setting the "showTickLabels" option in the rendererOptions to false. Also, colored interval bands can be specified. The interval ranges are specified as an array of values the "intervals" option and custom colors for each interval can be specified with the "intervalColors" option.</p> + +<div id="chart1" class="plot" style="width:120px;height:80px;"></div> + +<p>The inner and outer radii of the interval band will automatically adjust when tick Labels are turned on. Also, the gauge minimum and maximum can be specified with the "min" and "max" options in the rendererOptions.</p> + +<div id="chart3" class="plot" style="width:300px;height:180px;"></div> + +<p>The inner and outer radii of the interval band can also be specified with the "intervalInnerRadius" and "intervalOuterRadius" options. In the plot below, the "labelPosition" option was set to "bottom" to put the gauge label below the plot. The "labelHeightAdjust" option was set to -5 to raise the label slightly (5 pixels) to place it closer to the gauge.</p> +<p>The gauge automatically resizes to best fit the container. The font size of the tick labels and gauge labels do not size to the container, however. The font size of the tick labels can be controlled by styling the css ".jqplot-meterGauge-ticks" class and the gauge label by the "jqplot-meterGauge-label" class.</p> +<div id="chart4" class="plot" style="width:500px;height:300px;"></div> + + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + s1 = [1]; + + plot0 = $.jqplot('chart0',[s1],{ + title: 'Network Speed', + seriesDefaults: { + renderer: $.jqplot.MeterGaugeRenderer, + rendererOptions: { + label: 'MB/s' + } + } + }); +}); +</script> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + s1 = [1]; + + plot1 = $.jqplot('chart1',[s1],{ + seriesDefaults: { + renderer: $.jqplot.MeterGaugeRenderer, + rendererOptions: { + showTickLabels: false, + intervals:[2,3,4], + intervalColors:['#66cc66', '#E7E658', '#cc6666'] + } + } + }); +}); +</script> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + s1 = [322]; + + plot3 = $.jqplot('chart3',[s1],{ + seriesDefaults: { + renderer: $.jqplot.MeterGaugeRenderer, + rendererOptions: { + min: 100, + max: 500, + intervals:[200, 300, 400, 500], + intervalColors:['#66cc66', '#93b75f', '#E7E658', '#cc6666'] + } + } + }); +}); +</script> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + s1 = [52200]; + + plot4 = $.jqplot('chart4',[s1],{ + seriesDefaults: { + renderer: $.jqplot.MeterGaugeRenderer, + rendererOptions: { + label: 'Metric Tons per Year', + labelPosition: 'bottom', + labelHeightAdjust: -5, + intervalOuterRadius: 85, + ticks: [10000, 30000, 50000, 70000], + intervals:[22000, 55000, 70000], + intervalColors:['#66cc66', '#E7E658', '#cc6666'] + } + } + }); +}); +</script> +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.meterGaugeRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html b/wqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html new file mode 100644 index 00000000..0b64f86b --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html @@ -0,0 +1,131 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Bar Colors Example</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="meterGauge.html">Previous</a> <a href="./">Examples</a> <a href="openerNoHeader.html">Next</a></div> + + +<!-- Example scripts go here --> + +<div id="chart1" class="example-chart" style="height:300px;width:500px"></div> +<div id="chart2" class="example-chart" style="height:300px;width:500px"></div> +<div id="chart3" class="example-chart" style="height:300px;width:500px"></div> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + // A Bar chart from a single series will have all the bar colors the same. + var line1 = [['Nissan', 4],['Porche', 6],['Acura', 2],['Aston Martin', 5],['Rolls Royce', 6]]; + + $('#chart1').jqplot([line1], { + title:'Default Bar Chart', + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + }, + axes:{ + xaxis:{ + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); +}); +</script> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + var line1 = [['Nissan', 4],['Porche', 6],['Acura', 2],['Aston Martin', 5],['Rolls Royce', 6]]; + + $('#chart2').jqplot([line1], { + title:'Bar Chart with Varying Colors', + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions: { + // Set the varyBarColor option to true to use different colors for each bar. + // The default series colors are used. + varyBarColor: true + } + }, + axes:{ + xaxis:{ + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); +}); +</script> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + var line1 = [['Nissan', 4],['Porche', 6],['Acura', 2],['Aston Martin', 5],['Rolls Royce', 6]]; + + $('#chart3').jqplot([line1], { + title:'Bar Chart with Custom Colors', + // Provide a custom seriesColors array to override the default colors. + seriesColors:['#85802b', '#00749F', '#73C774', '#C7754C', '#17BDB8'], + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions: { + // Set varyBarColor to tru to use the custom colors on the bars. + varyBarColor: true + } + }, + axes:{ + xaxis:{ + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/nav.inc b/wqflask/wqflask/static/packages/jqplot/examples/nav.inc new file mode 100644 index 00000000..d54a4bf9 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/nav.inc @@ -0,0 +1,40 @@ +<div class="example-nav"> + <?php + $tmpnames = scandir('./'); + $skip = array('opener.php', 'bodyOpener.php', 'nav.php', 'closer.html', 'commonScripts.html', 'topbanner.html'); + + foreach( $tmpnames as $value) { + if (preg_match('/^[a-z0-9][a-z0-9_\-]+\.(html|php)$/i', $value)) { + if (! in_array($value, $skip)) { + $files[] = $value; + } + } + } + $fcount = count($files); + $parts = explode("/", $_SERVER['SCRIPT_NAME']); + $curfile = end($parts); + $prevfile = ''; + $nextfile = ''; + // print_r($files); + + for ($i=0; $i<$fcount; $i++) { + if ($curfile == $files[$i]) { + if ($i == 0) { + $prevfile = $files[$fcount-1]; + $nextfile = $files[1]; + } + elseif ($i == $fcount-1) { + $prevfile = $files[$i-1]; + $nextfile = $files[0]; + } + else { + $prevfile = $files[$i-1]; + $nextfile = $files[$i+1]; + } + } + } + + echo '<a href="'.$prevfile.'">Previous</a> <a href="./">Examples</a> <a href="'.$nextfile.'">Next</a>'; + + ?> +</div> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html new file mode 100644 index 00000000..ddae1477 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html @@ -0,0 +1,160 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Pie and Donut Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="openerNoHeader.html">Previous</a> <a href="./">Examples</a> <a href="pieTest.html">Next</a></div> + + +<!-- Example scripts go here --> + <style type="text/css"> + + .jqplot-data-label { + /*color: #444;*/ +/* font-size: 1.1em;*/ + } + </style> + +<p>jqPlot bakes up the best pie and donut charts you've ever tasted! Like bar and filled line plots, pie and donut slices highlight when you mouse over.</p> + +<div id="chart1" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<p>Too many calories in that pie? Get all the taste without the filling! Highlighting and data labels are still supported. You can even cut out the slices!</p> + +<div id="chart2" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<p>Coming straight from the same bakery, donut plots have nearly identical options as pie charts.</p> + +<div id="chart3" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var data = [ + ['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], + ['Out of home', 16],['Commuting', 7], ['Orientation', 9] + ]; + var plot1 = jQuery.jqplot ('chart1', [data], + { + seriesDefaults: { + // Make this a pie chart. + renderer: jQuery.jqplot.PieRenderer, + rendererOptions: { + // Put data labels on the pie slices. + // By default, labels show the percentage of the slice. + showDataLabels: true + } + }, + legend: { show:true, location: 'e' } + } + ); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var data = [ + ['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], + ['Out of home', 16],['Commuting', 7], ['Orientation', 9] + ]; + var plot2 = jQuery.jqplot ('chart2', [data], + { + seriesDefaults: { + renderer: jQuery.jqplot.PieRenderer, + rendererOptions: { + // Turn off filling of slices. + fill: false, + showDataLabels: true, + // Add a margin to seperate the slices. + sliceMargin: 4, + // stroke the slices with a little thicker line. + lineWidth: 5 + } + }, + legend: { show:true, location: 'e' } + } + ); +}); +</script> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var s1 = [['a',6], ['b',8], ['c',14], ['d',20]]; + var s2 = [['a', 8], ['b', 12], ['c', 6], ['d', 9]]; + + var plot3 = $.jqplot('chart3', [s1, s2], { + seriesDefaults: { + // make this a donut chart. + renderer:$.jqplot.DonutRenderer, + rendererOptions:{ + // Donut's can be cut into slices like pies. + sliceMargin: 3, + // Pies and donuts can start at any arbitrary angle. + startAngle: -90, + showDataLabels: true, + // By default, data labels show the percentage of the donut/pie. + // You can show the data 'value' or data 'label' instead. + dataLabels: 'value' + } + } + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.donutRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pieTest.html b/wqflask/wqflask/static/packages/jqplot/examples/pieTest.html new file mode 100644 index 00000000..43a11f13 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/pieTest.html @@ -0,0 +1,187 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Pie Charts and Options</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="pie-donut-charts.html">Previous</a> <a href="./">Examples</a> <a href="pieTest4.html">Next</a></div> + + +<!-- Example scripts go here --> + + + <div id="pie1" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div> + + <div id="pie2" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div> + + <div id="pie3" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div> + + <div id="pie4" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div> + + <div id="pie5" style="margin-top:20px; margin-left:20px; width:400px; height:240px;"></div> + + <div id="pie6" style="margin-top:20px; margin-left:20px; width:400px; height:240px;"></div> + + <div id="pie7" style="margin-top:20px; margin-left:20px; width:400px; height:240px;"></div> + + <div id="pie8" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div> + + + +<script class="code" type="text/javascript">$(document).ready(function(){ + var plot1 = $.jqplot('pie1', [[['a',25],['b',14],['c',7]]], { + gridPadding: {top:0, bottom:38, left:0, right:0}, + seriesDefaults:{ + renderer:$.jqplot.PieRenderer, + trendline:{ show:false }, + rendererOptions: { padding: 8, showDataLabels: true } + }, + legend:{ + show:true, + placement: 'outside', + rendererOptions: { + numberRows: 1 + }, + location:'s', + marginTop: '15px' + } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var plot2 = $.jqplot('pie2', [[['a',25],['b',14],['c',7]]], { + seriesDefaults:{ renderer:$.jqplot.PieRenderer, trendline:{ show: true } }, + legend:{ show: true } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var plot3 = $.jqplot('pie3', [[['a',1],['b',9],['c',1]]], { + seriesDefaults:{ + shadow: false, + renderer:$.jqplot.PieRenderer, + rendererOptions:{ + sliceMargin: 4, + // rotate the starting position of the pie around to 12 o'clock. + startAngle: -90 + } + }, + legend:{ show: true } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var plot4 = $.jqplot('pie4', [[["a",0],["b",1],["c",.01]]], { + seriesDefaults:{ + renderer:$.jqplot.PieRenderer, + rendererOptions:{ sliceMargin: 0 } + }, + legend:{ show: true } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var plot5 = $.jqplot('pie5', [[["none",23],["error",0],["click",5],["impression",25]]], { + seriesDefaults:{ renderer: $.jqplot.PieRenderer }, + legend:{ show:true } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var plot6 = $.jqplot('pie6', [[["none",0],["error",0],["click",0],["impression",0]]], { + seriesDefaults:{ renderer: $.jqplot.PieRenderer }, + legend:{ show:true } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var plot7 = $.jqplot('pie7', [[["all", 10]]], { + seriesDefaults:{ + renderer:$.jqplot.PieRenderer, + rendererOptions: { + showDataLabels: true + } + }, + legend:{show:true} + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var s1 = [['Sony',7], ['Samsumg',13.3], ['LG',14.7], ['Vizio',5.2], ['Insignia', 1.2]]; + + var plot8 = $.jqplot('pie8', [s1], { + grid: { + drawBorder: false, + drawGridlines: false, + background: '#ffffff', + shadow:false + }, + axesDefaults: { + + }, + seriesDefaults:{ + renderer:$.jqplot.PieRenderer, + rendererOptions: { + showDataLabels: true + } + }, + legend: { + show: true, + rendererOptions: { + numberRows: 1 + }, + location: 's' + } + }); +});</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pieTest2.js b/wqflask/wqflask/static/packages/jqplot/examples/pieTest2.js new file mode 100644 index 00000000..91073fe6 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/pieTest2.js @@ -0,0 +1,80 @@ +$(document).ready(function(){ + + $.jqplot.config.enablePlugins = true; + + s1 = [['a',2], ['b',6], ['c',7], ['d',10]]; + s2 = [['a', 4], ['b', 7], ['c', 6], ['d', 3]]; + s3 = [['a', 2], ['b', 1], ['c', 3], ['d', 3]]; + s4 = [['a', 4], ['b', 3], ['c', 2], ['d', 1]]; + + s5 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; + + plot1 = $.jqplot('chart1', [s1], { + seriesDefaults:{ + renderer:$.jqplot.PieRenderer + }, + legend: {show:true} + }); + + plot2 = $.jqplot('chart2', [s2], { + seriesDefaults: { + renderer:$.jqplot.PieRenderer, + rendererOptions:{ + sliceMargin: 4, + startAngle: -90 + } + } + }); + + plot3 = $.jqplot('chart3', [s3], { + captureRightClick: true, + seriesDefaults:{ + renderer:$.jqplot.PieRenderer, + shadow: false, + rendererOptions:{ + startAngle: 90, + sliceMargin: 4, + highlightMouseDown: true + } + }, + legend: { + show: true, + location: 'e', + placement: 'outside' + } + }); + + plot5 = $.jqplot('chart5', [s5], { + seriesDefaults:{ + renderer:$.jqplot.PieRenderer + } + }); + + plot6 = $.jqplot('chart6', [[1,2,3,4]]); + + $('#chart1').bind('jqplotDataClick', + function (ev, seriesIndex, pointIndex, data) { + $('#info1').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); + } + ); + + $('#chart2').bind('jqplotDataHighlight', + function (ev, seriesIndex, pointIndex, data) { + $('#info2').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); + } + ); + + $('#chart2').bind('jqplotDataUnhighlight', + function (ev) { + $('#info2').html('Nothing'); + } + ); + + $('#chart3').bind('jqplotDataRightClick', + function (ev, seriesIndex, pointIndex, data) { + $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); + } + ); + + $(document).unload(function() {$('*').unbind(); }); +});
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pieTest4.html b/wqflask/wqflask/static/packages/jqplot/examples/pieTest4.html new file mode 100644 index 00000000..ba8832c7 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/pieTest4.html @@ -0,0 +1,258 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Pie Charts and Options 2</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="pieTest.html">Previous</a> <a href="./">Examples</a> <a href="point-labels.html">Next</a></div> + + +<!-- Example scripts go here --> + + <div id="chart1" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + + <pre class="code brush:js"></pre> + + <div id="chart2" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + + <pre class="code brush:js"></pre> + + <div id="chart3" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + <pre class="code brush:js"></pre> + + <div id="chart4" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + <pre class="code brush:js"></pre> + + <div id="chart5" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + <pre class="code brush:js"></pre> + + <div id="chart6" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + <pre class="code brush:js"></pre> + + <div id="chart7" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + <pre class="code brush:js"></pre> + + <div id="chart8" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + <pre class="code brush:js"></pre> + + <div id="chart9" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + <pre class="code brush:js"></pre> + + <div id="chart10" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div> + <pre class="code brush:js"></pre> + +<script class="code" type="text/javascript">$(document).ready(function(){ + jQuery.jqplot.config.enablePlugins = true; + plot1 = jQuery.jqplot('chart1', + [[['Verwerkende FruedenStunde Companaziert Eine industrie', 9],['Retail', 8], ['Primaire producent', 7], + ['Out of home', 6],['Groothandel', 5], ['Grondstof', 4], ['Consument', 3], ['Bewerkende industrie', 2]]], + { + title: ' ', + seriesDefaults: { + shadow: false, + renderer: jQuery.jqplot.PieRenderer, + rendererOptions: { padding: 2, sliceMargin: 2, showDataLabels: false } + }, + legend: { show:true, location: 'e' } + } + ); +}); +</script> + + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot2 = jQuery.jqplot('chart2', + [[['Verwerkende industrie', 9],['Retail', 0], ['Primaire producent', 0], + ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 3], ['Bewerkende industrie', 2]]], + { + title: ' ', + seriesDefaults: { + shadow: false, + renderer: jQuery.jqplot.PieRenderer, + rendererOptions: { + startAngle: 180, + sliceMargin: 4, + showDataLabels: true } + }, + legend: { show:true, location: 'w' } + } + ); +}); +</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot3 = jQuery.jqplot('chart3', + [[['Verwerkende industrie', 9],['Retail', 0], ['Primaire producent', 0], + ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 2]]], + { + title: ' ', + seriesDefaults: { + shadow: false, + renderer: jQuery.jqplot.PieRenderer, + rendererOptions: { + sliceMargin: 4, + showDataLabels: true + } + }, + legend: { show:true, location: 'e' } + } + ); + + +}); +</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot4 = jQuery.jqplot('chart4', + [[['Verwerkende industrie', 30],['Retail', 0], ['Primaire producent', 0], + ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]], + { + title: ' ', + seriesDefaults: {shadow: false, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { sliceMargin: 4, showDataLabels: true } }, + legend: { show:true, location: 'e' } + } + ); + + +}); +</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot5 = jQuery.jqplot('chart5', + [[['Verwerkende industrie', 100],['Retail', 0], ['Primaire producent', 0], + ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]], + { + title: ' ', + seriesDefaults: {shadow: false, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { sliceMargin: 4, showDataLabels: true } }, + legend: { show:true } + } + ); +}); +</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot6 = jQuery.jqplot('chart6', + [[['Verwerkende industrie', 100]]], + { + title: ' ', + seriesDefaults: {shadow: false, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { sliceMargin: 4, showDataLabels: true } }, + legend: { show:true } + } + ); +}); +</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + jQuery.jqplot.config.enablePlugins = true; + plot7 = jQuery.jqplot('chart7', + [[['Verwerkende industrie', 9],['Retail', 8], ['Primaire producent', 7], + ['Out of home', 6],['Groothandel', 5], ['Grondstof', 4], ['Consument', 3], ['Bewerkende industrie', 2]]], + { + title: ' ', + seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { showDataLabels: true } }, + legend: { show:true } + } + ); +}); +</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot8 = jQuery.jqplot('chart8', + [[['Verwerkende industrie', 100],['Retail', 0], ['Primaire producent', 0], + ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]], + { + title: ' ', + seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { showDataLabels: true } }, + legend: { show:true } + } + ); +}); +</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + jQuery.jqplot.config.enablePlugins = true; + plot9 = jQuery.jqplot('chart9', + [[['Verwerkende industrie', 9],['Retail', 8], ['Primaire producent', 7], + ['Out of home', 6],['Groothandel', 5], ['Grondstof', 4], ['Consument', 3], ['Bewerkende industrie', 2]]], + { + title: ' ', + seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { + fill: false, + sliceMargin: 4, + showDataLabels: true + } + }, + legend: { show:true } + } + ); +}); +</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + plot10 = jQuery.jqplot('chart10', + [[['Verwerkende industrie', 100],['Retail', 0], ['Primaire producent', 0], + ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]], + { + title: ' ', + seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { + fill: false, + sliceMargin: 4, + showDataLabels: true + } + }, + legend: { show:true } + } + ); +}); +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/point-labels.html b/wqflask/wqflask/static/packages/jqplot/examples/point-labels.html new file mode 100644 index 00000000..c21e1bc0 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/point-labels.html @@ -0,0 +1,193 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Data Point labels</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="pieTest4.html">Previous</a> <a href="./">Examples</a> <a href="resizablePlot.html">Next</a></div> + + +<style type="text/css"> +#chart3 .jqplot-point-label { + border: 1.5px solid #aaaaaa; + padding: 1px 3px; + background-color: #eeccdd; +} +</style> + +<!-- Example scripts go here --> +<P>The pointLabels plugin places labels on the plot at the data point locations. Labeles can use the series data array or a separate labels array. If using the series data, the last value in the data point array is used as the label by default.</p> + +<div id="chart1" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<P>Additional data can be added to the series and it will be used for labels. If additional data is provided, each data point must have a value for the label, even if it is "null".</p> + +<div id="chart2" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<P>Labels work with Bar charts as well. Here, the Labels have been supplied through the "labels" array on the "pointLabels" option to the series. Also, additional css styling has been provided to the labels.</p> + +<div id="chart3" style="height:300px; width:500px;"></div> + +<pre class="prettyprint brush: html"> +<style type="text/css"> +#chart3 .jqplot-point-label { + border: 1.5px solid #aaaaaa; + padding: 1px 3px; + background-color: #eeccdd; +} +</style> +</pre> +<pre class="code prettyprint brush: js"></pre> + +<P>Point labels can be used on stacked bar charts. If no labels array is specified, they will use data from the chart. Values can be displayed individually for each series (stackedValue option is false, the default), or cumulative values for all series can be displayed (stackedValue option is true).</p> + +<div id="chart4" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<P>Data point labels have an "edgeTolerance" option. This options controls how close the data point label can be to an axis edge and still be drawn. The default of 0 allows labels to touch the axis. Positive values will increase the required distance between the axis and label, negative values will allow labels to overlap axes.</p> + +<div id="chart5" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1 = [14, 32, 41, 44, 40, 47, 53, 67]; + var plot1 = $.jqplot('chart1', [line1], { + title: 'Chart with Point Labels', + seriesDefaults: { + showMarker:false, + pointLabels: { show:true } + } + }); +}); +</script> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1 = [[-12, 7, null], [-3, 14, null], [2, -1, '(low)'], + [7, -1, '(low)'], [11, 11, null], [13, -1, '(low)']]; + var plot2 = $.jqplot('chart2', [line1], { + title: 'Point Labels From Extra Series Data', + seriesDefaults: { + showMarker:false, + pointLabels:{ show:true, location:'s', ypadding:3 } + }, + axes:{ yaxis:{ pad: 1.3 } } + }); +}); +</script> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1 = [14, 32, 41, 44, 40]; + var plot3 = $.jqplot('chart3', [line1], { + title: 'Bar Chart with Point Labels', + seriesDefaults: {renderer: $.jqplot.BarRenderer}, + series:[ + {pointLabels:{ + show: true, + labels:['fourteen', 'thirty two', 'fourty one', 'fourty four', 'fourty'] + }}], + axes: { + xaxis:{renderer:$.jqplot.CategoryAxisRenderer}, + yaxis:{padMax:1.3}} + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1 = [14, 32, 41, 44, 40, 37, 29]; + var line2 = [7, 12, 15, 17, 20, 27, 39]; + var plot4 = $.jqplot('chart4', [line1, line2], { + title: 'Stacked Bar Chart with Cumulative Point Labels', + stackSeries: true, + seriesDefaults: { + renderer: $.jqplot.BarRenderer, + rendererOptions:{barMargin: 25}, + pointLabels:{show:true, stackedValue: true} + }, + axes: { + xaxis:{renderer:$.jqplot.CategoryAxisRenderer} + } + }); +}); +</script> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1 = [14, 32, 41, 44, 40, 47, 53, 67]; + var plot5 = $.jqplot('chart5', [line1], { + title: 'Chart with Point Labels', + seriesDefaults: { + showMarker:false, + pointLabels: { + show: true, + edgeTolerance: 5 + }}, + axes:{ + xaxis:{min:3} + } + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/quintiles.json b/wqflask/wqflask/static/packages/jqplot/examples/quintiles.json new file mode 100644 index 00000000..a46a169f --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/quintiles.json @@ -0,0 +1,348 @@ +[ + [ + [27777522, + 13657657, + 14119865, + 22.96185242727780, + 22.92340104876670, + 22.99840039165770, + 95.15435452471940], + [0.16814981778556500, + 0.16938884829023600, + 0.13029899959403300, + 0.08445061806046640, + 0.05811840452702920, + 0.05631028061504850, + 0.06512242137179920, + 0.06861163659177230, + 0.06020567860988050, + 0.04355880225459750, + 0.02803499342457000, + 0.01912758869230340, + 0.01515038483762410, + 0.01223701332240520, + 0.00869244058559189, + 0.00529469386492945, + 0.00328609724536106, + 0.00194751964322071, + 0.00114713861262733, + 0.00086662207093871], + [0.15777933298339800, + 0.15671077815250300, + 0.12447815070139100, + 0.08939377850853680, + 0.07830223837100820, + 0.08053563812713150, + 0.07682071635522590, + 0.06269916689630620, + 0.04365876627610810, + 0.03084162032257200, + 0.02432244409407740, + 0.02120157090634930, + 0.01791380814933710, + 0.01326354596024400, + 0.00968643784396050, + 0.00633359323592785, + 0.00349435421488265, + 0.00158514030722019, + 0.00062587894057936, + 0.00035303965324001], + [0.96726540940724300, + 1.03084161446685000, + 1.04551821911720000, + 1.01249668698901000, + 0.91377904610163700, + 0.71793506186340200, + 0.67630912102504800, + 0.81996977584158100, + 1.05847758500203000, + 1.33386431492214000, + 1.36610600401065000, + 1.11490766666616000, + 0.87264547467534200, + 0.81805292713174800, + 0.89240386671080400, + 0.86800712885521700, + 0.80860485322858600, + 0.90961820179781800, + 1.18839220506104000, + 1.77284683642290000, + 2.37438923518884000] + ],[ + [27749565, + 13838477, + 13911088, + 24.59760821726010, + 24.93140692365050, + 24.25806641635340, + 77.89121151531350], + [0.13460476947529500, + 0.14372006850062500, + 0.12847108657610600, + 0.09875785820893480, + 0.07155805029015120, + 0.06299959058572970, + 0.06669930695548060, + 0.06620210601954020, + 0.05883374707069510, + 0.04833706700819440, + 0.03521801565126300, + 0.02559536412958920, + 0.02062306586521670, + 0.01576211515574400, + 0.01023801649094930, + 0.00572503164287636, + 0.00307516687772024, + 0.00165330051290922, + 0.00104697926747485, + 0.00087929371550523], + [0.13970508453303800, + 0.13975442365362800, + 0.11681679473806300, + 0.09435373241811580, + 0.08802952295423720, + 0.08580953135424240, + 0.07740975573970180, + 0.06538018068005290, + 0.04960049471620990, + 0.03735678030431880, + 0.02976493031984740, + 0.02384624281925690, + 0.01786909883056510, + 0.01280223896627530, + 0.00854305561048803, + 0.00534781144388522, + 0.00336845668342047, + 0.00201559921183726, + 0.00124722944598909, + 0.00097903557682698], + [0.99478035075329800, + 0.95846318148882600, + 1.02300804808641000, + 1.09402516010135000, + 1.04121346671673000, + 0.80864396372867400, + 0.73034724501018900, + 0.85714209189972800, + 1.00728620755889000, + 1.17996112502462000, + 1.28717635944761000, + 1.17702912743046000, + 1.06774746443199000, + 1.14809486978252000, + 1.22477345443636000, + 1.19214694369792000, + 1.06494947429125000, + 0.90816533289574900, + 0.81597117843348200, + 0.83506239070880300, + 0.89343444858290900] + ],[ + [27773083, + 14068521, + 13704562, + 26.03124974398200, + 26.46223974345070, + 25.59233340000260, + 66.99286359589060], + [0.11075465721807600, + 0.12531352270434800, + 0.12461977157255700, + 0.11125959454297800, + 0.08638877858554280, + 0.06731675090789110, + 0.06187750302195390, + 0.06283663484842800, + 0.05868334457568110, + 0.05026814063111530, + 0.04079416969542070, + 0.03139012243581270, + 0.02388339994025160, + 0.01756428234835730, + 0.01203845901370310, + 0.00701750790134651, + 0.00386618590184589, + 0.00206610447696370, + 0.00117506121489637, + 0.00088600846283140], + [0.11432537302481000, + 0.12667609073231400, + 0.11974891524623500, + 0.10506132545858400, + 0.09301444384053810, + 0.08267846594852100, + 0.07221670745205490, + 0.06493541188927070, + 0.05720135869997910, + 0.04682451198762990, + 0.03485427327295350, + 0.02629070404866000, + 0.01998999845792230, + 0.01428519039077750, + 0.00980039073555805, + 0.00599266397652053, + 0.00331791767499821, + 0.00156650907345305, + 0.00072094415435746, + 0.00049880393486330], + [1.02655750690901000, + 0.99449511323857500, + 1.01551553024478000, + 1.06831332671397000, + 1.08712098857701000, + 0.95343309606544400, + 0.83582242597784900, + 0.87958614394243600, + 0.99337814815975000, + 1.05315379343805000, + 1.10205392288684000, + 1.20150435531963000, + 1.22567146812179000, + 1.22649751828565000, + 1.26219850103057000, + 1.26098752647638000, + 1.20211569414631000, + 1.19619066818704000, + 1.35395006440030000, + 1.67317801793479000, + 1.82343918147671000] + ],[ + [27763227, + 14197178, + 13566049, + 27.18018253648030, + 27.20726467467510, + 27.15223055717600, + 58.62068064918010], + [0.09684619409307840, + 0.11118728522535100, + 0.12478646127724500, + 0.11986149426641600, + 0.09520840637648180, + 0.07266436962641580, + 0.06157942773922730, + 0.05776990145557140, + 0.05595079146694350, + 0.05422906155293650, + 0.04606394160905190, + 0.03460401579477880, + 0.02431694855838520, + 0.01695117276859440, + 0.01211661291564830, + 0.00784551008485565, + 0.00430794264393258, + 0.00206401896375649, + 0.00099084255721430, + 0.00065560102411584], + [0.09693358901304290, + 0.10652960384957600, + 0.11580433409088400, + 0.11321777793810400, + 0.09912292067710200, + 0.08131783917502760, + 0.07048109387720830, + 0.06833459006738460, + 0.06313644652192900, + 0.05255568033191890, + 0.03903863379099840, + 0.02910689297792140, + 0.02269025908501970, + 0.01651322011205660, + 0.01126491285383100, + 0.00657328507941835, + 0.00372023325715849, + 0.00195236631466226, + 0.00099341991698984, + 0.00071290106976617], + [1.04652268320717000, + 1.04557914271650000, + 1.09227868937597000, + 1.12769408251422000, + 1.10793353197135000, + 1.00519391705143000, + 0.93515656400210500, + 0.91434829403035100, + 0.88472781091218400, + 0.92741634411137500, + 1.07984413189527000, + 1.23485263418514000, + 1.24416877771066000, + 1.12154903817441000, + 1.07427786276195000, + 1.12564654732811000, + 1.24907168423899000, + 1.21184866195041000, + 1.10637161065473000, + 1.04380755195023000, + 0.96240750921599800] + ],[ + [27754352, + 14075999, + 13678353, + 29.11682279982730, + 29.25251358929000, + 28.97478042663600, + 50.90167162031000], + [0.07773301902264660, + 0.09756477612918870, + 0.11769211568808000, + 0.11953094319783700, + 0.10070874902748300, + 0.07710380627667010, + 0.06107481209270700, + 0.05557245339785060, + 0.05625960991605260, + 0.05655944052572760, + 0.05050018273054490, + 0.03998167380585820, + 0.03018284824156070, + 0.02178128532719260, + 0.01546004923447120, + 0.01053184010191340, + 0.00618324070639374, + 0.00309253762350306, + 0.00148564380196157, + 0.00100097315235749], + [0.07414870947175290, + 0.08945795766137910, + 0.11321883781048900, + 0.11651658562245200, + 0.09931926283967810, + 0.08029240511352740, + 0.07198971835798040, + 0.07305219001114050, + 0.06968907391161920, + 0.06031073521142600, + 0.04701710534217110, + 0.03436632086919040, + 0.02578058253156860, + 0.01918327371957260, + 0.01236986721101920, + 0.00632468067099160, + 0.00324813634215291, + 0.00173308253350124, + 0.00107597562154257, + 0.00090549914684498], + [1.02907119007676000, + 1.07881594924275000, + 1.12232721275485000, + 1.06972980730035000, + 1.05569391096106000, + 1.04346799653703000, + 0.98820437091643300, + 0.87304591541007500, + 0.78283773210481600, + 0.83076356851850300, + 0.96506352588551000, + 1.10530588311237000, + 1.19721831153422000, + 1.20479432618776000, + 1.16843941971104000, + 1.28614891275391000, + 1.71360639234849000, + 1.95896791328722000, + 1.83628956559048000, + 1.42088092397757000, + 1.13757438283678000] + ] +]
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html b/wqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html new file mode 100644 index 00000000..082b623a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html @@ -0,0 +1,196 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Resizable Plots</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="point-labels.html">Previous</a> <a href="./">Examples</a> <a href="rotated-tick-labels.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css"> + body { + font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; + } + + p, pre { + margin: 1.5em; + } + + body table { + margin: 2em; + } + + #resizable1, #resizable2 { + width: 440px; + height: 330px; + margin-top: 2em; + margin-bottom: 2em; + padding: 1.2em; + } + + + .jqplot-target { + font-size: 16px; + } + + .ui-resizable-helper { + border: 2px solid gray; + } + </style> + +<p>Plot targets can be placed inside of resizable containers for dynamic plot sizing. The examples here use the jQuery UI package for resizing functionality.</p> + + <table><tr> + <td> +<div id="resizable1" class="ui-widget-content"> + <div id="chart1" style="height:96%; width:96%;"></div> +</div> +</td> +<td> + +<p>The first plot has good resize performance in Firefox, Safari and other canvas enabled browsers. The plot will resize dynamically with the container. IE performance will be slow since IE doesn't natively support the canvas element.</p> + +<p>Resizing is handled by binding a handler to the 'resize' event. The handler function replots the plot during resize. Here, the plot targets's height and width must be specified as a percentage of the container and the container must be visible.</p> + +<p>The event handler looks like:</p> +<pre> + $('#resizable1').bind('resize', function(event, ui) { + plot1.replot( { resetAxes: true } ); + }); +</pre> +</td> +</tr></table> +<table><tr> + <td> + +<div id="resizable2" class="ui-widget-content"> + <div id="chart2" style="height:96%; width:96%;"></div> +</div> +</td> +<td> +<p>The second plot uses an alternative sizing method that is more responsive in all browsers, especially IE. The differnece? First, the plot target is given a static height and width that will fit inside the resizable container. Then, instead of resizing dynamically with the container, the plots replot() method is called at the end of the resize. When resizing is done, the plot targets hieght and width are set to a percentage of the container's and then the replot method is called.</p> + +<p>Also, an options object is passed into the replot method. It contains a single option, resetAxes, which, if true, resets all axes so the min, max, numberTicks and tickInterval are recalculated.</p> +<pre> + $('#resizable2').bind('resizestop', function(event, ui) { + $('#chart2').height($('#resizable2').height()*0.96); + $('#chart2').width($('#resizable2').width()*0.96); + plot2.replot({resetAxes:true}); + }); +</pre> + +<p>You can also pass in option objects to reset specific axes like:</p> + +<pre> + {resetAxes:['yaxis', 'y2axis']}; + + or + + {resetAxes:{yaxis:true, y2axis:true}}; +</pre> + +</td></tr></table> + +<pre class="code brush:js"></pre> + + + <script type="text/javascript" class="code"> + + $(document).ready(function(){ + + $.jqplot._noToImageButton = true; + + var l1 = [18, 36, 41, 93, 100, 115, 133, 129, 119, 107, 91, 146, 169]; + var l2 = [[8, 66], [13, 46], [22,14]]; + var l3 = [[3.3, 7], [9.5, 22], [12.1, 37], [18.6, 95], [24, 102]]; + + var options = { + title: "Lines", + legend:{show:true, location:'se'}, + seriesDefaults:{trendline:{show:true, type:"exp"}}, + axes:{ + yaxis:{ + renderer:$.jqplot.LogAxisRenderer + } + } + }; + + $("#resizable1").resizable({delay:20}); + $("#resizable2").resizable({delay:20, helper:'ui-resizable-helper'}); + + $('#resizable1').bind('resize', function(event, ui) { + // pass in resetAxes: true option to get rid of old ticks and axis properties + // which should be recomputed based on new plot size. + plot1.replot( { resetAxes: true } ); + }); + + $('#resizable2').bind('resizestop', function(event, ui) { + $('#chart2').height($('#resizable2').height()*0.96); + $('#chart2').width($('#resizable2').width()*0.96); + // pass in resetAxes: true option to get rid of old ticks and axis properties + // which should be recomputed based on new plot size. + plot2.replot( { resetAxes:true } ); + }); + + var plot1 = $.jqplot('chart1', [l1, l3], options); + var plot2 = $.jqplot('chart2', [l1, l3], options); + + }); + + </script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.trendline.min.js"></script> + + <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> + <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script> +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html b/wqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html new file mode 100644 index 00000000..e80830ad --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html @@ -0,0 +1,216 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Rotated Labels and Font Styling</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="resizablePlot.html">Previous</a> <a href="./">Examples</a> <a href="rotatedTickLabelsZoom.html">Next</a></div> + + +<!-- Example scripts go here --> + +<p>Rotated axis tick labels are possible through the "jqplot.canvasTextRenderer.min.js" and "jqplot.canvasAxisTickRenderer.min.js" plugins. Native canvas font rendering capabilities are used in supported browsers. This includes most recent browsers (including IE 9). In browsers which don't support native canvas font text, text is rendered in the Hershey font.</p> + +<div id="chart1" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + + +<p>For comparison, here is the same graph with the "fontFamily" and "fontSize" set. If you have a supported browser, you should see a difference in label fonts.</p> + +<div id="chart1b" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<p>The default positioning applies to either primary or secondary axes and accounts for label rotation to ensure that the labels point to the appropriate bar or tick position.</p> + +<p>Also note here the use of the "autoscale" option on the y axes. Turning this option on will force the y axes to line up tick marks for consistend grid lines across the grid.</p> + +<div id="chart2" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<p>You can override the default position by specifying a labelPosition of 'start', 'middle' or 'end'. The results probably are not as pleasing as the default 'auto' setting.</p> + +<div id="chart3" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], + ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], + ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]]; + + var plot1 = $.jqplot('chart1', [line1], { + title: 'Concern vs. Occurrance', + series:[{renderer:$.jqplot.BarRenderer}], + axesDefaults: { + tickRenderer: $.jqplot.CanvasAxisTickRenderer , + tickOptions: { + angle: -30, + fontSize: '10pt' + } + }, + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); +}); +</script> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], + ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], + ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]]; + var plot1b = $.jqplot('chart1b', [line1], { + title: 'Concern vs. Occurrance', + series:[{renderer:$.jqplot.BarRenderer}], + axesDefaults: { + tickRenderer: $.jqplot.CanvasAxisTickRenderer , + tickOptions: { + fontFamily: 'Georgia', + fontSize: '10pt', + angle: -30 + } + }, + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); +}); +</script> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], + ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], + ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]]; + var line2 = [['Nickle', 28], ['Aluminum', 13], ['Xenon', 54], ['Silver', 47], + ['Sulfer', 16], ['Silicon', 14], ['Vanadium', 23]]; + + var plot2 = $.jqplot('chart2', [line1, line2], { + series:[{renderer:$.jqplot.BarRenderer}, {xaxis:'x2axis', yaxis:'y2axis'}], + axesDefaults: { + tickRenderer: $.jqplot.CanvasAxisTickRenderer , + tickOptions: { + angle: 30 + } + }, + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer + }, + x2axis: { + renderer: $.jqplot.CategoryAxisRenderer + }, + yaxis: { + autoscale:true + }, + y2axis: { + autoscale:true + } + } + }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], + ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], + ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]]; + var plot3 = $.jqplot('chart3', [line1], { + title: 'Concern vs. Occurrance', + series:[{renderer:$.jqplot.BarRenderer}], + axesDefaults: { + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -30 + } + }, + axes: { + xaxis: { + renderer: $.jqplot.CategoryAxisRenderer, + tickOptions: { + labelPosition: 'middle' + } + }, + yaxis: { + autoscale:true, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + labelPosition: 'start' + } + } + } + }); +}); +</script> + + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html b/wqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html new file mode 100644 index 00000000..902b021b --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html @@ -0,0 +1,118 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Date Axes, Rotated Labels and Zooming</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="rotated-tick-labels.html">Previous</a> <a href="./">Examples</a> <a href="selectorSyntax.html">Next</a></div> + + <div class="example-plot" id="chart" style="width: 600px; height: 400px;"></div> + +<!-- Example scripts go here --> + +<style type="text/css"> + .jqplot-target: { + margin-left: 70px; + } +</style> + +<script type="text/javascript" class="code"> + +$(document).ready(function(){ + // Enable plugins like highlighter and cursor by default. + // Otherwise, must specify show: true option for those plugins. + $.jqplot.config.enablePlugins = true; + + var line1=[['2008-09-30', 4], ['2008-10-30', 6.5], ['2008-11-30', 5.7], ['2008-12-30', 9], + ['2009-01-30', 8.2], ['2009-02-28', 7.6], ['2009-03-30', 11.4], ['2009-04-30', 16.2], + ['2009-05-30', 21.8], ['2009-06-30', 19.3], ['2009-07-30', 29.7], ['2009-08-30', 36.7], + ['2009-09-30', 38.7], ['2009-10-30', 33.7], ['2009-11-30', 49.7], ['2009-12-30', 62.7]]; + + var plot1 = $.jqplot('chart', [line1], { + title:'Rotated Axis Text', + axes:{ + xaxis:{ + renderer:$.jqplot.DateAxisRenderer, + rendererOptions:{ + tickRenderer:$.jqplot.CanvasAxisTickRenderer + }, + tickOptions:{ + fontSize:'10pt', + fontFamily:'Tahoma', + angle:-40 + } + }, + yaxis:{ + rendererOptions:{ + tickRenderer:$.jqplot.CanvasAxisTickRenderer}, + tickOptions:{ + fontSize:'10pt', + fontFamily:'Tahoma', + angle:30 + } + } + }, + series:[{ lineWidth:4, markerOptions:{ style:'square' } }], + cursor:{ + zoom:true, + looseZoom: true + } + }); + +}); +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <!-- to render rotated axis ticks, include both the canvasText and canvasAxisTick renderers --> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html b/wqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html new file mode 100644 index 00000000..3dad914e --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html @@ -0,0 +1,157 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Plot Creation with jQuery Selectors</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="rotatedTickLabelsZoom.html">Previous</a> <a href="./">Examples</a> <a href="smoothedLine.html">Next</a></div> + + +<!-- Example scripts go here --> + +<div id="chart1" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<div class="chart2" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<div class="jqplot" style="height:300px; width:500px;"></div> + +<div class="jqplot" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // Use jQuery selector for a specific element ID. + $('#chart1').jqplot([[3,7,9,1,5,3,8,2,5]]); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // jQuery selector for elements with a specific class attribute. + // Here, there is one div with the class "chart2" + $(".chart2").jqplot ([[3,7,9,1,5,3,8,2,5]], { + title: "Plot With Options", + axesDefaults: { + labelRenderer: $.jqplot.CanvasAxisLabelRenderer + }, + seriesDefaults: { + rendererOptions: { + smooth: true + } + }, + axes: { + xaxis: { + label: "X Axis", + pad: 0 + }, + yaxis: { + label: "Y Axis" + } + } + }); +}); + +// the jqPlot plot object can be accessed through the jQuery "data" method: +// +// >>> $('.chart2').data('jqplot').series[0].data +// [[1, 3], [2, 7], [3, 9], [4, 1], [5, 5], [6, 3], [7, 8], [8, 2], [9, 5]] + +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + // Some simple loops to build up data arrays. + var cosPoints = []; + for (var i=0; i<2*Math.PI; i+=1){ + cosPoints.push([i, Math.cos(i)]); + } + + var sinPoints = []; + for (var i=0; i<2*Math.PI; i+=0.4){ + sinPoints.push([i, 2*Math.sin(i-.8)]); + } + + var powPoints1 = []; + for (var i=0; i<2*Math.PI; i+=1) { + powPoints1.push([i, 2.5 + Math.pow(i/4, 2)]); + } + + var powPoints2 = []; + for (var i=0; i<2*Math.PI; i+=1) { + powPoints2.push([i, -2.5 - Math.pow(i/4, 2)]); + } + + // jQuery selector for all divs with a class of "jqplot". + // Here, there are two divs that match. By supplying 2 seperate + // arrays of data, each plot will have it's own independent series. + // Only one options array is supplied, so it will be used for both + // plots. + $("div.jqplot").jqplot([cosPoints, sinPoints], [powPoints1, powPoints2], { + title: "One Selector, Multiple Plots", + seriesDefaults: { + rendererOptions: { + smooth: true + } + } + }); + +}); +</script> + + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html b/wqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html new file mode 100644 index 00000000..782a44d4 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html @@ -0,0 +1,137 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Smoothed Lines</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="selectorSyntax.html">Previous</a> <a href="./">Examples</a> <a href="theming.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css"> + body { + background-color: #f3f3f3; + } + </style> + + + <div id="chart1" style="height:400px; width:600px;"></div> + + <pre class="code brush:js"></pre> + + <script type="text/javascript" class="code"> + $(document).ready(function(){ + + var d1 = [[0, -10.3], [1, 7.0], [2, 15.7], [3, 0.5], [4, -10.4], [5, 1.1], [6, 13.2], + [7, 1.8], [8, -4.5], [9, -1.8], [10, 2.0], [11, 3.0], [12, -3.5], [13, -7.4], [14, -11.3]]; + var d2 = [[0, 1.3], [1, 12.8], [2, -8.2], [3, -5.2], [4, 16.4], [5, -5.3], [6, 8.1], + [7, 15.1], [8, -4.4], [9, 7.8], [10, -1.4], [11, 0.2], [12, 1.3], [13, 11.7], [14, -9.7]]; + + var plot1 = $.jqplot('chart1', [d1, d2], { + grid: { + drawBorder: false, + shadow: false, + background: 'rgba(0,0,0,0)' + }, + highlighter: { show: true }, + seriesDefaults: { + shadowAlpha: 0.1, + shadowDepth: 2, + fillToZero: true + }, + series: [ + { + color: 'rgba(198,88,88,.6)', + negativeColor: 'rgba(100,50,50,.6)', + showMarker: true, + showLine: true, + fill: true, + fillAndStroke: true, + markerOptions: { + style: 'filledCircle', + size: 8 + }, + rendererOptions: { + smooth: true + } + }, + { + color: 'rgba(44, 190, 160, 0.7)', + showMarker: true, + rendererOptions: { + smooth: true, + }, + markerOptions: { + style: 'filledSquare', + size: 8 + }, + } + ], + axes: { + xaxis: { + // padding of 0 or of 1 produce same results, range + // is multiplied by 1x, so it is not padded. + pad: 1.0, + tickOptions: { + showGridline: false + } + }, + yaxis: { + pad: 1.05 + } + } + }); + + }); + + </script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE new file mode 100644 index 00000000..3f9959fc --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library.
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE new file mode 100644 index 00000000..e7c70ba1 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2003, 2004 Jim Weirich + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js new file mode 100644 index 00000000..4e29bdde --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js @@ -0,0 +1,17 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d<c.9;d++)i[c[d]]=a}2 o(c){1 a=r.H("J"),d=3;a.K=c;a.M="L/t";a.G="t";a.u=a.v=2(){6(!d&&(!8.7||8.7=="F"||8.7=="z")){d=q;e[c]=q;a:{4(1 p y e)6(e[p]==3)B a;j&&5.C(k)}a.u=a.v=x;a.D.O(a)}};r.N.R(a)}1 f=Q,l=h.P(),i={},e={},j=3,k=x,b;5.T=2(c){k=c;j=q};4(b=0;b<f.9;b++){1 m=f[b].w?f[b]:f[b].S(/\\s+/),g=m.w();n(m,g)}4(b=0;b<l.9;b++)6(g=i[l[b].E.A]){e[g]=3;o(g)}}})();',56,56,'|var|function|false|for|SyntaxHighlighter|if|readyState|this|length|||||||||||||||||true|document||javascript|onload|onreadystatechange|pop|null|in|complete|brush|break|highlight|parentNode|params|loaded|language|createElement|autoloader|script|src|text|type|body|removeChild|findElements|arguments|appendChild|split|all'.split('|'),0,{})) diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js new file mode 100644 index 00000000..b8df12a1 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js @@ -0,0 +1 @@ +eval(function(h,b,j,f,g,i){g=function(a){return(a<b?"":g(parseInt(a/b)))+((a=a%b)>35?String.fromCharCode(a+29):a.toString(36))};if(!"".replace(/^/,String)){while(j--){i[g(j)]=f[j]||g(j)}f=[function(a){return i[a]}];g=function(){return"\\w+"};j=1}while(j--){if(f[j]){h=h.replace(new RegExp("\\b"+g(j)+"\\b","g"),f[j])}}return h}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d<c.9;d++)i[c[d]]=a}2 o(c){1 a=r.H("J"),d=3;a.K=c;a.M="L/t";a.G="t";a.u=a.v=2(){6(!d&&(!8.7||8.7=="F"||8.7=="z")){d=q;e[c]=q;a:{4(1 p y e)6(e[p]==3)B a;j&&5.C(k)}a.u=a.v=x;a.D.O(a)}};r.N.R(a)}1 f=Q,l=h.P(),i={},e={},j=3,k=x,b;5.T=2(c){k=c;j=q};4(b=0;b<f.9;b++){1 m=f[b].w?f[b]:f[b].S(/\\s+/),g=m.w();n(m,g)}4(b=0;b<l.9;b++)6(g=i[l[b].E.A]){e[g]=3;o(g)}}})();',56,56,"|var|function|false|for|SyntaxHighlighter|if|readyState|this|length|||||||||||||||||true|document||javascript|onload|onreadystatechange|pop|null|in|complete|brush|break|highlight|parentNode|params|loaded|language|createElement|autoloader|script|src|text|type|body|removeChild|findElements|arguments|appendChild|split|all".split("|"),0,{}));
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js new file mode 100644 index 00000000..ff98daba --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js @@ -0,0 +1,52 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +;(function() +{ + // CommonJS + typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; + + function Brush() + { + var keywords = 'break case catch continue ' + + 'default delete do else false ' + + 'for function if in instanceof ' + + 'new null return super switch ' + + 'this throw true try typeof var while with' + ; + + var r = SyntaxHighlighter.regexLib; + + this.regexList = [ + { regex: r.multiLineDoubleQuotedString, css: 'string' }, // double quoted strings + { regex: r.multiLineSingleQuotedString, css: 'string' }, // single quoted strings + { regex: r.singleLineCComments, css: 'comments' }, // one line comments + { regex: r.multiLineCComments, css: 'comments' }, // multiline comments + { regex: /\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion + { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keywords + ]; + + this.forHtmlScript(r.scriptScriptTags); + }; + + Brush.prototype = new SyntaxHighlighter.Highlighter(); + Brush.aliases = ['js', 'jscript', 'javascript']; + + SyntaxHighlighter.brushes.JScript = Brush; + + // CommonJS + typeof(exports) != 'undefined' ? exports.Brush = Brush : null; +})(); diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js new file mode 100644 index 00000000..c9dc5868 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js @@ -0,0 +1 @@ +(function(){typeof(require)!="undefined"?SyntaxHighlighter=require("shCore").SyntaxHighlighter:null;function a(){var b="break case catch continue default delete do else false for function if in instanceof new null return super switch this throw true try typeof var while with";var c=SyntaxHighlighter.regexLib;this.regexList=[{regex:c.multiLineDoubleQuotedString,css:"string"},{regex:c.multiLineSingleQuotedString,css:"string"},{regex:c.singleLineCComments,css:"comments"},{regex:c.multiLineCComments,css:"comments"},{regex:/\s*#.*/gm,css:"preprocessor"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"keyword"}];this.forHtmlScript(c.scriptScriptTags)}a.prototype=new SyntaxHighlighter.Highlighter();a.aliases=["js","jscript","javascript"];SyntaxHighlighter.brushes.JScript=a;typeof(exports)!="undefined"?exports.Brush=a:null})();
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js new file mode 100644 index 00000000..69d9fd0b --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js @@ -0,0 +1,69 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +;(function() +{ + // CommonJS + typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; + + function Brush() + { + function process(match, regexInfo) + { + var constructor = SyntaxHighlighter.Match, + code = match[0], + tag = new XRegExp('(<|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code), + result = [] + ; + + if (match.attributes != null) + { + var attributes, + regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' + + '\\s*=\\s*' + + '(?<value> ".*?"|\'.*?\'|\\w+)', + 'xg'); + + while ((attributes = regex.exec(code)) != null) + { + result.push(new constructor(attributes.name, match.index + attributes.index, 'color1')); + result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string')); + } + } + + if (tag != null) + result.push( + new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword') + ); + + return result; + } + + this.regexList = [ + { regex: new XRegExp('(\\<|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\>|>)', 'gm'), css: 'color2' }, // <![ ... [ ... ]]> + { regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // <!-- ... --> + { regex: new XRegExp('(<|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(>|>)', 'sg'), func: process } + ]; + }; + + Brush.prototype = new SyntaxHighlighter.Highlighter(); + Brush.aliases = ['xml', 'xhtml', 'xslt', 'html']; + + SyntaxHighlighter.brushes.Xml = Brush; + + // CommonJS + typeof(exports) != 'undefined' ? exports.Brush = Brush : null; +})(); diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js new file mode 100644 index 00000000..a1c959c7 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js @@ -0,0 +1 @@ +(function(){typeof(require)!="undefined"?SyntaxHighlighter=require("shCore").SyntaxHighlighter:null;function a(){function b(f,j){var g=SyntaxHighlighter.Match,i=f[0],d=new XRegExp("(<|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)","xg").exec(i),c=[];if(f.attributes!=null){var e,h=new XRegExp("(?<name> [\\w:\\-\\.]+)\\s*=\\s*(?<value> \".*?\"|'.*?'|\\w+)","xg");while((e=h.exec(i))!=null){c.push(new g(e.name,f.index+e.index,"color1"));c.push(new g(e.value,f.index+e.index+e[0].indexOf(e.value),"string"))}}if(d!=null){c.push(new g(d.name,f.index+d[0].indexOf(d.name),"keyword"))}return c}this.regexList=[{regex:new XRegExp("(\\<|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\>|>)","gm"),css:"color2"},{regex:SyntaxHighlighter.regexLib.xmlComments,css:"comments"},{regex:new XRegExp("(<|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(>|>)","sg"),func:b}]}a.prototype=new SyntaxHighlighter.Highlighter();a.aliases=["xml","xhtml","xslt","html"];SyntaxHighlighter.brushes.Xml=a;typeof(exports)!="undefined"?exports.Brush=a:null})();
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js new file mode 100644 index 00000000..b47b6454 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js @@ -0,0 +1,17 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a<f.L;a++)I(f[a]===e)H a;H-1}M=6(f,e){K a=[],b=M.1B,c=0,d,h;I(M.1R(f)){I(e!==1d)1S 3m("2a\'t 5r 5I 5F 5B 5C 15 5E 5p");H r(f)}I(v)1S 2U("2a\'t W 3l M 59 5m 5g 5x 5i");e=e||"";O(d={2N:11,19:[],2K:6(g){H e.1i(g)>-1},3d:6(g){e+=g}};c<f.L;)I(h=B(f,c,b,d)){a.U(h.3k);c+=h.1C[0].L||1}Y I(h=n.X.W(z[b],f.1a(c))){a.U(h[0]);c+=h[0].L}Y{h=f.3a(c);I(h==="[")b=M.2I;Y I(h==="]")b=M.1B;a.U(h);c++}a=15(a.1K(""),n.Q.W(e,w,""));a.1w={1m:f,19:d.2N?d.19:N};H a};M.3v="1.5.0";M.2I=1;M.1B=2;K C=/\\$(?:(\\d\\d?|[$&`\'])|{([$\\w]+)})/g,w=/[^5h]+|([\\s\\S])(?=[\\s\\S]*\\1)/g,A=/^(?:[?*+]|{\\d+(?:,\\d*)?})\\??/,v=11,u=[],n={X:15.Z.X,1A:15.Z.1A,1C:1r.Z.1C,Q:1r.Z.Q,1e:1r.Z.1e},x=n.X.W(/()??/,"")[1]===1d,D=6(){K f=/^/g;n.1A.W(f,"");H!f.12}(),y=6(){K f=/x/g;n.Q.W("x",f,"");H!f.12}(),E=15.Z.3n!==1d,z={};z[M.2I]=/^(?:\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S]))/;z[M.1B]=/^(?:\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S])|\\(\\?[:=!]|[?*+]\\?|{\\d+(?:,\\d*)?}\\??)/;M.1h=6(f,e,a,b){u.U({2q:r(f,"g"+(E?"y":"")),2b:e,3r:a||M.1B,2p:b||N})};M.2n=6(f,e){K a=f+"/"+(e||"");H M.2n[a]||(M.2n[a]=M(f,e))};M.3c=6(f){H r(f,"g")};M.5l=6(f){H f.Q(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")};M.5e=6(f,e,a,b){e=r(e,"g"+(b&&E?"y":""));e.12=a=a||0;f=e.X(f);H b?f&&f.P===a?f:N:f};M.3q=6(){M.1h=6(){1S 2U("2a\'t 55 1h 54 3q")}};M.1R=6(f){H 53.Z.1q.W(f)==="[2m 15]"};M.3p=6(f,e,a,b){O(K c=r(e,"g"),d=-1,h;h=c.X(f);){a.W(b,h,++d,f,c);c.12===h.P&&c.12++}I(e.1J)e.12=0};M.57=6(f,e){H 6 a(b,c){K d=e[c].1I?e[c]:{1I:e[c]},h=r(d.1I,"g"),g=[],i;O(i=0;i<b.L;i++)M.3p(b[i],h,6(k){g.U(d.3j?k[d.3j]||"":k[0])});H c===e.L-1||!g.L?g:a(g,c+1)}([f],0)};15.Z.1p=6(f,e){H J.X(e[0])};15.Z.W=6(f,e){H J.X(e)};15.Z.X=6(f){K e=n.X.1p(J,14),a;I(e){I(!x&&e.L>1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;b<e.L;b++)I(a=J.1w.19[b-1])e[a]=e[b];!D&&J.1J&&!e[0].L&&J.12>e.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;d<b.L;d++)I(b[d])14[0][b[d]]=14[d+1]}I(a&&f.1J)f.12=14[14.L-2]+14[0].L;H e.1p(N,14)});Y{c=J+"";c=n.Q.W(c,f,6(){K d=14;H n.Q.W(e,C,6(h,g,i){I(g)5b(g){24"$":H"$";24"&":H d[0];24"`":H d[d.L-1].1a(0,d[d.L-2]);24"\'":H d[d.L-1].1a(d[d.L-2]+d[0].L);5a:i="";g=+g;I(!g)H h;O(;g>d.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P<a.L&&3b.Z.U.1p(b,d.1a(1));h=d[0].L;c=f.12;I(b.L>=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a<d.L&&i==N;a++)i=p(d[a],b,c);H i}6 C(a,b){K c={},d;O(d 2g a)c[d]=a[d];O(d 2g b)c[d]=b[d];H c}6 w(a,b,c,d){6 h(g){g=g||1P.5y;I(!g.1F){g.1F=g.52;g.3N=6(){J.5w=11}}c.W(d||1P,g)}a.3g?a.3g("4U"+b,h):a.4y(b,h,11)}6 A(a,b){K c=e.1Y.2j,d=N;I(c==N){c={};O(K h 2g e.1U){K g=e.1U[h];d=g.4x;I(d!=N){g.1V=h.4w();O(g=0;g<d.L;g++)c[d[g]]=h}}e.1Y.2j=c}d=e.1U[c[a]];d==N&&b!=11&&1P.1X(e.13.1x.1X+(e.13.1x.3E+a));H d}6 v(a,b){O(K c=a.1e("\\n"),d=0;d<c.L;d++)c[d]=b(c[d],d);H c.1K("\\n")}6 u(a,b){I(a==N||a.L==0||a=="\\n")H a;a=a.Q(/</g,"&1y;");a=a.Q(/ {2,}/g,6(c){O(K d="",h=0;h<c.L-1;h++)d+=e.13.1W;H d+" "});I(b!=N)a=v(a,6(c){I(c.L==0)H"";K d="";c=c.Q(/^(&2s;| )+/,6(h){d=h;H""});I(c.L==0)H d;H d+\'<17 1g="\'+b+\'">\'+c+"</17>"});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+=" ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.P<b.P)H-1;Y I(a.P>b.P)H 1;Y I(a.L<b.L)H-1;Y I(a.L>b.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'<a 2h="\'+c+\'">\'+c+"</a>"+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<a.L;c++)a[c].3s=="20"&&b.U(a[c]);H b}6 f(a){a=a.1F;K b=p(a,".20",R);a=p(a,".3O",R);K c=1E.4i("3t");I(!(!a||!b||p(a,"3t"))){B(b.1c);r(b,"1m");O(K d=a.3G,h=[],g=0;g<d.L;g++)h.U(d[g].4z||d[g].4A);h=h.1K("\\r");c.39(1E.4D(h));a.39(c);c.2C();c.4C();w(c,"4u",6(){c.2G.4E(c);b.1l=b.1l.Q("1m","")})}}I(1j 3F!="1d"&&1j M=="1d")M=3F("M").M;K e={2v:{"1g-27":"","2i-1s":1,"2z-1s-2t":11,1M:N,1t:N,"42-45":R,"43-22":4,1u:R,16:R,"3V-17":R,2l:11,"41-40":R,2k:11,"1z-1k":11},13:{1W:"&2s;",2M:R,46:11,44:11,34:"4n",1x:{21:"4o 1m",2P:"?",1X:"1v\\n\\n",3E:"4r\'t 4t 1D O: ",4g:"4m 4B\'t 51 O 1z-1k 4F: ",37:\'<!4T 1z 4S "-//4V//3H 4W 1.0 4Z//4Y" "1Z://2y.3L.3K/4X/3I/3H/3I-4P.4J"><1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v</1t></3J><3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;"><T 1L="2O-3D:3C;3w-32:1.6z;"><T 1L="25-22:6A-6E;">1v</T><T 1L="25-22:.6C;3w-6B:6R;"><T>3v 3.0.76 (72 73 3x)</T><T><a 2h="1Z://3u.2w/1v" 1F="38" 1L="2f:#3y">1Z://3u.2w/1v</a></T><T>70 17 6U 71.</T><T>6T 6X-3x 6Y 6D.</T></T><T>6t 61 60 J 1k, 5Z <a 2h="6u://2y.62.2w/63-66/65?64=5X-5W&5P=5O" 1L="2f:#3y">5R</a> 5V <2R/>5U 5T 5S!</T></T></3B></1z>\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'<T 1g="16">\',d=e.16.2x,h=d.2X,g=0;g<h.L;g++)c+=(d[h[g]].1H||b)(a,h[g]);c+="</T>";H c},2o:6(a,b,c){H\'<2W><a 2h="#" 1g="6e 6h\'+b+" "+b+\'">\'+c+"</a></2W>"},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h<c.L;h++)d.U(c[h]);c=d}c=c;d=[];I(e.13.2M)c=c.1O(z());I(c.L===0)H d;O(h=0;h<c.L;h++){O(K g=c[h],i=a,k=c[h].1l,j=3W 0,l={},m=1f M("^\\\\[(?<2V>(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g<c.L;g++){b=c[g];K i=b.1F,k=b.1n,j=k.1D,l;I(j!=N){I(k["1z-1k"]=="R"||e.2v["1z-1k"]==R){d=1f e.4l(j);j="4O"}Y I(d=A(j))d=1f d;Y 6H;l=i.3X;I(h.2M){l=l;K m=x(l),s=11;I(m.1i("<![6G[")==0){m=m.4h(9);s=R}K o=m.L;I(m.1i("]]\\>")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;m<j.L;m++)j[m].P+=l}K c=A(a),d,h=1f e.1U.5Y,g=J,i="2F 1H 2Q".1e(" ");I(c!=N){d=1f c;O(K k=0;k<i.L;k++)(6(){K j=i[k];g[j]=6(){H h[j].1p(h,14)}})();d.28==N?1P.1X(e.13.1x.1X+(e.13.1x.4g+a)):h.2J.U({1I:d.28.17,2D:6(j){O(K l=j.17,m=[],s=d.2J,o=j.P+j.18.L,F=d.28,q,G=0;G<s.L;G++){q=y(l,s[G]);b(q,o);m=m.1O(q)}I(F.18!=N&&j.18!=N){q=y(j.18,F.18);b(q,j.P);m=m.1O(q)}I(F.1b!=N&&j.1b!=N){q=y(j.1b,F.1b);b(q,j.P+j[0].5Q(j.1b));m=m.1O(q)}O(j=0;j<m.L;j++)m[j].1V=c.1V;H m}})}};e.4j=6(){};e.4j.Z={V:6(a,b){K c=J.1n[a];c=c==N?b:c;K d={"R":R,"11":11}[c];H d==N?c:d},3Y:6(a){H 1E.4i(a)},4c:6(a,b){K c=[];I(a!=N)O(K d=0;d<a.L;d++)I(1j a[d]=="2m")c=c.1O(y(b,a[d]));H J.4e(c.6b(D))},4e:6(a){O(K b=0;b<a.L;b++)I(a[b]!==N)O(K c=a[b],d=c.P+c.L,h=b+1;h<a.L&&a[b]!==N;h++){K g=a[h];I(g!==N)I(g.P>d)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P<d)a[h]=N}H a},4d:6(a){K b=[],c=2u(J.V("2i-1s"));v(a,6(d,h){b.U(h+c)});H b},3U:6(a){K b=J.V("1M",[]);I(1j b!="2m"&&b.U==N)b=[b];a:{a=a.1q();K c=3W 0;O(c=c=1Q.6c(c||0,0);c<b.L;c++)I(b[c]==a){b=c;1N a}b=-1}H b!=-1},2r:6(a,b,c){a=["1s","6i"+b,"P"+a,"6r"+(b%2==0?1:2).1q()];J.3U(b)&&a.U("67");b==0&&a.U("1N");H\'<T 1g="\'+a.1K(" ")+\'">\'+c+"</T>"},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i<d;i++){K k=b?b[i]:h+i,j;I(k==0)j=e.13.1W;Y{j=g;O(K l=k.1q();l.L<j;)l="0"+l;j=l}a=j;c+=J.2r(i,k,a)}H c},49:6(a,b){a=x(a);K c=a.1e("\\n");J.V("2z-1s-2t");K d=2u(J.V("2i-1s"));a="";O(K h=J.V("1D"),g=0;g<c.L;g++){K i=c[g],k=/^(&2s;|\\s)+/.X(i),j=N,l=b?b[g]:d+g;I(k!=N){j=k[0].1q();i=i.1o(j.L);j=j.Q(" ",e.13.1W)}i=x(i);I(i.L==0)i=e.13.1W;a+=J.2r(g,l,(j!=N?\'<17 1g="\'+h+\' 5N">\'+j+"</17>":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"</4a>":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i<b.L;i++){K k=b[i],j;I(!(k===N||k.L===0)){j=c(k);h+=u(a.1o(d,k.P-d),j+"48")+u(k.1T,j+k.23);d=k.P+k.L+(k.75||0)}}h+=u(a.1o(d),c()+"48");H h},1H:6(a){K b="",c=["20"],d;I(J.V("2k")==R)J.1n.16=J.1n.1u=11;1l="20";J.V("2l")==R&&c.U("47");I((1u=J.V("1u"))==11)c.U("6S");c.U(J.V("1g-27"));c.U(J.V("1D"));a=a.Q(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"").Q(/\\r/g," ");b=J.V("43-22");I(J.V("42-45")==R)a=n(a,b);Y{O(K h="",g=0;g<b;g++)h+=" ";a=a.Q(/\\t/g,h)}a=a;a:{b=a=a;h=/<2R\\s*\\/?>|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i<b.L&&g>0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i<b.L;i++)b[i]=b[i].1o(g);a=b.1K("\\n")}I(1u)d=J.4d(a);b=J.4c(J.2J,a);b=J.4b(a,b);b=J.49(b,d);I(J.V("41-40"))b=E(b);1j 2H!="1d"&&2H.3S&&2H.3S.1C(/5s/)&&c.U("5t");H b=\'<T 1c="\'+t(J.1c)+\'" 1g="\'+c.1K(" ")+\'">\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"</2d>":"")+\'<2d 1g="17"><T 1g="3O">\'+b+"</T></2d></3P></3T></3Z></T>"},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,'||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83'.split('|'),0,{})) diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js new file mode 100644 index 00000000..0ec48344 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js @@ -0,0 +1 @@ +eval(function(h,b,j,f,g,i){g=function(a){return(a<b?"":g(parseInt(a/b)))+((a=a%b)>35?String.fromCharCode(a+29):a.toString(36))};if(!"".replace(/^/,String)){while(j--){i[g(j)]=f[j]||g(j)}f=[function(a){return i[a]}];g=function(){return"\\w+"};j=1}while(j--){if(f[j]){h=h.replace(new RegExp("\\b"+g(j)+"\\b","g"),f[j])}}return h}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a<f.L;a++)I(f[a]===e)H a;H-1}M=6(f,e){K a=[],b=M.1B,c=0,d,h;I(M.1R(f)){I(e!==1d)1S 3m("2a\'t 5r 5I 5F 5B 5C 15 5E 5p");H r(f)}I(v)1S 2U("2a\'t W 3l M 59 5m 5g 5x 5i");e=e||"";O(d={2N:11,19:[],2K:6(g){H e.1i(g)>-1},3d:6(g){e+=g}};c<f.L;)I(h=B(f,c,b,d)){a.U(h.3k);c+=h.1C[0].L||1}Y I(h=n.X.W(z[b],f.1a(c))){a.U(h[0]);c+=h[0].L}Y{h=f.3a(c);I(h==="[")b=M.2I;Y I(h==="]")b=M.1B;a.U(h);c++}a=15(a.1K(""),n.Q.W(e,w,""));a.1w={1m:f,19:d.2N?d.19:N};H a};M.3v="1.5.0";M.2I=1;M.1B=2;K C=/\\$(?:(\\d\\d?|[$&`\'])|{([$\\w]+)})/g,w=/[^5h]+|([\\s\\S])(?=[\\s\\S]*\\1)/g,A=/^(?:[?*+]|{\\d+(?:,\\d*)?})\\??/,v=11,u=[],n={X:15.Z.X,1A:15.Z.1A,1C:1r.Z.1C,Q:1r.Z.Q,1e:1r.Z.1e},x=n.X.W(/()??/,"")[1]===1d,D=6(){K f=/^/g;n.1A.W(f,"");H!f.12}(),y=6(){K f=/x/g;n.Q.W("x",f,"");H!f.12}(),E=15.Z.3n!==1d,z={};z[M.2I]=/^(?:\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S]))/;z[M.1B]=/^(?:\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S])|\\(\\?[:=!]|[?*+]\\?|{\\d+(?:,\\d*)?}\\??)/;M.1h=6(f,e,a,b){u.U({2q:r(f,"g"+(E?"y":"")),2b:e,3r:a||M.1B,2p:b||N})};M.2n=6(f,e){K a=f+"/"+(e||"");H M.2n[a]||(M.2n[a]=M(f,e))};M.3c=6(f){H r(f,"g")};M.5l=6(f){H f.Q(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")};M.5e=6(f,e,a,b){e=r(e,"g"+(b&&E?"y":""));e.12=a=a||0;f=e.X(f);H b?f&&f.P===a?f:N:f};M.3q=6(){M.1h=6(){1S 2U("2a\'t 55 1h 54 3q")}};M.1R=6(f){H 53.Z.1q.W(f)==="[2m 15]"};M.3p=6(f,e,a,b){O(K c=r(e,"g"),d=-1,h;h=c.X(f);){a.W(b,h,++d,f,c);c.12===h.P&&c.12++}I(e.1J)e.12=0};M.57=6(f,e){H 6 a(b,c){K d=e[c].1I?e[c]:{1I:e[c]},h=r(d.1I,"g"),g=[],i;O(i=0;i<b.L;i++)M.3p(b[i],h,6(k){g.U(d.3j?k[d.3j]||"":k[0])});H c===e.L-1||!g.L?g:a(g,c+1)}([f],0)};15.Z.1p=6(f,e){H J.X(e[0])};15.Z.W=6(f,e){H J.X(e)};15.Z.X=6(f){K e=n.X.1p(J,14),a;I(e){I(!x&&e.L>1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;b<e.L;b++)I(a=J.1w.19[b-1])e[a]=e[b];!D&&J.1J&&!e[0].L&&J.12>e.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;d<b.L;d++)I(b[d])14[0][b[d]]=14[d+1]}I(a&&f.1J)f.12=14[14.L-2]+14[0].L;H e.1p(N,14)});Y{c=J+"";c=n.Q.W(c,f,6(){K d=14;H n.Q.W(e,C,6(h,g,i){I(g)5b(g){24"$":H"$";24"&":H d[0];24"`":H d[d.L-1].1a(0,d[d.L-2]);24"\'":H d[d.L-1].1a(d[d.L-2]+d[0].L);5a:i="";g=+g;I(!g)H h;O(;g>d.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P<a.L&&3b.Z.U.1p(b,d.1a(1));h=d[0].L;c=f.12;I(b.L>=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a<d.L&&i==N;a++)i=p(d[a],b,c);H i}6 C(a,b){K c={},d;O(d 2g a)c[d]=a[d];O(d 2g b)c[d]=b[d];H c}6 w(a,b,c,d){6 h(g){g=g||1P.5y;I(!g.1F){g.1F=g.52;g.3N=6(){J.5w=11}}c.W(d||1P,g)}a.3g?a.3g("4U"+b,h):a.4y(b,h,11)}6 A(a,b){K c=e.1Y.2j,d=N;I(c==N){c={};O(K h 2g e.1U){K g=e.1U[h];d=g.4x;I(d!=N){g.1V=h.4w();O(g=0;g<d.L;g++)c[d[g]]=h}}e.1Y.2j=c}d=e.1U[c[a]];d==N&&b!=11&&1P.1X(e.13.1x.1X+(e.13.1x.3E+a));H d}6 v(a,b){O(K c=a.1e("\\n"),d=0;d<c.L;d++)c[d]=b(c[d],d);H c.1K("\\n")}6 u(a,b){I(a==N||a.L==0||a=="\\n")H a;a=a.Q(/</g,"&1y;");a=a.Q(/ {2,}/g,6(c){O(K d="",h=0;h<c.L-1;h++)d+=e.13.1W;H d+" "});I(b!=N)a=v(a,6(c){I(c.L==0)H"";K d="";c=c.Q(/^(&2s;| )+/,6(h){d=h;H""});I(c.L==0)H d;H d+\'<17 1g="\'+b+\'">\'+c+"</17>"});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+=" ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.P<b.P)H-1;Y I(a.P>b.P)H 1;Y I(a.L<b.L)H-1;Y I(a.L>b.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'<a 2h="\'+c+\'">\'+c+"</a>"+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<a.L;c++)a[c].3s=="20"&&b.U(a[c]);H b}6 f(a){a=a.1F;K b=p(a,".20",R);a=p(a,".3O",R);K c=1E.4i("3t");I(!(!a||!b||p(a,"3t"))){B(b.1c);r(b,"1m");O(K d=a.3G,h=[],g=0;g<d.L;g++)h.U(d[g].4z||d[g].4A);h=h.1K("\\r");c.39(1E.4D(h));a.39(c);c.2C();c.4C();w(c,"4u",6(){c.2G.4E(c);b.1l=b.1l.Q("1m","")})}}I(1j 3F!="1d"&&1j M=="1d")M=3F("M").M;K e={2v:{"1g-27":"","2i-1s":1,"2z-1s-2t":11,1M:N,1t:N,"42-45":R,"43-22":4,1u:R,16:R,"3V-17":R,2l:11,"41-40":R,2k:11,"1z-1k":11},13:{1W:"&2s;",2M:R,46:11,44:11,34:"4n",1x:{21:"4o 1m",2P:"?",1X:"1v\\n\\n",3E:"4r\'t 4t 1D O: ",4g:"4m 4B\'t 51 O 1z-1k 4F: ",37:\'<!4T 1z 4S "-//4V//3H 4W 1.0 4Z//4Y" "1Z://2y.3L.3K/4X/3I/3H/3I-4P.4J"><1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v</1t></3J><3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;"><T 1L="2O-3D:3C;3w-32:1.6z;"><T 1L="25-22:6A-6E;">1v</T><T 1L="25-22:.6C;3w-6B:6R;"><T>3v 3.0.76 (72 73 3x)</T><T><a 2h="1Z://3u.2w/1v" 1F="38" 1L="2f:#3y">1Z://3u.2w/1v</a></T><T>70 17 6U 71.</T><T>6T 6X-3x 6Y 6D.</T></T><T>6t 61 60 J 1k, 5Z <a 2h="6u://2y.62.2w/63-66/65?64=5X-5W&5P=5O" 1L="2f:#3y">5R</a> 5V <2R/>5U 5T 5S!</T></T></3B></1z>\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'<T 1g="16">\',d=e.16.2x,h=d.2X,g=0;g<h.L;g++)c+=(d[h[g]].1H||b)(a,h[g]);c+="</T>";H c},2o:6(a,b,c){H\'<2W><a 2h="#" 1g="6e 6h\'+b+" "+b+\'">\'+c+"</a></2W>"},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h<c.L;h++)d.U(c[h]);c=d}c=c;d=[];I(e.13.2M)c=c.1O(z());I(c.L===0)H d;O(h=0;h<c.L;h++){O(K g=c[h],i=a,k=c[h].1l,j=3W 0,l={},m=1f M("^\\\\[(?<2V>(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g<c.L;g++){b=c[g];K i=b.1F,k=b.1n,j=k.1D,l;I(j!=N){I(k["1z-1k"]=="R"||e.2v["1z-1k"]==R){d=1f e.4l(j);j="4O"}Y I(d=A(j))d=1f d;Y 6H;l=i.3X;I(h.2M){l=l;K m=x(l),s=11;I(m.1i("<![6G[")==0){m=m.4h(9);s=R}K o=m.L;I(m.1i("]]\\>")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;m<j.L;m++)j[m].P+=l}K c=A(a),d,h=1f e.1U.5Y,g=J,i="2F 1H 2Q".1e(" ");I(c!=N){d=1f c;O(K k=0;k<i.L;k++)(6(){K j=i[k];g[j]=6(){H h[j].1p(h,14)}})();d.28==N?1P.1X(e.13.1x.1X+(e.13.1x.4g+a)):h.2J.U({1I:d.28.17,2D:6(j){O(K l=j.17,m=[],s=d.2J,o=j.P+j.18.L,F=d.28,q,G=0;G<s.L;G++){q=y(l,s[G]);b(q,o);m=m.1O(q)}I(F.18!=N&&j.18!=N){q=y(j.18,F.18);b(q,j.P);m=m.1O(q)}I(F.1b!=N&&j.1b!=N){q=y(j.1b,F.1b);b(q,j.P+j[0].5Q(j.1b));m=m.1O(q)}O(j=0;j<m.L;j++)m[j].1V=c.1V;H m}})}};e.4j=6(){};e.4j.Z={V:6(a,b){K c=J.1n[a];c=c==N?b:c;K d={"R":R,"11":11}[c];H d==N?c:d},3Y:6(a){H 1E.4i(a)},4c:6(a,b){K c=[];I(a!=N)O(K d=0;d<a.L;d++)I(1j a[d]=="2m")c=c.1O(y(b,a[d]));H J.4e(c.6b(D))},4e:6(a){O(K b=0;b<a.L;b++)I(a[b]!==N)O(K c=a[b],d=c.P+c.L,h=b+1;h<a.L&&a[b]!==N;h++){K g=a[h];I(g!==N)I(g.P>d)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P<d)a[h]=N}H a},4d:6(a){K b=[],c=2u(J.V("2i-1s"));v(a,6(d,h){b.U(h+c)});H b},3U:6(a){K b=J.V("1M",[]);I(1j b!="2m"&&b.U==N)b=[b];a:{a=a.1q();K c=3W 0;O(c=c=1Q.6c(c||0,0);c<b.L;c++)I(b[c]==a){b=c;1N a}b=-1}H b!=-1},2r:6(a,b,c){a=["1s","6i"+b,"P"+a,"6r"+(b%2==0?1:2).1q()];J.3U(b)&&a.U("67");b==0&&a.U("1N");H\'<T 1g="\'+a.1K(" ")+\'">\'+c+"</T>"},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i<d;i++){K k=b?b[i]:h+i,j;I(k==0)j=e.13.1W;Y{j=g;O(K l=k.1q();l.L<j;)l="0"+l;j=l}a=j;c+=J.2r(i,k,a)}H c},49:6(a,b){a=x(a);K c=a.1e("\\n");J.V("2z-1s-2t");K d=2u(J.V("2i-1s"));a="";O(K h=J.V("1D"),g=0;g<c.L;g++){K i=c[g],k=/^(&2s;|\\s)+/.X(i),j=N,l=b?b[g]:d+g;I(k!=N){j=k[0].1q();i=i.1o(j.L);j=j.Q(" ",e.13.1W)}i=x(i);I(i.L==0)i=e.13.1W;a+=J.2r(g,l,(j!=N?\'<17 1g="\'+h+\' 5N">\'+j+"</17>":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"</4a>":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i<b.L;i++){K k=b[i],j;I(!(k===N||k.L===0)){j=c(k);h+=u(a.1o(d,k.P-d),j+"48")+u(k.1T,j+k.23);d=k.P+k.L+(k.75||0)}}h+=u(a.1o(d),c()+"48");H h},1H:6(a){K b="",c=["20"],d;I(J.V("2k")==R)J.1n.16=J.1n.1u=11;1l="20";J.V("2l")==R&&c.U("47");I((1u=J.V("1u"))==11)c.U("6S");c.U(J.V("1g-27"));c.U(J.V("1D"));a=a.Q(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"").Q(/\\r/g," ");b=J.V("43-22");I(J.V("42-45")==R)a=n(a,b);Y{O(K h="",g=0;g<b;g++)h+=" ";a=a.Q(/\\t/g,h)}a=a;a:{b=a=a;h=/<2R\\s*\\/?>|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i<b.L&&g>0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i<b.L;i++)b[i]=b[i].1o(g);a=b.1K("\\n")}I(1u)d=J.4d(a);b=J.4c(J.2J,a);b=J.4b(a,b);b=J.49(b,d);I(J.V("41-40"))b=E(b);1j 2H!="1d"&&2H.3S&&2H.3S.1C(/5s/)&&c.U("5t");H b=\'<T 1c="\'+t(J.1c)+\'" 1g="\'+c.1K(" ")+\'">\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"</2d>":"")+\'<2d 1g="17"><T 1g="3O">\'+b+"</T></2d></3P></3T></3Z></T>"},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,"||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83".split("|"),0,{}));
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css new file mode 100644 index 00000000..34f6864a --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css @@ -0,0 +1,226 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css new file mode 100644 index 00000000..a2d3a61f --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css @@ -0,0 +1 @@ +.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0!important;-webkit-border-radius:0 0 0 0!important;background:none!important;border:0!important;bottom:auto!important;float:none!important;height:auto!important;left:auto!important;line-height:1.1em!important;margin:0!important;outline:0!important;overflow:visible!important;padding:0!important;position:static!important;right:auto!important;text-align:left!important;top:auto!important;vertical-align:baseline!important;width:auto!important;box-sizing:content-box!important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace!important;font-weight:normal!important;font-style:normal!important;font-size:1em!important;min-height:inherit!important;min-height:auto!important;}.syntaxhighlighter{width:100%!important;margin:1em 0 1em 0!important;position:relative!important;overflow:auto!important;font-size:1em!important;}.syntaxhighlighter.source{overflow:hidden!important;}.syntaxhighlighter .bold{font-weight:bold!important;}.syntaxhighlighter .italic{font-style:italic!important;}.syntaxhighlighter .line{white-space:pre!important;}.syntaxhighlighter table{width:100%!important;}.syntaxhighlighter table caption{text-align:left!important;padding:.5em 0 .5em 1em!important;}.syntaxhighlighter table td.code{width:100%!important;}.syntaxhighlighter table td.code .container{position:relative!important;}.syntaxhighlighter table td.code .container textarea{box-sizing:border-box!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;border:none!important;background:white!important;padding-left:1em!important;overflow:hidden!important;white-space:pre!important;}.syntaxhighlighter table td.gutter .line{text-align:right!important;padding:0 .5em 0 1em!important;}.syntaxhighlighter table td.code .line{padding:0 1em!important;}.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0!important;}.syntaxhighlighter.show{display:block!important;}.syntaxhighlighter.collapsed table{display:none!important;}.syntaxhighlighter.collapsed .toolbar{padding:.1em .8em 0 .8em!important;font-size:1em!important;position:static!important;width:auto!important;height:auto!important;}.syntaxhighlighter.collapsed .toolbar span{display:inline!important;margin-right:1em!important;}.syntaxhighlighter.collapsed .toolbar span a{padding:0!important;display:none!important;}.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline!important;}.syntaxhighlighter .toolbar{position:absolute!important;right:1px!important;top:1px!important;width:11px!important;height:11px!important;font-size:10px!important;z-index:10!important;}.syntaxhighlighter .toolbar span.title{display:inline!important;}.syntaxhighlighter .toolbar a{display:block!important;text-align:center!important;text-decoration:none!important;padding-top:1px!important;}.syntaxhighlighter .toolbar a.expandSource{display:none!important;}.syntaxhighlighter.ie{font-size:.9em!important;padding:1px 0 1px 0!important;}.syntaxhighlighter.ie .toolbar{line-height:8px!important;}.syntaxhighlighter.ie .toolbar a{padding-top:0!important;}.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none!important;}.syntaxhighlighter.printing .line .number{color:#bbb!important;}.syntaxhighlighter.printing .line .content{color:black!important;}.syntaxhighlighter.printing .toolbar{display:none!important;}.syntaxhighlighter.printing a{text-decoration:none!important;}.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black!important;}.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200!important;}.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue!important;}.syntaxhighlighter.printing .keyword{color:#069!important;font-weight:bold!important;}.syntaxhighlighter.printing .preprocessor{color:gray!important;}.syntaxhighlighter.printing .variable{color:#a70!important;}.syntaxhighlighter.printing .value{color:#090!important;}.syntaxhighlighter.printing .functions{color:#ff1493!important;}.syntaxhighlighter.printing .constants{color:#06c!important;}.syntaxhighlighter.printing .script{font-weight:bold!important;}.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray!important;}.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493!important;}.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red!important;}.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black!important;}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css new file mode 100644 index 00000000..08f9e10e --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css @@ -0,0 +1,328 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} + +.syntaxhighlighter { + background-color: white !important; +} +.syntaxhighlighter .line.alt1 { + background-color: white !important; +} +.syntaxhighlighter .line.alt2 { + background-color: white !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #e0e0e0 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: black !important; +} +.syntaxhighlighter table caption { + color: black !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #6ce26c !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #6ce26c !important; + color: white !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: blue !important; + background: white !important; + border: 1px solid #6ce26c !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: blue !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: red !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #6ce26c !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: black !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: black !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #008200 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: blue !important; +} +.syntaxhighlighter .keyword { + color: #006699 !important; +} +.syntaxhighlighter .preprocessor { + color: gray !important; +} +.syntaxhighlighter .variable { + color: #aa7700 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ff1493 !important; +} +.syntaxhighlighter .constants { + color: #0066cc !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #006699 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: gray !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: red !important; +} + +.syntaxhighlighter .keyword { + font-weight: bold !important; +} diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css new file mode 100644 index 00000000..0b99c299 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css @@ -0,0 +1 @@ +.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0!important;-webkit-border-radius:0 0 0 0!important;background:none!important;border:0!important;bottom:auto!important;float:none!important;height:auto!important;left:auto!important;line-height:1.1em!important;margin:0!important;outline:0!important;overflow:visible!important;padding:0!important;position:static!important;right:auto!important;text-align:left!important;top:auto!important;vertical-align:baseline!important;width:auto!important;box-sizing:content-box!important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace!important;font-weight:normal!important;font-style:normal!important;font-size:1em!important;min-height:inherit!important;min-height:auto!important;}.syntaxhighlighter{width:100%!important;margin:1em 0 1em 0!important;position:relative!important;overflow:auto!important;font-size:1em!important;}.syntaxhighlighter.source{overflow:hidden!important;}.syntaxhighlighter .bold{font-weight:bold!important;}.syntaxhighlighter .italic{font-style:italic!important;}.syntaxhighlighter .line{white-space:pre!important;}.syntaxhighlighter table{width:100%!important;}.syntaxhighlighter table caption{text-align:left!important;padding:.5em 0 .5em 1em!important;}.syntaxhighlighter table td.code{width:100%!important;}.syntaxhighlighter table td.code .container{position:relative!important;}.syntaxhighlighter table td.code .container textarea{box-sizing:border-box!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;border:none!important;background:white!important;padding-left:1em!important;overflow:hidden!important;white-space:pre!important;}.syntaxhighlighter table td.gutter .line{text-align:right!important;padding:0 .5em 0 1em!important;}.syntaxhighlighter table td.code .line{padding:0 1em!important;}.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0!important;}.syntaxhighlighter.show{display:block!important;}.syntaxhighlighter.collapsed table{display:none!important;}.syntaxhighlighter.collapsed .toolbar{padding:.1em .8em 0 .8em!important;font-size:1em!important;position:static!important;width:auto!important;height:auto!important;}.syntaxhighlighter.collapsed .toolbar span{display:inline!important;margin-right:1em!important;}.syntaxhighlighter.collapsed .toolbar span a{padding:0!important;display:none!important;}.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline!important;}.syntaxhighlighter .toolbar{position:absolute!important;right:1px!important;top:1px!important;width:11px!important;height:11px!important;font-size:10px!important;z-index:10!important;}.syntaxhighlighter .toolbar span.title{display:inline!important;}.syntaxhighlighter .toolbar a{display:block!important;text-align:center!important;text-decoration:none!important;padding-top:1px!important;}.syntaxhighlighter .toolbar a.expandSource{display:none!important;}.syntaxhighlighter.ie{font-size:.9em!important;padding:1px 0 1px 0!important;}.syntaxhighlighter.ie .toolbar{line-height:8px!important;}.syntaxhighlighter.ie .toolbar a{padding-top:0!important;}.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none!important;}.syntaxhighlighter.printing .line .number{color:#bbb!important;}.syntaxhighlighter.printing .line .content{color:black!important;}.syntaxhighlighter.printing .toolbar{display:none!important;}.syntaxhighlighter.printing a{text-decoration:none!important;}.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black!important;}.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200!important;}.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue!important;}.syntaxhighlighter.printing .keyword{color:#069!important;font-weight:bold!important;}.syntaxhighlighter.printing .preprocessor{color:gray!important;}.syntaxhighlighter.printing .variable{color:#a70!important;}.syntaxhighlighter.printing .value{color:#090!important;}.syntaxhighlighter.printing .functions{color:#ff1493!important;}.syntaxhighlighter.printing .constants{color:#06c!important;}.syntaxhighlighter.printing .script{font-weight:bold!important;}.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray!important;}.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493!important;}.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red!important;}.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black!important;}.syntaxhighlighter{background-color:white!important;}.syntaxhighlighter .line.alt1{background-color:white!important;}.syntaxhighlighter .line.alt2{background-color:white!important;}.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0!important;}.syntaxhighlighter .line.highlighted.number{color:black!important;}.syntaxhighlighter table caption{color:black!important;}.syntaxhighlighter .gutter{color:#afafaf!important;}.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c!important;}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important;}.syntaxhighlighter.printing .line .content{border:none!important;}.syntaxhighlighter.collapsed{overflow:visible!important;}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important;}.syntaxhighlighter.collapsed .toolbar a{color:blue!important;}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important;}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important;}.syntaxhighlighter .toolbar a{color:white!important;}.syntaxhighlighter .toolbar a:hover{color:black!important;}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important;}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important;}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important;}.syntaxhighlighter .keyword{color:#069!important;}.syntaxhighlighter .preprocessor{color:gray!important;}.syntaxhighlighter .variable{color:#a70!important;}.syntaxhighlighter .value{color:#090!important;}.syntaxhighlighter .functions{color:#ff1493!important;}.syntaxhighlighter .constants{color:#06c!important;}.syntaxhighlighter .script{font-weight:bold!important;color:#069!important;background-color:none!important;}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important;}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important;}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important;}.syntaxhighlighter .keyword{font-weight:bold!important;}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css new file mode 100644 index 00000000..13654117 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css @@ -0,0 +1,117 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: white !important; +} +.syntaxhighlighter .line.alt1 { + background-color: white !important; +} +.syntaxhighlighter .line.alt2 { + background-color: white !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #e0e0e0 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: black !important; +} +.syntaxhighlighter table caption { + color: black !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #6ce26c !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #6ce26c !important; + color: white !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: blue !important; + background: white !important; + border: 1px solid #6ce26c !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: blue !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: red !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #6ce26c !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: black !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: black !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #008200 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: blue !important; +} +.syntaxhighlighter .keyword { + color: #006699 !important; +} +.syntaxhighlighter .preprocessor { + color: gray !important; +} +.syntaxhighlighter .variable { + color: #aa7700 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ff1493 !important; +} +.syntaxhighlighter .constants { + color: #0066cc !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #006699 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: gray !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: red !important; +} + +.syntaxhighlighter .keyword { + font-weight: bold !important; +} diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css new file mode 100644 index 00000000..57326f47 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css @@ -0,0 +1 @@ +.syntaxhighlighter{background-color:white!important;}.syntaxhighlighter .line.alt1{background-color:white!important;}.syntaxhighlighter .line.alt2{background-color:white!important;}.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0!important;}.syntaxhighlighter .line.highlighted.number{color:black!important;}.syntaxhighlighter table caption{color:black!important;}.syntaxhighlighter .gutter{color:#afafaf!important;}.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c!important;}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important;}.syntaxhighlighter.printing .line .content{border:none!important;}.syntaxhighlighter.collapsed{overflow:visible!important;}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important;}.syntaxhighlighter.collapsed .toolbar a{color:blue!important;}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important;}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important;}.syntaxhighlighter .toolbar a{color:white!important;}.syntaxhighlighter .toolbar a:hover{color:black!important;}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important;}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important;}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important;}.syntaxhighlighter .keyword{color:#069!important;}.syntaxhighlighter .preprocessor{color:gray!important;}.syntaxhighlighter .variable{color:#a70!important;}.syntaxhighlighter .value{color:#090!important;}.syntaxhighlighter .functions{color:#ff1493!important;}.syntaxhighlighter .constants{color:#06c!important;}.syntaxhighlighter .script{font-weight:bold!important;color:#069!important;background-color:none!important;}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important;}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important;}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important;}.syntaxhighlighter .keyword{font-weight:bold!important;}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css new file mode 100644 index 00000000..9ccf1074 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css @@ -0,0 +1,138 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: transparent !important; +} +.syntaxhighlighter .line.alt1 { + background-color: transparent !important; +} +.syntaxhighlighter .line.alt2 { + background-color: transparent !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #e0e0e0 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: black !important; +} +.syntaxhighlighter table caption { + color: black !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #6ce26c !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #6ce26c !important; + color: white !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: blue !important; + background: white !important; + border: 1px solid #6ce26c !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: blue !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: red !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #6ce26c !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: black !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: black !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #008200 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: blue !important; +} +.syntaxhighlighter .keyword { + color: #006699 !important; +} +.syntaxhighlighter .preprocessor { + color: gray !important; +} +.syntaxhighlighter .variable { + color: #aa7700 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ff1493 !important; +} +.syntaxhighlighter .constants { + color: #0066cc !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #006699 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: gray !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: red !important; +} + +.syntaxhighlighter .keyword { + font-weight: bold !important; +} + +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + line-height: 1.3em !important; +} + +div.syntaxhighlighter { + font-size: 0.85em !important; +} + +div.include div.syntaxhighlighter table td.code .line { + margin-top: 0.1em !important; +} diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css new file mode 100644 index 00000000..20210ff7 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css @@ -0,0 +1 @@ +.syntaxhighlighter{background-color:transparent!important;}.syntaxhighlighter .line.alt1{background-color:transparent!important;}.syntaxhighlighter .line.alt2{background-color:transparent!important;}.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0!important;}.syntaxhighlighter .line.highlighted.number{color:black!important;}.syntaxhighlighter table caption{color:black!important;}.syntaxhighlighter .gutter{color:#afafaf!important;}.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c!important;}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important;}.syntaxhighlighter.printing .line .content{border:none!important;}.syntaxhighlighter.collapsed{overflow:visible!important;}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important;}.syntaxhighlighter.collapsed .toolbar a{color:blue!important;}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important;}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important;}.syntaxhighlighter .toolbar a{color:white!important;}.syntaxhighlighter .toolbar a:hover{color:black!important;}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important;}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important;}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important;}.syntaxhighlighter .keyword{color:#069!important;}.syntaxhighlighter .preprocessor{color:gray!important;}.syntaxhighlighter .variable{color:#a70!important;}.syntaxhighlighter .value{color:#090!important;}.syntaxhighlighter .functions{color:#ff1493!important;}.syntaxhighlighter .constants{color:#06c!important;}.syntaxhighlighter .script{font-weight:bold!important;color:#069!important;background-color:none!important;}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important;}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important;}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important;}.syntaxhighlighter .keyword{font-weight:bold!important;}.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{line-height:1.3em!important;}div.syntaxhighlighter{font-size:.85em!important;}div.include div.syntaxhighlighter table td.code .line{margin-top:.1em!important;}
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/theming.html b/wqflask/wqflask/static/packages/jqplot/examples/theming.html new file mode 100644 index 00000000..92f397a4 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/theming.html @@ -0,0 +1,519 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Chart Theming</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="smoothedLine.html">Previous</a> <a href="./">Examples</a> <a href="waterfall.html">Next</a></div> + + +<!-- Example scripts go here --> + +<style type="text/css"> +.jqplot-target { + margin: 30px; +} +</style> + +<p>jqPlot has basic theming support for commonly styled atributes of plot elements. Upon creation, each plot will have a "themeEngine" that controls modificaition, adding, removing and activating of plot themes. In addition, each plot will have a "Default" theme which corresponds to the styling of the plot at plot creation.<p> + +<p>Creation of new themes is easy. A "style" object is created with properties for the various plot elements to be styles. Attached to each of those is an ojbect with the actual styling properties. A simple style object might look like:</p> + +<pre> + gabe = { + series: [ + {color: 'rgba(216, 159, 60, 0.4)'}, + {color: 'rgba(159, 216, 60, 0.4)'}, + {color: 'rgba(60, 159, 216, 0.4)'}, + ], + grid: { + backgroundColor: '#DEA493' + } + } +</pre> + +<p>This new style would then be added to the plot's themeEngine as a new theme. it can then be activated by calling the plot's <code>activateTheme</code> method.</p> +<pre> + plot1b.themeEngine.newTheme('gabe', gabe); + plot1b.activateTheme('gabe'); +</pre> + +<div id="chart1b" class="plot" style="width:400px;height:260px;"></div> +<p>Select Theme for area plot: +<select id="p1bswitcher" onchange="switch1b();"> + <option value="Default" selected>Default</option> + <option value="gabe">gabe</option> +</select> +</p> + +<p>Themes can be reused between plots. Here a style object is created and assigned to two different plots. For convenience, the theme is given the same name when added to each plot's themeEngine. Since each plot keeps it's own copy of the theme, the names do not need to be the same. Also note that themes are added as deep copies by value and not by reference. This avoids strange behavior due to the cascading nature of css related styles.</p> + +<pre> + temp = { + seriesStyles: { + seriesColors: ['red', 'orange', 'yellow', 'green', 'blue', 'indigo'], + highlightColors: ['lightpink', 'lightsalmon', 'lightyellow', 'lightgreen', 'lightblue', 'mediumslateblue'] + }, + legend: { + fontSize: '8pt' + }, + title: { + fontSize: '18pt' + }, + grid: { + backgroundColor: 'rgb(211, 233, 195)' + } + }; + + plot3.themeEngine.newTheme('uma', temp); + plot5.themeEngine.newTheme('uma', temp); +</pre> + +<p>Select Theme for funnel and pie charts at same time: +<select id="p35switcher" onchange="switch35();"> + <option value="Default" selected>Default</option> + <option value="uma">uma</option> +</select> +</p> + +<div id="chart3" class="plot" style="width:400px;height:320px;"></div> + +<p>Select Theme for funnel plot: +<select id="p3switcher" onchange="switch3();"> + <option value="Default" selected>Default</option> + <option value="uma">uma</option> +</select> +</p> + +<div id="chart5" class="plot" style="width:400px;height:260px;"></div> + +<p>Select Theme for pie chart: +<select id="p5switcher" onchange="switch5();"> + <option value="Default" selected>Default</option> + <option value="uma">uma</option> +</select> +</p> + +<p>There are various was to create and edit themes for a plot. Below are two different methods for creating additional themes for a line plot and adding them to the plots themeEngine. Here the <code>axesStyles</code> property is used to supply styling to all axes at one time. A similar property, <code>seriesStyles</code>, exists for styling all series of a plot at one time. Note, neither of these methods is as straightforward as using the <code>newTheme()</code> method of the plots themeEngine, but are included for illustrative purposes.</p> + +<pre> + e1 = plot1.themeEngine; + brass = e1.copy('Default', 'brass'); + brass.title.fontFamily = 'Copperplate, Impact'; + brass.grid.backgroundColor = "rgb(216, 198, 114)"; + brass.grid.drawGridlines = false; + brass.series[0].lineWidth = 6.5; + brass.series[0].markerOptions.show = false; + brass.axesStyles.label.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact"; + brass.axesStyles.ticks.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact"; + brass.axesStyles.label.fontSize = '14pt'; + + temp = { + grid: { + backgroundColor: "#593D2B", + gridLineColor: '#E8E8E8', + gridLineWidth: 3 + }, + title: { + fontFamily: '"Comic Sans MS", cursive', + fontSize: '18pt', + textColor: '#C7CC4E' + }, + seriesStyles: { + color: "#DBBCAF", + lineWidth: 8, + markerOptions: { + show: false + } + }, + axes: { + xaxis: { + label: { + fontFamily: '"Comic Sans MS", cursive', + textColor: '#C7CC4E' + } + } + } + }; + + chocolate = plot1.themeEngine.copy('Default', 'chocolate', temp); +</pre> + +<div id="chart1" class="plot" style="width:400px;height:260px;"></div> + +<p>Select theme for line chart: +<select id="p1switcher" onchange="switch1();"> + <option value="Default" selected>Default</option> + <option value="brass">brass</option> + <option value="chocolate">chocolate</option> +</select> +</p> + +<p>The example below shows more extensive use of the various styling options to give the chart a rather ugly and dated appearence. Note that, for bar (and funnel, pie and donut charts), <code>highlightColors</code> can be specified as an array of colors which will be applied to each bar individually, as a single string giving a color to apply to all bars, or as an empty array which will force jqPlot to auto calculate highlight colors based on the current bar color.<p> + +<pre> + oldstyle = { + title: { + fontFamily: 'Times New Roman', + textColor: 'black' + }, + axesStyles: { + borderWidth: 0, + ticks: { + fontSize: '12pt', + fontFamily: 'Times New Roman', + textColor: 'black' + }, + label: { + fontFamily: 'Times New Roman', + textColor: 'black' + } + }, + grid: { + backgroundColor: 'white', + borderWidth: 0, + gridLineColor: 'black', + gridLineWidth: 2, + borderColor: 'black' + }, + series: [ + {color: 'red', highlightColors: ['aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow']}, + {color: 'green', highlightColors: []}, + {color: 'blue', highlightColors: []}, + {color: 'yellow', highlightColors: 'rgb(255, 245, 185)'} + ], + legend: { + background: 'white', + textColor: 'black', + fontFamily: 'Times New Roman', + border: '1px solid black' + } + }; + + plot2.themeEngine.newTheme('oldstyle', oldstyle); +</pre> + +<div id="chart2" class="plot" style="width:760px;height:360px;"></div> + +<p>Select theme for bar chart: +<select id="p2switcher" onchange="switch2();"> + <option value="Default" selected>Default</option> + <option value="oldstyle">oldstyle</option> +</select> +</p> + + + </div> + + +<script language="javascript" type="text/javascript"> +$(document).ready(function(){ + + l1 = [['Seoul', 1], ['Paris', 7], ['Singapore',3], ['Hong Kong',5], ['Chicago', 2], ['New York', 9]]; + l2 = [11, 9, 5, 12, 14]; + l3 = [4, 8, 5, 3, 6]; + l4 = [12, 6, 13, 11, 2]; + l5 = [4, -3, 3, 6, 2, -2]; + + pop1980 = [7071639, 2968528, 3005072, 1595138, 789704, 1688210, 785940, 904599]; + pop1990 = [7322564, 3485398, 2783726, 1630553, 983403, 1585577, 935933, 1006877]; + pop2000 = [8008654, 3694644, 2896051, 1974152, 1322025, 1517550, 1160005, 1188603]; + pop2008 = [8363710, 3833995, 2853114, 2242193, 1567924, 1447395, 1351305, 1279910]; + + ticks = ["New York", "Los Angeles", "Chicago", "Houston", "Phoenix", "Philadelphia", "San Antonio", "Dallas"]; + + plot1 = $.jqplot('chart1',[l2],{ + title: 'Line Chart', + highlighter: { + show:true + }, + cursor: { + show: true, + zoom: true + }, + axes: { + xaxis: { + label: 'Sample' + } + } + }); + + plot1b = $.jqplot('chart1b',[l2, l3, l4],{ + stackSeries: true, + showMarker: false, + seriesDefaults: { + fill: true + } + }); + + plot2 = $.jqplot('chart2',[pop1980, pop1990, pop2000, pop2008],{ + title: 'City Population', + legend: { + show: true + }, + seriesDefaults: { + renderer: $.jqplot.BarRenderer, + rendererOptions: { + barPadding: 2 + } + }, + series: [ + {label: '1980'}, + {label: '1990'}, + {label: '2000'}, + {label: '2008 (est)'} + ], + axes: { + xaxis: { + label: 'City', + renderer: $.jqplot.CategoryAxisRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + labelRenderer: $.jqplot.CanvasAxisLabelRenderer, + ticks: ticks, + tickOptions: { + angle: -30 + } + }, + yaxis: { + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + max: 9000000, + min: 0, + tickOptions: { + formatString: '%d', + angle: -30 + } + } + } + }); + + plot3 = $.jqplot('chart3',[l1],{ + title: 'Global City Index', + legend: { + show: true, + rendererOptions: { + // numberColumns: 2, + fontSize: '10pt' + } + }, + seriesDefaults: { + renderer: $.jqplot.FunnelRenderer + } + }); + + plot5 = $.jqplot('chart5',[l1],{ + title: 'Pie Chart', + seriesDefaults: { + renderer: $.jqplot.PieRenderer + }, + legend: { + show: true + } + }); + + e1 = plot1.themeEngine; + brass = e1.copy('Default', 'brass'); + brass.title.fontFamily = 'Copperplate, Impact'; + brass.grid.backgroundColor = "rgb(216, 198, 114)"; + brass.grid.drawGridlines = false; + brass.series[0].lineWidth = 6.5; + brass.series[0].markerOptions.show = false; + // brass.axes.xaxis.ticks.fontFamily = "Copperplate, Impact"; + brass.axesStyles.label.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact"; + brass.axesStyles.ticks.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact"; + brass.axesStyles.label.fontSize = '14pt'; + + temp = { + grid: { + backgroundColor: "#593D2B", + gridLineColor: '#E8E8E8', + gridLineWidth: 3 + }, + title: { + fontFamily: '"Comic Sans MS", cursive', + fontSize: '18pt', + textColor: '#C7CC4E' + }, + seriesStyles: { + color: "#DBBCAF", + lineWidth: 8, + markerOptions: { + show: false + } + }, + axes: { + xaxis: { + label: { + fontFamily: '"Comic Sans MS", cursive', + textColor: '#C7CC4E' + } + } + } + }; + + chocolate = plot1.themeEngine.copy('Default', 'chocolate', temp); + + gabe = { + series: [ + {color: 'rgba(216, 159, 60, 0.6)'}, + {color: 'rgba(159, 216, 60, 0.6)'}, + {color: 'rgba(60, 159, 216, 0.6)'}, + ], + grid: { + backgroundColor: '#DEA493' + } + } + + gabe = plot1b.themeEngine.newTheme('gabe', gabe); + + oldstyle = { + title: { + fontFamily: 'Times New Roman', + textColor: 'black' + }, + axesStyles: { + borderWidth: 0, + ticks: { + fontSize: '12pt', + fontFamily: 'Times New Roman', + textColor: 'black' + }, + label: { + fontFamily: 'Times New Roman', + textColor: 'black' + } + }, + grid: { + backgroundColor: 'white', + borderWidth: 0, + gridLineColor: 'black', + gridLineWidth: 2, + borderColor: 'black' + }, + series: [ + {color: 'red', highlightColors: ['aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow']}, + {color: 'green', highlightColors: []}, + {color: 'blue', highlightColors: []}, + {color: 'yellow', highlightColors: 'rgb(255, 245, 185)'} + ], + legend: { + background: 'white', + textColor: 'black', + fontFamily: 'Times New Roman', + border: '1px solid black' + } + }; + + plot2.themeEngine.newTheme('oldstyle', oldstyle); + + temp = { + seriesStyles: { + seriesColors: ['red', 'orange', 'yellow', 'green', 'blue', 'indigo'], + highlightColors: ['lightpink', 'lightsalmon', 'lightyellow', 'lightgreen', 'lightblue', 'mediumslateblue'] + }, + legend: { + fontSize: '8pt' + }, + title: { + fontSize: '18pt' + }, + grid: { + backgroundColor: 'rgb(211, 233, 195)' + } + }; + + plot3.themeEngine.newTheme('uma', temp); + plot5.themeEngine.newTheme('uma', temp); + +}); + +function switch1() { + var th = $('#p1switcher').val(); + plot1.activateTheme(th); +} + +function switch1b() { + var th = $('#p1bswitcher').val(); + plot1b.activateTheme(th); +} + +function switch2() { + var th = $('#p2switcher').val(); + plot2.activateTheme(th); +} + +function switch3() { + var th = $('#p3switcher').val(); + plot3.activateTheme(th); +} + +function switch5() { + var th = $('#p5switcher').val(); + plot5.activateTheme(th); +} + +function switch35() { + var th = $('#p35switcher').val(); + plot3.activateTheme(th); + plot5.activateTheme(th); +} + + +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.donutRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.funnelRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/topbanner.inc b/wqflask/wqflask/static/packages/jqplot/examples/topbanner.inc new file mode 100644 index 00000000..6977d1f9 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/topbanner.inc @@ -0,0 +1,9 @@ +<div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div>
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/waterfall.html b/wqflask/wqflask/static/packages/jqplot/examples/waterfall.html new file mode 100644 index 00000000..639c7c4e --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/waterfall.html @@ -0,0 +1,162 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Waterfall Charts</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="theming.html">Previous</a> <a href="./">Examples</a> <a href="waterfall2.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css" media="screen"> + .jqplot-axis { + font-size: 0.85em; + } + .jqplot-title { + font-size: 16px; + } + p { + margin: 20px; + font-family:Arial,Helvetica,Sans-serif; + } + </style> + + <p>Waterfall chart using default bar colors.</p> + <div id="chart1" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div> + + <p>Waterfall chart using custom colors and "useNegativeColors" set to "false".</p> + <div id="chart2" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div> + + + +<script class="code" type="text/javascript">$(document).ready(function(){ + var line1 = [14, 3, 4, -3, 5, 2, -3, -7]; + var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009']; + + + var plot1 = $.jqplot('chart1', [line1], { + title: 'Crop Yield Charnge, 2008 to 2009', + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions:{ + waterfall:true, + varyBarColor: true + }, + pointLabels: { + hideZeros: true + }, + yaxis:'y2axis' + }, + axes:{ + xaxis:{ + renderer:$.jqplot.CategoryAxisRenderer, + ticks:ticks, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -90, + fontSize: '10pt', + showMark: false, + showGridline: false + } + }, + y2axis: { + min: 0, + tickInterval: 5 + } + } + }); +});</script> + + +<script class="code" type="text/javascript">$(document).ready(function(){ + + var line1 = [14, 3, 4, -3, 5, 2, -3, -7]; + var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009']; + var plot2 = $.jqplot('chart2', [line1], { + title: 'Crop Yield Charnge, 2008 to 2009', + seriesColors:['#333333', '#999999', '#3EA140', '#3EA140', '#3EA140', '#783F16', '#783F16', '#783F16', '#333333'], + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions:{ + waterfall:true, + varyBarColor: true, + useNegativeColors: false + }, + pointLabels: { + hideZeros: true + }, + yaxis:'y2axis' + }, + axes:{ + xaxis:{ + renderer:$.jqplot.CategoryAxisRenderer, + ticks:ticks, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -90, + fontSize: '10pt', + showMark: false, + showGridline: false + } + }, + y2axis: { + min: 0, + tickInterval: 5 + } + } + }); +});</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/waterfall2.html b/wqflask/wqflask/static/packages/jqplot/examples/waterfall2.html new file mode 100644 index 00000000..541f7e33 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/waterfall2.html @@ -0,0 +1,231 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Waterfall charts 2</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="waterfall.html">Previous</a> <a href="./">Examples</a> <a href="zoom1.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css" media="screen"> + .jqplot-axis { + font-size: 0.85em; + } + .jqplot-title { + font-size: 16px; + } + p { + margin: 20px; + font-family:Arial,Helvetica,Sans-serif; + } + </style> + + + <div id="chart1" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div> + + <div id="chart1b" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div> + + <div id="chart1c" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div> + + <div id="chart1d" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div> + + + + +<script class="code" type="text/javascript">$(document).ready(function(){ + var line1 = [14, 4, 3, -23, 5, 2, -3, -7]; + var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009']; + + + plot1 = $.jqplot('chart1', [line1], { + title: 'Crop Yield Change, 2008 to 2009', + seriesDefaults:{ + fill: true, + fillToZero: true, + renderer:$.jqplot.BarRenderer, + rendererOptions:{ + waterfall:true, + disableStack: true, + varyBarColor: true + }, + pointLabels: { + show: true, + hideZeros: true + }, + yaxis:'y2axis' + }, + axes:{ + xaxis:{ + renderer:$.jqplot.CategoryAxisRenderer, + ticks:ticks, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -90, + fontSize: '10pt', + showMark: false, + showGridline: false + } + } + } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var line1 = [14, 4, 0, -23, 5, 0, -3, -7]; + var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009']; + + + plot1b = $.jqplot('chart1b', [line1], { + title: 'Crop Yield Change, 2008 to 2009', + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions:{ + waterfall:true, + varyBarColor: true + }, + pointLabels: { + show: true, + hideZeros: true + }, + yaxis:'y2axis' + }, + axes:{ + xaxis:{ + renderer:$.jqplot.CategoryAxisRenderer, + ticks:ticks, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -90, + fontSize: '10pt', + showMark: false, + showGridline: false + } + } + } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var line1 = [14, 0, 13, 0, -5, -9, 3, 7]; + var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009']; + + + plot1c = $.jqplot('chart1c', [line1], { + title: 'Crop Yield Change, 2008 to 2009', + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions:{ + waterfall:true, + varyBarColor: true + }, + pointLabels: { + show: true, + hideZeros: true + }, + yaxis:'y2axis' + }, + axes:{ + xaxis:{ + renderer:$.jqplot.CategoryAxisRenderer, + ticks:ticks, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -90, + fontSize: '10pt', + showMark: false, + showGridline: false + } + } + } + }); +});</script> + +<script class="code" type="text/javascript">$(document).ready(function(){ + var line1 = [-14, 0, -13, 0, 5, 9, -3, -7]; + var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009']; + + + plot1d = $.jqplot('chart1d', [line1], { + title: 'Crop Yield Change, 2008 to 2009', + seriesDefaults:{ + renderer:$.jqplot.BarRenderer, + rendererOptions:{ + waterfall: true, + varyBarColor: true + }, + pointLabels: { + show: true, + hideZeros: true + }, + yaxis:'y2axis' + }, + axes:{ + xaxis:{ + renderer:$.jqplot.CategoryAxisRenderer, + ticks:ticks, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -90, + fontSize: '10pt', + showMark: false, + showGridline: false + } + } + } + }); +});</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.js b/wqflask/wqflask/static/packages/jqplot/examples/yahooData.js new file mode 100644 index 00000000..66dcb749 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/yahooData.js @@ -0,0 +1,1807 @@ +var yahoo=[["2011-10-18",580.19,592.56,577.40,590.51,3800800,590.51], +["2011-10-17",583.72,591.83,578.00,582.41,4008200,582.41], +["2011-10-14",599.47,599.60,587.57,591.68,8529900,591.68], +["2011-10-13",550.03,559.00,548.02,558.99,5639600,558.99], +["2011-10-12",548.13,555.23,544.63,548.50,3177800,548.50], +["2011-10-11",533.46,546.80,533.46,543.18,2853400,543.18], +["2011-10-10",525.18,537.47,523.20,537.17,2322200,537.17], +["2011-10-07",516.83,520.50,510.30,515.12,2855900,515.12], +["2011-10-06",507.50,515.23,502.60,514.71,3424300,514.71], +["2011-10-05",496.35,507.80,480.77,504.70,4534100,504.70], +["2011-10-04",490.03,503.44,480.60,501.90,4158800,501.90], +["2011-10-03",509.85,512.00,495.00,495.52,4474400,495.52], +["2011-09-30",520.21,524.00,514.38,515.04,2723600,515.04], +["2011-09-29",536.04,537.30,519.41,527.50,2906600,527.50], +["2011-09-28",541.50,544.02,527.70,528.84,2263300,528.84], +["2011-09-27",538.20,547.05,536.05,539.34,3010900,539.34], +["2011-09-26",527.25,532.93,513.25,531.89,2634200,531.89], +["2011-09-23",516.56,526.42,514.50,525.51,2777300,525.51], +["2011-09-22",526.25,528.78,514.00,520.66,4400300,520.66], +["2011-09-21",547.69,555.00,538.86,539.20,2514300,539.20], +["2011-09-20",549.40,558.52,542.67,546.63,2779100,546.63], +["2011-09-19",540.35,549.90,535.38,546.67,2468400,546.67], +["2011-09-16",544.80,546.84,543.14,546.68,3534300,546.68], +["2011-09-15",535.50,544.98,534.56,542.56,2960800,542.56], +["2011-09-14",532.59,536.95,525.82,532.07,2694400,532.07], +["2011-09-13",532.00,533.88,523.40,529.52,2354200,529.52], +["2011-09-12",517.96,531.99,517.50,530.12,2670400,530.12], +["2011-09-09",531.40,534.65,521.19,524.85,3268800,524.85], +["2011-09-08",533.80,539.10,531.90,534.96,2380500,534.96], +["2011-09-07",530.45,535.94,527.40,534.03,2755800,534.03], +["2011-09-06",510.80,522.76,510.50,522.18,2715800,522.18], +["2011-09-02",524.47,527.92,520.73,524.84,2401200,524.84], +["2011-09-01",540.75,543.83,531.22,532.50,2415500,532.50], +["2011-08-31",544.74,546.30,536.00,540.96,2693300,540.96], +["2011-08-30",538.19,542.99,530.81,540.70,2989000,540.70], +["2011-08-29",534.56,539.45,533.56,539.08,2335800,539.08], +["2011-08-26",519.99,530.45,513.14,526.86,3596300,526.86], +["2011-08-25",530.38,537.27,518.30,520.04,3293000,520.04], +["2011-08-24",519.33,530.00,517.23,523.29,3594500,523.29], +["2011-08-23",503.50,521.41,499.06,518.82,4346800,518.82], +["2011-08-22",504.00,507.00,494.53,498.17,4905900,498.17], +["2011-08-19",499.34,514.87,490.86,490.92,5410000,490.92], +["2011-08-18",523.47,524.89,500.49,504.88,6290700,504.88], +["2011-08-17",540.03,543.69,530.77,533.15,4055000,533.15], +["2011-08-16",552.43,552.44,530.30,539.00,6939400,539.00], +["2011-08-15",553.43,564.99,546.05,557.23,7144900,557.23], +["2011-08-12",569.50,570.50,560.40,563.77,3154300,563.77], +["2011-08-11",553.82,568.50,548.41,562.13,4830600,562.13], +["2011-08-10",561.38,564.12,547.73,549.01,5369600,549.01], +["2011-08-09",561.00,574.61,541.01,573.41,6469700,573.41], +["2011-08-08",562.98,569.00,544.35,546.02,7496600,546.02], +["2011-08-05",582.54,590.00,562.00,579.04,5929100,579.04], +["2011-08-04",594.50,598.85,577.47,577.52,4914600,577.52], +["2011-08-03",594.27,603.00,583.63,601.17,3825700,601.17], +["2011-08-02",606.00,609.67,591.57,592.40,3200600,592.40], +["2011-08-01",611.22,615.50,599.18,606.77,3966100,606.77], +["2011-07-29",604.23,614.96,603.69,603.69,4137400,603.69], +["2011-07-28",605.19,615.98,603.00,610.94,3108400,610.94], +["2011-07-27",617.18,620.95,604.75,607.22,3934400,607.22], +["2011-07-26",618.05,627.50,617.22,622.52,2342900,622.52], +["2011-07-25",613.36,625.41,613.00,618.98,3131600,618.98], +["2011-07-22",605.39,619.50,604.27,618.23,3528200,618.23], +["2011-07-21",594.03,608.06,594.01,606.99,3469500,606.99], +["2011-07-20",602.18,602.83,595.35,595.35,2227800,595.35], +["2011-07-19",596.14,604.68,595.53,602.55,2967500,602.55], +["2011-07-18",592.49,602.05,592.00,594.94,4468300,594.94], +["2011-07-15",597.50,600.25,588.16,597.62,13732100,597.62], +["2011-07-14",539.12,542.00,526.73,528.94,6594400,528.94], +["2011-07-13",537.00,544.00,536.48,538.26,2790200,538.26], +["2011-07-12",528.16,539.42,526.00,534.01,2841200,534.01], +["2011-07-11",528.18,535.98,525.50,527.28,2839300,527.28], +["2011-07-08",532.95,537.65,527.27,531.99,4770200,531.99], +["2011-07-07",541.00,550.68,535.88,546.60,3935500,546.60], +["2011-07-06",533.50,538.51,533.04,535.36,2695600,535.36], +["2011-07-05",525.30,535.40,525.30,532.44,3849200,532.44], +["2011-07-01",506.74,521.18,506.38,521.03,3636700,521.03], +["2011-06-30",501.99,506.67,501.50,506.38,2428400,506.38], +["2011-06-29",496.54,500.25,492.38,497.57,2343000,497.57], +["2011-06-28",484.02,496.21,484.02,493.65,2715100,493.65], +["2011-06-27",474.00,488.40,473.60,482.80,3444700,482.80], +["2011-06-24",480.68,480.75,473.02,474.88,3805600,474.88], +["2011-06-23",482.13,482.86,473.73,480.22,4801700,480.22], +["2011-06-22",491.45,492.35,486.73,487.01,2407100,487.01], +["2011-06-21",487.19,493.94,484.73,493.00,2765400,493.00], +["2011-06-20",485.00,486.23,479.23,484.58,3028600,484.58], +["2011-06-17",506.18,506.69,484.80,485.02,5245400,485.02], +["2011-06-16",502.81,506.57,496.67,500.37,2757000,500.37], +["2011-06-15",505.03,508.35,500.61,502.95,2073300,502.95], +["2011-06-14",508.15,514.08,506.99,508.37,2341500,508.37], +["2011-06-13",510.00,510.20,502.17,504.73,2427300,504.73], +["2011-06-10",514.08,516.69,509.29,509.51,2439900,509.51], +["2011-06-09",520.00,520.00,515.64,516.73,1689100,516.73], +["2011-06-08",516.53,521.24,515.78,519.17,1653400,519.17], +["2011-06-07",522.89,524.63,518.99,519.03,1907600,519.03], +["2011-06-06",523.54,526.82,519.25,521.06,1942100,521.06], +["2011-06-03",522.00,527.60,521.50,523.08,1748500,523.08], +["2011-06-02",527.57,530.30,522.48,528.06,2204500,528.06], +["2011-06-01",528.04,533.20,525.31,525.60,2955900,525.60], +["2011-05-31",525.00,529.05,523.50,529.02,2687300,529.02], +["2011-05-27",518.48,521.79,516.30,520.90,1745800,520.90], +["2011-05-26",517.70,522.12,515.00,518.13,2118500,518.13], +["2011-05-25",517.33,522.77,517.25,519.67,1301600,519.67], +["2011-05-24",520.37,523.96,518.15,518.26,1888400,518.26], +["2011-05-23",516.60,520.00,513.40,518.39,2252700,518.39], +["2011-05-20",531.80,531.99,523.13,524.03,2317500,524.03], +["2011-05-19",532.73,536.54,529.72,531.25,2468700,531.25], +["2011-05-18",529.54,530.33,525.70,529.81,1953200,529.81], +["2011-05-17",515.43,531.22,515.03,530.46,3303600,530.46], +["2011-05-16",526.31,527.27,516.40,518.42,2958200,518.42], +["2011-05-13",534.61,535.92,529.05,529.55,2108700,529.55], +["2011-05-12",535.24,536.94,530.91,535.05,1400000,535.05], +["2011-05-11",540.14,543.55,533.69,535.45,2338800,535.45], +["2011-05-10",540.00,544.43,537.54,542.66,2042900,542.66], +["2011-05-09",535.00,538.49,531.10,537.68,1948700,537.68], +["2011-05-06",538.15,541.46,535.18,535.30,2056100,535.30], +["2011-05-05",533.86,539.42,531.50,534.27,1997800,534.27], +["2011-05-04",535.17,539.00,533.02,535.79,2117000,535.79], +["2011-05-03",537.13,542.01,529.63,533.89,2081500,533.89], +["2011-05-02",545.70,545.73,537.12,538.56,2133700,538.56], +["2011-04-29",540.00,544.10,538.51,544.10,4200000,544.10], +["2011-04-28",538.06,539.25,534.08,537.97,2037400,537.97], +["2011-04-27",538.00,538.11,534.35,537.76,2298400,537.76], +["2011-04-26",526.52,537.44,525.21,532.82,3535400,532.82], +["2011-04-25",525.25,527.00,522.01,525.05,1630800,525.05], +["2011-04-21",527.49,528.28,522.39,525.10,2470100,525.10], +["2011-04-20",525.90,526.82,521.39,525.73,3060000,525.73], +["2011-04-19",529.95,530.88,520.90,521.53,2684100,521.53], +["2011-04-18",526.42,527.66,519.00,526.84,5039800,526.84], +["2011-04-15",545.29,545.75,530.06,530.70,14043700,530.70], +["2011-04-14",575.19,579.45,572.10,578.51,5456300,578.51], +["2011-04-13",575.51,577.60,571.75,576.28,2069400,576.28], +["2011-04-12",575.00,576.91,568.05,570.61,2085600,570.61], +["2011-04-11",576.20,578.10,573.00,577.37,1858200,577.37], +["2011-04-08",584.89,584.89,578.06,578.16,1901800,578.16], +["2011-04-07",575.73,580.64,574.19,580.00,2531500,580.00], +["2011-04-06",572.18,575.16,568.00,574.18,2668300,574.18], +["2011-04-05",581.08,581.49,565.68,569.09,6047500,569.09], +["2011-04-04",593.00,594.74,583.10,587.68,2054500,587.68], +["2011-04-01",588.76,595.19,588.76,591.80,2613200,591.80], +["2011-03-31",583.00,588.16,581.74,586.76,2029400,586.76], +["2011-03-30",584.38,585.50,580.58,581.84,1422300,581.84], +["2011-03-29",576.00,581.89,573.01,581.73,1604800,581.73], +["2011-03-28",582.07,584.99,574.71,575.36,2218400,575.36], +["2011-03-25",586.88,586.91,579.24,579.74,2858400,579.74], +["2011-03-24",585.43,588.39,578.80,586.89,2098700,586.89], +["2011-03-23",575.19,582.45,572.00,582.16,1816200,582.16], +["2011-03-22",577.27,579.23,572.51,577.32,1886900,577.32], +["2011-03-21",570.22,579.80,569.02,576.50,3020900,576.50], +["2011-03-18",564.64,567.99,559.74,561.06,3298600,561.06], +["2011-03-17",564.48,569.00,560.54,561.36,2899300,561.36], +["2011-03-16",568.01,569.79,551.28,557.10,3798500,557.10], +["2011-03-15",557.50,571.00,555.50,569.56,4005600,569.56], +["2011-03-14",572.80,578.29,568.02,569.99,2816100,569.99], +["2011-03-11",578.22,580.00,573.33,576.71,3032000,576.71], +["2011-03-10",585.44,586.62,579.45,580.30,3128100,580.30], +["2011-03-09",591.00,594.51,585.75,591.77,2151000,591.77], +["2011-03-08",592.93,597.98,590.20,592.31,2284900,592.31], +["2011-03-07",600.55,603.69,587.00,591.66,3462700,591.66], +["2011-03-04",608.33,608.98,600.20,600.62,3011000,600.62], +["2011-03-03",606.38,611.49,605.00,609.56,1945300,609.56], +["2011-03-02",599.80,606.00,595.19,600.79,2026700,600.79], +["2011-03-01",617.78,619.22,599.30,600.76,3323200,600.76], +["2011-02-28",610.00,616.49,608.01,613.40,2281500,613.40], +["2011-02-25",611.86,614.72,609.50,610.04,1932400,610.04], +["2011-02-24",611.39,613.09,601.35,608.82,2711700,608.82], +["2011-02-23",610.33,614.70,604.00,611.32,2889600,611.32], +["2011-02-22",620.03,624.93,607.77,610.21,3639900,610.21], +["2011-02-18",626.00,631.18,624.18,630.08,3217900,630.08], +["2011-02-17",621.25,627.25,620.28,625.26,1478800,625.26], +["2011-02-16",625.63,626.50,622.10,624.22,1684000,624.22], +["2011-02-15",627.32,630.09,623.10,624.15,2092000,624.15], +["2011-02-14",623.34,629.64,620.04,628.15,2128000,628.15], +["2011-02-11",613.79,625.00,613.00,624.50,2589900,624.50], +["2011-02-10",613.90,617.50,611.56,616.44,2334400,616.44], +["2011-02-09",616.87,619.45,612.34,616.50,1842500,616.50], +["2011-02-08",614.93,619.63,614.51,618.38,1694900,618.38], +["2011-02-07",610.16,618.39,609.21,614.29,1799600,614.29], +["2011-02-04",610.15,611.44,606.61,610.98,1550800,610.98], +["2011-02-03",609.48,611.45,606.13,610.15,1495100,610.15], +["2011-02-02",611.00,614.34,607.53,612.00,1760700,612.00], +["2011-02-01",604.49,613.35,603.11,611.04,2745300,611.04], +["2011-01-31",603.60,604.47,595.55,600.36,2804900,600.36], +["2011-01-28",619.07,620.36,599.76,600.99,4231100,600.99], +["2011-01-27",617.89,619.70,613.25,616.79,2019200,616.79], +["2011-01-26",620.33,622.49,615.28,616.50,2038100,616.50], +["2011-01-25",608.20,620.69,606.52,619.91,3646800,619.91], +["2011-01-24",607.57,612.49,601.23,611.08,4599200,611.08], +["2011-01-21",639.58,641.73,611.36,611.83,8904400,611.83], +["2011-01-20",632.21,634.08,623.29,626.77,5485800,626.77], +["2011-01-19",642.12,642.96,629.66,631.75,3406100,631.75], +["2011-01-18",626.06,641.99,625.27,639.63,3617000,639.63], +["2011-01-14",617.40,624.27,617.08,624.18,2365600,624.18], +["2011-01-13",616.97,619.67,614.16,616.69,1334000,616.69], +["2011-01-12",619.35,619.35,614.77,616.87,1632700,616.87], +["2011-01-11",617.71,618.80,614.50,616.01,1439300,616.01], +["2011-01-10",614.80,615.39,608.56,614.21,1579200,614.21], +["2011-01-07",615.91,618.25,610.13,616.44,2101200,616.44], +["2011-01-06",610.68,618.43,610.05,613.50,2057800,613.50], +["2011-01-05",600.07,610.33,600.05,609.07,2532300,609.07], +["2011-01-04",605.62,606.18,600.12,602.12,1824500,602.12], +["2011-01-03",596.48,605.59,596.48,604.35,2365200,604.35], +["2010-12-31",596.74,598.42,592.03,593.97,1539300,593.97], +["2010-12-30",598.00,601.33,597.39,598.86,989500,598.86], +["2010-12-29",602.00,602.41,598.92,601.00,1019200,601.00], +["2010-12-28",602.05,603.87,598.01,598.92,1064800,598.92], +["2010-12-27",602.74,603.78,599.50,602.38,1208100,602.38], +["2010-12-23",605.34,606.00,602.03,604.23,1110800,604.23], +["2010-12-22",604.00,607.00,603.28,605.49,1207500,605.49], +["2010-12-21",598.57,604.72,597.61,603.07,1879500,603.07], +["2010-12-20",594.65,597.88,588.66,595.06,1973300,595.06], +["2010-12-17",591.00,592.56,587.67,590.80,3087100,590.80], +["2010-12-16",592.85,593.77,588.07,591.71,1596900,591.71], +["2010-12-15",594.20,596.45,589.15,590.30,2167700,590.30], +["2010-12-14",597.09,598.29,592.48,594.91,1643300,594.91], +["2010-12-13",597.12,603.00,594.09,594.62,2398500,594.62], +["2010-12-10",593.14,593.99,590.29,592.21,1704700,592.21], +["2010-12-09",593.88,595.58,589.00,591.50,1868900,591.50], +["2010-12-08",591.97,592.52,583.69,590.54,1756900,590.54], +["2010-12-07",591.27,593.00,586.00,587.14,3042200,587.14], +["2010-12-06",580.57,582.00,576.61,578.36,2093800,578.36], +["2010-12-03",569.45,576.48,568.00,573.00,2631200,573.00], +["2010-12-02",568.66,573.33,565.35,571.82,2547900,571.82], +["2010-12-01",563.00,571.57,562.40,564.35,3754100,564.35], +["2010-11-30",574.32,574.32,553.31,555.71,7117400,555.71], +["2010-11-29",589.17,589.80,579.95,582.11,2859700,582.11], +["2010-11-26",590.46,592.98,587.00,590.00,1311100,590.00], +["2010-11-24",587.31,596.60,587.05,594.97,2396400,594.97], +["2010-11-23",587.01,589.01,578.20,583.01,2162600,583.01], +["2010-11-22",587.47,593.44,582.75,591.22,2186600,591.22], +["2010-11-19",597.00,597.89,590.34,590.83,2297500,590.83], +["2010-11-18",589.00,599.98,588.56,596.56,2590000,596.56], +["2010-11-17",585.00,589.50,581.37,583.55,2442500,583.55], +["2010-11-16",592.76,597.89,583.45,583.72,3307400,583.72], +["2010-11-15",603.08,604.00,594.05,595.47,3478900,595.47], +["2010-11-12",613.99,616.90,601.21,603.29,3393000,603.29], +["2010-11-11",619.70,619.85,614.21,617.19,2261600,617.19], +["2010-11-10",622.08,623.00,617.51,622.88,2497000,622.88], +["2010-11-09",630.00,630.85,620.51,624.82,2237200,624.82], +["2010-11-08",624.02,629.49,623.13,626.77,2101300,626.77], +["2010-11-05",623.18,625.49,621.11,625.08,1765700,625.08], +["2010-11-04",624.64,629.92,622.10,624.27,3570800,624.27], +["2010-11-03",617.50,621.83,613.50,620.18,3380500,620.18], +["2010-11-02",618.67,620.00,614.58,615.60,1997600,615.60], +["2010-11-01",615.73,620.66,611.21,615.00,3087100,615.00], +["2010-10-29",617.07,619.00,612.99,613.70,2278300,613.70], +["2010-10-28",620.05,621.00,613.30,618.58,2184300,618.58], +["2010-10-27",615.77,620.00,612.33,616.47,2241900,616.47], +["2010-10-26",613.10,621.23,611.03,618.60,2512900,618.60], +["2010-10-25",615.59,624.74,614.97,616.50,3158400,616.50], +["2010-10-22",611.92,614.82,610.05,612.53,2256100,612.53], +["2010-10-21",611.51,616.00,606.00,611.99,2920500,611.99], +["2010-10-20",608.14,617.38,607.50,607.98,3525100,607.98], +["2010-10-19",608.85,614.82,602.86,607.83,4587900,607.83], +["2010-10-18",600.55,619.69,600.55,617.71,7098200,617.71], +["2010-10-15",599.27,601.64,591.60,601.45,14824800,601.45], +["2010-10-14",544.18,545.25,537.11,540.93,6634100,540.93], +["2010-10-13",547.00,547.49,542.33,543.30,3055600,543.30], +["2010-10-12",540.12,545.99,537.79,541.39,3753600,541.39], +["2010-10-11",538.48,544.60,537.17,538.84,2626300,538.84], +["2010-10-08",532.77,537.60,527.62,536.35,2859200,536.35], +["2010-10-07",536.21,537.20,529.14,530.01,2395800,530.01], +["2010-10-06",539.26,539.95,529.94,534.35,2762300,534.35], +["2010-10-05",528.38,540.00,526.55,538.23,3507100,538.23], +["2010-10-04",524.95,528.25,518.85,522.35,1940500,522.35], +["2010-10-01",530.00,530.62,523.00,525.62,2225000,525.62], +["2010-09-30",529.16,531.87,518.92,525.79,3244100,525.79], +["2010-09-29",527.85,532.94,524.71,527.69,2172200,527.69], +["2010-09-28",533.48,533.59,518.45,527.17,3654700,527.17], +["2010-09-27",528.85,536.85,528.85,530.41,3107400,530.41], +["2010-09-24",521.74,527.83,518.26,527.29,3356900,527.29], +["2010-09-23",514.61,519.69,511.30,513.48,2317400,513.48], +["2010-09-22",512.86,517.78,511.68,516.00,2537100,516.00], +["2010-09-21",509.68,519.98,508.91,513.46,4466300,513.46], +["2010-09-20",492.50,510.41,492.06,508.28,4403500,508.28], +["2010-09-17",483.75,491.20,481.18,490.15,5641600,490.15], +["2010-09-16",479.95,482.45,479.41,481.06,1969500,481.06], +["2010-09-15",479.95,481.89,478.50,480.64,2402800,480.64], +["2010-09-14",482.01,484.75,480.08,480.43,2216500,480.43], +["2010-09-13",480.90,484.35,479.53,482.27,2241500,482.27], +["2010-09-10",479.02,479.79,475.08,476.14,1974300,476.14], +["2010-09-09",477.83,480.40,470.58,476.18,2430600,476.18], +["2010-09-08",465.19,472.50,464.51,470.58,2401800,470.58], +["2010-09-07",464.50,467.59,463.02,464.40,1709900,464.40], +["2010-09-03",470.52,471.88,467.44,470.30,2540400,470.30], +["2010-09-02",462.84,464.43,460.31,463.18,1684200,463.18], +["2010-09-01",454.98,464.94,452.50,460.33,3228300,460.33], +["2010-08-31",450.11,454.87,448.00,450.02,1946800,450.02], +["2010-08-30",459.15,459.76,452.42,452.69,1231400,452.69], +["2010-08-27",452.56,459.99,447.65,458.83,2312400,458.83], +["2010-08-26",456.06,457.26,450.44,450.98,1777000,450.98], +["2010-08-25",450.00,457.81,450.00,454.62,2592100,454.62], +["2010-08-24",457.70,458.37,450.92,451.39,2762700,451.39], +["2010-08-23",461.50,468.25,457.73,464.07,2986200,464.07], +["2010-08-20",467.97,471.59,461.02,462.02,3917600,462.02], +["2010-08-19",481.01,482.51,467.25,467.97,3925000,467.97], +["2010-08-18",490.44,490.87,481.55,482.15,2686400,482.15], +["2010-08-17",488.53,494.70,486.03,490.52,1890700,490.52], +["2010-08-16",483.68,489.87,480.50,485.59,1305000,485.59], +["2010-08-13",489.00,491.19,486.01,486.35,1934700,486.35], +["2010-08-12",483.94,494.75,482.51,492.01,2204600,492.01], +["2010-08-11",497.73,498.00,491.50,491.74,2223000,491.74], +["2010-08-10",502.35,506.00,498.57,503.71,2074000,503.71], +["2010-08-09",502.25,505.50,501.36,505.35,1872200,505.35], +["2010-08-06",505.40,505.74,496.05,500.22,3319500,500.22], +["2010-08-05",505.89,508.60,503.56,508.10,2420400,508.10], +["2010-08-04",492.18,507.00,491.05,506.32,3812500,506.32], +["2010-08-03",490.50,492.46,486.76,489.83,1802300,489.83], +["2010-08-02",488.99,493.28,486.94,490.41,1858700,490.41], +["2010-07-30",479.65,487.36,479.14,484.85,2144100,484.85], +["2010-07-29",485.95,488.88,479.33,484.99,2675500,484.99], +["2010-07-28",494.94,495.25,482.67,484.35,2496000,484.35], +["2010-07-27",490.58,497.50,490.17,492.63,2451200,492.63], +["2010-07-26",489.09,490.75,484.88,488.97,1995200,488.97], +["2010-07-23",480.77,490.59,480.01,490.06,2264400,490.06], +["2010-07-22",483.23,488.98,482.48,484.81,2147700,484.81], +["2010-07-21",484.00,485.70,475.43,477.50,3279600,477.50], +["2010-07-20",461.03,482.99,460.60,481.59,4054500,481.59], +["2010-07-19",461.01,469.65,457.52,466.18,4550300,466.18], +["2010-07-16",469.12,470.56,459.52,459.61,7824800,459.61], +["2010-07-15",491.73,494.70,482.68,494.02,4858200,494.02], +["2010-07-14",489.88,493.83,486.46,491.34,3118000,491.34], +["2010-07-13",482.25,492.99,480.28,489.20,3976300,489.20], +["2010-07-12",472.37,479.44,471.08,475.83,3334400,475.83], +["2010-07-09",471.96,473.26,462.78,467.49,4331500,467.49], +["2010-07-08",453.55,457.33,449.66,456.56,2668900,456.56], +["2010-07-07",438.31,451.29,435.38,450.20,3129700,450.20], +["2010-07-06",444.00,447.67,433.63,436.07,2560100,436.07], +["2010-07-02",441.62,442.28,436.00,436.55,1936000,436.55], +["2010-07-01",445.29,448.40,433.63,439.49,3513600,439.49], +["2010-06-30",454.96,457.83,444.72,444.95,3603200,444.95], +["2010-06-29",463.44,464.55,451.12,454.26,3502100,454.26], +["2010-06-28",472.59,477.55,469.01,472.08,1762300,472.08], +["2010-06-25",477.06,477.65,470.56,472.68,2245200,472.68], +["2010-06-24",479.66,482.75,473.26,475.10,1893600,475.10], +["2010-06-23",486.89,486.89,478.16,482.05,2029100,482.05], +["2010-06-22",489.90,496.60,485.73,486.25,2219700,486.25], +["2010-06-21",499.90,500.97,484.89,488.56,2983500,488.56], +["2010-06-18",502.51,503.47,498.13,500.03,2872900,500.03], +["2010-06-17",503.45,505.87,496.69,500.08,1977300,500.08], +["2010-06-16",496.17,504.00,496.11,501.27,2289300,501.27], +["2010-06-15",483.08,500.40,482.18,497.99,4259600,497.99], +["2010-06-14",494.48,494.50,483.19,483.19,2040400,483.19], +["2010-06-11",482.50,488.71,481.62,488.50,1781700,488.50], +["2010-06-10",480.37,488.50,475.84,487.01,2577900,487.01], +["2010-06-09",487.22,488.88,472.00,474.02,2729000,474.02], +["2010-06-08",487.85,488.84,477.54,484.78,2685100,484.78], +["2010-06-07",499.06,500.91,483.15,485.52,3632700,485.52], +["2010-06-04",499.72,509.25,496.70,498.72,3920300,498.72], +["2010-06-03",495.11,508.00,494.70,505.60,3650700,505.60], +["2010-06-02",486.68,493.87,481.46,493.37,2540800,493.37], +["2010-06-01",480.43,491.06,480.12,482.37,2666800,482.37], +["2010-05-28",492.74,493.45,483.00,485.63,2894800,485.63], +["2010-05-27",484.95,492.31,481.05,490.46,2809100,490.46], +["2010-05-26",482.07,489.76,475.00,475.47,3475600,475.47], +["2010-05-25",468.15,477.45,464.01,477.07,3017400,477.07], +["2010-05-24",480.73,489.79,476.80,477.16,4345600,477.16], +["2010-05-21",469.06,485.00,464.40,472.05,9690800,472.05], +["2010-05-20",485.07,485.58,473.80,475.01,4913300,475.01], +["2010-05-19",496.26,499.44,487.74,494.43,3445700,494.43], +["2010-05-18",510.00,510.97,497.07,498.37,2825500,498.37], +["2010-05-17",506.78,508.36,498.35,507.97,2793800,507.97], +["2010-05-14",509.77,510.99,496.25,507.53,4116000,507.53], +["2010-05-13",516.50,522.00,510.37,510.88,3325800,510.88], +["2010-05-12",512.04,512.04,502.00,505.39,3851800,505.39], +["2010-05-11",515.67,519.88,508.22,509.05,3322600,509.05], +["2010-05-10",513.97,522.82,512.60,521.65,4128000,521.65], +["2010-05-07",499.97,505.32,481.33,493.14,5089000,493.14], +["2010-05-06",508.75,517.52,460.00,498.67,5000100,498.67], +["2010-05-05",500.98,515.72,500.47,509.76,4582200,509.76], +["2010-05-04",526.52,526.74,504.21,506.37,6076300,506.37], +["2010-05-03",526.50,532.92,525.08,530.60,1857800,530.60], +["2010-04-30",531.13,537.68,525.44,525.70,2435400,525.70], +["2010-04-29",533.37,536.50,526.67,532.00,3058900,532.00], +["2010-04-28",532.10,534.83,521.03,529.19,3406100,529.19], +["2010-04-27",528.95,538.33,527.23,529.06,3844700,529.06], +["2010-04-26",544.97,544.99,529.21,531.64,4368800,531.64], +["2010-04-23",547.25,549.32,542.27,544.99,2089400,544.99], +["2010-04-22",552.00,552.50,543.35,547.06,3280700,547.06], +["2010-04-21",556.46,560.25,552.16,554.30,2391500,554.30], +["2010-04-20",554.17,559.66,551.06,555.04,2977400,555.04], +["2010-04-19",548.75,553.99,545.00,550.10,3894000,550.10], +["2010-04-16",563.00,568.81,549.63,550.15,12235500,550.15], +["2010-04-15",592.17,597.84,588.29,595.30,6761800,595.30], +["2010-04-14",590.06,592.34,584.01,589.00,3402700,589.00], +["2010-04-13",572.53,588.88,571.13,586.77,3912300,586.77], +["2010-04-12",567.35,574.00,566.22,572.73,2352400,572.73], +["2010-04-09",567.49,568.77,564.00,566.22,2056600,566.22], +["2010-04-08",563.32,569.85,560.05,567.49,1947500,567.49], +["2010-04-07",567.30,568.75,561.86,563.54,2581000,563.54], +["2010-04-06",569.46,570.89,565.40,568.22,2060100,568.22], +["2010-04-05",570.90,574.88,569.00,571.01,1901500,571.01], +["2010-04-01",571.35,573.45,565.55,568.80,2102700,568.80], +["2010-03-31",565.05,569.74,562.81,567.12,3030800,567.12], +["2010-03-30",562.83,567.63,560.28,566.71,1977900,566.71], +["2010-03-29",563.00,564.72,560.57,562.45,3104500,562.45], +["2010-03-26",565.27,567.39,560.02,562.69,2696200,562.69], +["2010-03-25",559.02,572.00,558.66,562.88,3930900,562.88], +["2010-03-24",545.51,559.85,539.70,557.33,6565200,557.33], +["2010-03-23",557.04,558.31,542.00,549.00,5501300,549.00], +["2010-03-22",556.11,566.85,554.28,557.50,4004800,557.50], +["2010-03-19",566.23,568.00,557.28,560.00,4792400,560.00], +["2010-03-18",564.72,568.44,562.96,566.40,1777200,566.40], +["2010-03-17",568.30,571.45,564.25,565.56,3321600,565.56], +["2010-03-16",561.83,568.42,560.76,565.20,3431500,565.20], +["2010-03-15",566.68,569.45,556.00,563.18,4653900,563.18], +["2010-03-12",588.14,588.28,579.16,579.54,2753400,579.54], +["2010-03-11",574.26,586.21,574.20,581.14,4233300,581.14], +["2010-03-10",563.76,578.50,562.21,576.45,5654900,576.45], +["2010-03-09",559.85,564.66,556.50,560.19,3176600,560.19], +["2010-03-08",564.78,565.18,561.01,562.48,2386400,562.48], +["2010-03-05",561.35,567.67,559.90,564.21,3912200,564.21], +["2010-03-04",546.50,556.13,546.20,554.59,3183800,554.59], +["2010-03-03",542.36,548.12,539.25,545.32,3089400,545.32], +["2010-03-02",535.48,545.66,535.01,541.06,4356800,541.06], +["2010-03-01",529.20,533.29,527.74,532.69,2237900,532.69], +["2010-02-26",527.42,531.75,523.48,526.80,2049300,526.80], +["2010-02-25",527.12,528.49,520.00,526.43,3309200,526.43], +["2010-02-24",533.98,538.44,530.51,531.47,2326600,531.47], +["2010-02-23",543.00,543.63,532.29,535.07,2872600,535.07], +["2010-02-22",547.35,547.50,541.00,542.80,2144600,542.80], +["2010-02-19",540.53,544.03,539.70,540.76,2553100,540.76], +["2010-02-18",537.54,545.01,536.14,543.22,2336900,543.22], +["2010-02-17",542.00,543.40,537.61,538.21,2029700,538.21], +["2010-02-16",536.87,544.13,534.30,541.30,3654400,541.30], +["2010-02-12",532.97,537.15,530.50,533.12,2279700,533.12], +["2010-02-11",533.32,540.49,529.50,536.40,2410000,536.40], +["2010-02-10",534.07,537.79,527.69,534.45,2674500,534.45], +["2010-02-09",539.54,541.53,535.07,536.44,2819600,536.44], +["2010-02-08",532.50,542.00,531.53,533.47,2694300,533.47], +["2010-02-05",528.40,533.50,522.46,531.29,3156000,531.29], +["2010-02-04",537.00,538.00,525.56,526.78,3377700,526.78], +["2010-02-03",528.67,542.10,528.23,540.82,2999100,540.82], +["2010-02-02",534.96,534.96,527.61,531.12,4096200,531.12], +["2010-02-01",534.60,535.81,530.30,533.02,2250800,533.02], +["2010-01-29",538.49,540.99,525.61,529.94,4140500,529.94], +["2010-01-28",544.49,547.00,530.60,534.29,3229100,534.29], +["2010-01-27",541.27,547.65,535.31,542.10,3964400,542.10], +["2010-01-26",537.97,549.60,536.29,542.42,4355500,542.42], +["2010-01-25",546.59,549.88,535.51,540.00,4419900,540.00], +["2010-01-22",564.50,570.60,534.86,550.01,6800400,550.01], +["2010-01-21",583.44,586.82,572.25,582.98,6307700,582.98], +["2010-01-20",585.98,585.98,575.29,580.41,3250700,580.41], +["2010-01-19",581.20,590.42,576.29,587.62,4316700,587.62], +["2010-01-15",593.34,593.56,578.04,580.00,5434500,580.00], +["2010-01-14",583.90,594.20,582.81,589.85,4240100,589.85], +["2010-01-13",576.49,588.38,573.90,587.09,6496600,587.09], +["2010-01-12",597.65,598.16,588.00,590.48,4853300,590.48], +["2010-01-11",604.46,604.46,594.04,601.11,7212900,601.11], +["2010-01-08",592.00,603.25,589.11,602.02,4724300,602.02], +["2010-01-07",609.40,610.00,592.65,594.10,6414300,594.10], +["2010-01-06",625.86,625.86,606.36,608.26,3978700,608.26], +["2010-01-05",627.18,627.84,621.54,623.99,3004700,623.99], +["2010-01-04",626.95,629.51,624.24,626.75,1956200,626.75], +["2009-12-31",624.75,625.40,619.98,619.98,1219800,619.98], +["2009-12-30",618.50,622.73,618.01,622.73,1465600,622.73], +["2009-12-29",624.74,624.84,618.29,619.40,1424800,619.40], +["2009-12-28",621.66,625.99,618.48,622.87,1697900,622.87], +["2009-12-24",612.93,619.52,612.27,618.48,858700,618.48], +["2009-12-23",603.50,612.87,602.85,611.68,2072700,611.68], +["2009-12-22",601.34,601.50,598.85,601.12,1880800,601.12], +["2009-12-21",597.61,599.84,595.67,598.68,2571200,598.68], +["2009-12-18",596.03,598.93,595.00,596.42,3531500,596.42], +["2009-12-17",596.44,597.64,593.76,593.94,2638800,593.94], +["2009-12-16",598.60,600.37,596.64,597.76,2809400,597.76], +["2009-12-15",593.30,596.38,590.99,593.14,2280400,593.14], +["2009-12-14",595.35,597.31,592.61,595.73,1913400,595.73], +["2009-12-11",594.68,594.75,587.73,590.51,1720000,590.51], +["2009-12-10",590.44,594.71,590.41,591.50,1668300,591.50], +["2009-12-09",587.50,589.33,583.58,589.02,1781000,589.02], +["2009-12-08",583.50,590.66,582.00,587.05,1524000,587.05], +["2009-12-07",584.21,588.69,581.00,586.25,1636200,586.25], +["2009-12-04",593.02,594.83,579.18,585.01,2513600,585.01], +["2009-12-03",589.04,591.45,585.00,585.74,1428700,585.74], +["2009-12-02",591.00,593.01,586.22,587.51,1663200,587.51], +["2009-12-01",588.13,591.22,583.00,589.87,2320300,589.87], +["2009-11-30",580.63,583.67,577.11,583.00,1725100,583.00], +["2009-11-27",572.00,582.46,570.97,579.76,1384600,579.76], +["2009-11-25",586.41,587.06,582.69,585.74,1461200,585.74], +["2009-11-24",582.52,584.29,576.54,583.09,1605200,583.09], +["2009-11-23",576.49,586.60,575.86,582.35,2547500,582.35], +["2009-11-20",569.50,571.60,569.40,569.96,2006200,569.96], +["2009-11-19",573.77,574.00,570.00,572.99,2168000,572.99], +["2009-11-18",576.65,578.78,572.07,576.65,1549600,576.65], +["2009-11-17",574.87,577.50,573.72,577.49,1916700,577.49], +["2009-11-16",575.00,576.99,572.78,576.28,2199200,576.28], +["2009-11-13",569.29,572.51,566.61,572.05,1666800,572.05], +["2009-11-12",569.56,572.90,565.50,567.85,1886300,567.85], +["2009-11-11",570.48,573.50,565.86,570.56,2319700,570.56], +["2009-11-10",562.73,568.78,562.00,566.76,2230800,566.76], +["2009-11-09",555.45,562.58,554.23,562.51,2649900,562.51], +["2009-11-06",547.72,551.78,545.50,551.10,1826700,551.10], +["2009-11-05",543.49,549.77,542.66,548.65,1847700,548.65], +["2009-11-04",540.80,545.50,536.42,540.33,2332700,540.33], +["2009-11-03",530.01,537.50,528.30,537.29,2380200,537.29], +["2009-11-02",537.08,539.46,528.24,533.99,3202100,533.99], +["2009-10-30",550.00,550.17,534.24,536.12,3468500,536.12], +["2009-10-29",543.01,551.83,541.00,551.05,2522600,551.05], +["2009-10-28",547.87,550.00,538.25,540.30,2567800,540.30], +["2009-10-27",550.97,554.56,544.16,548.29,3216500,548.29], +["2009-10-26",555.75,561.64,550.89,554.21,2970400,554.21], +["2009-10-23",555.25,557.89,551.20,553.69,2392700,553.69], +["2009-10-22",550.00,555.00,548.00,554.09,2336500,554.09], +["2009-10-21",549.91,559.35,549.00,551.10,3670600,551.10], +["2009-10-20",551.64,552.95,540.70,551.72,4043700,551.72], +["2009-10-19",552.69,553.60,548.73,552.09,3217900,552.09], +["2009-10-16",547.33,554.75,544.53,549.85,8841900,549.85], +["2009-10-15",533.75,536.90,527.27,529.91,6100400,529.91], +["2009-10-14",532.46,535.58,530.00,535.32,3258400,535.32], +["2009-10-13",524.39,527.46,521.38,526.11,3037400,526.11], +["2009-10-12",523.42,525.76,519.32,524.04,3322200,524.04], +["2009-10-09",516.65,521.51,514.50,516.25,2738100,516.25], +["2009-10-08",519.57,523.25,513.34,514.18,4303800,514.18], +["2009-10-07",499.00,518.99,497.81,517.54,4874200,517.54], +["2009-10-06",491.70,499.37,491.70,498.74,2732300,498.74], +["2009-10-05",487.65,492.43,483.34,488.52,2144600,488.52], +["2009-10-02",483.74,491.74,482.60,484.58,2600800,484.58], +["2009-10-01",493.00,496.47,487.00,487.20,2813200,487.20], +["2009-09-30",500.00,500.14,487.24,495.85,3141700,495.85], +["2009-09-29",499.53,499.75,493.01,498.53,2099200,498.53], +["2009-09-28",494.84,501.50,493.30,498.53,1839300,498.53], +["2009-09-25",494.29,499.93,492.00,492.48,2049600,492.48], +["2009-09-24",500.47,501.41,493.00,496.77,2527600,496.77], +["2009-09-23",500.78,507.00,497.71,498.46,2704200,498.46], +["2009-09-22",500.92,501.99,497.81,499.06,3041200,499.06], +["2009-09-21",487.74,498.90,486.22,497.00,2116400,497.00], +["2009-09-18",496.77,496.98,491.23,491.46,3283500,491.46], +["2009-09-17",490.57,497.37,487.15,491.72,4483100,491.72], +["2009-09-16",479.80,489.37,478.48,488.29,2585300,488.29], +["2009-09-15",475.08,478.91,472.71,477.54,2398100,477.54], +["2009-09-14",470.51,476.80,470.05,475.12,1975700,475.12], +["2009-09-11",470.40,473.30,467.63,472.14,1902900,472.14], +["2009-09-10",466.65,470.94,462.00,470.94,2534600,470.94], +["2009-09-09",459.06,466.27,458.80,463.97,2195400,463.97], +["2009-09-08",464.29,466.99,455.84,458.62,2656700,458.62], +["2009-09-04",457.57,462.60,455.78,461.30,1499200,461.30], +["2009-09-03",455.82,458.25,455.00,457.52,1646200,457.52], +["2009-09-02",455.82,458.33,452.59,453.01,1804800,453.01], +["2009-09-01",459.68,466.82,454.42,455.76,2594900,455.76], +["2009-08-31",459.79,461.86,458.00,461.67,1957900,461.67], +["2009-08-28",469.26,472.37,463.38,464.75,1771600,464.75], +["2009-08-27",468.58,468.58,460.73,466.06,1998900,466.06], +["2009-08-26",472.76,473.00,466.70,468.00,1987800,468.00], +["2009-08-25",469.13,474.35,468.72,471.37,2341000,471.37], +["2009-08-24",467.35,470.09,464.42,468.73,2453400,468.73], +["2009-08-21",465.54,466.09,462.65,465.24,3560500,465.24], +["2009-08-20",452.00,462.18,451.23,460.41,3998900,460.41], +["2009-08-19",439.99,445.00,438.56,443.97,2255000,443.97], +["2009-08-18",445.10,447.70,442.32,445.28,2351100,445.28], +["2009-08-17",451.50,451.99,443.12,444.89,2620200,444.89], +["2009-08-14",462.78,463.18,456.89,460.00,1675100,460.00], +["2009-08-13",462.15,464.72,458.91,462.28,1995200,462.28], +["2009-08-12",455.41,461.75,454.92,458.58,2341400,458.58], +["2009-08-11",453.67,457.23,452.38,453.94,1712500,453.94], +["2009-08-10",455.14,458.41,453.79,456.61,1742000,456.61], +["2009-08-07",455.67,459.42,454.99,457.10,2543100,457.10], +["2009-08-06",454.30,454.88,448.53,450.36,2110900,450.36], +["2009-08-05",456.00,456.91,447.88,451.14,2342000,451.14], +["2009-08-04",449.37,454.00,448.43,453.73,2389800,453.73], +["2009-08-03",448.74,453.90,447.64,452.21,2590300,452.21], +["2009-07-31",449.98,452.70,442.43,443.05,2860400,443.05], +["2009-07-30",442.61,451.47,442.61,445.64,3198600,445.64], +["2009-07-29",437.23,437.80,431.89,436.24,1987000,436.24], +["2009-07-28",441.00,442.81,436.10,439.85,2532500,439.85], +["2009-07-27",446.04,446.75,437.61,444.80,2504400,444.80], +["2009-07-24",435.81,450.49,435.00,446.72,3626900,446.72], +["2009-07-23",428.68,441.21,425.50,437.34,3478200,437.34], +["2009-07-22",428.00,430.20,423.50,427.69,2586700,427.69], +["2009-07-21",430.94,431.90,425.72,427.90,2968200,427.90], +["2009-07-20",429.88,432.85,426.25,430.17,3153500,430.17], +["2009-07-17",433.00,435.48,426.70,430.25,6854100,430.25], +["2009-07-16",436.68,445.75,434.10,442.60,6554500,442.60], +["2009-07-15",429.66,438.68,428.49,438.17,3777000,438.17], +["2009-07-14",423.71,426.73,420.87,424.69,2895800,424.69], +["2009-07-13",416.17,424.52,415.18,424.30,4045700,424.30], +["2009-07-10",409.58,417.37,408.70,414.40,2926600,414.40], +["2009-07-09",406.12,414.45,405.80,410.39,3275600,410.39], +["2009-07-08",400.00,406.00,398.06,402.49,3441200,402.49], +["2009-07-07",408.24,409.19,395.98,396.63,3259300,396.63], +["2009-07-06",406.50,410.64,401.66,409.61,2262600,409.61], +["2009-07-02",415.41,415.41,406.81,408.49,2517600,408.49], +["2009-07-01",424.20,426.40,418.15,418.99,2310800,418.99], +["2009-06-30",424.00,427.21,418.22,421.59,2593900,421.59], +["2009-06-29",426.00,427.80,422.24,424.14,2169300,424.14], +["2009-06-26",413.68,428.23,413.11,425.32,3256700,425.32], +["2009-06-25",407.00,415.90,406.51,415.77,3044500,415.77], +["2009-06-24",408.74,412.23,406.56,409.29,2457800,409.29], +["2009-06-23",406.65,408.99,402.55,405.68,2899600,405.68], +["2009-06-22",416.95,417.49,401.89,407.35,4124400,407.35], +["2009-06-19",418.21,420.46,414.58,420.09,4259100,420.09], +["2009-06-18",415.68,418.69,413.00,414.06,3085200,414.06], +["2009-06-17",416.19,419.72,411.56,415.16,3490100,415.16], +["2009-06-16",419.31,421.09,415.42,416.00,3049700,416.00], +["2009-06-15",421.50,421.50,414.00,416.77,3736900,416.77], +["2009-06-12",426.86,427.70,421.21,424.84,2918400,424.84], +["2009-06-11",431.77,433.73,428.37,429.00,2865200,429.00], +["2009-06-10",436.23,437.89,426.67,432.60,3358900,432.60], +["2009-06-09",438.58,440.50,431.76,435.62,3254900,435.62], +["2009-06-08",439.50,440.92,434.12,438.77,3098700,438.77], +["2009-06-05",445.07,447.34,439.46,444.32,3680800,444.32], +["2009-06-04",435.30,441.24,434.50,440.28,3638100,440.28], +["2009-06-03",426.00,432.46,424.00,431.65,3532800,431.65], +["2009-06-02",426.25,429.96,423.40,428.40,2623600,428.40], +["2009-06-01",418.73,429.60,418.53,426.56,3322400,426.56], +["2009-05-29",412.11,417.23,410.70,417.23,2648200,417.23], +["2009-05-28",408.68,411.62,404.61,410.40,2668800,410.40], +["2009-05-27",405.64,411.86,404.81,405.56,3034300,405.56], +["2009-05-26",391.95,405.00,390.00,404.36,3104500,404.36], +["2009-05-22",396.66,398.65,392.00,393.50,1718600,393.50], +["2009-05-21",396.30,402.84,393.84,396.50,2719800,396.50], +["2009-05-20",402.09,405.67,395.00,397.18,2284000,397.18], +["2009-05-19",396.10,401.64,393.00,398.88,2837500,398.88], +["2009-05-18",394.73,397.31,385.40,396.84,3351700,396.84], +["2009-05-15",391.10,394.11,389.09,390.00,3008700,390.00], +["2009-05-14",388.80,392.21,384.69,387.50,2937000,387.50], +["2009-05-13",394.09,396.39,388.35,389.54,2842800,389.54], +["2009-05-12",410.01,410.99,395.11,399.01,3790800,399.01], +["2009-05-11",402.80,412.00,401.20,407.98,2559300,407.98], +["2009-05-08",402.85,410.13,395.00,407.33,3865100,407.33], +["2009-05-07",404.10,404.99,392.50,396.61,2999800,396.61], +["2009-05-06",406.79,408.28,401.00,403.47,2632900,403.47], +["2009-05-05",399.98,405.00,397.25,402.99,2400800,402.99], +["2009-05-04",398.17,402.40,394.79,401.98,3203000,401.98], +["2009-05-01",395.03,397.59,391.55,393.69,2427700,393.69], +["2009-04-30",395.76,403.75,394.80,395.97,4355700,395.97], +["2009-04-29",385.97,394.97,385.83,391.47,3610000,391.47], +["2009-04-28",383.75,389.05,381.54,383.71,2943600,383.71], +["2009-04-27",384.34,389.49,382.75,385.95,2290600,385.95], +["2009-04-24",386.05,393.18,380.50,389.49,3385400,389.49], +["2009-04-23",387.51,389.75,381.11,384.69,2609000,384.69], +["2009-04-22",381.75,390.00,379.01,383.86,3501800,383.86], +["2009-04-21",376.17,384.30,376.10,381.47,3695400,381.47], +["2009-04-20",386.15,390.65,375.89,379.30,4428900,379.30], +["2009-04-17",386.02,399.82,384.81,392.24,10730800,392.24], +["2009-04-16",381.50,392.90,381.02,388.74,10185100,388.74], +["2009-04-15",367.10,381.06,364.16,379.50,4930700,379.50], +["2009-04-14",376.94,376.99,365.60,368.91,3428600,368.91], +["2009-04-13",371.33,379.10,370.30,378.11,3050100,378.11], +["2009-04-09",369.50,374.35,366.25,372.50,3382600,372.50], +["2009-04-08",363.50,365.00,356.21,362.00,2765200,362.00], +["2009-04-07",362.60,363.75,355.31,358.65,3680100,358.65], +["2009-04-06",367.00,369.82,361.40,368.24,3280300,368.24], +["2009-04-03",364.50,371.72,358.00,369.78,3789800,369.78], +["2009-04-02",363.31,369.76,360.32,362.50,4488000,362.50], +["2009-04-01",343.78,355.24,340.61,354.09,3301200,354.09], +["2009-03-31",348.93,353.51,346.18,348.06,3655300,348.06], +["2009-03-30",342.55,343.81,336.05,342.69,3094100,342.69], +["2009-03-27",350.00,352.00,345.47,347.70,3322800,347.70], +["2009-03-26",353.13,359.16,348.50,353.29,6003300,353.29], +["2009-03-25",350.40,351.34,336.25,344.07,4336300,344.07], +["2009-03-24",346.50,353.84,344.00,347.17,3820000,347.17], +["2009-03-23",333.56,349.45,333.03,348.60,4271500,348.60], +["2009-03-20",330.30,332.99,326.34,330.16,4737900,330.16], +["2009-03-19",331.68,336.00,327.38,329.94,4111200,329.94], +["2009-03-18",334.81,340.00,328.05,333.10,5012200,333.10], +["2009-03-17",320.18,335.34,319.09,335.34,4712500,335.34], +["2009-03-16",325.99,329.73,318.59,319.69,4946800,319.69], +["2009-03-13",326.10,327.46,319.03,324.42,3906400,324.42], +["2009-03-12",317.54,325.00,313.65,323.53,5024100,323.53], +["2009-03-11",310.10,320.00,305.71,317.91,5923600,317.91], +["2009-03-10",298.25,310.50,294.25,308.17,6730200,308.17], +["2009-03-09",299.98,306.57,289.45,290.89,6471300,290.89], +["2009-03-06",307.22,310.19,294.25,308.57,7234200,308.57], +["2009-03-05",316.48,319.08,302.64,305.64,6529900,305.64], +["2009-03-04",323.16,329.00,315.38,318.92,7818400,318.92], +["2009-03-03",330.07,333.69,322.35,325.48,6524800,325.48], +["2009-03-02",333.33,340.70,326.00,327.16,5788500,327.16], +["2009-02-27",332.95,343.82,331.11,337.99,5420000,337.99], +["2009-02-26",345.96,352.49,337.16,337.18,5605600,337.18], +["2009-02-25",342.15,352.30,338.92,341.64,6439100,341.64], +["2009-02-24",331.02,349.62,330.89,345.45,6095900,345.45], +["2009-02-23",347.00,349.80,329.55,330.06,5221100,330.06], +["2009-02-20",338.05,348.92,335.00,346.45,6217100,346.45], +["2009-02-19",357.47,359.80,341.41,342.64,4988700,342.64], +["2009-02-18",347.24,353.38,340.52,353.11,6024500,353.11], +["2009-02-17",346.51,347.09,339.69,342.66,5680400,342.66], +["2009-02-13",362.19,362.99,355.23,357.68,4146700,357.68], +["2009-02-12",353.16,363.62,351.48,363.05,5550300,363.05], +["2009-02-11",358.95,365.00,353.00,358.04,5231600,358.04], +["2009-02-10",375.98,377.50,357.89,358.51,7103700,358.51], +["2009-02-09",371.28,381.00,367.30,378.77,4977300,378.77], +["2009-02-06",356.46,373.81,355.44,371.28,7038100,371.28], +["2009-02-05",340.91,355.38,337.00,353.72,7264400,353.72], +["2009-02-04",340.07,354.44,339.17,343.00,6817400,343.00], +["2009-02-03",342.57,343.00,333.83,340.45,6556500,340.45], +["2009-02-02",334.29,345.00,332.00,340.57,5206900,340.57], +["2009-01-30",344.69,348.80,336.00,338.53,4672000,338.53], +["2009-01-29",344.54,345.05,340.11,343.32,7283800,343.32], +["2009-01-28",337.98,352.33,336.31,348.67,7691400,348.67], +["2009-01-27",326.45,333.87,324.27,331.48,4927300,331.48], +["2009-01-26",324.85,328.00,320.56,323.87,4610700,323.87], +["2009-01-23",309.27,331.96,304.22,324.70,10732800,324.70], +["2009-01-22",298.04,309.35,295.15,306.50,8267000,306.50], +["2009-01-21",288.35,303.50,288.35,303.08,4924500,303.08], +["2009-01-20",299.14,299.50,282.75,282.75,5048200,282.75], +["2009-01-16",305.02,308.25,295.70,299.67,5224400,299.67], +["2009-01-15",297.57,303.58,286.79,298.99,5934500,298.99], +["2009-01-14",310.00,313.80,297.75,300.97,5467900,300.97], +["2009-01-13",311.77,320.60,310.39,314.32,4432500,314.32], +["2009-01-12",316.31,318.95,310.23,312.69,3304300,312.69], +["2009-01-09",327.50,327.50,313.40,315.07,4340500,315.07], +["2009-01-08",318.28,325.19,317.34,325.19,3600700,325.19], +["2009-01-07",328.32,330.91,318.75,322.01,4494500,322.01], +["2009-01-06",332.98,340.80,326.39,334.06,6425200,334.06], +["2009-01-05",321.00,331.24,315.00,328.05,4889000,328.05], +["2009-01-02",308.60,321.82,305.50,321.32,3610500,321.32], +["2008-12-31",304.20,311.00,302.61,307.65,2886800,307.65], +["2008-12-30",300.80,306.81,298.71,303.11,3843500,303.11], +["2008-12-29",300.22,301.38,291.58,297.42,3701900,297.42], +["2008-12-26",304.07,305.26,298.31,300.36,1959100,300.36], +["2008-12-24",301.48,306.34,298.38,302.95,1921500,302.95], +["2008-12-23",300.43,303.31,296.67,298.02,3777700,298.02], +["2008-12-22",308.56,309.50,290.63,297.11,3917600,297.11], +["2008-12-19",310.99,317.79,309.00,310.17,5612600,310.17], +["2008-12-18",316.70,320.35,309.11,310.28,4763500,310.28], +["2008-12-17",318.64,322.13,312.42,315.24,5789700,315.24], +["2008-12-16",314.52,329.50,311.27,325.28,7059600,325.28], +["2008-12-15",314.01,318.49,305.11,310.67,6737900,310.67], +["2008-12-12",295.71,316.47,294.00,315.76,5722100,315.76], +["2008-12-11",304.17,312.88,297.80,300.22,6179200,300.22], +["2008-12-10",309.24,314.90,304.51,308.82,5237000,308.82], +["2008-12-09",297.69,318.00,297.01,305.97,6889900,305.97], +["2008-12-08",289.99,309.44,282.00,302.11,8144300,302.11], +["2008-12-05",271.02,284.24,264.02,283.99,6521200,283.99], +["2008-12-04",276.53,283.49,268.77,274.34,4886600,274.34], +["2008-12-03",269.85,281.36,265.34,279.43,5904800,279.43], +["2008-12-02",269.73,277.78,262.58,275.11,5839700,275.11], +["2008-12-01",286.68,287.38,265.98,265.99,5711200,265.99], +["2008-11-28",290.58,296.45,288.28,292.96,2565500,292.96], +["2008-11-26",280.28,295.46,276.20,292.09,6356600,292.09], +["2008-11-25",268.68,286.66,267.32,282.05,10771200,282.05], +["2008-11-24",269.26,269.95,249.01,257.44,10054700,257.44], +["2008-11-21",262.51,269.37,247.30,262.43,10244500,262.43], +["2008-11-20",274.89,282.94,259.04,259.56,9779400,259.56], +["2008-11-19",295.39,300.19,278.58,280.18,7834600,280.18], +["2008-11-18",301.57,303.73,285.35,297.42,8346100,297.42], +["2008-11-17",303.00,310.16,297.95,300.12,7543800,300.12], +["2008-11-14",303.25,324.99,302.56,310.02,9517100,310.02], +["2008-11-13",291.77,313.00,280.00,312.08,13234700,312.08], +["2008-11-12",302.05,312.49,287.76,291.00,10051100,291.00], +["2008-11-11",308.69,316.30,300.52,311.46,10146600,311.46], +["2008-11-10",328.00,329.44,309.47,318.78,8080100,318.78], +["2008-11-07",333.12,341.15,325.33,331.14,4681300,331.14], +["2008-11-06",339.97,344.42,325.81,331.22,8574800,331.22], +["2008-11-05",362.15,368.88,341.31,342.24,6946500,342.24], +["2008-11-04",353.44,372.36,345.50,366.94,7349900,366.94], +["2008-11-03",357.58,362.99,341.43,346.49,5954500,346.49], +["2008-10-31",356.16,371.96,354.27,359.36,7423300,359.36], +["2008-10-30",368.46,372.00,358.37,359.69,7988900,359.69], +["2008-10-29",365.79,371.00,352.37,358.00,9756600,358.00], +["2008-10-28",339.05,369.31,328.51,368.75,8105400,368.75], +["2008-10-27",334.81,343.00,325.60,329.49,6200700,329.49], +["2008-10-24",326.47,350.47,324.74,339.29,7359000,339.29], +["2008-10-23",353.65,358.00,337.99,352.32,6478900,352.32], +["2008-10-22",356.99,369.69,344.00,355.67,6560000,355.67], +["2008-10-21",372.39,383.78,362.00,362.75,5782000,362.75], +["2008-10-20",379.75,380.98,359.59,379.32,6753400,379.32], +["2008-10-17",378.96,386.00,363.55,372.54,14249200,372.54], +["2008-10-16",332.76,356.50,309.44,353.02,16239700,353.02], +["2008-10-15",354.65,359.00,338.83,339.17,6721400,339.17], +["2008-10-14",393.53,394.50,357.00,362.71,7784800,362.71], +["2008-10-13",355.79,381.95,345.75,381.02,8905500,381.02], +["2008-10-10",313.16,341.89,310.30,332.00,10597800,332.00], +["2008-10-09",344.52,348.57,321.67,328.98,8075000,328.98], +["2008-10-08",330.16,358.99,326.11,338.11,11826400,338.11], +["2008-10-07",373.33,374.98,345.37,346.01,11054400,346.01], +["2008-10-06",373.98,375.99,357.16,371.21,11220600,371.21], +["2008-10-03",397.35,412.50,383.07,386.91,7992900,386.91], +["2008-10-02",409.79,409.98,386.00,390.49,5984900,390.49], +["2008-10-01",411.15,416.98,403.10,411.72,6234800,411.72], +["2008-09-30",395.98,425.08,392.32,400.52,3086300,400.52], +["2008-09-29",419.51,423.51,380.71,381.00,10762900,381.00], +["2008-09-26",428.00,437.16,421.03,431.04,5292500,431.04], +["2008-09-25",438.84,450.00,435.98,439.60,5020300,439.60], +["2008-09-24",430.34,445.00,430.11,435.11,4242000,435.11], +["2008-09-23",433.25,440.79,425.72,429.27,5204200,429.27], +["2008-09-22",454.13,454.13,429.00,430.14,4407300,430.14], +["2008-09-19",461.00,462.07,443.28,449.15,10006000,449.15], +["2008-09-18",422.64,439.18,410.50,439.08,8589400,439.08], +["2008-09-17",438.48,439.14,413.44,414.49,9126900,414.49], +["2008-09-16",425.96,449.28,425.49,442.93,6990700,442.93], +["2008-09-15",424.00,441.97,423.71,433.86,6567400,433.86], +["2008-09-12",430.21,441.99,429.00,437.66,6028000,437.66], +["2008-09-11",408.35,435.09,406.38,433.75,6471400,433.75], +["2008-09-10",424.47,424.48,409.68,414.16,6226800,414.16], +["2008-09-09",423.17,432.38,415.00,418.66,7229600,418.66], +["2008-09-08",452.02,452.94,417.55,419.95,9017900,419.95], +["2008-09-05",445.49,452.46,440.08,444.25,4534300,444.25], +["2008-09-04",460.00,463.24,449.40,450.26,4848500,450.26], +["2008-09-03",468.73,474.29,459.58,464.41,4314600,464.41], +["2008-09-02",476.77,482.18,461.42,465.25,6111500,465.25], +["2008-08-29",469.75,471.01,462.33,463.29,3848200,463.29], +["2008-08-28",472.49,476.45,470.33,473.78,3029700,473.78], +["2008-08-27",473.73,474.83,464.84,468.58,4387100,468.58], +["2008-08-26",483.46,483.46,470.59,474.16,3308200,474.16], +["2008-08-25",486.11,497.00,481.50,483.01,2014300,483.01], +["2008-08-22",491.50,494.88,489.48,490.59,2297200,490.59], +["2008-08-21",482.92,489.90,479.27,486.53,3514100,486.53], +["2008-08-20",494.72,496.69,482.57,485.00,3982100,485.00], +["2008-08-19",490.43,498.28,486.63,490.50,3046500,490.50], +["2008-08-18",509.84,510.00,495.51,498.30,3333900,498.30], +["2008-08-15",506.99,510.66,505.50,510.15,3545700,510.15], +["2008-08-14",497.70,507.61,496.29,505.49,2918600,505.49], +["2008-08-13",501.60,503.54,493.88,500.03,3625500,500.03], +["2008-08-12",502.00,506.13,498.00,502.61,2755700,502.61], +["2008-08-11",492.47,508.88,491.78,500.84,4239300,500.84], +["2008-08-08",480.15,495.75,475.69,495.01,3739300,495.01], +["2008-08-07",482.00,484.00,476.41,479.12,2773800,479.12], +["2008-08-06",478.37,489.77,472.51,486.34,3375800,486.34], +["2008-08-05",467.59,480.08,466.33,479.85,3584500,479.85], +["2008-08-04",468.12,473.01,461.90,463.00,2487000,463.00], +["2008-08-01",472.51,473.22,462.50,467.86,3007900,467.86], +["2008-07-31",474.56,480.89,471.44,473.75,2865100,473.75], +["2008-07-30",485.50,486.02,472.81,482.70,3490700,482.70], +["2008-07-29",479.30,487.26,478.00,483.11,2802800,483.11], +["2008-07-28",492.09,492.09,475.13,477.12,3160000,477.12], +["2008-07-25",486.49,493.13,481.50,491.98,3183500,491.98], +["2008-07-24",496.70,496.87,475.62,475.62,3540900,475.62], +["2008-07-23",481.61,497.23,478.10,489.22,4894100,489.22], +["2008-07-22",466.72,480.25,465.60,477.11,4691500,477.11], +["2008-07-21",480.88,484.09,465.70,468.80,5901500,468.80], +["2008-07-18",498.35,498.98,478.19,481.32,11292400,481.32], +["2008-07-17",534.16,537.05,524.50,533.44,8787400,533.44], +["2008-07-16",514.04,536.50,510.60,535.60,4742200,535.60], +["2008-07-15",516.28,527.50,501.10,516.09,6071000,516.09], +["2008-07-14",539.00,540.06,515.45,521.62,4424800,521.62], +["2008-07-11",536.50,539.50,519.43,533.80,4981400,533.80], +["2008-07-10",545.00,549.50,530.72,540.57,4331700,540.57], +["2008-07-09",550.76,555.68,540.73,541.55,4154000,541.55], +["2008-07-08",545.99,555.19,540.00,554.53,4932400,554.53], +["2008-07-07",542.30,549.00,535.60,543.91,4255200,543.91], +["2008-07-03",530.88,539.23,527.50,537.00,2400500,537.00], +["2008-07-02",536.51,540.38,526.06,527.04,4223000,527.04], +["2008-07-01",519.58,536.72,517.00,534.73,4959900,534.73], +["2008-06-30",532.47,538.00,523.06,526.42,3765300,526.42], +["2008-06-27",527.68,530.00,515.09,528.07,5447500,528.07], +["2008-06-26",544.10,544.93,528.26,528.82,5659500,528.82], +["2008-06-25",544.97,557.80,543.67,551.00,4122200,551.00], +["2008-06-24",545.14,551.19,535.10,542.30,4672600,542.30], +["2008-06-23",545.36,553.15,542.02,545.21,3635900,545.21], +["2008-06-20",556.98,556.98,544.51,546.43,5983100,546.43], +["2008-06-19",555.35,563.78,550.81,560.20,5683100,560.20], +["2008-06-18",564.51,568.99,559.16,562.38,3381200,562.38], +["2008-06-17",576.35,578.07,568.38,569.46,3462900,569.46], +["2008-06-16",566.50,579.10,566.50,572.81,3542800,572.81], +["2008-06-13",561.49,575.70,561.34,571.51,6184400,571.51], +["2008-06-12",548.76,558.00,546.88,552.95,5491600,552.95], +["2008-06-11",556.24,557.34,544.46,545.20,3812900,545.20], +["2008-06-10",549.56,558.82,546.78,554.17,3657400,554.17], +["2008-06-09",568.06,570.00,545.40,557.87,5288300,557.87], +["2008-06-06",579.75,580.72,567.00,567.00,4734500,567.00], +["2008-06-05",577.08,588.04,576.21,586.30,3916700,586.30], +["2008-06-04",565.33,578.00,564.55,572.22,3363200,572.22], +["2008-06-03",576.50,580.50,560.61,567.30,4305300,567.30], +["2008-06-02",582.50,583.89,571.27,575.00,3674200,575.00], +["2008-05-30",583.47,589.92,581.30,585.80,3225200,585.80], +["2008-05-29",574.79,585.88,573.20,583.00,4845000,583.00], +["2008-05-28",567.94,571.49,561.10,568.24,4050400,568.24], +["2008-05-27",544.96,562.60,543.85,560.90,3865500,560.90], +["2008-05-23",546.96,553.00,537.81,544.62,4431500,544.62], +["2008-05-22",551.95,554.21,540.25,549.46,5076300,549.46], +["2008-05-21",578.52,581.41,547.89,549.99,6468100,549.99], +["2008-05-20",574.63,582.48,572.91,578.60,3313600,578.60], +["2008-05-19",578.55,588.88,573.52,577.52,5604500,577.52], +["2008-05-16",581.43,584.68,578.32,580.07,4274100,580.07], +["2008-05-15",579.00,582.95,575.61,581.00,4342700,581.00], +["2008-05-14",586.49,591.19,575.25,576.30,4375800,576.30], +["2008-05-13",586.23,587.95,578.55,583.00,5163500,583.00], +["2008-05-12",574.75,586.75,568.91,584.94,4863900,584.94], +["2008-05-09",579.00,585.00,571.30,573.20,4484900,573.20], +["2008-05-08",586.20,589.30,578.91,583.01,5122900,583.01], +["2008-05-07",590.27,599.49,576.43,579.00,6613000,579.00], +["2008-05-06",591.00,592.00,583.00,586.36,4629300,586.36], +["2008-05-05",598.86,599.00,587.13,594.90,6281000,594.90], +["2008-05-02",598.49,602.45,579.30,581.29,6998800,581.29], +["2008-05-01",578.31,594.93,576.97,593.08,6602800,593.08], +["2008-04-30",562.21,584.86,558.47,574.29,7903000,574.29], +["2008-04-29",550.83,563.40,550.01,558.47,4346000,558.47], +["2008-04-28",545.88,556.81,539.00,552.12,4008600,552.12], +["2008-04-25",549.02,553.00,542.73,544.06,4164400,544.06], +["2008-04-24",551.29,554.49,540.02,543.04,4135100,543.04], +["2008-04-23",557.94,559.31,540.95,546.49,4921500,546.49], +["2008-04-22",537.57,560.83,537.56,555.00,7938500,555.00], +["2008-04-21",539.39,542.59,530.29,537.79,7439700,537.79], +["2008-04-18",535.21,547.70,524.77,539.41,18235600,539.41], +["2008-04-17",455.63,459.37,446.52,449.54,13353000,449.54], +["2008-04-16",444.40,458.28,441.00,455.03,7630700,455.03], +["2008-04-15",458.13,459.72,443.72,446.84,4577600,446.84], +["2008-04-14",457.16,457.45,450.15,451.66,3842600,451.66], +["2008-04-11",464.07,467.26,455.01,457.45,4169700,457.45], +["2008-04-10",464.96,473.86,461.85,469.08,5072400,469.08], +["2008-04-09",469.13,472.00,457.54,464.19,6048100,464.19], +["2008-04-08",473.04,474.14,462.01,467.81,4547000,467.81], +["2008-04-07",477.03,485.44,473.53,476.82,5943500,476.82], +["2008-04-04",457.01,477.83,456.20,471.09,5897200,471.09], +["2008-04-03",461.73,463.29,448.13,455.12,6778400,455.12], +["2008-04-02",469.90,475.74,460.39,465.70,5999000,465.70], +["2008-04-01",447.74,466.50,446.87,465.71,6093100,465.71], +["2008-03-31",435.64,442.69,432.01,440.47,4446400,440.47], +["2008-03-28",447.46,453.57,434.31,438.08,4376200,438.08], +["2008-03-27",446.00,448.61,440.49,444.08,5832200,444.08], +["2008-03-26",452.59,462.87,449.29,458.19,5225700,458.19], +["2008-03-25",457.46,457.47,446.00,450.78,5831600,450.78], +["2008-03-24",438.43,465.78,437.72,460.56,6763500,460.56], +["2008-03-20",427.32,435.70,417.50,433.55,9913400,433.55], +["2008-03-19",441.11,447.50,431.67,432.00,6179000,432.00], +["2008-03-18",428.98,440.84,425.53,439.16,7237200,439.16], +["2008-03-17",427.99,433.71,412.11,419.87,7888200,419.87], +["2008-03-14",442.98,449.34,430.62,437.92,6574400,437.92], +["2008-03-13",432.67,446.98,428.78,443.01,7726600,443.01], +["2008-03-12",440.01,447.88,438.07,440.18,6651900,440.18], +["2008-03-11",425.26,440.15,424.65,439.84,8826900,439.84], +["2008-03-10",428.83,431.00,413.04,413.62,7987600,413.62], +["2008-03-07",428.88,440.00,426.24,433.35,8071800,433.35], +["2008-03-06",447.69,453.30,431.18,432.70,7470100,432.70], +["2008-03-05",445.25,454.17,444.00,447.70,7436600,447.70], +["2008-03-04",450.95,453.36,435.78,444.60,13621700,444.60], +["2008-03-03",471.51,472.72,450.11,457.02,7554500,457.02], +["2008-02-29",471.87,479.74,464.65,471.18,9425400,471.18], +["2008-02-28",470.50,479.09,467.36,475.39,6586900,475.39], +["2008-02-27",460.13,475.49,459.64,472.86,10121900,472.86], +["2008-02-26",461.20,466.47,446.85,464.19,23287300,464.19], +["2008-02-25",505.95,506.50,485.74,486.44,8372800,486.44], +["2008-02-22",502.06,509.00,497.55,507.80,5515900,507.80], +["2008-02-21",512.85,513.21,499.50,502.86,5677800,502.86], +["2008-02-20",503.51,511.01,498.82,509.00,6662200,509.00], +["2008-02-19",534.94,535.06,506.50,508.95,6350400,508.95], +["2008-02-15",528.31,532.66,524.33,529.64,5240100,529.64], +["2008-02-14",538.35,541.04,531.00,532.25,6476700,532.25], +["2008-02-13",522.50,534.99,518.69,534.62,6624700,534.62], +["2008-02-12",523.39,530.60,513.03,518.09,6662300,518.09], +["2008-02-11",520.52,523.71,513.40,521.16,5826000,521.16], +["2008-02-08",509.41,517.73,508.70,516.69,6828900,516.69], +["2008-02-07",496.86,514.19,494.76,504.95,7928900,504.95], +["2008-02-06",511.14,511.17,497.93,501.71,7636400,501.71], +["2008-02-05",489.43,509.00,488.52,506.80,11203300,506.80], +["2008-02-04",509.07,512.78,492.55,495.43,13157100,495.43], +["2008-02-01",528.67,536.67,510.00,515.90,17600500,515.90], +["2008-01-31",539.01,573.00,534.29,564.30,14871300,564.30], +["2008-01-30",549.19,560.43,543.51,548.27,7939600,548.27], +["2008-01-29",560.47,561.33,540.67,550.52,6283000,550.52], +["2008-01-28",570.97,572.24,548.60,555.98,5816700,555.98], +["2008-01-25",591.81,595.00,566.18,566.40,6966000,566.40], +["2008-01-24",558.80,579.69,554.14,574.49,9400900,574.49], +["2008-01-23",560.71,568.00,519.00,548.62,16965700,548.62], +["2008-01-22",562.03,597.50,561.20,584.35,9501500,584.35], +["2008-01-18",608.36,609.99,598.45,600.25,8539600,600.25], +["2008-01-17",620.76,625.74,598.01,600.79,8216800,600.79], +["2008-01-16",628.97,639.99,601.93,615.95,10560000,615.95], +["2008-01-15",645.90,649.05,635.38,637.65,5568200,637.65], +["2008-01-14",651.14,657.40,645.25,653.82,4447500,653.82], +["2008-01-11",642.70,649.47,630.11,638.25,4977000,638.25], +["2008-01-10",645.01,657.20,640.11,646.73,6334200,646.73], +["2008-01-09",630.04,653.34,622.51,653.20,6739700,653.20], +["2008-01-08",653.00,659.96,631.00,631.68,5339100,631.68], +["2008-01-07",653.94,662.28,637.35,649.25,6403400,649.25], +["2008-01-04",679.69,680.96,655.00,657.00,5359800,657.00], +["2008-01-03",685.26,686.85,676.52,685.33,3252500,685.33], +["2008-01-02",692.87,697.37,677.73,685.19,4306900,685.19], +["2007-12-31",698.57,702.49,690.58,691.48,2376200,691.48], +["2007-12-28",704.93,707.95,696.54,702.53,2562700,702.53], +["2007-12-27",707.07,716.00,700.74,700.74,2942500,700.74], +["2007-12-26",698.99,713.22,698.21,710.84,2530000,710.84], +["2007-12-24",694.99,700.73,693.06,700.73,1628400,700.73], +["2007-12-21",697.88,699.26,693.24,696.69,5382000,696.69], +["2007-12-20",685.83,691.00,680.61,689.69,4422200,689.69], +["2007-12-19",674.21,679.50,669.00,677.37,4421100,677.37], +["2007-12-18",674.16,676.71,652.50,673.35,7166700,673.35], +["2007-12-17",688.00,695.42,663.67,669.23,5486000,669.23], +["2007-12-14",687.51,699.70,687.26,689.96,3673500,689.96], +["2007-12-13",696.31,697.62,681.21,694.05,5040800,694.05], +["2007-12-12",714.00,714.32,688.50,699.35,6159100,699.35], +["2007-12-11",719.94,720.99,698.78,699.20,6139100,699.20], +["2007-12-10",715.99,724.80,714.00,718.42,3856200,718.42], +["2007-12-07",714.99,718.00,710.50,714.87,3852100,714.87], +["2007-12-06",697.80,716.56,697.01,715.26,4909000,715.26], +["2007-12-05",692.73,698.93,687.50,698.51,4209600,698.51], +["2007-12-04",678.31,692.00,677.12,684.16,4231800,684.16], +["2007-12-03",691.01,695.00,681.14,681.53,4325100,681.53], +["2007-11-30",711.00,711.06,682.11,693.00,7895500,693.00], +["2007-11-29",690.75,702.79,687.77,697.00,6208000,697.00], +["2007-11-28",682.11,694.30,672.14,692.26,7916500,692.26], +["2007-11-27",674.80,676.43,650.26,673.57,8904500,673.57], +["2007-11-26",680.20,693.40,665.00,666.00,6790100,666.00], +["2007-11-23",670.00,678.28,668.11,676.70,2738700,676.70], +["2007-11-21",643.77,669.97,642.08,660.52,7013500,660.52], +["2007-11-20",636.48,659.10,632.87,648.54,9840600,648.54], +["2007-11-19",629.59,636.77,618.50,625.85,5527400,625.85], +["2007-11-16",633.94,635.49,616.02,633.63,9042800,633.63], +["2007-11-15",638.57,647.50,624.00,629.65,6967700,629.65], +["2007-11-14",673.28,675.49,636.27,641.68,8094700,641.68], +["2007-11-13",644.99,660.92,632.07,660.55,8426100,660.55], +["2007-11-12",657.74,669.93,626.21,632.07,10227300,632.07], +["2007-11-09",675.78,681.88,661.21,663.97,11388100,663.97], +["2007-11-08",734.60,734.89,677.18,693.84,16512200,693.84], +["2007-11-07",741.13,747.24,723.14,732.94,8252900,732.94], +["2007-11-06",737.56,741.79,725.00,741.79,8436300,741.79], +["2007-11-05",706.99,730.23,706.07,725.65,8883700,725.65], +["2007-11-02",710.51,713.58,697.34,711.25,5841500,711.25], +["2007-11-01",702.79,713.72,701.78,703.21,6527200,703.21], +["2007-10-31",700.69,707.00,696.04,707.00,6876800,707.00], +["2007-10-30",677.51,699.91,677.51,694.77,6900600,694.77], +["2007-10-29",677.77,680.00,672.09,679.23,3066300,679.23], +["2007-10-26",674.03,676.54,668.06,674.60,3353900,674.60], +["2007-10-25",678.68,678.97,663.55,668.51,5795500,668.51], +["2007-10-24",672.71,677.47,659.56,675.82,7404200,675.82], +["2007-10-23",661.25,677.60,660.00,675.77,6793700,675.77], +["2007-10-22",638.67,655.00,636.28,650.75,6664400,650.75], +["2007-10-19",654.56,658.49,643.23,644.71,15789000,644.71], +["2007-10-18",635.41,641.37,628.50,639.62,12289200,639.62], +["2007-10-17",630.45,634.00,621.59,633.48,6030500,633.48], +["2007-10-16",618.49,625.92,611.99,616.00,6025300,616.00], +["2007-10-15",638.47,639.86,615.55,620.11,6943800,620.11], +["2007-10-12",623.98,638.40,618.24,637.39,6823700,637.39], +["2007-10-11",633.64,641.41,609.00,622.00,11799000,622.00], +["2007-10-10",621.36,625.68,616.80,625.39,5385600,625.39], +["2007-10-09",615.11,623.78,608.39,615.18,8767800,615.18], +["2007-10-08",595.00,610.26,593.95,609.62,5028000,609.62], +["2007-10-05",587.11,596.00,587.01,594.05,5068700,594.05], +["2007-10-04",585.09,585.09,577.06,579.03,2986700,579.03], +["2007-10-03",586.25,588.99,580.36,584.02,3879500,584.02], +["2007-10-02",583.38,596.81,580.01,584.39,7067500,584.39], +["2007-10-01",569.97,584.35,569.61,582.55,4711300,582.55], +["2007-09-28",567.00,569.55,564.12,567.27,2639500,567.27], +["2007-09-27",571.73,571.74,565.78,567.50,2056300,567.50], +["2007-09-26",570.40,571.79,563.81,568.16,3346100,568.16], +["2007-09-25",564.00,569.56,562.86,569.00,2730600,569.00], +["2007-09-24",561.00,571.46,560.00,568.02,5297000,568.02], +["2007-09-21",556.34,560.79,552.83,560.10,8011700,560.10], +["2007-09-20",547.00,556.80,546.03,552.83,5525000,552.83], +["2007-09-19",539.27,549.45,538.86,546.85,5526900,546.85], +["2007-09-18",526.52,537.25,524.27,535.27,4215700,535.27], +["2007-09-17",526.53,529.28,524.07,525.30,2197500,525.30], +["2007-09-14",523.20,530.27,522.22,528.75,2764900,528.75], +["2007-09-13",524.06,527.21,523.22,524.78,1891100,524.78], +["2007-09-12",520.53,527.98,519.00,522.65,2986000,522.65], +["2007-09-11",516.99,521.65,515.73,521.33,2703600,521.33], +["2007-09-10",521.28,522.07,510.88,514.48,3225800,514.48], +["2007-09-07",517.86,521.24,516.80,519.35,3663600,519.35], +["2007-09-06",529.36,529.83,518.24,523.52,3625900,523.52], +["2007-09-05",523.40,529.48,522.25,527.80,3312900,527.80], +["2007-09-04",515.02,528.00,514.62,525.15,3693700,525.15], +["2007-08-31",513.10,516.50,511.47,515.25,2977600,515.25], +["2007-08-30",512.36,515.40,510.58,511.40,2651700,511.40], +["2007-08-29",507.84,513.30,507.23,512.88,2549300,512.88], +["2007-08-28",511.53,514.98,505.79,506.40,3273900,506.40], +["2007-08-27",514.43,517.45,511.40,513.26,2325100,513.26], +["2007-08-24",512.61,515.55,508.50,515.00,2472700,515.00], +["2007-08-23",516.00,516.13,507.00,512.19,3076700,512.19], +["2007-08-22",509.96,516.25,509.25,512.75,3252700,512.75], +["2007-08-21",498.94,508.16,497.77,506.61,3610600,506.61], +["2007-08-20",502.46,502.56,496.00,497.92,2697300,497.92], +["2007-08-17",497.44,501.00,491.65,500.04,5479400,500.04], +["2007-08-16",492.02,496.43,480.46,491.52,8645600,491.52], +["2007-08-15",509.00,511.69,496.71,497.55,5409500,497.55], +["2007-08-14",515.72,517.40,508.00,508.60,3633700,508.60], +["2007-08-13",519.54,519.75,513.03,515.50,3179300,515.50], +["2007-08-10",510.18,518.72,505.63,515.75,5875200,515.75], +["2007-08-09",520.80,526.82,514.63,514.73,4846500,514.73], +["2007-08-08",519.34,525.78,517.09,525.78,4068800,525.78], +["2007-08-07",509.75,519.88,509.04,516.02,4264300,516.02], +["2007-08-06",503.00,510.15,502.50,510.00,3651500,510.00], +["2007-08-03",510.05,513.20,503.00,503.00,3176200,503.00], +["2007-08-02",513.72,514.99,509.00,511.01,3154900,511.01], +["2007-08-01",510.50,516.51,508.14,512.94,4421500,512.94], +["2007-07-31",520.23,520.44,510.00,510.00,4270500,510.00], +["2007-07-30",512.92,519.34,510.50,516.11,3963300,516.11], +["2007-07-27",508.53,516.62,505.50,511.89,5509100,511.89], +["2007-07-26",508.74,512.59,498.88,508.00,6883400,508.00], +["2007-07-25",516.98,517.02,505.56,509.76,5545000,509.76], +["2007-07-24",509.30,518.69,507.11,514.00,5572100,514.00], +["2007-07-23",519.01,520.00,512.15,512.51,6356700,512.51], +["2007-07-20",511.90,523.18,509.50,520.12,17772300,520.12], +["2007-07-19",553.46,553.52,542.24,548.59,11127200,548.59], +["2007-07-18",553.89,554.50,543.81,549.50,6080000,549.50], +["2007-07-17",555.04,557.73,552.38,555.00,4328600,555.00], +["2007-07-16",550.30,558.58,549.31,552.99,6599500,552.99], +["2007-07-13",547.91,552.67,547.25,552.16,5237100,552.16], +["2007-07-12",545.86,547.32,540.22,545.33,3441600,545.33], +["2007-07-11",543.61,546.50,540.01,544.47,3309300,544.47], +["2007-07-10",543.79,547.00,541.65,543.34,3856000,543.34], +["2007-07-09",543.00,548.74,540.26,542.56,3729800,542.56], +["2007-07-06",541.25,543.87,538.73,539.40,2747000,539.40], +["2007-07-05",535.56,544.40,532.15,541.63,4942900,541.63], +["2007-07-03",531.06,534.40,527.50,534.34,1871800,534.34], +["2007-07-02",525.49,531.85,524.20,530.38,3487600,530.38], +["2007-06-29",526.02,527.40,519.46,522.70,3880600,522.70], +["2007-06-28",524.88,529.50,523.80,525.01,4168400,525.01], +["2007-06-27",525.00,527.99,519.56,526.29,6123100,526.29], +["2007-06-26",532.73,533.20,526.24,530.26,5689500,530.26], +["2007-06-25",528.98,534.99,523.38,527.42,7925000,527.42], +["2007-06-22",516.42,524.99,516.10,524.98,7203700,524.98], +["2007-06-21",510.98,515.29,506.28,514.11,4409700,514.11], +["2007-06-20",516.96,518.75,509.06,509.97,4338200,509.97], +["2007-06-19",514.01,517.25,511.54,514.31,4355300,514.31], +["2007-06-18",506.18,516.00,504.24,515.20,4835900,515.20], +["2007-06-15",508.19,509.00,501.23,505.89,6174100,505.89], +["2007-06-14",505.38,505.88,501.70,502.84,4621200,502.84], +["2007-06-13",507.09,508.54,498.69,505.24,7034000,505.24], +["2007-06-12",508.71,511.67,503.17,504.77,6419500,504.77], +["2007-06-11",514.02,518.25,510.00,511.34,4647700,511.34], +["2007-06-08",516.20,519.64,509.46,515.49,6358200,515.49], +["2007-06-07",519.75,526.50,512.51,515.06,10630500,515.06], +["2007-06-06",516.75,520.78,515.26,518.25,7886700,518.25], +["2007-06-05",509.75,519.00,506.61,518.84,10447100,518.84], +["2007-06-04",497.91,510.51,497.59,507.07,7101000,507.07], +["2007-06-01",501.00,505.02,497.93,500.40,4799000,500.40], +["2007-05-31",500.56,508.78,497.06,497.91,8924300,497.91], +["2007-05-30",484.50,498.84,483.00,498.60,7245800,498.60], +["2007-05-29",485.00,491.80,484.00,487.11,5218000,487.11], +["2007-05-25",479.70,484.95,477.27,483.52,5348500,483.52], +["2007-05-24",475.15,479.20,471.50,474.33,4173600,474.33], +["2007-05-23",480.82,483.41,473.75,473.97,5060200,473.97], +["2007-05-22",473.00,479.01,473.00,475.86,3839000,475.86], +["2007-05-21",469.53,479.20,466.72,470.60,6159300,470.60], +["2007-05-18",472.03,472.70,469.75,470.32,3695900,470.32], +["2007-05-17",472.46,475.22,470.81,470.96,4660600,470.96], +["2007-05-16",462.00,473.14,459.02,472.61,6554200,472.61], +["2007-05-15",461.96,462.54,457.41,458.00,4119000,458.00], +["2007-05-14",465.48,467.51,460.00,461.78,3872700,461.78], +["2007-05-11",461.83,467.00,461.00,466.74,2944100,466.74], +["2007-05-10",467.04,469.49,461.02,461.47,3686300,461.47], +["2007-05-09",466.15,471.73,463.88,469.25,3889900,469.25], +["2007-05-08",466.13,468.17,464.73,466.81,2905100,466.81], +["2007-05-07",472.14,472.82,466.47,467.27,3020100,467.27], +["2007-05-04",470.12,474.84,465.88,471.12,3950000,471.12], +["2007-05-03",466.22,474.07,465.29,473.23,3594200,473.23], +["2007-05-02",468.65,471.08,465.73,465.78,3062700,465.78], +["2007-05-01",472.19,472.81,464.17,469.00,3658200,469.00], +["2007-04-30",479.15,481.35,471.38,471.38,3641200,471.38], +["2007-04-27",480.07,482.40,478.33,479.01,2925700,479.01], +["2007-04-26",478.10,484.45,477.11,481.18,4124900,481.18], +["2007-04-25",480.00,481.37,476.11,477.99,3966800,477.99], +["2007-04-24",478.61,479.98,475.55,477.53,3694700,477.53], +["2007-04-23",480.10,485.00,478.26,479.08,5674600,479.08], +["2007-04-20",490.52,492.50,482.02,482.48,12161500,482.48], +["2007-04-19",474.50,481.95,469.59,471.65,11009600,471.65], +["2007-04-18",471.26,479.90,469.53,476.01,5670500,476.01], +["2007-04-17",473.80,476.39,471.60,472.80,3210100,472.80], +["2007-04-16",468.46,476.99,468.15,474.27,5077900,474.27], +["2007-04-13",468.45,468.77,463.36,466.29,2794800,466.29], +["2007-04-12",464.00,468.00,462.24,467.39,2707900,467.39], +["2007-04-11",466.06,469.40,462.61,464.53,3812000,464.53], +["2007-04-10",467.09,470.79,465.16,466.50,2979300,466.50], +["2007-04-09",472.98,473.00,465.59,468.21,3062100,468.21], +["2007-04-05",471.30,472.09,469.62,471.51,2715800,471.51], +["2007-04-04",472.14,473.00,469.58,471.02,3778800,471.02], +["2007-04-03",464.05,474.25,464.00,472.60,6501800,472.60], +["2007-04-02",457.76,458.53,452.12,458.53,3448500,458.53], +["2007-03-30",462.10,463.40,456.14,458.16,3380200,458.16], +["2007-03-29",464.55,466.00,455.00,460.92,3988500,460.92], +["2007-03-28",461.87,465.44,460.15,461.88,4591600,461.88], +["2007-03-27",463.55,465.23,460.34,463.62,3741200,463.62], +["2007-03-26",460.55,465.00,455.62,465.00,4710300,465.00], +["2007-03-23",461.45,463.39,457.08,461.83,4111300,461.83], +["2007-03-22",455.61,462.17,452.53,462.04,5680700,462.04], +["2007-03-21",445.30,456.57,445.21,456.55,5798300,456.55], +["2007-03-20",445.79,447.60,443.60,445.28,3421500,445.28], +["2007-03-19",443.25,448.50,440.63,447.23,5197700,447.23], +["2007-03-16",445.65,446.70,439.89,440.85,5659100,440.85], +["2007-03-15",447.86,449.82,443.94,446.19,3944200,446.19], +["2007-03-14",443.23,448.66,439.00,448.00,8016900,448.00], +["2007-03-13",450.11,451.93,442.83,443.03,6377300,443.03], +["2007-03-12",452.57,455.25,451.11,454.75,3465400,454.75], +["2007-03-09",458.00,458.40,450.10,452.96,4977700,452.96], +["2007-03-08",459.22,465.50,454.10,454.72,5362800,454.72], +["2007-03-07",462.69,463.14,454.29,455.64,6534100,455.64], +["2007-03-06",447.47,459.00,447.38,457.55,7533700,457.55], +["2007-03-05",437.02,445.50,437.00,440.95,6355100,440.95], +["2007-03-02",445.11,448.70,438.68,438.68,6583600,438.68], +["2007-03-01",442.67,452.42,440.00,448.23,8685200,448.23], +["2007-02-28",450.41,453.67,443.04,449.45,8032300,449.45], +["2007-02-27",455.00,459.80,447.17,448.77,9312800,448.77], +["2007-02-26",472.83,475.25,463.75,464.93,3969900,464.93], +["2007-02-23",475.75,476.95,467.80,470.62,3882600,470.62], +["2007-02-22",478.69,484.24,474.39,475.85,5743900,475.85], +["2007-02-21",469.84,478.68,467.74,475.86,5640600,475.86], +["2007-02-20",468.47,472.75,464.71,472.10,4067600,472.10], +["2007-02-16",462.80,470.15,462.06,469.94,6177000,469.94], +["2007-02-15",466.00,466.13,460.72,461.47,4042400,461.47], +["2007-02-14",460.00,469.13,459.22,465.93,5698800,465.93], +["2007-02-13",459.15,462.78,457.26,459.10,4062600,459.10], +["2007-02-12",460.68,462.39,455.02,458.29,5754500,458.29], +["2007-02-09",471.65,472.68,461.50,461.89,4858600,461.89], +["2007-02-08",468.05,473.75,465.15,471.03,4076700,471.03], +["2007-02-07",473.82,474.35,468.78,470.01,4119800,470.01], +["2007-02-06",468.10,473.30,467.26,471.48,5321900,471.48], +["2007-02-05",477.50,478.00,466.19,467.16,7206900,467.16], +["2007-02-02",482.61,485.00,477.81,481.50,6286500,481.50], +["2007-02-01",506.00,506.01,481.53,481.75,15658700,481.75], +["2007-01-31",496.49,505.00,495.51,501.50,12206100,501.50], +["2007-01-30",494.00,498.00,491.22,494.32,4180500,494.32], +["2007-01-29",498.00,498.75,490.50,492.47,4775700,492.47], +["2007-01-26",490.93,497.90,487.03,495.84,5496500,495.84], +["2007-01-25",501.00,504.50,485.66,488.09,6368500,488.09], +["2007-01-24",484.45,499.54,483.29,499.07,6059300,499.07], +["2007-01-23",480.79,484.75,477.29,479.05,4665500,479.05], +["2007-01-22",492.50,492.65,478.50,480.84,5404300,480.84], +["2007-01-19",487.98,490.76,486.74,489.75,4978300,489.75], +["2007-01-18",494.52,496.48,487.43,487.83,5932000,487.83], +["2007-01-17",503.39,507.77,494.38,497.28,6699100,497.28], +["2007-01-16",507.55,513.00,503.30,504.28,7568900,504.28], +["2007-01-12",501.99,505.00,500.00,505.00,4473700,505.00], +["2007-01-11",497.20,501.75,496.18,499.72,7208200,499.72], +["2007-01-10",484.43,493.55,482.04,489.46,5968500,489.46], +["2007-01-09",485.45,488.25,481.20,485.50,5381400,485.50], +["2007-01-08",487.69,489.87,482.20,483.58,4754400,483.58], +["2007-01-05",482.50,487.50,478.11,487.19,6872100,487.19], +["2007-01-04",469.00,483.95,468.35,483.26,7887600,483.26], +["2007-01-03",466.00,476.66,461.11,467.59,7706500,467.59], +["2006-12-29",462.10,464.47,459.86,460.48,2559200,460.48], +["2006-12-28",467.12,468.58,462.25,462.56,3116200,462.56], +["2006-12-27",460.00,468.08,459.10,468.03,4231500,468.03], +["2006-12-26",456.52,459.47,454.59,457.53,2074300,457.53], +["2006-12-22",457.50,458.64,452.73,455.58,3988300,455.58], +["2006-12-21",464.18,465.25,452.34,456.20,6953300,456.20], +["2006-12-20",470.00,471.50,462.33,462.90,4367800,462.90], +["2006-12-19",461.72,469.31,458.50,468.63,6587000,468.63], +["2006-12-18",482.51,482.74,460.72,462.80,8016600,462.80], +["2006-12-15",482.64,484.11,479.84,480.30,5190800,480.30], +["2006-12-14",480.25,483.75,477.26,482.12,4748900,482.12], +["2006-12-13",484.69,485.50,477.02,478.99,4662100,478.99], +["2006-12-12",483.85,486.36,480.28,481.78,4181000,481.78], +["2006-12-11",484.92,488.90,483.80,483.93,3263400,483.93], +["2006-12-08",481.94,488.60,480.00,484.11,3974900,484.11], +["2006-12-07",490.23,491.80,482.42,482.64,4664300,482.64], +["2006-12-06",486.96,492.40,484.52,488.71,4450300,488.71], +["2006-12-05",487.40,489.44,484.89,487.00,4103000,487.00], +["2006-12-04",483.00,487.43,479.35,484.85,4899900,484.85], +["2006-12-01",485.98,488.39,478.50,480.80,5631400,480.80], +["2006-11-30",484.19,490.40,481.55,484.81,5577500,484.81], +["2006-11-29",494.24,494.74,482.25,484.65,6315300,484.65], +["2006-11-28",481.13,489.86,477.03,489.50,7797600,489.50], +["2006-11-27",501.37,501.78,484.75,484.75,7324700,484.75], +["2006-11-24",504.50,507.50,504.00,505.00,1732700,505.00], +["2006-11-22",510.97,513.00,505.78,508.01,4500700,508.01], +["2006-11-21",496.54,510.00,495.83,509.65,8427500,509.65], +["2006-11-20",498.40,498.40,492.65,495.05,5124500,495.05], +["2006-11-17",493.25,499.66,493.00,498.79,5511000,498.79], +["2006-11-16",495.00,497.68,492.56,495.90,5092600,495.90], +["2006-11-15",493.43,499.85,491.93,491.93,8370700,491.93], +["2006-11-14",480.70,489.95,480.50,489.30,7223400,489.30], +["2006-11-13",474.90,481.17,474.14,481.03,4341900,481.03], +["2006-11-10",473.78,474.72,470.29,473.55,2796700,473.55], +["2006-11-09",476.50,479.49,471.86,472.63,4879200,472.63], +["2006-11-08",470.35,481.74,468.60,475.00,7965000,475.00], +["2006-11-07",476.95,479.02,471.77,472.57,4897100,472.57], +["2006-11-06",473.77,479.66,472.33,476.95,4991500,476.95], +["2006-11-03",472.23,473.75,465.06,471.80,4907700,471.80], +["2006-11-02",467.50,473.73,466.38,469.91,5236700,469.91], +["2006-11-01",478.76,479.13,465.26,467.50,5426300,467.50], +["2006-10-31",478.06,482.16,473.84,476.39,6285400,476.39], +["2006-10-30",474.82,480.46,470.01,476.57,6563100,476.57], +["2006-10-27",483.90,485.24,472.49,475.20,6604000,475.20], +["2006-10-26",487.68,491.96,484.20,485.10,7031700,485.10], +["2006-10-25",477.49,488.50,475.11,486.60,9187500,486.60], +["2006-10-24",476.28,477.86,471.41,473.31,8660200,473.31], +["2006-10-23",462.28,484.64,460.37,480.78,15104500,480.78], +["2006-10-20",458.99,460.10,453.59,459.67,11647900,459.67], +["2006-10-19",420.23,429.50,419.57,426.06,11503500,426.06], +["2006-10-18",422.99,424.75,417.50,419.31,6017300,419.31], +["2006-10-17",420.30,423.75,416.70,420.64,5211000,420.64], +["2006-10-16",427.70,429.20,421.34,421.75,4319400,421.75], +["2006-10-13",427.76,429.50,425.56,427.30,3622500,427.30], +["2006-10-12",428.56,429.68,424.00,427.44,4844000,427.44], +["2006-10-11",425.02,429.91,423.76,426.50,5635400,426.50], +["2006-10-10",431.56,437.85,422.39,426.65,9788600,426.65], +["2006-10-09",424.80,431.95,423.42,429.00,7583300,429.00], +["2006-10-06",410.22,421.91,409.75,420.50,7336500,420.50], +["2006-10-05",414.70,418.24,410.86,411.81,5789800,411.81], +["2006-10-04",404.97,415.77,403.05,415.70,6661800,415.70], +["2006-10-03",401.29,406.46,398.19,404.04,5464700,404.04], +["2006-10-02",401.90,406.00,400.80,401.44,3651900,401.44], +["2006-09-29",405.13,405.62,401.41,401.90,3310900,401.90], +["2006-09-28",404.08,406.98,400.54,403.58,5107400,403.58], +["2006-09-27",406.30,411.22,402.37,402.92,5876700,402.92], +["2006-09-26",405.50,407.68,401.77,406.87,5289400,406.87], +["2006-09-25",405.58,409.45,402.50,403.98,5737300,403.98], +["2006-09-22",404.98,407.45,401.36,403.78,4649600,403.78], +["2006-09-21",400.30,408.45,399.86,406.85,10692100,406.85], +["2006-09-20",407.10,407.39,394.62,397.00,9147800,397.00], +["2006-09-19",415.46,415.49,392.74,403.81,14292900,403.81], +["2006-09-18",410.00,418.69,409.47,414.69,7106700,414.69], +["2006-09-15",407.48,410.05,406.74,409.88,7838200,409.88], +["2006-09-14",404.30,406.28,401.93,403.98,5366100,403.98], +["2006-09-13",395.15,406.76,395.10,406.57,9768200,406.57], +["2006-09-12",385.00,392.73,384.88,391.90,5442200,391.90], +["2006-09-11",378.26,384.69,377.77,384.09,4529200,384.09], +["2006-09-08",376.72,380.79,376.72,377.85,3083400,377.85], +["2006-09-07",379.39,381.75,377.40,378.49,3842000,378.49], +["2006-09-06",382.10,383.19,379.66,380.14,3724100,380.14], +["2006-09-05",379.87,385.40,377.44,384.36,4074300,384.36], +["2006-09-01",380.99,381.28,377.19,378.60,2672900,378.60], +["2006-08-31",381.49,382.15,378.20,378.53,2959900,378.53], +["2006-08-30",379.21,384.65,378.51,380.75,4044400,380.75], +["2006-08-29",380.78,382.32,377.20,378.95,4460000,378.95], +["2006-08-28",375.61,380.95,375.00,380.95,4164000,380.95], +["2006-08-25",373.08,375.32,372.50,373.26,2466700,373.26], +["2006-08-24",374.44,376.40,372.26,373.73,3482500,373.73], +["2006-08-23",377.64,378.27,372.66,373.43,3642300,373.43], +["2006-08-22",377.73,379.26,374.84,378.29,4164100,378.29], +["2006-08-21",378.10,379.00,375.22,377.30,4023300,377.30], +["2006-08-18",386.31,387.09,380.75,383.36,4952200,383.36], +["2006-08-17",386.39,390.00,383.92,385.80,5080200,385.80], +["2006-08-16",383.48,388.45,382.12,387.72,5853200,387.72], +["2006-08-15",374.11,381.67,372.60,380.97,6698200,380.97], +["2006-08-14",371.50,375.13,368.67,369.43,4968300,369.43], +["2006-08-11",374.40,375.28,368.00,368.50,3766500,368.50], +["2006-08-10",373.88,377.67,372.46,374.20,4261900,374.20], +["2006-08-09",382.80,384.68,376.36,376.94,4311000,376.94], +["2006-08-08",382.82,384.50,379.09,381.00,5743200,381.00], +["2006-08-07",371.50,379.73,371.15,377.95,3946900,377.95], +["2006-08-04",379.56,380.68,371.75,373.85,5095200,373.85], +["2006-08-03",364.98,377.91,363.36,375.39,6327000,375.39], +["2006-08-02",375.60,377.17,365.20,367.23,7097800,367.23], +["2006-08-01",385.11,385.77,375.51,375.51,5463200,375.51], +["2006-07-31",388.00,389.17,383.31,386.60,4595300,386.60], +["2006-07-28",382.00,389.56,381.73,388.12,4083600,388.12], +["2006-07-27",387.37,387.49,377.95,382.40,5641100,382.40], +["2006-07-26",388.20,391.91,383.00,385.50,5531900,385.50], +["2006-07-25",385.02,391.31,383.80,389.36,5761100,389.36], +["2006-07-24",392.82,393.89,381.21,390.90,8086100,390.90], +["2006-07-21",386.14,391.75,377.69,390.11,11754600,390.11], +["2006-07-20",404.28,404.44,385.66,387.12,12538700,387.12], +["2006-07-19",395.01,401.14,394.66,399.00,8518500,399.00], +["2006-07-18",409.75,410.57,397.74,403.05,8536800,403.05], +["2006-07-17",404.63,411.00,403.72,407.89,5811900,407.89], +["2006-07-14",410.33,411.49,398.61,403.50,7552100,403.50], +["2006-07-13",414.00,418.34,406.83,408.83,6924500,408.83], +["2006-07-12",422.09,422.74,416.73,417.25,4906700,417.25], +["2006-07-11",418.51,425.05,413.03,424.56,5971300,424.56], +["2006-07-10",423.44,425.23,416.38,418.20,4436400,418.20], +["2006-07-07",426.05,427.89,415.88,420.45,6041900,420.45], +["2006-07-06",423.38,425.38,421.98,423.19,3687100,423.19], +["2006-07-05",421.52,422.80,415.64,421.46,4985600,421.46], +["2006-07-03",420.04,423.77,419.45,423.20,2156700,423.20], +["2006-06-30",415.60,419.33,412.33,419.33,6258000,419.33], +["2006-06-29",407.99,418.20,405.82,417.81,6658200,417.81], +["2006-06-28",404.01,406.48,401.13,406.11,3710500,406.11], +["2006-06-27",405.71,408.00,401.01,402.32,4107100,402.32], +["2006-06-26",406.75,408.30,403.25,404.22,3551200,404.22], +["2006-06-23",402.76,409.75,400.74,404.86,5314800,404.86], +["2006-06-22",401.58,406.00,388.00,399.95,5911900,399.95], +["2006-06-21",391.06,404.00,389.75,402.13,8744400,402.13], +["2006-06-20",388.03,391.87,386.51,387.17,4039900,387.17], +["2006-06-19",390.85,394.80,386.98,388.14,7633100,388.14], +["2006-06-16",389.10,390.93,388.00,390.70,5304600,390.70], +["2006-06-15",386.62,392.25,383.00,391.00,6785700,391.00], +["2006-06-14",389.83,391.10,378.52,384.39,7772000,384.39], +["2006-06-13",380.90,387.00,378.12,386.52,7659100,386.52], +["2006-06-12",388.34,390.49,381.00,381.54,5019100,381.54], +["2006-06-09",392.19,395.43,385.35,386.57,6157500,386.57], +["2006-06-08",387.75,394.27,378.59,393.30,10359500,393.30], +["2006-06-07",393.24,394.86,386.50,386.51,8911300,386.51], +["2006-06-06",376.58,390.00,376.30,389.99,10259800,389.99], +["2006-06-05",376.18,381.45,374.15,374.44,5558500,374.44], +["2006-06-02",386.84,387.08,377.45,379.44,6386400,379.44], +["2006-06-01",373.54,382.99,371.60,382.62,6278000,382.62], +["2006-05-31",373.80,378.25,366.78,371.82,7981300,371.82], +["2006-05-30",378.28,381.00,371.45,371.94,4316000,371.94], +["2006-05-26",384.55,385.88,380.03,381.35,3667000,381.35], +["2006-05-25",379.08,383.00,372.31,382.99,8194600,382.99], +["2006-05-24",377.35,383.44,371.61,381.25,9553800,381.25], +["2006-05-23",374.21,383.88,373.56,375.58,8983000,375.58], +["2006-05-22",367.85,373.03,365.25,370.95,8604400,370.95], +["2006-05-19",373.28,374.50,360.57,370.02,11398200,370.02], +["2006-05-18",378.78,381.81,370.71,370.99,5835000,370.99], +["2006-05-17",370.61,379.84,370.22,374.50,10643800,374.50], +["2006-05-16",375.99,376.86,369.89,371.30,6491100,371.30], +["2006-05-15",375.93,380.15,368.25,376.20,8590100,376.20], +["2006-05-12",383.54,384.87,373.55,374.13,10087600,374.13], +["2006-05-11",403.42,404.71,384.98,387.00,8892800,387.00], +["2006-05-10",408.31,411.71,401.86,402.98,6187200,402.98], +["2006-05-09",395.70,409.00,393.75,408.80,9140600,408.80], +["2006-05-08",395.11,397.12,390.05,394.78,5118600,394.78], +["2006-05-05",397.60,400.68,391.78,394.30,6065000,394.30], +["2006-05-04",395.03,398.87,392.21,394.75,4652000,394.75], +["2006-05-03",396.35,401.50,390.88,394.17,8072200,394.17], +["2006-05-02",401.08,402.49,388.40,394.80,13104300,394.80], +["2006-05-01",418.47,419.44,398.55,398.90,10361200,398.90], +["2006-04-28",418.63,425.73,416.30,417.94,7421300,417.94], +["2006-04-27",422.91,426.91,419.39,420.03,8337900,420.03], +["2006-04-26",427.74,430.04,423.53,425.97,7277800,425.97], +["2006-04-25",439.63,441.04,426.00,427.16,9569000,427.16], +["2006-04-24",439.40,444.70,436.52,440.50,8836400,440.50], +["2006-04-21",448.90,450.72,436.17,437.10,22551300,437.10], +["2006-04-20",411.01,416.00,408.20,415.00,12271500,415.00], +["2006-04-19",412.57,413.64,406.73,410.50,6781700,410.50], +["2006-04-18",407.93,409.83,401.50,404.24,8137600,404.24], +["2006-04-17",403.45,412.50,400.84,406.82,8259500,406.82], +["2006-04-13",408.63,409.76,400.50,402.16,6552900,402.16], +["2006-04-12",409.00,411.33,405.19,408.95,6017000,408.95], +["2006-04-11",416.42,419.10,406.22,409.66,11107200,409.66], +["2006-04-10",407.08,417.17,405.25,416.38,9320100,416.38], +["2006-04-07",412.41,412.85,404.02,406.16,7025900,406.16], +["2006-04-06",406.49,413.89,405.43,411.18,8598500,411.18], +["2006-04-05",408.20,414.57,402.82,407.99,13410500,407.99], +["2006-04-04",389.90,404.90,388.14,404.34,15715700,404.34], +["2006-04-03",389.53,392.47,387.93,389.70,8122700,389.70], +["2006-03-31",388.74,391.87,384.03,390.00,36521400,390.00], +["2006-03-30",389.19,393.50,383.61,388.44,14711700,388.44], +["2006-03-29",379.94,399.00,379.51,394.98,19027500,394.98], +["2006-03-28",371.71,377.86,371.17,377.20,8945800,377.20], +["2006-03-27",367.09,371.71,365.00,369.69,7023700,369.69], +["2006-03-24",368.62,370.09,362.51,365.80,15180600,365.80], +["2006-03-23",342.35,345.75,340.20,341.89,7434700,341.89], +["2006-03-22",339.75,344.10,337.50,340.22,7596000,340.22], +["2006-03-21",350.01,351.66,339.08,339.92,9831100,339.92], +["2006-03-20",342.34,350.09,341.54,348.19,10407600,348.19], +["2006-03-17",338.80,341.78,334.93,339.79,8551700,339.79], +["2006-03-16",348.61,348.75,337.90,338.77,10016700,338.77], +["2006-03-15",350.77,352.30,340.53,344.50,12768800,344.50], +["2006-03-14",337.14,352.37,332.62,351.16,18450700,351.16], +["2006-03-13",340.93,346.10,335.45,337.06,13642400,337.06], +["2006-03-10",343.50,344.50,331.55,337.50,19325600,337.50], +["2006-03-09",355.39,358.53,341.50,343.00,13910400,343.00], +["2006-03-08",353.93,360.03,350.54,353.88,11745600,353.88], +["2006-03-07",365.02,368.45,358.15,364.45,10378800,364.45], +["2006-03-06",380.91,383.40,367.14,368.10,8939700,368.10], +["2006-03-03",384.30,387.24,375.76,378.18,11962000,378.18], +["2006-03-02",364.28,381.10,362.20,376.45,18330300,376.45], +["2006-03-01",368.56,369.45,361.30,364.80,12061200,364.80], +["2006-02-28",393.20,397.54,338.51,362.62,39437600,362.62], +["2006-02-27",381.27,391.70,380.28,390.38,10212200,390.38], +["2006-02-24",377.30,380.07,373.49,377.40,6484300,377.40], +["2006-02-23",365.61,381.24,365.39,378.07,12551600,378.07], +["2006-02-22",367.15,368.95,363.86,365.49,6476200,365.49], +["2006-02-21",366.44,373.54,365.11,366.59,8686000,366.59], +["2006-02-17",369.86,372.14,363.62,368.75,14320200,368.75], +["2006-02-16",345.67,367.00,344.49,366.46,21315500,366.46], +["2006-02-15",341.27,346.00,337.83,342.38,12947000,342.38], +["2006-02-14",345.33,351.69,342.40,343.32,14654000,343.32], +["2006-02-13",346.64,350.60,341.89,345.70,19717800,345.70], +["2006-02-10",361.95,364.50,353.14,362.61,15223500,362.61], +["2006-02-09",371.20,374.40,356.11,358.77,11912400,358.77], +["2006-02-08",368.48,370.69,354.67,369.08,20804100,369.08], +["2006-02-07",382.99,383.70,363.35,367.92,16630200,367.92], +["2006-02-06",385.31,389.90,379.56,385.10,8940400,385.10], +["2006-02-03",393.62,393.90,372.57,381.55,18281800,381.55], +["2006-02-02",403.82,406.50,395.98,396.04,11807700,396.04], +["2006-02-01",389.03,402.00,387.52,401.78,27122500,401.78], +["2006-01-31",430.57,439.60,423.97,432.66,22066000,432.66], +["2006-01-30",429.23,433.28,425.00,426.82,8588900,426.82], +["2006-01-27",435.00,438.22,428.98,433.49,8452200,433.49], +["2006-01-26",439.54,439.99,423.56,434.27,12926100,434.27], +["2006-01-25",451.26,454.23,429.22,433.00,18739800,433.00], +["2006-01-24",436.03,444.95,434.48,443.03,15464600,443.03], +["2006-01-23",407.38,428.39,405.73,427.50,22741400,427.50], +["2006-01-20",438.70,440.03,394.74,399.46,41116700,399.46], +["2006-01-19",451.17,453.49,433.00,436.45,14537300,436.45], +["2006-01-18",447.30,457.36,443.25,444.91,20485700,444.91], +["2006-01-17",463.06,469.90,462.53,467.11,8270300,467.11], +["2006-01-13",464.31,466.89,461.61,466.25,7656600,466.25], +["2006-01-12",473.72,474.99,461.50,463.63,10125300,463.63], +["2006-01-11",471.27,475.11,469.18,471.63,9007400,471.63], +["2006-01-10",464.42,470.25,462.04,469.76,9097100,469.76], +["2006-01-09",466.41,473.40,460.94,466.90,12791900,466.90], +["2006-01-06",456.87,470.50,453.24,465.66,17756900,465.66], +["2006-01-05",446.00,451.55,441.50,451.24,10808300,451.24], +["2006-01-04",443.90,448.96,439.75,445.24,15286400,445.24], +["2006-01-03",422.52,435.67,418.22,435.23,13121200,435.23], +["2005-12-30",417.27,418.21,413.74,414.86,7587100,414.86], +["2005-12-29",427.98,428.73,419.17,420.15,6945800,420.15], +["2005-12-28",424.34,427.78,421.26,426.69,7117900,426.69], +["2005-12-27",431.86,431.86,422.76,424.64,6702800,424.64], +["2005-12-23",432.15,432.50,428.78,430.93,4595100,430.93], +["2005-12-22",431.77,432.86,425.93,432.04,7546600,432.04], +["2005-12-21",433.55,436.86,420.71,426.33,11221900,426.33], +["2005-12-20",427.86,432.20,424.67,429.74,10084700,429.74], +["2005-12-19",432.20,446.21,420.11,424.60,21936800,424.60], +["2005-12-16",425.34,432.50,422.75,430.15,16330500,430.15], +["2005-12-15",419.11,423.14,416.50,422.55,6045800,422.55], +["2005-12-14",417.04,419.73,415.49,418.96,6630400,418.96], +["2005-12-13",412.50,418.00,411.64,417.49,8157000,417.49], +["2005-12-12",414.63,415.21,409.95,412.61,6950100,412.61], +["2005-12-09",415.00,415.78,408.56,409.20,7643400,409.20], +["2005-12-08",405.30,410.65,402.64,410.65,8910100,410.65], +["2005-12-07",406.16,406.70,399.01,404.22,11665900,404.22], +["2005-12-06",408.70,416.41,401.70,404.54,15114700,404.54], +["2005-12-05",417.00,417.50,404.28,405.85,10289400,405.85], +["2005-12-02",416.94,419.53,413.86,417.70,7543500,417.70], +["2005-12-01",409.20,415.44,408.29,414.09,9744900,414.09], +["2005-11-30",404.26,408.45,395.56,404.91,15596600,404.91], +["2005-11-29",424.46,426.40,402.14,403.54,21495800,403.54], +["2005-11-28",429.82,431.24,422.44,423.48,11008400,423.48], +["2005-11-25",425.78,428.75,425.30,428.62,4840100,428.62], +["2005-11-23",417.04,424.72,415.78,422.86,10085000,422.86], +["2005-11-22",408.65,417.31,406.23,416.47,9596000,416.47], +["2005-11-21",399.17,409.98,393.49,409.36,10335100,409.36], +["2005-11-18",403.49,404.50,399.85,400.21,7025700,400.21], +["2005-11-17",401.80,403.81,399.53,403.45,9212200,403.45], +["2005-11-16",396.20,398.85,394.11,398.15,8695200,398.15], +["2005-11-15",394.38,397.00,390.95,392.80,8624900,392.80], +["2005-11-14",392.12,398.22,391.53,396.97,7807900,396.97], +["2005-11-11",395.12,396.90,388.85,390.40,7063900,390.40], +["2005-11-10",378.36,391.35,377.43,391.10,9128700,391.10], +["2005-11-09",386.67,388.29,378.03,379.15,10466900,379.15], +["2005-11-08",394.25,395.59,388.58,389.90,7897500,389.90], +["2005-11-07",395.10,397.47,392.15,395.03,9591500,395.03], +["2005-11-04",389.98,391.79,385.45,390.43,8824900,390.43], +["2005-11-03",382.41,386.58,381.38,385.95,7448400,385.95], +["2005-11-02",381.70,385.00,377.17,379.68,10565400,379.68], +["2005-11-01",371.86,383.90,369.01,379.38,16356100,379.38], +["2005-10-31",360.24,374.75,359.51,372.14,14342900,372.14], +["2005-10-28",355.27,358.95,355.02,358.17,5903500,358.17], +["2005-10-27",356.60,357.09,351.68,353.06,5134400,353.06], +["2005-10-26",346.28,356.00,346.19,355.44,8907500,355.44], +["2005-10-25",345.78,347.40,342.86,346.91,6878300,346.91], +["2005-10-24",343.37,349.30,342.19,348.65,9431700,348.65], +["2005-10-21",345.80,346.43,333.00,339.90,22892400,339.90], +["2005-10-20",309.99,311.13,301.21,303.20,13911700,303.20], +["2005-10-19",304.00,309.87,303.96,308.70,7010700,308.70], +["2005-10-18",304.96,307.96,302.74,303.28,7077800,303.28], +["2005-10-17",297.50,305.20,294.56,305.00,7566700,305.00], +["2005-10-14",299.90,300.23,292.54,296.14,8519100,296.14], +["2005-10-13",302.00,302.00,290.68,297.44,10567700,297.44], +["2005-10-12",305.20,307.19,299.00,300.97,9306200,300.97], +["2005-10-11",310.61,312.65,304.86,306.10,8542600,306.10], +["2005-10-10",313.31,314.82,309.15,310.65,5572200,310.65], +["2005-10-07",314.79,316.67,310.54,312.99,6770300,312.99], +["2005-10-06",314.14,314.48,310.09,312.75,7993800,312.75], +["2005-10-05",312.69,314.90,308.00,310.71,8328400,310.71], +["2005-10-04",319.95,321.28,310.74,311.00,9144300,311.00], +["2005-10-03",313.63,320.11,312.79,318.68,9160300,318.68], +["2005-09-30",314.22,317.50,312.29,316.46,9151300,316.46], +["2005-09-29",306.68,310.72,306.08,309.62,5613800,309.62], +["2005-09-28",314.22,315.10,305.60,306.00,7997400,306.00], +["2005-09-27",314.95,318.41,313.38,313.94,6873100,313.94], +["2005-09-26",319.50,320.95,312.56,314.28,9894400,314.28], +["2005-09-23",313.00,317.21,312.59,315.36,8483800,315.36], +["2005-09-22",311.50,319.22,310.17,311.37,13006400,311.37], +["2005-09-21",308.41,313.76,305.96,311.90,10119700,311.90], +["2005-09-20",306.15,311.30,305.23,307.91,9351000,307.91], +["2005-09-19",301.00,306.00,300.71,303.79,5761900,303.79], +["2005-09-16",304.02,304.50,299.87,300.20,7579800,300.20], +["2005-09-15",299.52,306.75,297.91,302.62,15466200,302.62], +["2005-09-14",308.73,313.28,300.30,303.00,11275800,303.00], +["2005-09-13",309.00,315.53,306.17,311.68,10299900,311.68], +["2005-09-12",301.75,311.42,301.00,309.74,10386500,309.74], +["2005-09-09",297.28,299.10,296.56,299.09,4390500,299.09], +["2005-09-08",294.83,299.28,293.36,295.39,6613300,295.39], +["2005-09-07",285.89,295.50,285.28,294.87,7499500,294.87], +["2005-09-06",289.00,289.39,286.80,287.11,4212300,287.11], +["2005-09-02",286.51,289.99,286.44,288.45,3434500,288.45], +["2005-09-01",285.91,287.50,285.00,286.25,2742100,286.25], +["2005-08-31",288.23,288.50,284.36,286.00,5034000,286.00], +["2005-08-30",287.39,289.51,285.88,287.27,4792000,287.27], +["2005-08-29",282.24,289.12,282.24,288.45,5903000,288.45], +["2005-08-26",283.48,285.02,282.66,283.58,3755300,283.58], +["2005-08-25",282.55,284.00,279.97,282.59,4376600,282.59], +["2005-08-24",277.57,284.75,276.45,282.57,8593100,282.57], +["2005-08-23",276.16,279.74,274.12,279.58,5821700,279.58], +["2005-08-22",281.24,281.47,273.35,274.01,6813000,274.01], +["2005-08-19",280.99,281.45,279.62,280.00,5542900,280.00], +["2005-08-18",275.91,280.50,275.00,279.99,11872800,279.99], +["2005-08-17",285.51,286.57,284.00,285.10,3883300,285.10], +["2005-08-16",284.88,287.79,283.34,285.65,7109200,285.65], +["2005-08-15",289.80,292.77,283.77,284.00,8174700,284.00], +["2005-08-12",283.36,290.20,281.64,289.72,6585900,289.72], +["2005-08-11",285.89,286.58,280.62,284.05,7514900,284.05], +["2005-08-10",291.30,292.33,284.88,285.68,6879000,285.68], +["2005-08-09",291.96,292.68,288.51,291.57,5779300,291.57], +["2005-08-08",293.60,295.65,290.49,291.25,4481800,291.25], +["2005-08-05",297.50,298.51,291.31,292.35,5939700,292.35], +["2005-08-04",295.55,299.00,295.25,297.73,5236500,297.73], +["2005-08-03",298.00,299.72,295.60,297.30,5930600,297.30], +["2005-08-02",291.60,299.52,291.12,299.19,7290200,299.19], +["2005-08-01",288.12,292.50,288.10,291.61,5662400,291.61], +["2005-07-29",292.14,292.84,286.99,287.76,8363300,287.76], +["2005-07-28",297.41,297.41,293.28,293.50,5925600,293.50], +["2005-07-27",297.74,298.23,292.40,296.93,7217900,296.93], +["2005-07-26",295.01,298.00,292.09,296.09,9816900,296.09], +["2005-07-25",302.39,303.29,294.96,295.85,9658800,295.85], +["2005-07-22",306.37,309.25,296.33,302.40,23386800,302.40], +["2005-07-21",314.05,317.80,311.21,313.94,19789400,313.94], +["2005-07-20",305.57,312.61,301.80,312.00,14310400,312.00], +["2005-07-19",302.10,310.35,301.80,309.90,12621400,309.90], +["2005-07-18",300.00,301.90,297.75,299.54,6207800,299.54], +["2005-07-15",301.24,303.40,299.78,301.19,8438400,301.19], +["2005-07-14",305.34,306.75,300.07,300.89,10667700,300.89], +["2005-07-13",292.51,299.24,292.10,298.86,11437900,298.86], +["2005-07-12",293.39,294.40,290.93,291.78,5864900,291.78], +["2005-07-11",296.40,296.60,291.02,293.35,8390300,293.35], +["2005-07-08",296.25,297.50,294.05,296.23,7457600,296.23], +["2005-07-07",289.39,295.80,288.51,295.54,10672100,295.54], +["2005-07-06",297.30,297.60,291.38,291.52,8000300,291.52], +["2005-07-05",292.10,295.98,290.23,295.71,7494000,295.71], +["2005-07-01",295.04,296.24,289.22,291.25,9227600,291.25], +["2005-06-30",294.34,298.93,291.04,294.15,15094400,294.15], +["2005-06-29",302.50,304.38,292.15,292.72,18298700,292.72], +["2005-06-28",306.28,309.25,302.00,302.00,19036500,302.00], +["2005-06-27",298.90,304.47,293.86,304.10,17802900,304.10], +["2005-06-24",290.90,298.00,289.58,297.25,17771200,297.25], +["2005-06-23",288.00,294.81,286.50,289.71,14056400,289.71], +["2005-06-22",289.67,292.32,288.67,289.30,10474000,289.30], +["2005-06-21",288.07,290.30,284.97,287.84,15132300,287.84], +["2005-06-20",276.09,287.67,271.73,286.70,21024700,286.70], +["2005-06-17",279.00,280.30,275.90,280.30,10434400,280.30], +["2005-06-16",274.26,278.30,273.07,277.44,12462400,277.44], +["2005-06-15",275.00,277.30,267.43,274.80,20883100,274.80], +["2005-06-14",278.59,281.24,277.75,278.35,10091900,278.35], +["2005-06-13",279.82,284.19,276.52,282.75,12803200,282.75], +["2005-06-10",286.99,287.28,280.02,282.50,12696600,282.50], +["2005-06-09",284.72,288.50,280.56,286.31,16441100,286.31], +["2005-06-08",292.85,293.19,278.00,279.56,25700900,279.56], +["2005-06-07",297.10,299.59,290.30,293.12,24323000,293.12], +["2005-06-06",282.39,293.75,281.83,290.94,22525900,290.94], +["2005-06-03",286.79,289.30,277.41,280.26,18782300,280.26], +["2005-06-02",288.73,289.78,284.60,287.90,17974100,287.90], +["2005-06-01",283.20,292.89,282.02,288.00,35191700,288.00], +["2005-05-31",269.43,278.40,269.37,277.27,22236800,277.27], +["2005-05-27",260.46,266.05,259.25,266.00,12184100,266.00], +["2005-05-26",260.96,263.76,258.30,259.20,13546600,259.20], +["2005-05-25",252.73,260.98,250.63,260.81,18057900,260.81], +["2005-05-24",256.96,265.44,253.50,256.00,29043100,256.00], +["2005-05-23",243.16,258.10,242.71,255.45,21388300,255.45], +["2005-05-20",241.21,241.67,239.65,241.61,8163500,241.61], +["2005-05-19",240.34,241.17,238.27,239.18,9716500,239.18], +["2005-05-18",233.61,239.97,233.52,239.16,12312000,239.16], +["2005-05-17",230.56,233.45,230.20,233.13,7808900,233.13], +["2005-05-16",229.68,231.62,228.57,231.05,5681400,231.05], +["2005-05-13",229.18,231.09,227.32,229.24,7415500,229.24], +["2005-05-12",230.81,232.23,228.20,228.72,8948200,228.72], +["2005-05-11",228.97,231.98,227.93,231.29,11478800,231.29], +["2005-05-10",225.47,227.80,224.72,227.80,6345800,227.80], +["2005-05-09",228.00,228.50,225.43,226.02,5536800,226.02], +["2005-05-06",228.40,229.25,226.47,228.02,6763900,228.02], +["2005-05-05",228.62,228.62,225.88,226.98,7509600,226.98], +["2005-05-04",227.23,229.88,227.00,228.50,12083500,228.50], +["2005-05-03",221.85,228.15,221.32,226.19,17780200,226.19], +["2005-05-02",222.05,223.70,220.21,222.29,9767400,222.29], +["2005-04-29",221.91,222.25,217.82,220.00,9170200,220.00], +["2005-04-28",219.50,222.08,217.71,219.45,8682800,219.45], +["2005-04-27",217.99,220.85,216.74,219.78,10264800,219.78], +["2005-04-26",220.22,222.00,218.29,218.75,17272000,218.75], +["2005-04-25",217.82,224.74,217.52,223.53,19840000,223.53], +["2005-04-22",222.90,224.00,214.26,215.81,33205100,215.81], +["2005-04-21",200.42,205.00,199.32,204.22,17751900,204.22], +["2005-04-20",198.58,200.50,195.91,198.10,15451500,198.10], +["2005-04-19",189.33,192.00,188.03,191.40,8430000,191.40], +["2005-04-18",184.58,187.88,183.49,186.97,6550300,186.97], +["2005-04-15",190.10,190.34,184.66,185.00,11577400,185.00], +["2005-04-14",193.27,194.36,190.10,191.45,6152700,191.45], +["2005-04-13",193.47,194.32,189.73,192.93,6555800,192.93], +["2005-04-12",193.00,194.42,189.41,193.96,7319600,193.96], +["2005-04-11",193.09,194.80,192.32,193.23,5410500,193.23], +["2005-04-08",193.69,195.10,191.45,192.05,5116600,192.05], +["2005-04-07",188.78,194.62,188.64,193.76,9692200,193.76], +["2005-04-06",189.24,189.65,187.58,189.22,5252600,189.22], +["2005-04-05",187.73,190.26,187.57,188.57,8736700,188.57], +["2005-04-04",179.95,185.32,179.84,185.29,8076400,185.29], +["2005-04-01",181.76,182.95,179.99,180.04,6182000,180.04], +["2005-03-31",177.95,181.39,177.64,180.51,6768600,180.51], +["2005-03-30",180.64,181.45,179.60,180.45,6236100,180.45], +["2005-03-29",181.05,183.28,178.07,179.57,6473000,179.57], +["2005-03-28",181.68,184.80,180.95,181.42,8738000,181.42], +["2005-03-24",180.70,180.86,179.20,179.25,3705200,179.25], +["2005-03-23",177.97,180.24,177.97,178.98,4845000,178.98], +["2005-03-22",181.18,181.94,177.85,178.60,5631700,178.60], +["2005-03-21",179.27,182.17,177.25,180.88,7483700,180.88], +["2005-03-18",178.81,180.40,178.31,180.04,7090000,180.04], +["2005-03-17",177.13,179.64,175.80,179.29,8260600,179.29], +["2005-03-16",176.70,178.61,175.01,175.60,7106300,175.60], +["2005-03-15",175.30,180.00,174.21,178.61,10422100,178.61], +["2005-03-14",178.33,178.40,172.57,174.99,11146600,174.99], +["2005-03-11",180.44,180.95,177.15,177.80,8028300,177.80], +["2005-03-10",181.01,181.20,177.40,179.98,10960500,179.98], +["2005-03-09",184.21,184.65,180.16,181.35,11360400,181.35], +["2005-03-08",189.10,189.85,184.97,185.20,8046100,185.20], +["2005-03-07",187.78,189.60,187.03,188.81,8667400,188.81], +["2005-03-04",186.70,187.25,185.07,185.90,6774100,185.90], +["2005-03-03",186.13,187.75,184.31,187.01,7608600,187.01], +["2005-03-02",185.95,187.67,184.36,185.18,7285500,185.18], +["2005-03-01",189.29,189.75,182.00,186.06,9311200,186.06], +["2005-02-28",186.00,189.87,185.85,187.99,7818400,187.99], +["2005-02-25",189.15,189.92,185.51,185.87,9973500,185.87], +["2005-02-24",183.37,189.85,182.23,188.89,25814300,188.89], +["2005-02-23",193.30,194.48,188.66,193.95,15586000,193.95], +["2005-02-22",196.50,198.90,190.39,191.37,13483700,191.37], +["2005-02-18",198.51,198.84,196.66,197.95,8485900,197.95], +["2005-02-17",197.83,199.75,196.81,197.90,10414400,197.90], +["2005-02-16",194.70,199.33,194.30,198.41,16532300,198.41], +["2005-02-15",193.60,199.84,193.08,195.23,25782800,195.23], +["2005-02-14",182.85,193.08,181.00,192.99,38562200,192.99], +["2005-02-11",186.66,192.32,186.07,187.40,13116000,187.40], +["2005-02-10",191.97,192.21,185.25,187.98,18982700,187.98], +["2005-02-09",200.76,201.60,189.46,191.58,17171500,191.58], +["2005-02-08",196.96,200.02,194.53,198.64,11480000,198.64], +["2005-02-07",205.26,206.40,195.51,196.03,12960400,196.03], +["2005-02-04",206.47,207.75,202.60,204.36,14819300,204.36], +["2005-02-03",205.99,213.37,205.81,210.86,12988100,210.86], +["2005-02-02",215.55,216.80,203.66,205.96,32799300,205.96], +["2005-02-01",194.38,196.66,190.63,191.90,18839000,191.90], +["2005-01-31",193.69,196.36,191.72,195.62,9596700,195.62], +["2005-01-28",190.02,194.70,186.34,190.34,12208200,190.34], +["2005-01-27",188.76,188.86,185.20,188.08,6627400,188.08], +["2005-01-26",179.27,189.41,179.15,189.24,12307900,189.24], +["2005-01-25",181.94,182.24,176.29,177.12,10659200,177.12], +["2005-01-24",188.69,189.33,180.32,180.72,14022700,180.72], +["2005-01-21",194.54,195.36,188.12,188.28,9258400,188.28], +["2005-01-20",192.50,196.25,192.00,193.92,9001600,193.92], +["2005-01-19",204.65,205.30,196.71,197.30,11257700,197.30], +["2005-01-18",200.97,205.02,198.66,203.90,13172600,203.90], +["2005-01-14",196.00,200.01,194.13,199.97,9640300,199.97], +["2005-01-13",195.38,197.39,194.05,195.33,6849400,195.33], +["2005-01-12",194.33,195.93,190.50,195.38,8177800,195.38], +["2005-01-11",195.62,197.71,193.18,193.54,6958700,193.54], +["2005-01-10",194.50,198.10,191.83,195.06,7539600,195.06], +["2005-01-07",190.64,194.25,188.78,193.85,9662900,193.85], +["2005-01-06",195.08,195.90,187.72,188.55,10387100,188.55], +["2005-01-05",193.45,196.90,192.23,193.51,8236600,193.51], +["2005-01-04",201.40,202.93,193.48,194.50,13755900,194.50], +["2005-01-03",197.40,203.64,195.46,202.71,15844200,202.71], +["2004-12-31",199.23,199.88,192.56,192.79,7668500,192.79], +["2004-12-30",192.97,198.23,191.85,197.60,5904300,197.60], +["2004-12-29",191.78,193.52,191.78,192.90,2678100,192.90], +["2004-12-28",192.11,193.55,191.01,192.76,4145800,192.76], +["2004-12-27",189.15,193.30,189.10,191.91,6104100,191.91], +["2004-12-23",187.45,188.60,186.00,187.90,3614600,187.90], +["2004-12-22",183.90,186.85,183.01,186.30,3907000,186.30], +["2004-12-21",186.31,187.88,183.40,183.75,5516300,183.75], +["2004-12-20",182.00,188.46,181.87,185.02,9834500,185.02], +["2004-12-17",176.76,180.50,176.55,180.08,7386200,180.08], +["2004-12-16",176.95,180.49,175.95,176.47,8572800,176.47], +["2004-12-15",177.99,180.69,176.66,179.78,11471000,179.78], +["2004-12-14",171.00,178.82,169.60,178.69,11088400,178.69], +["2004-12-13",172.17,173.18,169.45,170.45,4818600,170.45], +["2004-12-10",173.43,174.88,171.29,171.65,4317200,171.65], +["2004-12-09",170.25,173.50,168.47,173.43,7654000,173.43], +["2004-12-08",170.35,173.68,168.73,169.98,7541800,169.98], +["2004-12-07",176.00,176.20,170.55,171.43,6870900,171.43], +["2004-12-06",179.13,180.70,176.02,176.29,6254000,176.29], +["2004-12-03",179.95,181.06,177.60,180.40,5869200,180.40], +["2004-12-02",179.90,181.51,178.55,179.40,6260900,179.40], +["2004-12-01",181.95,182.50,179.55,179.96,7864100,179.96], +["2004-11-30",180.71,183.00,180.25,181.98,7700000,181.98], +["2004-11-29",180.36,182.95,177.51,181.05,10666600,181.05], +["2004-11-26",175.80,180.03,175.32,179.39,6480100,179.39], +["2004-11-24",174.82,177.21,172.51,174.76,15281000,174.76], +["2004-11-23",167.97,170.83,166.50,167.52,12413300,167.52], +["2004-11-22",164.47,169.50,161.31,165.10,12368200,165.10], +["2004-11-19",169.10,169.98,166.52,169.40,8769300,169.40], +["2004-11-18",170.29,174.42,165.73,167.54,16629600,167.54], +["2004-11-17",169.02,177.50,169.00,172.50,18132900,172.50], +["2004-11-16",177.50,179.47,170.83,172.54,20917400,172.54], +["2004-11-15",180.45,188.32,178.75,184.87,11901500,184.87], +["2004-11-12",185.23,189.80,177.40,182.00,16746100,182.00], +["2004-11-11",169.13,183.75,167.57,183.02,14985500,183.02], +["2004-11-10",170.67,172.52,166.33,167.86,10644000,167.86], +["2004-11-09",174.10,175.20,165.27,168.70,11064200,168.70], +["2004-11-08",170.93,175.44,169.40,172.55,11191800,172.55], +["2004-11-05",181.98,182.30,168.55,169.35,19833100,169.35], +["2004-11-04",188.44,190.40,183.35,184.70,14409600,184.70], +["2004-11-03",198.18,201.60,190.75,191.67,13888700,191.67], +["2004-11-02",198.78,199.25,193.34,194.87,11346300,194.87], +["2004-11-01",193.55,197.67,191.27,196.03,12224900,196.03], +["2004-10-29",198.89,199.95,190.60,190.64,21162500,190.64], +["2004-10-28",186.68,194.39,185.60,193.30,14846800,193.30], +["2004-10-27",182.72,189.52,181.77,185.97,13356500,185.97], +["2004-10-26",186.34,192.64,180.00,181.80,22307100,181.80], +["2004-10-25",176.40,194.43,172.55,187.40,32764200,187.40], +["2004-10-22",170.54,180.17,164.08,172.43,36891900,172.43], +["2004-10-21",144.40,150.13,141.62,149.38,14589500,149.38], +["2004-10-20",148.03,148.99,139.60,140.49,11372700,140.49], +["2004-10-19",150.50,152.40,147.35,147.94,9064000,147.94], +["2004-10-18",143.20,149.20,141.21,149.16,7025200,149.16], +["2004-10-15",144.93,145.50,141.95,144.11,6604000,144.11], +["2004-10-14",141.01,142.38,138.56,142.00,5226300,142.00], +["2004-10-13",143.32,143.55,140.08,140.90,9893000,140.90], +["2004-10-12",134.44,137.61,133.40,137.40,5838600,137.40], +["2004-10-11",137.00,138.86,133.85,135.26,5241300,135.26], +["2004-10-08",138.72,139.68,137.02,137.73,5540300,137.73], +["2004-10-07",136.92,139.88,136.55,138.85,7064600,138.85], +["2004-10-06",137.55,138.45,136.00,137.08,6697400,137.08], +["2004-10-05",134.66,138.53,132.24,138.37,7494100,138.37], +["2004-10-04",135.25,136.87,134.03,135.06,6517900,135.06], +["2004-10-01",130.80,134.24,128.90,132.58,7570000,132.58], +["2004-09-30",129.90,132.30,129.00,129.60,6885900,129.60], +["2004-09-29",126.70,135.02,126.23,131.08,15273500,131.08], +["2004-09-28",121.30,127.40,120.21,126.86,8473000,126.86], +["2004-09-27",119.56,120.88,117.80,118.26,3536600,118.26], +["2004-09-24",120.94,124.10,119.76,119.83,4566300,119.83], +["2004-09-23",118.84,122.63,117.02,120.82,4272100,120.82], +["2004-09-22",117.40,119.67,116.81,118.38,3794400,118.38], +["2004-09-21",119.81,120.42,117.51,117.84,3618000,117.84], +["2004-09-20",116.95,121.60,116.77,119.36,5319700,119.36], +["2004-09-17",114.42,117.49,113.55,117.49,4741000,117.49], +["2004-09-16",112.34,115.80,111.65,113.97,4637800,113.97], +["2004-09-15",110.56,114.23,110.20,112.00,5361900,112.00], +["2004-09-14",107.45,112.00,106.79,111.49,5419900,111.49], +["2004-09-13",106.63,108.41,106.46,107.50,3926000,107.50], +["2004-09-10",101.60,106.56,101.30,105.33,4353800,105.33], +["2004-09-09",102.53,102.71,101.00,102.31,2032900,102.31], +["2004-09-08",100.74,103.03,100.50,102.30,2495300,102.30], +["2004-09-07",101.01,102.00,99.61,101.58,2926700,101.58], +["2004-09-03",100.95,101.74,99.32,100.01,2578800,100.01], +["2004-09-02",99.19,102.37,98.94,101.51,7566900,101.51], +["2004-09-01",102.70,102.97,99.67,100.25,4573700,100.25], +["2004-08-31",102.30,103.71,102.16,102.37,2461400,102.37], +["2004-08-30",105.28,105.49,102.01,102.01,2601000,102.01], +["2004-08-27",108.10,108.62,105.69,106.15,3109000,106.15], +["2004-08-26",104.95,107.95,104.66,107.91,3551000,107.91], +["2004-08-25",104.96,108.00,103.88,106.00,4598900,106.00], +["2004-08-24",111.24,111.60,103.57,104.87,7631300,104.87], +["2004-08-23",110.75,113.48,109.05,109.40,9137200,109.40], +["2004-08-20",101.01,109.08,100.50,108.31,11428600,108.31], +["2004-08-19",100.00,104.06,95.96,100.34,22351900,100.34] +];
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js b/wqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js new file mode 100644 index 00000000..11da48a8 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js @@ -0,0 +1 @@ +var yahoo=[["2011-10-18",580.19,592.56,577.4,590.51,3800800,590.51],["2011-10-17",583.72,591.83,578,582.41,4008200,582.41],["2011-10-14",599.47,599.6,587.57,591.68,8529900,591.68],["2011-10-13",550.03,559,548.02,558.99,5639600,558.99],["2011-10-12",548.13,555.23,544.63,548.5,3177800,548.5],["2011-10-11",533.46,546.8,533.46,543.18,2853400,543.18],["2011-10-10",525.18,537.47,523.2,537.17,2322200,537.17],["2011-10-07",516.83,520.5,510.3,515.12,2855900,515.12],["2011-10-06",507.5,515.23,502.6,514.71,3424300,514.71],["2011-10-05",496.35,507.8,480.77,504.7,4534100,504.7],["2011-10-04",490.03,503.44,480.6,501.9,4158800,501.9],["2011-10-03",509.85,512,495,495.52,4474400,495.52],["2011-09-30",520.21,524,514.38,515.04,2723600,515.04],["2011-09-29",536.04,537.3,519.41,527.5,2906600,527.5],["2011-09-28",541.5,544.02,527.7,528.84,2263300,528.84],["2011-09-27",538.2,547.05,536.05,539.34,3010900,539.34],["2011-09-26",527.25,532.93,513.25,531.89,2634200,531.89],["2011-09-23",516.56,526.42,514.5,525.51,2777300,525.51],["2011-09-22",526.25,528.78,514,520.66,4400300,520.66],["2011-09-21",547.69,555,538.86,539.2,2514300,539.2],["2011-09-20",549.4,558.52,542.67,546.63,2779100,546.63],["2011-09-19",540.35,549.9,535.38,546.67,2468400,546.67],["2011-09-16",544.8,546.84,543.14,546.68,3534300,546.68],["2011-09-15",535.5,544.98,534.56,542.56,2960800,542.56],["2011-09-14",532.59,536.95,525.82,532.07,2694400,532.07],["2011-09-13",532,533.88,523.4,529.52,2354200,529.52],["2011-09-12",517.96,531.99,517.5,530.12,2670400,530.12],["2011-09-09",531.4,534.65,521.19,524.85,3268800,524.85],["2011-09-08",533.8,539.1,531.9,534.96,2380500,534.96],["2011-09-07",530.45,535.94,527.4,534.03,2755800,534.03],["2011-09-06",510.8,522.76,510.5,522.18,2715800,522.18],["2011-09-02",524.47,527.92,520.73,524.84,2401200,524.84],["2011-09-01",540.75,543.83,531.22,532.5,2415500,532.5],["2011-08-31",544.74,546.3,536,540.96,2693300,540.96],["2011-08-30",538.19,542.99,530.81,540.7,2989000,540.7],["2011-08-29",534.56,539.45,533.56,539.08,2335800,539.08],["2011-08-26",519.99,530.45,513.14,526.86,3596300,526.86],["2011-08-25",530.38,537.27,518.3,520.04,3293000,520.04],["2011-08-24",519.33,530,517.23,523.29,3594500,523.29],["2011-08-23",503.5,521.41,499.06,518.82,4346800,518.82],["2011-08-22",504,507,494.53,498.17,4905900,498.17],["2011-08-19",499.34,514.87,490.86,490.92,5410000,490.92],["2011-08-18",523.47,524.89,500.49,504.88,6290700,504.88],["2011-08-17",540.03,543.69,530.77,533.15,4055000,533.15],["2011-08-16",552.43,552.44,530.3,539,6939400,539],["2011-08-15",553.43,564.99,546.05,557.23,7144900,557.23],["2011-08-12",569.5,570.5,560.4,563.77,3154300,563.77],["2011-08-11",553.82,568.5,548.41,562.13,4830600,562.13],["2011-08-10",561.38,564.12,547.73,549.01,5369600,549.01],["2011-08-09",561,574.61,541.01,573.41,6469700,573.41],["2011-08-08",562.98,569,544.35,546.02,7496600,546.02],["2011-08-05",582.54,590,562,579.04,5929100,579.04],["2011-08-04",594.5,598.85,577.47,577.52,4914600,577.52],["2011-08-03",594.27,603,583.63,601.17,3825700,601.17],["2011-08-02",606,609.67,591.57,592.4,3200600,592.4],["2011-08-01",611.22,615.5,599.18,606.77,3966100,606.77],["2011-07-29",604.23,614.96,603.69,603.69,4137400,603.69],["2011-07-28",605.19,615.98,603,610.94,3108400,610.94],["2011-07-27",617.18,620.95,604.75,607.22,3934400,607.22],["2011-07-26",618.05,627.5,617.22,622.52,2342900,622.52],["2011-07-25",613.36,625.41,613,618.98,3131600,618.98],["2011-07-22",605.39,619.5,604.27,618.23,3528200,618.23],["2011-07-21",594.03,608.06,594.01,606.99,3469500,606.99],["2011-07-20",602.18,602.83,595.35,595.35,2227800,595.35],["2011-07-19",596.14,604.68,595.53,602.55,2967500,602.55],["2011-07-18",592.49,602.05,592,594.94,4468300,594.94],["2011-07-15",597.5,600.25,588.16,597.62,13732100,597.62],["2011-07-14",539.12,542,526.73,528.94,6594400,528.94],["2011-07-13",537,544,536.48,538.26,2790200,538.26],["2011-07-12",528.16,539.42,526,534.01,2841200,534.01],["2011-07-11",528.18,535.98,525.5,527.28,2839300,527.28],["2011-07-08",532.95,537.65,527.27,531.99,4770200,531.99],["2011-07-07",541,550.68,535.88,546.6,3935500,546.6],["2011-07-06",533.5,538.51,533.04,535.36,2695600,535.36],["2011-07-05",525.3,535.4,525.3,532.44,3849200,532.44],["2011-07-01",506.74,521.18,506.38,521.03,3636700,521.03],["2011-06-30",501.99,506.67,501.5,506.38,2428400,506.38],["2011-06-29",496.54,500.25,492.38,497.57,2343000,497.57],["2011-06-28",484.02,496.21,484.02,493.65,2715100,493.65],["2011-06-27",474,488.4,473.6,482.8,3444700,482.8],["2011-06-24",480.68,480.75,473.02,474.88,3805600,474.88],["2011-06-23",482.13,482.86,473.73,480.22,4801700,480.22],["2011-06-22",491.45,492.35,486.73,487.01,2407100,487.01],["2011-06-21",487.19,493.94,484.73,493,2765400,493],["2011-06-20",485,486.23,479.23,484.58,3028600,484.58],["2011-06-17",506.18,506.69,484.8,485.02,5245400,485.02],["2011-06-16",502.81,506.57,496.67,500.37,2757000,500.37],["2011-06-15",505.03,508.35,500.61,502.95,2073300,502.95],["2011-06-14",508.15,514.08,506.99,508.37,2341500,508.37],["2011-06-13",510,510.2,502.17,504.73,2427300,504.73],["2011-06-10",514.08,516.69,509.29,509.51,2439900,509.51],["2011-06-09",520,520,515.64,516.73,1689100,516.73],["2011-06-08",516.53,521.24,515.78,519.17,1653400,519.17],["2011-06-07",522.89,524.63,518.99,519.03,1907600,519.03],["2011-06-06",523.54,526.82,519.25,521.06,1942100,521.06],["2011-06-03",522,527.6,521.5,523.08,1748500,523.08],["2011-06-02",527.57,530.3,522.48,528.06,2204500,528.06],["2011-06-01",528.04,533.2,525.31,525.6,2955900,525.6],["2011-05-31",525,529.05,523.5,529.02,2687300,529.02],["2011-05-27",518.48,521.79,516.3,520.9,1745800,520.9],["2011-05-26",517.7,522.12,515,518.13,2118500,518.13],["2011-05-25",517.33,522.77,517.25,519.67,1301600,519.67],["2011-05-24",520.37,523.96,518.15,518.26,1888400,518.26],["2011-05-23",516.6,520,513.4,518.39,2252700,518.39],["2011-05-20",531.8,531.99,523.13,524.03,2317500,524.03],["2011-05-19",532.73,536.54,529.72,531.25,2468700,531.25],["2011-05-18",529.54,530.33,525.7,529.81,1953200,529.81],["2011-05-17",515.43,531.22,515.03,530.46,3303600,530.46],["2011-05-16",526.31,527.27,516.4,518.42,2958200,518.42],["2011-05-13",534.61,535.92,529.05,529.55,2108700,529.55],["2011-05-12",535.24,536.94,530.91,535.05,1400000,535.05],["2011-05-11",540.14,543.55,533.69,535.45,2338800,535.45],["2011-05-10",540,544.43,537.54,542.66,2042900,542.66],["2011-05-09",535,538.49,531.1,537.68,1948700,537.68],["2011-05-06",538.15,541.46,535.18,535.3,2056100,535.3],["2011-05-05",533.86,539.42,531.5,534.27,1997800,534.27],["2011-05-04",535.17,539,533.02,535.79,2117000,535.79],["2011-05-03",537.13,542.01,529.63,533.89,2081500,533.89],["2011-05-02",545.7,545.73,537.12,538.56,2133700,538.56],["2011-04-29",540,544.1,538.51,544.1,4200000,544.1],["2011-04-28",538.06,539.25,534.08,537.97,2037400,537.97],["2011-04-27",538,538.11,534.35,537.76,2298400,537.76],["2011-04-26",526.52,537.44,525.21,532.82,3535400,532.82],["2011-04-25",525.25,527,522.01,525.05,1630800,525.05],["2011-04-21",527.49,528.28,522.39,525.1,2470100,525.1],["2011-04-20",525.9,526.82,521.39,525.73,3060000,525.73],["2011-04-19",529.95,530.88,520.9,521.53,2684100,521.53],["2011-04-18",526.42,527.66,519,526.84,5039800,526.84],["2011-04-15",545.29,545.75,530.06,530.7,14043700,530.7],["2011-04-14",575.19,579.45,572.1,578.51,5456300,578.51],["2011-04-13",575.51,577.6,571.75,576.28,2069400,576.28],["2011-04-12",575,576.91,568.05,570.61,2085600,570.61],["2011-04-11",576.2,578.1,573,577.37,1858200,577.37],["2011-04-08",584.89,584.89,578.06,578.16,1901800,578.16],["2011-04-07",575.73,580.64,574.19,580,2531500,580],["2011-04-06",572.18,575.16,568,574.18,2668300,574.18],["2011-04-05",581.08,581.49,565.68,569.09,6047500,569.09],["2011-04-04",593,594.74,583.1,587.68,2054500,587.68],["2011-04-01",588.76,595.19,588.76,591.8,2613200,591.8],["2011-03-31",583,588.16,581.74,586.76,2029400,586.76],["2011-03-30",584.38,585.5,580.58,581.84,1422300,581.84],["2011-03-29",576,581.89,573.01,581.73,1604800,581.73],["2011-03-28",582.07,584.99,574.71,575.36,2218400,575.36],["2011-03-25",586.88,586.91,579.24,579.74,2858400,579.74],["2011-03-24",585.43,588.39,578.8,586.89,2098700,586.89],["2011-03-23",575.19,582.45,572,582.16,1816200,582.16],["2011-03-22",577.27,579.23,572.51,577.32,1886900,577.32],["2011-03-21",570.22,579.8,569.02,576.5,3020900,576.5],["2011-03-18",564.64,567.99,559.74,561.06,3298600,561.06],["2011-03-17",564.48,569,560.54,561.36,2899300,561.36],["2011-03-16",568.01,569.79,551.28,557.1,3798500,557.1],["2011-03-15",557.5,571,555.5,569.56,4005600,569.56],["2011-03-14",572.8,578.29,568.02,569.99,2816100,569.99],["2011-03-11",578.22,580,573.33,576.71,3032000,576.71],["2011-03-10",585.44,586.62,579.45,580.3,3128100,580.3],["2011-03-09",591,594.51,585.75,591.77,2151000,591.77],["2011-03-08",592.93,597.98,590.2,592.31,2284900,592.31],["2011-03-07",600.55,603.69,587,591.66,3462700,591.66],["2011-03-04",608.33,608.98,600.2,600.62,3011000,600.62],["2011-03-03",606.38,611.49,605,609.56,1945300,609.56],["2011-03-02",599.8,606,595.19,600.79,2026700,600.79],["2011-03-01",617.78,619.22,599.3,600.76,3323200,600.76],["2011-02-28",610,616.49,608.01,613.4,2281500,613.4],["2011-02-25",611.86,614.72,609.5,610.04,1932400,610.04],["2011-02-24",611.39,613.09,601.35,608.82,2711700,608.82],["2011-02-23",610.33,614.7,604,611.32,2889600,611.32],["2011-02-22",620.03,624.93,607.77,610.21,3639900,610.21],["2011-02-18",626,631.18,624.18,630.08,3217900,630.08],["2011-02-17",621.25,627.25,620.28,625.26,1478800,625.26],["2011-02-16",625.63,626.5,622.1,624.22,1684000,624.22],["2011-02-15",627.32,630.09,623.1,624.15,2092000,624.15],["2011-02-14",623.34,629.64,620.04,628.15,2128000,628.15],["2011-02-11",613.79,625,613,624.5,2589900,624.5],["2011-02-10",613.9,617.5,611.56,616.44,2334400,616.44],["2011-02-09",616.87,619.45,612.34,616.5,1842500,616.5],["2011-02-08",614.93,619.63,614.51,618.38,1694900,618.38],["2011-02-07",610.16,618.39,609.21,614.29,1799600,614.29],["2011-02-04",610.15,611.44,606.61,610.98,1550800,610.98],["2011-02-03",609.48,611.45,606.13,610.15,1495100,610.15],["2011-02-02",611,614.34,607.53,612,1760700,612],["2011-02-01",604.49,613.35,603.11,611.04,2745300,611.04],["2011-01-31",603.6,604.47,595.55,600.36,2804900,600.36],["2011-01-28",619.07,620.36,599.76,600.99,4231100,600.99],["2011-01-27",617.89,619.7,613.25,616.79,2019200,616.79],["2011-01-26",620.33,622.49,615.28,616.5,2038100,616.5],["2011-01-25",608.2,620.69,606.52,619.91,3646800,619.91],["2011-01-24",607.57,612.49,601.23,611.08,4599200,611.08],["2011-01-21",639.58,641.73,611.36,611.83,8904400,611.83],["2011-01-20",632.21,634.08,623.29,626.77,5485800,626.77],["2011-01-19",642.12,642.96,629.66,631.75,3406100,631.75],["2011-01-18",626.06,641.99,625.27,639.63,3617000,639.63],["2011-01-14",617.4,624.27,617.08,624.18,2365600,624.18],["2011-01-13",616.97,619.67,614.16,616.69,1334000,616.69],["2011-01-12",619.35,619.35,614.77,616.87,1632700,616.87],["2011-01-11",617.71,618.8,614.5,616.01,1439300,616.01],["2011-01-10",614.8,615.39,608.56,614.21,1579200,614.21],["2011-01-07",615.91,618.25,610.13,616.44,2101200,616.44],["2011-01-06",610.68,618.43,610.05,613.5,2057800,613.5],["2011-01-05",600.07,610.33,600.05,609.07,2532300,609.07],["2011-01-04",605.62,606.18,600.12,602.12,1824500,602.12],["2011-01-03",596.48,605.59,596.48,604.35,2365200,604.35],["2010-12-31",596.74,598.42,592.03,593.97,1539300,593.97],["2010-12-30",598,601.33,597.39,598.86,989500,598.86],["2010-12-29",602,602.41,598.92,601,1019200,601],["2010-12-28",602.05,603.87,598.01,598.92,1064800,598.92],["2010-12-27",602.74,603.78,599.5,602.38,1208100,602.38],["2010-12-23",605.34,606,602.03,604.23,1110800,604.23],["2010-12-22",604,607,603.28,605.49,1207500,605.49],["2010-12-21",598.57,604.72,597.61,603.07,1879500,603.07],["2010-12-20",594.65,597.88,588.66,595.06,1973300,595.06],["2010-12-17",591,592.56,587.67,590.8,3087100,590.8],["2010-12-16",592.85,593.77,588.07,591.71,1596900,591.71],["2010-12-15",594.2,596.45,589.15,590.3,2167700,590.3],["2010-12-14",597.09,598.29,592.48,594.91,1643300,594.91],["2010-12-13",597.12,603,594.09,594.62,2398500,594.62],["2010-12-10",593.14,593.99,590.29,592.21,1704700,592.21],["2010-12-09",593.88,595.58,589,591.5,1868900,591.5],["2010-12-08",591.97,592.52,583.69,590.54,1756900,590.54],["2010-12-07",591.27,593,586,587.14,3042200,587.14],["2010-12-06",580.57,582,576.61,578.36,2093800,578.36],["2010-12-03",569.45,576.48,568,573,2631200,573],["2010-12-02",568.66,573.33,565.35,571.82,2547900,571.82],["2010-12-01",563,571.57,562.4,564.35,3754100,564.35],["2010-11-30",574.32,574.32,553.31,555.71,7117400,555.71],["2010-11-29",589.17,589.8,579.95,582.11,2859700,582.11],["2010-11-26",590.46,592.98,587,590,1311100,590],["2010-11-24",587.31,596.6,587.05,594.97,2396400,594.97],["2010-11-23",587.01,589.01,578.2,583.01,2162600,583.01],["2010-11-22",587.47,593.44,582.75,591.22,2186600,591.22],["2010-11-19",597,597.89,590.34,590.83,2297500,590.83],["2010-11-18",589,599.98,588.56,596.56,2590000,596.56],["2010-11-17",585,589.5,581.37,583.55,2442500,583.55],["2010-11-16",592.76,597.89,583.45,583.72,3307400,583.72],["2010-11-15",603.08,604,594.05,595.47,3478900,595.47],["2010-11-12",613.99,616.9,601.21,603.29,3393000,603.29],["2010-11-11",619.7,619.85,614.21,617.19,2261600,617.19],["2010-11-10",622.08,623,617.51,622.88,2497000,622.88],["2010-11-09",630,630.85,620.51,624.82,2237200,624.82],["2010-11-08",624.02,629.49,623.13,626.77,2101300,626.77],["2010-11-05",623.18,625.49,621.11,625.08,1765700,625.08],["2010-11-04",624.64,629.92,622.1,624.27,3570800,624.27],["2010-11-03",617.5,621.83,613.5,620.18,3380500,620.18],["2010-11-02",618.67,620,614.58,615.6,1997600,615.6],["2010-11-01",615.73,620.66,611.21,615,3087100,615],["2010-10-29",617.07,619,612.99,613.7,2278300,613.7],["2010-10-28",620.05,621,613.3,618.58,2184300,618.58],["2010-10-27",615.77,620,612.33,616.47,2241900,616.47],["2010-10-26",613.1,621.23,611.03,618.6,2512900,618.6],["2010-10-25",615.59,624.74,614.97,616.5,3158400,616.5],["2010-10-22",611.92,614.82,610.05,612.53,2256100,612.53],["2010-10-21",611.51,616,606,611.99,2920500,611.99],["2010-10-20",608.14,617.38,607.5,607.98,3525100,607.98],["2010-10-19",608.85,614.82,602.86,607.83,4587900,607.83],["2010-10-18",600.55,619.69,600.55,617.71,7098200,617.71],["2010-10-15",599.27,601.64,591.6,601.45,14824800,601.45],["2010-10-14",544.18,545.25,537.11,540.93,6634100,540.93],["2010-10-13",547,547.49,542.33,543.3,3055600,543.3],["2010-10-12",540.12,545.99,537.79,541.39,3753600,541.39],["2010-10-11",538.48,544.6,537.17,538.84,2626300,538.84],["2010-10-08",532.77,537.6,527.62,536.35,2859200,536.35],["2010-10-07",536.21,537.2,529.14,530.01,2395800,530.01],["2010-10-06",539.26,539.95,529.94,534.35,2762300,534.35],["2010-10-05",528.38,540,526.55,538.23,3507100,538.23],["2010-10-04",524.95,528.25,518.85,522.35,1940500,522.35],["2010-10-01",530,530.62,523,525.62,2225000,525.62],["2010-09-30",529.16,531.87,518.92,525.79,3244100,525.79],["2010-09-29",527.85,532.94,524.71,527.69,2172200,527.69],["2010-09-28",533.48,533.59,518.45,527.17,3654700,527.17],["2010-09-27",528.85,536.85,528.85,530.41,3107400,530.41],["2010-09-24",521.74,527.83,518.26,527.29,3356900,527.29],["2010-09-23",514.61,519.69,511.3,513.48,2317400,513.48],["2010-09-22",512.86,517.78,511.68,516,2537100,516],["2010-09-21",509.68,519.98,508.91,513.46,4466300,513.46],["2010-09-20",492.5,510.41,492.06,508.28,4403500,508.28],["2010-09-17",483.75,491.2,481.18,490.15,5641600,490.15],["2010-09-16",479.95,482.45,479.41,481.06,1969500,481.06],["2010-09-15",479.95,481.89,478.5,480.64,2402800,480.64],["2010-09-14",482.01,484.75,480.08,480.43,2216500,480.43],["2010-09-13",480.9,484.35,479.53,482.27,2241500,482.27],["2010-09-10",479.02,479.79,475.08,476.14,1974300,476.14],["2010-09-09",477.83,480.4,470.58,476.18,2430600,476.18],["2010-09-08",465.19,472.5,464.51,470.58,2401800,470.58],["2010-09-07",464.5,467.59,463.02,464.4,1709900,464.4],["2010-09-03",470.52,471.88,467.44,470.3,2540400,470.3],["2010-09-02",462.84,464.43,460.31,463.18,1684200,463.18],["2010-09-01",454.98,464.94,452.5,460.33,3228300,460.33],["2010-08-31",450.11,454.87,448,450.02,1946800,450.02],["2010-08-30",459.15,459.76,452.42,452.69,1231400,452.69],["2010-08-27",452.56,459.99,447.65,458.83,2312400,458.83],["2010-08-26",456.06,457.26,450.44,450.98,1777000,450.98],["2010-08-25",450,457.81,450,454.62,2592100,454.62],["2010-08-24",457.7,458.37,450.92,451.39,2762700,451.39],["2010-08-23",461.5,468.25,457.73,464.07,2986200,464.07],["2010-08-20",467.97,471.59,461.02,462.02,3917600,462.02],["2010-08-19",481.01,482.51,467.25,467.97,3925000,467.97],["2010-08-18",490.44,490.87,481.55,482.15,2686400,482.15],["2010-08-17",488.53,494.7,486.03,490.52,1890700,490.52],["2010-08-16",483.68,489.87,480.5,485.59,1305000,485.59],["2010-08-13",489,491.19,486.01,486.35,1934700,486.35],["2010-08-12",483.94,494.75,482.51,492.01,2204600,492.01],["2010-08-11",497.73,498,491.5,491.74,2223000,491.74],["2010-08-10",502.35,506,498.57,503.71,2074000,503.71],["2010-08-09",502.25,505.5,501.36,505.35,1872200,505.35],["2010-08-06",505.4,505.74,496.05,500.22,3319500,500.22],["2010-08-05",505.89,508.6,503.56,508.1,2420400,508.1],["2010-08-04",492.18,507,491.05,506.32,3812500,506.32],["2010-08-03",490.5,492.46,486.76,489.83,1802300,489.83],["2010-08-02",488.99,493.28,486.94,490.41,1858700,490.41],["2010-07-30",479.65,487.36,479.14,484.85,2144100,484.85],["2010-07-29",485.95,488.88,479.33,484.99,2675500,484.99],["2010-07-28",494.94,495.25,482.67,484.35,2496000,484.35],["2010-07-27",490.58,497.5,490.17,492.63,2451200,492.63],["2010-07-26",489.09,490.75,484.88,488.97,1995200,488.97],["2010-07-23",480.77,490.59,480.01,490.06,2264400,490.06],["2010-07-22",483.23,488.98,482.48,484.81,2147700,484.81],["2010-07-21",484,485.7,475.43,477.5,3279600,477.5],["2010-07-20",461.03,482.99,460.6,481.59,4054500,481.59],["2010-07-19",461.01,469.65,457.52,466.18,4550300,466.18],["2010-07-16",469.12,470.56,459.52,459.61,7824800,459.61],["2010-07-15",491.73,494.7,482.68,494.02,4858200,494.02],["2010-07-14",489.88,493.83,486.46,491.34,3118000,491.34],["2010-07-13",482.25,492.99,480.28,489.2,3976300,489.2],["2010-07-12",472.37,479.44,471.08,475.83,3334400,475.83],["2010-07-09",471.96,473.26,462.78,467.49,4331500,467.49],["2010-07-08",453.55,457.33,449.66,456.56,2668900,456.56],["2010-07-07",438.31,451.29,435.38,450.2,3129700,450.2],["2010-07-06",444,447.67,433.63,436.07,2560100,436.07],["2010-07-02",441.62,442.28,436,436.55,1936000,436.55],["2010-07-01",445.29,448.4,433.63,439.49,3513600,439.49],["2010-06-30",454.96,457.83,444.72,444.95,3603200,444.95],["2010-06-29",463.44,464.55,451.12,454.26,3502100,454.26],["2010-06-28",472.59,477.55,469.01,472.08,1762300,472.08],["2010-06-25",477.06,477.65,470.56,472.68,2245200,472.68],["2010-06-24",479.66,482.75,473.26,475.1,1893600,475.1],["2010-06-23",486.89,486.89,478.16,482.05,2029100,482.05],["2010-06-22",489.9,496.6,485.73,486.25,2219700,486.25],["2010-06-21",499.9,500.97,484.89,488.56,2983500,488.56],["2010-06-18",502.51,503.47,498.13,500.03,2872900,500.03],["2010-06-17",503.45,505.87,496.69,500.08,1977300,500.08],["2010-06-16",496.17,504,496.11,501.27,2289300,501.27],["2010-06-15",483.08,500.4,482.18,497.99,4259600,497.99],["2010-06-14",494.48,494.5,483.19,483.19,2040400,483.19],["2010-06-11",482.5,488.71,481.62,488.5,1781700,488.5],["2010-06-10",480.37,488.5,475.84,487.01,2577900,487.01],["2010-06-09",487.22,488.88,472,474.02,2729000,474.02],["2010-06-08",487.85,488.84,477.54,484.78,2685100,484.78],["2010-06-07",499.06,500.91,483.15,485.52,3632700,485.52],["2010-06-04",499.72,509.25,496.7,498.72,3920300,498.72],["2010-06-03",495.11,508,494.7,505.6,3650700,505.6],["2010-06-02",486.68,493.87,481.46,493.37,2540800,493.37],["2010-06-01",480.43,491.06,480.12,482.37,2666800,482.37],["2010-05-28",492.74,493.45,483,485.63,2894800,485.63],["2010-05-27",484.95,492.31,481.05,490.46,2809100,490.46],["2010-05-26",482.07,489.76,475,475.47,3475600,475.47],["2010-05-25",468.15,477.45,464.01,477.07,3017400,477.07],["2010-05-24",480.73,489.79,476.8,477.16,4345600,477.16],["2010-05-21",469.06,485,464.4,472.05,9690800,472.05],["2010-05-20",485.07,485.58,473.8,475.01,4913300,475.01],["2010-05-19",496.26,499.44,487.74,494.43,3445700,494.43],["2010-05-18",510,510.97,497.07,498.37,2825500,498.37],["2010-05-17",506.78,508.36,498.35,507.97,2793800,507.97],["2010-05-14",509.77,510.99,496.25,507.53,4116000,507.53],["2010-05-13",516.5,522,510.37,510.88,3325800,510.88],["2010-05-12",512.04,512.04,502,505.39,3851800,505.39],["2010-05-11",515.67,519.88,508.22,509.05,3322600,509.05],["2010-05-10",513.97,522.82,512.6,521.65,4128000,521.65],["2010-05-07",499.97,505.32,481.33,493.14,5089000,493.14],["2010-05-06",508.75,517.52,460,498.67,5000100,498.67],["2010-05-05",500.98,515.72,500.47,509.76,4582200,509.76],["2010-05-04",526.52,526.74,504.21,506.37,6076300,506.37],["2010-05-03",526.5,532.92,525.08,530.6,1857800,530.6],["2010-04-30",531.13,537.68,525.44,525.7,2435400,525.7],["2010-04-29",533.37,536.5,526.67,532,3058900,532],["2010-04-28",532.1,534.83,521.03,529.19,3406100,529.19],["2010-04-27",528.95,538.33,527.23,529.06,3844700,529.06],["2010-04-26",544.97,544.99,529.21,531.64,4368800,531.64],["2010-04-23",547.25,549.32,542.27,544.99,2089400,544.99],["2010-04-22",552,552.5,543.35,547.06,3280700,547.06],["2010-04-21",556.46,560.25,552.16,554.3,2391500,554.3],["2010-04-20",554.17,559.66,551.06,555.04,2977400,555.04],["2010-04-19",548.75,553.99,545,550.1,3894000,550.1],["2010-04-16",563,568.81,549.63,550.15,12235500,550.15],["2010-04-15",592.17,597.84,588.29,595.3,6761800,595.3],["2010-04-14",590.06,592.34,584.01,589,3402700,589],["2010-04-13",572.53,588.88,571.13,586.77,3912300,586.77],["2010-04-12",567.35,574,566.22,572.73,2352400,572.73],["2010-04-09",567.49,568.77,564,566.22,2056600,566.22],["2010-04-08",563.32,569.85,560.05,567.49,1947500,567.49],["2010-04-07",567.3,568.75,561.86,563.54,2581000,563.54],["2010-04-06",569.46,570.89,565.4,568.22,2060100,568.22],["2010-04-05",570.9,574.88,569,571.01,1901500,571.01],["2010-04-01",571.35,573.45,565.55,568.8,2102700,568.8],["2010-03-31",565.05,569.74,562.81,567.12,3030800,567.12],["2010-03-30",562.83,567.63,560.28,566.71,1977900,566.71],["2010-03-29",563,564.72,560.57,562.45,3104500,562.45],["2010-03-26",565.27,567.39,560.02,562.69,2696200,562.69],["2010-03-25",559.02,572,558.66,562.88,3930900,562.88],["2010-03-24",545.51,559.85,539.7,557.33,6565200,557.33],["2010-03-23",557.04,558.31,542,549,5501300,549],["2010-03-22",556.11,566.85,554.28,557.5,4004800,557.5],["2010-03-19",566.23,568,557.28,560,4792400,560],["2010-03-18",564.72,568.44,562.96,566.4,1777200,566.4],["2010-03-17",568.3,571.45,564.25,565.56,3321600,565.56],["2010-03-16",561.83,568.42,560.76,565.2,3431500,565.2],["2010-03-15",566.68,569.45,556,563.18,4653900,563.18],["2010-03-12",588.14,588.28,579.16,579.54,2753400,579.54],["2010-03-11",574.26,586.21,574.2,581.14,4233300,581.14],["2010-03-10",563.76,578.5,562.21,576.45,5654900,576.45],["2010-03-09",559.85,564.66,556.5,560.19,3176600,560.19],["2010-03-08",564.78,565.18,561.01,562.48,2386400,562.48],["2010-03-05",561.35,567.67,559.9,564.21,3912200,564.21],["2010-03-04",546.5,556.13,546.2,554.59,3183800,554.59],["2010-03-03",542.36,548.12,539.25,545.32,3089400,545.32],["2010-03-02",535.48,545.66,535.01,541.06,4356800,541.06],["2010-03-01",529.2,533.29,527.74,532.69,2237900,532.69],["2010-02-26",527.42,531.75,523.48,526.8,2049300,526.8],["2010-02-25",527.12,528.49,520,526.43,3309200,526.43],["2010-02-24",533.98,538.44,530.51,531.47,2326600,531.47],["2010-02-23",543,543.63,532.29,535.07,2872600,535.07],["2010-02-22",547.35,547.5,541,542.8,2144600,542.8],["2010-02-19",540.53,544.03,539.7,540.76,2553100,540.76],["2010-02-18",537.54,545.01,536.14,543.22,2336900,543.22],["2010-02-17",542,543.4,537.61,538.21,2029700,538.21],["2010-02-16",536.87,544.13,534.3,541.3,3654400,541.3],["2010-02-12",532.97,537.15,530.5,533.12,2279700,533.12],["2010-02-11",533.32,540.49,529.5,536.4,2410000,536.4],["2010-02-10",534.07,537.79,527.69,534.45,2674500,534.45],["2010-02-09",539.54,541.53,535.07,536.44,2819600,536.44],["2010-02-08",532.5,542,531.53,533.47,2694300,533.47],["2010-02-05",528.4,533.5,522.46,531.29,3156000,531.29],["2010-02-04",537,538,525.56,526.78,3377700,526.78],["2010-02-03",528.67,542.1,528.23,540.82,2999100,540.82],["2010-02-02",534.96,534.96,527.61,531.12,4096200,531.12],["2010-02-01",534.6,535.81,530.3,533.02,2250800,533.02],["2010-01-29",538.49,540.99,525.61,529.94,4140500,529.94],["2010-01-28",544.49,547,530.6,534.29,3229100,534.29],["2010-01-27",541.27,547.65,535.31,542.1,3964400,542.1],["2010-01-26",537.97,549.6,536.29,542.42,4355500,542.42],["2010-01-25",546.59,549.88,535.51,540,4419900,540],["2010-01-22",564.5,570.6,534.86,550.01,6800400,550.01],["2010-01-21",583.44,586.82,572.25,582.98,6307700,582.98],["2010-01-20",585.98,585.98,575.29,580.41,3250700,580.41],["2010-01-19",581.2,590.42,576.29,587.62,4316700,587.62],["2010-01-15",593.34,593.56,578.04,580,5434500,580],["2010-01-14",583.9,594.2,582.81,589.85,4240100,589.85],["2010-01-13",576.49,588.38,573.9,587.09,6496600,587.09],["2010-01-12",597.65,598.16,588,590.48,4853300,590.48],["2010-01-11",604.46,604.46,594.04,601.11,7212900,601.11],["2010-01-08",592,603.25,589.11,602.02,4724300,602.02],["2010-01-07",609.4,610,592.65,594.1,6414300,594.1],["2010-01-06",625.86,625.86,606.36,608.26,3978700,608.26],["2010-01-05",627.18,627.84,621.54,623.99,3004700,623.99],["2010-01-04",626.95,629.51,624.24,626.75,1956200,626.75],["2009-12-31",624.75,625.4,619.98,619.98,1219800,619.98],["2009-12-30",618.5,622.73,618.01,622.73,1465600,622.73],["2009-12-29",624.74,624.84,618.29,619.4,1424800,619.4],["2009-12-28",621.66,625.99,618.48,622.87,1697900,622.87],["2009-12-24",612.93,619.52,612.27,618.48,858700,618.48],["2009-12-23",603.5,612.87,602.85,611.68,2072700,611.68],["2009-12-22",601.34,601.5,598.85,601.12,1880800,601.12],["2009-12-21",597.61,599.84,595.67,598.68,2571200,598.68],["2009-12-18",596.03,598.93,595,596.42,3531500,596.42],["2009-12-17",596.44,597.64,593.76,593.94,2638800,593.94],["2009-12-16",598.6,600.37,596.64,597.76,2809400,597.76],["2009-12-15",593.3,596.38,590.99,593.14,2280400,593.14],["2009-12-14",595.35,597.31,592.61,595.73,1913400,595.73],["2009-12-11",594.68,594.75,587.73,590.51,1720000,590.51],["2009-12-10",590.44,594.71,590.41,591.5,1668300,591.5],["2009-12-09",587.5,589.33,583.58,589.02,1781000,589.02],["2009-12-08",583.5,590.66,582,587.05,1524000,587.05],["2009-12-07",584.21,588.69,581,586.25,1636200,586.25],["2009-12-04",593.02,594.83,579.18,585.01,2513600,585.01],["2009-12-03",589.04,591.45,585,585.74,1428700,585.74],["2009-12-02",591,593.01,586.22,587.51,1663200,587.51],["2009-12-01",588.13,591.22,583,589.87,2320300,589.87],["2009-11-30",580.63,583.67,577.11,583,1725100,583],["2009-11-27",572,582.46,570.97,579.76,1384600,579.76],["2009-11-25",586.41,587.06,582.69,585.74,1461200,585.74],["2009-11-24",582.52,584.29,576.54,583.09,1605200,583.09],["2009-11-23",576.49,586.6,575.86,582.35,2547500,582.35],["2009-11-20",569.5,571.6,569.4,569.96,2006200,569.96],["2009-11-19",573.77,574,570,572.99,2168000,572.99],["2009-11-18",576.65,578.78,572.07,576.65,1549600,576.65],["2009-11-17",574.87,577.5,573.72,577.49,1916700,577.49],["2009-11-16",575,576.99,572.78,576.28,2199200,576.28],["2009-11-13",569.29,572.51,566.61,572.05,1666800,572.05],["2009-11-12",569.56,572.9,565.5,567.85,1886300,567.85],["2009-11-11",570.48,573.5,565.86,570.56,2319700,570.56],["2009-11-10",562.73,568.78,562,566.76,2230800,566.76],["2009-11-09",555.45,562.58,554.23,562.51,2649900,562.51],["2009-11-06",547.72,551.78,545.5,551.1,1826700,551.1],["2009-11-05",543.49,549.77,542.66,548.65,1847700,548.65],["2009-11-04",540.8,545.5,536.42,540.33,2332700,540.33],["2009-11-03",530.01,537.5,528.3,537.29,2380200,537.29],["2009-11-02",537.08,539.46,528.24,533.99,3202100,533.99],["2009-10-30",550,550.17,534.24,536.12,3468500,536.12],["2009-10-29",543.01,551.83,541,551.05,2522600,551.05],["2009-10-28",547.87,550,538.25,540.3,2567800,540.3],["2009-10-27",550.97,554.56,544.16,548.29,3216500,548.29],["2009-10-26",555.75,561.64,550.89,554.21,2970400,554.21],["2009-10-23",555.25,557.89,551.2,553.69,2392700,553.69],["2009-10-22",550,555,548,554.09,2336500,554.09],["2009-10-21",549.91,559.35,549,551.1,3670600,551.1],["2009-10-20",551.64,552.95,540.7,551.72,4043700,551.72],["2009-10-19",552.69,553.6,548.73,552.09,3217900,552.09],["2009-10-16",547.33,554.75,544.53,549.85,8841900,549.85],["2009-10-15",533.75,536.9,527.27,529.91,6100400,529.91],["2009-10-14",532.46,535.58,530,535.32,3258400,535.32],["2009-10-13",524.39,527.46,521.38,526.11,3037400,526.11],["2009-10-12",523.42,525.76,519.32,524.04,3322200,524.04],["2009-10-09",516.65,521.51,514.5,516.25,2738100,516.25],["2009-10-08",519.57,523.25,513.34,514.18,4303800,514.18],["2009-10-07",499,518.99,497.81,517.54,4874200,517.54],["2009-10-06",491.7,499.37,491.7,498.74,2732300,498.74],["2009-10-05",487.65,492.43,483.34,488.52,2144600,488.52],["2009-10-02",483.74,491.74,482.6,484.58,2600800,484.58],["2009-10-01",493,496.47,487,487.2,2813200,487.2],["2009-09-30",500,500.14,487.24,495.85,3141700,495.85],["2009-09-29",499.53,499.75,493.01,498.53,2099200,498.53],["2009-09-28",494.84,501.5,493.3,498.53,1839300,498.53],["2009-09-25",494.29,499.93,492,492.48,2049600,492.48],["2009-09-24",500.47,501.41,493,496.77,2527600,496.77],["2009-09-23",500.78,507,497.71,498.46,2704200,498.46],["2009-09-22",500.92,501.99,497.81,499.06,3041200,499.06],["2009-09-21",487.74,498.9,486.22,497,2116400,497],["2009-09-18",496.77,496.98,491.23,491.46,3283500,491.46],["2009-09-17",490.57,497.37,487.15,491.72,4483100,491.72],["2009-09-16",479.8,489.37,478.48,488.29,2585300,488.29],["2009-09-15",475.08,478.91,472.71,477.54,2398100,477.54],["2009-09-14",470.51,476.8,470.05,475.12,1975700,475.12],["2009-09-11",470.4,473.3,467.63,472.14,1902900,472.14],["2009-09-10",466.65,470.94,462,470.94,2534600,470.94],["2009-09-09",459.06,466.27,458.8,463.97,2195400,463.97],["2009-09-08",464.29,466.99,455.84,458.62,2656700,458.62],["2009-09-04",457.57,462.6,455.78,461.3,1499200,461.3],["2009-09-03",455.82,458.25,455,457.52,1646200,457.52],["2009-09-02",455.82,458.33,452.59,453.01,1804800,453.01],["2009-09-01",459.68,466.82,454.42,455.76,2594900,455.76],["2009-08-31",459.79,461.86,458,461.67,1957900,461.67],["2009-08-28",469.26,472.37,463.38,464.75,1771600,464.75],["2009-08-27",468.58,468.58,460.73,466.06,1998900,466.06],["2009-08-26",472.76,473,466.7,468,1987800,468],["2009-08-25",469.13,474.35,468.72,471.37,2341000,471.37],["2009-08-24",467.35,470.09,464.42,468.73,2453400,468.73],["2009-08-21",465.54,466.09,462.65,465.24,3560500,465.24],["2009-08-20",452,462.18,451.23,460.41,3998900,460.41],["2009-08-19",439.99,445,438.56,443.97,2255000,443.97],["2009-08-18",445.1,447.7,442.32,445.28,2351100,445.28],["2009-08-17",451.5,451.99,443.12,444.89,2620200,444.89],["2009-08-14",462.78,463.18,456.89,460,1675100,460],["2009-08-13",462.15,464.72,458.91,462.28,1995200,462.28],["2009-08-12",455.41,461.75,454.92,458.58,2341400,458.58],["2009-08-11",453.67,457.23,452.38,453.94,1712500,453.94],["2009-08-10",455.14,458.41,453.79,456.61,1742000,456.61],["2009-08-07",455.67,459.42,454.99,457.1,2543100,457.1],["2009-08-06",454.3,454.88,448.53,450.36,2110900,450.36],["2009-08-05",456,456.91,447.88,451.14,2342000,451.14],["2009-08-04",449.37,454,448.43,453.73,2389800,453.73],["2009-08-03",448.74,453.9,447.64,452.21,2590300,452.21],["2009-07-31",449.98,452.7,442.43,443.05,2860400,443.05],["2009-07-30",442.61,451.47,442.61,445.64,3198600,445.64],["2009-07-29",437.23,437.8,431.89,436.24,1987000,436.24],["2009-07-28",441,442.81,436.1,439.85,2532500,439.85],["2009-07-27",446.04,446.75,437.61,444.8,2504400,444.8],["2009-07-24",435.81,450.49,435,446.72,3626900,446.72],["2009-07-23",428.68,441.21,425.5,437.34,3478200,437.34],["2009-07-22",428,430.2,423.5,427.69,2586700,427.69],["2009-07-21",430.94,431.9,425.72,427.9,2968200,427.9],["2009-07-20",429.88,432.85,426.25,430.17,3153500,430.17],["2009-07-17",433,435.48,426.7,430.25,6854100,430.25],["2009-07-16",436.68,445.75,434.1,442.6,6554500,442.6],["2009-07-15",429.66,438.68,428.49,438.17,3777000,438.17],["2009-07-14",423.71,426.73,420.87,424.69,2895800,424.69],["2009-07-13",416.17,424.52,415.18,424.3,4045700,424.3],["2009-07-10",409.58,417.37,408.7,414.4,2926600,414.4],["2009-07-09",406.12,414.45,405.8,410.39,3275600,410.39],["2009-07-08",400,406,398.06,402.49,3441200,402.49],["2009-07-07",408.24,409.19,395.98,396.63,3259300,396.63],["2009-07-06",406.5,410.64,401.66,409.61,2262600,409.61],["2009-07-02",415.41,415.41,406.81,408.49,2517600,408.49],["2009-07-01",424.2,426.4,418.15,418.99,2310800,418.99],["2009-06-30",424,427.21,418.22,421.59,2593900,421.59],["2009-06-29",426,427.8,422.24,424.14,2169300,424.14],["2009-06-26",413.68,428.23,413.11,425.32,3256700,425.32],["2009-06-25",407,415.9,406.51,415.77,3044500,415.77],["2009-06-24",408.74,412.23,406.56,409.29,2457800,409.29],["2009-06-23",406.65,408.99,402.55,405.68,2899600,405.68],["2009-06-22",416.95,417.49,401.89,407.35,4124400,407.35],["2009-06-19",418.21,420.46,414.58,420.09,4259100,420.09],["2009-06-18",415.68,418.69,413,414.06,3085200,414.06],["2009-06-17",416.19,419.72,411.56,415.16,3490100,415.16],["2009-06-16",419.31,421.09,415.42,416,3049700,416],["2009-06-15",421.5,421.5,414,416.77,3736900,416.77],["2009-06-12",426.86,427.7,421.21,424.84,2918400,424.84],["2009-06-11",431.77,433.73,428.37,429,2865200,429],["2009-06-10",436.23,437.89,426.67,432.6,3358900,432.6],["2009-06-09",438.58,440.5,431.76,435.62,3254900,435.62],["2009-06-08",439.5,440.92,434.12,438.77,3098700,438.77],["2009-06-05",445.07,447.34,439.46,444.32,3680800,444.32],["2009-06-04",435.3,441.24,434.5,440.28,3638100,440.28],["2009-06-03",426,432.46,424,431.65,3532800,431.65],["2009-06-02",426.25,429.96,423.4,428.4,2623600,428.4],["2009-06-01",418.73,429.6,418.53,426.56,3322400,426.56],["2009-05-29",412.11,417.23,410.7,417.23,2648200,417.23],["2009-05-28",408.68,411.62,404.61,410.4,2668800,410.4],["2009-05-27",405.64,411.86,404.81,405.56,3034300,405.56],["2009-05-26",391.95,405,390,404.36,3104500,404.36],["2009-05-22",396.66,398.65,392,393.5,1718600,393.5],["2009-05-21",396.3,402.84,393.84,396.5,2719800,396.5],["2009-05-20",402.09,405.67,395,397.18,2284000,397.18],["2009-05-19",396.1,401.64,393,398.88,2837500,398.88],["2009-05-18",394.73,397.31,385.4,396.84,3351700,396.84],["2009-05-15",391.1,394.11,389.09,390,3008700,390],["2009-05-14",388.8,392.21,384.69,387.5,2937000,387.5],["2009-05-13",394.09,396.39,388.35,389.54,2842800,389.54],["2009-05-12",410.01,410.99,395.11,399.01,3790800,399.01],["2009-05-11",402.8,412,401.2,407.98,2559300,407.98],["2009-05-08",402.85,410.13,395,407.33,3865100,407.33],["2009-05-07",404.1,404.99,392.5,396.61,2999800,396.61],["2009-05-06",406.79,408.28,401,403.47,2632900,403.47],["2009-05-05",399.98,405,397.25,402.99,2400800,402.99],["2009-05-04",398.17,402.4,394.79,401.98,3203000,401.98],["2009-05-01",395.03,397.59,391.55,393.69,2427700,393.69],["2009-04-30",395.76,403.75,394.8,395.97,4355700,395.97],["2009-04-29",385.97,394.97,385.83,391.47,3610000,391.47],["2009-04-28",383.75,389.05,381.54,383.71,2943600,383.71],["2009-04-27",384.34,389.49,382.75,385.95,2290600,385.95],["2009-04-24",386.05,393.18,380.5,389.49,3385400,389.49],["2009-04-23",387.51,389.75,381.11,384.69,2609000,384.69],["2009-04-22",381.75,390,379.01,383.86,3501800,383.86],["2009-04-21",376.17,384.3,376.1,381.47,3695400,381.47],["2009-04-20",386.15,390.65,375.89,379.3,4428900,379.3],["2009-04-17",386.02,399.82,384.81,392.24,10730800,392.24],["2009-04-16",381.5,392.9,381.02,388.74,10185100,388.74],["2009-04-15",367.1,381.06,364.16,379.5,4930700,379.5],["2009-04-14",376.94,376.99,365.6,368.91,3428600,368.91],["2009-04-13",371.33,379.1,370.3,378.11,3050100,378.11],["2009-04-09",369.5,374.35,366.25,372.5,3382600,372.5],["2009-04-08",363.5,365,356.21,362,2765200,362],["2009-04-07",362.6,363.75,355.31,358.65,3680100,358.65],["2009-04-06",367,369.82,361.4,368.24,3280300,368.24],["2009-04-03",364.5,371.72,358,369.78,3789800,369.78],["2009-04-02",363.31,369.76,360.32,362.5,4488000,362.5],["2009-04-01",343.78,355.24,340.61,354.09,3301200,354.09],["2009-03-31",348.93,353.51,346.18,348.06,3655300,348.06],["2009-03-30",342.55,343.81,336.05,342.69,3094100,342.69],["2009-03-27",350,352,345.47,347.7,3322800,347.7],["2009-03-26",353.13,359.16,348.5,353.29,6003300,353.29],["2009-03-25",350.4,351.34,336.25,344.07,4336300,344.07],["2009-03-24",346.5,353.84,344,347.17,3820000,347.17],["2009-03-23",333.56,349.45,333.03,348.6,4271500,348.6],["2009-03-20",330.3,332.99,326.34,330.16,4737900,330.16],["2009-03-19",331.68,336,327.38,329.94,4111200,329.94],["2009-03-18",334.81,340,328.05,333.1,5012200,333.1],["2009-03-17",320.18,335.34,319.09,335.34,4712500,335.34],["2009-03-16",325.99,329.73,318.59,319.69,4946800,319.69],["2009-03-13",326.1,327.46,319.03,324.42,3906400,324.42],["2009-03-12",317.54,325,313.65,323.53,5024100,323.53],["2009-03-11",310.1,320,305.71,317.91,5923600,317.91],["2009-03-10",298.25,310.5,294.25,308.17,6730200,308.17],["2009-03-09",299.98,306.57,289.45,290.89,6471300,290.89],["2009-03-06",307.22,310.19,294.25,308.57,7234200,308.57],["2009-03-05",316.48,319.08,302.64,305.64,6529900,305.64],["2009-03-04",323.16,329,315.38,318.92,7818400,318.92],["2009-03-03",330.07,333.69,322.35,325.48,6524800,325.48],["2009-03-02",333.33,340.7,326,327.16,5788500,327.16],["2009-02-27",332.95,343.82,331.11,337.99,5420000,337.99],["2009-02-26",345.96,352.49,337.16,337.18,5605600,337.18],["2009-02-25",342.15,352.3,338.92,341.64,6439100,341.64],["2009-02-24",331.02,349.62,330.89,345.45,6095900,345.45],["2009-02-23",347,349.8,329.55,330.06,5221100,330.06],["2009-02-20",338.05,348.92,335,346.45,6217100,346.45],["2009-02-19",357.47,359.8,341.41,342.64,4988700,342.64],["2009-02-18",347.24,353.38,340.52,353.11,6024500,353.11],["2009-02-17",346.51,347.09,339.69,342.66,5680400,342.66],["2009-02-13",362.19,362.99,355.23,357.68,4146700,357.68],["2009-02-12",353.16,363.62,351.48,363.05,5550300,363.05],["2009-02-11",358.95,365,353,358.04,5231600,358.04],["2009-02-10",375.98,377.5,357.89,358.51,7103700,358.51],["2009-02-09",371.28,381,367.3,378.77,4977300,378.77],["2009-02-06",356.46,373.81,355.44,371.28,7038100,371.28],["2009-02-05",340.91,355.38,337,353.72,7264400,353.72],["2009-02-04",340.07,354.44,339.17,343,6817400,343],["2009-02-03",342.57,343,333.83,340.45,6556500,340.45],["2009-02-02",334.29,345,332,340.57,5206900,340.57],["2009-01-30",344.69,348.8,336,338.53,4672000,338.53],["2009-01-29",344.54,345.05,340.11,343.32,7283800,343.32],["2009-01-28",337.98,352.33,336.31,348.67,7691400,348.67],["2009-01-27",326.45,333.87,324.27,331.48,4927300,331.48],["2009-01-26",324.85,328,320.56,323.87,4610700,323.87],["2009-01-23",309.27,331.96,304.22,324.7,10732800,324.7],["2009-01-22",298.04,309.35,295.15,306.5,8267000,306.5],["2009-01-21",288.35,303.5,288.35,303.08,4924500,303.08],["2009-01-20",299.14,299.5,282.75,282.75,5048200,282.75],["2009-01-16",305.02,308.25,295.7,299.67,5224400,299.67],["2009-01-15",297.57,303.58,286.79,298.99,5934500,298.99],["2009-01-14",310,313.8,297.75,300.97,5467900,300.97],["2009-01-13",311.77,320.6,310.39,314.32,4432500,314.32],["2009-01-12",316.31,318.95,310.23,312.69,3304300,312.69],["2009-01-09",327.5,327.5,313.4,315.07,4340500,315.07],["2009-01-08",318.28,325.19,317.34,325.19,3600700,325.19],["2009-01-07",328.32,330.91,318.75,322.01,4494500,322.01],["2009-01-06",332.98,340.8,326.39,334.06,6425200,334.06],["2009-01-05",321,331.24,315,328.05,4889000,328.05],["2009-01-02",308.6,321.82,305.5,321.32,3610500,321.32],["2008-12-31",304.2,311,302.61,307.65,2886800,307.65],["2008-12-30",300.8,306.81,298.71,303.11,3843500,303.11],["2008-12-29",300.22,301.38,291.58,297.42,3701900,297.42],["2008-12-26",304.07,305.26,298.31,300.36,1959100,300.36],["2008-12-24",301.48,306.34,298.38,302.95,1921500,302.95],["2008-12-23",300.43,303.31,296.67,298.02,3777700,298.02],["2008-12-22",308.56,309.5,290.63,297.11,3917600,297.11],["2008-12-19",310.99,317.79,309,310.17,5612600,310.17],["2008-12-18",316.7,320.35,309.11,310.28,4763500,310.28],["2008-12-17",318.64,322.13,312.42,315.24,5789700,315.24],["2008-12-16",314.52,329.5,311.27,325.28,7059600,325.28],["2008-12-15",314.01,318.49,305.11,310.67,6737900,310.67],["2008-12-12",295.71,316.47,294,315.76,5722100,315.76],["2008-12-11",304.17,312.88,297.8,300.22,6179200,300.22],["2008-12-10",309.24,314.9,304.51,308.82,5237000,308.82],["2008-12-09",297.69,318,297.01,305.97,6889900,305.97],["2008-12-08",289.99,309.44,282,302.11,8144300,302.11],["2008-12-05",271.02,284.24,264.02,283.99,6521200,283.99],["2008-12-04",276.53,283.49,268.77,274.34,4886600,274.34],["2008-12-03",269.85,281.36,265.34,279.43,5904800,279.43],["2008-12-02",269.73,277.78,262.58,275.11,5839700,275.11],["2008-12-01",286.68,287.38,265.98,265.99,5711200,265.99],["2008-11-28",290.58,296.45,288.28,292.96,2565500,292.96],["2008-11-26",280.28,295.46,276.2,292.09,6356600,292.09],["2008-11-25",268.68,286.66,267.32,282.05,10771200,282.05],["2008-11-24",269.26,269.95,249.01,257.44,10054700,257.44],["2008-11-21",262.51,269.37,247.3,262.43,10244500,262.43],["2008-11-20",274.89,282.94,259.04,259.56,9779400,259.56],["2008-11-19",295.39,300.19,278.58,280.18,7834600,280.18],["2008-11-18",301.57,303.73,285.35,297.42,8346100,297.42],["2008-11-17",303,310.16,297.95,300.12,7543800,300.12],["2008-11-14",303.25,324.99,302.56,310.02,9517100,310.02],["2008-11-13",291.77,313,280,312.08,13234700,312.08],["2008-11-12",302.05,312.49,287.76,291,10051100,291],["2008-11-11",308.69,316.3,300.52,311.46,10146600,311.46],["2008-11-10",328,329.44,309.47,318.78,8080100,318.78],["2008-11-07",333.12,341.15,325.33,331.14,4681300,331.14],["2008-11-06",339.97,344.42,325.81,331.22,8574800,331.22],["2008-11-05",362.15,368.88,341.31,342.24,6946500,342.24],["2008-11-04",353.44,372.36,345.5,366.94,7349900,366.94],["2008-11-03",357.58,362.99,341.43,346.49,5954500,346.49],["2008-10-31",356.16,371.96,354.27,359.36,7423300,359.36],["2008-10-30",368.46,372,358.37,359.69,7988900,359.69],["2008-10-29",365.79,371,352.37,358,9756600,358],["2008-10-28",339.05,369.31,328.51,368.75,8105400,368.75],["2008-10-27",334.81,343,325.6,329.49,6200700,329.49],["2008-10-24",326.47,350.47,324.74,339.29,7359000,339.29],["2008-10-23",353.65,358,337.99,352.32,6478900,352.32],["2008-10-22",356.99,369.69,344,355.67,6560000,355.67],["2008-10-21",372.39,383.78,362,362.75,5782000,362.75],["2008-10-20",379.75,380.98,359.59,379.32,6753400,379.32],["2008-10-17",378.96,386,363.55,372.54,14249200,372.54],["2008-10-16",332.76,356.5,309.44,353.02,16239700,353.02],["2008-10-15",354.65,359,338.83,339.17,6721400,339.17],["2008-10-14",393.53,394.5,357,362.71,7784800,362.71],["2008-10-13",355.79,381.95,345.75,381.02,8905500,381.02],["2008-10-10",313.16,341.89,310.3,332,10597800,332],["2008-10-09",344.52,348.57,321.67,328.98,8075000,328.98],["2008-10-08",330.16,358.99,326.11,338.11,11826400,338.11],["2008-10-07",373.33,374.98,345.37,346.01,11054400,346.01],["2008-10-06",373.98,375.99,357.16,371.21,11220600,371.21],["2008-10-03",397.35,412.5,383.07,386.91,7992900,386.91],["2008-10-02",409.79,409.98,386,390.49,5984900,390.49],["2008-10-01",411.15,416.98,403.1,411.72,6234800,411.72],["2008-09-30",395.98,425.08,392.32,400.52,3086300,400.52],["2008-09-29",419.51,423.51,380.71,381,10762900,381],["2008-09-26",428,437.16,421.03,431.04,5292500,431.04],["2008-09-25",438.84,450,435.98,439.6,5020300,439.6],["2008-09-24",430.34,445,430.11,435.11,4242000,435.11],["2008-09-23",433.25,440.79,425.72,429.27,5204200,429.27],["2008-09-22",454.13,454.13,429,430.14,4407300,430.14],["2008-09-19",461,462.07,443.28,449.15,10006000,449.15],["2008-09-18",422.64,439.18,410.5,439.08,8589400,439.08],["2008-09-17",438.48,439.14,413.44,414.49,9126900,414.49],["2008-09-16",425.96,449.28,425.49,442.93,6990700,442.93],["2008-09-15",424,441.97,423.71,433.86,6567400,433.86],["2008-09-12",430.21,441.99,429,437.66,6028000,437.66],["2008-09-11",408.35,435.09,406.38,433.75,6471400,433.75],["2008-09-10",424.47,424.48,409.68,414.16,6226800,414.16],["2008-09-09",423.17,432.38,415,418.66,7229600,418.66],["2008-09-08",452.02,452.94,417.55,419.95,9017900,419.95],["2008-09-05",445.49,452.46,440.08,444.25,4534300,444.25],["2008-09-04",460,463.24,449.4,450.26,4848500,450.26],["2008-09-03",468.73,474.29,459.58,464.41,4314600,464.41],["2008-09-02",476.77,482.18,461.42,465.25,6111500,465.25],["2008-08-29",469.75,471.01,462.33,463.29,3848200,463.29],["2008-08-28",472.49,476.45,470.33,473.78,3029700,473.78],["2008-08-27",473.73,474.83,464.84,468.58,4387100,468.58],["2008-08-26",483.46,483.46,470.59,474.16,3308200,474.16],["2008-08-25",486.11,497,481.5,483.01,2014300,483.01],["2008-08-22",491.5,494.88,489.48,490.59,2297200,490.59],["2008-08-21",482.92,489.9,479.27,486.53,3514100,486.53],["2008-08-20",494.72,496.69,482.57,485,3982100,485],["2008-08-19",490.43,498.28,486.63,490.5,3046500,490.5],["2008-08-18",509.84,510,495.51,498.3,3333900,498.3],["2008-08-15",506.99,510.66,505.5,510.15,3545700,510.15],["2008-08-14",497.7,507.61,496.29,505.49,2918600,505.49],["2008-08-13",501.6,503.54,493.88,500.03,3625500,500.03],["2008-08-12",502,506.13,498,502.61,2755700,502.61],["2008-08-11",492.47,508.88,491.78,500.84,4239300,500.84],["2008-08-08",480.15,495.75,475.69,495.01,3739300,495.01],["2008-08-07",482,484,476.41,479.12,2773800,479.12],["2008-08-06",478.37,489.77,472.51,486.34,3375800,486.34],["2008-08-05",467.59,480.08,466.33,479.85,3584500,479.85],["2008-08-04",468.12,473.01,461.9,463,2487000,463],["2008-08-01",472.51,473.22,462.5,467.86,3007900,467.86],["2008-07-31",474.56,480.89,471.44,473.75,2865100,473.75],["2008-07-30",485.5,486.02,472.81,482.7,3490700,482.7],["2008-07-29",479.3,487.26,478,483.11,2802800,483.11],["2008-07-28",492.09,492.09,475.13,477.12,3160000,477.12],["2008-07-25",486.49,493.13,481.5,491.98,3183500,491.98],["2008-07-24",496.7,496.87,475.62,475.62,3540900,475.62],["2008-07-23",481.61,497.23,478.1,489.22,4894100,489.22],["2008-07-22",466.72,480.25,465.6,477.11,4691500,477.11],["2008-07-21",480.88,484.09,465.7,468.8,5901500,468.8],["2008-07-18",498.35,498.98,478.19,481.32,11292400,481.32],["2008-07-17",534.16,537.05,524.5,533.44,8787400,533.44],["2008-07-16",514.04,536.5,510.6,535.6,4742200,535.6],["2008-07-15",516.28,527.5,501.1,516.09,6071000,516.09],["2008-07-14",539,540.06,515.45,521.62,4424800,521.62],["2008-07-11",536.5,539.5,519.43,533.8,4981400,533.8],["2008-07-10",545,549.5,530.72,540.57,4331700,540.57],["2008-07-09",550.76,555.68,540.73,541.55,4154000,541.55],["2008-07-08",545.99,555.19,540,554.53,4932400,554.53],["2008-07-07",542.3,549,535.6,543.91,4255200,543.91],["2008-07-03",530.88,539.23,527.5,537,2400500,537],["2008-07-02",536.51,540.38,526.06,527.04,4223000,527.04],["2008-07-01",519.58,536.72,517,534.73,4959900,534.73],["2008-06-30",532.47,538,523.06,526.42,3765300,526.42],["2008-06-27",527.68,530,515.09,528.07,5447500,528.07],["2008-06-26",544.1,544.93,528.26,528.82,5659500,528.82],["2008-06-25",544.97,557.8,543.67,551,4122200,551],["2008-06-24",545.14,551.19,535.1,542.3,4672600,542.3],["2008-06-23",545.36,553.15,542.02,545.21,3635900,545.21],["2008-06-20",556.98,556.98,544.51,546.43,5983100,546.43],["2008-06-19",555.35,563.78,550.81,560.2,5683100,560.2],["2008-06-18",564.51,568.99,559.16,562.38,3381200,562.38],["2008-06-17",576.35,578.07,568.38,569.46,3462900,569.46],["2008-06-16",566.5,579.1,566.5,572.81,3542800,572.81],["2008-06-13",561.49,575.7,561.34,571.51,6184400,571.51],["2008-06-12",548.76,558,546.88,552.95,5491600,552.95],["2008-06-11",556.24,557.34,544.46,545.2,3812900,545.2],["2008-06-10",549.56,558.82,546.78,554.17,3657400,554.17],["2008-06-09",568.06,570,545.4,557.87,5288300,557.87],["2008-06-06",579.75,580.72,567,567,4734500,567],["2008-06-05",577.08,588.04,576.21,586.3,3916700,586.3],["2008-06-04",565.33,578,564.55,572.22,3363200,572.22],["2008-06-03",576.5,580.5,560.61,567.3,4305300,567.3],["2008-06-02",582.5,583.89,571.27,575,3674200,575],["2008-05-30",583.47,589.92,581.3,585.8,3225200,585.8],["2008-05-29",574.79,585.88,573.2,583,4845000,583],["2008-05-28",567.94,571.49,561.1,568.24,4050400,568.24],["2008-05-27",544.96,562.6,543.85,560.9,3865500,560.9],["2008-05-23",546.96,553,537.81,544.62,4431500,544.62],["2008-05-22",551.95,554.21,540.25,549.46,5076300,549.46],["2008-05-21",578.52,581.41,547.89,549.99,6468100,549.99],["2008-05-20",574.63,582.48,572.91,578.6,3313600,578.6],["2008-05-19",578.55,588.88,573.52,577.52,5604500,577.52],["2008-05-16",581.43,584.68,578.32,580.07,4274100,580.07],["2008-05-15",579,582.95,575.61,581,4342700,581],["2008-05-14",586.49,591.19,575.25,576.3,4375800,576.3],["2008-05-13",586.23,587.95,578.55,583,5163500,583],["2008-05-12",574.75,586.75,568.91,584.94,4863900,584.94],["2008-05-09",579,585,571.3,573.2,4484900,573.2],["2008-05-08",586.2,589.3,578.91,583.01,5122900,583.01],["2008-05-07",590.27,599.49,576.43,579,6613000,579],["2008-05-06",591,592,583,586.36,4629300,586.36],["2008-05-05",598.86,599,587.13,594.9,6281000,594.9],["2008-05-02",598.49,602.45,579.3,581.29,6998800,581.29],["2008-05-01",578.31,594.93,576.97,593.08,6602800,593.08],["2008-04-30",562.21,584.86,558.47,574.29,7903000,574.29],["2008-04-29",550.83,563.4,550.01,558.47,4346000,558.47],["2008-04-28",545.88,556.81,539,552.12,4008600,552.12],["2008-04-25",549.02,553,542.73,544.06,4164400,544.06],["2008-04-24",551.29,554.49,540.02,543.04,4135100,543.04],["2008-04-23",557.94,559.31,540.95,546.49,4921500,546.49],["2008-04-22",537.57,560.83,537.56,555,7938500,555],["2008-04-21",539.39,542.59,530.29,537.79,7439700,537.79],["2008-04-18",535.21,547.7,524.77,539.41,18235600,539.41],["2008-04-17",455.63,459.37,446.52,449.54,13353000,449.54],["2008-04-16",444.4,458.28,441,455.03,7630700,455.03],["2008-04-15",458.13,459.72,443.72,446.84,4577600,446.84],["2008-04-14",457.16,457.45,450.15,451.66,3842600,451.66],["2008-04-11",464.07,467.26,455.01,457.45,4169700,457.45],["2008-04-10",464.96,473.86,461.85,469.08,5072400,469.08],["2008-04-09",469.13,472,457.54,464.19,6048100,464.19],["2008-04-08",473.04,474.14,462.01,467.81,4547000,467.81],["2008-04-07",477.03,485.44,473.53,476.82,5943500,476.82],["2008-04-04",457.01,477.83,456.2,471.09,5897200,471.09],["2008-04-03",461.73,463.29,448.13,455.12,6778400,455.12],["2008-04-02",469.9,475.74,460.39,465.7,5999000,465.7],["2008-04-01",447.74,466.5,446.87,465.71,6093100,465.71],["2008-03-31",435.64,442.69,432.01,440.47,4446400,440.47],["2008-03-28",447.46,453.57,434.31,438.08,4376200,438.08],["2008-03-27",446,448.61,440.49,444.08,5832200,444.08],["2008-03-26",452.59,462.87,449.29,458.19,5225700,458.19],["2008-03-25",457.46,457.47,446,450.78,5831600,450.78],["2008-03-24",438.43,465.78,437.72,460.56,6763500,460.56],["2008-03-20",427.32,435.7,417.5,433.55,9913400,433.55],["2008-03-19",441.11,447.5,431.67,432,6179000,432],["2008-03-18",428.98,440.84,425.53,439.16,7237200,439.16],["2008-03-17",427.99,433.71,412.11,419.87,7888200,419.87],["2008-03-14",442.98,449.34,430.62,437.92,6574400,437.92],["2008-03-13",432.67,446.98,428.78,443.01,7726600,443.01],["2008-03-12",440.01,447.88,438.07,440.18,6651900,440.18],["2008-03-11",425.26,440.15,424.65,439.84,8826900,439.84],["2008-03-10",428.83,431,413.04,413.62,7987600,413.62],["2008-03-07",428.88,440,426.24,433.35,8071800,433.35],["2008-03-06",447.69,453.3,431.18,432.7,7470100,432.7],["2008-03-05",445.25,454.17,444,447.7,7436600,447.7],["2008-03-04",450.95,453.36,435.78,444.6,13621700,444.6],["2008-03-03",471.51,472.72,450.11,457.02,7554500,457.02],["2008-02-29",471.87,479.74,464.65,471.18,9425400,471.18],["2008-02-28",470.5,479.09,467.36,475.39,6586900,475.39],["2008-02-27",460.13,475.49,459.64,472.86,10121900,472.86],["2008-02-26",461.2,466.47,446.85,464.19,23287300,464.19],["2008-02-25",505.95,506.5,485.74,486.44,8372800,486.44],["2008-02-22",502.06,509,497.55,507.8,5515900,507.8],["2008-02-21",512.85,513.21,499.5,502.86,5677800,502.86],["2008-02-20",503.51,511.01,498.82,509,6662200,509],["2008-02-19",534.94,535.06,506.5,508.95,6350400,508.95],["2008-02-15",528.31,532.66,524.33,529.64,5240100,529.64],["2008-02-14",538.35,541.04,531,532.25,6476700,532.25],["2008-02-13",522.5,534.99,518.69,534.62,6624700,534.62],["2008-02-12",523.39,530.6,513.03,518.09,6662300,518.09],["2008-02-11",520.52,523.71,513.4,521.16,5826000,521.16],["2008-02-08",509.41,517.73,508.7,516.69,6828900,516.69],["2008-02-07",496.86,514.19,494.76,504.95,7928900,504.95],["2008-02-06",511.14,511.17,497.93,501.71,7636400,501.71],["2008-02-05",489.43,509,488.52,506.8,11203300,506.8],["2008-02-04",509.07,512.78,492.55,495.43,13157100,495.43],["2008-02-01",528.67,536.67,510,515.9,17600500,515.9],["2008-01-31",539.01,573,534.29,564.3,14871300,564.3],["2008-01-30",549.19,560.43,543.51,548.27,7939600,548.27],["2008-01-29",560.47,561.33,540.67,550.52,6283000,550.52],["2008-01-28",570.97,572.24,548.6,555.98,5816700,555.98],["2008-01-25",591.81,595,566.18,566.4,6966000,566.4],["2008-01-24",558.8,579.69,554.14,574.49,9400900,574.49],["2008-01-23",560.71,568,519,548.62,16965700,548.62],["2008-01-22",562.03,597.5,561.2,584.35,9501500,584.35],["2008-01-18",608.36,609.99,598.45,600.25,8539600,600.25],["2008-01-17",620.76,625.74,598.01,600.79,8216800,600.79],["2008-01-16",628.97,639.99,601.93,615.95,10560000,615.95],["2008-01-15",645.9,649.05,635.38,637.65,5568200,637.65],["2008-01-14",651.14,657.4,645.25,653.82,4447500,653.82],["2008-01-11",642.7,649.47,630.11,638.25,4977000,638.25],["2008-01-10",645.01,657.2,640.11,646.73,6334200,646.73],["2008-01-09",630.04,653.34,622.51,653.2,6739700,653.2],["2008-01-08",653,659.96,631,631.68,5339100,631.68],["2008-01-07",653.94,662.28,637.35,649.25,6403400,649.25],["2008-01-04",679.69,680.96,655,657,5359800,657],["2008-01-03",685.26,686.85,676.52,685.33,3252500,685.33],["2008-01-02",692.87,697.37,677.73,685.19,4306900,685.19],["2007-12-31",698.57,702.49,690.58,691.48,2376200,691.48],["2007-12-28",704.93,707.95,696.54,702.53,2562700,702.53],["2007-12-27",707.07,716,700.74,700.74,2942500,700.74],["2007-12-26",698.99,713.22,698.21,710.84,2530000,710.84],["2007-12-24",694.99,700.73,693.06,700.73,1628400,700.73],["2007-12-21",697.88,699.26,693.24,696.69,5382000,696.69],["2007-12-20",685.83,691,680.61,689.69,4422200,689.69],["2007-12-19",674.21,679.5,669,677.37,4421100,677.37],["2007-12-18",674.16,676.71,652.5,673.35,7166700,673.35],["2007-12-17",688,695.42,663.67,669.23,5486000,669.23],["2007-12-14",687.51,699.7,687.26,689.96,3673500,689.96],["2007-12-13",696.31,697.62,681.21,694.05,5040800,694.05],["2007-12-12",714,714.32,688.5,699.35,6159100,699.35],["2007-12-11",719.94,720.99,698.78,699.2,6139100,699.2],["2007-12-10",715.99,724.8,714,718.42,3856200,718.42],["2007-12-07",714.99,718,710.5,714.87,3852100,714.87],["2007-12-06",697.8,716.56,697.01,715.26,4909000,715.26],["2007-12-05",692.73,698.93,687.5,698.51,4209600,698.51],["2007-12-04",678.31,692,677.12,684.16,4231800,684.16],["2007-12-03",691.01,695,681.14,681.53,4325100,681.53],["2007-11-30",711,711.06,682.11,693,7895500,693],["2007-11-29",690.75,702.79,687.77,697,6208000,697],["2007-11-28",682.11,694.3,672.14,692.26,7916500,692.26],["2007-11-27",674.8,676.43,650.26,673.57,8904500,673.57],["2007-11-26",680.2,693.4,665,666,6790100,666],["2007-11-23",670,678.28,668.11,676.7,2738700,676.7],["2007-11-21",643.77,669.97,642.08,660.52,7013500,660.52],["2007-11-20",636.48,659.1,632.87,648.54,9840600,648.54],["2007-11-19",629.59,636.77,618.5,625.85,5527400,625.85],["2007-11-16",633.94,635.49,616.02,633.63,9042800,633.63],["2007-11-15",638.57,647.5,624,629.65,6967700,629.65],["2007-11-14",673.28,675.49,636.27,641.68,8094700,641.68],["2007-11-13",644.99,660.92,632.07,660.55,8426100,660.55],["2007-11-12",657.74,669.93,626.21,632.07,10227300,632.07],["2007-11-09",675.78,681.88,661.21,663.97,11388100,663.97],["2007-11-08",734.6,734.89,677.18,693.84,16512200,693.84],["2007-11-07",741.13,747.24,723.14,732.94,8252900,732.94],["2007-11-06",737.56,741.79,725,741.79,8436300,741.79],["2007-11-05",706.99,730.23,706.07,725.65,8883700,725.65],["2007-11-02",710.51,713.58,697.34,711.25,5841500,711.25],["2007-11-01",702.79,713.72,701.78,703.21,6527200,703.21],["2007-10-31",700.69,707,696.04,707,6876800,707],["2007-10-30",677.51,699.91,677.51,694.77,6900600,694.77],["2007-10-29",677.77,680,672.09,679.23,3066300,679.23],["2007-10-26",674.03,676.54,668.06,674.6,3353900,674.6],["2007-10-25",678.68,678.97,663.55,668.51,5795500,668.51],["2007-10-24",672.71,677.47,659.56,675.82,7404200,675.82],["2007-10-23",661.25,677.6,660,675.77,6793700,675.77],["2007-10-22",638.67,655,636.28,650.75,6664400,650.75],["2007-10-19",654.56,658.49,643.23,644.71,15789000,644.71],["2007-10-18",635.41,641.37,628.5,639.62,12289200,639.62],["2007-10-17",630.45,634,621.59,633.48,6030500,633.48],["2007-10-16",618.49,625.92,611.99,616,6025300,616],["2007-10-15",638.47,639.86,615.55,620.11,6943800,620.11],["2007-10-12",623.98,638.4,618.24,637.39,6823700,637.39],["2007-10-11",633.64,641.41,609,622,11799000,622],["2007-10-10",621.36,625.68,616.8,625.39,5385600,625.39],["2007-10-09",615.11,623.78,608.39,615.18,8767800,615.18],["2007-10-08",595,610.26,593.95,609.62,5028000,609.62],["2007-10-05",587.11,596,587.01,594.05,5068700,594.05],["2007-10-04",585.09,585.09,577.06,579.03,2986700,579.03],["2007-10-03",586.25,588.99,580.36,584.02,3879500,584.02],["2007-10-02",583.38,596.81,580.01,584.39,7067500,584.39],["2007-10-01",569.97,584.35,569.61,582.55,4711300,582.55],["2007-09-28",567,569.55,564.12,567.27,2639500,567.27],["2007-09-27",571.73,571.74,565.78,567.5,2056300,567.5],["2007-09-26",570.4,571.79,563.81,568.16,3346100,568.16],["2007-09-25",564,569.56,562.86,569,2730600,569],["2007-09-24",561,571.46,560,568.02,5297000,568.02],["2007-09-21",556.34,560.79,552.83,560.1,8011700,560.1],["2007-09-20",547,556.8,546.03,552.83,5525000,552.83],["2007-09-19",539.27,549.45,538.86,546.85,5526900,546.85],["2007-09-18",526.52,537.25,524.27,535.27,4215700,535.27],["2007-09-17",526.53,529.28,524.07,525.3,2197500,525.3],["2007-09-14",523.2,530.27,522.22,528.75,2764900,528.75],["2007-09-13",524.06,527.21,523.22,524.78,1891100,524.78],["2007-09-12",520.53,527.98,519,522.65,2986000,522.65],["2007-09-11",516.99,521.65,515.73,521.33,2703600,521.33],["2007-09-10",521.28,522.07,510.88,514.48,3225800,514.48],["2007-09-07",517.86,521.24,516.8,519.35,3663600,519.35],["2007-09-06",529.36,529.83,518.24,523.52,3625900,523.52],["2007-09-05",523.4,529.48,522.25,527.8,3312900,527.8],["2007-09-04",515.02,528,514.62,525.15,3693700,525.15],["2007-08-31",513.1,516.5,511.47,515.25,2977600,515.25],["2007-08-30",512.36,515.4,510.58,511.4,2651700,511.4],["2007-08-29",507.84,513.3,507.23,512.88,2549300,512.88],["2007-08-28",511.53,514.98,505.79,506.4,3273900,506.4],["2007-08-27",514.43,517.45,511.4,513.26,2325100,513.26],["2007-08-24",512.61,515.55,508.5,515,2472700,515],["2007-08-23",516,516.13,507,512.19,3076700,512.19],["2007-08-22",509.96,516.25,509.25,512.75,3252700,512.75],["2007-08-21",498.94,508.16,497.77,506.61,3610600,506.61],["2007-08-20",502.46,502.56,496,497.92,2697300,497.92],["2007-08-17",497.44,501,491.65,500.04,5479400,500.04],["2007-08-16",492.02,496.43,480.46,491.52,8645600,491.52],["2007-08-15",509,511.69,496.71,497.55,5409500,497.55],["2007-08-14",515.72,517.4,508,508.6,3633700,508.6],["2007-08-13",519.54,519.75,513.03,515.5,3179300,515.5],["2007-08-10",510.18,518.72,505.63,515.75,5875200,515.75],["2007-08-09",520.8,526.82,514.63,514.73,4846500,514.73],["2007-08-08",519.34,525.78,517.09,525.78,4068800,525.78],["2007-08-07",509.75,519.88,509.04,516.02,4264300,516.02],["2007-08-06",503,510.15,502.5,510,3651500,510],["2007-08-03",510.05,513.2,503,503,3176200,503],["2007-08-02",513.72,514.99,509,511.01,3154900,511.01],["2007-08-01",510.5,516.51,508.14,512.94,4421500,512.94],["2007-07-31",520.23,520.44,510,510,4270500,510],["2007-07-30",512.92,519.34,510.5,516.11,3963300,516.11],["2007-07-27",508.53,516.62,505.5,511.89,5509100,511.89],["2007-07-26",508.74,512.59,498.88,508,6883400,508],["2007-07-25",516.98,517.02,505.56,509.76,5545000,509.76],["2007-07-24",509.3,518.69,507.11,514,5572100,514],["2007-07-23",519.01,520,512.15,512.51,6356700,512.51],["2007-07-20",511.9,523.18,509.5,520.12,17772300,520.12],["2007-07-19",553.46,553.52,542.24,548.59,11127200,548.59],["2007-07-18",553.89,554.5,543.81,549.5,6080000,549.5],["2007-07-17",555.04,557.73,552.38,555,4328600,555],["2007-07-16",550.3,558.58,549.31,552.99,6599500,552.99],["2007-07-13",547.91,552.67,547.25,552.16,5237100,552.16],["2007-07-12",545.86,547.32,540.22,545.33,3441600,545.33],["2007-07-11",543.61,546.5,540.01,544.47,3309300,544.47],["2007-07-10",543.79,547,541.65,543.34,3856000,543.34],["2007-07-09",543,548.74,540.26,542.56,3729800,542.56],["2007-07-06",541.25,543.87,538.73,539.4,2747000,539.4],["2007-07-05",535.56,544.4,532.15,541.63,4942900,541.63],["2007-07-03",531.06,534.4,527.5,534.34,1871800,534.34],["2007-07-02",525.49,531.85,524.2,530.38,3487600,530.38],["2007-06-29",526.02,527.4,519.46,522.7,3880600,522.7],["2007-06-28",524.88,529.5,523.8,525.01,4168400,525.01],["2007-06-27",525,527.99,519.56,526.29,6123100,526.29],["2007-06-26",532.73,533.2,526.24,530.26,5689500,530.26],["2007-06-25",528.98,534.99,523.38,527.42,7925000,527.42],["2007-06-22",516.42,524.99,516.1,524.98,7203700,524.98],["2007-06-21",510.98,515.29,506.28,514.11,4409700,514.11],["2007-06-20",516.96,518.75,509.06,509.97,4338200,509.97],["2007-06-19",514.01,517.25,511.54,514.31,4355300,514.31],["2007-06-18",506.18,516,504.24,515.2,4835900,515.2],["2007-06-15",508.19,509,501.23,505.89,6174100,505.89],["2007-06-14",505.38,505.88,501.7,502.84,4621200,502.84],["2007-06-13",507.09,508.54,498.69,505.24,7034000,505.24],["2007-06-12",508.71,511.67,503.17,504.77,6419500,504.77],["2007-06-11",514.02,518.25,510,511.34,4647700,511.34],["2007-06-08",516.2,519.64,509.46,515.49,6358200,515.49],["2007-06-07",519.75,526.5,512.51,515.06,10630500,515.06],["2007-06-06",516.75,520.78,515.26,518.25,7886700,518.25],["2007-06-05",509.75,519,506.61,518.84,10447100,518.84],["2007-06-04",497.91,510.51,497.59,507.07,7101000,507.07],["2007-06-01",501,505.02,497.93,500.4,4799000,500.4],["2007-05-31",500.56,508.78,497.06,497.91,8924300,497.91],["2007-05-30",484.5,498.84,483,498.6,7245800,498.6],["2007-05-29",485,491.8,484,487.11,5218000,487.11],["2007-05-25",479.7,484.95,477.27,483.52,5348500,483.52],["2007-05-24",475.15,479.2,471.5,474.33,4173600,474.33],["2007-05-23",480.82,483.41,473.75,473.97,5060200,473.97],["2007-05-22",473,479.01,473,475.86,3839000,475.86],["2007-05-21",469.53,479.2,466.72,470.6,6159300,470.6],["2007-05-18",472.03,472.7,469.75,470.32,3695900,470.32],["2007-05-17",472.46,475.22,470.81,470.96,4660600,470.96],["2007-05-16",462,473.14,459.02,472.61,6554200,472.61],["2007-05-15",461.96,462.54,457.41,458,4119000,458],["2007-05-14",465.48,467.51,460,461.78,3872700,461.78],["2007-05-11",461.83,467,461,466.74,2944100,466.74],["2007-05-10",467.04,469.49,461.02,461.47,3686300,461.47],["2007-05-09",466.15,471.73,463.88,469.25,3889900,469.25],["2007-05-08",466.13,468.17,464.73,466.81,2905100,466.81],["2007-05-07",472.14,472.82,466.47,467.27,3020100,467.27],["2007-05-04",470.12,474.84,465.88,471.12,3950000,471.12],["2007-05-03",466.22,474.07,465.29,473.23,3594200,473.23],["2007-05-02",468.65,471.08,465.73,465.78,3062700,465.78],["2007-05-01",472.19,472.81,464.17,469,3658200,469],["2007-04-30",479.15,481.35,471.38,471.38,3641200,471.38],["2007-04-27",480.07,482.4,478.33,479.01,2925700,479.01],["2007-04-26",478.1,484.45,477.11,481.18,4124900,481.18],["2007-04-25",480,481.37,476.11,477.99,3966800,477.99],["2007-04-24",478.61,479.98,475.55,477.53,3694700,477.53],["2007-04-23",480.1,485,478.26,479.08,5674600,479.08],["2007-04-20",490.52,492.5,482.02,482.48,12161500,482.48],["2007-04-19",474.5,481.95,469.59,471.65,11009600,471.65],["2007-04-18",471.26,479.9,469.53,476.01,5670500,476.01],["2007-04-17",473.8,476.39,471.6,472.8,3210100,472.8],["2007-04-16",468.46,476.99,468.15,474.27,5077900,474.27],["2007-04-13",468.45,468.77,463.36,466.29,2794800,466.29],["2007-04-12",464,468,462.24,467.39,2707900,467.39],["2007-04-11",466.06,469.4,462.61,464.53,3812000,464.53],["2007-04-10",467.09,470.79,465.16,466.5,2979300,466.5],["2007-04-09",472.98,473,465.59,468.21,3062100,468.21],["2007-04-05",471.3,472.09,469.62,471.51,2715800,471.51],["2007-04-04",472.14,473,469.58,471.02,3778800,471.02],["2007-04-03",464.05,474.25,464,472.6,6501800,472.6],["2007-04-02",457.76,458.53,452.12,458.53,3448500,458.53],["2007-03-30",462.1,463.4,456.14,458.16,3380200,458.16],["2007-03-29",464.55,466,455,460.92,3988500,460.92],["2007-03-28",461.87,465.44,460.15,461.88,4591600,461.88],["2007-03-27",463.55,465.23,460.34,463.62,3741200,463.62],["2007-03-26",460.55,465,455.62,465,4710300,465],["2007-03-23",461.45,463.39,457.08,461.83,4111300,461.83],["2007-03-22",455.61,462.17,452.53,462.04,5680700,462.04],["2007-03-21",445.3,456.57,445.21,456.55,5798300,456.55],["2007-03-20",445.79,447.6,443.6,445.28,3421500,445.28],["2007-03-19",443.25,448.5,440.63,447.23,5197700,447.23],["2007-03-16",445.65,446.7,439.89,440.85,5659100,440.85],["2007-03-15",447.86,449.82,443.94,446.19,3944200,446.19],["2007-03-14",443.23,448.66,439,448,8016900,448],["2007-03-13",450.11,451.93,442.83,443.03,6377300,443.03],["2007-03-12",452.57,455.25,451.11,454.75,3465400,454.75],["2007-03-09",458,458.4,450.1,452.96,4977700,452.96],["2007-03-08",459.22,465.5,454.1,454.72,5362800,454.72],["2007-03-07",462.69,463.14,454.29,455.64,6534100,455.64],["2007-03-06",447.47,459,447.38,457.55,7533700,457.55],["2007-03-05",437.02,445.5,437,440.95,6355100,440.95],["2007-03-02",445.11,448.7,438.68,438.68,6583600,438.68],["2007-03-01",442.67,452.42,440,448.23,8685200,448.23],["2007-02-28",450.41,453.67,443.04,449.45,8032300,449.45],["2007-02-27",455,459.8,447.17,448.77,9312800,448.77],["2007-02-26",472.83,475.25,463.75,464.93,3969900,464.93],["2007-02-23",475.75,476.95,467.8,470.62,3882600,470.62],["2007-02-22",478.69,484.24,474.39,475.85,5743900,475.85],["2007-02-21",469.84,478.68,467.74,475.86,5640600,475.86],["2007-02-20",468.47,472.75,464.71,472.1,4067600,472.1],["2007-02-16",462.8,470.15,462.06,469.94,6177000,469.94],["2007-02-15",466,466.13,460.72,461.47,4042400,461.47],["2007-02-14",460,469.13,459.22,465.93,5698800,465.93],["2007-02-13",459.15,462.78,457.26,459.1,4062600,459.1],["2007-02-12",460.68,462.39,455.02,458.29,5754500,458.29],["2007-02-09",471.65,472.68,461.5,461.89,4858600,461.89],["2007-02-08",468.05,473.75,465.15,471.03,4076700,471.03],["2007-02-07",473.82,474.35,468.78,470.01,4119800,470.01],["2007-02-06",468.1,473.3,467.26,471.48,5321900,471.48],["2007-02-05",477.5,478,466.19,467.16,7206900,467.16],["2007-02-02",482.61,485,477.81,481.5,6286500,481.5],["2007-02-01",506,506.01,481.53,481.75,15658700,481.75],["2007-01-31",496.49,505,495.51,501.5,12206100,501.5],["2007-01-30",494,498,491.22,494.32,4180500,494.32],["2007-01-29",498,498.75,490.5,492.47,4775700,492.47],["2007-01-26",490.93,497.9,487.03,495.84,5496500,495.84],["2007-01-25",501,504.5,485.66,488.09,6368500,488.09],["2007-01-24",484.45,499.54,483.29,499.07,6059300,499.07],["2007-01-23",480.79,484.75,477.29,479.05,4665500,479.05],["2007-01-22",492.5,492.65,478.5,480.84,5404300,480.84],["2007-01-19",487.98,490.76,486.74,489.75,4978300,489.75],["2007-01-18",494.52,496.48,487.43,487.83,5932000,487.83],["2007-01-17",503.39,507.77,494.38,497.28,6699100,497.28],["2007-01-16",507.55,513,503.3,504.28,7568900,504.28],["2007-01-12",501.99,505,500,505,4473700,505],["2007-01-11",497.2,501.75,496.18,499.72,7208200,499.72],["2007-01-10",484.43,493.55,482.04,489.46,5968500,489.46],["2007-01-09",485.45,488.25,481.2,485.5,5381400,485.5],["2007-01-08",487.69,489.87,482.2,483.58,4754400,483.58],["2007-01-05",482.5,487.5,478.11,487.19,6872100,487.19],["2007-01-04",469,483.95,468.35,483.26,7887600,483.26],["2007-01-03",466,476.66,461.11,467.59,7706500,467.59],["2006-12-29",462.1,464.47,459.86,460.48,2559200,460.48],["2006-12-28",467.12,468.58,462.25,462.56,3116200,462.56],["2006-12-27",460,468.08,459.1,468.03,4231500,468.03],["2006-12-26",456.52,459.47,454.59,457.53,2074300,457.53],["2006-12-22",457.5,458.64,452.73,455.58,3988300,455.58],["2006-12-21",464.18,465.25,452.34,456.2,6953300,456.2],["2006-12-20",470,471.5,462.33,462.9,4367800,462.9],["2006-12-19",461.72,469.31,458.5,468.63,6587000,468.63],["2006-12-18",482.51,482.74,460.72,462.8,8016600,462.8],["2006-12-15",482.64,484.11,479.84,480.3,5190800,480.3],["2006-12-14",480.25,483.75,477.26,482.12,4748900,482.12],["2006-12-13",484.69,485.5,477.02,478.99,4662100,478.99],["2006-12-12",483.85,486.36,480.28,481.78,4181000,481.78],["2006-12-11",484.92,488.9,483.8,483.93,3263400,483.93],["2006-12-08",481.94,488.6,480,484.11,3974900,484.11],["2006-12-07",490.23,491.8,482.42,482.64,4664300,482.64],["2006-12-06",486.96,492.4,484.52,488.71,4450300,488.71],["2006-12-05",487.4,489.44,484.89,487,4103000,487],["2006-12-04",483,487.43,479.35,484.85,4899900,484.85],["2006-12-01",485.98,488.39,478.5,480.8,5631400,480.8],["2006-11-30",484.19,490.4,481.55,484.81,5577500,484.81],["2006-11-29",494.24,494.74,482.25,484.65,6315300,484.65],["2006-11-28",481.13,489.86,477.03,489.5,7797600,489.5],["2006-11-27",501.37,501.78,484.75,484.75,7324700,484.75],["2006-11-24",504.5,507.5,504,505,1732700,505],["2006-11-22",510.97,513,505.78,508.01,4500700,508.01],["2006-11-21",496.54,510,495.83,509.65,8427500,509.65],["2006-11-20",498.4,498.4,492.65,495.05,5124500,495.05],["2006-11-17",493.25,499.66,493,498.79,5511000,498.79],["2006-11-16",495,497.68,492.56,495.9,5092600,495.9],["2006-11-15",493.43,499.85,491.93,491.93,8370700,491.93],["2006-11-14",480.7,489.95,480.5,489.3,7223400,489.3],["2006-11-13",474.9,481.17,474.14,481.03,4341900,481.03],["2006-11-10",473.78,474.72,470.29,473.55,2796700,473.55],["2006-11-09",476.5,479.49,471.86,472.63,4879200,472.63],["2006-11-08",470.35,481.74,468.6,475,7965000,475],["2006-11-07",476.95,479.02,471.77,472.57,4897100,472.57],["2006-11-06",473.77,479.66,472.33,476.95,4991500,476.95],["2006-11-03",472.23,473.75,465.06,471.8,4907700,471.8],["2006-11-02",467.5,473.73,466.38,469.91,5236700,469.91],["2006-11-01",478.76,479.13,465.26,467.5,5426300,467.5],["2006-10-31",478.06,482.16,473.84,476.39,6285400,476.39],["2006-10-30",474.82,480.46,470.01,476.57,6563100,476.57],["2006-10-27",483.9,485.24,472.49,475.2,6604000,475.2],["2006-10-26",487.68,491.96,484.2,485.1,7031700,485.1],["2006-10-25",477.49,488.5,475.11,486.6,9187500,486.6],["2006-10-24",476.28,477.86,471.41,473.31,8660200,473.31],["2006-10-23",462.28,484.64,460.37,480.78,15104500,480.78],["2006-10-20",458.99,460.1,453.59,459.67,11647900,459.67],["2006-10-19",420.23,429.5,419.57,426.06,11503500,426.06],["2006-10-18",422.99,424.75,417.5,419.31,6017300,419.31],["2006-10-17",420.3,423.75,416.7,420.64,5211000,420.64],["2006-10-16",427.7,429.2,421.34,421.75,4319400,421.75],["2006-10-13",427.76,429.5,425.56,427.3,3622500,427.3],["2006-10-12",428.56,429.68,424,427.44,4844000,427.44],["2006-10-11",425.02,429.91,423.76,426.5,5635400,426.5],["2006-10-10",431.56,437.85,422.39,426.65,9788600,426.65],["2006-10-09",424.8,431.95,423.42,429,7583300,429],["2006-10-06",410.22,421.91,409.75,420.5,7336500,420.5],["2006-10-05",414.7,418.24,410.86,411.81,5789800,411.81],["2006-10-04",404.97,415.77,403.05,415.7,6661800,415.7],["2006-10-03",401.29,406.46,398.19,404.04,5464700,404.04],["2006-10-02",401.9,406,400.8,401.44,3651900,401.44],["2006-09-29",405.13,405.62,401.41,401.9,3310900,401.9],["2006-09-28",404.08,406.98,400.54,403.58,5107400,403.58],["2006-09-27",406.3,411.22,402.37,402.92,5876700,402.92],["2006-09-26",405.5,407.68,401.77,406.87,5289400,406.87],["2006-09-25",405.58,409.45,402.5,403.98,5737300,403.98],["2006-09-22",404.98,407.45,401.36,403.78,4649600,403.78],["2006-09-21",400.3,408.45,399.86,406.85,10692100,406.85],["2006-09-20",407.1,407.39,394.62,397,9147800,397],["2006-09-19",415.46,415.49,392.74,403.81,14292900,403.81],["2006-09-18",410,418.69,409.47,414.69,7106700,414.69],["2006-09-15",407.48,410.05,406.74,409.88,7838200,409.88],["2006-09-14",404.3,406.28,401.93,403.98,5366100,403.98],["2006-09-13",395.15,406.76,395.1,406.57,9768200,406.57],["2006-09-12",385,392.73,384.88,391.9,5442200,391.9],["2006-09-11",378.26,384.69,377.77,384.09,4529200,384.09],["2006-09-08",376.72,380.79,376.72,377.85,3083400,377.85],["2006-09-07",379.39,381.75,377.4,378.49,3842000,378.49],["2006-09-06",382.1,383.19,379.66,380.14,3724100,380.14],["2006-09-05",379.87,385.4,377.44,384.36,4074300,384.36],["2006-09-01",380.99,381.28,377.19,378.6,2672900,378.6],["2006-08-31",381.49,382.15,378.2,378.53,2959900,378.53],["2006-08-30",379.21,384.65,378.51,380.75,4044400,380.75],["2006-08-29",380.78,382.32,377.2,378.95,4460000,378.95],["2006-08-28",375.61,380.95,375,380.95,4164000,380.95],["2006-08-25",373.08,375.32,372.5,373.26,2466700,373.26],["2006-08-24",374.44,376.4,372.26,373.73,3482500,373.73],["2006-08-23",377.64,378.27,372.66,373.43,3642300,373.43],["2006-08-22",377.73,379.26,374.84,378.29,4164100,378.29],["2006-08-21",378.1,379,375.22,377.3,4023300,377.3],["2006-08-18",386.31,387.09,380.75,383.36,4952200,383.36],["2006-08-17",386.39,390,383.92,385.8,5080200,385.8],["2006-08-16",383.48,388.45,382.12,387.72,5853200,387.72],["2006-08-15",374.11,381.67,372.6,380.97,6698200,380.97],["2006-08-14",371.5,375.13,368.67,369.43,4968300,369.43],["2006-08-11",374.4,375.28,368,368.5,3766500,368.5],["2006-08-10",373.88,377.67,372.46,374.2,4261900,374.2],["2006-08-09",382.8,384.68,376.36,376.94,4311000,376.94],["2006-08-08",382.82,384.5,379.09,381,5743200,381],["2006-08-07",371.5,379.73,371.15,377.95,3946900,377.95],["2006-08-04",379.56,380.68,371.75,373.85,5095200,373.85],["2006-08-03",364.98,377.91,363.36,375.39,6327000,375.39],["2006-08-02",375.6,377.17,365.2,367.23,7097800,367.23],["2006-08-01",385.11,385.77,375.51,375.51,5463200,375.51],["2006-07-31",388,389.17,383.31,386.6,4595300,386.6],["2006-07-28",382,389.56,381.73,388.12,4083600,388.12],["2006-07-27",387.37,387.49,377.95,382.4,5641100,382.4],["2006-07-26",388.2,391.91,383,385.5,5531900,385.5],["2006-07-25",385.02,391.31,383.8,389.36,5761100,389.36],["2006-07-24",392.82,393.89,381.21,390.9,8086100,390.9],["2006-07-21",386.14,391.75,377.69,390.11,11754600,390.11],["2006-07-20",404.28,404.44,385.66,387.12,12538700,387.12],["2006-07-19",395.01,401.14,394.66,399,8518500,399],["2006-07-18",409.75,410.57,397.74,403.05,8536800,403.05],["2006-07-17",404.63,411,403.72,407.89,5811900,407.89],["2006-07-14",410.33,411.49,398.61,403.5,7552100,403.5],["2006-07-13",414,418.34,406.83,408.83,6924500,408.83],["2006-07-12",422.09,422.74,416.73,417.25,4906700,417.25],["2006-07-11",418.51,425.05,413.03,424.56,5971300,424.56],["2006-07-10",423.44,425.23,416.38,418.2,4436400,418.2],["2006-07-07",426.05,427.89,415.88,420.45,6041900,420.45],["2006-07-06",423.38,425.38,421.98,423.19,3687100,423.19],["2006-07-05",421.52,422.8,415.64,421.46,4985600,421.46],["2006-07-03",420.04,423.77,419.45,423.2,2156700,423.2],["2006-06-30",415.6,419.33,412.33,419.33,6258000,419.33],["2006-06-29",407.99,418.2,405.82,417.81,6658200,417.81],["2006-06-28",404.01,406.48,401.13,406.11,3710500,406.11],["2006-06-27",405.71,408,401.01,402.32,4107100,402.32],["2006-06-26",406.75,408.3,403.25,404.22,3551200,404.22],["2006-06-23",402.76,409.75,400.74,404.86,5314800,404.86],["2006-06-22",401.58,406,388,399.95,5911900,399.95],["2006-06-21",391.06,404,389.75,402.13,8744400,402.13],["2006-06-20",388.03,391.87,386.51,387.17,4039900,387.17],["2006-06-19",390.85,394.8,386.98,388.14,7633100,388.14],["2006-06-16",389.1,390.93,388,390.7,5304600,390.7],["2006-06-15",386.62,392.25,383,391,6785700,391],["2006-06-14",389.83,391.1,378.52,384.39,7772000,384.39],["2006-06-13",380.9,387,378.12,386.52,7659100,386.52],["2006-06-12",388.34,390.49,381,381.54,5019100,381.54],["2006-06-09",392.19,395.43,385.35,386.57,6157500,386.57],["2006-06-08",387.75,394.27,378.59,393.3,10359500,393.3],["2006-06-07",393.24,394.86,386.5,386.51,8911300,386.51],["2006-06-06",376.58,390,376.3,389.99,10259800,389.99],["2006-06-05",376.18,381.45,374.15,374.44,5558500,374.44],["2006-06-02",386.84,387.08,377.45,379.44,6386400,379.44],["2006-06-01",373.54,382.99,371.6,382.62,6278000,382.62],["2006-05-31",373.8,378.25,366.78,371.82,7981300,371.82],["2006-05-30",378.28,381,371.45,371.94,4316000,371.94],["2006-05-26",384.55,385.88,380.03,381.35,3667000,381.35],["2006-05-25",379.08,383,372.31,382.99,8194600,382.99],["2006-05-24",377.35,383.44,371.61,381.25,9553800,381.25],["2006-05-23",374.21,383.88,373.56,375.58,8983000,375.58],["2006-05-22",367.85,373.03,365.25,370.95,8604400,370.95],["2006-05-19",373.28,374.5,360.57,370.02,11398200,370.02],["2006-05-18",378.78,381.81,370.71,370.99,5835000,370.99],["2006-05-17",370.61,379.84,370.22,374.5,10643800,374.5],["2006-05-16",375.99,376.86,369.89,371.3,6491100,371.3],["2006-05-15",375.93,380.15,368.25,376.2,8590100,376.2],["2006-05-12",383.54,384.87,373.55,374.13,10087600,374.13],["2006-05-11",403.42,404.71,384.98,387,8892800,387],["2006-05-10",408.31,411.71,401.86,402.98,6187200,402.98],["2006-05-09",395.7,409,393.75,408.8,9140600,408.8],["2006-05-08",395.11,397.12,390.05,394.78,5118600,394.78],["2006-05-05",397.6,400.68,391.78,394.3,6065000,394.3],["2006-05-04",395.03,398.87,392.21,394.75,4652000,394.75],["2006-05-03",396.35,401.5,390.88,394.17,8072200,394.17],["2006-05-02",401.08,402.49,388.4,394.8,13104300,394.8],["2006-05-01",418.47,419.44,398.55,398.9,10361200,398.9],["2006-04-28",418.63,425.73,416.3,417.94,7421300,417.94],["2006-04-27",422.91,426.91,419.39,420.03,8337900,420.03],["2006-04-26",427.74,430.04,423.53,425.97,7277800,425.97],["2006-04-25",439.63,441.04,426,427.16,9569000,427.16],["2006-04-24",439.4,444.7,436.52,440.5,8836400,440.5],["2006-04-21",448.9,450.72,436.17,437.1,22551300,437.1],["2006-04-20",411.01,416,408.2,415,12271500,415],["2006-04-19",412.57,413.64,406.73,410.5,6781700,410.5],["2006-04-18",407.93,409.83,401.5,404.24,8137600,404.24],["2006-04-17",403.45,412.5,400.84,406.82,8259500,406.82],["2006-04-13",408.63,409.76,400.5,402.16,6552900,402.16],["2006-04-12",409,411.33,405.19,408.95,6017000,408.95],["2006-04-11",416.42,419.1,406.22,409.66,11107200,409.66],["2006-04-10",407.08,417.17,405.25,416.38,9320100,416.38],["2006-04-07",412.41,412.85,404.02,406.16,7025900,406.16],["2006-04-06",406.49,413.89,405.43,411.18,8598500,411.18],["2006-04-05",408.2,414.57,402.82,407.99,13410500,407.99],["2006-04-04",389.9,404.9,388.14,404.34,15715700,404.34],["2006-04-03",389.53,392.47,387.93,389.7,8122700,389.7],["2006-03-31",388.74,391.87,384.03,390,36521400,390],["2006-03-30",389.19,393.5,383.61,388.44,14711700,388.44],["2006-03-29",379.94,399,379.51,394.98,19027500,394.98],["2006-03-28",371.71,377.86,371.17,377.2,8945800,377.2],["2006-03-27",367.09,371.71,365,369.69,7023700,369.69],["2006-03-24",368.62,370.09,362.51,365.8,15180600,365.8],["2006-03-23",342.35,345.75,340.2,341.89,7434700,341.89],["2006-03-22",339.75,344.1,337.5,340.22,7596000,340.22],["2006-03-21",350.01,351.66,339.08,339.92,9831100,339.92],["2006-03-20",342.34,350.09,341.54,348.19,10407600,348.19],["2006-03-17",338.8,341.78,334.93,339.79,8551700,339.79],["2006-03-16",348.61,348.75,337.9,338.77,10016700,338.77],["2006-03-15",350.77,352.3,340.53,344.5,12768800,344.5],["2006-03-14",337.14,352.37,332.62,351.16,18450700,351.16],["2006-03-13",340.93,346.1,335.45,337.06,13642400,337.06],["2006-03-10",343.5,344.5,331.55,337.5,19325600,337.5],["2006-03-09",355.39,358.53,341.5,343,13910400,343],["2006-03-08",353.93,360.03,350.54,353.88,11745600,353.88],["2006-03-07",365.02,368.45,358.15,364.45,10378800,364.45],["2006-03-06",380.91,383.4,367.14,368.1,8939700,368.1],["2006-03-03",384.3,387.24,375.76,378.18,11962000,378.18],["2006-03-02",364.28,381.1,362.2,376.45,18330300,376.45],["2006-03-01",368.56,369.45,361.3,364.8,12061200,364.8],["2006-02-28",393.2,397.54,338.51,362.62,39437600,362.62],["2006-02-27",381.27,391.7,380.28,390.38,10212200,390.38],["2006-02-24",377.3,380.07,373.49,377.4,6484300,377.4],["2006-02-23",365.61,381.24,365.39,378.07,12551600,378.07],["2006-02-22",367.15,368.95,363.86,365.49,6476200,365.49],["2006-02-21",366.44,373.54,365.11,366.59,8686000,366.59],["2006-02-17",369.86,372.14,363.62,368.75,14320200,368.75],["2006-02-16",345.67,367,344.49,366.46,21315500,366.46],["2006-02-15",341.27,346,337.83,342.38,12947000,342.38],["2006-02-14",345.33,351.69,342.4,343.32,14654000,343.32],["2006-02-13",346.64,350.6,341.89,345.7,19717800,345.7],["2006-02-10",361.95,364.5,353.14,362.61,15223500,362.61],["2006-02-09",371.2,374.4,356.11,358.77,11912400,358.77],["2006-02-08",368.48,370.69,354.67,369.08,20804100,369.08],["2006-02-07",382.99,383.7,363.35,367.92,16630200,367.92],["2006-02-06",385.31,389.9,379.56,385.1,8940400,385.1],["2006-02-03",393.62,393.9,372.57,381.55,18281800,381.55],["2006-02-02",403.82,406.5,395.98,396.04,11807700,396.04],["2006-02-01",389.03,402,387.52,401.78,27122500,401.78],["2006-01-31",430.57,439.6,423.97,432.66,22066000,432.66],["2006-01-30",429.23,433.28,425,426.82,8588900,426.82],["2006-01-27",435,438.22,428.98,433.49,8452200,433.49],["2006-01-26",439.54,439.99,423.56,434.27,12926100,434.27],["2006-01-25",451.26,454.23,429.22,433,18739800,433],["2006-01-24",436.03,444.95,434.48,443.03,15464600,443.03],["2006-01-23",407.38,428.39,405.73,427.5,22741400,427.5],["2006-01-20",438.7,440.03,394.74,399.46,41116700,399.46],["2006-01-19",451.17,453.49,433,436.45,14537300,436.45],["2006-01-18",447.3,457.36,443.25,444.91,20485700,444.91],["2006-01-17",463.06,469.9,462.53,467.11,8270300,467.11],["2006-01-13",464.31,466.89,461.61,466.25,7656600,466.25],["2006-01-12",473.72,474.99,461.5,463.63,10125300,463.63],["2006-01-11",471.27,475.11,469.18,471.63,9007400,471.63],["2006-01-10",464.42,470.25,462.04,469.76,9097100,469.76],["2006-01-09",466.41,473.4,460.94,466.9,12791900,466.9],["2006-01-06",456.87,470.5,453.24,465.66,17756900,465.66],["2006-01-05",446,451.55,441.5,451.24,10808300,451.24],["2006-01-04",443.9,448.96,439.75,445.24,15286400,445.24],["2006-01-03",422.52,435.67,418.22,435.23,13121200,435.23],["2005-12-30",417.27,418.21,413.74,414.86,7587100,414.86],["2005-12-29",427.98,428.73,419.17,420.15,6945800,420.15],["2005-12-28",424.34,427.78,421.26,426.69,7117900,426.69],["2005-12-27",431.86,431.86,422.76,424.64,6702800,424.64],["2005-12-23",432.15,432.5,428.78,430.93,4595100,430.93],["2005-12-22",431.77,432.86,425.93,432.04,7546600,432.04],["2005-12-21",433.55,436.86,420.71,426.33,11221900,426.33],["2005-12-20",427.86,432.2,424.67,429.74,10084700,429.74],["2005-12-19",432.2,446.21,420.11,424.6,21936800,424.6],["2005-12-16",425.34,432.5,422.75,430.15,16330500,430.15],["2005-12-15",419.11,423.14,416.5,422.55,6045800,422.55],["2005-12-14",417.04,419.73,415.49,418.96,6630400,418.96],["2005-12-13",412.5,418,411.64,417.49,8157000,417.49],["2005-12-12",414.63,415.21,409.95,412.61,6950100,412.61],["2005-12-09",415,415.78,408.56,409.2,7643400,409.2],["2005-12-08",405.3,410.65,402.64,410.65,8910100,410.65],["2005-12-07",406.16,406.7,399.01,404.22,11665900,404.22],["2005-12-06",408.7,416.41,401.7,404.54,15114700,404.54],["2005-12-05",417,417.5,404.28,405.85,10289400,405.85],["2005-12-02",416.94,419.53,413.86,417.7,7543500,417.7],["2005-12-01",409.2,415.44,408.29,414.09,9744900,414.09],["2005-11-30",404.26,408.45,395.56,404.91,15596600,404.91],["2005-11-29",424.46,426.4,402.14,403.54,21495800,403.54],["2005-11-28",429.82,431.24,422.44,423.48,11008400,423.48],["2005-11-25",425.78,428.75,425.3,428.62,4840100,428.62],["2005-11-23",417.04,424.72,415.78,422.86,10085000,422.86],["2005-11-22",408.65,417.31,406.23,416.47,9596000,416.47],["2005-11-21",399.17,409.98,393.49,409.36,10335100,409.36],["2005-11-18",403.49,404.5,399.85,400.21,7025700,400.21],["2005-11-17",401.8,403.81,399.53,403.45,9212200,403.45],["2005-11-16",396.2,398.85,394.11,398.15,8695200,398.15],["2005-11-15",394.38,397,390.95,392.8,8624900,392.8],["2005-11-14",392.12,398.22,391.53,396.97,7807900,396.97],["2005-11-11",395.12,396.9,388.85,390.4,7063900,390.4],["2005-11-10",378.36,391.35,377.43,391.1,9128700,391.1],["2005-11-09",386.67,388.29,378.03,379.15,10466900,379.15],["2005-11-08",394.25,395.59,388.58,389.9,7897500,389.9],["2005-11-07",395.1,397.47,392.15,395.03,9591500,395.03],["2005-11-04",389.98,391.79,385.45,390.43,8824900,390.43],["2005-11-03",382.41,386.58,381.38,385.95,7448400,385.95],["2005-11-02",381.7,385,377.17,379.68,10565400,379.68],["2005-11-01",371.86,383.9,369.01,379.38,16356100,379.38],["2005-10-31",360.24,374.75,359.51,372.14,14342900,372.14],["2005-10-28",355.27,358.95,355.02,358.17,5903500,358.17],["2005-10-27",356.6,357.09,351.68,353.06,5134400,353.06],["2005-10-26",346.28,356,346.19,355.44,8907500,355.44],["2005-10-25",345.78,347.4,342.86,346.91,6878300,346.91],["2005-10-24",343.37,349.3,342.19,348.65,9431700,348.65],["2005-10-21",345.8,346.43,333,339.9,22892400,339.9],["2005-10-20",309.99,311.13,301.21,303.2,13911700,303.2],["2005-10-19",304,309.87,303.96,308.7,7010700,308.7],["2005-10-18",304.96,307.96,302.74,303.28,7077800,303.28],["2005-10-17",297.5,305.2,294.56,305,7566700,305],["2005-10-14",299.9,300.23,292.54,296.14,8519100,296.14],["2005-10-13",302,302,290.68,297.44,10567700,297.44],["2005-10-12",305.2,307.19,299,300.97,9306200,300.97],["2005-10-11",310.61,312.65,304.86,306.1,8542600,306.1],["2005-10-10",313.31,314.82,309.15,310.65,5572200,310.65],["2005-10-07",314.79,316.67,310.54,312.99,6770300,312.99],["2005-10-06",314.14,314.48,310.09,312.75,7993800,312.75],["2005-10-05",312.69,314.9,308,310.71,8328400,310.71],["2005-10-04",319.95,321.28,310.74,311,9144300,311],["2005-10-03",313.63,320.11,312.79,318.68,9160300,318.68],["2005-09-30",314.22,317.5,312.29,316.46,9151300,316.46],["2005-09-29",306.68,310.72,306.08,309.62,5613800,309.62],["2005-09-28",314.22,315.1,305.6,306,7997400,306],["2005-09-27",314.95,318.41,313.38,313.94,6873100,313.94],["2005-09-26",319.5,320.95,312.56,314.28,9894400,314.28],["2005-09-23",313,317.21,312.59,315.36,8483800,315.36],["2005-09-22",311.5,319.22,310.17,311.37,13006400,311.37],["2005-09-21",308.41,313.76,305.96,311.9,10119700,311.9],["2005-09-20",306.15,311.3,305.23,307.91,9351000,307.91],["2005-09-19",301,306,300.71,303.79,5761900,303.79],["2005-09-16",304.02,304.5,299.87,300.2,7579800,300.2],["2005-09-15",299.52,306.75,297.91,302.62,15466200,302.62],["2005-09-14",308.73,313.28,300.3,303,11275800,303],["2005-09-13",309,315.53,306.17,311.68,10299900,311.68],["2005-09-12",301.75,311.42,301,309.74,10386500,309.74],["2005-09-09",297.28,299.1,296.56,299.09,4390500,299.09],["2005-09-08",294.83,299.28,293.36,295.39,6613300,295.39],["2005-09-07",285.89,295.5,285.28,294.87,7499500,294.87],["2005-09-06",289,289.39,286.8,287.11,4212300,287.11],["2005-09-02",286.51,289.99,286.44,288.45,3434500,288.45],["2005-09-01",285.91,287.5,285,286.25,2742100,286.25],["2005-08-31",288.23,288.5,284.36,286,5034000,286],["2005-08-30",287.39,289.51,285.88,287.27,4792000,287.27],["2005-08-29",282.24,289.12,282.24,288.45,5903000,288.45],["2005-08-26",283.48,285.02,282.66,283.58,3755300,283.58],["2005-08-25",282.55,284,279.97,282.59,4376600,282.59],["2005-08-24",277.57,284.75,276.45,282.57,8593100,282.57],["2005-08-23",276.16,279.74,274.12,279.58,5821700,279.58],["2005-08-22",281.24,281.47,273.35,274.01,6813000,274.01],["2005-08-19",280.99,281.45,279.62,280,5542900,280],["2005-08-18",275.91,280.5,275,279.99,11872800,279.99],["2005-08-17",285.51,286.57,284,285.1,3883300,285.1],["2005-08-16",284.88,287.79,283.34,285.65,7109200,285.65],["2005-08-15",289.8,292.77,283.77,284,8174700,284],["2005-08-12",283.36,290.2,281.64,289.72,6585900,289.72],["2005-08-11",285.89,286.58,280.62,284.05,7514900,284.05],["2005-08-10",291.3,292.33,284.88,285.68,6879000,285.68],["2005-08-09",291.96,292.68,288.51,291.57,5779300,291.57],["2005-08-08",293.6,295.65,290.49,291.25,4481800,291.25],["2005-08-05",297.5,298.51,291.31,292.35,5939700,292.35],["2005-08-04",295.55,299,295.25,297.73,5236500,297.73],["2005-08-03",298,299.72,295.6,297.3,5930600,297.3],["2005-08-02",291.6,299.52,291.12,299.19,7290200,299.19],["2005-08-01",288.12,292.5,288.1,291.61,5662400,291.61],["2005-07-29",292.14,292.84,286.99,287.76,8363300,287.76],["2005-07-28",297.41,297.41,293.28,293.5,5925600,293.5],["2005-07-27",297.74,298.23,292.4,296.93,7217900,296.93],["2005-07-26",295.01,298,292.09,296.09,9816900,296.09],["2005-07-25",302.39,303.29,294.96,295.85,9658800,295.85],["2005-07-22",306.37,309.25,296.33,302.4,23386800,302.4],["2005-07-21",314.05,317.8,311.21,313.94,19789400,313.94],["2005-07-20",305.57,312.61,301.8,312,14310400,312],["2005-07-19",302.1,310.35,301.8,309.9,12621400,309.9],["2005-07-18",300,301.9,297.75,299.54,6207800,299.54],["2005-07-15",301.24,303.4,299.78,301.19,8438400,301.19],["2005-07-14",305.34,306.75,300.07,300.89,10667700,300.89],["2005-07-13",292.51,299.24,292.1,298.86,11437900,298.86],["2005-07-12",293.39,294.4,290.93,291.78,5864900,291.78],["2005-07-11",296.4,296.6,291.02,293.35,8390300,293.35],["2005-07-08",296.25,297.5,294.05,296.23,7457600,296.23],["2005-07-07",289.39,295.8,288.51,295.54,10672100,295.54],["2005-07-06",297.3,297.6,291.38,291.52,8000300,291.52],["2005-07-05",292.1,295.98,290.23,295.71,7494000,295.71],["2005-07-01",295.04,296.24,289.22,291.25,9227600,291.25],["2005-06-30",294.34,298.93,291.04,294.15,15094400,294.15],["2005-06-29",302.5,304.38,292.15,292.72,18298700,292.72],["2005-06-28",306.28,309.25,302,302,19036500,302],["2005-06-27",298.9,304.47,293.86,304.1,17802900,304.1],["2005-06-24",290.9,298,289.58,297.25,17771200,297.25],["2005-06-23",288,294.81,286.5,289.71,14056400,289.71],["2005-06-22",289.67,292.32,288.67,289.3,10474000,289.3],["2005-06-21",288.07,290.3,284.97,287.84,15132300,287.84],["2005-06-20",276.09,287.67,271.73,286.7,21024700,286.7],["2005-06-17",279,280.3,275.9,280.3,10434400,280.3],["2005-06-16",274.26,278.3,273.07,277.44,12462400,277.44],["2005-06-15",275,277.3,267.43,274.8,20883100,274.8],["2005-06-14",278.59,281.24,277.75,278.35,10091900,278.35],["2005-06-13",279.82,284.19,276.52,282.75,12803200,282.75],["2005-06-10",286.99,287.28,280.02,282.5,12696600,282.5],["2005-06-09",284.72,288.5,280.56,286.31,16441100,286.31],["2005-06-08",292.85,293.19,278,279.56,25700900,279.56],["2005-06-07",297.1,299.59,290.3,293.12,24323000,293.12],["2005-06-06",282.39,293.75,281.83,290.94,22525900,290.94],["2005-06-03",286.79,289.3,277.41,280.26,18782300,280.26],["2005-06-02",288.73,289.78,284.6,287.9,17974100,287.9],["2005-06-01",283.2,292.89,282.02,288,35191700,288],["2005-05-31",269.43,278.4,269.37,277.27,22236800,277.27],["2005-05-27",260.46,266.05,259.25,266,12184100,266],["2005-05-26",260.96,263.76,258.3,259.2,13546600,259.2],["2005-05-25",252.73,260.98,250.63,260.81,18057900,260.81],["2005-05-24",256.96,265.44,253.5,256,29043100,256],["2005-05-23",243.16,258.1,242.71,255.45,21388300,255.45],["2005-05-20",241.21,241.67,239.65,241.61,8163500,241.61],["2005-05-19",240.34,241.17,238.27,239.18,9716500,239.18],["2005-05-18",233.61,239.97,233.52,239.16,12312000,239.16],["2005-05-17",230.56,233.45,230.2,233.13,7808900,233.13],["2005-05-16",229.68,231.62,228.57,231.05,5681400,231.05],["2005-05-13",229.18,231.09,227.32,229.24,7415500,229.24],["2005-05-12",230.81,232.23,228.2,228.72,8948200,228.72],["2005-05-11",228.97,231.98,227.93,231.29,11478800,231.29],["2005-05-10",225.47,227.8,224.72,227.8,6345800,227.8],["2005-05-09",228,228.5,225.43,226.02,5536800,226.02],["2005-05-06",228.4,229.25,226.47,228.02,6763900,228.02],["2005-05-05",228.62,228.62,225.88,226.98,7509600,226.98],["2005-05-04",227.23,229.88,227,228.5,12083500,228.5],["2005-05-03",221.85,228.15,221.32,226.19,17780200,226.19],["2005-05-02",222.05,223.7,220.21,222.29,9767400,222.29],["2005-04-29",221.91,222.25,217.82,220,9170200,220],["2005-04-28",219.5,222.08,217.71,219.45,8682800,219.45],["2005-04-27",217.99,220.85,216.74,219.78,10264800,219.78],["2005-04-26",220.22,222,218.29,218.75,17272000,218.75],["2005-04-25",217.82,224.74,217.52,223.53,19840000,223.53],["2005-04-22",222.9,224,214.26,215.81,33205100,215.81],["2005-04-21",200.42,205,199.32,204.22,17751900,204.22],["2005-04-20",198.58,200.5,195.91,198.1,15451500,198.1],["2005-04-19",189.33,192,188.03,191.4,8430000,191.4],["2005-04-18",184.58,187.88,183.49,186.97,6550300,186.97],["2005-04-15",190.1,190.34,184.66,185,11577400,185],["2005-04-14",193.27,194.36,190.1,191.45,6152700,191.45],["2005-04-13",193.47,194.32,189.73,192.93,6555800,192.93],["2005-04-12",193,194.42,189.41,193.96,7319600,193.96],["2005-04-11",193.09,194.8,192.32,193.23,5410500,193.23],["2005-04-08",193.69,195.1,191.45,192.05,5116600,192.05],["2005-04-07",188.78,194.62,188.64,193.76,9692200,193.76],["2005-04-06",189.24,189.65,187.58,189.22,5252600,189.22],["2005-04-05",187.73,190.26,187.57,188.57,8736700,188.57],["2005-04-04",179.95,185.32,179.84,185.29,8076400,185.29],["2005-04-01",181.76,182.95,179.99,180.04,6182000,180.04],["2005-03-31",177.95,181.39,177.64,180.51,6768600,180.51],["2005-03-30",180.64,181.45,179.6,180.45,6236100,180.45],["2005-03-29",181.05,183.28,178.07,179.57,6473000,179.57],["2005-03-28",181.68,184.8,180.95,181.42,8738000,181.42],["2005-03-24",180.7,180.86,179.2,179.25,3705200,179.25],["2005-03-23",177.97,180.24,177.97,178.98,4845000,178.98],["2005-03-22",181.18,181.94,177.85,178.6,5631700,178.6],["2005-03-21",179.27,182.17,177.25,180.88,7483700,180.88],["2005-03-18",178.81,180.4,178.31,180.04,7090000,180.04],["2005-03-17",177.13,179.64,175.8,179.29,8260600,179.29],["2005-03-16",176.7,178.61,175.01,175.6,7106300,175.6],["2005-03-15",175.3,180,174.21,178.61,10422100,178.61],["2005-03-14",178.33,178.4,172.57,174.99,11146600,174.99],["2005-03-11",180.44,180.95,177.15,177.8,8028300,177.8],["2005-03-10",181.01,181.2,177.4,179.98,10960500,179.98],["2005-03-09",184.21,184.65,180.16,181.35,11360400,181.35],["2005-03-08",189.1,189.85,184.97,185.2,8046100,185.2],["2005-03-07",187.78,189.6,187.03,188.81,8667400,188.81],["2005-03-04",186.7,187.25,185.07,185.9,6774100,185.9],["2005-03-03",186.13,187.75,184.31,187.01,7608600,187.01],["2005-03-02",185.95,187.67,184.36,185.18,7285500,185.18],["2005-03-01",189.29,189.75,182,186.06,9311200,186.06],["2005-02-28",186,189.87,185.85,187.99,7818400,187.99],["2005-02-25",189.15,189.92,185.51,185.87,9973500,185.87],["2005-02-24",183.37,189.85,182.23,188.89,25814300,188.89],["2005-02-23",193.3,194.48,188.66,193.95,15586000,193.95],["2005-02-22",196.5,198.9,190.39,191.37,13483700,191.37],["2005-02-18",198.51,198.84,196.66,197.95,8485900,197.95],["2005-02-17",197.83,199.75,196.81,197.9,10414400,197.9],["2005-02-16",194.7,199.33,194.3,198.41,16532300,198.41],["2005-02-15",193.6,199.84,193.08,195.23,25782800,195.23],["2005-02-14",182.85,193.08,181,192.99,38562200,192.99],["2005-02-11",186.66,192.32,186.07,187.4,13116000,187.4],["2005-02-10",191.97,192.21,185.25,187.98,18982700,187.98],["2005-02-09",200.76,201.6,189.46,191.58,17171500,191.58],["2005-02-08",196.96,200.02,194.53,198.64,11480000,198.64],["2005-02-07",205.26,206.4,195.51,196.03,12960400,196.03],["2005-02-04",206.47,207.75,202.6,204.36,14819300,204.36],["2005-02-03",205.99,213.37,205.81,210.86,12988100,210.86],["2005-02-02",215.55,216.8,203.66,205.96,32799300,205.96],["2005-02-01",194.38,196.66,190.63,191.9,18839000,191.9],["2005-01-31",193.69,196.36,191.72,195.62,9596700,195.62],["2005-01-28",190.02,194.7,186.34,190.34,12208200,190.34],["2005-01-27",188.76,188.86,185.2,188.08,6627400,188.08],["2005-01-26",179.27,189.41,179.15,189.24,12307900,189.24],["2005-01-25",181.94,182.24,176.29,177.12,10659200,177.12],["2005-01-24",188.69,189.33,180.32,180.72,14022700,180.72],["2005-01-21",194.54,195.36,188.12,188.28,9258400,188.28],["2005-01-20",192.5,196.25,192,193.92,9001600,193.92],["2005-01-19",204.65,205.3,196.71,197.3,11257700,197.3],["2005-01-18",200.97,205.02,198.66,203.9,13172600,203.9],["2005-01-14",196,200.01,194.13,199.97,9640300,199.97],["2005-01-13",195.38,197.39,194.05,195.33,6849400,195.33],["2005-01-12",194.33,195.93,190.5,195.38,8177800,195.38],["2005-01-11",195.62,197.71,193.18,193.54,6958700,193.54],["2005-01-10",194.5,198.1,191.83,195.06,7539600,195.06],["2005-01-07",190.64,194.25,188.78,193.85,9662900,193.85],["2005-01-06",195.08,195.9,187.72,188.55,10387100,188.55],["2005-01-05",193.45,196.9,192.23,193.51,8236600,193.51],["2005-01-04",201.4,202.93,193.48,194.5,13755900,194.5],["2005-01-03",197.4,203.64,195.46,202.71,15844200,202.71],["2004-12-31",199.23,199.88,192.56,192.79,7668500,192.79],["2004-12-30",192.97,198.23,191.85,197.6,5904300,197.6],["2004-12-29",191.78,193.52,191.78,192.9,2678100,192.9],["2004-12-28",192.11,193.55,191.01,192.76,4145800,192.76],["2004-12-27",189.15,193.3,189.1,191.91,6104100,191.91],["2004-12-23",187.45,188.6,186,187.9,3614600,187.9],["2004-12-22",183.9,186.85,183.01,186.3,3907000,186.3],["2004-12-21",186.31,187.88,183.4,183.75,5516300,183.75],["2004-12-20",182,188.46,181.87,185.02,9834500,185.02],["2004-12-17",176.76,180.5,176.55,180.08,7386200,180.08],["2004-12-16",176.95,180.49,175.95,176.47,8572800,176.47],["2004-12-15",177.99,180.69,176.66,179.78,11471000,179.78],["2004-12-14",171,178.82,169.6,178.69,11088400,178.69],["2004-12-13",172.17,173.18,169.45,170.45,4818600,170.45],["2004-12-10",173.43,174.88,171.29,171.65,4317200,171.65],["2004-12-09",170.25,173.5,168.47,173.43,7654000,173.43],["2004-12-08",170.35,173.68,168.73,169.98,7541800,169.98],["2004-12-07",176,176.2,170.55,171.43,6870900,171.43],["2004-12-06",179.13,180.7,176.02,176.29,6254000,176.29],["2004-12-03",179.95,181.06,177.6,180.4,5869200,180.4],["2004-12-02",179.9,181.51,178.55,179.4,6260900,179.4],["2004-12-01",181.95,182.5,179.55,179.96,7864100,179.96],["2004-11-30",180.71,183,180.25,181.98,7700000,181.98],["2004-11-29",180.36,182.95,177.51,181.05,10666600,181.05],["2004-11-26",175.8,180.03,175.32,179.39,6480100,179.39],["2004-11-24",174.82,177.21,172.51,174.76,15281000,174.76],["2004-11-23",167.97,170.83,166.5,167.52,12413300,167.52],["2004-11-22",164.47,169.5,161.31,165.1,12368200,165.1],["2004-11-19",169.1,169.98,166.52,169.4,8769300,169.4],["2004-11-18",170.29,174.42,165.73,167.54,16629600,167.54],["2004-11-17",169.02,177.5,169,172.5,18132900,172.5],["2004-11-16",177.5,179.47,170.83,172.54,20917400,172.54],["2004-11-15",180.45,188.32,178.75,184.87,11901500,184.87],["2004-11-12",185.23,189.8,177.4,182,16746100,182],["2004-11-11",169.13,183.75,167.57,183.02,14985500,183.02],["2004-11-10",170.67,172.52,166.33,167.86,10644000,167.86],["2004-11-09",174.1,175.2,165.27,168.7,11064200,168.7],["2004-11-08",170.93,175.44,169.4,172.55,11191800,172.55],["2004-11-05",181.98,182.3,168.55,169.35,19833100,169.35],["2004-11-04",188.44,190.4,183.35,184.7,14409600,184.7],["2004-11-03",198.18,201.6,190.75,191.67,13888700,191.67],["2004-11-02",198.78,199.25,193.34,194.87,11346300,194.87],["2004-11-01",193.55,197.67,191.27,196.03,12224900,196.03],["2004-10-29",198.89,199.95,190.6,190.64,21162500,190.64],["2004-10-28",186.68,194.39,185.6,193.3,14846800,193.3],["2004-10-27",182.72,189.52,181.77,185.97,13356500,185.97],["2004-10-26",186.34,192.64,180,181.8,22307100,181.8],["2004-10-25",176.4,194.43,172.55,187.4,32764200,187.4],["2004-10-22",170.54,180.17,164.08,172.43,36891900,172.43],["2004-10-21",144.4,150.13,141.62,149.38,14589500,149.38],["2004-10-20",148.03,148.99,139.6,140.49,11372700,140.49],["2004-10-19",150.5,152.4,147.35,147.94,9064000,147.94],["2004-10-18",143.2,149.2,141.21,149.16,7025200,149.16],["2004-10-15",144.93,145.5,141.95,144.11,6604000,144.11],["2004-10-14",141.01,142.38,138.56,142,5226300,142],["2004-10-13",143.32,143.55,140.08,140.9,9893000,140.9],["2004-10-12",134.44,137.61,133.4,137.4,5838600,137.4],["2004-10-11",137,138.86,133.85,135.26,5241300,135.26],["2004-10-08",138.72,139.68,137.02,137.73,5540300,137.73],["2004-10-07",136.92,139.88,136.55,138.85,7064600,138.85],["2004-10-06",137.55,138.45,136,137.08,6697400,137.08],["2004-10-05",134.66,138.53,132.24,138.37,7494100,138.37],["2004-10-04",135.25,136.87,134.03,135.06,6517900,135.06],["2004-10-01",130.8,134.24,128.9,132.58,7570000,132.58],["2004-09-30",129.9,132.3,129,129.6,6885900,129.6],["2004-09-29",126.7,135.02,126.23,131.08,15273500,131.08],["2004-09-28",121.3,127.4,120.21,126.86,8473000,126.86],["2004-09-27",119.56,120.88,117.8,118.26,3536600,118.26],["2004-09-24",120.94,124.1,119.76,119.83,4566300,119.83],["2004-09-23",118.84,122.63,117.02,120.82,4272100,120.82],["2004-09-22",117.4,119.67,116.81,118.38,3794400,118.38],["2004-09-21",119.81,120.42,117.51,117.84,3618000,117.84],["2004-09-20",116.95,121.6,116.77,119.36,5319700,119.36],["2004-09-17",114.42,117.49,113.55,117.49,4741000,117.49],["2004-09-16",112.34,115.8,111.65,113.97,4637800,113.97],["2004-09-15",110.56,114.23,110.2,112,5361900,112],["2004-09-14",107.45,112,106.79,111.49,5419900,111.49],["2004-09-13",106.63,108.41,106.46,107.5,3926000,107.5],["2004-09-10",101.6,106.56,101.3,105.33,4353800,105.33],["2004-09-09",102.53,102.71,101,102.31,2032900,102.31],["2004-09-08",100.74,103.03,100.5,102.3,2495300,102.3],["2004-09-07",101.01,102,99.61,101.58,2926700,101.58],["2004-09-03",100.95,101.74,99.32,100.01,2578800,100.01],["2004-09-02",99.19,102.37,98.94,101.51,7566900,101.51],["2004-09-01",102.7,102.97,99.67,100.25,4573700,100.25],["2004-08-31",102.3,103.71,102.16,102.37,2461400,102.37],["2004-08-30",105.28,105.49,102.01,102.01,2601000,102.01],["2004-08-27",108.1,108.62,105.69,106.15,3109000,106.15],["2004-08-26",104.95,107.95,104.66,107.91,3551000,107.91],["2004-08-25",104.96,108,103.88,106,4598900,106],["2004-08-24",111.24,111.6,103.57,104.87,7631300,104.87],["2004-08-23",110.75,113.48,109.05,109.4,9137200,109.4],["2004-08-20",101.01,109.08,100.5,108.31,11428600,108.31],["2004-08-19",100,104.06,95.96,100.34,22351900,100.34]];
\ No newline at end of file diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zoom1.html b/wqflask/wqflask/static/packages/jqplot/examples/zoom1.html new file mode 100644 index 00000000..5808fb16 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/zoom1.html @@ -0,0 +1,149 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Zooming</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="waterfall2.html">Previous</a> <a href="./">Examples</a> <a href="zoomOptions.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css"> + .jqplot-cursor-legend { + width: 160px; + font-family: "Courier New"; + font-size: 0.85em; + } + + td.jqplot-cursor-legend-swatch { + width: 1.3em; + } + </style> + + + + <div id="chart1" style="height:200px; width:600px;"></div> + <div id="chart2" style="height:500px; width:600px;"></div> + + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + goog = [["6/22/2009",425.32], ["6/8/2009",424.84], ["5/26/2009",417.23], ["5/11/2009",390], + ["4/27/2009",393.69], ["4/13/2009",392.24], ["3/30/2009",369.78], ["3/16/2009",330.16], ["3/2/2009",308.57], + ["2/17/2009",346.45], ["2/2/2009",371.28], ["1/20/2009",324.7], ["1/5/2009",315.07], ["12/22/2008",300.36], + ["12/8/2008",315.76], ["11/24/2008",292.96], ["11/10/2008",310.02], ["10/27/2008",359.36], ["10/13/2008",372.54], + ["9/29/2008",386.91], ["9/15/2008",449.15], ["9/2/2008",444.25], ["8/25/2008",463.29], ["8/11/2008",510.15], + ["7/28/2008",467.86], ["7/14/2008",481.32], ["6/30/2008",537], ["6/16/2008",546.43], ["6/2/2008",567], + ["5/19/2008",544.62], ["5/5/2008",573.2], ["4/21/2008",544.06], ["4/7/2008",457.45], ["3/24/2008",438.08], + ["3/10/2008",437.92], ["2/25/2008",471.18], ["2/11/2008",529.64], ["1/28/2008",515.9], ["1/14/2008",600.25], + ["12/31/2007",657], ["12/17/2007",696.69], ["12/3/2007",714.87], ["11/19/2007",676.7], ["11/5/2007",663.97], + ["10/22/2007",674.6], ["10/8/2007",637.39], ["9/24/2007",567.27], ["9/10/2007",528.75], ["8/27/2007",515.25]]; + + var plot1 = $.jqplot('chart1', [goog], { + title: 'Google, Inc.', + series: [{ + label: 'Google, Inc.', + neighborThreshold: -1 + }], + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -30 + } + }, + yaxis: { + renderer: $.jqplot.LogAxisRenderer, + tickOptions:{ prefix: '$' } + } + }, + cursor:{ + show: true, + zoom: true + } + }); +}); +</script> + +<script type="text/javascript" class="code"> +$(document).ready(function(){ + plot2 = $.jqplot('chart2', [goog], { + title: 'Google, Inc.', + series: [{ + label: 'Google, Inc.', + neighborThreshold: -1 + }], + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer, + tickRenderer: $.jqplot.CanvasAxisTickRenderer, + tickOptions: { + angle: -30 + } + }, + yaxis: { + renderer: $.jqplot.LogAxisRenderer, + tickOptions:{ prefix: '$' } + } + }, + cursor:{ + show: true, + zoom: true + } + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script> +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html b/wqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html new file mode 100644 index 00000000..ace74b43 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html @@ -0,0 +1,176 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Zoom Options</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="zoom1.html">Previous</a> <a href="./">Examples</a> <a href="zoomProxy.html">Next</a></div> + + +<!-- Example scripts go here --> + <style type="text/css" media="screen"> + .jqplot-axis { + font-size: 0.85em; + } + .jqplot-axis{ + font-size: 0.75em; + } + </style> + +<p>Zooming has been enhanced to maintain plot zoom while the mouse moves over the entire document, not just the plot. Two new options have been added to the cursor plugin to further enhance zooming:</p> + +<dl> + <dt>constrainOutsideZoom</dt> + <dd>True to limit the resulting zoom area to the edges of grid, even if the cursor is outside of the grid. That is, you can't expand the axis ranges by moving the cursor outside of the plot area when this is true. If set to false, you can effectively zoom out by mousing outside of the plot region. Default false.</dd> + <dt>showTooltipOutsideZoom</dt> + <dd>True to keep showing and updating the tooltip even when the cursor is outside of the plot area. Not applicable if zoomOutsidePlot is false. Default false</dd> +</dl> + +<p>The fist plot demonstrates the default functionality where you can move the mouse off of the plot while zooming but the actual area zoomed will not extend beyond the axes.</p> + <div id="chart1" style="margin-top:20px; margin-left:20px; width:400px; height:200px;"></div> + <div style="padding-top:20px"><button value="reset" type="button" onclick="plot1.resetZoom();">Reset Zoom</button></div> + + <pre class="code brush:js"></pre> + +<p>The second plot sets constrainOutsideZoom to false, so zooming will not only function when the mouse is outside of the plot, but the zoom range will be extended to the mouse position outside of the grid.</p> + <div id="chart2" style="margin-top:20px; margin-left:20px; width:400px; height:200px;"></div> + <div style="padding-top:20px"><button value="reset" type="button" onclick="plot2.resetZoom();">Reset Zoom</button></div> + + <pre class="code brush:js"></pre> + +<p>The third plot is like the third, but showTooltipOutsideZoom is true and the tooltip is set to follow the mouse, so you have an idea of what your range is while zooming.</p> + <div id="chart3" style="margin-top:20px; margin-left:20px; width:400px; height:200px;"></div> + <div style="padding-top:20px"><button value="reset" type="button" onclick="plot3.resetZoom();">Reset Zoom</button></div> + + <pre class="code brush:js"></pre> + + + <script type="text/javascript" class="code"> + $(document).ready(function(){ + // Enable plugins like cursor and highlighter by default. + $.jqplot.config.enablePlugins = true; + // For these examples, don't show the to image button. + $.jqplot._noToImageButton = true; + + goog = [["6/22/2009",425.32],["6/15/2009",420.09],["6/8/2009",424.84],["6/1/2009",444.32],["5/26/2009",417.23], + ["5/18/2009",393.5],["5/11/2009",390],["5/4/2009",407.33],["4/27/2009",393.69],["4/20/2009",389.49], + ["4/13/2009",392.24],["4/6/2009",372.5],["3/30/2009",369.78],["3/23/2009",347.7],["3/16/2009",330.16], + ["3/9/2009",324.42],["3/2/2009",308.57],["2/23/2009",337.99],["2/17/2009",346.45],["2/9/2009",357.68], + ["2/2/2009",371.28],["1/26/2009",338.53],["1/20/2009",324.7],["1/12/2009",299.67],["1/5/2009",315.07], + ["12/29/2008",321.32],["12/22/2008",300.36],["12/15/2008",310.17],["12/8/2008",315.76],["12/1/2008",283.99], + ["11/24/2008",292.96],["11/17/2008",262.43],["11/10/2008",310.02],["11/3/2008",331.14],["10/27/2008",359.36], + ["10/20/2008",339.29],["10/13/2008",372.54],["10/6/2008",332],["9/29/2008",386.91],["9/22/2008",431.04], + ["9/15/2008",449.15],["9/8/2008",437.66],["9/2/2008",444.25],["8/25/2008",463.29],["8/18/2008",490.59], + ["8/11/2008",510.15], ["8/4/2008",495.01], ["7/28/2008",467.86],["7/21/2008",491.98], ["7/14/2008",481.32], + ["7/7/2008",533.8],["6/30/2008",537], ["6/23/2008",528.07], ["6/16/2008",546.43],["6/9/2008",571.51],["6/2/2008",567], + ["5/27/2008",585.8],["5/19/2008",544.62], ["5/12/2008",580.07],["5/5/2008",573.2],["4/28/2008",581.29], + ["4/21/2008",544.06],["4/14/2008",539.41],["4/7/2008",457.45], ["3/31/2008",471.09],["3/24/2008",438.08], + ["3/17/2008",433.55], ["3/10/2008",437.92], ["3/3/2008",433.35],["2/25/2008",471.18],["2/19/2008",507.8], + ["2/11/2008",529.64],["2/4/2008",516.69],["1/28/2008",515.9], ["1/22/2008",566.4],["1/14/2008",600.25], + ["1/7/2008",638.25],["12/31/2007",657],["12/24/2007",702.53],["12/17/2007",696.69],["12/10/2007",689.96], + ["12/3/2007",714.87], ["11/26/2007",693], ["11/19/2007",676.7],["11/12/2007",633.63],["11/5/2007",663.97], + ["10/29/2007",711.25],["10/22/2007",674.6],["10/15/2007",644.71],["10/8/2007",637.39],["10/1/2007",594.05], + ["9/24/2007",567.27], ["9/17/2007",560.1], ["9/10/2007",528.75], ["9/4/2007",519.35],["8/27/2007",515.25], + ["8/20/2007",515]]; + + + opts = { + title: 'Google, Inc.', + series: [{ + neighborThreshold: 0 + }], + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer, + min:'August 1, 2007', + tickInterval: "6 months", + tickOptions:{formatString:"%Y/%#m/%#d"} + }, + yaxis: { + // renderer: $.jqplot.LogAxisRenderer, + tickOptions:{prefix: '$'} + } + }, + cursor:{zoom:true} + }; + + plot1 = $.jqplot('chart1', [goog], opts); + }); + + </script> + <script type="text/javascript" class="code"> + $(document).ready(function(){ + opts.cursor = { + zoom:true, + looseZoom: true, + constrainOutsideZoom: false + }; + + plot2 = $.jqplot('chart2', [goog], opts); + + }); + </script> + <script type="text/javascript" class="code"> + $(document).ready(function(){ + opts.cursor = { + zoom:true, + looseZoom: true, + showTooltip:true, + followMouse: true, + showTooltipOutsideZoom: true, + constrainOutsideZoom: false + }; + + plot3 = $.jqplot('chart3', [goog], opts); + }); + </script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script> +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html b/wqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html new file mode 100644 index 00000000..1596a886 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html @@ -0,0 +1,161 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Zoom Proxy - Control one plot from another</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="zoomOptions.html">Previous</a> <a href="./">Examples</a> <a href="zooming.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css"> + .jqplot-cursor-legend { + width: 160px; + font-family: "Courier New"; + font-size: 0.8em; + } + + td.jqplot-cursor-legend-swatch { + width: 1.3em; + } + + div.jqplot-cursor-legend-swatch { +/* width: 15px;*/ + } + </style> + +<p>Click and drag on the bottom plot to zoom on the top plot. Double click inside the bottom plot or click the "reset" button to reset zoom.</p> + +<div class="jqPlot" id="chart1" style="height:320px; width:600px;"></div> +<div class="jqPlot" id="chart2" style="margin-top: 30px; height:100px; width:600px;"></div> +<button value="reset" onclick="controllerPlot.resetZoom();">Reset</button> + +<pre class="code brush:js"></pre> + + +<script type="text/javascript"> +// Disable automatic image button insertion. + +var InPr = [[0.0,85.0],[10.0,87.4],[20.0,90.0],[30.0,91.3],[40.0,93.5],[50.0,94.1],[60.0,95.4],[70.0,95.8],[80.0,96.1],[90.0,97.6],[100.0,97.4],[110.0,97.7],[120.0,97.9],[130.0,98.3],[140.0,97.9],[150.0,98.4],[160.0,99.8],[170.0,100.5],[180.0,100.4],[190.0,100.3],[200.0,102.9],[210.0,104.1],[220.0,104.4],[230.0,103.9],[240.0,104.4],[250.0,104.0],[260.0,103.9],[270.0,103.5],[280.0,105.4],[290.0,105.7],[300.0,105.7],[310.0,105.3],[320.0,105.0],[330.0,105.1],[340.0,105.0],[350.0,105.1],[360.0,104.7],[370.0,104.4],[380.0,104.3],[390.0,105.7],[400.0,106.4],[410.0,105.7],[420.0,105.4],[430.0,105.7],[440.0,105.7],[450.0,105.9],[460.0,105.3],[470.0,105.7],[480.0,105.8],[490.0,105.4],[500.0,105.4],[510.0,105.4],[520.0,105.6],[530.0,104.9],[540.0,104.8],[550.0,105.2],[560.0,105.2],[570.0,105.1],[580.0,104.8],[590.0,104.6],[600.0,104.3],[610.0,104.2],[620.0,104.1],[630.0,104.7],[640.0,104.6],[650.0,104.7],[660.0,104.6],[670.0,104.4],[680.0,106.8],[690.0,106.6], +[700.0,106.3],[710.0,107.1],[720.0,106.2],[730.0,106.1],[740.0,106.7],[750.0,106.5],[760.0,106.8],[770.0,106.7],[780.0,106.6],[790.0,106.7],[800.0,106.8],[810.0,106.4],[820.0,106.7],[830.0,106.5],[840.0,106.9],[850.0,106.7],[860.0,106.7],[870.0,106.8],[880.0,107.1],[890.0,106.6],[900.0,106.8],[910.0,106.9],[920.0,106.8],[930.0,107.3],[940.0,106.9],[950.0,106.5],[960.0,107.2],[970.0,107.0],[980.0,106.9],[990.0,107.2],[1000.0,107.7],[1010.0,107.6],[1020.0,107.1],[1030.0,107.6],[1040.0,107.2],[1050.0,107.2],[1060.0,107.5],[1070.0,107.7],[1080.0,107.3],[1090.0,107.0],[1100.0,107.7],[1110.0,107.0],[1120.0,107.8],[1130.0,107.8],[1140.0,107.7],[1150.0,107.4],[1160.0,107.8],[1170.0,107.8],[1180.0,107.6],[1190.0,107.7],[1200.0,107.4],[1210.0,108.0],[1220.0,372.6],[1230.0,90.4],[1240.0,125.0],[1250.0,110.4],[1260.0,108.5],[1270.0,109.7],[1280.0,108.9],[1290.0,109.6],[1300.0,110.2],[1310.0,110.0],[1320.0,110.7],[1330.0,110.3],[1340.0,110.6],[1350.0,110.5], +[1360.0,110.8],[1370.0,110.6],[1380.0,111.0],[1390.0,113.0],[1400.0,112.1],[1410.0,112.3],[1420.0,112.3],[1430.0,137.6],[1440.0,179.0],[1450.0,216.9],[1460.0,399.2],[1470.0,433.6],[1480.0,203.5],[1490.0,223.3],[1500.0,229.8],[1510.0,416.9],[1520.0,198.8],[1530.0,208.7],[1540.0,172.0],[1550.0,145.7],[1560.0,119.2],[1570.0,104.8],[1580.0,100.1],[1590.0,97.7],[1600.0,97.2],[1610.0,98.8],[1620.0,98.1],[1630.0,98.1],[1640.0,98.8],[1650.0,98.7],[1660.0,98.5],[1670.0,98.8],[1680.0,98.2],[1690.0,98.2],[1700.0,97.7],[1710.0,98.1],[1720.0,97.1],[1730.0,97.6],[1740.0,97.7],[1750.0,97.4],[1760.0,97.6],[1770.0,98.0],[1780.0,97.6],[1790.0,97.7],[1800.0,97.8],[1810.0,97.6],[1820.0,97.9], +[1830.0,97.9],[1840.0,97.8],[1850.0,97.7],[1860.0,97.7],[1870.0,97.7],[1880.0,97.4],[1890.0,97.3],[1900.0,97.2],[1910.0,96.9],[1920.0,97.2],[1930.0,97.4],[1940.0,97.7],[1950.0,97.1],[1960.0,97.1],[1970.0,96.6],[1980.0,96.7],[1990.0,96.5],[2000.0,97.2],[2010.0,96.6],[2020.0,96.4],[2030.0,96.7],[2040.0,96.8],[2050.0,96.6],[2060.0,96.6],[2070.0,96.5],[2080.0,96.6],[2090.0,96.4],[2100.0,96.6],[2110.0,96.5],[2120.0,96.2],[2130.0,96.2],[2140.0,96.5],[2150.0,96.0],[2160.0,96.2],[2170.0,96.3],[2180.0,96.4],[2190.0,97.0],[2200.0,96.8],[2210.0,96.5],[2220.0,96.6],[2230.0,96.1],[2240.0,96.1],[2250.0,96.6],[2260.0,96.5],[2270.0,96.6],[2280.0,96.4],[2290.0,96.5],[2300.0,96.6],[2310.0,96.9],[2320.0,96.8],[2330.0,96.9],[2340.0,97.2],[2350.0,96.6],[2360.0,97.3],[2370.0,97.4],[2380.0,97.1],[2390.0,97.1],[2400.0,96.8],[2410.0,97.0],[2420.0,97.1],[2430.0,97.1],[2440.0,97.0],[2450.0,97.1],[2460.0,97.1],[2470.0,97.5],[2480.0,96.9],[2490.0,96.8],[2500.0,96.8],[2510.0,97.0],[2520.0,96.7],[2530.0,97.0],[2540.0,97.1],[2550.0,97.2],[2560.0,97.1],[2570.0,97.1],[2580.0,97.1],[2590.0,96.8],[2600.0,97.2],[2610.0,97.1],[2620.0,97.3],[2630.0,97.1],[2640.0,97.1],[2650.0,97.1],[2660.0,97.0],[2670.0,96.8],[2680.0,97.3],[2690.0,97.4],[2700.0,97.3],[2710.0,97.2],[2720.0,97.1],[2730.0,97.2],[2740.0,97.1],[2750.0,97.1],[2760.0,97.1],[2770.0,96.8],[2780.0,96.4],[2790.0,96.6],[2800.0,96.6]]; +var OutPr = [[0.0,1788.1],[10.0,1803.3],[20.0,1807.3],[30.0,1813.5],[40.0,1822.0],[50.0,1820.3],[60.0,1823.7],[70.0,1823.7],[80.0,1825.3],[90.0,1831.0],[100.0,1832.1],[110.0,1834.4],[120.0,1834.4],[130.0,1831.5],[140.0,1832.7],[150.0,1834.4],[160.0,1831.5],[170.0,1832.1],[180.0,1830.4],[190.0,1831.0],[200.0,1830.4],[210.0,1829.3],[220.0,1829.9],[230.0,1828.2],[240.0,1831.0],[250.0,1828.7],[260.0,1827.0],[270.0,1829.3],[280.0,1826.5],[290.0,1824.8],[300.0,1824.2],[310.0,1823.7],[320.0,1823.7],[330.0,1823.7],[340.0,1825.3],[350.0,1822.0],[360.0,1820.3],[370.0,1818.0],[380.0,1819.1],[390.0,1816.3],[400.0,1820.8],[410.0,1820.8],[420.0,1819.7],[430.0,1820.3],[440.0,1819.7],[450.0,1819.1], +[460.0,1819.1],[470.0,1821.4],[480.0,1821.4],[490.0,1818.0],[500.0,1816.9],[510.0,1819.1],[520.0,1818.6],[530.0,1816.9],[540.0,1816.9],[550.0,1815.2],[560.0,1814.1],[570.0,1814.6],[580.0,1811.2],[590.0,1814.1],[600.0,1813.5],[610.0,1812.4],[620.0,1809.0],[630.0,1813.5],[640.0,1811.8],[650.0,1815.8],[660.0,1816.3],[670.0,1815.2],[680.0,1815.2],[690.0,1815.8],[700.0,1816.3],[710.0,1818.6],[720.0,1816.9],[730.0,1814.6],[740.0,1816.3],[750.0,1814.1],[760.0,1812.9],[770.0,1812.9],[780.0,1811.2],[790.0,1812.4],[800.0,1815.2],[810.0,1812.4],[820.0,1813.5],[830.0,1811.8],[840.0,1811.2],[850.0,1812.9],[860.0,1809.0],[870.0,1811.2],[880.0,1816.9],[890.0,1815.2],[900.0,1813.5],[910.0,1812.9], +[920.0,1815.8],[930.0,1819.1],[940.0,1818.0],[950.0,1816.3],[960.0,1818.0],[970.0,1815.2],[980.0,1818.6],[990.0,1815.2],[1000.0,1822.5],[1010.0,1822.5],[1020.0,1816.9],[1030.0,1816.3],[1040.0,1817.4],[1050.0,1816.9],[1060.0,1811.8],[1070.0,1818.6],[1080.0,1818.6],[1090.0,1815.2],[1100.0,1816.9],[1110.0,1815.8],[1120.0,1815.8],[1130.0,1816.9],[1140.0,1815.2],[1150.0,1815.2],[1160.0,1818.0],[1170.0,1817.4],[1180.0,1818.0],[1190.0,1819.1],[1200.0,1817.4],[1210.0,1822.5],[1220.0,1313.9],[1230.0,1694.5],[1240.0,1891.3],[1250.0,1813.5],[1260.0,1827.0],[1270.0,1831.5],[1280.0,1827.6],[1290.0,1832.1],[1300.0,1831.5],[1310.0,1829.9],[1320.0,1834.4],[1330.0,1831.0],[1340.0,1827.6], +[1350.0,1829.3],[1360.0,1832.1],[1370.0,1834.9],[1380.0,1834.9],[1390.0,1839.4],[1400.0,1830.4],[1410.0,1832.7],[1420.0,1833.8],[1430.0,1847.9],[1440.0,1770.6],[1450.0,1668.0],[1460.0,1279.5],[1470.0,1138.5],[1480.0,1724.4],[1490.0,1571.0],[1500.0,1740.8],[1510.0,1326.8],[1520.0,1661.2],[1530.0,1859.2],[1540.0,1851.8],[1550.0,1885.7],[1560.0,1876.1],[1570.0,1860.3],[1580.0,1870.5],[1590.0,1851.8],[1600.0,1853.5],[1610.0,1863.7],[1620.0,1854.1],[1630.0,1855.8],[1640.0,1858.6],[1650.0,1857.5],[1660.0,1858.6],[1670.0,1841.7],[1680.0,1824.2],[1690.0,1817.4],[1700.0,1813.5],[1710.0,1814.6],[1720.0,1809.0],[1730.0,1806.2],[1740.0,1803.9],[1750.0,1804.5],[1760.0,1798.8],[1770.0,1793.8],[1780.0,1792.1],[1790.0,1793.2],[1800.0,1792.6],[1810.0,1787.0],[1820.0,1787.0],[1830.0,1786.4],[1840.0,1788.1],[1850.0,1784.7], +[1860.0,1781.4],[1870.0,1780.2],[1880.0,1777.4],[1890.0,1775.7],[1900.0,1775.2],[1910.0,1775.2],[1920.0,1776.8],[1930.0,1778.0],[1940.0,1775.7],[1950.0,1769.5],[1960.0,1769.5],[1970.0,1768.4],[1980.0,1771.2],[1990.0,1770.1],[2000.0,1769.5],[2010.0,1767.8],[2020.0,1764.4],[2030.0,1764.4],[2040.0,1765.0],[2050.0,1762.7],[2060.0,1765.6],[2070.0,1763.9],[2080.0,1762.2],[2090.0,1759.9],[2100.0,1759.9],[2110.0,1762.2],[2120.0,1762.7],[2130.0,1762.2],[2140.0,1762.7],[2150.0,1759.4],[2160.0,1761.1],[2170.0,1761.6],[2180.0,1763.3],[2190.0,1765.0],[2200.0,1768.4],[2210.0,1763.3],[2220.0,1762.7],[2230.0,1759.9],[2240.0,1762.7],[2250.0,1764.4],[2260.0,1765.6],[2270.0,1766.7],[2280.0,1763.3],[2290.0,1763.3],[2300.0,1763.9],[2310.0,1762.7],[2320.0,1762.7],[2330.0,1767.3],[2340.0,1767.8],[2350.0,1765.6],[2360.0,1766.1], +[2370.0,1766.7],[2380.0,1766.7],[2390.0,1765.0],[2400.0,1765.0],[2410.0,1765.0],[2420.0,1765.0],[2430.0,1765.6],[2440.0,1765.6],[2450.0,1763.3],[2460.0,1767.8],[2470.0,1767.8],[2480.0,1765.0],[2490.0,1761.6],[2500.0,1761.6],[2510.0,1762.7],[2520.0,1763.3],[2530.0,1763.3],[2540.0,1763.9],[2550.0,1765.0],[2560.0,1766.1],[2570.0,1765.6],[2580.0,1766.7],[2590.0,1765.6],[2600.0,1768.4],[2610.0,1766.7],[2620.0,1764.4],[2630.0,1764.4],[2640.0,1766.1],[2650.0,1766.1],[2660.0,1766.1],[2670.0,1763.9],[2680.0,1765.6],[2690.0,1765.6],[2700.0,1765.6],[2710.0,1765.0],[2720.0,1765.6],[2730.0,1766.1],[2740.0,1767.3],[2750.0,1766.7],[2760.0,1762.2],[2770.0,1754.9],[2780.0,1750.9],[2790.0,1750.3],[2800.0,1748.1]]; +var ERPM = [[0.0,1503.],[10.0,3006.],[20.0,3005.],[30.0,1505.],[40.0,1505.],[50.0,3015.],[60.0,1503.],[70.0,3006.],[80.0,3006.],[90.0,1503.],[100.0,1503.],[110.0,1503.],[120.0,1500.],[130.0,1503.],[140.0,752.],[150.0,1503.],[160.0,1503.],[170.0,1503.],[180.0,1505.],[190.0,1503.],[200.0,1503.],[210.0,3006.],[220.0,1503.],[230.0,1503.],[240.0,1502.],[250.0,1503.],[260.0,3005.],[270.0,1500.],[280.0,1502.],[290.0,1502.],[300.0,1502.],[310.0,752.],[320.0,1502.],[330.0,1502.],[340.0,1504.],[350.0,1502.],[360.0,1502.],[370.0,1501.],[380.0,1502.],[390.0,501.],[400.0,1501.],[410.0,501.],[420.0,751.],[430.0,751.],[440.0,1503.],[450.0,750.],[460.0,1501.],[470.0,1503.],[480.0,501.],[490.0,1501.],[500.0,1501.],[510.0,501.],[520.0,1501.],[530.0,751.],[540.0,1501.],[550.0,1501.],[560.0,1501.],[570.0,1501.],[580.0,1504.],[590.0,1504.], +[600.0,1502.],[610.0,751.],[620.0,1501.],[630.0,1501.],[640.0,1501.],[650.0,1501.],[660.0,1504.],[670.0,1502.],[680.0,751.],[690.0,751.],[700.0,1501.],[710.0,751.],[720.0,1501.],[730.0,1502.],[740.0,1502.],[750.0,751.],[760.0,376.],[770.0,1502.],[780.0,1501.],[790.0,1502.],[800.0,1499.],[810.0,1499.],[820.0,750.],[830.0,1499.],[840.0,501.],[850.0,300.],[860.0,1504.],[870.0,751.],[880.0,1502.],[890.0,1502.],[900.0,1502.],[910.0,751.],[920.0,501.],[930.0,1502.],[940.0,751.],[950.0,1502.],[960.0,501.],[970.0,1504.],[980.0,751.],[990.0,1502.],[1000.0,751.],[1010.0,1502.],[1020.0,500.],[1030.0,751.],[1040.0,1502.],[1050.0,751.],[1060.0,1502.],[1070.0,1502.],[1080.0,751.],[1090.0,751.],[1100.0,1502.],[1110.0,750.],[1120.0,1502.],[1130.0,375.],[1140.0,1502.],[1150.0,300.],[1160.0,375.],[1170.0,1499.],[1180.0,300.], +[1190.0,375.],[1200.0,1502.],[1210.0,373.],[1220.0,368.],[1230.0,502.],[1240.0,495.],[1250.0,1475.],[1260.0,1468.],[1270.0,732.],[1280.0,1461.],[1290.0,1458.],[1300.0,1456.],[1310.0,1456.],[1320.0,1451.],[1330.0,1453.],[1340.0,1453.],[1350.0,726.],[1360.0,1451.],[1370.0,1451.],[1380.0,1451.],[1390.0,1451.],[1400.0,1449.],[1410.0,1449.],[1420.0,1449.],[1430.0,1944.],[1440.0,1197.],[1450.0,786.],[1460.0,0.],[1470.0,0.],[1480.0,1079.],[1490.0,1070.],[1500.0,1085.],[1510.0,923.],[1520.0,1121.],[1530.0,1293.],[1540.0,1762.],[1550.0,367.],[1560.0,352.],[1570.0,186.],[1580.0,892.],[1590.0,892.],[1600.0,892.],[1610.0,892.],[1620.0,892.],[1630.0,892.],[1640.0,892.],[1650.0,892.],[1660.0,892.],[1670.0,892.],[1680.0,0.],[1690.0,0.],[1700.0,0.],[1710.0,0.],[1720.0,0.],[1730.0,0.],[1740.0,0.],[1750.0,0.],[1760.0,0.], +[1770.0,0.],[1780.0,0.],[1790.0,0.],[1800.0,0.],[1810.0,0.],[1820.0,0.],[1830.0,0.],[1840.0,0.],[1850.0,0.],[1860.0,0.],[1870.0,0.],[1880.0,0.],[1890.0,0.],[1900.0,0.],[1910.0,0.],[1920.0,0.],[1930.0,0.],[1940.0,0.],[1950.0,0.],[1960.0,0.],[1970.0,0.],[1980.0,0.],[1990.0,0.],[2000.0,0.],[2010.0,0.],[2020.0,0.],[2030.0,0.],[2040.0,0.],[2050.0,0.],[2060.0,0.],[2070.0,0.],[2080.0,0.],[2090.0,0.],[2100.0,0.],[2110.0,0.],[2120.0,0.],[2130.0,0.],[2140.0,0.],[2150.0,0.],[2160.0,0.],[2170.0,0.],[2180.0,0.],[2190.0,0.],[2200.0,0.],[2210.0,0.],[2220.0,0.],[2230.0,0.],[2240.0,0.],[2250.0,0.],[2260.0,0.],[2270.0,0.],[2280.0,0.],[2290.0,0.],[2300.0,0.],[2310.0,0.],[2320.0,0.],[2330.0,0.],[2340.0,0.],[2350.0,0.],[2360.0,0.],[2370.0,0.],[2380.0,0.],[2390.0,0.],[2400.0,0.],[2410.0,0.],[2420.0,0.],[2430.0,0.],[2440.0,0.], +[2450.0,0.],[2460.0,0.],[2470.0,0.],[2480.0,0.],[2490.0,0.],[2500.0,0.],[2510.0,0.],[2520.0,0.],[2530.0,0.],[2540.0,0.],[2550.0,0.],[2560.0,0.],[2570.0,0.],[2580.0,0.],[2590.0,0.],[2600.0,0.],[2610.0,0.],[2620.0,0.],[2630.0,0.],[2640.0,0.],[2650.0,0.],[2660.0,0.],[2670.0,0.],[2680.0,0.],[2690.0,0.],[2700.0,0.],[2710.0,0.],[2720.0,0.],[2730.0,0.],[2740.0,0.],[2750.0,0.],[2760.0,0.],[2770.0,0.],[2780.0,0.],[2790.0,0.],[2800.0,0.]]; +</script> + + + <script type="text/javascript" class="code"> + $(document).ready(function(){ + // InPr, OutPr and ERPM are defined separately. They are large datasets. + targetPlot = $.jqplot('chart1', [InPr, OutPr, ERPM], { + seriesDefaults:{ showMarker: false }, + series:[ + {label:'P In'}, + {label:'P Out', yaxis:'y2axis'}, + {label:'RPM', yaxis:'y3axis'}, + ], + cursor:{ + show: true, + zoom:true, + showTooltip:false + }, + legend:{ + location:'nw', + xoffset: 270, + yoffset: 100 + }, + axesDefaults: { + useSeriesColor:true, + rendererOptions: { + alignTicks: true + } + } + + }); + + controllerPlot = $.jqplot('chart2', [InPr, OutPr, ERPM], { + seriesDefaults:{ showMarker: false }, + series:[ + {label:'P In'}, + {label:'P Out', yaxis:'y2axis'}, + {label:'RPM', yaxis:'y3axis'}, + ], + cursor:{ + show: true, + showTooltip: false, + zoom:true, + constrainZoomTo: 'x' + }, + axesDefaults: { + useSeriesColor:true, + rendererOptions: { + alignTicks: true + } + } + }); + + $.jqplot.Cursor.zoomProxy(targetPlot, controllerPlot); + + $.jqplot._noToImageButton = true; + + }); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zooming.html b/wqflask/wqflask/static/packages/jqplot/examples/zooming.html new file mode 100644 index 00000000..4c1cb2b6 --- /dev/null +++ b/wqflask/wqflask/static/packages/jqplot/examples/zooming.html @@ -0,0 +1,209 @@ +<!DOCTYPE html> + +<html> +<head> + + <title>Plot Zooming and Cursor Control</title> + + <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="examples.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" /> + <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" /> + + <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]--> + <script class="include" type="text/javascript" src="../jquery.min.js"></script> + + +</head> +<body> + <div class="logo"> + <div class="nav"> + <a class="nav" href="../../../index.php"><span>></span>Home</a> + <a class="nav" href="../../../docs/"><span>></span>Docs</a> + <a class="nav" href="../../download/"><span>></span>Download</a> + <a class="nav" href="../../../info.php"><span>></span>Info</a> + <a class="nav" href="../../../donate.php"><span>></span>Donate</a> + </div> +</div> + <div class="example-content"> + + <div class="example-nav"> + <a href="zoomProxy.html">Previous</a> <a href="./">Examples</a> <a href="area.html">Next</a></div> + + +<!-- Example scripts go here --> + + <style type="text/css"> + .button-reset { + margin: 30px; + margin-left: 90px; + } + + + </style> + +<p>The cursor plugin also enables plot zooming functionality. Click and drag on the plot to zoom. Double click to reset.</p> + +<p>You can disable the double click zoom reset. The cursor plugin also extends the plot object with a resetZoom() method which can be called from user code or other html element (a button for example) to reset the plot zoom.</p> + +<div id="chart1" style="height:300px; width:500px;"></div> +<button class="button-reset">Reset Zoom</button> + +<pre class="code prettyprint brush: js"></pre> + + +<p>Plot zooming also works will multiple axes. The following plot uses 3 large datasets.</p> +<div id="chart2" style="height:300px; width:500px;"></div> + +<pre class="code prettyprint brush: js"></pre> + +<script language="javascript" type="text/javascript"> +var goog = [["6/22/2009 16:00:00",425.32], +["6/8/2009 16:00:00",424.84], +["5/26/2009 16:00:00",417.23], +["5/11/2009 16:00:00",390], +["4/27/2009 16:00:00",393.69], +["4/13/2009 16:00:00",392.24], +["3/30/2009 16:00:00",369.78], +["3/16/2009 16:00:00",330.16], +["3/2/2009 16:00:00",308.57], +["2/17/2009 16:00:00",346.45], +["2/2/2009 16:00:00",371.28], +["1/20/2009 16:00:00",324.7], +["1/5/2009 16:00:00",315.07], +["12/22/2008 16:00:00",300.36], +["12/8/2008 16:00:00",315.76], +["11/24/2008 16:00:00",292.96], +["11/10/2008 16:00:00",310.02], +["10/27/2008 16:00:00",359.36], +["10/13/2008 16:00:00",372.54], +["9/29/2008 16:00:00",386.91], +["9/15/2008 16:00:00",449.15], +["9/2/2008 16:00:00",444.25], +["8/25/2008 16:00:00",463.29], +["8/11/2008 16:00:00",510.15], +["7/28/2008 16:00:00",467.86], +["7/14/2008 16:00:00",481.32], +["6/30/2008 16:00:00",537], +["6/16/2008 16:00:00",546.43], +["6/2/2008 16:00:00",567], +["5/19/2008 16:00:00",544.62], +["5/5/2008 16:00:00",573.2], +["4/21/2008 16:00:00",544.06], +["4/7/2008 16:00:00",457.45], +["3/24/2008 16:00:00",438.08], +["3/10/2008 16:00:00",437.92], +["2/25/2008 16:00:00",471.18], +["2/11/2008 16:00:00",529.64], +["1/28/2008 16:00:00",515.9], +["1/14/2008 16:00:00",600.25], +["12/31/2007 16:00:00",657], +["12/17/2007 16:00:00",696.69], +["12/3/2007 16:00:00",714.87], +["11/19/2007 16:00:00",676.7], +["11/5/2007 16:00:00",663.97], +["10/22/2007 16:00:00",674.6], +["10/8/2007 16:00:00",637.39], +["9/24/2007 16:00:00",567.27], +["9/10/2007 16:00:00",528.75], +["8/27/2007 16:00:00",515.25]]; +var InPr = [[0.0,85.0],[10.0,87.4],[20.0,90.0],[30.0,91.3],[40.0,93.5],[50.0,94.1],[60.0,95.4],[70.0,95.8],[80.0,96.1],[90.0,97.6],[100.0,97.4],[110.0,97.7],[120.0,97.9],[130.0,98.3],[140.0,97.9],[150.0,98.4],[160.0,99.8],[170.0,100.5],[180.0,100.4],[190.0,100.3],[200.0,102.9],[210.0,104.1],[220.0,104.4],[230.0,103.9],[240.0,104.4],[250.0,104.0],[260.0,103.9],[270.0,103.5],[280.0,105.4],[290.0,105.7],[300.0,105.7],[310.0,105.3],[320.0,105.0],[330.0,105.1],[340.0,105.0],[350.0,105.1],[360.0,104.7],[370.0,104.4],[380.0,104.3],[390.0,105.7],[400.0,106.4],[410.0,105.7],[420.0,105.4],[430.0,105.7],[440.0,105.7],[450.0,105.9],[460.0,105.3],[470.0,105.7],[480.0,105.8],[490.0,105.4],[500.0,105.4],[510.0,105.4],[520.0,105.6],[530.0,104.9],[540.0,104.8],[550.0,105.2],[560.0,105.2],[570.0,105.1],[580.0,104.8],[590.0,104.6],[600.0,104.3],[610.0,104.2],[620.0,104.1],[630.0,104.7],[640.0,104.6],[650.0,104.7],[660.0,104.6],[670.0,104.4],[680.0,106.8],[690.0,106.6], +[700.0,106.3],[710.0,107.1],[720.0,106.2],[730.0,106.1],[740.0,106.7],[750.0,106.5],[760.0,106.8],[770.0,106.7],[780.0,106.6],[790.0,106.7],[800.0,106.8],[810.0,106.4],[820.0,106.7],[830.0,106.5],[840.0,106.9],[850.0,106.7],[860.0,106.7],[870.0,106.8],[880.0,107.1],[890.0,106.6],[900.0,106.8],[910.0,106.9],[920.0,106.8],[930.0,107.3],[940.0,106.9],[950.0,106.5],[960.0,107.2],[970.0,107.0],[980.0,106.9],[990.0,107.2],[1000.0,107.7],[1010.0,107.6],[1020.0,107.1],[1030.0,107.6],[1040.0,107.2],[1050.0,107.2],[1060.0,107.5],[1070.0,107.7],[1080.0,107.3],[1090.0,107.0],[1100.0,107.7],[1110.0,107.0],[1120.0,107.8],[1130.0,107.8],[1140.0,107.7],[1150.0,107.4],[1160.0,107.8],[1170.0,107.8],[1180.0,107.6],[1190.0,107.7],[1200.0,107.4],[1210.0,108.0],[1220.0,372.6],[1230.0,90.4],[1240.0,125.0],[1250.0,110.4],[1260.0,108.5],[1270.0,109.7],[1280.0,108.9],[1290.0,109.6],[1300.0,110.2],[1310.0,110.0],[1320.0,110.7],[1330.0,110.3],[1340.0,110.6],[1350.0,110.5], +[1360.0,110.8],[1370.0,110.6],[1380.0,111.0],[1390.0,113.0],[1400.0,112.1],[1410.0,112.3],[1420.0,112.3],[1430.0,137.6],[1440.0,179.0],[1450.0,216.9],[1460.0,399.2],[1470.0,433.6],[1480.0,203.5],[1490.0,223.3],[1500.0,229.8],[1510.0,416.9],[1520.0,198.8],[1530.0,208.7],[1540.0,172.0],[1550.0,145.7],[1560.0,119.2],[1570.0,104.8],[1580.0,100.1],[1590.0,97.7],[1600.0,97.2],[1610.0,98.8],[1620.0,98.1],[1630.0,98.1],[1640.0,98.8],[1650.0,98.7],[1660.0,98.5],[1670.0,98.8],[1680.0,98.2],[1690.0,98.2],[1700.0,97.7],[1710.0,98.1],[1720.0,97.1],[1730.0,97.6],[1740.0,97.7],[1750.0,97.4],[1760.0,97.6],[1770.0,98.0],[1780.0,97.6],[1790.0,97.7],[1800.0,97.8],[1810.0,97.6],[1820.0,97.9], +[1830.0,97.9],[1840.0,97.8],[1850.0,97.7],[1860.0,97.7],[1870.0,97.7],[1880.0,97.4],[1890.0,97.3],[1900.0,97.2],[1910.0,96.9],[1920.0,97.2],[1930.0,97.4],[1940.0,97.7],[1950.0,97.1],[1960.0,97.1],[1970.0,96.6],[1980.0,96.7],[1990.0,96.5],[2000.0,97.2],[2010.0,96.6],[2020.0,96.4],[2030.0,96.7],[2040.0,96.8],[2050.0,96.6],[2060.0,96.6],[2070.0,96.5],[2080.0,96.6],[2090.0,96.4],[2100.0,96.6],[2110.0,96.5],[2120.0,96.2],[2130.0,96.2],[2140.0,96.5],[2150.0,96.0],[2160.0,96.2],[2170.0,96.3],[2180.0,96.4],[2190.0,97.0],[2200.0,96.8],[2210.0,96.5],[2220.0,96.6],[2230.0,96.1],[2240.0,96.1],[2250.0,96.6],[2260.0,96.5],[2270.0,96.6],[2280.0,96.4],[2290.0,96.5],[2300.0,96.6],[2310.0,96.9],[2320.0,96.8],[2330.0,96.9],[2340.0,97.2],[2350.0,96.6],[2360.0,97.3],[2370.0,97.4],[2380.0,97.1],[2390.0,97.1],[2400.0,96.8],[2410.0,97.0],[2420.0,97.1],[2430.0,97.1],[2440.0,97.0],[2450.0,97.1],[2460.0,97.1],[2470.0,97.5],[2480.0,96.9],[2490.0,96.8],[2500.0,96.8],[2510.0,97.0],[2520.0,96.7],[2530.0,97.0],[2540.0,97.1],[2550.0,97.2],[2560.0,97.1],[2570.0,97.1],[2580.0,97.1],[2590.0,96.8],[2600.0,97.2],[2610.0,97.1],[2620.0,97.3],[2630.0,97.1],[2640.0,97.1],[2650.0,97.1],[2660.0,97.0],[2670.0,96.8],[2680.0,97.3],[2690.0,97.4],[2700.0,97.3],[2710.0,97.2],[2720.0,97.1],[2730.0,97.2],[2740.0,97.1],[2750.0,97.1],[2760.0,97.1],[2770.0,96.8],[2780.0,96.4],[2790.0,96.6],[2800.0,96.6]]; +var OutPr = [[0.0,1788.1],[10.0,1803.3],[20.0,1807.3],[30.0,1813.5],[40.0,1822.0],[50.0,1820.3],[60.0,1823.7],[70.0,1823.7],[80.0,1825.3],[90.0,1831.0],[100.0,1832.1],[110.0,1834.4],[120.0,1834.4],[130.0,1831.5],[140.0,1832.7],[150.0,1834.4],[160.0,1831.5],[170.0,1832.1],[180.0,1830.4],[190.0,1831.0],[200.0,1830.4],[210.0,1829.3],[220.0,1829.9],[230.0,1828.2],[240.0,1831.0],[250.0,1828.7],[260.0,1827.0],[270.0,1829.3],[280.0,1826.5],[290.0,1824.8],[300.0,1824.2],[310.0,1823.7],[320.0,1823.7],[330.0,1823.7],[340.0,1825.3],[350.0,1822.0],[360.0,1820.3],[370.0,1818.0],[380.0,1819.1],[390.0,1816.3],[400.0,1820.8],[410.0,1820.8],[420.0,1819.7],[430.0,1820.3],[440.0,1819.7],[450.0,1819.1], +[460.0,1819.1],[470.0,1821.4],[480.0,1821.4],[490.0,1818.0],[500.0,1816.9],[510.0,1819.1],[520.0,1818.6],[530.0,1816.9],[540.0,1816.9],[550.0,1815.2],[560.0,1814.1],[570.0,1814.6],[580.0,1811.2],[590.0,1814.1],[600.0,1813.5],[610.0,1812.4],[620.0,1809.0],[630.0,1813.5],[640.0,1811.8],[650.0,1815.8],[660.0,1816.3],[670.0,1815.2],[680.0,1815.2],[690.0,1815.8],[700.0,1816.3],[710.0,1818.6],[720.0,1816.9],[730.0,1814.6],[740.0,1816.3],[750.0,1814.1],[760.0,1812.9],[770.0,1812.9],[780.0,1811.2],[790.0,1812.4],[800.0,1815.2],[810.0,1812.4],[820.0,1813.5],[830.0,1811.8],[840.0,1811.2],[850.0,1812.9],[860.0,1809.0],[870.0,1811.2],[880.0,1816.9],[890.0,1815.2],[900.0,1813.5],[910.0,1812.9], +[920.0,1815.8],[930.0,1819.1],[940.0,1818.0],[950.0,1816.3],[960.0,1818.0],[970.0,1815.2],[980.0,1818.6],[990.0,1815.2],[1000.0,1822.5],[1010.0,1822.5],[1020.0,1816.9],[1030.0,1816.3],[1040.0,1817.4],[1050.0,1816.9],[1060.0,1811.8],[1070.0,1818.6],[1080.0,1818.6],[1090.0,1815.2],[1100.0,1816.9],[1110.0,1815.8],[1120.0,1815.8],[1130.0,1816.9],[1140.0,1815.2],[1150.0,1815.2],[1160.0,1818.0],[1170.0,1817.4],[1180.0,1818.0],[1190.0,1819.1],[1200.0,1817.4],[1210.0,1822.5],[1220.0,1313.9],[1230.0,1694.5],[1240.0,1891.3],[1250.0,1813.5],[1260.0,1827.0],[1270.0,1831.5],[1280.0,1827.6],[1290.0,1832.1],[1300.0,1831.5],[1310.0,1829.9],[1320.0,1834.4],[1330.0,1831.0],[1340.0,1827.6], +[1350.0,1829.3],[1360.0,1832.1],[1370.0,1834.9],[1380.0,1834.9],[1390.0,1839.4],[1400.0,1830.4],[1410.0,1832.7],[1420.0,1833.8],[1430.0,1847.9],[1440.0,1770.6],[1450.0,1668.0],[1460.0,1279.5],[1470.0,1138.5],[1480.0,1724.4],[1490.0,1571.0],[1500.0,1740.8],[1510.0,1326.8],[1520.0,1661.2],[1530.0,1859.2],[1540.0,1851.8],[1550.0,1885.7],[1560.0,1876.1],[1570.0,1860.3],[1580.0,1870.5],[1590.0,1851.8],[1600.0,1853.5],[1610.0,1863.7],[1620.0,1854.1],[1630.0,1855.8],[1640.0,1858.6],[1650.0,1857.5],[1660.0,1858.6],[1670.0,1841.7],[1680.0,1824.2],[1690.0,1817.4],[1700.0,1813.5],[1710.0,1814.6],[1720.0,1809.0],[1730.0,1806.2],[1740.0,1803.9],[1750.0,1804.5],[1760.0,1798.8],[1770.0,1793.8],[1780.0,1792.1],[1790.0,1793.2],[1800.0,1792.6],[1810.0,1787.0],[1820.0,1787.0],[1830.0,1786.4],[1840.0,1788.1],[1850.0,1784.7], +[1860.0,1781.4],[1870.0,1780.2],[1880.0,1777.4],[1890.0,1775.7],[1900.0,1775.2],[1910.0,1775.2],[1920.0,1776.8],[1930.0,1778.0],[1940.0,1775.7],[1950.0,1769.5],[1960.0,1769.5],[1970.0,1768.4],[1980.0,1771.2],[1990.0,1770.1],[2000.0,1769.5],[2010.0,1767.8],[2020.0,1764.4],[2030.0,1764.4],[2040.0,1765.0],[2050.0,1762.7],[2060.0,1765.6],[2070.0,1763.9],[2080.0,1762.2],[2090.0,1759.9],[2100.0,1759.9],[2110.0,1762.2],[2120.0,1762.7],[2130.0,1762.2],[2140.0,1762.7],[2150.0,1759.4],[2160.0,1761.1],[2170.0,1761.6],[2180.0,1763.3],[2190.0,1765.0],[2200.0,1768.4],[2210.0,1763.3],[2220.0,1762.7],[2230.0,1759.9],[2240.0,1762.7],[2250.0,1764.4],[2260.0,1765.6],[2270.0,1766.7],[2280.0,1763.3],[2290.0,1763.3],[2300.0,1763.9],[2310.0,1762.7],[2320.0,1762.7],[2330.0,1767.3],[2340.0,1767.8],[2350.0,1765.6],[2360.0,1766.1], +[2370.0,1766.7],[2380.0,1766.7],[2390.0,1765.0],[2400.0,1765.0],[2410.0,1765.0],[2420.0,1765.0],[2430.0,1765.6],[2440.0,1765.6],[2450.0,1763.3],[2460.0,1767.8],[2470.0,1767.8],[2480.0,1765.0],[2490.0,1761.6],[2500.0,1761.6],[2510.0,1762.7],[2520.0,1763.3],[2530.0,1763.3],[2540.0,1763.9],[2550.0,1765.0],[2560.0,1766.1],[2570.0,1765.6],[2580.0,1766.7],[2590.0,1765.6],[2600.0,1768.4],[2610.0,1766.7],[2620.0,1764.4],[2630.0,1764.4],[2640.0,1766.1],[2650.0,1766.1],[2660.0,1766.1],[2670.0,1763.9],[2680.0,1765.6],[2690.0,1765.6],[2700.0,1765.6],[2710.0,1765.0],[2720.0,1765.6],[2730.0,1766.1],[2740.0,1767.3],[2750.0,1766.7],[2760.0,1762.2],[2770.0,1754.9],[2780.0,1750.9],[2790.0,1750.3],[2800.0,1748.1]]; +var ERPM = [[0.0,1503.],[10.0,3006.],[20.0,3005.],[30.0,1505.],[40.0,1505.],[50.0,3015.],[60.0,1503.],[70.0,3006.],[80.0,3006.],[90.0,1503.],[100.0,1503.],[110.0,1503.],[120.0,1500.],[130.0,1503.],[140.0,752.],[150.0,1503.],[160.0,1503.],[170.0,1503.],[180.0,1505.],[190.0,1503.],[200.0,1503.],[210.0,3006.],[220.0,1503.],[230.0,1503.],[240.0,1502.],[250.0,1503.],[260.0,3005.],[270.0,1500.],[280.0,1502.],[290.0,1502.],[300.0,1502.],[310.0,752.],[320.0,1502.],[330.0,1502.],[340.0,1504.],[350.0,1502.],[360.0,1502.],[370.0,1501.],[380.0,1502.],[390.0,501.],[400.0,1501.],[410.0,501.],[420.0,751.],[430.0,751.],[440.0,1503.],[450.0,750.],[460.0,1501.],[470.0,1503.],[480.0,501.],[490.0,1501.],[500.0,1501.],[510.0,501.],[520.0,1501.],[530.0,751.],[540.0,1501.],[550.0,1501.],[560.0,1501.],[570.0,1501.],[580.0,1504.],[590.0,1504.], +[600.0,1502.],[610.0,751.],[620.0,1501.],[630.0,1501.],[640.0,1501.],[650.0,1501.],[660.0,1504.],[670.0,1502.],[680.0,751.],[690.0,751.],[700.0,1501.],[710.0,751.],[720.0,1501.],[730.0,1502.],[740.0,1502.],[750.0,751.],[760.0,376.],[770.0,1502.],[780.0,1501.],[790.0,1502.],[800.0,1499.],[810.0,1499.],[820.0,750.],[830.0,1499.],[840.0,501.],[850.0,300.],[860.0,1504.],[870.0,751.],[880.0,1502.],[890.0,1502.],[900.0,1502.],[910.0,751.],[920.0,501.],[930.0,1502.],[940.0,751.],[950.0,1502.],[960.0,501.],[970.0,1504.],[980.0,751.],[990.0,1502.],[1000.0,751.],[1010.0,1502.],[1020.0,500.],[1030.0,751.],[1040.0,1502.],[1050.0,751.],[1060.0,1502.],[1070.0,1502.],[1080.0,751.],[1090.0,751.],[1100.0,1502.],[1110.0,750.],[1120.0,1502.],[1130.0,375.],[1140.0,1502.],[1150.0,300.],[1160.0,375.],[1170.0,1499.],[1180.0,300.], +[1190.0,375.],[1200.0,1502.],[1210.0,373.],[1220.0,368.],[1230.0,502.],[1240.0,495.],[1250.0,1475.],[1260.0,1468.],[1270.0,732.],[1280.0,1461.],[1290.0,1458.],[1300.0,1456.],[1310.0,1456.],[1320.0,1451.],[1330.0,1453.],[1340.0,1453.],[1350.0,726.],[1360.0,1451.],[1370.0,1451.],[1380.0,1451.],[1390.0,1451.],[1400.0,1449.],[1410.0,1449.],[1420.0,1449.],[1430.0,1944.],[1440.0,1197.],[1450.0,786.],[1460.0,0.],[1470.0,0.],[1480.0,1079.],[1490.0,1070.],[1500.0,1085.],[1510.0,923.],[1520.0,1121.],[1530.0,1293.],[1540.0,1762.],[1550.0,367.],[1560.0,352.],[1570.0,186.],[1580.0,892.],[1590.0,892.],[1600.0,892.],[1610.0,892.],[1620.0,892.],[1630.0,892.],[1640.0,892.],[1650.0,892.],[1660.0,892.],[1670.0,892.],[1680.0,0.],[1690.0,0.],[1700.0,0.],[1710.0,0.],[1720.0,0.],[1730.0,0.],[1740.0,0.],[1750.0,0.],[1760.0,0.], +[1770.0,0.],[1780.0,0.],[1790.0,0.],[1800.0,0.],[1810.0,0.],[1820.0,0.],[1830.0,0.],[1840.0,0.],[1850.0,0.],[1860.0,0.],[1870.0,0.],[1880.0,0.],[1890.0,0.],[1900.0,0.],[1910.0,0.],[1920.0,0.],[1930.0,0.],[1940.0,0.],[1950.0,0.],[1960.0,0.],[1970.0,0.],[1980.0,0.],[1990.0,0.],[2000.0,0.],[2010.0,0.],[2020.0,0.],[2030.0,0.],[2040.0,0.],[2050.0,0.],[2060.0,0.],[2070.0,0.],[2080.0,0.],[2090.0,0.],[2100.0,0.],[2110.0,0.],[2120.0,0.],[2130.0,0.],[2140.0,0.],[2150.0,0.],[2160.0,0.],[2170.0,0.],[2180.0,0.],[2190.0,0.],[2200.0,0.],[2210.0,0.],[2220.0,0.],[2230.0,0.],[2240.0,0.],[2250.0,0.],[2260.0,0.],[2270.0,0.],[2280.0,0.],[2290.0,0.],[2300.0,0.],[2310.0,0.],[2320.0,0.],[2330.0,0.],[2340.0,0.],[2350.0,0.],[2360.0,0.],[2370.0,0.],[2380.0,0.],[2390.0,0.],[2400.0,0.],[2410.0,0.],[2420.0,0.],[2430.0,0.],[2440.0,0.], +[2450.0,0.],[2460.0,0.],[2470.0,0.],[2480.0,0.],[2490.0,0.],[2500.0,0.],[2510.0,0.],[2520.0,0.],[2530.0,0.],[2540.0,0.],[2550.0,0.],[2560.0,0.],[2570.0,0.],[2580.0,0.],[2590.0,0.],[2600.0,0.],[2610.0,0.],[2620.0,0.],[2630.0,0.],[2640.0,0.],[2650.0,0.],[2660.0,0.],[2670.0,0.],[2680.0,0.],[2690.0,0.],[2700.0,0.],[2710.0,0.],[2720.0,0.],[2730.0,0.],[2740.0,0.],[2750.0,0.],[2760.0,0.],[2770.0,0.],[2780.0,0.],[2790.0,0.],[2800.0,0.]]; +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var plot1 = $.jqplot('chart1', [goog], { + title: 'Google, Inc.', + series: [{ + label: 'Google, Inc.', + neighborThreshold: -1 + }], + axes: { + xaxis: { + renderer: $.jqplot.DateAxisRenderer + }, + yaxis: { + tickOptions:{ prefix: '$' } + } + }, + cursor:{ + show: true, + zoom:true, + showTooltip:false + } + }); + + $('.button-reset').click(function() { plot1.resetZoom() }); +}); +</script> + +<script class="code" type="text/javascript"> +$(document).ready(function(){ + var plot2 = $.jqplot('chart2', [InPr, OutPr, ERPM], { + title:'Plot with Zooming and 3 Y Axes', + seriesDefaults: {showMarker:false}, + series:[ + {}, + {yaxis:'y2axis'}, + {yaxis:'y3axis'} + ], + cursor: { + show: true, + tooltipLocation:'sw', + zoom:true + }, + axesDefaults:{ + // color the axes baselines the same color as the series. + useSeriesColor: true, + rendererOptions: { + // align ticks for each axis across the grid + alignTicks: true + } + }, + axes:{ + // Let the lines start at the edge of the axis. + xaxis:{ pad: 0 } + } + }); +}); +</script> + +<!-- End example scripts --> + +<!-- Don't touch this! --> + + + <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script> + <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script> +<!-- End Don't touch this! --> + +<!-- Additional plugins go here --> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> + <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script> + +<!-- End additional plugins --> + + + </div> + <script type="text/javascript" src="example.min.js"></script> + +</body> + + +</html> |