# HG changeset patch # User rlm # Date 1264959213 18000 # Node ID 26c2b3ad21c75706decb833b7d4f77e957275f0c # Parent bff96abdddfa563444fa407c796c20c027eb6025 [svn r47] saving progresswww.cinemassacre.com/new/?page_id=30 diff -r bff96abdddfa -r 26c2b3ad21c7 awesome_js/robert.js --- a/awesome_js/robert.js Thu Jan 28 15:06:52 2010 -0500 +++ b/awesome_js/robert.js Sun Jan 31 12:33:33 2010 -0500 @@ -1,14 +1,4 @@ -function defaults() -{ -alias = "Robert Mac"; -email = "rlm@mit.edu"; -occupation = ""; -company = ""; -phone = ""; -website = ""; -lineArt = ""; -} diff -r bff96abdddfa -r 26c2b3ad21c7 buy.html --- a/buy.html Thu Jan 28 15:06:52 2010 -0500 +++ b/buy.html Sun Jan 31 12:33:33 2010 -0500 @@ -101,7 +101,6 @@ laserkard = eval('(' + JSONtex + ')'); var raphe = Raphael("disp_contain", 515, 318); -defaults(); redraw("bold"); diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/HelveticaNeue_LT_55_Roman_700-HelveticaNeue_LT_55_Roman_700-H.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buy_files/HelveticaNeue_LT_55_Roman_700-HelveticaNeue_LT_55_Roman_700-H.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,161 @@ +/*! + * The following copyright notice may not be removed under any circumstances. + * + * Copyright: + * The digitally encoded machine readable software for producing the Typefaces + * licensed to you is copyrighted (c) 1988, 1990, 1993 Adobe Systems. All Rights + * Reserved. This software is the property of Adobe Systems Incorporated and its + * licensors, and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Adobe. The digitally + * encoded machine readable outline data for producing the Typefaces licensed to + * you is copyrighted (c) 1981 Linotype-Hell AG and/or its subsidiaries. All + * Rights Reserved. This data is the property of Linotype-Hell AG and/or its + * subsidiaries and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Linotype-Hell AG and/or + * its subsidiaries. 12 pt. Helvetica* 75 Bold 07472 + * + * Trademark: + * Copyright (c) 1988, 1990, 1993 Adobe Systems Incorporated. All Rights + * Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. + * + * Description: + * The digitally encoded machine readable software for producing the Typefaces + * licensed to you is copyrighted (c) 1988, 1990, 1993 Adobe Systems. All Rights + * Reserved. This software is the property of Adobe Systems Incorporated and its + * licensors, and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Adobe. The digitally + * encoded machine readable outline data for producing the Typefaces licensed to + * you is copyrighted (c) 1981 Linotype-Hell AG and/or its subsidiaries. All + * Rights Reserved. This data is the property of Linotype-Hell AG and/or its + * subsidiaries and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Linotype-Hell AG and/or + * its subsidiaries. 12 pt. Helvetica* 75 Bold 07472 + * + * Vendor URL: + * http://www.Linotypelibrary.com + * + * License information: + * http://www.Linotypelibrary.com + */ +Cufon.registerFont(Raphael.registerFont( +{"w":200,"face":{"font-family":"HelveticaNeue LT 55 Roman","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 8 3 5 0 0 2 0 4","ascent":"288","descent":"-72","x-height":"5","bbox":"-17 -291 339 77","underline-thickness":"18","underline-position":"-27","unicode-range":"U+0020-U+2122"},"glyphs":{" ":{"w":100},"!":{"d":"22,-55r56,0r0,55r-56,0r0,-55xm77,-257v3,67,-7,123,-14,180r-26,0v-7,-58,-17,-112,-14,-180r54,0","w":100},"\"":{"d":"31,-257r38,0r0,116r-38,0r0,-116xm98,-257r38,0r0,116r-38,0r0,-116","w":166},"#":{"d":"87,-148r-6,44r35,0r6,-44r-35,0xm42,-71r-30,0r0,-33r34,0r7,-44r-30,0r0,-33r34,0r10,-71r35,0r-10,71r35,0r9,-71r35,0r-9,71r26,0r0,33r-31,0r-6,44r26,0r0,33r-31,0r-10,71r-34,0r9,-71r-34,0r-10,71r-35,0"},"$":{"d":"170,-135v62,45,20,146,-59,141r0,31r-22,0r0,-31v-55,-4,-84,-35,-89,-90r51,0v0,26,16,44,38,48r0,-75v-39,-11,-84,-22,-83,-75v1,-51,36,-72,83,-77r0,-28r22,0r0,28v46,6,78,28,81,77r-52,0v1,-17,-13,-35,-29,-35r0,64v22,4,47,12,59,22xm111,-36v34,3,55,-50,18,-63v-5,-2,-11,-4,-18,-6r0,69xm89,-221v-26,-3,-42,30,-25,48v5,4,13,8,25,11r0,-59"},"%":{"d":"274,-108v-27,0,-26,31,-24,56v1,17,6,30,23,30v33,0,34,-86,1,-86xm272,5v-42,-1,-59,-28,-59,-71v0,-42,19,-68,61,-69v43,-1,59,29,59,71v0,41,-18,69,-61,69xm240,-260r31,0r-148,268r-32,0xm88,-230v-25,1,-26,30,-24,58v1,15,5,29,23,28v25,-1,25,-30,23,-54v-2,-15,-5,-33,-22,-32xm86,-117v-43,0,-60,-27,-59,-69v1,-41,19,-71,61,-71v43,0,59,30,59,73v0,43,-19,66,-61,67","w":360},"&":{"d":"223,-124v-3,25,-12,47,-25,63r53,61r-63,0r-21,-26v-40,50,-160,39,-155,-46v2,-42,29,-60,57,-75v-12,-16,-25,-29,-24,-54v1,-39,29,-59,67,-59v41,0,69,20,70,62v0,34,-23,51,-46,64r34,40v6,-9,7,-19,9,-30r44,0xm60,-71v0,43,65,41,80,11r-44,-53v-17,8,-36,18,-36,42xm111,-165v28,-7,39,-57,3,-61v-35,3,-21,49,-3,61","w":246},"\u2019":{"d":"24,-257r52,0v3,56,1,110,-52,116r0,-24v17,-6,23,-16,24,-37r-24,0r0,-55","w":100,"k":{"t":6,"s":27,"\u2019":23}},"(":{"d":"66,66v-60,-81,-61,-250,0,-329r43,0v-52,85,-51,244,0,329r-43,0","w":106},")":{"d":"88,-101v0,67,-20,125,-48,167r-43,0v52,-86,51,-241,1,-329r42,0v27,44,48,98,48,162","w":106},"*":{"d":"87,-212r42,-16r10,28r-43,14r27,35r-24,18r-27,-37r-25,37r-24,-18r27,-35r-42,-14r10,-28r40,16r0,-45r29,0r0,45","w":146},"+":{"d":"127,-110r72,0r0,38r-72,0r0,72r-38,0r0,-72r-72,0r0,-38r72,0r0,-72r38,0r0,72","w":216},",":{"d":"22,-55r56,0v4,58,-1,110,-56,115r0,-26v17,-3,25,-16,26,-34r-26,0r0,-55","w":100},"-":{"d":"19,-120r108,0r0,44r-108,0r0,-44","w":146},"\u00ad":{"d":"19,-120r108,0r0,44r-108,0r0,-44","w":146},".":{"d":"22,-55r56,0r0,55r-56,0r0,-55","w":100},"\/":{"d":"96,-263r42,0r-101,269r-41,0","w":133},"0":{"d":"100,-215v-47,0,-41,64,-41,114v0,30,9,64,41,64v44,0,41,-58,41,-106v-1,-35,-7,-72,-41,-72xm100,5v-71,0,-92,-56,-92,-132v0,-75,21,-130,92,-130v70,0,93,56,93,130v0,75,-22,132,-93,132"},"1":{"d":"27,-202v40,0,69,-13,73,-50r41,0r0,252r-51,0r0,-163r-63,0r0,-39"},"2":{"d":"102,-213v-31,2,-39,28,-40,58r-49,0v0,-63,31,-98,92,-102v78,-6,113,94,59,141v-29,25,-68,41,-91,72r120,0r0,44r-185,0v0,-94,91,-98,127,-154v16,-25,-3,-61,-33,-59"},"3":{"d":"140,-77v0,-34,-24,-38,-58,-37r0,-36v30,2,52,-5,54,-31v1,-21,-17,-34,-36,-34v-25,-1,-39,20,-39,45r-48,0v3,-53,32,-87,87,-87v47,0,82,24,84,70v1,28,-15,44,-35,52v26,5,44,27,45,57v4,96,-156,110,-181,30v-4,-11,-7,-25,-7,-39r49,0v1,29,15,49,44,50v23,1,41,-16,41,-40"},"4":{"d":"112,-100r-1,-88r-65,88r66,0xm112,-58r-106,0r0,-47r109,-147r46,0r0,152r33,0r0,42r-33,0r0,58r-49,0r0,-58"},"5":{"d":"143,-86v4,-47,-63,-62,-83,-27r-46,0r25,-139r141,0r0,42r-104,0v-2,19,-9,41,-9,58v12,-13,26,-19,49,-19v52,0,75,36,78,85v7,94,-140,122,-179,46v-5,-10,-9,-22,-9,-35r52,0v1,21,19,38,41,38v28,-1,42,-21,44,-49"},"6":{"d":"141,-83v0,-27,-12,-48,-38,-48v-28,0,-41,20,-41,47v0,26,14,47,41,47v25,0,38,-20,38,-46xm8,-125v0,-72,27,-130,99,-132v45,-1,77,28,81,70r-48,0v-4,-15,-16,-32,-34,-32v-36,0,-48,39,-48,78v37,-56,142,-20,135,54v-5,55,-33,92,-89,92v-74,0,-96,-57,-96,-130"},"7":{"d":"49,0v6,-83,41,-153,85,-204r-120,0r0,-48r172,0r0,44v-48,45,-79,118,-82,208r-55,0"},"8":{"d":"100,-219v-20,0,-38,13,-38,35v0,24,17,33,38,34v21,1,38,-13,38,-34v-1,-23,-14,-35,-38,-35xm53,-136v-72,-29,-29,-121,47,-121v50,0,85,25,85,68v0,26,-15,45,-37,53v28,6,47,29,47,62v0,54,-41,79,-94,79v-54,0,-96,-24,-96,-79v0,-33,20,-55,48,-62xm101,-116v-24,0,-46,14,-45,40v2,26,19,43,45,43v25,0,43,-16,43,-43v0,-25,-18,-39,-43,-40"},"9":{"d":"59,-169v0,27,12,48,38,48v28,0,41,-20,41,-47v0,-26,-14,-47,-41,-47v-25,0,-38,20,-38,46xm193,-127v0,70,-28,130,-99,132v-46,1,-77,-28,-82,-70r48,0v3,25,35,42,57,23v15,-13,27,-43,25,-69v-36,55,-141,22,-134,-54v5,-56,33,-92,88,-92v74,0,97,59,97,130"},":":{"d":"78,-127r-56,0r0,-56r56,0r0,56xm22,-55r56,0r0,55r-56,0r0,-55","w":100},";":{"d":"78,-127r-56,0r0,-56r56,0r0,56xm22,-55r56,0v4,58,-1,110,-56,115r0,-26v17,-3,25,-16,26,-34r-26,0r0,-55","w":100},"\u037e":{"d":"78,-127r-56,0r0,-56r56,0r0,56xm22,-55r56,0v4,58,-1,110,-56,115r0,-26v17,-3,25,-16,26,-34r-26,0r0,-55","w":100},"<":{"d":"199,-144r-132,53r132,52r0,42r-182,-73r0,-42r182,-73r0,41","w":216},"=":{"d":"199,-33r-182,0r0,-39r182,0r0,39xm199,-110r-182,0r0,-39r182,0r0,39","w":216},">":{"d":"17,-39r132,-52r-132,-53r0,-41r182,73r0,42r-182,73r0,-42","w":216},"?":{"d":"69,-55r57,0r0,55r-57,0r0,-55xm102,-221v-27,1,-37,21,-38,47r-52,0v1,-55,33,-84,87,-89v82,-8,118,86,59,130v-17,13,-38,22,-35,56r-48,0v-7,-57,34,-67,55,-99v6,-23,-3,-46,-28,-45"},"@":{"d":"68,-110v-7,-68,81,-125,121,-67r5,-19r30,0r-26,108v0,3,2,9,6,8v31,-3,43,-33,43,-66v0,-57,-38,-89,-98,-88v-65,1,-101,41,-101,106v0,67,39,103,106,105v32,1,61,-12,77,-29r30,0v-22,34,-58,58,-109,58v-83,0,-139,-52,-139,-135v0,-81,55,-134,137,-134v70,0,125,38,125,110v0,59,-35,97,-85,104v-15,2,-24,-10,-27,-20v-27,42,-101,11,-95,-41xm149,-168v-43,0,-65,85,-16,85v28,0,42,-25,44,-54v0,-17,-12,-31,-28,-31","w":288},"A":{"d":"90,-99r66,0r-33,-95xm95,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0","w":246,"k":{"y":6,"w":6,"v":6,"Y":27,"W":6,"V":17,"T":27,"\u2019":27}},"B":{"d":"173,-184v-1,-40,-54,-27,-92,-29r0,60v39,-2,93,11,92,-31xm240,-75v0,96,-122,72,-215,75r0,-257v83,6,204,-26,203,64v0,28,-15,43,-35,53v29,9,46,30,47,65xm184,-78v0,-48,-58,-34,-103,-36r0,70v44,-2,103,12,103,-34","w":253},"C":{"d":"14,-127v-11,-129,163,-184,225,-83v7,11,10,24,12,39r-55,0v-5,-27,-26,-45,-56,-45v-50,0,-70,39,-70,89v0,49,21,84,70,86v35,1,55,-25,58,-58r55,0v-7,64,-44,105,-113,105v-81,0,-119,-53,-126,-133","w":266},"D":{"d":"196,-125v3,-70,-41,-92,-115,-85r0,162r51,0v46,0,62,-32,64,-77xm252,-130v0,79,-38,130,-116,130r-111,0r0,-257r111,0v76,3,116,47,116,127","w":266},"E":{"d":"25,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0r0,-257","w":233},"F":{"d":"25,-257r181,0r0,47r-125,0r0,60r108,0r0,44r-108,0r0,106r-56,0r0,-257","w":213,"k":{"A":20,".":46,",":46}},"G":{"d":"70,-127v-10,87,119,123,131,30r-57,0r0,-42r108,0r0,139r-36,0r-5,-29v-17,22,-39,35,-71,35v-81,0,-121,-52,-126,-133v-7,-111,111,-173,198,-113v20,14,34,37,36,68r-54,0v-4,-27,-25,-44,-54,-44v-50,0,-64,40,-70,89","w":273},"H":{"d":"25,-257r56,0r0,99r104,0r0,-99r57,0r0,257r-57,0r0,-111r-104,0r0,111r-56,0r0,-257","w":266},"I":{"d":"25,-257r56,0r0,257r-56,0r0,-257","w":106},"J":{"d":"56,-84v-10,46,61,59,62,15r1,-188r56,0v-8,108,38,268,-85,263v-60,-2,-91,-35,-85,-102r51,0r0,12"},"K":{"d":"25,-257r56,0r0,107r101,-107r70,0r-100,101r110,156r-71,0r-77,-116r-33,33r0,83r-56,0r0,-257","w":259},"L":{"d":"25,-257r56,0r0,209r126,0r0,48r-182,0r0,-257","w":213,"k":{"y":13,"Y":40,"W":20,"V":33,"T":40,"\u2019":27}},"M":{"d":"25,-257r79,0r61,177r57,-177r80,0r0,257r-53,0r-1,-182r-63,182r-44,0r-63,-180r0,180r-53,0r0,-257","w":326},"N":{"d":"25,-257r56,0r108,172r0,-172r53,0r0,257r-57,0r-107,-172r0,172r-53,0r0,-257","w":266},"O":{"d":"140,-216v-50,0,-70,39,-70,89v0,49,21,86,70,86v49,0,70,-37,70,-86v0,-50,-20,-89,-70,-89xm140,6v-81,0,-126,-52,-126,-133v0,-82,44,-136,126,-136v82,0,126,54,126,136v0,81,-45,133,-126,133","w":280},"P":{"d":"175,-175v0,-46,-50,-38,-94,-38r0,77v44,-1,94,7,94,-39xm230,-175v2,76,-66,89,-149,83r0,92r-56,0r0,-257r116,0v56,0,88,30,89,82","w":240,"k":{"A":27,".":46,",":46}},"Q":{"d":"70,-127v-1,56,35,98,93,82r-24,-22r26,-28r29,27v32,-47,17,-152,-54,-148v-50,3,-69,39,-70,89xm266,-127v1,41,-13,72,-33,94r32,29r-26,28r-37,-33v-16,9,-37,15,-62,15v-81,-2,-126,-52,-126,-133v0,-82,44,-136,126,-136v82,0,124,54,126,136","w":280},"R":{"d":"182,-177v0,-48,-57,-34,-101,-36r0,72v44,-2,101,13,101,-36xm190,0v-14,-37,4,-100,-52,-100r-57,0r0,100r-56,0r0,-257r138,0v80,-8,102,112,35,135v47,10,30,83,48,122r-56,0","w":259,"k":{"Y":13,"W":-2,"V":-2,"T":6}},"S":{"d":"177,-143v86,37,41,161,-59,149v-62,-8,-108,-27,-109,-91r54,0v1,33,23,47,57,47v44,8,71,-45,26,-60v-53,-18,-127,-18,-129,-87v-3,-93,157,-100,191,-33v5,10,8,23,8,38r-54,0v5,-47,-88,-55,-90,-10v9,40,67,30,105,47","w":233},"T":{"d":"82,-210r-77,0r0,-47r210,0r0,47r-77,0r0,210r-56,0r0,-210","w":219,"k":{"y":33,"w":40,"u":33,"s":40,"r":33,"o":40,"e":40,"c":40,"a":40,"A":27,";":31,":":31,".":40,"-":46,",":40}},"U":{"d":"133,-41v39,0,53,-17,53,-56r0,-160r57,0r0,160v1,70,-41,103,-110,103v-70,0,-110,-33,-109,-103r0,-160r56,0r0,160v0,36,16,56,53,56","w":266},"V":{"d":"144,0r-63,0r-84,-257r58,0r58,181r58,-181r59,0","w":226,"k":{"y":6,"u":13,"r":13,"o":20,"i":6,"e":20,"a":20,"A":17,";":18,":":18,".":46,"-":20,",":46}},"W":{"d":"270,0r-57,0r-44,-175r-43,175r-57,0r-68,-257r57,0r41,175r45,-175r53,0r44,177r42,-177r56,0","w":339,"k":{"u":6,"r":6,"o":13,"e":13,"a":13,"A":6,";":6,":":6,".":27,",":27}},"X":{"d":"88,-135r-83,-122r66,0r50,82r52,-82r62,0r-82,123r89,134r-67,0r-56,-89r-57,89r-64,0","w":240},"Y":{"d":"91,-100r-94,-157r63,0r61,101r59,-101r63,0r-95,158r0,99r-57,0r0,-100","w":240,"k":{"v":20,"u":27,"q":33,"p":27,"o":33,"i":5,"e":33,"a":33,"A":27,";":24,":":29,".":40,"-":40,",":40}},"Z":{"d":"8,-45r138,-165r-127,0r0,-47r202,0r0,45r-137,164r141,0r0,48r-217,0r0,-45","w":233},"[":{"d":"24,-263r96,0r0,40r-44,0r0,248r44,0r0,41r-96,0r0,-329","w":119},"\\":{"d":"138,6r-42,0r-100,-269r41,0","w":133},"]":{"d":"95,66r-95,0r0,-41r44,0r0,-248r-44,0r0,-40r95,0r0,329","w":119},"^":{"d":"84,-252r48,0r62,139r-42,0r-44,-99r-44,99r-42,0","w":216},"_":{"d":"0,27r180,0r0,18r-180,0r0,-18","w":180},"\u2018":{"d":"76,-141r-52,0v-3,-56,0,-110,52,-116r0,24v-17,6,-23,16,-24,36r24,0r0,56","w":100,"k":{"\u2018":23}},"a":{"d":"102,-157v-20,2,-32,9,-34,28r-51,0v4,-46,40,-62,88,-62v42,0,80,10,81,53v1,46,-6,103,7,138r-52,0v-1,-6,-3,-12,-3,-18v-31,35,-126,34,-126,-33v0,-66,76,-47,118,-69v14,-19,-3,-40,-28,-37xm94,-29v36,1,44,-25,41,-62v-20,16,-71,0,-72,38v-1,19,13,24,31,24","w":206},"b":{"d":"112,-33v32,0,44,-28,44,-60v0,-32,-12,-60,-44,-60v-32,0,-43,26,-43,60v0,33,11,60,43,60xm130,5v-30,0,-50,-10,-62,-29r0,24r-49,0r0,-257r52,0r0,94v11,-18,34,-28,59,-28v52,0,77,42,77,98v0,56,-25,98,-77,98","w":219},"c":{"d":"14,-90v-10,-98,124,-136,173,-62v5,9,8,19,9,31r-50,0v-3,-21,-16,-32,-38,-32v-58,0,-58,119,-1,120v24,-1,37,-16,41,-38r49,0v-6,47,-39,76,-89,76v-59,0,-88,-37,-94,-95","w":206},"d":{"d":"108,-33v33,0,44,-28,44,-61v0,-32,-11,-59,-44,-59v-33,0,-45,26,-45,60v0,34,13,60,45,60xm94,-191v25,-1,44,14,56,28r0,-94r51,0r0,257r-49,0r0,-24v-11,18,-30,29,-57,29v-58,-1,-83,-43,-83,-100v0,-55,26,-94,82,-96","w":219},"e":{"d":"145,-113v1,-47,-70,-52,-81,-12v-1,5,-2,8,-2,12r83,0xm62,-81v-7,54,72,61,86,23r45,0v-13,40,-41,63,-88,63v-61,0,-90,-38,-95,-98v-9,-110,163,-133,182,-29v3,13,5,27,4,41r-134,0","w":206},"f":{"d":"120,-217v-24,-6,-44,0,-38,31r35,0r0,34r-35,0r0,152r-51,0r0,-152r-31,0r0,-34r31,0v-6,-58,30,-76,89,-70r0,39","w":119,"k":{"f":6,"\u2019":-6}},"g":{"d":"65,-100v1,31,10,56,41,56v29,0,44,-22,44,-51v0,-33,-12,-58,-44,-58v-28,0,-42,22,-41,53xm94,-191v28,-1,43,12,56,30r0,-25r48,0r0,174v11,89,-126,108,-169,50v-5,-8,-8,-16,-9,-27r51,0v13,44,86,26,79,-21v-1,-7,2,-18,-1,-24v-10,18,-31,29,-56,29v-55,-2,-79,-38,-79,-94v0,-53,26,-91,80,-92","w":219},"h":{"d":"110,-151v-62,0,-32,95,-39,151r-52,0r0,-257r52,0r1,97v9,-19,29,-30,54,-31v93,-6,63,108,68,191r-51,0r0,-105v0,-28,-6,-47,-33,-46","w":213},"i":{"d":"72,-215r-51,0r0,-42r51,0r0,42xm21,-186r51,0r0,186r-51,0r0,-186","w":92},"j":{"d":"75,-215r-51,0r0,-42r51,0r0,42xm75,9v4,49,-35,62,-82,55r0,-42v13,2,31,2,31,-15r0,-193r51,0r0,195","w":100},"k":{"d":"24,-257r51,0r0,138r65,-67r60,0r-70,68r78,118r-62,0r-51,-83r-20,19r0,64r-51,0r0,-257","w":206},"l":{"d":"21,-257r51,0r0,257r-51,0r0,-257","w":92},"m":{"d":"69,-161v20,-35,96,-43,112,1v12,-15,29,-31,56,-31v93,0,64,109,68,191r-51,0r-1,-123v-1,-18,-11,-28,-30,-28v-58,0,-26,97,-34,151r-51,0r-1,-121v-1,-19,-9,-31,-30,-30v-56,4,-29,96,-35,151r-51,0r0,-186r48,0r0,25","w":326},"n":{"d":"110,-151v-62,0,-32,95,-39,151r-52,0r0,-186r49,0v1,8,-2,20,1,26v10,-19,31,-29,57,-31v93,-5,63,108,68,191r-51,0r0,-105v0,-28,-6,-47,-33,-46","w":213},"o":{"d":"110,-153v-33,0,-45,26,-45,60v0,34,12,60,45,60v33,0,45,-26,45,-60v0,-34,-12,-60,-45,-60xm110,5v-62,0,-96,-37,-96,-98v0,-61,34,-98,96,-98v62,0,96,37,96,98v0,61,-34,98,-96,98","w":219},"p":{"d":"69,-93v0,34,12,60,44,60v32,0,45,-25,45,-60v-1,-32,-13,-60,-45,-60v-32,0,-44,26,-44,60xm127,5v-25,0,-46,-12,-56,-28r0,89r-52,0r0,-252r49,0v1,7,-2,18,1,24v11,-17,29,-29,55,-29v59,1,85,42,85,100v0,55,-26,94,-82,96","w":219},"q":{"d":"108,-153v-33,0,-45,27,-45,60v0,34,12,60,44,60v33,0,45,-26,45,-59v0,-32,-12,-61,-44,-61xm95,-191v27,0,47,10,57,29r0,-24r49,0r0,252r-51,0r-1,-89v-10,19,-34,28,-59,28v-52,0,-79,-39,-78,-97v1,-57,25,-99,83,-99","w":219},"r":{"d":"139,-142v-43,-9,-68,15,-68,58r0,84r-52,0r0,-186r49,0v1,11,-2,25,1,34v9,-25,37,-43,70,-37r0,47","w":140,"k":{"q":6,"o":6,"n":-6,"e":6,"d":6,"c":6,".":33,"-":20,",":33}},"s":{"d":"165,-96v47,41,-4,107,-67,101v-49,-5,-84,-19,-88,-65r49,0v-3,38,70,43,73,7v-17,-44,-112,-10,-117,-78v-5,-75,125,-75,154,-29v5,8,8,16,9,28r-49,0v0,-23,-22,-24,-44,-24v-26,0,-22,29,-1,34v28,7,61,9,81,26","w":193},"t":{"d":"122,0v-43,6,-89,3,-89,-42r0,-110r-31,0r0,-34r31,0r0,-56r51,0r0,56r38,0r0,34r-38,0r0,92v-3,25,19,24,38,20r0,40","w":126},"u":{"d":"103,-35v63,0,33,-94,40,-151r51,0r0,186r-49,0v-1,-8,2,-20,-1,-26v-11,19,-32,30,-57,31v-92,5,-64,-108,-68,-191r52,0r0,105v0,28,6,46,32,46","w":213},"v":{"d":"122,0r-56,0r-64,-186r53,0r40,127r40,-127r50,0","w":187,"k":{".":20,",":20}},"w":{"d":"232,0r-52,0r-34,-125r-32,125r-53,0r-59,-186r54,0r35,126r31,-126r50,0r32,126r34,-126r53,0","w":293,"k":{".":20,",":20}},"x":{"d":"67,-98r-61,-88r58,0r33,48r32,-48r57,0r-61,87r68,99r-58,0r-39,-59r-39,59r-57,0","w":193},"y":{"d":"16,22v28,6,58,-3,47,-34r-65,-174r55,0r42,127r41,-127r53,0r-78,209v-11,38,-45,48,-95,41r0,-42","w":186,"k":{".":20,",":20}},"z":{"d":"8,-39r97,-109r-90,0r0,-38r157,0r0,38r-97,109r104,0r0,39r-171,0r0,-39","w":186},"{":{"d":"30,-147v0,-54,-6,-114,44,-116r46,0r0,40v-24,-2,-40,2,-39,26v3,47,3,95,-36,99v46,1,37,61,37,106v0,18,19,18,38,17r0,41v-49,4,-89,-4,-90,-49v-2,-42,12,-101,-33,-100r0,-31v19,-2,33,-13,33,-33","w":119},"|":{"d":"21,-283r38,0r0,360r-38,0r0,-360","w":80},"}":{"d":"90,-53v0,55,6,116,-44,119r-46,0r0,-41v24,2,40,-2,39,-26v-2,-46,-5,-95,36,-98v-45,-1,-35,-61,-37,-107v0,-18,-19,-18,-38,-17r0,-40v49,-4,89,3,90,48v1,43,-11,101,33,101r0,31v-19,1,-33,11,-33,30","w":119},"~":{"d":"69,-122v40,2,86,49,108,-2r15,34v-12,14,-20,31,-45,31v-37,0,-91,-51,-108,1r-15,-33v8,-16,20,-32,45,-31","w":216},"'":{"d":"31,-257r38,0r0,116r-38,0r0,-116","w":100},"\u201c":{"d":"71,-141r-52,0v-3,-56,-1,-110,52,-116r0,24v-17,6,-23,16,-24,36r24,0r0,56xm147,-141r-51,0v-3,-56,-1,-110,51,-116r0,24v-17,6,-22,17,-24,36r24,0r0,56","w":166},"\u2013":{"d":"0,-120r180,0r0,44r-180,0r0,-44","w":180},"\u201d":{"d":"19,-257r52,0v3,56,1,110,-52,116r0,-24v17,-6,23,-16,24,-37r-24,0r0,-55xm96,-257r51,0v3,55,2,110,-51,116r0,-24v17,-6,23,-16,24,-37r-24,0r0,-55","w":166},"\u2026":{"d":"271,-55r57,0r0,55r-57,0r0,-55xm152,-55r56,0r0,55r-56,0r0,-55xm32,-55r56,0r0,55r-56,0r0,-55","w":360},"`":{"d":"-17,-260r56,0r35,51r-36,0","w":93},"\u2014":{"d":"47,-120r266,0r0,44r-266,0r0,-44","w":360},"\u00d7":{"d":"23,-33r58,-58r-57,-58r27,-27r57,58r58,-58r27,27r-58,58r58,58r-27,27r-58,-58r-58,58","w":216},"\u2122":{"d":"143,-228r-42,0r0,119r-37,0r0,-119r-42,0r0,-29r121,0r0,29xm334,-109r-34,0r-1,-105r-38,105r-25,0r-39,-105r0,105r-35,0r0,-148r49,0r37,98r37,-98r49,0r0,148","w":360},"\u00a0":{"w":100}}})); +/*! + * The following copyright notice may not be removed under any circumstances. + * + * Copyright: + * The digitally encoded machine readable software for producing the Typefaces + * licensed to you is copyrighted (c) 1988, 1990, 1993 Adobe Systems. All Rights + * Reserved. This software is the property of Adobe Systems Incorporated and its + * licensors, and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Adobe. The digitally + * encoded machine readable outline data for producing the Typefaces licensed to + * you is copyrighted (c) 1981 Linotype-Hell AG and/or its subsidiaries. All + * Rights Reserved. This data is the property of Linotype-Hell AG and/or its + * subsidiaries and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Linotype-Hell AG and/or + * its subsidiaries. 12 pt. Helvetica* 75 Bold 07472 + * + * Trademark: + * Copyright (c) 1988, 1990, 1993 Adobe Systems Incorporated. All Rights + * Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. + * + * Description: + * The digitally encoded machine readable software for producing the Typefaces + * licensed to you is copyrighted (c) 1988, 1990, 1993 Adobe Systems. All Rights + * Reserved. This software is the property of Adobe Systems Incorporated and its + * licensors, and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Adobe. The digitally + * encoded machine readable outline data for producing the Typefaces licensed to + * you is copyrighted (c) 1981 Linotype-Hell AG and/or its subsidiaries. All + * Rights Reserved. This data is the property of Linotype-Hell AG and/or its + * subsidiaries and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Linotype-Hell AG and/or + * its subsidiaries. 12 pt. Helvetica* 75 Bold 07472 + * + * Vendor URL: + * http://www.Linotypelibrary.com + * + * License information: + * http://www.Linotypelibrary.com + */ +Cufon.registerFont(Raphael.registerFont({"w":200,"face":{"font-family":"HelveticaNeue LT 55 Roman","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 8 3 5 0 0 2 0 4","ascent":"288","descent":"-72","x-height":"5","bbox":"-17 -291 339 77","underline-thickness":"18","underline-position":"-27","unicode-range":"U+0020-U+2122"},"glyphs":{" ":{"w":100},"!":{"d":"22,-55r56,0r0,55r-56,0r0,-55xm77,-257v3,67,-7,123,-14,180r-26,0v-7,-58,-17,-112,-14,-180r54,0","w":100},"\"":{"d":"31,-257r38,0r0,116r-38,0r0,-116xm98,-257r38,0r0,116r-38,0r0,-116","w":166},"#":{"d":"87,-148r-6,44r35,0r6,-44r-35,0xm42,-71r-30,0r0,-33r34,0r7,-44r-30,0r0,-33r34,0r10,-71r35,0r-10,71r35,0r9,-71r35,0r-9,71r26,0r0,33r-31,0r-6,44r26,0r0,33r-31,0r-10,71r-34,0r9,-71r-34,0r-10,71r-35,0"},"$":{"d":"170,-135v62,45,20,146,-59,141r0,31r-22,0r0,-31v-55,-4,-84,-35,-89,-90r51,0v0,26,16,44,38,48r0,-75v-39,-11,-84,-22,-83,-75v1,-51,36,-72,83,-77r0,-28r22,0r0,28v46,6,78,28,81,77r-52,0v1,-17,-13,-35,-29,-35r0,64v22,4,47,12,59,22xm111,-36v34,3,55,-50,18,-63v-5,-2,-11,-4,-18,-6r0,69xm89,-221v-26,-3,-42,30,-25,48v5,4,13,8,25,11r0,-59"},"%":{"d":"274,-108v-27,0,-26,31,-24,56v1,17,6,30,23,30v33,0,34,-86,1,-86xm272,5v-42,-1,-59,-28,-59,-71v0,-42,19,-68,61,-69v43,-1,59,29,59,71v0,41,-18,69,-61,69xm240,-260r31,0r-148,268r-32,0xm88,-230v-25,1,-26,30,-24,58v1,15,5,29,23,28v25,-1,25,-30,23,-54v-2,-15,-5,-33,-22,-32xm86,-117v-43,0,-60,-27,-59,-69v1,-41,19,-71,61,-71v43,0,59,30,59,73v0,43,-19,66,-61,67","w":360},"&":{"d":"223,-124v-3,25,-12,47,-25,63r53,61r-63,0r-21,-26v-40,50,-160,39,-155,-46v2,-42,29,-60,57,-75v-12,-16,-25,-29,-24,-54v1,-39,29,-59,67,-59v41,0,69,20,70,62v0,34,-23,51,-46,64r34,40v6,-9,7,-19,9,-30r44,0xm60,-71v0,43,65,41,80,11r-44,-53v-17,8,-36,18,-36,42xm111,-165v28,-7,39,-57,3,-61v-35,3,-21,49,-3,61","w":246},"\u2019":{"d":"24,-257r52,0v3,56,1,110,-52,116r0,-24v17,-6,23,-16,24,-37r-24,0r0,-55","w":100,"k":{"t":6,"s":27,"\u2019":23}},"(":{"d":"66,66v-60,-81,-61,-250,0,-329r43,0v-52,85,-51,244,0,329r-43,0","w":106},")":{"d":"88,-101v0,67,-20,125,-48,167r-43,0v52,-86,51,-241,1,-329r42,0v27,44,48,98,48,162","w":106},"*":{"d":"87,-212r42,-16r10,28r-43,14r27,35r-24,18r-27,-37r-25,37r-24,-18r27,-35r-42,-14r10,-28r40,16r0,-45r29,0r0,45","w":146},"+":{"d":"127,-110r72,0r0,38r-72,0r0,72r-38,0r0,-72r-72,0r0,-38r72,0r0,-72r38,0r0,72","w":216},",":{"d":"22,-55r56,0v4,58,-1,110,-56,115r0,-26v17,-3,25,-16,26,-34r-26,0r0,-55","w":100},"-":{"d":"19,-120r108,0r0,44r-108,0r0,-44","w":146},"\u00ad":{"d":"19,-120r108,0r0,44r-108,0r0,-44","w":146},".":{"d":"22,-55r56,0r0,55r-56,0r0,-55","w":100},"\/":{"d":"96,-263r42,0r-101,269r-41,0","w":133},"0":{"d":"100,-215v-47,0,-41,64,-41,114v0,30,9,64,41,64v44,0,41,-58,41,-106v-1,-35,-7,-72,-41,-72xm100,5v-71,0,-92,-56,-92,-132v0,-75,21,-130,92,-130v70,0,93,56,93,130v0,75,-22,132,-93,132"},"1":{"d":"27,-202v40,0,69,-13,73,-50r41,0r0,252r-51,0r0,-163r-63,0r0,-39"},"2":{"d":"102,-213v-31,2,-39,28,-40,58r-49,0v0,-63,31,-98,92,-102v78,-6,113,94,59,141v-29,25,-68,41,-91,72r120,0r0,44r-185,0v0,-94,91,-98,127,-154v16,-25,-3,-61,-33,-59"},"3":{"d":"140,-77v0,-34,-24,-38,-58,-37r0,-36v30,2,52,-5,54,-31v1,-21,-17,-34,-36,-34v-25,-1,-39,20,-39,45r-48,0v3,-53,32,-87,87,-87v47,0,82,24,84,70v1,28,-15,44,-35,52v26,5,44,27,45,57v4,96,-156,110,-181,30v-4,-11,-7,-25,-7,-39r49,0v1,29,15,49,44,50v23,1,41,-16,41,-40"},"4":{"d":"112,-100r-1,-88r-65,88r66,0xm112,-58r-106,0r0,-47r109,-147r46,0r0,152r33,0r0,42r-33,0r0,58r-49,0r0,-58"},"5":{"d":"143,-86v4,-47,-63,-62,-83,-27r-46,0r25,-139r141,0r0,42r-104,0v-2,19,-9,41,-9,58v12,-13,26,-19,49,-19v52,0,75,36,78,85v7,94,-140,122,-179,46v-5,-10,-9,-22,-9,-35r52,0v1,21,19,38,41,38v28,-1,42,-21,44,-49"},"6":{"d":"141,-83v0,-27,-12,-48,-38,-48v-28,0,-41,20,-41,47v0,26,14,47,41,47v25,0,38,-20,38,-46xm8,-125v0,-72,27,-130,99,-132v45,-1,77,28,81,70r-48,0v-4,-15,-16,-32,-34,-32v-36,0,-48,39,-48,78v37,-56,142,-20,135,54v-5,55,-33,92,-89,92v-74,0,-96,-57,-96,-130"},"7":{"d":"49,0v6,-83,41,-153,85,-204r-120,0r0,-48r172,0r0,44v-48,45,-79,118,-82,208r-55,0"},"8":{"d":"100,-219v-20,0,-38,13,-38,35v0,24,17,33,38,34v21,1,38,-13,38,-34v-1,-23,-14,-35,-38,-35xm53,-136v-72,-29,-29,-121,47,-121v50,0,85,25,85,68v0,26,-15,45,-37,53v28,6,47,29,47,62v0,54,-41,79,-94,79v-54,0,-96,-24,-96,-79v0,-33,20,-55,48,-62xm101,-116v-24,0,-46,14,-45,40v2,26,19,43,45,43v25,0,43,-16,43,-43v0,-25,-18,-39,-43,-40"},"9":{"d":"59,-169v0,27,12,48,38,48v28,0,41,-20,41,-47v0,-26,-14,-47,-41,-47v-25,0,-38,20,-38,46xm193,-127v0,70,-28,130,-99,132v-46,1,-77,-28,-82,-70r48,0v3,25,35,42,57,23v15,-13,27,-43,25,-69v-36,55,-141,22,-134,-54v5,-56,33,-92,88,-92v74,0,97,59,97,130"},":":{"d":"78,-127r-56,0r0,-56r56,0r0,56xm22,-55r56,0r0,55r-56,0r0,-55","w":100},";":{"d":"78,-127r-56,0r0,-56r56,0r0,56xm22,-55r56,0v4,58,-1,110,-56,115r0,-26v17,-3,25,-16,26,-34r-26,0r0,-55","w":100},"\u037e":{"d":"78,-127r-56,0r0,-56r56,0r0,56xm22,-55r56,0v4,58,-1,110,-56,115r0,-26v17,-3,25,-16,26,-34r-26,0r0,-55","w":100},"<":{"d":"199,-144r-132,53r132,52r0,42r-182,-73r0,-42r182,-73r0,41","w":216},"=":{"d":"199,-33r-182,0r0,-39r182,0r0,39xm199,-110r-182,0r0,-39r182,0r0,39","w":216},">":{"d":"17,-39r132,-52r-132,-53r0,-41r182,73r0,42r-182,73r0,-42","w":216},"?":{"d":"69,-55r57,0r0,55r-57,0r0,-55xm102,-221v-27,1,-37,21,-38,47r-52,0v1,-55,33,-84,87,-89v82,-8,118,86,59,130v-17,13,-38,22,-35,56r-48,0v-7,-57,34,-67,55,-99v6,-23,-3,-46,-28,-45"},"@":{"d":"68,-110v-7,-68,81,-125,121,-67r5,-19r30,0r-26,108v0,3,2,9,6,8v31,-3,43,-33,43,-66v0,-57,-38,-89,-98,-88v-65,1,-101,41,-101,106v0,67,39,103,106,105v32,1,61,-12,77,-29r30,0v-22,34,-58,58,-109,58v-83,0,-139,-52,-139,-135v0,-81,55,-134,137,-134v70,0,125,38,125,110v0,59,-35,97,-85,104v-15,2,-24,-10,-27,-20v-27,42,-101,11,-95,-41xm149,-168v-43,0,-65,85,-16,85v28,0,42,-25,44,-54v0,-17,-12,-31,-28,-31","w":288},"A":{"d":"90,-99r66,0r-33,-95xm95,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0","w":246,"k":{"y":6,"w":6,"v":6,"Y":27,"W":6,"V":17,"T":27,"\u2019":27}},"B":{"d":"173,-184v-1,-40,-54,-27,-92,-29r0,60v39,-2,93,11,92,-31xm240,-75v0,96,-122,72,-215,75r0,-257v83,6,204,-26,203,64v0,28,-15,43,-35,53v29,9,46,30,47,65xm184,-78v0,-48,-58,-34,-103,-36r0,70v44,-2,103,12,103,-34","w":253},"C":{"d":"14,-127v-11,-129,163,-184,225,-83v7,11,10,24,12,39r-55,0v-5,-27,-26,-45,-56,-45v-50,0,-70,39,-70,89v0,49,21,84,70,86v35,1,55,-25,58,-58r55,0v-7,64,-44,105,-113,105v-81,0,-119,-53,-126,-133","w":266},"D":{"d":"196,-125v3,-70,-41,-92,-115,-85r0,162r51,0v46,0,62,-32,64,-77xm252,-130v0,79,-38,130,-116,130r-111,0r0,-257r111,0v76,3,116,47,116,127","w":266},"E":{"d":"25,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0r0,-257","w":233},"F":{"d":"25,-257r181,0r0,47r-125,0r0,60r108,0r0,44r-108,0r0,106r-56,0r0,-257","w":213,"k":{"A":20,".":46,",":46}},"G":{"d":"70,-127v-10,87,119,123,131,30r-57,0r0,-42r108,0r0,139r-36,0r-5,-29v-17,22,-39,35,-71,35v-81,0,-121,-52,-126,-133v-7,-111,111,-173,198,-113v20,14,34,37,36,68r-54,0v-4,-27,-25,-44,-54,-44v-50,0,-64,40,-70,89","w":273},"H":{"d":"25,-257r56,0r0,99r104,0r0,-99r57,0r0,257r-57,0r0,-111r-104,0r0,111r-56,0r0,-257","w":266},"I":{"d":"25,-257r56,0r0,257r-56,0r0,-257","w":106},"J":{"d":"56,-84v-10,46,61,59,62,15r1,-188r56,0v-8,108,38,268,-85,263v-60,-2,-91,-35,-85,-102r51,0r0,12"},"K":{"d":"25,-257r56,0r0,107r101,-107r70,0r-100,101r110,156r-71,0r-77,-116r-33,33r0,83r-56,0r0,-257","w":259},"L":{"d":"25,-257r56,0r0,209r126,0r0,48r-182,0r0,-257","w":213,"k":{"y":13,"Y":40,"W":20,"V":33,"T":40,"\u2019":27}},"M":{"d":"25,-257r79,0r61,177r57,-177r80,0r0,257r-53,0r-1,-182r-63,182r-44,0r-63,-180r0,180r-53,0r0,-257","w":326},"N":{"d":"25,-257r56,0r108,172r0,-172r53,0r0,257r-57,0r-107,-172r0,172r-53,0r0,-257","w":266},"O":{"d":"140,-216v-50,0,-70,39,-70,89v0,49,21,86,70,86v49,0,70,-37,70,-86v0,-50,-20,-89,-70,-89xm140,6v-81,0,-126,-52,-126,-133v0,-82,44,-136,126,-136v82,0,126,54,126,136v0,81,-45,133,-126,133","w":280},"P":{"d":"175,-175v0,-46,-50,-38,-94,-38r0,77v44,-1,94,7,94,-39xm230,-175v2,76,-66,89,-149,83r0,92r-56,0r0,-257r116,0v56,0,88,30,89,82","w":240,"k":{"A":27,".":46,",":46}},"Q":{"d":"70,-127v-1,56,35,98,93,82r-24,-22r26,-28r29,27v32,-47,17,-152,-54,-148v-50,3,-69,39,-70,89xm266,-127v1,41,-13,72,-33,94r32,29r-26,28r-37,-33v-16,9,-37,15,-62,15v-81,-2,-126,-52,-126,-133v0,-82,44,-136,126,-136v82,0,124,54,126,136","w":280},"R":{"d":"182,-177v0,-48,-57,-34,-101,-36r0,72v44,-2,101,13,101,-36xm190,0v-14,-37,4,-100,-52,-100r-57,0r0,100r-56,0r0,-257r138,0v80,-8,102,112,35,135v47,10,30,83,48,122r-56,0","w":259,"k":{"Y":13,"W":-2,"V":-2,"T":6}},"S":{"d":"177,-143v86,37,41,161,-59,149v-62,-8,-108,-27,-109,-91r54,0v1,33,23,47,57,47v44,8,71,-45,26,-60v-53,-18,-127,-18,-129,-87v-3,-93,157,-100,191,-33v5,10,8,23,8,38r-54,0v5,-47,-88,-55,-90,-10v9,40,67,30,105,47","w":233},"T":{"d":"82,-210r-77,0r0,-47r210,0r0,47r-77,0r0,210r-56,0r0,-210","w":219,"k":{"y":33,"w":40,"u":33,"s":40,"r":33,"o":40,"e":40,"c":40,"a":40,"A":27,";":31,":":31,".":40,"-":46,",":40}},"U":{"d":"133,-41v39,0,53,-17,53,-56r0,-160r57,0r0,160v1,70,-41,103,-110,103v-70,0,-110,-33,-109,-103r0,-160r56,0r0,160v0,36,16,56,53,56","w":266},"V":{"d":"144,0r-63,0r-84,-257r58,0r58,181r58,-181r59,0","w":226,"k":{"y":6,"u":13,"r":13,"o":20,"i":6,"e":20,"a":20,"A":17,";":18,":":18,".":46,"-":20,",":46}},"W":{"d":"270,0r-57,0r-44,-175r-43,175r-57,0r-68,-257r57,0r41,175r45,-175r53,0r44,177r42,-177r56,0","w":339,"k":{"u":6,"r":6,"o":13,"e":13,"a":13,"A":6,";":6,":":6,".":27,",":27}},"X":{"d":"88,-135r-83,-122r66,0r50,82r52,-82r62,0r-82,123r89,134r-67,0r-56,-89r-57,89r-64,0","w":240},"Y":{"d":"91,-100r-94,-157r63,0r61,101r59,-101r63,0r-95,158r0,99r-57,0r0,-100","w":240,"k":{"v":20,"u":27,"q":33,"p":27,"o":33,"i":5,"e":33,"a":33,"A":27,";":24,":":29,".":40,"-":40,",":40}},"Z":{"d":"8,-45r138,-165r-127,0r0,-47r202,0r0,45r-137,164r141,0r0,48r-217,0r0,-45","w":233},"[":{"d":"24,-263r96,0r0,40r-44,0r0,248r44,0r0,41r-96,0r0,-329","w":119},"\\":{"d":"138,6r-42,0r-100,-269r41,0","w":133},"]":{"d":"95,66r-95,0r0,-41r44,0r0,-248r-44,0r0,-40r95,0r0,329","w":119},"^":{"d":"84,-252r48,0r62,139r-42,0r-44,-99r-44,99r-42,0","w":216},"_":{"d":"0,27r180,0r0,18r-180,0r0,-18","w":180},"\u2018":{"d":"76,-141r-52,0v-3,-56,0,-110,52,-116r0,24v-17,6,-23,16,-24,36r24,0r0,56","w":100,"k":{"\u2018":23}},"a":{"d":"102,-157v-20,2,-32,9,-34,28r-51,0v4,-46,40,-62,88,-62v42,0,80,10,81,53v1,46,-6,103,7,138r-52,0v-1,-6,-3,-12,-3,-18v-31,35,-126,34,-126,-33v0,-66,76,-47,118,-69v14,-19,-3,-40,-28,-37xm94,-29v36,1,44,-25,41,-62v-20,16,-71,0,-72,38v-1,19,13,24,31,24","w":206},"b":{"d":"112,-33v32,0,44,-28,44,-60v0,-32,-12,-60,-44,-60v-32,0,-43,26,-43,60v0,33,11,60,43,60xm130,5v-30,0,-50,-10,-62,-29r0,24r-49,0r0,-257r52,0r0,94v11,-18,34,-28,59,-28v52,0,77,42,77,98v0,56,-25,98,-77,98","w":219},"c":{"d":"14,-90v-10,-98,124,-136,173,-62v5,9,8,19,9,31r-50,0v-3,-21,-16,-32,-38,-32v-58,0,-58,119,-1,120v24,-1,37,-16,41,-38r49,0v-6,47,-39,76,-89,76v-59,0,-88,-37,-94,-95","w":206},"d":{"d":"108,-33v33,0,44,-28,44,-61v0,-32,-11,-59,-44,-59v-33,0,-45,26,-45,60v0,34,13,60,45,60xm94,-191v25,-1,44,14,56,28r0,-94r51,0r0,257r-49,0r0,-24v-11,18,-30,29,-57,29v-58,-1,-83,-43,-83,-100v0,-55,26,-94,82,-96","w":219},"e":{"d":"145,-113v1,-47,-70,-52,-81,-12v-1,5,-2,8,-2,12r83,0xm62,-81v-7,54,72,61,86,23r45,0v-13,40,-41,63,-88,63v-61,0,-90,-38,-95,-98v-9,-110,163,-133,182,-29v3,13,5,27,4,41r-134,0","w":206},"f":{"d":"120,-217v-24,-6,-44,0,-38,31r35,0r0,34r-35,0r0,152r-51,0r0,-152r-31,0r0,-34r31,0v-6,-58,30,-76,89,-70r0,39","w":119,"k":{"f":6,"\u2019":-6}},"g":{"d":"65,-100v1,31,10,56,41,56v29,0,44,-22,44,-51v0,-33,-12,-58,-44,-58v-28,0,-42,22,-41,53xm94,-191v28,-1,43,12,56,30r0,-25r48,0r0,174v11,89,-126,108,-169,50v-5,-8,-8,-16,-9,-27r51,0v13,44,86,26,79,-21v-1,-7,2,-18,-1,-24v-10,18,-31,29,-56,29v-55,-2,-79,-38,-79,-94v0,-53,26,-91,80,-92","w":219},"h":{"d":"110,-151v-62,0,-32,95,-39,151r-52,0r0,-257r52,0r1,97v9,-19,29,-30,54,-31v93,-6,63,108,68,191r-51,0r0,-105v0,-28,-6,-47,-33,-46","w":213},"i":{"d":"72,-215r-51,0r0,-42r51,0r0,42xm21,-186r51,0r0,186r-51,0r0,-186","w":92},"j":{"d":"75,-215r-51,0r0,-42r51,0r0,42xm75,9v4,49,-35,62,-82,55r0,-42v13,2,31,2,31,-15r0,-193r51,0r0,195","w":100},"k":{"d":"24,-257r51,0r0,138r65,-67r60,0r-70,68r78,118r-62,0r-51,-83r-20,19r0,64r-51,0r0,-257","w":206},"l":{"d":"21,-257r51,0r0,257r-51,0r0,-257","w":92},"m":{"d":"69,-161v20,-35,96,-43,112,1v12,-15,29,-31,56,-31v93,0,64,109,68,191r-51,0r-1,-123v-1,-18,-11,-28,-30,-28v-58,0,-26,97,-34,151r-51,0r-1,-121v-1,-19,-9,-31,-30,-30v-56,4,-29,96,-35,151r-51,0r0,-186r48,0r0,25","w":326},"n":{"d":"110,-151v-62,0,-32,95,-39,151r-52,0r0,-186r49,0v1,8,-2,20,1,26v10,-19,31,-29,57,-31v93,-5,63,108,68,191r-51,0r0,-105v0,-28,-6,-47,-33,-46","w":213},"o":{"d":"110,-153v-33,0,-45,26,-45,60v0,34,12,60,45,60v33,0,45,-26,45,-60v0,-34,-12,-60,-45,-60xm110,5v-62,0,-96,-37,-96,-98v0,-61,34,-98,96,-98v62,0,96,37,96,98v0,61,-34,98,-96,98","w":219},"p":{"d":"69,-93v0,34,12,60,44,60v32,0,45,-25,45,-60v-1,-32,-13,-60,-45,-60v-32,0,-44,26,-44,60xm127,5v-25,0,-46,-12,-56,-28r0,89r-52,0r0,-252r49,0v1,7,-2,18,1,24v11,-17,29,-29,55,-29v59,1,85,42,85,100v0,55,-26,94,-82,96","w":219},"q":{"d":"108,-153v-33,0,-45,27,-45,60v0,34,12,60,44,60v33,0,45,-26,45,-59v0,-32,-12,-61,-44,-61xm95,-191v27,0,47,10,57,29r0,-24r49,0r0,252r-51,0r-1,-89v-10,19,-34,28,-59,28v-52,0,-79,-39,-78,-97v1,-57,25,-99,83,-99","w":219},"r":{"d":"139,-142v-43,-9,-68,15,-68,58r0,84r-52,0r0,-186r49,0v1,11,-2,25,1,34v9,-25,37,-43,70,-37r0,47","w":140,"k":{"q":6,"o":6,"n":-6,"e":6,"d":6,"c":6,".":33,"-":20,",":33}},"s":{"d":"165,-96v47,41,-4,107,-67,101v-49,-5,-84,-19,-88,-65r49,0v-3,38,70,43,73,7v-17,-44,-112,-10,-117,-78v-5,-75,125,-75,154,-29v5,8,8,16,9,28r-49,0v0,-23,-22,-24,-44,-24v-26,0,-22,29,-1,34v28,7,61,9,81,26","w":193},"t":{"d":"122,0v-43,6,-89,3,-89,-42r0,-110r-31,0r0,-34r31,0r0,-56r51,0r0,56r38,0r0,34r-38,0r0,92v-3,25,19,24,38,20r0,40","w":126},"u":{"d":"103,-35v63,0,33,-94,40,-151r51,0r0,186r-49,0v-1,-8,2,-20,-1,-26v-11,19,-32,30,-57,31v-92,5,-64,-108,-68,-191r52,0r0,105v0,28,6,46,32,46","w":213},"v":{"d":"122,0r-56,0r-64,-186r53,0r40,127r40,-127r50,0","w":187,"k":{".":20,",":20}},"w":{"d":"232,0r-52,0r-34,-125r-32,125r-53,0r-59,-186r54,0r35,126r31,-126r50,0r32,126r34,-126r53,0","w":293,"k":{".":20,",":20}},"x":{"d":"67,-98r-61,-88r58,0r33,48r32,-48r57,0r-61,87r68,99r-58,0r-39,-59r-39,59r-57,0","w":193},"y":{"d":"16,22v28,6,58,-3,47,-34r-65,-174r55,0r42,127r41,-127r53,0r-78,209v-11,38,-45,48,-95,41r0,-42","w":186,"k":{".":20,",":20}},"z":{"d":"8,-39r97,-109r-90,0r0,-38r157,0r0,38r-97,109r104,0r0,39r-171,0r0,-39","w":186},"{":{"d":"30,-147v0,-54,-6,-114,44,-116r46,0r0,40v-24,-2,-40,2,-39,26v3,47,3,95,-36,99v46,1,37,61,37,106v0,18,19,18,38,17r0,41v-49,4,-89,-4,-90,-49v-2,-42,12,-101,-33,-100r0,-31v19,-2,33,-13,33,-33","w":119},"|":{"d":"21,-283r38,0r0,360r-38,0r0,-360","w":80},"}":{"d":"90,-53v0,55,6,116,-44,119r-46,0r0,-41v24,2,40,-2,39,-26v-2,-46,-5,-95,36,-98v-45,-1,-35,-61,-37,-107v0,-18,-19,-18,-38,-17r0,-40v49,-4,89,3,90,48v1,43,-11,101,33,101r0,31v-19,1,-33,11,-33,30","w":119},"~":{"d":"69,-122v40,2,86,49,108,-2r15,34v-12,14,-20,31,-45,31v-37,0,-91,-51,-108,1r-15,-33v8,-16,20,-32,45,-31","w":216},"'":{"d":"31,-257r38,0r0,116r-38,0r0,-116","w":100},"\u201c":{"d":"71,-141r-52,0v-3,-56,-1,-110,52,-116r0,24v-17,6,-23,16,-24,36r24,0r0,56xm147,-141r-51,0v-3,-56,-1,-110,51,-116r0,24v-17,6,-22,17,-24,36r24,0r0,56","w":166},"\u2013":{"d":"0,-120r180,0r0,44r-180,0r0,-44","w":180},"\u201d":{"d":"19,-257r52,0v3,56,1,110,-52,116r0,-24v17,-6,23,-16,24,-37r-24,0r0,-55xm96,-257r51,0v3,55,2,110,-51,116r0,-24v17,-6,23,-16,24,-37r-24,0r0,-55","w":166},"\u2026":{"d":"271,-55r57,0r0,55r-57,0r0,-55xm152,-55r56,0r0,55r-56,0r0,-55xm32,-55r56,0r0,55r-56,0r0,-55","w":360},"`":{"d":"-17,-260r56,0r35,51r-36,0","w":93},"\u2014":{"d":"47,-120r266,0r0,44r-266,0r0,-44","w":360},"\u00d7":{"d":"23,-33r58,-58r-57,-58r27,-27r57,58r58,-58r27,27r-58,58r58,58r-27,27r-58,-58r-58,58","w":216},"\u2122":{"d":"143,-228r-42,0r0,119r-37,0r0,-119r-42,0r0,-29r121,0r0,29xm334,-109r-34,0r-1,-105r-38,105r-25,0r-39,-105r0,105r-35,0r0,-148r49,0r37,98r37,-98r49,0r0,148","w":360},"\u00a0":{"w":100}}})); +/*! + * The following copyright notice may not be removed under any circumstances. + * + * Copyright: + * The digitally encoded machine readable software for producing the Typefaces + * licensed to you is copyrighted (c) 1988, 1990, 1993 Adobe Systems. All Rights + * Reserved. This software is the property of Adobe Systems Incorporated and its + * licensors, and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Adobe. The digitally + * encoded machine readable outline data for producing the Typefaces licensed to + * you is copyrighted (c) 1981 Linotype-Hell AG and/or its subsidiaries. All + * Rights Reserved. This data is the property of Linotype-Hell AG and/or its + * subsidiaries and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Linotype-Hell AG and/or + * its subsidiaries. 12 pt. Helvetica* 76 Bold Italic 14472 + * + * Trademark: + * Copyright (c) 1988, 1990, 1993 Adobe Systems Incorporated. All Rights + * Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. + * + * Description: + * The digitally encoded machine readable software for producing the Typefaces + * licensed to you is copyrighted (c) 1988, 1990, 1993 Adobe Systems. All Rights + * Reserved. This software is the property of Adobe Systems Incorporated and its + * licensors, and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Adobe. The digitally + * encoded machine readable outline data for producing the Typefaces licensed to + * you is copyrighted (c) 1981 Linotype-Hell AG and/or its subsidiaries. All + * Rights Reserved. This data is the property of Linotype-Hell AG and/or its + * subsidiaries and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Linotype-Hell AG and/or + * its subsidiaries. 12 pt. Helvetica* 76 Bold Italic 14472 + * + * Vendor URL: + * http://www.Linotypelibrary.com + * + * License information: + * http://www.Linotypelibrary.com + */ +Cufon.registerFont(Raphael.registerFont({"w":200,"face":{"font-family":"HelveticaNeue LT 55 Roman","font-weight":700,"font-style":"italic","font-stretch":"normal","units-per-em":"360","panose-1":"2 0 8 3 5 0 0 9 0 4","ascent":"288","descent":"-72","x-height":"5","bbox":"-48 -292 365 77","underline-thickness":"18","underline-position":"-27","slope":"-12","unicode-range":"U+0020-U+2122"},"glyphs":{" ":{"w":100},"!":{"d":"108,-257v-11,66,-33,122,-53,180r-25,0v5,-63,9,-127,24,-180r54,0xm10,-55r57,0r-12,55r-56,0","w":106},"\"":{"d":"46,-257r38,0r0,116r-38,0r0,-116xm113,-257r38,0r0,116r-38,0r0,-116","w":173},"#":{"d":"85,-148r-7,44r35,0r7,-44r-35,0xm39,-71r-30,0r4,-33r31,0r6,-44r-30,0r4,-33r30,0r10,-71r35,0r-10,71r35,0r10,-71r35,0r-10,71r30,0r-3,33r-32,0r-6,44r31,0r-4,33r-31,0r-10,71r-35,0r10,-71r-35,0r-10,71r-35,0"},"$":{"d":"190,-80v0,58,-42,84,-99,86r-6,31r-18,0r6,-32v-49,-6,-71,-35,-71,-91r49,0v0,29,7,43,30,48r15,-74v-36,-12,-70,-25,-70,-73v0,-55,42,-78,99,-78r5,-29r18,0r-7,31v38,9,65,31,62,79r-50,0v1,-19,-8,-30,-20,-36r-12,64v37,11,69,26,69,74xm116,-221v-30,-4,-53,29,-32,51v6,4,13,7,21,10xm99,-36v40,5,57,-50,23,-66v-3,-2,-7,-4,-10,-5"},"%":{"d":"248,5v-35,1,-53,-23,-53,-57v1,-48,22,-81,70,-83v36,0,57,17,56,54v-1,50,-24,84,-73,86xm267,-108v-28,2,-34,33,-35,63v0,14,6,22,19,23v26,-4,34,-38,34,-66v0,-10,-7,-21,-18,-20xm257,-260r30,0r-193,268r-31,0xm99,-230v-29,2,-34,34,-36,63v0,14,5,24,19,23v27,-2,34,-38,34,-66v0,-10,-6,-20,-17,-20xm79,-117v-35,1,-53,-24,-53,-57v0,-46,22,-83,70,-83v36,0,58,19,57,55v-2,49,-24,83,-74,85","w":346},"&":{"d":"131,-226v-33,-1,-31,44,-14,63v15,-9,35,-17,37,-38v1,-15,-10,-25,-23,-25xm229,-123v-6,30,-20,55,-40,73r32,50r-56,0r-11,-20v-43,43,-152,30,-148,-46v2,-47,34,-67,69,-82v-34,-43,-11,-112,54,-112v58,0,88,63,48,101v-12,11,-26,19,-40,27r28,45v10,-10,15,-21,19,-36r45,0xm55,-66v0,39,59,32,76,10r-35,-57v-20,11,-41,19,-41,47","w":246},"\u2019":{"d":"51,-257r57,0v-12,54,-14,117,-81,116r5,-26v23,-3,27,-14,32,-35r-24,0","w":100,"k":{"s":13,"\u2019":14}},"(":{"d":"139,-263v-64,74,-104,203,-68,329r-39,0v-12,-31,-23,-74,-23,-116v0,-99,40,-156,85,-213r45,0","w":106},")":{"d":"90,-148v1,100,-42,155,-85,214r-45,0v64,-74,104,-203,68,-329r39,0v13,30,22,74,23,115","w":106},"*":{"d":"104,-210r44,-8r5,29r-44,6r21,38r-26,14r-20,-39r-31,35r-21,-21r32,-33r-38,-18r12,-27r39,20r6,-43r30,1","w":146},"+":{"d":"17,-110r72,0r0,-72r38,0r0,72r72,0r0,38r-72,0r0,72r-38,0r0,-72r-72,0r0,-38","w":216},",":{"d":"7,-55r57,0v-11,54,-16,114,-81,115r5,-25v23,-3,27,-14,32,-35r-25,0","w":100},"-":{"d":"19,-120r108,0r-9,44r-108,0","w":146},"\u00ad":{"d":"19,-120r108,0r-9,44r-108,0","w":146},".":{"d":"7,-55r57,0r-12,55r-57,0","w":100},"\/":{"d":"100,-263r41,0r-101,269r-41,0","w":140},"0":{"d":"114,-215v-54,10,-60,75,-64,134v-1,27,10,43,35,44v55,-9,66,-75,66,-133v0,-26,-11,-44,-37,-45xm78,5v-56,0,-79,-40,-79,-97v0,-87,33,-165,119,-165v57,0,84,37,84,95v0,88,-37,167,-124,167"},"1":{"d":"43,-202v44,-1,70,-18,85,-50r42,0r-54,252r-54,0r34,-163r-61,0"},"2":{"d":"111,-213v-30,2,-44,23,-47,52r-48,0v6,-59,38,-96,101,-96v52,0,84,25,84,76v0,84,-99,89,-143,137r124,0r-10,44r-187,0v7,-97,111,-99,158,-156v19,-24,0,-59,-32,-57"},"3":{"d":"132,-83v0,-29,-24,-33,-54,-31r7,-36v32,1,63,-3,63,-34v0,-20,-13,-31,-34,-31v-31,0,-42,16,-48,43r-49,0v7,-51,41,-85,97,-85v48,0,82,20,84,66v1,32,-24,51,-48,59v24,7,33,23,35,51v7,87,-121,108,-172,63v-16,-14,-21,-38,-19,-68r48,0v-4,30,12,49,41,49v28,0,49,-17,49,-46"},"4":{"d":"162,-100r33,0r-9,42r-33,0r-13,58r-49,0r13,-58r-117,0r9,-47r148,-147r50,0xm113,-100r20,-97r-95,97r75,0"},"5":{"d":"136,-90v4,-49,-65,-55,-83,-22r-46,0r44,-140r149,0r-9,42r-107,0v-4,17,-14,38,-16,54v45,-34,120,-6,120,60v0,89,-105,128,-169,82v-17,-12,-24,-32,-25,-59r49,0v0,24,19,36,43,36v31,0,47,-22,50,-53"},"6":{"d":"5,-98v0,-99,52,-176,154,-155v29,6,48,29,49,66r-50,0v0,-45,-62,-34,-76,-6v-7,14,-18,36,-21,50v11,-16,31,-26,56,-26v48,1,74,29,74,77v0,59,-39,97,-97,97v-63,0,-88,-40,-89,-103xm100,-131v-55,-3,-62,94,-7,94v29,0,46,-23,47,-51v0,-27,-15,-42,-40,-43"},"7":{"d":"203,-208v-57,51,-101,124,-124,208r-55,0v24,-80,69,-154,124,-204r-124,0r10,-48r179,0"},"8":{"d":"112,-219v-25,0,-42,12,-42,36v1,23,20,33,41,33v22,0,41,-11,41,-34v0,-24,-17,-35,-40,-35xm56,-136v-16,-8,-32,-25,-32,-47v0,-51,43,-74,96,-74v46,0,78,24,78,68v0,31,-24,48,-49,57v24,6,39,28,40,56v2,102,-196,111,-196,7v0,-42,29,-58,63,-67xm93,-116v-31,-1,-49,16,-49,44v0,25,19,38,44,39v28,1,50,-17,50,-43v0,-26,-19,-39,-45,-40"},"9":{"d":"199,-154v0,97,-53,177,-155,155v-28,-6,-47,-30,-48,-66r49,0v0,45,64,36,76,6v9,-12,19,-35,21,-50v-10,17,-30,26,-55,26v-49,-1,-75,-28,-75,-77v0,-58,39,-97,97,-97v63,0,90,40,90,103xm103,-121v30,0,46,-22,46,-51v0,-26,-13,-42,-38,-43v-30,-1,-47,22,-48,51v0,27,15,43,40,43"},":":{"d":"79,-127r-57,0r12,-56r57,0xm7,-55r57,0r-12,55r-57,0","w":100},";":{"d":"34,-183r57,0r-12,56r-57,0xm7,-55r57,0v-11,54,-16,114,-81,115r5,-25v23,-3,27,-14,32,-35r-25,0","w":100},"\u037e":{"d":"34,-183r57,0r-12,56r-57,0xm7,-55r57,0v-11,54,-16,114,-81,115r5,-25v23,-3,27,-14,32,-35r-25,0","w":100},"<":{"d":"199,-144r-132,53r132,52r0,42r-182,-73r0,-42r182,-73r0,41","w":216},"=":{"d":"199,-33r-182,0r0,-39r182,0r0,39xm199,-110r-182,0r0,-39r182,0r0,39","w":216},">":{"d":"17,-39r132,-52r-132,-53r0,-41r182,73r0,42r-182,73r0,-42","w":216},"?":{"d":"56,-55r57,0r-12,55r-57,0xm120,-221v-26,2,-39,19,-42,44r-51,0v4,-57,40,-86,100,-86v45,0,77,20,78,66v1,70,-81,59,-91,118r-47,0v2,-56,48,-65,77,-93v19,-18,3,-51,-24,-49","w":206},"@":{"d":"68,-110v-7,-68,81,-125,121,-67r5,-19r30,0r-26,108v0,3,2,9,6,8v30,-3,42,-33,42,-66v0,-58,-38,-88,-97,-88v-65,0,-101,41,-101,106v0,67,39,103,106,105v32,1,61,-12,77,-29r30,0v-22,34,-58,58,-109,58v-83,0,-139,-52,-139,-135v0,-81,55,-134,137,-134v70,0,125,38,125,110v0,59,-35,97,-85,104v-15,2,-24,-10,-27,-20v-27,42,-101,11,-95,-41xm149,-168v-43,0,-65,85,-16,85v28,0,42,-25,44,-54v0,-17,-12,-31,-28,-31","w":288},"A":{"d":"124,-257r58,0r43,257r-56,0r-8,-57r-97,0r-32,57r-60,0xm87,-99r69,0r-14,-103","w":246,"k":{"Y":20,"W":6,"V":13,"T":20,"\u2019":28}},"B":{"d":"188,-187v0,-39,-54,-23,-90,-26r-13,60v45,-1,103,11,103,-34xm234,-84v-1,105,-131,82,-235,84r54,-257v79,6,193,-25,191,60v0,35,-21,53,-48,61v22,5,38,26,38,52xm133,-44v46,9,63,-70,15,-70r-71,0r-15,70r71,0","w":259},"C":{"d":"13,-108v0,-117,119,-198,215,-131v19,13,29,39,29,71r-57,0v1,-30,-18,-48,-46,-48v-58,0,-82,50,-84,108v-1,40,19,67,58,67v34,0,54,-23,61,-52r56,0v-18,56,-46,98,-118,99v-72,1,-114,-42,-114,-114","w":266},"D":{"d":"198,-147v2,-56,-39,-68,-98,-63r-35,162v85,8,131,-24,133,-99xm255,-157v0,97,-51,157,-149,157r-107,0r54,-257r93,0v69,-1,109,35,109,100","w":266},"E":{"d":"53,-257r196,0r-10,47r-140,0r-11,56r129,0r-9,43r-130,0r-13,63r142,0r-10,48r-198,0","w":240},"F":{"d":"53,-257r183,0r-11,47r-126,0r-12,60r110,0r-9,44r-110,0r-23,106r-56,0","w":213,"k":{"A":20,".":46,",":46}},"G":{"d":"70,-108v-7,73,92,87,120,34v4,-7,7,-15,9,-23r-59,0r9,-42r109,0r-29,139r-36,0v-1,-8,2,-20,-1,-26v-14,21,-35,32,-65,32v-72,1,-114,-42,-114,-114v0,-118,117,-196,218,-133v20,12,32,36,32,69r-57,0v-1,-32,-19,-45,-52,-44v-58,2,-78,51,-84,108","w":273},"H":{"d":"53,-257r57,0r-21,99r104,0r21,-99r57,0r-55,257r-57,0r24,-111r-104,0r-24,111r-56,0","w":266},"I":{"d":"53,-257r57,0r-55,257r-56,0","w":106},"J":{"d":"49,-96v-21,40,24,75,51,41v24,-59,30,-136,47,-202r56,0r-38,184v-10,49,-36,77,-94,79v-62,2,-89,-42,-73,-102r51,0"},"K":{"d":"52,-257r57,0r-22,108r117,-108r75,0r-124,106r79,151r-64,0r-58,-116r-40,35r-17,81r-56,0","w":259},"L":{"d":"53,-257r56,0r-43,209r124,0r-10,48r-181,0","w":206,"k":{"y":6,"Y":33,"W":20,"V":27,"T":33,"\u2019":40}},"M":{"d":"53,-257r78,0r21,186r99,-186r78,0r-54,257r-53,0r46,-204r-109,204r-43,0r-25,-204r-39,204r-53,0","w":326},"N":{"d":"53,-257r58,0r71,183r37,-183r51,0r-54,257r-57,0r-71,-180r-37,180r-52,0","w":266},"O":{"d":"127,6v-72,2,-116,-42,-114,-114v3,-90,49,-155,141,-155v72,0,114,37,114,110v0,91,-47,156,-141,159xm154,-216v-58,0,-82,50,-84,108v-1,40,19,67,58,67v58,0,83,-51,83,-108v0,-40,-18,-67,-57,-67","w":280},"P":{"d":"244,-182v-3,83,-78,96,-169,90r-20,92r-56,0r53,-257v88,2,196,-19,192,75xm188,-181v0,-40,-48,-31,-88,-32r-16,77v0,0,104,8,104,-45","w":240,"k":{"A":27,".":55,",":55}},"Q":{"d":"268,-153v0,53,-20,98,-50,125r28,31r-31,25r-30,-34v-80,35,-180,-7,-172,-102v7,-90,49,-155,141,-155v72,0,114,37,114,110xm70,-108v-2,48,34,77,80,63r-20,-23r31,-25r22,26v35,-36,48,-151,-29,-149v-58,2,-81,50,-84,108","w":280},"R":{"d":"195,-181v2,-45,-55,-29,-95,-32r-15,72v49,-1,108,9,110,-40xm166,0v-8,-44,20,-104,-36,-100r-54,0r-21,100r-56,0r54,-257v84,5,203,-26,199,67v-2,41,-26,61,-59,70v42,12,19,76,28,120r-55,0","w":259,"k":{"Y":6,"W":6,"V":6,"T":6}},"S":{"d":"172,-142v82,39,28,148,-63,148v-68,0,-107,-25,-107,-91r53,0v-1,35,21,47,56,47v42,0,68,-46,28,-62v-46,-18,-106,-19,-109,-83v-4,-94,159,-106,190,-35v5,10,8,23,8,38r-53,0v1,-29,-19,-36,-46,-39v-43,-5,-63,46,-22,58","w":233},"T":{"d":"100,-210r-81,0r11,-47r214,0r-10,47r-77,0r-44,210r-57,0","w":219,"k":{"y":20,"w":27,"u":27,"s":27,"r":27,"o":27,"i":9,"e":27,"c":27,"a":27,"A":20,";":18,":":18,".":33,"-":35,",":33}},"U":{"d":"76,-108v-31,57,48,89,88,50v11,-11,13,-28,17,-47r32,-152r57,0v-33,107,-11,263,-155,263v-69,0,-112,-38,-96,-114r31,-149r57,0","w":266},"V":{"d":"119,0r-64,0r-29,-257r56,0r18,193r98,-193r58,0","w":226,"k":{"u":6,"r":6,"o":13,"i":2,"e":9,"a":13,"A":13,";":11,":":11,".":33,"-":13,",":33}},"W":{"d":"244,0r-56,0r-7,-184r-80,184r-57,0r-18,-257r57,0r4,188r81,-188r54,0r8,188r78,-188r57,0","w":339,"k":{"u":6,"r":6,"o":13,"i":2,"e":13,"a":13,"A":6,";":15,":":11,".":27,"-":13,",":27}},"X":{"d":"92,-135r-60,-122r61,0r37,85r65,-85r67,0r-106,124r63,133r-62,0r-40,-92r-74,92r-68,0","w":240},"Y":{"d":"84,-100r-62,-157r58,0r38,109r80,-109r67,0r-125,160r-20,97r-57,0","w":233,"k":{"v":6,"u":13,"q":20,"p":13,"o":20,"i":6,"e":20,"a":20,"A":20,";":13,":":13,".":35,"-":22,",":35}},"Z":{"d":"-6,-47r172,-163r-132,0r11,-47r203,0r-10,45r-173,164r145,0r-9,48r-216,0","w":233},"[":{"d":"56,-263r93,0r-9,40r-45,0r-52,248r45,0r-8,41r-93,0","w":119},"\\":{"d":"141,6r-41,0r-101,-269r41,0","w":140},"]":{"d":"53,66r-93,0r8,-41r45,0r53,-248r-46,0r9,-40r93,0","w":119},"^":{"d":"84,-252r48,0r62,139r-42,0r-44,-99r-44,99r-42,0","w":216},"_":{"d":"0,27r180,0r0,18r-180,0r0,-18","w":180},"\u2018":{"d":"85,-141r-57,0v12,-54,14,-116,81,-116r-5,25v-23,3,-27,14,-32,35r24,0","w":100,"k":{"\u2018":14}},"a":{"d":"140,-134v0,-36,-69,-27,-71,4r-47,0v6,-44,39,-60,88,-61v52,-1,87,22,73,80v-9,36,-20,74,-17,111r-51,0r0,-18v-28,35,-118,31,-118,-26v0,-61,70,-63,125,-70v11,-4,18,-7,18,-20xm130,-89v-25,17,-82,-3,-81,39v0,29,50,24,61,7v12,-11,15,-29,20,-46","w":206},"b":{"d":"108,5v-30,1,-49,-12,-59,-34r-6,29r-47,0r54,-257r51,0r-19,91v16,-16,28,-25,56,-25v47,0,67,31,66,79v-2,65,-31,114,-96,117xm153,-111v0,-24,-11,-43,-36,-42v-41,2,-54,40,-55,80v-1,24,13,41,37,40v39,-2,52,-38,54,-78","w":219},"c":{"d":"4,-75v0,-91,85,-146,163,-100v16,10,24,28,25,53r-51,0v0,-22,-13,-31,-34,-31v-39,0,-51,39,-52,79v0,25,11,40,35,41v23,1,35,-18,41,-35r52,0v-15,42,-44,73,-97,73v-52,0,-82,-26,-82,-80"},"d":{"d":"147,-112v0,-24,-12,-41,-36,-41v-39,0,-55,38,-56,78v0,25,13,42,36,42v39,0,56,-39,56,-79xm105,-191v26,0,44,12,53,30r21,-96r51,0r-55,257r-49,0v1,-8,6,-17,4,-24v-29,53,-133,30,-126,-44v7,-68,31,-122,101,-123","w":219},"e":{"d":"144,-113v6,-50,-64,-49,-79,-15v-3,5,-5,10,-7,15r86,0xm106,-191v65,-2,98,44,84,110r-137,0v-3,31,12,48,41,48v20,-1,29,-14,38,-26r51,0v-15,40,-42,65,-97,64v-53,0,-82,-29,-82,-81v0,-66,35,-113,102,-115","w":206},"f":{"d":"46,-186v5,-55,39,-85,106,-70r-8,36v-30,-5,-47,6,-47,34r36,0r-7,34r-37,0r-32,152r-51,0r32,-152r-30,0r7,-34r31,0","w":126},"g":{"d":"100,-191v30,-1,47,13,58,33r5,-28r49,0v-17,70,-25,149,-49,213v-22,59,-171,63,-170,-17r51,0v0,34,56,31,68,8v6,-13,16,-31,17,-47v-38,52,-129,21,-123,-50v5,-62,32,-108,94,-112xm146,-112v0,-24,-13,-41,-37,-41v-52,0,-77,112,-17,112v37,0,52,-33,54,-71","w":219},"h":{"d":"141,-109v18,-42,-36,-55,-57,-26v-25,33,-24,90,-37,135r-51,0r53,-257r51,0r-18,92v28,-43,129,-34,114,40r-26,125r-52,0","w":219},"i":{"d":"93,-215r-52,0r9,-42r52,0xm35,-186r52,0r-40,186r-51,0","w":93},"j":{"d":"93,-215r-52,0r9,-42r52,0xm-39,23v26,5,33,-11,38,-33r37,-176r51,0r-48,219v-11,29,-46,37,-87,31","w":93},"k":{"d":"50,-257r51,0r-29,140r73,-69r63,0r-83,70r48,116r-56,0r-31,-83r-27,23r-12,60r-51,0"},"l":{"d":"50,-257r52,0r-55,257r-51,0","w":93},"m":{"d":"136,-118v11,-26,-18,-42,-39,-28v-40,26,-35,96,-50,146r-51,0r39,-186r49,0r-6,26v19,-33,100,-48,111,1v23,-47,133,-44,117,32r-26,127r-51,0r26,-131v-9,-39,-63,-10,-65,14v-13,35,-17,78,-27,117r-51,0","w":326},"n":{"d":"141,-109v18,-42,-36,-55,-57,-26v-25,33,-24,90,-37,135r-51,0r39,-186r49,0r-6,26v32,-51,133,-39,118,35r-26,125r-52,0","w":219},"o":{"d":"109,-153v-55,-2,-80,120,-18,120v40,0,53,-39,55,-79v1,-26,-12,-40,-37,-41xm89,5v-52,0,-86,-26,-85,-80v1,-69,37,-116,107,-116v53,0,86,25,86,79v0,70,-38,117,-108,117","w":213},"p":{"d":"103,5v-28,0,-43,-13,-54,-30r-19,91r-51,0r53,-252r50,0r-5,24v11,-18,30,-29,56,-29v45,0,71,28,71,73v0,69,-33,120,-101,123xm153,-111v0,-24,-13,-42,-37,-42v-40,0,-54,40,-56,79v-1,25,13,41,37,41v40,0,56,-39,56,-78","w":219},"q":{"d":"148,-113v0,-24,-13,-40,-37,-40v-40,0,-56,38,-56,78v0,26,12,42,38,42v38,0,55,-40,55,-80xm100,-191v30,-1,50,11,59,34r6,-29r47,0r-53,252r-51,0r17,-81v-13,12,-27,21,-53,20v-48,0,-68,-32,-68,-79v0,-65,31,-114,96,-117","w":219},"r":{"d":"146,-140v-84,-24,-84,75,-99,140r-51,0r39,-186r48,0r-7,33v12,-26,42,-43,80,-37","w":140,"k":{"y":-6,"v":-6,".":27,"-":13,",":27}},"s":{"d":"39,-91v-55,-36,-3,-111,59,-100v45,-1,76,14,76,59r-47,0v0,-17,-11,-23,-29,-25v-21,-2,-41,13,-26,29v33,19,93,17,93,70v0,82,-166,87,-168,5r0,-7r47,0v-1,23,17,28,37,31v31,5,45,-33,14,-43","w":186},"t":{"d":"99,1v-44,9,-89,-1,-78,-53r21,-100r-34,0r8,-34r33,0r11,-57r52,0r-12,57r37,0r-8,34r-36,0r-21,101v-1,17,20,15,36,13","w":133},"u":{"d":"66,-77v-16,29,14,53,41,37v43,-24,37,-96,53,-146r51,0r-39,186r-49,0v1,-8,6,-19,5,-26v-31,50,-133,41,-117,-36r26,-124r51,0","w":219},"v":{"d":"94,0r-59,0r-24,-186r52,0r13,132r65,-132r54,0","w":186,"k":{".":20,",":20}},"w":{"d":"203,0r-53,0r-7,-131r-58,131r-54,0r-20,-186r52,0r8,131r57,-131r52,0r6,130r60,-130r54,0","w":293,"k":{".":13,",":13}},"x":{"d":"114,-97r47,97r-54,0r-27,-61r-50,61r-58,0r87,-100r-42,-86r54,0r21,54r42,-54r57,0","w":186},"y":{"d":"-14,21v27,6,49,-3,55,-23r-33,-184r52,0r17,133r64,-133r54,0r-131,232v-16,21,-52,22,-87,18","w":186,"k":{".":20,",":20}},"z":{"d":"-10,-38r116,-110r-89,0r8,-38r156,0r-8,38r-117,109r103,0r-9,39r-168,0","w":180},"{":{"d":"34,66v-83,-10,25,-142,-47,-149r7,-31v76,-8,17,-139,108,-149r46,0r-8,40v-81,-12,-20,110,-101,125v49,7,14,71,14,111v0,13,19,13,35,12r-8,41r-46,0","w":119},"|":{"d":"21,-283r38,0r0,360r-38,0r0,-360","w":79},"}":{"d":"75,-263v84,9,-26,141,46,149r-7,31v-76,8,-17,138,-108,149r-46,0r9,-41v81,12,18,-110,100,-124v-49,-7,-16,-70,-14,-111v1,-15,-18,-13,-34,-13r8,-40r46,0","w":119},"~":{"d":"69,-122v40,2,86,49,108,-2r15,34v-12,14,-20,31,-45,31v-37,0,-91,-51,-108,1r-15,-33v8,-16,20,-32,45,-31","w":216},"'":{"d":"40,-257r38,0r0,116r-38,0r0,-116","w":100},"\u201c":{"d":"157,-141r-57,0v10,-56,14,-116,81,-116r-6,25v-22,3,-26,15,-32,35r25,0xm81,-141r-57,0v10,-56,14,-116,81,-116r-6,25v-22,3,-26,15,-32,35r25,0","w":173},"\u2013":{"d":"-1,-120r180,0r-9,44r-180,0","w":180},"\u201d":{"d":"47,-257r57,0v-12,54,-14,116,-81,116r5,-26v23,-3,27,-14,32,-35r-25,0xm123,-257r57,0v-12,54,-15,116,-81,116r5,-26v23,-3,27,-14,32,-35r-25,0","w":173},"\u2026":{"d":"18,-55r57,0r-12,55r-57,0xm257,-55r57,0r-12,55r-56,0xm138,-55r56,0r-11,55r-57,0","w":360},"`":{"d":"95,-209r-36,0r-50,-51r54,0","w":93},"\u2014":{"d":"46,-120r266,0r-9,44r-267,0","w":360},"\u00d7":{"d":"23,-33r58,-58r-57,-58r27,-27r57,58r58,-58r27,27r-58,58r58,58r-27,27r-58,-58r-58,58","w":216},"\u2122":{"d":"143,-228r-42,0r0,119r-37,0r0,-119r-42,0r0,-29r121,0r0,29xm334,-109r-34,0r-1,-105r-38,105r-25,0r-39,-105r0,105r-35,0r0,-148r49,0r37,98r37,-98r49,0r0,148","w":356},"\u00a0":{"w":100}}})); +/*! + * The following copyright notice may not be removed under any circumstances. + * + * Copyright: + * The digitally encoded machine readable software for producing the Typefaces + * licensed to you is copyrighted (c) 1988, 1990, 1993 Adobe Systems. All Rights + * Reserved. This software is the property of Adobe Systems Incorporated and its + * licensors, and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Adobe. The digitally + * encoded machine readable outline data for producing the Typefaces licensed to + * you is copyrighted (c) 1981 Linotype-Hell AG and/or its subsidiaries. All + * Rights Reserved. This data is the property of Linotype-Hell AG and/or its + * subsidiaries and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Linotype-Hell AG and/or + * its subsidiaries. 12 pt. Helvetica* 76 Bold Italic 14472 + * + * Trademark: + * Copyright (c) 1988, 1990, 1993 Adobe Systems Incorporated. All Rights + * Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. + * + * Description: + * The digitally encoded machine readable software for producing the Typefaces + * licensed to you is copyrighted (c) 1988, 1990, 1993 Adobe Systems. All Rights + * Reserved. This software is the property of Adobe Systems Incorporated and its + * licensors, and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Adobe. The digitally + * encoded machine readable outline data for producing the Typefaces licensed to + * you is copyrighted (c) 1981 Linotype-Hell AG and/or its subsidiaries. All + * Rights Reserved. This data is the property of Linotype-Hell AG and/or its + * subsidiaries and may not be reproduced, used, displayed, modified, disclosed or + * transferred without the express written approval of Linotype-Hell AG and/or + * its subsidiaries. 12 pt. Helvetica* 76 Bold Italic 14472 + * + * Vendor URL: + * http://www.Linotypelibrary.com + * + * License information: + * http://www.Linotypelibrary.com + */ +Cufon.registerFont(Raphael.registerFont({"w":200,"face":{"font-family":"HelveticaNeue LT 55 Roman","font-weight":700,"font-style":"italic","font-stretch":"normal","units-per-em":"360","panose-1":"2 0 8 3 5 0 0 9 0 4","ascent":"288","descent":"-72","x-height":"5","bbox":"-48 -292 365 77","underline-thickness":"18","underline-position":"-27","slope":"-12","unicode-range":"U+0020-U+2122"},"glyphs":{" ":{"w":100},"!":{"d":"108,-257v-11,66,-33,122,-53,180r-25,0v5,-63,9,-127,24,-180r54,0xm10,-55r57,0r-12,55r-56,0","w":106},"\"":{"d":"46,-257r38,0r0,116r-38,0r0,-116xm113,-257r38,0r0,116r-38,0r0,-116","w":173},"#":{"d":"85,-148r-7,44r35,0r7,-44r-35,0xm39,-71r-30,0r4,-33r31,0r6,-44r-30,0r4,-33r30,0r10,-71r35,0r-10,71r35,0r10,-71r35,0r-10,71r30,0r-3,33r-32,0r-6,44r31,0r-4,33r-31,0r-10,71r-35,0r10,-71r-35,0r-10,71r-35,0"},"$":{"d":"190,-80v0,58,-42,84,-99,86r-6,31r-18,0r6,-32v-49,-6,-71,-35,-71,-91r49,0v0,29,7,43,30,48r15,-74v-36,-12,-70,-25,-70,-73v0,-55,42,-78,99,-78r5,-29r18,0r-7,31v38,9,65,31,62,79r-50,0v1,-19,-8,-30,-20,-36r-12,64v37,11,69,26,69,74xm116,-221v-30,-4,-53,29,-32,51v6,4,13,7,21,10xm99,-36v40,5,57,-50,23,-66v-3,-2,-7,-4,-10,-5"},"%":{"d":"248,5v-35,1,-53,-23,-53,-57v1,-48,22,-81,70,-83v36,0,57,17,56,54v-1,50,-24,84,-73,86xm267,-108v-28,2,-34,33,-35,63v0,14,6,22,19,23v26,-4,34,-38,34,-66v0,-10,-7,-21,-18,-20xm257,-260r30,0r-193,268r-31,0xm99,-230v-29,2,-34,34,-36,63v0,14,5,24,19,23v27,-2,34,-38,34,-66v0,-10,-6,-20,-17,-20xm79,-117v-35,1,-53,-24,-53,-57v0,-46,22,-83,70,-83v36,0,58,19,57,55v-2,49,-24,83,-74,85","w":346},"&":{"d":"131,-226v-33,-1,-31,44,-14,63v15,-9,35,-17,37,-38v1,-15,-10,-25,-23,-25xm229,-123v-6,30,-20,55,-40,73r32,50r-56,0r-11,-20v-43,43,-152,30,-148,-46v2,-47,34,-67,69,-82v-34,-43,-11,-112,54,-112v58,0,88,63,48,101v-12,11,-26,19,-40,27r28,45v10,-10,15,-21,19,-36r45,0xm55,-66v0,39,59,32,76,10r-35,-57v-20,11,-41,19,-41,47","w":246},"\u2019":{"d":"51,-257r57,0v-12,54,-14,117,-81,116r5,-26v23,-3,27,-14,32,-35r-24,0","w":100,"k":{"s":13,"\u2019":14}},"(":{"d":"139,-263v-64,74,-104,203,-68,329r-39,0v-12,-31,-23,-74,-23,-116v0,-99,40,-156,85,-213r45,0","w":106},")":{"d":"90,-148v1,100,-42,155,-85,214r-45,0v64,-74,104,-203,68,-329r39,0v13,30,22,74,23,115","w":106},"*":{"d":"104,-210r44,-8r5,29r-44,6r21,38r-26,14r-20,-39r-31,35r-21,-21r32,-33r-38,-18r12,-27r39,20r6,-43r30,1","w":146},"+":{"d":"17,-110r72,0r0,-72r38,0r0,72r72,0r0,38r-72,0r0,72r-38,0r0,-72r-72,0r0,-38","w":216},",":{"d":"7,-55r57,0v-11,54,-16,114,-81,115r5,-25v23,-3,27,-14,32,-35r-25,0","w":100},"-":{"d":"19,-120r108,0r-9,44r-108,0","w":146},"\u00ad":{"d":"19,-120r108,0r-9,44r-108,0","w":146},".":{"d":"7,-55r57,0r-12,55r-57,0","w":100},"\/":{"d":"100,-263r41,0r-101,269r-41,0","w":140},"0":{"d":"114,-215v-54,10,-60,75,-64,134v-1,27,10,43,35,44v55,-9,66,-75,66,-133v0,-26,-11,-44,-37,-45xm78,5v-56,0,-79,-40,-79,-97v0,-87,33,-165,119,-165v57,0,84,37,84,95v0,88,-37,167,-124,167"},"1":{"d":"43,-202v44,-1,70,-18,85,-50r42,0r-54,252r-54,0r34,-163r-61,0"},"2":{"d":"111,-213v-30,2,-44,23,-47,52r-48,0v6,-59,38,-96,101,-96v52,0,84,25,84,76v0,84,-99,89,-143,137r124,0r-10,44r-187,0v7,-97,111,-99,158,-156v19,-24,0,-59,-32,-57"},"3":{"d":"132,-83v0,-29,-24,-33,-54,-31r7,-36v32,1,63,-3,63,-34v0,-20,-13,-31,-34,-31v-31,0,-42,16,-48,43r-49,0v7,-51,41,-85,97,-85v48,0,82,20,84,66v1,32,-24,51,-48,59v24,7,33,23,35,51v7,87,-121,108,-172,63v-16,-14,-21,-38,-19,-68r48,0v-4,30,12,49,41,49v28,0,49,-17,49,-46"},"4":{"d":"162,-100r33,0r-9,42r-33,0r-13,58r-49,0r13,-58r-117,0r9,-47r148,-147r50,0xm113,-100r20,-97r-95,97r75,0"},"5":{"d":"136,-90v4,-49,-65,-55,-83,-22r-46,0r44,-140r149,0r-9,42r-107,0v-4,17,-14,38,-16,54v45,-34,120,-6,120,60v0,89,-105,128,-169,82v-17,-12,-24,-32,-25,-59r49,0v0,24,19,36,43,36v31,0,47,-22,50,-53"},"6":{"d":"5,-98v0,-99,52,-176,154,-155v29,6,48,29,49,66r-50,0v0,-45,-62,-34,-76,-6v-7,14,-18,36,-21,50v11,-16,31,-26,56,-26v48,1,74,29,74,77v0,59,-39,97,-97,97v-63,0,-88,-40,-89,-103xm100,-131v-55,-3,-62,94,-7,94v29,0,46,-23,47,-51v0,-27,-15,-42,-40,-43"},"7":{"d":"203,-208v-57,51,-101,124,-124,208r-55,0v24,-80,69,-154,124,-204r-124,0r10,-48r179,0"},"8":{"d":"112,-219v-25,0,-42,12,-42,36v1,23,20,33,41,33v22,0,41,-11,41,-34v0,-24,-17,-35,-40,-35xm56,-136v-16,-8,-32,-25,-32,-47v0,-51,43,-74,96,-74v46,0,78,24,78,68v0,31,-24,48,-49,57v24,6,39,28,40,56v2,102,-196,111,-196,7v0,-42,29,-58,63,-67xm93,-116v-31,-1,-49,16,-49,44v0,25,19,38,44,39v28,1,50,-17,50,-43v0,-26,-19,-39,-45,-40"},"9":{"d":"199,-154v0,97,-53,177,-155,155v-28,-6,-47,-30,-48,-66r49,0v0,45,64,36,76,6v9,-12,19,-35,21,-50v-10,17,-30,26,-55,26v-49,-1,-75,-28,-75,-77v0,-58,39,-97,97,-97v63,0,90,40,90,103xm103,-121v30,0,46,-22,46,-51v0,-26,-13,-42,-38,-43v-30,-1,-47,22,-48,51v0,27,15,43,40,43"},":":{"d":"79,-127r-57,0r12,-56r57,0xm7,-55r57,0r-12,55r-57,0","w":100},";":{"d":"34,-183r57,0r-12,56r-57,0xm7,-55r57,0v-11,54,-16,114,-81,115r5,-25v23,-3,27,-14,32,-35r-25,0","w":100},"\u037e":{"d":"34,-183r57,0r-12,56r-57,0xm7,-55r57,0v-11,54,-16,114,-81,115r5,-25v23,-3,27,-14,32,-35r-25,0","w":100},"<":{"d":"199,-144r-132,53r132,52r0,42r-182,-73r0,-42r182,-73r0,41","w":216},"=":{"d":"199,-33r-182,0r0,-39r182,0r0,39xm199,-110r-182,0r0,-39r182,0r0,39","w":216},">":{"d":"17,-39r132,-52r-132,-53r0,-41r182,73r0,42r-182,73r0,-42","w":216},"?":{"d":"56,-55r57,0r-12,55r-57,0xm120,-221v-26,2,-39,19,-42,44r-51,0v4,-57,40,-86,100,-86v45,0,77,20,78,66v1,70,-81,59,-91,118r-47,0v2,-56,48,-65,77,-93v19,-18,3,-51,-24,-49","w":206},"@":{"d":"68,-110v-7,-68,81,-125,121,-67r5,-19r30,0r-26,108v0,3,2,9,6,8v30,-3,42,-33,42,-66v0,-58,-38,-88,-97,-88v-65,0,-101,41,-101,106v0,67,39,103,106,105v32,1,61,-12,77,-29r30,0v-22,34,-58,58,-109,58v-83,0,-139,-52,-139,-135v0,-81,55,-134,137,-134v70,0,125,38,125,110v0,59,-35,97,-85,104v-15,2,-24,-10,-27,-20v-27,42,-101,11,-95,-41xm149,-168v-43,0,-65,85,-16,85v28,0,42,-25,44,-54v0,-17,-12,-31,-28,-31","w":288},"A":{"d":"124,-257r58,0r43,257r-56,0r-8,-57r-97,0r-32,57r-60,0xm87,-99r69,0r-14,-103","w":246,"k":{"Y":20,"W":6,"V":13,"T":20,"\u2019":28}},"B":{"d":"188,-187v0,-39,-54,-23,-90,-26r-13,60v45,-1,103,11,103,-34xm234,-84v-1,105,-131,82,-235,84r54,-257v79,6,193,-25,191,60v0,35,-21,53,-48,61v22,5,38,26,38,52xm133,-44v46,9,63,-70,15,-70r-71,0r-15,70r71,0","w":259},"C":{"d":"13,-108v0,-117,119,-198,215,-131v19,13,29,39,29,71r-57,0v1,-30,-18,-48,-46,-48v-58,0,-82,50,-84,108v-1,40,19,67,58,67v34,0,54,-23,61,-52r56,0v-18,56,-46,98,-118,99v-72,1,-114,-42,-114,-114","w":266},"D":{"d":"198,-147v2,-56,-39,-68,-98,-63r-35,162v85,8,131,-24,133,-99xm255,-157v0,97,-51,157,-149,157r-107,0r54,-257r93,0v69,-1,109,35,109,100","w":266},"E":{"d":"53,-257r196,0r-10,47r-140,0r-11,56r129,0r-9,43r-130,0r-13,63r142,0r-10,48r-198,0","w":240},"F":{"d":"53,-257r183,0r-11,47r-126,0r-12,60r110,0r-9,44r-110,0r-23,106r-56,0","w":213,"k":{"A":20,".":46,",":46}},"G":{"d":"70,-108v-7,73,92,87,120,34v4,-7,7,-15,9,-23r-59,0r9,-42r109,0r-29,139r-36,0v-1,-8,2,-20,-1,-26v-14,21,-35,32,-65,32v-72,1,-114,-42,-114,-114v0,-118,117,-196,218,-133v20,12,32,36,32,69r-57,0v-1,-32,-19,-45,-52,-44v-58,2,-78,51,-84,108","w":273},"H":{"d":"53,-257r57,0r-21,99r104,0r21,-99r57,0r-55,257r-57,0r24,-111r-104,0r-24,111r-56,0","w":266},"I":{"d":"53,-257r57,0r-55,257r-56,0","w":106},"J":{"d":"49,-96v-21,40,24,75,51,41v24,-59,30,-136,47,-202r56,0r-38,184v-10,49,-36,77,-94,79v-62,2,-89,-42,-73,-102r51,0"},"K":{"d":"52,-257r57,0r-22,108r117,-108r75,0r-124,106r79,151r-64,0r-58,-116r-40,35r-17,81r-56,0","w":259},"L":{"d":"53,-257r56,0r-43,209r124,0r-10,48r-181,0","w":206,"k":{"y":6,"Y":33,"W":20,"V":27,"T":33,"\u2019":40}},"M":{"d":"53,-257r78,0r21,186r99,-186r78,0r-54,257r-53,0r46,-204r-109,204r-43,0r-25,-204r-39,204r-53,0","w":326},"N":{"d":"53,-257r58,0r71,183r37,-183r51,0r-54,257r-57,0r-71,-180r-37,180r-52,0","w":266},"O":{"d":"127,6v-72,2,-116,-42,-114,-114v3,-90,49,-155,141,-155v72,0,114,37,114,110v0,91,-47,156,-141,159xm154,-216v-58,0,-82,50,-84,108v-1,40,19,67,58,67v58,0,83,-51,83,-108v0,-40,-18,-67,-57,-67","w":280},"P":{"d":"244,-182v-3,83,-78,96,-169,90r-20,92r-56,0r53,-257v88,2,196,-19,192,75xm188,-181v0,-40,-48,-31,-88,-32r-16,77v0,0,104,8,104,-45","w":240,"k":{"A":27,".":55,",":55}},"Q":{"d":"268,-153v0,53,-20,98,-50,125r28,31r-31,25r-30,-34v-80,35,-180,-7,-172,-102v7,-90,49,-155,141,-155v72,0,114,37,114,110xm70,-108v-2,48,34,77,80,63r-20,-23r31,-25r22,26v35,-36,48,-151,-29,-149v-58,2,-81,50,-84,108","w":280},"R":{"d":"195,-181v2,-45,-55,-29,-95,-32r-15,72v49,-1,108,9,110,-40xm166,0v-8,-44,20,-104,-36,-100r-54,0r-21,100r-56,0r54,-257v84,5,203,-26,199,67v-2,41,-26,61,-59,70v42,12,19,76,28,120r-55,0","w":259,"k":{"Y":6,"W":6,"V":6,"T":6}},"S":{"d":"172,-142v82,39,28,148,-63,148v-68,0,-107,-25,-107,-91r53,0v-1,35,21,47,56,47v42,0,68,-46,28,-62v-46,-18,-106,-19,-109,-83v-4,-94,159,-106,190,-35v5,10,8,23,8,38r-53,0v1,-29,-19,-36,-46,-39v-43,-5,-63,46,-22,58","w":233},"T":{"d":"100,-210r-81,0r11,-47r214,0r-10,47r-77,0r-44,210r-57,0","w":219,"k":{"y":20,"w":27,"u":27,"s":27,"r":27,"o":27,"i":9,"e":27,"c":27,"a":27,"A":20,";":18,":":18,".":33,"-":35,",":33}},"U":{"d":"76,-108v-31,57,48,89,88,50v11,-11,13,-28,17,-47r32,-152r57,0v-33,107,-11,263,-155,263v-69,0,-112,-38,-96,-114r31,-149r57,0","w":266},"V":{"d":"119,0r-64,0r-29,-257r56,0r18,193r98,-193r58,0","w":226,"k":{"u":6,"r":6,"o":13,"i":2,"e":9,"a":13,"A":13,";":11,":":11,".":33,"-":13,",":33}},"W":{"d":"244,0r-56,0r-7,-184r-80,184r-57,0r-18,-257r57,0r4,188r81,-188r54,0r8,188r78,-188r57,0","w":339,"k":{"u":6,"r":6,"o":13,"i":2,"e":13,"a":13,"A":6,";":15,":":11,".":27,"-":13,",":27}},"X":{"d":"92,-135r-60,-122r61,0r37,85r65,-85r67,0r-106,124r63,133r-62,0r-40,-92r-74,92r-68,0","w":240},"Y":{"d":"84,-100r-62,-157r58,0r38,109r80,-109r67,0r-125,160r-20,97r-57,0","w":233,"k":{"v":6,"u":13,"q":20,"p":13,"o":20,"i":6,"e":20,"a":20,"A":20,";":13,":":13,".":35,"-":22,",":35}},"Z":{"d":"-6,-47r172,-163r-132,0r11,-47r203,0r-10,45r-173,164r145,0r-9,48r-216,0","w":233},"[":{"d":"56,-263r93,0r-9,40r-45,0r-52,248r45,0r-8,41r-93,0","w":119},"\\":{"d":"141,6r-41,0r-101,-269r41,0","w":140},"]":{"d":"53,66r-93,0r8,-41r45,0r53,-248r-46,0r9,-40r93,0","w":119},"^":{"d":"84,-252r48,0r62,139r-42,0r-44,-99r-44,99r-42,0","w":216},"_":{"d":"0,27r180,0r0,18r-180,0r0,-18","w":180},"\u2018":{"d":"85,-141r-57,0v12,-54,14,-116,81,-116r-5,25v-23,3,-27,14,-32,35r24,0","w":100,"k":{"\u2018":14}},"a":{"d":"140,-134v0,-36,-69,-27,-71,4r-47,0v6,-44,39,-60,88,-61v52,-1,87,22,73,80v-9,36,-20,74,-17,111r-51,0r0,-18v-28,35,-118,31,-118,-26v0,-61,70,-63,125,-70v11,-4,18,-7,18,-20xm130,-89v-25,17,-82,-3,-81,39v0,29,50,24,61,7v12,-11,15,-29,20,-46","w":206},"b":{"d":"108,5v-30,1,-49,-12,-59,-34r-6,29r-47,0r54,-257r51,0r-19,91v16,-16,28,-25,56,-25v47,0,67,31,66,79v-2,65,-31,114,-96,117xm153,-111v0,-24,-11,-43,-36,-42v-41,2,-54,40,-55,80v-1,24,13,41,37,40v39,-2,52,-38,54,-78","w":219},"c":{"d":"4,-75v0,-91,85,-146,163,-100v16,10,24,28,25,53r-51,0v0,-22,-13,-31,-34,-31v-39,0,-51,39,-52,79v0,25,11,40,35,41v23,1,35,-18,41,-35r52,0v-15,42,-44,73,-97,73v-52,0,-82,-26,-82,-80"},"d":{"d":"147,-112v0,-24,-12,-41,-36,-41v-39,0,-55,38,-56,78v0,25,13,42,36,42v39,0,56,-39,56,-79xm105,-191v26,0,44,12,53,30r21,-96r51,0r-55,257r-49,0v1,-8,6,-17,4,-24v-29,53,-133,30,-126,-44v7,-68,31,-122,101,-123","w":219},"e":{"d":"144,-113v6,-50,-64,-49,-79,-15v-3,5,-5,10,-7,15r86,0xm106,-191v65,-2,98,44,84,110r-137,0v-3,31,12,48,41,48v20,-1,29,-14,38,-26r51,0v-15,40,-42,65,-97,64v-53,0,-82,-29,-82,-81v0,-66,35,-113,102,-115","w":206},"f":{"d":"46,-186v5,-55,39,-85,106,-70r-8,36v-30,-5,-47,6,-47,34r36,0r-7,34r-37,0r-32,152r-51,0r32,-152r-30,0r7,-34r31,0","w":126},"g":{"d":"100,-191v30,-1,47,13,58,33r5,-28r49,0v-17,70,-25,149,-49,213v-22,59,-171,63,-170,-17r51,0v0,34,56,31,68,8v6,-13,16,-31,17,-47v-38,52,-129,21,-123,-50v5,-62,32,-108,94,-112xm146,-112v0,-24,-13,-41,-37,-41v-52,0,-77,112,-17,112v37,0,52,-33,54,-71","w":219},"h":{"d":"141,-109v18,-42,-36,-55,-57,-26v-25,33,-24,90,-37,135r-51,0r53,-257r51,0r-18,92v28,-43,129,-34,114,40r-26,125r-52,0","w":219},"i":{"d":"93,-215r-52,0r9,-42r52,0xm35,-186r52,0r-40,186r-51,0","w":93},"j":{"d":"93,-215r-52,0r9,-42r52,0xm-39,23v26,5,33,-11,38,-33r37,-176r51,0r-48,219v-11,29,-46,37,-87,31","w":93},"k":{"d":"50,-257r51,0r-29,140r73,-69r63,0r-83,70r48,116r-56,0r-31,-83r-27,23r-12,60r-51,0"},"l":{"d":"50,-257r52,0r-55,257r-51,0","w":93},"m":{"d":"136,-118v11,-26,-18,-42,-39,-28v-40,26,-35,96,-50,146r-51,0r39,-186r49,0r-6,26v19,-33,100,-48,111,1v23,-47,133,-44,117,32r-26,127r-51,0r26,-131v-9,-39,-63,-10,-65,14v-13,35,-17,78,-27,117r-51,0","w":326},"n":{"d":"141,-109v18,-42,-36,-55,-57,-26v-25,33,-24,90,-37,135r-51,0r39,-186r49,0r-6,26v32,-51,133,-39,118,35r-26,125r-52,0","w":219},"o":{"d":"109,-153v-55,-2,-80,120,-18,120v40,0,53,-39,55,-79v1,-26,-12,-40,-37,-41xm89,5v-52,0,-86,-26,-85,-80v1,-69,37,-116,107,-116v53,0,86,25,86,79v0,70,-38,117,-108,117","w":213},"p":{"d":"103,5v-28,0,-43,-13,-54,-30r-19,91r-51,0r53,-252r50,0r-5,24v11,-18,30,-29,56,-29v45,0,71,28,71,73v0,69,-33,120,-101,123xm153,-111v0,-24,-13,-42,-37,-42v-40,0,-54,40,-56,79v-1,25,13,41,37,41v40,0,56,-39,56,-78","w":219},"q":{"d":"148,-113v0,-24,-13,-40,-37,-40v-40,0,-56,38,-56,78v0,26,12,42,38,42v38,0,55,-40,55,-80xm100,-191v30,-1,50,11,59,34r6,-29r47,0r-53,252r-51,0r17,-81v-13,12,-27,21,-53,20v-48,0,-68,-32,-68,-79v0,-65,31,-114,96,-117","w":219},"r":{"d":"146,-140v-84,-24,-84,75,-99,140r-51,0r39,-186r48,0r-7,33v12,-26,42,-43,80,-37","w":140,"k":{"y":-6,"v":-6,".":27,"-":13,",":27}},"s":{"d":"39,-91v-55,-36,-3,-111,59,-100v45,-1,76,14,76,59r-47,0v0,-17,-11,-23,-29,-25v-21,-2,-41,13,-26,29v33,19,93,17,93,70v0,82,-166,87,-168,5r0,-7r47,0v-1,23,17,28,37,31v31,5,45,-33,14,-43","w":186},"t":{"d":"99,1v-44,9,-89,-1,-78,-53r21,-100r-34,0r8,-34r33,0r11,-57r52,0r-12,57r37,0r-8,34r-36,0r-21,101v-1,17,20,15,36,13","w":133},"u":{"d":"66,-77v-16,29,14,53,41,37v43,-24,37,-96,53,-146r51,0r-39,186r-49,0v1,-8,6,-19,5,-26v-31,50,-133,41,-117,-36r26,-124r51,0","w":219},"v":{"d":"94,0r-59,0r-24,-186r52,0r13,132r65,-132r54,0","w":186,"k":{".":20,",":20}},"w":{"d":"203,0r-53,0r-7,-131r-58,131r-54,0r-20,-186r52,0r8,131r57,-131r52,0r6,130r60,-130r54,0","w":293,"k":{".":13,",":13}},"x":{"d":"114,-97r47,97r-54,0r-27,-61r-50,61r-58,0r87,-100r-42,-86r54,0r21,54r42,-54r57,0","w":186},"y":{"d":"-14,21v27,6,49,-3,55,-23r-33,-184r52,0r17,133r64,-133r54,0r-131,232v-16,21,-52,22,-87,18","w":186,"k":{".":20,",":20}},"z":{"d":"-10,-38r116,-110r-89,0r8,-38r156,0r-8,38r-117,109r103,0r-9,39r-168,0","w":180},"{":{"d":"34,66v-83,-10,25,-142,-47,-149r7,-31v76,-8,17,-139,108,-149r46,0r-8,40v-81,-12,-20,110,-101,125v49,7,14,71,14,111v0,13,19,13,35,12r-8,41r-46,0","w":119},"|":{"d":"21,-283r38,0r0,360r-38,0r0,-360","w":79},"}":{"d":"75,-263v84,9,-26,141,46,149r-7,31v-76,8,-17,138,-108,149r-46,0r9,-41v81,12,18,-110,100,-124v-49,-7,-16,-70,-14,-111v1,-15,-18,-13,-34,-13r8,-40r46,0","w":119},"~":{"d":"69,-122v40,2,86,49,108,-2r15,34v-12,14,-20,31,-45,31v-37,0,-91,-51,-108,1r-15,-33v8,-16,20,-32,45,-31","w":216},"'":{"d":"40,-257r38,0r0,116r-38,0r0,-116","w":100},"\u201c":{"d":"157,-141r-57,0v10,-56,14,-116,81,-116r-6,25v-22,3,-26,15,-32,35r25,0xm81,-141r-57,0v10,-56,14,-116,81,-116r-6,25v-22,3,-26,15,-32,35r25,0","w":173},"\u2013":{"d":"-1,-120r180,0r-9,44r-180,0","w":180},"\u201d":{"d":"47,-257r57,0v-12,54,-14,116,-81,116r5,-26v23,-3,27,-14,32,-35r-25,0xm123,-257r57,0v-12,54,-15,116,-81,116r5,-26v23,-3,27,-14,32,-35r-25,0","w":173},"\u2026":{"d":"18,-55r57,0r-12,55r-57,0xm257,-55r57,0r-12,55r-56,0xm138,-55r56,0r-11,55r-57,0","w":360},"`":{"d":"95,-209r-36,0r-50,-51r54,0","w":93},"\u2014":{"d":"46,-120r266,0r-9,44r-267,0","w":360},"\u00d7":{"d":"23,-33r58,-58r-57,-58r27,-27r57,58r58,-58r27,27r-58,58r58,58r-27,27r-58,-58r-58,58","w":216},"\u2122":{"d":"143,-228r-42,0r0,119r-37,0r0,-119r-42,0r0,-29r121,0r0,29xm334,-109r-34,0r-1,-105r-38,105r-25,0r-39,-105r0,105r-35,0r0,-148r49,0r37,98r37,-98r49,0r0,148","w":356},"\u00a0":{"w":100}}})); diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/basic_acrylic_clear.jpg Binary file buy_files/basic_acrylic_clear.jpg has changed diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/big_acrylic_clear.jpg Binary file buy_files/big_acrylic_clear.jpg has changed diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/big_acrylic_clear_002.jpg Binary file buy_files/big_acrylic_clear_002.jpg has changed diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/btn_cart_LG.gif Binary file buy_files/btn_cart_LG.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/buycode.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buy_files/buycode.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,210 @@ + + +function clearDefault(el) { +if (el.defaultValue==el.value) el.value = "" +} + + +function Dollar (val) { // force to valid dollar amount +var str,pos,rnd=0; + if (val < .995) rnd = 1; // for old Netscape browsers + str = escape (val*1.0 + 0.005001 + rnd); // float, round, escape + pos = str.indexOf ("."); + if (pos > 0) str = str.substring (rnd, pos + 3); + return str; +} + +var amt,des,obj,val,op1a,op1b,op2a,op2b,op3a,op3b,op4a,op4b,op5a,op5b,op6a,op6b,op7a,op7b,op8a,op8b,op9a,op9b,itmn; + +function ChkTok (obj1) { +var j,tok,ary=new Array (); // where we parse + ary = val.split (" "); // break apart + for (j=0; j 0) obj1.on0.value = op1a; + if (op1b.length > 0) obj1.os0.value = op1b; + if (op2a.length > 0) obj1.on1.value = op2a; + if (op2b.length > 0) obj1.os1.value = op2b; + if (op3a.length > 0) obj1.on2.value = op3a; + if (op3b.length > 0) obj1.os2.value = op3b; + if (op4a.length > 0) obj1.on3.value = op4a; + if (op4b.length > 0) obj1.os3.value = op4b; + if (op5a.length > 0) obj1.on4.value = op5a; + if (op5b.length > 0) obj1.os4.value = op5b; + if (op6a.length > 0) obj1.on5.value = op6a; + if (op6b.length > 0) obj1.os5.value = op6b; + if (op7a.length > 0) obj1.on6.value = op7a; + if (op7b.length > 0) obj1.os6.value = op7b; + if (op8a.length > 0) obj1.on7.value = op8a; + if (op8b.length > 0) obj1.os7.value = op8b; + if (op9a.length > 0) obj1.on8.value = op9a; + if (op9b.length > 0) obj1.os8.value = op9b; + if (itmn.length > 0) obj1.item_number.value = itmn; + obj1.item_name.value = des; + obj1.amount.value = Dollar (amt); + if (obj1.tot) obj1.tot.value = "$" + Dollar (amt); +} diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/classic_acrylic_clear.jpg Binary file buy_files/classic_acrylic_clear.jpg has changed diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/clear_acrylic.png Binary file buy_files/clear_acrylic.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/cufon-yui.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buy_files/cufon-yui.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2009 Simo Kinnunen. + * Licensed under the MIT license. + * + * @version 1.09 + */ +var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/100}return{"ultra-condensed":0.5,"extra-condensed":0.625,condensed:0.75,"semi-condensed":0.875,"semi-expanded":1.125,expanded:1.25,"extra-expanded":1.5,"ultra-expanded":2}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E0){E=" "+E}}else{if(B400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||JD){D=J}K.push(J)}if(ID){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?ML:(M<=I&&L<=I)?M>L:MO){O=K}if(I>N){N=I}if(Kcufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;m"); + docum.close(); + bod = docum.body; + } catch(e) { + bod = createPopup().document.body; + } + var range = bod.createTextRange(); + try { + bod.style.color = color; + var value = range.queryCommandValue("ForeColor"); + value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16); + return "#" + ("000000" + value[toString](16)).slice(-6); + } catch(e) { + return "none"; + } + }); + } else { + var i = doc.createElement("i"); + i.title = "Rapha\xebl Colour Picker"; + i.style.display = "none"; + doc.body[appendChild](i); + toHex = cacher(function (color) { + i.style.color = color; + return doc.defaultView.getComputedStyle(i, E).getPropertyValue("color"); + }); + } + return toHex(color); + }; + R.hsb2rgb = cacher(function (hue, saturation, brightness) { + if (R.is(hue, "object") && "h" in hue && "s" in hue && "b" in hue) { + brightness = hue.b; + saturation = hue.s; + hue = hue.h; + } + var red, + green, + blue; + if (brightness == 0) { + return {r: 0, g: 0, b: 0, hex: "#000"}; + } + if (hue > 1 || saturation > 1 || brightness > 1) { + hue /= 255; + saturation /= 255; + brightness /= 255; + } + var i = ~~(hue * 6), + f = (hue * 6) - i, + p = brightness * (1 - saturation), + q = brightness * (1 - (saturation * f)), + t = brightness * (1 - (saturation * (1 - f))); + red = [brightness, q, p, p, t, brightness, brightness][i]; + green = [t, brightness, brightness, q, p, p, t][i]; + blue = [p, p, t, brightness, brightness, q, p][i]; + red *= 255; + green *= 255; + blue *= 255; + var rgb = {r: red, g: green, b: blue}, + r = (~~red)[toString](16), + g = (~~green)[toString](16), + b = (~~blue)[toString](16); + r = r[rp](rg, "0"); + g = g[rp](rg, "0"); + b = b[rp](rg, "0"); + rgb.hex = "#" + r + g + b; + return rgb; + }, R); + R.rgb2hsb = cacher(function (red, green, blue) { + if (R.is(red, "object") && "r" in red && "g" in red && "b" in red) { + blue = red.b; + green = red.g; + red = red.r; + } + if (R.is(red, "string")) { + var clr = R.getRGB(red); + red = clr.r; + green = clr.g; + blue = clr.b; + } + if (red > 1 || green > 1 || blue > 1) { + red /= 255; + green /= 255; + blue /= 255; + } + var max = mmax(red, green, blue), + min = mmin(red, green, blue), + hue, + saturation, + brightness = max; + if (min == max) { + return {h: 0, s: 0, b: max}; + } else { + var delta = (max - min); + saturation = delta / max; + if (red == max) { + hue = (green - blue) / delta; + } else if (green == max) { + hue = 2 + ((blue - red) / delta); + } else { + hue = 4 + ((red - green) / delta); + } + hue /= 6; + hue < 0 && hue++; + hue > 1 && hue--; + } + return {h: hue, s: saturation, b: brightness}; + }, R); + var p2s = /,?([achlmqrstvxz]),?/gi; + R._path2string = function () { + return this.join(",")[rp](p2s, "$1"); + }; + function cacher(f, scope, postprocessor) { + function newf() { + var arg = Array[proto].slice.call(arguments, 0), + args = arg[join]("\u25ba"), + cache = newf.cache = newf.cache || {}, + count = newf.count = newf.count || []; + if (cache[has](args)) { + return postprocessor ? postprocessor(cache[args]) : cache[args]; + } + count[length] >= 1e3 && delete cache[count.shift()]; + count[push](args); + cache[args] = f[apply](scope, arg); + return postprocessor ? postprocessor(cache[args]) : cache[args]; + } + return newf; + } + + R.getRGB = cacher(function (colour) { + if (!colour || !!((colour = colour + E).indexOf("-") + 1)) { + return {r: -1, g: -1, b: -1, hex: "none", error: 1}; + } + if (colour == "none") { + return {r: -1, g: -1, b: -1, hex: "none"}; + } + !(({hs: 1, rg: 1})[has](colour.substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour)); + var res, + red, + green, + blue, + t, + rgb = colour.match(colourRegExp); + if (rgb) { + if (rgb[2]) { + blue = toInt(rgb[2].substring(5), 16); + green = toInt(rgb[2].substring(3, 5), 16); + red = toInt(rgb[2].substring(1, 3), 16); + } + if (rgb[3]) { + blue = toInt((t = rgb[3].charAt(3)) + t, 16); + green = toInt((t = rgb[3].charAt(2)) + t, 16); + red = toInt((t = rgb[3].charAt(1)) + t, 16); + } + if (rgb[4]) { + rgb = rgb[4][split](/\s*,\s*/); + red = toFloat(rgb[0]); + green = toFloat(rgb[1]); + blue = toFloat(rgb[2]); + } + if (rgb[5]) { + rgb = rgb[5][split](/\s*,\s*/); + red = toFloat(rgb[0]) * 2.55; + green = toFloat(rgb[1]) * 2.55; + blue = toFloat(rgb[2]) * 2.55; + } + if (rgb[6]) { + rgb = rgb[6][split](/\s*,\s*/); + red = toFloat(rgb[0]); + green = toFloat(rgb[1]); + blue = toFloat(rgb[2]); + return R.hsb2rgb(red, green, blue); + } + if (rgb[7]) { + rgb = rgb[7][split](/\s*,\s*/); + red = toFloat(rgb[0]) * 2.55; + green = toFloat(rgb[1]) * 2.55; + blue = toFloat(rgb[2]) * 2.55; + return R.hsb2rgb(red, green, blue); + } + rgb = {r: red, g: green, b: blue}; + var r = (~~red)[toString](16), + g = (~~green)[toString](16), + b = (~~blue)[toString](16); + r = r[rp](rg, "0"); + g = g[rp](rg, "0"); + b = b[rp](rg, "0"); + rgb.hex = "#" + r + g + b; + return rgb; + } + return {r: -1, g: -1, b: -1, hex: "none", error: 1}; + }, R); + R.getColor = function (value) { + var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75}, + rgb = this.hsb2rgb(start.h, start.s, start.b); + start.h += .075; + if (start.h > 1) { + start.h = 0; + start.s -= .2; + start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b}); + } + return rgb.hex; + }; + R.getColor.reset = function () { + delete this.start; + }; + // path utilities + R.parsePathString = cacher(function (pathString) { + if (!pathString) { + return null; + } + var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0}, + data = []; + if (R.is(pathString, "array") && R.is(pathString[0], "array")) { // rough assumption + data = pathClone(pathString); + } + if (!data[length]) { + (pathString + E)[rp](/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig, function (a, b, c) { + var params = [], + name = lowerCase.call(b); + c[rp](/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig, function (a, b) { + b && params[push](+b); + }); + while (params[length] >= paramCounts[name]) { + data[push]([b][concat](params.splice(0, paramCounts[name]))); + if (!paramCounts[name]) { + break; + }; + } + }); + } + data[toString] = R._path2string; + return data; + }); + R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { + var t1 = 1 - t, + x = pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, + y = pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y, + mx = p1x + 2 * t * (c1x - p1x) + t * t * (c2x - 2 * c1x + p1x), + my = p1y + 2 * t * (c1y - p1y) + t * t * (c2y - 2 * c1y + p1y), + nx = c1x + 2 * t * (c2x - c1x) + t * t * (p2x - 2 * c2x + c1x), + ny = c1y + 2 * t * (c2y - c1y) + t * t * (p2y - 2 * c2y + c1y), + ax = (1 - t) * p1x + t * c1x, + ay = (1 - t) * p1y + t * c1y, + cx = (1 - t) * c2x + t * p2x, + cy = (1 - t) * c2y + t * p2y, + alpha = (90 - math.atan((mx - nx) / (my - ny)) * 180 / math.PI); + (mx > nx || my < ny) && (alpha += 180); + return {x: x, y: y, m: {x: mx, y: my}, n: {x: nx, y: ny}, start: {x: ax, y: ay}, end: {x: cx, y: cy}, alpha: alpha}; + }; + var pathDimensions = cacher(function (path) { + if (!path) { + return {x: 0, y: 0, width: 0, height: 0}; + } + path = path2curve(path); + var x = 0, + y = 0, + X = [], + Y = [], + p; + for (var i = 0, ii = path[length]; i < ii; i++) { + p = path[i]; + if (p[0] == "M") { + x = p[1]; + y = p[2]; + X[push](x); + Y[push](y); + } else { + var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); + X = X[concat](dim.min.x, dim.max.x); + Y = Y[concat](dim.min.y, dim.max.y); + x = p[5]; + y = p[6]; + } + } + var xmin = mmin[apply](0, X), + ymin = mmin[apply](0, Y); + return { + x: xmin, + y: ymin, + width: mmax[apply](0, X) - xmin, + height: mmax[apply](0, Y) - ymin + }; + }), + pathClone = function (pathArray) { + var res = []; + if (!R.is(pathArray, "array") || !R.is(pathArray && pathArray[0], "array")) { // rough assumption + pathArray = R.parsePathString(pathArray); + } + for (var i = 0, ii = pathArray[length]; i < ii; i++) { + res[i] = []; + for (var j = 0, jj = pathArray[i][length]; j < jj; j++) { + res[i][j] = pathArray[i][j]; + } + } + res[toString] = R._path2string; + return res; + }, + pathToRelative = cacher(function (pathArray) { + if (!R.is(pathArray, "array") || !R.is(pathArray && pathArray[0], "array")) { // rough assumption + pathArray = R.parsePathString(pathArray); + } + var res = [], + x = 0, + y = 0, + mx = 0, + my = 0, + start = 0; + if (pathArray[0][0] == "M") { + x = pathArray[0][1]; + y = pathArray[0][2]; + mx = x; + my = y; + start++; + res[push](["M", x, y]); + } + for (var i = start, ii = pathArray[length]; i < ii; i++) { + var r = res[i] = [], + pa = pathArray[i]; + if (pa[0] != lowerCase.call(pa[0])) { + r[0] = lowerCase.call(pa[0]); + switch (r[0]) { + case "a": + r[1] = pa[1]; + r[2] = pa[2]; + r[3] = pa[3]; + r[4] = pa[4]; + r[5] = pa[5]; + r[6] = +(pa[6] - x).toFixed(3); + r[7] = +(pa[7] - y).toFixed(3); + break; + case "v": + r[1] = +(pa[1] - y).toFixed(3); + break; + case "m": + mx = pa[1]; + my = pa[2]; + default: + for (var j = 1, jj = pa[length]; j < jj; j++) { + r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3); + } + } + } else { + r = res[i] = []; + if (pa[0] == "m") { + mx = pa[1] + x; + my = pa[2] + y; + } + for (var k = 0, kk = pa[length]; k < kk; k++) { + res[i][k] = pa[k]; + } + } + var len = res[i][length]; + switch (res[i][0]) { + case "z": + x = mx; + y = my; + break; + case "h": + x += +res[i][len - 1]; + break; + case "v": + y += +res[i][len - 1]; + break; + default: + x += +res[i][len - 2]; + y += +res[i][len - 1]; + } + } + res[toString] = R._path2string; + return res; + }, 0, pathClone), + pathToAbsolute = cacher(function (pathArray) { + if (!R.is(pathArray, "array") || !R.is(pathArray && pathArray[0], "array")) { // rough assumption + pathArray = R.parsePathString(pathArray); + } + var res = [], + x = 0, + y = 0, + mx = 0, + my = 0, + start = 0; + if (pathArray[0][0] == "M") { + x = +pathArray[0][1]; + y = +pathArray[0][2]; + mx = x; + my = y; + start++; + res[0] = ["M", x, y]; + } + for (var i = start, ii = pathArray[length]; i < ii; i++) { + var r = res[i] = [], + pa = pathArray[i]; + if (pa[0] != upperCase.call(pa[0])) { + r[0] = upperCase.call(pa[0]); + switch (r[0]) { + case "A": + r[1] = pa[1]; + r[2] = pa[2]; + r[3] = pa[3]; + r[4] = pa[4]; + r[5] = pa[5]; + r[6] = +(pa[6] + x); + r[7] = +(pa[7] + y); + break; + case "V": + r[1] = +pa[1] + y; + break; + case "H": + r[1] = +pa[1] + x; + break; + case "M": + mx = +pa[1] + x; + my = +pa[2] + y; + default: + for (var j = 1, jj = pa[length]; j < jj; j++) { + r[j] = +pa[j] + ((j % 2) ? x : y); + } + } + } else { + for (var k = 0, kk = pa[length]; k < kk; k++) { + res[i][k] = pa[k]; + } + } + switch (r[0]) { + case "Z": + x = mx; + y = my; + break; + case "H": + x = r[1]; + break; + case "V": + y = r[1]; + break; + default: + x = res[i][res[i][length] - 2]; + y = res[i][res[i][length] - 1]; + } + } + res[toString] = R._path2string; + return res; + }, null, pathClone), + l2c = function (x1, y1, x2, y2) { + return [x1, y1, x2, y2, x2, y2]; + }, + q2c = function (x1, y1, ax, ay, x2, y2) { + var _13 = 1 / 3, + _23 = 2 / 3; + return [ + _13 * x1 + _23 * ax, + _13 * y1 + _23 * ay, + _13 * x2 + _23 * ax, + _13 * y2 + _23 * ay, + x2, + y2 + ]; + }, + a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { + // for more information of where this math came from visit: + // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes + var PI = math.PI, + _120 = PI * 120 / 180, + rad = PI / 180 * (+angle || 0), + res = [], + xy, + rotate = cacher(function (x, y, rad) { + var X = x * math.cos(rad) - y * math.sin(rad), + Y = x * math.sin(rad) + y * math.cos(rad); + return {x: X, y: Y}; + }); + if (!recursive) { + xy = rotate(x1, y1, -rad); + x1 = xy.x; + y1 = xy.y; + xy = rotate(x2, y2, -rad); + x2 = xy.x; + y2 = xy.y; + var cos = math.cos(PI / 180 * angle), + sin = math.sin(PI / 180 * angle), + x = (x1 - x2) / 2, + y = (y1 - y2) / 2; + rx = mmax(rx, math.abs(x)); + ry = mmax(ry, math.abs(y)); + var rx2 = rx * rx, + ry2 = ry * ry, + k = (large_arc_flag == sweep_flag ? -1 : 1) * + math.sqrt(math.abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))), + cx = k * rx * y / ry + (x1 + x2) / 2, + cy = k * -ry * x / rx + (y1 + y2) / 2, + f1 = math.asin(((y1 - cy) / ry).toFixed(7)), + f2 = math.asin(((y2 - cy) / ry).toFixed(7)); + + f1 = x1 < cx ? PI - f1 : f1; + f2 = x2 < cx ? PI - f2 : f2; + f1 < 0 && (f1 = PI * 2 + f1); + f2 < 0 && (f2 = PI * 2 + f2); + if (sweep_flag && f1 > f2) { + f1 = f1 - PI * 2; + } + if (!sweep_flag && f2 > f1) { + f2 = f2 - PI * 2; + } + } else { + f1 = recursive[0]; + f2 = recursive[1]; + cx = recursive[2]; + cy = recursive[3]; + } + var df = f2 - f1; + if (math.abs(df) > _120) { + var f2old = f2, + x2old = x2, + y2old = y2; + f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); + x2 = cx + rx * math.cos(f2); + y2 = cy + ry * math.sin(f2); + res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); + } + df = f2 - f1; + var c1 = math.cos(f1), + s1 = math.sin(f1), + c2 = math.cos(f2), + s2 = math.sin(f2), + t = math.tan(df / 4), + hx = 4 / 3 * rx * t, + hy = 4 / 3 * ry * t, + m1 = [x1, y1], + m2 = [x1 + hx * s1, y1 - hy * c1], + m3 = [x2 + hx * s2, y2 - hy * c2], + m4 = [x2, y2]; + m2[0] = 2 * m1[0] - m2[0]; + m2[1] = 2 * m1[1] - m2[1]; + if (recursive) { + return [m2, m3, m4][concat](res); + } else { + res = [m2, m3, m4][concat](res)[join]()[split](","); + var newres = []; + for (var i = 0, ii = res[length]; i < ii; i++) { + newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; + } + return newres; + } + }, + findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { + var t1 = 1 - t; + return { + x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, + y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y + }; + }, + curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { + var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x), + b = 2 * (c1x - p1x) - 2 * (c2x - c1x), + c = p1x - c1x, + t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a, + t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a, + y = [p1y, p2y], + x = [p1x, p2x], + dot; + math.abs(t1) > 1e12 && (t1 = .5); + math.abs(t2) > 1e12 && (t2 = .5); + if (t1 > 0 && t1 < 1) { + dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); + x[push](dot.x); + y[push](dot.y); + } + if (t2 > 0 && t2 < 1) { + dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); + x[push](dot.x); + y[push](dot.y); + } + a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y); + b = 2 * (c1y - p1y) - 2 * (c2y - c1y); + c = p1y - c1y; + t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a; + t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a; + math.abs(t1) > 1e12 && (t1 = .5); + math.abs(t2) > 1e12 && (t2 = .5); + if (t1 > 0 && t1 < 1) { + dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); + x[push](dot.x); + y[push](dot.y); + } + if (t2 > 0 && t2 < 1) { + dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); + x[push](dot.x); + y[push](dot.y); + } + return { + min: {x: mmin[apply](0, x), y: mmin[apply](0, y)}, + max: {x: mmax[apply](0, x), y: mmax[apply](0, y)} + }; + }), + path2curve = cacher(function (path, path2) { + var p = pathToAbsolute(path), + p2 = path2 && pathToAbsolute(path2), + attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, + attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, + processPath = function (path, d) { + var nx, ny; + if (!path) { + return ["C", d.x, d.y, d.x, d.y, d.x, d.y]; + } + !(path[0] in {T:1, Q:1}) && (d.qx = d.qy = null); + switch (path[0]) { + case "M": + d.X = path[1]; + d.Y = path[2]; + break; + case "A": + path = ["C"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1)))); + break; + case "S": + nx = d.x + (d.x - (d.bx || d.x)); + ny = d.y + (d.y - (d.by || d.y)); + path = ["C", nx, ny][concat](path.slice(1)); + break; + case "T": + d.qx = d.x + (d.x - (d.qx || d.x)); + d.qy = d.y + (d.y - (d.qy || d.y)); + path = ["C"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])); + break; + case "Q": + d.qx = path[1]; + d.qy = path[2]; + path = ["C"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4])); + break; + case "L": + path = ["C"][concat](l2c(d.x, d.y, path[1], path[2])); + break; + case "H": + path = ["C"][concat](l2c(d.x, d.y, path[1], d.y)); + break; + case "V": + path = ["C"][concat](l2c(d.x, d.y, d.x, path[1])); + break; + case "Z": + path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y)); + break; + } + return path; + }, + fixArc = function (pp, i) { + if (pp[i][length] > 7) { + pp[i].shift(); + var pi = pp[i]; + while (pi[length]) { + pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6))); + } + pp.splice(i, 1); + ii = mmax(p[length], p2 && p2[length] || 0); + } + }, + fixM = function (path1, path2, a1, a2, i) { + if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") { + path2.splice(i, 0, ["M", a2.x, a2.y]); + a1.bx = 0; + a1.by = 0; + a1.x = path1[i][1]; + a1.y = path1[i][2]; + ii = mmax(p[length], p2 && p2[length] || 0); + } + }; + for (var i = 0, ii = mmax(p[length], p2 && p2[length] || 0); i < ii; i++) { + p[i] = processPath(p[i], attrs); + fixArc(p, i); + p2 && (p2[i] = processPath(p2[i], attrs2)); + p2 && fixArc(p2, i); + fixM(p, p2, attrs, attrs2, i); + fixM(p2, p, attrs2, attrs, i); + var seg = p[i], + seg2 = p2 && p2[i], + seglen = seg[length], + seg2len = p2 && seg2[length]; + attrs.x = seg[seglen - 2]; + attrs.y = seg[seglen - 1]; + attrs.bx = toFloat(seg[seglen - 4]) || attrs.x; + attrs.by = toFloat(seg[seglen - 3]) || attrs.y; + attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x); + attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y); + attrs2.x = p2 && seg2[seg2len - 2]; + attrs2.y = p2 && seg2[seg2len - 1]; + } + return p2 ? [p, p2] : p; + }, null, pathClone), + parseDots = cacher(function (gradient) { + var dots = []; + for (var i = 0, ii = gradient[length]; i < ii; i++) { + var dot = {}, + par = gradient[i].match(/^([^:]*):?([\d\.]*)/); + dot.color = R.getRGB(par[1]); + if (dot.color.error) { + return null; + } + dot.color = dot.color.hex; + par[2] && (dot.offset = par[2] + "%"); + dots[push](dot); + } + for (var i = 1, ii = dots[length] - 1; i < ii; i++) { + if (!dots[i].offset) { + var start = toFloat(dots[i - 1].offset || 0), + end = 0; + for (var j = i + 1; j < ii; j++) { + if (dots[j].offset) { + end = dots[j].offset; + break; + } + } + if (!end) { + end = 100; + j = ii; + } + end = toFloat(end); + var d = (end - start) / (j - i + 1); + for (; i < j; i++) { + start += d; + dots[i].offset = start + "%"; + } + } + } + return dots; + }), + getContainer = function () { + var container, + x, + y, + width, + height; + if (R.is(arguments[0], "string") || R.is(arguments[0], "object")) { + if (R.is(arguments[0], "string")) { + container = doc.getElementById(arguments[0]); + } else { + container = arguments[0]; + } + if (container.tagName) { + if (arguments[1] == null) { + return { + container: container, + width: container.style.pixelWidth || container.offsetWidth, + height: container.style.pixelHeight || container.offsetHeight + }; + } else { + return {container: container, width: arguments[1], height: arguments[2]}; + } + } + } else if (R.is(arguments[0], nu) && arguments[length] > 3) { + return {container: 1, x: arguments[0], y: arguments[1], width: arguments[2], height: arguments[3]}; + } + }, + plugins = function (con, add) { + var that = this; + for (var prop in add) if (add[has](prop) && !(prop in con)) { + switch (typeof add[prop]) { + case "function": + (function (f) { + con[prop] = con === that ? f : function () { return f[apply](that, arguments); }; + })(add[prop]); + break; + case "object": + con[prop] = con[prop] || {}; + plugins.call(this, con[prop], add[prop]); + break; + default: + con[prop] = add[prop]; + break; + } + } + }, + tear = function (el, paper) { + el == paper.top && (paper.top = el.prev); + el == paper.bottom && (paper.bottom = el.next); + el.next && (el.next.prev = el.prev); + el.prev && (el.prev.next = el.next); + }, + tofront = function (el, paper) { + if (paper.top === el) { + return; + } + tear(el, paper); + el.next = null; + el.prev = paper.top; + paper.top.next = el; + paper.top = el; + }, + toback = function (el, paper) { + if (paper.bottom === el) { + return; + } + tear(el, paper); + el.next = paper.bottom; + el.prev = null; + paper.bottom.prev = el; + paper.bottom = el; + }, + insertafter = function (el, el2, paper) { + tear(el, paper); + el2 == paper.top && (paper.top = el); + el2.next && (el2.next.prev = el); + el.next = el2.next; + el.prev = el2; + el2.next = el; + }, + insertbefore = function (el, el2, paper) { + tear(el, paper); + el2 == paper.bottom && (paper.bottom = el); + el2.prev && (el2.prev.next = el); + el.prev = el2.prev; + el2.prev = el; + el.next = el2; + }, + removed = function (methodname) { + return function () { + throw new Error("Rapha\xebl: you are calling to method \u201c" + methodname + "\u201d of removed object"); + }; + }, + radial_gradient = /^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/; + + // SVG + if (R.svg) { + Paper[proto].svgns = "http://www.w3.org/2000/svg"; + Paper[proto].xlink = "http://www.w3.org/1999/xlink"; + var round = function (num) { + return +num + (~~num === num) * .5; + }, + roundPath = function (path) { + for (var i = 0, ii = path[length]; i < ii; i++) { + if (lowerCase.call(path[i][0]) != "a") { + for (var j = 1, jj = path[i][length]; j < jj; j++) { + path[i][j] = round(path[i][j]); + } + } else { + path[i][6] = round(path[i][6]); + path[i][7] = round(path[i][7]); + } + } + return path; + }, + $ = function (el, attr) { + if (attr) { + for (var key in attr) if (attr[has](key)) { + el[setAttribute](key, attr[key]); + } + } else { + return doc.createElementNS(Paper[proto].svgns, el); + } + }; + R[toString] = function () { + return "Your browser supports SVG.\nYou are running Rapha\xebl " + this.version; + }; + var thePath = function (pathString, SVG) { + var el = $("path"); + SVG.canvas && SVG.canvas[appendChild](el); + var p = new Element(el, SVG); + p.type = "path"; + setFillAndStroke(p, {fill: "none", stroke: "#000", path: pathString}); + return p; + }; + var addGradientFill = function (o, gradient, SVG) { + var type = "linear", + fx = .5, fy = .5, + s = o.style; + gradient = (gradient + E)[rp](radial_gradient, function (all, _fx, _fy) { + type = "radial"; + if (_fx && _fy) { + fx = toFloat(_fx); + fy = toFloat(_fy); + var dir = ((fy > .5) * 2 - 1); + pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && + (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) && + fy != .5 && + (fy = fy.toFixed(5) - 1e-5 * dir); + } + return E; + }); + gradient = gradient[split](/\s*\-\s*/); + if (type == "linear") { + var angle = gradient.shift(); + angle = -toFloat(angle); + if (isNaN(angle)) { + return null; + } + var vector = [0, 0, math.cos(angle * math.PI / 180), math.sin(angle * math.PI / 180)], + max = 1 / (mmax(math.abs(vector[2]), math.abs(vector[3])) || 1); + vector[2] *= max; + vector[3] *= max; + if (vector[2] < 0) { + vector[0] = -vector[2]; + vector[2] = 0; + } + if (vector[3] < 0) { + vector[1] = -vector[3]; + vector[3] = 0; + } + } + var dots = parseDots(gradient); + if (!dots) { + return null; + } + var el = $(type + "Gradient"); + el.id = "r" + (R._id++)[toString](36); + $(el, type == "radial" ? {fx: fx, fy: fy} : {x1: vector[0], y1: vector[1], x2: vector[2], y2: vector[3]}); + SVG.defs[appendChild](el); + for (var i = 0, ii = dots[length]; i < ii; i++) { + var stop = $("stop"); + $(stop, { + offset: dots[i].offset ? dots[i].offset : !i ? "0%" : "100%", + "stop-color": dots[i].color || "#fff" + }); + el[appendChild](stop); + }; + $(o, { + fill: "url(#" + el.id + ")", + opacity: 1, + "fill-opacity": 1 + }); + s.fill = E; + s.opacity = 1; + s.fillOpacity = 1; + return 1; + }; + var updatePosition = function (o) { + var bbox = o.getBBox(); + $(o.pattern, {patternTransform: R.format("translate({0},{1})", bbox.x, bbox.y)}); + }; + var setFillAndStroke = function (o, params) { + var dasharray = { + "": [0], + "none": [0], + "-": [3, 1], + ".": [1, 1], + "-.": [3, 1, 1, 1], + "-..": [3, 1, 1, 1, 1, 1], + ". ": [1, 3], + "- ": [4, 3], + "--": [8, 3], + "- .": [4, 3, 1, 3], + "--.": [8, 3, 1, 3], + "--..": [8, 3, 1, 3, 1, 3] + }, + node = o.node, + attrs = o.attrs, + rot = o.rotate(), + addDashes = function (o, value) { + value = dasharray[lowerCase.call(value)]; + if (value) { + var width = o.attrs["stroke-width"] || "1", + butt = {round: width, square: width, butt: 0}[o.attrs["stroke-linecap"] || params["stroke-linecap"]] || 0, + dashes = []; + var i = value[length]; + while (i--) { + dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt; + } + $(node, {"stroke-dasharray": dashes[join](",")}); + } + }; + params[has]("rotation") && (rot = params.rotation); + var rotxy = (rot + E)[split](separator); + if (!(rotxy.length - 1)) { + rotxy = null; + } else { + rotxy[1] = +rotxy[1]; + rotxy[2] = +rotxy[2]; + } + toFloat(rot) && o.rotate(0, true); + for (var att in params) if (params[has](att)) { + if (!availableAttrs[has](att)) { + continue; + } + var value = params[att]; + attrs[att] = value; + switch (att) { + case "rotation": + o.rotate(value, true); + break; + // Hyperlink + case "href": + case "title": + case "target": + var pn = node.parentNode; + if (lowerCase.call(pn.tagName) != "a") { + var hl = $("a"); + pn.insertBefore(hl, node); + hl[appendChild](node); + pn = hl; + } + pn.setAttributeNS(o.Paper[proto].xlink, att, value); + break; + case "cursor": + node.style.cursor = value; + break; + case "clip-rect": + var rect = (value + E)[split](separator); + if (rect[length] == 4) { + o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode); + var el = $("clipPath"), + rc = $("rect"); + el.id = "r" + (R._id++)[toString](36); + $(rc, { + x: rect[0], + y: rect[1], + width: rect[2], + height: rect[3] + }); + el[appendChild](rc); + o.paper.defs[appendChild](el); + $(node, {"clip-path": "url(#" + el.id + ")"}); + o.clip = rc; + } + if (!value) { + var clip = doc.getElementById(node.getAttribute("clip-path")[rp](/(^url\(#|\)$)/g, E)); + clip && clip.parentNode.removeChild(clip); + $(node, {"clip-path": E}); + delete o.clip; + } + break; + case "path": + if (value && o.type == "path") { + attrs.path = roundPath(pathToAbsolute(value)); + $(node, {d: attrs.path}); + } + break; + case "width": + node[setAttribute](att, value); + if (attrs.fx) { + att = "x"; + value = attrs.x; + } else { + break; + } + case "x": + if (attrs.fx) { + value = -attrs.x - (attrs.width || 0); + } + case "rx": + if (att == "rx" && o.type == "rect") { + break; + } + case "cx": + rotxy && (att == "x" || att == "cx") && (rotxy[1] += value - attrs[att]); + node[setAttribute](att, round(value)); + o.pattern && updatePosition(o); + break; + case "height": + node[setAttribute](att, value); + if (attrs.fy) { + att = "y"; + value = attrs.y; + } else { + break; + } + case "y": + if (attrs.fy) { + value = -attrs.y - (attrs.height || 0); + } + case "ry": + if (att == "ry" && o.type == "rect") { + break; + } + case "cy": + rotxy && (att == "y" || att == "cy") && (rotxy[2] += value - attrs[att]); + node[setAttribute](att, round(value)); + o.pattern && updatePosition(o); + break; + case "r": + if (o.type == "rect") { + $(node, {rx: value, ry: value}); + } else { + node[setAttribute](att, value); + } + break; + case "src": + if (o.type == "image") { + node.setAttributeNS(o.paper.xlink, "href", value); + } + break; + case "stroke-width": + node.style.strokeWidth = value; + // Need following line for Firefox + node[setAttribute](att, value); + if (attrs["stroke-dasharray"]) { + addDashes(o, attrs["stroke-dasharray"]); + } + break; + case "stroke-dasharray": + addDashes(o, value); + break; + case "translation": + var xy = (value + E)[split](separator); + xy[0] = +xy[0] || 0; + xy[1] = +xy[1] || 0; + if (rotxy) { + rotxy[1] += xy[0]; + rotxy[2] += xy[1]; + } + translate.call(o, xy[0], xy[1]); + break; + case "scale": + var xy = (value + E)[split](separator); + o.scale(+xy[0] || 1, +xy[1] || +xy[0] || 1, +xy[2] || null, +xy[3] || null); + break; + case "fill": + var isURL = (value + E).match(ISURL); + if (isURL) { + var el = $("pattern"), + ig = $("image"); + el.id = "r" + (R._id++)[toString](36); + $(el, {x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1}); + $(ig, {x: 0, y: 0}); + ig.setAttributeNS(o.paper.xlink, "href", isURL[1]); + el[appendChild](ig); + + var img = doc.createElement("img"); + img.style.cssText = "position:absolute;left:-9999em;top-9999em"; + img.onload = function () { + $(el, {width: this.offsetWidth, height: this.offsetHeight}); + $(ig, {width: this.offsetWidth, height: this.offsetHeight}); + doc.body.removeChild(this); + o.paper.safari(); + }; + doc.body[appendChild](img); + img.src = isURL[1]; + o.paper.defs[appendChild](el); + node.style.fill = "url(#" + el.id + ")"; + $(node, {fill: "url(#" + el.id + ")"}); + o.pattern = el; + o.pattern && updatePosition(o); + break; + } + if (!R.getRGB(value).error) { + delete params.gradient; + delete attrs.gradient; + !R.is(attrs.opacity, "undefined") && + R.is(params.opacity, "undefined") && + $(node, {opacity: attrs.opacity}); + !R.is(attrs["fill-opacity"], "undefined") && + R.is(params["fill-opacity"], "undefined") && + $(node, {"fill-opacity": attrs["fill-opacity"]}); + } else if ((({circle: 1, ellipse: 1})[has](o.type) || (value + E).charAt() != "r") && addGradientFill(node, value, o.paper)) { + attrs.gradient = value; + attrs.fill = "none"; + break; + } + case "stroke": + node[setAttribute](att, R.getRGB(value).hex); + break; + case "gradient": + (({circle: 1, ellipse: 1})[has](o.type) || (value + E).charAt() != "r") && addGradientFill(node, value, o.paper); + break; + case "opacity": + case "fill-opacity": + if (attrs.gradient) { + var gradient = doc.getElementById(node.getAttribute("fill")[rp](/^url\(#|\)$/g, E)); + if (gradient) { + var stops = gradient.getElementsByTagName("stop"); + stops[stops[length] - 1][setAttribute]("stop-opacity", value); + } + break; + } + default: + att == "font-size" && (value = toInt(value, 10) + "px"); + var cssrule = att[rp](/(\-.)/g, function (w) { + return upperCase.call(w.substring(1)); + }); + node.style[cssrule] = value; + // Need following line for Firefox + node[setAttribute](att, value); + break; + } + } + + tuneText(o, params); + if (rotxy) { + o.rotate(rotxy.join(S)); + } else { + toFloat(rot) && o.rotate(rot, true); + } + }; + var leading = 1.2; + var tuneText = function (el, params) { + if (el.type != "text" || !(params[has]("text") || params[has]("font") || params[has]("font-size") || params[has]("x") || params[has]("y"))) { + return; + } + var a = el.attrs, + node = el.node, + fontSize = node.firstChild ? toInt(doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue("font-size"), 10) : 10; + + if (params[has]("text")) { + a.text = params.text; + while (node.firstChild) { + node.removeChild(node.firstChild); + } + var texts = (params.text + E)[split]("\n"); + for (var i = 0, ii = texts[length]; i < ii; i++) if (texts[i]) { + var tspan = $("tspan"); + i && $(tspan, {dy: fontSize * leading, x: a.x}); + tspan[appendChild](doc.createTextNode(texts[i])); + node[appendChild](tspan); + } + } else { + var texts = node.getElementsByTagName("tspan"); + for (var i = 0, ii = texts[length]; i < ii; i++) { + i && $(texts[i], {dy: fontSize * leading, x: a.x}); + } + } + $(node, {y: a.y}); + var bb = el.getBBox(), + dif = a.y - (bb.y + bb.height / 2); + dif && isFinite(dif) && $(node, {y: a.y + dif}); + }; + var Element = function (node, svg) { + var X = 0, + Y = 0; + this[0] = node; + this.id = R._oid++; + this.node = node; + node.raphael = this; + this.paper = svg; + this.attrs = this.attrs || {}; + this.transformations = []; // rotate, translate, scale + this._ = { + tx: 0, + ty: 0, + rt: {deg: 0, cx: 0, cy: 0}, + sx: 1, + sy: 1 + }; + !svg.bottom && (svg.bottom = this); + this.prev = svg.top; + svg.top && (svg.top.next = this); + svg.top = this; + this.next = null; + }; + Element[proto].rotate = function (deg, cx, cy) { + if (this.removed) { + return this; + } + if (deg == null) { + if (this._.rt.cx) { + return [this._.rt.deg, this._.rt.cx, this._.rt.cy][join](S); + } + return this._.rt.deg; + } + var bbox = this.getBBox(); + deg = (deg + E)[split](separator); + if (deg[length] - 1) { + cx = toFloat(deg[1]); + cy = toFloat(deg[2]); + } + deg = toFloat(deg[0]); + if (cx != null) { + this._.rt.deg = deg; + } else { + this._.rt.deg += deg; + } + (cy == null) && (cx = null); + this._.rt.cx = cx; + this._.rt.cy = cy; + cx = cx == null ? bbox.x + bbox.width / 2 : cx; + cy = cy == null ? bbox.y + bbox.height / 2 : cy; + if (this._.rt.deg) { + this.transformations[0] = R.format("rotate({0} {1} {2})", this._.rt.deg, cx, cy); + this.clip && $(this.clip, {transform: R.format("rotate({0} {1} {2})", -this._.rt.deg, cx, cy)}); + } else { + this.transformations[0] = E; + this.clip && $(this.clip, {transform: E}); + } + $(this.node, {transform: this.transformations[join](S)}); + return this; + }; + Element[proto].hide = function () { + !this.removed && (this.node.style.display = "none"); + return this; + }; + Element[proto].show = function () { + !this.removed && (this.node.style.display = ""); + return this; + }; + Element[proto].remove = function () { + if (this.removed) { + return; + } + tear(this, this.paper); + this.node.parentNode.removeChild(this.node); + for (var i in this) { + delete this[i]; + } + this.removed = true; + }; + Element[proto].getBBox = function () { + if (this.removed) { + return this; + } + if (this.type == "path") { + return pathDimensions(this.attrs.path); + } + if (this.node.style.display == "none") { + this.show(); + var hide = true; + } + var bbox = {}; + try { + bbox = this.node.getBBox(); + } catch(e) { + // Firefox 3.0.x plays badly here + } finally { + bbox = bbox || {}; + } + if (this.type == "text") { + bbox = {x: bbox.x, y: Infinity, width: 0, height: 0}; + for (var i = 0, ii = this.node.getNumberOfChars(); i < ii; i++) { + var bb = this.node.getExtentOfChar(i); + (bb.y < bbox.y) && (bbox.y = bb.y); + (bb.y + bb.height - bbox.y > bbox.height) && (bbox.height = bb.y + bb.height - bbox.y); + (bb.x + bb.width - bbox.x > bbox.width) && (bbox.width = bb.x + bb.width - bbox.x); + } + } + hide && this.hide(); + return bbox; + }; + Element[proto].attr = function () { + if (this.removed) { + return this; + } + if (arguments[length] == 0) { + var res = {}; + for (var i in this.attrs) if (this.attrs[has](i)) { + res[i] = this.attrs[i]; + } + this._.rt.deg && (res.rotation = this.rotate()); + (this._.sx != 1 || this._.sy != 1) && (res.scale = this.scale()); + res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; + return res; + } + if (arguments[length] == 1 && R.is(arguments[0], "string")) { + if (arguments[0] == "translation") { + return translate.call(this); + } + if (arguments[0] == "rotation") { + return this.rotate(); + } + if (arguments[0] == "scale") { + return this.scale(); + } + if (arguments[0] == "fill" && this.attrs.fill == "none" && this.attrs.gradient) { + return this.attrs.gradient; + } + return this.attrs[arguments[0]]; + } + if (arguments[length] == 1 && R.is(arguments[0], "array")) { + var values = {}; + for (var j in arguments[0]) if (arguments[0][has](j)) { + values[arguments[0][j]] = this.attrs[arguments[0][j]]; + } + return values; + } + if (arguments[length] == 2) { + var params = {}; + params[arguments[0]] = arguments[1]; + setFillAndStroke(this, params); + } else if (arguments[length] == 1 && R.is(arguments[0], "object")) { + setFillAndStroke(this, arguments[0]); + } + return this; + }; + Element[proto].toFront = function () { + if (this.removed) { + return this; + } + this.node.parentNode[appendChild](this.node); + var svg = this.paper; + svg.top != this && tofront(this, svg); + return this; + }; + Element[proto].toBack = function () { + if (this.removed) { + return this; + } + if (this.node.parentNode.firstChild != this.node) { + this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild); + toback(this, this.paper); + var svg = this.paper; + } + return this; + }; + Element[proto].insertAfter = function (element) { + if (this.removed) { + return this; + } + var node = element.node; + if (node.nextSibling) { + node.parentNode.insertBefore(this.node, node.nextSibling); + } else { + node.parentNode[appendChild](this.node); + } + insertafter(this, element, this.paper); + return this; + }; + Element[proto].insertBefore = function (element) { + if (this.removed) { + return this; + } + var node = element.node; + node.parentNode.insertBefore(this.node, node); + insertbefore(this, element, this.paper); + return this; + }; + var theCircle = function (svg, x, y, r) { + x = round(x); + y = round(y); + var el = $("circle"); + svg.canvas && svg.canvas[appendChild](el); + var res = new Element(el, svg); + res.attrs = {cx: x, cy: y, r: r, fill: "none", stroke: "#000"}; + res.type = "circle"; + $(el, res.attrs); + return res; + }; + var theRect = function (svg, x, y, w, h, r) { + x = round(x); + y = round(y); + var el = $("rect"); + svg.canvas && svg.canvas[appendChild](el); + var res = new Element(el, svg); + res.attrs = {x: x, y: y, width: w, height: h, r: r || 0, rx: r || 0, ry: r || 0, fill: "none", stroke: "#000"}; + res.type = "rect"; + $(el, res.attrs); + return res; + }; + var theEllipse = function (svg, x, y, rx, ry) { + x = round(x); + y = round(y); + var el = $("ellipse"); + svg.canvas && svg.canvas[appendChild](el); + var res = new Element(el, svg); + res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000"}; + res.type = "ellipse"; + $(el, res.attrs); + return res; + }; + var theImage = function (svg, src, x, y, w, h) { + var el = $("image"); + $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: "none"}); + el.setAttributeNS(svg.xlink, "href", src); + svg.canvas && svg.canvas[appendChild](el); + var res = new Element(el, svg); + res.attrs = {x: x, y: y, width: w, height: h, src: src}; + res.type = "image"; + return res; + }; + var theText = function (svg, x, y, text) { + var el = $("text"); + $(el, {x: x, y: y, "text-anchor": "middle"}); + svg.canvas && svg.canvas[appendChild](el); + var res = new Element(el, svg); + res.attrs = {x: x, y: y, "text-anchor": "middle", text: text, font: availableAttrs.font, stroke: "none", fill: "#000"}; + res.type = "text"; + setFillAndStroke(res, res.attrs); + return res; + }; + var setSize = function (width, height) { + this.width = width || this.width; + this.height = height || this.height; + this.canvas[setAttribute]("width", this.width); + this.canvas[setAttribute]("height", this.height); + return this; + }; + var create = function () { + var con = getContainer[apply](null, arguments), + container = con && con.container, + x = con.x, + y = con.y, + width = con.width, + height = con.height; + if (!container) { + throw new Error("SVG container not found."); + } + var cnvs = $("svg"); + width = width || 512; + height = height || 342; + $(cnvs, { + xmlns: "http://www.w3.org/2000/svg", + version: 1.1, + width: width, + height: height + }); + if (container == 1) { + cnvs.style.cssText = "position:absolute;left:" + x + "px;top:" + y + "px"; + doc.body[appendChild](cnvs); + } else { + if (container.firstChild) { + container.insertBefore(cnvs, container.firstChild); + } else { + container[appendChild](cnvs); + } + } + container = new Paper; + container.width = width; + container.height = height; + container.canvas = cnvs; + plugins.call(container, container, R.fn); + container.clear(); + return container; + }; + Paper[proto].clear = function () { + var c = this.canvas; + while (c.firstChild) { + c.removeChild(c.firstChild); + } + this.bottom = this.top = null; + (this.desc = $("desc"))[appendChild](doc.createTextNode("Created with Rapha\xebl")); + c[appendChild](this.desc); + c[appendChild](this.defs = $("defs")); + }; + Paper[proto].remove = function () { + this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas); + for (var i in this) { + this[i] = removed(i); + } + }; + } + + // VML + if (R.vml) { + var path2vml = function (path) { + var total = /[ahqstv]/ig, + command = pathToAbsolute; + (path + E).match(total) && (command = path2curve); + total = /[clmz]/g; + if (command == pathToAbsolute && !(path + E).match(total)) { + var map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"}, + bites = /([clmz]),?([^clmz]*)/gi, + val = /-?[^,\s-]+/g; + var res = (path + E)[rp](bites, function (all, command, args) { + var vals = []; + args[rp](val, function (value) { + vals[push](round(value)); + }); + return map[command] + vals; + }); + return res; + } + var pa = command(path), p, res = [], r; + for (var i = 0, ii = pa[length]; i < ii; i++) { + p = pa[i]; + r = lowerCase.call(pa[i][0]); + r == "z" && (r = "x"); + for (var j = 1, jj = p[length]; j < jj; j++) { + r += round(p[j]) + (j != jj - 1 ? "," : E); + } + res[push](r); + } + return res[join](S); + }; + + R[toString] = function () { + return "Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl " + this.version; + }; + var thePath = function (pathString, VML) { + var g = createNode("group"); + g.style.cssText = "position:absolute;left:0;top:0;width:" + VML.width + "px;height:" + VML.height + "px"; + g.coordsize = VML.coordsize; + g.coordorigin = VML.coordorigin; + var el = createNode("shape"), ol = el.style; + ol.width = VML.width + "px"; + ol.height = VML.height + "px"; + el.coordsize = this.coordsize; + el.coordorigin = this.coordorigin; + g[appendChild](el); + var p = new Element(el, g, VML); + p.isAbsolute = true; + p.type = "path"; + p.path = []; + p.Path = E; + pathString && setFillAndStroke(p, {fill: "none", stroke: "#000", path: pathString}); + VML.canvas[appendChild](g); + return p; + }; + var setFillAndStroke = function (o, params) { + o.attrs = o.attrs || {}; + var node = o.node, + a = o.attrs, + s = node.style, + xy, + res = o; + for (var par in params) if (params[has](par)) { + a[par] = params[par]; + } + params.href && (node.href = params.href); + params.title && (node.title = params.title); + params.target && (node.target = params.target); + params.cursor && (s.cursor = params.cursor); + if (params.path && o.type == "path") { + a.path = params.path; + node.path = path2vml(a.path); + } + if (params.rotation != null) { + o.rotate(params.rotation, true); + } + if (params.translation) { + xy = (params.translation + E)[split](separator); + translate.call(o, xy[0], xy[1]); + if (o._.rt.cx != null) { + o._.rt.cx +=+ xy[0]; + o._.rt.cy +=+ xy[1]; + o.setBox(o.attrs, xy[0], xy[1]); + } + } + if (params.scale) { + xy = (params.scale + E)[split](separator); + o.scale(+xy[0] || 1, +xy[1] || +xy[0] || 1, +xy[2] || null, +xy[3] || null); + } + if ("clip-rect" in params) { + var rect = (params["clip-rect"] + E)[split](separator); + if (rect[length] == 4) { + rect[2] = +rect[2] + (+rect[0]); + rect[3] = +rect[3] + (+rect[1]); + var div = node.clipRect || doc.createElement("div"), + dstyle = div.style, + group = node.parentNode; + dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect); + if (!node.clipRect) { + dstyle.position = "absolute"; + dstyle.top = 0; + dstyle.left = 0; + dstyle.width = o.paper.width + "px"; + dstyle.height = o.paper.height + "px"; + group.parentNode.insertBefore(div, group); + div[appendChild](group); + node.clipRect = div; + } + } + if (!params["clip-rect"]) { + node.clipRect && (node.clipRect.style.clip = E); + } + } + if (o.type == "image" && params.src) { + node.src = params.src; + } + if (o.type == "image" && params.opacity) { + node.filterOpacity = " progid:DXImageTransform.Microsoft.Alpha(opacity=" + (params.opacity * 100) + ")"; + s.filter = (node.filterMatrix || E) + (node.filterOpacity || E); + } + params.font && (s.font = params.font); + params["font-family"] && (s.fontFamily = '"' + params["font-family"][split](",")[0][rp](/^['"]+|['"]+$/g, E) + '"'); + params["font-size"] && (s.fontSize = params["font-size"]); + params["font-weight"] && (s.fontWeight = params["font-weight"]); + params["font-style"] && (s.fontStyle = params["font-style"]); + if (params.opacity != null || + params["stroke-width"] != null || + params.fill != null || + params.stroke != null || + params["stroke-width"] != null || + params["stroke-opacity"] != null || + params["fill-opacity"] != null || + params["stroke-dasharray"] != null || + params["stroke-miterlimit"] != null || + params["stroke-linejoin"] != null || + params["stroke-linecap"] != null) { + node = o.shape || node; + var fill = (node.getElementsByTagName("fill") && node.getElementsByTagName("fill")[0]), + newfill = false; + !fill && (newfill = fill = createNode("fill")); + if ("fill-opacity" in params || "opacity" in params) { + var opacity = ((+a["fill-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1); + opacity < 0 && (opacity = 0); + opacity > 1 && (opacity = 1); + fill.opacity = opacity; + } + params.fill && (fill.on = true); + if (fill.on == null || params.fill == "none") { + fill.on = false; + } + if (fill.on && params.fill) { + var isURL = params.fill.match(ISURL); + if (isURL) { + fill.src = isURL[1]; + fill.type = "tile"; + } else { + fill.color = R.getRGB(params.fill).hex; + fill.src = E; + fill.type = "solid"; + if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || (params.fill + E).charAt() != "r") && addGradientFill(res, params.fill)) { + a.fill = "none"; + a.gradient = params.fill; + } + } + } + newfill && node[appendChild](fill); + var stroke = (node.getElementsByTagName("stroke") && node.getElementsByTagName("stroke")[0]), + newstroke = false; + !stroke && (newstroke = stroke = createNode("stroke")); + if ((params.stroke && params.stroke != "none") || + params["stroke-width"] || + params["stroke-opacity"] != null || + params["stroke-dasharray"] || + params["stroke-miterlimit"] || + params["stroke-linejoin"] || + params["stroke-linecap"]) { + stroke.on = true; + } + (params.stroke == "none" || stroke.on == null || params.stroke == 0 || params["stroke-width"] == 0) && (stroke.on = false); + stroke.on && params.stroke && (stroke.color = R.getRGB(params.stroke).hex); + var opacity = ((+a["stroke-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1), + width = (toFloat(params["stroke-width"]) || 1) * .75; + opacity < 0 && (opacity = 0); + opacity > 1 && (opacity = 1); + params["stroke-width"] == null && (width = a["stroke-width"]); + params["stroke-width"] && (stroke.weight = width); + width && width < 1 && (opacity *= width) && (stroke.weight = 1); + stroke.opacity = opacity; + + params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter"); + stroke.miterlimit = params["stroke-miterlimit"] || 8; + params["stroke-linecap"] && (stroke.endcap = params["stroke-linecap"] == "butt" ? "flat" : params["stroke-linecap"] == "square" ? "square" : "round"); + if (params["stroke-dasharray"]) { + var dasharray = { + "-": "shortdash", + ".": "shortdot", + "-.": "shortdashdot", + "-..": "shortdashdotdot", + ". ": "dot", + "- ": "dash", + "--": "longdash", + "- .": "dashdot", + "--.": "longdashdot", + "--..": "longdashdotdot" + }; + stroke.dashstyle = dasharray[has](params["stroke-dasharray"]) ? dasharray[params["stroke-dasharray"]] : E; + } + newstroke && node[appendChild](stroke); + } + if (res.type == "text") { + var s = res.paper.span.style; + a.font && (s.font = a.font); + a["font-family"] && (s.fontFamily = a["font-family"]); + a["font-size"] && (s.fontSize = a["font-size"]); + a["font-weight"] && (s.fontWeight = a["font-weight"]); + a["font-style"] && (s.fontStyle = a["font-style"]); + res.node.string && (res.paper.span.innerHTML = (res.node.string + E)[rp](/")); + res.W = a.w = res.paper.span.offsetWidth; + res.H = a.h = res.paper.span.offsetHeight; + res.X = a.x; + res.Y = a.y + round(res.H / 2); + + // text-anchor emulationm + switch (a["text-anchor"]) { + case "start": + res.node.style["v-text-align"] = "left"; + res.bbx = round(res.W / 2); + break; + case "end": + res.node.style["v-text-align"] = "right"; + res.bbx = -round(res.W / 2); + break; + default: + res.node.style["v-text-align"] = "center"; + break; + } + } + }; + var addGradientFill = function (o, gradient) { + o.attrs = o.attrs || {}; + var attrs = o.attrs, + fill = o.node.getElementsByTagName("fill"), + type = "linear", + fxfy = ".5 .5"; + o.attrs.gradient = gradient; + gradient = (gradient + E)[rp](radial_gradient, function (all, fx, fy) { + type = "radial"; + if (fx && fy) { + fx = toFloat(fx); + fy = toFloat(fy); + pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5); + fxfy = fx + S + fy; + } + return E; + }); + gradient = gradient[split](/\s*\-\s*/); + if (type == "linear") { + var angle = gradient.shift(); + angle = -toFloat(angle); + if (isNaN(angle)) { + return null; + } + } + var dots = parseDots(gradient); + if (!dots) { + return null; + } + o = o.shape || o.node; + fill = fill[0] || createNode("fill"); + if (dots[length]) { + fill.on = true; + fill.method = "none"; + fill.type = (type == "radial") ? "gradientradial" : "gradient"; + fill.color = dots[0].color; + fill.color2 = dots[dots[length] - 1].color; + var clrs = []; + for (var i = 0, ii = dots[length]; i < ii; i++) { + dots[i].offset && clrs[push](dots[i].offset + S + dots[i].color); + } + fill.colors && (fill.colors.value = clrs[length] ? clrs[join](",") : "0% " + fill.color); + if (type == "radial") { + fill.focus = "100%"; + fill.focussize = fxfy; + fill.focusposition = fxfy; + } else { + fill.angle = (270 - angle) % 360; + } + } + return 1; + }; + var Element = function (node, group, vml) { + var Rotation = 0, + RotX = 0, + RotY = 0, + Scale = 1; + this[0] = node; + this.id = R._oid++; + this.node = node; + node.raphael = this; + this.X = 0; + this.Y = 0; + this.attrs = {}; + this.Group = group; + this.paper = vml; + this._ = { + tx: 0, + ty: 0, + rt: {deg:0}, + sx: 1, + sy: 1 + }; + !vml.bottom && (vml.bottom = this); + this.prev = vml.top; + vml.top && (vml.top.next = this); + vml.top = this; + this.next = null; + }; + Element[proto].rotate = function (deg, cx, cy) { + if (this.removed) { + return this; + } + if (deg == null) { + if (this._.rt.cx) { + return [this._.rt.deg, this._.rt.cx, this._.rt.cy][join](S); + } + return this._.rt.deg; + } + deg = (deg + E)[split](separator); + if (deg[length] - 1) { + cx = toFloat(deg[1]); + cy = toFloat(deg[2]); + } + deg = toFloat(deg[0]); + if (cx != null) { + this._.rt.deg = deg; + } else { + this._.rt.deg += deg; + } + cy == null && (cx = null); + this._.rt.cx = cx; + this._.rt.cy = cy; + this.setBox(this.attrs, cx, cy); + this.Group.style.rotation = this._.rt.deg; + // gradient fix for rotation. TODO + // var fill = (this.shape || this.node).getElementsByTagName("fill"); + // fill = fill[0] || {}; + // var b = ((360 - this._.rt.deg) - 270) % 360; + // !R.is(fill.angle, "undefined") && (fill.angle = b); + return this; + }; + Element[proto].setBox = function (params, cx, cy) { + if (this.removed) { + return this; + } + var gs = this.Group.style, + os = (this.shape && this.shape.style) || this.node.style; + params = params || {}; + for (var i in params) if (params[has](i)) { + this.attrs[i] = params[i]; + } + cx = cx || this._.rt.cx; + cy = cy || this._.rt.cy; + var attr = this.attrs, + x, + y, + w, + h; + switch (this.type) { + case "circle": + x = attr.cx - attr.r; + y = attr.cy - attr.r; + w = h = attr.r * 2; + break; + case "ellipse": + x = attr.cx - attr.rx; + y = attr.cy - attr.ry; + w = attr.rx * 2; + h = attr.ry * 2; + break; + case "rect": + case "image": + x = +attr.x; + y = +attr.y; + w = attr.width || 0; + h = attr.height || 0; + break; + case "text": + this.textpath.v = ["m", round(attr.x), ", ", round(attr.y - 2), "l", round(attr.x) + 1, ", ", round(attr.y - 2)][join](E); + x = attr.x - round(this.W / 2); + y = attr.y - this.H / 2; + w = this.W; + h = this.H; + break; + case "path": + if (!this.attrs.path) { + x = 0; + y = 0; + w = this.paper.width; + h = this.paper.height; + } else { + var dim = pathDimensions(this.attrs.path); + x = dim.x; + y = dim.y; + w = dim.width; + h = dim.height; + } + break; + default: + x = 0; + y = 0; + w = this.paper.width; + h = this.paper.height; + break; + } + cx = (cx == null) ? x + w / 2 : cx; + cy = (cy == null) ? y + h / 2 : cy; + var left = cx - this.paper.width / 2, + top = cy - this.paper.height / 2; + if (this.type == "path" || this.type == "text") { + (gs.left != left + "px") && (gs.left = left + "px"); + (gs.top != top + "px") && (gs.top = top + "px"); + this.X = this.type == "text" ? x : -left; + this.Y = this.type == "text" ? y : -top; + this.W = w; + this.H = h; + (os.left != -left + "px") && (os.left = -left + "px"); + (os.top != -top + "px") && (os.top = -top + "px"); + } else { + (gs.left != left + "px") && (gs.left = left + "px"); + (gs.top != top + "px") && (gs.top = top + "px"); + this.X = x; + this.Y = y; + this.W = w; + this.H = h; + (gs.width != this.paper.width + "px") && (gs.width = this.paper.width + "px"); + (gs.height != this.paper.height + "px") && (gs.height = this.paper.height + "px"); + (os.left != x - left + "px") && (os.left = x - left + "px"); + (os.top != y - top + "px") && (os.top = y - top + "px"); + (os.width != w + "px") && (os.width = w + "px"); + (os.height != h + "px") && (os.height = h + "px"); + var arcsize = (+params.r || 0) / mmin(w, h); + if (this.type == "rect" && this.arcsize.toFixed(4) != arcsize.toFixed(4) && (arcsize || this.arcsize)) { + // We should replace element with the new one + var o = createNode("roundrect"), + a = {}, + i = 0, + ii = this.events && this.events[length]; + o.arcsize = arcsize; + o.raphael = this; + this.Group[appendChild](o); + this.Group.removeChild(this.node); + this[0] = this.node = o; + this.arcsize = arcsize; + for (var i in attr) { + a[i] = attr[i]; + } + delete a.scale; + this.attr(a); + if (this.events) for (; i < ii; i++) { + this.events[i].unbind = addEvent(this.node, this.events[i].name, this.events[i].f, this); + } + } + } + }; + Element[proto].hide = function () { + !this.removed && (this.Group.style.display = "none"); + return this; + }; + Element[proto].show = function () { + !this.removed && (this.Group.style.display = "block"); + return this; + }; + Element[proto].getBBox = function () { + if (this.removed) { + return this; + } + if (this.type == "path") { + return pathDimensions(this.attrs.path); + } + return { + x: this.X + (this.bbx || 0), + y: this.Y, + width: this.W, + height: this.H + }; + }; + Element[proto].remove = function () { + if (this.removed) { + return; + } + tear(this, this.paper); + this.node.parentNode.removeChild(this.node); + this.Group.parentNode.removeChild(this.Group); + this.shape && this.shape.parentNode.removeChild(this.shape); + for (var i in this) { + delete this[i]; + } + this.removed = true; + }; + Element[proto].attr = function () { + if (this.removed) { + return this; + } + if (arguments[length] == 0) { + var res = {}; + for (var i in this.attrs) if (this.attrs[has](i)) { + res[i] = this.attrs[i]; + } + this._.rt.deg && (res.rotation = this.rotate()); + (this._.sx != 1 || this._.sy != 1) && (res.scale = this.scale()); + res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; + return res; + } + if (arguments[length] == 1 && R.is(arguments[0], "string")) { + if (arguments[0] == "translation") { + return translate.call(this); + } + if (arguments[0] == "rotation") { + return this.rotate(); + } + if (arguments[0] == "scale") { + return this.scale(); + } + if (arguments[0] == "fill" && this.attrs.fill == "none" && this.attrs.gradient) { + return this.attrs.gradient; + } + return this.attrs[arguments[0]]; + } + if (this.attrs && arguments[length] == 1 && R.is(arguments[0], "array")) { + var values = {}; + for (var i = 0, ii = arguments[0][length]; i < ii; i++) { + values[arguments[0][i]] = this.attrs[arguments[0][i]]; + }; + return values; + } + var params; + if (arguments[length] == 2) { + params = {}; + params[arguments[0]] = arguments[1]; + } + arguments[length] == 1 && R.is(arguments[0], "object") && (params = arguments[0]); + if (params) { + if (params.text && this.type == "text") { + this.node.string = params.text; + } + setFillAndStroke(this, params); + if (params.gradient && (({circle: 1, ellipse: 1})[has](this.type) || (params.gradient + E).charAt() != "r")) { + addGradientFill(this, params.gradient); + } + (this.type != "path" || this._.rt.deg) && this.setBox(this.attrs); + } + return this; + }; + Element[proto].toFront = function () { + !this.removed && this.Group.parentNode[appendChild](this.Group); + this.paper.top != this && tofront(this, this.paper); + return this; + }; + Element[proto].toBack = function () { + if (this.removed) { + return this; + } + if (this.Group.parentNode.firstChild != this.Group) { + this.Group.parentNode.insertBefore(this.Group, this.Group.parentNode.firstChild); + toback(this, this.paper); + } + return this; + }; + Element[proto].insertAfter = function (element) { + if (this.removed) { + return this; + } + if (element.Group.nextSibling) { + element.Group.parentNode.insertBefore(this.Group, element.Group.nextSibling); + } else { + element.Group.parentNode[appendChild](this.Group); + } + insertafter(this, element, this.paper); + return this; + }; + Element[proto].insertBefore = function (element) { + if (this.removed) { + return this; + } + element.Group.parentNode.insertBefore(this.Group, element.Group); + insertbefore(this, element, this.paper); + return this; + }; + + var theCircle = function (vml, x, y, r) { + var g = createNode("group"), + o = createNode("oval"), + ol = o.style; + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; + g.coordsize = vml.coordsize; + g.coordorigin = vml.coordorigin; + g[appendChild](o); + var res = new Element(o, g, vml); + res.type = "circle"; + setFillAndStroke(res, {stroke: "#000", fill: "none"}); + res.attrs.cx = x; + res.attrs.cy = y; + res.attrs.r = r; + res.setBox({x: x - r, y: y - r, width: r * 2, height: r * 2}); + vml.canvas[appendChild](g); + return res; + }, + theRect = function (vml, x, y, w, h, r) { + var g = createNode("group"), + o = createNode("roundrect"), + arcsize = (+r || 0) / (mmin(w, h)); + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; + g.coordsize = vml.coordsize; + g.coordorigin = vml.coordorigin; + g[appendChild](o); + o.arcsize = arcsize; + var res = new Element(o, g, vml); + res.type = "rect"; + setFillAndStroke(res, {stroke: "#000"}); + res.arcsize = arcsize; + res.setBox({x: x, y: y, width: w, height: h, r: r}); + vml.canvas[appendChild](g); + return res; + }, + theEllipse = function (vml, x, y, rx, ry) { + var g = createNode("group"), + o = createNode("oval"), + ol = o.style; + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; + g.coordsize = vml.coordsize; + g.coordorigin = vml.coordorigin; + g[appendChild](o); + var res = new Element(o, g, vml); + res.type = "ellipse"; + setFillAndStroke(res, {stroke: "#000"}); + res.attrs.cx = x; + res.attrs.cy = y; + res.attrs.rx = rx; + res.attrs.ry = ry; + res.setBox({x: x - rx, y: y - ry, width: rx * 2, height: ry * 2}); + vml.canvas[appendChild](g); + return res; + }, + theImage = function (vml, src, x, y, w, h) { + var g = createNode("group"), + o = createNode("image"), + ol = o.style; + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; + g.coordsize = vml.coordsize; + g.coordorigin = vml.coordorigin; + o.src = src; + g[appendChild](o); + var res = new Element(o, g, vml); + res.type = "image"; + res.attrs.src = src; + res.attrs.x = x; + res.attrs.y = y; + res.attrs.w = w; + res.attrs.h = h; + res.setBox({x: x, y: y, width: w, height: h}); + vml.canvas[appendChild](g); + return res; + }, + theText = function (vml, x, y, text) { + var g = createNode("group"), + el = createNode("shape"), + ol = el.style, + path = createNode("path"), + ps = path.style, + o = createNode("textpath"); + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; + g.coordsize = vml.coordsize; + g.coordorigin = vml.coordorigin; + path.v = R.format("m{0},{1}l{2},{1}", round(x), round(y), round(x) + 1); + path.textpathok = true; + ol.width = vml.width; + ol.height = vml.height; + o.string = text + E; + o.on = true; + el[appendChild](o); + el[appendChild](path); + g[appendChild](el); + var res = new Element(o, g, vml); + res.shape = el; + res.textpath = path; + res.type = "text"; + res.attrs.text = text; + res.attrs.x = x; + res.attrs.y = y; + res.attrs.w = 1; + res.attrs.h = 1; + setFillAndStroke(res, {font: availableAttrs.font, stroke: "none", fill: "#000"}); + res.setBox(); + vml.canvas[appendChild](g); + return res; + }, + setSize = function (width, height) { + var cs = this.canvas.style; + width == +width && (width += "px"); + height == +height && (height += "px"); + cs.width = width; + cs.height = height; + cs.clip = "rect(0 " + width + " " + height + " 0)"; + return this; + }, + createNode; + doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"); + try { + !doc.namespaces.rvml && doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"); + createNode = function (tagName) { + return doc.createElement(''); + }; + } catch (e) { + createNode = function (tagName) { + return doc.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">'); + }; + } + var create = function () { + var con = getContainer[apply](null, arguments), + container = con.container, + height = con.height, + s, + width = con.width, + x = con.x, + y = con.y; + if (!container) { + throw new Error("VML container not found."); + } + var res = new Paper, + c = res.canvas = doc.createElement("div"), + cs = c.style; + width = width || 512; + height = height || 342; + width == +width && (width += "px"); + height == +height && (height += "px"); + res.width = 1e3; + res.height = 1e3; + res.coordsize = "1000 1000"; + res.coordorigin = "0 0"; + res.span = doc.createElement("span"); + res.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; + c[appendChild](res.span); + cs.cssText = R.format("width:{0};height:{1};position:absolute;clip:rect(0 {0} {1} 0);overflow:hidden", width, height); + if (container == 1) { + doc.body[appendChild](c); + cs.left = x + "px"; + cs.top = y + "px"; + } else { + container.style.width = width; + container.style.height = height; + if (container.firstChild) { + container.insertBefore(c, container.firstChild); + } else { + container[appendChild](c); + } + } + plugins.call(res, res, R.fn); + return res; + }; + Paper[proto].clear = function () { + this.canvas.innerHTML = E; + this.span = doc.createElement("span"); + this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; + this.canvas[appendChild](this.span); + this.bottom = this.top = null; + }; + Paper[proto].remove = function () { + this.canvas.parentNode.removeChild(this.canvas); + for (var i in this) { + this[i] = removed(i); + } + }; + } + + // rest + // Safari or Chrome (WebKit) rendering bug workaround method + if ((/^Apple|^Google/).test(navigator.vendor) && !(navigator.userAgent.indexOf("Version/4.0") + 1)) { + Paper[proto].safari = function () { + var rect = this.rect(-99, -99, this.width + 99, this.height + 99); + setTimeout(function () {rect.remove();}); + }; + } else { + Paper[proto].safari = function () {}; + } + + // Events + var addEvent = (function () { + if (doc.addEventListener) { + return function (obj, type, fn, element) { + var f = function (e) { + return fn.call(element, e); + }; + obj.addEventListener(type, f, false); + return function () { + obj.removeEventListener(type, f, false); + return true; + }; + }; + } else if (doc.attachEvent) { + return function (obj, type, fn, element) { + var f = function (e) { + return fn.call(element, e || win.event); + }; + obj.attachEvent("on" + type, f); + var detacher = function () { + obj.detachEvent("on" + type, f); + return true; + }; + return detacher; + }; + } + })(); + for (var i = events[length]; i--;) { + (function (eventName) { + Element[proto][eventName] = function (fn) { + if (R.is(fn, "function")) { + this.events = this.events || []; + this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node, eventName, fn, this)}); + } + return this; + }; + Element[proto]["un" + eventName] = function (fn) { + var events = this.events, + l = events[length]; + while (l--) if (events[l].name == eventName && events[l].f == fn) { + events[l].unbind(); + events.splice(l, 1); + !events.length && delete this.events; + return this; + } + return this; + }; + })(events[i]); + } + Element[proto].hover = function (f_in, f_out) { + return this.mouseover(f_in).mouseout(f_out); + }; + Element[proto].unhover = function (f_in, f_out) { + return this.unmouseover(f_in).unmouseout(f_out); + }; + Paper[proto].circle = function (x, y, r) { + return theCircle(this, x || 0, y || 0, r || 0); + }; + Paper[proto].rect = function (x, y, w, h, r) { + return theRect(this, x || 0, y || 0, w || 0, h || 0, r || 0); + }; + Paper[proto].ellipse = function (x, y, rx, ry) { + return theEllipse(this, x || 0, y || 0, rx || 0, ry || 0); + }; + Paper[proto].path = function (pathString) { + pathString && !R.is(pathString, "string") && !R.is(pathString[0], "array") && (pathString += E); + return thePath(R.format[apply](R, arguments), this); + }; + Paper[proto].image = function (src, x, y, w, h) { + return theImage(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0); + }; + Paper[proto].text = function (x, y, text) { + return theText(this, x || 0, y || 0, text || E); + }; + Paper[proto].set = function (itemsArray) { + arguments[length] > 1 && (itemsArray = Array[proto].splice.call(arguments, 0, arguments[length])); + return new Set(itemsArray); + }; + Paper[proto].setSize = setSize; + Paper[proto].top = Paper[proto].bottom = null; + Paper[proto].raphael = R; + function x_y() { + return this.x + S + this.y; + }; + Element[proto].scale = function (x, y, cx, cy) { + if (x == null && y == null) { + return { + x: this._.sx, + y: this._.sy, + toString: x_y + }; + } + y = y || x; + !+y && (y = x); + var dx, + dy, + dcx, + dcy, + a = this.attrs; + if (x != 0) { + var bb = this.getBBox(), + rcx = bb.x + bb.width / 2, + rcy = bb.y + bb.height / 2, + kx = x / this._.sx, + ky = y / this._.sy; + cx = (+cx || cx == 0) ? cx : rcx; + cy = (+cy || cy == 0) ? cy : rcy; + var dirx = ~~(x / math.abs(x)), + diry = ~~(y / math.abs(y)), + s = this.node.style, + ncx = cx + (rcx - cx) * kx, + ncy = cy + (rcy - cy) * ky; + switch (this.type) { + case "rect": + case "image": + var neww = a.width * dirx * kx, + newh = a.height * diry * ky; + this.attr({ + height: newh, + r: a.r * mmin(dirx * kx, diry * ky), + width: neww, + x: ncx - neww / 2, + y: ncy - newh / 2 + }); + break; + case "circle": + case "ellipse": + this.attr({ + rx: a.rx * dirx * kx, + ry: a.ry * diry * ky, + r: a.r * mmin(dirx * kx, diry * ky), + cx: ncx, + cy: ncy + }); + break; + case "path": + var path = pathToRelative(a.path), + skip = true; + for (var i = 0, ii = path[length]; i < ii; i++) { + var p = path[i], + j, + P0 = upperCase.call(p[0]); + if (P0 == "M" && skip) { + continue; + } else { + skip = false; + } + if (P0 == "A") { + p[path[i][length] - 2] *= kx; + p[path[i][length] - 1] *= ky; + p[1] *= dirx * kx; + p[2] *= diry * ky; + p[5] = +(dirx + diry ? !!+p[5] : !+p[5]); + } else if (P0 == "H") { + for (j = 1, jj = p[length]; j < jj; j++) { + p[j] *= kx; + } + } else if (P0 == "V") { + for (j = 1, jj = p[length]; j < jj; j++) { + p[j] *= ky; + } + } else { + for (j = 1, jj = p[length]; j < jj; j++) { + p[j] *= (j % 2) ? kx : ky; + } + } + } + var dim2 = pathDimensions(path), + dx = ncx - dim2.x - dim2.width / 2, + dy = ncy - dim2.y - dim2.height / 2; + path[0][1] += dx; + path[0][2] += dy; + this.attr({path: path}); + break; + } + if (this.type in {text: 1, image:1} && (dirx != 1 || diry != 1)) { + if (this.transformations) { + this.transformations[2] = "scale("[concat](dirx, ",", diry, ")"); + this.node[setAttribute]("transform", this.transformations[join](S)); + dx = (dirx == -1) ? -a.x - (neww || 0) : a.x; + dy = (diry == -1) ? -a.y - (newh || 0) : a.y; + this.attr({x: dx, y: dy}); + a.fx = dirx - 1; + a.fy = diry - 1; + } else { + this.node.filterMatrix = " progid:DXImageTransform.Microsoft.Matrix(M11="[concat](dirx, + ", M12=0, M21=0, M22=", diry, + ", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')"); + s.filter = (this.node.filterMatrix || E) + (this.node.filterOpacity || E); + } + } else { + if (this.transformations) { + this.transformations[2] = E; + this.node[setAttribute]("transform", this.transformations[join](S)); + a.fx = 0; + a.fy = 0; + } else { + this.node.filterMatrix = E; + s.filter = (this.node.filterMatrix || E) + (this.node.filterOpacity || E); + } + } + a.scale = [x, y, cx, cy][join](S); + this._.sx = x; + this._.sy = y; + } + return this; + }; + Element[proto].clone = function () { + var attr = this.attr(); + delete attr.scale; + delete attr.translation; + return this.paper[this.type]().attr(attr); + }; + var getLengthFactory = function (istotal, subpath) { + return function (path, length, onlystart) { + path = path2curve(path); + var x, y, p, l, sp = "", subpaths = {}, point, + len = 0; + for (var i = 0, ii = path.length; i < ii; i++) { + p = path[i]; + if (p[0] == "M") { + x = +p[1]; + y = +p[2]; + } else { + l = segmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); + if (len + l > length) { + if (subpath && !subpaths.start) { + point = R.findDotsAtSegment(x, y, p[1], p[2], p[3], p[4], p[5], p[6], (length - len) / l); + sp += ["C", point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y]; + if (onlystart) { + return sp; + } + subpaths.start = sp; + sp = ["M", point.x, point.y, "C", point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]][join](); + len += l; + x = +p[5]; + y = +p[6]; + continue; + } + if (!istotal && !subpath) { + point = R.findDotsAtSegment(x, y, p[1], p[2], p[3], p[4], p[5], p[6], (length - len) / l); + return {x: point.x, y: point.y, alpha: point.alpha}; + } + } + len += l; + x = +p[5]; + y = +p[6]; + } + sp += p; + } + subpaths.end = sp; + point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[1], p[2], p[3], p[4], p[5], p[6], 1); + point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha}); + return point; + }; + }, + segmentLength = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { + var old = {x: 0, y: 0}, + len = 0; + for (var i = 0; i < 1.01; i+=.01) { + var dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, i); + i && (len += math.sqrt(pow(old.x - dot.x, 2) + pow(old.y - dot.y, 2))); + old = dot; + } + return len; + }); + var getTotalLength = getLengthFactory(1), + getPointAtLength = getLengthFactory(), + getSubpathsAtLength = getLengthFactory(0, 1); + Element[proto].getTotalLength = function () { + if (this.type != "path") return; + return getTotalLength(this.attrs.path); + }; + Element[proto].getPointAtLength = function (length) { + if (this.type != "path") return; + return getPointAtLength(this.attrs.path, length); + }; + Element[proto].getSubpath = function (from, to) { + if (this.type != "path") return; + var a = getSubpathsAtLength(this.attrs.path, to, 1); + return from ? getSubpathsAtLength(a, from).end : a; + }; + + // animation easing formulas + R.easing_formulas = { + linear: function (n) { + return n; + }, + "<": function (n) { + return pow(n, 3); + }, + ">": function (n) { + return pow(n - 1, 3) + 1; + }, + "<>": function (n) { + n = n * 2; + if (n < 1) { + return pow(n, 3) / 2; + } + n -= 2; + return (pow(n, 3) + 2) / 2; + }, + backIn: function (n) { + var s = 1.70158; + return n * n * ((s + 1) * n - s); + }, + backOut: function (n) { + n = n - 1; + var s = 1.70158; + return n * n * ((s + 1) * n + s) + 1; + }, + elastic: function (n) { + if (n == 0 || n == 1) { + return n; + } + var p = .3, + s = p / 4; + return pow(2, -10 * n) * math.sin((n - s) * (2 * math.PI) / p) + 1; + }, + bounce: function (n) { + var s = 7.5625, + p = 2.75, + l; + if (n < (1 / p)) { + l = s * n * n; + } else { + if (n < (2 / p)) { + n -= (1.5 / p); + l = s * n * n + .75; + } else { + if (n < (2.5 / p)) { + n -= (2.25 / p); + l = s * n * n + .9375; + } else { + n -= (2.625 / p); + l = s * n * n + .984375; + } + } + } + return l; + } + }; + + var animationElements = {length : 0}, + animation = function () { + var Now = +new Date; + for (var l in animationElements) if (l != "length" && animationElements[has](l)) { + var e = animationElements[l]; + if (e.stop) { + delete animationElements[l]; + animationElements[length]--; + continue; + } + var time = Now - e.start, + ms = e.ms, + easing = e.easing, + from = e.from, + diff = e.diff, + to = e.to, + t = e.t, + prev = e.prev || 0, + that = e.el, + callback = e.callback, + set = {}, + now; + if (time < ms) { + var pos = R.easing_formulas[easing] ? R.easing_formulas[easing](time / ms) : time / ms; + for (var attr in from) if (from[has](attr)) { + switch (availableAnimAttrs[attr]) { + case "along": + now = pos * ms * diff[attr]; + to.back && (now = to.len - now); + var point = getPointAtLength(to[attr], now); + that.translate(diff.sx - diff.x || 0, diff.sy - diff.y || 0); + diff.x = point.x; + diff.y = point.y; + that.translate(point.x - diff.sx, point.y - diff.sy); + to.rot && that.rotate(diff.r + point.alpha, point.x, point.y); + break; + case "number": + now = +from[attr] + pos * ms * diff[attr]; + break; + case "colour": + now = "rgb(" + [ + upto255(round(from[attr].r + pos * ms * diff[attr].r)), + upto255(round(from[attr].g + pos * ms * diff[attr].g)), + upto255(round(from[attr].b + pos * ms * diff[attr].b)) + ][join](",") + ")"; + break; + case "path": + now = []; + for (var i = 0, ii = from[attr][length]; i < ii; i++) { + now[i] = [from[attr][i][0]]; + for (var j = 1, jj = from[attr][i][length]; j < jj; j++) { + now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j]; + } + now[i] = now[i][join](S); + } + now = now[join](S); + break; + case "csv": + switch (attr) { + case "translation": + var x = diff[attr][0] * (time - prev), + y = diff[attr][1] * (time - prev); + t.x += x; + t.y += y; + now = x + S + y; + break; + case "rotation": + now = +from[attr][0] + pos * ms * diff[attr][0]; + from[attr][1] && (now += "," + from[attr][1] + "," + from[attr][2]); + break; + case "scale": + now = [+from[attr][0] + pos * ms * diff[attr][0], +from[attr][1] + pos * ms * diff[attr][1], (2 in to[attr] ? to[attr][2] : E), (3 in to[attr] ? to[attr][3] : E)][join](S); + break; + case "clip-rect": + now = []; + var i = 4; + while (i--) { + now[i] = +from[attr][i] + pos * ms * diff[attr][i]; + } + break; + } + break; + } + set[attr] = now; + } + that.attr(set); + that._run && that._run.call(that); + } else { + if (to.along) { + var point = getPointAtLength(to.along, to.len * !to.back); + that.translate(diff.sx - (diff.x || 0) + point.x - diff.sx, diff.sy - (diff.y || 0) + point.y - diff.sy); + to.rot && that.rotate(diff.r + point.alpha, point.x, point.y); + } + (t.x || t.y) && that.translate(-t.x, -t.y); + to.scale && (to.scale = to.scale + E); + that.attr(to); + delete animationElements[l]; + animationElements[length]--; + that.in_animation = null; + R.is(callback, "function") && callback.call(that); + } + e.prev = time; + } + R.svg && that && that.paper.safari(); + animationElements[length] && setTimeout(animation); + }, + upto255 = function (color) { + return color > 255 ? 255 : (color < 0 ? 0 : color); + }, + translate = function (x, y) { + if (x == null) { + return {x: this._.tx, y: this._.ty, toString: x_y}; + } + this._.tx += +x; + this._.ty += +y; + switch (this.type) { + case "circle": + case "ellipse": + this.attr({cx: +x + this.attrs.cx, cy: +y + this.attrs.cy}); + break; + case "rect": + case "image": + case "text": + this.attr({x: +x + this.attrs.x, y: +y + this.attrs.y}); + break; + case "path": + var path = pathToRelative(this.attrs.path); + path[0][1] += +x; + path[0][2] += +y; + this.attr({path: path}); + break; + } + return this; + }; + Element[proto].animateWith = function (element, params, ms, easing, callback) { + animationElements[element.id] && (params.start = animationElements[element.id].start); + return this.animate(params, ms, easing, callback); + }; + Element[proto].animateAlong = along(); + Element[proto].animateAlongBack = along(1); + function along(isBack) { + return function (path, ms, rotate, callback) { + var params = {back: isBack}; + R.is(rotate, "function") ? (callback = rotate) : (params.rot = rotate); + path && path.constructor == Element && (path = path.attrs.path); + path && (params.along = path); + return this.animate(params, ms, callback); + }; + } + Element[proto].onAnimation = function (f) { + this._run = f || 0; + return this; + }; + Element[proto].animate = function (params, ms, easing, callback) { + if (R.is(easing, "function") || !easing) { + callback = easing || null; + } + var from = {}, + to = {}, + diff = {}; + for (var attr in params) if (params[has](attr)) { + if (availableAnimAttrs[has](attr)) { + from[attr] = this.attr(attr); + (from[attr] == null) && (from[attr] = availableAttrs[attr]); + to[attr] = params[attr]; + switch (availableAnimAttrs[attr]) { + case "along": + var len = getTotalLength(params[attr]), + point = getPointAtLength(params[attr], len * !!params.back), + bb = this.getBBox(); + diff[attr] = len / ms; + diff.tx = bb.x; + diff.ty = bb.y; + diff.sx = point.x; + diff.sy = point.y; + to.rot = params.rot; + to.back = params.back; + to.len = len; + params.rot && (diff.r = toFloat(this.rotate()) || 0); + break; + case "number": + diff[attr] = (to[attr] - from[attr]) / ms; + break; + case "colour": + from[attr] = R.getRGB(from[attr]); + var toColour = R.getRGB(to[attr]); + diff[attr] = { + r: (toColour.r - from[attr].r) / ms, + g: (toColour.g - from[attr].g) / ms, + b: (toColour.b - from[attr].b) / ms + }; + break; + case "path": + var pathes = path2curve(from[attr], to[attr]); + from[attr] = pathes[0]; + var toPath = pathes[1]; + diff[attr] = []; + for (var i = 0, ii = from[attr][length]; i < ii; i++) { + diff[attr][i] = [0]; + for (var j = 1, jj = from[attr][i][length]; j < jj; j++) { + diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms; + } + } + break; + case "csv": + var values = (params[attr] + E)[split](separator), + from2 = (from[attr] + E)[split](separator); + switch (attr) { + case "translation": + from[attr] = [0, 0]; + diff[attr] = [values[0] / ms, values[1] / ms]; + break; + case "rotation": + from[attr] = (from2[1] == values[1] && from2[2] == values[2]) ? from2 : [0, values[1], values[2]]; + diff[attr] = [(values[0] - from[attr][0]) / ms, 0, 0]; + break; + case "scale": + params[attr] = values; + from[attr] = (from[attr] + E)[split](separator); + diff[attr] = [(values[0] - from[attr][0]) / ms, (values[1] - from[attr][1]) / ms, 0, 0]; + break; + case "clip-rect": + from[attr] = (from[attr] + E)[split](separator); + diff[attr] = []; + var i = 4; + while (i--) { + diff[attr][i] = (values[i] - from[attr][i]) / ms; + } + break; + } + to[attr] = values; + } + } + } + this.stop(); + this.in_animation = 1; + animationElements[this.id] = { + start: params.start || +new Date, + ms: ms, + easing: easing, + from: from, + diff: diff, + to: to, + el: this, + callback: callback, + t: {x: 0, y: 0} + }; + ++animationElements[length] == 1 && animation(); + return this; + }; + Element[proto].stop = function () { + animationElements[this.id] && animationElements[length]--; + delete animationElements[this.id]; + return this; + }; + Element[proto].translate = function (x, y) { + return this.attr({translation: x + " " + y}); + }; + Element[proto][toString] = function () { + return "Rapha\xebl\u2019s object"; + }; + R.ae = animationElements; + + // Set + var Set = function (items) { + this.items = []; + this[length] = 0; + if (items) { + for (var i = 0, ii = items[length]; i < ii; i++) { + if (items[i] && (items[i].constructor == Element || items[i].constructor == Set)) { + this[this.items[length]] = this.items[this.items[length]] = items[i]; + this[length]++; + } + } + } + }; + Set[proto][push] = function () { + var item, + len; + for (var i = 0, ii = arguments[length]; i < ii; i++) { + item = arguments[i]; + if (item && (item.constructor == Element || item.constructor == Set)) { + len = this.items[length]; + this[len] = this.items[len] = item; + this[length]++; + } + } + return this; + }; + Set[proto].pop = function () { + delete this[this[length]--]; + return this.items.pop(); + }; + for (var method in Element[proto]) if (Element[proto][has](method)) { + Set[proto][method] = (function (methodname) { + return function () { + for (var i = 0, ii = this.items[length]; i < ii; i++) { + this.items[i][methodname][apply](this.items[i], arguments); + } + return this; + }; + })(method); + } + Set[proto].attr = function (name, value) { + if (name && R.is(name, "array") && R.is(name[0], "object")) { + for (var j = 0, jj = name[length]; j < jj; j++) { + this.items[j].attr(name[j]); + } + } else { + for (var i = 0, ii = this.items[length]; i < ii; i++) { + this.items[i].attr[apply](this.items[i], arguments); + } + } + return this; + }; + Set[proto].animate = function (params, ms, easing, callback) { + (R.is(easing, "function") || !easing) && (callback = easing || null); + var len = this.items[length], + i = len, + set = this, + collector; + callback && (collector = function () { + !--len && callback.call(set); + }); + this.items[--i].animate(params, ms, easing || collector, collector); + while (i--) { + this.items[i].animateWith(this.items[len - 1], params, ms, easing || collector, collector); + } + return this; + }; + Set[proto].insertAfter = function (el) { + var i = this.items[length]; + while (i--) { + this.items[i].insertAfter(el); + } + return this; + }; + Set[proto].getBBox = function () { + var x = [], + y = [], + w = [], + h = []; + for (var i = this.items[length]; i--;) { + var box = this.items[i].getBBox(); + x[push](box.x); + y[push](box.y); + w[push](box.x + box.width); + h[push](box.y + box.height); + } + x = mmin[apply](0, x); + y = mmin[apply](0, y); + return { + x: x, + y: y, + width: mmax[apply](0, w) - x, + height: mmax[apply](0, h) - y + }; + }; + + R.registerFont = function (font) { + if (!font.face) { + return font; + } + this.fonts = this.fonts || {}; + var fontcopy = { + w: font.w, + face: {}, + glyphs: {} + }, + family = font.face["font-family"]; + for (var prop in font.face) if (font.face[has](prop)) { + fontcopy.face[prop] = font.face[prop]; + } + if (this.fonts[family]) { + this.fonts[family][push](fontcopy); + } else { + this.fonts[family] = [fontcopy]; + } + if (!font.svg) { + fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10); + for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) { + var path = font.glyphs[glyph]; + fontcopy.glyphs[glyph] = { + w: path.w, + k: {}, + d: path.d && "M" + path.d[rp](/[mlcxtrv]/g, function (command) { + return {l: "L", c: "C", x: "z", t: "m", r: "l", v: "c"}[command] || "M"; + }) + "z" + }; + if (path.k) { + for (var k in path.k) if (path[has](k)) { + fontcopy.glyphs[glyph].k[k] = path.k[k]; + } + } + } + } + return font; + }; + Paper[proto].getFont = function (family, weight, style, stretch) { + stretch = stretch || "normal"; + style = style || "normal"; + weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400; + var font = R.fonts[family]; + if (!font) { + var name = new RegExp("(^|\\s)" + family[rp](/[^\w\d\s+!~.:_-]/g, E) + "(\\s|$)", "i"); + for (var fontName in R.fonts) if (R.fonts[has](fontName)) { + if (name.test(fontName)) { + font = R.fonts[fontName]; + break; + } + } + } + var thefont; + if (font) { + for (var i = 0, ii = font[length]; i < ii; i++) { + thefont = font[i]; + if (thefont.face["font-weight"] == weight && (thefont.face["font-style"] == style || !thefont.face["font-style"]) && thefont.face["font-stretch"] == stretch) { + break; + } + } + } + return thefont; + }; + Paper[proto].print = function (x, y, string, font, size, origin) { + origin = origin || "middle"; // baseline|middle + var out = this.set(), + letters = (string + E)[split](E), + shift = 0, + path = E, + scale; + R.is(font, "string") && (font = this.getFont(font)); + if (font) { + scale = (size || 16) / font.face["units-per-em"]; + var bb = font.face.bbox.split(separator), + top = +bb[0], + height = +bb[1] + (origin == "baseline" ? bb[3] - bb[1] + (+font.face.descent) : (bb[3] - bb[1]) / 2); + for (var i = 0, ii = letters[length]; i < ii; i++) { + var prev = i && font.glyphs[letters[i - 1]] || {}, + curr = font.glyphs[letters[i]]; + shift += i ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) : 0; + curr && curr.d && out[push](this.path(curr.d).attr({fill: "#000", stroke: "none", translation: [shift, 0]})); + } + out.scale(scale, scale, top, height).translate(x - top, y - height); + } + return out; + }; + + R.format = function (token) { + var args = R.is(arguments[1], "array") ? [0][concat](arguments[1]) : arguments, + rg = /\{(\d+)\}/g; + token && R.is(token, "string") && args[length] - 1 && (token = token[rp](rg, function (str, i) { + return args[++i] == null ? E : args[i]; + })); + return token || E; + }; + R.ninja = function () { + var r = win.Raphael, u; + if (oldRaphael.was) { + win.Raphael = oldRaphael.is; + } else { + try { + delete win.Raphael; + } catch (e) { + win.Raphael = u; + } + } + return r; + }; + R.el = Element[proto]; + return R; +})(); diff -r bff96abdddfa -r 26c2b3ad21c7 buy_files/sexy.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buy_files/sexy.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,262 @@ + + +div#whole +{ + width: 1100px ; + margin-top:25px; + margin-left: auto ; + margin-right: auto ; + clear: right; +} + + + + + +/* stuff dealing with the templates on the left */ + + +div#i_templates +{ + +color: white; +background-color:#000000; +text-align: left; +font: bold 32px "arial", "sans-serif"; + +padding:10px; +padding-top: 15px; +border-style:solid; +border-color:#ffffff; +border-width:1px; + +float: left; +width: auto; +margin-right: 7px; + +} + +input#template1,input#template2,input#template3,input#template4, input#clear_acr, input#green_acr +{ +padding:3px; +border-width:1px; +} + + +/*************************************************************************/ + + +/* Display in the middle */ + +div#centerbox +{ + +float:left; +margin-top:0px; +margin-left:10px; +margin-right:10px; +width:515px; +padding:5px; +background-color:#000; +} + + +div#disp_contain +{ +position: absolute; +z-index:10; +top:73px; + +} + +div#display +{ +position: absolute; +top:73px; +background-color:#000000; +z-index: 5; +} + +div#pokedex +{ +position: absolute; +width: 453px; +top: 415px; +padding : 30px; +clear:right; +float:none; +background-color:#000000; +border-style:solid; +border-color:#ffffff; +border-width:1px; + +font: bold 16px "helvetica","arial", "sans-serif"; +color: white; +} + + +/*************************************************************************/ + + + + + + + + +/* the "input your information form on the right */ + + +div#i_inputbox +{ + +padding-left:10px; +padding-top:10px; +padding-right:0px; +border-style:solid; +border-color:#ffffff; +border-width:1px; +padding-bottom:10px; + +font: bold 14px "helvetica","arial", "sans-serif"; +color: white; + +float:left; +width:240px; +clear:right; +margin-left: 7px; + +background-color:#000000; +} + +div.descript +{ +font: bold 16px "helvetica","arial", "sans-serif"; +color: white; +margin-bottom: 15px; +background-color: #000000; +} + + +/*************************************************************************/ + + + +/* try to make teh copyright appear correctly on the bottom*/ + + +div#copyright +{ +position:relative; +font: bold 16px "helvetica","arial", "sans-serif"; +color: white; +margin-left:auto; +margin-right: auto; +clear:left; + +} + +/*************************************************************************/ + + + + +h1 +{ +padding: 0px; +margin:0px; +margin-bottom: 10px; +color: white; +background-color:#000000; +text-align: center; +font: bold 32px "arial", "sans-serif"; +} + + +/* stuff for the paypal button */ + +div#buttoncon +{ +position:relative; +} + + +div#vanish +{ +position:absolute; +top:0px; +left:0px; +z-index:2; +} + +div#crush +{ +position:relative; +left:8px; +top:0px; +z-index:1; +} + +/* end paypal button stuff */ + + +/*stupid stuff for the headers and whatnot */ + + +div.ttyl +{ +padding-top: 0px; +padding-left: 10px; + +} +div.ttyls +{ +padding-top:6px; +padding-left: 0px; + +} + +div#stupid +{ +padding-top: 7px; + +} + + + +titletron +{ +color: white; +background-color:#00000; +font: bold 32px "arial", "sans-serif"; +} + + + + +/* end stupid header stuff */ + +div#i_materials +{ + +display: none; +padding:5px; +border-style:solid; +border-color:#79797b; +border-width:1px; + +width:auto; +float:left; + +background-color:#000000; + +} + + + + + + + + + diff -r bff96abdddfa -r 26c2b3ad21c7 buycode.js --- a/buycode.js Thu Jan 28 15:06:52 2010 -0500 +++ b/buycode.js Sun Jan 31 12:33:33 2010 -0500 @@ -1,7 +1,8 @@ -function clearDefault(el) { -if (el.defaultValue==el.value) el.value = "" +function clearDefault(el) +{ +if (el.defaultValue==el.value) {el.select();} } diff -r bff96abdddfa -r 26c2b3ad21c7 log/error_log.log --- a/log/error_log.log Thu Jan 28 15:06:52 2010 -0500 +++ b/log/error_log.log Sun Jan 31 12:33:33 2010 -0500 @@ -257,3 +257,8 @@ [Thu Jan 28 04:27:52 2010] [error] [client 18.238.5.117] File does not exist: /home/rlm/Desktop/web/laserkard/favicon.ico [Thu Jan 28 04:28:29 2010] [error] [client 18.238.5.117] File does not exist: /home/rlm/Desktop/web/laserkard/favicon.ico [Thu Jan 28 15:04:02 2010] [error] [client 18.238.5.117] File does not exist: /home/rlm/Desktop/web/laserkard/favicon.ico +[Thu Jan 28 15:10:52 2010] [error] [client 18.238.5.117] File does not exist: /home/rlm/Desktop/web/laserkard/favicon.ico +[Fri Jan 29 16:00:19 2010] [error] [client 18.238.1.90] File does not exist: /home/rlm/Desktop/web/laserkard/favicon.ico +[Fri Jan 29 16:00:22 2010] [error] [client 18.238.1.90] File does not exist: /home/rlm/Desktop/web/laserkard/favicon.ico +[Sun Jan 31 12:15:38 2010] [error] [client 18.238.1.90] File does not exist: /home/rlm/Desktop/web/laserkard/favicon.ico +[Sun Jan 31 12:15:41 2010] [error] [client 18.238.1.90] File does not exist: /home/rlm/Desktop/web/laserkard/favicon.ico diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/aut.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/aut.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{type:"doc", left:0, top:0, width:20, height:10, viewBox:"0 0 20 10", bgcolor:"#ffffff", title:"", link:"", meta:""}, {"id":"shape:4a150f8e-9dbe-035f-9fb7-f572d9062d27","type":"roundrect","transform":"","fillColor":"#e1e1df","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"rx":0,"ry":0,"left":0.120683,"top":0.0862122,"width":23.25,"height":9.93103},{"id":"shape:0f19fc1e-b306-de45-778e-eeb423412f7f","type":"line","transform":"","fillColor":"#ff2bf8","lineColor":"#2b2bff","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":6.66379,"top":4.27586,"width":2.379310000000001,"height":-1.44827},{"id":"shape:f6841e1d-64bd-3655-9399-f43baf891df7","type":"line","transform":"","fillColor":"#ff2bf8","lineColor":"#2b2bff","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":5.60345,"top":4.27586,"width":-2.0689699999999998,"height":-1.7844799999999998},{"id":"shape:58162353-7466-d10b-f6e6-82e9c770ba25","type":"line","transform":"","fillColor":"#ff2bf8","lineColor":"#2b2bff","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":4.87931,"top":4.97414,"width":-2.12069,"height":0.90517},{"id":"shape:ec87977d-522f-bd6c-3060-c06b3f792c4d","type":"line","transform":"","fillColor":"#ff2bf8","lineColor":"#2b2bff","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":5.60345,"top":6.06034,"width":-0.2068999999999992,"height":1.8879399999999995},{"id":"shape:4cb55790-b275-371e-8a1b-37e01241ec8c","type":"line","transform":"","fillColor":"#ff2bf8","lineColor":"#2b2bff","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":7,"top":5.67241,"width":2.043100000000001,"height":1.8103499999999997},{"id":"shape:82a5efe2-c927-9b19-a11f-285f2ffb2dd9","type":"ellipse","transform":"","fillColor":"#ff2bf8","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"width":3.69828,"height":3.62232,"left":4.439649999999999,"top":3.0343999999999998},{"id":"shape:f079375f-7ce7-e5b6-18f1-7e0617984364","type":"path","transform":"","fillColor":"#ff2bf8","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M0,0 L1,1"},{"id":"shape:9fc970ae-52ca-0b23-08f0-d9c06b1efd8c","type":"path","transform":"","fillColor":"#ff2bf8","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M 18.249999999999996,5.310344827586206 Lz"},{"id":"shape:64a4c060-7bc2-7544-632c-6119e00759ef","type":"path","transform":"","fillColor":"#ff2bf8","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M17.3707,6.55172 L17.681,6.5 z"},{"id":"shape:a5bee418-01c0-daea-6a84-7a30f22cd858","type":"path","transform":"","fillColor":"#ff2bf8","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M15.431,4.61207 L15.6897,5.07759 z"},{"id":"shape:b758934c-1485-992c-a109-84e1de6cd70d","type":"line","transform":"","fillColor":"#005aff","lineColor":"#ff00f7","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":16.0517,"top":2.07758,"width":3.1035000000000004,"height":1.5775899999999998},{"id":"shape:4bb4b4e1-1a27-f0c7-ddca-6913daa523fb","type":"line","transform":"","fillColor":"#d4b680","lineColor":"#ff00f7","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":16.0776,"top":3.2931,"width":4.086199999999998,"height":1.93966},{"id":"shape:c77d4177-50ba-c6da-8b11-4a9b01f6675f","type":"line","transform":"","fillColor":"#005aff","lineColor":"#ff00f7","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":14.6293,"top":4.63794,"width":3.4862,"height":1.74301},{"id":"shape:8c04e01f-8b49-b667-60d1-a0913beb326b","type":"line","transform":"","fillColor":"#005aff","lineColor":"#ff00f7","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":17.9397,"top":4.76724,"width":1.9655000000000022,"height":1.3448399999999996},{"id":"shape:7e6224ff-d635-e0d9-5094-50f4476b815e","type":"line","transform":"","fillColor":"#005aff","lineColor":"#ff00f7","fillOpac":null,"lineOpac":null,"lineWidth":1,"left":17.8621,"top":3.81035,"width":2.6895999999999987,"height":0.3879199999999998},{"id":"shape:e1b846e0-4804-35ec-90c1-878e5025f92c","type":"path","transform":"","fillColor":"#005aff","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M16.362,3.78449 L16.362,3.75863 L16.362,3.73277 L16.362,3.70691 L16.362,3.68104 L16.362,3.65518 L16.362,3.62932 L16.362,3.60346 L16.362,3.55173 L16.362,3.52587 L16.362,3.50001 L16.362,3.47415 L16.362,3.44828 L16.3878,3.39656 L16.4137,3.34484 L16.4137,3.31897 L16.4396,3.26725 L16.4654,3.21553 L16.4913,3.18966 L16.543,3.11208 L16.6723,3.03449 L16.7499,2.98277 L16.8792,2.90518 L17.0603,2.82759 L17.1896,2.75001 L17.3189,2.72415 L17.5258,2.64656 L17.681,2.59484 L17.8878,2.54311 L17.9913,2.54311 L18.0689,2.54311 L18.1465,2.54311 L18.3016,2.59484 L18.4051,2.6207 L18.5603,2.72415 L18.6378,2.77587 L18.793,2.90518 L18.9482,3.00863 L19.1292,3.18966 L19.3361,3.47415 L19.4654,3.70691 L19.6206,3.99139 L19.6723,4.17242 L19.7241,4.43104 L19.7241,4.74139 L19.6465,5.02587 L19.5947,5.20691 L19.5172,5.38794 L19.4396,5.51725 L19.3103,5.67242 L19.1551,5.77587 L19.0258,5.90518 L18.9223,6.00863 L18.8189,6.13794 L18.6378,6.26725 L18.4051,6.42242 L18.3016,6.50001 L18.1982,6.55173 L18.1206,6.57759 L18.0689,6.57759 L17.9913,6.62932 L17.9396,6.62932 L17.862,6.62932 L17.7585,6.62932 L17.7068,6.62932 L17.5516,6.57759 L17.4482,6.57759 L17.3706,6.55173 L17.2672,6.52587 L17.2154,6.50001 L17.1378,6.44828 L17.0861,6.42242 L17.0085,6.39656 L16.9568,6.3707 L16.8534,6.29311 L16.7758,6.24139 L16.6982,6.18966 L16.5947,6.11208 L16.543,6.06035 L16.5172,6.00863 L16.5172,5.95691 L16.4654,5.87932 L16.3878,5.82759 L16.362,5.69828 L16.362,5.59484 L16.3878,5.49139 L16.4654,5.38794 L16.543,5.28449 L16.7241,5.15518 L16.8792,5.07759 L16.9827,5.02587 L17.112,4.94828 L17.2154,4.8707 L17.3189,4.79311 L17.4741,4.6638 L17.5775,4.58622 L17.6292,4.56035 L17.6551,4.50863 L17.6551,4.48277 L17.6292,4.45691 L17.5775,4.45691 L17.4223,4.45691 L17.2154,4.45691 L17.1378,4.45691 L17.0344,4.45691 L16.9827,4.45691 L16.8792,4.48277 L16.7758,4.53449 L16.6723,4.58622 L16.6206,4.61208 L16.543,4.63794 L16.4396,4.6638 L16.3361,4.6638 L16.2327,4.68966 L16.1551,4.68966 L16.1034,4.68966 L16.0516,4.68966 L16.0258,4.68966 L15.9999,4.68966 L15.9482,4.63794 L15.8965,4.61208 L15.8447,4.53449 L15.793,4.50863 L15.7672,4.45691 L15.7413,4.40518 L15.7154,4.35346 L15.7154,4.30173 L15.6896,4.22415 L15.6896,4.17242 L15.6896,4.1207 L15.6896,4.06897 L15.6896,4.01725 L15.6896,3.96553 L15.7154,3.93966 L15.793,3.9138 L15.8706,3.9138 L15.8965,3.9138 L15.9223,3.9138 L15.9741,3.9138 L15.9999,3.9138 L16.0516,3.9138 L16.0775,3.9138 L16.1034,3.9138 L16.1292,3.9138 L16.1551,3.9138 L16.181,3.9138 L16.2068,3.9138 L16.2327,3.9138 L16.2327,3.88794 z"},{"id":"shape:f9515bac-199e-fe9f-4f1e-e7bcf431161f","type":"image","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null,"left":6.76724,"top":0.784483,"width":5.25,"height":2.40517,"href":"http://www.google.es/search?q=Equinoccio+de+oto%C3%B1o&hl=es"},{"id":"shape:ef34cf85-7f96-836a-6273-821a5c5c0eb5","type":"image","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null,"left":7.15517,"top":1.76724,"width":0.0258621,"height":0,"href":"http://www.google.es/search?q=Equinoccio+de+oto%C3%B1o&hl=es"},{"id":"shape:a4c70486-24a5-5986-a9d5-fa819c875922","type":"image","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null,"left":6.63793,"top":2,"width":0.594828,"height":0.336207,"href":"http://www.google.es/search?q=Equinoccio+de+oto%C3%B1o&hl=es"},{"id":"shape:94015f1c-8214-b2cd-c529-b3e3a2eb8716","type":"image","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null,"left":4.43966,"top":1.68966,"width":1.5,"height":0.724138,"href":"http://www.google.es/search?q=Equinoccio+de+oto%C3%B1o&hl=es"},{"id":"shape:fba0cf77-2c92-68bd-1f4a-b0b26b1562fd","type":"image","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null,"left":4.77586,"top":1.66379,"width":2.48276,"height":2.74138,"href":"http://www.google.es/search?q=Equinoccio+de+oto%C3%B1o&hl=es"},{"id":"shape:82e2e1ce-4991-7527-9cc9-53185ca6e1f3","type":"image","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null,"left":8.75862,"top":4.01724,"width":1.26724,"height":0.905172,"href":"http://www.google.es/search?q=Equinoccio+de+oto%C3%B1o&hl=es"},{"id":"shape:edd03253-0708-f734-9d55-f30b9df50adf","type":"image","transform":"","fillColor":"none","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":9.01724,"top":3.29441,"width":3.56418,"height":2.76595,"href":"http://www.robertocarballo.com/wp-content/uploads/2007/08/otono.jpg"},{"id":"shape:a089b419-03d0-b8ad-9247-e7a839fc0e9b","type":"text","transform":"","textFamily":"Arial","textSize":3,"top":2.46552,"left":7.90517,"text":"Autoumn?","lineWidth":1,"fillColor":"#d4b680","lineColor":"none","fillOpac":null,"lineOpac":null},{"id":"shape:d572d95e-0ebb-6032-adcf-a03f62860769","type":"path","transform":"","fillColor":"#48494b","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M16.931,3.42241 L17.1121,3.47414 L17.319,3.52586 L17.7069,3.5 L18.069,3.39655 L18.2241,3.31897 L18.2241,3.2931 L18.2241,3.26724 L18.0172,3.68103 L17.8362,3.91379 L17.6552,4.0431 L16.8276,3.88793 L16.8534,3.86207 z"},{"id":"shape:f0bc4727-356d-9fd1-3108-be0d9d28197d","type":"path","transform":"","fillColor":"#48494b","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M6.19828,4.43103 L5.96552,3.99138 L5.93966,4.01724 L5.83621,4.12069 L5.83621,4.22414 L5.86207,4.30172 L5.86207,4.40517 L5.86207,4.50862 L5.86207,4.56034 L5.88793,4.66379 L6.01724,4.76724 L6.22414,4.76724 L6.48276,4.71552 L6.71552,4.61207 L6.74138,4.53448 L6.76724,4.4569 L6.76724,4.37931 L6.76724,4.35345 L6.76724,4.32759 L6.71552,4.25 L6.61207,4.19828 L6.53448,4.14655 L6.4569,4.06897 L6.35345,4.0431 L6.22414,4.01724 L6.17241,4.01724 L6.14655,4.01724 L6.12069,4.01724 L6.09483,4.01724 L6.09483,4.0431 L6.09483,4.06897 L6.06897,4.06897 z"},{"id":"shape:58c642a0-b31f-6e39-873f-4a2d2a0b4bf2","type":"path","transform":"","fillColor":"#48494b","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M7.51724,5.25862 L7.69828,5.12931 L7.85345,5 L7.85345,4.97414 z"},{"id":"shape:8b4cc03b-25c3-795f-17fa-1f6546ba3451","type":"path","transform":"","fillColor":"#48494b","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M7.85345,5.07759 L7.82759,5.15517 L7.75,5.23276 z"},{"id":"shape:758f6b78-29e1-052b-6b4a-18fdc4f1d251","type":"path","transform":"","fillColor":"#48494b","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M 6.741379310344826,5.594827586206896 Lz"},{"id":"shape:7585518f-505e-419b-b114-36bed061971e","type":"path","transform":"","fillColor":"#48494b","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M7.23276,5.33621 L7.5431,5.18103 L7.77586,5.05172 L7.80172,5 L7.62069,5.25862 L7.43966,5.41379 L7.38793,5.41379 z"},{"id":"shape:fcf00e61-4ce5-b3cc-2ba3-7279404dd6c5","type":"path","transform":"","fillColor":"#48494b","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M 17.551724137931036,5.4655172413793105 Lz"},{"id":"shape:68f8f733-ff53-4663-0ce3-db8dea781241","type":"path","transform":"","fillColor":"#48494b","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M17.9138,5.28448 L18.0431,5.25862 L18.25,5.15517 z"},{"id":"shape:89afbcab-c6c7-73e2-3fd5-63fa91e9a0ae","type":"path","transform":"","fillColor":"#48494b","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M17.8879,5.41379 L18.1207,5.41379 L18.2241,5.36207 L18.3534,5.28448 L18.3793,5.23276 L18.3534,5.23276 L17.9138,5.46552 L17.1638,5.80172 L17.0603,5.80172 L16.7759,5.80172 L16.75,5.80172 L16.7241,5.80172 L16.7241,5.77586 L16.6207,5.64655 L16.5948,5.46552 L16.5948,5.41379 L16.569,5.38793 L16.5431,5.33621 L16.5948,5.28448 L16.6983,5.31034 L16.75,5.33621 L16.8534,5.33621 L16.9052,5.33621 z"}] \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/big01.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/big01.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{type:"doc", left:0, top:0, width:800, height:600, viewBox:"0 0 800 600", bgcolor:"#aa4100", title:"", link:"", meta:""},{"id":"shape:ad345e8b-686e-deec-2812-2223b824c141","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-553,"top":-51,"width":92,"height":221},{"id":"shape:024a6285-4065-9d82-6bf4-4523b069474b","type":"rect","transform":"","fillColor":"#aa5555","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-56,"top":65.5,"width":65,"height":66.5},{"id":"shape:bd939915-d845-bcaa-7066-5b56d0235eb1","type":"rect","transform":"","fillColor":"#ff2b2b","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-212,"top":-18.5,"width":47,"height":64.5},{"id":"shape:4644bdbf-a36b-e767-a5bb-60e5255e7cdf","type":"rect","transform":"","fillColor":"#ff3f00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":267,"top":262.5,"width":102,"height":101.5},{"id":"shape:5c84e41e-c6ad-835d-4d7e-0d5587003bc5","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":593,"top":202.5,"width":57,"height":52.5},{"id":"shape:bfca0e71-6797-34c6-57c0-c877f152167b","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":129,"top":121.5,"width":44.3908,"height":65.448},{"id":"shape:e4c510a0-b2e8-6f6d-9847-3418d10c6538","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":41,"top":120.5,"width":68,"height":66.5},{"id":"shape:476b6e25-0bc9-893c-d11c-ebd0c65c2818","type":"rect","transform":"","fillColor":"#ff8080","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":407,"top":319.5,"width":80,"height":74.5},{"id":"shape:cca4956b-0143-d4d9-0dee-d98259660d27","type":"ellipse","transform":"","fillColor":"#2b2b2b","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":79.7336,"height":73.2682,"left":-118.0998,"top":-44.602639999999994},{"id":"shape:b511fb11-686e-36c8-d1db-c40e28c84345","type":"path","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-25,-23 L-25,-25 L-21,-36 L-9,-45 L8,-48 L20,-42 L31,-30 L36,-15 L33,-1.70419e-13 L27,20 L4,34 L-10,35 L-53,28 L-59,27 L-69,18 L-80,7 L-92,-3 L-107,-17 L-108,-18 L-108,-19 L-109,-20 L-108,-22 L-103,-22 L-96,-23 L-88,-23 L-85,-21 L-83,-18 L-80,-12 L-77,-5 L-74,1 L-72,6 L-67,12 L-61,16 L-53,21 L-47,21 L-41,21 L-35,18 L-34,16 L-34,13 L-34,11 L-35,9 L-37,7 L-38,5 L-41,3 L-44,1 L-53,-2 L-59,-3 L-61,-4 L-63,-5 L-65,-7 L-67,-10 L-68,-11 L-68,-16 L-68,-23 L-65,-27 L-61,-29 L-57,-31 L-49,-31 L-46,-31 L-44,-28 L-41,-25 L-39,-20 L-39,-17 L-43,-15 L-47,-14 L-50,-13 L-52,-12 L-54,-11 L-55,-11 L-56,-10 L-55,-10 L-53,-9 L-49,-7 L-46,-7 L-45,-7 L-41,-7 L-36,-7 L-33,-7 L-31,-7 L-28,-6 L-25,-4 L-20,-2 L-17,-1.70419e-13 L-14,1 L-12,2 L-11,2 L-10,3 L-9,3 L-9,4 L-8,4 L-8,6 L-8,7 L-8,8 L-8,9 L-8,8 z"},{"id":"shape:b66ba1a2-35e3-d19f-aa11-6ba608978d47","type":"path","transform":"","fillColor":"#d52b2b","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M210,140.5 L210,139.5 L210,131.5 L213,121.5 L246,111.5 L267,112.5 L279,130.5 L281,158.5 L279,179.5 L263,191.5 L222,191.5 L221,190.5 L248,205.5 L294,232.5 L307,242.5 L303,248.5 L298,252.5 L294,250.5 L289,241.5 L283,234.5 L272,232.5 L267,232.5 L242,218.5 L228,212.5 L210,211.5 L208,211.5 L204,205.5 L203,200.5 L203,195.5 L203,192.5 L203,188.5 L203,186.5 L203,185.5 L203,183.5 L204,180.5 L209,177.5 L215,174.5 L219,173.5 L221,172.5 L222,170.5 L225,168.5 L229,166.5 L230,165.5 L230,163.5 L231,162.5 L232,159.5 L232,158.5 L232,157.5 L232,154.5 L231,152.5 L230,152.5 L229,151.5 L228,150.5 L224,149.5 L217,149.5 L214,151.5 L213,152.5 L212,152.5 L212,151.5 L211,150.5 L210,149.5 L209,148.5 L208,148.5 L208,147.5 z"},{"id":"shape:8f098032-89e5-23ca-83cc-da5b995719f6","type":"text","transform":"","textFamily":"Arial","textSize":90,"top":182.5,"left":162,"text":"BIG 01","lineWidth":1,"fillColor":"#aa4100","lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:c8fc5771-6dcd-3b56-5935-5650d374a34f","type":"image","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":410,"top":125.5,"width":222,"height":175.745,"href":"http://www.wtv-zone.com/pbarikmo/images3/redrose2.png"},{"id":"shape:6c01d872-cd26-93bb-b6c1-10d2ccb0700f","type":"rect","transform":"","fillColor":"#aa5555","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-331,"top":-80.5,"width":63,"height":36.5},{"id":"shape:decdb300-5d61-ea88-28e7-75b254885418","type":"rect","transform":"","fillColor":"#ff3f00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":491,"top":255.5,"width":71,"height":58.5}] \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/biglong.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/biglong.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{type:"doc", left:0, top:0, width:700, height:100, viewBox:"0 0 700 100", bgcolor:"#ff0000", title:"", link:"", meta:""}, {"id":"shape:215bc924-1e9c-dd4c-d46e-5ccde448bedd","type":"rect","transform":"","fillColor":"#ff00f7","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-3,"top":-0.5,"width":709,"height":102.5},{"id":"defs","type":"defs","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null},{"id":"defs","type":"defs","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null},{"id":"shape:e01a13f5-dcad-b193-70b6-29b4c4249138","type":"ellipse","transform":"","fillColor":"#000000","lineColor":"#8600ff","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":62,"height":59.5,"left":236,"top":19.5},{"id":"defs","type":"defs","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null},{"id":"defs","type":"defs","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null},{"id":"shape:162076f4-6cf9-cc2b-e7fc-ca0bde93109e","type":"roundrect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"rx":18,"ry":18,"left":151,"top":2.5,"width":105,"height":94.5},{"id":"shape:e24b5dc8-10af-775f-ea34-50e48f6705fa","type":"path","transform":"","fillColor":"#009aff","lineColor":"#9a2bff","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M291,52.5 L290,52.5 L289,52.5 L288,52.5 L286,51.5 L282,49.5 L274,42.5 L266,34.5 L263,28.5 L263,21.5 L271,14.5 L284,8.5 L308,3.5 L337,3.5 L353,7.5 L359,14.5 L360,26.5 L361,38.5 L361,45.5 L362,52.5 L370,56.5 L389,59.5 L417,60.5 L445,60.5 L465,60.5 L467,60.5 L467,65.5 L463,76.5 L457,88.5 L448,104.5 L443,114.5 L439,121.5 L435,125.5 L431,128.5 L422,129.5 L414,129.5 L405,130.5 L401,130.5 L397,130.5 L393,130.5 L393,129.5 L393,127.5 L390,123.5 z"},{"id":"shape:f1b9467a-0f1a-33af-6615-e97fa5a35554","type":"ellipse","transform":"","fillColor":"#000000","lineColor":"#8600ff","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":59,"height":50.5,"left":431,"top":41.5},{"id":"shape:ec0fd89f-aa44-8606-3099-1cb03fac7b3b","type":"text","transform":"","textFamily":"Arial","textSize":50,"top":52.5,"left":478,"text":"xx","lineWidth":1,"fillColor":"#000000","lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:b2af5bb0-d470-faad-f3b0-bd5b3ad3c344","type":"path","transform":"","fillColor":"#000000","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M524,57.294 C533.608,57.294 541.395,49.505 541.395,39.897 C541.395,30.29 533.608,22.5 524,22.5"},{"id":"shape:409450b5-b68e-b3e9-e1c6-a6111d95381e","type":"path","transform":"","fillColor":"#ff7f00","lineColor":"#16002b","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M150.395,65.294 C140.787,65.294 133,57.505 133,47.897 C133,38.29 140.787,30.5 150.395,30.5"},{"id":"shape:66843d3d-7129-729f-94e4-f32421a017fa","type":"image","transform":"","fillColor":"none","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":544,"top":-0.5,"width":177.155,"height":73.2046,"href":"http://www.grescid.com/thumbnails/hispalis/cenefa-italica.gif"},{"id":"shape:b405ed88-c838-1f2f-c7ac-30f3480cf7f2","type":"rect","transform":"","fillColor":"none","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":452,"top":64,"width":96,"height":25.5},{"id":"shape:762ffa9f-bef6-c225-8247-d8924a1b7c3b","type":"rect","transform":"","fillColor":"none","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":567,"top":54.5,"width":143,"height":163.5},{"id":"shape:969b2a12-7a03-1604-473a-87be34cd69b6","type":"rect","transform":"","fillColor":"none","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":460,"top":73.5,"width":126,"height":127.5},{"id":"shape:89c2bcf1-d292-5d76-b37e-292f8b12321e","type":"rect","transform":"","fillColor":"#000000","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":535,"top":0.5,"width":10,"height":72},{"id":"shape:48667707-d32a-926b-2d8b-5e1590a70057","type":"path","transform":"","fillColor":"none","lineColor":"#16002b","fillOpac":1,"lineOpac":1,"lineWidth":5,"points":"M52,48.5 C48,42.5 45,28.5 59,12.5 C82,8.5 92,25.5 76,59.5 C71,60.5 62,49.5 72,47.5 C93,59.5 98,64.5 99,66.5 C100,64.5 118,38.5 112,30.5 C92,43.5 79,56.5 77,59.5 C77,58.5 77,58.5 77,57.5 z"},{"id":"shape:c88a98fc-35bf-9a4d-c743-c258d2bbf9f6","type":"path","transform":"","fillColor":"none","lineColor":"#16002b","fillOpac":1,"lineOpac":1,"lineWidth":5,"points":"M52,48.5 C48,42.5 45,28.5 59,12.5 C82,8.5 92,25.5 76,59.5 C71,60.5 62,49.5 72,47.5 C93,59.5 98,64.5 99,66.5 C100,64.5 118,38.5 112,30.5 C92,43.5 79,56.5 77,59.5 C77,58.5 77,58.5 77,57.5 z"},{"id":"shape:3e6e0bf3-635a-4797-475d-8cf90a6bbccd","type":"path","transform":"","fillColor":"none","lineColor":"#16002b","fillOpac":1,"lineOpac":1,"lineWidth":5,"points":"M109.869,48.5 C113.869,42.5 116.869,28.5 102.869,12.5 C79.8691,8.5 69.8691,25.5 85.8691,59.5 C90.8691,60.5 99.8691,49.5 89.8691,47.5 C68.8691,59.5 63.8691,64.5 62.8691,66.5 C61.8691,64.5 43.8691,38.5 49.8691,30.5 C69.8691,43.5 82.8691,56.5 84.8691,59.5 C84.8691,58.5 84.8691,58.5 84.8691,57.5 z"},{"id":"shape:2cad90c3-f6fc-874b-ec75-0897c57430a8","type":"image","transform":"","fillColor":"none","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":180,"top":11.5,"width":48,"height":73.2046,"href":"http://www.grescid.com/thumbnails/hispalis/cenefa-italica.gif"},{"id":"shape:3f09dd8b-e90b-367d-4b01-ae8e487a414c","type":"text","transform":"","textFamily":"Arial","textSize":50,"top":51.5,"left":-14,"text":"xx","lineWidth":1,"fillColor":"#000000","lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:ffd7ea15-982b-89fa-9132-447cc666d3e3","type":"text","transform":"","textFamily":"Arial","textSize":50,"top":162.5,"left":-229,"text":"xx","lineWidth":1,"fillColor":"#000000","lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:4ac370aa-b9c1-d71e-0cc5-8407fc4c940a","type":"path","transform":"","fillColor":"#000000","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M31,55.294 C40.608,55.294 48.395,47.505 48.395,37.897 C48.395,28.29 40.608,20.5 31,20.5"}] diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/css/me.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/css/me.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,293 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ +html, body { overflow:hidden; + height:100%; + } +#me-container{ + position:relative; + left:0px; + top:0px; + margin:0; + padding:0; + border:0 none; + + font-size:9px; + background-color:#ccccdd !important; + font-family:helvetica,tahoma,verdana,sans-serif; + +} +#divformfill{ + position:absolute; + left:53px; + top:0px; + width:50px; + height:240px; + padding-top:0px; + padding-left:0px; + font-size:8px; + border:0px solid #6593cf; + padding:2px; + visibility:hidden; +} +#divformstroke{ + position:absolute; + left:53px; + top:115px; + width:50px; + height:240px; + padding-top:0px; + padding-left:0px; + font-size:9px; + border:0px solid #6593cf; + padding:0px; + visibility:hidden; +} +.field { + margin:1px; + padding:1px; + font-size:9px; + vertical-align: middle; + width:50px; + +} + +.loading-indicator { + font-size:8pt; + background-image:url('theme/images/loading.gif'); + background-repeat: no-repeat; + background-position:top left; + padding-left:20px; + height:18px; + text-align:left; +} + #loading-mask { + width:100%; + height:100%; + background:#000033; + position:absolute; + left:0; + top:0; + + } +#loading{ + position:absolute; + left:45%; + top:40%; + border:1px solid #3333cf; + padding:2px; + background:#000033; + width:150px; + text-align:center; + z-index:20001; +} +#loading .loading-indicator{ + border:1px solid #a3bad9; + background:white url('') repeat-x; + color:#003366; + font:bold 13px tahoma,arial,helvetica; + padding:10px; + margin:0; +} +#fill-me{ + width:50px; + height:100px; + padding-top:0px; + padding-left:0px; + position:relative; + left:0px; + top:0px; + border-style:solid; + border-width:0px; + border-color:#000000; + font-size:9px; + font-family:helvetica,tahoma,verdana,sans-serif; + overflow: hidden; + +} +#fill-square{ + width:20px; + height:10px; + padding-top:0px; + padding-left:0px; + font-size:7px; + border-width: 2px; + +} +#stroke-me{ + width:50px; + height:140px; + padding-top:0px; + padding-left:0px; + position:relative; + left:0px; + top:0px; + border-style:solid; + border-width:0px; + border-color:#000000; + font-size:9px; + font-family:helvetica,tahoma,verdana,sans-serif; + overflow: hidden; +} +#stroke-square{ + position:absolute; + left:30px; + top:0px; + width:16px; + height:10px; + padding-top:0px; + padding-left:0px; + font-size:7px; + border-style:solid; + border-width: 2px; +} + + +#fillContainer { + width: 50px; + height: 45px; + position: relative; + top:-8px; + left:1px; + margin:0; + padding:0; + +} +.colorFillSquare { + height: 8px; + + position: absolute; + background-color:transparent; + border-color: #000; + border-style: solid; + border-width: 0px 0px 0px 0px; + font-size:7px; +} +#strokeContainer { + width: 50px; + height: 45px; + position: relative; + top:-8px; + left:1px; +} +.colorStrokeSquare { + height: 8px; + position: absolute; + background-color: transparent; + border-color: #000; + border-style: solid; + border-width: 0px 0px 0px 0px; + font-size:7px; +} + + +#fill-square { + width: 16px; + height: 10px; + position: absolute; + top:0px; + left:30px; + background-color: #ff0000; + border-color: #000; + border-style: solid; + border-width: 2px 2px 2px 2px; + font-size:8px; +} +#stroke-selected { + width: 16px; + height: 10px; + position: absolute; + top:0px; + left:30px; + background-color: #ff0000; + border-color: #000; + border-style: solid; + border-width: 2px 2px 2px 2px; + font-size:8px; +} +#toolbox_fill { + text-align:center; + position:relative; + position: relative; + top:-10px; + background-color: #ffffff; + padding-top:2px; + +} +#toolbox_stroke { + text-align:center; + position:relative; + position: relative; + top:-20px; + background-color: #ffffff; + padding-top:2px; +} +#img_okfill{ + cursor:pointer; + padding:0px; border:0px solid orange; +} + +#img_okstroke{ + cursor:pointer; + +} + +.toolboxItem { + vertical-align: middle; + + width: 12px; + height: 12px; + +} +.sans{ padding:0px; border:0px solid orange; } +SPAN.toolboxItem { + + background-repeat: no-repeat; + cursor:pointer; + background-image: url(theme/images/buttonSprite_12px.png); + width:10px; + height:10px; + + cursor:pointer; + vertical-align: middle; + background-position: 0px 120px; + margin:0; + padding:0; + +} + +#linear-fill-gradient{ + width: 12px; + height: 12px; + +} +#linear-stroke-gradient{ + width: 12px; + height: 12px; + +} +#radial-fill-gradient{ + width: 12px; + height: 12px; + +} +#radial-stroke-gradient{ + width: 12px; + height: 12px; + +} +#no-fill-gradient{ + width: 12px; + height: 12px; + +} +#no-stroke-gradient{ + width: 12px; + height: 12px; +} + + \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/css/me.css.bak --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/css/me.css.bak Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,293 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ +html, body { overflow:hidden; + height:100%; + } +#me-container{ + position:relative; + left:0px; + top:0px; + margin:0; + padding:0; + border:0 none; + + font-size:9px; + background-color:#ccccdd !important; + font-family:helvetica,tahoma,verdana,sans-serif; + +} +#divformfill{ + position:absolute; + left:53px; + top:0px; + width:50px; + height:240px; + padding-top:0px; + padding-left:0px; + font-size:8px; + border:0px solid #6593cf; + padding:2px; + visibility:hidden; +} +#divformstroke{ + position:absolute; + left:53px; + top:115px; + width:50px; + height:240px; + padding-top:0px; + padding-left:0px; + font-size:9px; + border:0px solid #6593cf; + padding:0px; + visibility:hidden; +} +.field { + margin:1px; + padding:1px; + font-size:9px; + vertical-align: middle; + width:50px; + +} + +.loading-indicator { + font-size:8pt; + background-image:url('theme/images/loading.gif'); + background-repeat: no-repeat; + background-position:top left; + padding-left:20px; + height:18px; + text-align:left; +} + #loading-mask { + width:100%; + height:100%; + background:#000033; + position:absolute; + left:0; + top:0; + + } +#loading{ + position:absolute; + left:45%; + top:40%; + border:1px solid #3333cf; + padding:2px; + background:#000033; + width:150px; + text-align:center; + z-index:20001; +} +#loading .loading-indicator{ + border:1px solid #a3bad9; + background:white url('') repeat-x; + color:#003366; + font:bold 13px tahoma,arial,helvetica; + padding:10px; + margin:0; +} +#fill-me{ + width:50px; + height:100px; + padding-top:0px; + padding-left:0px; + position:relative; + left:0px; + top:0px; + border-style:solid; + border-width:0px; + border-color:#000000; + font-size:9px; + font-family:helvetica,tahoma,verdana,sans-serif; + overflow: hidden; + +} +#fill-square{ + width:20px; + height:10px; + padding-top:0px; + padding-left:0px; + font-size:7px; + border-width: 2px; + +} +#stroke-me{ + width:50px; + height:140px; + padding-top:0px; + padding-left:0px; + position:relative; + left:0px; + top:0px; + border-style:solid; + border-width:0px; + border-color:#000000; + font-size:9px; + font-family:helvetica,tahoma,verdana,sans-serif; + overflow: hidden; +} +#stroke-square{ + position:absolute; + left:30px; + top:0px; + width:16px; + height:10px; + padding-top:0px; + padding-left:0px; + font-size:7px; + border-style:solid; + border-width: 2px; +} + + +#fillContainer { + width: 50px; + height: 45px; + position: relative; + top:-8px; + left:1px; + margin:0; + padding:0; + +} +.colorFillSquare { + height: 8px; + + position: absolute; + background-color:transparent; + border-color: #000; + border-style: solid; + border-width: 0px 0px 0px 0px; + font-size:7px; +} +#strokeContainer { + width: 50px; + height: 45px; + position: relative; + top:-8px; + left:1px; +} +.colorStrokeSquare { + height: 8px; + position: absolute; + background-color: transparent; + border-color: #000; + border-style: solid; + border-width: 0px 0px 0px 0px; + font-size:7px; +} + + +#fill-square { + width: 16px; + height: 10px; + position: absolute; + top:0px; + left:30px; + background-color: #ff0000; + border-color: #000; + border-style: solid; + border-width: 2px 2px 2px 2px; + font-size:8px; +} +#stroke-selected { + width: 16px; + height: 10px; + position: absolute; + top:0px; + left:30px; + background-color: #ff0000; + border-color: #000; + border-style: solid; + border-width: 2px 2px 2px 2px; + font-size:8px; +} +#toolbox_fill { + text-align:center; + position:relative; + position: relative; + top:-10px; + background-color: #ffffff; + padding-top:2px; + +} +#toolbox_stroke { + text-align:center; + position:relative; + position: relative; + top:-20px; + background-color: #ffffff; + padding-top:2px; +} +#img_okfill{ + cursor:pointer; + padding:0px; border:0px solid orange; +} + +#img_okstroke{ + cursor:pointer; + +} + +.toolboxItem { + vertical-align: middle; + + width: 12px; + height: 12px; + +} +.sans{ padding:0px; border:0px solid orange; } +SPAN.toolboxItem { + + background-repeat: no-repeat; + cursor:pointer; + background-image: url(theme/images/buttonSprite_12px.png); + width:10px; + height:10px; + + cursor:pointer; + vertical-align: middle; + background-position: 0px 120px; + margin:0; + padding:0; + +} + +#linear-fill-gradient{ + width: 12px; + height: 12px; + +} +#linear-stroke-gradient{ + width: 12px; + height: 12px; + +} +#radial-fill-gradient{ + width: 12px; + height: 12px; + +} +#radial-stroke-gradient{ + width: 12px; + height: 12px; + +} +#no-fill-gradient{ + width: 12px; + height: 12px; + +} +#no-stroke-gradient{ + width: 12px; + height: 12px; +} + + \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/css/onlypaths.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/css/onlypaths.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,7 @@ + body { overflow:auto;font-family:verdana,arial; font-size:10pt; background-color:wheat} + div { vertical-align: middle; } + div img { padding:2px; border:2px solid orange;} + .mini { font-family:verdana,arial; font-size:8pt;color:#777755 } + .titlep { font-family:verdana,arial; font-size:12pt; } + input {vertical-align: top;font-size:10px } + .loading-indicator{border-width:0px} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/css/onlypaths.css.bak --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/css/onlypaths.css.bak Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,6 @@ + body { overflow:auto;font-family:verdana,arial; font-size:10pt; background-color:wheat} + div { vertical-align: middle; } + div img { padding:2px; border:2px solid orange;} + .mini { font-family:verdana,arial; font-size:8pt;color:#777755 } + .titlep { font-family:verdana,arial; font-size:12pt; } + input {vertical-align: top;font-size:10px } diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/css/slider.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/css/slider.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,136 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ +#slider-fill { + width:50px; + height:20px; + padding:0px; + margin:0px; + background-image:url(../img/rainbow1.png); + background-position: 0px 2px; + background-repeat: no-repeat; + +} +#slider-stroke { + width:50px; + height:20px; + padding:0px; + margin:0px; + background-image:url(../img/rainbow1.png); + background-position: 0px 2px; + background-repeat: no-repeat; +} +#opacity-slider-fill { + position: relative; + top:-3px; + + width:50px; + height:14px; + padding-top:0px; + padding-left:0px; + padding-right:0px; + margin-left:0px; + margin-right:0px; + background-image:url(../img/bar.gif); + background-position: 0px 2px; + background-repeat: repeat-x; + background-color: #ff0000; + opacity: 1; + -moz-opacity: 1; + filter: alpha(opacity=100); + +} + +#opacity-slider-stroke { + position: relative; + top:-20px; + + + width:50px; + height:14px; + padding-top:0px; + padding-left:0px; + padding-right:0px; + margin-left:0px; + margin-right:0px; + background-image:url(../img/bar.gif); + background-position: 0px 2px; + background-repeat: repeat-x; + background-color: #000000; + opacity: 1; + -moz-opacity: 1; + filter: alpha(opacity=100); + +} + +#width-slider-stroke-mask { + position: relative; + top:-4px; + width:1px; + height:14px; + padding-top:0px; + padding-left:0px; + padding-right:0px; + margin-left:0px; + margin-right:0px; + background-color: #000000; + +} +#width-slider-stroke { + position:relative; + width:50px; + height:14px; + top:-18px; + padding-top:0px; + padding-left:0px; + padding-right:0px; + margin-left:0px; + margin-right:0px; + background-image:url(../img/bar.gif); + background-position: 0px 2px; + background-repeat: repeat-x; + background-color: transparent; + +} +#slider-fill .x-slider-thumb { + top:0px; + height:12px; + background-image:url(../img/slider-point.gif); + padding:0px; + margin:0px; + +} +#slider-stroke .x-slider-thumb { + top:0px; + height:12px; + background-image:url(../img/slider-point.gif); +} +#opacity-slider-fill .x-slider-thumb { + top:0px; + background-image:url(../img/slider-metal.gif); +} +#opacity-slider-stroke .x-slider-thumb { + top:0px; + background-image:url(../img/slider-metal.gif); +} +#width-slider-stroke .x-slider-thumb { + top:0px; + background-image:url(../img/slider-metal.gif); +} + +.x-slider{zoom:1;} +.x-slider-inner{position:relative;left:0;top:0;overflow:visible;zoom:1;} +.x-slider-focus{position:absolute;left:0;top:0;width:1px;height:1px;line-height:1px;font-size:1px;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;} + +.x-slider-horz .x-slider-thumb-over{background-position:-14px -15px;} +.x-slider-horz .x-slider-thumb-drag{background-position:-28px -30px;} + + +.x-slider-horz{padding-left:7px;background:transparent url() no-repeat 0 -22px;} +.x-slider-horz .x-slider-end{padding-right:7px;zoom:1;background:transparent url() no-repeat right -44px;} +.x-slider-horz .x-slider-inner{background:transparent url() repeat-x 0 0;height:22px;} +.x-slider-horz .x-slider-thumb{width:14px;height:15px;position:absolute;left:0;top:3px;background:transparent url() no-repeat 0 0;} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/css/svgpaths.htm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/css/svgpaths.htm Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,40 @@ + + + + + + + SVG + + + + + + +
+ +
+ + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/danger.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/danger.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{type:"doc", left:0, top:0, width:250, height:200, viewBox:"0 0 600 500"}, {id:"defsGradient", type:"defs", transform:""}, {id:"Linear-gradient", type:"linearGradient", transform:"", fillColor:null, filter:null, lineColor:null, fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, text:null, left:"0%", top:"100%", width:"0%", height:"0%", href:null, parent:"defsGradient"}, {id:"init000000", type:"stop", transform:"", fillColor:"#000055", fillOpac:"1", lineOpac:"0", parent:"Linear-gradient"}, {id:"mid000000", type:"stop", transform:"", fillColor:"#ffff00", fillOpac:"1", lineOpac:"0.3", parent:"Linear-gradient"}, {id:"end000000", type:"stop", transform:"", fillColor:"#ffffdd", fillOpac:"1", lineOpac:"1", parent:"Linear-gradient"}, {id:"Radial-gradient", type:"radialGradient", transform:"", fillColor:null, filter:null, lineColor:null, fillOpac:NaN, lineOpac:NaN, lineWidth:"100%", text:null, left:"20%", top:"20%", width:"30%", height:"30%", href:null, parent:"defsGradient"}, {id:"initR000000", type:"stop", transform:"", fillColor:"#ffffdd", fillOpac:"1", lineOpac:"0", parent:"Radial-gradient"}, {id:"midR000000", type:"stop", transform:"", fillColor:"#ffff00", fillOpac:"1", lineOpac:"0.3", parent:"Radial-gradient"}, {id:"endR000000", type:"stop", transform:"", fillColor:"#000055", fillOpac:"1", lineOpac:"1", parent:"Radial-gradient"}, {id:"defs", type:"defs", transform:""}, {id:"defs", type:"defs", transform:""}, {id:"g1", type:"linearGradient", transform:"", fillColor:null, filter:null, lineColor:null, fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, text:"userSpaceOnUse", left:"41.1949", top:"616.477", width:"118.931", height:"527.555", href:null, parent:"defs"}, {id:"null", type:"stop", transform:"", fillColor:"#b00", fillOpac:"", lineOpac:"0", parent:"g1"}, {id:"null", type:"stop", transform:"", fillColor:"#5f0000", fillOpac:"", lineOpac:"1", parent:"g1"}, {id:"g2", type:"linearGradient", transform:"", fillColor:null, filter:null, lineColor:null, fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, text:"userSpaceOnUse", left:"530.81", top:"486.631", width:"174.805", height:"211.23", href:null, parent:"defs"}, {id:"null", type:"stop", transform:"", fillColor:"#9a0000", fillOpac:"", lineOpac:"0", parent:"g2"}, {id:"null", type:"stop", transform:"", fillColor:"#f22803", fillOpac:"", lineOpac:"1", parent:"g2"}, {id:"g3", type:"linearGradient", transform:"", fillColor:null, filter:null, lineColor:null, fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, text:"userSpaceOnUse", left:"187.874", top:"224.599", width:"581.837", height:"483.1", href:null, parent:"defs"}, {id:"null", type:"stop", transform:"", fillColor:"#ec6c60", fillOpac:"", lineOpac:"0", parent:"g3"}, {id:"null", type:"stop", transform:"", fillColor:"#d11412", fillOpac:"", lineOpac:"1", parent:"g3"}, {id:"g4", type:"linearGradient", transform:"", fillColor:null, filter:null, lineColor:null, fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, text:"userSpaceOnUse", left:"250.398", top:"101.536", width:"412.094", height:"264.542", href:null, parent:"defs"}, {id:"null", type:"stop", transform:"", fillColor:"#ffd9d9", fillOpac:"", lineOpac:"0", parent:"g4"}, {id:"null", type:"stop", transform:"", fillColor:"#ff2727", fillOpac:"", lineOpac:"1", parent:"g4"}, {id:"g5", type:"radialGradient", transform:"", fillColor:null, filter:null, lineColor:null, fillOpac:NaN, lineOpac:NaN, lineWidth:"179.55", text:"userSpaceOnUse", left:"295.471", top:"186.096", width:"50%", height:"50%", href:null, parent:"defs"}, {id:"null", type:"stop", transform:"", fillColor:"#fff", fillOpac:"", lineOpac:"0", parent:"g5"}, {id:"null", type:"stop", transform:"", fillColor:"#fff", fillOpac:"", lineOpac:"0.5", parent:"g5"}, {id:"null", type:"stop", transform:"", fillColor:"#d5d5d5", fillOpac:"", lineOpac:"1", parent:"g5"}, {id:"null", type:"path", transform:"", fillColor:"none", filter:null, lineColor:"none", fillOpac:0.178571, lineOpac:NaN, lineWidth:NaN, points:"M287.044,30.6846 C287.044,30.6846 26.8824,457.887 26.8824,457.887 C21.8903,466.047 21.8903,476.127 26.8824,484.287 C31.7784,492.351 40.9945,497.439 50.9785,497.439 L571.302,497.439 C581.19,497.439 590.406,492.351 595.398,484.287 C600.294,476.127 600.294,466.047 595.398,457.887 L335.236,30.6846 C330.244,22.5246 321.028,17.4365 311.14,17.4365 C301.252,17.4365 292.036,22.5246 287.044,30.6846 z"}, {id:"null", type:"path", transform:"", fillColor:"url(#g1)", filter:null, lineColor:"none", fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, points:"M275.586,23.0357 C275.586,23.0357 15.4247,450.238 15.4247,450.238 C10.4327,458.398 10.4327,468.478 15.4247,476.638 C20.3208,484.702 29.5368,489.79 39.5209,489.79 L559.844,489.79 C569.732,489.79 578.948,484.702 583.94,476.638 C588.836,468.478 588.836,458.398 583.94,450.238 L323.779,23.0357 C318.786,14.8756 309.57,9.78757 299.682,9.78757 C289.794,9.78757 280.578,14.8756 275.586,23.0357 z"}, {id:"null", type:"path", transform:"", fillColor:"url(#g2)", filter:null, lineColor:"none", fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, points:"M299.682,31.7717 C298.05,31.7717 296.514,32.6357 295.65,33.9797 L165.57,247.581 L35.4888,461.182 C34.6248,462.526 34.6248,464.254 35.4888,465.598 C36.3529,466.942 37.8889,467.806 39.5209,467.806 L559.844,467.806 C561.476,467.806 563.012,466.942 563.876,465.598 C564.74,464.254 564.74,462.526 563.876,461.182 L303.714,33.9797 C302.85,32.6357 301.314,31.7717 299.682,31.7717 z"}, {id:"null", type:"path", transform:"", fillColor:"none", filter:null, lineColor:"url(#g3)", fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, points:"M299.646,31.7717 C298.014,31.7717 296.478,32.6357 295.614,33.9797 L165.534,247.581 L35.4528,461.182 C34.5888,462.526 34.5888,464.254 35.4528,465.598 C36.3168,466.942 37.8528,467.806 39.4849,467.806 L559.808,467.806 C561.44,467.806 562.976,466.942 563.84,465.598 C564.704,464.254 564.704,462.526 563.84,461.182 L303.678,33.9797 C302.814,32.6357 301.278,31.7717 299.646,31.7717 z"}, {id:"null", type:"path", transform:"", fillColor:"url(#g4)", filter:null, lineColor:"none", fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, points:"M299.751,39.4651 C298.206,39.5415 296.765,40.4041 295.941,41.6851 L165.861,255.286 L147.74,285.047 C191.875,311.54 243.513,326.807 298.701,326.807 C354.673,326.807 407.009,311.129 451.552,283.937 L304.011,41.6851 C303.147,40.3411 301.623,39.4651 299.991,39.4651 C299.915,39.4651 299.827,39.4614 299.751,39.4651 z"}, {id:"null", type:"path", transform:"", fillColor:"url(#g5)", filter:null, lineColor:"none", fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, points:"M286.434,145.724 L129.281,403.678 C126.593,408.19 126.593,413.758 129.281,418.174 C131.969,422.686 137.057,425.47 142.529,425.47 L456.74,425.47 C462.211,425.47 467.3,422.686 469.988,418.174 C472.676,413.662 472.676,408.19 469.988,403.678 L312.931,145.724 C310.243,141.212 305.155,138.428 299.682,138.428 C294.211,138.428 289.122,141.212 286.434,145.724 z"}, {id:"null", type:"path", transform:"", fillColor:"none", filter:null, lineColor:"none", fillOpac:NaN, lineOpac:NaN, lineWidth:NaN, points:"M291.397,416.317 C282.393,412.005 275.536,401.636 275.536,392.333 C275.536,375.012 293.637,361.963 310.762,366.94 C322.315,370.297 330.167,380.723 330.071,392.577 C329.989,402.647 325.631,410.066 316.734,415.277 C309.924,419.267 298.531,419.734 291.397,416.317 z M293.443,347.919 C292.318,347.301 289.667,345.147 287.553,343.134 C280.166,336.098 280.176,336.16 275.361,260.882 C271.081,193.964 271.045,192.924 272.882,188.117 C277.013,177.303 286.22,172.567 301.548,173.371 C311.292,173.883 318.796,177.305 323.674,183.461 C327.84,188.719 328.746,191.692 328.742,200.092 C328.738,209.221 322.907,321.17 322.078,328.03 C320.993,337.016 315.747,344.307 308.057,347.518 C303.664,349.353 296.414,349.552 293.443,347.919 z"}] diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/events-in-canvas.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/events-in-canvas.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{"type":"doc","left":0,"top":0,"width":800,"height":600,"viewBox":"0 0 800 600","bgcolor":"#ffffff","title":"","link":"","meta":""},{"id":"shape:712ee0c8-b2a8-d0eb-7417-baed7b9025b0","type":"roundrect","transform":"","fillColor":"#f5f5f5","filter":null,"lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"rx":0,"ry":0,"left":115.789,"top":53.6842,"width":82.1053,"height":22.1053},{"id":"shape:79d46138-bb5e-e2b0-2c13-d48eb6a96e3b","type":"roundrect","transform":"","fillColor":"#f5f5f5","filter":null,"lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"rx":0,"ry":0,"left":30.5263,"top":12.6316,"width":146.842,"height":30},{"id":"shape:cf7bed82-4da8-9dd7-ddef-55158b6283a8","type":"text","transform":"","textFamily":"Arial","textSize":18,"top":34.7368,"left":40,"text":"Events in canvas ","lineWidth":3,"fillColor":"#002925","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null},{"id":"shape:9b46c937-13a2-ba20-0be9-d945895fbae1","type":"text","transform":"","textFamily":"Arial","textSize":14,"top":69.4737,"left":123.684,"text":"Container","lineWidth":3,"fillColor":"#002925","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null},{"id":"shape:b3755abe-abf8-e9ab-fd1b-1a9757c6685a","type":"text","transform":"","textFamily":"Arial","textSize":12,"top":51.9474,"left":235.211,"text":"mousedown","lineWidth":3,"fillColor":"#002925","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null},{"id":"shape:0ac08ab4-c0a5-51a6-84f7-8b91dd222213","type":"text","transform":"","textFamily":"Arial","textSize":12,"top":50.7895,"left":331.526,"text":"mouseup","lineWidth":3,"fillColor":"#002925","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null},{"id":"shape:3315f3e6-c102-7841-20a4-f755c134e096","type":"text","transform":"","textFamily":"Arial","textSize":12,"top":52.6316,"left":408.316,"text":"mousemove","lineWidth":3,"fillColor":"#002925","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null},{"id":"shape:d9a3d05d-d273-1f6a-d4b7-de62cb4ee33a","type":"text","transform":"","textFamily":"Arial","textSize":12,"top":51.7755,"left":495.737,"text":"selectstart","lineWidth":3,"fillColor":"#002925","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null},{"id":"shape:dc668903-0eef-6d5c-3a15-409d8805a815","type":"text","transform":"","textFamily":"Arial","textSize":12,"top":66.3158,"left":256.316,"text":"onMouseDown","lineWidth":1,"fillColor":"#2b0000","filter":null,"lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:872c0900-accf-3714-4a8b-8ed2865b2d6d","type":"text","transform":"","textFamily":"Arial","textSize":12,"top":66.1579,"left":355.211,"text":"onMouseUp","lineWidth":1,"fillColor":"#2b0000","filter":null,"lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:cf2cd7a9-5e74-a026-989c-c5d2995ed044","type":"text","transform":"","textFamily":"Arial","textSize":12,"top":66.1579,"left":443.632,"text":"onMouseMove","lineWidth":1,"fillColor":"#2b0000","filter":null,"lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:ba20dfb9-a3be-ea51-56c8-d1f6c07079fc","type":"text","transform":"","textFamily":"Arial","textSize":12,"top":65.986,"left":546.263,"text":"onSelectStart","lineWidth":1,"fillColor":"#2b0000","filter":null,"lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:b710b1a6-bc19-99ab-eb4b-676791e93320","type":"text","transform":"","textFamily":"Arial","textSize":30,"top":277.895,"left":55.7895,"text":"I'm make event on canvas ","lineWidth":1,"fillColor":"#aa0000","filter":null,"lineColor":"none","fillOpac":1,"lineOpac":1}] \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/Thumbs.db Binary file onlypaths/img/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/bar.gif Binary file onlypaths/img/bar.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/circle.gif Binary file onlypaths/img/circle.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/delete.gif Binary file onlypaths/img/delete.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/editpath.gif Binary file onlypaths/img/editpath.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/image.gif Binary file onlypaths/img/image.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/line.gif Binary file onlypaths/img/line.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/loadcode.gif Binary file onlypaths/img/loadcode.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/oneback.gif Binary file onlypaths/img/oneback.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/onetop.gif Binary file onlypaths/img/onetop.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/path2.gif Binary file onlypaths/img/path2.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/path3.gif Binary file onlypaths/img/path3.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/rainbow1.png Binary file onlypaths/img/rainbow1.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/rectangle.gif Binary file onlypaths/img/rectangle.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/reflect_h.gif Binary file onlypaths/img/reflect_h.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/reflect_v.gif Binary file onlypaths/img/reflect_v.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/reset.gif Binary file onlypaths/img/reset.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/roundrect.gif Binary file onlypaths/img/roundrect.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/select.gif Binary file onlypaths/img/select.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/select3.gif Binary file onlypaths/img/select3.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/setpath1.gif Binary file onlypaths/img/setpath1.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/shape.gif Binary file onlypaths/img/shape.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/slider-metal.gif Binary file onlypaths/img/slider-metal.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/slider-point.gif Binary file onlypaths/img/slider-point.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/text.gif Binary file onlypaths/img/text.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/theme/images/Thumbs.db Binary file onlypaths/img/theme/images/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/theme/images/no.gif Binary file onlypaths/img/theme/images/no.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/theme/images/ok.gif Binary file onlypaths/img/theme/images/ok.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/tocurve.gif Binary file onlypaths/img/tocurve.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/totheback.gif Binary file onlypaths/img/totheback.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/tothetop.gif Binary file onlypaths/img/tothetop.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/viewcode.gif Binary file onlypaths/img/viewcode.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/white01.gif Binary file onlypaths/img/white01.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/zoom.gif Binary file onlypaths/img/zoom.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/zoom_frame.gif Binary file onlypaths/img/zoom_frame.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/zoom_hand.gif Binary file onlypaths/img/zoom_hand.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/zoom_minus.gif Binary file onlypaths/img/zoom_minus.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/zoom_more.gif Binary file onlypaths/img/zoom_more.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/img/zoom_window.gif Binary file onlypaths/img/zoom_window.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/index.htm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/index.htm Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,93 @@ + + + + + Onlypaths Symply Web 0.2.3 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ +
+
+
+
+
+
+ + + + +
+ +
+ X     
+ Y     
+ Width 
+ Height + +
+ +
+ File:      +
+ + +
+ +
+
+
+
+
+ + +
+ +
+ + +
+
+
+
+ + + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/application.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/application.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1670 @@ + +/* + * + */ + +Ext.BLANK_IMAGE_URL = 'theme/images/default/s.gif'; + +if(typeof console != 'object') { + console = {}; + console.log = function(){return false;}; +} + + + function $(e){return Ext.get(e).dom} + var c, browser, browserpath; + var colorpage="#ccccdd"; + var colorpage1a="#ee00aa"; //north + var colorpage1b="#ee00cc"; + var colorpage1c="#ee00ee"; + var colorpage2="#77aaaa"; //sud + var colorpage3="#ddee00"; //est + var colorpage4="#ccee00"; //west + + var selectmode=''; + var selectedit=''; + + + ie = navigator.appVersion.match(/MSIE (\d\.\d)/); + opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1); + + + + window.onresize = doResize; + var initialFile='onerobot.txt'; + var docx=0; + var docy=0; + var docw=600; + var doch=400; + var canvasWidth=600;//FRONTsize[0]; + var canvasW=canvasWidth; + var canvasHeight=400;//FRONTsize[1]; + var canvasH=canvasHeight; + var canvasX=0; + var canvasY=0; + var zoomx=docx; + var zoomy=docy; + var zoomw=docw; + var zoomh=doch; + var marginx=0; + var marginy=0; + var margin=100; + var screenSize=myWorkSize(); + var scrW = screenSize[0];//screen.availWidth; + var scrH = screenSize[1];//screen.availHeight; + + var canvasYpercent=100; + var canvasXpercent=100; + + +//? + var wndW=scrW;//window.width; + var wndH=scrH;//window.height; +// + var proporWindow= scrW/scrH; + var proporCanvas=canvasW/canvasH; + var proporDoc=docw/doch; + var proporZoom= zoomw/zoomh; + var proporx=proporCanvas; //IE + var propory=1; //IE + var viewMode='canvas';//'canvas' or 'preview' + + var zoominit=docx+' '+docy+' '+docw+' '+doch; + var zoominit1 =zoominit; + var zoominit2 =zoominit; + + var fieldViewx=Math.round(canvasH*proporCanvas); + var fieldViewy=canvasH; + var diagonalFrame=dist2p(0,0,fieldViewx,fieldViewy); + var diagonalAngle=getAngle(fieldViewx,fieldViewy); + var diagonalinit=diagonalFrame; + //alert(diagonalinit); + + // double? + var diagonalMidx=fieldViewx/2; + var diagonalMidy=fieldViewy/2; + var centerZoomx=diagonalMidx;//Math.round(zoomw/2); + var centerZoomy=diagonalMidy;//Math.round(zoomh/2); + // + + + var proporDiagonal=diagonalFrame/diagonalinit; + ////////////////////////// + + var wProportion={x:35, y:24} + + var vertexNORTHmenu={}; + var vertexNORTHglobals={}; + var vertexNORTHoptions={}; + var vertexSUD={}; + var vertexEST={}; + var vertexWEST={}; + var vertexFRONT={}; + + var NORTHmenusize=[]; + var NORTHglobalssize=[]; + var NORTHoptionssize=[]; + var SUDsize=[]; + var ESTsize=[]; + var WESTsize=[]; + var FRONTsize=[]; + + + vertexFrames(); + + + var FRONT=''; + //FRONT+='
'; + + var NORTHmenu=''; + NORTHmenu+='  File  Edit  View'; + + var NORTHglobals=''; + NORTHglobals+=''; + NORTHglobals+=' '; + NORTHglobals+=' ' + NORTHglobals+=' '; + NORTHglobals+=' '; + NORTHglobals+=' '; + NORTHglobals+=' '; + NORTHglobals+=' ', + NORTHglobals+=' '; + NORTHglobals+=''; + + var NORTHoptions=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + + + var EST=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + + var WEST=''; + WEST+='
0,0
'; + WEST+='
0,0
'; + + WEST+='
Grid:
'; + WEST+=''; + WEST+='
'; + + WEST+='
'; + WEST+='
'; + WEST+=' Fill
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+=' Line
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + + WEST+='
'; + WEST+=' '; + + var SUD=""; + //SUD+=''; + //SUD+=''; + //SUD+=''; + //SUD+='
 '; + SUD+='
 '; + SUD+=''; + // SUD+=''; + // SUD+='
'; + // SUD+='
'; + + var currentEditStatus='off'; + var currentFileStatus='off'; + var currentViewStatus='off'; + var infoFrame, docFrame; +Ext.onReady(function() { + + + //var map = new Ext.KeyMap(document, { + // key: [Ext.EventObject.LEFT, Ext.EventObject.RIGHT], + // ctrl: true, + // fn: keypresshandler + //}); + //Ext.get("FRONT").dom.innerHTML=(FRONT); + Ext.get("NORTHmenu").dom.innerHTML=(NORTHmenu); + Ext.get("NORTHglobals").dom.innerHTML=(NORTHglobals); + Ext.get("NORTHoptions").dom.innerHTML=(NORTHoptions); + Ext.get("EST").dom.innerHTML=(EST); + Ext.get("WEST").dom.innerHTML=(WEST); + Ext.get("SUD").dom.innerHTML=(SUD); + + resizeFrame(); + var map= new Ext.KeyMap(document, [ + { + key: [46],//DELETE + fn: function(){ c.deleteSelection(); } + }, { + key: "x", + ctrl:true, + fn: function(){ + c.clipboard=c.renderer.copy(c.selected); + c.deleteSelection(); + } + }, { + key: "c", + ctrl:true, + fn: function(){ + c.clipboard=c.renderer.copy(c.selected); + } + }, { + key: "d", + ctrl:true, + fn: function(){ + c.selected=c.renderer.duplicate(c.selected); + c.selected.id = 'shape:' + createUUID(); + Ext.get(c.selected).on( "mousedown", c.onHit,c); + } + }, { + key: "v", + ctrl:true, + fn: function(){ + c.selected=c.renderer.paste(c.clipboard,c.mouseDownX,c.mouseDownY); + c.selected.id = 'shape:' + createUUID(); + Ext.get(c.selected).on( "mousedown", c.onHit,c); + } + }, { + key: "z", //UNDO + ctrl:true, + shift:false, + fn: function(){ c.clipboard=c.renderer.undo(); } + } +]); + + /* + Ext.get("richdraw").dom.style.width=(canvasWidth); + Ext.get("richdraw").dom.style.height=(canvasHeight); + Ext.get("richdraw").dom.style.left=(canvasX); + Ext.get("richdraw").dom.style.top=(canvasY); + */ + + + + menuEdit = new Ext.menu.Menu({ + id: 'menuedit', + items: [ + {icon: "img/viewcode.gif", text: 'Copy all ', handler: shm}, + {icon: "img/viewcode.gif", text: 'Paste all ', handler: lcm}, + {icon: "img/viewcode.gif", text: 'Delete all ', handler: deleteAllShapes}, + {icon: "img/viewcode.gif", text: 'Duplicate  Ctrl+d', handler: duplicateSelected}, + {icon: "img/viewcode.gif", text: 'Cut    Ctrl+x', handler: cutSelected}, + {icon: "img/viewcode.gif", text: 'Copy    Ctrl+c', handler: copySelected}, + {icon: "img/viewcode.gif", text: 'Paste  Ctrl+v', handler: pasteSelected}, + {icon: "img/viewcode.gif", text: 'Delete   Supr', handler: deleteShape}, + {icon: "img/viewcode.gif", text: 'Delete last Ctrl+z', handler: deleteLastShapes}, + + ] + }); + + menuFile = new Ext.menu.Menu({ + id: 'menufile', + + items: [ + new Ext.menu.Item({ icon: "img/viewcode.gif", text: 'New ', handler: newFile }), + new Ext.menu.Item({ icon: "img/viewcode.gif", text: 'Open ', handler: openFile }), + new Ext.menu.Item({ icon: "img/viewcode.gif", text: 'View SVG code ', handler: showMarkupCode }), + new Ext.menu.Item({icon: "img/viewcode.gif", text: 'View OPF code ', handler: showMarkup }), + new Ext.menu.Item({icon: "img/viewcode.gif", text: 'Document properties ', handler: documentProperties }) + ] + }); + menuView = new Ext.menu.Menu({ + id: 'menuview', + + items: [ + {icon: "img/viewcode.gif", text: 'Preview ', handler: preView}, + {icon: "img/viewcode.gif", text: 'Canvas ', handler: canvasView} + ] + }); +/* + items: [ + {icon: "img/viewcode.gif", text: 'View SVG code ', handler: showMarkupCode }, + {icon: "img/viewcode.gif", text: 'View OPF code ', handler: showMarkup }, + {icon: "img/viewcode.gif", text: 'Document properties ', handler: documentProperties }, + + ] +*/ +// define the handler for mouseover/out of either button or menu itself + var editHandler = function(e) + { + if(currentEditStatus=='on') + { + var edit = menuEdit.getEl(); + var buttonEdit = Ext.get('edit'); + if(!edit.getRegion().contains(e.getPoint()) && !buttonEdit.getRegion().contains(e.getPoint())) + { + menuEdit.hide(); + currentEditStatus='off'; + } + } + else + { + menuEdit.show('edit'); + currentEditStatus='on'; + } + } + + var fileHandler = function(e) + { + if(currentFileStatus=='on') + { + var file = menuFile.getEl(); + var buttonFile = Ext.get('file'); + if(!file.getRegion().contains(e.getPoint()) && !buttonFile.getRegion().contains(e.getPoint())) + { + menuFile.hide(); + currentFileStatus='off'; + } + } + else + { + menuFile.show('file'); + currentFileStatus='on'; + } + } + + + var viewHandler = function(e) + { + if(currentViewStatus=='on') + { + var view = menuView.getEl(); + var buttonView = Ext.get('view'); + if(!view.getRegion().contains(e.getPoint()) && !buttonView.getRegion().contains(e.getPoint())) + { + menuView.hide(); + currentViewStatus='off'; + } + } + else + { + menuView.show('view'); + currentViewStatus='on'; + } + } + + // define the events to observe + Ext.get('edit').on('mouseover',editHandler); + Ext.get('edit').on('mouseout',editHandler); + menuEdit.getEl().on('mouseout',editHandler); + + Ext.get('file').on('mouseover',fileHandler); + Ext.get('file').on('mouseout',fileHandler); + menuFile.getEl().on('mouseout',fileHandler); + + Ext.get('view').on('mouseover',viewHandler); + Ext.get('view').on('mouseout',viewHandler); + menuView.getEl().on('mouseout',viewHandler); + + + +}); + +// end ONREADY + +function borderDoc(){ + //c.rectCanvas(docx,docy,docw,doch,viewBox) + if(viewMode=='canvas') + { + var obj=document.getElementById("rectDoc"); + if(obj){c.renderer.remove(obj) } + c.renderer.rectDoc(zoominit); + //c.renderer.rectDoc(zoominit1); + //pst.id = "rectCanvas"; + //c.selected=obj; + // c.renderer.remove(obj) + //var clip=c.renderer.copy(obj); + + + + //var pst=c.container.appendChild( clip ); + //c.renderer.paste(clip,0,0); + //pst.id = "rectCanvas"; + + + //pasteSelected(); + + //c.renderer.duplicate(document.getElementById("rectCanvas")) + //c.renderer.remove(document.getElementById("rectCanvas")); + } + if(viewMode=='preview') + { + var obj=document.getElementById("rectDoc"); + if(obj){c.renderer.remove(obj) } + } +} + function demo() { + _dom=document.all?3:(document.getElementById?1:(document.layers?2:0)); + ie = navigator.appVersion.match(/MSIE (\d\.\d)/); + opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1); + + var renderer; + + if ((!ie) || (opera)) { + renderer = new SVGRenderer(); + browser='svg'; + browserpath="linkspath.htm"; + } + else { + renderer = new VMLRenderer(); + browser='vml'; + browserpath="vmlpaths.htm"; + } + + c = new RichDrawEditor(document.getElementById('richdraw'), renderer); + + c.onInputXY = function(x,y){$('xyinput').innerHTML = parseInt(x)+','+parseInt(y)}//[x,y].join("
")} + c.onViewInputXY = function(x,y){$('zoomOverInput').innerHTML = parseInt(x)+','+parseInt(y)}//[x,y].join("
")} + + c.onselect = onSelect; + c.onunselect = onUnselect; + + + + // c.onkeydown = keypresshandler; + //c.onkeypress = c.onKeyPress; + //document.onkeypress = c.onKeyPress; + + + + c.editCommand('fillcolor', 'red'); + c.editCommand('linecolor', 'black'); + c.editCommand('linewidth', '1px'); + + + //setMode('path', 'Path'); + setMode('select', 'Selection'); + + document.body.style.backgroundColor = colorpage; + + + //alert(vertexSUD.SUD1[0]+' '+vertexSUD.SUD1[1]+ '--'+wndW+' '+wndH); + + setTimeout(loadDemo,500) + //Ext.get("richdraw").on('keydown', function(e){alert('dfsd'); }, false); + //Ext.get("richdraw").on('keydown', function(e){alert(e.keyCode); }); + //document.onkeydown = keypresshandler; +//richdraw.svgRoot.setAttributeNS(null,'viewBox', '0 0 700 500'); + + //setTimeout(borderDoc,500) + + } //END demo + + +///////////////// + + +////////////////// +var Docs = function(){ + return { + init : function(){ + var loading = Ext.get('loading'); + var mask = Ext.get('loading-mask'); + mask.setOpacity(.7); + mask.shift({ + xy:loading.getXY(), + width:loading.getWidth(), + height:loading.getHeight(), + remove:true, + duration:2, + opacity:.8, + easing:'bounceOut', + callback : function(){ + loading.fadeOut({duration:.2,remove:true}); + } + }); + } + }; +}(); + + +Ext.onReady(Docs.init, Docs, true); + +//var win; + +function showinfoFrame(wtitle) { + var win = new Ext.Window({ + closeAction: 'hide', + renderTo: 'showInfo', + autoScroll:true, + modal:true, + width: '440', + height:'300', + x: '120', + y: '40', + title: wtitle, + draggable :true, + html: '', + hidden: true, + contentEl: 'divCode', + collapsed: true + + }); + win.show(); +} +function showdocFrame(wtitle) { + var win = new Ext.Window({ + closeAction: 'hide', + renderTo: 'showInfo', + width: '340', + height:'300', + x: '120', + y: '40', + title: wtitle, + draggable :true, + html: '', + hidden: true, + contentEl: 'docProperties', + collapsed: true + + }); + win.show(); +} +function showopenFile(wtitle) { + var win = new Ext.Window({ + autoScroll:true, + closeAction: 'hide', + renderTo: 'showInfo', + width: '440', + height:'300', + x: '120', + y: '40', + title: wtitle, + draggable :true, + html: '', + hidden: true, + contentEl: 'divopenFile', + collapsed: true + + }); + win.show(); +} + +function preView() { + viewMode='preview'; + // + //document.forms[0].code.value=Ext.util.JSON.encode(canvas(c)); + //myOPF=document.forms[0].code.value; + c.renderer.view(docx,docy,docw,doch,zoominit); + borderDoc(); + + //var all=canvas(c) ; + // deleteAllShapes() + //load(all,c); + +} + +function canvasView() { + viewMode='canvas'; + //deleteAllShapes() + //document.forms[0].code.value=Ext.util.JSON.encode(canvas(c)); + //myOPF=document.forms[0].code.value; + //load(myOPF,c); + c.renderer.view(docx,docy,docw,doch,zoominit); + borderDoc(); + //var all=canvas(c) ; + //deleteAllShapes() + //load(all,c); + +} + + +///////////////////////////// +//FUNCTIONS +///////////////////////////// + +function changeInitialFile() +{ + initialFile=document.forms[0].file.value; + c.renderer.removeAll() + loadDemo(); + if(viewMode=='canvas') + { + c.renderer.rectDoc(zoominit) + } + //win.hide(); + //document.getElementById("showInfo").style.display='none'; +} + + function setMode(mode, status) + { + + + selectmode=mode; + if(mode=='shape') + { + c.editCommand('mode', 'select'); + }else{ + if(mode=='pathsEdit' ) + { + mode='select'; + } + c.editCommand('mode', mode); + } + + var imgs = $('EST').getElementsByTagName('img'); + + for (var i=0; i'+$('option_text_size').value+'<;>'+$('option_text_family').value); + } + + function setGridWidth(widths) + { + var width = eval(widths.options[widths.selectedIndex].value); + RichDrawEditor.prototype.setGrid(width, width); + } + +/////////////////////////////// + + + function getOptionByValue(select, value) + { + /*for (var i=0; i1){ + for(var a=1;a<=numpoints;a++) + { + + if(a==mypointNum){ + + segment=points[a].split(' '); + prevControl=segment[0]+' '; + nextControl=segment[1]+' '; + nodePoint=segment[2]+' '; + + + /*if(controlNodeNum==0){chain+=prevControl; var point=prevControl.split(',');} + if(controlNodeNum==1){chain+=nextControl; var point=nextControl.split(',');} + if(controlNodeNum==2){chain+=nodePoint; var point=nodePoint.split(',');} + */ + + var point=nodePoint.split(','); + point[1]= $('option_path_x').value; + point[2]= $('option_path_y').value; + var change=point.join(',') + + chain+='C'+prevControl+ nextControl + change+' '; + }else{ + chain+='C'+points[a]; + } + + } + + }else{ + chain+='C'+points[1]; + + } + //$('someinfo').value= chain; + $('control_codebase').value=chain; + + + + + + if (keycode == 13 || keycode == 40 || keycode == 38) + { + //alert(myfield.id); + c.renderer.tocurve(); + + return false; + + } + else + return true; + } + + + + function edit(myfield,e) + { + + var keycode; + + + // ++? if (window.event) keycode = window.event.e; + //else if (e) keycode = e.which; + + e= (e) ? e : ((window.event) ? event : null); + keycode=e.keyCode; + //var keycode = e.which?e.which:e.keycode + + //document.layers ? e.which : + //document.all ? e.keyCode : + //document.getElementById ? e.keyCode : 0; + //else return true; + var keyChar = String.fromCharCode(keycode); + //var numCheck = /\d/; + //if (((keyChar=='.')&&(obj.value.indexOf('.')==-1))¦¦(keycode<32)¦¦numCheck.test(keyChar)¦¦((keycode>=37)&&(keycode<=40)&&(!e.modifiers&&!e.shiftKey))) { + + //alert(keycode+' _ '+keyChar); + var shs= myfield.id.split('_'); + var sh=shs[1]; + if(myfield.id.indexOf('control_codebase')<=0) + { + if (keycode == 38)//#26 + { + + if(eval(myfield.value)>0) + { + myfield.value=eval(myfield.value)+1; + //alert(myfield.value); + } + //return false; + //alert('keycode') + + } + if (keycode == 40)// #28 + { + myfield.value=eval(myfield.value)-1; + if(myfield.id=='option_path_sclx' || myfield.id=='option_path_scly') + { + if( eval(myfield.value)<=0 ) + { + myfield.value=1; + } + } + + if(myfield.id=='option_text_size') + { + if( eval(myfield.value)<=0 ) + { + myfield.value=1; + } + } + } + + } + + if (keycode == 13 || keycode == 40 || keycode == 38) + { + var check=0; + if(myfield.id=='control_codebase') + { + //alert(myfield.id) + //c.submitShape($('control_codebase').value+''); + check=1; + setShape(); + } + + if(myfield.id.indexOf('href')>0) + { + c.submitShape(myfield.value) + } + + if(myfield.id.indexOf('tr')>0 || myfield.id.indexOf('scl')>0) + { + if(check==0) + { + c.submitShape($('option_'+sh+'_trx').value+';'+$('option_'+sh+'_try').value+';'+$('option_'+sh+'_sclx').value+';'+$('option_'+sh+'_scly').value+';'+$('option_'+sh+'_rot').value) + } + } + + if(myfield.id.indexOf('rot')>0) + { + c.submitShape($('option_'+sh+'_trx').value+';'+$('option_'+sh+'_try').value+';'+$('option_'+sh+'_sclx').value+';'+$('option_'+sh+'_scly').value+';'+$('option_'+sh+'_rot').value) + } + + if(myfield.id.indexOf('text')>0) + { + c.submitShape($('option_text_message').value+'<;>'+$('option_text_size').value+'<;>'+$('option_text_family').value); + } + //alert(myfield.id); + return false; + + } + else + return true; + } + + + + +function env(myfield,delta) + { + + //alert(keycode+' _ '+keyChar); + + if (delta >0)//#26 + { + myfield.value=eval(myfield.value)+1; + //return false; + //alert('keycode') + } + else + { + myfield.value=eval(myfield.value)-1; + //return false; + } + + + if(myfield.id=='option_image_href') + { + c.submitShape(myfield.value) + } + if(myfield.id=='option_select_trx' || myfield.id=='option_select_try' || myfield.id=='option_select_sclx' || myfield.id=='option_select_scly') + { + c.submitShape($('option_select_trx').value+';'+$('option_select_try').value+';'+$('option_select_sclx').value+';'+$('option_select_scly').value+';'+$('option_select_rot').value) + } + if(myfield.id=='option_select_rot') + { + c.submitShape($('option_select_trx').value+';'+$('option_select_try').value+';'+$('option_select_sclx').value+';'+$('option_select_scly').value+';'+$('option_select_rot').value) + } + + } + + + function clockdata(){ + ////////////// + //++ + + data_path_close = $('option_path_close').checked; + data_text_family = $('option_text_family').value; + data_text_size = parseFloat($('option_text_size').value); + data_text_messaje = $('option_text_message').value; + data_image_href = $('option_image_href').value; + + //////////// + } + + function myWorkSize() { + var myWidth = 0, myHeight = 0; + if( typeof( window.innerWidth ) == 'number' ) { + //Non-IE + myWidth = window.innerWidth; + myHeight = window.innerHeight; + } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { + //IE 6+ in 'standards compliant mode' + myWidth = document.documentElement.clientWidth; + myHeight = document.documentElement.clientHeight; + } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { + //IE 4 compatible + myWidth = document.body.clientWidth; + myHeight = document.body.clientHeight; + } + return [ myWidth, myHeight] ; +} + +function doResize(){ + //deleteAllShapes(); + vertexFrames(); + resizeFrame(); + //c.renderer.zoomFrame(zoominit); + //c.renderer.view(canvasX,canvasY,canvasW,canvasH,zoominit) + //c.renderer.view(docx,docy,docw,doch,zoominit1) + // delete rectCanvas + // var vB=zoomx+' '+zoomy+' '+zoomw+' '+zoomh; + + //c.renderer.rectCanvas(docx,docy,docw,doch,vB); +} + +function vertexFrames(){ + + var screenSize=myWorkSize(); + scrW = screenSize[0];//screen.availWidth; + scrH = screenSize[1];//screen.availHeight; + + wndW=scrW;//window.width; + wndH=scrH;//window.height; + + + if (scrW != wndW || scrH != wndH) { + //window.resizeTo(scrW, scrH); + //window.moveTo(0, 0); + } + //var wProportion={x:35, y:24} + + vertexNORTHmenu={ NORTHmenu1:[0,0],NORTHmenu2:[scrW,0],NORTHmenu3:[0,wProportion.y],NORTHmenu4:[scrW,wProportion.y] }; + vertexNORTHglobals={ NORTHglobals1:[0,wProportion.y],NORTHglobals2:[scrW,wProportion.y],NORTHglobals3:[0,wProportion.y*2],NORTHglobals4:[scrW,wProportion.y*2] }; + vertexNORTHoptions={ NORTHoptions1:[0,wProportion.y*2],NORTHoptions2:[scrW,wProportion.y*2],NORTHoptions3:[0,wProportion.y*3],NORTHoptions4:[scrW,wProportion.y*3] }; + vertexSUD={ SUD1:[0,wndH-wProportion.y*3], SUD2:[scrW,(wndH-wProportion.y*3)], SUD3:[0,wndH], SUD4:[scrW,wndH]}; + vertexEST={ EST1:[0,wProportion.y*3], EST2:[wProportion.x,wProportion.y*3], EST3:[0,(wndH-wProportion.y*3)], EST4:[wProportion.x,(wndH-wProportion.y*3)] }; + vertexWEST={ WEST1:[(scrW-wProportion.x*3),wProportion.y*3], WEST2:[scrW,wProportion.y*3], WEST3:[(scrW-wProportion.x*3),(wndH-wProportion.y*3)], WEST4:[scrW,(wndH-wProportion.y*3)] }; + vertexFRONT={ FRONT1:[vertexEST.EST2[0],vertexEST.EST2[1]], FRONT2:[vertexWEST.WEST1[0],vertexWEST.WEST1[1]], FRONT3:[vertexEST.EST4[0],vertexEST.EST4[1]], FRONT4:[vertexWEST.WEST3[0],vertexWEST.WEST3[1]] }; + + NORTHmenusize=[vertexNORTHmenu.NORTHmenu4[0]-vertexNORTHmenu.NORTHmenu1[0],vertexNORTHmenu.NORTHmenu4[1]-vertexNORTHmenu.NORTHmenu1[1]]; + NORTHglobalssize=[vertexNORTHglobals.NORTHglobals4[0]-vertexNORTHglobals.NORTHglobals1[0],vertexNORTHglobals.NORTHglobals4[1]-vertexNORTHglobals.NORTHglobals1[1]]; + NORTHoptionssize=[vertexNORTHoptions.NORTHoptions4[0]-vertexNORTHoptions.NORTHoptions1[0],vertexNORTHoptions.NORTHoptions4[1]-vertexNORTHoptions.NORTHoptions1[1]]; + SUDsize=[vertexSUD.SUD4[0]-vertexSUD.SUD1[0],vertexSUD.SUD4[1]-vertexSUD.SUD1[1]]; + ESTsize=[vertexEST.EST4[0]-vertexEST.EST1[0],vertexEST.EST4[1]-vertexEST.EST1[1]]; + WESTsize=[vertexWEST.WEST4[0]-vertexWEST.WEST1[0],vertexWEST.WEST4[1]-vertexWEST.WEST1[1]]; + FRONTsize=[vertexFRONT.FRONT4[0]-vertexFRONT.FRONT1[0],vertexFRONT.FRONT4[1]-vertexFRONT.FRONT1[1]]; + + + + //percent of FRONTsize + proporDoc= FRONTsize[0]/FRONTsize[1]; + canvasYpercent=100; + canvasXpercent=100; + canvasWidth=Math.round(FRONTsize[0]*canvasXpercent/100);//FRONTsize[0]; + canvasW=canvasWidth; + canvasHeight=Math.round(canvasYpercent*FRONTsize[1]/100);//FRONTsize[1]; + canvasH=canvasHeight; + canvasX=Math.round((FRONTsize[0]-canvasW)/2); + canvasY=Math.round((FRONTsize[1]-canvasH)/2); + + + //vertexFRONTcanvas={ FRONT1:[vertexEST.EST2[0],vertexEST.EST2[1]], FRONT2:[vertexWEST.WEST1[0],vertexWEST.WEST1[1]], FRONT3:[vertexEST.EST4[0],vertexEST.EST4[1]], FRONT4:[vertexWEST.WEST3[0],vertexWEST.WEST3[1]] }; + //FRONTcanvassize=[vertexFRONT.FRONT4[0]-vertexFRONT.FRONT1[0],vertexFRONT.FRONT4[1]-vertexFRONT.FRONT1[1]]; + + + //centerZoomx=Math.round(canvasWidth/2); + //centerZoomy=Math.round(canvasHeight/2); + if(canvasH==0){ canvasH=0.00000001; } + proporCanvas= canvasW/canvasH ; + //zoominit='0 0 '+zoomw+' '+zoomh;// + + makeWorkSite(canvasH,(-canvasW/2)+(docw/2),(-canvasH/2)+(doch/2)); + diagonalinit=diagonalFrame; + proporDiagonal=diagonalFrame/diagonalinit; + zoominit=(zoomx)+' '+(zoomy)+' '+zoomw+' '+zoomh; + //$('someinfo').value= zoominit; + //document.forms[0].someinfo.value= zoominit; + //document.getElementById("someinfo").value = zoominit + //Ext.get('richdraw').dom.style.scrollTop = ('40%'); + //alert(zoominit); +} + +function resizeFrame(){ + + Ext.get('NORTHmenu').dom.style.backgroundColor = (colorpage1a); + Ext.get('NORTHglobals').dom.style.backgroundColor = (colorpage1b); + Ext.get('NORTHoptions').dom.style.backgroundColor = (colorpage1c); + + Ext.get('SUD').dom.style.backgroundColor = (colorpage2); + Ext.get('EST').dom.style.backgroundColor = (colorpage3); + Ext.get('WEST').dom.style.backgroundColor = (colorpage4); + + Ext.get('linksPaths').dom.style.backgroundColor = (colorpage); // bad + + + Ext.get('NORTHmenu').dom.style.left =(vertexNORTHmenu.NORTHmenu1[0]+'px'); Ext.get('NORTHmenu').dom.style.top =(vertexNORTHmenu.NORTHmenu1[1]+'px');Ext.get('NORTHmenu').dom.style.width =(NORTHmenusize[0]+'px'); Ext.get('NORTHmenu').dom.style.height = (NORTHmenusize[1]+'px'); + Ext.get('NORTHglobals').dom.style.left =(vertexNORTHglobals.NORTHglobals1[0]+'px'); Ext.get('NORTHglobals').dom.style.top =(vertexNORTHglobals.NORTHglobals1[1]+'px');Ext.get('NORTHglobals').dom.style.width =(NORTHglobalssize[0]+'px'); Ext.get('NORTHglobals').dom.style.height =(NORTHglobalssize[1]+'px'); + Ext.get('NORTHoptions').dom.style.left =(vertexNORTHoptions.NORTHoptions1[0]+'px'); Ext.get('NORTHoptions').dom.style.top =(vertexNORTHoptions.NORTHoptions1[1]+'px');Ext.get('NORTHoptions').dom.style.width =(NORTHoptionssize[0]+'px'); Ext.get('NORTHoptions').dom.style.height =(NORTHoptionssize[1]+'px'); + Ext.get('SUD').dom.style.left =(vertexSUD.SUD1[0]+'px'); Ext.get('SUD').dom.style.top =(vertexSUD.SUD1[1]+'px');Ext.get('SUD').dom.style.width=(SUDsize[0]+'px'); Ext.get('SUD').dom.style.height =(SUDsize[1]+'px'); + Ext.get('EST').dom.style.left =(vertexEST.EST1[0]+'px'); Ext.get('EST').dom.style.top =(vertexEST.EST1[1]+'px');Ext.get('EST').dom.style.width=(ESTsize[0]+'px'); Ext.get('EST').dom.style.height =((ESTsize[1]+'px')); + Ext.get('WEST').dom.style.left =(vertexWEST.WEST1[0]+'px'); Ext.get('WEST').dom.style.top =(vertexWEST.WEST1[1]+'px');Ext.get('WEST').dom.style.width=(WESTsize[0]+'px'); Ext.get('WEST').dom.style.height =((WESTsize[1]+'px')); + Ext.get('FRONT').dom.style.left =(vertexFRONT.FRONT1[0]+'px'); Ext.get('FRONT').dom.style.top =(vertexFRONT.FRONT1[1]+'px');Ext.get('FRONT').dom.style.width=(FRONTsize[0]+'px'); Ext.get('FRONT').dom.style.height =(FRONTsize[1]+'px'); + + Ext.get('richdraw').dom.style.left =(canvasX+'px'); Ext.get('richdraw').dom.style.top =(canvasY+'px');Ext.get('richdraw').dom.style.width=(canvasW+'px'); Ext.get('richdraw').dom.style.height =(canvasH+'px'); + +} + +function documentProperties(){ + var tokens = zoominit.split(' '); + + document.forms[0].xDocument.value=tokens[0]; + document.forms[0].yDocument.value=tokens[1]; + + document.forms[0].widthDocument.value=tokens[2]; + document.forms[0].heightDocument.value=tokens[3]; + showdocFrame('Document properties') + //docFrame.setTitle('Document properties'); + //docFrame.show(); + +} +function changeDocumentProperties(){ + + //percent of FRONTsize + proporSpace= FRONTsize[0]/FRONTsize[1]; + //PERCENT + + //canvasYpercent=95; + //canvasXpercent=97; + /* + canvasWidth=Math.round(FRONTsize[0]*canvasXpercent/100);//FRONTsize[0]; + canvasW=canvasWidth; + canvasHeight=Math.round(canvasYpercent*FRONTsize[1]/100);//FRONTsize[1]; + canvasH=canvasHeight; + */ + + docx=eval(document.forms[0].xDocument.value); + docy=eval(document.forms[0].yDocument.value); + + docw=eval(document.forms[0].widthDocument.value); + doch=eval(document.forms[0].heightDocument.value); + zoominit= docx+' '+docy+' '+docw+' '+doch; + c.renderer.view(docx,docy,docw,doch,zoominit); + borderDoc(); + + //doResize(); + //canvasX=Math.round((FRONTsize[0]-canvasW)/2); + //canvasY=Math.round((FRONTsize[1]-canvasH)/2); + + + //Ext.get('richdraw').dom.style.left =(canvasX+'px'); Ext.get('richdraw').dom.style.top =(canvasY+'px');Ext.get('richdraw').dom.style.width=(canvasW+'px'); Ext.get('richdraw').dom.style.height =(canvasH+'px'); + +} +function makeWorkSite(width,left,top) { + fieldViewx=Math.round(width*proporCanvas)*1; + fieldViewy=width*1; + diagonalFrame=dist2p(0,0,fieldViewx*1,fieldViewy*1); + diagonalAngle=getAngle(fieldViewx,fieldViewy); + diagonalMidx=fieldViewx/2; + diagonalMidy=fieldViewy/2; + centerZoomx=diagonalMidx; + centerZoomy=diagonalMidy; + + //alert(diagonalinit+' '+diagonalFrame+' '+proporDiagonal); + //alert(canvasW+''+canvasW+' propor:'+proporCanvas+' Docy:'+docy+' fieldView:'+fieldViewx+' '+fieldViewy); + zoomx=(diagonalMidx+(diagonalFrame/2)*Math.cos(diagonalAngle+Math.PI))+left;//-(fieldViewx/8);//-(canvasW/2)docx-fieldViewx; + zoomy=(diagonalMidy+(diagonalFrame/2)*Math.sin(diagonalAngle+Math.PI))+top;//-(fieldViewy/8);//-(canvasH/2);//docy-fieldViewy; + zoomw=diagonalMidx+(diagonalFrame/2)*Math.cos(diagonalAngle);//fieldViewx*1.25;//docw+fieldViewx*2; + zoomh=diagonalMidy+(diagonalFrame/2)*Math.sin(diagonalAngle);//fieldViewy*1.25;//doch+fieldViewy*2; +} + + +function RichDrawViewer(elem, renderer) +{ + this.container = elem; + this.renderer = renderer; + this.renderer.init(this.container); + this.renderer.editor = this; +} +/* +onResize : function(){ + Ext.TabPanel.superclass.onResize.apply(this, arguments); + this.delegateUpdates(); + }, + */ \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/application_mini.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/application_mini.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1574 @@ + +/* + * + */ + +Ext.BLANK_IMAGE_URL = 'theme/images/default/s.gif'; + +if(typeof console != 'object') { + console = {}; + console.log = function(){return false;}; +} + + + function $(e){return Ext.get(e).dom} + var c, browser, browserpath; + var colorpage="#ccccdd"; + var colorpage1a="#ee00aa"; //north + var colorpage1b="#ee00cc"; + var colorpage1c="#ee00ee"; + var colorpage2="#77aaaa"; //sud + var colorpage3="#ddee00"; //est + var colorpage4="#ccee00"; //west + + var selectmode=''; + var selectedit=''; + + + ie = navigator.appVersion.match(/MSIE (\d\.\d)/); + opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1); + + + + window.onresize = doResize; + var initialFile='big01.txt'; + var docx=0; + var docy=0; + var docw=600; + var doch=400; + var canvasWidth=600;//FRONTsize[0]; + var canvasW=canvasWidth; + var canvasHeight=400;//FRONTsize[1]; + var canvasH=canvasHeight; + var canvasX=0; + var canvasY=0; + var zoomx=docx; + var zoomy=docy; + var zoomw=docw; + var zoomh=doch; + var marginx=0; + var marginy=0; + var margin=100; + var screenSize=myWorkSize(); + var scrW = screenSize[0];//screen.availWidth; + var scrH = screenSize[1];//screen.availHeight; + + var canvasYpercent=100; + var canvasXpercent=100; + + +//? + var wndW=scrW;//window.width; + var wndH=scrH;//window.height; +// + var proporWindow= scrW/scrH; + var proporCanvas=canvasW/canvasH; + var proporDoc=docw/doch; + var proporZoom= zoomw/zoomh; + var proporx=proporCanvas; //IE + var propory=1; //IE + var mode='canvas';//'canvas' or 'preview' + + var zoominit=docx+' '+docy+' '+docw+' '+doch; + var zoominit1 =zoominit; + var zoominit2 =zoominit; + + var fieldViewx=Math.round(canvasH*proporCanvas); + var fieldViewy=canvasH; + var diagonalFrame=dist2p(0,0,fieldViewx,fieldViewy); + var diagonalAngle=getAngle(fieldViewx,fieldViewy); + var diagonalinit=diagonalFrame; + //alert(diagonalinit); + + // double? + var diagonalMidx=fieldViewx/2; + var diagonalMidy=fieldViewy/2; + var centerZoomx=diagonalMidx;//Math.round(zoomw/2); + var centerZoomy=diagonalMidy;//Math.round(zoomh/2); + // + + + var proporDiagonal=diagonalFrame/diagonalinit; + ////////////////////////// + + var wProportion={x:35, y:24} + + var vertexNORTHmenu={}; + var vertexNORTHglobals={}; + var vertexNORTHoptions={}; + var vertexSUD={}; + var vertexEST={}; + var vertexWEST={}; + var vertexFRONT={}; + + var NORTHmenusize=[]; + var NORTHglobalssize=[]; + var NORTHoptionssize=[]; + var SUDsize=[]; + var ESTsize=[]; + var WESTsize=[]; + var FRONTsize=[]; + + + vertexFrames(); + + + var FRONT=''; + FRONT+='
'; + + var NORTHmenu=''; + NORTHmenu+='  File  Edit'; + + var NORTHglobals=''; + NORTHglobals+=''; + NORTHglobals+=' '; + NORTHglobals+=' ' + NORTHglobals+=' '; + NORTHglobals+=' '; + NORTHglobals+=' '; + NORTHglobals+=' '; + NORTHglobals+=' ', + NORTHglobals+=' '; + NORTHglobals+=''; + + var NORTHoptions=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + // + NORTHoptions+=''; + + + var EST=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + EST+=''; + + var WEST=''; + WEST+='
0,0
'; + WEST+='
Grid:
'; + WEST+=''; + WEST+='
'; + + WEST+='
'; + WEST+='
'; + WEST+=' Fill
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+=' Line
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + WEST+='
'; + + WEST+='
'; + WEST+=' '; + + var SUD=""; + //SUD+=''; + //SUD+=''; + //SUD+=''; + //SUD+='
 '; + SUD+='
 '; + SUD+=''; + // SUD+=''; + // SUD+='
'; + // SUD+='
'; + + var currentEditStatus='off'; + var currentFileStatus='off'; + var infoFrame, docFrame; +Ext.onReady(function() { + + + //var map = new Ext.KeyMap(document, { + // key: [Ext.EventObject.LEFT, Ext.EventObject.RIGHT], + // ctrl: true, + // fn: keypresshandler + //}); + Ext.get("FRONT").dom.innerHTML=(FRONT); + Ext.get("NORTHmenu").dom.innerHTML=(NORTHmenu); + Ext.get("NORTHglobals").dom.innerHTML=(NORTHglobals); + Ext.get("NORTHoptions").dom.innerHTML=(NORTHoptions); + Ext.get("EST").dom.innerHTML=(EST); + Ext.get("WEST").dom.innerHTML=(WEST); + Ext.get("SUD").dom.innerHTML=(SUD); + + resizeFrame(); + var map= new Ext.KeyMap(document, [ + { + key: [46],//DELETE + fn: function(){ c.deleteSelection(); } + }, { + key: "x", + ctrl:true, + fn: function(){ + c.clipboard=c.renderer.copy(c.selected); + c.deleteSelection(); + } + }, { + key: "c", + ctrl:true, + fn: function(){ + c.clipboard=c.renderer.copy(c.selected); + } + }, { + key: "d", + ctrl:true, + fn: function(){ + c.selected=c.renderer.duplicate(c.selected); + c.selected.id = 'shape:' + createUUID(); + Ext.get(c.selected).on( "mousedown", c.onHit,c); + } + }, { + key: "v", + ctrl:true, + fn: function(){ + c.selected=c.renderer.paste(c.clipboard,c.mouseDownX,c.mouseDownY); + c.selected.id = 'shape:' + createUUID(); + Ext.get(c.selected).on( "mousedown", c.onHit,c); + } + }, { + key: "z", //UNDO + ctrl:true, + shift:false, + fn: function(){ c.clipboard=c.renderer.undo(); } + } +]); + + /* + Ext.get("richdraw").dom.style.width=(canvasWidth); + Ext.get("richdraw").dom.style.height=(canvasHeight); + Ext.get("richdraw").dom.style.left=(canvasX); + Ext.get("richdraw").dom.style.top=(canvasY); + */ + + + + menuEdit = new Ext.menu.Menu({ + id: 'menuedit', + items: [ + {icon: "img/viewcode.gif", text: 'Copy all ', handler: shm}, + {icon: "img/viewcode.gif", text: 'Paste all ', handler: lcm}, + {icon: "img/viewcode.gif", text: 'Delete all ', handler: deleteAllShapes}, + {icon: "img/viewcode.gif", text: 'Duplicate  Ctrl+d', handler: duplicateSelected}, + {icon: "img/viewcode.gif", text: 'Cut    Ctrl+x', handler: cutSelected}, + {icon: "img/viewcode.gif", text: 'Copy    Ctrl+c', handler: copySelected}, + {icon: "img/viewcode.gif", text: 'Paste  Ctrl+v', handler: pasteSelected}, + {icon: "img/viewcode.gif", text: 'Delete   Supr', handler: deleteShape}, + {icon: "img/viewcode.gif", text: 'Delete last Ctrl+z', handler: deleteLastShapes}, + + ] + }); + + menuFile = new Ext.menu.Menu({ + id: 'menufile', + + items: [ + new Ext.menu.Item({ icon: "img/viewcode.gif", text: 'Open ', handler: openFile }), + new Ext.menu.Item({ icon: "img/viewcode.gif", text: 'View SVG code ', handler: showMarkupCode }), + new Ext.menu.Item({icon: "img/viewcode.gif", text: 'View OPF code ', handler: showMarkup }), + new Ext.menu.Item({icon: "img/viewcode.gif", text: 'Document properties ', handler: documentProperties }) + ] + }); +/* + items: [ + {icon: "img/viewcode.gif", text: 'View SVG code ', handler: showMarkupCode }, + {icon: "img/viewcode.gif", text: 'View OPF code ', handler: showMarkup }, + {icon: "img/viewcode.gif", text: 'Document properties ', handler: documentProperties }, + + ] +*/ +// define the handler for mouseover/out of either button or menu itself + var editHandler = function(e) + { + if(currentEditStatus=='on') + { + var edit = menuEdit.getEl(); + var buttonEdit = Ext.get('edit'); + if(!edit.getRegion().contains(e.getPoint()) && !buttonEdit.getRegion().contains(e.getPoint())) + { + menuEdit.hide(); + currentEditStatus='off'; + } + } + else + { + menuEdit.show('edit'); + currentEditStatus='on'; + } + } + + var fileHandler = function(e) + { + if(currentFileStatus=='on') + { + var file = menuFile.getEl(); + var buttonFile = Ext.get('file'); + if(!file.getRegion().contains(e.getPoint()) && !buttonFile.getRegion().contains(e.getPoint())) + { + menuFile.hide(); + currentFileStatus='off'; + } + } + else + { + menuFile.show('file'); + currentFileStatus='on'; + } + } + + // define the events to observe + Ext.get('edit').on('mouseover',editHandler); + Ext.get('edit').on('mouseout',editHandler); + menuEdit.getEl().on('mouseout',editHandler); + + Ext.get('file').on('mouseover',fileHandler); + Ext.get('file').on('mouseout',fileHandler); + menuFile.getEl().on('mouseout',fileHandler); + + + + +}); + +// end ONREADY + +function borderDoc(){ + //c.rectCanvas(docx,docy,docw,doch,viewBox) + if(mode=='canvas') + { + var obj=document.getElementById("rectDoc"); + if(obj){c.renderer.remove(obj) } + c.renderer.rectDoc(zoominit1); + //pst.id = "rectCanvas"; + //c.selected=obj; + // c.renderer.remove(obj) + //var clip=c.renderer.copy(obj); + + + + //var pst=c.container.appendChild( clip ); + //c.renderer.paste(clip,0,0); + //pst.id = "rectCanvas"; + + + //pasteSelected(); + + //c.renderer.duplicate(document.getElementById("rectCanvas")) + //c.renderer.remove(document.getElementById("rectCanvas")); + } +} + function demo() { + _dom=document.all?3:(document.getElementById?1:(document.layers?2:0)); + + var renderer; + + if ((!ie) || (opera)) { + renderer = new SVGRenderer(); + browser='svg'; + browserpath="linkspath.htm"; + } + else { + renderer = new VMLRenderer(); + browser='vml'; + browserpath="vmlpaths.htm"; + } + + c = new RichDrawEditor(document.getElementById('richdraw'), renderer); + + c.onInputXY = function(x,y){$('xyinput').innerHTML = parseInt(x)+','+parseInt(y)}//[x,y].join("
")} + + c.onselect = onSelect; + c.onunselect = onUnselect; + + + + // c.onkeydown = keypresshandler; + //c.onkeypress = c.onKeyPress; + //document.onkeypress = c.onKeyPress; + + + + c.editCommand('fillcolor', 'red'); + c.editCommand('linecolor', 'black'); + c.editCommand('linewidth', '1px'); + + + //setMode('path', 'Path'); + setMode('select', 'Selection'); + + document.body.style.backgroundColor = colorpage; + + + //alert(vertexSUD.SUD1[0]+' '+vertexSUD.SUD1[1]+ '--'+wndW+' '+wndH); + + setTimeout(loadDemo,500) + //Ext.get("richdraw").on('keydown', function(e){alert('dfsd'); }, false); + //Ext.get("richdraw").on('keydown', function(e){alert(e.keyCode); }); + //document.onkeydown = keypresshandler; +//richdraw.svgRoot.setAttributeNS(null,'viewBox', '0 0 700 500'); + + //setTimeout(borderDoc,500) + + } //END demo + + +///////////////// + + +////////////////// +var Docs = function(){ + return { + init : function(){ + var loading = Ext.get('loading'); + var mask = Ext.get('loading-mask'); + mask.setOpacity(.7); + mask.shift({ + xy:loading.getXY(), + width:loading.getWidth(), + height:loading.getHeight(), + remove:true, + duration:2, + opacity:.8, + easing:'bounceOut', + callback : function(){ + loading.fadeOut({duration:.2,remove:true}); + } + }); + } + }; +}(); + + +Ext.onReady(Docs.init, Docs, true); + +function showinfoFrame(wtitle) { + var win = new Ext.Window({ + closeAction: 'hide', + renderTo: 'showInfo', + autoScroll:true, + modal:true, + width: '440', + height:'300', + x: '120', + y: '40', + title: wtitle, + draggable :true, + html: '', + hidden: true, + contentEl: 'divCode', + collapsed: true + + }); + win.show(); +} +function showdocFrame(wtitle) { + var win = new Ext.Window({ + closeAction: 'hide', + renderTo: 'showInfo', + width: '340', + height:'300', + x: '120', + y: '40', + title: wtitle, + draggable :true, + html: '', + hidden: true, + contentEl: 'docProperties', + collapsed: true + + }); + win.show(); +} +function showopenFile(wtitle) { + var win = new Ext.Window({ + autoScroll:true, + closeAction: 'hide', + renderTo: 'showInfo', + width: '440', + height:'300', + x: '120', + y: '40', + title: wtitle, + draggable :true, + html: '', + hidden: true, + contentEl: 'divopenFile', + collapsed: true + + }); + win.show(); +} + +///////////////////////////// +//FUNCTIONS +///////////////////////////// + +function changeInitialFile() +{ + initialFile=document.forms[0].file.value; + c.renderer.removeAll() + loadDemo(); + +} + + function setMode(mode, status) + { + + + selectmode=mode; + if(mode=='shape') + { + c.editCommand('mode', 'select'); + }else{ + if(mode=='pathsEdit' ) + { + mode='select'; + } + c.editCommand('mode', mode); + } + + var imgs = $('EST').getElementsByTagName('img'); + + for (var i=0; i'+$('option_text_size').value+'<;>'+$('option_text_family').value); + } + + function setGridWidth(widths) + { + var width = eval(widths.options[widths.selectedIndex].value); + RichDrawEditor.prototype.setGrid(width, width); + } + +/////////////////////////////// + + + function getOptionByValue(select, value) + { + /*for (var i=0; i1){ + for(var a=1;a<=numpoints;a++) + { + + if(a==mypointNum){ + + segment=points[a].split(' '); + prevControl=segment[0]+' '; + nextControl=segment[1]+' '; + nodePoint=segment[2]+' '; + + + /*if(controlNodeNum==0){chain+=prevControl; var point=prevControl.split(',');} + if(controlNodeNum==1){chain+=nextControl; var point=nextControl.split(',');} + if(controlNodeNum==2){chain+=nodePoint; var point=nodePoint.split(',');} + */ + + var point=nodePoint.split(','); + point[1]= $('option_path_x').value; + point[2]= $('option_path_y').value; + var change=point.join(',') + + chain+='C'+prevControl+ nextControl + change+' '; + }else{ + chain+='C'+points[a]; + } + + } + + }else{ + chain+='C'+points[1]; + + } + //$('someinfo').value= chain; + $('control_codebase').value=chain; + + + + + + if (keycode == 13 || keycode == 40 || keycode == 38) + { + //alert(myfield.id); + c.renderer.tocurve(); + + return false; + + } + else + return true; + } + + + + function edit(myfield,e) + { + + var keycode; + + + // ++? if (window.event) keycode = window.event.e; + //else if (e) keycode = e.which; + + e= (e) ? e : ((window.event) ? event : null); + keycode=e.keyCode; + //var keycode = e.which?e.which:e.keycode + + //document.layers ? e.which : + //document.all ? e.keyCode : + //document.getElementById ? e.keyCode : 0; + //else return true; + var keyChar = String.fromCharCode(keycode); + //var numCheck = /\d/; + //if (((keyChar=='.')&&(obj.value.indexOf('.')==-1))¦¦(keycode<32)¦¦numCheck.test(keyChar)¦¦((keycode>=37)&&(keycode<=40)&&(!e.modifiers&&!e.shiftKey))) { + + //alert(keycode+' _ '+keyChar); + var shs= myfield.id.split('_'); + var sh=shs[1]; + if(myfield.id.indexOf('control_codebase')<=0) + { + if (keycode == 38)//#26 + { + + if(eval(myfield.value)>0) + { + myfield.value=eval(myfield.value)+1; + //alert(myfield.value); + } + //return false; + //alert('keycode') + + } + if (keycode == 40)// #28 + { + myfield.value=eval(myfield.value)-1; + if(myfield.id=='option_path_sclx' || myfield.id=='option_path_scly') + { + if( eval(myfield.value)<=0 ) + { + myfield.value=1; + } + } + + if(myfield.id=='option_text_size') + { + if( eval(myfield.value)<=0 ) + { + myfield.value=1; + } + } + } + + } + + if (keycode == 13 || keycode == 40 || keycode == 38) + { + var check=0; + if(myfield.id=='control_codebase') + { + //alert(myfield.id) + //c.submitShape($('control_codebase').value+''); + check=1; + setShape(); + } + + if(myfield.id.indexOf('href')>0) + { + c.submitShape(myfield.value) + } + + if(myfield.id.indexOf('tr')>0 || myfield.id.indexOf('scl')>0) + { + if(check==0) + { + c.submitShape($('option_'+sh+'_trx').value+';'+$('option_'+sh+'_try').value+';'+$('option_'+sh+'_sclx').value+';'+$('option_'+sh+'_scly').value+';'+$('option_'+sh+'_rot').value) + } + } + + if(myfield.id.indexOf('rot')>0) + { + c.submitShape($('option_'+sh+'_trx').value+';'+$('option_'+sh+'_try').value+';'+$('option_'+sh+'_sclx').value+';'+$('option_'+sh+'_scly').value+';'+$('option_'+sh+'_rot').value) + } + + if(myfield.id.indexOf('text')>0) + { + c.submitShape($('option_text_message').value+'<;>'+$('option_text_size').value+'<;>'+$('option_text_family').value); + } + //alert(myfield.id); + return false; + + } + else + return true; + } + + + + +function env(myfield,delta) + { + + //alert(keycode+' _ '+keyChar); + + if (delta >0)//#26 + { + myfield.value=eval(myfield.value)+1; + //return false; + //alert('keycode') + } + else + { + myfield.value=eval(myfield.value)-1; + //return false; + } + + + if(myfield.id=='option_image_href') + { + c.submitShape(myfield.value) + } + if(myfield.id=='option_select_trx' || myfield.id=='option_select_try' || myfield.id=='option_select_sclx' || myfield.id=='option_select_scly') + { + c.submitShape($('option_select_trx').value+';'+$('option_select_try').value+';'+$('option_select_sclx').value+';'+$('option_select_scly').value+';'+$('option_select_rot').value) + } + if(myfield.id=='option_select_rot') + { + c.submitShape($('option_select_trx').value+';'+$('option_select_try').value+';'+$('option_select_sclx').value+';'+$('option_select_scly').value+';'+$('option_select_rot').value) + } + + } + + + function clockdata(){ + ////////////// + //++ + + data_path_close = $('option_path_close').checked; + data_text_family = $('option_text_family').value; + data_text_size = parseFloat($('option_text_size').value); + data_text_messaje = $('option_text_message').value; + data_image_href = $('option_image_href').value; + + //////////// + } + + function myWorkSize() { + var myWidth = 0, myHeight = 0; + if( typeof( window.innerWidth ) == 'number' ) { + //Non-IE + myWidth = window.innerWidth; + myHeight = window.innerHeight; + } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { + //IE 6+ in 'standards compliant mode' + myWidth = document.documentElement.clientWidth; + myHeight = document.documentElement.clientHeight; + } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { + //IE 4 compatible + myWidth = document.body.clientWidth; + myHeight = document.body.clientHeight; + } + return [ myWidth, myHeight] ; +} + +function doResize(){ + //deleteAllShapes(); + vertexFrames(); + resizeFrame(); + //c.renderer.zoomFrame(zoominit); + //c.renderer.view(canvasX,canvasY,canvasW,canvasH,zoominit) + //c.renderer.view(docx,docy,docw,doch,zoominit1) + // delete rectCanvas + // var vB=zoomx+' '+zoomy+' '+zoomw+' '+zoomh; + + //c.renderer.rectCanvas(docx,docy,docw,doch,vB); +} + +function vertexFrames(){ + + var screenSize=myWorkSize(); + scrW = screenSize[0];//screen.availWidth; + scrH = screenSize[1];//screen.availHeight; + + wndW=scrW;//window.width; + wndH=scrH;//window.height; + + + if (scrW != wndW || scrH != wndH) { + //window.resizeTo(scrW, scrH); + //window.moveTo(0, 0); + } + //var wProportion={x:35, y:24} + + vertexNORTHmenu={ NORTHmenu1:[0,0],NORTHmenu2:[scrW,0],NORTHmenu3:[0,wProportion.y],NORTHmenu4:[scrW,wProportion.y] }; + vertexNORTHglobals={ NORTHglobals1:[0,wProportion.y],NORTHglobals2:[scrW,wProportion.y],NORTHglobals3:[0,wProportion.y*2],NORTHglobals4:[scrW,wProportion.y*2] }; + vertexNORTHoptions={ NORTHoptions1:[0,wProportion.y*2],NORTHoptions2:[scrW,wProportion.y*2],NORTHoptions3:[0,wProportion.y*3],NORTHoptions4:[scrW,wProportion.y*3] }; + vertexSUD={ SUD1:[0,wndH-wProportion.y*3], SUD2:[scrW,(wndH-wProportion.y*3)], SUD3:[0,wndH], SUD4:[scrW,wndH]}; + vertexEST={ EST1:[0,wProportion.y*3], EST2:[wProportion.x,wProportion.y*3], EST3:[0,(wndH-wProportion.y*3)], EST4:[wProportion.x,(wndH-wProportion.y*3)] }; + vertexWEST={ WEST1:[(scrW-wProportion.x*3),wProportion.y*3], WEST2:[scrW,wProportion.y*3], WEST3:[(scrW-wProportion.x*3),(wndH-wProportion.y*3)], WEST4:[scrW,(wndH-wProportion.y*3)] }; + vertexFRONT={ FRONT1:[vertexEST.EST2[0],vertexEST.EST2[1]], FRONT2:[vertexWEST.WEST1[0],vertexWEST.WEST1[1]], FRONT3:[vertexEST.EST4[0],vertexEST.EST4[1]], FRONT4:[vertexWEST.WEST3[0],vertexWEST.WEST3[1]] }; + + NORTHmenusize=[vertexNORTHmenu.NORTHmenu4[0]-vertexNORTHmenu.NORTHmenu1[0],vertexNORTHmenu.NORTHmenu4[1]-vertexNORTHmenu.NORTHmenu1[1]]; + NORTHglobalssize=[vertexNORTHglobals.NORTHglobals4[0]-vertexNORTHglobals.NORTHglobals1[0],vertexNORTHglobals.NORTHglobals4[1]-vertexNORTHglobals.NORTHglobals1[1]]; + NORTHoptionssize=[vertexNORTHoptions.NORTHoptions4[0]-vertexNORTHoptions.NORTHoptions1[0],vertexNORTHoptions.NORTHoptions4[1]-vertexNORTHoptions.NORTHoptions1[1]]; + SUDsize=[vertexSUD.SUD4[0]-vertexSUD.SUD1[0],vertexSUD.SUD4[1]-vertexSUD.SUD1[1]]; + ESTsize=[vertexEST.EST4[0]-vertexEST.EST1[0],vertexEST.EST4[1]-vertexEST.EST1[1]]; + WESTsize=[vertexWEST.WEST4[0]-vertexWEST.WEST1[0],vertexWEST.WEST4[1]-vertexWEST.WEST1[1]]; + FRONTsize=[vertexFRONT.FRONT4[0]-vertexFRONT.FRONT1[0],vertexFRONT.FRONT4[1]-vertexFRONT.FRONT1[1]]; + + + + //percent of FRONTsize + proporDoc= FRONTsize[0]/FRONTsize[1]; + canvasYpercent=100; + canvasXpercent=100; + canvasWidth=Math.round(FRONTsize[0]*canvasXpercent/100);//FRONTsize[0]; + canvasW=canvasWidth; + canvasHeight=Math.round(canvasYpercent*FRONTsize[1]/100);//FRONTsize[1]; + canvasH=canvasHeight; + canvasX=Math.round((FRONTsize[0]-canvasW)/2); + canvasY=Math.round((FRONTsize[1]-canvasH)/2); + + + //vertexFRONTcanvas={ FRONT1:[vertexEST.EST2[0],vertexEST.EST2[1]], FRONT2:[vertexWEST.WEST1[0],vertexWEST.WEST1[1]], FRONT3:[vertexEST.EST4[0],vertexEST.EST4[1]], FRONT4:[vertexWEST.WEST3[0],vertexWEST.WEST3[1]] }; + //FRONTcanvassize=[vertexFRONT.FRONT4[0]-vertexFRONT.FRONT1[0],vertexFRONT.FRONT4[1]-vertexFRONT.FRONT1[1]]; + + + //centerZoomx=Math.round(canvasWidth/2); + //centerZoomy=Math.round(canvasHeight/2); + if(canvasH==0){ canvasH=0.00000001; } + proporCanvas= canvasW/canvasH ; + //zoominit='0 0 '+zoomw+' '+zoomh;// + + makeWorkSite(canvasH,(-canvasW/2)+(docw/2),(-canvasH/2)+(doch/2)); + diagonalinit=diagonalFrame; + proporDiagonal=diagonalFrame/diagonalinit; + zoominit=(zoomx)+' '+(zoomy)+' '+zoomw+' '+zoomh; + //$('someinfo').value= zoominit; + //document.forms[0].someinfo.value= zoominit; + //document.getElementById("someinfo").value = zoominit + //Ext.get('richdraw').dom.style.scrollTop = ('40%'); + //alert(zoominit); +} + +function resizeFrame(){ + + Ext.get('NORTHmenu').dom.style.backgroundColor = (colorpage1a); + Ext.get('NORTHglobals').dom.style.backgroundColor = (colorpage1b); + Ext.get('NORTHoptions').dom.style.backgroundColor = (colorpage1c); + + Ext.get('SUD').dom.style.backgroundColor = (colorpage2); + Ext.get('EST').dom.style.backgroundColor = (colorpage3); + Ext.get('WEST').dom.style.backgroundColor = (colorpage4); + + Ext.get('linksPaths').dom.style.backgroundColor = (colorpage); // bad + + + Ext.get('NORTHmenu').dom.style.left =(vertexNORTHmenu.NORTHmenu1[0]+'px'); Ext.get('NORTHmenu').dom.style.top =(vertexNORTHmenu.NORTHmenu1[1]+'px');Ext.get('NORTHmenu').dom.style.width =(NORTHmenusize[0]+'px'); Ext.get('NORTHmenu').dom.style.height = (NORTHmenusize[1]+'px'); + Ext.get('NORTHglobals').dom.style.left =(vertexNORTHglobals.NORTHglobals1[0]+'px'); Ext.get('NORTHglobals').dom.style.top =(vertexNORTHglobals.NORTHglobals1[1]+'px');Ext.get('NORTHglobals').dom.style.width =(NORTHglobalssize[0]+'px'); Ext.get('NORTHglobals').dom.style.height =(NORTHglobalssize[1]+'px'); + Ext.get('NORTHoptions').dom.style.left =(vertexNORTHoptions.NORTHoptions1[0]+'px'); Ext.get('NORTHoptions').dom.style.top =(vertexNORTHoptions.NORTHoptions1[1]+'px');Ext.get('NORTHoptions').dom.style.width =(NORTHoptionssize[0]+'px'); Ext.get('NORTHoptions').dom.style.height =(NORTHoptionssize[1]+'px'); + Ext.get('SUD').dom.style.left =(vertexSUD.SUD1[0]+'px'); Ext.get('SUD').dom.style.top =(vertexSUD.SUD1[1]+'px');Ext.get('SUD').dom.style.width=(SUDsize[0]+'px'); Ext.get('SUD').dom.style.height =(SUDsize[1]+'px'); + Ext.get('EST').dom.style.left =(vertexEST.EST1[0]+'px'); Ext.get('EST').dom.style.top =(vertexEST.EST1[1]+'px');Ext.get('EST').dom.style.width=(ESTsize[0]+'px'); Ext.get('EST').dom.style.height =((ESTsize[1]+'px')); + Ext.get('WEST').dom.style.left =(vertexWEST.WEST1[0]+'px'); Ext.get('WEST').dom.style.top =(vertexWEST.WEST1[1]+'px');Ext.get('WEST').dom.style.width=(WESTsize[0]+'px'); Ext.get('WEST').dom.style.height =((WESTsize[1]+'px')); + Ext.get('FRONT').dom.style.left =(vertexFRONT.FRONT1[0]+'px'); Ext.get('FRONT').dom.style.top =(vertexFRONT.FRONT1[1]+'px');Ext.get('FRONT').dom.style.width=(FRONTsize[0]+'px'); Ext.get('FRONT').dom.style.height =(FRONTsize[1]+'px'); + + Ext.get('richdraw').dom.style.left =(canvasX+'px'); Ext.get('richdraw').dom.style.top =(canvasY+'px');Ext.get('richdraw').dom.style.width=(canvasW+'px'); Ext.get('richdraw').dom.style.height =(canvasH+'px'); + +} + +function documentProperties(){ + document.forms[0].xDocument.value=docx; + document.forms[0].yDocument.value=docy; + + document.forms[0].widthDocument.value=docw; + document.forms[0].heightDocument.value=doch; + showdocFrame('Document properties') + //docFrame.setTitle('Document properties'); + //docFrame.show(); + +} +function changeDocumentProperties(){ + + //percent of FRONTsize + proporSpace= FRONTsize[0]/FRONTsize[1]; + //PERCENT + + //canvasYpercent=95; + //canvasXpercent=97; + /* + canvasWidth=Math.round(FRONTsize[0]*canvasXpercent/100);//FRONTsize[0]; + canvasW=canvasWidth; + canvasHeight=Math.round(canvasYpercent*FRONTsize[1]/100);//FRONTsize[1]; + canvasH=canvasHeight; + */ + docx=eval(document.forms[0].xDocument.value); + docy=eval(document.forms[0].yDocument.value); + + docw=eval(document.forms[0].widthDocument.value); + doch=eval(document.forms[0].heightDocument.value); + zoominit1= docx+' '+docy+' '+docw+' '+doch; + c.renderer.view(docx,docy,docw,doch,zoominit1); + borderDoc(); + + //doResize(); + //canvasX=Math.round((FRONTsize[0]-canvasW)/2); + //canvasY=Math.round((FRONTsize[1]-canvasH)/2); + + + //Ext.get('richdraw').dom.style.left =(canvasX+'px'); Ext.get('richdraw').dom.style.top =(canvasY+'px');Ext.get('richdraw').dom.style.width=(canvasW+'px'); Ext.get('richdraw').dom.style.height =(canvasH+'px'); + +} +function makeWorkSite(width,left,top) { + fieldViewx=Math.round(width*proporCanvas)*1; + fieldViewy=width*1; + diagonalFrame=dist2p(0,0,fieldViewx*1,fieldViewy*1); + diagonalAngle=getAngle(fieldViewx,fieldViewy); + diagonalMidx=fieldViewx/2; + diagonalMidy=fieldViewy/2; + centerZoomx=diagonalMidx; + centerZoomy=diagonalMidy; + + //alert(diagonalinit+' '+diagonalFrame+' '+proporDiagonal); + //alert(canvasW+''+canvasW+' propor:'+proporCanvas+' Docy:'+docy+' fieldView:'+fieldViewx+' '+fieldViewy); + zoomx=(diagonalMidx+(diagonalFrame/2)*Math.cos(diagonalAngle+Math.PI))+left;//-(fieldViewx/8);//-(canvasW/2)docx-fieldViewx; + zoomy=(diagonalMidy+(diagonalFrame/2)*Math.sin(diagonalAngle+Math.PI))+top;//-(fieldViewy/8);//-(canvasH/2);//docy-fieldViewy; + zoomw=diagonalMidx+(diagonalFrame/2)*Math.cos(diagonalAngle);//fieldViewx*1.25;//docw+fieldViewx*2; + zoomh=diagonalMidy+(diagonalFrame/2)*Math.sin(diagonalAngle);//fieldViewy*1.25;//doch+fieldViewy*2; +} +function RichDrawViewer(elem, renderer) { +this.container = elem; +this.renderer = renderer; +this.renderer.init(this.container); +this.renderer.editor = this; +} +/* +onResize : function(){ + Ext.TabPanel.superclass.onResize.apply(this, arguments); + this.delegateUpdates(); + }, + */ \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/ext/ext-all-debug.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/ext/ext-all-debug.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,34343 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + + +Ext.DomHelper = function(){ + var tempTableEl = null; + var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i; + var tableRe = /^table|tbody|tr|td$/i; + + var createHtml = function(o){ + if(typeof o == 'string'){ + return o; + } + var b = ""; + if (Ext.isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + b += createHtml(o[i]); + } + return b; + } + if(!o.tag){ + o.tag = "div"; + } + b += "<" + o.tag; + for(var attr in o){ + if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || typeof o[attr] == "function") continue; + if(attr == "style"){ + var s = o["style"]; + if(typeof s == "function"){ + s = s.call(); + } + if(typeof s == "string"){ + b += ' style="' + s + '"'; + }else if(typeof s == "object"){ + b += ' style="'; + for(var key in s){ + if(typeof s[key] != "function"){ + b += key + ":" + s[key] + ";"; + } + } + b += '"'; + } + }else{ + if(attr == "cls"){ + b += ' class="' + o["cls"] + '"'; + }else if(attr == "htmlFor"){ + b += ' for="' + o["htmlFor"] + '"'; + }else{ + b += " " + attr + '="' + o[attr] + '"'; + } + } + } + if(emptyTags.test(o.tag)){ + b += "/>"; + }else{ + b += ">"; + var cn = o.children || o.cn; + if(cn){ + b += createHtml(cn); + } else if(o.html){ + b += o.html; + } + b += ""; + } + return b; + }; + + + var createDom = function(o, parentNode){ + var el; + if (Ext.isArray(o)) { el = document.createDocumentFragment(); for(var i = 0, l = o.length; i < l; i++) { + createDom(o[i], el); + } + } else if (typeof o == "string") { el = document.createTextNode(o); + } else { + el = document.createElement(o.tag||'div'); + var useSet = !!el.setAttribute; for(var attr in o){ + if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || attr == "style" || typeof o[attr] == "function") continue; + if(attr=="cls"){ + el.className = o["cls"]; + }else{ + if(useSet) el.setAttribute(attr, o[attr]); + else el[attr] = o[attr]; + } + } + Ext.DomHelper.applyStyles(el, o.style); + var cn = o.children || o.cn; + if(cn){ + createDom(cn, el); + } else if(o.html){ + el.innerHTML = o.html; + } + } + if(parentNode){ + parentNode.appendChild(el); + } + return el; + }; + + var ieTable = function(depth, s, h, e){ + tempTableEl.innerHTML = [s, h, e].join(''); + var i = -1, el = tempTableEl; + while(++i < depth){ + el = el.firstChild; + } + return el; + }; + + var ts = '', + te = '
', + tbs = ts+'', + tbe = ''+te, + trs = tbs + '', + tre = ''+tbe; + + + var insertIntoTable = function(tag, where, el, html){ + if(!tempTableEl){ + tempTableEl = document.createElement('div'); + } + var node; + var before = null; + if(tag == 'td'){ + if(where == 'afterbegin' || where == 'beforeend'){ return; + } + if(where == 'beforebegin'){ + before = el; + el = el.parentNode; + } else{ + before = el.nextSibling; + el = el.parentNode; + } + node = ieTable(4, trs, html, tre); + } + else if(tag == 'tr'){ + if(where == 'beforebegin'){ + before = el; + el = el.parentNode; + node = ieTable(3, tbs, html, tbe); + } else if(where == 'afterend'){ + before = el.nextSibling; + el = el.parentNode; + node = ieTable(3, tbs, html, tbe); + } else{ if(where == 'afterbegin'){ + before = el.firstChild; + } + node = ieTable(4, trs, html, tre); + } + } else if(tag == 'tbody'){ + if(where == 'beforebegin'){ + before = el; + el = el.parentNode; + node = ieTable(2, ts, html, te); + } else if(where == 'afterend'){ + before = el.nextSibling; + el = el.parentNode; + node = ieTable(2, ts, html, te); + } else{ + if(where == 'afterbegin'){ + before = el.firstChild; + } + node = ieTable(3, tbs, html, tbe); + } + } else{ if(where == 'beforebegin' || where == 'afterend'){ return; + } + if(where == 'afterbegin'){ + before = el.firstChild; + } + node = ieTable(2, ts, html, te); + } + el.insertBefore(node, before); + return node; + }; + + + return { + + useDom : false, + + + markup : function(o){ + return createHtml(o); + }, + + + applyStyles : function(el, styles){ + if(styles){ + el = Ext.fly(el); + if(typeof styles == "string"){ + var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi; + var matches; + while ((matches = re.exec(styles)) != null){ + el.setStyle(matches[1], matches[2]); + } + }else if (typeof styles == "object"){ + for (var style in styles){ + el.setStyle(style, styles[style]); + } + }else if (typeof styles == "function"){ + Ext.DomHelper.applyStyles(el, styles.call()); + } + } + }, + + + insertHtml : function(where, el, html){ + where = where.toLowerCase(); + if(el.insertAdjacentHTML){ + if(tableRe.test(el.tagName)){ + var rs; + if(rs = insertIntoTable(el.tagName.toLowerCase(), where, el, html)){ + return rs; + } + } + switch(where){ + case "beforebegin": + el.insertAdjacentHTML('BeforeBegin', html); + return el.previousSibling; + case "afterbegin": + el.insertAdjacentHTML('AfterBegin', html); + return el.firstChild; + case "beforeend": + el.insertAdjacentHTML('BeforeEnd', html); + return el.lastChild; + case "afterend": + el.insertAdjacentHTML('AfterEnd', html); + return el.nextSibling; + } + throw 'Illegal insertion point -> "' + where + '"'; + } + var range = el.ownerDocument.createRange(); + var frag; + switch(where){ + case "beforebegin": + range.setStartBefore(el); + frag = range.createContextualFragment(html); + el.parentNode.insertBefore(frag, el); + return el.previousSibling; + case "afterbegin": + if(el.firstChild){ + range.setStartBefore(el.firstChild); + frag = range.createContextualFragment(html); + el.insertBefore(frag, el.firstChild); + return el.firstChild; + }else{ + el.innerHTML = html; + return el.firstChild; + } + case "beforeend": + if(el.lastChild){ + range.setStartAfter(el.lastChild); + frag = range.createContextualFragment(html); + el.appendChild(frag); + return el.lastChild; + }else{ + el.innerHTML = html; + return el.lastChild; + } + case "afterend": + range.setStartAfter(el); + frag = range.createContextualFragment(html); + el.parentNode.insertBefore(frag, el.nextSibling); + return el.nextSibling; + } + throw 'Illegal insertion point -> "' + where + '"'; + }, + + + insertBefore : function(el, o, returnElement){ + return this.doInsert(el, o, returnElement, "beforeBegin"); + }, + + + insertAfter : function(el, o, returnElement){ + return this.doInsert(el, o, returnElement, "afterEnd", "nextSibling"); + }, + + + insertFirst : function(el, o, returnElement){ + return this.doInsert(el, o, returnElement, "afterBegin", "firstChild"); + }, + + doInsert : function(el, o, returnElement, pos, sibling){ + el = Ext.getDom(el); + var newNode; + if(this.useDom){ + newNode = createDom(o, null); + (sibling === "firstChild" ? el : el.parentNode).insertBefore(newNode, sibling ? el[sibling] : el); + }else{ + var html = createHtml(o); + newNode = this.insertHtml(pos, el, html); + } + return returnElement ? Ext.get(newNode, true) : newNode; + }, + + + append : function(el, o, returnElement){ + el = Ext.getDom(el); + var newNode; + if(this.useDom){ + newNode = createDom(o, null); + el.appendChild(newNode); + }else{ + var html = createHtml(o); + newNode = this.insertHtml("beforeEnd", el, html); + } + return returnElement ? Ext.get(newNode, true) : newNode; + }, + + + overwrite : function(el, o, returnElement){ + el = Ext.getDom(el); + el.innerHTML = createHtml(o); + return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; + }, + + + createTemplate : function(o){ + var html = createHtml(o); + return new Ext.Template(html); + } + }; +}(); + + +Ext.Template = function(html){ + var a = arguments; + if(Ext.isArray(html)){ + html = html.join(""); + }else if(a.length > 1){ + var buf = []; + for(var i = 0, len = a.length; i < len; i++){ + if(typeof a[i] == 'object'){ + Ext.apply(this, a[i]); + }else{ + buf[buf.length] = a[i]; + } + } + html = buf.join(''); + } + + this.html = html; + if(this.compiled){ + this.compile(); + } +}; +Ext.Template.prototype = { + + applyTemplate : function(values){ + if(this.compiled){ + return this.compiled(values); + } + var useF = this.disableFormats !== true; + var fm = Ext.util.Format, tpl = this; + var fn = function(m, name, format, args){ + if(format && useF){ + if(format.substr(0, 5) == "this."){ + return tpl.call(format.substr(5), values[name], values); + }else{ + if(args){ + var re = /^\s*['"](.*)["']\s*$/; + args = args.split(','); + for(var i = 0, len = args.length; i < len; i++){ + args[i] = args[i].replace(re, "$1"); + } + args = [values[name]].concat(args); + }else{ + args = [values[name]]; + } + return fm[format].apply(fm, args); + } + }else{ + return values[name] !== undefined ? values[name] : ""; + } + }; + return this.html.replace(this.re, fn); + }, + + + set : function(html, compile){ + this.html = html; + this.compiled = null; + if(compile){ + this.compile(); + } + return this; + }, + + + disableFormats : false, + + + re : /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, + + + compile : function(){ + var fm = Ext.util.Format; + var useF = this.disableFormats !== true; + var sep = Ext.isGecko ? "+" : ","; + var fn = function(m, name, format, args){ + if(format && useF){ + args = args ? ',' + args : ""; + if(format.substr(0, 5) != "this."){ + format = "fm." + format + '('; + }else{ + format = 'this.call("'+ format.substr(5) + '", '; + args = ", values"; + } + }else{ + args= ''; format = "(values['" + name + "'] == undefined ? '' : "; + } + return "'"+ sep + format + "values['" + name + "']" + args + ")"+sep+"'"; + }; + var body; + if(Ext.isGecko){ + body = "this.compiled = function(values){ return '" + + this.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn) + + "';};"; + }else{ + body = ["this.compiled = function(values){ return ['"]; + body.push(this.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn)); + body.push("'].join('');};"); + body = body.join(''); + } + eval(body); + return this; + }, + + call : function(fnName, value, allValues){ + return this[fnName](value, allValues); + }, + + + insertFirst: function(el, values, returnElement){ + return this.doInsert('afterBegin', el, values, returnElement); + }, + + + insertBefore: function(el, values, returnElement){ + return this.doInsert('beforeBegin', el, values, returnElement); + }, + + + insertAfter : function(el, values, returnElement){ + return this.doInsert('afterEnd', el, values, returnElement); + }, + + + append : function(el, values, returnElement){ + return this.doInsert('beforeEnd', el, values, returnElement); + }, + + doInsert : function(where, el, values, returnEl){ + el = Ext.getDom(el); + var newNode = Ext.DomHelper.insertHtml(where, el, this.applyTemplate(values)); + return returnEl ? Ext.get(newNode, true) : newNode; + }, + + + overwrite : function(el, values, returnElement){ + el = Ext.getDom(el); + el.innerHTML = this.applyTemplate(values); + return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; + } +}; + +Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate; + +Ext.DomHelper.Template = Ext.Template; + + +Ext.Template.from = function(el, config){ + el = Ext.getDom(el); + return new Ext.Template(el.value || el.innerHTML, config || ''); +}; + + +Ext.DomQuery = function(){ + var cache = {}, simpleCache = {}, valueCache = {}; + var nonSpace = /\S/; + var trimRe = /^\s+|\s+$/g; + var tplRe = /\{(\d+)\}/g; + var modeRe = /^(\s?[\/>+~]\s?|\s|$)/; + var tagTokenRe = /^(#)?([\w-\*]+)/; + var nthRe = /(\d*)n\+?(\d*)/, nthRe2 = /\D/; + + function child(p, index){ + var i = 0; + var n = p.firstChild; + while(n){ + if(n.nodeType == 1){ + if(++i == index){ + return n; + } + } + n = n.nextSibling; + } + return null; + }; + + function next(n){ + while((n = n.nextSibling) && n.nodeType != 1); + return n; + }; + + function prev(n){ + while((n = n.previousSibling) && n.nodeType != 1); + return n; + }; + + function children(d){ + var n = d.firstChild, ni = -1; + while(n){ + var nx = n.nextSibling; + if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){ + d.removeChild(n); + }else{ + n.nodeIndex = ++ni; + } + n = nx; + } + return this; + }; + + function byClassName(c, a, v){ + if(!v){ + return c; + } + var r = [], ri = -1, cn; + for(var i = 0, ci; ci = c[i]; i++){ + if((' '+ci.className+' ').indexOf(v) != -1){ + r[++ri] = ci; + } + } + return r; + }; + + function attrValue(n, attr){ + if(!n.tagName && typeof n.length != "undefined"){ + n = n[0]; + } + if(!n){ + return null; + } + if(attr == "for"){ + return n.htmlFor; + } + if(attr == "class" || attr == "className"){ + return n.className; + } + return n.getAttribute(attr) || n[attr]; + + }; + + function getNodes(ns, mode, tagName){ + var result = [], ri = -1, cs; + if(!ns){ + return result; + } + tagName = tagName || "*"; + if(typeof ns.getElementsByTagName != "undefined"){ + ns = [ns]; + } + if(!mode){ + for(var i = 0, ni; ni = ns[i]; i++){ + cs = ni.getElementsByTagName(tagName); + for(var j = 0, ci; ci = cs[j]; j++){ + result[++ri] = ci; + } + } + }else if(mode == "/" || mode == ">"){ + var utag = tagName.toUpperCase(); + for(var i = 0, ni, cn; ni = ns[i]; i++){ + cn = ni.children || ni.childNodes; + for(var j = 0, cj; cj = cn[j]; j++){ + if(cj.nodeName == utag || cj.nodeName == tagName || tagName == '*'){ + result[++ri] = cj; + } + } + } + }else if(mode == "+"){ + var utag = tagName.toUpperCase(); + for(var i = 0, n; n = ns[i]; i++){ + while((n = n.nextSibling) && n.nodeType != 1); + if(n && (n.nodeName == utag || n.nodeName == tagName || tagName == '*')){ + result[++ri] = n; + } + } + }else if(mode == "~"){ + for(var i = 0, n; n = ns[i]; i++){ + while((n = n.nextSibling) && (n.nodeType != 1 || (tagName == '*' || n.tagName.toLowerCase()!=tagName))); + if(n){ + result[++ri] = n; + } + } + } + return result; + }; + + function concat(a, b){ + if(b.slice){ + return a.concat(b); + } + for(var i = 0, l = b.length; i < l; i++){ + a[a.length] = b[i]; + } + return a; + } + + function byTag(cs, tagName){ + if(cs.tagName || cs == document){ + cs = [cs]; + } + if(!tagName){ + return cs; + } + var r = [], ri = -1; + tagName = tagName.toLowerCase(); + for(var i = 0, ci; ci = cs[i]; i++){ + if(ci.nodeType == 1 && ci.tagName.toLowerCase()==tagName){ + r[++ri] = ci; + } + } + return r; + }; + + function byId(cs, attr, id){ + if(cs.tagName || cs == document){ + cs = [cs]; + } + if(!id){ + return cs; + } + var r = [], ri = -1; + for(var i = 0,ci; ci = cs[i]; i++){ + if(ci && ci.id == id){ + r[++ri] = ci; + return r; + } + } + return r; + }; + + function byAttribute(cs, attr, value, op, custom){ + var r = [], ri = -1, st = custom=="{"; + var f = Ext.DomQuery.operators[op]; + for(var i = 0, ci; ci = cs[i]; i++){ + var a; + if(st){ + a = Ext.DomQuery.getStyle(ci, attr); + } + else if(attr == "class" || attr == "className"){ + a = ci.className; + }else if(attr == "for"){ + a = ci.htmlFor; + }else if(attr == "href"){ + a = ci.getAttribute("href", 2); + }else{ + a = ci.getAttribute(attr); + } + if((f && f(a, value)) || (!f && a)){ + r[++ri] = ci; + } + } + return r; + }; + + function byPseudo(cs, name, value){ + return Ext.DomQuery.pseudos[name](cs, value); + }; + + + + + var isIE = window.ActiveXObject ? true : false; + + + + eval("var batch = 30803;"); + + var key = 30803; + + function nodupIEXml(cs){ + var d = ++key; + cs[0].setAttribute("_nodup", d); + var r = [cs[0]]; + for(var i = 1, len = cs.length; i < len; i++){ + var c = cs[i]; + if(!c.getAttribute("_nodup") != d){ + c.setAttribute("_nodup", d); + r[r.length] = c; + } + } + for(var i = 0, len = cs.length; i < len; i++){ + cs[i].removeAttribute("_nodup"); + } + return r; + } + + function nodup(cs){ + if(!cs){ + return []; + } + var len = cs.length, c, i, r = cs, cj, ri = -1; + if(!len || typeof cs.nodeType != "undefined" || len == 1){ + return cs; + } + if(isIE && typeof cs[0].selectSingleNode != "undefined"){ + return nodupIEXml(cs); + } + var d = ++key; + cs[0]._nodup = d; + for(i = 1; c = cs[i]; i++){ + if(c._nodup != d){ + c._nodup = d; + }else{ + r = []; + for(var j = 0; j < i; j++){ + r[++ri] = cs[j]; + } + for(j = i+1; cj = cs[j]; j++){ + if(cj._nodup != d){ + cj._nodup = d; + r[++ri] = cj; + } + } + return r; + } + } + return r; + } + + function quickDiffIEXml(c1, c2){ + var d = ++key; + for(var i = 0, len = c1.length; i < len; i++){ + c1[i].setAttribute("_qdiff", d); + } + var r = []; + for(var i = 0, len = c2.length; i < len; i++){ + if(c2[i].getAttribute("_qdiff") != d){ + r[r.length] = c2[i]; + } + } + for(var i = 0, len = c1.length; i < len; i++){ + c1[i].removeAttribute("_qdiff"); + } + return r; + } + + function quickDiff(c1, c2){ + var len1 = c1.length; + if(!len1){ + return c2; + } + if(isIE && c1[0].selectSingleNode){ + return quickDiffIEXml(c1, c2); + } + var d = ++key; + for(var i = 0; i < len1; i++){ + c1[i]._qdiff = d; + } + var r = []; + for(var i = 0, len = c2.length; i < len; i++){ + if(c2[i]._qdiff != d){ + r[r.length] = c2[i]; + } + } + return r; + } + + function quickId(ns, mode, root, id){ + if(ns == root){ + var d = root.ownerDocument || root; + return d.getElementById(id); + } + ns = getNodes(ns, mode, "*"); + return byId(ns, null, id); + } + + return { + getStyle : function(el, name){ + return Ext.fly(el).getStyle(name); + }, + + compile : function(path, type){ + type = type || "select"; + + var fn = ["var f = function(root){\n var mode; ++batch; var n = root || document;\n"]; + var q = path, mode, lq; + var tk = Ext.DomQuery.matchers; + var tklen = tk.length; + var mm; + + + var lmode = q.match(modeRe); + if(lmode && lmode[1]){ + fn[fn.length] = 'mode="'+lmode[1].replace(trimRe, "")+'";'; + q = q.replace(lmode[1], ""); + } + + while(path.substr(0, 1)=="/"){ + path = path.substr(1); + } + + while(q && lq != q){ + lq = q; + var tm = q.match(tagTokenRe); + if(type == "select"){ + if(tm){ + if(tm[1] == "#"){ + fn[fn.length] = 'n = quickId(n, mode, root, "'+tm[2]+'");'; + }else{ + fn[fn.length] = 'n = getNodes(n, mode, "'+tm[2]+'");'; + } + q = q.replace(tm[0], ""); + }else if(q.substr(0, 1) != '@'){ + fn[fn.length] = 'n = getNodes(n, mode, "*");'; + } + }else{ + if(tm){ + if(tm[1] == "#"){ + fn[fn.length] = 'n = byId(n, null, "'+tm[2]+'");'; + }else{ + fn[fn.length] = 'n = byTag(n, "'+tm[2]+'");'; + } + q = q.replace(tm[0], ""); + } + } + while(!(mm = q.match(modeRe))){ + var matched = false; + for(var j = 0; j < tklen; j++){ + var t = tk[j]; + var m = q.match(t.re); + if(m){ + fn[fn.length] = t.select.replace(tplRe, function(x, i){ + return m[i]; + }); + q = q.replace(m[0], ""); + matched = true; + break; + } + } + + if(!matched){ + throw 'Error parsing selector, parsing failed at "' + q + '"'; + } + } + if(mm[1]){ + fn[fn.length] = 'mode="'+mm[1].replace(trimRe, "")+'";'; + q = q.replace(mm[1], ""); + } + } + fn[fn.length] = "return nodup(n);\n}"; + eval(fn.join("")); + return f; + }, + + + select : function(path, root, type){ + if(!root || root == document){ + root = document; + } + if(typeof root == "string"){ + root = document.getElementById(root); + } + var paths = path.split(","); + var results = []; + for(var i = 0, len = paths.length; i < len; i++){ + var p = paths[i].replace(trimRe, ""); + if(!cache[p]){ + cache[p] = Ext.DomQuery.compile(p); + if(!cache[p]){ + throw p + " is not a valid selector"; + } + } + var result = cache[p](root); + if(result && result != document){ + results = results.concat(result); + } + } + if(paths.length > 1){ + return nodup(results); + } + return results; + }, + + + selectNode : function(path, root){ + return Ext.DomQuery.select(path, root)[0]; + }, + + + selectValue : function(path, root, defaultValue){ + path = path.replace(trimRe, ""); + if(!valueCache[path]){ + valueCache[path] = Ext.DomQuery.compile(path, "select"); + } + var n = valueCache[path](root); + n = n[0] ? n[0] : n; + var v = (n && n.firstChild ? n.firstChild.nodeValue : null); + return ((v === null||v === undefined||v==='') ? defaultValue : v); + }, + + + selectNumber : function(path, root, defaultValue){ + var v = Ext.DomQuery.selectValue(path, root, defaultValue || 0); + return parseFloat(v); + }, + + + is : function(el, ss){ + if(typeof el == "string"){ + el = document.getElementById(el); + } + var isArray = Ext.isArray(el); + var result = Ext.DomQuery.filter(isArray ? el : [el], ss); + return isArray ? (result.length == el.length) : (result.length > 0); + }, + + + filter : function(els, ss, nonMatches){ + ss = ss.replace(trimRe, ""); + if(!simpleCache[ss]){ + simpleCache[ss] = Ext.DomQuery.compile(ss, "simple"); + } + var result = simpleCache[ss](els); + return nonMatches ? quickDiff(result, els) : result; + }, + + + matchers : [{ + re: /^\.([\w-]+)/, + select: 'n = byClassName(n, null, " {1} ");' + }, { + re: /^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/, + select: 'n = byPseudo(n, "{1}", "{2}");' + },{ + re: /^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/, + select: 'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");' + }, { + re: /^#([\w-]+)/, + select: 'n = byId(n, null, "{1}");' + },{ + re: /^@([\w-]+)/, + select: 'return {firstChild:{nodeValue:attrValue(n, "{1}")}};' + } + ], + + + operators : { + "=" : function(a, v){ + return a == v; + }, + "!=" : function(a, v){ + return a != v; + }, + "^=" : function(a, v){ + return a && a.substr(0, v.length) == v; + }, + "$=" : function(a, v){ + return a && a.substr(a.length-v.length) == v; + }, + "*=" : function(a, v){ + return a && a.indexOf(v) !== -1; + }, + "%=" : function(a, v){ + return (a % v) == 0; + }, + "|=" : function(a, v){ + return a && (a == v || a.substr(0, v.length+1) == v+'-'); + }, + "~=" : function(a, v){ + return a && (' '+a+' ').indexOf(' '+v+' ') != -1; + } + }, + + + pseudos : { + "first-child" : function(c){ + var r = [], ri = -1, n; + for(var i = 0, ci; ci = n = c[i]; i++){ + while((n = n.previousSibling) && n.nodeType != 1); + if(!n){ + r[++ri] = ci; + } + } + return r; + }, + + "last-child" : function(c){ + var r = [], ri = -1, n; + for(var i = 0, ci; ci = n = c[i]; i++){ + while((n = n.nextSibling) && n.nodeType != 1); + if(!n){ + r[++ri] = ci; + } + } + return r; + }, + + "nth-child" : function(c, a) { + var r = [], ri = -1; + var m = nthRe.exec(a == "even" && "2n" || a == "odd" && "2n+1" || !nthRe2.test(a) && "n+" + a || a); + var f = (m[1] || 1) - 0, l = m[2] - 0; + for(var i = 0, n; n = c[i]; i++){ + var pn = n.parentNode; + if (batch != pn._batch) { + var j = 0; + for(var cn = pn.firstChild; cn; cn = cn.nextSibling){ + if(cn.nodeType == 1){ + cn.nodeIndex = ++j; + } + } + pn._batch = batch; + } + if (f == 1) { + if (l == 0 || n.nodeIndex == l){ + r[++ri] = n; + } + } else if ((n.nodeIndex + l) % f == 0){ + r[++ri] = n; + } + } + + return r; + }, + + "only-child" : function(c){ + var r = [], ri = -1;; + for(var i = 0, ci; ci = c[i]; i++){ + if(!prev(ci) && !next(ci)){ + r[++ri] = ci; + } + } + return r; + }, + + "empty" : function(c){ + var r = [], ri = -1; + for(var i = 0, ci; ci = c[i]; i++){ + var cns = ci.childNodes, j = 0, cn, empty = true; + while(cn = cns[j]){ + ++j; + if(cn.nodeType == 1 || cn.nodeType == 3){ + empty = false; + break; + } + } + if(empty){ + r[++ri] = ci; + } + } + return r; + }, + + "contains" : function(c, v){ + var r = [], ri = -1; + for(var i = 0, ci; ci = c[i]; i++){ + if((ci.textContent||ci.innerText||'').indexOf(v) != -1){ + r[++ri] = ci; + } + } + return r; + }, + + "nodeValue" : function(c, v){ + var r = [], ri = -1; + for(var i = 0, ci; ci = c[i]; i++){ + if(ci.firstChild && ci.firstChild.nodeValue == v){ + r[++ri] = ci; + } + } + return r; + }, + + "checked" : function(c){ + var r = [], ri = -1; + for(var i = 0, ci; ci = c[i]; i++){ + if(ci.checked == true){ + r[++ri] = ci; + } + } + return r; + }, + + "not" : function(c, ss){ + return Ext.DomQuery.filter(c, ss, true); + }, + + "any" : function(c, selectors){ + var ss = selectors.split('|'); + var r = [], ri = -1, s; + for(var i = 0, ci; ci = c[i]; i++){ + for(var j = 0; s = ss[j]; j++){ + if(Ext.DomQuery.is(ci, s)){ + r[++ri] = ci; + break; + } + } + } + return r; + }, + + "odd" : function(c){ + return this["nth-child"](c, "odd"); + }, + + "even" : function(c){ + return this["nth-child"](c, "even"); + }, + + "nth" : function(c, a){ + return c[a-1] || []; + }, + + "first" : function(c){ + return c[0] || []; + }, + + "last" : function(c){ + return c[c.length-1] || []; + }, + + "has" : function(c, ss){ + var s = Ext.DomQuery.select; + var r = [], ri = -1; + for(var i = 0, ci; ci = c[i]; i++){ + if(s(ss, ci).length > 0){ + r[++ri] = ci; + } + } + return r; + }, + + "next" : function(c, ss){ + var is = Ext.DomQuery.is; + var r = [], ri = -1; + for(var i = 0, ci; ci = c[i]; i++){ + var n = next(ci); + if(n && is(n, ss)){ + r[++ri] = ci; + } + } + return r; + }, + + "prev" : function(c, ss){ + var is = Ext.DomQuery.is; + var r = [], ri = -1; + for(var i = 0, ci; ci = c[i]; i++){ + var n = prev(ci); + if(n && is(n, ss)){ + r[++ri] = ci; + } + } + return r; + } + } + }; +}(); + + +Ext.query = Ext.DomQuery.select; + + +Ext.util.Observable = function(){ + + if(this.listeners){ + this.on(this.listeners); + delete this.listeners; + } +}; +Ext.util.Observable.prototype = { + + fireEvent : function(){ + if(this.eventsSuspended !== true){ + var ce = this.events[arguments[0].toLowerCase()]; + if(typeof ce == "object"){ + return ce.fire.apply(ce, Array.prototype.slice.call(arguments, 1)); + } + } + return true; + }, + + filterOptRe : /^(?:scope|delay|buffer|single)$/, + + + addListener : function(eventName, fn, scope, o){ + if(typeof eventName == "object"){ + o = eventName; + for(var e in o){ + if(this.filterOptRe.test(e)){ + continue; + } + if(typeof o[e] == "function"){ + this.addListener(e, o[e], o.scope, o); + }else{ + this.addListener(e, o[e].fn, o[e].scope, o[e]); + } + } + return; + } + o = (!o || typeof o == "boolean") ? {} : o; + eventName = eventName.toLowerCase(); + var ce = this.events[eventName] || true; + if(typeof ce == "boolean"){ + ce = new Ext.util.Event(this, eventName); + this.events[eventName] = ce; + } + ce.addListener(fn, scope, o); + }, + + + removeListener : function(eventName, fn, scope){ + var ce = this.events[eventName.toLowerCase()]; + if(typeof ce == "object"){ + ce.removeListener(fn, scope); + } + }, + + + purgeListeners : function(){ + for(var evt in this.events){ + if(typeof this.events[evt] == "object"){ + this.events[evt].clearListeners(); + } + } + }, + + + relayEvents : function(o, events){ + var createHandler = function(ename){ + return function(){ + return this.fireEvent.apply(this, Ext.combine(ename, Array.prototype.slice.call(arguments, 0))); + }; + }; + for(var i = 0, len = events.length; i < len; i++){ + var ename = events[i]; + if(!this.events[ename]){ this.events[ename] = true; }; + o.on(ename, createHandler(ename), this); + } + }, + + + addEvents : function(o){ + if(!this.events){ + this.events = {}; + } + if(typeof o == 'string'){ + for(var i = 0, a = arguments, v; v = a[i]; i++){ + if(!this.events[a[i]]){ + this.events[a[i]] = true; + } + } + }else{ + Ext.applyIf(this.events, o); + } + }, + + + hasListener : function(eventName){ + var e = this.events[eventName]; + return typeof e == "object" && e.listeners.length > 0; + }, + + + suspendEvents : function(){ + this.eventsSuspended = true; + }, + + + resumeEvents : function(){ + this.eventsSuspended = false; + }, + + getMethodEvent : function(method){ + if(!this.methodEvents){ + this.methodEvents = {}; + } + var e = this.methodEvents[method]; + if(!e){ + e = {}; + this.methodEvents[method] = e; + + e.originalFn = this[method]; + e.methodName = method; + e.before = []; + e.after = []; + + + var returnValue, v, cancel; + var obj = this; + + var makeCall = function(fn, scope, args){ + if((v = fn.apply(scope || obj, args)) !== undefined){ + if(typeof v === 'object'){ + if(v.returnValue !== undefined){ + returnValue = v.returnValue; + }else{ + returnValue = v; + } + if(v.cancel === true){ + cancel = true; + } + }else if(v === false){ + cancel = true; + }else { + returnValue = v; + } + } + } + + this[method] = function(){ + returnValue = v = undefined; cancel = false; + var args = Array.prototype.slice.call(arguments, 0); + for(var i = 0, len = e.before.length; i < len; i++){ + makeCall(e.before[i].fn, e.before[i].scope, args); + if(cancel){ + return returnValue; + } + } + + if((v = e.originalFn.apply(obj, args)) !== undefined){ + returnValue = v; + } + + for(var i = 0, len = e.after.length; i < len; i++){ + makeCall(e.after[i].fn, e.after[i].scope, args); + if(cancel){ + return returnValue; + } + } + return returnValue; + }; + } + return e; + }, + + beforeMethod : function(method, fn, scope){ + var e = this.getMethodEvent(method); + e.before.push({fn: fn, scope: scope}); + }, + + afterMethod : function(method, fn, scope){ + var e = this.getMethodEvent(method); + e.after.push({fn: fn, scope: scope}); + }, + + removeMethodListener : function(method, fn, scope){ + var e = this.getMethodEvent(method); + for(var i = 0, len = e.before.length; i < len; i++){ + if(e.before[i].fn == fn && e.before[i].scope == scope){ + e.before.splice(i, 1); + return; + } + } + for(var i = 0, len = e.after.length; i < len; i++){ + if(e.after[i].fn == fn && e.after[i].scope == scope){ + e.after.splice(i, 1); + return; + } + } + } +}; + +Ext.util.Observable.prototype.on = Ext.util.Observable.prototype.addListener; + +Ext.util.Observable.prototype.un = Ext.util.Observable.prototype.removeListener; + + +Ext.util.Observable.capture = function(o, fn, scope){ + o.fireEvent = o.fireEvent.createInterceptor(fn, scope); +}; + + +Ext.util.Observable.releaseCapture = function(o){ + o.fireEvent = Ext.util.Observable.prototype.fireEvent; +}; + +(function(){ + + var createBuffered = function(h, o, scope){ + var task = new Ext.util.DelayedTask(); + return function(){ + task.delay(o.buffer, h, scope, Array.prototype.slice.call(arguments, 0)); + }; + }; + + var createSingle = function(h, e, fn, scope){ + return function(){ + e.removeListener(fn, scope); + return h.apply(scope, arguments); + }; + }; + + var createDelayed = function(h, o, scope){ + return function(){ + var args = Array.prototype.slice.call(arguments, 0); + setTimeout(function(){ + h.apply(scope, args); + }, o.delay || 10); + }; + }; + + Ext.util.Event = function(obj, name){ + this.name = name; + this.obj = obj; + this.listeners = []; + }; + + Ext.util.Event.prototype = { + addListener : function(fn, scope, options){ + scope = scope || this.obj; + if(!this.isListening(fn, scope)){ + var l = this.createListener(fn, scope, options); + if(!this.firing){ + this.listeners.push(l); + }else{ this.listeners = this.listeners.slice(0); + this.listeners.push(l); + } + } + }, + + createListener : function(fn, scope, o){ + o = o || {}; + scope = scope || this.obj; + var l = {fn: fn, scope: scope, options: o}; + var h = fn; + if(o.delay){ + h = createDelayed(h, o, scope); + } + if(o.single){ + h = createSingle(h, this, fn, scope); + } + if(o.buffer){ + h = createBuffered(h, o, scope); + } + l.fireFn = h; + return l; + }, + + findListener : function(fn, scope){ + scope = scope || this.obj; + var ls = this.listeners; + for(var i = 0, len = ls.length; i < len; i++){ + var l = ls[i]; + if(l.fn == fn && l.scope == scope){ + return i; + } + } + return -1; + }, + + isListening : function(fn, scope){ + return this.findListener(fn, scope) != -1; + }, + + removeListener : function(fn, scope){ + var index; + if((index = this.findListener(fn, scope)) != -1){ + if(!this.firing){ + this.listeners.splice(index, 1); + }else{ + this.listeners = this.listeners.slice(0); + this.listeners.splice(index, 1); + } + return true; + } + return false; + }, + + clearListeners : function(){ + this.listeners = []; + }, + + fire : function(){ + var ls = this.listeners, scope, len = ls.length; + if(len > 0){ + this.firing = true; + var args = Array.prototype.slice.call(arguments, 0); + for(var i = 0; i < len; i++){ + var l = ls[i]; + if(l.fireFn.apply(l.scope||this.obj||window, arguments) === false){ + this.firing = false; + return false; + } + } + this.firing = false; + } + return true; + } + }; +})(); + +Ext.EventManager = function(){ + var docReadyEvent, docReadyProcId, docReadyState = false; + var resizeEvent, resizeTask, textEvent, textSize; + var E = Ext.lib.Event; + var D = Ext.lib.Dom; + + + var fireDocReady = function(){ + if(!docReadyState){ + docReadyState = true; + Ext.isReady = true; + if(docReadyProcId){ + clearInterval(docReadyProcId); + } + if(Ext.isGecko || Ext.isOpera) { + document.removeEventListener("DOMContentLoaded", fireDocReady, false); + } + if(Ext.isIE){ + var defer = document.getElementById("ie-deferred-loader"); + if(defer){ + defer.onreadystatechange = null; + defer.parentNode.removeChild(defer); + } + } + if(docReadyEvent){ + docReadyEvent.fire(); + docReadyEvent.clearListeners(); + } + } + }; + + var initDocReady = function(){ + docReadyEvent = new Ext.util.Event(); + if(Ext.isGecko || Ext.isOpera) { + document.addEventListener("DOMContentLoaded", fireDocReady, false); + }else if(Ext.isIE){ + document.write(""); + var defer = document.getElementById("ie-deferred-loader"); + defer.onreadystatechange = function(){ + if(this.readyState == "complete"){ + fireDocReady(); + } + }; + }else if(Ext.isSafari){ + docReadyProcId = setInterval(function(){ + var rs = document.readyState; + if(rs == "complete") { + fireDocReady(); + } + }, 10); + } + + E.on(window, "load", fireDocReady); + }; + + var createBuffered = function(h, o){ + var task = new Ext.util.DelayedTask(h); + return function(e){ + + e = new Ext.EventObjectImpl(e); + task.delay(o.buffer, h, null, [e]); + }; + }; + + var createSingle = function(h, el, ename, fn){ + return function(e){ + Ext.EventManager.removeListener(el, ename, fn); + h(e); + }; + }; + + var createDelayed = function(h, o){ + return function(e){ + + e = new Ext.EventObjectImpl(e); + setTimeout(function(){ + h(e); + }, o.delay || 10); + }; + }; + + var listen = function(element, ename, opt, fn, scope){ + var o = (!opt || typeof opt == "boolean") ? {} : opt; + fn = fn || o.fn; scope = scope || o.scope; + var el = Ext.getDom(element); + if(!el){ + throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.'; + } + var h = function(e){ + e = Ext.EventObject.setEvent(e); + var t; + if(o.delegate){ + t = e.getTarget(o.delegate, el); + if(!t){ + return; + } + }else{ + t = e.target; + } + if(o.stopEvent === true){ + e.stopEvent(); + } + if(o.preventDefault === true){ + e.preventDefault(); + } + if(o.stopPropagation === true){ + e.stopPropagation(); + } + + if(o.normalized === false){ + e = e.browserEvent; + } + + fn.call(scope || el, e, t, o); + }; + if(o.delay){ + h = createDelayed(h, o); + } + if(o.single){ + h = createSingle(h, el, ename, fn); + } + if(o.buffer){ + h = createBuffered(h, o); + } + fn._handlers = fn._handlers || []; + fn._handlers.push([Ext.id(el), ename, h]); + + E.on(el, ename, h); + if(ename == "mousewheel" && el.addEventListener){ + el.addEventListener("DOMMouseScroll", h, false); + E.on(window, 'unload', function(){ + el.removeEventListener("DOMMouseScroll", h, false); + }); + } + if(ename == "mousedown" && el == document){ + Ext.EventManager.stoppedMouseDownEvent.addListener(h); + } + return h; + }; + + var stopListening = function(el, ename, fn){ + var id = Ext.id(el), hds = fn._handlers, hd = fn; + if(hds){ + for(var i = 0, len = hds.length; i < len; i++){ + var h = hds[i]; + if(h[0] == id && h[1] == ename){ + hd = h[2]; + hds.splice(i, 1); + break; + } + } + } + E.un(el, ename, hd); + el = Ext.getDom(el); + if(ename == "mousewheel" && el.addEventListener){ + el.removeEventListener("DOMMouseScroll", hd, false); + } + if(ename == "mousedown" && el == document){ + Ext.EventManager.stoppedMouseDownEvent.removeListener(hd); + } + }; + + var propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/; + var pub = { + + + addListener : function(element, eventName, fn, scope, options){ + if(typeof eventName == "object"){ + var o = eventName; + for(var e in o){ + if(propRe.test(e)){ + continue; + } + if(typeof o[e] == "function"){ + + listen(element, e, o, o[e], o.scope); + }else{ + + listen(element, e, o[e]); + } + } + return; + } + return listen(element, eventName, options, fn, scope); + }, + + + removeListener : function(element, eventName, fn){ + return stopListening(element, eventName, fn); + }, + + + onDocumentReady : function(fn, scope, options){ + if(docReadyState){ + docReadyEvent.addListener(fn, scope, options); + docReadyEvent.fire(); + docReadyEvent.clearListeners(); + return; + } + if(!docReadyEvent){ + initDocReady(); + } + docReadyEvent.addListener(fn, scope, options); + }, + + + onWindowResize : function(fn, scope, options){ + if(!resizeEvent){ + resizeEvent = new Ext.util.Event(); + resizeTask = new Ext.util.DelayedTask(function(){ + resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); + }); + E.on(window, "resize", this.fireWindowResize, this); + } + resizeEvent.addListener(fn, scope, options); + }, + + + fireWindowResize : function(){ + if(resizeEvent){ + if((Ext.isIE||Ext.isAir) && resizeTask){ + resizeTask.delay(50); + }else{ + resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); + } + } + }, + + + onTextResize : function(fn, scope, options){ + if(!textEvent){ + textEvent = new Ext.util.Event(); + var textEl = new Ext.Element(document.createElement('div')); + textEl.dom.className = 'x-text-resize'; + textEl.dom.innerHTML = 'X'; + textEl.appendTo(document.body); + textSize = textEl.dom.offsetHeight; + setInterval(function(){ + if(textEl.dom.offsetHeight != textSize){ + textEvent.fire(textSize, textSize = textEl.dom.offsetHeight); + } + }, this.textResizeInterval); + } + textEvent.addListener(fn, scope, options); + }, + + + removeResizeListener : function(fn, scope){ + if(resizeEvent){ + resizeEvent.removeListener(fn, scope); + } + }, + + + fireResize : function(){ + if(resizeEvent){ + resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); + } + }, + + ieDeferSrc : false, + + textResizeInterval : 50 + }; + + pub.on = pub.addListener; + + pub.un = pub.removeListener; + + pub.stoppedMouseDownEvent = new Ext.util.Event(); + return pub; +}(); + +Ext.onReady = Ext.EventManager.onDocumentReady; + +Ext.onReady(function(){ + var bd = Ext.getBody(); + if(!bd){ return; } + + var cls = [ + Ext.isIE ? "ext-ie " + (Ext.isIE6 ? 'ext-ie6' : 'ext-ie7') + : Ext.isGecko ? "ext-gecko" + : Ext.isOpera ? "ext-opera" + : Ext.isSafari ? "ext-safari" : ""]; + + if(Ext.isMac){ + cls.push("ext-mac"); + } + if(Ext.isLinux){ + cls.push("ext-linux"); + } + if(Ext.isBorderBox){ + cls.push('ext-border-box'); + } + if(Ext.isStrict){ + var p = bd.dom.parentNode; + if(p){ + p.className += ' ext-strict'; + } + } + bd.addClass(cls.join(' ')); +}); + + +Ext.EventObject = function(){ + + var E = Ext.lib.Event; + + + var safariKeys = { + 63234 : 37, + 63235 : 39, + 63232 : 38, + 63233 : 40, + 63276 : 33, + 63277 : 34, + 63272 : 46, + 63273 : 36, + 63275 : 35 + }; + + + var btnMap = Ext.isIE ? {1:0,4:1,2:2} : + (Ext.isSafari ? {1:0,2:1,3:2} : {0:0,1:1,2:2}); + + Ext.EventObjectImpl = function(e){ + if(e){ + this.setEvent(e.browserEvent || e); + } + }; + Ext.EventObjectImpl.prototype = { + + browserEvent : null, + + button : -1, + + shiftKey : false, + + ctrlKey : false, + + altKey : false, + + + BACKSPACE : 8, + + TAB : 9, + + RETURN : 13, + + ENTER : 13, + + SHIFT : 16, + + CONTROL : 17, + + ESC : 27, + + SPACE : 32, + + PAGEUP : 33, + + PAGEDOWN : 34, + + END : 35, + + HOME : 36, + + LEFT : 37, + + UP : 38, + + RIGHT : 39, + + DOWN : 40, + + DELETE : 46, + + F5 : 116, + + + setEvent : function(e){ + if(e == this || (e && e.browserEvent)){ + return e; + } + this.browserEvent = e; + if(e){ + + this.button = e.button ? btnMap[e.button] : (e.which ? e.which-1 : -1); + if(e.type == 'click' && this.button == -1){ + this.button = 0; + } + this.type = e.type; + this.shiftKey = e.shiftKey; + + this.ctrlKey = e.ctrlKey || e.metaKey; + this.altKey = e.altKey; + + this.keyCode = e.keyCode; + this.charCode = e.charCode; + + this.target = E.getTarget(e); + + this.xy = E.getXY(e); + }else{ + this.button = -1; + this.shiftKey = false; + this.ctrlKey = false; + this.altKey = false; + this.keyCode = 0; + this.charCode =0; + this.target = null; + this.xy = [0, 0]; + } + return this; + }, + + + stopEvent : function(){ + if(this.browserEvent){ + if(this.browserEvent.type == 'mousedown'){ + Ext.EventManager.stoppedMouseDownEvent.fire(this); + } + E.stopEvent(this.browserEvent); + } + }, + + + preventDefault : function(){ + if(this.browserEvent){ + E.preventDefault(this.browserEvent); + } + }, + + + isNavKeyPress : function(){ + var k = this.keyCode; + k = Ext.isSafari ? (safariKeys[k] || k) : k; + return (k >= 33 && k <= 40) || k == this.RETURN || k == this.TAB || k == this.ESC; + }, + + isSpecialKey : function(){ + var k = this.keyCode; + return (this.type == 'keypress' && this.ctrlKey) || k == 9 || k == 13 || k == 40 || k == 27 || + (k == 16) || (k == 17) || + (k >= 18 && k <= 20) || + (k >= 33 && k <= 35) || + (k >= 36 && k <= 39) || + (k >= 44 && k <= 45); + }, + + stopPropagation : function(){ + if(this.browserEvent){ + if(this.browserEvent.type == 'mousedown'){ + Ext.EventManager.stoppedMouseDownEvent.fire(this); + } + E.stopPropagation(this.browserEvent); + } + }, + + + getCharCode : function(){ + return this.charCode || this.keyCode; + }, + + + getKey : function(){ + var k = this.keyCode || this.charCode; + return Ext.isSafari ? (safariKeys[k] || k) : k; + }, + + + getPageX : function(){ + return this.xy[0]; + }, + + + getPageY : function(){ + return this.xy[1]; + }, + + + getTime : function(){ + if(this.browserEvent){ + return E.getTime(this.browserEvent); + } + return null; + }, + + + getXY : function(){ + return this.xy; + }, + + + getTarget : function(selector, maxDepth, returnEl){ + return selector ? Ext.fly(this.target).findParent(selector, maxDepth, returnEl) : (returnEl ? Ext.get(this.target) : this.target); + }, + + + getRelatedTarget : function(){ + if(this.browserEvent){ + return E.getRelatedTarget(this.browserEvent); + } + return null; + }, + + + getWheelDelta : function(){ + var e = this.browserEvent; + var delta = 0; + if(e.wheelDelta){ + delta = e.wheelDelta/120; + }else if(e.detail){ + delta = -e.detail/3; + } + return delta; + }, + + + hasModifier : function(){ + return ((this.ctrlKey || this.altKey) || this.shiftKey) ? true : false; + }, + + + within : function(el, related){ + var t = this[related ? "getRelatedTarget" : "getTarget"](); + return t && Ext.fly(el).contains(t); + }, + + getPoint : function(){ + return new Ext.lib.Point(this.xy[0], this.xy[1]); + } + }; + + return new Ext.EventObjectImpl(); +}(); + +(function(){ +var D = Ext.lib.Dom; +var E = Ext.lib.Event; +var A = Ext.lib.Anim; + +var propCache = {}; +var camelRe = /(-[a-z])/gi; +var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); }; +var view = document.defaultView; + +Ext.Element = function(element, forceNew){ + var dom = typeof element == "string" ? + document.getElementById(element) : element; + if(!dom){ return null; + } + var id = dom.id; + if(forceNew !== true && id && Ext.Element.cache[id]){ return Ext.Element.cache[id]; + } + + + this.dom = dom; + + + this.id = id || Ext.id(dom); +}; + +var El = Ext.Element; + +El.prototype = { + + originalDisplay : "", + + visibilityMode : 1, + + defaultUnit : "px", + + setVisibilityMode : function(visMode){ + this.visibilityMode = visMode; + return this; + }, + + enableDisplayMode : function(display){ + this.setVisibilityMode(El.DISPLAY); + if(typeof display != "undefined") this.originalDisplay = display; + return this; + }, + + + findParent : function(simpleSelector, maxDepth, returnEl){ + var p = this.dom, b = document.body, depth = 0, dq = Ext.DomQuery, stopEl; + maxDepth = maxDepth || 50; + if(typeof maxDepth != "number"){ + stopEl = Ext.getDom(maxDepth); + maxDepth = 10; + } + while(p && p.nodeType == 1 && depth < maxDepth && p != b && p != stopEl){ + if(dq.is(p, simpleSelector)){ + return returnEl ? Ext.get(p) : p; + } + depth++; + p = p.parentNode; + } + return null; + }, + + + + findParentNode : function(simpleSelector, maxDepth, returnEl){ + var p = Ext.fly(this.dom.parentNode, '_internal'); + return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null; + }, + + + up : function(simpleSelector, maxDepth){ + return this.findParentNode(simpleSelector, maxDepth, true); + }, + + + + + is : function(simpleSelector){ + return Ext.DomQuery.is(this.dom, simpleSelector); + }, + + + animate : function(args, duration, onComplete, easing, animType){ + this.anim(args, {duration: duration, callback: onComplete, easing: easing}, animType); + return this; + }, + + + anim : function(args, opt, animType, defaultDur, defaultEase, cb){ + animType = animType || 'run'; + opt = opt || {}; + var anim = Ext.lib.Anim[animType]( + this.dom, args, + (opt.duration || defaultDur) || .35, + (opt.easing || defaultEase) || 'easeOut', + function(){ + Ext.callback(cb, this); + Ext.callback(opt.callback, opt.scope || this, [this, opt]); + }, + this + ); + opt.anim = anim; + return anim; + }, + + preanim : function(a, i){ + return !a[i] ? false : (typeof a[i] == "object" ? a[i]: {duration: a[i+1], callback: a[i+2], easing: a[i+3]}); + }, + + + clean : function(forceReclean){ + if(this.isCleaned && forceReclean !== true){ + return this; + } + var ns = /\S/; + var d = this.dom, n = d.firstChild, ni = -1; + while(n){ + var nx = n.nextSibling; + if(n.nodeType == 3 && !ns.test(n.nodeValue)){ + d.removeChild(n); + }else{ + n.nodeIndex = ++ni; + } + n = nx; + } + this.isCleaned = true; + return this; + }, + + + scrollIntoView : function(container, hscroll){ + var c = Ext.getDom(container) || Ext.getBody().dom; + var el = this.dom; + + var o = this.getOffsetsTo(c), + l = o[0] + c.scrollLeft, + t = o[1] + c.scrollTop, + b = t+el.offsetHeight, + r = l+el.offsetWidth; + + var ch = c.clientHeight; + var ct = parseInt(c.scrollTop, 10); + var cl = parseInt(c.scrollLeft, 10); + var cb = ct + ch; + var cr = cl + c.clientWidth; + + if(el.offsetHeight > ch || t < ct){ + c.scrollTop = t; + }else if(b > cb){ + c.scrollTop = b-ch; + } + c.scrollTop = c.scrollTop; + if(hscroll !== false){ + if(el.offsetWidth > c.clientWidth || l < cl){ + c.scrollLeft = l; + }else if(r > cr){ + c.scrollLeft = r-c.clientWidth; + } + c.scrollLeft = c.scrollLeft; + } + return this; + }, + + scrollChildIntoView : function(child, hscroll){ + Ext.fly(child, '_scrollChildIntoView').scrollIntoView(this, hscroll); + }, + + + autoHeight : function(animate, duration, onComplete, easing){ + var oldHeight = this.getHeight(); + this.clip(); + this.setHeight(1); setTimeout(function(){ + var height = parseInt(this.dom.scrollHeight, 10); if(!animate){ + this.setHeight(height); + this.unclip(); + if(typeof onComplete == "function"){ + onComplete(); + } + }else{ + this.setHeight(oldHeight); this.setHeight(height, animate, duration, function(){ + this.unclip(); + if(typeof onComplete == "function") onComplete(); + }.createDelegate(this), easing); + } + }.createDelegate(this), 0); + return this; + }, + + + contains : function(el){ + if(!el){return false;} + return D.isAncestor(this.dom, el.dom ? el.dom : el); + }, + + + isVisible : function(deep) { + var vis = !(this.getStyle("visibility") == "hidden" || this.getStyle("display") == "none"); + if(deep !== true || !vis){ + return vis; + } + var p = this.dom.parentNode; + while(p && p.tagName.toLowerCase() != "body"){ + if(!Ext.fly(p, '_isVisible').isVisible()){ + return false; + } + p = p.parentNode; + } + return true; + }, + + + select : function(selector, unique){ + return El.select(selector, unique, this.dom); + }, + + + query : function(selector, unique){ + return Ext.DomQuery.select(selector, this.dom); + }, + + + child : function(selector, returnDom){ + var n = Ext.DomQuery.selectNode(selector, this.dom); + return returnDom ? n : Ext.get(n); + }, + + + down : function(selector, returnDom){ + var n = Ext.DomQuery.selectNode(" > " + selector, this.dom); + return returnDom ? n : Ext.get(n); + }, + + + initDD : function(group, config, overrides){ + var dd = new Ext.dd.DD(Ext.id(this.dom), group, config); + return Ext.apply(dd, overrides); + }, + + + initDDProxy : function(group, config, overrides){ + var dd = new Ext.dd.DDProxy(Ext.id(this.dom), group, config); + return Ext.apply(dd, overrides); + }, + + + initDDTarget : function(group, config, overrides){ + var dd = new Ext.dd.DDTarget(Ext.id(this.dom), group, config); + return Ext.apply(dd, overrides); + }, + + + setVisible : function(visible, animate){ + if(!animate || !A){ + if(this.visibilityMode == El.DISPLAY){ + this.setDisplayed(visible); + }else{ + this.fixDisplay(); + this.dom.style.visibility = visible ? "visible" : "hidden"; + } + }else{ + var dom = this.dom; + var visMode = this.visibilityMode; + if(visible){ + this.setOpacity(.01); + this.setVisible(true); + } + this.anim({opacity: { to: (visible?1:0) }}, + this.preanim(arguments, 1), + null, .35, 'easeIn', function(){ + if(!visible){ + if(visMode == El.DISPLAY){ + dom.style.display = "none"; + }else{ + dom.style.visibility = "hidden"; + } + Ext.get(dom).setOpacity(1); + } + }); + } + return this; + }, + + + isDisplayed : function() { + return this.getStyle("display") != "none"; + }, + + + toggle : function(animate){ + this.setVisible(!this.isVisible(), this.preanim(arguments, 0)); + return this; + }, + + + setDisplayed : function(value) { + if(typeof value == "boolean"){ + value = value ? this.originalDisplay : "none"; + } + this.setStyle("display", value); + return this; + }, + + + focus : function() { + try{ + this.dom.focus(); + }catch(e){} + return this; + }, + + + blur : function() { + try{ + this.dom.blur(); + }catch(e){} + return this; + }, + + + addClass : function(className){ + if(Ext.isArray(className)){ + for(var i = 0, len = className.length; i < len; i++) { + this.addClass(className[i]); + } + }else{ + if(className && !this.hasClass(className)){ + this.dom.className = this.dom.className + " " + className; + } + } + return this; + }, + + + radioClass : function(className){ + var siblings = this.dom.parentNode.childNodes; + for(var i = 0; i < siblings.length; i++) { + var s = siblings[i]; + if(s.nodeType == 1){ + Ext.get(s).removeClass(className); + } + } + this.addClass(className); + return this; + }, + + + removeClass : function(className){ + if(!className || !this.dom.className){ + return this; + } + if(Ext.isArray(className)){ + for(var i = 0, len = className.length; i < len; i++) { + this.removeClass(className[i]); + } + }else{ + if(this.hasClass(className)){ + var re = this.classReCache[className]; + if (!re) { + re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', "g"); + this.classReCache[className] = re; + } + this.dom.className = + this.dom.className.replace(re, " "); + } + } + return this; + }, + + classReCache: {}, + + + toggleClass : function(className){ + if(this.hasClass(className)){ + this.removeClass(className); + }else{ + this.addClass(className); + } + return this; + }, + + + hasClass : function(className){ + return className && (' '+this.dom.className+' ').indexOf(' '+className+' ') != -1; + }, + + + replaceClass : function(oldClassName, newClassName){ + this.removeClass(oldClassName); + this.addClass(newClassName); + return this; + }, + + + getStyles : function(){ + var a = arguments, len = a.length, r = {}; + for(var i = 0; i < len; i++){ + r[a[i]] = this.getStyle(a[i]); + } + return r; + }, + + + getStyle : function(){ + return view && view.getComputedStyle ? + function(prop){ + var el = this.dom, v, cs, camel; + if(prop == 'float'){ + prop = "cssFloat"; + } + if(v = el.style[prop]){ + return v; + } + if(cs = view.getComputedStyle(el, "")){ + if(!(camel = propCache[prop])){ + camel = propCache[prop] = prop.replace(camelRe, camelFn); + } + return cs[camel]; + } + return null; + } : + function(prop){ + var el = this.dom, v, cs, camel; + if(prop == 'opacity'){ + if(typeof el.style.filter == 'string'){ + var m = el.style.filter.match(/alpha\(opacity=(.*)\)/i); + if(m){ + var fv = parseFloat(m[1]); + if(!isNaN(fv)){ + return fv ? fv / 100 : 0; + } + } + } + return 1; + }else if(prop == 'float'){ + prop = "styleFloat"; + } + if(!(camel = propCache[prop])){ + camel = propCache[prop] = prop.replace(camelRe, camelFn); + } + if(v = el.style[camel]){ + return v; + } + if(cs = el.currentStyle){ + return cs[camel]; + } + return null; + }; + }(), + + + setStyle : function(prop, value){ + if(typeof prop == "string"){ + var camel; + if(!(camel = propCache[prop])){ + camel = propCache[prop] = prop.replace(camelRe, camelFn); + } + if(camel == 'opacity') { + this.setOpacity(value); + }else{ + this.dom.style[camel] = value; + } + }else{ + for(var style in prop){ + if(typeof prop[style] != "function"){ + this.setStyle(style, prop[style]); + } + } + } + return this; + }, + + + applyStyles : function(style){ + Ext.DomHelper.applyStyles(this.dom, style); + return this; + }, + + + getX : function(){ + return D.getX(this.dom); + }, + + + getY : function(){ + return D.getY(this.dom); + }, + + + getXY : function(){ + return D.getXY(this.dom); + }, + + + getOffsetsTo : function(el){ + var o = this.getXY(); + var e = Ext.fly(el, '_internal').getXY(); + return [o[0]-e[0],o[1]-e[1]]; + }, + + + setX : function(x, animate){ + if(!animate || !A){ + D.setX(this.dom, x); + }else{ + this.setXY([x, this.getY()], this.preanim(arguments, 1)); + } + return this; + }, + + + setY : function(y, animate){ + if(!animate || !A){ + D.setY(this.dom, y); + }else{ + this.setXY([this.getX(), y], this.preanim(arguments, 1)); + } + return this; + }, + + + setLeft : function(left){ + this.setStyle("left", this.addUnits(left)); + return this; + }, + + + setTop : function(top){ + this.setStyle("top", this.addUnits(top)); + return this; + }, + + + setRight : function(right){ + this.setStyle("right", this.addUnits(right)); + return this; + }, + + + setBottom : function(bottom){ + this.setStyle("bottom", this.addUnits(bottom)); + return this; + }, + + + setXY : function(pos, animate){ + if(!animate || !A){ + D.setXY(this.dom, pos); + }else{ + this.anim({points: {to: pos}}, this.preanim(arguments, 1), 'motion'); + } + return this; + }, + + + setLocation : function(x, y, animate){ + this.setXY([x, y], this.preanim(arguments, 2)); + return this; + }, + + + moveTo : function(x, y, animate){ + this.setXY([x, y], this.preanim(arguments, 2)); + return this; + }, + + + getRegion : function(){ + return D.getRegion(this.dom); + }, + + + getHeight : function(contentHeight){ + var h = this.dom.offsetHeight || 0; + h = contentHeight !== true ? h : h-this.getBorderWidth("tb")-this.getPadding("tb"); + return h < 0 ? 0 : h; + }, + + + getWidth : function(contentWidth){ + var w = this.dom.offsetWidth || 0; + w = contentWidth !== true ? w : w-this.getBorderWidth("lr")-this.getPadding("lr"); + return w < 0 ? 0 : w; + }, + + + getComputedHeight : function(){ + var h = Math.max(this.dom.offsetHeight, this.dom.clientHeight); + if(!h){ + h = parseInt(this.getStyle('height'), 10) || 0; + if(!this.isBorderBox()){ + h += this.getFrameWidth('tb'); + } + } + return h; + }, + + + getComputedWidth : function(){ + var w = Math.max(this.dom.offsetWidth, this.dom.clientWidth); + if(!w){ + w = parseInt(this.getStyle('width'), 10) || 0; + if(!this.isBorderBox()){ + w += this.getFrameWidth('lr'); + } + } + return w; + }, + + + getSize : function(contentSize){ + return {width: this.getWidth(contentSize), height: this.getHeight(contentSize)}; + }, + + getStyleSize : function(){ + var w, h, d = this.dom, s = d.style; + if(s.width && s.width != 'auto'){ + w = parseInt(s.width, 10); + if(Ext.isBorderBox){ + w -= this.getFrameWidth('lr'); + } + } + if(s.height && s.height != 'auto'){ + h = parseInt(s.height, 10); + if(Ext.isBorderBox){ + h -= this.getFrameWidth('tb'); + } + } + return {width: w || this.getWidth(true), height: h || this.getHeight(true)}; + + }, + + + getViewSize : function(){ + var d = this.dom, doc = document, aw = 0, ah = 0; + if(d == doc || d == doc.body){ + return {width : D.getViewWidth(), height: D.getViewHeight()}; + }else{ + return { + width : d.clientWidth, + height: d.clientHeight + }; + } + }, + + + getValue : function(asNumber){ + return asNumber ? parseInt(this.dom.value, 10) : this.dom.value; + }, + + adjustWidth : function(width){ + if(typeof width == "number"){ + if(this.autoBoxAdjust && !this.isBorderBox()){ + width -= (this.getBorderWidth("lr") + this.getPadding("lr")); + } + if(width < 0){ + width = 0; + } + } + return width; + }, + + adjustHeight : function(height){ + if(typeof height == "number"){ + if(this.autoBoxAdjust && !this.isBorderBox()){ + height -= (this.getBorderWidth("tb") + this.getPadding("tb")); + } + if(height < 0){ + height = 0; + } + } + return height; + }, + + + setWidth : function(width, animate){ + width = this.adjustWidth(width); + if(!animate || !A){ + this.dom.style.width = this.addUnits(width); + }else{ + this.anim({width: {to: width}}, this.preanim(arguments, 1)); + } + return this; + }, + + + setHeight : function(height, animate){ + height = this.adjustHeight(height); + if(!animate || !A){ + this.dom.style.height = this.addUnits(height); + }else{ + this.anim({height: {to: height}}, this.preanim(arguments, 1)); + } + return this; + }, + + + setSize : function(width, height, animate){ + if(typeof width == "object"){ height = width.height; width = width.width; + } + width = this.adjustWidth(width); height = this.adjustHeight(height); + if(!animate || !A){ + this.dom.style.width = this.addUnits(width); + this.dom.style.height = this.addUnits(height); + }else{ + this.anim({width: {to: width}, height: {to: height}}, this.preanim(arguments, 2)); + } + return this; + }, + + + setBounds : function(x, y, width, height, animate){ + if(!animate || !A){ + this.setSize(width, height); + this.setLocation(x, y); + }else{ + width = this.adjustWidth(width); height = this.adjustHeight(height); + this.anim({points: {to: [x, y]}, width: {to: width}, height: {to: height}}, + this.preanim(arguments, 4), 'motion'); + } + return this; + }, + + + setRegion : function(region, animate){ + this.setBounds(region.left, region.top, region.right-region.left, region.bottom-region.top, this.preanim(arguments, 1)); + return this; + }, + + + addListener : function(eventName, fn, scope, options){ + Ext.EventManager.on(this.dom, eventName, fn, scope || this, options); + }, + + + removeListener : function(eventName, fn){ + Ext.EventManager.removeListener(this.dom, eventName, fn); + return this; + }, + + + removeAllListeners : function(){ + E.purgeElement(this.dom); + return this; + }, + + + relayEvent : function(eventName, observable){ + this.on(eventName, function(e){ + observable.fireEvent(eventName, e); + }); + }, + + + setOpacity : function(opacity, animate){ + if(!animate || !A){ + var s = this.dom.style; + if(Ext.isIE){ + s.zoom = 1; + s.filter = (s.filter || '').replace(/alpha\([^\)]*\)/gi,"") + + (opacity == 1 ? "" : " alpha(opacity=" + opacity * 100 + ")"); + }else{ + s.opacity = opacity; + } + }else{ + this.anim({opacity: {to: opacity}}, this.preanim(arguments, 1), null, .35, 'easeIn'); + } + return this; + }, + + + getLeft : function(local){ + if(!local){ + return this.getX(); + }else{ + return parseInt(this.getStyle("left"), 10) || 0; + } + }, + + + getRight : function(local){ + if(!local){ + return this.getX() + this.getWidth(); + }else{ + return (this.getLeft(true) + this.getWidth()) || 0; + } + }, + + + getTop : function(local) { + if(!local){ + return this.getY(); + }else{ + return parseInt(this.getStyle("top"), 10) || 0; + } + }, + + + getBottom : function(local){ + if(!local){ + return this.getY() + this.getHeight(); + }else{ + return (this.getTop(true) + this.getHeight()) || 0; + } + }, + + + position : function(pos, zIndex, x, y){ + if(!pos){ + if(this.getStyle('position') == 'static'){ + this.setStyle('position', 'relative'); + } + }else{ + this.setStyle("position", pos); + } + if(zIndex){ + this.setStyle("z-index", zIndex); + } + if(x !== undefined && y !== undefined){ + this.setXY([x, y]); + }else if(x !== undefined){ + this.setX(x); + }else if(y !== undefined){ + this.setY(y); + } + }, + + + clearPositioning : function(value){ + value = value ||''; + this.setStyle({ + "left": value, + "right": value, + "top": value, + "bottom": value, + "z-index": "", + "position" : "static" + }); + return this; + }, + + + getPositioning : function(){ + var l = this.getStyle("left"); + var t = this.getStyle("top"); + return { + "position" : this.getStyle("position"), + "left" : l, + "right" : l ? "" : this.getStyle("right"), + "top" : t, + "bottom" : t ? "" : this.getStyle("bottom"), + "z-index" : this.getStyle("z-index") + }; + }, + + + getBorderWidth : function(side){ + return this.addStyles(side, El.borders); + }, + + + getPadding : function(side){ + return this.addStyles(side, El.paddings); + }, + + + setPositioning : function(pc){ + this.applyStyles(pc); + if(pc.right == "auto"){ + this.dom.style.right = ""; + } + if(pc.bottom == "auto"){ + this.dom.style.bottom = ""; + } + return this; + }, + + fixDisplay : function(){ + if(this.getStyle("display") == "none"){ + this.setStyle("visibility", "hidden"); + this.setStyle("display", this.originalDisplay); if(this.getStyle("display") == "none"){ this.setStyle("display", "block"); + } + } + }, + + setOverflow : function(v){ + if(v=='auto' && Ext.isMac && Ext.isGecko){ this.dom.style.overflow = 'hidden'; + (function(){this.dom.style.overflow = 'auto';}).defer(1, this); + }else{ + this.dom.style.overflow = v; + } + }, + + + setLeftTop : function(left, top){ + this.dom.style.left = this.addUnits(left); + this.dom.style.top = this.addUnits(top); + return this; + }, + + + move : function(direction, distance, animate){ + var xy = this.getXY(); + direction = direction.toLowerCase(); + switch(direction){ + case "l": + case "left": + this.moveTo(xy[0]-distance, xy[1], this.preanim(arguments, 2)); + break; + case "r": + case "right": + this.moveTo(xy[0]+distance, xy[1], this.preanim(arguments, 2)); + break; + case "t": + case "top": + case "up": + this.moveTo(xy[0], xy[1]-distance, this.preanim(arguments, 2)); + break; + case "b": + case "bottom": + case "down": + this.moveTo(xy[0], xy[1]+distance, this.preanim(arguments, 2)); + break; + } + return this; + }, + + + clip : function(){ + if(!this.isClipped){ + this.isClipped = true; + this.originalClip = { + "o": this.getStyle("overflow"), + "x": this.getStyle("overflow-x"), + "y": this.getStyle("overflow-y") + }; + this.setStyle("overflow", "hidden"); + this.setStyle("overflow-x", "hidden"); + this.setStyle("overflow-y", "hidden"); + } + return this; + }, + + + unclip : function(){ + if(this.isClipped){ + this.isClipped = false; + var o = this.originalClip; + if(o.o){this.setStyle("overflow", o.o);} + if(o.x){this.setStyle("overflow-x", o.x);} + if(o.y){this.setStyle("overflow-y", o.y);} + } + return this; + }, + + + + getAnchorXY : function(anchor, local, s){ + + var w, h, vp = false; + if(!s){ + var d = this.dom; + if(d == document.body || d == document){ + vp = true; + w = D.getViewWidth(); h = D.getViewHeight(); + }else{ + w = this.getWidth(); h = this.getHeight(); + } + }else{ + w = s.width; h = s.height; + } + var x = 0, y = 0, r = Math.round; + switch((anchor || "tl").toLowerCase()){ + case "c": + x = r(w*.5); + y = r(h*.5); + break; + case "t": + x = r(w*.5); + y = 0; + break; + case "l": + x = 0; + y = r(h*.5); + break; + case "r": + x = w; + y = r(h*.5); + break; + case "b": + x = r(w*.5); + y = h; + break; + case "tl": + x = 0; + y = 0; + break; + case "bl": + x = 0; + y = h; + break; + case "br": + x = w; + y = h; + break; + case "tr": + x = w; + y = 0; + break; + } + if(local === true){ + return [x, y]; + } + if(vp){ + var sc = this.getScroll(); + return [x + sc.left, y + sc.top]; + } + var o = this.getXY(); + return [x+o[0], y+o[1]]; + }, + + + getAlignToXY : function(el, p, o){ + el = Ext.get(el); + if(!el || !el.dom){ + throw "Element.alignToXY with an element that doesn't exist"; + } + var d = this.dom; + var c = false; var p1 = "", p2 = ""; + o = o || [0,0]; + + if(!p){ + p = "tl-bl"; + }else if(p == "?"){ + p = "tl-bl?"; + }else if(p.indexOf("-") == -1){ + p = "tl-" + p; + } + p = p.toLowerCase(); + var m = p.match(/^([a-z]+)-([a-z]+)(\?)?$/); + if(!m){ + throw "Element.alignTo with an invalid alignment " + p; + } + p1 = m[1]; p2 = m[2]; c = !!m[3]; + + var a1 = this.getAnchorXY(p1, true); + var a2 = el.getAnchorXY(p2, false); + + var x = a2[0] - a1[0] + o[0]; + var y = a2[1] - a1[1] + o[1]; + + if(c){ + var w = this.getWidth(), h = this.getHeight(), r = el.getRegion(); + var dw = D.getViewWidth()-5, dh = D.getViewHeight()-5; + + var p1y = p1.charAt(0), p1x = p1.charAt(p1.length-1); + var p2y = p2.charAt(0), p2x = p2.charAt(p2.length-1); + var swapY = ((p1y=="t" && p2y=="b") || (p1y=="b" && p2y=="t")); + var swapX = ((p1x=="r" && p2x=="l") || (p1x=="l" && p2x=="r")); + + var doc = document; + var scrollX = (doc.documentElement.scrollLeft || doc.body.scrollLeft || 0)+5; + var scrollY = (doc.documentElement.scrollTop || doc.body.scrollTop || 0)+5; + + if((x+w) > dw + scrollX){ + x = swapX ? r.left-w : dw+scrollX-w; + } + if(x < scrollX){ + x = swapX ? r.right : scrollX; + } + if((y+h) > dh + scrollY){ + y = swapY ? r.top-h : dh+scrollY-h; + } + if (y < scrollY){ + y = swapY ? r.bottom : scrollY; + } + } + return [x,y]; + }, + + getConstrainToXY : function(){ + var os = {top:0, left:0, bottom:0, right: 0}; + + return function(el, local, offsets, proposedXY){ + el = Ext.get(el); + offsets = offsets ? Ext.applyIf(offsets, os) : os; + + var vw, vh, vx = 0, vy = 0; + if(el.dom == document.body || el.dom == document){ + vw = Ext.lib.Dom.getViewWidth(); + vh = Ext.lib.Dom.getViewHeight(); + }else{ + vw = el.dom.clientWidth; + vh = el.dom.clientHeight; + if(!local){ + var vxy = el.getXY(); + vx = vxy[0]; + vy = vxy[1]; + } + } + + var s = el.getScroll(); + + vx += offsets.left + s.left; + vy += offsets.top + s.top; + + vw -= offsets.right; + vh -= offsets.bottom; + + var vr = vx+vw; + var vb = vy+vh; + + var xy = proposedXY || (!local ? this.getXY() : [this.getLeft(true), this.getTop(true)]); + var x = xy[0], y = xy[1]; + var w = this.dom.offsetWidth, h = this.dom.offsetHeight; + + var moved = false; + + if((x + w) > vr){ + x = vr - w; + moved = true; + } + if((y + h) > vb){ + y = vb - h; + moved = true; + } + if(x < vx){ + x = vx; + moved = true; + } + if(y < vy){ + y = vy; + moved = true; + } + return moved ? [x, y] : false; + }; + }(), + + adjustForConstraints : function(xy, parent, offsets){ + return this.getConstrainToXY(parent || document, false, offsets, xy) || xy; + }, + + + alignTo : function(element, position, offsets, animate){ + var xy = this.getAlignToXY(element, position, offsets); + this.setXY(xy, this.preanim(arguments, 3)); + return this; + }, + + + anchorTo : function(el, alignment, offsets, animate, monitorScroll, callback){ + var action = function(){ + this.alignTo(el, alignment, offsets, animate); + Ext.callback(callback, this); + }; + Ext.EventManager.onWindowResize(action, this); + var tm = typeof monitorScroll; + if(tm != 'undefined'){ + Ext.EventManager.on(window, 'scroll', action, this, + {buffer: tm == 'number' ? monitorScroll : 50}); + } + action.call(this); return this; + }, + + clearOpacity : function(){ + if (window.ActiveXObject) { + if(typeof this.dom.style.filter == 'string' && (/alpha/i).test(this.dom.style.filter)){ + this.dom.style.filter = ""; + } + } else { + this.dom.style.opacity = ""; + this.dom.style["-moz-opacity"] = ""; + this.dom.style["-khtml-opacity"] = ""; + } + return this; + }, + + + hide : function(animate){ + this.setVisible(false, this.preanim(arguments, 0)); + return this; + }, + + + show : function(animate){ + this.setVisible(true, this.preanim(arguments, 0)); + return this; + }, + + + addUnits : function(size){ + return Ext.Element.addUnits(size, this.defaultUnit); + }, + + + update : function(html, loadScripts, callback){ + if(typeof html == "undefined"){ + html = ""; + } + if(loadScripts !== true){ + this.dom.innerHTML = html; + if(typeof callback == "function"){ + callback(); + } + return this; + } + var id = Ext.id(); + var dom = this.dom; + + html += ''; + + E.onAvailable(id, function(){ + var hd = document.getElementsByTagName("head")[0]; + var re = /(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig; + var srcRe = /\ssrc=([\'\"])(.*?)\1/i; + var typeRe = /\stype=([\'\"])(.*?)\1/i; + + var match; + while(match = re.exec(html)){ + var attrs = match[1]; + var srcMatch = attrs ? attrs.match(srcRe) : false; + if(srcMatch && srcMatch[2]){ + var s = document.createElement("script"); + s.src = srcMatch[2]; + var typeMatch = attrs.match(typeRe); + if(typeMatch && typeMatch[2]){ + s.type = typeMatch[2]; + } + hd.appendChild(s); + }else if(match[2] && match[2].length > 0){ + if(window.execScript) { + window.execScript(match[2]); + } else { + window.eval(match[2]); + } + } + } + var el = document.getElementById(id); + if(el){Ext.removeNode(el);} + if(typeof callback == "function"){ + callback(); + } + }); + dom.innerHTML = html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig, ""); + return this; + }, + + + load : function(){ + var um = this.getUpdater(); + um.update.apply(um, arguments); + return this; + }, + + + getUpdater : function(){ + if(!this.updateManager){ + this.updateManager = new Ext.Updater(this); + } + return this.updateManager; + }, + + + unselectable : function(){ + this.dom.unselectable = "on"; + this.swallowEvent("selectstart", true); + this.applyStyles("-moz-user-select:none;-khtml-user-select:none;"); + this.addClass("x-unselectable"); + return this; + }, + + + getCenterXY : function(){ + return this.getAlignToXY(document, 'c-c'); + }, + + + center : function(centerIn){ + this.alignTo(centerIn || document, 'c-c'); + return this; + }, + + + isBorderBox : function(){ + return noBoxAdjust[this.dom.tagName.toLowerCase()] || Ext.isBorderBox; + }, + + + getBox : function(contentBox, local){ + var xy; + if(!local){ + xy = this.getXY(); + }else{ + var left = parseInt(this.getStyle("left"), 10) || 0; + var top = parseInt(this.getStyle("top"), 10) || 0; + xy = [left, top]; + } + var el = this.dom, w = el.offsetWidth, h = el.offsetHeight, bx; + if(!contentBox){ + bx = {x: xy[0], y: xy[1], 0: xy[0], 1: xy[1], width: w, height: h}; + }else{ + var l = this.getBorderWidth("l")+this.getPadding("l"); + var r = this.getBorderWidth("r")+this.getPadding("r"); + var t = this.getBorderWidth("t")+this.getPadding("t"); + var b = this.getBorderWidth("b")+this.getPadding("b"); + bx = {x: xy[0]+l, y: xy[1]+t, 0: xy[0]+l, 1: xy[1]+t, width: w-(l+r), height: h-(t+b)}; + } + bx.right = bx.x + bx.width; + bx.bottom = bx.y + bx.height; + return bx; + }, + + + getFrameWidth : function(sides, onlyContentBox){ + return onlyContentBox && Ext.isBorderBox ? 0 : (this.getPadding(sides) + this.getBorderWidth(sides)); + }, + + + setBox : function(box, adjust, animate){ + var w = box.width, h = box.height; + if((adjust && !this.autoBoxAdjust) && !this.isBorderBox()){ + w -= (this.getBorderWidth("lr") + this.getPadding("lr")); + h -= (this.getBorderWidth("tb") + this.getPadding("tb")); + } + this.setBounds(box.x, box.y, w, h, this.preanim(arguments, 2)); + return this; + }, + + + repaint : function(){ + var dom = this.dom; + this.addClass("x-repaint"); + setTimeout(function(){ + Ext.get(dom).removeClass("x-repaint"); + }, 1); + return this; + }, + + + getMargins : function(side){ + if(!side){ + return { + top: parseInt(this.getStyle("margin-top"), 10) || 0, + left: parseInt(this.getStyle("margin-left"), 10) || 0, + bottom: parseInt(this.getStyle("margin-bottom"), 10) || 0, + right: parseInt(this.getStyle("margin-right"), 10) || 0 + }; + }else{ + return this.addStyles(side, El.margins); + } + }, + + addStyles : function(sides, styles){ + var val = 0, v, w; + for(var i = 0, len = sides.length; i < len; i++){ + v = this.getStyle(styles[sides.charAt(i)]); + if(v){ + w = parseInt(v, 10); + if(w){ val += (w >= 0 ? w : -1 * w); } + } + } + return val; + }, + + + createProxy : function(config, renderTo, matchBox){ + config = typeof config == "object" ? + config : {tag : "div", cls: config}; + + var proxy; + if(renderTo){ + proxy = Ext.DomHelper.append(renderTo, config, true); + }else { + proxy = Ext.DomHelper.insertBefore(this.dom, config, true); + } + if(matchBox){ + proxy.setBox(this.getBox()); + } + return proxy; + }, + + + mask : function(msg, msgCls){ + if(this.getStyle("position") == "static"){ + this.setStyle("position", "relative"); + } + if(this._maskMsg){ + this._maskMsg.remove(); + } + if(this._mask){ + this._mask.remove(); + } + + this._mask = Ext.DomHelper.append(this.dom, {cls:"ext-el-mask"}, true); + + this.addClass("x-masked"); + this._mask.setDisplayed(true); + if(typeof msg == 'string'){ + this._maskMsg = Ext.DomHelper.append(this.dom, {cls:"ext-el-mask-msg", cn:{tag:'div'}}, true); + var mm = this._maskMsg; + mm.dom.className = msgCls ? "ext-el-mask-msg " + msgCls : "ext-el-mask-msg"; + mm.dom.firstChild.innerHTML = msg; + mm.setDisplayed(true); + mm.center(this); + } + if(Ext.isIE && !(Ext.isIE7 && Ext.isStrict) && this.getStyle('height') == 'auto'){ this._mask.setSize(this.dom.clientWidth, this.getHeight()); + } + return this._mask; + }, + + + unmask : function(){ + if(this._mask){ + if(this._maskMsg){ + this._maskMsg.remove(); + delete this._maskMsg; + } + this._mask.remove(); + delete this._mask; + } + this.removeClass("x-masked"); + }, + + + isMasked : function(){ + return this._mask && this._mask.isVisible(); + }, + + + createShim : function(){ + var el = document.createElement('iframe'); + el.frameBorder = 'no'; + el.className = 'ext-shim'; + if(Ext.isIE && Ext.isSecure){ + el.src = Ext.SSL_SECURE_URL; + } + var shim = Ext.get(this.dom.parentNode.insertBefore(el, this.dom)); + shim.autoBoxAdjust = false; + return shim; + }, + + + remove : function(){ + Ext.removeNode(this.dom); + delete El.cache[this.dom.id]; + }, + + + hover : function(overFn, outFn, scope){ + var preOverFn = function(e){ + if(!e.within(this, true)){ + overFn.apply(scope || this, arguments); + } + }; + var preOutFn = function(e){ + if(!e.within(this, true)){ + outFn.apply(scope || this, arguments); + } + }; + this.on("mouseover", preOverFn, this.dom); + this.on("mouseout", preOutFn, this.dom); + return this; + }, + + + addClassOnOver : function(className){ + this.hover( + function(){ + Ext.fly(this, '_internal').addClass(className); + }, + function(){ + Ext.fly(this, '_internal').removeClass(className); + } + ); + return this; + }, + + + addClassOnFocus : function(className){ + this.on("focus", function(){ + Ext.fly(this, '_internal').addClass(className); + }, this.dom); + this.on("blur", function(){ + Ext.fly(this, '_internal').removeClass(className); + }, this.dom); + return this; + }, + + addClassOnClick : function(className){ + var dom = this.dom; + this.on("mousedown", function(){ + Ext.fly(dom, '_internal').addClass(className); + var d = Ext.getDoc(); + var fn = function(){ + Ext.fly(dom, '_internal').removeClass(className); + d.removeListener("mouseup", fn); + }; + d.on("mouseup", fn); + }); + return this; + }, + + + swallowEvent : function(eventName, preventDefault){ + var fn = function(e){ + e.stopPropagation(); + if(preventDefault){ + e.preventDefault(); + } + }; + if(Ext.isArray(eventName)){ + for(var i = 0, len = eventName.length; i < len; i++){ + this.on(eventName[i], fn); + } + return this; + } + this.on(eventName, fn); + return this; + }, + + + parent : function(selector, returnDom){ + return this.matchNode('parentNode', 'parentNode', selector, returnDom); + }, + + + next : function(selector, returnDom){ + return this.matchNode('nextSibling', 'nextSibling', selector, returnDom); + }, + + + prev : function(selector, returnDom){ + return this.matchNode('previousSibling', 'previousSibling', selector, returnDom); + }, + + + + first : function(selector, returnDom){ + return this.matchNode('nextSibling', 'firstChild', selector, returnDom); + }, + + + last : function(selector, returnDom){ + return this.matchNode('previousSibling', 'lastChild', selector, returnDom); + }, + + matchNode : function(dir, start, selector, returnDom){ + var n = this.dom[start]; + while(n){ + if(n.nodeType == 1 && (!selector || Ext.DomQuery.is(n, selector))){ + return !returnDom ? Ext.get(n) : n; + } + n = n[dir]; + } + return null; + }, + + + appendChild: function(el){ + el = Ext.get(el); + el.appendTo(this); + return this; + }, + + + createChild: function(config, insertBefore, returnDom){ + config = config || {tag:'div'}; + if(insertBefore){ + return Ext.DomHelper.insertBefore(insertBefore, config, returnDom !== true); + } + return Ext.DomHelper[!this.dom.firstChild ? 'overwrite' : 'append'](this.dom, config, returnDom !== true); + }, + + + appendTo: function(el){ + el = Ext.getDom(el); + el.appendChild(this.dom); + return this; + }, + + + insertBefore: function(el){ + el = Ext.getDom(el); + el.parentNode.insertBefore(this.dom, el); + return this; + }, + + + insertAfter: function(el){ + el = Ext.getDom(el); + el.parentNode.insertBefore(this.dom, el.nextSibling); + return this; + }, + + + insertFirst: function(el, returnDom){ + el = el || {}; + if(typeof el == 'object' && !el.nodeType && !el.dom){ return this.createChild(el, this.dom.firstChild, returnDom); + }else{ + el = Ext.getDom(el); + this.dom.insertBefore(el, this.dom.firstChild); + return !returnDom ? Ext.get(el) : el; + } + }, + + + insertSibling: function(el, where, returnDom){ + var rt; + if(Ext.isArray(el)){ + for(var i = 0, len = el.length; i < len; i++){ + rt = this.insertSibling(el[i], where, returnDom); + } + return rt; + } + where = where ? where.toLowerCase() : 'before'; + el = el || {}; + var refNode = where == 'before' ? this.dom : this.dom.nextSibling; + + if(typeof el == 'object' && !el.nodeType && !el.dom){ if(where == 'after' && !this.dom.nextSibling){ + rt = Ext.DomHelper.append(this.dom.parentNode, el, !returnDom); + }else{ + rt = Ext.DomHelper[where == 'after' ? 'insertAfter' : 'insertBefore'](this.dom, el, !returnDom); + } + + }else{ + rt = this.dom.parentNode.insertBefore(Ext.getDom(el), refNode); + if(!returnDom){ + rt = Ext.get(rt); + } + } + return rt; + }, + + + wrap: function(config, returnDom){ + if(!config){ + config = {tag: "div"}; + } + var newEl = Ext.DomHelper.insertBefore(this.dom, config, !returnDom); + newEl.dom ? newEl.dom.appendChild(this.dom) : newEl.appendChild(this.dom); + return newEl; + }, + + + replace: function(el){ + el = Ext.get(el); + this.insertBefore(el); + el.remove(); + return this; + }, + + + replaceWith: function(el){ + if(typeof el == 'object' && !el.nodeType && !el.dom){ el = this.insertSibling(el, 'before'); + }else{ + el = Ext.getDom(el); + this.dom.parentNode.insertBefore(el, this.dom); + } + El.uncache(this.id); + this.dom.parentNode.removeChild(this.dom); + this.dom = el; + this.id = Ext.id(el); + El.cache[this.id] = this; + return this; + }, + + + insertHtml : function(where, html, returnEl){ + var el = Ext.DomHelper.insertHtml(where, this.dom, html); + return returnEl ? Ext.get(el) : el; + }, + + + set : function(o, useSet){ + var el = this.dom; + useSet = typeof useSet == 'undefined' ? (el.setAttribute ? true : false) : useSet; + for(var attr in o){ + if(attr == "style" || typeof o[attr] == "function") continue; + if(attr=="cls"){ + el.className = o["cls"]; + }else if(o.hasOwnProperty(attr)){ + if(useSet) el.setAttribute(attr, o[attr]); + else el[attr] = o[attr]; + } + } + if(o.style){ + Ext.DomHelper.applyStyles(el, o.style); + } + return this; + }, + + + addKeyListener : function(key, fn, scope){ + var config; + if(typeof key != "object" || Ext.isArray(key)){ + config = { + key: key, + fn: fn, + scope: scope + }; + }else{ + config = { + key : key.key, + shift : key.shift, + ctrl : key.ctrl, + alt : key.alt, + fn: fn, + scope: scope + }; + } + return new Ext.KeyMap(this, config); + }, + + + addKeyMap : function(config){ + return new Ext.KeyMap(this, config); + }, + + + isScrollable : function(){ + var dom = this.dom; + return dom.scrollHeight > dom.clientHeight || dom.scrollWidth > dom.clientWidth; + }, + + + scrollTo : function(side, value, animate){ + var prop = side.toLowerCase() == "left" ? "scrollLeft" : "scrollTop"; + if(!animate || !A){ + this.dom[prop] = value; + }else{ + var to = prop == "scrollLeft" ? [value, this.dom.scrollTop] : [this.dom.scrollLeft, value]; + this.anim({scroll: {"to": to}}, this.preanim(arguments, 2), 'scroll'); + } + return this; + }, + + + scroll : function(direction, distance, animate){ + if(!this.isScrollable()){ + return; + } + var el = this.dom; + var l = el.scrollLeft, t = el.scrollTop; + var w = el.scrollWidth, h = el.scrollHeight; + var cw = el.clientWidth, ch = el.clientHeight; + direction = direction.toLowerCase(); + var scrolled = false; + var a = this.preanim(arguments, 2); + switch(direction){ + case "l": + case "left": + if(w - l > cw){ + var v = Math.min(l + distance, w-cw); + this.scrollTo("left", v, a); + scrolled = true; + } + break; + case "r": + case "right": + if(l > 0){ + var v = Math.max(l - distance, 0); + this.scrollTo("left", v, a); + scrolled = true; + } + break; + case "t": + case "top": + case "up": + if(t > 0){ + var v = Math.max(t - distance, 0); + this.scrollTo("top", v, a); + scrolled = true; + } + break; + case "b": + case "bottom": + case "down": + if(h - t > ch){ + var v = Math.min(t + distance, h-ch); + this.scrollTo("top", v, a); + scrolled = true; + } + break; + } + return scrolled; + }, + + + translatePoints : function(x, y){ + if(typeof x == 'object' || Ext.isArray(x)){ + y = x[1]; x = x[0]; + } + var p = this.getStyle('position'); + var o = this.getXY(); + + var l = parseInt(this.getStyle('left'), 10); + var t = parseInt(this.getStyle('top'), 10); + + if(isNaN(l)){ + l = (p == "relative") ? 0 : this.dom.offsetLeft; + } + if(isNaN(t)){ + t = (p == "relative") ? 0 : this.dom.offsetTop; + } + + return {left: (x - o[0] + l), top: (y - o[1] + t)}; + }, + + + getScroll : function(){ + var d = this.dom, doc = document; + if(d == doc || d == doc.body){ + var l, t; + if(Ext.isIE && Ext.isStrict){ + l = doc.documentElement.scrollLeft || (doc.body.scrollLeft || 0); + t = doc.documentElement.scrollTop || (doc.body.scrollTop || 0); + }else{ + l = window.pageXOffset || (doc.body.scrollLeft || 0); + t = window.pageYOffset || (doc.body.scrollTop || 0); + } + return {left: l, top: t}; + }else{ + return {left: d.scrollLeft, top: d.scrollTop}; + } + }, + + + getColor : function(attr, defaultValue, prefix){ + var v = this.getStyle(attr); + if(!v || v == "transparent" || v == "inherit") { + return defaultValue; + } + var color = typeof prefix == "undefined" ? "#" : prefix; + if(v.substr(0, 4) == "rgb("){ + var rvs = v.slice(4, v.length -1).split(","); + for(var i = 0; i < 3; i++){ + var h = parseInt(rvs[i]); + var s = h.toString(16); + if(h < 16){ + s = "0" + s; + } + color += s; + } + } else { + if(v.substr(0, 1) == "#"){ + if(v.length == 4) { + for(var i = 1; i < 4; i++){ + var c = v.charAt(i); + color += c + c; + } + }else if(v.length == 7){ + color += v.substr(1); + } + } + } + return(color.length > 5 ? color.toLowerCase() : defaultValue); + }, + + + boxWrap : function(cls){ + cls = cls || 'x-box'; + var el = Ext.get(this.insertHtml('beforeBegin', String.format('
'+El.boxMarkup+'
', cls))); + el.child('.'+cls+'-mc').dom.appendChild(this.dom); + return el; + }, + + + getAttributeNS : Ext.isIE ? function(ns, name){ + var d = this.dom; + var type = typeof d[ns+":"+name]; + if(type != 'undefined' && type != 'unknown'){ + return d[ns+":"+name]; + } + return d[name]; + } : function(ns, name){ + var d = this.dom; + return d.getAttributeNS(ns, name) || d.getAttribute(ns+":"+name) || d.getAttribute(name) || d[name]; + }, + + getTextWidth : function(text, min, max){ + return (Ext.util.TextMetrics.measure(this.dom, Ext.value(text, this.dom.innerHTML, true)).width).constrain(min || 0, max || 1000000); + } +}; + +var ep = El.prototype; + + +ep.on = ep.addListener; + ep.mon = ep.addListener; + +ep.getUpdateManager = ep.getUpdater; + + +ep.un = ep.removeListener; + + +ep.autoBoxAdjust = true; + +El.unitPattern = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i; + +El.addUnits = function(v, defaultUnit){ + if(v === "" || v == "auto"){ + return v; + } + if(v === undefined){ + return ''; + } + if(typeof v == "number" || !El.unitPattern.test(v)){ + return v + (defaultUnit || 'px'); + } + return v; +}; + +El.boxMarkup = '
'; + +El.VISIBILITY = 1; + +El.DISPLAY = 2; + +El.borders = {l: "border-left-width", r: "border-right-width", t: "border-top-width", b: "border-bottom-width"}; +El.paddings = {l: "padding-left", r: "padding-right", t: "padding-top", b: "padding-bottom"}; +El.margins = {l: "margin-left", r: "margin-right", t: "margin-top", b: "margin-bottom"}; + + + + +El.cache = {}; + +var docEl; + + +El.get = function(el){ + var ex, elm, id; + if(!el){ return null; } + if(typeof el == "string"){ if(!(elm = document.getElementById(el))){ + return null; + } + if(ex = El.cache[el]){ + ex.dom = elm; + }else{ + ex = El.cache[el] = new El(elm); + } + return ex; + }else if(el.tagName){ if(!(id = el.id)){ + id = Ext.id(el); + } + if(ex = El.cache[id]){ + ex.dom = el; + }else{ + ex = El.cache[id] = new El(el); + } + return ex; + }else if(el instanceof El){ + if(el != docEl){ + el.dom = document.getElementById(el.id) || el.dom; El.cache[el.id] = el; } + return el; + }else if(el.isComposite){ + return el; + }else if(Ext.isArray(el)){ + return El.select(el); + }else if(el == document){ + if(!docEl){ + var f = function(){}; + f.prototype = El.prototype; + docEl = new f(); + docEl.dom = document; + } + return docEl; + } + return null; +}; + +El.uncache = function(el){ + for(var i = 0, a = arguments, len = a.length; i < len; i++) { + if(a[i]){ + delete El.cache[a[i].id || a[i]]; + } + } +}; + +El.garbageCollect = function(){ + if(!Ext.enableGarbageCollector){ + clearInterval(El.collectorThread); + return; + } + for(var eid in El.cache){ + var el = El.cache[eid], d = el.dom; + if(!d || !d.parentNode || (!d.offsetParent && !document.getElementById(eid))){ + delete El.cache[eid]; + if(d && Ext.enableListenerCollection){ + E.purgeElement(d); + } + } + } +} +El.collectorThreadId = setInterval(El.garbageCollect, 30000); + +var flyFn = function(){}; +flyFn.prototype = El.prototype; +var _cls = new flyFn(); + +El.Flyweight = function(dom){ + this.dom = dom; +}; + +El.Flyweight.prototype = _cls; +El.Flyweight.prototype.isFlyweight = true; + +El._flyweights = {}; + +El.fly = function(el, named){ + named = named || '_global'; + el = Ext.getDom(el); + if(!el){ + return null; + } + if(!El._flyweights[named]){ + El._flyweights[named] = new El.Flyweight(); + } + El._flyweights[named].dom = el; + return El._flyweights[named]; +}; + + +Ext.get = El.get; + +Ext.fly = El.fly; + +var noBoxAdjust = Ext.isStrict ? { + select:1 +} : { + input:1, select:1, textarea:1 +}; +if(Ext.isIE || Ext.isGecko){ + noBoxAdjust['button'] = 1; +} + + +Ext.EventManager.on(window, 'unload', function(){ + delete El.cache; + delete El._flyweights; +}); +})(); + +Ext.enableFx = true; + + +Ext.Fx = { + + slideIn : function(anchor, o){ + var el = this.getFxEl(); + o = o || {}; + + el.queueFx(o, function(){ + + anchor = anchor || "t"; + + this.fixDisplay(); + + var r = this.getFxRestore(); + var b = this.getBox(); + this.setSize(b); + + var wrap = this.fxWrap(r.pos, o, "hidden"); + + var st = this.dom.style; + st.visibility = "visible"; + st.position = "absolute"; + + var after = function(){ + el.fxUnwrap(wrap, r.pos, o); + st.width = r.width; + st.height = r.height; + el.afterFx(o); + }; + var a, pt = {to: [b.x, b.y]}, bw = {to: b.width}, bh = {to: b.height}; + + switch(anchor.toLowerCase()){ + case "t": + wrap.setSize(b.width, 0); + st.left = st.bottom = "0"; + a = {height: bh}; + break; + case "l": + wrap.setSize(0, b.height); + st.right = st.top = "0"; + a = {width: bw}; + break; + case "r": + wrap.setSize(0, b.height); + wrap.setX(b.right); + st.left = st.top = "0"; + a = {width: bw, points: pt}; + break; + case "b": + wrap.setSize(b.width, 0); + wrap.setY(b.bottom); + st.left = st.top = "0"; + a = {height: bh, points: pt}; + break; + case "tl": + wrap.setSize(0, 0); + st.right = st.bottom = "0"; + a = {width: bw, height: bh}; + break; + case "bl": + wrap.setSize(0, 0); + wrap.setY(b.y+b.height); + st.right = st.top = "0"; + a = {width: bw, height: bh, points: pt}; + break; + case "br": + wrap.setSize(0, 0); + wrap.setXY([b.right, b.bottom]); + st.left = st.top = "0"; + a = {width: bw, height: bh, points: pt}; + break; + case "tr": + wrap.setSize(0, 0); + wrap.setX(b.x+b.width); + st.left = st.bottom = "0"; + a = {width: bw, height: bh, points: pt}; + break; + } + this.dom.style.visibility = "visible"; + wrap.show(); + + arguments.callee.anim = wrap.fxanim(a, + o, + 'motion', + .5, + 'easeOut', after); + }); + return this; + }, + + + slideOut : function(anchor, o){ + var el = this.getFxEl(); + o = o || {}; + + el.queueFx(o, function(){ + + anchor = anchor || "t"; + + var r = this.getFxRestore(); + + var b = this.getBox(); + this.setSize(b); + + var wrap = this.fxWrap(r.pos, o, "visible"); + + var st = this.dom.style; + st.visibility = "visible"; + st.position = "absolute"; + + wrap.setSize(b); + + var after = function(){ + if(o.useDisplay){ + el.setDisplayed(false); + }else{ + el.hide(); + } + + el.fxUnwrap(wrap, r.pos, o); + + st.width = r.width; + st.height = r.height; + + el.afterFx(o); + }; + + var a, zero = {to: 0}; + switch(anchor.toLowerCase()){ + case "t": + st.left = st.bottom = "0"; + a = {height: zero}; + break; + case "l": + st.right = st.top = "0"; + a = {width: zero}; + break; + case "r": + st.left = st.top = "0"; + a = {width: zero, points: {to:[b.right, b.y]}}; + break; + case "b": + st.left = st.top = "0"; + a = {height: zero, points: {to:[b.x, b.bottom]}}; + break; + case "tl": + st.right = st.bottom = "0"; + a = {width: zero, height: zero}; + break; + case "bl": + st.right = st.top = "0"; + a = {width: zero, height: zero, points: {to:[b.x, b.bottom]}}; + break; + case "br": + st.left = st.top = "0"; + a = {width: zero, height: zero, points: {to:[b.x+b.width, b.bottom]}}; + break; + case "tr": + st.left = st.bottom = "0"; + a = {width: zero, height: zero, points: {to:[b.right, b.y]}}; + break; + } + + arguments.callee.anim = wrap.fxanim(a, + o, + 'motion', + .5, + "easeOut", after); + }); + return this; + }, + + + puff : function(o){ + var el = this.getFxEl(); + o = o || {}; + + el.queueFx(o, function(){ + this.clearOpacity(); + this.show(); + + var r = this.getFxRestore(); + var st = this.dom.style; + + var after = function(){ + if(o.useDisplay){ + el.setDisplayed(false); + }else{ + el.hide(); + } + + el.clearOpacity(); + + el.setPositioning(r.pos); + st.width = r.width; + st.height = r.height; + st.fontSize = ''; + el.afterFx(o); + }; + + var width = this.getWidth(); + var height = this.getHeight(); + + arguments.callee.anim = this.fxanim({ + width : {to: this.adjustWidth(width * 2)}, + height : {to: this.adjustHeight(height * 2)}, + points : {by: [-(width * .5), -(height * .5)]}, + opacity : {to: 0}, + fontSize: {to:200, unit: "%"} + }, + o, + 'motion', + .5, + "easeOut", after); + }); + return this; + }, + + + switchOff : function(o){ + var el = this.getFxEl(); + o = o || {}; + + el.queueFx(o, function(){ + this.clearOpacity(); + this.clip(); + + var r = this.getFxRestore(); + var st = this.dom.style; + + var after = function(){ + if(o.useDisplay){ + el.setDisplayed(false); + }else{ + el.hide(); + } + + el.clearOpacity(); + el.setPositioning(r.pos); + st.width = r.width; + st.height = r.height; + + el.afterFx(o); + }; + + this.fxanim({opacity:{to:0.3}}, null, null, .1, null, function(){ + this.clearOpacity(); + (function(){ + this.fxanim({ + height:{to:1}, + points:{by:[0, this.getHeight() * .5]} + }, o, 'motion', 0.3, 'easeIn', after); + }).defer(100, this); + }); + }); + return this; + }, + + + highlight : function(color, o){ + var el = this.getFxEl(); + o = o || {}; + + el.queueFx(o, function(){ + color = color || "ffff9c"; + var attr = o.attr || "backgroundColor"; + + this.clearOpacity(); + this.show(); + + var origColor = this.getColor(attr); + var restoreColor = this.dom.style[attr]; + var endColor = (o.endColor || origColor) || "ffffff"; + + var after = function(){ + el.dom.style[attr] = restoreColor; + el.afterFx(o); + }; + + var a = {}; + a[attr] = {from: color, to: endColor}; + arguments.callee.anim = this.fxanim(a, + o, + 'color', + 1, + 'easeIn', after); + }); + return this; + }, + + + frame : function(color, count, o){ + var el = this.getFxEl(); + o = o || {}; + + el.queueFx(o, function(){ + color = color || "#C3DAF9"; + if(color.length == 6){ + color = "#" + color; + } + count = count || 1; + var duration = o.duration || 1; + this.show(); + + var b = this.getBox(); + var animFn = function(){ + var proxy = Ext.getBody().createChild({ + style:{ + visbility:"hidden", + position:"absolute", + "z-index":"35000", border:"0px solid " + color + } + }); + var scale = Ext.isBorderBox ? 2 : 1; + proxy.animate({ + top:{from:b.y, to:b.y - 20}, + left:{from:b.x, to:b.x - 20}, + borderWidth:{from:0, to:10}, + opacity:{from:1, to:0}, + height:{from:b.height, to:(b.height + (20*scale))}, + width:{from:b.width, to:(b.width + (20*scale))} + }, duration, function(){ + proxy.remove(); + if(--count > 0){ + animFn(); + }else{ + el.afterFx(o); + } + }); + }; + animFn.call(this); + }); + return this; + }, + + + pause : function(seconds){ + var el = this.getFxEl(); + var o = {}; + + el.queueFx(o, function(){ + setTimeout(function(){ + el.afterFx(o); + }, seconds * 1000); + }); + return this; + }, + + + fadeIn : function(o){ + var el = this.getFxEl(); + o = o || {}; + el.queueFx(o, function(){ + this.setOpacity(0); + this.fixDisplay(); + this.dom.style.visibility = 'visible'; + var to = o.endOpacity || 1; + arguments.callee.anim = this.fxanim({opacity:{to:to}}, + o, null, .5, "easeOut", function(){ + if(to == 1){ + this.clearOpacity(); + } + el.afterFx(o); + }); + }); + return this; + }, + + + fadeOut : function(o){ + var el = this.getFxEl(); + o = o || {}; + el.queueFx(o, function(){ + arguments.callee.anim = this.fxanim({opacity:{to:o.endOpacity || 0}}, + o, null, .5, "easeOut", function(){ + if(this.visibilityMode == Ext.Element.DISPLAY || o.useDisplay){ + this.dom.style.display = "none"; + }else{ + this.dom.style.visibility = "hidden"; + } + this.clearOpacity(); + el.afterFx(o); + }); + }); + return this; + }, + + + scale : function(w, h, o){ + this.shift(Ext.apply({}, o, { + width: w, + height: h + })); + return this; + }, + + + shift : function(o){ + var el = this.getFxEl(); + o = o || {}; + el.queueFx(o, function(){ + var a = {}, w = o.width, h = o.height, x = o.x, y = o.y, op = o.opacity; + if(w !== undefined){ + a.width = {to: this.adjustWidth(w)}; + } + if(h !== undefined){ + a.height = {to: this.adjustHeight(h)}; + } + if(o.left !== undefined){ + a.left = {to: o.left}; + } + if(o.top !== undefined){ + a.top = {to: o.top}; + } + if(o.right !== undefined){ + a.right = {to: o.right}; + } + if(o.bottom !== undefined){ + a.bottom = {to: o.bottom}; + } + if(x !== undefined || y !== undefined){ + a.points = {to: [ + x !== undefined ? x : this.getX(), + y !== undefined ? y : this.getY() + ]}; + } + if(op !== undefined){ + a.opacity = {to: op}; + } + if(o.xy !== undefined){ + a.points = {to: o.xy}; + } + arguments.callee.anim = this.fxanim(a, + o, 'motion', .35, "easeOut", function(){ + el.afterFx(o); + }); + }); + return this; + }, + + + ghost : function(anchor, o){ + var el = this.getFxEl(); + o = o || {}; + + el.queueFx(o, function(){ + anchor = anchor || "b"; + + var r = this.getFxRestore(); + var w = this.getWidth(), + h = this.getHeight(); + + var st = this.dom.style; + + var after = function(){ + if(o.useDisplay){ + el.setDisplayed(false); + }else{ + el.hide(); + } + + el.clearOpacity(); + el.setPositioning(r.pos); + st.width = r.width; + st.height = r.height; + + el.afterFx(o); + }; + + var a = {opacity: {to: 0}, points: {}}, pt = a.points; + switch(anchor.toLowerCase()){ + case "t": + pt.by = [0, -h]; + break; + case "l": + pt.by = [-w, 0]; + break; + case "r": + pt.by = [w, 0]; + break; + case "b": + pt.by = [0, h]; + break; + case "tl": + pt.by = [-w, -h]; + break; + case "bl": + pt.by = [-w, h]; + break; + case "br": + pt.by = [w, h]; + break; + case "tr": + pt.by = [w, -h]; + break; + } + + arguments.callee.anim = this.fxanim(a, + o, + 'motion', + .5, + "easeOut", after); + }); + return this; + }, + + + syncFx : function(){ + this.fxDefaults = Ext.apply(this.fxDefaults || {}, { + block : false, + concurrent : true, + stopFx : false + }); + return this; + }, + + + sequenceFx : function(){ + this.fxDefaults = Ext.apply(this.fxDefaults || {}, { + block : false, + concurrent : false, + stopFx : false + }); + return this; + }, + + + nextFx : function(){ + var ef = this.fxQueue[0]; + if(ef){ + ef.call(this); + } + }, + + + hasActiveFx : function(){ + return this.fxQueue && this.fxQueue[0]; + }, + + + stopFx : function(){ + if(this.hasActiveFx()){ + var cur = this.fxQueue[0]; + if(cur && cur.anim && cur.anim.isAnimated()){ + this.fxQueue = [cur]; cur.anim.stop(true); + } + } + return this; + }, + + + beforeFx : function(o){ + if(this.hasActiveFx() && !o.concurrent){ + if(o.stopFx){ + this.stopFx(); + return true; + } + return false; + } + return true; + }, + + + hasFxBlock : function(){ + var q = this.fxQueue; + return q && q[0] && q[0].block; + }, + + + queueFx : function(o, fn){ + if(!this.fxQueue){ + this.fxQueue = []; + } + if(!this.hasFxBlock()){ + Ext.applyIf(o, this.fxDefaults); + if(!o.concurrent){ + var run = this.beforeFx(o); + fn.block = o.block; + this.fxQueue.push(fn); + if(run){ + this.nextFx(); + } + }else{ + fn.call(this); + } + } + return this; + }, + + + fxWrap : function(pos, o, vis){ + var wrap; + if(!o.wrap || !(wrap = Ext.get(o.wrap))){ + var wrapXY; + if(o.fixPosition){ + wrapXY = this.getXY(); + } + var div = document.createElement("div"); + div.style.visibility = vis; + wrap = Ext.get(this.dom.parentNode.insertBefore(div, this.dom)); + wrap.setPositioning(pos); + if(wrap.getStyle("position") == "static"){ + wrap.position("relative"); + } + this.clearPositioning('auto'); + wrap.clip(); + wrap.dom.appendChild(this.dom); + if(wrapXY){ + wrap.setXY(wrapXY); + } + } + return wrap; + }, + + + fxUnwrap : function(wrap, pos, o){ + this.clearPositioning(); + this.setPositioning(pos); + if(!o.wrap){ + wrap.dom.parentNode.insertBefore(this.dom, wrap.dom); + wrap.remove(); + } + }, + + + getFxRestore : function(){ + var st = this.dom.style; + return {pos: this.getPositioning(), width: st.width, height : st.height}; + }, + + + afterFx : function(o){ + if(o.afterStyle){ + this.applyStyles(o.afterStyle); + } + if(o.afterCls){ + this.addClass(o.afterCls); + } + if(o.remove === true){ + this.remove(); + } + Ext.callback(o.callback, o.scope, [this]); + if(!o.concurrent){ + this.fxQueue.shift(); + this.nextFx(); + } + }, + + + getFxEl : function(){ return Ext.get(this.dom); + }, + + + fxanim : function(args, opt, animType, defaultDur, defaultEase, cb){ + animType = animType || 'run'; + opt = opt || {}; + var anim = Ext.lib.Anim[animType]( + this.dom, args, + (opt.duration || defaultDur) || .35, + (opt.easing || defaultEase) || 'easeOut', + function(){ + Ext.callback(cb, this); + }, + this + ); + opt.anim = anim; + return anim; + } +}; + +Ext.Fx.resize = Ext.Fx.scale; + +Ext.apply(Ext.Element.prototype, Ext.Fx); + + +Ext.CompositeElement = function(els){ + this.elements = []; + this.addElements(els); +}; +Ext.CompositeElement.prototype = { + isComposite: true, + addElements : function(els){ + if(!els) return this; + if(typeof els == "string"){ + els = Ext.Element.selectorFunction(els); + } + var yels = this.elements; + var index = yels.length-1; + for(var i = 0, len = els.length; i < len; i++) { + yels[++index] = Ext.get(els[i]); + } + return this; + }, + + + fill : function(els){ + this.elements = []; + this.add(els); + return this; + }, + + + filter : function(selector){ + var els = []; + this.each(function(el){ + if(el.is(selector)){ + els[els.length] = el.dom; + } + }); + this.fill(els); + return this; + }, + + invoke : function(fn, args){ + var els = this.elements; + for(var i = 0, len = els.length; i < len; i++) { + Ext.Element.prototype[fn].apply(els[i], args); + } + return this; + }, + + add : function(els){ + if(typeof els == "string"){ + this.addElements(Ext.Element.selectorFunction(els)); + }else if(els.length !== undefined){ + this.addElements(els); + }else{ + this.addElements([els]); + } + return this; + }, + + each : function(fn, scope){ + var els = this.elements; + for(var i = 0, len = els.length; i < len; i++){ + if(fn.call(scope || els[i], els[i], this, i) === false) { + break; + } + } + return this; + }, + + + item : function(index){ + return this.elements[index] || null; + }, + + + first : function(){ + return this.item(0); + }, + + + last : function(){ + return this.item(this.elements.length-1); + }, + + + getCount : function(){ + return this.elements.length; + }, + + + contains : function(el){ + return this.indexOf(el) !== -1; + }, + + + indexOf : function(el){ + return this.elements.indexOf(Ext.get(el)); + }, + + + + removeElement : function(el, removeDom){ + if(Ext.isArray(el)){ + for(var i = 0, len = el.length; i < len; i++){ + this.removeElement(el[i]); + } + return this; + } + var index = typeof el == 'number' ? el : this.indexOf(el); + if(index !== -1 && this.elements[index]){ + if(removeDom){ + var d = this.elements[index]; + if(d.dom){ + d.remove(); + }else{ + Ext.removeNode(d); + } + } + this.elements.splice(index, 1); + } + return this; + }, + + + replaceElement : function(el, replacement, domReplace){ + var index = typeof el == 'number' ? el : this.indexOf(el); + if(index !== -1){ + if(domReplace){ + this.elements[index].replaceWith(replacement); + }else{ + this.elements.splice(index, 1, Ext.get(replacement)) + } + } + return this; + }, + + + clear : function(){ + this.elements = []; + } +}; +(function(){ +Ext.CompositeElement.createCall = function(proto, fnName){ + if(!proto[fnName]){ + proto[fnName] = function(){ + return this.invoke(fnName, arguments); + }; + } +}; +for(var fnName in Ext.Element.prototype){ + if(typeof Ext.Element.prototype[fnName] == "function"){ + Ext.CompositeElement.createCall(Ext.CompositeElement.prototype, fnName); + } +}; +})(); + + +Ext.CompositeElementLite = function(els){ + Ext.CompositeElementLite.superclass.constructor.call(this, els); + this.el = new Ext.Element.Flyweight(); +}; +Ext.extend(Ext.CompositeElementLite, Ext.CompositeElement, { + addElements : function(els){ + if(els){ + if(Ext.isArray(els)){ + this.elements = this.elements.concat(els); + }else{ + var yels = this.elements; + var index = yels.length-1; + for(var i = 0, len = els.length; i < len; i++) { + yels[++index] = els[i]; + } + } + } + return this; + }, + invoke : function(fn, args){ + var els = this.elements; + var el = this.el; + for(var i = 0, len = els.length; i < len; i++) { + el.dom = els[i]; + Ext.Element.prototype[fn].apply(el, args); + } + return this; + }, + + item : function(index){ + if(!this.elements[index]){ + return null; + } + this.el.dom = this.elements[index]; + return this.el; + }, + + + addListener : function(eventName, handler, scope, opt){ + var els = this.elements; + for(var i = 0, len = els.length; i < len; i++) { + Ext.EventManager.on(els[i], eventName, handler, scope || els[i], opt); + } + return this; + }, + + + each : function(fn, scope){ + var els = this.elements; + var el = this.el; + for(var i = 0, len = els.length; i < len; i++){ + el.dom = els[i]; + if(fn.call(scope || el, el, this, i) === false){ + break; + } + } + return this; + }, + + indexOf : function(el){ + return this.elements.indexOf(Ext.getDom(el)); + }, + + replaceElement : function(el, replacement, domReplace){ + var index = typeof el == 'number' ? el : this.indexOf(el); + if(index !== -1){ + replacement = Ext.getDom(replacement); + if(domReplace){ + var d = this.elements[index]; + d.parentNode.insertBefore(replacement, d); + Ext.removeNode(d); + } + this.elements.splice(index, 1, replacement); + } + return this; + } +}); +Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener; +if(Ext.DomQuery){ + Ext.Element.selectorFunction = Ext.DomQuery.select; +} + +Ext.Element.select = function(selector, unique, root){ + var els; + if(typeof selector == "string"){ + els = Ext.Element.selectorFunction(selector, root); + }else if(selector.length !== undefined){ + els = selector; + }else{ + throw "Invalid selector"; + } + if(unique === true){ + return new Ext.CompositeElement(els); + }else{ + return new Ext.CompositeElementLite(els); + } +}; + +Ext.select = Ext.Element.select; + +Ext.data.Connection = function(config){ + Ext.apply(this, config); + this.addEvents( + + "beforerequest", + + "requestcomplete", + + "requestexception" + ); + Ext.data.Connection.superclass.constructor.call(this); +}; + +Ext.extend(Ext.data.Connection, Ext.util.Observable, { + + + + + + timeout : 30000, + + autoAbort:false, + + + disableCaching: true, + + + request : function(o){ + if(this.fireEvent("beforerequest", this, o) !== false){ + var p = o.params; + + if(typeof p == "function"){ + p = p.call(o.scope||window, o); + } + if(typeof p == "object"){ + p = Ext.urlEncode(p); + } + if(this.extraParams){ + var extras = Ext.urlEncode(this.extraParams); + p = p ? (p + '&' + extras) : extras; + } + + var url = o.url || this.url; + if(typeof url == 'function'){ + url = url.call(o.scope||window, o); + } + + if(o.form){ + var form = Ext.getDom(o.form); + url = url || form.action; + + var enctype = form.getAttribute("enctype"); + if(o.isUpload || (enctype && enctype.toLowerCase() == 'multipart/form-data')){ + return this.doFormUpload(o, p, url); + } + var f = Ext.lib.Ajax.serializeForm(form); + p = p ? (p + '&' + f) : f; + } + + var hs = o.headers; + if(this.defaultHeaders){ + hs = Ext.apply(hs || {}, this.defaultHeaders); + if(!o.headers){ + o.headers = hs; + } + } + + var cb = { + success: this.handleResponse, + failure: this.handleFailure, + scope: this, + argument: {options: o}, + timeout : o.timeout || this.timeout + }; + + var method = o.method||this.method||(p ? "POST" : "GET"); + + if(method == 'GET' && (this.disableCaching && o.disableCaching !== false) || o.disableCaching === true){ + url += (url.indexOf('?') != -1 ? '&' : '?') + '_dc=' + (new Date().getTime()); + } + + if(typeof o.autoAbort == 'boolean'){ if(o.autoAbort){ + this.abort(); + } + }else if(this.autoAbort !== false){ + this.abort(); + } + if((method == 'GET' || o.xmlData || o.jsonData) && p){ + url += (url.indexOf('?') != -1 ? '&' : '?') + p; + p = ''; + } + this.transId = Ext.lib.Ajax.request(method, url, cb, p, o); + return this.transId; + }else{ + Ext.callback(o.callback, o.scope, [o, null, null]); + return null; + } + }, + + + isLoading : function(transId){ + if(transId){ + return Ext.lib.Ajax.isCallInProgress(transId); + }else{ + return this.transId ? true : false; + } + }, + + + abort : function(transId){ + if(transId || this.isLoading()){ + Ext.lib.Ajax.abort(transId || this.transId); + } + }, + + handleResponse : function(response){ + this.transId = false; + var options = response.argument.options; + response.argument = options ? options.argument : null; + this.fireEvent("requestcomplete", this, response, options); + Ext.callback(options.success, options.scope, [response, options]); + Ext.callback(options.callback, options.scope, [options, true, response]); + }, + + handleFailure : function(response, e){ + this.transId = false; + var options = response.argument.options; + response.argument = options ? options.argument : null; + this.fireEvent("requestexception", this, response, options, e); + Ext.callback(options.failure, options.scope, [response, options]); + Ext.callback(options.callback, options.scope, [options, false, response]); + }, + + doFormUpload : function(o, ps, url){ + var id = Ext.id(); + var frame = document.createElement('iframe'); + frame.id = id; + frame.name = id; + frame.className = 'x-hidden'; + if(Ext.isIE){ + frame.src = Ext.SSL_SECURE_URL; + } + document.body.appendChild(frame); + + if(Ext.isIE){ + document.frames[id].name = id; + } + + var form = Ext.getDom(o.form); + form.target = id; + form.method = 'POST'; + form.enctype = form.encoding = 'multipart/form-data'; + if(url){ + form.action = url; + } + + var hiddens, hd; + if(ps){ hiddens = []; + ps = Ext.urlDecode(ps, false); + for(var k in ps){ + if(ps.hasOwnProperty(k)){ + hd = document.createElement('input'); + hd.type = 'hidden'; + hd.name = k; + hd.value = ps[k]; + form.appendChild(hd); + hiddens.push(hd); + } + } + } + + function cb(){ + var r = { responseText : '', + responseXML : null + }; + + r.argument = o ? o.argument : null; + + try { var doc; + if(Ext.isIE){ + doc = frame.contentWindow.document; + }else { + doc = (frame.contentDocument || window.frames[id].document); + } + if(doc && doc.body){ + r.responseText = doc.body.innerHTML; + } + if(doc && doc.XMLDocument){ + r.responseXML = doc.XMLDocument; + }else { + r.responseXML = doc; + } + } + catch(e) { + } + + Ext.EventManager.removeListener(frame, 'load', cb, this); + + this.fireEvent("requestcomplete", this, r, o); + + Ext.callback(o.success, o.scope, [r, o]); + Ext.callback(o.callback, o.scope, [o, true, r]); + + setTimeout(function(){Ext.removeNode(frame);}, 100); + } + + Ext.EventManager.on(frame, 'load', cb, this); + form.submit(); + + if(hiddens){ for(var i = 0, len = hiddens.length; i < len; i++){ + Ext.removeNode(hiddens[i]); + } + } + } +}); + + +Ext.Ajax = new Ext.data.Connection({ + + + + + + + + + + + + + + + + + + autoAbort : false, + + + serializeForm : function(form){ + return Ext.lib.Ajax.serializeForm(form); + } +}); + +Ext.Updater = function(el, forceNew){ + el = Ext.get(el); + if(!forceNew && el.updateManager){ + return el.updateManager; + } + + this.el = el; + + this.defaultUrl = null; + + this.addEvents( + + "beforeupdate", + + "update", + + "failure" + ); + var d = Ext.Updater.defaults; + + this.sslBlankUrl = d.sslBlankUrl; + + this.disableCaching = d.disableCaching; + + this.indicatorText = d.indicatorText; + + this.showLoadIndicator = d.showLoadIndicator; + + this.timeout = d.timeout; + + this.loadScripts = d.loadScripts; + + this.transaction = null; + + this.refreshDelegate = this.refresh.createDelegate(this); + + this.updateDelegate = this.update.createDelegate(this); + + this.formUpdateDelegate = this.formUpdate.createDelegate(this); + + if(!this.renderer){ + + this.renderer = new Ext.Updater.BasicRenderer(); + } + Ext.Updater.superclass.constructor.call(this); +}; + +Ext.extend(Ext.Updater, Ext.util.Observable, { + + getEl : function(){ + return this.el; + }, + + + update : function(url, params, callback, discardUrl){ + if(this.fireEvent("beforeupdate", this.el, url, params) !== false){ + var cfg, callerScope; + if(typeof url == "object"){ + cfg = url; + url = cfg.url; + params = params || cfg.params; + callback = callback || cfg.callback; + discardUrl = discardUrl || cfg.discardUrl; + callerScope = cfg.scope; + if(typeof cfg.nocache != "undefined"){this.disableCaching = cfg.nocache;}; + if(typeof cfg.text != "undefined"){this.indicatorText = '
'+cfg.text+"
";}; + if(typeof cfg.scripts != "undefined"){this.loadScripts = cfg.scripts;}; + if(typeof cfg.timeout != "undefined"){this.timeout = cfg.timeout;}; + } + this.showLoading(); + + if(!discardUrl){ + this.defaultUrl = url; + } + if(typeof url == "function"){ + url = url.call(this); + } + + var o = Ext.apply(cfg ||{}, { + url : url, + params: (typeof params == "function" && callerScope) ? params.createDelegate(callerScope) : params, + success: this.processSuccess, + failure: this.processFailure, + scope: this, + callback: undefined, + timeout: (this.timeout*1000), + disableCaching: this.disableCaching, + argument: { + "options": cfg, + "url": url, + "form": null, + "callback": callback, + "scope": callerScope || window, + "params": params + } + }); + + this.transaction = Ext.Ajax.request(o); + } + }, + + + formUpdate : function(form, url, reset, callback){ + if(this.fireEvent("beforeupdate", this.el, form, url) !== false){ + if(typeof url == "function"){ + url = url.call(this); + } + form = Ext.getDom(form) + this.transaction = Ext.Ajax.request({ + form: form, + url:url, + success: this.processSuccess, + failure: this.processFailure, + scope: this, + timeout: (this.timeout*1000), + argument: { + "url": url, + "form": form, + "callback": callback, + "reset": reset + } + }); + this.showLoading.defer(1, this); + } + }, + + + refresh : function(callback){ + if(this.defaultUrl == null){ + return; + } + this.update(this.defaultUrl, null, callback, true); + }, + + + startAutoRefresh : function(interval, url, params, callback, refreshNow){ + if(refreshNow){ + this.update(url || this.defaultUrl, params, callback, true); + } + if(this.autoRefreshProcId){ + clearInterval(this.autoRefreshProcId); + } + this.autoRefreshProcId = setInterval(this.update.createDelegate(this, [url || this.defaultUrl, params, callback, true]), interval*1000); + }, + + + stopAutoRefresh : function(){ + if(this.autoRefreshProcId){ + clearInterval(this.autoRefreshProcId); + delete this.autoRefreshProcId; + } + }, + + + isAutoRefreshing : function(){ + return this.autoRefreshProcId ? true : false; + }, + + + showLoading : function(){ + if(this.showLoadIndicator){ + this.el.update(this.indicatorText); + } + }, + + + processSuccess : function(response){ + this.transaction = null; + if(response.argument.form && response.argument.reset){ + try{ + response.argument.form.reset(); + }catch(e){} + } + if(this.loadScripts){ + this.renderer.render(this.el, response, this, + this.updateComplete.createDelegate(this, [response])); + }else{ + this.renderer.render(this.el, response, this); + this.updateComplete(response); + } + }, + + + updateComplete : function(response){ + this.fireEvent("update", this.el, response); + if(typeof response.argument.callback == "function"){ + response.argument.callback.call(response.argument.scope, this.el, true, response, response.argument.options); + } + }, + + + processFailure : function(response){ + this.transaction = null; + this.fireEvent("failure", this.el, response); + if(typeof response.argument.callback == "function"){ + response.argument.callback.call(response.argument.scope, this.el, false, response, response.argument.options); + } + }, + + + setRenderer : function(renderer){ + this.renderer = renderer; + }, + + + getRenderer : function(){ + return this.renderer; + }, + + + setDefaultUrl : function(defaultUrl){ + this.defaultUrl = defaultUrl; + }, + + + abort : function(){ + if(this.transaction){ + Ext.Ajax.abort(this.transaction); + } + }, + + + isUpdating : function(){ + if(this.transaction){ + return Ext.Ajax.isLoading(this.transaction); + } + return false; + } +}); + + + Ext.Updater.defaults = { + + timeout : 30, + + loadScripts : false, + + sslBlankUrl : (Ext.SSL_SECURE_URL || "javascript:false"), + + disableCaching : false, + + showLoadIndicator : true, + + indicatorText : '
Loading...
' + }; + + +Ext.Updater.updateElement = function(el, url, params, options){ + var um = Ext.get(el).getUpdater(); + Ext.apply(um, options); + um.update(url, params, options ? options.callback : null); +}; + +Ext.Updater.BasicRenderer = function(){}; + +Ext.Updater.BasicRenderer.prototype = { + + render : function(el, response, updateManager, callback){ + el.update(response.responseText, updateManager.loadScripts, callback); + } +}; + +Ext.UpdateManager = Ext.Updater; + + + + + +Date.parseFunctions = {count:0}; +Date.parseRegexes = []; +Date.formatFunctions = {count:0}; + +Date.prototype.dateFormat = function(format) { + if (Date.formatFunctions[format] == null) { + Date.createNewFormat(format); + } + var func = Date.formatFunctions[format]; + return this[func](); +}; + + + +Date.prototype.format = Date.prototype.dateFormat; + +Date.createNewFormat = function(format) { + var funcName = "format" + Date.formatFunctions.count++; + Date.formatFunctions[format] = funcName; + var code = "Date.prototype." + funcName + " = function(){return "; + var special = false; + var ch = ''; + for (var i = 0; i < format.length; ++i) { + ch = format.charAt(i); + if (!special && ch == "\\") { + special = true; + } + else if (special) { + special = false; + code += "'" + String.escape(ch) + "' + "; + } + else { + code += Date.getFormatCode(ch) + " + "; + } + } + eval(code.substring(0, code.length - 3) + ";}"); +}; + + +Date.formatCodes = { + d: "String.leftPad(this.getDate(), 2, '0')", + D: "Date.getShortDayName(this.getDay())", j: "this.getDate()", + l: "Date.dayNames[this.getDay()]", + N: "(this.getDay() ? this.getDay() : 7)", + S: "this.getSuffix()", + w: "this.getDay()", + z: "this.getDayOfYear()", + W: "String.leftPad(this.getWeekOfYear(), 2, '0')", + F: "Date.monthNames[this.getMonth()]", + m: "String.leftPad(this.getMonth() + 1, 2, '0')", + M: "Date.getShortMonthName(this.getMonth())", n: "(this.getMonth() + 1)", + t: "this.getDaysInMonth()", + L: "(this.isLeapYear() ? 1 : 0)", + o: "(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))", + Y: "this.getFullYear()", + y: "('' + this.getFullYear()).substring(2, 4)", + a: "(this.getHours() < 12 ? 'am' : 'pm')", + A: "(this.getHours() < 12 ? 'AM' : 'PM')", + g: "((this.getHours() % 12) ? this.getHours() % 12 : 12)", + G: "this.getHours()", + h: "String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')", + H: "String.leftPad(this.getHours(), 2, '0')", + i: "String.leftPad(this.getMinutes(), 2, '0')", + s: "String.leftPad(this.getSeconds(), 2, '0')", + u: "String.leftPad(this.getMilliseconds(), 3, '0')", + O: "this.getGMTOffset()", + P: "this.getGMTOffset(true)", + T: "this.getTimezone()", + Z: "(this.getTimezoneOffset() * -60)", + c: function() { for (var c = "Y-m-dTH:i:sP", code = [], i = 0, l = c.length; i < l; ++i) { + var e = c.charAt(i); + code.push(e == "T" ? "'T'" : Date.getFormatCode(e)); } + return code.join(" + "); + }, + + U: "Math.round(this.getTime() / 1000)" +} + +Date.getFormatCode = function(character) { + var f = Date.formatCodes[character]; + + if (f) { + f = Ext.type(f) == 'function'? f() : f; + Date.formatCodes[character] = f; } + + return f || ("'" + String.escape(character) + "'"); +}; + + +Date.parseDate = function(input, format) { + if (Date.parseFunctions[format] == null) { + Date.createParser(format); + } + var func = Date.parseFunctions[format]; + return Date[func](input); +}; + +Date.createParser = function(format) { + var funcName = "parse" + Date.parseFunctions.count++; + var regexNum = Date.parseRegexes.length; + var currentGroup = 1; + Date.parseFunctions[format] = funcName; + + var code = "Date." + funcName + " = function(input){\n" + + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, ms = -1, o, z, u, v;\n" + + "input = String(input);var d = new Date();\n" + + "y = d.getFullYear();\n" + + "m = d.getMonth();\n" + + "d = d.getDate();\n" + + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n" + + "if (results && results.length > 0) {"; + var regex = ""; + + var special = false; + var ch = ''; + for (var i = 0; i < format.length; ++i) { + ch = format.charAt(i); + if (!special && ch == "\\") { + special = true; + } + else if (special) { + special = false; + regex += String.escape(ch); + } + else { + var obj = Date.formatCodeToRegex(ch, currentGroup); + currentGroup += obj.g; + regex += obj.s; + if (obj.g && obj.c) { + code += obj.c; + } + } + } + + code += "if (u){\n" + + "v = new Date(u * 1000);\n" + "}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){\n" + + "v = new Date(y, m, d, h, i, s, ms);\n" + + "}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0){\n" + + "v = new Date(y, m, d, h, i, s);\n" + + "}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0){\n" + + "v = new Date(y, m, d, h, i);\n" + + "}else if (y >= 0 && m >= 0 && d > 0 && h >= 0){\n" + + "v = new Date(y, m, d, h);\n" + + "}else if (y >= 0 && m >= 0 && d > 0){\n" + + "v = new Date(y, m, d);\n" + + "}else if (y >= 0 && m >= 0){\n" + + "v = new Date(y, m);\n" + + "}else if (y >= 0){\n" + + "v = new Date(y);\n" + + "}\n}\nreturn (v && Ext.type(z || o) == 'number')?" + " (Ext.type(z) == 'number' ? v.add(Date.SECOND, (v.getTimezoneOffset() * 60) + z) :" + " v.add(Date.HOUR, (v.getGMTOffset() / 100) + (o / -100))) : v;\n" + "}"; + + Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$", "i"); + eval(code); +}; + +Date.parseCodes = { + + d: { + g:1, + c:"d = parseInt(results[{0}], 10);\n", + s:"(\\d{2})" }, + j: function() { + return Ext.applyIf({ + s:"(\\d{1,2})" }, Date.parseCodes["d"]); + }, + D: function() { + for (var a = [], i = 0; i < 7; a.push(Date.getShortDayName(i)), ++i); return { + g:0, + c:null, + s:"(?:" + a.join("|") +")" + } + }, + l: function() { + return { + g:0, + c:null, + s:"(?:" + Date.dayNames.join("|") + ")" + } + }, + N: { + g:0, + c:null, + s:"[1-7]" }, + S: { + g:0, + c:null, + s:"(?:st|nd|rd|th)" + }, + w: { + g:0, + c:null, + s:"[0-6]" }, + z: { + g:0, + c:null, + s:"(?:\\d{1,3}" }, + W: { + g:0, + c:null, + s:"(?:\\d{2})" }, + F: function() { + return { + g:1, + c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n", s:"(" + Date.monthNames.join("|") + ")" + } + }, + M: function() { + for (var a = [], i = 0; i < 12; a.push(Date.getShortMonthName(i)), ++i); return Ext.applyIf({ + s:"(" + a.join("|") + ")" + }, Date.parseCodes["F"]); + }, + m: { + g:1, + c:"m = parseInt(results[{0}], 10) - 1;\n", + s:"(\\d{2})" }, + n: function() { + return Ext.applyIf({ + s:"(\\d{1,2})" }, Date.parseCodes["m"]); + }, + t: { + g:0, + c:null, + s:"(?:\\d{2})" }, + L: { + g:0, + c:null, + s:"(?:1|0)" + }, + o: function() { + return Date.parseCodes["Y"]; + }, + Y: { + g:1, + c:"y = parseInt(results[{0}], 10);\n", + s:"(\\d{4})" }, + y: { + g:1, + c:"var ty = parseInt(results[{0}], 10);\n" + + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n", s:"(\\d{1,2})" + }, + a: { + g:1, + c:"if (results[{0}] == 'am') {\n" + + "if (h == 12) { h = 0; }\n" + + "} else { if (h < 12) { h += 12; }}", + s:"(am|pm)" + }, + A: { + g:1, + c:"if (results[{0}] == 'AM') {\n" + + "if (h == 12) { h = 0; }\n" + + "} else { if (h < 12) { h += 12; }}", + s:"(AM|PM)" + }, + g: function() { + return Date.parseCodes["G"]; + }, + G: { + g:1, + c:"h = parseInt(results[{0}], 10);\n", + s:"(\\d{1,2})" }, + h: function() { + return Date.parseCodes["H"]; + }, + H: { + g:1, + c:"h = parseInt(results[{0}], 10);\n", + s:"(\\d{2})" }, + i: { + g:1, + c:"i = parseInt(results[{0}], 10);\n", + s:"(\\d{2})" }, + s: { + g:1, + c:"s = parseInt(results[{0}], 10);\n", + s:"(\\d{2})" }, + u: { + g:1, + c:"ms = parseInt(results[{0}], 10);\n", + s:"(\\d{3})" }, + O: { + g:1, + c:[ + "o = results[{0}];", + "var sn = o.substring(0,1);", "var hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60);", "var mn = o.substring(3,5) % 60;", "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n" ].join("\n"), + s: "([+\-]\\d{4})" }, + P: function() { + return Ext.applyIf({ + s: "([+\-]\\d{2}:\\d{2})" }, Date.parseCodes["O"]); + }, + T: { + g:0, + c:null, + s:"[A-Z]{1,4}" }, + Z: { + g:1, + c:"z = results[{0}] * 1;\n" + "z = (-43200 <= z && z <= 50400)? z : null;\n", + s:"([+\-]?\\d{1,5})" }, + c: function() { + var df = Date.formatCodeToRegex, calc = []; + var arr = [ + df("Y", 1), + df("m", 2), + df("d", 3), + df("h", 4), + df("i", 5), + df("s", 6), + {c:"if(results[7] == 'Z'){\no = 0;\n}else{\n" + df("P", 7).c + "\n}"} ]; + for (var i = 0, l = arr.length; i < l; ++i) { + calc.push(arr[i].c); + } + + return { + g:1, + c:calc.join(""), + s:arr[0].s + "-" + arr[1].s + "-" + arr[2].s + "T" + arr[3].s + ":" + arr[4].s + ":" + arr[5].s + "(" + df("P", 7).s + "|Z)" + } + }, + U: { + g:1, + c:"u = parseInt(results[{0}], 10);\n", + s:"(-?\\d+)" } +} + +Date.formatCodeToRegex = function(character, currentGroup) { + var p = Date.parseCodes[character]; + + if (p) { + p = Ext.type(p) == 'function'? p() : p; + Date.parseCodes[character] = p; + if (p.c) { + p.c = String.format(p.c, currentGroup); + } + } + + return p || { + g:0, + c:null, + s:Ext.escapeRe(character) } +}; + + +Date.prototype.getTimezone = function() { + return this.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/, "$1$2").replace(/[^A-Z]/g, ""); +}; + + +Date.prototype.getGMTOffset = function(colon) { + return (this.getTimezoneOffset() > 0 ? "-" : "+") + + String.leftPad(Math.abs(Math.floor(this.getTimezoneOffset() / 60)), 2, "0") + + (colon ? ":" : "") + + String.leftPad(this.getTimezoneOffset() % 60, 2, "0"); +}; + + +Date.prototype.getDayOfYear = function() { + var num = 0; + Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; + for (var i = 0; i < this.getMonth(); ++i) { + num += Date.daysInMonth[i]; + } + return num + this.getDate() - 1; +}; + + +Date.prototype.getWeekOfYear = function() { + var ms1d = 864e5; var ms7d = 7 * ms1d; var DC3 = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate() + 3) / ms1d; var AWN = Math.floor(DC3 / 7); var Wyr = new Date(AWN * ms7d).getUTCFullYear(); + return AWN - Math.floor(Date.UTC(Wyr, 0, 7) / ms7d) + 1; +}; + + +Date.prototype.isLeapYear = function() { + var year = this.getFullYear(); + return !!((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year))); +}; + + +Date.prototype.getFirstDayOfMonth = function() { + var day = (this.getDay() - (this.getDate() - 1)) % 7; + return (day < 0) ? (day + 7) : day; +}; + + +Date.prototype.getLastDayOfMonth = function() { + var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7; + return (day < 0) ? (day + 7) : day; +}; + + + +Date.prototype.getFirstDateOfMonth = function() { + return new Date(this.getFullYear(), this.getMonth(), 1); +}; + + +Date.prototype.getLastDateOfMonth = function() { + return new Date(this.getFullYear(), this.getMonth(), this.getDaysInMonth()); +}; + +Date.prototype.getDaysInMonth = function() { + Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; + return Date.daysInMonth[this.getMonth()]; +}; + + +Date.prototype.getSuffix = function() { + switch (this.getDate()) { + case 1: + case 21: + case 31: + return "st"; + case 2: + case 22: + return "nd"; + case 3: + case 23: + return "rd"; + default: + return "th"; + } +}; + +Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31]; + + +Date.monthNames = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" +]; + + +Date.getShortMonthName = function(month) { + return Date.monthNames[month].substring(0, 3); +} + + +Date.dayNames = [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" +]; + + +Date.getShortDayName = function(day) { + return Date.dayNames[day].substring(0, 3); +} + +Date.y2kYear = 50; + + +Date.monthNumbers = { + Jan:0, + Feb:1, + Mar:2, + Apr:3, + May:4, + Jun:5, + Jul:6, + Aug:7, + Sep:8, + Oct:9, + Nov:10, + Dec:11 +}; + + +Date.getMonthNumber = function(name) { + return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()]; +} + + +Date.prototype.clone = function() { + return new Date(this.getTime()); +}; + + +Date.prototype.clearTime = function(clone){ + if(clone){ + return this.clone().clearTime(); + } + this.setHours(0); + this.setMinutes(0); + this.setSeconds(0); + this.setMilliseconds(0); + return this; +}; + +if(Ext.isSafari){ + Date.brokenSetMonth = Date.prototype.setMonth; + Date.prototype.setMonth = function(num){ + if(num <= -1){ + var n = Math.ceil(-num); + var back_year = Math.ceil(n/12); + var month = (n % 12) ? 12 - n % 12 : 0 ; + this.setFullYear(this.getFullYear() - back_year); + return Date.brokenSetMonth.call(this, month); + } else { + return Date.brokenSetMonth.apply(this, arguments); + } + }; +} + + +Date.MILLI = "ms"; + +Date.SECOND = "s"; + +Date.MINUTE = "mi"; + +Date.HOUR = "h"; + +Date.DAY = "d"; + +Date.MONTH = "mo"; + +Date.YEAR = "y"; + + +Date.prototype.add = function(interval, value){ + var d = this.clone(); + if (!interval || value === 0) return d; + switch(interval.toLowerCase()){ + case Date.MILLI: + d.setMilliseconds(this.getMilliseconds() + value); + break; + case Date.SECOND: + d.setSeconds(this.getSeconds() + value); + break; + case Date.MINUTE: + d.setMinutes(this.getMinutes() + value); + break; + case Date.HOUR: + d.setHours(this.getHours() + value); + break; + case Date.DAY: + d.setDate(this.getDate() + value); + break; + case Date.MONTH: + var day = this.getDate(); + if(day > 28){ + day = Math.min(day, this.getFirstDateOfMonth().add('mo', value).getLastDateOfMonth().getDate()); + } + d.setDate(day); + d.setMonth(this.getMonth() + value); + break; + case Date.YEAR: + d.setFullYear(this.getFullYear() + value); + break; + } + return d; +}; + + +Date.prototype.between = function(start, end){ + var t = this.getTime(); + return start.getTime() <= t && t <= end.getTime(); +} + +Ext.util.DelayedTask = function(fn, scope, args){ + var id = null, d, t; + + var call = function(){ + var now = new Date().getTime(); + if(now - t >= d){ + clearInterval(id); + id = null; + fn.apply(scope, args || []); + } + }; + + this.delay = function(delay, newFn, newScope, newArgs){ + if(id && delay != d){ + this.cancel(); + } + d = delay; + t = new Date().getTime(); + fn = newFn || fn; + scope = newScope || scope; + args = newArgs || args; + if(!id){ + id = setInterval(call, d); + } + }; + + + this.cancel = function(){ + if(id){ + clearInterval(id); + id = null; + } + }; +}; + +Ext.util.TaskRunner = function(interval){ + interval = interval || 10; + var tasks = [], removeQueue = []; + var id = 0; + var running = false; + + var stopThread = function(){ + running = false; + clearInterval(id); + id = 0; + }; + + var startThread = function(){ + if(!running){ + running = true; + id = setInterval(runTasks, interval); + } + }; + + var removeTask = function(t){ + removeQueue.push(t); + if(t.onStop){ + t.onStop.apply(t.scope || t); + } + }; + + var runTasks = function(){ + if(removeQueue.length > 0){ + for(var i = 0, len = removeQueue.length; i < len; i++){ + tasks.remove(removeQueue[i]); + } + removeQueue = []; + if(tasks.length < 1){ + stopThread(); + return; + } + } + var now = new Date().getTime(); + for(var i = 0, len = tasks.length; i < len; ++i){ + var t = tasks[i]; + var itime = now - t.taskRunTime; + if(t.interval <= itime){ + var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]); + t.taskRunTime = now; + if(rt === false || t.taskRunCount === t.repeat){ + removeTask(t); + return; + } + } + if(t.duration && t.duration <= (now - t.taskStartTime)){ + removeTask(t); + } + } + }; + + + this.start = function(task){ + tasks.push(task); + task.taskStartTime = new Date().getTime(); + task.taskRunTime = 0; + task.taskRunCount = 0; + startThread(); + return task; + }; + + + this.stop = function(task){ + removeTask(task); + return task; + }; + + + this.stopAll = function(){ + stopThread(); + for(var i = 0, len = tasks.length; i < len; i++){ + if(tasks[i].onStop){ + tasks[i].onStop(); + } + } + tasks = []; + removeQueue = []; + }; +}; + + +Ext.TaskMgr = new Ext.util.TaskRunner(); + +Ext.util.MixedCollection = function(allowFunctions, keyFn){ + this.items = []; + this.map = {}; + this.keys = []; + this.length = 0; + this.addEvents( + + "clear", + + "add", + + "replace", + + "remove", + "sort" + ); + this.allowFunctions = allowFunctions === true; + if(keyFn){ + this.getKey = keyFn; + } + Ext.util.MixedCollection.superclass.constructor.call(this); +}; + +Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { + allowFunctions : false, + + + add : function(key, o){ + if(arguments.length == 1){ + o = arguments[0]; + key = this.getKey(o); + } + if(typeof key == "undefined" || key === null){ + this.length++; + this.items.push(o); + this.keys.push(null); + }else{ + var old = this.map[key]; + if(old){ + return this.replace(key, o); + } + this.length++; + this.items.push(o); + this.map[key] = o; + this.keys.push(key); + } + this.fireEvent("add", this.length-1, o, key); + return o; + }, + + + getKey : function(o){ + return o.id; + }, + + + replace : function(key, o){ + if(arguments.length == 1){ + o = arguments[0]; + key = this.getKey(o); + } + var old = this.item(key); + if(typeof key == "undefined" || key === null || typeof old == "undefined"){ + return this.add(key, o); + } + var index = this.indexOfKey(key); + this.items[index] = o; + this.map[key] = o; + this.fireEvent("replace", key, old, o); + return o; + }, + + + addAll : function(objs){ + if(arguments.length > 1 || Ext.isArray(objs)){ + var args = arguments.length > 1 ? arguments : objs; + for(var i = 0, len = args.length; i < len; i++){ + this.add(args[i]); + } + }else{ + for(var key in objs){ + if(this.allowFunctions || typeof objs[key] != "function"){ + this.add(key, objs[key]); + } + } + } + }, + + + each : function(fn, scope){ + var items = [].concat(this.items); + for(var i = 0, len = items.length; i < len; i++){ + if(fn.call(scope || items[i], items[i], i, len) === false){ + break; + } + } + }, + + + eachKey : function(fn, scope){ + for(var i = 0, len = this.keys.length; i < len; i++){ + fn.call(scope || window, this.keys[i], this.items[i], i, len); + } + }, + + + find : function(fn, scope){ + for(var i = 0, len = this.items.length; i < len; i++){ + if(fn.call(scope || window, this.items[i], this.keys[i])){ + return this.items[i]; + } + } + return null; + }, + + + insert : function(index, key, o){ + if(arguments.length == 2){ + o = arguments[1]; + key = this.getKey(o); + } + if(index >= this.length){ + return this.add(key, o); + } + this.length++; + this.items.splice(index, 0, o); + if(typeof key != "undefined" && key != null){ + this.map[key] = o; + } + this.keys.splice(index, 0, key); + this.fireEvent("add", index, o, key); + return o; + }, + + + remove : function(o){ + return this.removeAt(this.indexOf(o)); + }, + + + removeAt : function(index){ + if(index < this.length && index >= 0){ + this.length--; + var o = this.items[index]; + this.items.splice(index, 1); + var key = this.keys[index]; + if(typeof key != "undefined"){ + delete this.map[key]; + } + this.keys.splice(index, 1); + this.fireEvent("remove", o, key); + return o; + } + return false; + }, + + + removeKey : function(key){ + return this.removeAt(this.indexOfKey(key)); + }, + + + getCount : function(){ + return this.length; + }, + + + indexOf : function(o){ + return this.items.indexOf(o); + }, + + + indexOfKey : function(key){ + return this.keys.indexOf(key); + }, + + + item : function(key){ + var item = typeof this.map[key] != "undefined" ? this.map[key] : this.items[key]; + return typeof item != 'function' || this.allowFunctions ? item : null; + }, + + + itemAt : function(index){ + return this.items[index]; + }, + + + key : function(key){ + return this.map[key]; + }, + + + contains : function(o){ + return this.indexOf(o) != -1; + }, + + + containsKey : function(key){ + return typeof this.map[key] != "undefined"; + }, + + + clear : function(){ + this.length = 0; + this.items = []; + this.keys = []; + this.map = {}; + this.fireEvent("clear"); + }, + + + first : function(){ + return this.items[0]; + }, + + + last : function(){ + return this.items[this.length-1]; + }, + + + _sort : function(property, dir, fn){ + var dsc = String(dir).toUpperCase() == "DESC" ? -1 : 1; + fn = fn || function(a, b){ + return a-b; + }; + var c = [], k = this.keys, items = this.items; + for(var i = 0, len = items.length; i < len; i++){ + c[c.length] = {key: k[i], value: items[i], index: i}; + } + c.sort(function(a, b){ + var v = fn(a[property], b[property]) * dsc; + if(v == 0){ + v = (a.index < b.index ? -1 : 1); + } + return v; + }); + for(var i = 0, len = c.length; i < len; i++){ + items[i] = c[i].value; + k[i] = c[i].key; + } + this.fireEvent("sort", this); + }, + + + sort : function(dir, fn){ + this._sort("value", dir, fn); + }, + + + keySort : function(dir, fn){ + this._sort("key", dir, fn || function(a, b){ + return String(a).toUpperCase()-String(b).toUpperCase(); + }); + }, + + + getRange : function(start, end){ + var items = this.items; + if(items.length < 1){ + return []; + } + start = start || 0; + end = Math.min(typeof end == "undefined" ? this.length-1 : end, this.length-1); + var r = []; + if(start <= end){ + for(var i = start; i <= end; i++) { + r[r.length] = items[i]; + } + }else{ + for(var i = start; i >= end; i--) { + r[r.length] = items[i]; + } + } + return r; + }, + + + filter : function(property, value, anyMatch, caseSensitive){ + if(Ext.isEmpty(value, false)){ + return this.clone(); + } + value = this.createValueMatcher(value, anyMatch, caseSensitive); + return this.filterBy(function(o){ + return o && value.test(o[property]); + }); + }, + + + filterBy : function(fn, scope){ + var r = new Ext.util.MixedCollection(); + r.getKey = this.getKey; + var k = this.keys, it = this.items; + for(var i = 0, len = it.length; i < len; i++){ + if(fn.call(scope||this, it[i], k[i])){ + r.add(k[i], it[i]); + } + } + return r; + }, + + + findIndex : function(property, value, start, anyMatch, caseSensitive){ + if(Ext.isEmpty(value, false)){ + return -1; + } + value = this.createValueMatcher(value, anyMatch, caseSensitive); + return this.findIndexBy(function(o){ + return o && value.test(o[property]); + }, null, start); + }, + + + findIndexBy : function(fn, scope, start){ + var k = this.keys, it = this.items; + for(var i = (start||0), len = it.length; i < len; i++){ + if(fn.call(scope||this, it[i], k[i])){ + return i; + } + } + if(typeof start == 'number' && start > 0){ + for(var i = 0; i < start; i++){ + if(fn.call(scope||this, it[i], k[i])){ + return i; + } + } + } + return -1; + }, + + + createValueMatcher : function(value, anyMatch, caseSensitive){ + if(!value.exec){ + value = String(value); + value = new RegExp((anyMatch === true ? '' : '^') + Ext.escapeRe(value), caseSensitive ? '' : 'i'); + } + return value; + }, + + + clone : function(){ + var r = new Ext.util.MixedCollection(); + var k = this.keys, it = this.items; + for(var i = 0, len = it.length; i < len; i++){ + r.add(k[i], it[i]); + } + r.getKey = this.getKey; + return r; + } +}); + +Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item; + +Ext.util.JSON = new (function(){ + var useHasOwn = !!{}.hasOwnProperty; + + + var pad = function(n) { + return n < 10 ? "0" + n : n; + }; + + var m = { + "\b": '\\b', + "\t": '\\t', + "\n": '\\n', + "\f": '\\f', + "\r": '\\r', + '"' : '\\"', + "\\": '\\\\' + }; + + var encodeString = function(s){ + if (/["\\\x00-\x1f]/.test(s)) { + return '"' + s.replace(/([\x00-\x1f\\"])/g, function(a, b) { + var c = m[b]; + if(c){ + return c; + } + c = b.charCodeAt(); + return "\\u00" + + Math.floor(c / 16).toString(16) + + (c % 16).toString(16); + }) + '"'; + } + return '"' + s + '"'; + }; + + var encodeArray = function(o){ + var a = ["["], b, i, l = o.length, v; + for (i = 0; i < l; i += 1) { + v = o[i]; + switch (typeof v) { + case "undefined": + case "function": + case "unknown": + break; + default: + if (b) { + a.push(','); + } + a.push(v === null ? "null" : Ext.util.JSON.encode(v)); + b = true; + } + } + a.push("]"); + return a.join(""); + }; + + this.encodeDate = function(o){ + return '"' + o.getFullYear() + "-" + + pad(o.getMonth() + 1) + "-" + + pad(o.getDate()) + "T" + + pad(o.getHours()) + ":" + + pad(o.getMinutes()) + ":" + + pad(o.getSeconds()) + '"'; + }; + + + this.encode = function(o){ + if(typeof o == "undefined" || o === null){ + return "null"; + }else if(Ext.isArray(o)){ + return encodeArray(o); + }else if(Ext.isDate(o)){ + return Ext.util.JSON.encodeDate(o); + }else if(typeof o == "string"){ + return encodeString(o); + }else if(typeof o == "number"){ + return isFinite(o) ? String(o) : "null"; + }else if(typeof o == "boolean"){ + return String(o); + }else { + var a = ["{"], b, i, v; + for (i in o) { + if(!useHasOwn || o.hasOwnProperty(i)) { + v = o[i]; + switch (typeof v) { + case "undefined": + case "function": + case "unknown": + break; + default: + if(b){ + a.push(','); + } + a.push(this.encode(i), ":", + v === null ? "null" : this.encode(v)); + b = true; + } + } + } + a.push("}"); + return a.join(""); + } + }; + + + this.decode = function(json){ + return eval("(" + json + ')'); + }; +})(); + +Ext.encode = Ext.util.JSON.encode; + +Ext.decode = Ext.util.JSON.decode; + + +Ext.util.Format = function(){ + var trimRe = /^\s+|\s+$/g; + return { + + ellipsis : function(value, len){ + if(value && value.length > len){ + return value.substr(0, len-3)+"..."; + } + return value; + }, + + + undef : function(value){ + return value !== undefined ? value : ""; + }, + + + defaultValue : function(value, defaultValue){ + return value !== undefined && value !== '' ? value : defaultValue; + }, + + + htmlEncode : function(value){ + return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/").replace(/</g, "<").replace(/"/g, '"'); + }, + + + trim : function(value){ + return String(value).replace(trimRe, ""); + }, + + + substr : function(value, start, length){ + return String(value).substr(start, length); + }, + + + lowercase : function(value){ + return String(value).toLowerCase(); + }, + + + uppercase : function(value){ + return String(value).toUpperCase(); + }, + + + capitalize : function(value){ + return !value ? value : value.charAt(0).toUpperCase() + value.substr(1).toLowerCase(); + }, + + + call : function(value, fn){ + if(arguments.length > 2){ + var args = Array.prototype.slice.call(arguments, 2); + args.unshift(value); + return eval(fn).apply(window, args); + }else{ + return eval(fn).call(window, value); + } + }, + + + usMoney : function(v){ + v = (Math.round((v-0)*100))/100; + v = (v == Math.floor(v)) ? v + ".00" : ((v*10 == Math.floor(v*10)) ? v + "0" : v); + v = String(v); + var ps = v.split('.'); + var whole = ps[0]; + var sub = ps[1] ? '.'+ ps[1] : '.00'; + var r = /(\d+)(\d{3})/; + while (r.test(whole)) { + whole = whole.replace(r, '$1' + ',' + '$2'); + } + v = whole + sub; + if(v.charAt(0) == '-'){ + return '-$' + v.substr(1); + } + return "$" + v; + }, + + + date : function(v, format){ + if(!v){ + return ""; + } + if(!Ext.isDate(v)){ + v = new Date(Date.parse(v)); + } + return v.dateFormat(format || "m/d/Y"); + }, + + + dateRenderer : function(format){ + return function(v){ + return Ext.util.Format.date(v, format); + }; + }, + + + stripTagsRE : /<\/?[^>]+>/gi, + + + stripTags : function(v){ + return !v ? v : String(v).replace(this.stripTagsRE, ""); + }, + + stripScriptsRe : /(?:)((\n|\r|.)*?)(?:<\/script>)/ig, + + + stripScripts : function(v){ + return !v ? v : String(v).replace(this.stripScriptsRe, ""); + }, + + + fileSize : function(size){ + if(size < 1024) { + return size + " bytes"; + } else if(size < 1048576) { + return (Math.round(((size*10) / 1024))/10) + " KB"; + } else { + return (Math.round(((size*10) / 1048576))/10) + " MB"; + } + }, + + math : function(){ + var fns = {}; + return function(v, a){ + if(!fns[a]){ + fns[a] = new Function('v', 'return v ' + a + ';'); + } + return fns[a](v); + } + }() + }; +}(); + +Ext.XTemplate = function(){ + Ext.XTemplate.superclass.constructor.apply(this, arguments); + var s = this.html; + + s = ['', s, ''].join(''); + + var re = /]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/; + + var nameRe = /^]*?for="(.*?)"/; + var ifRe = /^]*?if="(.*?)"/; + var execRe = /^]*?exec="(.*?)"/; + var m, id = 0; + var tpls = []; + + while(m = s.match(re)){ + var m2 = m[0].match(nameRe); + var m3 = m[0].match(ifRe); + var m4 = m[0].match(execRe); + var exp = null, fn = null, exec = null; + var name = m2 && m2[1] ? m2[1] : ''; + if(m3){ + exp = m3 && m3[1] ? m3[1] : null; + if(exp){ + fn = new Function('values', 'parent', 'xindex', 'xcount', 'with(values){ return '+(Ext.util.Format.htmlDecode(exp))+'; }'); + } + } + if(m4){ + exp = m4 && m4[1] ? m4[1] : null; + if(exp){ + exec = new Function('values', 'parent', 'xindex', 'xcount', 'with(values){ '+(Ext.util.Format.htmlDecode(exp))+'; }'); + } + } + if(name){ + switch(name){ + case '.': name = new Function('values', 'parent', 'with(values){ return values; }'); break; + case '..': name = new Function('values', 'parent', 'with(values){ return parent; }'); break; + default: name = new Function('values', 'parent', 'with(values){ return '+name+'; }'); + } + } + tpls.push({ + id: id, + target: name, + exec: exec, + test: fn, + body: m[1]||'' + }); + s = s.replace(m[0], '{xtpl'+ id + '}'); + ++id; + } + for(var i = tpls.length-1; i >= 0; --i){ + this.compileTpl(tpls[i]); + } + this.master = tpls[tpls.length-1]; + this.tpls = tpls; +}; +Ext.extend(Ext.XTemplate, Ext.Template, { + re : /\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g, + codeRe : /\{\[((?:\\\]|.|\n)*?)\]\}/g, + + applySubTemplate : function(id, values, parent, xindex, xcount){ + var t = this.tpls[id]; + if(t.test && !t.test.call(this, values, parent, xindex, xcount)){ + return ''; + } + if(t.exec && t.exec.call(this, values, parent, xindex, xcount)){ + return ''; + } + var vs = t.target ? t.target.call(this, values, parent) : values; + parent = t.target ? values : parent; + if(t.target && Ext.isArray(vs)){ + var buf = []; + for(var i = 0, len = vs.length; i < len; i++){ + buf[buf.length] = t.compiled.call(this, vs[i], parent, i+1, len); + } + return buf.join(''); + } + return t.compiled.call(this, vs, parent, xindex, xcount); + }, + + compileTpl : function(tpl){ + var fm = Ext.util.Format; + var useF = this.disableFormats !== true; + var sep = Ext.isGecko ? "+" : ","; + var fn = function(m, name, format, args, math){ + if(name.substr(0, 4) == 'xtpl'){ + return "'"+ sep +'this.applySubTemplate('+name.substr(4)+', values, parent, xindex, xcount)'+sep+"'"; + } + var v; + if(name === '.'){ + v = 'values'; + }else if(name === '#'){ + v = 'xindex'; + }else if(name.indexOf('.') != -1){ + v = name; + }else{ + v = "values['" + name + "']"; + } + if(math){ + v = '(' + v + math + ')'; + } + if(format && useF){ + args = args ? ',' + args : ""; + if(format.substr(0, 5) != "this."){ + format = "fm." + format + '('; + }else{ + format = 'this.call("'+ format.substr(5) + '", '; + args = ", values"; + } + }else{ + args= ''; format = "("+v+" === undefined ? '' : "; + } + return "'"+ sep + format + v + args + ")"+sep+"'"; + }; + var codeFn = function(m, code){ + return "'"+ sep +'('+code+')'+sep+"'"; + }; + + var body; + if(Ext.isGecko){ + body = "tpl.compiled = function(values, parent, xindex, xcount){ return '" + + tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn).replace(this.codeRe, codeFn) + + "';};"; + }else{ + body = ["tpl.compiled = function(values, parent, xindex, xcount){ return ['"]; + body.push(tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn).replace(this.codeRe, codeFn)); + body.push("'].join('');};"); + body = body.join(''); + } + eval(body); + return this; + }, + + + applyTemplate : function(values){ + return this.master.compiled.call(this, values, {}, 1, 1); + }, + + + compile : function(){return this;} + + + + + +}); + +Ext.XTemplate.prototype.apply = Ext.XTemplate.prototype.applyTemplate; + + +Ext.XTemplate.from = function(el){ + el = Ext.getDom(el); + return new Ext.XTemplate(el.value || el.innerHTML); +}; + +Ext.util.CSS = function(){ + var rules = null; + var doc = document; + + var camelRe = /(-[a-z])/gi; + var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); }; + + return { + + createStyleSheet : function(cssText, id){ + var ss; + var head = doc.getElementsByTagName("head")[0]; + var rules = doc.createElement("style"); + rules.setAttribute("type", "text/css"); + if(id){ + rules.setAttribute("id", id); + } + if(Ext.isIE){ + head.appendChild(rules); + ss = rules.styleSheet; + ss.cssText = cssText; + }else{ + try{ + rules.appendChild(doc.createTextNode(cssText)); + }catch(e){ + rules.cssText = cssText; + } + head.appendChild(rules); + ss = rules.styleSheet ? rules.styleSheet : (rules.sheet || doc.styleSheets[doc.styleSheets.length-1]); + } + this.cacheStyleSheet(ss); + return ss; + }, + + + removeStyleSheet : function(id){ + var existing = doc.getElementById(id); + if(existing){ + existing.parentNode.removeChild(existing); + } + }, + + + swapStyleSheet : function(id, url){ + this.removeStyleSheet(id); + var ss = doc.createElement("link"); + ss.setAttribute("rel", "stylesheet"); + ss.setAttribute("type", "text/css"); + ss.setAttribute("id", id); + ss.setAttribute("href", url); + doc.getElementsByTagName("head")[0].appendChild(ss); + }, + + + refreshCache : function(){ + return this.getRules(true); + }, + + + cacheStyleSheet : function(ss){ + if(!rules){ + rules = {}; + } + try{ + var ssRules = ss.cssRules || ss.rules; + for(var j = ssRules.length-1; j >= 0; --j){ + rules[ssRules[j].selectorText] = ssRules[j]; + } + }catch(e){} + }, + + + getRules : function(refreshCache){ + if(rules == null || refreshCache){ + rules = {}; + var ds = doc.styleSheets; + for(var i =0, len = ds.length; i < len; i++){ + try{ + this.cacheStyleSheet(ds[i]); + }catch(e){} + } + } + return rules; + }, + + + getRule : function(selector, refreshCache){ + var rs = this.getRules(refreshCache); + if(!Ext.isArray(selector)){ + return rs[selector]; + } + for(var i = 0; i < selector.length; i++){ + if(rs[selector[i]]){ + return rs[selector[i]]; + } + } + return null; + }, + + + + updateRule : function(selector, property, value){ + if(!Ext.isArray(selector)){ + var rule = this.getRule(selector); + if(rule){ + rule.style[property.replace(camelRe, camelFn)] = value; + return true; + } + }else{ + for(var i = 0; i < selector.length; i++){ + if(this.updateRule(selector[i], property, value)){ + return true; + } + } + } + return false; + } + }; +}(); + +Ext.util.ClickRepeater = function(el, config) +{ + this.el = Ext.get(el); + this.el.unselectable(); + + Ext.apply(this, config); + + this.addEvents( + + "mousedown", + + "click", + + "mouseup" + ); + + this.el.on("mousedown", this.handleMouseDown, this); + if(this.preventDefault || this.stopDefault){ + this.el.on("click", function(e){ + if(this.preventDefault){ + e.preventDefault(); + } + if(this.stopDefault){ + e.stopEvent(); + } + }, this); + } + + if(this.handler){ + this.on("click", this.handler, this.scope || this); + } + + Ext.util.ClickRepeater.superclass.constructor.call(this); +}; + +Ext.extend(Ext.util.ClickRepeater, Ext.util.Observable, { + interval : 20, + delay: 250, + preventDefault : true, + stopDefault : false, + timer : 0, + + handleMouseDown : function(){ + clearTimeout(this.timer); + this.el.blur(); + if(this.pressClass){ + this.el.addClass(this.pressClass); + } + this.mousedownTime = new Date(); + + Ext.getDoc().on("mouseup", this.handleMouseUp, this); + this.el.on("mouseout", this.handleMouseOut, this); + + this.fireEvent("mousedown", this); + this.fireEvent("click", this); + + if (this.accelerate) { + this.delay = 400; + } + this.timer = this.click.defer(this.delay || this.interval, this); + }, + + click : function(){ + this.fireEvent("click", this); + this.timer = this.click.defer(this.accelerate ? + this.easeOutExpo(this.mousedownTime.getElapsed(), + 400, + -390, + 12000) : + this.interval, this); + }, + + easeOutExpo : function (t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + + handleMouseOut : function(){ + clearTimeout(this.timer); + if(this.pressClass){ + this.el.removeClass(this.pressClass); + } + this.el.on("mouseover", this.handleMouseReturn, this); + }, + + handleMouseReturn : function(){ + this.el.un("mouseover", this.handleMouseReturn); + if(this.pressClass){ + this.el.addClass(this.pressClass); + } + this.click(); + }, + + handleMouseUp : function(){ + clearTimeout(this.timer); + this.el.un("mouseover", this.handleMouseReturn); + this.el.un("mouseout", this.handleMouseOut); + Ext.getDoc().un("mouseup", this.handleMouseUp); + this.el.removeClass(this.pressClass); + this.fireEvent("mouseup", this); + } +}); + +Ext.KeyNav = function(el, config){ + this.el = Ext.get(el); + Ext.apply(this, config); + if(!this.disabled){ + this.disabled = true; + this.enable(); + } +}; + +Ext.KeyNav.prototype = { + + disabled : false, + + defaultEventAction: "stopEvent", + + forceKeyDown : false, + + prepareEvent : function(e){ + var k = e.getKey(); + var h = this.keyToHandler[k]; + if(Ext.isSafari2 && h && k >= 37 && k <= 40){ + e.stopEvent(); + } + }, + + relay : function(e){ + var k = e.getKey(); + var h = this.keyToHandler[k]; + if(h && this[h]){ + if(this.doRelay(e, this[h], h) !== true){ + e[this.defaultEventAction](); + } + } + }, + + doRelay : function(e, h, hname){ + return h.call(this.scope || this, e); + }, + + enter : false, + left : false, + right : false, + up : false, + down : false, + tab : false, + esc : false, + pageUp : false, + pageDown : false, + del : false, + home : false, + end : false, + + keyToHandler : { + 37 : "left", + 39 : "right", + 38 : "up", + 40 : "down", + 33 : "pageUp", + 34 : "pageDown", + 46 : "del", + 36 : "home", + 35 : "end", + 13 : "enter", + 27 : "esc", + 9 : "tab" + }, + + + enable: function(){ + if(this.disabled){ + if(this.forceKeyDown || Ext.isIE || Ext.isSafari3 || Ext.isAir){ + this.el.on("keydown", this.relay, this); + }else{ + this.el.on("keydown", this.prepareEvent, this); + this.el.on("keypress", this.relay, this); + } + this.disabled = false; + } + }, + + + disable: function(){ + if(!this.disabled){ + if(this.forceKeyDown || Ext.isIE || Ext.isSafari3 || Ext.isAir){ + this.el.un("keydown", this.relay); + }else{ + this.el.un("keydown", this.prepareEvent); + this.el.un("keypress", this.relay); + } + this.disabled = true; + } + } +}; + +Ext.KeyMap = function(el, config, eventName){ + this.el = Ext.get(el); + this.eventName = eventName || "keydown"; + this.bindings = []; + if(config){ + this.addBinding(config); + } + this.enable(); +}; + +Ext.KeyMap.prototype = { + + stopEvent : false, + + + addBinding : function(config){ + if(Ext.isArray(config)){ + for(var i = 0, len = config.length; i < len; i++){ + this.addBinding(config[i]); + } + return; + } + var keyCode = config.key, + shift = config.shift, + ctrl = config.ctrl, + alt = config.alt, + fn = config.fn || config.handler, + scope = config.scope; + + if(typeof keyCode == "string"){ + var ks = []; + var keyString = keyCode.toUpperCase(); + for(var j = 0, len = keyString.length; j < len; j++){ + ks.push(keyString.charCodeAt(j)); + } + keyCode = ks; + } + var keyArray = Ext.isArray(keyCode); + + var handler = function(e){ + if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) && (!alt || e.altKey)){ + var k = e.getKey(); + if(keyArray){ + for(var i = 0, len = keyCode.length; i < len; i++){ + if(keyCode[i] == k){ + if(this.stopEvent){ + e.stopEvent(); + } + fn.call(scope || window, k, e); + return; + } + } + }else{ + if(k == keyCode){ + if(this.stopEvent){ + e.stopEvent(); + } + fn.call(scope || window, k, e); + } + } + } + }; + this.bindings.push(handler); + }, + + + on : function(key, fn, scope){ + var keyCode, shift, ctrl, alt; + if(typeof key == "object" && !Ext.isArray(key)){ + keyCode = key.key; + shift = key.shift; + ctrl = key.ctrl; + alt = key.alt; + }else{ + keyCode = key; + } + this.addBinding({ + key: keyCode, + shift: shift, + ctrl: ctrl, + alt: alt, + fn: fn, + scope: scope + }) + }, + + + handleKeyDown : function(e){ + if(this.enabled){ + var b = this.bindings; + for(var i = 0, len = b.length; i < len; i++){ + b[i].call(this, e); + } + } + }, + + + isEnabled : function(){ + return this.enabled; + }, + + + enable: function(){ + if(!this.enabled){ + this.el.on(this.eventName, this.handleKeyDown, this); + this.enabled = true; + } + }, + + + disable: function(){ + if(this.enabled){ + this.el.removeListener(this.eventName, this.handleKeyDown, this); + this.enabled = false; + } + } +}; + +Ext.util.TextMetrics = function(){ + var shared; + return { + + measure : function(el, text, fixedWidth){ + if(!shared){ + shared = Ext.util.TextMetrics.Instance(el, fixedWidth); + } + shared.bind(el); + shared.setFixedWidth(fixedWidth || 'auto'); + return shared.getSize(text); + }, + + + createInstance : function(el, fixedWidth){ + return Ext.util.TextMetrics.Instance(el, fixedWidth); + } + }; +}(); + +Ext.util.TextMetrics.Instance = function(bindTo, fixedWidth){ + var ml = new Ext.Element(document.createElement('div')); + document.body.appendChild(ml.dom); + ml.position('absolute'); + ml.setLeftTop(-1000, -1000); + ml.hide(); + + if(fixedWidth){ + ml.setWidth(fixedWidth); + } + + var instance = { + + getSize : function(text){ + ml.update(text); + var s = ml.getSize(); + ml.update(''); + return s; + }, + + + bind : function(el){ + ml.setStyle( + Ext.fly(el).getStyles('font-size','font-style', 'font-weight', 'font-family','line-height', 'text-transform', 'letter-spacing') + ); + }, + + + setFixedWidth : function(width){ + ml.setWidth(width); + }, + + + getWidth : function(text){ + ml.dom.style.width = 'auto'; + return this.getSize(text).width; + }, + + + getHeight : function(text){ + return this.getSize(text).height; + } + }; + + instance.bind(bindTo); + + return instance; +}; + +Ext.Element.measureText = Ext.util.TextMetrics.measure; + + +(function() { + +var Event=Ext.EventManager; +var Dom=Ext.lib.Dom; + + +Ext.dd.DragDrop = function(id, sGroup, config) { + if(id) { + this.init(id, sGroup, config); + } +}; + +Ext.dd.DragDrop.prototype = { + + + id: null, + + + config: null, + + + dragElId: null, + + + handleElId: null, + + + invalidHandleTypes: null, + + + invalidHandleIds: null, + + + invalidHandleClasses: null, + + + startPageX: 0, + + + startPageY: 0, + + + groups: null, + + + locked: false, + + + lock: function() { this.locked = true; }, + + + unlock: function() { this.locked = false; }, + + + isTarget: true, + + + padding: null, + + + _domRef: null, + + + __ygDragDrop: true, + + + constrainX: false, + + + constrainY: false, + + + minX: 0, + + + maxX: 0, + + + minY: 0, + + + maxY: 0, + + + maintainOffset: false, + + + xTicks: null, + + + yTicks: null, + + + primaryButtonOnly: true, + + + available: false, + + + hasOuterHandles: false, + + + b4StartDrag: function(x, y) { }, + + + startDrag: function(x, y) { }, + + + b4Drag: function(e) { }, + + + onDrag: function(e) { }, + + + onDragEnter: function(e, id) { }, + + + b4DragOver: function(e) { }, + + + onDragOver: function(e, id) { }, + + + b4DragOut: function(e) { }, + + + onDragOut: function(e, id) { }, + + + b4DragDrop: function(e) { }, + + + onDragDrop: function(e, id) { }, + + + onInvalidDrop: function(e) { }, + + + b4EndDrag: function(e) { }, + + + endDrag: function(e) { }, + + + b4MouseDown: function(e) { }, + + + onMouseDown: function(e) { }, + + + onMouseUp: function(e) { }, + + + onAvailable: function () { + }, + + + defaultPadding : {left:0, right:0, top:0, bottom:0}, + + + constrainTo : function(constrainTo, pad, inContent){ + if(typeof pad == "number"){ + pad = {left: pad, right:pad, top:pad, bottom:pad}; + } + pad = pad || this.defaultPadding; + var b = Ext.get(this.getEl()).getBox(); + var ce = Ext.get(constrainTo); + var s = ce.getScroll(); + var c, cd = ce.dom; + if(cd == document.body){ + c = { x: s.left, y: s.top, width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()}; + }else{ + var xy = ce.getXY(); + c = {x : xy[0]+s.left, y: xy[1]+s.top, width: cd.clientWidth, height: cd.clientHeight}; + } + + + var topSpace = b.y - c.y; + var leftSpace = b.x - c.x; + + this.resetConstraints(); + this.setXConstraint(leftSpace - (pad.left||0), + c.width - leftSpace - b.width - (pad.right||0), + this.xTickSize + ); + this.setYConstraint(topSpace - (pad.top||0), + c.height - topSpace - b.height - (pad.bottom||0), + this.yTickSize + ); + }, + + + getEl: function() { + if (!this._domRef) { + this._domRef = Ext.getDom(this.id); + } + + return this._domRef; + }, + + + getDragEl: function() { + return Ext.getDom(this.dragElId); + }, + + + init: function(id, sGroup, config) { + this.initTarget(id, sGroup, config); + Event.on(this.id, "mousedown", this.handleMouseDown, this); + + }, + + + initTarget: function(id, sGroup, config) { + + + this.config = config || {}; + + + this.DDM = Ext.dd.DDM; + + this.groups = {}; + + + + if (typeof id !== "string") { + id = Ext.id(id); + } + + + this.id = id; + + + this.addToGroup((sGroup) ? sGroup : "default"); + + + + this.handleElId = id; + + + this.setDragElId(id); + + + this.invalidHandleTypes = { A: "A" }; + this.invalidHandleIds = {}; + this.invalidHandleClasses = []; + + this.applyConfig(); + + this.handleOnAvailable(); + }, + + + applyConfig: function() { + + + + this.padding = this.config.padding || [0, 0, 0, 0]; + this.isTarget = (this.config.isTarget !== false); + this.maintainOffset = (this.config.maintainOffset); + this.primaryButtonOnly = (this.config.primaryButtonOnly !== false); + + }, + + + handleOnAvailable: function() { + this.available = true; + this.resetConstraints(); + this.onAvailable(); + }, + + + setPadding: function(iTop, iRight, iBot, iLeft) { + + if (!iRight && 0 !== iRight) { + this.padding = [iTop, iTop, iTop, iTop]; + } else if (!iBot && 0 !== iBot) { + this.padding = [iTop, iRight, iTop, iRight]; + } else { + this.padding = [iTop, iRight, iBot, iLeft]; + } + }, + + + setInitPosition: function(diffX, diffY) { + var el = this.getEl(); + + if (!this.DDM.verifyEl(el)) { + return; + } + + var dx = diffX || 0; + var dy = diffY || 0; + + var p = Dom.getXY( el ); + + this.initPageX = p[0] - dx; + this.initPageY = p[1] - dy; + + this.lastPageX = p[0]; + this.lastPageY = p[1]; + + + this.setStartPosition(p); + }, + + + setStartPosition: function(pos) { + var p = pos || Dom.getXY( this.getEl() ); + this.deltaSetXY = null; + + this.startPageX = p[0]; + this.startPageY = p[1]; + }, + + + addToGroup: function(sGroup) { + this.groups[sGroup] = true; + this.DDM.regDragDrop(this, sGroup); + }, + + + removeFromGroup: function(sGroup) { + if (this.groups[sGroup]) { + delete this.groups[sGroup]; + } + + this.DDM.removeDDFromGroup(this, sGroup); + }, + + + setDragElId: function(id) { + this.dragElId = id; + }, + + + setHandleElId: function(id) { + if (typeof id !== "string") { + id = Ext.id(id); + } + this.handleElId = id; + this.DDM.regHandle(this.id, id); + }, + + + setOuterHandleElId: function(id) { + if (typeof id !== "string") { + id = Ext.id(id); + } + Event.on(id, "mousedown", + this.handleMouseDown, this); + this.setHandleElId(id); + + this.hasOuterHandles = true; + }, + + + unreg: function() { + Event.un(this.id, "mousedown", + this.handleMouseDown); + this._domRef = null; + this.DDM._remove(this); + }, + + destroy : function(){ + this.unreg(); + }, + + + isLocked: function() { + return (this.DDM.isLocked() || this.locked); + }, + + + handleMouseDown: function(e, oDD){ + if (this.primaryButtonOnly && e.button != 0) { + return; + } + + if (this.isLocked()) { + return; + } + + this.DDM.refreshCache(this.groups); + + var pt = new Ext.lib.Point(Ext.lib.Event.getPageX(e), Ext.lib.Event.getPageY(e)); + if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, this) ) { + } else { + if (this.clickValidator(e)) { + + + this.setStartPosition(); + + + this.b4MouseDown(e); + this.onMouseDown(e); + + this.DDM.handleMouseDown(e, this); + + this.DDM.stopEvent(e); + } else { + + + } + } + }, + + clickValidator: function(e) { + var target = e.getTarget(); + return ( this.isValidHandleChild(target) && + (this.id == this.handleElId || + this.DDM.handleWasClicked(target, this.id)) ); + }, + + + addInvalidHandleType: function(tagName) { + var type = tagName.toUpperCase(); + this.invalidHandleTypes[type] = type; + }, + + + addInvalidHandleId: function(id) { + if (typeof id !== "string") { + id = Ext.id(id); + } + this.invalidHandleIds[id] = id; + }, + + + addInvalidHandleClass: function(cssClass) { + this.invalidHandleClasses.push(cssClass); + }, + + + removeInvalidHandleType: function(tagName) { + var type = tagName.toUpperCase(); + + delete this.invalidHandleTypes[type]; + }, + + + removeInvalidHandleId: function(id) { + if (typeof id !== "string") { + id = Ext.id(id); + } + delete this.invalidHandleIds[id]; + }, + + + removeInvalidHandleClass: function(cssClass) { + for (var i=0, len=this.invalidHandleClasses.length; i= this.minX; i = i - iTickSize) { + if (!tickMap[i]) { + this.xTicks[this.xTicks.length] = i; + tickMap[i] = true; + } + } + + for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) { + if (!tickMap[i]) { + this.xTicks[this.xTicks.length] = i; + tickMap[i] = true; + } + } + + this.xTicks.sort(this.DDM.numericSort) ; + }, + + + setYTicks: function(iStartY, iTickSize) { + this.yTicks = []; + this.yTickSize = iTickSize; + + var tickMap = {}; + + for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) { + if (!tickMap[i]) { + this.yTicks[this.yTicks.length] = i; + tickMap[i] = true; + } + } + + for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) { + if (!tickMap[i]) { + this.yTicks[this.yTicks.length] = i; + tickMap[i] = true; + } + } + + this.yTicks.sort(this.DDM.numericSort) ; + }, + + + setXConstraint: function(iLeft, iRight, iTickSize) { + this.leftConstraint = iLeft; + this.rightConstraint = iRight; + + this.minX = this.initPageX - iLeft; + this.maxX = this.initPageX + iRight; + if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); } + + this.constrainX = true; + }, + + + clearConstraints: function() { + this.constrainX = false; + this.constrainY = false; + this.clearTicks(); + }, + + + clearTicks: function() { + this.xTicks = null; + this.yTicks = null; + this.xTickSize = 0; + this.yTickSize = 0; + }, + + + setYConstraint: function(iUp, iDown, iTickSize) { + this.topConstraint = iUp; + this.bottomConstraint = iDown; + + this.minY = this.initPageY - iUp; + this.maxY = this.initPageY + iDown; + if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); } + + this.constrainY = true; + + }, + + + resetConstraints: function() { + + + + if (this.initPageX || this.initPageX === 0) { + + var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0; + var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0; + + this.setInitPosition(dx, dy); + + + } else { + this.setInitPosition(); + } + + if (this.constrainX) { + this.setXConstraint( this.leftConstraint, + this.rightConstraint, + this.xTickSize ); + } + + if (this.constrainY) { + this.setYConstraint( this.topConstraint, + this.bottomConstraint, + this.yTickSize ); + } + }, + + + getTick: function(val, tickArray) { + + if (!tickArray) { + + + return val; + } else if (tickArray[0] >= val) { + + + return tickArray[0]; + } else { + for (var i=0, len=tickArray.length; i= val) { + var diff1 = val - tickArray[i]; + var diff2 = tickArray[next] - val; + return (diff2 > diff1) ? tickArray[i] : tickArray[next]; + } + } + + + + return tickArray[tickArray.length - 1]; + } + }, + + + toString: function() { + return ("DragDrop " + this.id); + } + +}; + +})(); + + + + +if (!Ext.dd.DragDropMgr) { + + +Ext.dd.DragDropMgr = function() { + + var Event = Ext.EventManager; + + return { + + + ids: {}, + + + handleIds: {}, + + + dragCurrent: null, + + + dragOvers: {}, + + + deltaX: 0, + + + deltaY: 0, + + + preventDefault: true, + + + stopPropagation: true, + + + initialized: false, + + + locked: false, + + + init: function() { + this.initialized = true; + }, + + + POINT: 0, + + + INTERSECT: 1, + + + mode: 0, + + + _execOnAll: function(sMethod, args) { + for (var i in this.ids) { + for (var j in this.ids[i]) { + var oDD = this.ids[i][j]; + if (! this.isTypeOfDD(oDD)) { + continue; + } + oDD[sMethod].apply(oDD, args); + } + } + }, + + + _onLoad: function() { + + this.init(); + + + Event.on(document, "mouseup", this.handleMouseUp, this, true); + Event.on(document, "mousemove", this.handleMouseMove, this, true); + Event.on(window, "unload", this._onUnload, this, true); + Event.on(window, "resize", this._onResize, this, true); + + + }, + + + _onResize: function(e) { + this._execOnAll("resetConstraints", []); + }, + + + lock: function() { this.locked = true; }, + + + unlock: function() { this.locked = false; }, + + + isLocked: function() { return this.locked; }, + + + locationCache: {}, + + + useCache: true, + + + clickPixelThresh: 3, + + + clickTimeThresh: 350, + + + dragThreshMet: false, + + + clickTimeout: null, + + + startX: 0, + + + startY: 0, + + + regDragDrop: function(oDD, sGroup) { + if (!this.initialized) { this.init(); } + + if (!this.ids[sGroup]) { + this.ids[sGroup] = {}; + } + this.ids[sGroup][oDD.id] = oDD; + }, + + + removeDDFromGroup: function(oDD, sGroup) { + if (!this.ids[sGroup]) { + this.ids[sGroup] = {}; + } + + var obj = this.ids[sGroup]; + if (obj && obj[oDD.id]) { + delete obj[oDD.id]; + } + }, + + + _remove: function(oDD) { + for (var g in oDD.groups) { + if (g && this.ids[g][oDD.id]) { + delete this.ids[g][oDD.id]; + } + } + delete this.handleIds[oDD.id]; + }, + + + regHandle: function(sDDId, sHandleId) { + if (!this.handleIds[sDDId]) { + this.handleIds[sDDId] = {}; + } + this.handleIds[sDDId][sHandleId] = sHandleId; + }, + + + isDragDrop: function(id) { + return ( this.getDDById(id) ) ? true : false; + }, + + + getRelated: function(p_oDD, bTargetsOnly) { + var oDDs = []; + for (var i in p_oDD.groups) { + for (j in this.ids[i]) { + var dd = this.ids[i][j]; + if (! this.isTypeOfDD(dd)) { + continue; + } + if (!bTargetsOnly || dd.isTarget) { + oDDs[oDDs.length] = dd; + } + } + } + + return oDDs; + }, + + + isLegalTarget: function (oDD, oTargetDD) { + var targets = this.getRelated(oDD, true); + for (var i=0, len=targets.length;i this.clickPixelThresh || + diffY > this.clickPixelThresh) { + this.startDrag(this.startX, this.startY); + } + } + + if (this.dragThreshMet) { + this.dragCurrent.b4Drag(e); + this.dragCurrent.onDrag(e); + if(!this.dragCurrent.moveOnly){ + this.fireEvents(e, false); + } + } + + this.stopEvent(e); + + return true; + }, + + + fireEvents: function(e, isDrop) { + var dc = this.dragCurrent; + + + + if (!dc || dc.isLocked()) { + return; + } + + var pt = e.getPoint(); + + + var oldOvers = []; + + var outEvts = []; + var overEvts = []; + var dropEvts = []; + var enterEvts = []; + + + + for (var i in this.dragOvers) { + + var ddo = this.dragOvers[i]; + + if (! this.isTypeOfDD(ddo)) { + continue; + } + + if (! this.isOverTarget(pt, ddo, this.mode)) { + outEvts.push( ddo ); + } + + oldOvers[i] = true; + delete this.dragOvers[i]; + } + + for (var sGroup in dc.groups) { + + if ("string" != typeof sGroup) { + continue; + } + + for (i in this.ids[sGroup]) { + var oDD = this.ids[sGroup][i]; + if (! this.isTypeOfDD(oDD)) { + continue; + } + + if (oDD.isTarget && !oDD.isLocked() && oDD != dc) { + if (this.isOverTarget(pt, oDD, this.mode)) { + + if (isDrop) { + dropEvts.push( oDD ); + + } else { + + + if (!oldOvers[oDD.id]) { + enterEvts.push( oDD ); + + } else { + overEvts.push( oDD ); + } + + this.dragOvers[oDD.id] = oDD; + } + } + } + } + } + + if (this.mode) { + if (outEvts.length) { + dc.b4DragOut(e, outEvts); + dc.onDragOut(e, outEvts); + } + + if (enterEvts.length) { + dc.onDragEnter(e, enterEvts); + } + + if (overEvts.length) { + dc.b4DragOver(e, overEvts); + dc.onDragOver(e, overEvts); + } + + if (dropEvts.length) { + dc.b4DragDrop(e, dropEvts); + dc.onDragDrop(e, dropEvts); + } + + } else { + + var len = 0; + for (i=0, len=outEvts.length; i 2000) { + } else { + setTimeout(DDM._addListeners, 10); + if (document && document.body) { + DDM._timeoutCount += 1; + } + } + } + }, + + + handleWasClicked: function(node, id) { + if (this.isHandle(id, node.id)) { + return true; + } else { + + var p = node.parentNode; + + while (p) { + if (this.isHandle(id, p.id)) { + return true; + } else { + p = p.parentNode; + } + } + } + + return false; + } + + }; + +}(); + + +Ext.dd.DDM = Ext.dd.DragDropMgr; +Ext.dd.DDM._addListeners(); + +} + + +Ext.dd.DD = function(id, sGroup, config) { + if (id) { + this.init(id, sGroup, config); + } +}; + +Ext.extend(Ext.dd.DD, Ext.dd.DragDrop, { + + + scroll: true, + + + autoOffset: function(iPageX, iPageY) { + var x = iPageX - this.startPageX; + var y = iPageY - this.startPageY; + this.setDelta(x, y); + }, + + + setDelta: function(iDeltaX, iDeltaY) { + this.deltaX = iDeltaX; + this.deltaY = iDeltaY; + }, + + + setDragElPos: function(iPageX, iPageY) { + + + + var el = this.getDragEl(); + this.alignElWithMouse(el, iPageX, iPageY); + }, + + + alignElWithMouse: function(el, iPageX, iPageY) { + var oCoord = this.getTargetCoord(iPageX, iPageY); + var fly = el.dom ? el : Ext.fly(el, '_dd'); + if (!this.deltaSetXY) { + var aCoord = [oCoord.x, oCoord.y]; + fly.setXY(aCoord); + var newLeft = fly.getLeft(true); + var newTop = fly.getTop(true); + this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ]; + } else { + fly.setLeftTop(oCoord.x + this.deltaSetXY[0], oCoord.y + this.deltaSetXY[1]); + } + + this.cachePosition(oCoord.x, oCoord.y); + this.autoScroll(oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth); + return oCoord; + }, + + + cachePosition: function(iPageX, iPageY) { + if (iPageX) { + this.lastPageX = iPageX; + this.lastPageY = iPageY; + } else { + var aCoord = Ext.lib.Dom.getXY(this.getEl()); + this.lastPageX = aCoord[0]; + this.lastPageY = aCoord[1]; + } + }, + + + autoScroll: function(x, y, h, w) { + + if (this.scroll) { + + var clientH = Ext.lib.Dom.getViewHeight(); + + + var clientW = Ext.lib.Dom.getViewWidth(); + + + var st = this.DDM.getScrollTop(); + + + var sl = this.DDM.getScrollLeft(); + + + var bot = h + y; + + + var right = w + x; + + + + + var toBot = (clientH + st - y - this.deltaY); + + + var toRight = (clientW + sl - x - this.deltaX); + + + + + var thresh = 40; + + + + + var scrAmt = (document.all) ? 80 : 30; + + + + if ( bot > clientH && toBot < thresh ) { + window.scrollTo(sl, st + scrAmt); + } + + + + if ( y < st && st > 0 && y - st < thresh ) { + window.scrollTo(sl, st - scrAmt); + } + + + + if ( right > clientW && toRight < thresh ) { + window.scrollTo(sl + scrAmt, st); + } + + + + if ( x < sl && sl > 0 && x - sl < thresh ) { + window.scrollTo(sl - scrAmt, st); + } + } + }, + + + getTargetCoord: function(iPageX, iPageY) { + + + var x = iPageX - this.deltaX; + var y = iPageY - this.deltaY; + + if (this.constrainX) { + if (x < this.minX) { x = this.minX; } + if (x > this.maxX) { x = this.maxX; } + } + + if (this.constrainY) { + if (y < this.minY) { y = this.minY; } + if (y > this.maxY) { y = this.maxY; } + } + + x = this.getTick(x, this.xTicks); + y = this.getTick(y, this.yTicks); + + + return {x:x, y:y}; + }, + + + applyConfig: function() { + Ext.dd.DD.superclass.applyConfig.call(this); + this.scroll = (this.config.scroll !== false); + }, + + + b4MouseDown: function(e) { + + this.autoOffset(e.getPageX(), + e.getPageY()); + }, + + + b4Drag: function(e) { + this.setDragElPos(e.getPageX(), + e.getPageY()); + }, + + toString: function() { + return ("DD " + this.id); + } + + + + + + +}); + +Ext.dd.DDProxy = function(id, sGroup, config) { + if (id) { + this.init(id, sGroup, config); + this.initFrame(); + } +}; + + +Ext.dd.DDProxy.dragElId = "ygddfdiv"; + +Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { + + + resizeFrame: true, + + + centerFrame: false, + + + createFrame: function() { + var self = this; + var body = document.body; + + if (!body || !body.firstChild) { + setTimeout( function() { self.createFrame(); }, 50 ); + return; + } + + var div = this.getDragEl(); + + if (!div) { + div = document.createElement("div"); + div.id = this.dragElId; + var s = div.style; + + s.position = "absolute"; + s.visibility = "hidden"; + s.cursor = "move"; + s.border = "2px solid #aaa"; + s.zIndex = 999; + + + + + body.insertBefore(div, body.firstChild); + } + }, + + + initFrame: function() { + this.createFrame(); + }, + + applyConfig: function() { + Ext.dd.DDProxy.superclass.applyConfig.call(this); + + this.resizeFrame = (this.config.resizeFrame !== false); + this.centerFrame = (this.config.centerFrame); + this.setDragElId(this.config.dragElId || Ext.dd.DDProxy.dragElId); + }, + + + showFrame: function(iPageX, iPageY) { + var el = this.getEl(); + var dragEl = this.getDragEl(); + var s = dragEl.style; + + this._resizeProxy(); + + if (this.centerFrame) { + this.setDelta( Math.round(parseInt(s.width, 10)/2), + Math.round(parseInt(s.height, 10)/2) ); + } + + this.setDragElPos(iPageX, iPageY); + + Ext.fly(dragEl).show(); + }, + + + _resizeProxy: function() { + if (this.resizeFrame) { + var el = this.getEl(); + Ext.fly(this.getDragEl()).setSize(el.offsetWidth, el.offsetHeight); + } + }, + + + b4MouseDown: function(e) { + var x = e.getPageX(); + var y = e.getPageY(); + this.autoOffset(x, y); + this.setDragElPos(x, y); + }, + + + b4StartDrag: function(x, y) { + + this.showFrame(x, y); + }, + + + b4EndDrag: function(e) { + Ext.fly(this.getDragEl()).hide(); + }, + + + + + endDrag: function(e) { + + var lel = this.getEl(); + var del = this.getDragEl(); + + + del.style.visibility = ""; + + this.beforeMove(); + + + lel.style.visibility = "hidden"; + Ext.dd.DDM.moveToEl(lel, del); + del.style.visibility = "hidden"; + lel.style.visibility = ""; + + this.afterDrag(); + }, + + beforeMove : function(){ + + }, + + afterDrag : function(){ + + }, + + toString: function() { + return ("DDProxy " + this.id); + } + +}); + +Ext.dd.DDTarget = function(id, sGroup, config) { + if (id) { + this.initTarget(id, sGroup, config); + } +}; + + +Ext.extend(Ext.dd.DDTarget, Ext.dd.DragDrop, { + toString: function() { + return ("DDTarget " + this.id); + } +}); + +Ext.dd.DragTracker = function(config){ + Ext.apply(this, config); + this.addEvents( + 'mousedown', + 'mouseup', + 'mousemove', + 'dragstart', + 'dragend', + 'drag' + ); + + this.dragRegion = new Ext.lib.Region(0,0,0,0); + + if(this.el){ + this.initEl(this.el); + } +} + +Ext.extend(Ext.dd.DragTracker, Ext.util.Observable, { + active: false, + tolerance: 5, + autoStart: false, + + initEl: function(el){ + this.el = Ext.get(el); + el.on('mousedown', this.onMouseDown, this, + this.delegate ? {delegate: this.delegate} : undefined); + }, + + destroy : function(){ + this.el.un('mousedown', this.onMouseDown, this); + }, + + onMouseDown: function(e, target){ + if(this.fireEvent('mousedown', this, e) !== false && this.onBeforeStart(e) !== false){ + this.startXY = this.lastXY = e.getXY(); + this.dragTarget = this.delegate ? target : this.el.dom; + e.preventDefault(); + var doc = Ext.getDoc(); + doc.on('mouseup', this.onMouseUp, this); + doc.on('mousemove', this.onMouseMove, this); + doc.on('selectstart', this.stopSelect, this); + if(this.autoStart){ + this.timer = this.triggerStart.defer(this.autoStart === true ? 1000 : this.autoStart, this); + } + } + }, + + onMouseMove: function(e, target){ + e.preventDefault(); + var xy = e.getXY(), s = this.startXY; + this.lastXY = xy; + if(!this.active){ + if(Math.abs(s[0]-xy[0]) > this.tolerance || Math.abs(s[1]-xy[1]) > this.tolerance){ + this.triggerStart(); + }else{ + return; + } + } + this.fireEvent('mousemove', this, e); + this.onDrag(e); + this.fireEvent('drag', this, e); + }, + + onMouseUp: function(e){ + var doc = Ext.getDoc(); + doc.un('mousemove', this.onMouseMove, this); + doc.un('mouseup', this.onMouseUp, this); + doc.un('selectstart', this.stopSelect, this); + e.preventDefault(); + this.clearStart(); + this.active = false; + delete this.elRegion; + this.fireEvent('mouseup', this, e); + this.onEnd(e); + this.fireEvent('dragend', this, e); + }, + + triggerStart: function(isTimer){ + this.clearStart(); + this.active = true; + this.onStart(this.startXY); + this.fireEvent('dragstart', this, this.startXY); + }, + + clearStart : function(){ + if(this.timer){ + clearTimeout(this.timer); + delete this.timer; + } + }, + + stopSelect : function(e){ + e.stopEvent(); + return false; + }, + + onBeforeStart : function(e){ + + }, + + onStart : function(xy){ + + }, + + onDrag : function(e){ + + }, + + onEnd : function(e){ + + }, + + getDragTarget : function(){ + return this.dragTarget; + }, + + getDragCt : function(){ + return this.el; + }, + + getXY : function(constrain){ + return constrain ? + this.constrainModes[constrain].call(this, this.lastXY) : this.lastXY; + }, + + getOffset : function(constrain){ + var xy = this.getXY(constrain); + var s = this.startXY; + return [s[0]-xy[0], s[1]-xy[1]]; + }, + + constrainModes: { + 'point' : function(xy){ + + if(!this.elRegion){ + this.elRegion = this.getDragCt().getRegion(); + } + + var dr = this.dragRegion; + + dr.left = xy[0]; + dr.top = xy[1]; + dr.right = xy[0]; + dr.bottom = xy[1]; + + dr.constrainTo(this.elRegion); + + return [dr.left, dr.top]; + } + } +}); + +Ext.dd.ScrollManager = function(){ + var ddm = Ext.dd.DragDropMgr; + var els = {}; + var dragEl = null; + var proc = {}; + + var onStop = function(e){ + dragEl = null; + clearProc(); + }; + + var triggerRefresh = function(){ + if(ddm.dragCurrent){ + ddm.refreshCache(ddm.dragCurrent.groups); + } + }; + + var doScroll = function(){ + if(ddm.dragCurrent){ + var dds = Ext.dd.ScrollManager; + var inc = proc.el.ddScrollConfig ? + proc.el.ddScrollConfig.increment : dds.increment; + if(!dds.animate){ + if(proc.el.scroll(proc.dir, inc)){ + triggerRefresh(); + } + }else{ + proc.el.scroll(proc.dir, inc, true, dds.animDuration, triggerRefresh); + } + } + }; + + var clearProc = function(){ + if(proc.id){ + clearInterval(proc.id); + } + proc.id = 0; + proc.el = null; + proc.dir = ""; + }; + + var startProc = function(el, dir){ + clearProc(); + proc.el = el; + proc.dir = dir; + proc.id = setInterval(doScroll, Ext.dd.ScrollManager.frequency); + }; + + var onFire = function(e, isDrop){ + if(isDrop || !ddm.dragCurrent){ return; } + var dds = Ext.dd.ScrollManager; + if(!dragEl || dragEl != ddm.dragCurrent){ + dragEl = ddm.dragCurrent; + + dds.refreshCache(); + } + + var xy = Ext.lib.Event.getXY(e); + var pt = new Ext.lib.Point(xy[0], xy[1]); + for(var id in els){ + var el = els[id], r = el._region; + var c = el.ddScrollConfig ? el.ddScrollConfig : dds; + if(r && r.contains(pt) && el.isScrollable()){ + if(r.bottom - pt.y <= c.vthresh){ + if(proc.el != el){ + startProc(el, "down"); + } + return; + }else if(r.right - pt.x <= c.hthresh){ + if(proc.el != el){ + startProc(el, "left"); + } + return; + }else if(pt.y - r.top <= c.vthresh){ + if(proc.el != el){ + startProc(el, "up"); + } + return; + }else if(pt.x - r.left <= c.hthresh){ + if(proc.el != el){ + startProc(el, "right"); + } + return; + } + } + } + clearProc(); + }; + + ddm.fireEvents = ddm.fireEvents.createSequence(onFire, ddm); + ddm.stopDrag = ddm.stopDrag.createSequence(onStop, ddm); + + return { + + register : function(el){ + if(Ext.isArray(el)){ + for(var i = 0, len = el.length; i < len; i++) { + this.register(el[i]); + } + }else{ + el = Ext.get(el); + els[el.id] = el; + } + }, + + + unregister : function(el){ + if(Ext.isArray(el)){ + for(var i = 0, len = el.length; i < len; i++) { + this.unregister(el[i]); + } + }else{ + el = Ext.get(el); + delete els[el.id]; + } + }, + + + vthresh : 25, + + hthresh : 25, + + + increment : 100, + + + frequency : 500, + + + animate: true, + + + animDuration: .4, + + + refreshCache : function(){ + for(var id in els){ + if(typeof els[id] == 'object'){ + els[id]._region = els[id].getRegion(); + } + } + } + }; +}(); + +Ext.dd.Registry = function(){ + var elements = {}; + var handles = {}; + var autoIdSeed = 0; + + var getId = function(el, autogen){ + if(typeof el == "string"){ + return el; + } + var id = el.id; + if(!id && autogen !== false){ + id = "extdd-" + (++autoIdSeed); + el.id = id; + } + return id; + }; + + return { + + register : function(el, data){ + data = data || {}; + if(typeof el == "string"){ + el = document.getElementById(el); + } + data.ddel = el; + elements[getId(el)] = data; + if(data.isHandle !== false){ + handles[data.ddel.id] = data; + } + if(data.handles){ + var hs = data.handles; + for(var i = 0, len = hs.length; i < len; i++){ + handles[getId(hs[i])] = data; + } + } + }, + + + unregister : function(el){ + var id = getId(el, false); + var data = elements[id]; + if(data){ + delete elements[id]; + if(data.handles){ + var hs = data.handles; + for(var i = 0, len = hs.length; i < len; i++){ + delete handles[getId(hs[i], false)]; + } + } + } + }, + + + getHandle : function(id){ + if(typeof id != "string"){ + id = id.id; + } + return handles[id]; + }, + + + getHandleFromEvent : function(e){ + var t = Ext.lib.Event.getTarget(e); + return t ? handles[t.id] : null; + }, + + + getTarget : function(id){ + if(typeof id != "string"){ + id = id.id; + } + return elements[id]; + }, + + + getTargetFromEvent : function(e){ + var t = Ext.lib.Event.getTarget(e); + return t ? elements[t.id] || handles[t.id] : null; + } + }; +}(); + +Ext.dd.StatusProxy = function(config){ + Ext.apply(this, config); + this.id = this.id || Ext.id(); + this.el = new Ext.Layer({ + dh: { + id: this.id, tag: "div", cls: "x-dd-drag-proxy "+this.dropNotAllowed, children: [ + {tag: "div", cls: "x-dd-drop-icon"}, + {tag: "div", cls: "x-dd-drag-ghost"} + ] + }, + shadow: !config || config.shadow !== false + }); + this.ghost = Ext.get(this.el.dom.childNodes[1]); + this.dropStatus = this.dropNotAllowed; +}; + +Ext.dd.StatusProxy.prototype = { + + dropAllowed : "x-dd-drop-ok", + + dropNotAllowed : "x-dd-drop-nodrop", + + + setStatus : function(cssClass){ + cssClass = cssClass || this.dropNotAllowed; + if(this.dropStatus != cssClass){ + this.el.replaceClass(this.dropStatus, cssClass); + this.dropStatus = cssClass; + } + }, + + + reset : function(clearGhost){ + this.el.dom.className = "x-dd-drag-proxy " + this.dropNotAllowed; + this.dropStatus = this.dropNotAllowed; + if(clearGhost){ + this.ghost.update(""); + } + }, + + + update : function(html){ + if(typeof html == "string"){ + this.ghost.update(html); + }else{ + this.ghost.update(""); + html.style.margin = "0"; + this.ghost.dom.appendChild(html); + } + }, + + + getEl : function(){ + return this.el; + }, + + + getGhost : function(){ + return this.ghost; + }, + + + hide : function(clear){ + this.el.hide(); + if(clear){ + this.reset(true); + } + }, + + + stop : function(){ + if(this.anim && this.anim.isAnimated && this.anim.isAnimated()){ + this.anim.stop(); + } + }, + + + show : function(){ + this.el.show(); + }, + + + sync : function(){ + this.el.sync(); + }, + + + repair : function(xy, callback, scope){ + this.callback = callback; + this.scope = scope; + if(xy && this.animRepair !== false){ + this.el.addClass("x-dd-drag-repair"); + this.el.hideUnders(true); + this.anim = this.el.shift({ + duration: this.repairDuration || .5, + easing: 'easeOut', + xy: xy, + stopFx: true, + callback: this.afterRepair, + scope: this + }); + }else{ + this.afterRepair(); + } + }, + + + afterRepair : function(){ + this.hide(true); + if(typeof this.callback == "function"){ + this.callback.call(this.scope || this); + } + this.callback = null; + this.scope = null; + } +}; + +Ext.dd.DragSource = function(el, config){ + this.el = Ext.get(el); + if(!this.dragData){ + this.dragData = {}; + } + + Ext.apply(this, config); + + if(!this.proxy){ + this.proxy = new Ext.dd.StatusProxy(); + } + Ext.dd.DragSource.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, + {dragElId : this.proxy.id, resizeFrame: false, isTarget: false, scroll: this.scroll === true}); + + this.dragging = false; +}; + +Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { + + + dropAllowed : "x-dd-drop-ok", + + dropNotAllowed : "x-dd-drop-nodrop", + + + getDragData : function(e){ + return this.dragData; + }, + + + onDragEnter : function(e, id){ + var target = Ext.dd.DragDropMgr.getDDById(id); + this.cachedTarget = target; + if(this.beforeDragEnter(target, e, id) !== false){ + if(target.isNotifyTarget){ + var status = target.notifyEnter(this, e, this.dragData); + this.proxy.setStatus(status); + }else{ + this.proxy.setStatus(this.dropAllowed); + } + + if(this.afterDragEnter){ + + this.afterDragEnter(target, e, id); + } + } + }, + + + beforeDragEnter : function(target, e, id){ + return true; + }, + + + alignElWithMouse: function() { + Ext.dd.DragSource.superclass.alignElWithMouse.apply(this, arguments); + this.proxy.sync(); + }, + + + onDragOver : function(e, id){ + var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); + if(this.beforeDragOver(target, e, id) !== false){ + if(target.isNotifyTarget){ + var status = target.notifyOver(this, e, this.dragData); + this.proxy.setStatus(status); + } + + if(this.afterDragOver){ + + this.afterDragOver(target, e, id); + } + } + }, + + + beforeDragOver : function(target, e, id){ + return true; + }, + + + onDragOut : function(e, id){ + var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); + if(this.beforeDragOut(target, e, id) !== false){ + if(target.isNotifyTarget){ + target.notifyOut(this, e, this.dragData); + } + this.proxy.reset(); + if(this.afterDragOut){ + + this.afterDragOut(target, e, id); + } + } + this.cachedTarget = null; + }, + + + beforeDragOut : function(target, e, id){ + return true; + }, + + + onDragDrop : function(e, id){ + var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); + if(this.beforeDragDrop(target, e, id) !== false){ + if(target.isNotifyTarget){ + if(target.notifyDrop(this, e, this.dragData)){ + this.onValidDrop(target, e, id); + }else{ + this.onInvalidDrop(target, e, id); + } + }else{ + this.onValidDrop(target, e, id); + } + + if(this.afterDragDrop){ + + this.afterDragDrop(target, e, id); + } + } + delete this.cachedTarget; + }, + + + beforeDragDrop : function(target, e, id){ + return true; + }, + + + onValidDrop : function(target, e, id){ + this.hideProxy(); + if(this.afterValidDrop){ + + this.afterValidDrop(target, e, id); + } + }, + + + getRepairXY : function(e, data){ + return this.el.getXY(); + }, + + + onInvalidDrop : function(target, e, id){ + this.beforeInvalidDrop(target, e, id); + if(this.cachedTarget){ + if(this.cachedTarget.isNotifyTarget){ + this.cachedTarget.notifyOut(this, e, this.dragData); + } + this.cacheTarget = null; + } + this.proxy.repair(this.getRepairXY(e, this.dragData), this.afterRepair, this); + + if(this.afterInvalidDrop){ + + this.afterInvalidDrop(e, id); + } + }, + + + afterRepair : function(){ + if(Ext.enableFx){ + this.el.highlight(this.hlColor || "c3daf9"); + } + this.dragging = false; + }, + + + beforeInvalidDrop : function(target, e, id){ + return true; + }, + + + handleMouseDown : function(e){ + if(this.dragging) { + return; + } + var data = this.getDragData(e); + if(data && this.onBeforeDrag(data, e) !== false){ + this.dragData = data; + this.proxy.stop(); + Ext.dd.DragSource.superclass.handleMouseDown.apply(this, arguments); + } + }, + + + onBeforeDrag : function(data, e){ + return true; + }, + + + onStartDrag : Ext.emptyFn, + + + startDrag : function(x, y){ + this.proxy.reset(); + this.dragging = true; + this.proxy.update(""); + this.onInitDrag(x, y); + this.proxy.show(); + }, + + + onInitDrag : function(x, y){ + var clone = this.el.dom.cloneNode(true); + clone.id = Ext.id(); + this.proxy.update(clone); + this.onStartDrag(x, y); + return true; + }, + + + getProxy : function(){ + return this.proxy; + }, + + + hideProxy : function(){ + this.proxy.hide(); + this.proxy.reset(true); + this.dragging = false; + }, + + + triggerCacheRefresh : function(){ + Ext.dd.DDM.refreshCache(this.groups); + }, + + + b4EndDrag: function(e) { + }, + + + endDrag : function(e){ + this.onEndDrag(this.dragData, e); + }, + + + onEndDrag : function(data, e){ + }, + + + autoOffset : function(x, y) { + this.setDelta(-12, -20); + } +}); + +Ext.dd.DropTarget = function(el, config){ + this.el = Ext.get(el); + + Ext.apply(this, config); + + if(this.containerScroll){ + Ext.dd.ScrollManager.register(this.el); + } + + Ext.dd.DropTarget.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, + {isTarget: true}); + +}; + +Ext.extend(Ext.dd.DropTarget, Ext.dd.DDTarget, { + + + + dropAllowed : "x-dd-drop-ok", + + dropNotAllowed : "x-dd-drop-nodrop", + + + isTarget : true, + + + isNotifyTarget : true, + + + notifyEnter : function(dd, e, data){ + if(this.overClass){ + this.el.addClass(this.overClass); + } + return this.dropAllowed; + }, + + + notifyOver : function(dd, e, data){ + return this.dropAllowed; + }, + + + notifyOut : function(dd, e, data){ + if(this.overClass){ + this.el.removeClass(this.overClass); + } + }, + + + notifyDrop : function(dd, e, data){ + return false; + } +}); + +Ext.dd.DragZone = function(el, config){ + Ext.dd.DragZone.superclass.constructor.call(this, el, config); + if(this.containerScroll){ + Ext.dd.ScrollManager.register(this.el); + } +}; + +Ext.extend(Ext.dd.DragZone, Ext.dd.DragSource, { + + + + + getDragData : function(e){ + return Ext.dd.Registry.getHandleFromEvent(e); + }, + + + onInitDrag : function(x, y){ + this.proxy.update(this.dragData.ddel.cloneNode(true)); + this.onStartDrag(x, y); + return true; + }, + + + afterRepair : function(){ + if(Ext.enableFx){ + Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9"); + } + this.dragging = false; + }, + + + getRepairXY : function(e){ + return Ext.Element.fly(this.dragData.ddel).getXY(); + } +}); + +Ext.dd.DropZone = function(el, config){ + Ext.dd.DropZone.superclass.constructor.call(this, el, config); +}; + +Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, { + + getTargetFromEvent : function(e){ + return Ext.dd.Registry.getTargetFromEvent(e); + }, + + + onNodeEnter : function(n, dd, e, data){ + + }, + + + onNodeOver : function(n, dd, e, data){ + return this.dropAllowed; + }, + + + onNodeOut : function(n, dd, e, data){ + + }, + + + onNodeDrop : function(n, dd, e, data){ + return false; + }, + + + onContainerOver : function(dd, e, data){ + return this.dropNotAllowed; + }, + + + onContainerDrop : function(dd, e, data){ + return false; + }, + + + notifyEnter : function(dd, e, data){ + return this.dropNotAllowed; + }, + + + notifyOver : function(dd, e, data){ + var n = this.getTargetFromEvent(e); + if(!n){ + if(this.lastOverNode){ + this.onNodeOut(this.lastOverNode, dd, e, data); + this.lastOverNode = null; + } + return this.onContainerOver(dd, e, data); + } + if(this.lastOverNode != n){ + if(this.lastOverNode){ + this.onNodeOut(this.lastOverNode, dd, e, data); + } + this.onNodeEnter(n, dd, e, data); + this.lastOverNode = n; + } + return this.onNodeOver(n, dd, e, data); + }, + + + notifyOut : function(dd, e, data){ + if(this.lastOverNode){ + this.onNodeOut(this.lastOverNode, dd, e, data); + this.lastOverNode = null; + } + }, + + + notifyDrop : function(dd, e, data){ + if(this.lastOverNode){ + this.onNodeOut(this.lastOverNode, dd, e, data); + this.lastOverNode = null; + } + var n = this.getTargetFromEvent(e); + return n ? + this.onNodeDrop(n, dd, e, data) : + this.onContainerDrop(dd, e, data); + }, + + + triggerCacheRefresh : function(){ + Ext.dd.DDM.refreshCache(this.groups); + } +}); + + +Ext.data.SortTypes = { + + none : function(s){ + return s; + }, + + + stripTagsRE : /<\/?[^>]+>/gi, + + + asText : function(s){ + return String(s).replace(this.stripTagsRE, ""); + }, + + + asUCText : function(s){ + return String(s).toUpperCase().replace(this.stripTagsRE, ""); + }, + + + asUCString : function(s) { + return String(s).toUpperCase(); + }, + + + asDate : function(s) { + if(!s){ + return 0; + } + if(Ext.isDate(s)){ + return s.getTime(); + } + return Date.parse(String(s)); + }, + + + asFloat : function(s) { + var val = parseFloat(String(s).replace(/,/g, "")); + if(isNaN(val)) val = 0; + return val; + }, + + + asInt : function(s) { + var val = parseInt(String(s).replace(/,/g, "")); + if(isNaN(val)) val = 0; + return val; + } +}; + +Ext.data.Record = function(data, id){ + this.id = (id || id === 0) ? id : ++Ext.data.Record.AUTO_ID; + this.data = data; +}; + + +Ext.data.Record.create = function(o){ + var f = Ext.extend(Ext.data.Record, {}); + var p = f.prototype; + p.fields = new Ext.util.MixedCollection(false, function(field){ + return field.name; + }); + for(var i = 0, len = o.length; i < len; i++){ + p.fields.add(new Ext.data.Field(o[i])); + } + f.getField = function(name){ + return p.fields.get(name); + }; + return f; +}; + +Ext.data.Record.AUTO_ID = 1000; +Ext.data.Record.EDIT = 'edit'; +Ext.data.Record.REJECT = 'reject'; +Ext.data.Record.COMMIT = 'commit'; + +Ext.data.Record.prototype = { + + + + dirty : false, + editing : false, + error: null, + + modified: null, + + join : function(store){ + this.store = store; + }, + + + set : function(name, value){ + if(String(this.data[name]) == String(value)){ + return; + } + this.dirty = true; + if(!this.modified){ + this.modified = {}; + } + if(typeof this.modified[name] == 'undefined'){ + this.modified[name] = this.data[name]; + } + this.data[name] = value; + if(!this.editing && this.store){ + this.store.afterEdit(this); + } + }, + + + get : function(name){ + return this.data[name]; + }, + + + beginEdit : function(){ + this.editing = true; + this.modified = {}; + }, + + + cancelEdit : function(){ + this.editing = false; + delete this.modified; + }, + + + endEdit : function(){ + this.editing = false; + if(this.dirty && this.store){ + this.store.afterEdit(this); + } + }, + + + reject : function(silent){ + var m = this.modified; + for(var n in m){ + if(typeof m[n] != "function"){ + this.data[n] = m[n]; + } + } + this.dirty = false; + delete this.modified; + this.editing = false; + if(this.store && silent !== true){ + this.store.afterReject(this); + } + }, + + + commit : function(silent){ + this.dirty = false; + delete this.modified; + this.editing = false; + if(this.store && silent !== true){ + this.store.afterCommit(this); + } + }, + + + getChanges : function(){ + var m = this.modified, cs = {}; + for(var n in m){ + if(m.hasOwnProperty(n)){ + cs[n] = this.data[n]; + } + } + return cs; + }, + + hasError : function(){ + return this.error != null; + }, + + clearError : function(){ + this.error = null; + }, + + + copy : function(newId) { + return new this.constructor(Ext.apply({}, this.data), newId || this.id); + }, + + + isModified : function(fieldName){ + return this.modified && this.modified.hasOwnProperty(fieldName); + } +}; + +Ext.StoreMgr = Ext.apply(new Ext.util.MixedCollection(), { + + + + register : function(){ + for(var i = 0, s; s = arguments[i]; i++){ + this.add(s); + } + }, + + + unregister : function(){ + for(var i = 0, s; s = arguments[i]; i++){ + this.remove(this.lookup(s)); + } + }, + + + lookup : function(id){ + return typeof id == "object" ? id : this.get(id); + }, + + getKey : function(o){ + return o.storeId || o.id; + } +}); + +Ext.data.Store = function(config){ + this.data = new Ext.util.MixedCollection(false); + this.data.getKey = function(o){ + return o.id; + }; + + this.baseParams = {}; + this.paramNames = { + "start" : "start", + "limit" : "limit", + "sort" : "sort", + "dir" : "dir" + }; + + if(config && config.data){ + this.inlineData = config.data; + delete config.data; + } + + Ext.apply(this, config); + + if(this.url && !this.proxy){ + this.proxy = new Ext.data.HttpProxy({url: this.url}); + } + + if(this.reader){ if(!this.recordType){ + this.recordType = this.reader.recordType; + } + if(this.reader.onMetaChange){ + this.reader.onMetaChange = this.onMetaChange.createDelegate(this); + } + } + + if(this.recordType){ + this.fields = this.recordType.prototype.fields; + } + this.modified = []; + + this.addEvents( + + 'datachanged', + + 'metachange', + + 'add', + + 'remove', + + 'update', + + 'clear', + + 'beforeload', + + 'load', + + 'loadexception' + ); + + if(this.proxy){ + this.relayEvents(this.proxy, ["loadexception"]); + } + + this.sortToggle = {}; + if(this.sortInfo){ + this.setDefaultSort(this.sortInfo.field, this.sortInfo.direction); + } + + Ext.data.Store.superclass.constructor.call(this); + + if(this.storeId || this.id){ + Ext.StoreMgr.register(this); + } + if(this.inlineData){ + this.loadData(this.inlineData); + delete this.inlineData; + }else if(this.autoLoad){ + this.load.defer(10, this, [ + typeof this.autoLoad == 'object' ? + this.autoLoad : undefined]); + } +}; +Ext.extend(Ext.data.Store, Ext.util.Observable, { + + + + + + + + + + remoteSort : false, + + + pruneModifiedRecords : false, + + + lastOptions : null, + + destroy : function(){ + if(this.id){ + Ext.StoreMgr.unregister(this); + } + this.data = null; + this.purgeListeners(); + }, + + + add : function(records){ + records = [].concat(records); + if(records.length < 1){ + return; + } + for(var i = 0, len = records.length; i < len; i++){ + records[i].join(this); + } + var index = this.data.length; + this.data.addAll(records); + if(this.snapshot){ + this.snapshot.addAll(records); + } + this.fireEvent("add", this, records, index); + }, + + + addSorted : function(record){ + var index = this.findInsertIndex(record); + this.insert(index, record); + }, + + + remove : function(record){ + var index = this.data.indexOf(record); + this.data.removeAt(index); + if(this.pruneModifiedRecords){ + this.modified.remove(record); + } + if(this.snapshot){ + this.snapshot.remove(record); + } + this.fireEvent("remove", this, record, index); + }, + + + removeAll : function(){ + this.data.clear(); + if(this.snapshot){ + this.snapshot.clear(); + } + if(this.pruneModifiedRecords){ + this.modified = []; + } + this.fireEvent("clear", this); + }, + + + insert : function(index, records){ + records = [].concat(records); + for(var i = 0, len = records.length; i < len; i++){ + this.data.insert(index, records[i]); + records[i].join(this); + } + this.fireEvent("add", this, records, index); + }, + + + indexOf : function(record){ + return this.data.indexOf(record); + }, + + + indexOfId : function(id){ + return this.data.indexOfKey(id); + }, + + + getById : function(id){ + return this.data.key(id); + }, + + + getAt : function(index){ + return this.data.itemAt(index); + }, + + + getRange : function(start, end){ + return this.data.getRange(start, end); + }, + + storeOptions : function(o){ + o = Ext.apply({}, o); + delete o.callback; + delete o.scope; + this.lastOptions = o; + }, + + + load : function(options){ + options = options || {}; + if(this.fireEvent("beforeload", this, options) !== false){ + this.storeOptions(options); + var p = Ext.apply(options.params || {}, this.baseParams); + if(this.sortInfo && this.remoteSort){ + var pn = this.paramNames; + p[pn["sort"]] = this.sortInfo.field; + p[pn["dir"]] = this.sortInfo.direction; + } + this.proxy.load(p, this.reader, this.loadRecords, this, options); + return true; + } else { + return false; + } + }, + + + reload : function(options){ + this.load(Ext.applyIf(options||{}, this.lastOptions)); + }, + + loadRecords : function(o, options, success){ + if(!o || success === false){ + if(success !== false){ + this.fireEvent("load", this, [], options); + } + if(options.callback){ + options.callback.call(options.scope || this, [], options, false); + } + return; + } + var r = o.records, t = o.totalRecords || r.length; + if(!options || options.add !== true){ + if(this.pruneModifiedRecords){ + this.modified = []; + } + for(var i = 0, len = r.length; i < len; i++){ + r[i].join(this); + } + if(this.snapshot){ + this.data = this.snapshot; + delete this.snapshot; + } + this.data.clear(); + this.data.addAll(r); + this.totalLength = t; + this.applySort(); + this.fireEvent("datachanged", this); + }else{ + this.totalLength = Math.max(t, this.data.length+r.length); + this.add(r); + } + this.fireEvent("load", this, r, options); + if(options.callback){ + options.callback.call(options.scope || this, r, options, true); + } + }, + + + loadData : function(o, append){ + var r = this.reader.readRecords(o); + this.loadRecords(r, {add: append}, true); + }, + + + getCount : function(){ + return this.data.length || 0; + }, + + + getTotalCount : function(){ + return this.totalLength || 0; + }, + + + getSortState : function(){ + return this.sortInfo; + }, + + applySort : function(){ + if(this.sortInfo && !this.remoteSort){ + var s = this.sortInfo, f = s.field; + this.sortData(f, s.direction); + } + }, + + sortData : function(f, direction){ + direction = direction || 'ASC'; + var st = this.fields.get(f).sortType; + var fn = function(r1, r2){ + var v1 = st(r1.data[f]), v2 = st(r2.data[f]); + return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); + }; + this.data.sort(direction, fn); + if(this.snapshot && this.snapshot != this.data){ + this.snapshot.sort(direction, fn); + } + }, + + + setDefaultSort : function(field, dir){ + dir = dir ? dir.toUpperCase() : "ASC"; + this.sortInfo = {field: field, direction: dir}; + this.sortToggle[field] = dir; + }, + + + sort : function(fieldName, dir){ + var f = this.fields.get(fieldName); + if(!f){ + return false; + } + if(!dir){ + if(this.sortInfo && this.sortInfo.field == f.name){ dir = (this.sortToggle[f.name] || "ASC").toggle("ASC", "DESC"); + }else{ + dir = f.sortDir; + } + } + var st = (this.sortToggle) ? this.sortToggle[f.name] : null; + var si = (this.sortInfo) ? this.sortInfo : null; + + this.sortToggle[f.name] = dir; + this.sortInfo = {field: f.name, direction: dir}; + if(!this.remoteSort){ + this.applySort(); + this.fireEvent("datachanged", this); + }else{ + if (!this.load(this.lastOptions)) { + if (st) { + this.sortToggle[f.name] = st; + } + if (si) { + this.sortInfo = si; + } + } + } + }, + + + each : function(fn, scope){ + this.data.each(fn, scope); + }, + + + getModifiedRecords : function(){ + return this.modified; + }, + + createFilterFn : function(property, value, anyMatch, caseSensitive){ + if(Ext.isEmpty(value, false)){ + return false; + } + value = this.data.createValueMatcher(value, anyMatch, caseSensitive); + return function(r){ + return value.test(r.data[property]); + }; + }, + + + sum : function(property, start, end){ + var rs = this.data.items, v = 0; + start = start || 0; + end = (end || end === 0) ? end : rs.length-1; + + for(var i = start; i <= end; i++){ + v += (rs[i].data[property] || 0); + } + return v; + }, + + + filter : function(property, value, anyMatch, caseSensitive){ + var fn = this.createFilterFn(property, value, anyMatch, caseSensitive); + return fn ? this.filterBy(fn) : this.clearFilter(); + }, + + + filterBy : function(fn, scope){ + this.snapshot = this.snapshot || this.data; + this.data = this.queryBy(fn, scope||this); + this.fireEvent("datachanged", this); + }, + + + query : function(property, value, anyMatch, caseSensitive){ + var fn = this.createFilterFn(property, value, anyMatch, caseSensitive); + return fn ? this.queryBy(fn) : this.data.clone(); + }, + + + queryBy : function(fn, scope){ + var data = this.snapshot || this.data; + return data.filterBy(fn, scope||this); + }, + + + find : function(property, value, start, anyMatch, caseSensitive){ + var fn = this.createFilterFn(property, value, anyMatch, caseSensitive); + return fn ? this.data.findIndexBy(fn, null, start) : -1; + }, + + + findBy : function(fn, scope, start){ + return this.data.findIndexBy(fn, scope, start); + }, + + + collect : function(dataIndex, allowNull, bypassFilter){ + var d = (bypassFilter === true && this.snapshot) ? + this.snapshot.items : this.data.items; + var v, sv, r = [], l = {}; + for(var i = 0, len = d.length; i < len; i++){ + v = d[i].data[dataIndex]; + sv = String(v); + if((allowNull || !Ext.isEmpty(v)) && !l[sv]){ + l[sv] = true; + r[r.length] = v; + } + } + return r; + }, + + + clearFilter : function(suppressEvent){ + if(this.isFiltered()){ + this.data = this.snapshot; + delete this.snapshot; + if(suppressEvent !== true){ + this.fireEvent("datachanged", this); + } + } + }, + + + isFiltered : function(){ + return this.snapshot && this.snapshot != this.data; + }, + + afterEdit : function(record){ + if(this.modified.indexOf(record) == -1){ + this.modified.push(record); + } + this.fireEvent("update", this, record, Ext.data.Record.EDIT); + }, + + afterReject : function(record){ + this.modified.remove(record); + this.fireEvent("update", this, record, Ext.data.Record.REJECT); + }, + + afterCommit : function(record){ + this.modified.remove(record); + this.fireEvent("update", this, record, Ext.data.Record.COMMIT); + }, + + + commitChanges : function(){ + var m = this.modified.slice(0); + this.modified = []; + for(var i = 0, len = m.length; i < len; i++){ + m[i].commit(); + } + }, + + + rejectChanges : function(){ + var m = this.modified.slice(0); + this.modified = []; + for(var i = 0, len = m.length; i < len; i++){ + m[i].reject(); + } + }, + + onMetaChange : function(meta, rtype, o){ + this.recordType = rtype; + this.fields = rtype.prototype.fields; + delete this.snapshot; + this.sortInfo = meta.sortInfo; + this.modified = []; + this.fireEvent('metachange', this, this.reader.meta); + }, + + findInsertIndex : function(record){ + this.suspendEvents(); + var data = this.data.clone(); + this.data.add(record); + this.applySort(); + var index = this.data.indexOf(record); + this.data = data; + this.resumeEvents(); + return index; + } +}); + +Ext.data.SimpleStore = function(config){ + Ext.data.SimpleStore.superclass.constructor.call(this, Ext.apply(config, { + reader: new Ext.data.ArrayReader({ + id: config.id + }, + Ext.data.Record.create(config.fields) + ) + })); +}; +Ext.extend(Ext.data.SimpleStore, Ext.data.Store, { + loadData : function(data, append){ + if(this.expandData === true){ + var r = []; + for(var i = 0, len = data.length; i < len; i++){ + r[r.length] = [data[i]]; + } + data = r; + } + Ext.data.SimpleStore.superclass.loadData.call(this, data, append); + } +}); + +Ext.data.JsonStore = function(c){ + Ext.data.JsonStore.superclass.constructor.call(this, Ext.apply(c, { + proxy: !c.data ? new Ext.data.HttpProxy({url: c.url}) : undefined, + reader: new Ext.data.JsonReader(c, c.fields) + })); +}; +Ext.extend(Ext.data.JsonStore, Ext.data.Store); + + + +Ext.data.Field = function(config){ + if(typeof config == "string"){ + config = {name: config}; + } + Ext.apply(this, config); + + if(!this.type){ + this.type = "auto"; + } + + var st = Ext.data.SortTypes; + + if(typeof this.sortType == "string"){ + this.sortType = st[this.sortType]; + } + + + if(!this.sortType){ + switch(this.type){ + case "string": + this.sortType = st.asUCString; + break; + case "date": + this.sortType = st.asDate; + break; + default: + this.sortType = st.none; + } + } + + + var stripRe = /[\$,%]/g; + + + + if(!this.convert){ + var cv, dateFormat = this.dateFormat; + switch(this.type){ + case "": + case "auto": + case undefined: + cv = function(v){ return v; }; + break; + case "string": + cv = function(v){ return (v === undefined || v === null) ? '' : String(v); }; + break; + case "int": + cv = function(v){ + return v !== undefined && v !== null && v !== '' ? + parseInt(String(v).replace(stripRe, ""), 10) : ''; + }; + break; + case "float": + cv = function(v){ + return v !== undefined && v !== null && v !== '' ? + parseFloat(String(v).replace(stripRe, ""), 10) : ''; + }; + break; + case "bool": + case "boolean": + cv = function(v){ return v === true || v === "true" || v == 1; }; + break; + case "date": + cv = function(v){ + if(!v){ + return ''; + } + if(Ext.isDate(v)){ + return v; + } + if(dateFormat){ + if(dateFormat == "timestamp"){ + return new Date(v*1000); + } + if(dateFormat == "time"){ + return new Date(parseInt(v, 10)); + } + return Date.parseDate(v, dateFormat); + } + var parsed = Date.parse(v); + return parsed ? new Date(parsed) : null; + }; + break; + + } + this.convert = cv; + } +}; + +Ext.data.Field.prototype = { + dateFormat: null, + defaultValue: "", + mapping: null, + sortType : null, + sortDir : "ASC" +}; + +Ext.data.DataReader = function(meta, recordType){ + + this.meta = meta; + this.recordType = Ext.isArray(recordType) ? + Ext.data.Record.create(recordType) : recordType; +}; + +Ext.data.DataReader.prototype = { + +}; + +Ext.data.DataProxy = function(){ + this.addEvents( + + 'beforeload', + + 'load' + ); + Ext.data.DataProxy.superclass.constructor.call(this); +}; + +Ext.extend(Ext.data.DataProxy, Ext.util.Observable); + +Ext.data.MemoryProxy = function(data){ + Ext.data.MemoryProxy.superclass.constructor.call(this); + this.data = data; +}; + +Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, { + + + + load : function(params, reader, callback, scope, arg){ + params = params || {}; + var result; + try { + result = reader.readRecords(this.data); + }catch(e){ + this.fireEvent("loadexception", this, arg, null, e); + callback.call(scope, null, arg, false); + return; + } + callback.call(scope, result, arg, true); + }, + + + update : function(params, records){ + + } +}); + +Ext.data.HttpProxy = function(conn){ + Ext.data.HttpProxy.superclass.constructor.call(this); + + this.conn = conn; + this.useAjax = !conn || !conn.events; + + +}; + +Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { + + getConnection : function(){ + return this.useAjax ? Ext.Ajax : this.conn; + }, + + + load : function(params, reader, callback, scope, arg){ + if(this.fireEvent("beforeload", this, params) !== false){ + var o = { + params : params || {}, + request: { + callback : callback, + scope : scope, + arg : arg + }, + reader: reader, + callback : this.loadResponse, + scope: this + }; + if(this.useAjax){ + Ext.applyIf(o, this.conn); + if(this.activeRequest){ + Ext.Ajax.abort(this.activeRequest); + } + this.activeRequest = Ext.Ajax.request(o); + }else{ + this.conn.request(o); + } + }else{ + callback.call(scope||this, null, arg, false); + } + }, + + + loadResponse : function(o, success, response){ + delete this.activeRequest; + if(!success){ + this.fireEvent("loadexception", this, o, response); + o.request.callback.call(o.request.scope, null, o.request.arg, false); + return; + } + var result; + try { + result = o.reader.read(response); + }catch(e){ + this.fireEvent("loadexception", this, o, response, e); + o.request.callback.call(o.request.scope, null, o.request.arg, false); + return; + } + this.fireEvent("load", this, o, o.request.arg); + o.request.callback.call(o.request.scope, result, o.request.arg, true); + }, + + + update : function(dataSet){ + + }, + + + updateResponse : function(dataSet){ + + } +}); + +Ext.data.ScriptTagProxy = function(config){ + Ext.data.ScriptTagProxy.superclass.constructor.call(this); + Ext.apply(this, config); + this.head = document.getElementsByTagName("head")[0]; + + +}; + +Ext.data.ScriptTagProxy.TRANS_ID = 1000; + +Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { + + + timeout : 30000, + + callbackParam : "callback", + + nocache : true, + + + load : function(params, reader, callback, scope, arg){ + if(this.fireEvent("beforeload", this, params) !== false){ + + var p = Ext.urlEncode(Ext.apply(params, this.extraParams)); + + var url = this.url; + url += (url.indexOf("?") != -1 ? "&" : "?") + p; + if(this.nocache){ + url += "&_dc=" + (new Date().getTime()); + } + var transId = ++Ext.data.ScriptTagProxy.TRANS_ID; + var trans = { + id : transId, + cb : "stcCallback"+transId, + scriptId : "stcScript"+transId, + params : params, + arg : arg, + url : url, + callback : callback, + scope : scope, + reader : reader + }; + var conn = this; + + window[trans.cb] = function(o){ + conn.handleResponse(o, trans); + }; + + url += String.format("&{0}={1}", this.callbackParam, trans.cb); + + if(this.autoAbort !== false){ + this.abort(); + } + + trans.timeoutId = this.handleFailure.defer(this.timeout, this, [trans]); + + var script = document.createElement("script"); + script.setAttribute("src", url); + script.setAttribute("type", "text/javascript"); + script.setAttribute("id", trans.scriptId); + this.head.appendChild(script); + + this.trans = trans; + }else{ + callback.call(scope||this, null, arg, false); + } + }, + + + isLoading : function(){ + return this.trans ? true : false; + }, + + + abort : function(){ + if(this.isLoading()){ + this.destroyTrans(this.trans); + } + }, + + + destroyTrans : function(trans, isLoaded){ + this.head.removeChild(document.getElementById(trans.scriptId)); + clearTimeout(trans.timeoutId); + if(isLoaded){ + window[trans.cb] = undefined; + try{ + delete window[trans.cb]; + }catch(e){} + }else{ + + window[trans.cb] = function(){ + window[trans.cb] = undefined; + try{ + delete window[trans.cb]; + }catch(e){} + }; + } + }, + + + handleResponse : function(o, trans){ + this.trans = false; + this.destroyTrans(trans, true); + var result; + try { + result = trans.reader.readRecords(o); + }catch(e){ + this.fireEvent("loadexception", this, o, trans.arg, e); + trans.callback.call(trans.scope||window, null, trans.arg, false); + return; + } + this.fireEvent("load", this, o, trans.arg); + trans.callback.call(trans.scope||window, result, trans.arg, true); + }, + + + handleFailure : function(trans){ + this.trans = false; + this.destroyTrans(trans, false); + this.fireEvent("loadexception", this, null, trans.arg); + trans.callback.call(trans.scope||window, null, trans.arg, false); + } +}); + +Ext.data.JsonReader = function(meta, recordType){ + meta = meta || {}; + Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType || meta.fields); +}; +Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { + + + read : function(response){ + var json = response.responseText; + var o = eval("("+json+")"); + if(!o) { + throw {message: "JsonReader.read: Json object not found"}; + } + return this.readRecords(o); + }, + + onMetaChange : function(meta, recordType, o){ + + }, + + + simpleAccess: function(obj, subsc) { + return obj[subsc]; + }, + + + getJsonAccessor: function(){ + var re = /[\[\.]/; + return function(expr) { + try { + return(re.test(expr)) + ? new Function("obj", "return obj." + expr) + : function(obj){ + return obj[expr]; + }; + } catch(e){} + return Ext.emptyFn; + }; + }(), + + + readRecords : function(o){ + + this.jsonData = o; + if(o.metaData){ + delete this.ef; + this.meta = o.metaData; + this.recordType = Ext.data.Record.create(o.metaData.fields); + this.onMetaChange(this.meta, this.recordType, o); + } + var s = this.meta, Record = this.recordType, + f = Record.prototype.fields, fi = f.items, fl = f.length; + + if (!this.ef) { + if(s.totalProperty) { + this.getTotal = this.getJsonAccessor(s.totalProperty); + } + if(s.successProperty) { + this.getSuccess = this.getJsonAccessor(s.successProperty); + } + this.getRoot = s.root ? this.getJsonAccessor(s.root) : function(p){return p;}; + if (s.id) { + var g = this.getJsonAccessor(s.id); + this.getId = function(rec) { + var r = g(rec); + return (r === undefined || r === "") ? null : r; + }; + } else { + this.getId = function(){return null;}; + } + this.ef = []; + for(var i = 0; i < fl; i++){ + f = fi[i]; + var map = (f.mapping !== undefined && f.mapping !== null) ? f.mapping : f.name; + this.ef[i] = this.getJsonAccessor(map); + } + } + + var root = this.getRoot(o), c = root.length, totalRecords = c, success = true; + if(s.totalProperty){ + var v = parseInt(this.getTotal(o), 10); + if(!isNaN(v)){ + totalRecords = v; + } + } + if(s.successProperty){ + var v = this.getSuccess(o); + if(v === false || v === 'false'){ + success = false; + } + } + var records = []; + for(var i = 0; i < c; i++){ + var n = root[i]; + var values = {}; + var id = this.getId(n); + for(var j = 0; j < fl; j++){ + f = fi[j]; + var v = this.ef[j](n); + values[f.name] = f.convert((v !== undefined) ? v : f.defaultValue, n); + } + var record = new Record(values, id); + record.json = n; + records[i] = record; + } + return { + success : success, + records : records, + totalRecords : totalRecords + }; + } +}); + +Ext.data.XmlReader = function(meta, recordType){ + meta = meta || {}; + Ext.data.XmlReader.superclass.constructor.call(this, meta, recordType || meta.fields); +}; +Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { + + read : function(response){ + var doc = response.responseXML; + if(!doc) { + throw {message: "XmlReader.read: XML Document not available"}; + } + return this.readRecords(doc); + }, + + + readRecords : function(doc){ + + this.xmlData = doc; + var root = doc.documentElement || doc; + var q = Ext.DomQuery; + var recordType = this.recordType, fields = recordType.prototype.fields; + var sid = this.meta.id; + var totalRecords = 0, success = true; + if(this.meta.totalRecords){ + totalRecords = q.selectNumber(this.meta.totalRecords, root, 0); + } + + if(this.meta.success){ + var sv = q.selectValue(this.meta.success, root, true); + success = sv !== false && sv !== 'false'; + } + var records = []; + var ns = q.select(this.meta.record, root); + for(var i = 0, len = ns.length; i < len; i++) { + var n = ns[i]; + var values = {}; + var id = sid ? q.selectValue(sid, n) : undefined; + for(var j = 0, jlen = fields.length; j < jlen; j++){ + var f = fields.items[j]; + var v = q.selectValue(f.mapping || f.name, n, f.defaultValue); + v = f.convert(v, n); + values[f.name] = v; + } + var record = new recordType(values, id); + record.node = n; + records[records.length] = record; + } + + return { + success : success, + records : records, + totalRecords : totalRecords || records.length + }; + } +}); + +Ext.data.ArrayReader = Ext.extend(Ext.data.JsonReader, { + + readRecords : function(o){ + var sid = this.meta ? this.meta.id : null; + var recordType = this.recordType, fields = recordType.prototype.fields; + var records = []; + var root = o; + for(var i = 0; i < root.length; i++){ + var n = root[i]; + var values = {}; + var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); + for(var j = 0, jlen = fields.length; j < jlen; j++){ + var f = fields.items[j]; + var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; + var v = n[k] !== undefined ? n[k] : f.defaultValue; + v = f.convert(v, n); + values[f.name] = v; + } + var record = new recordType(values, id); + record.json = n; + records[records.length] = record; + } + return { + records : records, + totalRecords : records.length + }; + } +}); + +Ext.data.Tree = function(root){ + this.nodeHash = {}; + + this.root = null; + if(root){ + this.setRootNode(root); + } + this.addEvents( + + "append", + + "remove", + + "move", + + "insert", + + "beforeappend", + + "beforeremove", + + "beforemove", + + "beforeinsert" + ); + + Ext.data.Tree.superclass.constructor.call(this); +}; + +Ext.extend(Ext.data.Tree, Ext.util.Observable, { + + pathSeparator: "/", + + + proxyNodeEvent : function(){ + return this.fireEvent.apply(this, arguments); + }, + + + getRootNode : function(){ + return this.root; + }, + + + setRootNode : function(node){ + this.root = node; + node.ownerTree = this; + node.isRoot = true; + this.registerNode(node); + return node; + }, + + + getNodeById : function(id){ + return this.nodeHash[id]; + }, + + + registerNode : function(node){ + this.nodeHash[node.id] = node; + }, + + + unregisterNode : function(node){ + delete this.nodeHash[node.id]; + }, + + toString : function(){ + return "[Tree"+(this.id?" "+this.id:"")+"]"; + } +}); + + +Ext.data.Node = function(attributes){ + + this.attributes = attributes || {}; + this.leaf = this.attributes.leaf; + + this.id = this.attributes.id; + if(!this.id){ + this.id = Ext.id(null, "ynode-"); + this.attributes.id = this.id; + } + + this.childNodes = []; + if(!this.childNodes.indexOf){ + this.childNodes.indexOf = function(o){ + for(var i = 0, len = this.length; i < len; i++){ + if(this[i] == o) return i; + } + return -1; + }; + } + + this.parentNode = null; + + this.firstChild = null; + + this.lastChild = null; + + this.previousSibling = null; + + this.nextSibling = null; + + this.addEvents({ + + "append" : true, + + "remove" : true, + + "move" : true, + + "insert" : true, + + "beforeappend" : true, + + "beforeremove" : true, + + "beforemove" : true, + + "beforeinsert" : true + }); + this.listeners = this.attributes.listeners; + Ext.data.Node.superclass.constructor.call(this); +}; + +Ext.extend(Ext.data.Node, Ext.util.Observable, { + + fireEvent : function(evtName){ + + if(Ext.data.Node.superclass.fireEvent.apply(this, arguments) === false){ + return false; + } + + var ot = this.getOwnerTree(); + if(ot){ + if(ot.proxyNodeEvent.apply(ot, arguments) === false){ + return false; + } + } + return true; + }, + + + isLeaf : function(){ + return this.leaf === true; + }, + + + setFirstChild : function(node){ + this.firstChild = node; + }, + + + setLastChild : function(node){ + this.lastChild = node; + }, + + + + isLast : function(){ + return (!this.parentNode ? true : this.parentNode.lastChild == this); + }, + + + isFirst : function(){ + return (!this.parentNode ? true : this.parentNode.firstChild == this); + }, + + hasChildNodes : function(){ + return !this.isLeaf() && this.childNodes.length > 0; + }, + + + appendChild : function(node){ + var multi = false; + if(Ext.isArray(node)){ + multi = node; + }else if(arguments.length > 1){ + multi = arguments; + } + + if(multi){ + for(var i = 0, len = multi.length; i < len; i++) { + this.appendChild(multi[i]); + } + }else{ + if(this.fireEvent("beforeappend", this.ownerTree, this, node) === false){ + return false; + } + var index = this.childNodes.length; + var oldParent = node.parentNode; + + if(oldParent){ + if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index) === false){ + return false; + } + oldParent.removeChild(node); + } + index = this.childNodes.length; + if(index == 0){ + this.setFirstChild(node); + } + this.childNodes.push(node); + node.parentNode = this; + var ps = this.childNodes[index-1]; + if(ps){ + node.previousSibling = ps; + ps.nextSibling = node; + }else{ + node.previousSibling = null; + } + node.nextSibling = null; + this.setLastChild(node); + node.setOwnerTree(this.getOwnerTree()); + this.fireEvent("append", this.ownerTree, this, node, index); + if(oldParent){ + node.fireEvent("move", this.ownerTree, node, oldParent, this, index); + } + return node; + } + }, + + + removeChild : function(node){ + var index = this.childNodes.indexOf(node); + if(index == -1){ + return false; + } + if(this.fireEvent("beforeremove", this.ownerTree, this, node) === false){ + return false; + } + + + this.childNodes.splice(index, 1); + + + if(node.previousSibling){ + node.previousSibling.nextSibling = node.nextSibling; + } + if(node.nextSibling){ + node.nextSibling.previousSibling = node.previousSibling; + } + + + if(this.firstChild == node){ + this.setFirstChild(node.nextSibling); + } + if(this.lastChild == node){ + this.setLastChild(node.previousSibling); + } + + node.setOwnerTree(null); + + node.parentNode = null; + node.previousSibling = null; + node.nextSibling = null; + this.fireEvent("remove", this.ownerTree, this, node); + return node; + }, + + + insertBefore : function(node, refNode){ + if(!refNode){ + return this.appendChild(node); + } + + if(node == refNode){ + return false; + } + + if(this.fireEvent("beforeinsert", this.ownerTree, this, node, refNode) === false){ + return false; + } + var index = this.childNodes.indexOf(refNode); + var oldParent = node.parentNode; + var refIndex = index; + + + if(oldParent == this && this.childNodes.indexOf(node) < index){ + refIndex--; + } + + + if(oldParent){ + if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index, refNode) === false){ + return false; + } + oldParent.removeChild(node); + } + if(refIndex == 0){ + this.setFirstChild(node); + } + this.childNodes.splice(refIndex, 0, node); + node.parentNode = this; + var ps = this.childNodes[refIndex-1]; + if(ps){ + node.previousSibling = ps; + ps.nextSibling = node; + }else{ + node.previousSibling = null; + } + node.nextSibling = refNode; + refNode.previousSibling = node; + node.setOwnerTree(this.getOwnerTree()); + this.fireEvent("insert", this.ownerTree, this, node, refNode); + if(oldParent){ + node.fireEvent("move", this.ownerTree, node, oldParent, this, refIndex, refNode); + } + return node; + }, + + + remove : function(){ + this.parentNode.removeChild(this); + return this; + }, + + + item : function(index){ + return this.childNodes[index]; + }, + + + replaceChild : function(newChild, oldChild){ + this.insertBefore(newChild, oldChild); + this.removeChild(oldChild); + return oldChild; + }, + + + indexOf : function(child){ + return this.childNodes.indexOf(child); + }, + + + getOwnerTree : function(){ + + if(!this.ownerTree){ + var p = this; + while(p){ + if(p.ownerTree){ + this.ownerTree = p.ownerTree; + break; + } + p = p.parentNode; + } + } + return this.ownerTree; + }, + + + getDepth : function(){ + var depth = 0; + var p = this; + while(p.parentNode){ + ++depth; + p = p.parentNode; + } + return depth; + }, + + + setOwnerTree : function(tree){ + + if(tree != this.ownerTree){ + if(this.ownerTree){ + this.ownerTree.unregisterNode(this); + } + this.ownerTree = tree; + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++) { + cs[i].setOwnerTree(tree); + } + if(tree){ + tree.registerNode(this); + } + } + }, + + + getPath : function(attr){ + attr = attr || "id"; + var p = this.parentNode; + var b = [this.attributes[attr]]; + while(p){ + b.unshift(p.attributes[attr]); + p = p.parentNode; + } + var sep = this.getOwnerTree().pathSeparator; + return sep + b.join(sep); + }, + + + bubble : function(fn, scope, args){ + var p = this; + while(p){ + if(fn.apply(scope || p, args || [p]) === false){ + break; + } + p = p.parentNode; + } + }, + + + cascade : function(fn, scope, args){ + if(fn.apply(scope || this, args || [this]) !== false){ + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++) { + cs[i].cascade(fn, scope, args); + } + } + }, + + + eachChild : function(fn, scope, args){ + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++) { + if(fn.apply(scope || this, args || [cs[i]]) === false){ + break; + } + } + }, + + + findChild : function(attribute, value){ + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++) { + if(cs[i].attributes[attribute] == value){ + return cs[i]; + } + } + return null; + }, + + + findChildBy : function(fn, scope){ + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++) { + if(fn.call(scope||cs[i], cs[i]) === true){ + return cs[i]; + } + } + return null; + }, + + + sort : function(fn, scope){ + var cs = this.childNodes; + var len = cs.length; + if(len > 0){ + var sortFn = scope ? function(){fn.apply(scope, arguments);} : fn; + cs.sort(sortFn); + for(var i = 0; i < len; i++){ + var n = cs[i]; + n.previousSibling = cs[i-1]; + n.nextSibling = cs[i+1]; + if(i == 0){ + this.setFirstChild(n); + } + if(i == len-1){ + this.setLastChild(n); + } + } + } + }, + + + contains : function(node){ + return node.isAncestor(this); + }, + + + isAncestor : function(node){ + var p = this.parentNode; + while(p){ + if(p == node){ + return true; + } + p = p.parentNode; + } + return false; + }, + + toString : function(){ + return "[Node"+(this.id?" "+this.id:"")+"]"; + } +}); + +Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { + + + remoteGroup : false, + + groupOnSort:false, + + + clearGrouping : function(){ + this.groupField = false; + if(this.remoteGroup){ + if(this.baseParams){ + delete this.baseParams.groupBy; + } + this.reload(); + }else{ + this.applySort(); + this.fireEvent('datachanged', this); + } + }, + + + groupBy : function(field, forceRegroup){ + if(this.groupField == field && !forceRegroup){ + return; + } + this.groupField = field; + if(this.remoteGroup){ + if(!this.baseParams){ + this.baseParams = {}; + } + this.baseParams['groupBy'] = field; + } + if(this.groupOnSort){ + this.sort(field); + return; + } + if(this.remoteGroup){ + this.reload(); + }else{ + var si = this.sortInfo || {}; + if(si.field != field){ + this.applySort(); + }else{ + this.sortData(field); + } + this.fireEvent('datachanged', this); + } + }, + + + applySort : function(){ + Ext.data.GroupingStore.superclass.applySort.call(this); + if(!this.groupOnSort && !this.remoteGroup){ + var gs = this.getGroupState(); + if(gs && gs != this.sortInfo.field){ + this.sortData(this.groupField); + } + } + }, + + + applyGrouping : function(alwaysFireChange){ + if(this.groupField !== false){ + this.groupBy(this.groupField, true); + return true; + }else{ + if(alwaysFireChange === true){ + this.fireEvent('datachanged', this); + } + return false; + } + }, + + + getGroupState : function(){ + return this.groupOnSort && this.groupField !== false ? + (this.sortInfo ? this.sortInfo.field : undefined) : this.groupField; + } +}); + +Ext.ComponentMgr = function(){ + var all = new Ext.util.MixedCollection(); + var types = {}; + + return { + + register : function(c){ + all.add(c); + }, + + + unregister : function(c){ + all.remove(c); + }, + + + get : function(id){ + return all.get(id); + }, + + + onAvailable : function(id, fn, scope){ + all.on("add", function(index, o){ + if(o.id == id){ + fn.call(scope || o, o); + all.un("add", fn, scope); + } + }); + }, + + + all : all, + + + registerType : function(xtype, cls){ + types[xtype] = cls; + cls.xtype = xtype; + }, + + create : function(config, defaultType){ + return new types[config.xtype || defaultType](config); + } + }; +}(); + + +Ext.reg = Ext.ComponentMgr.registerType; // this will be called a lot internally, shorthand to keep the bytes down + +Ext.Component = function(config){ + config = config || {}; + if(config.initialConfig){ + if(config.isAction){ this.baseAction = config; + } + config = config.initialConfig; }else if(config.tagName || config.dom || typeof config == "string"){ config = {applyTo: config, id: config.id || config}; + } + + + this.initialConfig = config; + + Ext.apply(this, config); + this.addEvents( + + 'disable', + + 'enable', + + 'beforeshow', + + 'show', + + 'beforehide', + + 'hide', + + 'beforerender', + + 'render', + + 'beforedestroy', + + 'destroy', + + 'beforestaterestore', + + 'staterestore', + + 'beforestatesave', + + 'statesave' + ); + this.getId(); + Ext.ComponentMgr.register(this); + Ext.Component.superclass.constructor.call(this); + + if(this.baseAction){ + this.baseAction.addComponent(this); + } + + this.initComponent(); + + if(this.plugins){ + if(Ext.isArray(this.plugins)){ + for(var i = 0, len = this.plugins.length; i < len; i++){ + this.plugins[i].init(this); + } + }else{ + this.plugins.init(this); + } + } + + if(this.stateful !== false){ + this.initState(config); + } + + if(this.applyTo){ + this.applyToMarkup(this.applyTo); + delete this.applyTo; + }else if(this.renderTo){ + this.render(this.renderTo); + delete this.renderTo; + } +}; + +Ext.Component.AUTO_ID = 1000; + +Ext.extend(Ext.Component, Ext.util.Observable, { + + + + + + + + + + + + + + + + + disabledClass : "x-item-disabled", + + allowDomMove : true, + + autoShow : false, + + hideMode: 'display', + + hideParent: false, + + + + hidden : false, + + disabled : false, + + rendered : false, + + ctype : "Ext.Component", + + actionMode : "el", + + getActionEl : function(){ + return this[this.actionMode]; + }, + + + initComponent : Ext.emptyFn, + + + render : function(container, position){ + if(!this.rendered && this.fireEvent("beforerender", this) !== false){ + if(!container && this.el){ + this.el = Ext.get(this.el); + container = this.el.dom.parentNode; + this.allowDomMove = false; + } + this.container = Ext.get(container); + if(this.ctCls){ + this.container.addClass(this.ctCls); + } + this.rendered = true; + if(position !== undefined){ + if(typeof position == 'number'){ + position = this.container.dom.childNodes[position]; + }else{ + position = Ext.getDom(position); + } + } + this.onRender(this.container, position || null); + if(this.autoShow){ + this.el.removeClass(['x-hidden','x-hide-' + this.hideMode]); + } + if(this.cls){ + this.el.addClass(this.cls); + delete this.cls; + } + if(this.style){ + this.el.applyStyles(this.style); + delete this.style; + } + this.fireEvent("render", this); + this.afterRender(this.container); + if(this.hidden){ + this.hide(); + } + if(this.disabled){ + this.disable(); + } + + this.initStateEvents(); + } + return this; + }, + + initState : function(config){ + if(Ext.state.Manager){ + var state = Ext.state.Manager.get(this.stateId || this.id); + if(state){ + if(this.fireEvent('beforestaterestore', this, state) !== false){ + this.applyState(state); + this.fireEvent('staterestore', this, state); + } + } + } + }, + + initStateEvents : function(){ + if(this.stateEvents){ + for(var i = 0, e; e = this.stateEvents[i]; i++){ + this.on(e, this.saveState, this, {delay:100}); + } + } + }, + + applyState : function(state, config){ + if(state){ + Ext.apply(this, state); + } + }, + + getState : function(){ + return null; + }, + + saveState : function(){ + if(Ext.state.Manager){ + var state = this.getState(); + if(this.fireEvent('beforestatesave', this, state) !== false){ + Ext.state.Manager.set(this.stateId || this.id, state); + this.fireEvent('statesave', this, state); + } + } + }, + + + applyToMarkup : function(el){ + this.allowDomMove = false; + this.el = Ext.get(el); + this.render(this.el.dom.parentNode); + }, + + + addClass : function(cls){ + if(this.el){ + this.el.addClass(cls); + }else{ + this.cls = this.cls ? this.cls + ' ' + cls : cls; + } + }, + + + removeClass : function(cls){ + if(this.el){ + this.el.removeClass(cls); + }else if(this.cls){ + this.cls = this.cls.split(' ').remove(cls).join(' '); + } + }, + + onRender : function(ct, position){ + if(this.autoEl){ + if(typeof this.autoEl == 'string'){ + this.el = document.createElement(this.autoEl); + }else{ + var div = document.createElement('div'); + Ext.DomHelper.overwrite(div, this.autoEl); + this.el = div.firstChild; + } + if (!this.el.id) { + this.el.id = this.getId(); + } + } + if(this.el){ + this.el = Ext.get(this.el); + if(this.allowDomMove !== false){ + ct.dom.insertBefore(this.el.dom, position); + } + if(this.overCls) { + this.el.addClassOnOver(this.overCls); + } + } + }, + + getAutoCreate : function(){ + var cfg = typeof this.autoCreate == "object" ? + this.autoCreate : Ext.apply({}, this.defaultAutoCreate); + if(this.id && !cfg.id){ + cfg.id = this.id; + } + return cfg; + }, + + afterRender : Ext.emptyFn, + + + destroy : function(){ + if(this.fireEvent("beforedestroy", this) !== false){ + this.beforeDestroy(); + if(this.rendered){ + this.el.removeAllListeners(); + this.el.remove(); + if(this.actionMode == "container"){ + this.container.remove(); + } + } + this.onDestroy(); + Ext.ComponentMgr.unregister(this); + this.fireEvent("destroy", this); + this.purgeListeners(); + } + }, + + beforeDestroy : Ext.emptyFn, + + onDestroy : Ext.emptyFn, + + + getEl : function(){ + return this.el; + }, + + + getId : function(){ + return this.id || (this.id = "ext-comp-" + (++Ext.Component.AUTO_ID)); + }, + + + getItemId : function(){ + return this.itemId || this.getId(); + }, + + + focus : function(selectText, delay){ + if(delay){ + this.focus.defer(typeof delay == 'number' ? delay : 10, this, [selectText, false]); + return; + } + if(this.rendered){ + this.el.focus(); + if(selectText === true){ + this.el.dom.select(); + } + } + return this; + }, + + blur : function(){ + if(this.rendered){ + this.el.blur(); + } + return this; + }, + + + disable : function(){ + if(this.rendered){ + this.onDisable(); + } + this.disabled = true; + this.fireEvent("disable", this); + return this; + }, + + onDisable : function(){ + this.getActionEl().addClass(this.disabledClass); + this.el.dom.disabled = true; + }, + + + enable : function(){ + if(this.rendered){ + this.onEnable(); + } + this.disabled = false; + this.fireEvent("enable", this); + return this; + }, + + onEnable : function(){ + this.getActionEl().removeClass(this.disabledClass); + this.el.dom.disabled = false; + }, + + + setDisabled : function(disabled){ + this[disabled ? "disable" : "enable"](); + }, + + + show: function(){ + if(this.fireEvent("beforeshow", this) !== false){ + this.hidden = false; + if(this.autoRender){ + this.render(typeof this.autoRender == 'boolean' ? Ext.getBody() : this.autoRender); + } + if(this.rendered){ + this.onShow(); + } + this.fireEvent("show", this); + } + return this; + }, + + onShow : function(){ + if(this.hideParent){ + this.container.removeClass('x-hide-' + this.hideMode); + }else{ + this.getActionEl().removeClass('x-hide-' + this.hideMode); + } + + }, + + + hide: function(){ + if(this.fireEvent("beforehide", this) !== false){ + this.hidden = true; + if(this.rendered){ + this.onHide(); + } + this.fireEvent("hide", this); + } + return this; + }, + + onHide : function(){ + if(this.hideParent){ + this.container.addClass('x-hide-' + this.hideMode); + }else{ + this.getActionEl().addClass('x-hide-' + this.hideMode); + } + }, + + + setVisible: function(visible){ + if(visible) { + this.show(); + }else{ + this.hide(); + } + return this; + }, + + + isVisible : function(){ + return this.rendered && this.getActionEl().isVisible(); + }, + + + cloneConfig : function(overrides){ + overrides = overrides || {}; + var id = overrides.id || Ext.id(); + var cfg = Ext.applyIf(overrides, this.initialConfig); + cfg.id = id; return new this.constructor(cfg); + }, + + + getXType : function(){ + return this.constructor.xtype; + }, + + + isXType : function(xtype, shallow){ + return !shallow ? + ('/' + this.getXTypes() + '/').indexOf('/' + xtype + '/') != -1 : + this.constructor.xtype == xtype; + }, + + + getXTypes : function(){ + var tc = this.constructor; + if(!tc.xtypes){ + var c = [], sc = this; + while(sc && sc.constructor.xtype){ + c.unshift(sc.constructor.xtype); + sc = sc.constructor.superclass; + } + tc.xtypeChain = c; + tc.xtypes = c.join('/'); + } + return tc.xtypes; + }, + + + findParentBy: function(fn) { + for (var p = this.ownerCt; (p != null) && !fn(p, this); p = p.ownerCt); + return p || null; + }, + + + findParentByType: function(xtype) { + return typeof xtype == 'function' ? + this.findParentBy(function(p){ + return p.constructor === xtype; + }) : + this.findParentBy(function(p){ + return p.constructor.xtype === xtype; + }); + }, + + mon : function(item, ename, fn, scope, opt){ + if(!this.mons){ + this.mons = []; + this.on('beforedestroy', function(){ + for(var i= 0, len = this.mons.length; i < len; i++){ + var m = this.mons[i]; + m.item.un(m.ename, m.fn, m.scope); + } + }, this); + } + this.mons.push({ + item: item, ename: ename, fn: fn, scope: scope + }); + item.on(ename, fn, scope, opt); + } +}); + +Ext.reg('component', Ext.Component); + + +Ext.Action = function(config){ + this.initialConfig = config; + this.items = []; +} + +Ext.Action.prototype = { + + + + + + + + + isAction : true, + + + setText : function(text){ + this.initialConfig.text = text; + this.callEach('setText', [text]); + }, + + + getText : function(){ + return this.initialConfig.text; + }, + + + setIconClass : function(cls){ + this.initialConfig.iconCls = cls; + this.callEach('setIconClass', [cls]); + }, + + + getIconClass : function(){ + return this.initialConfig.iconCls; + }, + + + setDisabled : function(v){ + this.initialConfig.disabled = v; + this.callEach('setDisabled', [v]); + }, + + + enable : function(){ + this.setDisabled(false); + }, + + + disable : function(){ + this.setDisabled(true); + }, + + + isDisabled : function(){ + return this.initialConfig.disabled; + }, + + + setHidden : function(v){ + this.initialConfig.hidden = v; + this.callEach('setVisible', [!v]); + }, + + + show : function(){ + this.setHidden(false); + }, + + + hide : function(){ + this.setHidden(true); + }, + + + isHidden : function(){ + return this.initialConfig.hidden; + }, + + + setHandler : function(fn, scope){ + this.initialConfig.handler = fn; + this.initialConfig.scope = scope; + this.callEach('setHandler', [fn, scope]); + }, + + + each : function(fn, scope){ + Ext.each(this.items, fn, scope); + }, + + + callEach : function(fnName, args){ + var cs = this.items; + for(var i = 0, len = cs.length; i < len; i++){ + cs[i][fnName].apply(cs[i], args); + } + }, + + + addComponent : function(comp){ + this.items.push(comp); + comp.on('destroy', this.removeComponent, this); + }, + + + removeComponent : function(comp){ + this.items.remove(comp); + }, + + + execute : function(){ + this.initialConfig.handler.apply(this.initialConfig.scope || window, arguments); + } +}; + +(function(){ +Ext.Layer = function(config, existingEl){ + config = config || {}; + var dh = Ext.DomHelper; + var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body; + if(existingEl){ + this.dom = Ext.getDom(existingEl); + } + if(!this.dom){ + var o = config.dh || {tag: "div", cls: "x-layer"}; + this.dom = dh.append(pel, o); + } + if(config.cls){ + this.addClass(config.cls); + } + this.constrain = config.constrain !== false; + this.visibilityMode = Ext.Element.VISIBILITY; + if(config.id){ + this.id = this.dom.id = config.id; + }else{ + this.id = Ext.id(this.dom); + } + this.zindex = config.zindex || this.getZIndex(); + this.position("absolute", this.zindex); + if(config.shadow){ + this.shadowOffset = config.shadowOffset || 4; + this.shadow = new Ext.Shadow({ + offset : this.shadowOffset, + mode : config.shadow + }); + }else{ + this.shadowOffset = 0; + } + this.useShim = config.shim !== false && Ext.useShims; + this.useDisplay = config.useDisplay; + this.hide(); +}; + +var supr = Ext.Element.prototype; + + +var shims = []; + +Ext.extend(Ext.Layer, Ext.Element, { + + getZIndex : function(){ + return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000; + }, + + getShim : function(){ + if(!this.useShim){ + return null; + } + if(this.shim){ + return this.shim; + } + var shim = shims.shift(); + if(!shim){ + shim = this.createShim(); + shim.enableDisplayMode('block'); + shim.dom.style.display = 'none'; + shim.dom.style.visibility = 'visible'; + } + var pn = this.dom.parentNode; + if(shim.dom.parentNode != pn){ + pn.insertBefore(shim.dom, this.dom); + } + shim.setStyle('z-index', this.getZIndex()-2); + this.shim = shim; + return shim; + }, + + hideShim : function(){ + if(this.shim){ + this.shim.setDisplayed(false); + shims.push(this.shim); + delete this.shim; + } + }, + + disableShadow : function(){ + if(this.shadow){ + this.shadowDisabled = true; + this.shadow.hide(); + this.lastShadowOffset = this.shadowOffset; + this.shadowOffset = 0; + } + }, + + enableShadow : function(show){ + if(this.shadow){ + this.shadowDisabled = false; + this.shadowOffset = this.lastShadowOffset; + delete this.lastShadowOffset; + if(show){ + this.sync(true); + } + } + }, + + + + + sync : function(doShow){ + var sw = this.shadow; + if(!this.updating && this.isVisible() && (sw || this.useShim)){ + var sh = this.getShim(); + + var w = this.getWidth(), + h = this.getHeight(); + + var l = this.getLeft(true), + t = this.getTop(true); + + if(sw && !this.shadowDisabled){ + if(doShow && !sw.isVisible()){ + sw.show(this); + }else{ + sw.realign(l, t, w, h); + } + if(sh){ + if(doShow){ + sh.show(); + } + + var a = sw.adjusts, s = sh.dom.style; + s.left = (Math.min(l, l+a.l))+"px"; + s.top = (Math.min(t, t+a.t))+"px"; + s.width = (w+a.w)+"px"; + s.height = (h+a.h)+"px"; + } + }else if(sh){ + if(doShow){ + sh.show(); + } + sh.setSize(w, h); + sh.setLeftTop(l, t); + } + + } + }, + + + destroy : function(){ + this.hideShim(); + if(this.shadow){ + this.shadow.hide(); + } + this.removeAllListeners(); + Ext.removeNode(this.dom); + Ext.Element.uncache(this.id); + }, + + remove : function(){ + this.destroy(); + }, + + + beginUpdate : function(){ + this.updating = true; + }, + + + endUpdate : function(){ + this.updating = false; + this.sync(true); + }, + + + hideUnders : function(negOffset){ + if(this.shadow){ + this.shadow.hide(); + } + this.hideShim(); + }, + + + constrainXY : function(){ + if(this.constrain){ + var vw = Ext.lib.Dom.getViewWidth(), + vh = Ext.lib.Dom.getViewHeight(); + var s = Ext.getDoc().getScroll(); + + var xy = this.getXY(); + var x = xy[0], y = xy[1]; + var w = this.dom.offsetWidth+this.shadowOffset, h = this.dom.offsetHeight+this.shadowOffset; + + var moved = false; + + if((x + w) > vw+s.left){ + x = vw - w - this.shadowOffset; + moved = true; + } + if((y + h) > vh+s.top){ + y = vh - h - this.shadowOffset; + moved = true; + } + + if(x < s.left){ + x = s.left; + moved = true; + } + if(y < s.top){ + y = s.top; + moved = true; + } + if(moved){ + if(this.avoidY){ + var ay = this.avoidY; + if(y <= ay && (y+h) >= ay){ + y = ay-h-5; + } + } + xy = [x, y]; + this.storeXY(xy); + supr.setXY.call(this, xy); + this.sync(); + } + } + }, + + isVisible : function(){ + return this.visible; + }, + + + showAction : function(){ + this.visible = true; + if(this.useDisplay === true){ + this.setDisplayed(""); + }else if(this.lastXY){ + supr.setXY.call(this, this.lastXY); + }else if(this.lastLT){ + supr.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]); + } + }, + + + hideAction : function(){ + this.visible = false; + if(this.useDisplay === true){ + this.setDisplayed(false); + }else{ + this.setLeftTop(-10000,-10000); + } + }, + + + setVisible : function(v, a, d, c, e){ + if(v){ + this.showAction(); + } + if(a && v){ + var cb = function(){ + this.sync(true); + if(c){ + c(); + } + }.createDelegate(this); + supr.setVisible.call(this, true, true, d, cb, e); + }else{ + if(!v){ + this.hideUnders(true); + } + var cb = c; + if(a){ + cb = function(){ + this.hideAction(); + if(c){ + c(); + } + }.createDelegate(this); + } + supr.setVisible.call(this, v, a, d, cb, e); + if(v){ + this.sync(true); + }else if(!a){ + this.hideAction(); + } + } + }, + + storeXY : function(xy){ + delete this.lastLT; + this.lastXY = xy; + }, + + storeLeftTop : function(left, top){ + delete this.lastXY; + this.lastLT = [left, top]; + }, + + + beforeFx : function(){ + this.beforeAction(); + return Ext.Layer.superclass.beforeFx.apply(this, arguments); + }, + + + afterFx : function(){ + Ext.Layer.superclass.afterFx.apply(this, arguments); + this.sync(this.isVisible()); + }, + + + beforeAction : function(){ + if(!this.updating && this.shadow){ + this.shadow.hide(); + } + }, + + + setLeft : function(left){ + this.storeLeftTop(left, this.getTop(true)); + supr.setLeft.apply(this, arguments); + this.sync(); + }, + + setTop : function(top){ + this.storeLeftTop(this.getLeft(true), top); + supr.setTop.apply(this, arguments); + this.sync(); + }, + + setLeftTop : function(left, top){ + this.storeLeftTop(left, top); + supr.setLeftTop.apply(this, arguments); + this.sync(); + }, + + setXY : function(xy, a, d, c, e){ + this.fixDisplay(); + this.beforeAction(); + this.storeXY(xy); + var cb = this.createCB(c); + supr.setXY.call(this, xy, a, d, cb, e); + if(!a){ + cb(); + } + }, + + + createCB : function(c){ + var el = this; + return function(){ + el.constrainXY(); + el.sync(true); + if(c){ + c(); + } + }; + }, + + + setX : function(x, a, d, c, e){ + this.setXY([x, this.getY()], a, d, c, e); + }, + + + setY : function(y, a, d, c, e){ + this.setXY([this.getX(), y], a, d, c, e); + }, + + + setSize : function(w, h, a, d, c, e){ + this.beforeAction(); + var cb = this.createCB(c); + supr.setSize.call(this, w, h, a, d, cb, e); + if(!a){ + cb(); + } + }, + + + setWidth : function(w, a, d, c, e){ + this.beforeAction(); + var cb = this.createCB(c); + supr.setWidth.call(this, w, a, d, cb, e); + if(!a){ + cb(); + } + }, + + + setHeight : function(h, a, d, c, e){ + this.beforeAction(); + var cb = this.createCB(c); + supr.setHeight.call(this, h, a, d, cb, e); + if(!a){ + cb(); + } + }, + + + setBounds : function(x, y, w, h, a, d, c, e){ + this.beforeAction(); + var cb = this.createCB(c); + if(!a){ + this.storeXY([x, y]); + supr.setXY.call(this, [x, y]); + supr.setSize.call(this, w, h, a, d, cb, e); + cb(); + }else{ + supr.setBounds.call(this, x, y, w, h, a, d, cb, e); + } + return this; + }, + + + setZIndex : function(zindex){ + this.zindex = zindex; + this.setStyle("z-index", zindex + 2); + if(this.shadow){ + this.shadow.setZIndex(zindex + 1); + } + if(this.shim){ + this.shim.setStyle("z-index", zindex); + } + } +}); +})(); + +Ext.Shadow = function(config){ + Ext.apply(this, config); + if(typeof this.mode != "string"){ + this.mode = this.defaultMode; + } + var o = this.offset, a = {h: 0}; + var rad = Math.floor(this.offset/2); + switch(this.mode.toLowerCase()){ case "drop": + a.w = 0; + a.l = a.t = o; + a.t -= 1; + if(Ext.isIE){ + a.l -= this.offset + rad; + a.t -= this.offset + rad; + a.w -= rad; + a.h -= rad; + a.t += 1; + } + break; + case "sides": + a.w = (o*2); + a.l = -o; + a.t = o-1; + if(Ext.isIE){ + a.l -= (this.offset - rad); + a.t -= this.offset + rad; + a.l += 1; + a.w -= (this.offset - rad)*2; + a.w -= rad + 1; + a.h -= 1; + } + break; + case "frame": + a.w = a.h = (o*2); + a.l = a.t = -o; + a.t += 1; + a.h -= 2; + if(Ext.isIE){ + a.l -= (this.offset - rad); + a.t -= (this.offset - rad); + a.l += 1; + a.w -= (this.offset + rad + 1); + a.h -= (this.offset + rad); + a.h += 1; + } + break; + }; + + this.adjusts = a; +}; + +Ext.Shadow.prototype = { + + + offset: 4, + + defaultMode: "drop", + + + show : function(target){ + target = Ext.get(target); + if(!this.el){ + this.el = Ext.Shadow.Pool.pull(); + if(this.el.dom.nextSibling != target.dom){ + this.el.insertBefore(target); + } + } + this.el.setStyle("z-index", this.zIndex || parseInt(target.getStyle("z-index"), 10)-1); + if(Ext.isIE){ + this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+(this.offset)+")"; + } + this.realign( + target.getLeft(true), + target.getTop(true), + target.getWidth(), + target.getHeight() + ); + this.el.dom.style.display = "block"; + }, + + + isVisible : function(){ + return this.el ? true : false; + }, + + + realign : function(l, t, w, h){ + if(!this.el){ + return; + } + var a = this.adjusts, d = this.el.dom, s = d.style; + var iea = 0; + s.left = (l+a.l)+"px"; + s.top = (t+a.t)+"px"; + var sw = (w+a.w), sh = (h+a.h), sws = sw +"px", shs = sh + "px"; + if(s.width != sws || s.height != shs){ + s.width = sws; + s.height = shs; + if(!Ext.isIE){ + var cn = d.childNodes; + var sww = Math.max(0, (sw-12))+"px"; + cn[0].childNodes[1].style.width = sww; + cn[1].childNodes[1].style.width = sww; + cn[2].childNodes[1].style.width = sww; + cn[1].style.height = Math.max(0, (sh-12))+"px"; + } + } + }, + + + hide : function(){ + if(this.el){ + this.el.dom.style.display = "none"; + Ext.Shadow.Pool.push(this.el); + delete this.el; + } + }, + + + setZIndex : function(z){ + this.zIndex = z; + if(this.el){ + this.el.setStyle("z-index", z); + } + } +}; + +Ext.Shadow.Pool = function(){ + var p = []; + var markup = Ext.isIE ? + '
' : + '
'; + return { + pull : function(){ + var sh = p.shift(); + if(!sh){ + sh = Ext.get(Ext.DomHelper.insertHtml("beforeBegin", document.body.firstChild, markup)); + sh.autoBoxAdjust = false; + } + return sh; + }, + + push : function(sh){ + p.push(sh); + } + }; +}(); + +Ext.BoxComponent = Ext.extend(Ext.Component, { + + + + + + + + + + + + initComponent : function(){ + Ext.BoxComponent.superclass.initComponent.call(this); + this.addEvents( + + 'resize', + + 'move' + ); + }, + + boxReady : false, + deferHeight: false, + + + setSize : function(w, h){ + if(typeof w == 'object'){ + h = w.height; + w = w.width; + } + if(!this.boxReady){ + this.width = w; + this.height = h; + return this; + } + + if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){ + return this; + } + this.lastSize = {width: w, height: h}; + var adj = this.adjustSize(w, h); + var aw = adj.width, ah = adj.height; + if(aw !== undefined || ah !== undefined){ var rz = this.getResizeEl(); + if(!this.deferHeight && aw !== undefined && ah !== undefined){ + rz.setSize(aw, ah); + }else if(!this.deferHeight && ah !== undefined){ + rz.setHeight(ah); + }else if(aw !== undefined){ + rz.setWidth(aw); + } + this.onResize(aw, ah, w, h); + this.fireEvent('resize', this, aw, ah, w, h); + } + return this; + }, + + + setWidth : function(width){ + return this.setSize(width); + }, + + + setHeight : function(height){ + return this.setSize(undefined, height); + }, + + + getSize : function(){ + return this.el.getSize(); + }, + + + getPosition : function(local){ + if(local === true){ + return [this.el.getLeft(true), this.el.getTop(true)]; + } + return this.xy || this.el.getXY(); + }, + + + getBox : function(local){ + var s = this.el.getSize(); + if(local === true){ + s.x = this.el.getLeft(true); + s.y = this.el.getTop(true); + }else{ + var xy = this.xy || this.el.getXY(); + s.x = xy[0]; + s.y = xy[1]; + } + return s; + }, + + + updateBox : function(box){ + this.setSize(box.width, box.height); + this.setPagePosition(box.x, box.y); + return this; + }, + + getResizeEl : function(){ + return this.resizeEl || this.el; + }, + + getPositionEl : function(){ + return this.positionEl || this.el; + }, + + + setPosition : function(x, y){ + if(x && typeof x[1] == 'number'){ + y = x[1]; + x = x[0]; + } + this.x = x; + this.y = y; + if(!this.boxReady){ + return this; + } + var adj = this.adjustPosition(x, y); + var ax = adj.x, ay = adj.y; + + var el = this.getPositionEl(); + if(ax !== undefined || ay !== undefined){ + if(ax !== undefined && ay !== undefined){ + el.setLeftTop(ax, ay); + }else if(ax !== undefined){ + el.setLeft(ax); + }else if(ay !== undefined){ + el.setTop(ay); + } + this.onPosition(ax, ay); + this.fireEvent('move', this, ax, ay); + } + return this; + }, + + + setPagePosition : function(x, y){ + if(x && typeof x[1] == 'number'){ + y = x[1]; + x = x[0]; + } + this.pageX = x; + this.pageY = y; + if(!this.boxReady){ + return; + } + if(x === undefined || y === undefined){ return; + } + var p = this.el.translatePoints(x, y); + this.setPosition(p.left, p.top); + return this; + }, + + onRender : function(ct, position){ + Ext.BoxComponent.superclass.onRender.call(this, ct, position); + if(this.resizeEl){ + this.resizeEl = Ext.get(this.resizeEl); + } + if(this.positionEl){ + this.positionEl = Ext.get(this.positionEl); + } + }, + + afterRender : function(){ + Ext.BoxComponent.superclass.afterRender.call(this); + this.boxReady = true; + this.setSize(this.width, this.height); + if(this.x || this.y){ + this.setPosition(this.x, this.y); + }else if(this.pageX || this.pageY){ + this.setPagePosition(this.pageX, this.pageY); + } + }, + + + syncSize : function(){ + delete this.lastSize; + this.setSize(this.autoWidth ? undefined : this.el.getWidth(), this.autoHeight ? undefined : this.el.getHeight()); + return this; + }, + + + onResize : function(adjWidth, adjHeight, rawWidth, rawHeight){ + + }, + + + onPosition : function(x, y){ + + }, + + adjustSize : function(w, h){ + if(this.autoWidth){ + w = 'auto'; + } + if(this.autoHeight){ + h = 'auto'; + } + return {width : w, height: h}; + }, + + adjustPosition : function(x, y){ + return {x : x, y: y}; + } +}); +Ext.reg('box', Ext.BoxComponent); + +Ext.SplitBar = function(dragElement, resizingElement, orientation, placement, existingProxy){ + + + this.el = Ext.get(dragElement, true); + this.el.dom.unselectable = "on"; + + this.resizingEl = Ext.get(resizingElement, true); + + + this.orientation = orientation || Ext.SplitBar.HORIZONTAL; + + + this.minSize = 0; + + + this.maxSize = 2000; + + + this.animate = false; + + + this.useShim = false; + + + this.shim = null; + + if(!existingProxy){ + + this.proxy = Ext.SplitBar.createProxy(this.orientation); + }else{ + this.proxy = Ext.get(existingProxy).dom; + } + + this.dd = new Ext.dd.DDProxy(this.el.dom.id, "XSplitBars", {dragElId : this.proxy.id}); + + + this.dd.b4StartDrag = this.onStartProxyDrag.createDelegate(this); + + + this.dd.endDrag = this.onEndProxyDrag.createDelegate(this); + + + this.dragSpecs = {}; + + + this.adapter = new Ext.SplitBar.BasicLayoutAdapter(); + this.adapter.init(this); + + if(this.orientation == Ext.SplitBar.HORIZONTAL){ + + this.placement = placement || (this.el.getX() > this.resizingEl.getX() ? Ext.SplitBar.LEFT : Ext.SplitBar.RIGHT); + this.el.addClass("x-splitbar-h"); + }else{ + + this.placement = placement || (this.el.getY() > this.resizingEl.getY() ? Ext.SplitBar.TOP : Ext.SplitBar.BOTTOM); + this.el.addClass("x-splitbar-v"); + } + + this.addEvents( + + "resize", + + "moved", + + "beforeresize", + + "beforeapply" + ); + + Ext.SplitBar.superclass.constructor.call(this); +}; + +Ext.extend(Ext.SplitBar, Ext.util.Observable, { + onStartProxyDrag : function(x, y){ + this.fireEvent("beforeresize", this); + this.overlay = Ext.DomHelper.append(document.body, {cls: "x-drag-overlay", html: " "}, true); + this.overlay.unselectable(); + this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); + this.overlay.show(); + Ext.get(this.proxy).setDisplayed("block"); + var size = this.adapter.getElementSize(this); + this.activeMinSize = this.getMinimumSize();; + this.activeMaxSize = this.getMaximumSize();; + var c1 = size - this.activeMinSize; + var c2 = Math.max(this.activeMaxSize - size, 0); + if(this.orientation == Ext.SplitBar.HORIZONTAL){ + this.dd.resetConstraints(); + this.dd.setXConstraint( + this.placement == Ext.SplitBar.LEFT ? c1 : c2, + this.placement == Ext.SplitBar.LEFT ? c2 : c1 + ); + this.dd.setYConstraint(0, 0); + }else{ + this.dd.resetConstraints(); + this.dd.setXConstraint(0, 0); + this.dd.setYConstraint( + this.placement == Ext.SplitBar.TOP ? c1 : c2, + this.placement == Ext.SplitBar.TOP ? c2 : c1 + ); + } + this.dragSpecs.startSize = size; + this.dragSpecs.startPoint = [x, y]; + Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd, x, y); + }, + + + onEndProxyDrag : function(e){ + Ext.get(this.proxy).setDisplayed(false); + var endPoint = Ext.lib.Event.getXY(e); + if(this.overlay){ + this.overlay.remove(); + delete this.overlay; + } + var newSize; + if(this.orientation == Ext.SplitBar.HORIZONTAL){ + newSize = this.dragSpecs.startSize + + (this.placement == Ext.SplitBar.LEFT ? + endPoint[0] - this.dragSpecs.startPoint[0] : + this.dragSpecs.startPoint[0] - endPoint[0] + ); + }else{ + newSize = this.dragSpecs.startSize + + (this.placement == Ext.SplitBar.TOP ? + endPoint[1] - this.dragSpecs.startPoint[1] : + this.dragSpecs.startPoint[1] - endPoint[1] + ); + } + newSize = Math.min(Math.max(newSize, this.activeMinSize), this.activeMaxSize); + if(newSize != this.dragSpecs.startSize){ + if(this.fireEvent('beforeapply', this, newSize) !== false){ + this.adapter.setElementSize(this, newSize); + this.fireEvent("moved", this, newSize); + this.fireEvent("resize", this, newSize); + } + } + }, + + + getAdapter : function(){ + return this.adapter; + }, + + + setAdapter : function(adapter){ + this.adapter = adapter; + this.adapter.init(this); + }, + + + getMinimumSize : function(){ + return this.minSize; + }, + + + setMinimumSize : function(minSize){ + this.minSize = minSize; + }, + + + getMaximumSize : function(){ + return this.maxSize; + }, + + + setMaximumSize : function(maxSize){ + this.maxSize = maxSize; + }, + + + setCurrentSize : function(size){ + var oldAnimate = this.animate; + this.animate = false; + this.adapter.setElementSize(this, size); + this.animate = oldAnimate; + }, + + + destroy : function(removeEl){ + if(this.shim){ + this.shim.remove(); + } + this.dd.unreg(); + Ext.removeNode(this.proxy); + if(removeEl){ + this.el.remove(); + } + } +}); + + +Ext.SplitBar.createProxy = function(dir){ + var proxy = new Ext.Element(document.createElement("div")); + proxy.unselectable(); + var cls = 'x-splitbar-proxy'; + proxy.addClass(cls + ' ' + (dir == Ext.SplitBar.HORIZONTAL ? cls +'-h' : cls + '-v')); + document.body.appendChild(proxy.dom); + return proxy.dom; +}; + + +Ext.SplitBar.BasicLayoutAdapter = function(){ +}; + +Ext.SplitBar.BasicLayoutAdapter.prototype = { + + init : function(s){ + + }, + + getElementSize : function(s){ + if(s.orientation == Ext.SplitBar.HORIZONTAL){ + return s.resizingEl.getWidth(); + }else{ + return s.resizingEl.getHeight(); + } + }, + + + setElementSize : function(s, newSize, onComplete){ + if(s.orientation == Ext.SplitBar.HORIZONTAL){ + if(!s.animate){ + s.resizingEl.setWidth(newSize); + if(onComplete){ + onComplete(s, newSize); + } + }else{ + s.resizingEl.setWidth(newSize, true, .1, onComplete, 'easeOut'); + } + }else{ + + if(!s.animate){ + s.resizingEl.setHeight(newSize); + if(onComplete){ + onComplete(s, newSize); + } + }else{ + s.resizingEl.setHeight(newSize, true, .1, onComplete, 'easeOut'); + } + } + } +}; + + +Ext.SplitBar.AbsoluteLayoutAdapter = function(container){ + this.basic = new Ext.SplitBar.BasicLayoutAdapter(); + this.container = Ext.get(container); +}; + +Ext.SplitBar.AbsoluteLayoutAdapter.prototype = { + init : function(s){ + this.basic.init(s); + }, + + getElementSize : function(s){ + return this.basic.getElementSize(s); + }, + + setElementSize : function(s, newSize, onComplete){ + this.basic.setElementSize(s, newSize, this.moveSplitter.createDelegate(this, [s])); + }, + + moveSplitter : function(s){ + var yes = Ext.SplitBar; + switch(s.placement){ + case yes.LEFT: + s.el.setX(s.resizingEl.getRight()); + break; + case yes.RIGHT: + s.el.setStyle("right", (this.container.getWidth() - s.resizingEl.getLeft()) + "px"); + break; + case yes.TOP: + s.el.setY(s.resizingEl.getBottom()); + break; + case yes.BOTTOM: + s.el.setY(s.resizingEl.getTop() - s.el.getHeight()); + break; + } + } +}; + + +Ext.SplitBar.VERTICAL = 1; + + +Ext.SplitBar.HORIZONTAL = 2; + + +Ext.SplitBar.LEFT = 1; + + +Ext.SplitBar.RIGHT = 2; + + +Ext.SplitBar.TOP = 3; + + +Ext.SplitBar.BOTTOM = 4; + + +Ext.Container = Ext.extend(Ext.BoxComponent, { + + + + + + + + + + autoDestroy: true, + + + defaultType: 'panel', + + initComponent : function(){ + Ext.Container.superclass.initComponent.call(this); + + this.addEvents( + + 'afterlayout', + + 'beforeadd', + + 'beforeremove', + + 'add', + + 'remove' + ); + + + var items = this.items; + if(items){ + delete this.items; + if(Ext.isArray(items)){ + this.add.apply(this, items); + }else{ + this.add(items); + } + } + }, + + initItems : function(){ + if(!this.items){ + this.items = new Ext.util.MixedCollection(false, this.getComponentId); + this.getLayout(); } + }, + + setLayout : function(layout){ + if(this.layout && this.layout != layout){ + this.layout.setContainer(null); + } + this.initItems(); + this.layout = layout; + layout.setContainer(this); + }, + + render : function(){ + Ext.Container.superclass.render.apply(this, arguments); + if(this.layout){ + if(typeof this.layout == 'string'){ + this.layout = new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig); + } + this.setLayout(this.layout); + + if(this.activeItem !== undefined){ + var item = this.activeItem; + delete this.activeItem; + this.layout.setActiveItem(item); + return; + } + } + if(!this.ownerCt){ + this.doLayout(); + } + if(this.monitorResize === true){ + Ext.EventManager.onWindowResize(this.doLayout, this, [false]); + } + }, + + getLayoutTarget : function(){ + return this.el; + }, + + getComponentId : function(comp){ + return comp.itemId || comp.id; + }, + + + add : function(comp){ + if(!this.items){ + this.initItems(); + } + var a = arguments, len = a.length; + if(len > 1){ + for(var i = 0; i < len; i++) { + this.add(a[i]); + } + return; + } + var c = this.lookupComponent(this.applyDefaults(comp)); + var pos = this.items.length; + if(this.fireEvent('beforeadd', this, c, pos) !== false && this.onBeforeAdd(c) !== false){ + this.items.add(c); + c.ownerCt = this; + this.fireEvent('add', this, c, pos); + } + return c; + }, + + + insert : function(index, comp){ + if(!this.items){ + this.initItems(); + } + var a = arguments, len = a.length; + if(len > 2){ + for(var i = len-1; i >= 1; --i) { + this.insert(index, a[i]); + } + return; + } + var c = this.lookupComponent(this.applyDefaults(comp)); + + if(c.ownerCt == this && this.items.indexOf(c) < index){ + --index; + } + + if(this.fireEvent('beforeadd', this, c, index) !== false && this.onBeforeAdd(c) !== false){ + this.items.insert(index, c); + c.ownerCt = this; + this.fireEvent('add', this, c, index); + } + return c; + }, + + applyDefaults : function(c){ + if(this.defaults){ + if(typeof c == 'string'){ + c = Ext.ComponentMgr.get(c); + Ext.apply(c, this.defaults); + }else if(!c.events){ + Ext.applyIf(c, this.defaults); + }else{ + Ext.apply(c, this.defaults); + } + } + return c; + }, + + onBeforeAdd : function(item){ + if(item.ownerCt){ + item.ownerCt.remove(item, false); + } + if(this.hideBorders === true){ + item.border = (item.border === true); + } + }, + + + remove : function(comp, autoDestroy){ + var c = this.getComponent(comp); + if(c && this.fireEvent('beforeremove', this, c) !== false){ + this.items.remove(c); + delete c.ownerCt; + if(autoDestroy === true || (autoDestroy !== false && this.autoDestroy)){ + c.destroy(); + } + if(this.layout && this.layout.activeItem == c){ + delete this.layout.activeItem; + } + this.fireEvent('remove', this, c); + } + return c; + }, + + + getComponent : function(comp){ + if(typeof comp == 'object'){ + return comp; + } + return this.items.get(comp); + }, + + lookupComponent : function(comp){ + if(typeof comp == 'string'){ + return Ext.ComponentMgr.get(comp); + }else if(!comp.events){ + return this.createComponent(comp); + } + return comp; + }, + + createComponent : function(config){ + return Ext.ComponentMgr.create(config, this.defaultType); + }, + + + doLayout : function(shallow){ + if(this.rendered && this.layout){ + this.layout.layout(); + } + if(shallow !== false && this.items){ + var cs = this.items.items; + for(var i = 0, len = cs.length; i < len; i++) { + var c = cs[i]; + if(c.doLayout){ + c.doLayout(); + } + } + } + }, + + + getLayout : function(){ + if(!this.layout){ + var layout = new Ext.layout.ContainerLayout(this.layoutConfig); + this.setLayout(layout); + } + return this.layout; + }, + + onDestroy : function(){ + if(this.items){ + var cs = this.items.items; + for(var i = 0, len = cs.length; i < len; i++) { + Ext.destroy(cs[i]); + } + } + if(this.monitorResize){ + Ext.EventManager.removeResizeListener(this.doLayout, this); + } + Ext.Container.superclass.onDestroy.call(this); + }, + + + bubble : function(fn, scope, args){ + var p = this; + while(p){ + if(fn.apply(scope || p, args || [p]) === false){ + break; + } + p = p.ownerCt; + } + }, + + + cascade : function(fn, scope, args){ + if(fn.apply(scope || this, args || [this]) !== false){ + if(this.items){ + var cs = this.items.items; + for(var i = 0, len = cs.length; i < len; i++){ + if(cs[i].cascade){ + cs[i].cascade(fn, scope, args); + }else{ + fn.apply(scope || this, args || [cs[i]]); + } + } + } + } + }, + + + findById : function(id){ + var m, ct = this; + this.cascade(function(c){ + if(ct != c && c.id === id){ + m = c; + return false; + } + }); + return m || null; + }, + + + findByType : function(xtype){ + return typeof xtype == 'function' ? + this.findBy(function(c){ + return c.constructor === xtype; + }) : + this.findBy(function(c){ + return c.constructor.xtype === xtype; + }); + }, + + + find : function(prop, value){ + return this.findBy(function(c){ + return c[prop] === value; + }); + }, + + + findBy : function(fn, scope){ + var m = [], ct = this; + this.cascade(function(c){ + if(ct != c && fn.call(scope || c, c, ct) === true){ + m.push(c); + } + }); + return m; + } +}); + +Ext.Container.LAYOUTS = {}; +Ext.reg('container', Ext.Container); + +Ext.layout.ContainerLayout = function(config){ + Ext.apply(this, config); +}; + +Ext.layout.ContainerLayout.prototype = { + + + + + + monitorResize:false, + activeItem : null, + + layout : function(){ + var target = this.container.getLayoutTarget(); + this.onLayout(this.container, target); + this.container.fireEvent('afterlayout', this.container, this); + }, + + onLayout : function(ct, target){ + this.renderAll(ct, target); + }, + + isValidParent : function(c, target){ + var el = c.getPositionEl ? c.getPositionEl() : c.getEl(); + return el.dom.parentNode == target.dom; + }, + + renderAll : function(ct, target){ + var items = ct.items.items; + for(var i = 0, len = items.length; i < len; i++) { + var c = items[i]; + if(c && (!c.rendered || !this.isValidParent(c, target))){ + this.renderItem(c, i, target); + } + } + }, + + renderItem : function(c, position, target){ + if(c && !c.rendered){ + c.render(target, position); + if(this.extraCls){ + var t = c.getPositionEl ? c.getPositionEl() : c; + t.addClass(this.extraCls); + } + if (this.renderHidden && c != this.activeItem) { + c.hide(); + } + }else if(c && !this.isValidParent(c, target)){ + if(this.extraCls){ + c.addClass(this.extraCls); + } + if(typeof position == 'number'){ + position = target.dom.childNodes[position]; + } + target.dom.insertBefore(c.getEl().dom, position || null); + if (this.renderHidden && c != this.activeItem) { + c.hide(); + } + } + }, + + onResize: function(){ + if(this.container.collapsed){ + return; + } + var b = this.container.bufferResize; + if(b){ + if(!this.resizeTask){ + this.resizeTask = new Ext.util.DelayedTask(this.layout, this); + this.resizeBuffer = typeof b == 'number' ? b : 100; + } + this.resizeTask.delay(this.resizeBuffer); + }else{ + this.layout(); + } + }, + + setContainer : function(ct){ + if(this.monitorResize && ct != this.container){ + if(this.container){ + this.container.un('resize', this.onResize, this); + } + if(ct){ + ct.on('resize', this.onResize, this); + } + } + this.container = ct; + }, + + parseMargins : function(v){ + var ms = v.split(' '); + var len = ms.length; + if(len == 1){ + ms[1] = ms[0]; + ms[2] = ms[0]; + ms[3] = ms[0]; + } + if(len == 2){ + ms[2] = ms[0]; + ms[3] = ms[1]; + } + return { + top:parseInt(ms[0], 10) || 0, + right:parseInt(ms[1], 10) || 0, + bottom:parseInt(ms[2], 10) || 0, + left:parseInt(ms[3], 10) || 0 + }; + } +}; +Ext.Container.LAYOUTS['auto'] = Ext.layout.ContainerLayout; + +Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, { + + monitorResize:true, + + + onLayout : function(ct, target){ + Ext.layout.FitLayout.superclass.onLayout.call(this, ct, target); + if(!this.container.collapsed){ + this.setItemSize(this.activeItem || ct.items.itemAt(0), target.getStyleSize()); + } + }, + + + setItemSize : function(item, size){ + if(item && size.height > 0){ + item.setSize(size); + } + } +}); +Ext.Container.LAYOUTS['fit'] = Ext.layout.FitLayout; + +Ext.layout.CardLayout = Ext.extend(Ext.layout.FitLayout, { + + deferredRender : false, + + + renderHidden : true, + + + setActiveItem : function(item){ + item = this.container.getComponent(item); + if(this.activeItem != item){ + if(this.activeItem){ + this.activeItem.hide(); + } + this.activeItem = item; + item.show(); + this.layout(); + } + }, + + + renderAll : function(ct, target){ + if(this.deferredRender){ + this.renderItem(this.activeItem, undefined, target); + }else{ + Ext.layout.CardLayout.superclass.renderAll.call(this, ct, target); + } + } +}); +Ext.Container.LAYOUTS['card'] = Ext.layout.CardLayout; + +Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { + + monitorResize:true, + + + getAnchorViewSize : function(ct, target){ + return target.dom == document.body ? + target.getViewSize() : target.getStyleSize(); + }, + + + onLayout : function(ct, target){ + Ext.layout.AnchorLayout.superclass.onLayout.call(this, ct, target); + + var size = this.getAnchorViewSize(ct, target); + + var w = size.width, h = size.height; + + if(w < 20 || h < 20){ + return; + } + + + var aw, ah; + if(ct.anchorSize){ + if(typeof ct.anchorSize == 'number'){ + aw = ct.anchorSize; + }else{ + aw = ct.anchorSize.width; + ah = ct.anchorSize.height; + } + }else{ + aw = ct.initialConfig.width; + ah = ct.initialConfig.height; + } + + var cs = ct.items.items, len = cs.length, i, c, a, cw, ch; + for(i = 0; i < len; i++){ + c = cs[i]; + if(c.anchor){ + a = c.anchorSpec; + if(!a){ + var vs = c.anchor.split(' '); + c.anchorSpec = a = { + right: this.parseAnchor(vs[0], c.initialConfig.width, aw), + bottom: this.parseAnchor(vs[1], c.initialConfig.height, ah) + }; + } + cw = a.right ? this.adjustWidthAnchor(a.right(w), c) : undefined; + ch = a.bottom ? this.adjustHeightAnchor(a.bottom(h), c) : undefined; + + if(cw || ch){ + c.setSize(cw || undefined, ch || undefined); + } + } + } + }, + + + parseAnchor : function(a, start, cstart){ + if(a && a != 'none'){ + var last; + if(/^(r|right|b|bottom)$/i.test(a)){ + var diff = cstart - start; + return function(v){ + if(v !== last){ + last = v; + return v - diff; + } + } + }else if(a.indexOf('%') != -1){ + var ratio = parseFloat(a.replace('%', ''))*.01; + return function(v){ + if(v !== last){ + last = v; + return Math.floor(v*ratio); + } + } + }else{ + a = parseInt(a, 10); + if(!isNaN(a)){ + return function(v){ + if(v !== last){ + last = v; + return v + a; + } + } + } + } + } + return false; + }, + + + adjustWidthAnchor : function(value, comp){ + return value; + }, + + + adjustHeightAnchor : function(value, comp){ + return value; + } + + +}); +Ext.Container.LAYOUTS['anchor'] = Ext.layout.AnchorLayout; + +Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { + + monitorResize:true, + + extraCls: 'x-column', + + scrollOffset : 0, + + + isValidParent : function(c, target){ + return c.getEl().dom.parentNode == this.innerCt.dom; + }, + + + onLayout : function(ct, target){ + var cs = ct.items.items, len = cs.length, c, i; + + if(!this.innerCt){ + target.addClass('x-column-layout-ct'); + + + + this.innerCt = target.createChild({cls:'x-column-inner'}); + this.innerCt.createChild({cls:'x-clear'}); + } + this.renderAll(ct, this.innerCt); + + var size = target.getViewSize(); + + if(size.width < 1 && size.height < 1){ + return; + } + + var w = size.width - target.getPadding('lr') - this.scrollOffset, + h = size.height - target.getPadding('tb'), + pw = w; + + this.innerCt.setWidth(w); + + + + + for(i = 0; i < len; i++){ + c = cs[i]; + if(!c.columnWidth){ + pw -= (c.getSize().width + c.getEl().getMargins('lr')); + } + } + + pw = pw < 0 ? 0 : pw; + + for(i = 0; i < len; i++){ + c = cs[i]; + if(c.columnWidth){ + c.setSize(Math.floor(c.columnWidth*pw) - c.getEl().getMargins('lr')); + } + } + } + + +}); + +Ext.Container.LAYOUTS['column'] = Ext.layout.ColumnLayout; + +Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, { + monitorResize:true, + rendered : false, + + onLayout : function(ct, target){ + var collapsed; + if(!this.rendered){ + target.position(); + target.addClass('x-border-layout-ct'); + var items = ct.items.items; + collapsed = []; + for(var i = 0, len = items.length; i < len; i++) { + var c = items[i]; + var pos = c.region; + if(c.collapsed){ + collapsed.push(c); + } + c.collapsed = false; + if(!c.rendered){ + c.cls = c.cls ? c.cls +' x-border-panel' : 'x-border-panel'; + c.render(target, i); + } + this[pos] = pos != 'center' && c.split ? + new Ext.layout.BorderLayout.SplitRegion(this, c.initialConfig, pos) : + new Ext.layout.BorderLayout.Region(this, c.initialConfig, pos); + this[pos].render(target, c); + } + this.rendered = true; + } + + var size = target.getViewSize(); + if(size.width < 20 || size.height < 20){ if(collapsed){ + this.restoreCollapsed = collapsed; + } + return; + }else if(this.restoreCollapsed){ + collapsed = this.restoreCollapsed; + delete this.restoreCollapsed; + } + + var w = size.width, h = size.height; + var centerW = w, centerH = h, centerY = 0, centerX = 0; + + var n = this.north, s = this.south, west = this.west, e = this.east, c = this.center; + if(!c){ + throw 'No center region defined in BorderLayout ' + ct.id; + } + + if(n && n.isVisible()){ + var b = n.getSize(); + var m = n.getMargins(); + b.width = w - (m.left+m.right); + b.x = m.left; + b.y = m.top; + centerY = b.height + b.y + m.bottom; + centerH -= centerY; + n.applyLayout(b); + } + if(s && s.isVisible()){ + var b = s.getSize(); + var m = s.getMargins(); + b.width = w - (m.left+m.right); + b.x = m.left; + var totalHeight = (b.height + m.top + m.bottom); + b.y = h - totalHeight + m.top; + centerH -= totalHeight; + s.applyLayout(b); + } + if(west && west.isVisible()){ + var b = west.getSize(); + var m = west.getMargins(); + b.height = centerH - (m.top+m.bottom); + b.x = m.left; + b.y = centerY + m.top; + var totalWidth = (b.width + m.left + m.right); + centerX += totalWidth; + centerW -= totalWidth; + west.applyLayout(b); + } + if(e && e.isVisible()){ + var b = e.getSize(); + var m = e.getMargins(); + b.height = centerH - (m.top+m.bottom); + var totalWidth = (b.width + m.left + m.right); + b.x = w - totalWidth + m.left; + b.y = centerY + m.top; + centerW -= totalWidth; + e.applyLayout(b); + } + + var m = c.getMargins(); + var centerBox = { + x: centerX + m.left, + y: centerY + m.top, + width: centerW - (m.left+m.right), + height: centerH - (m.top+m.bottom) + }; + c.applyLayout(centerBox); + + if(collapsed){ + for(var i = 0, len = collapsed.length; i < len; i++){ + collapsed[i].collapse(false); + } + } + + if(Ext.isIE && Ext.isStrict){ target.repaint(); + } + } + + +}); + + +Ext.layout.BorderLayout.Region = function(layout, config, pos){ + Ext.apply(this, config); + this.layout = layout; + this.position = pos; + this.state = {}; + if(typeof this.margins == 'string'){ + this.margins = this.layout.parseMargins(this.margins); + } + this.margins = Ext.applyIf(this.margins || {}, this.defaultMargins); + if(this.collapsible){ + if(typeof this.cmargins == 'string'){ + this.cmargins = this.layout.parseMargins(this.cmargins); + } + if(this.collapseMode == 'mini' && !this.cmargins){ + this.cmargins = {left:0,top:0,right:0,bottom:0}; + }else{ + this.cmargins = Ext.applyIf(this.cmargins || {}, + pos == 'north' || pos == 'south' ? this.defaultNSCMargins : this.defaultEWCMargins); + } + } +}; + +Ext.layout.BorderLayout.Region.prototype = { + + + + + + + + collapsible : false, + + split:false, + + floatable: true, + + minWidth:50, + + minHeight:50, + + defaultMargins : {left:0,top:0,right:0,bottom:0}, + defaultNSCMargins : {left:5,top:5,right:5,bottom:5}, + defaultEWCMargins : {left:5,top:0,right:5,bottom:0}, + + + isCollapsed : false, + + + + + + render : function(ct, p){ + this.panel = p; + p.el.enableDisplayMode(); + this.targetEl = ct; + this.el = p.el; + + var gs = p.getState, ps = this.position; + p.getState = function(){ + return Ext.apply(gs.call(p) || {}, this.state); + }.createDelegate(this); + + if(ps != 'center'){ + p.allowQueuedExpand = false; + p.on({ + beforecollapse: this.beforeCollapse, + collapse: this.onCollapse, + beforeexpand: this.beforeExpand, + expand: this.onExpand, + hide: this.onHide, + show: this.onShow, + scope: this + }); + if(this.collapsible){ + p.collapseEl = 'el'; + p.slideAnchor = this.getSlideAnchor(); + } + if(p.tools && p.tools.toggle){ + p.tools.toggle.addClass('x-tool-collapse-'+ps); + p.tools.toggle.addClassOnOver('x-tool-collapse-'+ps+'-over'); + } + } + }, + + getCollapsedEl : function(){ + if(!this.collapsedEl){ + if(!this.toolTemplate){ + var tt = new Ext.Template( + '
 
' + ); + tt.disableFormats = true; + tt.compile(); + Ext.layout.BorderLayout.Region.prototype.toolTemplate = tt; + } + this.collapsedEl = this.targetEl.createChild({ + cls: "x-layout-collapsed x-layout-collapsed-"+this.position, + id: this.panel.id + '-xcollapsed' + }); + this.collapsedEl.enableDisplayMode('block'); + + if(this.collapseMode == 'mini'){ + this.collapsedEl.addClass('x-layout-cmini-'+this.position); + this.miniCollapsedEl = this.collapsedEl.createChild({ + cls: "x-layout-mini x-layout-mini-"+this.position, html: " " + }); + this.miniCollapsedEl.addClassOnOver('x-layout-mini-over'); + this.collapsedEl.addClassOnOver("x-layout-collapsed-over"); + this.collapsedEl.on('click', this.onExpandClick, this, {stopEvent:true}); + }else { + var t = this.toolTemplate.append( + this.collapsedEl.dom, + {id:'expand-'+this.position}, true); + t.addClassOnOver('x-tool-expand-'+this.position+'-over'); + t.on('click', this.onExpandClick, this, {stopEvent:true}); + + if(this.floatable !== false){ + this.collapsedEl.addClassOnOver("x-layout-collapsed-over"); + this.collapsedEl.on("click", this.collapseClick, this); + } + } + } + return this.collapsedEl; + }, + + onExpandClick : function(e){ + if(this.isSlid){ + this.afterSlideIn(); + this.panel.expand(false); + }else{ + this.panel.expand(); + } + }, + + onCollapseClick : function(e){ + this.panel.collapse(); + }, + + beforeCollapse : function(p, animate){ + this.lastAnim = animate; + if(this.splitEl){ + this.splitEl.hide(); + } + this.getCollapsedEl().show(); + this.panel.el.setStyle('z-index', 100); + this.isCollapsed = true; + this.layout.layout(); + }, + + onCollapse : function(animate){ + this.panel.el.setStyle('z-index', 1); + if(this.lastAnim === false || this.panel.animCollapse === false){ + this.getCollapsedEl().dom.style.visibility = 'visible'; + }else{ + this.getCollapsedEl().slideIn(this.panel.slideAnchor, {duration:.2}); + } + this.state.collapsed = true; + this.panel.saveState(); + }, + + beforeExpand : function(animate){ + var c = this.getCollapsedEl(); + this.el.show(); + if(this.position == 'east' || this.position == 'west'){ + this.panel.setSize(undefined, c.getHeight()); + }else{ + this.panel.setSize(c.getWidth(), undefined); + } + c.hide(); + c.dom.style.visibility = 'hidden'; + this.panel.el.setStyle('z-index', 100); + }, + + onExpand : function(){ + this.isCollapsed = false; + if(this.splitEl){ + this.splitEl.show(); + } + this.layout.layout(); + this.panel.el.setStyle('z-index', 1); + this.state.collapsed = false; + this.panel.saveState(); + }, + + collapseClick : function(e){ + if(this.isSlid){ + e.stopPropagation(); + this.slideIn(); + }else{ + e.stopPropagation(); + this.slideOut(); + } + }, + + onHide : function(){ + if(this.isCollapsed){ + this.getCollapsedEl().hide(); + }else if(this.splitEl){ + this.splitEl.hide(); + } + }, + + onShow : function(){ + if(this.isCollapsed){ + this.getCollapsedEl().show(); + }else if(this.splitEl){ + this.splitEl.show(); + } + }, + + + isVisible : function(){ + return !this.panel.hidden; + }, + + + getMargins : function(){ + return this.isCollapsed && this.cmargins ? this.cmargins : this.margins; + }, + + + getSize : function(){ + return this.isCollapsed ? this.getCollapsedEl().getSize() : this.panel.getSize(); + }, + + + setPanel : function(panel){ + this.panel = panel; + }, + + + getMinWidth: function(){ + return this.minWidth; + }, + + + getMinHeight: function(){ + return this.minHeight; + }, + + applyLayoutCollapsed : function(box){ + var ce = this.getCollapsedEl(); + ce.setLeftTop(box.x, box.y); + ce.setSize(box.width, box.height); + }, + + applyLayout : function(box){ + if(this.isCollapsed){ + this.applyLayoutCollapsed(box); + }else{ + this.panel.setPosition(box.x, box.y); + this.panel.setSize(box.width, box.height); + } + }, + + beforeSlide: function(){ + this.panel.beforeEffect(); + }, + + afterSlide : function(){ + this.panel.afterEffect(); + }, + + initAutoHide : function(){ + if(this.autoHide !== false){ + if(!this.autoHideHd){ + var st = new Ext.util.DelayedTask(this.slideIn, this); + this.autoHideHd = { + "mouseout": function(e){ + if(!e.within(this.el, true)){ + st.delay(500); + } + }, + "mouseover" : function(e){ + st.cancel(); + }, + scope : this + }; + } + this.el.on(this.autoHideHd); + } + }, + + clearAutoHide : function(){ + if(this.autoHide !== false){ + this.el.un("mouseout", this.autoHideHd.mouseout); + this.el.un("mouseover", this.autoHideHd.mouseover); + } + }, + + clearMonitor : function(){ + Ext.getDoc().un("click", this.slideInIf, this); + }, + + slideOut : function(){ + if(this.isSlid || this.el.hasActiveFx()){ + return; + } + this.isSlid = true; + var ts = this.panel.tools; + if(ts && ts.toggle){ + ts.toggle.hide(); + } + this.el.show(); + if(this.position == 'east' || this.position == 'west'){ + this.panel.setSize(undefined, this.collapsedEl.getHeight()); + }else{ + this.panel.setSize(this.collapsedEl.getWidth(), undefined); + } + this.restoreLT = [this.el.dom.style.left, this.el.dom.style.top]; + this.el.alignTo(this.collapsedEl, this.getCollapseAnchor()); + this.el.setStyle("z-index", 102); + if(this.animFloat !== false){ + this.beforeSlide(); + this.el.slideIn(this.getSlideAnchor(), { + callback: function(){ + this.afterSlide(); + this.initAutoHide(); + Ext.getDoc().on("click", this.slideInIf, this); + }, + scope: this, + block: true + }); + }else{ + this.initAutoHide(); + Ext.getDoc().on("click", this.slideInIf, this); + } + }, + + afterSlideIn : function(){ + this.clearAutoHide(); + this.isSlid = false; + this.clearMonitor(); + this.el.setStyle("z-index", ""); + this.el.dom.style.left = this.restoreLT[0]; + this.el.dom.style.top = this.restoreLT[1]; + + var ts = this.panel.tools; + if(ts && ts.toggle){ + ts.toggle.show(); + } + }, + + slideIn : function(cb){ + if(!this.isSlid || this.el.hasActiveFx()){ + Ext.callback(cb); + return; + } + this.isSlid = false; + if(this.animFloat !== false){ + this.beforeSlide(); + this.el.slideOut(this.getSlideAnchor(), { + callback: function(){ + this.el.hide(); + this.afterSlide(); + this.afterSlideIn(); + Ext.callback(cb); + }, + scope: this, + block: true + }); + }else{ + this.el.hide(); + this.afterSlideIn(); + } + }, + + slideInIf : function(e){ + if(!e.within(this.el)){ + this.slideIn(); + } + }, + + anchors : { + "west" : "left", + "east" : "right", + "north" : "top", + "south" : "bottom" + }, + + sanchors : { + "west" : "l", + "east" : "r", + "north" : "t", + "south" : "b" + }, + + canchors : { + "west" : "tl-tr", + "east" : "tr-tl", + "north" : "tl-bl", + "south" : "bl-tl" + }, + + getAnchor : function(){ + return this.anchors[this.position]; + }, + + getCollapseAnchor : function(){ + return this.canchors[this.position]; + }, + + getSlideAnchor : function(){ + return this.sanchors[this.position]; + }, + + getAlignAdj : function(){ + var cm = this.cmargins; + switch(this.position){ + case "west": + return [0, 0]; + break; + case "east": + return [0, 0]; + break; + case "north": + return [0, 0]; + break; + case "south": + return [0, 0]; + break; + } + }, + + getExpandAdj : function(){ + var c = this.collapsedEl, cm = this.cmargins; + switch(this.position){ + case "west": + return [-(cm.right+c.getWidth()+cm.left), 0]; + break; + case "east": + return [cm.right+c.getWidth()+cm.left, 0]; + break; + case "north": + return [0, -(cm.top+cm.bottom+c.getHeight())]; + break; + case "south": + return [0, cm.top+cm.bottom+c.getHeight()]; + break; + } + } +}; + + +Ext.layout.BorderLayout.SplitRegion = function(layout, config, pos){ + Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this, layout, config, pos); + this.applyLayout = this.applyFns[pos]; +}; + +Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, { + + splitTip : "Drag to resize.", + + collapsibleSplitTip : "Drag to resize. Double click to hide.", + + useSplitTips : false, + + splitSettings : { + north : { + orientation: Ext.SplitBar.VERTICAL, + placement: Ext.SplitBar.TOP, + maxFn : 'getVMaxSize', + minProp: 'minHeight', + maxProp: 'maxHeight' + }, + south : { + orientation: Ext.SplitBar.VERTICAL, + placement: Ext.SplitBar.BOTTOM, + maxFn : 'getVMaxSize', + minProp: 'minHeight', + maxProp: 'maxHeight' + }, + east : { + orientation: Ext.SplitBar.HORIZONTAL, + placement: Ext.SplitBar.RIGHT, + maxFn : 'getHMaxSize', + minProp: 'minWidth', + maxProp: 'maxWidth' + }, + west : { + orientation: Ext.SplitBar.HORIZONTAL, + placement: Ext.SplitBar.LEFT, + maxFn : 'getHMaxSize', + minProp: 'minWidth', + maxProp: 'maxWidth' + } + }, + + applyFns : { + west : function(box){ + if(this.isCollapsed){ + return this.applyLayoutCollapsed(box); + } + var sd = this.splitEl.dom, s = sd.style; + this.panel.setPosition(box.x, box.y); + var sw = sd.offsetWidth; + s.left = (box.x+box.width-sw)+'px'; + s.top = (box.y)+'px'; + s.height = Math.max(0, box.height)+'px'; + this.panel.setSize(box.width-sw, box.height); + }, + east : function(box){ + if(this.isCollapsed){ + return this.applyLayoutCollapsed(box); + } + var sd = this.splitEl.dom, s = sd.style; + var sw = sd.offsetWidth; + this.panel.setPosition(box.x+sw, box.y); + s.left = (box.x)+'px'; + s.top = (box.y)+'px'; + s.height = Math.max(0, box.height)+'px'; + this.panel.setSize(box.width-sw, box.height); + }, + north : function(box){ + if(this.isCollapsed){ + return this.applyLayoutCollapsed(box); + } + var sd = this.splitEl.dom, s = sd.style; + var sh = sd.offsetHeight; + this.panel.setPosition(box.x, box.y); + s.left = (box.x)+'px'; + s.top = (box.y+box.height-sh)+'px'; + s.width = Math.max(0, box.width)+'px'; + this.panel.setSize(box.width, box.height-sh); + }, + south : function(box){ + if(this.isCollapsed){ + return this.applyLayoutCollapsed(box); + } + var sd = this.splitEl.dom, s = sd.style; + var sh = sd.offsetHeight; + this.panel.setPosition(box.x, box.y+sh); + s.left = (box.x)+'px'; + s.top = (box.y)+'px'; + s.width = Math.max(0, box.width)+'px'; + this.panel.setSize(box.width, box.height-sh); + } + }, + + render : function(ct, p){ + Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this, ct, p); + + var ps = this.position; + + this.splitEl = ct.createChild({ + cls: "x-layout-split x-layout-split-"+ps, html: " ", + id: this.panel.id + '-xsplit' + }); + + if(this.collapseMode == 'mini'){ + this.miniSplitEl = this.splitEl.createChild({ + cls: "x-layout-mini x-layout-mini-"+ps, html: " " + }); + this.miniSplitEl.addClassOnOver('x-layout-mini-over'); + this.miniSplitEl.on('click', this.onCollapseClick, this, {stopEvent:true}); + } + + var s = this.splitSettings[ps]; + + this.split = new Ext.SplitBar(this.splitEl.dom, p.el, s.orientation); + this.split.placement = s.placement; + this.split.getMaximumSize = this[s.maxFn].createDelegate(this); + this.split.minSize = this.minSize || this[s.minProp]; + this.split.on("beforeapply", this.onSplitMove, this); + this.split.useShim = this.useShim === true; + this.maxSize = this.maxSize || this[s.maxProp]; + + if(p.hidden){ + this.splitEl.hide(); + } + + if(this.useSplitTips){ + this.splitEl.dom.title = this.collapsible ? this.collapsibleSplitTip : this.splitTip; + } + if(this.collapsible){ + this.splitEl.on("dblclick", this.onCollapseClick, this); + } + }, + + getSize : function(){ + if(this.isCollapsed){ + return this.collapsedEl.getSize(); + } + var s = this.panel.getSize(); + if(this.position == 'north' || this.position == 'south'){ + s.height += this.splitEl.dom.offsetHeight; + }else{ + s.width += this.splitEl.dom.offsetWidth; + } + return s; + }, + + getHMaxSize : function(){ + var cmax = this.maxSize || 10000; + var center = this.layout.center; + return Math.min(cmax, (this.el.getWidth()+center.el.getWidth())-center.getMinWidth()); + }, + + getVMaxSize : function(){ + var cmax = this.maxSize || 10000; + var center = this.layout.center; + return Math.min(cmax, (this.el.getHeight()+center.el.getHeight())-center.getMinHeight()); + }, + + onSplitMove : function(split, newSize){ + var s = this.panel.getSize(); + this.lastSplitSize = newSize; + if(this.position == 'north' || this.position == 'south'){ + this.panel.setSize(s.width, newSize); + this.state.height = newSize; + }else{ + this.panel.setSize(newSize, s.height); + this.state.width = newSize; + } + this.layout.layout(); + this.panel.saveState(); + return false; + }, + + + getSplitBar : function(){ + return this.split; + } +}); + +Ext.Container.LAYOUTS['border'] = Ext.layout.BorderLayout; + +Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { + + + + labelSeparator : ':', + + getAnchorViewSize : function(ct, target){ + return ct.body.getStyleSize(); + }, + + setContainer : function(ct){ + Ext.layout.FormLayout.superclass.setContainer.call(this, ct); + + if(ct.labelAlign){ + ct.addClass('x-form-label-'+ct.labelAlign); + } + + if(ct.hideLabels){ + this.labelStyle = "display:none"; + this.elementStyle = "padding-left:0;"; + this.labelAdjust = 0; + }else{ + this.labelSeparator = ct.labelSeparator || this.labelSeparator; + ct.labelWidth = ct.labelWidth || 100; + if(typeof ct.labelWidth == 'number'){ + var pad = (typeof ct.labelPad == 'number' ? ct.labelPad : 5); + this.labelAdjust = ct.labelWidth+pad; + this.labelStyle = "width:"+ct.labelWidth+"px;"; + this.elementStyle = "padding-left:"+(ct.labelWidth+pad)+'px'; + } + if(ct.labelAlign == 'top'){ + this.labelStyle = "width:auto;"; + this.labelAdjust = 0; + this.elementStyle = "padding-left:0;"; + } + } + + if(!this.fieldTpl){ + var t = new Ext.Template( + '
', + '', + '
', + '
', + '
' + ); + t.disableFormats = true; + t.compile(); + Ext.layout.FormLayout.prototype.fieldTpl = t; + } + }, + + renderItem : function(c, position, target){ + if(c && !c.rendered && c.isFormField && c.inputType != 'hidden'){ + var args = [ + c.id, c.fieldLabel, + c.labelStyle||this.labelStyle||'', + this.elementStyle||'', + typeof c.labelSeparator == 'undefined' ? this.labelSeparator : c.labelSeparator, + (c.itemCls||this.container.itemCls||'') + (c.hideLabel ? ' x-hide-label' : ''), + c.clearCls || 'x-form-clear-left' + ]; + if(typeof position == 'number'){ + position = target.dom.childNodes[position] || null; + } + if(position){ + this.fieldTpl.insertBefore(position, args); + }else{ + this.fieldTpl.append(target, args); + } + c.render('x-form-el-'+c.id); + }else { + Ext.layout.FormLayout.superclass.renderItem.apply(this, arguments); + } + }, + + adjustWidthAnchor : function(value, comp){ + return value - (comp.isFormField ? (comp.hideLabel ? 0 : this.labelAdjust) : 0); + }, + + isValidParent : function(c, target){ + return true; + } + + +}); + +Ext.Container.LAYOUTS['form'] = Ext.layout.FormLayout; + +Ext.layout.Accordion = Ext.extend(Ext.layout.FitLayout, { + + fill : true, + + autoWidth : true, + + titleCollapse : true, + + hideCollapseTool : false, + + collapseFirst : false, + + animate : false, + + sequence : false, + + activeOnTop : false, + + renderItem : function(c){ + if(this.animate === false){ + c.animCollapse = false; + } + c.collapsible = true; + if(this.autoWidth){ + c.autoWidth = true; + } + if(this.titleCollapse){ + c.titleCollapse = true; + } + if(this.hideCollapseTool){ + c.hideCollapseTool = true; + } + if(this.collapseFirst !== undefined){ + c.collapseFirst = this.collapseFirst; + } + if(!this.activeItem && !c.collapsed){ + this.activeItem = c; + }else if(this.activeItem){ + c.collapsed = true; + } + Ext.layout.Accordion.superclass.renderItem.apply(this, arguments); + c.header.addClass('x-accordion-hd'); + c.on('beforeexpand', this.beforeExpand, this); + }, + + + beforeExpand : function(p, anim){ + var ai = this.activeItem; + if(ai){ + if(this.sequence){ + delete this.activeItem; + if (!ai.collapsed){ + ai.collapse({callback:function(){ + p.expand(anim || true); + }, scope: this}); + return false; + } + }else{ + ai.collapse(this.animate); + } + } + this.activeItem = p; + if(this.activeOnTop){ + p.el.dom.parentNode.insertBefore(p.el.dom, p.el.dom.parentNode.firstChild); + } + this.layout(); + }, + + + setItemSize : function(item, size){ + if(this.fill && item){ + var items = this.container.items.items; + var hh = 0; + for(var i = 0, len = items.length; i < len; i++){ + var p = items[i]; + if(p != item){ + hh += (p.getSize().height - p.bwrap.getHeight()); + } + } + size.height -= hh; + item.setSize(size); + } + } +}); +Ext.Container.LAYOUTS['accordion'] = Ext.layout.Accordion; + +Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, { + + + + monitorResize:false, + + + setContainer : function(ct){ + Ext.layout.TableLayout.superclass.setContainer.call(this, ct); + + this.currentRow = 0; + this.currentColumn = 0; + this.cells = []; + }, + + + onLayout : function(ct, target){ + var cs = ct.items.items, len = cs.length, c, i; + + if(!this.table){ + target.addClass('x-table-layout-ct'); + + this.table = target.createChild( + {tag:'table', cls:'x-table-layout', cellspacing: 0, cn: {tag: 'tbody'}}, null, true); + + this.renderAll(ct, target); + } + }, + + + getRow : function(index){ + var row = this.table.tBodies[0].childNodes[index]; + if(!row){ + row = document.createElement('tr'); + this.table.tBodies[0].appendChild(row); + } + return row; + }, + + + getNextCell : function(c){ + var cell = this.getNextNonSpan(this.currentColumn, this.currentRow); + var curCol = this.currentColumn = cell[0], curRow = this.currentRow = cell[1]; + for(var rowIndex = curRow; rowIndex < curRow + (c.rowspan || 1); rowIndex++){ + if(!this.cells[rowIndex]){ + this.cells[rowIndex] = []; + } + for(var colIndex = curCol; colIndex < curCol + (c.colspan || 1); colIndex++){ + this.cells[rowIndex][colIndex] = true; + } + } + var td = document.createElement('td'); + if(c.cellId){ + td.id = c.cellId; + } + var cls = 'x-table-layout-cell'; + if(c.cellCls){ + cls += ' ' + c.cellCls; + } + td.className = cls; + if(c.colspan){ + td.colSpan = c.colspan; + } + if(c.rowspan){ + td.rowSpan = c.rowspan; + } + this.getRow(curRow).appendChild(td); + return td; + }, + + + getNextNonSpan: function(colIndex, rowIndex){ + var cols = this.columns; + while((cols && colIndex >= cols) || (this.cells[rowIndex] && this.cells[rowIndex][colIndex])) { + if(cols && colIndex >= cols){ + rowIndex++; + colIndex = 0; + }else{ + colIndex++; + } + } + return [colIndex, rowIndex]; + }, + + + renderItem : function(c, position, target){ + if(c && !c.rendered){ + c.render(this.getNextCell(c)); + } + }, + + + isValidParent : function(c, target){ + return true; + } + + +}); + +Ext.Container.LAYOUTS['table'] = Ext.layout.TableLayout; + +Ext.layout.AbsoluteLayout = Ext.extend(Ext.layout.AnchorLayout, { + extraCls: 'x-abs-layout-item', + isForm: false, + + setContainer : function(ct){ + Ext.layout.AbsoluteLayout.superclass.setContainer.call(this, ct); + if(ct.isXType('form')){ + this.isForm = true; + } + }, + + onLayout : function(ct, target){ + if(this.isForm){ ct.body.position(); } else { target.position(); } + Ext.layout.AbsoluteLayout.superclass.onLayout.call(this, ct, target); + }, + + + getAnchorViewSize : function(ct, target){ + return this.isForm ? ct.body.getStyleSize() : Ext.layout.AbsoluteLayout.superclass.getAnchorViewSize.call(this, ct, target); + }, + + + isValidParent : function(c, target){ + return this.isForm ? true : Ext.layout.AbsoluteLayout.superclass.isValidParent.call(this, c, target); + }, + + + adjustWidthAnchor : function(value, comp){ + return value ? value - comp.getPosition(true)[0] : value; + }, + + + adjustHeightAnchor : function(value, comp){ + return value ? value - comp.getPosition(true)[1] : value; + } + +}); +Ext.Container.LAYOUTS['absolute'] = Ext.layout.AbsoluteLayout; + +Ext.Viewport = Ext.extend(Ext.Container, { + + + + + + + + + + + + + initComponent : function() { + Ext.Viewport.superclass.initComponent.call(this); + document.getElementsByTagName('html')[0].className += ' x-viewport'; + this.el = Ext.getBody(); + this.el.setHeight = Ext.emptyFn; + this.el.setWidth = Ext.emptyFn; + this.el.setSize = Ext.emptyFn; + this.el.dom.scroll = 'no'; + this.allowDomMove = false; + this.autoWidth = true; + this.autoHeight = true; + Ext.EventManager.onWindowResize(this.fireResize, this); + this.renderTo = this.el; + }, + + fireResize : function(w, h){ + this.fireEvent('resize', this, w, h, w, h); + } +}); +Ext.reg('viewport', Ext.Viewport); + +Ext.Panel = Ext.extend(Ext.Container, { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + baseCls : 'x-panel', + + collapsedCls : 'x-panel-collapsed', + + maskDisabled: true, + + animCollapse: Ext.enableFx, + + headerAsText: true, + + buttonAlign: 'right', + + collapsed : false, + + collapseFirst: true, + + minButtonWidth:75, + + elements : 'body', + + toolTarget : 'header', + collapseEl : 'bwrap', + slideAnchor : 't', + + deferHeight: true, + expandDefaults: { + duration:.25 + }, + collapseDefaults: { + duration:.25 + }, + + initComponent : function(){ + Ext.Panel.superclass.initComponent.call(this); + + this.addEvents( + + 'bodyresize', + + 'titlechange', + + 'collapse', + + 'expand', + + 'beforecollapse', + + 'beforeexpand', + + 'beforeclose', + + 'close', + + 'activate', + + 'deactivate' + ); + + if(this.tbar){ + this.elements += ',tbar'; + if(typeof this.tbar == 'object'){ + this.topToolbar = this.tbar; + } + delete this.tbar; + } + if(this.bbar){ + this.elements += ',bbar'; + if(typeof this.bbar == 'object'){ + this.bottomToolbar = this.bbar; + } + delete this.bbar; + } + + if(this.header === true){ + this.elements += ',header'; + delete this.header; + }else if(this.title && this.header !== false){ + this.elements += ',header'; + } + + if(this.footer === true){ + this.elements += ',footer'; + delete this.footer; + } + + if(this.buttons){ + var btns = this.buttons; + + this.buttons = []; + for(var i = 0, len = btns.length; i < len; i++) { + if(btns[i].render){ this.buttons.push(btns[i]); + }else{ + this.addButton(btns[i]); + } + } + } + if(this.autoLoad){ + this.on('render', this.doAutoLoad, this, {delay:10}); + } + }, + + createElement : function(name, pnode){ + if(this[name]){ + pnode.appendChild(this[name].dom); + return; + } + + if(name === 'bwrap' || this.elements.indexOf(name) != -1){ + if(this[name+'Cfg']){ + this[name] = Ext.fly(pnode).createChild(this[name+'Cfg']); + }else{ + var el = document.createElement('div'); + el.className = this[name+'Cls']; + this[name] = Ext.get(pnode.appendChild(el)); + } + } + }, + + onRender : function(ct, position){ + Ext.Panel.superclass.onRender.call(this, ct, position); + + this.createClasses(); + + if(this.el){ this.el.addClass(this.baseCls); + this.header = this.el.down('.'+this.headerCls); + this.bwrap = this.el.down('.'+this.bwrapCls); + var cp = this.bwrap ? this.bwrap : this.el; + this.tbar = cp.down('.'+this.tbarCls); + this.body = cp.down('.'+this.bodyCls); + this.bbar = cp.down('.'+this.bbarCls); + this.footer = cp.down('.'+this.footerCls); + this.fromMarkup = true; + }else{ + this.el = ct.createChild({ + id: this.id, + cls: this.baseCls + }, position); + } + var el = this.el, d = el.dom; + + if(this.cls){ + this.el.addClass(this.cls); + } + + if(this.buttons){ + this.elements += ',footer'; + } + + + if(this.frame){ + el.insertHtml('afterBegin', String.format(Ext.Element.boxMarkup, this.baseCls)); + + this.createElement('header', d.firstChild.firstChild.firstChild); + this.createElement('bwrap', d); + + var bw = this.bwrap.dom; + var ml = d.childNodes[1], bl = d.childNodes[2]; + bw.appendChild(ml); + bw.appendChild(bl); + + var mc = bw.firstChild.firstChild.firstChild; + this.createElement('tbar', mc); + this.createElement('body', mc); + this.createElement('bbar', mc); + this.createElement('footer', bw.lastChild.firstChild.firstChild); + + if(!this.footer){ + this.bwrap.dom.lastChild.className += ' x-panel-nofooter'; + } + }else{ + this.createElement('header', d); + this.createElement('bwrap', d); + + var bw = this.bwrap.dom; + this.createElement('tbar', bw); + this.createElement('body', bw); + this.createElement('bbar', bw); + this.createElement('footer', bw); + + if(!this.header){ + this.body.addClass(this.bodyCls + '-noheader'); + if(this.tbar){ + this.tbar.addClass(this.tbarCls + '-noheader'); + } + } + } + + if(this.border === false){ + this.el.addClass(this.baseCls + '-noborder'); + this.body.addClass(this.bodyCls + '-noborder'); + if(this.header){ + this.header.addClass(this.headerCls + '-noborder'); + } + if(this.footer){ + this.footer.addClass(this.footerCls + '-noborder'); + } + if(this.tbar){ + this.tbar.addClass(this.tbarCls + '-noborder'); + } + if(this.bbar){ + this.bbar.addClass(this.bbarCls + '-noborder'); + } + } + + if(this.bodyBorder === false){ + this.body.addClass(this.bodyCls + '-noborder'); + } + + if(this.bodyStyle){ + this.body.applyStyles(this.bodyStyle); + } + + this.bwrap.enableDisplayMode('block'); + + if(this.header){ + this.header.unselectable(); + + if(this.headerAsText){ + this.header.dom.innerHTML = + ''+this.header.dom.innerHTML+''; + + if(this.iconCls){ + this.setIconClass(this.iconCls); + } + } + } + + if(this.floating){ + this.makeFloating(this.floating); + } + + if(this.collapsible){ + this.tools = this.tools ? this.tools.slice(0) : []; + if(!this.hideCollapseTool){ + this.tools[this.collapseFirst?'unshift':'push']({ + id: 'toggle', + handler : this.toggleCollapse, + scope: this + }); + } + if(this.titleCollapse && this.header){ + this.header.on('click', this.toggleCollapse, this); + this.header.setStyle('cursor', 'pointer'); + } + } + if(this.tools){ + var ts = this.tools; + this.tools = {}; + this.addTool.apply(this, ts); + }else{ + this.tools = {}; + } + + if(this.buttons && this.buttons.length > 0){ + var tb = this.footer.createChild({cls:'x-panel-btns-ct', cn: { + cls:"x-panel-btns x-panel-btns-"+this.buttonAlign, + html:'
' + }}, null, true); + var tr = tb.getElementsByTagName('tr')[0]; + for(var i = 0, len = this.buttons.length; i < len; i++) { + var b = this.buttons[i]; + var td = document.createElement('td'); + td.className = 'x-panel-btn-td'; + b.render(tr.appendChild(td)); + } + } + + if(this.tbar && this.topToolbar){ + if(Ext.isArray(this.topToolbar)){ + this.topToolbar = new Ext.Toolbar(this.topToolbar); + } + this.topToolbar.render(this.tbar); + this.topToolbar.ownerCt = this; + } + if(this.bbar && this.bottomToolbar){ + if(Ext.isArray(this.bottomToolbar)){ + this.bottomToolbar = new Ext.Toolbar(this.bottomToolbar); + } + this.bottomToolbar.render(this.bbar); + this.bottomToolbar.ownerCt = this; + } + }, + + + setIconClass : function(cls){ + var old = this.iconCls; + this.iconCls = cls; + if(this.rendered && this.header){ + if(this.frame){ + this.header.addClass('x-panel-icon'); + this.header.replaceClass(old, this.iconCls); + }else{ + var hd = this.header.dom; + var img = hd.firstChild && String(hd.firstChild.tagName).toLowerCase() == 'img' ? hd.firstChild : null; + if(img){ + Ext.fly(img).replaceClass(old, this.iconCls); + }else{ + Ext.DomHelper.insertBefore(hd.firstChild, { + tag:'img', src: Ext.BLANK_IMAGE_URL, cls:'x-panel-inline-icon '+this.iconCls + }); + } + } + } + }, + + makeFloating : function(cfg){ + this.floating = true; + this.el = new Ext.Layer( + typeof cfg == 'object' ? cfg : { + shadow: this.shadow !== undefined ? this.shadow : 'sides', + shadowOffset: this.shadowOffset, + constrain:false, + shim: this.shim === false ? false : undefined + }, this.el + ); + }, + + + getTopToolbar : function(){ + return this.topToolbar; + }, + + + getBottomToolbar : function(){ + return this.bottomToolbar; + }, + + + addButton : function(config, handler, scope){ + var bc = { + handler: handler, + scope: scope, + minWidth: this.minButtonWidth, + hideParent:true + }; + if(typeof config == "string"){ + bc.text = config; + }else{ + Ext.apply(bc, config); + } + var btn = new Ext.Button(bc); + btn.ownerCt = this; + if(!this.buttons){ + this.buttons = []; + } + this.buttons.push(btn); + return btn; + }, + + addTool : function(){ + if(!this[this.toolTarget]) { return; + } + if(!this.toolTemplate){ + var tt = new Ext.Template( + '
 
' + ); + tt.disableFormats = true; + tt.compile(); + Ext.Panel.prototype.toolTemplate = tt; + } + for(var i = 0, a = arguments, len = a.length; i < len; i++) { + var tc = a[i], overCls = 'x-tool-'+tc.id+'-over'; + var t = this.toolTemplate.insertFirst((tc.align !== 'left') ? this[this.toolTarget] : this[this.toolTarget].child('span'), tc, true); + this.tools[tc.id] = t; + t.enableDisplayMode('block'); + t.on('click', this.createToolHandler(t, tc, overCls, this)); + if(tc.on){ + t.on(tc.on); + } + if(tc.hidden){ + t.hide(); + } + if(tc.qtip){ + if(typeof tc.qtip == 'object'){ + Ext.QuickTips.register(Ext.apply({ + target: t.id + }, tc.qtip)); + } else { + t.dom.qtip = tc.qtip; + } + } + t.addClassOnOver(overCls); + } + }, + + onShow : function(){ + if(this.floating){ + return this.el.show(); + } + Ext.Panel.superclass.onShow.call(this); + }, + + onHide : function(){ + if(this.floating){ + return this.el.hide(); + } + Ext.Panel.superclass.onHide.call(this); + }, + + createToolHandler : function(t, tc, overCls, panel){ + return function(e){ + t.removeClass(overCls); + e.stopEvent(); + if(tc.handler){ + tc.handler.call(tc.scope || t, e, t, panel); + } + }; + }, + + afterRender : function(){ + if(this.fromMarkup && this.height === undefined && !this.autoHeight){ + this.height = this.el.getHeight(); + } + if(this.floating && !this.hidden && !this.initHidden){ + this.el.show(); + } + if(this.title){ + this.setTitle(this.title); + } + this.setAutoScroll(); + if(this.html){ + this.body.update(typeof this.html == 'object' ? + Ext.DomHelper.markup(this.html) : + this.html); + delete this.html; + } + if(this.contentEl){ + var ce = Ext.getDom(this.contentEl); + Ext.fly(ce).removeClass(['x-hidden', 'x-hide-display']); + this.body.dom.appendChild(ce); + } + if(this.collapsed){ + this.collapsed = false; + this.collapse(false); + } + Ext.Panel.superclass.afterRender.call(this); this.initEvents(); + }, + + setAutoScroll : function(){ + if(this.rendered && this.autoScroll){ + this.body.setOverflow('auto'); + } + }, + + getKeyMap : function(){ + if(!this.keyMap){ + this.keyMap = new Ext.KeyMap(this.el, this.keys); + } + return this.keyMap; + }, + + initEvents : function(){ + if(this.keys){ + this.getKeyMap(); + } + if(this.draggable){ + this.initDraggable(); + } + }, + + initDraggable : function(){ + + this.dd = new Ext.Panel.DD(this, typeof this.draggable == 'boolean' ? null : this.draggable); + }, + + beforeEffect : function(){ + if(this.floating){ + this.el.beforeAction(); + } + this.el.addClass('x-panel-animated'); + }, + + afterEffect : function(){ + this.syncShadow(); + this.el.removeClass('x-panel-animated'); + }, + + createEffect : function(a, cb, scope){ + var o = { + scope:scope, + block:true + }; + if(a === true){ + o.callback = cb; + return o; + }else if(!a.callback){ + o.callback = cb; + }else { o.callback = function(){ + cb.call(scope); + Ext.callback(a.callback, a.scope); + }; + } + return Ext.applyIf(o, a); + }, + + + collapse : function(animate){ + if(this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforecollapse', this, animate) === false){ + return; + } + var doAnim = animate === true || (animate !== false && this.animCollapse); + this.beforeEffect(); + this.onCollapse(doAnim, animate); + return this; + }, + + onCollapse : function(doAnim, animArg){ + if(doAnim){ + this[this.collapseEl].slideOut(this.slideAnchor, + Ext.apply(this.createEffect(animArg||true, this.afterCollapse, this), + this.collapseDefaults)); + }else{ + this[this.collapseEl].hide(); + this.afterCollapse(); + } + }, + + afterCollapse : function(){ + this.collapsed = true; + this.el.addClass(this.collapsedCls); + this.afterEffect(); + this.fireEvent('collapse', this); + }, + + + expand : function(animate){ + if(!this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforeexpand', this, animate) === false){ + return; + } + var doAnim = animate === true || (animate !== false && this.animCollapse); + this.el.removeClass(this.collapsedCls); + this.beforeEffect(); + this.onExpand(doAnim, animate); + return this; + }, + + onExpand : function(doAnim, animArg){ + if(doAnim){ + this[this.collapseEl].slideIn(this.slideAnchor, + Ext.apply(this.createEffect(animArg||true, this.afterExpand, this), + this.expandDefaults)); + }else{ + this[this.collapseEl].show(); + this.afterExpand(); + } + }, + + afterExpand : function(){ + this.collapsed = false; + this.afterEffect(); + this.fireEvent('expand', this); + }, + + + toggleCollapse : function(animate){ + this[this.collapsed ? 'expand' : 'collapse'](animate); + return this; + }, + + onDisable : function(){ + if(this.rendered && this.maskDisabled){ + this.el.mask(); + } + Ext.Panel.superclass.onDisable.call(this); + }, + + onEnable : function(){ + if(this.rendered && this.maskDisabled){ + this.el.unmask(); + } + Ext.Panel.superclass.onEnable.call(this); + }, + + onResize : function(w, h){ + if(w !== undefined || h !== undefined){ + if(!this.collapsed){ + if(typeof w == 'number'){ + this.body.setWidth( + this.adjustBodyWidth(w - this.getFrameWidth())); + }else if(w == 'auto'){ + this.body.setWidth(w); + } + + if(typeof h == 'number'){ + this.body.setHeight( + this.adjustBodyHeight(h - this.getFrameHeight())); + }else if(h == 'auto'){ + this.body.setHeight(h); + } + }else{ + this.queuedBodySize = {width: w, height: h}; + if(!this.queuedExpand && this.allowQueuedExpand !== false){ + this.queuedExpand = true; + this.on('expand', function(){ + delete this.queuedExpand; + this.onResize(this.queuedBodySize.width, this.queuedBodySize.height); + this.doLayout(); + }, this, {single:true}); + } + } + this.fireEvent('bodyresize', this, w, h); + } + this.syncShadow(); + }, + + adjustBodyHeight : function(h){ + return h; + }, + + adjustBodyWidth : function(w){ + return w; + }, + + onPosition : function(){ + this.syncShadow(); + }, + + onDestroy : function(){ + if(this.tools){ + for(var k in this.tools){ + Ext.destroy(this.tools[k]); + } + } + if(this.buttons){ + for(var b in this.buttons){ + Ext.destroy(this.buttons[b]); + } + } + Ext.destroy( + this.topToolbar, + this.bottomToolbar + ); + Ext.Panel.superclass.onDestroy.call(this); + }, + + + getFrameWidth : function(){ + var w = this.el.getFrameWidth('lr'); + + if(this.frame){ + var l = this.bwrap.dom.firstChild; + w += (Ext.fly(l).getFrameWidth('l') + Ext.fly(l.firstChild).getFrameWidth('r')); + var mc = this.bwrap.dom.firstChild.firstChild.firstChild; + w += Ext.fly(mc).getFrameWidth('lr'); + } + return w; + }, + + + getFrameHeight : function(){ + var h = this.el.getFrameWidth('tb'); + h += (this.tbar ? this.tbar.getHeight() : 0) + + (this.bbar ? this.bbar.getHeight() : 0); + + if(this.frame){ + var hd = this.el.dom.firstChild; + var ft = this.bwrap.dom.lastChild; + h += (hd.offsetHeight + ft.offsetHeight); + var mc = this.bwrap.dom.firstChild.firstChild.firstChild; + h += Ext.fly(mc).getFrameWidth('tb'); + }else{ + h += (this.header ? this.header.getHeight() : 0) + + (this.footer ? this.footer.getHeight() : 0); + } + return h; + }, + + + getInnerWidth : function(){ + return this.getSize().width - this.getFrameWidth(); + }, + + + getInnerHeight : function(){ + return this.getSize().height - this.getFrameHeight(); + }, + + syncShadow : function(){ + if(this.floating){ + this.el.sync(true); + } + }, + + getLayoutTarget : function(){ + return this.body; + }, + + + setTitle : function(title, iconCls){ + this.title = title; + if(this.header && this.headerAsText){ + this.header.child('span').update(title); + } + if(iconCls){ + this.setIconClass(iconCls); + } + this.fireEvent('titlechange', this, title); + return this; + }, + + + getUpdater : function(){ + return this.body.getUpdater(); + }, + + + load : function(){ + var um = this.body.getUpdater(); + um.update.apply(um, arguments); + return this; + }, + + beforeDestroy : function(){ + Ext.Element.uncache( + this.header, + this.tbar, + this.bbar, + this.footer, + this.body + ); + }, + + createClasses : function(){ + this.headerCls = this.baseCls + '-header'; + this.headerTextCls = this.baseCls + '-header-text'; + this.bwrapCls = this.baseCls + '-bwrap'; + this.tbarCls = this.baseCls + '-tbar'; + this.bodyCls = this.baseCls + '-body'; + this.bbarCls = this.baseCls + '-bbar'; + this.footerCls = this.baseCls + '-footer'; + }, + + createGhost : function(cls, useShim, appendTo){ + var el = document.createElement('div'); + el.className = 'x-panel-ghost ' + (cls ? cls : ''); + if(this.header){ + el.appendChild(this.el.dom.firstChild.cloneNode(true)); + } + Ext.fly(el.appendChild(document.createElement('ul'))).setHeight(this.bwrap.getHeight()); + el.style.width = this.el.dom.offsetWidth + 'px';; + if(!appendTo){ + this.container.dom.appendChild(el); + }else{ + Ext.getDom(appendTo).appendChild(el); + } + if(useShim !== false && this.el.useShim !== false){ + var layer = new Ext.Layer({shadow:false, useDisplay:true, constrain:false}, el); + layer.show(); + return layer; + }else{ + return new Ext.Element(el); + } + }, + + doAutoLoad : function(){ + this.body.load( + typeof this.autoLoad == 'object' ? + this.autoLoad : {url: this.autoLoad}); + } + + +}); +Ext.reg('panel', Ext.Panel); + + +Ext.Window = Ext.extend(Ext.Panel, { + + + + + + + + + + baseCls : 'x-window', + + resizable:true, + + draggable:true, + + closable : true, + + constrain:false, + + constrainHeader:false, + + plain:false, + + minimizable : false, + + maximizable : false, + + minHeight: 100, + + minWidth: 200, + + expandOnShow: true, + + closeAction: 'close', + + elements: 'header,body', + + collapsible:false, + + initHidden : true, + + monitorResize : true, + + frame:true, + + floating:true, + + initComponent : function(){ + Ext.Window.superclass.initComponent.call(this); + this.addEvents( + + + + 'resize', + + 'maximize', + + 'minimize', + + 'restore' + ); + }, + + getState : function(){ + return Ext.apply(Ext.Window.superclass.getState.call(this) || {}, this.getBox()); + }, + + onRender : function(ct, position){ + Ext.Window.superclass.onRender.call(this, ct, position); + + if(this.plain){ + this.el.addClass('x-window-plain'); + } + + this.focusEl = this.el.createChild({ + tag: "a", href:"#", cls:"x-dlg-focus", + tabIndex:"-1", html: " "}); + this.focusEl.swallowEvent('click', true); + + this.proxy = this.el.createProxy("x-window-proxy"); + this.proxy.enableDisplayMode('block'); + + if(this.modal){ + this.mask = this.container.createChild({cls:"ext-el-mask"}, this.el.dom); + this.mask.enableDisplayMode("block"); + this.mask.hide(); + } + }, + + initEvents : function(){ + Ext.Window.superclass.initEvents.call(this); + if(this.animateTarget){ + this.setAnimateTarget(this.animateTarget); + } + + if(this.resizable){ + this.resizer = new Ext.Resizable(this.el, { + minWidth: this.minWidth, + minHeight:this.minHeight, + handles: this.resizeHandles || "all", + pinned: true, + resizeElement : this.resizerAction + }); + this.resizer.window = this; + this.resizer.on("beforeresize", this.beforeResize, this); + } + + if(this.draggable){ + this.header.addClass("x-window-draggable"); + } + this.initTools(); + + this.el.on("mousedown", this.toFront, this); + this.manager = this.manager || Ext.WindowMgr; + this.manager.register(this); + this.hidden = true; + if(this.maximized){ + this.maximized = false; + this.maximize(); + } + if(this.closable){ + var km = this.getKeyMap(); + km.on(27, this.onEsc, this); + km.disable(); + } + }, + + initDraggable : function(){ + + this.dd = new Ext.Window.DD(this); + }, + + onEsc : function(){ + this[this.closeAction](); + }, + + beforeDestroy : function(){ + Ext.destroy( + this.resizer, + this.dd, + this.proxy, + this.mask + ); + Ext.Window.superclass.beforeDestroy.call(this); + }, + + onDestroy : function(){ + if(this.manager){ + this.manager.unregister(this); + } + Ext.Window.superclass.onDestroy.call(this); + }, + + initTools : function(){ + if(this.minimizable){ + this.addTool({ + id: 'minimize', + handler: this.minimize.createDelegate(this, []) + }); + } + if(this.maximizable){ + this.addTool({ + id: 'maximize', + handler: this.maximize.createDelegate(this, []) + }); + this.addTool({ + id: 'restore', + handler: this.restore.createDelegate(this, []), + hidden:true + }); + this.header.on('dblclick', this.toggleMaximize, this); + } + if(this.closable){ + this.addTool({ + id: 'close', + handler: this[this.closeAction].createDelegate(this, []) + }); + } + }, + + resizerAction : function(){ + var box = this.proxy.getBox(); + this.proxy.hide(); + this.window.handleResize(box); + return box; + }, + + beforeResize : function(){ + this.resizer.minHeight = Math.max(this.minHeight, this.getFrameHeight() + 40); this.resizer.minWidth = Math.max(this.minWidth, this.getFrameWidth() + 40); + this.resizeBox = this.el.getBox(); + }, + + updateHandles : function(){ + if(Ext.isIE && this.resizer){ + this.resizer.syncHandleHeight(); + this.el.repaint(); + } + }, + + handleResize : function(box){ + var rz = this.resizeBox; + if(rz.x != box.x || rz.y != box.y){ + this.updateBox(box); + }else{ + this.setSize(box); + } + this.focus(); + this.updateHandles(); + this.saveState(); + this.fireEvent("resize", this, box.width, box.height); + }, + + + focus : function(){ + var f = this.focusEl, db = this.defaultButton, t = typeof db; + if(t != 'undefined'){ + if(t == 'number'){ + f = this.buttons[db]; + }else if(t == 'string'){ + f = Ext.getCmp(db); + }else{ + f = db; + } + } + f.focus.defer(10, f); + }, + + + setAnimateTarget : function(el){ + el = Ext.get(el); + this.animateTarget = el; + }, + + beforeShow : function(){ + delete this.el.lastXY; + delete this.el.lastLT; + if(this.x === undefined || this.y === undefined){ + var xy = this.el.getAlignToXY(this.container, 'c-c'); + var pos = this.el.translatePoints(xy[0], xy[1]); + this.x = this.x === undefined? pos.left : this.x; + this.y = this.y === undefined? pos.top : this.y; + } + this.el.setLeftTop(this.x, this.y); + + if(this.expandOnShow){ + this.expand(false); + } + + if(this.modal){ + Ext.getBody().addClass("x-body-masked"); + this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); + this.mask.show(); + } + }, + + + show : function(animateTarget, cb, scope){ + if(!this.rendered){ + this.render(Ext.getBody()); + } + if(this.hidden === false){ + this.toFront(); + return; + } + if(this.fireEvent("beforeshow", this) === false){ + return; + } + if(cb){ + this.on('show', cb, scope, {single:true}); + } + this.hidden = false; + if(animateTarget !== undefined){ + this.setAnimateTarget(animateTarget); + } + this.beforeShow(); + if(this.animateTarget){ + this.animShow(); + }else{ + this.afterShow(); + } + }, + + afterShow : function(){ + this.proxy.hide(); + this.el.setStyle('display', 'block'); + this.el.show(); + if(this.maximized){ + this.fitContainer(); + } + if(Ext.isMac && Ext.isGecko){ this.cascade(this.setAutoScroll); + } + + if(this.monitorResize || this.modal || this.constrain || this.constrainHeader){ + Ext.EventManager.onWindowResize(this.onWindowResize, this); + } + this.doConstrain(); + if(this.layout){ + this.doLayout(); + } + if(this.keyMap){ + this.keyMap.enable(); + } + this.toFront(); + this.updateHandles(); + this.fireEvent("show", this); + }, + + animShow : function(){ + this.proxy.show(); + this.proxy.setBox(this.animateTarget.getBox()); + this.proxy.setOpacity(0); + var b = this.getBox(false); + b.callback = this.afterShow; + b.scope = this; + b.duration = .25; + b.easing = 'easeNone'; + b.opacity = .5; + b.block = true; + this.el.setStyle('display', 'none'); + this.proxy.shift(b); + }, + + + hide : function(animateTarget, cb, scope){ + if(this.hidden || this.fireEvent("beforehide", this) === false){ + return; + } + if(cb){ + this.on('hide', cb, scope, {single:true}); + } + this.hidden = true; + if(animateTarget !== undefined){ + this.setAnimateTarget(animateTarget); + } + if(this.animateTarget){ + this.animHide(); + }else{ + this.el.hide(); + this.afterHide(); + } + }, + + afterHide : function(){ + this.proxy.hide(); + if(this.monitorResize || this.modal || this.constrain || this.constrainHeader){ + Ext.EventManager.removeResizeListener(this.onWindowResize, this); + } + if(this.modal){ + this.mask.hide(); + Ext.getBody().removeClass("x-body-masked"); + } + if(this.keyMap){ + this.keyMap.disable(); + } + this.fireEvent("hide", this); + }, + + animHide : function(){ + this.proxy.setOpacity(.5); + this.proxy.show(); + var tb = this.getBox(false); + this.proxy.setBox(tb); + this.el.hide(); + var b = this.animateTarget.getBox(); + b.callback = this.afterHide; + b.scope = this; + b.duration = .25; + b.easing = 'easeNone'; + b.block = true; + b.opacity = 0; + this.proxy.shift(b); + }, + + onWindowResize : function(){ + if(this.maximized){ + this.fitContainer(); + } + if(this.modal){ + this.mask.setSize('100%', '100%'); + var force = this.mask.dom.offsetHeight; + this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); + } + this.doConstrain(); + }, + + doConstrain : function(){ + if(this.constrain || this.constrainHeader){ + var offsets; + if(this.constrain){ + offsets = { + right:this.el.shadowOffset, + left:this.el.shadowOffset, + bottom:this.el.shadowOffset + }; + }else { + var s = this.getSize(); + offsets = { + right:-(s.width - 100), + bottom:-(s.height - 25) + }; + } + + var xy = this.el.getConstrainToXY(this.container, true, offsets); + if(xy){ + this.setPosition(xy[0], xy[1]); + } + } + }, + + ghost : function(cls){ + var ghost = this.createGhost(cls); + var box = this.getBox(true); + ghost.setLeftTop(box.x, box.y); + ghost.setWidth(box.width); + this.el.hide(); + this.activeGhost = ghost; + return ghost; + }, + + unghost : function(show, matchPosition){ + if(show !== false){ + this.el.show(); + this.focus(); + if(Ext.isMac && Ext.isGecko){ this.cascade(this.setAutoScroll); + } + } + if(matchPosition !== false){ + this.setPosition(this.activeGhost.getLeft(true), this.activeGhost.getTop(true)); + } + this.activeGhost.hide(); + this.activeGhost.remove(); + delete this.activeGhost; + }, + + + minimize : function(){ + this.fireEvent('minimize', this); + }, + + + close : function(){ + if(this.fireEvent("beforeclose", this) !== false){ + this.hide(null, function(){ + this.fireEvent('close', this); + this.destroy(); + }, this); + } + }, + + + maximize : function(){ + if(!this.maximized){ + this.expand(false); + this.restoreSize = this.getSize(); + this.restorePos = this.getPosition(true); + if (this.maximizable){ + this.tools.maximize.hide(); + this.tools.restore.show(); + } + this.maximized = true; + this.el.disableShadow(); + + if(this.dd){ + this.dd.lock(); + } + if(this.collapsible){ + this.tools.toggle.hide(); + } + this.el.addClass('x-window-maximized'); + this.container.addClass('x-window-maximized-ct'); + + this.setPosition(0, 0); + this.fitContainer(); + this.fireEvent('maximize', this); + } + }, + + + restore : function(){ + if(this.maximized){ + this.el.removeClass('x-window-maximized'); + this.tools.restore.hide(); + this.tools.maximize.show(); + this.setPosition(this.restorePos[0], this.restorePos[1]); + this.setSize(this.restoreSize.width, this.restoreSize.height); + delete this.restorePos; + delete this.restoreSize; + this.maximized = false; + this.el.enableShadow(true); + + if(this.dd){ + this.dd.unlock(); + } + if(this.collapsible){ + this.tools.toggle.show(); + } + this.container.removeClass('x-window-maximized-ct'); + + this.doConstrain(); + this.fireEvent('restore', this); + } + }, + + + toggleMaximize : function(){ + this[this.maximized ? 'restore' : 'maximize'](); + }, + + fitContainer : function(){ + var vs = this.container.getViewSize(); + this.setSize(vs.width, vs.height); + }, + + setZIndex : function(index){ + if(this.modal){ + this.mask.setStyle("z-index", index); + } + this.el.setZIndex(++index); + index += 5; + + if(this.resizer){ + this.resizer.proxy.setStyle("z-index", ++index); + } + + this.lastZIndex = index; + }, + + + alignTo : function(element, position, offsets){ + var xy = this.el.getAlignToXY(element, position, offsets); + this.setPagePosition(xy[0], xy[1]); + return this; + }, + + + anchorTo : function(el, alignment, offsets, monitorScroll, _pname){ + var action = function(){ + this.alignTo(el, alignment, offsets); + }; + Ext.EventManager.onWindowResize(action, this); + var tm = typeof monitorScroll; + if(tm != 'undefined'){ + Ext.EventManager.on(window, 'scroll', action, this, + {buffer: tm == 'number' ? monitorScroll : 50}); + } + action.call(this); + this[_pname] = action; + return this; + }, + + + toFront : function(){ + if(this.manager.bringToFront(this)){ + this.focus(); + } + return this; + }, + + + setActive : function(active){ + if(active){ + if(!this.maximized){ + this.el.enableShadow(true); + } + this.fireEvent('activate', this); + }else{ + this.el.disableShadow(); + this.fireEvent('deactivate', this); + } + }, + + + toBack : function(){ + this.manager.sendToBack(this); + return this; + }, + + + center : function(){ + var xy = this.el.getAlignToXY(this.container, 'c-c'); + this.setPagePosition(xy[0], xy[1]); + return this; + } +}); +Ext.reg('window', Ext.Window); + +Ext.Window.DD = function(win){ + this.win = win; + Ext.Window.DD.superclass.constructor.call(this, win.el.id, 'WindowDD-'+win.id); + this.setHandleElId(win.header.id); + this.scroll = false; +}; + +Ext.extend(Ext.Window.DD, Ext.dd.DD, { + moveOnly:true, + headerOffsets:[100, 25], + startDrag : function(){ + var w = this.win; + this.proxy = w.ghost(); + if(w.constrain !== false){ + var so = w.el.shadowOffset; + this.constrainTo(w.container, {right: so, left: so, bottom: so}); + }else if(w.constrainHeader !== false){ + var s = this.proxy.getSize(); + this.constrainTo(w.container, {right: -(s.width-this.headerOffsets[0]), bottom: -(s.height-this.headerOffsets[1])}); + } + }, + b4Drag : Ext.emptyFn, + + onDrag : function(e){ + this.alignElWithMouse(this.proxy, e.getPageX(), e.getPageY()); + }, + + endDrag : function(e){ + this.win.unghost(); + this.win.saveState(); + } +}); + + +Ext.WindowGroup = function(){ + var list = {}; + var accessList = []; + var front = null; + + var sortWindows = function(d1, d2){ + return (!d1._lastAccess || d1._lastAccess < d2._lastAccess) ? -1 : 1; + }; + + var orderWindows = function(){ + var a = accessList, len = a.length; + if(len > 0){ + a.sort(sortWindows); + var seed = a[0].manager.zseed; + for(var i = 0; i < len; i++){ + var win = a[i]; + if(win && !win.hidden){ + win.setZIndex(seed + (i*10)); + } + } + } + activateLast(); + }; + + var setActiveWin = function(win){ + if(win != front){ + if(front){ + front.setActive(false); + } + front = win; + if(win){ + win.setActive(true); + } + } + }; + + var activateLast = function(){ + for(var i = accessList.length-1; i >=0; --i) { + if(!accessList[i].hidden){ + setActiveWin(accessList[i]); + return; + } + } + setActiveWin(null); + }; + + return { + + zseed : 9000, + + register : function(win){ + list[win.id] = win; + accessList.push(win); + win.on('hide', activateLast); + }, + + unregister : function(win){ + delete list[win.id]; + win.un('hide', activateLast); + accessList.remove(win); + }, + + + get : function(id){ + return typeof id == "object" ? id : list[id]; + }, + + + bringToFront : function(win){ + win = this.get(win); + if(win != front){ + win._lastAccess = new Date().getTime(); + orderWindows(); + return true; + } + return false; + }, + + + sendToBack : function(win){ + win = this.get(win); + win._lastAccess = -(new Date().getTime()); + orderWindows(); + return win; + }, + + + hideAll : function(){ + for(var id in list){ + if(list[id] && typeof list[id] != "function" && list[id].isVisible()){ + list[id].hide(); + } + } + }, + + + getActive : function(){ + return front; + }, + + + getBy : function(fn, scope){ + var r = []; + for(var i = accessList.length-1; i >=0; --i) { + var win = accessList[i]; + if(fn.call(scope||win, win) !== false){ + r.push(win); + } + } + return r; + }, + + + each : function(fn, scope){ + for(var id in list){ + if(list[id] && typeof list[id] != "function"){ + if(fn.call(scope || list[id], list[id]) === false){ + return; + } + } + } + } + }; +}; + + + +Ext.WindowMgr = new Ext.WindowGroup(); + +Ext.dd.PanelProxy = function(panel, config){ + this.panel = panel; + this.id = this.panel.id +'-ddproxy'; + Ext.apply(this, config); +}; + +Ext.dd.PanelProxy.prototype = { + + insertProxy : true, + + + setStatus : Ext.emptyFn, + reset : Ext.emptyFn, + update : Ext.emptyFn, + stop : Ext.emptyFn, + sync: Ext.emptyFn, + + + getEl : function(){ + return this.ghost; + }, + + + getGhost : function(){ + return this.ghost; + }, + + + getProxy : function(){ + return this.proxy; + }, + + + hide : function(){ + if(this.ghost){ + if(this.proxy){ + this.proxy.remove(); + delete this.proxy; + } + this.panel.el.dom.style.display = ''; + this.ghost.remove(); + delete this.ghost; + } + }, + + + show : function(){ + if(!this.ghost){ + this.ghost = this.panel.createGhost(undefined, undefined, Ext.getBody()); + this.ghost.setXY(this.panel.el.getXY()) + if(this.insertProxy){ + this.proxy = this.panel.el.insertSibling({cls:'x-panel-dd-spacer'}); + this.proxy.setSize(this.panel.getSize()); + } + this.panel.el.dom.style.display = 'none'; + } + }, + + + repair : function(xy, callback, scope){ + this.hide(); + if(typeof callback == "function"){ + callback.call(scope || this); + } + }, + + + moveProxy : function(parentNode, before){ + if(this.proxy){ + parentNode.insertBefore(this.proxy.dom, before); + } + } +}; + + +Ext.Panel.DD = function(panel, cfg){ + this.panel = panel; + this.dragData = {panel: panel}; + this.proxy = new Ext.dd.PanelProxy(panel, cfg); + Ext.Panel.DD.superclass.constructor.call(this, panel.el, cfg); + var h = panel.header; + if(h){ + this.setHandleElId(h.id); + } + (h ? h : this.panel.body).setStyle('cursor', 'move'); + this.scroll = false; +}; + +Ext.extend(Ext.Panel.DD, Ext.dd.DragSource, { + showFrame: Ext.emptyFn, + startDrag: Ext.emptyFn, + b4StartDrag: function(x, y) { + this.proxy.show(); + }, + b4MouseDown: function(e) { + var x = e.getPageX(); + var y = e.getPageY(); + this.autoOffset(x, y); + }, + onInitDrag : function(x, y){ + this.onStartDrag(x, y); + return true; + }, + createFrame : Ext.emptyFn, + getDragEl : function(e){ + return this.proxy.ghost.dom; + }, + endDrag : function(e){ + this.proxy.hide(); + this.panel.saveState(); + }, + + autoOffset : function(x, y) { + x -= this.startPageX; + y -= this.startPageY; + this.setDelta(x, y); + } +}); + +Ext.state.Provider = function(){ + + this.addEvents("statechange"); + this.state = {}; + Ext.state.Provider.superclass.constructor.call(this); +}; +Ext.extend(Ext.state.Provider, Ext.util.Observable, { + + get : function(name, defaultValue){ + return typeof this.state[name] == "undefined" ? + defaultValue : this.state[name]; + }, + + + clear : function(name){ + delete this.state[name]; + this.fireEvent("statechange", this, name, null); + }, + + + set : function(name, value){ + this.state[name] = value; + this.fireEvent("statechange", this, name, value); + }, + + + decodeValue : function(cookie){ + var re = /^(a|n|d|b|s|o)\:(.*)$/; + var matches = re.exec(unescape(cookie)); + if(!matches || !matches[1]) return; + var type = matches[1]; + var v = matches[2]; + switch(type){ + case "n": + return parseFloat(v); + case "d": + return new Date(Date.parse(v)); + case "b": + return (v == "1"); + case "a": + var all = []; + var values = v.split("^"); + for(var i = 0, len = values.length; i < len; i++){ + all.push(this.decodeValue(values[i])); + } + return all; + case "o": + var all = {}; + var values = v.split("^"); + for(var i = 0, len = values.length; i < len; i++){ + var kv = values[i].split("="); + all[kv[0]] = this.decodeValue(kv[1]); + } + return all; + default: + return v; + } + }, + + + encodeValue : function(v){ + var enc; + if(typeof v == "number"){ + enc = "n:" + v; + }else if(typeof v == "boolean"){ + enc = "b:" + (v ? "1" : "0"); + }else if(Ext.isDate(v)){ + enc = "d:" + v.toGMTString(); + }else if(Ext.isArray(v)){ + var flat = ""; + for(var i = 0, len = v.length; i < len; i++){ + flat += this.encodeValue(v[i]); + if(i != len-1) flat += "^"; + } + enc = "a:" + flat; + }else if(typeof v == "object"){ + var flat = ""; + for(var key in v){ + if(typeof v[key] != "function" && v[key] !== undefined){ + flat += key + "=" + this.encodeValue(v[key]) + "^"; + } + } + enc = "o:" + flat.substring(0, flat.length-1); + }else{ + enc = "s:" + v; + } + return escape(enc); + } +}); + + +Ext.state.Manager = function(){ + var provider = new Ext.state.Provider(); + + return { + + setProvider : function(stateProvider){ + provider = stateProvider; + }, + + + get : function(key, defaultValue){ + return provider.get(key, defaultValue); + }, + + + set : function(key, value){ + provider.set(key, value); + }, + + + clear : function(key){ + provider.clear(key); + }, + + + getProvider : function(){ + return provider; + } + }; +}(); + + +Ext.state.CookieProvider = function(config){ + Ext.state.CookieProvider.superclass.constructor.call(this); + this.path = "/"; + this.expires = new Date(new Date().getTime()+(1000*60*60*24*7)); + this.domain = null; + this.secure = false; + Ext.apply(this, config); + this.state = this.readCookies(); +}; + +Ext.extend(Ext.state.CookieProvider, Ext.state.Provider, { + + set : function(name, value){ + if(typeof value == "undefined" || value === null){ + this.clear(name); + return; + } + this.setCookie(name, value); + Ext.state.CookieProvider.superclass.set.call(this, name, value); + }, + + + clear : function(name){ + this.clearCookie(name); + Ext.state.CookieProvider.superclass.clear.call(this, name); + }, + + + readCookies : function(){ + var cookies = {}; + var c = document.cookie + ";"; + var re = /\s?(.*?)=(.*?);/g; + var matches; + while((matches = re.exec(c)) != null){ + var name = matches[1]; + var value = matches[2]; + if(name && name.substring(0,3) == "ys-"){ + cookies[name.substr(3)] = this.decodeValue(value); + } + } + return cookies; + }, + + + setCookie : function(name, value){ + document.cookie = "ys-"+ name + "=" + this.encodeValue(value) + + ((this.expires == null) ? "" : ("; expires=" + this.expires.toGMTString())) + + ((this.path == null) ? "" : ("; path=" + this.path)) + + ((this.domain == null) ? "" : ("; domain=" + this.domain)) + + ((this.secure == true) ? "; secure" : ""); + }, + + + clearCookie : function(name){ + document.cookie = "ys-" + name + "=null; expires=Thu, 01-Jan-70 00:00:01 GMT" + + ((this.path == null) ? "" : ("; path=" + this.path)) + + ((this.domain == null) ? "" : ("; domain=" + this.domain)) + + ((this.secure == true) ? "; secure" : ""); + } +}); + +Ext.DataView = Ext.extend(Ext.BoxComponent, { + + + + + + + + + + selectedClass : "x-view-selected", + + emptyText : "", + + + deferEmptyText: true, + + last: false, + + initComponent : function(){ + Ext.DataView.superclass.initComponent.call(this); + if(typeof this.tpl == "string"){ + this.tpl = new Ext.XTemplate(this.tpl); + } + + this.addEvents( + + "beforeclick", + + "click", + + "containerclick", + + "dblclick", + + "contextmenu", + + "selectionchange", + + + "beforeselect" + ); + + this.all = new Ext.CompositeElementLite(); + this.selected = new Ext.CompositeElementLite(); + }, + + onRender : function(){ + if(!this.el){ + this.el = document.createElement('div'); + this.el.id = this.id; + } + Ext.DataView.superclass.onRender.apply(this, arguments); + }, + + afterRender : function(){ + Ext.DataView.superclass.afterRender.call(this); + + this.el.on({ + "click": this.onClick, + "dblclick": this.onDblClick, + "contextmenu": this.onContextMenu, + scope:this + }); + + if(this.overClass){ + this.el.on({ + "mouseover": this.onMouseOver, + "mouseout": this.onMouseOut, + scope:this + }); + } + + if(this.store){ + this.setStore(this.store, true); + } + }, + + + refresh : function(){ + this.clearSelections(false, true); + this.el.update(""); + var html = []; + var records = this.store.getRange(); + if(records.length < 1){ + if(!this.deferEmptyText || this.hasSkippedEmptyText){ + this.el.update(this.emptyText); + } + this.hasSkippedEmptyText = true; + this.all.clear(); + return; + } + this.tpl.overwrite(this.el, this.collectData(records, 0)); + this.all.fill(Ext.query(this.itemSelector, this.el.dom)); + this.updateIndexes(0); + }, + + + prepareData : function(data){ + return data; + }, + + collectData : function(records, startIndex){ + var r = []; + for(var i = 0, len = records.length; i < len; i++){ + r[r.length] = this.prepareData(records[i].data, startIndex+i, records[i]); + } + return r; + }, + + bufferRender : function(records){ + var div = document.createElement('div'); + this.tpl.overwrite(div, this.collectData(records)); + return Ext.query(this.itemSelector, div); + }, + + onUpdate : function(ds, record){ + var index = this.store.indexOf(record); + var sel = this.isSelected(index); + var original = this.all.elements[index]; + var node = this.bufferRender([record], index)[0]; + + this.all.replaceElement(index, node, true); + if(sel){ + this.selected.replaceElement(original, node); + this.all.item(index).addClass(this.selectedClass); + } + this.updateIndexes(index, index); + }, + + onAdd : function(ds, records, index){ + if(this.all.getCount() == 0){ + this.refresh(); + return; + } + var nodes = this.bufferRender(records, index), n, a = this.all.elements; + if(index < this.all.getCount()){ + n = this.all.item(index).insertSibling(nodes, 'before', true); + a.splice.apply(a, [index, 0].concat(nodes)); + }else{ + n = this.all.last().insertSibling(nodes, 'after', true); + a.push.apply(a, nodes); + } + this.updateIndexes(index); + }, + + onRemove : function(ds, record, index){ + this.deselect(index); + this.all.removeElement(index, true); + this.updateIndexes(index); + }, + + + refreshNode : function(index){ + this.onUpdate(this.store, this.store.getAt(index)); + }, + + updateIndexes : function(startIndex, endIndex){ + var ns = this.all.elements; + startIndex = startIndex || 0; + endIndex = endIndex || ((endIndex === 0) ? 0 : (ns.length - 1)); + for(var i = startIndex; i <= endIndex; i++){ + ns[i].viewIndex = i; + } + }, + + + setStore : function(store, initial){ + if(!initial && this.store){ + this.store.un("beforeload", this.onBeforeLoad, this); + this.store.un("datachanged", this.refresh, this); + this.store.un("add", this.onAdd, this); + this.store.un("remove", this.onRemove, this); + this.store.un("update", this.onUpdate, this); + this.store.un("clear", this.refresh, this); + } + if(store){ + store = Ext.StoreMgr.lookup(store); + store.on("beforeload", this.onBeforeLoad, this); + store.on("datachanged", this.refresh, this); + store.on("add", this.onAdd, this); + store.on("remove", this.onRemove, this); + store.on("update", this.onUpdate, this); + store.on("clear", this.refresh, this); + } + this.store = store; + if(store){ + this.refresh(); + } + }, + + + findItemFromChild : function(node){ + return Ext.fly(node).findParent(this.itemSelector, this.el); + }, + + onClick : function(e){ + var item = e.getTarget(this.itemSelector, this.el); + if(item){ + var index = this.indexOf(item); + if(this.onItemClick(item, index, e) !== false){ + this.fireEvent("click", this, index, item, e); + } + }else{ + if(this.fireEvent("containerclick", this, e) !== false){ + this.clearSelections(); + } + } + }, + + onContextMenu : function(e){ + var item = e.getTarget(this.itemSelector, this.el); + if(item){ + this.fireEvent("contextmenu", this, this.indexOf(item), item, e); + } + }, + + onDblClick : function(e){ + var item = e.getTarget(this.itemSelector, this.el); + if(item){ + this.fireEvent("dblclick", this, this.indexOf(item), item, e); + } + }, + + onMouseOver : function(e){ + var item = e.getTarget(this.itemSelector, this.el); + if(item && item !== this.lastItem){ + this.lastItem = item; + Ext.fly(item).addClass(this.overClass); + } + }, + + onMouseOut : function(e){ + if(this.lastItem){ + if(!e.within(this.lastItem, true)){ + Ext.fly(this.lastItem).removeClass(this.overClass); + delete this.lastItem; + } + } + }, + + onItemClick : function(item, index, e){ + if(this.fireEvent("beforeclick", this, index, item, e) === false){ + return false; + } + if(this.multiSelect){ + this.doMultiSelection(item, index, e); + e.preventDefault(); + }else if(this.singleSelect){ + this.doSingleSelection(item, index, e); + e.preventDefault(); + } + return true; + }, + + doSingleSelection : function(item, index, e){ + if(e.ctrlKey && this.isSelected(index)){ + this.deselect(index); + }else{ + this.select(index, false); + } + }, + + doMultiSelection : function(item, index, e){ + if(e.shiftKey && this.last !== false){ + var last = this.last; + this.selectRange(last, index, e.ctrlKey); + this.last = last; }else{ + if((e.ctrlKey||this.simpleSelect) && this.isSelected(index)){ + this.deselect(index); + }else{ + this.select(index, e.ctrlKey || e.shiftKey || this.simpleSelect); + } + } + }, + + + getSelectionCount : function(){ + return this.selected.getCount() + }, + + + getSelectedNodes : function(){ + return this.selected.elements; + }, + + + getSelectedIndexes : function(){ + var indexes = [], s = this.selected.elements; + for(var i = 0, len = s.length; i < len; i++){ + indexes.push(s[i].viewIndex); + } + return indexes; + }, + + + getSelectedRecords : function(){ + var r = [], s = this.selected.elements; + for(var i = 0, len = s.length; i < len; i++){ + r[r.length] = this.store.getAt(s[i].viewIndex); + } + return r; + }, + + + getRecords : function(nodes){ + var r = [], s = nodes; + for(var i = 0, len = s.length; i < len; i++){ + r[r.length] = this.store.getAt(s[i].viewIndex); + } + return r; + }, + + + getRecord : function(node){ + return this.store.getAt(node.viewIndex); + }, + + + clearSelections : function(suppressEvent, skipUpdate){ + if((this.multiSelect || this.singleSelect) && this.selected.getCount() > 0){ + if(!skipUpdate){ + this.selected.removeClass(this.selectedClass); + } + this.selected.clear(); + this.last = false; + if(!suppressEvent){ + this.fireEvent("selectionchange", this, this.selected.elements); + } + } + }, + + + isSelected : function(node){ + return this.selected.contains(this.getNode(node)); + }, + + + deselect : function(node){ + if(this.isSelected(node)){ + var node = this.getNode(node); + this.selected.removeElement(node); + if(this.last == node.viewIndex){ + this.last = false; + } + Ext.fly(node).removeClass(this.selectedClass); + this.fireEvent("selectionchange", this, this.selected.elements); + } + }, + + + select : function(nodeInfo, keepExisting, suppressEvent){ + if(Ext.isArray(nodeInfo)){ + if(!keepExisting){ + this.clearSelections(true); + } + for(var i = 0, len = nodeInfo.length; i < len; i++){ + this.select(nodeInfo[i], true, true); + } + if(!suppressEvent){ + this.fireEvent("selectionchange", this, this.selected.elements); + } + } else{ + var node = this.getNode(nodeInfo); + if(!keepExisting){ + this.clearSelections(true); + } + if(node && !this.isSelected(node)){ + if(this.fireEvent("beforeselect", this, node, this.selected.elements) !== false){ + Ext.fly(node).addClass(this.selectedClass); + this.selected.add(node); + this.last = node.viewIndex; + if(!suppressEvent){ + this.fireEvent("selectionchange", this, this.selected.elements); + } + } + } + } + }, + + + selectRange : function(start, end, keepExisting){ + if(!keepExisting){ + this.clearSelections(true); + } + this.select(this.getNodes(start, end), true); + }, + + + getNode : function(nodeInfo){ + if(typeof nodeInfo == "string"){ + return document.getElementById(nodeInfo); + }else if(typeof nodeInfo == "number"){ + return this.all.elements[nodeInfo]; + } + return nodeInfo; + }, + + + getNodes : function(start, end){ + var ns = this.all.elements; + start = start || 0; + end = typeof end == "undefined" ? ns.length - 1 : end; + var nodes = [], i; + if(start <= end){ + for(i = start; i <= end; i++){ + nodes.push(ns[i]); + } + } else{ + for(i = start; i >= end; i--){ + nodes.push(ns[i]); + } + } + return nodes; + }, + + + indexOf : function(node){ + node = this.getNode(node); + if(typeof node.viewIndex == "number"){ + return node.viewIndex; + } + return this.all.indexOf(node); + }, + + onBeforeLoad : function(){ + if(this.loadingText){ + this.clearSelections(false, true); + this.el.update('
'+this.loadingText+'
'); + this.all.clear(); + } + }, + + onDestroy : function(){ + Ext.DataView.superclass.onDestroy.call(this); + this.setStore(null); + } +}); + +Ext.reg('dataview', Ext.DataView); + +Ext.ColorPalette = function(config){ + Ext.ColorPalette.superclass.constructor.call(this, config); + this.addEvents( + + 'select' + ); + + if(this.handler){ + this.on("select", this.handler, this.scope, true); + } +}; +Ext.extend(Ext.ColorPalette, Ext.Component, { + + + itemCls : "x-color-palette", + + value : null, + clickEvent:'click', + ctype: "Ext.ColorPalette", + + + allowReselect : false, + + + colors : [ + "000000", "993300", "333300", "003300", "003366", "000080", "333399", "333333", + "800000", "FF6600", "808000", "008000", "008080", "0000FF", "666699", "808080", + "FF0000", "FF9900", "99CC00", "339966", "33CCCC", "3366FF", "800080", "969696", + "FF00FF", "FFCC00", "FFFF00", "00FF00", "00FFFF", "00CCFF", "993366", "C0C0C0", + "FF99CC", "FFCC99", "FFFF99", "CCFFCC", "CCFFFF", "99CCFF", "CC99FF", "FFFFFF" + ], + + onRender : function(container, position){ + var t = this.tpl || new Ext.XTemplate( + ' ' + ); + var el = document.createElement("div"); + el.className = this.itemCls; + t.overwrite(el, this.colors); + container.dom.insertBefore(el, position); + this.el = Ext.get(el); + this.el.on(this.clickEvent, this.handleClick, this, {delegate: "a"}); + if(this.clickEvent != 'click'){ + this.el.on('click', Ext.emptyFn, this, {delegate: "a", preventDefault:true}); + } + }, + + afterRender : function(){ + Ext.ColorPalette.superclass.afterRender.call(this); + if(this.value){ + var s = this.value; + this.value = null; + this.select(s); + } + }, + + handleClick : function(e, t){ + e.preventDefault(); + if(!this.disabled){ + var c = t.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1]; + this.select(c.toUpperCase()); + } + }, + + + select : function(color){ + color = color.replace("#", ""); + if(color != this.value || this.allowReselect){ + var el = this.el; + if(this.value){ + el.child("a.color-"+this.value).removeClass("x-color-palette-sel"); + } + el.child("a.color-"+color).addClass("x-color-palette-sel"); + this.value = color; + this.fireEvent("select", this, color); + } + } + + +}); +Ext.reg('colorpalette', Ext.ColorPalette); + +Ext.DatePicker = Ext.extend(Ext.Component, { + + todayText : "Today", + + okText : " OK ", + + cancelText : "Cancel", + + todayTip : "{0} (Spacebar)", + + minDate : null, + + maxDate : null, + + minText : "This date is before the minimum date", + + maxText : "This date is after the maximum date", + + format : "m/d/y", + + disabledDays : null, + + disabledDaysText : "", + + disabledDatesRE : null, + + disabledDatesText : "", + + constrainToViewport : true, + + monthNames : Date.monthNames, + + dayNames : Date.dayNames, + + nextText: 'Next Month (Control+Right)', + + prevText: 'Previous Month (Control+Left)', + + monthYearText: 'Choose a month (Control+Up/Down to move years)', + + startDay : 0, + + initComponent : function(){ + Ext.DatePicker.superclass.initComponent.call(this); + + this.value = this.value ? + this.value.clearTime() : new Date().clearTime(); + + this.addEvents( + + 'select' + ); + + if(this.handler){ + this.on("select", this.handler, this.scope || this); + } + + this.initDisabledDays(); + }, + + + initDisabledDays : function(){ + if(!this.disabledDatesRE && this.disabledDates){ + var dd = this.disabledDates; + var re = "(?:"; + for(var i = 0; i < dd.length; i++){ + re += dd[i]; + if(i != dd.length-1) re += "|"; + } + this.disabledDatesRE = new RegExp(re + ")"); + } + }, + + + setValue : function(value){ + var old = this.value; + this.value = value.clearTime(true); + if(this.el){ + this.update(this.value); + } + }, + + + getValue : function(){ + return this.value; + }, + + + focus : function(){ + if(this.el){ + this.update(this.activeDate); + } + }, + + + onRender : function(container, position){ + var m = [ + '', + '', + '
  
']; + var dn = this.dayNames; + for(var i = 0; i < 7; i++){ + var d = this.startDay+i; + if(d > 6){ + d = d-7; + } + m.push(""); + } + m[m.length] = ""; + for(var i = 0; i < 42; i++) { + if(i % 7 == 0 && i != 0){ + m[m.length] = ""; + } + m[m.length] = ''; + } + m[m.length] = '
", dn[d].substr(0,1), "
'; + + var el = document.createElement("div"); + el.className = "x-date-picker"; + el.innerHTML = m.join(""); + + container.dom.insertBefore(el, position); + + this.el = Ext.get(el); + this.eventEl = Ext.get(el.firstChild); + + new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"), { + handler: this.showPrevMonth, + scope: this, + preventDefault:true, + stopDefault:true + }); + + new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"), { + handler: this.showNextMonth, + scope: this, + preventDefault:true, + stopDefault:true + }); + + this.eventEl.on("mousewheel", this.handleMouseWheel, this); + + this.monthPicker = this.el.down('div.x-date-mp'); + this.monthPicker.enableDisplayMode('block'); + + var kn = new Ext.KeyNav(this.eventEl, { + "left" : function(e){ + e.ctrlKey ? + this.showPrevMonth() : + this.update(this.activeDate.add("d", -1)); + }, + + "right" : function(e){ + e.ctrlKey ? + this.showNextMonth() : + this.update(this.activeDate.add("d", 1)); + }, + + "up" : function(e){ + e.ctrlKey ? + this.showNextYear() : + this.update(this.activeDate.add("d", -7)); + }, + + "down" : function(e){ + e.ctrlKey ? + this.showPrevYear() : + this.update(this.activeDate.add("d", 7)); + }, + + "pageUp" : function(e){ + this.showNextMonth(); + }, + + "pageDown" : function(e){ + this.showPrevMonth(); + }, + + "enter" : function(e){ + e.stopPropagation(); + return true; + }, + + scope : this + }); + + this.eventEl.on("click", this.handleDateClick, this, {delegate: "a.x-date-date"}); + + this.eventEl.addKeyListener(Ext.EventObject.SPACE, this.selectToday, this); + + this.el.unselectable(); + + this.cells = this.el.select("table.x-date-inner tbody td"); + this.textNodes = this.el.query("table.x-date-inner tbody span"); + + this.mbtn = new Ext.Button({ + text: " ", + tooltip: this.monthYearText, + renderTo: this.el.child("td.x-date-middle", true) + }); + + this.mbtn.on('click', this.showMonthPicker, this); + this.mbtn.el.child(this.mbtn.menuClassTarget).addClass("x-btn-with-menu"); + + + var today = (new Date()).dateFormat(this.format); + this.todayBtn = new Ext.Button({ + renderTo: this.el.child("td.x-date-bottom", true), + text: String.format(this.todayText, today), + tooltip: String.format(this.todayTip, today), + handler: this.selectToday, + scope: this + }); + + if(Ext.isIE){ + this.el.repaint(); + } + this.update(this.value); + }, + + createMonthPicker : function(){ + if(!this.monthPicker.dom.firstChild){ + var buf = ['']; + for(var i = 0; i < 6; i++){ + buf.push( + '', + '', + i == 0 ? + '' : + '' + ); + } + buf.push( + '', + '
', this.monthNames[i].substr(0, 3), '', this.monthNames[i+6].substr(0, 3), '
' + ); + this.monthPicker.update(buf.join('')); + this.monthPicker.on('click', this.onMonthClick, this); + this.monthPicker.on('dblclick', this.onMonthDblClick, this); + + this.mpMonths = this.monthPicker.select('td.x-date-mp-month'); + this.mpYears = this.monthPicker.select('td.x-date-mp-year'); + + this.mpMonths.each(function(m, a, i){ + i += 1; + if((i%2) == 0){ + m.dom.xmonth = 5 + Math.round(i * .5); + }else{ + m.dom.xmonth = Math.round((i-1) * .5); + } + }); + } + }, + + showMonthPicker : function(){ + this.createMonthPicker(); + var size = this.el.getSize(); + this.monthPicker.setSize(size); + this.monthPicker.child('table').setSize(size); + + this.mpSelMonth = (this.activeDate || this.value).getMonth(); + this.updateMPMonth(this.mpSelMonth); + this.mpSelYear = (this.activeDate || this.value).getFullYear(); + this.updateMPYear(this.mpSelYear); + + this.monthPicker.slideIn('t', {duration:.2}); + }, + + updateMPYear : function(y){ + this.mpyear = y; + var ys = this.mpYears.elements; + for(var i = 1; i <= 10; i++){ + var td = ys[i-1], y2; + if((i%2) == 0){ + y2 = y + Math.round(i * .5); + td.firstChild.innerHTML = y2; + td.xyear = y2; + }else{ + y2 = y - (5-Math.round(i * .5)); + td.firstChild.innerHTML = y2; + td.xyear = y2; + } + this.mpYears.item(i-1)[y2 == this.mpSelYear ? 'addClass' : 'removeClass']('x-date-mp-sel'); + } + }, + + updateMPMonth : function(sm){ + this.mpMonths.each(function(m, a, i){ + m[m.dom.xmonth == sm ? 'addClass' : 'removeClass']('x-date-mp-sel'); + }); + }, + + selectMPMonth: function(m){ + + }, + + onMonthClick : function(e, t){ + e.stopEvent(); + var el = new Ext.Element(t), pn; + if(el.is('button.x-date-mp-cancel')){ + this.hideMonthPicker(); + } + else if(el.is('button.x-date-mp-ok')){ + var d = new Date(this.mpSelYear, this.mpSelMonth, (this.activeDate || this.value).getDate()); + if(d.getMonth() != this.mpSelMonth){ + + d = new Date(this.mpSelYear, this.mpSelMonth, 1).getLastDateOfMonth(); + } + this.update(d); + this.hideMonthPicker(); + } + else if(pn = el.up('td.x-date-mp-month', 2)){ + this.mpMonths.removeClass('x-date-mp-sel'); + pn.addClass('x-date-mp-sel'); + this.mpSelMonth = pn.dom.xmonth; + } + else if(pn = el.up('td.x-date-mp-year', 2)){ + this.mpYears.removeClass('x-date-mp-sel'); + pn.addClass('x-date-mp-sel'); + this.mpSelYear = pn.dom.xyear; + } + else if(el.is('a.x-date-mp-prev')){ + this.updateMPYear(this.mpyear-10); + } + else if(el.is('a.x-date-mp-next')){ + this.updateMPYear(this.mpyear+10); + } + }, + + onMonthDblClick : function(e, t){ + e.stopEvent(); + var el = new Ext.Element(t), pn; + if(pn = el.up('td.x-date-mp-month', 2)){ + this.update(new Date(this.mpSelYear, pn.dom.xmonth, (this.activeDate || this.value).getDate())); + this.hideMonthPicker(); + } + else if(pn = el.up('td.x-date-mp-year', 2)){ + this.update(new Date(pn.dom.xyear, this.mpSelMonth, (this.activeDate || this.value).getDate())); + this.hideMonthPicker(); + } + }, + + hideMonthPicker : function(disableAnim){ + if(this.monthPicker){ + if(disableAnim === true){ + this.monthPicker.hide(); + }else{ + this.monthPicker.slideOut('t', {duration:.2}); + } + } + }, + + + showPrevMonth : function(e){ + this.update(this.activeDate.add("mo", -1)); + }, + + + showNextMonth : function(e){ + this.update(this.activeDate.add("mo", 1)); + }, + + + showPrevYear : function(){ + this.update(this.activeDate.add("y", -1)); + }, + + + showNextYear : function(){ + this.update(this.activeDate.add("y", 1)); + }, + + + handleMouseWheel : function(e){ + var delta = e.getWheelDelta(); + if(delta > 0){ + this.showPrevMonth(); + e.stopEvent(); + } else if(delta < 0){ + this.showNextMonth(); + e.stopEvent(); + } + }, + + + handleDateClick : function(e, t){ + e.stopEvent(); + if(t.dateValue && !Ext.fly(t.parentNode).hasClass("x-date-disabled")){ + this.setValue(new Date(t.dateValue)); + this.fireEvent("select", this, this.value); + } + }, + + + selectToday : function(){ + this.setValue(new Date().clearTime()); + this.fireEvent("select", this, this.value); + }, + + + update : function(date){ + var vd = this.activeDate; + this.activeDate = date; + if(vd && this.el){ + var t = date.getTime(); + if(vd.getMonth() == date.getMonth() && vd.getFullYear() == date.getFullYear()){ + this.cells.removeClass("x-date-selected"); + this.cells.each(function(c){ + if(c.dom.firstChild.dateValue == t){ + c.addClass("x-date-selected"); + setTimeout(function(){ + try{c.dom.firstChild.focus();}catch(e){} + }, 50); + return false; + } + }); + return; + } + } + var days = date.getDaysInMonth(); + var firstOfMonth = date.getFirstDateOfMonth(); + var startingPos = firstOfMonth.getDay()-this.startDay; + + if(startingPos <= this.startDay){ + startingPos += 7; + } + + var pm = date.add("mo", -1); + var prevStart = pm.getDaysInMonth()-startingPos; + + var cells = this.cells.elements; + var textEls = this.textNodes; + days += startingPos; + + + var day = 86400000; + var d = (new Date(pm.getFullYear(), pm.getMonth(), prevStart)).clearTime(); + var today = new Date().clearTime().getTime(); + var sel = date.clearTime().getTime(); + var min = this.minDate ? this.minDate.clearTime() : Number.NEGATIVE_INFINITY; + var max = this.maxDate ? this.maxDate.clearTime() : Number.POSITIVE_INFINITY; + var ddMatch = this.disabledDatesRE; + var ddText = this.disabledDatesText; + var ddays = this.disabledDays ? this.disabledDays.join("") : false; + var ddaysText = this.disabledDaysText; + var format = this.format; + + var setCellClass = function(cal, cell){ + cell.title = ""; + var t = d.getTime(); + cell.firstChild.dateValue = t; + if(t == today){ + cell.className += " x-date-today"; + cell.title = cal.todayText; + } + if(t == sel){ + cell.className += " x-date-selected"; + setTimeout(function(){ + try{cell.firstChild.focus();}catch(e){} + }, 50); + } + + if(t < min) { + cell.className = " x-date-disabled"; + cell.title = cal.minText; + return; + } + if(t > max) { + cell.className = " x-date-disabled"; + cell.title = cal.maxText; + return; + } + if(ddays){ + if(ddays.indexOf(d.getDay()) != -1){ + cell.title = ddaysText; + cell.className = " x-date-disabled"; + } + } + if(ddMatch && format){ + var fvalue = d.dateFormat(format); + if(ddMatch.test(fvalue)){ + cell.title = ddText.replace("%0", fvalue); + cell.className = " x-date-disabled"; + } + } + }; + + var i = 0; + for(; i < startingPos; i++) { + textEls[i].innerHTML = (++prevStart); + d.setDate(d.getDate()+1); + cells[i].className = "x-date-prevday"; + setCellClass(this, cells[i]); + } + for(; i < days; i++){ + intDay = i - startingPos + 1; + textEls[i].innerHTML = (intDay); + d.setDate(d.getDate()+1); + cells[i].className = "x-date-active"; + setCellClass(this, cells[i]); + } + var extraDays = 0; + for(; i < 42; i++) { + textEls[i].innerHTML = (++extraDays); + d.setDate(d.getDate()+1); + cells[i].className = "x-date-nextday"; + setCellClass(this, cells[i]); + } + + this.mbtn.setText(this.monthNames[date.getMonth()] + " " + date.getFullYear()); + + if(!this.internalRender){ + var main = this.el.dom.firstChild; + var w = main.offsetWidth; + this.el.setWidth(w + this.el.getBorderWidth("lr")); + Ext.fly(main).setWidth(w); + this.internalRender = true; + + + + if(Ext.isOpera && !this.secondPass){ + main.rows[0].cells[1].style.width = (w - (main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth)) + "px"; + this.secondPass = true; + this.update.defer(10, this, [date]); + } + } + }, + + + beforeDestroy : function() { + if(this.rendered){ + this.mbtn.destroy(); + this.todayBtn.destroy(); + } + } + + +}); +Ext.reg('datepicker', Ext.DatePicker); + +Ext.TabPanel = Ext.extend(Ext.Panel, { + + + monitorResize : true, + + deferredRender : true, + + tabWidth: 120, + + minTabWidth: 30, + + resizeTabs:false, + + enableTabScroll: false, + + scrollIncrement : 0, + + scrollRepeatInterval : 400, + + scrollDuration : .35, + + animScroll : true, + + tabPosition: 'top', + + baseCls: 'x-tab-panel', + + autoTabs : false, + + autoTabSelector:'div.x-tab', + + activeTab : null, + + tabMargin : 2, + + plain: false, + + wheelIncrement : 20, + + + idDelimiter : '__', + + itemCls : 'x-tab-item', + + elements: 'body', + headerAsText: false, + frame: false, + hideBorders:true, + + initComponent : function(){ + this.frame = false; + Ext.TabPanel.superclass.initComponent.call(this); + this.addEvents( + + 'beforetabchange', + + 'tabchange', + + 'contextmenu' + ); + this.setLayout(new Ext.layout.CardLayout({ + deferredRender: this.deferredRender + })); + if(this.tabPosition == 'top'){ + this.elements += ',header'; + this.stripTarget = 'header'; + }else { + this.elements += ',footer'; + this.stripTarget = 'footer'; + } + if(!this.stack){ + this.stack = Ext.TabPanel.AccessStack(); + } + this.initItems(); + }, + + render : function(){ + Ext.TabPanel.superclass.render.apply(this, arguments); + if(this.activeTab !== undefined){ + var item = this.activeTab; + delete this.activeTab; + this.setActiveTab(item); + } + }, + + onRender : function(ct, position){ + Ext.TabPanel.superclass.onRender.call(this, ct, position); + + if(this.plain){ + var pos = this.tabPosition == 'top' ? 'header' : 'footer'; + this[pos].addClass('x-tab-panel-'+pos+'-plain'); + } + + var st = this[this.stripTarget]; + + this.stripWrap = st.createChild({cls:'x-tab-strip-wrap', cn:{ + tag:'ul', cls:'x-tab-strip x-tab-strip-'+this.tabPosition}}); + this.stripSpacer = st.createChild({cls:'x-tab-strip-spacer'}); + this.strip = new Ext.Element(this.stripWrap.dom.firstChild); + + this.edge = this.strip.createChild({tag:'li', cls:'x-tab-edge'}); + this.strip.createChild({cls:'x-clear'}); + + this.body.addClass('x-tab-panel-body-'+this.tabPosition); + + if(!this.itemTpl){ + var tt = new Ext.Template( + '
  • ', + '', + '{text}', + '
  • ' + ); + tt.disableFormats = true; + tt.compile(); + Ext.TabPanel.prototype.itemTpl = tt; + } + + this.items.each(this.initTab, this); + }, + + afterRender : function(){ + Ext.TabPanel.superclass.afterRender.call(this); + if(this.autoTabs){ + this.readTabs(false); + } + }, + + initEvents : function(){ + Ext.TabPanel.superclass.initEvents.call(this); + this.on('add', this.onAdd, this); + this.on('remove', this.onRemove, this); + + this.strip.on('mousedown', this.onStripMouseDown, this); + this.strip.on('click', this.onStripClick, this); + this.strip.on('contextmenu', this.onStripContextMenu, this); + if(this.enableTabScroll){ + this.strip.on('mousewheel', this.onWheel, this); + } + }, + + findTargets : function(e){ + var item = null; + var itemEl = e.getTarget('li', this.strip); + if(itemEl){ + item = this.getComponent(itemEl.id.split(this.idDelimiter)[1]); + if(item.disabled){ + return { + close : null, + item : null, + el : null + }; + } + } + return { + close : e.getTarget('.x-tab-strip-close', this.strip), + item : item, + el : itemEl + }; + }, + + onStripMouseDown : function(e){ + e.preventDefault(); + if(e.button != 0){ + return; + } + var t = this.findTargets(e); + if(t.close){ + this.remove(t.item); + return; + } + if(t.item && t.item != this.activeTab){ + this.setActiveTab(t.item); + } + }, + + onStripClick : function(e){ + var t = this.findTargets(e); + if(!t.close && t.item && t.item != this.activeTab){ + this.setActiveTab(t.item); + } + }, + + onStripContextMenu : function(e){ + e.preventDefault(); + var t = this.findTargets(e); + if(t.item){ + this.fireEvent('contextmenu', this, t.item, e); + } + }, + + + readTabs : function(removeExisting){ + if(removeExisting === true){ + this.items.each(function(item){ + this.remove(item); + }, this); + } + var tabs = this.el.query(this.autoTabSelector); + for(var i = 0, len = tabs.length; i < len; i++){ + var tab = tabs[i]; + var title = tab.getAttribute('title'); + tab.removeAttribute('title'); + this.add({ + title: title, + el: tab + }); + } + }, + + initTab : function(item, index){ + var before = this.strip.dom.childNodes[index]; + var cls = item.closable ? 'x-tab-strip-closable' : ''; + if(item.disabled){ + cls += ' x-item-disabled'; + } + if(item.iconCls){ + cls += ' x-tab-with-icon'; + } + if(item.tabCls){ + cls += ' ' + item.tabCls; + } + + var p = { + id: this.id + this.idDelimiter + item.getItemId(), + text: item.title, + cls: cls, + iconCls: item.iconCls || '' + }; + var el = before ? + this.itemTpl.insertBefore(before, p) : + this.itemTpl.append(this.strip, p); + + Ext.fly(el).addClassOnOver('x-tab-strip-over'); + + if(item.tabTip){ + Ext.fly(el).child('span.x-tab-strip-text', true).qtip = item.tabTip; + } + item.on('disable', this.onItemDisabled, this); + item.on('enable', this.onItemEnabled, this); + item.on('titlechange', this.onItemTitleChanged, this); + item.on('beforeshow', this.onBeforeShowItem, this); + }, + + onAdd : function(tp, item, index){ + this.initTab(item, index); + if(this.items.getCount() == 1){ + this.syncSize(); + } + this.delegateUpdates(); + }, + + onBeforeAdd : function(item){ + var existing = item.events ? (this.items.containsKey(item.getItemId()) ? item : null) : this.items.get(item); + if(existing){ + this.setActiveTab(item); + return false; + } + Ext.TabPanel.superclass.onBeforeAdd.apply(this, arguments); + var es = item.elements; + item.elements = es ? es.replace(',header', '') : es; + item.border = (item.border === true); + }, + + onRemove : function(tp, item){ + Ext.removeNode(this.getTabEl(item)); + this.stack.remove(item); + item.un('disable', this.onItemDisabled, this); + item.un('enable', this.onItemEnabled, this); + item.un('titlechange', this.onItemTitleChanged, this); + item.un('beforeshow', this.onBeforeShowItem, this); + if(item == this.activeTab){ + var next = this.stack.next(); + if(next){ + this.setActiveTab(next); + }else{ + this.setActiveTab(0); + } + } + this.delegateUpdates(); + }, + + onBeforeShowItem : function(item){ + if(item != this.activeTab){ + this.setActiveTab(item); + return false; + } + }, + + onItemDisabled : function(item){ + var el = this.getTabEl(item); + if(el){ + Ext.fly(el).addClass('x-item-disabled'); + } + this.stack.remove(item); + }, + + onItemEnabled : function(item){ + var el = this.getTabEl(item); + if(el){ + Ext.fly(el).removeClass('x-item-disabled'); + } + }, + + onItemTitleChanged : function(item){ + var el = this.getTabEl(item); + if(el){ + Ext.fly(el).child('span.x-tab-strip-text', true).innerHTML = item.title; + } + }, + + + getTabEl : function(item){ + var itemId = (typeof item === 'number')?this.items.items[item].getItemId() : item.getItemId(); + return document.getElementById(this.id+this.idDelimiter+itemId); + }, + + onResize : function(){ + Ext.TabPanel.superclass.onResize.apply(this, arguments); + this.delegateUpdates(); + }, + + + beginUpdate : function(){ + this.suspendUpdates = true; + }, + + + endUpdate : function(){ + this.suspendUpdates = false; + this.delegateUpdates(); + }, + + + hideTabStripItem : function(item){ + item = this.getComponent(item); + var el = this.getTabEl(item); + if(el){ + el.style.display = 'none'; + this.delegateUpdates(); + } + this.stack.remove(item); + }, + + + unhideTabStripItem : function(item){ + item = this.getComponent(item); + var el = this.getTabEl(item); + if(el){ + el.style.display = ''; + this.delegateUpdates(); + } + }, + + delegateUpdates : function(){ + if(this.suspendUpdates){ + return; + } + if(this.resizeTabs && this.rendered){ + this.autoSizeTabs(); + } + if(this.enableTabScroll && this.rendered){ + this.autoScrollTabs(); + } + }, + + autoSizeTabs : function(){ + var count = this.items.length; + var ce = this.tabPosition != 'bottom' ? 'header' : 'footer'; + var ow = this[ce].dom.offsetWidth; + var aw = this[ce].dom.clientWidth; + + if(!this.resizeTabs || count < 1 || !aw){ return; + } + + var each = Math.max(Math.min(Math.floor((aw-4) / count) - this.tabMargin, this.tabWidth), this.minTabWidth); this.lastTabWidth = each; + var lis = this.stripWrap.dom.getElementsByTagName('li'); + for(var i = 0, len = lis.length-1; i < len; i++) { var li = lis[i]; + var inner = li.childNodes[1].firstChild.firstChild; + var tw = li.offsetWidth; + var iw = inner.offsetWidth; + inner.style.width = (each - (tw-iw)) + 'px'; + } + }, + + adjustBodyWidth : function(w){ + if(this.header){ + this.header.setWidth(w); + } + if(this.footer){ + this.footer.setWidth(w); + } + return w; + }, + + + setActiveTab : function(item){ + item = this.getComponent(item); + if(!item || this.fireEvent('beforetabchange', this, item, this.activeTab) === false){ + return; + } + if(!this.rendered){ + this.activeTab = item; + return; + } + if(this.activeTab != item){ + if(this.activeTab){ + var oldEl = this.getTabEl(this.activeTab); + if(oldEl){ + Ext.fly(oldEl).removeClass('x-tab-strip-active'); + } + this.activeTab.fireEvent('deactivate', this.activeTab); + } + var el = this.getTabEl(item); + Ext.fly(el).addClass('x-tab-strip-active'); + this.activeTab = item; + this.stack.add(item); + + this.layout.setActiveItem(item); + if(this.layoutOnTabChange && item.doLayout){ + item.doLayout(); + } + if(this.scrolling){ + this.scrollToTab(item, this.animScroll); + } + + item.fireEvent('activate', item); + this.fireEvent('tabchange', this, item); + } + }, + + + getActiveTab : function(){ + return this.activeTab || null; + }, + + + getItem : function(item){ + return this.getComponent(item); + }, + + autoScrollTabs : function(){ + var count = this.items.length; + var ow = this.header.dom.offsetWidth; + var tw = this.header.dom.clientWidth; + + var wrap = this.stripWrap; + var wd = wrap.dom; + var cw = wd.offsetWidth; + var pos = this.getScrollPos(); + var l = this.edge.getOffsetsTo(this.stripWrap)[0] + pos; + + if(!this.enableTabScroll || count < 1 || cw < 20){ return; + } + if(l <= tw){ + wd.scrollLeft = 0; + wrap.setWidth(tw); + if(this.scrolling){ + this.scrolling = false; + this.header.removeClass('x-tab-scrolling'); + this.scrollLeft.hide(); + this.scrollRight.hide(); + if(Ext.isAir){ + wd.style.marginLeft = ''; + wd.style.marginRight = ''; + } + } + }else{ + if(!this.scrolling){ + this.header.addClass('x-tab-scrolling'); + if(Ext.isAir){ + wd.style.marginLeft = '18px'; + wd.style.marginRight = '18px'; + } + } + tw -= wrap.getMargins('lr'); + wrap.setWidth(tw > 20 ? tw : 20); + if(!this.scrolling){ + if(!this.scrollLeft){ + this.createScrollers(); + }else{ + this.scrollLeft.show(); + this.scrollRight.show(); + } + } + this.scrolling = true; + if(pos > (l-tw)){ wd.scrollLeft = l-tw; + }else{ this.scrollToTab(this.activeTab, false); + } + this.updateScrollButtons(); + } + }, + + createScrollers : function(){ + var h = this.stripWrap.dom.offsetHeight; + + var sl = this.header.insertFirst({ + cls:'x-tab-scroller-left' + }); + sl.setHeight(h); + sl.addClassOnOver('x-tab-scroller-left-over'); + this.leftRepeater = new Ext.util.ClickRepeater(sl, { + interval : this.scrollRepeatInterval, + handler: this.onScrollLeft, + scope: this + }); + this.scrollLeft = sl; + + var sr = this.header.insertFirst({ + cls:'x-tab-scroller-right' + }); + sr.setHeight(h); + sr.addClassOnOver('x-tab-scroller-right-over'); + this.rightRepeater = new Ext.util.ClickRepeater(sr, { + interval : this.scrollRepeatInterval, + handler: this.onScrollRight, + scope: this + }); + this.scrollRight = sr; + }, + + getScrollWidth : function(){ + return this.edge.getOffsetsTo(this.stripWrap)[0] + this.getScrollPos(); + }, + + getScrollPos : function(){ + return parseInt(this.stripWrap.dom.scrollLeft, 10) || 0; + }, + + getScrollArea : function(){ + return parseInt(this.stripWrap.dom.clientWidth, 10) || 0; + }, + + getScrollAnim : function(){ + return {duration:this.scrollDuration, callback: this.updateScrollButtons, scope: this}; + }, + + getScrollIncrement : function(){ + return this.scrollIncrement || (this.resizeTabs ? this.lastTabWidth+2 : 100); + }, + + + + scrollToTab : function(item, animate){ + if(!item){ return; } + var el = this.getTabEl(item); + var pos = this.getScrollPos(), area = this.getScrollArea(); + var left = Ext.fly(el).getOffsetsTo(this.stripWrap)[0] + pos; + var right = left + el.offsetWidth; + if(left < pos){ + this.scrollTo(left, animate); + }else if(right > (pos + area)){ + this.scrollTo(right - area, animate); + } + }, + + scrollTo : function(pos, animate){ + this.stripWrap.scrollTo('left', pos, animate ? this.getScrollAnim() : false); + if(!animate){ + this.updateScrollButtons(); + } + }, + + onWheel : function(e){ + var d = e.getWheelDelta()*this.wheelIncrement*-1; + e.stopEvent(); + + var pos = this.getScrollPos(); + var newpos = pos + d; + var sw = this.getScrollWidth()-this.getScrollArea(); + + var s = Math.max(0, Math.min(sw, newpos)); + if(s != pos){ + this.scrollTo(s, false); + } + }, + + onScrollRight : function(){ + var sw = this.getScrollWidth()-this.getScrollArea(); + var pos = this.getScrollPos(); + var s = Math.min(sw, pos + this.getScrollIncrement()); + if(s != pos){ + this.scrollTo(s, this.animScroll); + } + }, + + onScrollLeft : function(){ + var pos = this.getScrollPos(); + var s = Math.max(0, pos - this.getScrollIncrement()); + if(s != pos){ + this.scrollTo(s, this.animScroll); + } + }, + + updateScrollButtons : function(){ + var pos = this.getScrollPos(); + this.scrollLeft[pos == 0 ? 'addClass' : 'removeClass']('x-tab-scroller-left-disabled'); + this.scrollRight[pos >= (this.getScrollWidth()-this.getScrollArea()) ? 'addClass' : 'removeClass']('x-tab-scroller-right-disabled'); + } + + + + + + + + + + + + + +}); +Ext.reg('tabpanel', Ext.TabPanel); + + +Ext.TabPanel.prototype.activate = Ext.TabPanel.prototype.setActiveTab; + +Ext.TabPanel.AccessStack = function(){ + var items = []; + return { + add : function(item){ + items.push(item); + if(items.length > 10){ + items.shift(); + } + }, + + remove : function(item){ + var s = []; + for(var i = 0, len = items.length; i < len; i++) { + if(items[i] != item){ + s.push(items[i]); + } + } + items = s; + }, + + next : function(){ + return items.pop(); + } + }; +}; + + + + +Ext.Button = Ext.extend(Ext.Component, { + + hidden : false, + + disabled : false, + + pressed : false, + + + + + + + + enableToggle: false, + + + + menuAlign : "tl-bl?", + + + + type : 'button', + + menuClassTarget: 'tr', + + + clickEvent : 'click', + + + handleMouseEvents : true, + + + tooltipType : 'qtip', + + buttonSelector : "button:first", + + + + + initComponent : function(){ + Ext.Button.superclass.initComponent.call(this); + + this.addEvents( + + "click", + + "toggle", + + 'mouseover', + + 'mouseout', + + 'menushow', + + 'menuhide', + + 'menutriggerover', + + 'menutriggerout' + ); + if(this.menu){ + this.menu = Ext.menu.MenuMgr.get(this.menu); + } + if(typeof this.toggleGroup === 'string'){ + this.enableToggle = true; + } + }, + + onRender : function(ct, position){ + if(!this.template){ + if(!Ext.Button.buttonTemplate){ + Ext.Button.buttonTemplate = new Ext.Template( + '', + '', + "
      
    "); + } + this.template = Ext.Button.buttonTemplate; + } + var btn, targs = [this.text || ' ', this.type]; + + if(position){ + btn = this.template.insertBefore(position, targs, true); + }else{ + btn = this.template.append(ct, targs, true); + } + var btnEl = btn.child(this.buttonSelector); + btnEl.on('focus', this.onFocus, this); + btnEl.on('blur', this.onBlur, this); + + this.initButtonEl(btn, btnEl); + + if(this.menu){ + this.el.child(this.menuClassTarget).addClass("x-btn-with-menu"); + } + Ext.ButtonToggleMgr.register(this); + }, + + initButtonEl : function(btn, btnEl){ + + this.el = btn; + btn.addClass("x-btn"); + + if(this.icon){ + btnEl.setStyle('background-image', 'url(' +this.icon +')'); + } + if(this.iconCls){ + btnEl.addClass(this.iconCls); + if(!this.cls){ + btn.addClass(this.text ? 'x-btn-text-icon' : 'x-btn-icon'); + } + } + if(this.tabIndex !== undefined){ + btnEl.dom.tabIndex = this.tabIndex; + } + if(this.tooltip){ + if(typeof this.tooltip == 'object'){ + Ext.QuickTips.register(Ext.apply({ + target: btnEl.id + }, this.tooltip)); + } else { + btnEl.dom[this.tooltipType] = this.tooltip; + } + } + + if(this.pressed){ + this.el.addClass("x-btn-pressed"); + } + + if(this.handleMouseEvents){ + btn.on("mouseover", this.onMouseOver, this); + btn.on("mousedown", this.onMouseDown, this); + } + + if(this.menu){ + this.menu.on("show", this.onMenuShow, this); + this.menu.on("hide", this.onMenuHide, this); + } + + if(this.id){ + this.el.dom.id = this.el.id = this.id; + } + + if(this.repeat){ + var repeater = new Ext.util.ClickRepeater(btn, + typeof this.repeat == "object" ? this.repeat : {} + ); + repeater.on("click", this.onClick, this); + } + + btn.on(this.clickEvent, this.onClick, this); + }, + + afterRender : function(){ + Ext.Button.superclass.afterRender.call(this); + if(Ext.isIE6){ + this.autoWidth.defer(1, this); + }else{ + this.autoWidth(); + } + }, + + + setIconClass : function(cls){ + if(this.el){ + this.el.child(this.buttonSelector).replaceClass(this.iconCls, cls); + } + this.iconCls = cls; + }, + + beforeDestroy: function(){ + if(this.rendered){ + var btn = this.el.child(this.buttonSelector); + if(btn){ + btn.removeAllListeners(); + } + } + if(this.menu){ + Ext.destroy(this.menu); + } + }, + + onDestroy : function(){ + if(this.rendered){ + Ext.ButtonToggleMgr.unregister(this); + } + }, + + autoWidth : function(){ + if(this.el){ + this.el.setWidth("auto"); + if(Ext.isIE7 && Ext.isStrict){ + var ib = this.el.child(this.buttonSelector); + if(ib && ib.getWidth() > 20){ + ib.clip(); + ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr')); + } + } + if(this.minWidth){ + if(this.el.getWidth() < this.minWidth){ + this.el.setWidth(this.minWidth); + } + } + } + }, + + + setHandler : function(handler, scope){ + this.handler = handler; + this.scope = scope; + }, + + + setText : function(text){ + this.text = text; + if(this.el){ + this.el.child("td.x-btn-center " + this.buttonSelector).update(text); + } + this.autoWidth(); + }, + + + getText : function(){ + return this.text; + }, + + + toggle : function(state){ + state = state === undefined ? !this.pressed : state; + if(state != this.pressed){ + if(state){ + this.el.addClass("x-btn-pressed"); + this.pressed = true; + this.fireEvent("toggle", this, true); + }else{ + this.el.removeClass("x-btn-pressed"); + this.pressed = false; + this.fireEvent("toggle", this, false); + } + if(this.toggleHandler){ + this.toggleHandler.call(this.scope || this, this, state); + } + } + }, + + + focus : function(){ + this.el.child(this.buttonSelector).focus(); + }, + + onDisable : function(){ + if(this.el){ + if(!Ext.isIE6 || !this.text){ + this.el.addClass(this.disabledClass); + } + this.el.dom.disabled = true; + } + this.disabled = true; + }, + + onEnable : function(){ + if(this.el){ + if(!Ext.isIE6 || !this.text){ + this.el.removeClass(this.disabledClass); + } + this.el.dom.disabled = false; + } + this.disabled = false; + }, + + + showMenu : function(){ + if(this.menu){ + this.menu.show(this.el, this.menuAlign); + } + return this; + }, + + + hideMenu : function(){ + if(this.menu){ + this.menu.hide(); + } + return this; + }, + + + hasVisibleMenu : function(){ + return this.menu && this.menu.isVisible(); + }, + + onClick : function(e){ + if(e){ + e.preventDefault(); + } + if(e.button != 0){ + return; + } + if(!this.disabled){ + if(this.enableToggle && (this.allowDepress !== false || !this.pressed)){ + this.toggle(); + } + if(this.menu && !this.menu.isVisible() && !this.ignoreNextClick){ + this.showMenu(); + } + this.fireEvent("click", this, e); + if(this.handler){ + this.handler.call(this.scope || this, this, e); + } + } + }, + + isMenuTriggerOver : function(e, internal){ + return this.menu && !internal; + }, + + isMenuTriggerOut : function(e, internal){ + return this.menu && !internal; + }, + + onMouseOver : function(e){ + if(!this.disabled){ + var internal = e.within(this.el, true); + if(!internal){ + this.el.addClass("x-btn-over"); + Ext.getDoc().on('mouseover', this.monitorMouseOver, this); + this.fireEvent('mouseover', this, e); + } + if(this.isMenuTriggerOver(e, internal)){ + this.fireEvent('menutriggerover', this, this.menu, e); + } + } + }, + + monitorMouseOver : function(e){ + if(e.target != this.el.dom && !e.within(this.el)){ + Ext.getDoc().un('mouseover', this.monitorMouseOver, this); + this.onMouseOut(e); + } + }, + + onMouseOut : function(e){ + var internal = e.within(this.el) && e.target != this.el.dom; + this.el.removeClass("x-btn-over"); + this.fireEvent('mouseout', this, e); + if(this.isMenuTriggerOut(e, internal)){ + this.fireEvent('menutriggerout', this, this.menu, e); + } + }, + onFocus : function(e){ + if(!this.disabled){ + this.el.addClass("x-btn-focus"); + } + }, + onBlur : function(e){ + this.el.removeClass("x-btn-focus"); + }, + + getClickEl : function(e, isUp){ + return this.el; + }, + + onMouseDown : function(e){ + if(!this.disabled && e.button == 0){ + this.getClickEl(e).addClass("x-btn-click"); + Ext.getDoc().on('mouseup', this.onMouseUp, this); + } + }, + onMouseUp : function(e){ + if(e.button == 0){ + this.getClickEl(e, true).removeClass("x-btn-click"); + Ext.getDoc().un('mouseup', this.onMouseUp, this); + } + }, + onMenuShow : function(e){ + this.ignoreNextClick = 0; + this.el.addClass("x-btn-menu-active"); + this.fireEvent('menushow', this, this.menu); + }, + onMenuHide : function(e){ + this.el.removeClass("x-btn-menu-active"); + this.ignoreNextClick = this.restoreClick.defer(250, this); + this.fireEvent('menuhide', this, this.menu); + }, + + restoreClick : function(){ + this.ignoreNextClick = 0; + } + + + + +}); +Ext.reg('button', Ext.Button); + +Ext.ButtonToggleMgr = function(){ + var groups = {}; + + function toggleGroup(btn, state){ + if(state){ + var g = groups[btn.toggleGroup]; + for(var i = 0, l = g.length; i < l; i++){ + if(g[i] != btn){ + g[i].toggle(false); + } + } + } + } + + return { + register : function(btn){ + if(!btn.toggleGroup){ + return; + } + var g = groups[btn.toggleGroup]; + if(!g){ + g = groups[btn.toggleGroup] = []; + } + g.push(btn); + btn.on("toggle", toggleGroup); + }, + + unregister : function(btn){ + if(!btn.toggleGroup){ + return; + } + var g = groups[btn.toggleGroup]; + if(g){ + g.remove(btn); + btn.un("toggle", toggleGroup); + } + } + }; +}(); + +Ext.SplitButton = Ext.extend(Ext.Button, { + + arrowSelector : 'button:last', + + + initComponent : function(){ + Ext.SplitButton.superclass.initComponent.call(this); + + this.addEvents("arrowclick"); + }, + + + onRender : function(ct, position){ + + var tpl = new Ext.Template( + '
    ', + '', + '', + "
     
    ", + '', + '', + "
     
    " + ); + var btn, targs = [this.text || ' ', this.type]; + if(position){ + btn = tpl.insertBefore(position, targs, true); + }else{ + btn = tpl.append(ct, targs, true); + } + var btnEl = btn.child(this.buttonSelector); + + this.initButtonEl(btn, btnEl); + this.arrowBtnTable = btn.child("table:last"); + if(this.arrowTooltip){ + btn.child(this.arrowSelector).dom[this.tooltipType] = this.arrowTooltip; + } + }, + + + autoWidth : function(){ + if(this.el){ + var tbl = this.el.child("table:first"); + var tbl2 = this.el.child("table:last"); + this.el.setWidth("auto"); + tbl.setWidth("auto"); + if(Ext.isIE7 && Ext.isStrict){ + var ib = this.el.child(this.buttonSelector); + if(ib && ib.getWidth() > 20){ + ib.clip(); + ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr')); + } + } + if(this.minWidth){ + if((tbl.getWidth()+tbl2.getWidth()) < this.minWidth){ + tbl.setWidth(this.minWidth-tbl2.getWidth()); + } + } + this.el.setWidth(tbl.getWidth()+tbl2.getWidth()); + } + }, + + + setArrowHandler : function(handler, scope){ + this.arrowHandler = handler; + this.scope = scope; + }, + + + onClick : function(e){ + e.preventDefault(); + if(!this.disabled){ + if(e.getTarget(".x-btn-menu-arrow-wrap")){ + if(this.menu && !this.menu.isVisible() && !this.ignoreNextClick){ + this.showMenu(); + } + this.fireEvent("arrowclick", this, e); + if(this.arrowHandler){ + this.arrowHandler.call(this.scope || this, this, e); + } + }else{ + if(this.enableToggle){ + this.toggle(); + } + this.fireEvent("click", this, e); + if(this.handler){ + this.handler.call(this.scope || this, this, e); + } + } + } + }, + + + getClickEl : function(e, isUp){ + if(!isUp){ + return (this.lastClickEl = e.getTarget("table", 10, true)); + } + return this.lastClickEl; + }, + + + onDisable : function(){ + if(this.el){ + if(!Ext.isIE6){ + this.el.addClass("x-item-disabled"); + } + this.el.child(this.buttonSelector).dom.disabled = true; + this.el.child(this.arrowSelector).dom.disabled = true; + } + this.disabled = true; + }, + + + onEnable : function(){ + if(this.el){ + if(!Ext.isIE6){ + this.el.removeClass("x-item-disabled"); + } + this.el.child(this.buttonSelector).dom.disabled = false; + this.el.child(this.arrowSelector).dom.disabled = false; + } + this.disabled = false; + }, + + + isMenuTriggerOver : function(e){ + return this.menu && e.within(this.arrowBtnTable) && !e.within(this.arrowBtnTable, true); + }, + + + isMenuTriggerOut : function(e, internal){ + return this.menu && !e.within(this.arrowBtnTable); + }, + + + onDestroy : function(){ + Ext.destroy(this.arrowBtnTable); + Ext.SplitButton.superclass.onDestroy.call(this); + } +}); + + +Ext.MenuButton = Ext.SplitButton; + + +Ext.reg('splitbutton', Ext.SplitButton); + +Ext.CycleButton = Ext.extend(Ext.SplitButton, { + + + + + + + + getItemText : function(item){ + if(item && this.showText === true){ + var text = ''; + if(this.prependText){ + text += this.prependText; + } + text += item.text; + return text; + } + return undefined; + }, + + + setActiveItem : function(item, suppressEvent){ + if(typeof item != 'object'){ + item = this.menu.items.get(item); + } + if(item){ + if(!this.rendered){ + this.text = this.getItemText(item); + this.iconCls = item.iconCls; + }else{ + var t = this.getItemText(item); + if(t){ + this.setText(t); + } + this.setIconClass(item.iconCls); + } + this.activeItem = item; + if(!item.checked){ + item.setChecked(true, true); + } + if(this.forceIcon){ + this.setIconClass(this.forceIcon); + } + if(!suppressEvent){ + this.fireEvent('change', this, item); + } + } + }, + + + getActiveItem : function(){ + return this.activeItem; + }, + + + initComponent : function(){ + this.addEvents( + + "change" + ); + + if(this.changeHandler){ + this.on('change', this.changeHandler, this.scope||this); + delete this.changeHandler; + } + + this.itemCount = this.items.length; + + this.menu = {cls:'x-cycle-menu', items:[]}; + var checked; + for(var i = 0, len = this.itemCount; i < len; i++){ + var item = this.items[i]; + item.group = item.group || this.id; + item.itemIndex = i; + item.checkHandler = this.checkHandler; + item.scope = this; + item.checked = item.checked || false; + this.menu.items.push(item); + if(item.checked){ + checked = item; + } + } + this.setActiveItem(checked, true); + Ext.CycleButton.superclass.initComponent.call(this); + + this.on('click', this.toggleSelected, this); + }, + + + checkHandler : function(item, pressed){ + if(pressed){ + this.setActiveItem(item); + } + }, + + + toggleSelected : function(){ + this.menu.render(); + + var nextIdx, checkItem; + for (var i = 1; i < this.itemCount; i++) { + nextIdx = (this.activeItem.itemIndex + i) % this.itemCount; + + checkItem = this.menu.items.itemAt(nextIdx); + + if (!checkItem.disabled) { + checkItem.setChecked(true); + break; + } + } + } +}); +Ext.reg('cycle', Ext.CycleButton); + + Ext.Toolbar = function(config){ + if(Ext.isArray(config)){ + config = {buttons:config}; + } + Ext.Toolbar.superclass.constructor.call(this, config); +}; + +(function(){ + +var T = Ext.Toolbar; + +Ext.extend(T, Ext.BoxComponent, { + + trackMenus : true, + + + initComponent : function(){ + T.superclass.initComponent.call(this); + + if(this.items){ + this.buttons = this.items; + } + + this.items = new Ext.util.MixedCollection(false, function(o){ + return o.itemId || o.id || Ext.id(); + }); + }, + + + autoCreate: { + cls:'x-toolbar x-small-editor', + html:'
    ' + }, + + + onRender : function(ct, position){ + this.el = ct.createChild(Ext.apply({ id: this.id },this.autoCreate), position); + this.tr = this.el.child("tr", true); + }, + + + afterRender : function(){ + T.superclass.afterRender.call(this); + if(this.buttons){ + this.add.apply(this, this.buttons); + delete this.buttons; + } + }, + + + add : function(){ + var a = arguments, l = a.length; + for(var i = 0; i < l; i++){ + var el = a[i]; + if(el.isFormField){ + this.addField(el); + }else if(el.render){ + this.addItem(el); + }else if(typeof el == "string"){ + if(el == "separator" || el == "-"){ + this.addSeparator(); + }else if(el == " "){ + this.addSpacer(); + }else if(el == "->"){ + this.addFill(); + }else{ + this.addText(el); + } + }else if(el.tagName){ + this.addElement(el); + }else if(typeof el == "object"){ + if(el.xtype){ + this.addField(Ext.ComponentMgr.create(el, 'button')); + }else{ + this.addButton(el); + } + } + } + }, + + + addSeparator : function(){ + return this.addItem(new T.Separator()); + }, + + + addSpacer : function(){ + return this.addItem(new T.Spacer()); + }, + + + addFill : function(){ + return this.addItem(new T.Fill()); + }, + + + addElement : function(el){ + return this.addItem(new T.Item(el)); + }, + + + addItem : function(item){ + var td = this.nextBlock(); + this.initMenuTracking(item); + item.render(td); + this.items.add(item); + return item; + }, + + + addButton : function(config){ + if(Ext.isArray(config)){ + var buttons = []; + for(var i = 0, len = config.length; i < len; i++) { + buttons.push(this.addButton(config[i])); + } + return buttons; + } + var b = config; + if(!(config instanceof T.Button)){ + b = config.split ? + new T.SplitButton(config) : + new T.Button(config); + } + var td = this.nextBlock(); + this.initMenuTracking(b); + b.render(td); + this.items.add(b); + return b; + }, + + + initMenuTracking : function(item){ + if(this.trackMenus && item.menu){ + item.on({ + 'menutriggerover' : this.onButtonTriggerOver, + 'menushow' : this.onButtonMenuShow, + 'menuhide' : this.onButtonMenuHide, + scope: this + }) + } + }, + + + addText : function(text){ + return this.addItem(new T.TextItem(text)); + }, + + + insertButton : function(index, item){ + if(Ext.isArray(item)){ + var buttons = []; + for(var i = 0, len = item.length; i < len; i++) { + buttons.push(this.insertButton(index + i, item[i])); + } + return buttons; + } + if (!(item instanceof T.Button)){ + item = new T.Button(item); + } + var td = document.createElement("td"); + this.tr.insertBefore(td, this.tr.childNodes[index]); + this.initMenuTracking(item); + item.render(td); + this.items.insert(index, item); + return item; + }, + + + addDom : function(config, returnEl){ + var td = this.nextBlock(); + Ext.DomHelper.overwrite(td, config); + var ti = new T.Item(td.firstChild); + ti.render(td); + this.items.add(ti); + return ti; + }, + + + addField : function(field){ + var td = this.nextBlock(); + field.render(td); + var ti = new T.Item(td.firstChild); + ti.render(td); + this.items.add(ti); + return ti; + }, + + + nextBlock : function(){ + var td = document.createElement("td"); + this.tr.appendChild(td); + return td; + }, + + + onDestroy : function(){ + Ext.Toolbar.superclass.onDestroy.call(this); + if(this.rendered){ + if(this.items){ + Ext.destroy.apply(Ext, this.items.items); + } + Ext.Element.uncache(this.tr); + } + }, + + + onDisable : function(){ + this.items.each(function(item){ + if(item.disable){ + item.disable(); + } + }); + }, + + + onEnable : function(){ + this.items.each(function(item){ + if(item.enable){ + item.enable(); + } + }); + }, + + + onButtonTriggerOver : function(btn){ + if(this.activeMenuBtn && this.activeMenuBtn != btn){ + this.activeMenuBtn.hideMenu(); + btn.showMenu(); + this.activeMenuBtn = btn; + } + }, + + + onButtonMenuShow : function(btn){ + this.activeMenuBtn = btn; + }, + + + onButtonMenuHide : function(btn){ + delete this.activeMenuBtn; + } + + +}); +Ext.reg('toolbar', Ext.Toolbar); + + +T.Item = function(el){ + this.el = Ext.getDom(el); + this.id = Ext.id(this.el); + this.hidden = false; +}; + +T.Item.prototype = { + + + getEl : function(){ + return this.el; + }, + + + render : function(td){ + this.td = td; + td.appendChild(this.el); + }, + + + destroy : function(){ + if(this.td && this.td.parentNode){ + this.td.parentNode.removeChild(this.td); + } + }, + + + show: function(){ + this.hidden = false; + this.td.style.display = ""; + }, + + + hide: function(){ + this.hidden = true; + this.td.style.display = "none"; + }, + + + setVisible: function(visible){ + if(visible) { + this.show(); + }else{ + this.hide(); + } + }, + + + focus : function(){ + Ext.fly(this.el).focus(); + }, + + + disable : function(){ + Ext.fly(this.td).addClass("x-item-disabled"); + this.disabled = true; + this.el.disabled = true; + }, + + + enable : function(){ + Ext.fly(this.td).removeClass("x-item-disabled"); + this.disabled = false; + this.el.disabled = false; + } +}; +Ext.reg('tbitem', T.Item); + + + +T.Separator = function(){ + var s = document.createElement("span"); + s.className = "ytb-sep"; + T.Separator.superclass.constructor.call(this, s); +}; +Ext.extend(T.Separator, T.Item, { + enable:Ext.emptyFn, + disable:Ext.emptyFn, + focus:Ext.emptyFn +}); +Ext.reg('tbseparator', T.Separator); + + +T.Spacer = function(){ + var s = document.createElement("div"); + s.className = "ytb-spacer"; + T.Spacer.superclass.constructor.call(this, s); +}; +Ext.extend(T.Spacer, T.Item, { + enable:Ext.emptyFn, + disable:Ext.emptyFn, + focus:Ext.emptyFn +}); + +Ext.reg('tbspacer', T.Spacer); + + +T.Fill = Ext.extend(T.Spacer, { + + render : function(td){ + td.style.width = '100%'; + T.Fill.superclass.render.call(this, td); + } +}); +Ext.reg('tbfill', T.Fill); + + +T.TextItem = function(t){ + var s = document.createElement("span"); + s.className = "ytb-text"; + s.innerHTML = t.text ? t.text : t; + T.TextItem.superclass.constructor.call(this, s); +}; +Ext.extend(T.TextItem, T.Item, { + enable:Ext.emptyFn, + disable:Ext.emptyFn, + focus:Ext.emptyFn +}); +Ext.reg('tbtext', T.TextItem); + + + +T.Button = Ext.extend(Ext.Button, { + hideParent : true, + + onDestroy : function(){ + T.Button.superclass.onDestroy.call(this); + if(this.container){ + this.container.remove(); + } + } +}); +Ext.reg('tbbutton', T.Button); + + +T.SplitButton = Ext.extend(Ext.SplitButton, { + hideParent : true, + + onDestroy : function(){ + T.SplitButton.superclass.onDestroy.call(this); + if(this.container){ + this.container.remove(); + } + } +}); + +Ext.reg('tbsplit', T.SplitButton); + +T.MenuButton = T.SplitButton; + +})(); + + +Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { + + + + pageSize: 20, + + displayMsg : 'Displaying {0} - {1} of {2}', + + emptyMsg : 'No data to display', + + beforePageText : "Page", + + afterPageText : "of {0}", + + firstText : "First Page", + + prevText : "Previous Page", + + nextText : "Next Page", + + lastText : "Last Page", + + refreshText : "Refresh", + + + paramNames : {start: 'start', limit: 'limit'}, + + initComponent : function(){ + Ext.PagingToolbar.superclass.initComponent.call(this); + this.cursor = 0; + this.bind(this.store); + }, + + onRender : function(ct, position){ + Ext.PagingToolbar.superclass.onRender.call(this, ct, position); + this.first = this.addButton({ + tooltip: this.firstText, + iconCls: "x-tbar-page-first", + disabled: true, + handler: this.onClick.createDelegate(this, ["first"]) + }); + this.prev = this.addButton({ + tooltip: this.prevText, + iconCls: "x-tbar-page-prev", + disabled: true, + handler: this.onClick.createDelegate(this, ["prev"]) + }); + this.addSeparator(); + this.add(this.beforePageText); + this.field = Ext.get(this.addDom({ + tag: "input", + type: "text", + size: "3", + value: "1", + cls: "x-tbar-page-number" + }).el); + this.field.on("keydown", this.onPagingKeydown, this); + this.field.on("focus", function(){this.dom.select();}); + this.afterTextEl = this.addText(String.format(this.afterPageText, 1)); + this.field.setHeight(18); + this.addSeparator(); + this.next = this.addButton({ + tooltip: this.nextText, + iconCls: "x-tbar-page-next", + disabled: true, + handler: this.onClick.createDelegate(this, ["next"]) + }); + this.last = this.addButton({ + tooltip: this.lastText, + iconCls: "x-tbar-page-last", + disabled: true, + handler: this.onClick.createDelegate(this, ["last"]) + }); + this.addSeparator(); + this.loading = this.addButton({ + tooltip: this.refreshText, + iconCls: "x-tbar-loading", + handler: this.onClick.createDelegate(this, ["refresh"]) + }); + + if(this.displayInfo){ + this.displayEl = Ext.fly(this.el.dom).createChild({cls:'x-paging-info'}); + } + if(this.dsLoaded){ + this.onLoad.apply(this, this.dsLoaded); + } + }, + + updateInfo : function(){ + if(this.displayEl){ + var count = this.store.getCount(); + var msg = count == 0 ? + this.emptyMsg : + String.format( + this.displayMsg, + this.cursor+1, this.cursor+count, this.store.getTotalCount() + ); + this.displayEl.update(msg); + } + }, + + onLoad : function(store, r, o){ + if(!this.rendered){ + this.dsLoaded = [store, r, o]; + return; + } + this.cursor = o.params ? o.params[this.paramNames.start] : 0; + var d = this.getPageData(), ap = d.activePage, ps = d.pages; + + this.afterTextEl.el.innerHTML = String.format(this.afterPageText, d.pages); + this.field.dom.value = ap; + this.first.setDisabled(ap == 1); + this.prev.setDisabled(ap == 1); + this.next.setDisabled(ap == ps); + this.last.setDisabled(ap == ps); + this.loading.enable(); + this.updateInfo(); + }, + + getPageData : function(){ + var total = this.store.getTotalCount(); + return { + total : total, + activePage : Math.ceil((this.cursor+this.pageSize)/this.pageSize), + pages : total < this.pageSize ? 1 : Math.ceil(total/this.pageSize) + }; + }, + + onLoadError : function(){ + if(!this.rendered){ + return; + } + this.loading.enable(); + }, + + readPage : function(d){ + var v = this.field.dom.value, pageNum; + if (!v || isNaN(pageNum = parseInt(v, 10))) { + this.field.dom.value = d.activePage; + return false; + } + return pageNum; + }, + + onPagingKeydown : function(e){ + var k = e.getKey(), d = this.getPageData(), pageNum; + if (k == e.RETURN) { + e.stopEvent(); + if(pageNum = this.readPage(d)){ + pageNum = Math.min(Math.max(1, pageNum), d.pages) - 1; + this.doLoad(pageNum * this.pageSize); + } + }else if (k == e.HOME || k == e.END){ + e.stopEvent(); + pageNum = k == e.HOME ? 1 : d.pages; + this.field.dom.value = pageNum; + }else if (k == e.UP || k == e.PAGEUP || k == e.DOWN || k == e.PAGEDOWN){ + e.stopEvent(); + if(pageNum = this.readPage(d)){ + var increment = e.shiftKey ? 10 : 1; + if(k == e.DOWN || k == e.PAGEDOWN){ + increment *= -1; + } + pageNum += increment; + if(pageNum >= 1 & pageNum <= d.pages){ + this.field.dom.value = pageNum; + } + } + } + }, + + beforeLoad : function(){ + if(this.rendered && this.loading){ + this.loading.disable(); + } + }, + + doLoad : function(start){ + var o = {}, pn = this.paramNames; + o[pn.start] = start; + o[pn.limit] = this.pageSize; + this.store.load({params:o}); + }, + + onClick : function(which){ + var store = this.store; + switch(which){ + case "first": + this.doLoad(0); + break; + case "prev": + this.doLoad(Math.max(0, this.cursor-this.pageSize)); + break; + case "next": + this.doLoad(this.cursor+this.pageSize); + break; + case "last": + var total = store.getTotalCount(); + var extra = total % this.pageSize; + var lastStart = extra ? (total - extra) : total-this.pageSize; + this.doLoad(lastStart); + break; + case "refresh": + this.doLoad(this.cursor); + break; + } + }, + + + unbind : function(store){ + store = Ext.StoreMgr.lookup(store); + store.un("beforeload", this.beforeLoad, this); + store.un("load", this.onLoad, this); + store.un("loadexception", this.onLoadError, this); + this.store = undefined; + }, + + + bind : function(store){ + store = Ext.StoreMgr.lookup(store); + store.on("beforeload", this.beforeLoad, this); + store.on("load", this.onLoad, this); + store.on("loadexception", this.onLoadError, this); + this.store = store; + } +}); +Ext.reg('paging', Ext.PagingToolbar); + +Ext.Resizable = function(el, config){ + this.el = Ext.get(el); + + if(config && config.wrap){ + config.resizeChild = this.el; + this.el = this.el.wrap(typeof config.wrap == "object" ? config.wrap : {cls:"xresizable-wrap"}); + this.el.id = this.el.dom.id = config.resizeChild.id + "-rzwrap"; + this.el.setStyle("overflow", "hidden"); + this.el.setPositioning(config.resizeChild.getPositioning()); + config.resizeChild.clearPositioning(); + if(!config.width || !config.height){ + var csize = config.resizeChild.getSize(); + this.el.setSize(csize.width, csize.height); + } + if(config.pinned && !config.adjustments){ + config.adjustments = "auto"; + } + } + + + this.proxy = this.el.createProxy({tag: "div", cls: "x-resizable-proxy", id: this.el.id + "-rzproxy"}); + this.proxy.unselectable(); + this.proxy.enableDisplayMode('block'); + + Ext.apply(this, config); + + if(this.pinned){ + this.disableTrackOver = true; + this.el.addClass("x-resizable-pinned"); + } + + var position = this.el.getStyle("position"); + if(position != "absolute" && position != "fixed"){ + this.el.setStyle("position", "relative"); + } + if(!this.handles){ + this.handles = 's,e,se'; + if(this.multiDirectional){ + this.handles += ',n,w'; + } + } + if(this.handles == "all"){ + this.handles = "n s e w ne nw se sw"; + } + var hs = this.handles.split(/\s*?[,;]\s*?| /); + var ps = Ext.Resizable.positions; + for(var i = 0, len = hs.length; i < len; i++){ + if(hs[i] && ps[hs[i]]){ + var pos = ps[hs[i]]; + this[pos] = new Ext.Resizable.Handle(this, pos, this.disableTrackOver, this.transparent); + } + } + + this.corner = this.southeast; + + if(this.handles.indexOf("n") != -1 || this.handles.indexOf("w") != -1){ + this.updateBox = true; + } + + this.activeHandle = null; + + if(this.resizeChild){ + if(typeof this.resizeChild == "boolean"){ + this.resizeChild = Ext.get(this.el.dom.firstChild, true); + }else{ + this.resizeChild = Ext.get(this.resizeChild, true); + } + } + + if(this.adjustments == "auto"){ + var rc = this.resizeChild; + var hw = this.west, he = this.east, hn = this.north, hs = this.south; + if(rc && (hw || hn)){ + rc.position("relative"); + rc.setLeft(hw ? hw.el.getWidth() : 0); + rc.setTop(hn ? hn.el.getHeight() : 0); + } + this.adjustments = [ + (he ? -he.el.getWidth() : 0) + (hw ? -hw.el.getWidth() : 0), + (hn ? -hn.el.getHeight() : 0) + (hs ? -hs.el.getHeight() : 0) -1 + ]; + } + + if(this.draggable){ + this.dd = this.dynamic ? + this.el.initDD(null) : this.el.initDDProxy(null, {dragElId: this.proxy.id}); + this.dd.setHandleElId(this.resizeChild ? this.resizeChild.id : this.el.id); + } + + + this.addEvents( + "beforeresize", + "resize" + ); + + if(this.width !== null && this.height !== null){ + this.resizeTo(this.width, this.height); + }else{ + this.updateChildSize(); + } + if(Ext.isIE){ + this.el.dom.style.zoom = 1; + } + Ext.Resizable.superclass.constructor.call(this); +}; + +Ext.extend(Ext.Resizable, Ext.util.Observable, { + resizeChild : false, + adjustments : [0, 0], + minWidth : 5, + minHeight : 5, + maxWidth : 10000, + maxHeight : 10000, + enabled : true, + animate : false, + duration : .35, + dynamic : false, + handles : false, + multiDirectional : false, + disableTrackOver : false, + easing : 'easeOutStrong', + widthIncrement : 0, + heightIncrement : 0, + pinned : false, + width : null, + height : null, + preserveRatio : false, + transparent: false, + minX: 0, + minY: 0, + draggable: false, + + + + + + + + + resizeTo : function(width, height){ + this.el.setSize(width, height); + this.updateChildSize(); + this.fireEvent("resize", this, width, height, null); + }, + + + startSizing : function(e, handle){ + this.fireEvent("beforeresize", this, e); + if(this.enabled){ + + if(!this.overlay){ + this.overlay = this.el.createProxy({tag: "div", cls: "x-resizable-overlay", html: " "}, Ext.getBody()); + this.overlay.unselectable(); + this.overlay.enableDisplayMode("block"); + this.overlay.on("mousemove", this.onMouseMove, this); + this.overlay.on("mouseup", this.onMouseUp, this); + } + this.overlay.setStyle("cursor", handle.el.getStyle("cursor")); + + this.resizing = true; + this.startBox = this.el.getBox(); + this.startPoint = e.getXY(); + this.offsets = [(this.startBox.x + this.startBox.width) - this.startPoint[0], + (this.startBox.y + this.startBox.height) - this.startPoint[1]]; + + this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); + this.overlay.show(); + + if(this.constrainTo) { + var ct = Ext.get(this.constrainTo); + this.resizeRegion = ct.getRegion().adjust( + ct.getFrameWidth('t'), + ct.getFrameWidth('l'), + -ct.getFrameWidth('b'), + -ct.getFrameWidth('r') + ); + } + + this.proxy.setStyle('visibility', 'hidden'); + this.proxy.show(); + this.proxy.setBox(this.startBox); + if(!this.dynamic){ + this.proxy.setStyle('visibility', 'visible'); + } + } + }, + + + onMouseDown : function(handle, e){ + if(this.enabled){ + e.stopEvent(); + this.activeHandle = handle; + this.startSizing(e, handle); + } + }, + + + onMouseUp : function(e){ + var size = this.resizeElement(); + this.resizing = false; + this.handleOut(); + this.overlay.hide(); + this.proxy.hide(); + this.fireEvent("resize", this, size.width, size.height, e); + }, + + + updateChildSize : function(){ + if(this.resizeChild){ + var el = this.el; + var child = this.resizeChild; + var adj = this.adjustments; + if(el.dom.offsetWidth){ + var b = el.getSize(true); + child.setSize(b.width+adj[0], b.height+adj[1]); + } + + + + + if(Ext.isIE){ + setTimeout(function(){ + if(el.dom.offsetWidth){ + var b = el.getSize(true); + child.setSize(b.width+adj[0], b.height+adj[1]); + } + }, 10); + } + } + }, + + + snap : function(value, inc, min){ + if(!inc || !value) return value; + var newValue = value; + var m = value % inc; + if(m > 0){ + if(m > (inc/2)){ + newValue = value + (inc-m); + }else{ + newValue = value - m; + } + } + return Math.max(min, newValue); + }, + + + resizeElement : function(){ + var box = this.proxy.getBox(); + if(this.updateBox){ + this.el.setBox(box, false, this.animate, this.duration, null, this.easing); + }else{ + this.el.setSize(box.width, box.height, this.animate, this.duration, null, this.easing); + } + this.updateChildSize(); + if(!this.dynamic){ + this.proxy.hide(); + } + return box; + }, + + + constrain : function(v, diff, m, mx){ + if(v - diff < m){ + diff = v - m; + }else if(v - diff > mx){ + diff = mx - v; + } + return diff; + }, + + + onMouseMove : function(e){ + if(this.enabled){ + try{ + + if(this.resizeRegion && !this.resizeRegion.contains(e.getPoint())) { + return; + } + + + var curSize = this.curSize || this.startBox; + var x = this.startBox.x, y = this.startBox.y; + var ox = x, oy = y; + var w = curSize.width, h = curSize.height; + var ow = w, oh = h; + var mw = this.minWidth, mh = this.minHeight; + var mxw = this.maxWidth, mxh = this.maxHeight; + var wi = this.widthIncrement; + var hi = this.heightIncrement; + + var eventXY = e.getXY(); + var diffX = -(this.startPoint[0] - Math.max(this.minX, eventXY[0])); + var diffY = -(this.startPoint[1] - Math.max(this.minY, eventXY[1])); + + var pos = this.activeHandle.position; + + switch(pos){ + case "east": + w += diffX; + w = Math.min(Math.max(mw, w), mxw); + break; + case "south": + h += diffY; + h = Math.min(Math.max(mh, h), mxh); + break; + case "southeast": + w += diffX; + h += diffY; + w = Math.min(Math.max(mw, w), mxw); + h = Math.min(Math.max(mh, h), mxh); + break; + case "north": + diffY = this.constrain(h, diffY, mh, mxh); + y += diffY; + h -= diffY; + break; + case "west": + diffX = this.constrain(w, diffX, mw, mxw); + x += diffX; + w -= diffX; + break; + case "northeast": + w += diffX; + w = Math.min(Math.max(mw, w), mxw); + diffY = this.constrain(h, diffY, mh, mxh); + y += diffY; + h -= diffY; + break; + case "northwest": + diffX = this.constrain(w, diffX, mw, mxw); + diffY = this.constrain(h, diffY, mh, mxh); + y += diffY; + h -= diffY; + x += diffX; + w -= diffX; + break; + case "southwest": + diffX = this.constrain(w, diffX, mw, mxw); + h += diffY; + h = Math.min(Math.max(mh, h), mxh); + x += diffX; + w -= diffX; + break; + } + + var sw = this.snap(w, wi, mw); + var sh = this.snap(h, hi, mh); + if(sw != w || sh != h){ + switch(pos){ + case "northeast": + y -= sh - h; + break; + case "north": + y -= sh - h; + break; + case "southwest": + x -= sw - w; + break; + case "west": + x -= sw - w; + break; + case "northwest": + x -= sw - w; + y -= sh - h; + break; + } + w = sw; + h = sh; + } + + if(this.preserveRatio){ + switch(pos){ + case "southeast": + case "east": + h = oh * (w/ow); + h = Math.min(Math.max(mh, h), mxh); + w = ow * (h/oh); + break; + case "south": + w = ow * (h/oh); + w = Math.min(Math.max(mw, w), mxw); + h = oh * (w/ow); + break; + case "northeast": + w = ow * (h/oh); + w = Math.min(Math.max(mw, w), mxw); + h = oh * (w/ow); + break; + case "north": + var tw = w; + w = ow * (h/oh); + w = Math.min(Math.max(mw, w), mxw); + h = oh * (w/ow); + x += (tw - w) / 2; + break; + case "southwest": + h = oh * (w/ow); + h = Math.min(Math.max(mh, h), mxh); + var tw = w; + w = ow * (h/oh); + x += tw - w; + break; + case "west": + var th = h; + h = oh * (w/ow); + h = Math.min(Math.max(mh, h), mxh); + y += (th - h) / 2; + var tw = w; + w = ow * (h/oh); + x += tw - w; + break; + case "northwest": + var tw = w; + var th = h; + h = oh * (w/ow); + h = Math.min(Math.max(mh, h), mxh); + w = ow * (h/oh); + y += th - h; + x += tw - w; + break; + + } + } + this.proxy.setBounds(x, y, w, h); + if(this.dynamic){ + this.resizeElement(); + } + }catch(e){} + } + }, + + + handleOver : function(){ + if(this.enabled){ + this.el.addClass("x-resizable-over"); + } + }, + + + handleOut : function(){ + if(!this.resizing){ + this.el.removeClass("x-resizable-over"); + } + }, + + + getEl : function(){ + return this.el; + }, + + + getResizeChild : function(){ + return this.resizeChild; + }, + + + destroy : function(removeEl){ + this.proxy.remove(); + if(this.overlay){ + this.overlay.removeAllListeners(); + this.overlay.remove(); + } + var ps = Ext.Resizable.positions; + for(var k in ps){ + if(typeof ps[k] != "function" && this[ps[k]]){ + var h = this[ps[k]]; + h.el.removeAllListeners(); + h.el.remove(); + } + } + if(removeEl){ + this.el.update(""); + this.el.remove(); + } + }, + + syncHandleHeight : function(){ + var h = this.el.getHeight(true); + if(this.west){ + this.west.el.setHeight(h); + } + if(this.east){ + this.east.el.setHeight(h); + } + } +}); + + + +Ext.Resizable.positions = { + n: "north", s: "south", e: "east", w: "west", se: "southeast", sw: "southwest", nw: "northwest", ne: "northeast" +}; + + +Ext.Resizable.Handle = function(rz, pos, disableTrackOver, transparent){ + if(!this.tpl){ + + var tpl = Ext.DomHelper.createTemplate( + {tag: "div", cls: "x-resizable-handle x-resizable-handle-{0}"} + ); + tpl.compile(); + Ext.Resizable.Handle.prototype.tpl = tpl; + } + this.position = pos; + this.rz = rz; + this.el = this.tpl.append(rz.el.dom, [this.position], true); + this.el.unselectable(); + if(transparent){ + this.el.setOpacity(0); + } + this.el.on("mousedown", this.onMouseDown, this); + if(!disableTrackOver){ + this.el.on("mouseover", this.onMouseOver, this); + this.el.on("mouseout", this.onMouseOut, this); + } +}; + + +Ext.Resizable.Handle.prototype = { + afterResize : function(rz){ + + }, + + onMouseDown : function(e){ + this.rz.onMouseDown(this, e); + }, + + onMouseOver : function(e){ + this.rz.handleOver(this, e); + }, + + onMouseOut : function(e){ + this.rz.handleOut(this, e); + } +}; + + + + + +Ext.Editor = function(field, config){ + this.field = field; + Ext.Editor.superclass.constructor.call(this, config); +}; + +Ext.extend(Ext.Editor, Ext.Component, { + + + + + + value : "", + + alignment: "c-c?", + + shadow : "frame", + + constrain : false, + + swallowKeys : true, + + completeOnEnter : false, + + cancelOnEsc : false, + + updateEl : false, + + initComponent : function(){ + Ext.Editor.superclass.initComponent.call(this); + this.addEvents( + + "beforestartedit", + + "startedit", + + "beforecomplete", + + "complete", + + "specialkey" + ); + }, + + onRender : function(ct, position){ + this.el = new Ext.Layer({ + shadow: this.shadow, + cls: "x-editor", + parentEl : ct, + shim : this.shim, + shadowOffset:4, + id: this.id, + constrain: this.constrain + }); + this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden"); + if(this.field.msgTarget != 'title'){ + this.field.msgTarget = 'qtip'; + } + this.field.inEditor = true; + this.field.render(this.el); + if(Ext.isGecko){ + this.field.el.dom.setAttribute('autocomplete', 'off'); + } + this.field.on("specialkey", this.onSpecialKey, this); + if(this.swallowKeys){ + this.field.el.swallowEvent(['keydown','keypress']); + } + this.field.show(); + this.field.on("blur", this.onBlur, this); + if(this.field.grow){ + this.field.on("autosize", this.el.sync, this.el, {delay:1}); + } + }, + + onSpecialKey : function(field, e){ + if(this.completeOnEnter && e.getKey() == e.ENTER){ + e.stopEvent(); + this.completeEdit(); + }else if(this.cancelOnEsc && e.getKey() == e.ESC){ + this.cancelEdit(); + }else{ + this.fireEvent('specialkey', field, e); + } + }, + + + startEdit : function(el, value){ + if(this.editing){ + this.completeEdit(); + } + this.boundEl = Ext.get(el); + var v = value !== undefined ? value : this.boundEl.dom.innerHTML; + if(!this.rendered){ + this.render(this.parentEl || document.body); + } + if(this.fireEvent("beforestartedit", this, this.boundEl, v) === false){ + return; + } + this.startValue = v; + this.field.setValue(v); + this.doAutoSize(); + this.el.alignTo(this.boundEl, this.alignment); + this.editing = true; + this.show(); + }, + + doAutoSize : function(){ + if(this.autoSize){ + var sz = this.boundEl.getSize(); + switch(this.autoSize){ + case "width": + this.setSize(sz.width, ""); + break; + case "height": + this.setSize("", sz.height); + break; + default: + this.setSize(sz.width, sz.height); + } + } + }, + + + setSize : function(w, h){ + delete this.field.lastSize; + this.field.setSize(w, h); + if(this.el){ + this.el.sync(); + } + }, + + + realign : function(){ + this.el.alignTo(this.boundEl, this.alignment); + }, + + + completeEdit : function(remainVisible){ + if(!this.editing){ + return; + } + var v = this.getValue(); + if(this.revertInvalid !== false && !this.field.isValid()){ + v = this.startValue; + this.cancelEdit(true); + } + if(String(v) === String(this.startValue) && this.ignoreNoChange){ + this.editing = false; + this.hide(); + return; + } + if(this.fireEvent("beforecomplete", this, v, this.startValue) !== false){ + this.editing = false; + if(this.updateEl && this.boundEl){ + this.boundEl.update(v); + } + if(remainVisible !== true){ + this.hide(); + } + this.fireEvent("complete", this, v, this.startValue); + } + }, + + onShow : function(){ + this.el.show(); + if(this.hideEl !== false){ + this.boundEl.hide(); + } + this.field.show(); + if(Ext.isIE && !this.fixIEFocus){ this.fixIEFocus = true; + this.deferredFocus.defer(50, this); + }else{ + this.field.focus(); + } + this.fireEvent("startedit", this.boundEl, this.startValue); + }, + + deferredFocus : function(){ + if(this.editing){ + this.field.focus(); + } + }, + + + cancelEdit : function(remainVisible){ + if(this.editing){ + this.setValue(this.startValue); + if(remainVisible !== true){ + this.hide(); + } + } + }, + + onBlur : function(){ + if(this.allowBlur !== true && this.editing){ + this.completeEdit(); + } + }, + + onHide : function(){ + if(this.editing){ + this.completeEdit(); + return; + } + this.field.blur(); + if(this.field.collapse){ + this.field.collapse(); + } + this.el.hide(); + if(this.hideEl !== false){ + this.boundEl.show(); + } + }, + + + setValue : function(v){ + this.field.setValue(v); + }, + + + getValue : function(){ + return this.field.getValue(); + }, + + beforeDestroy : function(){ + this.field.destroy(); + this.field = null; + } +}); +Ext.reg('editor', Ext.Editor); + +Ext.MessageBox = function(){ + var dlg, opt, mask, waitTimer; + var bodyEl, msgEl, textboxEl, textareaEl, progressBar, pp, iconEl, spacerEl; + var buttons, activeTextEl, bwidth, iconCls = ''; + + + var handleButton = function(button){ + if(dlg.isVisible()){ + dlg.hide(); + Ext.callback(opt.fn, opt.scope||window, [button, activeTextEl.dom.value], 1); + } + }; + + + var handleHide = function(){ + if(opt && opt.cls){ + dlg.el.removeClass(opt.cls); + } + progressBar.reset(); + }; + + + var handleEsc = function(d, k, e){ + if(opt && opt.closable !== false){ + dlg.hide(); + } + if(e){ + e.stopEvent(); + } + }; + + + var updateButtons = function(b){ + var width = 0; + if(!b){ + buttons["ok"].hide(); + buttons["cancel"].hide(); + buttons["yes"].hide(); + buttons["no"].hide(); + return width; + } + dlg.footer.dom.style.display = ''; + for(var k in buttons){ + if(typeof buttons[k] != "function"){ + if(b[k]){ + buttons[k].show(); + buttons[k].setText(typeof b[k] == "string" ? b[k] : Ext.MessageBox.buttonText[k]); + width += buttons[k].el.getWidth()+15; + }else{ + buttons[k].hide(); + } + } + } + return width; + }; + + return { + + getDialog : function(titleText){ + if(!dlg){ + dlg = new Ext.Window({ + autoCreate : true, + title:titleText, + resizable:false, + constrain:true, + constrainHeader:true, + minimizable : false, + maximizable : false, + stateful: false, + modal: true, + shim:true, + buttonAlign:"center", + width:400, + height:100, + minHeight: 80, + plain:true, + footer:true, + closable:true, + close : function(){ + if(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){ + handleButton("no"); + }else{ + handleButton("cancel"); + } + } + }); + buttons = {}; + var bt = this.buttonText; + + buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok")); + buttons["yes"] = dlg.addButton(bt["yes"], handleButton.createCallback("yes")); + buttons["no"] = dlg.addButton(bt["no"], handleButton.createCallback("no")); + buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel")); + buttons["ok"].hideMode = buttons["yes"].hideMode = buttons["no"].hideMode = buttons["cancel"].hideMode = 'offsets'; + dlg.render(document.body); + dlg.getEl().addClass('x-window-dlg'); + mask = dlg.mask; + bodyEl = dlg.body.createChild({ + html:'

    ' + }); + iconEl = Ext.get(bodyEl.dom.firstChild); + var contentEl = bodyEl.dom.childNodes[1]; + msgEl = Ext.get(contentEl.firstChild); + textboxEl = Ext.get(contentEl.childNodes[2].firstChild); + textboxEl.enableDisplayMode(); + textboxEl.addKeyListener([10,13], function(){ + if(dlg.isVisible() && opt && opt.buttons){ + if(opt.buttons.ok){ + handleButton("ok"); + }else if(opt.buttons.yes){ + handleButton("yes"); + } + } + }); + textareaEl = Ext.get(contentEl.childNodes[2].childNodes[1]); + textareaEl.enableDisplayMode(); + progressBar = new Ext.ProgressBar({ + renderTo:bodyEl + }); + bodyEl.createChild({cls:'x-clear'}); + } + return dlg; + }, + + + updateText : function(text){ + if(!dlg.isVisible() && !opt.width){ + dlg.setSize(this.maxWidth, 100); + } + msgEl.update(text || ' '); + + var iw = iconCls != '' ? (iconEl.getWidth() + iconEl.getMargins('lr')) : 0; + var mw = msgEl.getWidth() + msgEl.getMargins('lr'); + var fw = dlg.getFrameWidth('lr'); + var bw = dlg.body.getFrameWidth('lr'); + if (Ext.isIE && iw > 0){ + + + iw += 3; + } + var w = Math.max(Math.min(opt.width || iw+mw+fw+bw, this.maxWidth), + Math.max(opt.minWidth || this.minWidth, bwidth || 0)); + + if(opt.prompt === true){ + activeTextEl.setWidth(w-iw-fw-bw); + } + if(opt.progress === true || opt.wait === true){ + progressBar.setSize(w-iw-fw-bw); + } + dlg.setSize(w, 'auto').center(); + return this; + }, + + + updateProgress : function(value, progressText, msg){ + progressBar.updateProgress(value, progressText); + if(msg){ + this.updateText(msg); + } + return this; + }, + + + isVisible : function(){ + return dlg && dlg.isVisible(); + }, + + + hide : function(){ + if(this.isVisible()){ + dlg.hide(); + handleHide(); + } + return this; + }, + + + show : function(options){ + if(this.isVisible()){ + this.hide(); + } + opt = options; + var d = this.getDialog(opt.title || " "); + + d.setTitle(opt.title || " "); + var allowClose = (opt.closable !== false && opt.progress !== true && opt.wait !== true); + d.tools.close.setDisplayed(allowClose); + activeTextEl = textboxEl; + opt.prompt = opt.prompt || (opt.multiline ? true : false); + if(opt.prompt){ + if(opt.multiline){ + textboxEl.hide(); + textareaEl.show(); + textareaEl.setHeight(typeof opt.multiline == "number" ? + opt.multiline : this.defaultTextHeight); + activeTextEl = textareaEl; + }else{ + textboxEl.show(); + textareaEl.hide(); + } + }else{ + textboxEl.hide(); + textareaEl.hide(); + } + activeTextEl.dom.value = opt.value || ""; + if(opt.prompt){ + d.focusEl = activeTextEl; + }else{ + var bs = opt.buttons; + var db = null; + if(bs && bs.ok){ + db = buttons["ok"]; + }else if(bs && bs.yes){ + db = buttons["yes"]; + } + if (db){ + d.focusEl = db; + } + } + if(opt.iconCls){ + d.setIconClass(opt.iconCls); + } + this.setIcon(opt.icon); + bwidth = updateButtons(opt.buttons); + progressBar.setVisible(opt.progress === true || opt.wait === true); + this.updateProgress(0, opt.progressText); + this.updateText(opt.msg); + if(opt.cls){ + d.el.addClass(opt.cls); + } + d.proxyDrag = opt.proxyDrag === true; + d.modal = opt.modal !== false; + d.mask = opt.modal !== false ? mask : false; + if(!d.isVisible()){ + + document.body.appendChild(dlg.el.dom); + d.setAnimateTarget(opt.animEl); + d.show(opt.animEl); + } + + + d.on('show', function(){ + if(allowClose === true){ + d.keyMap.enable(); + }else{ + d.keyMap.disable(); + } + }, this, {single:true}); + + if(opt.wait === true){ + progressBar.wait(opt.waitConfig); + } + return this; + }, + + + setIcon : function(icon){ + if(icon && icon != ''){ + iconEl.removeClass('x-hidden'); + iconEl.replaceClass(iconCls, icon); + iconCls = icon; + }else{ + iconEl.replaceClass(iconCls, 'x-hidden'); + iconCls = ''; + } + return this; + }, + + + progress : function(title, msg, progressText){ + this.show({ + title : title, + msg : msg, + buttons: false, + progress:true, + closable:false, + minWidth: this.minProgressWidth, + progressText: progressText + }); + return this; + }, + + + wait : function(msg, title, config){ + this.show({ + title : title, + msg : msg, + buttons: false, + closable:false, + wait:true, + modal:true, + minWidth: this.minProgressWidth, + waitConfig: config + }); + return this; + }, + + + alert : function(title, msg, fn, scope){ + this.show({ + title : title, + msg : msg, + buttons: this.OK, + fn: fn, + scope : scope + }); + return this; + }, + + + confirm : function(title, msg, fn, scope){ + this.show({ + title : title, + msg : msg, + buttons: this.YESNO, + fn: fn, + scope : scope, + icon: this.QUESTION + }); + return this; + }, + + + prompt : function(title, msg, fn, scope, multiline, value){ + this.show({ + title : title, + msg : msg, + buttons: this.OKCANCEL, + fn: fn, + minWidth:250, + scope : scope, + prompt:true, + multiline: multiline, + value: value + }); + return this; + }, + + + OK : {ok:true}, + + CANCEL : {cancel:true}, + + OKCANCEL : {ok:true, cancel:true}, + + YESNO : {yes:true, no:true}, + + YESNOCANCEL : {yes:true, no:true, cancel:true}, + + INFO : 'ext-mb-info', + + WARNING : 'ext-mb-warning', + + QUESTION : 'ext-mb-question', + + ERROR : 'ext-mb-error', + + + defaultTextHeight : 75, + + maxWidth : 600, + + minWidth : 100, + + minProgressWidth : 250, + + buttonText : { + ok : "OK", + cancel : "Cancel", + yes : "Yes", + no : "No" + } + }; +}(); + + +Ext.Msg = Ext.MessageBox; + +Ext.Tip = Ext.extend(Ext.Panel, { + + + + minWidth : 40, + + maxWidth : 300, + + shadow : "sides", + + defaultAlign : "tl-bl?", + autoRender: true, + quickShowInterval : 250, + + + frame:true, + hidden:true, + baseCls: 'x-tip', + floating:{shadow:true,shim:true,useDisplay:true,constrain:false}, + autoHeight:true, + + + initComponent : function(){ + Ext.Tip.superclass.initComponent.call(this); + if(this.closable && !this.title){ + this.elements += ',header'; + } + }, + + + afterRender : function(){ + Ext.Tip.superclass.afterRender.call(this); + if(this.closable){ + this.addTool({ + id: 'close', + handler: this.hide, + scope: this + }); + } + }, + + + showAt : function(xy){ + Ext.Tip.superclass.show.call(this); + if(this.measureWidth !== false && (!this.initialConfig || typeof this.initialConfig.width != 'number')){ + this.doAutoWidth(); + } + if(this.constrainPosition){ + xy = this.el.adjustForConstraints(xy); + } + this.setPagePosition(xy[0], xy[1]); + }, + + + doAutoWidth : function(){ + var bw = this.body.getTextWidth(); + if(this.title){ + bw = Math.max(bw, this.header.child('span').getTextWidth(this.title)); + } + bw += this.getFrameWidth() + (this.closable ? 20 : 0) + this.body.getPadding("lr"); + this.setWidth(bw.constrain(this.minWidth, this.maxWidth)); + }, + + + showBy : function(el, pos){ + if(!this.rendered){ + this.render(Ext.getBody()); + } + this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign)); + }, + + initDraggable : function(){ + this.dd = new Ext.Tip.DD(this, typeof this.draggable == 'boolean' ? null : this.draggable); + this.header.addClass('x-tip-draggable'); + } +}); + + +Ext.Tip.DD = function(tip, config){ + Ext.apply(this, config); + this.tip = tip; + Ext.Tip.DD.superclass.constructor.call(this, tip.el.id, 'WindowDD-'+tip.id); + this.setHandleElId(tip.header.id); + this.scroll = false; +}; + +Ext.extend(Ext.Tip.DD, Ext.dd.DD, { + moveOnly:true, + scroll:false, + headerOffsets:[100, 25], + startDrag : function(){ + this.tip.el.disableShadow(); + }, + endDrag : function(e){ + this.tip.el.enableShadow(true); + } +}); + +Ext.ToolTip = Ext.extend(Ext.Tip, { + + + + showDelay: 500, + + hideDelay: 200, + + dismissDelay: 5000, + + mouseOffset: [15,18], + + trackMouse : false, + constrainPosition: true, + + + initComponent: function(){ + Ext.ToolTip.superclass.initComponent.call(this); + this.lastActive = new Date(); + this.initTarget(); + }, + + + initTarget : function(){ + if(this.target){ + this.target = Ext.get(this.target); + this.target.on('mouseover', this.onTargetOver, this); + this.target.on('mouseout', this.onTargetOut, this); + this.target.on('mousemove', this.onMouseMove, this); + } + }, + + + onMouseMove : function(e){ + this.targetXY = e.getXY(); + if(!this.hidden && this.trackMouse){ + this.setPagePosition(this.getTargetXY()); + } + }, + + + getTargetXY : function(){ + return [this.targetXY[0]+this.mouseOffset[0], this.targetXY[1]+this.mouseOffset[1]]; + }, + + + onTargetOver : function(e){ + if(this.disabled || e.within(this.target.dom, true)){ + return; + } + this.clearTimer('hide'); + this.targetXY = e.getXY(); + this.delayShow(); + }, + + + delayShow : function(){ + if(this.hidden && !this.showTimer){ + if(this.lastActive.getElapsed() < this.quickShowInterval){ + this.show(); + }else{ + this.showTimer = this.show.defer(this.showDelay, this); + } + }else if(!this.hidden && this.autoHide !== false){ + this.show(); + } + }, + + + onTargetOut : function(e){ + if(this.disabled || e.within(this.target.dom, true)){ + return; + } + this.clearTimer('show'); + if(this.autoHide !== false){ + this.delayHide(); + } + }, + + + delayHide : function(){ + if(!this.hidden && !this.hideTimer){ + this.hideTimer = this.hide.defer(this.hideDelay, this); + } + }, + + + hide: function(){ + this.clearTimer('dismiss'); + this.lastActive = new Date(); + Ext.ToolTip.superclass.hide.call(this); + }, + + + show : function(){ + this.showAt(this.getTargetXY()); + }, + + + showAt : function(xy){ + this.lastActive = new Date(); + this.clearTimers(); + Ext.ToolTip.superclass.showAt.call(this, xy); + if(this.dismissDelay && this.autoHide !== false){ + this.dismissTimer = this.hide.defer(this.dismissDelay, this); + } + }, + + + clearTimer : function(name){ + name = name + 'Timer'; + clearTimeout(this[name]); + delete this[name]; + }, + + + clearTimers : function(){ + this.clearTimer('show'); + this.clearTimer('dismiss'); + this.clearTimer('hide'); + }, + + + onShow : function(){ + Ext.ToolTip.superclass.onShow.call(this); + Ext.getDoc().on('mousedown', this.onDocMouseDown, this); + }, + + + onHide : function(){ + Ext.ToolTip.superclass.onHide.call(this); + Ext.getDoc().un('mousedown', this.onDocMouseDown, this); + }, + + + onDocMouseDown : function(e){ + if(this.autoHide !== false && !e.within(this.el.dom)){ + this.disable(); + this.enable.defer(100, this); + } + }, + + + onDisable : function(){ + this.clearTimers(); + this.hide(); + }, + + + adjustPosition : function(x, y){ + + var ay = this.targetXY[1], h = this.getSize().height; + if(this.constrainPosition && y <= ay && (y+h) >= ay){ + y = ay-h-5; + } + return {x : x, y: y}; + }, + + + onDestroy : function(){ + Ext.ToolTip.superclass.onDestroy.call(this); + if(this.target){ + this.target.un('mouseover', this.onTargetOver, this); + this.target.un('mouseout', this.onTargetOut, this); + this.target.un('mousemove', this.onMouseMove, this); + } + } +}); + +Ext.QuickTip = Ext.extend(Ext.ToolTip, { + + + interceptTitles : false, + + + tagConfig : { + namespace : "ext", + attribute : "qtip", + width : "qwidth", + target : "target", + title : "qtitle", + hide : "hide", + cls : "qclass", + align : "qalign" + }, + + + initComponent : function(){ + this.target = this.target || Ext.getDoc(); + this.targets = this.targets || {}; + Ext.QuickTip.superclass.initComponent.call(this); + }, + + + register : function(config){ + var cs = Ext.isArray(config) ? config : arguments; + for(var i = 0, len = cs.length; i < len; i++){ + var c = cs[i]; + var target = c.target; + if(target){ + if(Ext.isArray(target)){ + for(var j = 0, jlen = target.length; j < jlen; j++){ + this.targets[Ext.id(target[j])] = c; + } + } else{ + this.targets[Ext.id(target)] = c; + } + } + } + }, + + + unregister : function(el){ + delete this.targets[Ext.id(el)]; + }, + + + onTargetOver : function(e){ + if(this.disabled){ + return; + } + this.targetXY = e.getXY(); + var t = e.getTarget(); + if(!t || t.nodeType !== 1 || t == document || t == document.body){ + return; + } + if(this.activeTarget && t == this.activeTarget.el){ + this.clearTimer('hide'); + this.show(); + return; + } + if(t && this.targets[t.id]){ + this.activeTarget = this.targets[t.id]; + this.activeTarget.el = t; + this.delayShow(); + return; + } + var ttp, et = Ext.fly(t), cfg = this.tagConfig; + var ns = cfg.namespace; + if(this.interceptTitles && t.title){ + ttp = t.title; + t.qtip = ttp; + t.removeAttribute("title"); + e.preventDefault(); + } else{ + ttp = t.qtip || et.getAttributeNS(ns, cfg.attribute); + } + if(ttp){ + var autoHide = et.getAttributeNS(ns, cfg.hide); + this.activeTarget = { + el: t, + text: ttp, + width: et.getAttributeNS(ns, cfg.width), + autoHide: autoHide != "user" && autoHide !== 'false', + title: et.getAttributeNS(ns, cfg.title), + cls: et.getAttributeNS(ns, cfg.cls), + align: et.getAttributeNS(ns, cfg.align) + }; + this.delayShow(); + } + }, + + + onTargetOut : function(e){ + this.clearTimer('show'); + if(this.autoHide !== false){ + this.delayHide(); + } + }, + + + showAt : function(xy){ + var t = this.activeTarget; + if(t){ + if(!this.rendered){ + this.render(Ext.getBody()); + this.activeTarget = t; + } + if(t.width){ + this.setWidth(t.width); + this.body.setWidth(this.adjustBodyWidth(t.width - this.getFrameWidth())); + this.measureWidth = false; + } else{ + this.measureWidth = true; + } + this.setTitle(t.title || ''); + this.body.update(t.text); + this.autoHide = t.autoHide; + this.dismissDelay = t.dismissDelay || this.dismissDelay; + if(this.lastCls){ + this.el.removeClass(this.lastCls); + delete this.lastCls; + } + if(t.cls){ + this.el.addClass(t.cls); + this.lastCls = t.cls; + } + if(t.align){ + xy = this.el.getAlignToXY(t.el, t.align); + this.constrainPosition = false; + } else{ + this.constrainPosition = true; + } + } + Ext.QuickTip.superclass.showAt.call(this, xy); + }, + + + hide: function(){ + delete this.activeTarget; + Ext.QuickTip.superclass.hide.call(this); + } +}); + +Ext.QuickTips = function(){ + var tip, locks = []; + return { + + init : function(){ + if(!tip){ + tip = new Ext.QuickTip({elements:'header,body'}); + } + }, + + + enable : function(){ + if(tip){ + locks.pop(); + if(locks.length < 1){ + tip.enable(); + } + } + }, + + + disable : function(){ + if(tip){ + tip.disable(); + } + locks.push(1); + }, + + + isEnabled : function(){ + return tip !== undefined && !tip.disabled; + }, + + + getQuickTip : function(){ + return tip; + }, + + + register : function(){ + tip.register.apply(tip, arguments); + }, + + + unregister : function(){ + tip.unregister.apply(tip, arguments); + }, + + + tips :function(){ + tip.register.apply(tip, arguments); + } + } +}(); + +Ext.tree.TreePanel = Ext.extend(Ext.Panel, { + rootVisible : true, + animate: Ext.enableFx, + lines : true, + enableDD : false, + hlDrop : Ext.enableFx, + pathSeparator: "/", + + initComponent : function(){ + Ext.tree.TreePanel.superclass.initComponent.call(this); + + if(!this.eventModel){ + this.eventModel = new Ext.tree.TreeEventModel(this); + } + + this.nodeHash = {}; + + + if(this.root){ + this.setRootNode(this.root); + } + + this.addEvents( + + + "append", + + "remove", + + "movenode", + + "insert", + + "beforeappend", + + "beforeremove", + + "beforemovenode", + + "beforeinsert", + + + "beforeload", + + "load", + + "textchange", + + "beforeexpandnode", + + "beforecollapsenode", + + "expandnode", + + "disabledchange", + + "collapsenode", + + "beforeclick", + + "click", + + "checkchange", + + "dblclick", + + "contextmenu", + + "beforechildrenrendered", + + "startdrag", + + "enddrag", + + "dragdrop", + + "beforenodedrop", + + "nodedrop", + + "nodedragover" + ); + if(this.singleExpand){ + this.on("beforeexpandnode", this.restrictExpand, this); + } + }, + + + proxyNodeEvent : function(ename, a1, a2, a3, a4, a5, a6){ + if(ename == 'collapse' || ename == 'expand' || ename == 'beforecollapse' || ename == 'beforeexpand' || ename == 'move' || ename == 'beforemove'){ + ename = ename+'node'; + } + + return this.fireEvent(ename, a1, a2, a3, a4, a5, a6); + }, + + + + getRootNode : function(){ + return this.root; + }, + + + setRootNode : function(node){ + this.root = node; + node.ownerTree = this; + node.isRoot = true; + this.registerNode(node); + if(!this.rootVisible){ + var uiP = node.attributes.uiProvider; + node.ui = uiP ? new uiP(node) : new Ext.tree.RootTreeNodeUI(node); + } + return node; + }, + + + getNodeById : function(id){ + return this.nodeHash[id]; + }, + + + registerNode : function(node){ + this.nodeHash[node.id] = node; + }, + + + unregisterNode : function(node){ + delete this.nodeHash[node.id]; + }, + + + toString : function(){ + return "[Tree"+(this.id?" "+this.id:"")+"]"; + }, + + + restrictExpand : function(node){ + var p = node.parentNode; + if(p){ + if(p.expandedChild && p.expandedChild.parentNode == p){ + p.expandedChild.collapse(); + } + p.expandedChild = node; + } + }, + + + getChecked : function(a, startNode){ + startNode = startNode || this.root; + var r = []; + var f = function(){ + if(this.attributes.checked){ + r.push(!a ? this : (a == 'id' ? this.id : this.attributes[a])); + } + } + startNode.cascade(f); + return r; + }, + + + getEl : function(){ + return this.el; + }, + + + getLoader : function(){ + return this.loader; + }, + + + expandAll : function(){ + this.root.expand(true); + }, + + + collapseAll : function(){ + this.root.collapse(true); + }, + + + getSelectionModel : function(){ + if(!this.selModel){ + this.selModel = new Ext.tree.DefaultSelectionModel(); + } + return this.selModel; + }, + + + expandPath : function(path, attr, callback){ + attr = attr || "id"; + var keys = path.split(this.pathSeparator); + var curNode = this.root; + if(curNode.attributes[attr] != keys[1]){ + if(callback){ + callback(false, null); + } + return; + } + var index = 1; + var f = function(){ + if(++index == keys.length){ + if(callback){ + callback(true, curNode); + } + return; + } + var c = curNode.findChild(attr, keys[index]); + if(!c){ + if(callback){ + callback(false, curNode); + } + return; + } + curNode = c; + c.expand(false, false, f); + }; + curNode.expand(false, false, f); + }, + + + selectPath : function(path, attr, callback){ + attr = attr || "id"; + var keys = path.split(this.pathSeparator); + var v = keys.pop(); + if(keys.length > 0){ + var f = function(success, node){ + if(success && node){ + var n = node.findChild(attr, v); + if(n){ + n.select(); + if(callback){ + callback(true, n); + } + }else if(callback){ + callback(false, n); + } + }else{ + if(callback){ + callback(false, n); + } + } + }; + this.expandPath(keys.join(this.pathSeparator), attr, f); + }else{ + this.root.select(); + if(callback){ + callback(true, this.root); + } + } + }, + + + getTreeEl : function(){ + return this.body; + }, + + + onRender : function(ct, position){ + Ext.tree.TreePanel.superclass.onRender.call(this, ct, position); + this.el.addClass('x-tree'); + this.innerCt = this.body.createChild({tag:"ul", + cls:"x-tree-root-ct " + + (this.useArrows ? 'x-tree-arrows' : this.lines ? "x-tree-lines" : "x-tree-no-lines")}); + }, + + + initEvents : function(){ + Ext.tree.TreePanel.superclass.initEvents.call(this); + + if(this.containerScroll){ + Ext.dd.ScrollManager.register(this.body); + } + if((this.enableDD || this.enableDrop) && !this.dropZone){ + + this.dropZone = new Ext.tree.TreeDropZone(this, this.dropConfig || { + ddGroup: this.ddGroup || "TreeDD", appendOnly: this.ddAppendOnly === true + }); + } + if((this.enableDD || this.enableDrag) && !this.dragZone){ + + this.dragZone = new Ext.tree.TreeDragZone(this, this.dragConfig || { + ddGroup: this.ddGroup || "TreeDD", + scroll: this.ddScroll + }); + } + this.getSelectionModel().init(this); + }, + + + afterRender : function(){ + Ext.tree.TreePanel.superclass.afterRender.call(this); + this.root.render(); + if(!this.rootVisible){ + this.root.renderChildren(); + } + }, + + onDestroy : function(){ + if(this.rendered){ + this.body.removeAllListeners(); + Ext.dd.ScrollManager.unregister(this.body); + if(this.dropZone){ + this.dropZone.unreg(); + } + if(this.dragZone){ + this.dragZone.unreg(); + } + } + this.root.destroy(); + this.nodeHash = null; + Ext.tree.TreePanel.superclass.onDestroy.call(this); + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +}); +Ext.reg('treepanel', Ext.tree.TreePanel); +Ext.tree.TreeEventModel = function(tree){ + this.tree = tree; + this.tree.on('render', this.initEvents, this); +} + +Ext.tree.TreeEventModel.prototype = { + initEvents : function(){ + var el = this.tree.getTreeEl(); + el.on('click', this.delegateClick, this); + if(this.tree.trackMouseOver !== false){ + el.on('mouseover', this.delegateOver, this); + el.on('mouseout', this.delegateOut, this); + } + el.on('dblclick', this.delegateDblClick, this); + el.on('contextmenu', this.delegateContextMenu, this); + }, + + getNode : function(e){ + var t; + if(t = e.getTarget('.x-tree-node-el', 10)){ + var id = Ext.fly(t, '_treeEvents').getAttributeNS('ext', 'tree-node-id'); + if(id){ + return this.tree.getNodeById(id); + } + } + return null; + }, + + getNodeTarget : function(e){ + var t = e.getTarget('.x-tree-node-icon', 1); + if(!t){ + t = e.getTarget('.x-tree-node-el', 6); + } + return t; + }, + + delegateOut : function(e, t){ + if(!this.beforeEvent(e)){ + return; + } + if(e.getTarget('.x-tree-ec-icon', 1)){ + var n = this.getNode(e); + this.onIconOut(e, n); + if(n == this.lastEcOver){ + delete this.lastEcOver; + } + } + if((t = this.getNodeTarget(e)) && !e.within(t, true)){ + this.onNodeOut(e, this.getNode(e)); + } + }, + + delegateOver : function(e, t){ + if(!this.beforeEvent(e)){ + return; + } + if(this.lastEcOver){ + this.onIconOut(e, this.lastEcOver); + delete this.lastEcOver; + } + if(e.getTarget('.x-tree-ec-icon', 1)){ + this.lastEcOver = this.getNode(e); + this.onIconOver(e, this.lastEcOver); + } + if(t = this.getNodeTarget(e)){ + this.onNodeOver(e, this.getNode(e)); + } + }, + + delegateClick : function(e, t){ + if(!this.beforeEvent(e)){ + return; + } + + if(e.getTarget('input[type=checkbox]', 1)){ + this.onCheckboxClick(e, this.getNode(e)); + } + else if(e.getTarget('.x-tree-ec-icon', 1)){ + this.onIconClick(e, this.getNode(e)); + } + else if(this.getNodeTarget(e)){ + this.onNodeClick(e, this.getNode(e)); + } + }, + + delegateDblClick : function(e, t){ + if(this.beforeEvent(e) && this.getNodeTarget(e)){ + this.onNodeDblClick(e, this.getNode(e)); + } + }, + + delegateContextMenu : function(e, t){ + if(this.beforeEvent(e) && this.getNodeTarget(e)){ + this.onNodeContextMenu(e, this.getNode(e)); + } + }, + + onNodeClick : function(e, node){ + node.ui.onClick(e); + }, + + onNodeOver : function(e, node){ + node.ui.onOver(e); + }, + + onNodeOut : function(e, node){ + node.ui.onOut(e); + }, + + onIconOver : function(e, node){ + node.ui.addClass('x-tree-ec-over'); + }, + + onIconOut : function(e, node){ + node.ui.removeClass('x-tree-ec-over'); + }, + + onIconClick : function(e, node){ + node.ui.ecClick(e); + }, + + onCheckboxClick : function(e, node){ + node.ui.onCheckChange(e); + }, + + onNodeDblClick : function(e, node){ + node.ui.onDblClick(e); + }, + + onNodeContextMenu : function(e, node){ + node.ui.onContextMenu(e); + }, + + beforeEvent : function(e){ + if(this.disabled){ + e.stopEvent(); + return false; + } + return true; + }, + + disable: function(){ + this.disabled = true; + }, + + enable: function(){ + this.disabled = false; + } +}; + +Ext.tree.DefaultSelectionModel = function(config){ + this.selNode = null; + + this.addEvents( + + "selectionchange", + + + "beforeselect" + ); + + Ext.apply(this, config); + Ext.tree.DefaultSelectionModel.superclass.constructor.call(this); +}; + +Ext.extend(Ext.tree.DefaultSelectionModel, Ext.util.Observable, { + init : function(tree){ + this.tree = tree; + tree.getTreeEl().on("keydown", this.onKeyDown, this); + tree.on("click", this.onNodeClick, this); + }, + + onNodeClick : function(node, e){ + this.select(node); + }, + + + select : function(node){ + var last = this.selNode; + if(last != node && this.fireEvent('beforeselect', this, node, last) !== false){ + if(last){ + last.ui.onSelectedChange(false); + } + this.selNode = node; + node.ui.onSelectedChange(true); + this.fireEvent("selectionchange", this, node, last); + } + return node; + }, + + + unselect : function(node){ + if(this.selNode == node){ + this.clearSelections(); + } + }, + + + clearSelections : function(){ + var n = this.selNode; + if(n){ + n.ui.onSelectedChange(false); + this.selNode = null; + this.fireEvent("selectionchange", this, null); + } + return n; + }, + + + getSelectedNode : function(){ + return this.selNode; + }, + + + isSelected : function(node){ + return this.selNode == node; + }, + + + selectPrevious : function(){ + var s = this.selNode || this.lastSelNode; + if(!s){ + return null; + } + var ps = s.previousSibling; + if(ps){ + if(!ps.isExpanded() || ps.childNodes.length < 1){ + return this.select(ps); + } else{ + var lc = ps.lastChild; + while(lc && lc.isExpanded() && lc.childNodes.length > 0){ + lc = lc.lastChild; + } + return this.select(lc); + } + } else if(s.parentNode && (this.tree.rootVisible || !s.parentNode.isRoot)){ + return this.select(s.parentNode); + } + return null; + }, + + + selectNext : function(){ + var s = this.selNode || this.lastSelNode; + if(!s){ + return null; + } + if(s.firstChild && s.isExpanded()){ + return this.select(s.firstChild); + }else if(s.nextSibling){ + return this.select(s.nextSibling); + }else if(s.parentNode){ + var newS = null; + s.parentNode.bubble(function(){ + if(this.nextSibling){ + newS = this.getOwnerTree().selModel.select(this.nextSibling); + return false; + } + }); + return newS; + } + return null; + }, + + onKeyDown : function(e){ + var s = this.selNode || this.lastSelNode; + + var sm = this; + if(!s){ + return; + } + var k = e.getKey(); + switch(k){ + case e.DOWN: + e.stopEvent(); + this.selectNext(); + break; + case e.UP: + e.stopEvent(); + this.selectPrevious(); + break; + case e.RIGHT: + e.preventDefault(); + if(s.hasChildNodes()){ + if(!s.isExpanded()){ + s.expand(); + }else if(s.firstChild){ + this.select(s.firstChild, e); + } + } + break; + case e.LEFT: + e.preventDefault(); + if(s.hasChildNodes() && s.isExpanded()){ + s.collapse(); + }else if(s.parentNode && (this.tree.rootVisible || s.parentNode != this.tree.getRootNode())){ + this.select(s.parentNode, e); + } + break; + }; + } +}); + + +Ext.tree.MultiSelectionModel = function(config){ + this.selNodes = []; + this.selMap = {}; + this.addEvents( + + "selectionchange" + ); + Ext.apply(this, config); + Ext.tree.MultiSelectionModel.superclass.constructor.call(this); +}; + +Ext.extend(Ext.tree.MultiSelectionModel, Ext.util.Observable, { + init : function(tree){ + this.tree = tree; + tree.getTreeEl().on("keydown", this.onKeyDown, this); + tree.on("click", this.onNodeClick, this); + }, + + onNodeClick : function(node, e){ + this.select(node, e, e.ctrlKey); + }, + + + select : function(node, e, keepExisting){ + if(keepExisting !== true){ + this.clearSelections(true); + } + if(this.isSelected(node)){ + this.lastSelNode = node; + return node; + } + this.selNodes.push(node); + this.selMap[node.id] = node; + this.lastSelNode = node; + node.ui.onSelectedChange(true); + this.fireEvent("selectionchange", this, this.selNodes); + return node; + }, + + + unselect : function(node){ + if(this.selMap[node.id]){ + node.ui.onSelectedChange(false); + var sn = this.selNodes; + var index = sn.indexOf(node); + if(index != -1){ + this.selNodes.splice(index, 1); + } + delete this.selMap[node.id]; + this.fireEvent("selectionchange", this, this.selNodes); + } + }, + + + clearSelections : function(suppressEvent){ + var sn = this.selNodes; + if(sn.length > 0){ + for(var i = 0, len = sn.length; i < len; i++){ + sn[i].ui.onSelectedChange(false); + } + this.selNodes = []; + this.selMap = {}; + if(suppressEvent !== true){ + this.fireEvent("selectionchange", this, this.selNodes); + } + } + }, + + + isSelected : function(node){ + return this.selMap[node.id] ? true : false; + }, + + + getSelectedNodes : function(){ + return this.selNodes; + }, + + onKeyDown : Ext.tree.DefaultSelectionModel.prototype.onKeyDown, + + selectNext : Ext.tree.DefaultSelectionModel.prototype.selectNext, + + selectPrevious : Ext.tree.DefaultSelectionModel.prototype.selectPrevious +}); + +Ext.tree.TreeNode = function(attributes){ + attributes = attributes || {}; + if(typeof attributes == "string"){ + attributes = {text: attributes}; + } + this.childrenRendered = false; + this.rendered = false; + Ext.tree.TreeNode.superclass.constructor.call(this, attributes); + this.expanded = attributes.expanded === true; + this.isTarget = attributes.isTarget !== false; + this.draggable = attributes.draggable !== false && attributes.allowDrag !== false; + this.allowChildren = attributes.allowChildren !== false && attributes.allowDrop !== false; + + + this.text = attributes.text; + + this.disabled = attributes.disabled === true; + + this.addEvents( + + "textchange", + + "beforeexpand", + + "beforecollapse", + + "expand", + + "disabledchange", + + "collapse", + + "beforeclick", + + "click", + + "checkchange", + + "dblclick", + + "contextmenu", + + "beforechildrenrendered" + ); + + var uiClass = this.attributes.uiProvider || this.defaultUI || Ext.tree.TreeNodeUI; + + + this.ui = new uiClass(this); +}; +Ext.extend(Ext.tree.TreeNode, Ext.data.Node, { + preventHScroll: true, + + isExpanded : function(){ + return this.expanded; + }, + + + getUI : function(){ + return this.ui; + }, + + + setFirstChild : function(node){ + var of = this.firstChild; + Ext.tree.TreeNode.superclass.setFirstChild.call(this, node); + if(this.childrenRendered && of && node != of){ + of.renderIndent(true, true); + } + if(this.rendered){ + this.renderIndent(true, true); + } + }, + + + setLastChild : function(node){ + var ol = this.lastChild; + Ext.tree.TreeNode.superclass.setLastChild.call(this, node); + if(this.childrenRendered && ol && node != ol){ + ol.renderIndent(true, true); + } + if(this.rendered){ + this.renderIndent(true, true); + } + }, + + + + appendChild : function(){ + var node = Ext.tree.TreeNode.superclass.appendChild.apply(this, arguments); + if(node && this.childrenRendered){ + node.render(); + } + this.ui.updateExpandIcon(); + return node; + }, + + + removeChild : function(node){ + this.ownerTree.getSelectionModel().unselect(node); + Ext.tree.TreeNode.superclass.removeChild.apply(this, arguments); + + if(this.childrenRendered){ + node.ui.remove(); + } + if(this.childNodes.length < 1){ + this.collapse(false, false); + }else{ + this.ui.updateExpandIcon(); + } + if(!this.firstChild && !this.isHiddenRoot()) { + this.childrenRendered = false; + } + return node; + }, + + + insertBefore : function(node, refNode){ + var newNode = Ext.tree.TreeNode.superclass.insertBefore.apply(this, arguments); + if(newNode && refNode && this.childrenRendered){ + node.render(); + } + this.ui.updateExpandIcon(); + return newNode; + }, + + + setText : function(text){ + var oldText = this.text; + this.text = text; + this.attributes.text = text; + if(this.rendered){ + this.ui.onTextChange(this, text, oldText); + } + this.fireEvent("textchange", this, text, oldText); + }, + + + select : function(){ + this.getOwnerTree().getSelectionModel().select(this); + }, + + + unselect : function(){ + this.getOwnerTree().getSelectionModel().unselect(this); + }, + + + isSelected : function(){ + return this.getOwnerTree().getSelectionModel().isSelected(this); + }, + + + expand : function(deep, anim, callback){ + if(!this.expanded){ + if(this.fireEvent("beforeexpand", this, deep, anim) === false){ + return; + } + if(!this.childrenRendered){ + this.renderChildren(); + } + this.expanded = true; + if(!this.isHiddenRoot() && (this.getOwnerTree().animate && anim !== false) || anim){ + this.ui.animExpand(function(){ + this.fireEvent("expand", this); + if(typeof callback == "function"){ + callback(this); + } + if(deep === true){ + this.expandChildNodes(true); + } + }.createDelegate(this)); + return; + }else{ + this.ui.expand(); + this.fireEvent("expand", this); + if(typeof callback == "function"){ + callback(this); + } + } + }else{ + if(typeof callback == "function"){ + callback(this); + } + } + if(deep === true){ + this.expandChildNodes(true); + } + }, + + isHiddenRoot : function(){ + return this.isRoot && !this.getOwnerTree().rootVisible; + }, + + + collapse : function(deep, anim){ + if(this.expanded && !this.isHiddenRoot()){ + if(this.fireEvent("beforecollapse", this, deep, anim) === false){ + return; + } + this.expanded = false; + if((this.getOwnerTree().animate && anim !== false) || anim){ + this.ui.animCollapse(function(){ + this.fireEvent("collapse", this); + if(deep === true){ + this.collapseChildNodes(true); + } + }.createDelegate(this)); + return; + }else{ + this.ui.collapse(); + this.fireEvent("collapse", this); + } + } + if(deep === true){ + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++) { + cs[i].collapse(true, false); + } + } + }, + + + delayedExpand : function(delay){ + if(!this.expandProcId){ + this.expandProcId = this.expand.defer(delay, this); + } + }, + + + cancelExpand : function(){ + if(this.expandProcId){ + clearTimeout(this.expandProcId); + } + this.expandProcId = false; + }, + + + toggle : function(){ + if(this.expanded){ + this.collapse(); + }else{ + this.expand(); + } + }, + + + ensureVisible : function(callback){ + var tree = this.getOwnerTree(); + tree.expandPath(this.parentNode.getPath(), false, function(){ + var node = tree.getNodeById(this.id); + tree.getTreeEl().scrollChildIntoView(node.ui.anchor); + Ext.callback(callback); + }.createDelegate(this)); + }, + + + expandChildNodes : function(deep){ + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++) { + cs[i].expand(deep); + } + }, + + + collapseChildNodes : function(deep){ + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++) { + cs[i].collapse(deep); + } + }, + + + disable : function(){ + this.disabled = true; + this.unselect(); + if(this.rendered && this.ui.onDisableChange){ + this.ui.onDisableChange(this, true); + } + this.fireEvent("disabledchange", this, true); + }, + + + enable : function(){ + this.disabled = false; + if(this.rendered && this.ui.onDisableChange){ + this.ui.onDisableChange(this, false); + } + this.fireEvent("disabledchange", this, false); + }, + + + renderChildren : function(suppressEvent){ + if(suppressEvent !== false){ + this.fireEvent("beforechildrenrendered", this); + } + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++){ + cs[i].render(true); + } + this.childrenRendered = true; + }, + + + sort : function(fn, scope){ + Ext.tree.TreeNode.superclass.sort.apply(this, arguments); + if(this.childrenRendered){ + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++){ + cs[i].render(true); + } + } + }, + + + render : function(bulkRender){ + this.ui.render(bulkRender); + if(!this.rendered){ + + this.getOwnerTree().registerNode(this); + this.rendered = true; + if(this.expanded){ + this.expanded = false; + this.expand(false, false); + } + } + }, + + + renderIndent : function(deep, refresh){ + if(refresh){ + this.ui.childIndent = null; + } + this.ui.renderIndent(); + if(deep === true && this.childrenRendered){ + var cs = this.childNodes; + for(var i = 0, len = cs.length; i < len; i++){ + cs[i].renderIndent(true, refresh); + } + } + }, + + beginUpdate : function(){ + this.childrenRendered = false; + }, + + endUpdate : function(){ + if(this.expanded && this.rendered){ + this.renderChildren(); + } + }, + + destroy : function(){ + for(var i = 0,l = this.childNodes.length; i < l; i++){ + this.childNodes[i].destroy(); + } + this.childNodes = null; + if(this.ui.destroy){ + this.ui.destroy(); + } + } +}); + + Ext.tree.AsyncTreeNode = function(config){ + this.loaded = false; + this.loading = false; + Ext.tree.AsyncTreeNode.superclass.constructor.apply(this, arguments); + + this.addEvents('beforeload', 'load'); + + +}; +Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, { + expand : function(deep, anim, callback){ + if(this.loading){ + var timer; + var f = function(){ + if(!this.loading){ + clearInterval(timer); + this.expand(deep, anim, callback); + } + }.createDelegate(this); + timer = setInterval(f, 200); + return; + } + if(!this.loaded){ + if(this.fireEvent("beforeload", this) === false){ + return; + } + this.loading = true; + this.ui.beforeLoad(this); + var loader = this.loader || this.attributes.loader || this.getOwnerTree().getLoader(); + if(loader){ + loader.load(this, this.loadComplete.createDelegate(this, [deep, anim, callback])); + return; + } + } + Ext.tree.AsyncTreeNode.superclass.expand.call(this, deep, anim, callback); + }, + + + isLoading : function(){ + return this.loading; + }, + + loadComplete : function(deep, anim, callback){ + this.loading = false; + this.loaded = true; + this.ui.afterLoad(this); + this.fireEvent("load", this); + this.expand(deep, anim, callback); + }, + + + isLoaded : function(){ + return this.loaded; + }, + + hasChildNodes : function(){ + if(!this.isLeaf() && !this.loaded){ + return true; + }else{ + return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this); + } + }, + + + reload : function(callback){ + this.collapse(false, false); + while(this.firstChild){ + this.removeChild(this.firstChild); + } + this.childrenRendered = false; + this.loaded = false; + if(this.isHiddenRoot()){ + this.expanded = false; + } + this.expand(false, false, callback); + } +}); + +Ext.tree.TreeNodeUI = function(node){ + this.node = node; + this.rendered = false; + this.animating = false; + this.wasLeaf = true; + this.ecc = 'x-tree-ec-icon x-tree-elbow'; + this.emptyIcon = Ext.BLANK_IMAGE_URL; +}; + +Ext.tree.TreeNodeUI.prototype = { + + removeChild : function(node){ + if(this.rendered){ + this.ctNode.removeChild(node.ui.getEl()); + } + }, + + + beforeLoad : function(){ + this.addClass("x-tree-node-loading"); + }, + + + afterLoad : function(){ + this.removeClass("x-tree-node-loading"); + }, + + + onTextChange : function(node, text, oldText){ + if(this.rendered){ + this.textNode.innerHTML = text; + } + }, + + + onDisableChange : function(node, state){ + this.disabled = state; + if (this.checkbox) { + this.checkbox.disabled = state; + } + if(state){ + this.addClass("x-tree-node-disabled"); + }else{ + this.removeClass("x-tree-node-disabled"); + } + }, + + + onSelectedChange : function(state){ + if(state){ + this.focus(); + this.addClass("x-tree-selected"); + }else{ + + this.removeClass("x-tree-selected"); + } + }, + + + onMove : function(tree, node, oldParent, newParent, index, refNode){ + this.childIndent = null; + if(this.rendered){ + var targetNode = newParent.ui.getContainer(); + if(!targetNode){ + this.holder = document.createElement("div"); + this.holder.appendChild(this.wrap); + return; + } + var insertBefore = refNode ? refNode.ui.getEl() : null; + if(insertBefore){ + targetNode.insertBefore(this.wrap, insertBefore); + }else{ + targetNode.appendChild(this.wrap); + } + this.node.renderIndent(true); + } + }, + + + addClass : function(cls){ + if(this.elNode){ + Ext.fly(this.elNode).addClass(cls); + } + }, + + + removeClass : function(cls){ + if(this.elNode){ + Ext.fly(this.elNode).removeClass(cls); + } + }, + + + remove : function(){ + if(this.rendered){ + this.holder = document.createElement("div"); + this.holder.appendChild(this.wrap); + } + }, + + + fireEvent : function(){ + return this.node.fireEvent.apply(this.node, arguments); + }, + + + initEvents : function(){ + this.node.on("move", this.onMove, this); + + if(this.node.disabled){ + this.addClass("x-tree-node-disabled"); + if (this.checkbox) { + this.checkbox.disabled = true; + } + } + if(this.node.hidden){ + this.hide(); + } + var ot = this.node.getOwnerTree(); + var dd = ot.enableDD || ot.enableDrag || ot.enableDrop; + if(dd && (!this.node.isRoot || ot.rootVisible)){ + Ext.dd.Registry.register(this.elNode, { + node: this.node, + handles: this.getDDHandles(), + isHandle: false + }); + } + }, + + + getDDHandles : function(){ + return [this.iconNode, this.textNode, this.elNode]; + }, + + + hide : function(){ + this.node.hidden = true; + if(this.wrap){ + this.wrap.style.display = "none"; + } + }, + + + show : function(){ + this.node.hidden = false; + if(this.wrap){ + this.wrap.style.display = ""; + } + }, + + + onContextMenu : function(e){ + if (this.node.hasListener("contextmenu") || this.node.getOwnerTree().hasListener("contextmenu")) { + e.preventDefault(); + this.focus(); + this.fireEvent("contextmenu", this.node, e); + } + }, + + + onClick : function(e){ + if(this.dropping){ + e.stopEvent(); + return; + } + if(this.fireEvent("beforeclick", this.node, e) !== false){ + var a = e.getTarget('a'); + if(!this.disabled && this.node.attributes.href && a){ + this.fireEvent("click", this.node, e); + return; + }else if(a && e.ctrlKey){ + e.stopEvent(); + } + e.preventDefault(); + if(this.disabled){ + return; + } + + if(this.node.attributes.singleClickExpand && !this.animating && this.node.hasChildNodes()){ + this.node.toggle(); + } + + this.fireEvent("click", this.node, e); + }else{ + e.stopEvent(); + } + }, + + + onDblClick : function(e){ + e.preventDefault(); + if(this.disabled){ + return; + } + if(this.checkbox){ + this.toggleCheck(); + } + if(!this.animating && this.node.hasChildNodes()){ + this.node.toggle(); + } + this.fireEvent("dblclick", this.node, e); + }, + + onOver : function(e){ + this.addClass('x-tree-node-over'); + }, + + onOut : function(e){ + this.removeClass('x-tree-node-over'); + }, + + + onCheckChange : function(){ + var checked = this.checkbox.checked; + + this.checkbox.defaultChecked = checked; + this.node.attributes.checked = checked; + this.fireEvent('checkchange', this.node, checked); + }, + + + ecClick : function(e){ + if(!this.animating && (this.node.hasChildNodes() || this.node.attributes.expandable)){ + this.node.toggle(); + } + }, + + + startDrop : function(){ + this.dropping = true; + }, + + + endDrop : function(){ + setTimeout(function(){ + this.dropping = false; + }.createDelegate(this), 50); + }, + + + expand : function(){ + this.updateExpandIcon(); + this.ctNode.style.display = ""; + }, + + + focus : function(){ + if(!this.node.preventHScroll){ + try{this.anchor.focus(); + }catch(e){} + }else if(!Ext.isIE){ + try{ + var noscroll = this.node.getOwnerTree().getTreeEl().dom; + var l = noscroll.scrollLeft; + this.anchor.focus(); + noscroll.scrollLeft = l; + }catch(e){} + } + }, + + + toggleCheck : function(value){ + var cb = this.checkbox; + if(cb){ + cb.checked = (value === undefined ? !cb.checked : value); + this.onCheckChange(); + } + }, + + + blur : function(){ + try{ + this.anchor.blur(); + }catch(e){} + }, + + + animExpand : function(callback){ + var ct = Ext.get(this.ctNode); + ct.stopFx(); + if(!this.node.hasChildNodes()){ + this.updateExpandIcon(); + this.ctNode.style.display = ""; + Ext.callback(callback); + return; + } + this.animating = true; + this.updateExpandIcon(); + + ct.slideIn('t', { + callback : function(){ + this.animating = false; + Ext.callback(callback); + }, + scope: this, + duration: this.node.ownerTree.duration || .25 + }); + }, + + + highlight : function(){ + var tree = this.node.getOwnerTree(); + Ext.fly(this.wrap).highlight( + tree.hlColor || "C3DAF9", + {endColor: tree.hlBaseColor} + ); + }, + + + collapse : function(){ + this.updateExpandIcon(); + this.ctNode.style.display = "none"; + }, + + + animCollapse : function(callback){ + var ct = Ext.get(this.ctNode); + ct.enableDisplayMode('block'); + ct.stopFx(); + + this.animating = true; + this.updateExpandIcon(); + + ct.slideOut('t', { + callback : function(){ + this.animating = false; + Ext.callback(callback); + }, + scope: this, + duration: this.node.ownerTree.duration || .25 + }); + }, + + + getContainer : function(){ + return this.ctNode; + }, + + + getEl : function(){ + return this.wrap; + }, + + + appendDDGhost : function(ghostNode){ + ghostNode.appendChild(this.elNode.cloneNode(true)); + }, + + + getDDRepairXY : function(){ + return Ext.lib.Dom.getXY(this.iconNode); + }, + + + onRender : function(){ + this.render(); + }, + + + render : function(bulkRender){ + var n = this.node, a = n.attributes; + var targetNode = n.parentNode ? + n.parentNode.ui.getContainer() : n.ownerTree.innerCt.dom; + + if(!this.rendered){ + this.rendered = true; + + this.renderElements(n, a, targetNode, bulkRender); + + if(a.qtip){ + if(this.textNode.setAttributeNS){ + this.textNode.setAttributeNS("ext", "qtip", a.qtip); + if(a.qtipTitle){ + this.textNode.setAttributeNS("ext", "qtitle", a.qtipTitle); + } + }else{ + this.textNode.setAttribute("ext:qtip", a.qtip); + if(a.qtipTitle){ + this.textNode.setAttribute("ext:qtitle", a.qtipTitle); + } + } + }else if(a.qtipCfg){ + a.qtipCfg.target = Ext.id(this.textNode); + Ext.QuickTips.register(a.qtipCfg); + } + this.initEvents(); + if(!this.node.expanded){ + this.updateExpandIcon(true); + } + }else{ + if(bulkRender === true) { + targetNode.appendChild(this.wrap); + } + } + }, + + + renderElements : function(n, a, targetNode, bulkRender){ + + this.indentMarkup = n.parentNode ? n.parentNode.ui.getChildIndent() : ''; + + var cb = typeof a.checked == 'boolean'; + + var href = a.href ? a.href : Ext.isGecko ? "" : "#"; + var buf = ['
  • ', + '',this.indentMarkup,"", + '', + '', + cb ? ('' : '/>')) : '', + '',n.text,"
    ", + '', + "
  • "].join(''); + + var nel; + if(bulkRender !== true && n.nextSibling && (nel = n.nextSibling.ui.getEl())){ + this.wrap = Ext.DomHelper.insertHtml("beforeBegin", nel, buf); + }else{ + this.wrap = Ext.DomHelper.insertHtml("beforeEnd", targetNode, buf); + } + + this.elNode = this.wrap.childNodes[0]; + this.ctNode = this.wrap.childNodes[1]; + var cs = this.elNode.childNodes; + this.indentNode = cs[0]; + this.ecNode = cs[1]; + this.iconNode = cs[2]; + var index = 3; + if(cb){ + this.checkbox = cs[3]; + + this.checkbox.defaultChecked = this.checkbox.checked; + index++; + } + this.anchor = cs[index]; + this.textNode = cs[index].firstChild; + }, + + + getAnchor : function(){ + return this.anchor; + }, + + + getTextEl : function(){ + return this.textNode; + }, + + + getIconEl : function(){ + return this.iconNode; + }, + + + isChecked : function(){ + return this.checkbox ? this.checkbox.checked : false; + }, + + + updateExpandIcon : function(){ + if(this.rendered){ + var n = this.node, c1, c2; + var cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow"; + var hasChild = n.hasChildNodes(); + if(hasChild || n.attributes.expandable){ + if(n.expanded){ + cls += "-minus"; + c1 = "x-tree-node-collapsed"; + c2 = "x-tree-node-expanded"; + }else{ + cls += "-plus"; + c1 = "x-tree-node-expanded"; + c2 = "x-tree-node-collapsed"; + } + if(this.wasLeaf){ + this.removeClass("x-tree-node-leaf"); + this.wasLeaf = false; + } + if(this.c1 != c1 || this.c2 != c2){ + Ext.fly(this.elNode).replaceClass(c1, c2); + this.c1 = c1; this.c2 = c2; + } + }else{ + if(!this.wasLeaf){ + Ext.fly(this.elNode).replaceClass("x-tree-node-expanded", "x-tree-node-leaf"); + delete this.c1; + delete this.c2; + this.wasLeaf = true; + } + } + var ecc = "x-tree-ec-icon "+cls; + if(this.ecc != ecc){ + this.ecNode.className = ecc; + this.ecc = ecc; + } + } + }, + + + getChildIndent : function(){ + if(!this.childIndent){ + var buf = []; + var p = this.node; + while(p){ + if(!p.isRoot || (p.isRoot && p.ownerTree.rootVisible)){ + if(!p.isLast()) { + buf.unshift(''); + } else { + buf.unshift(''); + } + } + p = p.parentNode; + } + this.childIndent = buf.join(""); + } + return this.childIndent; + }, + + + renderIndent : function(){ + if(this.rendered){ + var indent = ""; + var p = this.node.parentNode; + if(p){ + indent = p.ui.getChildIndent(); + } + if(this.indentMarkup != indent){ + this.indentNode.innerHTML = indent; + this.indentMarkup = indent; + } + this.updateExpandIcon(); + } + }, + + destroy : function(){ + if(this.elNode){ + Ext.dd.Registry.unregister(this.elNode.id); + } + delete this.elNode; + delete this.ctNode; + delete this.indentNode; + delete this.ecNode; + delete this.iconNode; + delete this.checkbox; + delete this.anchor; + delete this.textNode; + Ext.removeNode(this.ctNode); + } +}; + + +Ext.tree.RootTreeNodeUI = Ext.extend(Ext.tree.TreeNodeUI, { + + render : function(){ + if(!this.rendered){ + var targetNode = this.node.ownerTree.innerCt.dom; + this.node.expanded = true; + targetNode.innerHTML = '
    '; + this.wrap = this.ctNode = targetNode.firstChild; + } + }, + collapse : Ext.emptyFn, + expand : Ext.emptyFn +}); + +Ext.tree.TreeLoader = function(config){ + this.baseParams = {}; + Ext.apply(this, config); + + this.addEvents( + + "beforeload", + + "load", + + "loadexception" + ); + + Ext.tree.TreeLoader.superclass.constructor.call(this); +}; + +Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { + + + + + + + + uiProviders : {}, + + + clearOnLoad : true, + + + load : function(node, callback){ + if(this.clearOnLoad){ + while(node.firstChild){ + node.removeChild(node.firstChild); + } + } + if(this.doPreload(node)){ + if(typeof callback == "function"){ + callback(); + } + }else if(this.dataUrl||this.url){ + this.requestData(node, callback); + } + }, + + doPreload : function(node){ + if(node.attributes.children){ + if(node.childNodes.length < 1){ + var cs = node.attributes.children; + node.beginUpdate(); + for(var i = 0, len = cs.length; i < len; i++){ + var cn = node.appendChild(this.createNode(cs[i])); + if(this.preloadChildren){ + this.doPreload(cn); + } + } + node.endUpdate(); + } + return true; + }else { + return false; + } + }, + + getParams: function(node){ + var buf = [], bp = this.baseParams; + for(var key in bp){ + if(typeof bp[key] != "function"){ + buf.push(encodeURIComponent(key), "=", encodeURIComponent(bp[key]), "&"); + } + } + buf.push("node=", encodeURIComponent(node.id)); + return buf.join(""); + }, + + requestData : function(node, callback){ + if(this.fireEvent("beforeload", this, node, callback) !== false){ + this.transId = Ext.Ajax.request({ + method:this.requestMethod, + url: this.dataUrl||this.url, + success: this.handleResponse, + failure: this.handleFailure, + scope: this, + argument: {callback: callback, node: node}, + params: this.getParams(node) + }); + }else{ + + + if(typeof callback == "function"){ + callback(); + } + } + }, + + isLoading : function(){ + return this.transId ? true : false; + }, + + abort : function(){ + if(this.isLoading()){ + Ext.Ajax.abort(this.transId); + } + }, + + + createNode : function(attr){ + + if(this.baseAttrs){ + Ext.applyIf(attr, this.baseAttrs); + } + if(this.applyLoader !== false){ + attr.loader = this; + } + if(typeof attr.uiProvider == 'string'){ + attr.uiProvider = this.uiProviders[attr.uiProvider] || eval(attr.uiProvider); + } + return(attr.leaf ? + new Ext.tree.TreeNode(attr) : + new Ext.tree.AsyncTreeNode(attr)); + }, + + processResponse : function(response, node, callback){ + var json = response.responseText; + try { + var o = eval("("+json+")"); + node.beginUpdate(); + for(var i = 0, len = o.length; i < len; i++){ + var n = this.createNode(o[i]); + if(n){ + node.appendChild(n); + } + } + node.endUpdate(); + if(typeof callback == "function"){ + callback(this, node); + } + }catch(e){ + this.handleFailure(response); + } + }, + + handleResponse : function(response){ + this.transId = false; + var a = response.argument; + this.processResponse(response, a.node, a.callback); + this.fireEvent("load", this, a.node, response); + }, + + handleFailure : function(response){ + this.transId = false; + var a = response.argument; + this.fireEvent("loadexception", this, a.node, response); + if(typeof a.callback == "function"){ + a.callback(this, a.node); + } + } +}); + +Ext.tree.TreeFilter = function(tree, config){ + this.tree = tree; + this.filtered = {}; + Ext.apply(this, config); +}; + +Ext.tree.TreeFilter.prototype = { + clearBlank:false, + reverse:false, + autoClear:false, + remove:false, + + + filter : function(value, attr, startNode){ + attr = attr || "text"; + var f; + if(typeof value == "string"){ + var vlen = value.length; + + if(vlen == 0 && this.clearBlank){ + this.clear(); + return; + } + value = value.toLowerCase(); + f = function(n){ + return n.attributes[attr].substr(0, vlen).toLowerCase() == value; + }; + }else if(value.exec){ + f = function(n){ + return value.test(n.attributes[attr]); + }; + }else{ + throw 'Illegal filter type, must be string or regex'; + } + this.filterBy(f, null, startNode); + }, + + + filterBy : function(fn, scope, startNode){ + startNode = startNode || this.tree.root; + if(this.autoClear){ + this.clear(); + } + var af = this.filtered, rv = this.reverse; + var f = function(n){ + if(n == startNode){ + return true; + } + if(af[n.id]){ + return false; + } + var m = fn.call(scope || n, n); + if(!m || rv){ + af[n.id] = n; + n.ui.hide(); + return false; + } + return true; + }; + startNode.cascade(f); + if(this.remove){ + for(var id in af){ + if(typeof id != "function"){ + var n = af[id]; + if(n && n.parentNode){ + n.parentNode.removeChild(n); + } + } + } + } + }, + + + clear : function(){ + var t = this.tree; + var af = this.filtered; + for(var id in af){ + if(typeof id != "function"){ + var n = af[id]; + if(n){ + n.ui.show(); + } + } + } + this.filtered = {}; + } +}; + + +Ext.tree.TreeSorter = function(tree, config){ + + + + + + + + Ext.apply(this, config); + tree.on("beforechildrenrendered", this.doSort, this); + tree.on("append", this.updateSort, this); + tree.on("insert", this.updateSort, this); + tree.on("textchange", this.updateSortParent, this); + + var dsc = this.dir && this.dir.toLowerCase() == "desc"; + var p = this.property || "text"; + var sortType = this.sortType; + var fs = this.folderSort; + var cs = this.caseSensitive === true; + var leafAttr = this.leafAttr || 'leaf'; + + this.sortFn = function(n1, n2){ + if(fs){ + if(n1.attributes[leafAttr] && !n2.attributes[leafAttr]){ + return 1; + } + if(!n1.attributes[leafAttr] && n2.attributes[leafAttr]){ + return -1; + } + } + var v1 = sortType ? sortType(n1) : (cs ? n1.attributes[p] : n1.attributes[p].toUpperCase()); + var v2 = sortType ? sortType(n2) : (cs ? n2.attributes[p] : n2.attributes[p].toUpperCase()); + if(v1 < v2){ + return dsc ? +1 : -1; + }else if(v1 > v2){ + return dsc ? -1 : +1; + }else{ + return 0; + } + }; +}; + +Ext.tree.TreeSorter.prototype = { + doSort : function(node){ + node.sort(this.sortFn); + }, + + compareNodes : function(n1, n2){ + return (n1.text.toUpperCase() > n2.text.toUpperCase() ? 1 : -1); + }, + + updateSort : function(tree, node){ + if(node.childrenRendered){ + this.doSort.defer(1, this, [node]); + } + }, + + updateSortParent : function(node){ + var p = node.parentNode; + if(p && p.childrenRendered){ + this.doSort.defer(1, this, [p]); + } + } +}; + +if(Ext.dd.DropZone){ + +Ext.tree.TreeDropZone = function(tree, config){ + + this.allowParentInsert = false; + + this.allowContainerDrop = false; + + this.appendOnly = false; + Ext.tree.TreeDropZone.superclass.constructor.call(this, tree.innerCt, config); + + this.tree = tree; + + this.dragOverData = {}; + + this.lastInsertClass = "x-tree-no-status"; +}; + +Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { + + ddGroup : "TreeDD", + + + expandDelay : 1000, + + + expandNode : function(node){ + if(node.hasChildNodes() && !node.isExpanded()){ + node.expand(false, null, this.triggerCacheRefresh.createDelegate(this)); + } + }, + + + queueExpand : function(node){ + this.expandProcId = this.expandNode.defer(this.expandDelay, this, [node]); + }, + + + cancelExpand : function(){ + if(this.expandProcId){ + clearTimeout(this.expandProcId); + this.expandProcId = false; + } + }, + + + isValidDropPoint : function(n, pt, dd, e, data){ + if(!n || !data){ return false; } + var targetNode = n.node; + var dropNode = data.node; + + if(!(targetNode && targetNode.isTarget && pt)){ + return false; + } + if(pt == "append" && targetNode.allowChildren === false){ + return false; + } + if((pt == "above" || pt == "below") && (targetNode.parentNode && targetNode.parentNode.allowChildren === false)){ + return false; + } + if(dropNode && (targetNode == dropNode || dropNode.contains(targetNode))){ + return false; + } + + var overEvent = this.dragOverData; + overEvent.tree = this.tree; + overEvent.target = targetNode; + overEvent.data = data; + overEvent.point = pt; + overEvent.source = dd; + overEvent.rawEvent = e; + overEvent.dropNode = dropNode; + overEvent.cancel = false; + var result = this.tree.fireEvent("nodedragover", overEvent); + return overEvent.cancel === false && result !== false; + }, + + + getDropPoint : function(e, n, dd){ + var tn = n.node; + if(tn.isRoot){ + return tn.allowChildren !== false ? "append" : false; + } + var dragEl = n.ddel; + var t = Ext.lib.Dom.getY(dragEl), b = t + dragEl.offsetHeight; + var y = Ext.lib.Event.getPageY(e); + var noAppend = tn.allowChildren === false || tn.isLeaf(); + if(this.appendOnly || tn.parentNode.allowChildren === false){ + return noAppend ? false : "append"; + } + var noBelow = false; + if(!this.allowParentInsert){ + noBelow = tn.hasChildNodes() && tn.isExpanded(); + } + var q = (b - t) / (noAppend ? 2 : 3); + if(y >= t && y < (t + q)){ + return "above"; + }else if(!noBelow && (noAppend || y >= b-q && y <= b)){ + return "below"; + }else{ + return "append"; + } + }, + + + onNodeEnter : function(n, dd, e, data){ + this.cancelExpand(); + }, + + + onNodeOver : function(n, dd, e, data){ + var pt = this.getDropPoint(e, n, dd); + var node = n.node; + + + if(!this.expandProcId && pt == "append" && node.hasChildNodes() && !n.node.isExpanded()){ + this.queueExpand(node); + }else if(pt != "append"){ + this.cancelExpand(); + } + + + var returnCls = this.dropNotAllowed; + if(this.isValidDropPoint(n, pt, dd, e, data)){ + if(pt){ + var el = n.ddel; + var cls; + if(pt == "above"){ + returnCls = n.node.isFirst() ? "x-tree-drop-ok-above" : "x-tree-drop-ok-between"; + cls = "x-tree-drag-insert-above"; + }else if(pt == "below"){ + returnCls = n.node.isLast() ? "x-tree-drop-ok-below" : "x-tree-drop-ok-between"; + cls = "x-tree-drag-insert-below"; + }else{ + returnCls = "x-tree-drop-ok-append"; + cls = "x-tree-drag-append"; + } + if(this.lastInsertClass != cls){ + Ext.fly(el).replaceClass(this.lastInsertClass, cls); + this.lastInsertClass = cls; + } + } + } + return returnCls; + }, + + + onNodeOut : function(n, dd, e, data){ + this.cancelExpand(); + this.removeDropIndicators(n); + }, + + + onNodeDrop : function(n, dd, e, data){ + var point = this.getDropPoint(e, n, dd); + var targetNode = n.node; + targetNode.ui.startDrop(); + if(!this.isValidDropPoint(n, point, dd, e, data)){ + targetNode.ui.endDrop(); + return false; + } + + var dropNode = data.node || (dd.getTreeNode ? dd.getTreeNode(data, targetNode, point, e) : null); + var dropEvent = { + tree : this.tree, + target: targetNode, + data: data, + point: point, + source: dd, + rawEvent: e, + dropNode: dropNode, + cancel: !dropNode, + dropStatus: false + }; + var retval = this.tree.fireEvent("beforenodedrop", dropEvent); + if(retval === false || dropEvent.cancel === true || !dropEvent.dropNode){ + targetNode.ui.endDrop(); + return dropEvent.dropStatus; + } + + targetNode = dropEvent.target; + if(point == "append" && !targetNode.isExpanded()){ + targetNode.expand(false, null, function(){ + this.completeDrop(dropEvent); + }.createDelegate(this)); + }else{ + this.completeDrop(dropEvent); + } + return true; + }, + + + completeDrop : function(de){ + var ns = de.dropNode, p = de.point, t = de.target; + if(!Ext.isArray(ns)){ + ns = [ns]; + } + var n; + for(var i = 0, len = ns.length; i < len; i++){ + n = ns[i]; + if(p == "above"){ + t.parentNode.insertBefore(n, t); + }else if(p == "below"){ + t.parentNode.insertBefore(n, t.nextSibling); + }else{ + t.appendChild(n); + } + } + n.ui.focus(); + if(this.tree.hlDrop){ + n.ui.highlight(); + } + t.ui.endDrop(); + this.tree.fireEvent("nodedrop", de); + }, + + + afterNodeMoved : function(dd, data, e, targetNode, dropNode){ + if(this.tree.hlDrop){ + dropNode.ui.focus(); + dropNode.ui.highlight(); + } + this.tree.fireEvent("nodedrop", this.tree, targetNode, data, dd, e); + }, + + + getTree : function(){ + return this.tree; + }, + + + removeDropIndicators : function(n){ + if(n && n.ddel){ + var el = n.ddel; + Ext.fly(el).removeClass([ + "x-tree-drag-insert-above", + "x-tree-drag-insert-below", + "x-tree-drag-append"]); + this.lastInsertClass = "_noclass"; + } + }, + + + beforeDragDrop : function(target, e, id){ + this.cancelExpand(); + return true; + }, + + + afterRepair : function(data){ + if(data && Ext.enableFx){ + data.node.ui.highlight(); + } + this.hideProxy(); + } +}); + +} + +if(Ext.dd.DragZone){ +Ext.tree.TreeDragZone = function(tree, config){ + Ext.tree.TreeDragZone.superclass.constructor.call(this, tree.getTreeEl(), config); + + this.tree = tree; +}; + +Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, { + + ddGroup : "TreeDD", + + + onBeforeDrag : function(data, e){ + var n = data.node; + return n && n.draggable && !n.disabled; + }, + + + onInitDrag : function(e){ + var data = this.dragData; + this.tree.getSelectionModel().select(data.node); + this.tree.eventModel.disable(); + this.proxy.update(""); + data.node.ui.appendDDGhost(this.proxy.ghost.dom); + this.tree.fireEvent("startdrag", this.tree, data.node, e); + }, + + + getRepairXY : function(e, data){ + return data.node.ui.getDDRepairXY(); + }, + + + onEndDrag : function(data, e){ + this.tree.eventModel.enable.defer(100, this.tree.eventModel); + this.tree.fireEvent("enddrag", this.tree, data.node, e); + }, + + + onValidDrop : function(dd, e, id){ + this.tree.fireEvent("dragdrop", this.tree, this.dragData.node, dd, e); + this.hideProxy(); + }, + + + beforeInvalidDrop : function(e, id){ + + var sm = this.tree.getSelectionModel(); + sm.clearSelections(); + sm.select(this.dragData.node); + } +}); +} + +Ext.tree.TreeEditor = function(tree, fc, config){ + fc = fc || {}; + var field = fc.events ? fc : new Ext.form.TextField(fc); + Ext.tree.TreeEditor.superclass.constructor.call(this, field, config); + + this.tree = tree; + + if(!tree.rendered){ + tree.on('render', this.initEditor, this); + }else{ + this.initEditor(tree); + } +}; + +Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { + + alignment: "l-l", + autoSize: false, + + hideEl : false, + + cls: "x-small-editor x-tree-editor", + + shim:false, + shadow:"frame", + + maxWidth: 250, + + editDelay : 350, + + initEditor : function(tree){ + tree.on('beforeclick', this.beforeNodeClick, this); + tree.on('dblclick', this.onNodeDblClick, this); + this.on('complete', this.updateNode, this); + this.on('beforestartedit', this.fitToTree, this); + this.on('startedit', this.bindScroll, this, {delay:10}); + this.on('specialkey', this.onSpecialKey, this); + }, + + fitToTree : function(ed, el){ + var td = this.tree.getTreeEl().dom, nd = el.dom; + if(td.scrollLeft > nd.offsetLeft){ td.scrollLeft = nd.offsetLeft; + } + var w = Math.min( + this.maxWidth, + (td.clientWidth > 20 ? td.clientWidth : td.offsetWidth) - Math.max(0, nd.offsetLeft-td.scrollLeft) - 5); + this.setSize(w, ''); + }, + + triggerEdit : function(node, defer){ + this.completeEdit(); + if(node.attributes.editable !== false){ + this.editNode = node; + this.autoEditTimer = this.startEdit.defer(this.editDelay, this, [node.ui.textNode, node.text]); + return false; + } + }, + + bindScroll : function(){ + this.tree.getTreeEl().on('scroll', this.cancelEdit, this); + }, + + beforeNodeClick : function(node, e){ + clearTimeout(this.autoEditTimer); + if(this.tree.getSelectionModel().isSelected(node)){ + e.stopEvent(); + return this.triggerEdit(node); + } + }, + + onNodeDblClick : function(node, e){ + clearTimeout(this.autoEditTimer); + }, + + updateNode : function(ed, value){ + this.tree.getTreeEl().un('scroll', this.cancelEdit, this); + this.editNode.setText(value); + }, + + onHide : function(){ + Ext.tree.TreeEditor.superclass.onHide.call(this); + if(this.editNode){ + this.editNode.ui.focus.defer(50, this.editNode.ui); + } + }, + + onSpecialKey : function(field, e){ + var k = e.getKey(); + if(k == e.ESC){ + e.stopEvent(); + this.cancelEdit(); + }else if(k == e.ENTER && !e.hasModifier()){ + e.stopEvent(); + this.completeEdit(); + } + } +}); + +Ext.menu.Menu = function(config){ + if(Ext.isArray(config)){ + config = {items:config}; + } + Ext.apply(this, config); + this.id = this.id || Ext.id(); + this.addEvents( + + 'beforeshow', + + 'beforehide', + + 'show', + + 'hide', + + 'click', + + 'mouseover', + + 'mouseout', + + 'itemclick' + ); + Ext.menu.MenuMgr.register(this); + Ext.menu.Menu.superclass.constructor.call(this); + var mis = this.items; + + + this.items = new Ext.util.MixedCollection(); + if(mis){ + this.add.apply(this, mis); + } +}; + +Ext.extend(Ext.menu.Menu, Ext.util.Observable, { + + + + minWidth : 120, + + shadow : "sides", + + subMenuAlign : "tl-tr?", + + defaultAlign : "tl-bl?", + + allowOtherMenus : false, + + hidden:true, + + createEl : function(){ + return new Ext.Layer({ + cls: "x-menu", + shadow:this.shadow, + constrain: false, + parentEl: this.parentEl || document.body, + zindex:15000 + }); + }, + + render : function(){ + if(this.el){ + return; + } + var el = this.el = this.createEl(); + + if(!this.keyNav){ + this.keyNav = new Ext.menu.MenuNav(this); + } + if(this.plain){ + el.addClass("x-menu-plain"); + } + if(this.cls){ + el.addClass(this.cls); + } + this.focusEl = el.createChild({ + tag: "a", cls: "x-menu-focus", href: "#", onclick: "return false;", tabIndex:"-1" + }); + var ul = el.createChild({tag: "ul", cls: "x-menu-list"}); + ul.on("click", this.onClick, this); + ul.on("mouseover", this.onMouseOver, this); + ul.on("mouseout", this.onMouseOut, this); + this.items.each(function(item){ + var li = document.createElement("li"); + li.className = "x-menu-list-item"; + ul.dom.appendChild(li); + item.render(li, this); + }, this); + this.ul = ul; + this.autoWidth(); + }, + + autoWidth : function(){ + var el = this.el, ul = this.ul; + if(!el){ + return; + } + var w = this.width; + if(w){ + el.setWidth(w); + }else if(Ext.isIE){ + el.setWidth(this.minWidth); + var t = el.dom.offsetWidth; el.setWidth(ul.getWidth()+el.getFrameWidth("lr")); + } + }, + + delayAutoWidth : function(){ + if(this.el){ + if(!this.awTask){ + this.awTask = new Ext.util.DelayedTask(this.autoWidth, this); + } + this.awTask.delay(20); + } + }, + + findTargetItem : function(e){ + var t = e.getTarget(".x-menu-list-item", this.ul, true); + if(t && t.menuItemId){ + return this.items.get(t.menuItemId); + } + }, + + onClick : function(e){ + var t; + if(t = this.findTargetItem(e)){ + t.onClick(e); + this.fireEvent("click", this, t, e); + } + }, + + setActiveItem : function(item, autoExpand){ + if(item != this.activeItem){ + if(this.activeItem){ + this.activeItem.deactivate(); + } + this.activeItem = item; + item.activate(autoExpand); + }else if(autoExpand){ + item.expandMenu(); + } + }, + + tryActivate : function(start, step){ + var items = this.items; + for(var i = start, len = items.length; i >= 0 && i < len; i+= step){ + var item = items.get(i); + if(!item.disabled && item.canActivate){ + this.setActiveItem(item, false); + return item; + } + } + return false; + }, + + onMouseOver : function(e){ + var t; + if(t = this.findTargetItem(e)){ + if(t.canActivate && !t.disabled){ + this.setActiveItem(t, true); + } + } + this.fireEvent("mouseover", this, e, t); + }, + + onMouseOut : function(e){ + var t; + if(t = this.findTargetItem(e)){ + if(t == this.activeItem && t.shouldDeactivate(e)){ + this.activeItem.deactivate(); + delete this.activeItem; + } + } + this.fireEvent("mouseout", this, e, t); + }, + + + isVisible : function(){ + return this.el && !this.hidden; + }, + + + show : function(el, pos, parentMenu){ + this.parentMenu = parentMenu; + if(!this.el){ + this.render(); + } + this.fireEvent("beforeshow", this); + this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign), parentMenu, false); + }, + + + showAt : function(xy, parentMenu, _e){ + this.parentMenu = parentMenu; + if(!this.el){ + this.render(); + } + if(_e !== false){ + this.fireEvent("beforeshow", this); + xy = this.el.adjustForConstraints(xy); + } + this.el.setXY(xy); + this.el.show(); + this.hidden = false; + this.focus(); + this.fireEvent("show", this); + }, + + + + focus : function(){ + if(!this.hidden){ + this.doFocus.defer(50, this); + } + }, + + doFocus : function(){ + if(!this.hidden){ + this.focusEl.focus(); + } + }, + + + hide : function(deep){ + if(this.el && this.isVisible()){ + this.fireEvent("beforehide", this); + if(this.activeItem){ + this.activeItem.deactivate(); + this.activeItem = null; + } + this.el.hide(); + this.hidden = true; + this.fireEvent("hide", this); + } + if(deep === true && this.parentMenu){ + this.parentMenu.hide(true); + } + }, + + + add : function(){ + var a = arguments, l = a.length, item; + for(var i = 0; i < l; i++){ + var el = a[i]; + if(el.render){ item = this.addItem(el); + }else if(typeof el == "string"){ if(el == "separator" || el == "-"){ + item = this.addSeparator(); + }else{ + item = this.addText(el); + } + }else if(el.tagName || el.el){ item = this.addElement(el); + }else if(typeof el == "object"){ Ext.applyIf(el, this.defaults); + item = this.addMenuItem(el); + } + } + return item; + }, + + + getEl : function(){ + if(!this.el){ + this.render(); + } + return this.el; + }, + + + addSeparator : function(){ + return this.addItem(new Ext.menu.Separator()); + }, + + + addElement : function(el){ + return this.addItem(new Ext.menu.BaseItem(el)); + }, + + + addItem : function(item){ + this.items.add(item); + if(this.ul){ + var li = document.createElement("li"); + li.className = "x-menu-list-item"; + this.ul.dom.appendChild(li); + item.render(li, this); + this.delayAutoWidth(); + } + return item; + }, + + + addMenuItem : function(config){ + if(!(config instanceof Ext.menu.Item)){ + if(typeof config.checked == "boolean"){ config = new Ext.menu.CheckItem(config); + }else{ + config = new Ext.menu.Item(config); + } + } + return this.addItem(config); + }, + + + addText : function(text){ + return this.addItem(new Ext.menu.TextItem(text)); + }, + + + insert : function(index, item){ + this.items.insert(index, item); + if(this.ul){ + var li = document.createElement("li"); + li.className = "x-menu-list-item"; + this.ul.dom.insertBefore(li, this.ul.dom.childNodes[index]); + item.render(li, this); + this.delayAutoWidth(); + } + return item; + }, + + + remove : function(item){ + this.items.removeKey(item.id); + item.destroy(); + }, + + + removeAll : function(){ + if(this.items){ + var f; + while(f = this.items.first()){ + this.remove(f); + } + } + }, + + + destroy : function(){ + this.beforeDestroy(); + Ext.menu.MenuMgr.unregister(this); + if (this.keyNav) { + this.keyNav.disable(); + } + this.removeAll(); + if (this.ul) { + this.ul.removeAllListeners(); + } + if (this.el) { + this.el.destroy(); + } + }, + + beforeDestroy : Ext.emptyFn + +}); + +Ext.menu.MenuNav = function(menu){ + Ext.menu.MenuNav.superclass.constructor.call(this, menu.el); + this.scope = this.menu = menu; +}; + +Ext.extend(Ext.menu.MenuNav, Ext.KeyNav, { + doRelay : function(e, h){ + var k = e.getKey(); + if(!this.menu.activeItem && e.isNavKeyPress() && k != e.SPACE && k != e.RETURN){ + this.menu.tryActivate(0, 1); + return false; + } + return h.call(this.scope || this, e, this.menu); + }, + + up : function(e, m){ + if(!m.tryActivate(m.items.indexOf(m.activeItem)-1, -1)){ + m.tryActivate(m.items.length-1, -1); + } + }, + + down : function(e, m){ + if(!m.tryActivate(m.items.indexOf(m.activeItem)+1, 1)){ + m.tryActivate(0, 1); + } + }, + + right : function(e, m){ + if(m.activeItem){ + m.activeItem.expandMenu(true); + } + }, + + left : function(e, m){ + m.hide(); + if(m.parentMenu && m.parentMenu.activeItem){ + m.parentMenu.activeItem.activate(); + } + }, + + enter : function(e, m){ + if(m.activeItem){ + e.stopPropagation(); + m.activeItem.onClick(e); + m.fireEvent("click", this, m.activeItem); + return true; + } + } +}); + +Ext.menu.MenuMgr = function(){ + var menus, active, groups = {}, attached = false, lastShow = new Date(); + + function init(){ + menus = {}; + active = new Ext.util.MixedCollection(); + Ext.getDoc().addKeyListener(27, function(){ + if(active.length > 0){ + hideAll(); + } + }); + } + + function hideAll(){ + if(active && active.length > 0){ + var c = active.clone(); + c.each(function(m){ + m.hide(); + }); + } + } + + function onHide(m){ + active.remove(m); + if(active.length < 1){ + Ext.getDoc().un("mousedown", onMouseDown); + attached = false; + } + } + + function onShow(m){ + var last = active.last(); + lastShow = new Date(); + active.add(m); + if(!attached){ + Ext.getDoc().on("mousedown", onMouseDown); + attached = true; + } + if(m.parentMenu){ + m.getEl().setZIndex(parseInt(m.parentMenu.getEl().getStyle("z-index"), 10) + 3); + m.parentMenu.activeChild = m; + }else if(last && last.isVisible()){ + m.getEl().setZIndex(parseInt(last.getEl().getStyle("z-index"), 10) + 3); + } + } + + function onBeforeHide(m){ + if(m.activeChild){ + m.activeChild.hide(); + } + if(m.autoHideTimer){ + clearTimeout(m.autoHideTimer); + delete m.autoHideTimer; + } + } + + function onBeforeShow(m){ + var pm = m.parentMenu; + if(!pm && !m.allowOtherMenus){ + hideAll(); + }else if(pm && pm.activeChild){ + pm.activeChild.hide(); + } + } + + function onMouseDown(e){ + if(lastShow.getElapsed() > 50 && active.length > 0 && !e.getTarget(".x-menu")){ + hideAll(); + } + } + + function onBeforeCheck(mi, state){ + if(state){ + var g = groups[mi.group]; + for(var i = 0, l = g.length; i < l; i++){ + if(g[i] != mi){ + g[i].setChecked(false); + } + } + } + } + + return { + + + hideAll : function(){ + hideAll(); + }, + + register : function(menu){ + if(!menus){ + init(); + } + menus[menu.id] = menu; + menu.on("beforehide", onBeforeHide); + menu.on("hide", onHide); + menu.on("beforeshow", onBeforeShow); + menu.on("show", onShow); + var g = menu.group; + if(g && menu.events["checkchange"]){ + if(!groups[g]){ + groups[g] = []; + } + groups[g].push(menu); + menu.on("checkchange", onCheck); + } + }, + + + get : function(menu){ + if(typeof menu == "string"){ if(!menus){ return null; + } + return menus[menu]; + }else if(menu.events){ return menu; + }else if(typeof menu.length == 'number'){ return new Ext.menu.Menu({items:menu}); + }else{ return new Ext.menu.Menu(menu); + } + }, + + unregister : function(menu){ + delete menus[menu.id]; + menu.un("beforehide", onBeforeHide); + menu.un("hide", onHide); + menu.un("beforeshow", onBeforeShow); + menu.un("show", onShow); + var g = menu.group; + if(g && menu.events["checkchange"]){ + groups[g].remove(menu); + menu.un("checkchange", onCheck); + } + }, + + registerCheckable : function(menuItem){ + var g = menuItem.group; + if(g){ + if(!groups[g]){ + groups[g] = []; + } + groups[g].push(menuItem); + menuItem.on("beforecheckchange", onBeforeCheck); + } + }, + + unregisterCheckable : function(menuItem){ + var g = menuItem.group; + if(g){ + groups[g].remove(menuItem); + menuItem.un("beforecheckchange", onBeforeCheck); + } + }, + + getCheckedItem : function(groupId){ + var g = groups[groupId]; + if(g){ + for(var i = 0, l = g.length; i < l; i++){ + if(g[i].checked){ + return g[i]; + } + } + } + return null; + }, + + setCheckedItem : function(groupId, itemId){ + var g = groups[groupId]; + if(g){ + for(var i = 0, l = g.length; i < l; i++){ + if(g[i].id == itemId){ + g[i].setChecked(true); + } + } + } + return null; + } + }; +}(); + + +Ext.menu.BaseItem = function(config){ + Ext.menu.BaseItem.superclass.constructor.call(this, config); + + this.addEvents( + + 'click', + + 'activate', + + 'deactivate' + ); + + if(this.handler){ + this.on("click", this.handler, this.scope); + } +}; + +Ext.extend(Ext.menu.BaseItem, Ext.Component, { + + + + canActivate : false, + + activeClass : "x-menu-item-active", + + hideOnClick : true, + + hideDelay : 100, + + ctype: "Ext.menu.BaseItem", + + actionMode : "container", + + render : function(container, parentMenu){ + this.parentMenu = parentMenu; + Ext.menu.BaseItem.superclass.render.call(this, container); + this.container.menuItemId = this.id; + }, + + onRender : function(container, position){ + this.el = Ext.get(this.el); + container.dom.appendChild(this.el.dom); + }, + + + setHandler : function(handler, scope){ + if(this.handler){ + this.un("click", this.handler, this.scope); + } + this.on("click", this.handler = handler, this.scope = scope); + }, + + onClick : function(e){ + if(!this.disabled && this.fireEvent("click", this, e) !== false + && this.parentMenu.fireEvent("itemclick", this, e) !== false){ + this.handleClick(e); + }else{ + e.stopEvent(); + } + }, + + activate : function(){ + if(this.disabled){ + return false; + } + var li = this.container; + li.addClass(this.activeClass); + this.region = li.getRegion().adjust(2, 2, -2, -2); + this.fireEvent("activate", this); + return true; + }, + + deactivate : function(){ + this.container.removeClass(this.activeClass); + this.fireEvent("deactivate", this); + }, + + shouldDeactivate : function(e){ + return !this.region || !this.region.contains(e.getPoint()); + }, + + handleClick : function(e){ + if(this.hideOnClick){ + this.parentMenu.hide.defer(this.hideDelay, this.parentMenu, [true]); + } + }, + + expandMenu : function(autoActivate){ + }, + + hideMenu : function(){ + } +}); + +Ext.menu.TextItem = function(text){ + this.text = text; + Ext.menu.TextItem.superclass.constructor.call(this); +}; + +Ext.extend(Ext.menu.TextItem, Ext.menu.BaseItem, { + + + hideOnClick : false, + + itemCls : "x-menu-text", + + onRender : function(){ + var s = document.createElement("span"); + s.className = this.itemCls; + s.innerHTML = this.text; + this.el = s; + Ext.menu.TextItem.superclass.onRender.apply(this, arguments); + } +}); + +Ext.menu.Separator = function(config){ + Ext.menu.Separator.superclass.constructor.call(this, config); +}; + +Ext.extend(Ext.menu.Separator, Ext.menu.BaseItem, { + + itemCls : "x-menu-sep", + + hideOnClick : false, + + onRender : function(li){ + var s = document.createElement("span"); + s.className = this.itemCls; + s.innerHTML = " "; + this.el = s; + li.addClass("x-menu-sep-li"); + Ext.menu.Separator.superclass.onRender.apply(this, arguments); + } +}); + +Ext.menu.Item = function(config){ + Ext.menu.Item.superclass.constructor.call(this, config); + if(this.menu){ + this.menu = Ext.menu.MenuMgr.get(this.menu); + } +}; +Ext.extend(Ext.menu.Item, Ext.menu.BaseItem, { + + + + + + + + itemCls : "x-menu-item", + + canActivate : true, + + showDelay: 200, + hideDelay: 200, + + ctype: "Ext.menu.Item", + + onRender : function(container, position){ + var el = document.createElement("a"); + el.hideFocus = true; + el.unselectable = "on"; + el.href = this.href || "#"; + if(this.hrefTarget){ + el.target = this.hrefTarget; + } + el.className = this.itemCls + (this.menu ? " x-menu-item-arrow" : "") + (this.cls ? " " + this.cls : ""); + el.innerHTML = String.format( + '{1}', + this.icon || Ext.BLANK_IMAGE_URL, this.itemText||this.text, this.iconCls || ''); + this.el = el; + Ext.menu.Item.superclass.onRender.call(this, container, position); + }, + + + setText : function(text){ + this.text = text; + if(this.rendered){ + this.el.update(String.format( + '{1}', + this.icon || Ext.BLANK_IMAGE_URL, this.text, this.iconCls || '')); + this.parentMenu.autoWidth(); + } + }, + + + setIconClass : function(cls){ + var oldCls = this.iconCls; + this.iconCls = cls; + if(this.rendered){ + this.el.child('img.x-menu-item-icon').replaceClass(oldCls, this.iconCls); + } + }, + + handleClick : function(e){ + if(!this.href){ e.stopEvent(); + } + Ext.menu.Item.superclass.handleClick.apply(this, arguments); + }, + + activate : function(autoExpand){ + if(Ext.menu.Item.superclass.activate.apply(this, arguments)){ + this.focus(); + if(autoExpand){ + this.expandMenu(); + } + } + return true; + }, + + shouldDeactivate : function(e){ + if(Ext.menu.Item.superclass.shouldDeactivate.call(this, e)){ + if(this.menu && this.menu.isVisible()){ + return !this.menu.getEl().getRegion().contains(e.getPoint()); + } + return true; + } + return false; + }, + + deactivate : function(){ + Ext.menu.Item.superclass.deactivate.apply(this, arguments); + this.hideMenu(); + }, + + expandMenu : function(autoActivate){ + if(!this.disabled && this.menu){ + clearTimeout(this.hideTimer); + delete this.hideTimer; + if(!this.menu.isVisible() && !this.showTimer){ + this.showTimer = this.deferExpand.defer(this.showDelay, this, [autoActivate]); + }else if (this.menu.isVisible() && autoActivate){ + this.menu.tryActivate(0, 1); + } + } + }, + + deferExpand : function(autoActivate){ + delete this.showTimer; + this.menu.show(this.container, this.parentMenu.subMenuAlign || "tl-tr?", this.parentMenu); + if(autoActivate){ + this.menu.tryActivate(0, 1); + } + }, + + hideMenu : function(){ + clearTimeout(this.showTimer); + delete this.showTimer; + if(!this.hideTimer && this.menu && this.menu.isVisible()){ + this.hideTimer = this.deferHide.defer(this.hideDelay, this); + } + }, + + deferHide : function(){ + delete this.hideTimer; + this.menu.hide(); + } +}); + +Ext.menu.CheckItem = function(config){ + Ext.menu.CheckItem.superclass.constructor.call(this, config); + this.addEvents( + + "beforecheckchange" , + + "checkchange" + ); + + if(this.checkHandler){ + this.on('checkchange', this.checkHandler, this.scope); + } + Ext.menu.MenuMgr.registerCheckable(this); +}; +Ext.extend(Ext.menu.CheckItem, Ext.menu.Item, { + + + itemCls : "x-menu-item x-menu-check-item", + + groupClass : "x-menu-group-item", + + + checked: false, + + ctype: "Ext.menu.CheckItem", + + onRender : function(c){ + Ext.menu.CheckItem.superclass.onRender.apply(this, arguments); + if(this.group){ + this.el.addClass(this.groupClass); + } + if(this.checked){ + this.checked = false; + this.setChecked(true, true); + } + }, + + destroy : function(){ + Ext.menu.MenuMgr.unregisterCheckable(this); + Ext.menu.CheckItem.superclass.destroy.apply(this, arguments); + }, + + + setChecked : function(state, suppressEvent){ + if(this.checked != state && this.fireEvent("beforecheckchange", this, state) !== false){ + if(this.container){ + this.container[state ? "addClass" : "removeClass"]("x-menu-item-checked"); + } + this.checked = state; + if(suppressEvent !== true){ + this.fireEvent("checkchange", this, state); + } + } + }, + + handleClick : function(e){ + if(!this.disabled && !(this.checked && this.group)){ this.setChecked(!this.checked); + } + Ext.menu.CheckItem.superclass.handleClick.apply(this, arguments); + } +}); + +Ext.menu.Adapter = function(component, config){ + Ext.menu.Adapter.superclass.constructor.call(this, config); + this.component = component; +}; +Ext.extend(Ext.menu.Adapter, Ext.menu.BaseItem, { + canActivate : true, + + onRender : function(container, position){ + this.component.render(container); + this.el = this.component.getEl(); + }, + + activate : function(){ + if(this.disabled){ + return false; + } + this.component.focus(); + this.fireEvent("activate", this); + return true; + }, + + deactivate : function(){ + this.fireEvent("deactivate", this); + }, + + disable : function(){ + this.component.disable(); + Ext.menu.Adapter.superclass.disable.call(this); + }, + + enable : function(){ + this.component.enable(); + Ext.menu.Adapter.superclass.enable.call(this); + } +}); + +Ext.menu.DateItem = function(config){ + Ext.menu.DateItem.superclass.constructor.call(this, new Ext.DatePicker(config), config); + + this.picker = this.component; + this.addEvents('select'); + + this.picker.on("render", function(picker){ + picker.getEl().swallowEvent("click"); + picker.container.addClass("x-menu-date-item"); + }); + + this.picker.on("select", this.onSelect, this); +}; + +Ext.extend(Ext.menu.DateItem, Ext.menu.Adapter, { + onSelect : function(picker, date){ + this.fireEvent("select", this, date, picker); + Ext.menu.DateItem.superclass.handleClick.call(this); + } +}); + +Ext.menu.ColorItem = function(config){ + Ext.menu.ColorItem.superclass.constructor.call(this, new Ext.ColorPalette(config), config); + + this.palette = this.component; + this.relayEvents(this.palette, ["select"]); + if(this.selectHandler){ + this.on('select', this.selectHandler, this.scope); + } +}; +Ext.extend(Ext.menu.ColorItem, Ext.menu.Adapter); + +Ext.menu.DateMenu = function(config){ + Ext.menu.DateMenu.superclass.constructor.call(this, config); + this.plain = true; + var di = new Ext.menu.DateItem(config); + this.add(di); + + this.picker = di.picker; + + this.relayEvents(di, ["select"]); + + this.on('beforeshow', function(){ + if(this.picker){ + this.picker.hideMonthPicker(true); + } + }, this); +}; +Ext.extend(Ext.menu.DateMenu, Ext.menu.Menu, { + cls:'x-date-menu', + + beforeDestroy : function() { + this.picker.destroy(); + } +}); + +Ext.menu.ColorMenu = function(config){ + Ext.menu.ColorMenu.superclass.constructor.call(this, config); + this.plain = true; + var ci = new Ext.menu.ColorItem(config); + this.add(ci); + + this.palette = ci.palette; + + this.relayEvents(ci, ["select"]); +}; +Ext.extend(Ext.menu.ColorMenu, Ext.menu.Menu); + +Ext.form.Field = Ext.extend(Ext.BoxComponent, { + + + + + + + + + + + + + + invalidClass : "x-form-invalid", + + invalidText : "The value in this field is invalid", + + focusClass : "x-form-focus", + + validationEvent : "keyup", + + validateOnBlur : true, + + validationDelay : 250, + + defaultAutoCreate : {tag: "input", type: "text", size: "20", autocomplete: "off"}, + + fieldClass : "x-form-field", + + msgTarget : 'qtip', + + msgFx : 'normal', + + readOnly : false, + + disabled : false, + + isFormField : true, + + hasFocus : false, + + initComponent : function(){ + Ext.form.Field.superclass.initComponent.call(this); + this.addEvents( + + 'focus', + + 'blur', + + 'specialkey', + + 'change', + + 'invalid', + + 'valid' + ); + }, + + + getName: function(){ + return this.rendered && this.el.dom.name ? this.el.dom.name : (this.hiddenName || ''); + }, + + onRender : function(ct, position){ + Ext.form.Field.superclass.onRender.call(this, ct, position); + if(!this.el){ + var cfg = this.getAutoCreate(); + if(!cfg.name){ + cfg.name = this.name || this.id; + } + if(this.inputType){ + cfg.type = this.inputType; + } + this.el = ct.createChild(cfg, position); + } + var type = this.el.dom.type; + if(type){ + if(type == 'password'){ + type = 'text'; + } + this.el.addClass('x-form-'+type); + } + if(this.readOnly){ + this.el.dom.readOnly = true; + } + if(this.tabIndex !== undefined){ + this.el.dom.setAttribute('tabIndex', this.tabIndex); + } + + this.el.addClass([this.fieldClass, this.cls]); + this.initValue(); + }, + + initValue : function(){ + if(this.value !== undefined){ + this.setValue(this.value); + }else if(this.el.dom.value.length > 0){ + this.setValue(this.el.dom.value); + } + }, + + + isDirty : function() { + if(this.disabled) { + return false; + } + return String(this.getValue()) !== String(this.originalValue); + }, + + afterRender : function(){ + Ext.form.Field.superclass.afterRender.call(this); + this.initEvents(); + }, + + fireKey : function(e){ + if(e.isSpecialKey()){ + this.fireEvent("specialkey", this, e); + } + }, + + + reset : function(){ + this.setValue(this.originalValue); + this.clearInvalid(); + }, + + initEvents : function(){ + this.el.on(Ext.isIE || Ext.isSafari3 ? "keydown" : "keypress", this.fireKey, this); + this.el.on("focus", this.onFocus, this); + this.el.on("blur", this.onBlur, this); + + this.originalValue = this.getValue(); + }, + + onFocus : function(){ + if(!Ext.isOpera && this.focusClass){ this.el.addClass(this.focusClass); + } + if(!this.hasFocus){ + this.hasFocus = true; + this.startValue = this.getValue(); + this.fireEvent("focus", this); + } + }, + + beforeBlur : Ext.emptyFn, + + onBlur : function(){ + this.beforeBlur(); + if(!Ext.isOpera && this.focusClass){ this.el.removeClass(this.focusClass); + } + this.hasFocus = false; + if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){ + this.validate(); + } + var v = this.getValue(); + if(String(v) !== String(this.startValue)){ + this.fireEvent('change', this, v, this.startValue); + } + this.fireEvent("blur", this); + }, + + + isValid : function(preventMark){ + if(this.disabled){ + return true; + } + var restore = this.preventMark; + this.preventMark = preventMark === true; + var v = this.validateValue(this.processValue(this.getRawValue())); + this.preventMark = restore; + return v; + }, + + + validate : function(){ + if(this.disabled || this.validateValue(this.processValue(this.getRawValue()))){ + this.clearInvalid(); + return true; + } + return false; + }, + + processValue : function(value){ + return value; + }, + + validateValue : function(value){ + return true; + }, + + + markInvalid : function(msg){ + if(!this.rendered || this.preventMark){ return; + } + this.el.addClass(this.invalidClass); + msg = msg || this.invalidText; + switch(this.msgTarget){ + case 'qtip': + this.el.dom.qtip = msg; + this.el.dom.qclass = 'x-form-invalid-tip'; + if(Ext.QuickTips){ Ext.QuickTips.enable(); + } + break; + case 'title': + this.el.dom.title = msg; + break; + case 'under': + if(!this.errorEl){ + var elp = this.getErrorCt(); + this.errorEl = elp.createChild({cls:'x-form-invalid-msg'}); + this.errorEl.setWidth(elp.getWidth(true)-20); + } + this.errorEl.update(msg); + Ext.form.Field.msgFx[this.msgFx].show(this.errorEl, this); + break; + case 'side': + if(!this.errorIcon){ + var elp = this.getErrorCt(); + this.errorIcon = elp.createChild({cls:'x-form-invalid-icon'}); + } + this.alignErrorIcon(); + this.errorIcon.dom.qtip = msg; + this.errorIcon.dom.qclass = 'x-form-invalid-tip'; + this.errorIcon.show(); + this.on('resize', this.alignErrorIcon, this); + break; + default: + var t = Ext.getDom(this.msgTarget); + t.innerHTML = msg; + t.style.display = this.msgDisplay; + break; + } + this.fireEvent('invalid', this, msg); + }, + + getErrorCt : function(){ + return this.el.findParent('.x-form-element', 5, true) || this.el.findParent('.x-form-field-wrap', 5, true); }, + + alignErrorIcon : function(){ + this.errorIcon.alignTo(this.el, 'tl-tr', [2, 0]); + }, + + + clearInvalid : function(){ + if(!this.rendered || this.preventMark){ return; + } + this.el.removeClass(this.invalidClass); + switch(this.msgTarget){ + case 'qtip': + this.el.dom.qtip = ''; + break; + case 'title': + this.el.dom.title = ''; + break; + case 'under': + if(this.errorEl){ + Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl, this); + } + break; + case 'side': + if(this.errorIcon){ + this.errorIcon.dom.qtip = ''; + this.errorIcon.hide(); + this.un('resize', this.alignErrorIcon, this); + } + break; + default: + var t = Ext.getDom(this.msgTarget); + t.innerHTML = ''; + t.style.display = 'none'; + break; + } + this.fireEvent('valid', this); + }, + + + getRawValue : function(){ + var v = this.rendered ? this.el.getValue() : Ext.value(this.value, ''); + if(v === this.emptyText){ + v = ''; + } + return v; + }, + + + getValue : function(){ + if(!this.rendered) { + return this.value; + } + var v = this.el.getValue(); + if(v === this.emptyText || v === undefined){ + v = ''; + } + return v; + }, + + + setRawValue : function(v){ + return this.el.dom.value = (v === null || v === undefined ? '' : v); + }, + + + setValue : function(v){ + this.value = v; + if(this.rendered){ + this.el.dom.value = (v === null || v === undefined ? '' : v); + this.validate(); + } + }, + + adjustSize : function(w, h){ + var s = Ext.form.Field.superclass.adjustSize.call(this, w, h); + s.width = this.adjustWidth(this.el.dom.tagName, s.width); + return s; + }, + + adjustWidth : function(tag, w){ + tag = tag.toLowerCase(); + if(typeof w == 'number' && !Ext.isSafari){ + if(Ext.isIE && (tag == 'input' || tag == 'textarea')){ + if(tag == 'input' && !Ext.isStrict){ + return this.inEditor ? w : w - 3; + } + if(tag == 'input' && Ext.isStrict){ + return w - (Ext.isIE6 ? 4 : 1); + } + if(tag == 'textarea' && Ext.isStrict){ + return w-2; + } + }else if(Ext.isOpera && Ext.isStrict){ + if(tag == 'input'){ + return w + 2; + } + if(tag == 'textarea'){ + return w-2; + } + } + } + return w; + } + + + + + +}); + + +Ext.form.Field.msgFx = { + normal : { + show: function(msgEl, f){ + msgEl.setDisplayed('block'); + }, + + hide : function(msgEl, f){ + msgEl.setDisplayed(false).update(''); + } + }, + + slide : { + show: function(msgEl, f){ + msgEl.slideIn('t', {stopFx:true}); + }, + + hide : function(msgEl, f){ + msgEl.slideOut('t', {stopFx:true,useDisplay:true}); + } + }, + + slideRight : { + show: function(msgEl, f){ + msgEl.fixDisplay(); + msgEl.alignTo(f.el, 'tl-tr'); + msgEl.slideIn('l', {stopFx:true}); + }, + + hide : function(msgEl, f){ + msgEl.slideOut('l', {stopFx:true,useDisplay:true}); + } + } +}; +Ext.reg('field', Ext.form.Field); + + +Ext.form.TextField = Ext.extend(Ext.form.Field, { + + + grow : false, + + growMin : 30, + + growMax : 800, + + vtype : null, + + maskRe : null, + + disableKeyFilter : false, + + allowBlank : true, + + minLength : 0, + + maxLength : Number.MAX_VALUE, + + minLengthText : "The minimum length for this field is {0}", + + maxLengthText : "The maximum length for this field is {0}", + + selectOnFocus : false, + + blankText : "This field is required", + + validator : null, + + regex : null, + + regexText : "", + + emptyText : null, + + emptyClass : 'x-form-empty-field', + + + + initComponent : function(){ + Ext.form.TextField.superclass.initComponent.call(this); + this.addEvents( + + 'autosize', + + + 'keydown', + + 'keyup', + + 'keypress' + ); + }, + + initEvents : function(){ + Ext.form.TextField.superclass.initEvents.call(this); + if(this.validationEvent == 'keyup'){ + this.validationTask = new Ext.util.DelayedTask(this.validate, this); + this.el.on('keyup', this.filterValidation, this); + } + else if(this.validationEvent !== false){ + this.el.on(this.validationEvent, this.validate, this, {buffer: this.validationDelay}); + } + if(this.selectOnFocus || this.emptyText){ + this.on("focus", this.preFocus, this); + if(this.emptyText){ + this.on('blur', this.postBlur, this); + this.applyEmptyText(); + } + } + if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Ext.form.VTypes[this.vtype+'Mask']))){ + this.el.on("keypress", this.filterKeys, this); + } + if(this.grow){ + this.el.on("keyup", this.onKeyUpBuffered, this, {buffer:50}); + this.el.on("click", this.autoSize, this); + } + + if(this.enableKeyEvents){ + this.el.on("keyup", this.onKeyUp, this); + this.el.on("keydown", this.onKeyDown, this); + this.el.on("keypress", this.onKeyPress, this); + } + }, + + processValue : function(value){ + if(this.stripCharsRe){ + var newValue = value.replace(this.stripCharsRe, ''); + if(newValue !== value){ + this.setRawValue(newValue); + return newValue; + } + } + return value; + }, + + filterValidation : function(e){ + if(!e.isNavKeyPress()){ + this.validationTask.delay(this.validationDelay); + } + }, + + onKeyUpBuffered : function(e){ + if(!e.isNavKeyPress()){ + this.autoSize(); + } + }, + + onKeyUp : function(e){ + this.fireEvent('keyup', this, e); + }, + + onKeyDown : function(e){ + this.fireEvent('keydown', this, e); + }, + + onKeyPress : function(e){ + this.fireEvent('keypress', this, e); + }, + + + reset : function(){ + Ext.form.TextField.superclass.reset.call(this); + this.applyEmptyText(); + }, + + applyEmptyText : function(){ + if(this.rendered && this.emptyText && this.getRawValue().length < 1){ + this.setRawValue(this.emptyText); + this.el.addClass(this.emptyClass); + } + }, + + preFocus : function(){ + if(this.emptyText){ + if(this.el.dom.value == this.emptyText){ + this.setRawValue(''); + } + this.el.removeClass(this.emptyClass); + } + if(this.selectOnFocus){ + this.el.dom.select(); + } + }, + + postBlur : function(){ + this.applyEmptyText(); + }, + + filterKeys : function(e){ + var k = e.getKey(); + if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){ + return; + } + var c = e.getCharCode(), cc = String.fromCharCode(c); + if(Ext.isIE && (e.isSpecialKey() || !cc)){ + return; + } + if(!this.maskRe.test(cc)){ + e.stopEvent(); + } + }, + + setValue : function(v){ + if(this.emptyText && this.el && v !== undefined && v !== null && v !== ''){ + this.el.removeClass(this.emptyClass); + } + Ext.form.TextField.superclass.setValue.apply(this, arguments); + this.applyEmptyText(); + this.autoSize(); + }, + + + validateValue : function(value){ + if(value.length < 1 || value === this.emptyText){ if(this.allowBlank){ + this.clearInvalid(); + return true; + }else{ + this.markInvalid(this.blankText); + return false; + } + } + if(value.length < this.minLength){ + this.markInvalid(String.format(this.minLengthText, this.minLength)); + return false; + } + if(value.length > this.maxLength){ + this.markInvalid(String.format(this.maxLengthText, this.maxLength)); + return false; + } + if(this.vtype){ + var vt = Ext.form.VTypes; + if(!vt[this.vtype](value, this)){ + this.markInvalid(this.vtypeText || vt[this.vtype +'Text']); + return false; + } + } + if(typeof this.validator == "function"){ + var msg = this.validator(value); + if(msg !== true){ + this.markInvalid(msg); + return false; + } + } + if(this.regex && !this.regex.test(value)){ + this.markInvalid(this.regexText); + return false; + } + return true; + }, + + + selectText : function(start, end){ + var v = this.getRawValue(); + if(v.length > 0){ + start = start === undefined ? 0 : start; + end = end === undefined ? v.length : end; + var d = this.el.dom; + if(d.setSelectionRange){ + d.setSelectionRange(start, end); + }else if(d.createTextRange){ + var range = d.createTextRange(); + range.moveStart("character", start); + range.moveEnd("character", end-v.length); + range.select(); + } + } + }, + + + autoSize : function(){ + if(!this.grow || !this.rendered){ + return; + } + if(!this.metrics){ + this.metrics = Ext.util.TextMetrics.createInstance(this.el); + } + var el = this.el; + var v = el.dom.value; + var d = document.createElement('div'); + d.appendChild(document.createTextNode(v)); + v = d.innerHTML; + d = null; + v += " "; + var w = Math.min(this.growMax, Math.max(this.metrics.getWidth(v) + 10, this.growMin)); + this.el.setWidth(w); + this.fireEvent("autosize", this, w); + } +}); +Ext.reg('textfield', Ext.form.TextField); + + +Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { + + + defaultAutoCreate : {tag: "input", type: "text", size: "16", autocomplete: "off"}, + + hideTrigger:false, + + + autoSize: Ext.emptyFn, + monitorTab : true, + deferHeight : true, + mimicing : false, + + onResize : function(w, h){ + Ext.form.TriggerField.superclass.onResize.call(this, w, h); + if(typeof w == 'number'){ + this.el.setWidth(this.adjustWidth('input', w - this.trigger.getWidth())); + } + this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth()); + }, + + adjustSize : Ext.BoxComponent.prototype.adjustSize, + + getResizeEl : function(){ + return this.wrap; + }, + + getPositionEl : function(){ + return this.wrap; + }, + + alignErrorIcon : function(){ + this.errorIcon.alignTo(this.wrap, 'tl-tr', [2, 0]); + }, + + onRender : function(ct, position){ + Ext.form.TriggerField.superclass.onRender.call(this, ct, position); + this.wrap = this.el.wrap({cls: "x-form-field-wrap"}); + this.trigger = this.wrap.createChild(this.triggerConfig || + {tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.triggerClass}); + if(this.hideTrigger){ + this.trigger.setDisplayed(false); + } + this.initTrigger(); + if(!this.width){ + this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth()); + } + }, + + initTrigger : function(){ + this.trigger.on("click", this.onTriggerClick, this, {preventDefault:true}); + this.trigger.addClassOnOver('x-form-trigger-over'); + this.trigger.addClassOnClick('x-form-trigger-click'); + }, + + onDestroy : function(){ + if(this.trigger){ + this.trigger.removeAllListeners(); + this.trigger.remove(); + } + if(this.wrap){ + this.wrap.remove(); + } + Ext.form.TriggerField.superclass.onDestroy.call(this); + }, + + onFocus : function(){ + Ext.form.TriggerField.superclass.onFocus.call(this); + if(!this.mimicing){ + this.wrap.addClass('x-trigger-wrap-focus'); + this.mimicing = true; + Ext.get(Ext.isIE ? document.body : document).on("mousedown", this.mimicBlur, this, {delay: 10}); + if(this.monitorTab){ + this.el.on("keydown", this.checkTab, this); + } + } + }, + + checkTab : function(e){ + if(e.getKey() == e.TAB){ + this.triggerBlur(); + } + }, + + onBlur : function(){ + }, + + mimicBlur : function(e){ + if(!this.wrap.contains(e.target) && this.validateBlur(e)){ + this.triggerBlur(); + } + }, + + triggerBlur : function(){ + this.mimicing = false; + Ext.get(Ext.isIE ? document.body : document).un("mousedown", this.mimicBlur); + if(this.monitorTab){ + this.el.un("keydown", this.checkTab, this); + } + this.beforeBlur(); + this.wrap.removeClass('x-trigger-wrap-focus'); + Ext.form.TriggerField.superclass.onBlur.call(this); + }, + + beforeBlur : Ext.emptyFn, + + validateBlur : function(e){ + return true; + }, + + onDisable : function(){ + Ext.form.TriggerField.superclass.onDisable.call(this); + if(this.wrap){ + this.wrap.addClass('x-item-disabled'); + } + }, + + onEnable : function(){ + Ext.form.TriggerField.superclass.onEnable.call(this); + if(this.wrap){ + this.wrap.removeClass('x-item-disabled'); + } + }, + + + onShow : function(){ + if(this.wrap){ + this.wrap.dom.style.display = ''; + this.wrap.dom.style.visibility = 'visible'; + } + }, + + onHide : function(){ + this.wrap.dom.style.display = 'none'; + }, + + + onTriggerClick : Ext.emptyFn + + + + +}); + +Ext.form.TwinTriggerField = Ext.extend(Ext.form.TriggerField, { + initComponent : function(){ + Ext.form.TwinTriggerField.superclass.initComponent.call(this); + + this.triggerConfig = { + tag:'span', cls:'x-form-twin-triggers', cn:[ + {tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger1Class}, + {tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger2Class} + ]}; + }, + + getTrigger : function(index){ + return this.triggers[index]; + }, + + initTrigger : function(){ + var ts = this.trigger.select('.x-form-trigger', true); + this.wrap.setStyle('overflow', 'hidden'); + var triggerField = this; + ts.each(function(t, all, index){ + t.hide = function(){ + var w = triggerField.wrap.getWidth(); + this.dom.style.display = 'none'; + triggerField.el.setWidth(w-triggerField.trigger.getWidth()); + }; + t.show = function(){ + var w = triggerField.wrap.getWidth(); + this.dom.style.display = ''; + triggerField.el.setWidth(w-triggerField.trigger.getWidth()); + }; + var triggerIndex = 'Trigger'+(index+1); + + if(this['hide'+triggerIndex]){ + t.dom.style.display = 'none'; + } + t.on("click", this['on'+triggerIndex+'Click'], this, {preventDefault:true}); + t.addClassOnOver('x-form-trigger-over'); + t.addClassOnClick('x-form-trigger-click'); + }, this); + this.triggers = ts.elements; + }, + + onTrigger1Click : Ext.emptyFn, + onTrigger2Click : Ext.emptyFn +}); +Ext.reg('trigger', Ext.form.TriggerField); + +Ext.form.TextArea = Ext.extend(Ext.form.TextField, { + + growMin : 60, + + growMax: 1000, + growAppend : ' \n ', + growPad : 0, + + enterIsSpecial : false, + + + preventScrollbars: false, + + + onRender : function(ct, position){ + if(!this.el){ + this.defaultAutoCreate = { + tag: "textarea", + style:"width:100px;height:60px;", + autocomplete: "off" + }; + } + Ext.form.TextArea.superclass.onRender.call(this, ct, position); + if(this.grow){ + this.textSizeEl = Ext.DomHelper.append(document.body, { + tag: "pre", cls: "x-form-grow-sizer" + }); + if(this.preventScrollbars){ + this.el.setStyle("overflow", "hidden"); + } + this.el.setHeight(this.growMin); + } + }, + + onDestroy : function(){ + if(this.textSizeEl){ + Ext.removeNode(this.textSizeEl); + } + Ext.form.TextArea.superclass.onDestroy.call(this); + }, + + fireKey : function(e){ + if(e.isSpecialKey() && (this.enterIsSpecial || (e.getKey() != e.ENTER || e.hasModifier()))){ + this.fireEvent("specialkey", this, e); + } + }, + + onKeyUp : function(e){ + if(!e.isNavKeyPress() || e.getKey() == e.ENTER){ + this.autoSize(); + } + }, + + + autoSize : function(){ + if(!this.grow || !this.textSizeEl){ + return; + } + var el = this.el; + var v = el.dom.value; + var ts = this.textSizeEl; + ts.innerHTML = ''; + ts.appendChild(document.createTextNode(v)); + v = ts.innerHTML; + + Ext.fly(ts).setWidth(this.el.getWidth()); + if(v.length < 1){ + v = "  "; + }else{ + if(Ext.isIE){ + v = v.replace(/\n/g, '

     

    '); + } + v += this.growAppend; + } + ts.innerHTML = v; + var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin)+this.growPad); + if(h != this.lastHeight){ + this.lastHeight = h; + this.el.setHeight(h); + this.fireEvent("autosize", this, h); + } + } +}); +Ext.reg('textarea', Ext.form.TextArea); + +Ext.form.NumberField = Ext.extend(Ext.form.TextField, { + + fieldClass: "x-form-field x-form-num-field", + + allowDecimals : true, + + decimalSeparator : ".", + + decimalPrecision : 2, + + allowNegative : true, + + minValue : Number.NEGATIVE_INFINITY, + + maxValue : Number.MAX_VALUE, + + minText : "The minimum value for this field is {0}", + + maxText : "The maximum value for this field is {0}", + + nanText : "{0} is not a valid number", + + baseChars : "0123456789", + + initEvents : function(){ + Ext.form.NumberField.superclass.initEvents.call(this); + var allowed = this.baseChars+''; + if(this.allowDecimals){ + allowed += this.decimalSeparator; + } + if(this.allowNegative){ + allowed += "-"; + } + this.stripCharsRe = new RegExp('[^'+allowed+']', 'gi'); + var keyPress = function(e){ + var k = e.getKey(); + if(!Ext.isIE && (e.isSpecialKey() || k == e.BACKSPACE || k == e.DELETE)){ + return; + } + var c = e.getCharCode(); + if(allowed.indexOf(String.fromCharCode(c)) === -1){ + e.stopEvent(); + } + }; + this.el.on("keypress", keyPress, this); + }, + + validateValue : function(value){ + if(!Ext.form.NumberField.superclass.validateValue.call(this, value)){ + return false; + } + if(value.length < 1){ return true; + } + value = String(value).replace(this.decimalSeparator, "."); + if(isNaN(value)){ + this.markInvalid(String.format(this.nanText, value)); + return false; + } + var num = this.parseValue(value); + if(num < this.minValue){ + this.markInvalid(String.format(this.minText, this.minValue)); + return false; + } + if(num > this.maxValue){ + this.markInvalid(String.format(this.maxText, this.maxValue)); + return false; + } + return true; + }, + + getValue : function(){ + return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this))); + }, + + setValue : function(v){ + v = typeof v == 'number' ? v : parseFloat(String(v).replace(this.decimalSeparator, ".")); + v = isNaN(v) ? '' : String(v).replace(".", this.decimalSeparator); + Ext.form.NumberField.superclass.setValue.call(this, v); + }, + + parseValue : function(value){ + value = parseFloat(String(value).replace(this.decimalSeparator, ".")); + return isNaN(value) ? '' : value; + }, + + fixPrecision : function(value){ + var nan = isNaN(value); + if(!this.allowDecimals || this.decimalPrecision == -1 || nan || !value){ + return nan ? '' : value; + } + return parseFloat(parseFloat(value).toFixed(this.decimalPrecision)); + }, + + beforeBlur : function(){ + var v = this.parseValue(this.getRawValue()); + if(v){ + this.setValue(this.fixPrecision(v)); + } + } +}); +Ext.reg('numberfield', Ext.form.NumberField); + +Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { + + format : "m/d/Y", + + altFormats : "m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d", + + disabledDays : null, + + disabledDaysText : "Disabled", + + disabledDates : null, + + disabledDatesText : "Disabled", + + minValue : null, + + maxValue : null, + + minText : "The date in this field must be equal to or after {0}", + + maxText : "The date in this field must be equal to or before {0}", + + invalidText : "{0} is not a valid date - it must be in the format {1}", + + triggerClass : 'x-form-date-trigger', + + + defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"}, + + initComponent : function(){ + Ext.form.DateField.superclass.initComponent.call(this); + if(typeof this.minValue == "string"){ + this.minValue = this.parseDate(this.minValue); + } + if(typeof this.maxValue == "string"){ + this.maxValue = this.parseDate(this.maxValue); + } + this.ddMatch = null; + if(this.disabledDates){ + var dd = this.disabledDates; + var re = "(?:"; + for(var i = 0; i < dd.length; i++){ + re += dd[i]; + if(i != dd.length-1) re += "|"; + } + this.ddMatch = new RegExp(re + ")"); + } + }, + + validateValue : function(value){ + value = this.formatDate(value); + if(!Ext.form.DateField.superclass.validateValue.call(this, value)){ + return false; + } + if(value.length < 1){ return true; + } + var svalue = value; + value = this.parseDate(value); + if(!value){ + this.markInvalid(String.format(this.invalidText, svalue, this.format)); + return false; + } + var time = value.getTime(); + if(this.minValue && time < this.minValue.getTime()){ + this.markInvalid(String.format(this.minText, this.formatDate(this.minValue))); + return false; + } + if(this.maxValue && time > this.maxValue.getTime()){ + this.markInvalid(String.format(this.maxText, this.formatDate(this.maxValue))); + return false; + } + if(this.disabledDays){ + var day = value.getDay(); + for(var i = 0; i < this.disabledDays.length; i++) { + if(day === this.disabledDays[i]){ + this.markInvalid(this.disabledDaysText); + return false; + } + } + } + var fvalue = this.formatDate(value); + if(this.ddMatch && this.ddMatch.test(fvalue)){ + this.markInvalid(String.format(this.disabledDatesText, fvalue)); + return false; + } + return true; + }, + + validateBlur : function(){ + return !this.menu || !this.menu.isVisible(); + }, + + + getValue : function(){ + return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || ""; + }, + + + setValue : function(date){ + Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date))); + }, + + parseDate : function(value){ + if(!value || Ext.isDate(value)){ + return value; + } + var v = Date.parseDate(value, this.format); + if(!v && this.altFormats){ + if(!this.altFormatsArray){ + this.altFormatsArray = this.altFormats.split("|"); + } + for(var i = 0, len = this.altFormatsArray.length; i < len && !v; i++){ + v = Date.parseDate(value, this.altFormatsArray[i]); + } + } + return v; + }, + + onDestroy : function(){ + if(this.menu) { + this.menu.destroy(); + } + if(this.wrap){ + this.wrap.remove(); + } + Ext.form.DateField.superclass.onDestroy.call(this); + }, + + formatDate : function(date){ + return Ext.isDate(date) ? date.dateFormat(this.format) : date; + }, + + menuListeners : { + select: function(m, d){ + this.setValue(d); + }, + show : function(){ this.onFocus(); + }, + hide : function(){ + this.focus.defer(10, this); + var ml = this.menuListeners; + this.menu.un("select", ml.select, this); + this.menu.un("show", ml.show, this); + this.menu.un("hide", ml.hide, this); + } + }, + + onTriggerClick : function(){ + if(this.disabled){ + return; + } + if(this.menu == null){ + this.menu = new Ext.menu.DateMenu(); + } + Ext.apply(this.menu.picker, { + minDate : this.minValue, + maxDate : this.maxValue, + disabledDatesRE : this.ddMatch, + disabledDatesText : this.disabledDatesText, + disabledDays : this.disabledDays, + disabledDaysText : this.disabledDaysText, + format : this.format, + minText : String.format(this.minText, this.formatDate(this.minValue)), + maxText : String.format(this.maxText, this.formatDate(this.maxValue)) + }); + this.menu.on(Ext.apply({}, this.menuListeners, { + scope:this + })); + this.menu.picker.setValue(this.getValue() || new Date()); + this.menu.show(this.el, "tl-bl?"); + }, + + beforeBlur : function(){ + var v = this.parseDate(this.getRawValue()); + if(v){ + this.setValue(v); + } + } + + + + + +}); +Ext.reg('datefield', Ext.form.DateField); + +Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { + + + + + + + defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"}, + + + + + + + listClass: '', + + selectedClass: 'x-combo-selected', + + triggerClass : 'x-form-arrow-trigger', + + shadow:'sides', + + listAlign: 'tl-bl?', + + maxHeight: 300, + + minHeight: 90, + + triggerAction: 'query', + + minChars : 4, + + typeAhead: false, + + queryDelay: 500, + + pageSize: 0, + + selectOnFocus:false, + + queryParam: 'query', + + loadingText: 'Loading...', + + resizable: false, + + handleHeight : 8, + + editable: true, + + allQuery: '', + + mode: 'remote', + + minListWidth : 70, + + forceSelection:false, + + typeAheadDelay : 250, + + + + lazyInit : true, + + initComponent : function(){ + Ext.form.ComboBox.superclass.initComponent.call(this); + this.addEvents( + + 'expand', + + 'collapse', + + 'beforeselect', + + 'select', + + 'beforequery' + ); + if(this.transform){ + this.allowDomMove = false; + var s = Ext.getDom(this.transform); + if(!this.hiddenName){ + this.hiddenName = s.name; + } + if(!this.store){ + this.mode = 'local'; + var d = [], opts = s.options; + for(var i = 0, len = opts.length;i < len; i++){ + var o = opts[i]; + var value = (Ext.isIE ? o.getAttributeNode('value').specified : o.hasAttribute('value')) ? o.value : o.text; + if(o.selected) { + this.value = value; + } + d.push([value, o.text]); + } + this.store = new Ext.data.SimpleStore({ + 'id': 0, + fields: ['value', 'text'], + data : d + }); + this.valueField = 'value'; + this.displayField = 'text'; + } + s.name = Ext.id(); if(!this.lazyRender){ + this.target = true; + this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate); + Ext.removeNode(s); this.render(this.el.parentNode); + }else{ + Ext.removeNode(s); } + } + else if(Ext.isArray(this.store)){ + if (Ext.isArray(this.store[0])){ + this.store = new Ext.data.SimpleStore({ + fields: ['value','text'], + data: this.store + }); + this.valueField = 'value'; + }else{ + this.store = new Ext.data.SimpleStore({ + fields: ['text'], + data: this.store, + expandData: true + }); + this.valueField = 'text'; + } + this.displayField = 'text'; + this.mode = 'local'; + } + + this.selectedIndex = -1; + if(this.mode == 'local'){ + if(this.initialConfig.queryDelay === undefined){ + this.queryDelay = 10; + } + if(this.initialConfig.minChars === undefined){ + this.minChars = 0; + } + } + }, + + onRender : function(ct, position){ + Ext.form.ComboBox.superclass.onRender.call(this, ct, position); + if(this.hiddenName){ + this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: (this.hiddenId||this.hiddenName)}, + 'before', true); + this.hiddenField.value = + this.hiddenValue !== undefined ? this.hiddenValue : + this.value !== undefined ? this.value : ''; + + this.el.dom.removeAttribute('name'); + } + if(Ext.isGecko){ + this.el.dom.setAttribute('autocomplete', 'off'); + } + + if(!this.lazyInit){ + this.initList(); + }else{ + this.on('focus', this.initList, this, {single: true}); + } + + if(!this.editable){ + this.editable = true; + this.setEditable(false); + } + }, + + initList : function(){ + if(!this.list){ + var cls = 'x-combo-list'; + + this.list = new Ext.Layer({ + shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false + }); + + var lw = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth); + this.list.setWidth(lw); + this.list.swallowEvent('mousewheel'); + this.assetHeight = 0; + + if(this.title){ + this.header = this.list.createChild({cls:cls+'-hd', html: this.title}); + this.assetHeight += this.header.getHeight(); + } + + this.innerList = this.list.createChild({cls:cls+'-inner'}); + this.innerList.on('mouseover', this.onViewOver, this); + this.innerList.on('mousemove', this.onViewMove, this); + this.innerList.setWidth(lw - this.list.getFrameWidth('lr')); + + if(this.pageSize){ + this.footer = this.list.createChild({cls:cls+'-ft'}); + this.pageTb = new Ext.PagingToolbar({ + store:this.store, + pageSize: this.pageSize, + renderTo:this.footer + }); + this.assetHeight += this.footer.getHeight(); + } + + if(!this.tpl){ + + this.tpl = '
    {' + this.displayField + '}
    '; + + } + + + this.view = new Ext.DataView({ + applyTo: this.innerList, + tpl: this.tpl, + singleSelect: true, + selectedClass: this.selectedClass, + itemSelector: this.itemSelector || '.' + cls + '-item' + }); + + this.view.on('click', this.onViewClick, this); + + this.bindStore(this.store, true); + + if(this.resizable){ + this.resizer = new Ext.Resizable(this.list, { + pinned:true, handles:'se' + }); + this.resizer.on('resize', function(r, w, h){ + this.maxHeight = h-this.handleHeight-this.list.getFrameWidth('tb')-this.assetHeight; + this.listWidth = w; + this.innerList.setWidth(w - this.list.getFrameWidth('lr')); + this.restrictHeight(); + }, this); + this[this.pageSize?'footer':'innerList'].setStyle('margin-bottom', this.handleHeight+'px'); + } + } + }, + + + bindStore : function(store, initial){ + if(this.store && !initial){ + this.store.un('beforeload', this.onBeforeLoad, this); + this.store.un('load', this.onLoad, this); + this.store.un('loadexception', this.collapse, this); + if(!store){ + this.store = null; + if(this.view){ + this.view.setStore(null); + } + } + } + if(store){ + this.store = Ext.StoreMgr.lookup(store); + + this.store.on('beforeload', this.onBeforeLoad, this); + this.store.on('load', this.onLoad, this); + this.store.on('loadexception', this.collapse, this); + + if(this.view){ + this.view.setStore(store); + } + } + }, + + initEvents : function(){ + Ext.form.ComboBox.superclass.initEvents.call(this); + + this.keyNav = new Ext.KeyNav(this.el, { + "up" : function(e){ + this.inKeyMode = true; + this.selectPrev(); + }, + + "down" : function(e){ + if(!this.isExpanded()){ + this.onTriggerClick(); + }else{ + this.inKeyMode = true; + this.selectNext(); + } + }, + + "enter" : function(e){ + this.onViewClick(); + this.delayedCheck = true; + this.unsetDelayCheck.defer(10, this); + }, + + "esc" : function(e){ + this.collapse(); + }, + + "tab" : function(e){ + this.onViewClick(false); + return true; + }, + + scope : this, + + doRelay : function(foo, bar, hname){ + if(hname == 'down' || this.scope.isExpanded()){ + return Ext.KeyNav.prototype.doRelay.apply(this, arguments); + } + return true; + }, + + forceKeyDown : true + }); + this.queryDelay = Math.max(this.queryDelay || 10, + this.mode == 'local' ? 10 : 250); + this.dqTask = new Ext.util.DelayedTask(this.initQuery, this); + if(this.typeAhead){ + this.taTask = new Ext.util.DelayedTask(this.onTypeAhead, this); + } + if(this.editable !== false){ + this.el.on("keyup", this.onKeyUp, this); + } + if(this.forceSelection){ + this.on('blur', this.doForce, this); + } + }, + + onDestroy : function(){ + if(this.view){ + this.view.el.removeAllListeners(); + this.view.el.remove(); + this.view.purgeListeners(); + } + if(this.list){ + this.list.destroy(); + } + this.bindStore(null); + Ext.form.ComboBox.superclass.onDestroy.call(this); + }, + + unsetDelayCheck : function(){ + delete this.delayedCheck; + }, + fireKey : function(e){ + if(e.isNavKeyPress() && !this.isExpanded() && !this.delayedCheck){ + this.fireEvent("specialkey", this, e); + } + }, + + onResize: function(w, h){ + Ext.form.ComboBox.superclass.onResize.apply(this, arguments); + if(this.list && this.listWidth === undefined){ + var lw = Math.max(w, this.minListWidth); + this.list.setWidth(lw); + this.innerList.setWidth(lw - this.list.getFrameWidth('lr')); + } + }, + + onEnable: function(){ + Ext.form.ComboBox.superclass.onEnable.apply(this, arguments); + if(this.hiddenField){ + this.hiddenField.disabled = false; + } + }, + + onDisable: function(){ + Ext.form.ComboBox.superclass.onDisable.apply(this, arguments); + if(this.hiddenField){ + this.hiddenField.disabled = true; + } + }, + + + setEditable : function(value){ + if(value == this.editable){ + return; + } + this.editable = value; + if(!value){ + this.el.dom.setAttribute('readOnly', true); + this.el.on('mousedown', this.onTriggerClick, this); + this.el.addClass('x-combo-noedit'); + }else{ + this.el.dom.setAttribute('readOnly', false); + this.el.un('mousedown', this.onTriggerClick, this); + this.el.removeClass('x-combo-noedit'); + } + }, + + onBeforeLoad : function(){ + if(!this.hasFocus){ + return; + } + this.innerList.update(this.loadingText ? + '
    '+this.loadingText+'
    ' : ''); + this.restrictHeight(); + this.selectedIndex = -1; + }, + + onLoad : function(){ + if(!this.hasFocus){ + return; + } + if(this.store.getCount() > 0){ + this.expand(); + this.restrictHeight(); + if(this.lastQuery == this.allQuery){ + if(this.editable){ + this.el.dom.select(); + } + if(!this.selectByValue(this.value, true)){ + this.select(0, true); + } + }else{ + this.selectNext(); + if(this.typeAhead && this.lastKey != Ext.EventObject.BACKSPACE && this.lastKey != Ext.EventObject.DELETE){ + this.taTask.delay(this.typeAheadDelay); + } + } + }else{ + this.onEmptyResults(); + } + }, + + onTypeAhead : function(){ + if(this.store.getCount() > 0){ + var r = this.store.getAt(0); + var newValue = r.data[this.displayField]; + var len = newValue.length; + var selStart = this.getRawValue().length; + if(selStart != len){ + this.setRawValue(newValue); + this.selectText(selStart, newValue.length); + } + } + }, + + onSelect : function(record, index){ + if(this.fireEvent('beforeselect', this, record, index) !== false){ + this.setValue(record.data[this.valueField || this.displayField]); + this.collapse(); + this.fireEvent('select', this, record, index); + } + }, + + + getValue : function(){ + if(this.valueField){ + return typeof this.value != 'undefined' ? this.value : ''; + }else{ + return Ext.form.ComboBox.superclass.getValue.call(this); + } + }, + + + clearValue : function(){ + if(this.hiddenField){ + this.hiddenField.value = ''; + } + this.setRawValue(''); + this.lastSelectionText = ''; + this.applyEmptyText(); + this.value = ''; + }, + + + setValue : function(v){ + var text = v; + if(this.valueField){ + var r = this.findRecord(this.valueField, v); + if(r){ + text = r.data[this.displayField]; + }else if(this.valueNotFoundText !== undefined){ + text = this.valueNotFoundText; + } + } + this.lastSelectionText = text; + if(this.hiddenField){ + this.hiddenField.value = v; + } + Ext.form.ComboBox.superclass.setValue.call(this, text); + this.value = v; + }, + + findRecord : function(prop, value){ + var record; + if(this.store.getCount() > 0){ + this.store.each(function(r){ + if(r.data[prop] == value){ + record = r; + return false; + } + }); + } + return record; + }, + + onViewMove : function(e, t){ + this.inKeyMode = false; + }, + + onViewOver : function(e, t){ + if(this.inKeyMode){ return; + } + var item = this.view.findItemFromChild(t); + if(item){ + var index = this.view.indexOf(item); + this.select(index, false); + } + }, + + onViewClick : function(doFocus){ + var index = this.view.getSelectedIndexes()[0]; + var r = this.store.getAt(index); + if(r){ + this.onSelect(r, index); + } + if(doFocus !== false){ + this.el.focus(); + } + }, + + restrictHeight : function(){ + this.innerList.dom.style.height = ''; + var inner = this.innerList.dom; + var pad = this.list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight; + var h = Math.max(inner.clientHeight, inner.offsetHeight, inner.scrollHeight); + var ha = this.getPosition()[1]-Ext.getBody().getScroll().top; + var hb = Ext.lib.Dom.getViewHeight()-ha-this.getSize().height; + var space = Math.max(ha, hb, this.minHeight || 0)-this.list.shadowOffset-pad-5; + h = Math.min(h, space, this.maxHeight); + + this.innerList.setHeight(h); + this.list.beginUpdate(); + this.list.setHeight(h+pad); + this.list.alignTo(this.wrap, this.listAlign); + this.list.endUpdate(); + }, + + onEmptyResults : function(){ + this.collapse(); + }, + + + isExpanded : function(){ + return this.list && this.list.isVisible(); + }, + + + selectByValue : function(v, scrollIntoView){ + if(v !== undefined && v !== null){ + var r = this.findRecord(this.valueField || this.displayField, v); + if(r){ + this.select(this.store.indexOf(r), scrollIntoView); + return true; + } + } + return false; + }, + + + select : function(index, scrollIntoView){ + this.selectedIndex = index; + this.view.select(index); + if(scrollIntoView !== false){ + var el = this.view.getNode(index); + if(el){ + this.innerList.scrollChildIntoView(el, false); + } + } + }, + + selectNext : function(){ + var ct = this.store.getCount(); + if(ct > 0){ + if(this.selectedIndex == -1){ + this.select(0); + }else if(this.selectedIndex < ct-1){ + this.select(this.selectedIndex+1); + } + } + }, + + selectPrev : function(){ + var ct = this.store.getCount(); + if(ct > 0){ + if(this.selectedIndex == -1){ + this.select(0); + }else if(this.selectedIndex != 0){ + this.select(this.selectedIndex-1); + } + } + }, + + onKeyUp : function(e){ + if(this.editable !== false && !e.isSpecialKey()){ + this.lastKey = e.getKey(); + this.dqTask.delay(this.queryDelay); + } + }, + + validateBlur : function(){ + return !this.list || !this.list.isVisible(); + }, + + initQuery : function(){ + this.doQuery(this.getRawValue()); + }, + + doForce : function(){ + if(this.el.dom.value.length > 0){ + this.el.dom.value = + this.lastSelectionText === undefined ? '' : this.lastSelectionText; + this.applyEmptyText(); + } + }, + + + doQuery : function(q, forceAll){ + if(q === undefined || q === null){ + q = ''; + } + var qe = { + query: q, + forceAll: forceAll, + combo: this, + cancel:false + }; + if(this.fireEvent('beforequery', qe)===false || qe.cancel){ + return false; + } + q = qe.query; + forceAll = qe.forceAll; + if(forceAll === true || (q.length >= this.minChars)){ + if(this.lastQuery !== q){ + this.lastQuery = q; + if(this.mode == 'local'){ + this.selectedIndex = -1; + if(forceAll){ + this.store.clearFilter(); + }else{ + this.store.filter(this.displayField, q); + } + this.onLoad(); + }else{ + this.store.baseParams[this.queryParam] = q; + this.store.load({ + params: this.getParams(q) + }); + this.expand(); + } + }else{ + this.selectedIndex = -1; + this.onLoad(); + } + } + }, + + getParams : function(q){ + var p = {}; + if(this.pageSize){ + p.start = 0; + p.limit = this.pageSize; + } + return p; + }, + + + collapse : function(){ + if(!this.isExpanded()){ + return; + } + this.list.hide(); + Ext.getDoc().un('mousewheel', this.collapseIf, this); + Ext.getDoc().un('mousedown', this.collapseIf, this); + this.fireEvent('collapse', this); + }, + + collapseIf : function(e){ + if(!e.within(this.wrap) && !e.within(this.list)){ + this.collapse(); + } + }, + + + expand : function(){ + if(this.isExpanded() || !this.hasFocus){ + return; + } + this.list.alignTo(this.wrap, this.listAlign); + this.list.show(); + this.innerList.setOverflow('auto'); Ext.getDoc().on('mousewheel', this.collapseIf, this); + Ext.getDoc().on('mousedown', this.collapseIf, this); + this.fireEvent('expand', this); + }, + + onTriggerClick : function(){ + if(this.disabled){ + return; + } + if(this.isExpanded()){ + this.collapse(); + this.el.focus(); + }else { + this.onFocus({}); + if(this.triggerAction == 'all') { + this.doQuery(this.allQuery, true); + } else { + this.doQuery(this.getRawValue()); + } + this.el.focus(); + } + } + + + + + + +}); +Ext.reg('combo', Ext.form.ComboBox); + +Ext.form.Checkbox = Ext.extend(Ext.form.Field, { + + focusClass : undefined, + + fieldClass: "x-form-field", + + checked: false, + + defaultAutoCreate : { tag: "input", type: 'checkbox', autocomplete: "off"}, + + + + initComponent : function(){ + Ext.form.Checkbox.superclass.initComponent.call(this); + this.addEvents( + + 'check' + ); + }, + + onResize : function(){ + Ext.form.Checkbox.superclass.onResize.apply(this, arguments); + if(!this.boxLabel){ + this.el.alignTo(this.wrap, 'c-c'); + } + }, + + initEvents : function(){ + Ext.form.Checkbox.superclass.initEvents.call(this); + this.el.on("click", this.onClick, this); + this.el.on("change", this.onClick, this); + }, + + getResizeEl : function(){ + return this.wrap; + }, + + getPositionEl : function(){ + return this.wrap; + }, + + + markInvalid : Ext.emptyFn, + + clearInvalid : Ext.emptyFn, + + onRender : function(ct, position){ + Ext.form.Checkbox.superclass.onRender.call(this, ct, position); + if(this.inputValue !== undefined){ + this.el.dom.value = this.inputValue; + } + this.wrap = this.el.wrap({cls: "x-form-check-wrap"}); + if(this.boxLabel){ + this.wrap.createChild({tag: 'label', htmlFor: this.el.id, cls: 'x-form-cb-label', html: this.boxLabel}); + } + if(this.checked){ + this.setValue(true); + }else{ + this.checked = this.el.dom.checked; + } + }, + + onDestroy : function(){ + if(this.wrap){ + this.wrap.remove(); + } + Ext.form.Checkbox.superclass.onDestroy.call(this); + }, + + initValue : Ext.emptyFn, + + + getValue : function(){ + if(this.rendered){ + return this.el.dom.checked; + } + return false; + }, + + onClick : function(){ + if(this.el.dom.checked != this.checked){ + this.setValue(this.el.dom.checked); + } + }, + + + setValue : function(v){ + this.checked = (v === true || v === 'true' || v == '1' || String(v).toLowerCase() == 'on'); + if(this.el && this.el.dom){ + this.el.dom.checked = this.checked; + this.el.dom.defaultChecked = this.checked; + } + this.fireEvent("check", this, this.checked); + } +}); +Ext.reg('checkbox', Ext.form.Checkbox); + +Ext.form.Radio = Ext.extend(Ext.form.Checkbox, { + inputType: 'radio', + + + markInvalid : Ext.emptyFn, + + clearInvalid : Ext.emptyFn, + + + getGroupValue : function(){ + var p = this.el.up('form') || Ext.getBody(); + var c = p.child('input[name='+this.el.dom.name+']:checked', true); + return c ? c.value : null; + }, + + onClick : function(){ + if(this.el.dom.checked != this.checked){ + var p = this.el.up('form') || Ext.getBody(); + var els = p.select('input[name='+this.el.dom.name+']'); + els.each(function(el){ + if(el.dom.id == this.id){ + this.setValue(true); + }else{ + Ext.getCmp(el.dom.id).setValue(false); + } + }, this); + } + }, + + + setValue : function(v){ + if (typeof v == 'boolean') { + Ext.form.Radio.superclass.setValue.call(this, v); + } else { + var r = this.el.up('form').child('input[name='+this.el.dom.name+'][value='+v+']', true); + if (r){ + r.checked = true; + }; + } + } +}); +Ext.reg('radio', Ext.form.Radio); + +Ext.form.Hidden = Ext.extend(Ext.form.Field, { + + inputType : 'hidden', + + + onRender : function(){ + Ext.form.Hidden.superclass.onRender.apply(this, arguments); + }, + + + initEvents : function(){ + this.originalValue = this.getValue(); + }, + + + setSize : Ext.emptyFn, + setWidth : Ext.emptyFn, + setHeight : Ext.emptyFn, + setPosition : Ext.emptyFn, + setPagePosition : Ext.emptyFn, + markInvalid : Ext.emptyFn, + clearInvalid : Ext.emptyFn +}); +Ext.reg('hidden', Ext.form.Hidden); + +Ext.form.BasicForm = function(el, config){ + Ext.apply(this, config); + + this.items = new Ext.util.MixedCollection(false, function(o){ + return o.id || (o.id = Ext.id()); + }); + this.addEvents( + + 'beforeaction', + + 'actionfailed', + + 'actioncomplete' + ); + + if(el){ + this.initEl(el); + } + Ext.form.BasicForm.superclass.constructor.call(this); +}; + +Ext.extend(Ext.form.BasicForm, Ext.util.Observable, { + + + + + + + + timeout: 30, + + activeAction : null, + + + trackResetOnLoad : false, + + + + + initEl : function(el){ + this.el = Ext.get(el); + this.id = this.el.id || Ext.id(); + if(!this.standardSubmit){ + this.el.on('submit', this.onSubmit, this); + } + this.el.addClass('x-form'); + }, + + + getEl: function(){ + return this.el; + }, + + onSubmit : function(e){ + e.stopEvent(); + }, + + destroy: function() { + this.items.each(function(f){ + Ext.destroy(f); + }); + if(this.el){ + this.el.removeAllListeners(); + this.el.remove(); + } + this.purgeListeners(); + }, + + + isValid : function(){ + var valid = true; + this.items.each(function(f){ + if(!f.validate()){ + valid = false; + } + }); + return valid; + }, + + + isDirty : function(){ + var dirty = false; + this.items.each(function(f){ + if(f.isDirty()){ + dirty = true; + return false; + } + }); + return dirty; + }, + + + doAction : function(action, options){ + if(typeof action == 'string'){ + action = new Ext.form.Action.ACTION_TYPES[action](this, options); + } + if(this.fireEvent('beforeaction', this, action) !== false){ + this.beforeAction(action); + action.run.defer(100, action); + } + return this; + }, + + + submit : function(options){ + if(this.standardSubmit){ + var v = this.isValid(); + if(v){ + this.el.dom.submit(); + } + return v; + } + this.doAction('submit', options); + return this; + }, + + + load : function(options){ + this.doAction('load', options); + return this; + }, + + + updateRecord : function(record){ + record.beginEdit(); + var fs = record.fields; + fs.each(function(f){ + var field = this.findField(f.name); + if(field){ + record.set(f.name, field.getValue()); + } + }, this); + record.endEdit(); + return this; + }, + + + loadRecord : function(record){ + this.setValues(record.data); + return this; + }, + + beforeAction : function(action){ + var o = action.options; + if(o.waitMsg){ + if(this.waitMsgTarget === true){ + this.el.mask(o.waitMsg, 'x-mask-loading'); + }else if(this.waitMsgTarget){ + this.waitMsgTarget = Ext.get(this.waitMsgTarget); + this.waitMsgTarget.mask(o.waitMsg, 'x-mask-loading'); + }else{ + Ext.MessageBox.wait(o.waitMsg, o.waitTitle || this.waitTitle || 'Please Wait...'); + } + } + }, + + afterAction : function(action, success){ + this.activeAction = null; + var o = action.options; + if(o.waitMsg){ + if(this.waitMsgTarget === true){ + this.el.unmask(); + }else if(this.waitMsgTarget){ + this.waitMsgTarget.unmask(); + }else{ + Ext.MessageBox.updateProgress(1); + Ext.MessageBox.hide(); + } + } + if(success){ + if(o.reset){ + this.reset(); + } + Ext.callback(o.success, o.scope, [this, action]); + this.fireEvent('actioncomplete', this, action); + }else{ + Ext.callback(o.failure, o.scope, [this, action]); + this.fireEvent('actionfailed', this, action); + } + }, + + + findField : function(id){ + var field = this.items.get(id); + if(!field){ + this.items.each(function(f){ + if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){ + field = f; + return false; + } + }); + } + return field || null; + }, + + + + markInvalid : function(errors){ + if(Ext.isArray(errors)){ + for(var i = 0, len = errors.length; i < len; i++){ + var fieldError = errors[i]; + var f = this.findField(fieldError.id); + if(f){ + f.markInvalid(fieldError.msg); + } + } + }else{ + var field, id; + for(id in errors){ + if(typeof errors[id] != 'function' && (field = this.findField(id))){ + field.markInvalid(errors[id]); + } + } + } + return this; + }, + + + setValues : function(values){ + if(Ext.isArray(values)){ for(var i = 0, len = values.length; i < len; i++){ + var v = values[i]; + var f = this.findField(v.id); + if(f){ + f.setValue(v.value); + if(this.trackResetOnLoad){ + f.originalValue = f.getValue(); + } + } + } + }else{ var field, id; + for(id in values){ + if(typeof values[id] != 'function' && (field = this.findField(id))){ + field.setValue(values[id]); + if(this.trackResetOnLoad){ + field.originalValue = field.getValue(); + } + } + } + } + return this; + }, + + + getValues : function(asString){ + var fs = Ext.lib.Ajax.serializeForm(this.el.dom); + if(asString === true){ + return fs; + } + return Ext.urlDecode(fs); + }, + + + clearInvalid : function(){ + this.items.each(function(f){ + f.clearInvalid(); + }); + return this; + }, + + + reset : function(){ + this.items.each(function(f){ + f.reset(); + }); + return this; + }, + + + add : function(){ + this.items.addAll(Array.prototype.slice.call(arguments, 0)); + return this; + }, + + + + remove : function(field){ + this.items.remove(field); + return this; + }, + + + render : function(){ + this.items.each(function(f){ + if(f.isFormField && !f.rendered && document.getElementById(f.id)){ f.applyToMarkup(f.id); + } + }); + return this; + }, + + + applyToFields : function(o){ + this.items.each(function(f){ + Ext.apply(f, o); + }); + return this; + }, + + + applyIfToFields : function(o){ + this.items.each(function(f){ + Ext.applyIf(f, o); + }); + return this; + } +}); + +Ext.BasicForm = Ext.form.BasicForm; + +Ext.FormPanel = Ext.extend(Ext.Panel, { + + + + + buttonAlign:'center', + + + minButtonWidth:75, + + + labelAlign:'left', + + + monitorValid : false, + + + monitorPoll : 200, + + + layout: 'form', + + initComponent :function(){ + this.form = this.createForm(); + + Ext.FormPanel.superclass.initComponent.call(this); + + this.addEvents( + + 'clientvalidation' + ); + + this.relayEvents(this.form, ['beforeaction', 'actionfailed', 'actioncomplete']); + }, + + createForm: function(){ + delete this.initialConfig.listeners; + return new Ext.form.BasicForm(null, this.initialConfig); + }, + + initFields : function(){ + var f = this.form; + var formPanel = this; + var fn = function(c){ + if(c.doLayout && c != formPanel){ + Ext.applyIf(c, { + labelAlign: c.ownerCt.labelAlign, + labelWidth: c.ownerCt.labelWidth, + itemCls: c.ownerCt.itemCls + }); + if(c.items){ + c.items.each(fn); + } + }else if(c.isFormField){ + f.add(c); + } + } + this.items.each(fn); + }, + + getLayoutTarget : function(){ + return this.form.el; + }, + + + getForm : function(){ + return this.form; + }, + + onRender : function(ct, position){ + this.initFields(); + + Ext.FormPanel.superclass.onRender.call(this, ct, position); + var o = { + tag: 'form', + method : this.method || 'POST', + id : this.formId || Ext.id() + }; + if(this.fileUpload) { + o.enctype = 'multipart/form-data'; + } + this.form.initEl(this.body.createChild(o)); + }, + + beforeDestroy: function(){ + Ext.FormPanel.superclass.beforeDestroy.call(this); + Ext.destroy(this.form); + }, + + initEvents : function(){ + Ext.FormPanel.superclass.initEvents.call(this); + this.items.on('remove', this.onRemove, this); + this.items.on('add', this.onAdd, this); + if(this.monitorValid){ this.startMonitoring(); + } + }, + + onAdd : function(ct, c) { + if (c.isFormField) { + this.form.add(c); + } + }, + + onRemove : function(c) { + if (c.isFormField) { + Ext.destroy(c.container.up('.x-form-item')); + this.form.remove(c); + } + }, + + + startMonitoring : function(){ + if(!this.bound){ + this.bound = true; + Ext.TaskMgr.start({ + run : this.bindHandler, + interval : this.monitorPoll || 200, + scope: this + }); + } + }, + + + stopMonitoring : function(){ + this.bound = false; + }, + + + load : function(){ + this.form.load.apply(this.form, arguments); + }, + + onDisable : function(){ + Ext.FormPanel.superclass.onDisable.call(this); + if(this.form){ + this.form.items.each(function(){ + this.disable(); + }); + } + }, + + onEnable : function(){ + Ext.FormPanel.superclass.onEnable.call(this); + if(this.form){ + this.form.items.each(function(){ + this.enable(); + }); + } + }, + + bindHandler : function(){ + if(!this.bound){ + return false; } + var valid = true; + this.form.items.each(function(f){ + if(!f.isValid(true)){ + valid = false; + return false; + } + }); + if(this.buttons){ + for(var i = 0, len = this.buttons.length; i < len; i++){ + var btn = this.buttons[i]; + if(btn.formBind === true && btn.disabled === valid){ + btn.setDisabled(!valid); + } + } + } + this.fireEvent('clientvalidation', this, valid); + } +}); +Ext.reg('form', Ext.FormPanel); + +Ext.form.FormPanel = Ext.FormPanel; + + + +Ext.form.FieldSet = Ext.extend(Ext.Panel, { + + + + + + baseCls:'x-fieldset', + + layout: 'form', + + + onRender : function(ct, position){ + if(!this.el){ + this.el = document.createElement('fieldset'); + this.el.id = this.id; + if (this.title || this.header || this.checkboxToggle) { + this.el.appendChild(document.createElement('legend')).className = 'x-fieldset-header'; + } + } + + Ext.form.FieldSet.superclass.onRender.call(this, ct, position); + + if(this.checkboxToggle){ + var o = typeof this.checkboxToggle == 'object' ? + this.checkboxToggle : + {tag: 'input', type: 'checkbox', name: this.checkboxName || this.id+'-checkbox'}; + this.checkbox = this.header.insertFirst(o); + this.checkbox.dom.checked = !this.collapsed; + this.checkbox.on('click', this.onCheckClick, this); + } + }, + + + onCollapse : function(doAnim, animArg){ + if(this.checkbox){ + this.checkbox.dom.checked = false; + } + this.afterCollapse(); + + }, + + + onExpand : function(doAnim, animArg){ + if(this.checkbox){ + this.checkbox.dom.checked = true; + } + this.afterExpand(); + }, + + + onCheckClick : function(){ + this[this.checkbox.dom.checked ? 'expand' : 'collapse'](); + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +}); +Ext.reg('fieldset', Ext.form.FieldSet); + + + + +Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { + + enableFormat : true, + + enableFontSize : true, + + enableColors : true, + + enableAlignments : true, + + enableLists : true, + + enableSourceEdit : true, + + enableLinks : true, + + enableFont : true, + + createLinkText : 'Please enter the URL for the link:', + + defaultLinkValue : 'http:/'+'/', + + fontFamilies : [ + 'Arial', + 'Courier New', + 'Tahoma', + 'Times New Roman', + 'Verdana' + ], + defaultFont: 'tahoma', + + + validationEvent : false, + deferHeight: true, + initialized : false, + activated : false, + sourceEditMode : false, + onFocus : Ext.emptyFn, + iframePad:3, + hideMode:'offsets', + defaultAutoCreate : { + tag: "textarea", + style:"width:500px;height:300px;", + autocomplete: "off" + }, + + + initComponent : function(){ + this.addEvents( + + 'initialize', + + 'activate', + + 'beforesync', + + 'beforepush', + + 'sync', + + 'push', + + 'editmodechange' + ) + }, + + + createFontOptions : function(){ + var buf = [], fs = this.fontFamilies, ff, lc; + for(var i = 0, len = fs.length; i< len; i++){ + ff = fs[i]; + lc = ff.toLowerCase(); + buf.push( + '' + ); + } + return buf.join(''); + }, + + + createToolbar : function(editor){ + + var tipsEnabled = Ext.QuickTips && Ext.QuickTips.isEnabled(); + + function btn(id, toggle, handler){ + return { + itemId : id, + cls : 'x-btn-icon x-edit-'+id, + enableToggle:toggle !== false, + scope: editor, + handler:handler||editor.relayBtnCmd, + clickEvent:'mousedown', + tooltip: tipsEnabled ? editor.buttonTips[id] || undefined : undefined, + tabIndex:-1 + }; + } + + + var tb = new Ext.Toolbar({ + renderTo:this.wrap.dom.firstChild + }); + + + tb.el.on('click', function(e){ + e.preventDefault(); + }); + + if(this.enableFont && !Ext.isSafari){ + this.fontSelect = tb.el.createChild({ + tag:'select', + cls:'x-font-select', + html: this.createFontOptions() + }); + this.fontSelect.on('change', function(){ + var font = this.fontSelect.dom.value; + this.relayCmd('fontname', font); + this.deferFocus(); + }, this); + tb.add( + this.fontSelect.dom, + '-' + ); + }; + + if(this.enableFormat){ + tb.add( + btn('bold'), + btn('italic'), + btn('underline') + ); + }; + + if(this.enableFontSize){ + tb.add( + '-', + btn('increasefontsize', false, this.adjustFont), + btn('decreasefontsize', false, this.adjustFont) + ); + }; + + if(this.enableColors){ + tb.add( + '-', { + itemId:'forecolor', + cls:'x-btn-icon x-edit-forecolor', + clickEvent:'mousedown', + tooltip: tipsEnabled ? editor.buttonTips['forecolor'] || undefined : undefined, + tabIndex:-1, + menu : new Ext.menu.ColorMenu({ + allowReselect: true, + focus: Ext.emptyFn, + value:'000000', + plain:true, + selectHandler: function(cp, color){ + this.execCmd('forecolor', Ext.isSafari || Ext.isIE ? '#'+color : color); + this.deferFocus(); + }, + scope: this, + clickEvent:'mousedown' + }) + }, { + itemId:'backcolor', + cls:'x-btn-icon x-edit-backcolor', + clickEvent:'mousedown', + tooltip: tipsEnabled ? editor.buttonTips['backcolor'] || undefined : undefined, + tabIndex:-1, + menu : new Ext.menu.ColorMenu({ + focus: Ext.emptyFn, + value:'FFFFFF', + plain:true, + allowReselect: true, + selectHandler: function(cp, color){ + if(Ext.isGecko){ + this.execCmd('useCSS', false); + this.execCmd('hilitecolor', color); + this.execCmd('useCSS', true); + this.deferFocus(); + }else{ + this.execCmd(Ext.isOpera ? 'hilitecolor' : 'backcolor', Ext.isSafari || Ext.isIE ? '#'+color : color); + this.deferFocus(); + } + }, + scope:this, + clickEvent:'mousedown' + }) + } + ); + }; + + if(this.enableAlignments){ + tb.add( + '-', + btn('justifyleft'), + btn('justifycenter'), + btn('justifyright') + ); + }; + + if(!Ext.isSafari){ + if(this.enableLinks){ + tb.add( + '-', + btn('createlink', false, this.createLink) + ); + }; + + if(this.enableLists){ + tb.add( + '-', + btn('insertorderedlist'), + btn('insertunorderedlist') + ); + } + if(this.enableSourceEdit){ + tb.add( + '-', + btn('sourceedit', true, function(btn){ + this.toggleSourceEdit(btn.pressed); + }) + ); + } + } + + this.tb = tb; + }, + + + getDocMarkup : function(){ + return ''; + }, + + + getEditorBody : function(){ + return this.doc.body || this.doc.documentElement; + }, + + + onRender : function(ct, position){ + Ext.form.HtmlEditor.superclass.onRender.call(this, ct, position); + this.el.dom.style.border = '0 none'; + this.el.dom.setAttribute('tabIndex', -1); + this.el.addClass('x-hidden'); + if(Ext.isIE){ + this.el.applyStyles('margin-top:-1px;margin-bottom:-1px;') + } + this.wrap = this.el.wrap({ + cls:'x-html-editor-wrap', cn:{cls:'x-html-editor-tb'} + }); + + this.createToolbar(this); + + this.tb.items.each(function(item){ + if(item.itemId != 'sourceedit'){ + item.disable(); + } + }); + + var iframe = document.createElement('iframe'); + iframe.name = Ext.id(); + iframe.frameBorder = 'no'; + + iframe.src=(Ext.SSL_SECURE_URL || "javascript:false"); + + this.wrap.dom.appendChild(iframe); + + this.iframe = iframe; + + if(Ext.isIE){ + iframe.contentWindow.document.designMode = 'on'; + this.doc = iframe.contentWindow.document; + this.win = iframe.contentWindow; + } else { + this.doc = (iframe.contentDocument || window.frames[iframe.name].document); + this.win = window.frames[iframe.name]; + this.doc.designMode = 'on'; + } + this.doc.open(); + this.doc.write(this.getDocMarkup()) + this.doc.close(); + + var task = { + run : function(){ + if(this.doc.body || this.doc.readyState == 'complete'){ + Ext.TaskMgr.stop(task); + this.doc.designMode="on"; + this.initEditor.defer(10, this); + } + }, + interval : 10, + duration:10000, + scope: this + }; + Ext.TaskMgr.start(task); + + if(!this.width){ + this.setSize(this.el.getSize()); + } + }, + + + onResize : function(w, h){ + Ext.form.HtmlEditor.superclass.onResize.apply(this, arguments); + if(this.el && this.iframe){ + if(typeof w == 'number'){ + var aw = w - this.wrap.getFrameWidth('lr'); + this.el.setWidth(this.adjustWidth('textarea', aw)); + this.iframe.style.width = aw + 'px'; + } + if(typeof h == 'number'){ + var ah = h - this.wrap.getFrameWidth('tb') - this.tb.el.getHeight(); + this.el.setHeight(this.adjustWidth('textarea', ah)); + this.iframe.style.height = ah + 'px'; + if(this.doc){ + this.getEditorBody().style.height = (ah - (this.iframePad*2)) + 'px'; + } + } + } + }, + + + toggleSourceEdit : function(sourceEditMode){ + if(sourceEditMode === undefined){ + sourceEditMode = !this.sourceEditMode; + } + this.sourceEditMode = sourceEditMode === true; + var btn = this.tb.items.get('sourceedit'); + if(btn.pressed !== this.sourceEditMode){ + btn.toggle(this.sourceEditMode); + return; + } + if(this.sourceEditMode){ + this.tb.items.each(function(item){ + if(item.itemId != 'sourceedit'){ + item.disable(); + } + }); + this.syncValue(); + this.iframe.className = 'x-hidden'; + this.el.removeClass('x-hidden'); + this.el.dom.removeAttribute('tabIndex'); + this.el.focus(); + }else{ + if(this.initialized){ + this.tb.items.each(function(item){ + item.enable(); + }); + } + this.pushValue(); + this.iframe.className = ''; + this.el.addClass('x-hidden'); + this.el.dom.setAttribute('tabIndex', -1); + this.deferFocus(); + } + var lastSize = this.lastSize; + if(lastSize){ + delete this.lastSize; + this.setSize(lastSize); + } + this.fireEvent('editmodechange', this, this.sourceEditMode); + }, + + + createLink : function(){ + var url = prompt(this.createLinkText, this.defaultLinkValue); + if(url && url != 'http:/'+'/'){ + this.relayCmd('createlink', url); + } + }, + + + adjustSize : Ext.BoxComponent.prototype.adjustSize, + + + getResizeEl : function(){ + return this.wrap; + }, + + + getPositionEl : function(){ + return this.wrap; + }, + + + initEvents : function(){ + this.originalValue = this.getValue(); + }, + + + markInvalid : Ext.emptyFn, + + + clearInvalid : Ext.emptyFn, + + + setValue : function(v){ + Ext.form.HtmlEditor.superclass.setValue.call(this, v); + this.pushValue(); + }, + + + cleanHtml : function(html){ + html = String(html); + if(html.length > 5){ + if(Ext.isSafari){ + html = html.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi, ''); + } + } + if(html == ' '){ + html = ''; + } + return html; + }, + + + syncValue : function(){ + if(this.initialized){ + var bd = this.getEditorBody(); + var html = bd.innerHTML; + if(Ext.isSafari){ + var bs = bd.getAttribute('style'); + var m = bs.match(/text-align:(.*?);/i); + if(m && m[1]){ + html = '
    ' + html + '
    '; + } + } + html = this.cleanHtml(html); + if(this.fireEvent('beforesync', this, html) !== false){ + this.el.dom.value = html; + this.fireEvent('sync', this, html); + } + } + }, + + + pushValue : function(){ + if(this.initialized){ + var v = this.el.dom.value; + if(!this.activated && v.length < 1){ + v = ' '; + } + if(this.fireEvent('beforepush', this, v) !== false){ + this.getEditorBody().innerHTML = v; + this.fireEvent('push', this, v); + } + } + }, + + + deferFocus : function(){ + this.focus.defer(10, this); + }, + + + focus : function(){ + if(this.win && !this.sourceEditMode){ + this.win.focus(); + }else{ + this.el.focus(); + } + }, + + + initEditor : function(){ + var dbody = this.getEditorBody(); + var ss = this.el.getStyles('font-size', 'font-family', 'background-image', 'background-repeat'); + ss['background-attachment'] = 'fixed'; + dbody.bgProperties = 'fixed'; + Ext.DomHelper.applyStyles(dbody, ss); + Ext.EventManager.on(this.doc, { + 'mousedown': this.onEditorEvent, + 'dblclick': this.onEditorEvent, + 'click': this.onEditorEvent, + 'keyup': this.onEditorEvent, + buffer:100, + scope: this + }); + if(Ext.isGecko){ + Ext.EventManager.on(this.doc, 'keypress', this.applyCommand, this); + } + if(Ext.isIE || Ext.isSafari || Ext.isOpera){ + Ext.EventManager.on(this.doc, 'keydown', this.fixKeys, this); + } + this.initialized = true; + + this.fireEvent('initialize', this); + this.pushValue(); + }, + + + onDestroy : function(){ + if(this.rendered){ + this.tb.items.each(function(item){ + if(item.menu){ + item.menu.removeAll(); + if(item.menu.el){ + item.menu.el.destroy(); + } + } + item.destroy(); + }); + this.wrap.dom.innerHTML = ''; + this.wrap.remove(); + } + }, + + + onFirstFocus : function(){ + this.activated = true; + this.tb.items.each(function(item){ + item.enable(); + }); + if(Ext.isGecko){ + this.win.focus(); + var s = this.win.getSelection(); + if(!s.focusNode || s.focusNode.nodeType != 3){ + var r = s.getRangeAt(0); + r.selectNodeContents(this.getEditorBody()); + r.collapse(true); + this.deferFocus(); + } + try{ + this.execCmd('useCSS', true); + this.execCmd('styleWithCSS', false); + }catch(e){} + } + this.fireEvent('activate', this); + }, + + + adjustFont: function(btn){ + var adjust = btn.itemId == 'increasefontsize' ? 1 : -1; + + var v = parseInt(this.doc.queryCommandValue('FontSize') || 2, 10); + if(Ext.isSafari3 || Ext.isAir){ + + + if(v <= 10){ + v = 1 + adjust; + }else if(v <= 13){ + v = 2 + adjust; + }else if(v <= 16){ + v = 3 + adjust; + }else if(v <= 18){ + v = 4 + adjust; + }else if(v <= 24){ + v = 5 + adjust; + }else { + v = 6 + adjust; + } + v = v.constrain(1, 6); + }else{ + if(Ext.isSafari){ + adjust *= 2; + } + v = Math.max(1, v+adjust) + (Ext.isSafari ? 'px' : 0); + } + this.execCmd('FontSize', v); + }, + + + onEditorEvent : function(e){ + this.updateToolbar(); + }, + + + + updateToolbar: function(){ + + if(!this.activated){ + this.onFirstFocus(); + return; + } + + var btns = this.tb.items.map, doc = this.doc; + + if(this.enableFont && !Ext.isSafari){ + var name = (this.doc.queryCommandValue('FontName')||this.defaultFont).toLowerCase(); + if(name != this.fontSelect.dom.value){ + this.fontSelect.dom.value = name; + } + } + if(this.enableFormat){ + btns.bold.toggle(doc.queryCommandState('bold')); + btns.italic.toggle(doc.queryCommandState('italic')); + btns.underline.toggle(doc.queryCommandState('underline')); + } + if(this.enableAlignments){ + btns.justifyleft.toggle(doc.queryCommandState('justifyleft')); + btns.justifycenter.toggle(doc.queryCommandState('justifycenter')); + btns.justifyright.toggle(doc.queryCommandState('justifyright')); + } + if(!Ext.isSafari && this.enableLists){ + btns.insertorderedlist.toggle(doc.queryCommandState('insertorderedlist')); + btns.insertunorderedlist.toggle(doc.queryCommandState('insertunorderedlist')); + } + + Ext.menu.MenuMgr.hideAll(); + + this.syncValue(); + }, + + + relayBtnCmd : function(btn){ + this.relayCmd(btn.itemId); + }, + + + relayCmd : function(cmd, value){ + this.win.focus(); + this.execCmd(cmd, value); + this.updateToolbar(); + this.deferFocus(); + }, + + + execCmd : function(cmd, value){ + this.doc.execCommand(cmd, false, value === undefined ? null : value); + this.syncValue(); + }, + + + applyCommand : function(e){ + if(e.ctrlKey){ + var c = e.getCharCode(), cmd; + if(c > 0){ + c = String.fromCharCode(c); + switch(c){ + case 'b': + cmd = 'bold'; + break; + case 'i': + cmd = 'italic'; + break; + case 'u': + cmd = 'underline'; + break; + } + if(cmd){ + this.win.focus(); + this.execCmd(cmd); + this.deferFocus(); + e.preventDefault(); + } + } + } + }, + + + insertAtCursor : function(text){ + if(!this.activated){ + return; + } + if(Ext.isIE){ + this.win.focus(); + var r = this.doc.selection.createRange(); + if(r){ + r.collapse(true); + r.pasteHTML(text); + this.syncValue(); + this.deferFocus(); + } + }else if(Ext.isGecko || Ext.isOpera){ + this.win.focus(); + this.execCmd('InsertHTML', text); + this.deferFocus(); + }else if(Ext.isSafari){ + this.execCmd('InsertText', text); + this.deferFocus(); + } + }, + + + fixKeys : function(){ + if(Ext.isIE){ + return function(e){ + var k = e.getKey(), r; + if(k == e.TAB){ + e.stopEvent(); + r = this.doc.selection.createRange(); + if(r){ + r.collapse(true); + r.pasteHTML('    '); + this.deferFocus(); + } + }else if(k == e.ENTER){ + r = this.doc.selection.createRange(); + if(r){ + var target = r.parentElement(); + if(!target || target.tagName.toLowerCase() != 'li'){ + e.stopEvent(); + r.pasteHTML('
    '); + r.collapse(false); + r.select(); + } + } + } + }; + }else if(Ext.isOpera){ + return function(e){ + var k = e.getKey(); + if(k == e.TAB){ + e.stopEvent(); + this.win.focus(); + this.execCmd('InsertHTML','    '); + this.deferFocus(); + } + }; + }else if(Ext.isSafari){ + return function(e){ + var k = e.getKey(); + if(k == e.TAB){ + e.stopEvent(); + this.execCmd('InsertText','\t'); + this.deferFocus(); + } + }; + } + }(), + + + getToolbar : function(){ + return this.tb; + }, + + + buttonTips : { + bold : { + title: 'Bold (Ctrl+B)', + text: 'Make the selected text bold.', + cls: 'x-html-editor-tip' + }, + italic : { + title: 'Italic (Ctrl+I)', + text: 'Make the selected text italic.', + cls: 'x-html-editor-tip' + }, + underline : { + title: 'Underline (Ctrl+U)', + text: 'Underline the selected text.', + cls: 'x-html-editor-tip' + }, + increasefontsize : { + title: 'Grow Text', + text: 'Increase the font size.', + cls: 'x-html-editor-tip' + }, + decreasefontsize : { + title: 'Shrink Text', + text: 'Decrease the font size.', + cls: 'x-html-editor-tip' + }, + backcolor : { + title: 'Text Highlight Color', + text: 'Change the background color of the selected text.', + cls: 'x-html-editor-tip' + }, + forecolor : { + title: 'Font Color', + text: 'Change the color of the selected text.', + cls: 'x-html-editor-tip' + }, + justifyleft : { + title: 'Align Text Left', + text: 'Align text to the left.', + cls: 'x-html-editor-tip' + }, + justifycenter : { + title: 'Center Text', + text: 'Center text in the editor.', + cls: 'x-html-editor-tip' + }, + justifyright : { + title: 'Align Text Right', + text: 'Align text to the right.', + cls: 'x-html-editor-tip' + }, + insertunorderedlist : { + title: 'Bullet List', + text: 'Start a bulleted list.', + cls: 'x-html-editor-tip' + }, + insertorderedlist : { + title: 'Numbered List', + text: 'Start a numbered list.', + cls: 'x-html-editor-tip' + }, + createlink : { + title: 'Hyperlink', + text: 'Make the selected text a hyperlink.', + cls: 'x-html-editor-tip' + }, + sourceedit : { + title: 'Source Edit', + text: 'Switch to source editing mode.', + cls: 'x-html-editor-tip' + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +}); +Ext.reg('htmleditor', Ext.form.HtmlEditor); + +Ext.form.TimeField = Ext.extend(Ext.form.ComboBox, { + + minValue : null, + + maxValue : null, + + minText : "The time in this field must be equal to or after {0}", + + maxText : "The time in this field must be equal to or before {0}", + + invalidText : "{0} is not a valid time", + + format : "g:i A", + + altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H", + + increment: 15, + + + mode: 'local', + + triggerAction: 'all', + + typeAhead: false, + + + initComponent : function(){ + Ext.form.TimeField.superclass.initComponent.call(this); + + if(typeof this.minValue == "string"){ + this.minValue = this.parseDate(this.minValue); + } + if(typeof this.maxValue == "string"){ + this.maxValue = this.parseDate(this.maxValue); + } + + if(!this.store){ + var min = this.parseDate(this.minValue); + if(!min){ + min = new Date().clearTime(); + } + var max = this.parseDate(this.maxValue); + if(!max){ + max = new Date().clearTime().add('mi', (24 * 60) - 1); + } + var times = []; + while(min <= max){ + times.push([min.dateFormat(this.format)]); + min = min.add('mi', this.increment); + } + this.store = new Ext.data.SimpleStore({ + fields: ['text'], + data : times + }); + this.displayField = 'text'; + } + }, + + + getValue : function(){ + var v = Ext.form.TimeField.superclass.getValue.call(this); + return this.formatDate(this.parseDate(v)) || ''; + }, + + + setValue : function(value){ + Ext.form.TimeField.superclass.setValue.call(this, this.formatDate(this.parseDate(value))); + }, + + + validateValue : Ext.form.DateField.prototype.validateValue, + parseDate : Ext.form.DateField.prototype.parseDate, + formatDate : Ext.form.DateField.prototype.formatDate, + + + beforeBlur : function(){ + var v = this.parseDate(this.getRawValue()); + if(v){ + this.setValue(v.dateFormat(this.format)); + } + } + + + + + +}); +Ext.reg('timefield', Ext.form.TimeField); + +Ext.form.Label = Ext.extend(Ext.BoxComponent, { + + + + onRender : function(ct, position){ + if(!this.el){ + this.el = document.createElement('label'); + this.el.id = this.getId(); + this.el.innerHTML = this.text ? Ext.util.Format.htmlEncode(this.text) : (this.html || ''); + if(this.forId){ + this.el.setAttribute('htmlFor', this.forId); + } + } + Ext.form.Label.superclass.onRender.call(this, ct, position); + } +}); + +Ext.reg('label', Ext.form.Label); + +Ext.form.Action = function(form, options){ + this.form = form; + this.options = options || {}; +}; + + +Ext.form.Action.CLIENT_INVALID = 'client'; + +Ext.form.Action.SERVER_INVALID = 'server'; + +Ext.form.Action.CONNECT_FAILURE = 'connect'; + +Ext.form.Action.LOAD_FAILURE = 'load'; + +Ext.form.Action.prototype = { + + + + + + + + + + + + type : 'default', + + + run : function(options){ + + }, + + success : function(response){ + + }, + + handleResponse : function(response){ + + }, + + failure : function(response){ + this.response = response; + this.failureType = Ext.form.Action.CONNECT_FAILURE; + this.form.afterAction(this, false); + }, + + processResponse : function(response){ + this.response = response; + if(!response.responseText){ + return true; + } + this.result = this.handleResponse(response); + return this.result; + }, + + getUrl : function(appendParams){ + var url = this.options.url || this.form.url || this.form.el.dom.action; + if(appendParams){ + var p = this.getParams(); + if(p){ + url += (url.indexOf('?') != -1 ? '&' : '?') + p; + } + } + return url; + }, + + getMethod : function(){ + return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase(); + }, + + getParams : function(){ + var bp = this.form.baseParams; + var p = this.options.params; + if(p){ + if(typeof p == "object"){ + p = Ext.urlEncode(Ext.applyIf(p, bp)); + }else if(typeof p == 'string' && bp){ + p += '&' + Ext.urlEncode(bp); + } + }else if(bp){ + p = Ext.urlEncode(bp); + } + return p; + }, + + createCallback : function(opts){ + var opts = opts || {}; + return { + success: this.success, + failure: this.failure, + scope: this, + timeout: (opts.timeout*1000) || (this.form.timeout*1000), + upload: this.form.fileUpload ? this.success : undefined + }; + } +}; + + +Ext.form.Action.Submit = function(form, options){ + Ext.form.Action.Submit.superclass.constructor.call(this, form, options); +}; + +Ext.extend(Ext.form.Action.Submit, Ext.form.Action, { + + type : 'submit', + + run : function(){ + var o = this.options; + var method = this.getMethod(); + var isGet = method == 'GET'; + if(o.clientValidation === false || this.form.isValid()){ + Ext.Ajax.request(Ext.apply(this.createCallback(o), { + form:this.form.el.dom, + url:this.getUrl(isGet), + method: method, + headers: o.headers, + params:!isGet ? this.getParams() : null, + isUpload: this.form.fileUpload + })); + }else if (o.clientValidation !== false){ this.failureType = Ext.form.Action.CLIENT_INVALID; + this.form.afterAction(this, false); + } + }, + + success : function(response){ + var result = this.processResponse(response); + if(result === true || result.success){ + this.form.afterAction(this, true); + return; + } + if(result.errors){ + this.form.markInvalid(result.errors); + this.failureType = Ext.form.Action.SERVER_INVALID; + } + this.form.afterAction(this, false); + }, + + handleResponse : function(response){ + if(this.form.errorReader){ + var rs = this.form.errorReader.read(response); + var errors = []; + if(rs.records){ + for(var i = 0, len = rs.records.length; i < len; i++) { + var r = rs.records[i]; + errors[i] = r.data; + } + } + if(errors.length < 1){ + errors = null; + } + return { + success : rs.success, + errors : errors + }; + } + return Ext.decode(response.responseText); + } +}); + + + +Ext.form.Action.Load = function(form, options){ + Ext.form.Action.Load.superclass.constructor.call(this, form, options); + this.reader = this.form.reader; +}; + +Ext.extend(Ext.form.Action.Load, Ext.form.Action, { + type : 'load', + + run : function(){ + Ext.Ajax.request(Ext.apply( + this.createCallback(this.options), { + method:this.getMethod(), + url:this.getUrl(false), + headers: this.options.headers, + params:this.getParams() + })); + }, + + success : function(response){ + var result = this.processResponse(response); + if(result === true || !result.success || !result.data){ + this.failureType = Ext.form.Action.LOAD_FAILURE; + this.form.afterAction(this, false); + return; + } + this.form.clearInvalid(); + this.form.setValues(result.data); + this.form.afterAction(this, true); + }, + + handleResponse : function(response){ + if(this.form.reader){ + var rs = this.form.reader.read(response); + var data = rs.records && rs.records[0] ? rs.records[0].data : null; + return { + success : rs.success, + data : data + }; + } + return Ext.decode(response.responseText); + } +}); + +Ext.form.Action.ACTION_TYPES = { + 'load' : Ext.form.Action.Load, + 'submit' : Ext.form.Action.Submit +}; + + +Ext.form.VTypes = function(){ + var alpha = /^[a-zA-Z_]+$/; + var alphanum = /^[a-zA-Z0-9_]+$/; + var email = /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/; + var url = /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i; + + return { + + 'email' : function(v){ + return email.test(v); + }, + + 'emailText' : 'This field should be an e-mail address in the format "user@domain.com"', + + 'emailMask' : /[a-z0-9_\.\-@]/i, + + + 'url' : function(v){ + return url.test(v); + }, + + 'urlText' : 'This field should be a URL in the format "http:/'+'/www.domain.com"', + + + 'alpha' : function(v){ + return alpha.test(v); + }, + + 'alphaText' : 'This field should only contain letters and _', + + 'alphaMask' : /[a-z_]/i, + + + 'alphanum' : function(v){ + return alphanum.test(v); + }, + + 'alphanumText' : 'This field should only contain letters, numbers and _', + + 'alphanumMask' : /[a-z0-9_]/i + }; +}(); + +Ext.grid.GridPanel = Ext.extend(Ext.Panel, { + + + + + + + + + + + + + + + ddText : "{0} selected row{1}", + + minColumnWidth : 25, + + trackMouseOver : true, + + enableDragDrop : false, + + enableColumnMove : true, + + enableColumnHide : true, + + enableHdMenu : true, + + stripeRows : false, + + autoExpandColumn : false, + + autoExpandMin : 50, + + autoExpandMax : 1000, + + view : null, + + loadMask : false, + + + rendered : false, + + viewReady: false, + + stateEvents: ["columnmove", "columnresize", "sortchange"], + + + initComponent : function(){ + Ext.grid.GridPanel.superclass.initComponent.call(this); + + + + this.autoScroll = false; + this.autoWidth = false; + + if(Ext.isArray(this.columns)){ + this.colModel = new Ext.grid.ColumnModel(this.columns); + delete this.columns; + } + + + if(this.ds){ + this.store = this.ds; + delete this.ds; + } + if(this.cm){ + this.colModel = this.cm; + delete this.cm; + } + if(this.sm){ + this.selModel = this.sm; + delete this.sm; + } + this.store = Ext.StoreMgr.lookup(this.store); + + this.addEvents( + + + "click", + + "dblclick", + + "contextmenu", + + "mousedown", + + "mouseup", + + "mouseover", + + "mouseout", + + "keypress", + + "keydown", + + + + "cellmousedown", + + "rowmousedown", + + "headermousedown", + + + "cellclick", + + "celldblclick", + + "rowclick", + + "rowdblclick", + + "headerclick", + + "headerdblclick", + + "rowcontextmenu", + + "cellcontextmenu", + + "headercontextmenu", + + "bodyscroll", + + "columnresize", + + "columnmove", + + "sortchange" + ); + }, + + + onRender : function(ct, position){ + Ext.grid.GridPanel.superclass.onRender.apply(this, arguments); + + var c = this.body; + + this.el.addClass('x-grid-panel'); + + var view = this.getView(); + view.init(this); + + c.on("mousedown", this.onMouseDown, this); + c.on("click", this.onClick, this); + c.on("dblclick", this.onDblClick, this); + c.on("contextmenu", this.onContextMenu, this); + c.on("keydown", this.onKeyDown, this); + + this.relayEvents(c, ["mousedown","mouseup","mouseover","mouseout","keypress"]); + + this.getSelectionModel().init(this); + this.view.render(); + }, + + + initEvents : function(){ + Ext.grid.GridPanel.superclass.initEvents.call(this); + + if(this.loadMask){ + this.loadMask = new Ext.LoadMask(this.bwrap, + Ext.apply({store:this.store}, this.loadMask)); + } + }, + + initStateEvents : function(){ + Ext.grid.GridPanel.superclass.initStateEvents.call(this); + this.colModel.on('hiddenchange', this.saveState, this, {delay: 100}); + }, + + applyState : function(state){ + var cm = this.colModel; + var cs = state.columns; + if(cs){ + for(var i = 0, len = cs.length; i < len; i++){ + var s = cs[i]; + var c = cm.getColumnById(s.id); + if(c){ + c.hidden = s.hidden; + c.width = s.width; + var oldIndex = cm.getIndexById(s.id); + if(oldIndex != i){ + cm.moveColumn(oldIndex, i); + } + } + } + } + if(state.sort){ + this.store[this.store.remoteSort ? 'setDefaultSort' : 'sort'](state.sort.field, state.sort.direction); + } + }, + + getState : function(){ + var o = {columns: []}; + for(var i = 0, c; c = this.colModel.config[i]; i++){ + o.columns[i] = { + id: c.id, + width: c.width + }; + if(c.hidden){ + o.columns[i].hidden = true; + } + } + var ss = this.store.getSortState(); + if(ss){ + o.sort = ss; + } + return o; + }, + + + afterRender : function(){ + Ext.grid.GridPanel.superclass.afterRender.call(this); + this.view.layout(); + this.viewReady = true; + }, + + + reconfigure : function(store, colModel){ + if(this.loadMask){ + this.loadMask.destroy(); + this.loadMask = new Ext.LoadMask(this.bwrap, + Ext.apply({store:store}, this.initialConfig.loadMask)); + } + this.view.bind(store, colModel); + this.store = store; + this.colModel = colModel; + if(this.rendered){ + this.view.refresh(true); + } + }, + + + onKeyDown : function(e){ + this.fireEvent("keydown", e); + }, + + + onDestroy : function(){ + if(this.rendered){ + if(this.loadMask){ + this.loadMask.destroy(); + } + var c = this.body; + c.removeAllListeners(); + this.view.destroy(); + c.update(""); + } + this.colModel.purgeListeners(); + Ext.grid.GridPanel.superclass.onDestroy.call(this); + }, + + + processEvent : function(name, e){ + this.fireEvent(name, e); + var t = e.getTarget(); + var v = this.view; + var header = v.findHeaderIndex(t); + if(header !== false){ + this.fireEvent("header" + name, this, header, e); + }else{ + var row = v.findRowIndex(t); + var cell = v.findCellIndex(t); + if(row !== false){ + this.fireEvent("row" + name, this, row, e); + if(cell !== false){ + this.fireEvent("cell" + name, this, row, cell, e); + } + } + } + }, + + + onClick : function(e){ + this.processEvent("click", e); + }, + + + onMouseDown : function(e){ + this.processEvent("mousedown", e); + }, + + + onContextMenu : function(e, t){ + this.processEvent("contextmenu", e); + }, + + + onDblClick : function(e){ + this.processEvent("dblclick", e); + }, + + + walkCells : function(row, col, step, fn, scope){ + var cm = this.colModel, clen = cm.getColumnCount(); + var ds = this.store, rlen = ds.getCount(), first = true; + if(step < 0){ + if(col < 0){ + row--; + first = false; + } + while(row >= 0){ + if(!first){ + col = clen-1; + } + first = false; + while(col >= 0){ + if(fn.call(scope || this, row, col, cm) === true){ + return [row, col]; + } + col--; + } + row--; + } + } else { + if(col >= clen){ + row++; + first = false; + } + while(row < rlen){ + if(!first){ + col = 0; + } + first = false; + while(col < clen){ + if(fn.call(scope || this, row, col, cm) === true){ + return [row, col]; + } + col++; + } + row++; + } + } + return null; + }, + + + getSelections : function(){ + return this.selModel.getSelections(); + }, + + + onResize : function(){ + Ext.grid.GridPanel.superclass.onResize.apply(this, arguments); + if(this.viewReady){ + this.view.layout(); + } + }, + + + getGridEl : function(){ + return this.body; + }, + + + stopEditing : function(){}, + + + getSelectionModel : function(){ + if(!this.selModel){ + this.selModel = new Ext.grid.RowSelectionModel( + this.disableSelection ? {selectRow: Ext.emptyFn} : null); + } + return this.selModel; + }, + + + getStore : function(){ + return this.store; + }, + + + getColumnModel : function(){ + return this.colModel; + }, + + + getView : function(){ + if(!this.view){ + this.view = new Ext.grid.GridView(this.viewConfig); + } + return this.view; + }, + + getDragDropText : function(){ + var count = this.selModel.getCount(); + return String.format(this.ddText, count, count == 1 ? '' : 's'); + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +}); +Ext.reg('grid', Ext.grid.GridPanel); + +Ext.grid.GridView = function(config){ + Ext.apply(this, config); + this.addEvents( + + "beforerowremoved", + + "beforerowsinserted", + + "beforerefresh", + + "rowremoved", + + "rowsinserted", + + "rowupdated", + + "refresh" + ); + Ext.grid.GridView.superclass.constructor.call(this); +}; + +Ext.extend(Ext.grid.GridView, Ext.util.Observable, { + + + + + deferEmptyText: true, + + scrollOffset: 19, + + autoFill: false, + + forceFit: false, + + sortClasses : ["sort-asc", "sort-desc"], + + sortAscText : "Sort Ascending", + + sortDescText : "Sort Descending", + + columnsText : "Columns", + + borderWidth: 2, + + + + initTemplates : function(){ + var ts = this.templates || {}; + if(!ts.master){ + ts.master = new Ext.Template( + '
    ', + '
    ', + '
    {header}
    ', + '
    {body}
    ', + "
    ", + '
     
    ', + '
     
    ', + "
    " + ); + } + + if(!ts.header){ + ts.header = new Ext.Template( + '', + '{cells}', + "
    " + ); + } + + if(!ts.hcell){ + ts.hcell = new Ext.Template( + '
    ', this.grid.enableHdMenu ? '' : '', + '{value}', + "
    " + ); + } + + if(!ts.body){ + ts.body = new Ext.Template('{rows}'); + } + + if(!ts.row){ + ts.row = new Ext.Template( + '
    ', + '{cells}', + (this.enableRowBody ? '' : ''), + '
    {body}
    ' + ); + } + + if(!ts.cell){ + ts.cell = new Ext.Template( + '', + '
    {value}
    ', + "" + ); + } + + for(var k in ts){ + var t = ts[k]; + if(t && typeof t.compile == 'function' && !t.compiled){ + t.disableFormats = true; + t.compile(); + } + } + + this.templates = ts; + + this.tdClass = 'x-grid3-cell'; + this.cellSelector = 'td.x-grid3-cell'; + this.hdCls = 'x-grid3-hd'; + this.rowSelector = 'div.x-grid3-row'; + this.colRe = new RegExp("x-grid3-td-([^\\s]+)", ""); + }, + + fly : function(el){ + if(!this._flyweight){ + this._flyweight = new Ext.Element.Flyweight(document.body); + } + this._flyweight.dom = el; + return this._flyweight; + }, + + getEditorParent : function(ed){ + return this.scroller.dom; + }, + + initElements : function(){ + var E = Ext.Element; + + var el = this.grid.getGridEl().dom.firstChild; + var cs = el.childNodes; + + this.el = new E(el); + + this.mainWrap = new E(cs[0]); + this.mainHd = new E(this.mainWrap.dom.firstChild); + + if(this.grid.hideHeaders){ + this.mainHd.setDisplayed(false); + } + + this.innerHd = this.mainHd.dom.firstChild; + this.scroller = new E(this.mainWrap.dom.childNodes[1]); + if(this.forceFit){ + this.scroller.setStyle('overflow-x', 'hidden'); + } + this.mainBody = new E(this.scroller.dom.firstChild); + + this.focusEl = new E(this.scroller.dom.childNodes[1]); + this.focusEl.swallowEvent("click", true); + + this.resizeMarker = new E(cs[1]); + this.resizeProxy = new E(cs[2]); + }, + + getRows : function(){ + return this.hasRows() ? this.mainBody.dom.childNodes : []; + }, + + + findCell : function(el){ + if(!el){ + return false; + } + return this.fly(el).findParent(this.cellSelector, 3); + }, + + findCellIndex : function(el, requiredCls){ + var cell = this.findCell(el); + if(cell && (!requiredCls || this.fly(cell).hasClass(requiredCls))){ + return this.getCellIndex(cell); + } + return false; + }, + + getCellIndex : function(el){ + if(el){ + var m = el.className.match(this.colRe); + if(m && m[1]){ + return this.cm.getIndexById(m[1]); + } + } + return false; + }, + + findHeaderCell : function(el){ + var cell = this.findCell(el); + return cell && this.fly(cell).hasClass(this.hdCls) ? cell : null; + }, + + findHeaderIndex : function(el){ + return this.findCellIndex(el, this.hdCls); + }, + + findRow : function(el){ + if(!el){ + return false; + } + return this.fly(el).findParent(this.rowSelector, 10); + }, + + findRowIndex : function(el){ + var r = this.findRow(el); + return r ? r.rowIndex : false; + }, + + + + getRow : function(row){ + return this.getRows()[row]; + }, + + + getCell : function(row, col){ + return this.getRow(row).getElementsByTagName('td')[col]; + }, + + + getHeaderCell : function(index){ + return this.mainHd.dom.getElementsByTagName('td')[index]; + }, + + + addRowClass : function(row, cls){ + var r = this.getRow(row); + if(r){ + this.fly(r).addClass(cls); + } + }, + + removeRowClass : function(row, cls){ + var r = this.getRow(row); + if(r){ + this.fly(r).removeClass(cls); + } + }, + + removeRow : function(row){ + Ext.removeNode(this.getRow(row)); + }, + + removeRows : function(firstRow, lastRow){ + var bd = this.mainBody.dom; + for(var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++){ + Ext.removeNode(bd.childNodes[firstRow]); + } + }, + + + getScrollState : function(){ + var sb = this.scroller.dom; + return {left: sb.scrollLeft, top: sb.scrollTop}; + }, + + restoreScroll : function(state){ + var sb = this.scroller.dom; + sb.scrollLeft = state.left; + sb.scrollTop = state.top; + }, + + + scrollToTop : function(){ + this.scroller.dom.scrollTop = 0; + this.scroller.dom.scrollLeft = 0; + }, + + syncScroll : function(){ + this.syncHeaderScroll(); + var mb = this.scroller.dom; + this.grid.fireEvent("bodyscroll", mb.scrollLeft, mb.scrollTop); + }, + + syncHeaderScroll : function(){ + var mb = this.scroller.dom; + this.innerHd.scrollLeft = mb.scrollLeft; + this.innerHd.scrollLeft = mb.scrollLeft; }, + + updateSortIcon : function(col, dir){ + var sc = this.sortClasses; + var hds = this.mainHd.select('td').removeClass(sc); + hds.item(col).addClass(sc[dir == "DESC" ? 1 : 0]); + }, + + updateAllColumnWidths : function(){ + var tw = this.getTotalWidth(); + var clen = this.cm.getColumnCount(); + var ws = []; + for(var i = 0; i < clen; i++){ + ws[i] = this.getColumnWidth(i); + } + + this.innerHd.firstChild.firstChild.style.width = tw; + + for(var i = 0; i < clen; i++){ + var hd = this.getHeaderCell(i); + hd.style.width = ws[i]; + } + + var ns = this.getRows(); + for(var i = 0, len = ns.length; i < len; i++){ + ns[i].style.width = tw; + ns[i].firstChild.style.width = tw; + var row = ns[i].firstChild.rows[0]; + for(var j = 0; j < clen; j++){ + row.childNodes[j].style.width = ws[j]; + } + } + + this.onAllColumnWidthsUpdated(ws, tw); + }, + + updateColumnWidth : function(col, width){ + var w = this.getColumnWidth(col); + var tw = this.getTotalWidth(); + + this.innerHd.firstChild.firstChild.style.width = tw; + var hd = this.getHeaderCell(col); + hd.style.width = w; + + var ns = this.getRows(); + for(var i = 0, len = ns.length; i < len; i++){ + ns[i].style.width = tw; + ns[i].firstChild.style.width = tw; + ns[i].firstChild.rows[0].childNodes[col].style.width = w; + } + + this.onColumnWidthUpdated(col, w, tw); + }, + + updateColumnHidden : function(col, hidden){ + var tw = this.getTotalWidth(); + + this.innerHd.firstChild.firstChild.style.width = tw; + + var display = hidden ? 'none' : ''; + + var hd = this.getHeaderCell(col); + hd.style.display = display; + + var ns = this.getRows(); + for(var i = 0, len = ns.length; i < len; i++){ + ns[i].style.width = tw; + ns[i].firstChild.style.width = tw; + ns[i].firstChild.rows[0].childNodes[col].style.display = display; + } + + this.onColumnHiddenUpdated(col, hidden, tw); + + delete this.lastViewWidth; this.layout(); + }, + + doRender : function(cs, rs, ds, startRow, colCount, stripe){ + var ts = this.templates, ct = ts.cell, rt = ts.row, last = colCount-1; + var tstyle = 'width:'+this.getTotalWidth()+';'; + var buf = [], cb, c, p = {}, rp = {tstyle: tstyle}, r; + for(var j = 0, len = rs.length; j < len; j++){ + r = rs[j]; cb = []; + var rowIndex = (j+startRow); + for(var i = 0; i < colCount; i++){ + c = cs[i]; + p.id = c.id; + p.css = i == 0 ? 'x-grid3-cell-first ' : (i == last ? 'x-grid3-cell-last ' : ''); + p.attr = p.cellAttr = ""; + p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds); + p.style = c.style; + if(p.value == undefined || p.value === "") p.value = " "; + if(r.dirty && typeof r.modified[c.name] !== 'undefined'){ + p.css += ' x-grid3-dirty-cell'; + } + cb[cb.length] = ct.apply(p); + } + var alt = []; + if(stripe && ((rowIndex+1) % 2 == 0)){ + alt[0] = "x-grid3-row-alt"; + } + if(r.dirty){ + alt[1] = " x-grid3-dirty-row"; + } + rp.cols = colCount; + if(this.getRowClass){ + alt[2] = this.getRowClass(r, rowIndex, rp, ds); + } + rp.alt = alt.join(" "); + rp.cells = cb.join(""); + buf[buf.length] = rt.apply(rp); + } + return buf.join(""); + }, + + processRows : function(startRow, skipStripe){ + if(this.ds.getCount() < 1){ + return; + } + skipStripe = skipStripe || !this.grid.stripeRows; + startRow = startRow || 0; + var rows = this.getRows(); + var cls = ' x-grid3-row-alt '; + for(var i = startRow, len = rows.length; i < len; i++){ + var row = rows[i]; + row.rowIndex = i; + if(!skipStripe){ + var isAlt = ((i+1) % 2 == 0); + var hasAlt = (' '+row.className + ' ').indexOf(cls) != -1; + if(isAlt == hasAlt){ + continue; + } + if(isAlt){ + row.className += " x-grid3-row-alt"; + }else{ + row.className = row.className.replace("x-grid3-row-alt", ""); + } + } + } + }, + + renderUI : function(){ + + var header = this.renderHeaders(); + var body = this.templates.body.apply({rows:''}); + + + var html = this.templates.master.apply({ + body: body, + header: header + }); + + var g = this.grid; + + g.getGridEl().dom.innerHTML = html; + + this.initElements(); + + + this.mainBody.dom.innerHTML = this.renderRows(); + this.processRows(0, true); + + if(this.deferEmptyText !== true){ + this.applyEmptyText(); + } + + Ext.fly(this.innerHd).on("click", this.handleHdDown, this); + this.mainHd.on("mouseover", this.handleHdOver, this); + this.mainHd.on("mouseout", this.handleHdOut, this); + this.mainHd.on("mousemove", this.handleHdMove, this); + + this.scroller.on('scroll', this.syncScroll, this); + if(g.enableColumnResize !== false){ + this.splitone = new Ext.grid.GridView.SplitDragZone(g, this.mainHd.dom); + } + + if(g.enableColumnMove){ + this.columnDrag = new Ext.grid.GridView.ColumnDragZone(g, this.innerHd); + this.columnDrop = new Ext.grid.HeaderDropZone(g, this.mainHd.dom); + } + + if(g.enableHdMenu !== false){ + if(g.enableColumnHide !== false){ + this.colMenu = new Ext.menu.Menu({id:g.id + "-hcols-menu"}); + this.colMenu.on("beforeshow", this.beforeColMenuShow, this); + this.colMenu.on("itemclick", this.handleHdMenuClick, this); + } + this.hmenu = new Ext.menu.Menu({id: g.id + "-hctx"}); + this.hmenu.add( + {id:"asc", text: this.sortAscText, cls: "xg-hmenu-sort-asc"}, + {id:"desc", text: this.sortDescText, cls: "xg-hmenu-sort-desc"} + ); + if(g.enableColumnHide !== false){ + this.hmenu.add('-', + {id:"columns", text: this.columnsText, menu: this.colMenu, iconCls: 'x-cols-icon'} + ); + } + this.hmenu.on("itemclick", this.handleHdMenuClick, this); + + } + + if(g.enableDragDrop || g.enableDrag){ + this.dragZone = new Ext.grid.GridDragZone(g, { + ddGroup : g.ddGroup || 'GridDD' + }); + } + + this.updateHeaderSortState(); + + }, + + layout : function(){ + if(!this.mainBody){ + return; } + var g = this.grid; + var c = g.getGridEl(); + var csize = c.getSize(true); + var vw = csize.width; + + if(vw < 20 || csize.height < 20){ return; + } + + if(g.autoHeight){ + this.scroller.dom.style.overflow = 'visible'; + }else{ + this.el.setSize(csize.width, csize.height); + + var hdHeight = this.mainHd.getHeight(); + var vh = csize.height - (hdHeight); + + this.scroller.setSize(vw, vh); + if(this.innerHd){ + this.innerHd.style.width = (vw)+'px'; + } + } + if(this.forceFit){ + if(this.lastViewWidth != vw){ + this.fitColumns(false, false); + this.lastViewWidth = vw; + } + }else { + this.autoExpand(); + this.syncHeaderScroll(); + } + this.onLayout(vw, vh); + }, + + onLayout : function(vw, vh){ + }, + + onColumnWidthUpdated : function(col, w, tw){ + }, + + onAllColumnWidthsUpdated : function(ws, tw){ + }, + + onColumnHiddenUpdated : function(col, hidden, tw){ + }, + + updateColumnText : function(col, text){ + }, + + afterMove : function(colIndex){ + }, + + + init: function(grid){ + this.grid = grid; + + this.initTemplates(); + this.initData(grid.store, grid.colModel); + this.initUI(grid); + }, + + getColumnId : function(index){ + return this.cm.getColumnId(index); + }, + + renderHeaders : function(){ + var cm = this.cm, ts = this.templates; + var ct = ts.hcell; + + var cb = [], sb = [], p = {}; + + for(var i = 0, len = cm.getColumnCount(); i < len; i++){ + p.id = cm.getColumnId(i); + p.value = cm.getColumnHeader(i) || ""; + p.style = this.getColumnStyle(i, true); + p.tooltip = this.getColumnTooltip(i); + if(cm.config[i].align == 'right'){ + p.istyle = 'padding-right:16px'; + } else { + delete p.istyle; + } + cb[cb.length] = ct.apply(p); + } + return ts.header.apply({cells: cb.join(""), tstyle:'width:'+this.getTotalWidth()+';'}); + }, + + getColumnTooltip : function(i){ + var tt = this.cm.getColumnTooltip(i); + if(tt){ + if(Ext.QuickTips.isEnabled()){ + return 'ext:qtip="'+tt+'"'; + }else{ + return 'title="'+tt+'"'; + } + } + return ""; + }, + + beforeUpdate : function(){ + this.grid.stopEditing(true); + }, + + updateHeaders : function(){ + this.innerHd.firstChild.innerHTML = this.renderHeaders(); + }, + + + focusRow : function(row){ + this.focusCell(row, 0, false); + }, + + + focusCell : function(row, col, hscroll){ + var xy = this.ensureVisible(row, col, hscroll); + this.focusEl.setXY(xy); + if(Ext.isGecko){ + this.focusEl.focus(); + }else{ + this.focusEl.focus.defer(1, this.focusEl); + } + }, + + ensureVisible : function(row, col, hscroll){ + if(typeof row != "number"){ + row = row.rowIndex; + } + if(!this.ds){ + return; + } + if(row < 0 || row >= this.ds.getCount()){ + return; + } + col = (col !== undefined ? col : 0); + + var rowEl = this.getRow(row), cellEl; + if(!(hscroll === false && col === 0)){ + while(this.cm.isHidden(col)){ + col++; + } + cellEl = this.getCell(row, col); + } + if(!rowEl){ + return; + } + + var c = this.scroller.dom; + + var ctop = 0; + var p = rowEl, stop = this.el.dom; + while(p && p != stop){ + ctop += p.offsetTop; + p = p.offsetParent; + } + ctop -= this.mainHd.dom.offsetHeight; + + var cbot = ctop + rowEl.offsetHeight; + + var ch = c.clientHeight; + var stop = parseInt(c.scrollTop, 10); + var sbot = stop + ch; + + if(ctop < stop){ + c.scrollTop = ctop; + }else if(cbot > sbot){ + c.scrollTop = cbot-ch; + } + + if(hscroll !== false){ + var cleft = parseInt(cellEl.offsetLeft, 10); + var cright = cleft + cellEl.offsetWidth; + + var sleft = parseInt(c.scrollLeft, 10); + var sright = sleft + c.clientWidth; + if(cleft < sleft){ + c.scrollLeft = cleft; + }else if(cright > sright){ + c.scrollLeft = cright-c.clientWidth; + } + } + return cellEl ? Ext.fly(cellEl).getXY() : [c.scrollLeft, Ext.fly(rowEl).getY()]; + }, + + insertRows : function(dm, firstRow, lastRow, isUpdate){ + if(!isUpdate && firstRow === 0 && lastRow == dm.getCount()-1){ + this.refresh(); + }else{ + if(!isUpdate){ + this.fireEvent("beforerowsinserted", this, firstRow, lastRow); + } + var html = this.renderRows(firstRow, lastRow); + var before = this.getRow(firstRow); + if(before){ + Ext.DomHelper.insertHtml('beforeBegin', before, html); + }else{ + Ext.DomHelper.insertHtml('beforeEnd', this.mainBody.dom, html); + } + if(!isUpdate){ + this.fireEvent("rowsinserted", this, firstRow, lastRow); + this.processRows(firstRow); + } + } + }, + + deleteRows : function(dm, firstRow, lastRow){ + if(dm.getRowCount()<1){ + this.refresh(); + }else{ + this.fireEvent("beforerowsdeleted", this, firstRow, lastRow); + + this.removeRows(firstRow, lastRow); + + this.processRows(firstRow); + this.fireEvent("rowsdeleted", this, firstRow, lastRow); + } + }, + + getColumnStyle : function(col, isHeader){ + var style = !isHeader ? (this.cm.config[col].css || '') : ''; + style += 'width:'+this.getColumnWidth(col)+';'; + if(this.cm.isHidden(col)){ + style += 'display:none;'; + } + var align = this.cm.config[col].align; + if(align){ + style += 'text-align:'+align+';'; + } + return style; + }, + + getColumnWidth : function(col){ + var w = this.cm.getColumnWidth(col); + if(typeof w == 'number'){ + return (Ext.isBorderBox ? w : (w-this.borderWidth > 0 ? w-this.borderWidth:0)) + 'px'; + } + return w; + }, + + getTotalWidth : function(){ + return this.cm.getTotalWidth()+'px'; + }, + + fitColumns : function(preventRefresh, onlyExpand, omitColumn){ + var cm = this.cm, leftOver, dist, i; + var tw = cm.getTotalWidth(false); + var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset; + + if(aw < 20){ return; + } + var extra = aw - tw; + + if(extra === 0){ + return false; + } + + var vc = cm.getColumnCount(true); + var ac = vc-(typeof omitColumn == 'number' ? 1 : 0); + if(ac === 0){ + ac = 1; + omitColumn = undefined; + } + var colCount = cm.getColumnCount(); + var cols = []; + var extraCol = 0; + var width = 0; + var w; + for (i = 0; i < colCount; i++){ + if(!cm.isHidden(i) && !cm.isFixed(i) && i !== omitColumn){ + w = cm.getColumnWidth(i); + cols.push(i); + extraCol = i; + cols.push(w); + width += w; + } + } + var frac = (aw - cm.getTotalWidth())/width; + while (cols.length){ + w = cols.pop(); + i = cols.pop(); + cm.setColumnWidth(i, Math.max(this.grid.minColumnWidth, Math.floor(w + w*frac)), true); + } + + if((tw = cm.getTotalWidth(false)) > aw){ + var adjustCol = ac != vc ? omitColumn : extraCol; + cm.setColumnWidth(adjustCol, Math.max(1, + cm.getColumnWidth(adjustCol)- (tw-aw)), true); + } + + if(preventRefresh !== true){ + this.updateAllColumnWidths(); + } + + + return true; + }, + + autoExpand : function(preventUpdate){ + var g = this.grid, cm = this.cm; + if(!this.userResized && g.autoExpandColumn){ + var tw = cm.getTotalWidth(false); + var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset; + if(tw != aw){ + var ci = cm.getIndexById(g.autoExpandColumn); + var currentWidth = cm.getColumnWidth(ci); + var cw = Math.min(Math.max(((aw-tw)+currentWidth), g.autoExpandMin), g.autoExpandMax); + if(cw != currentWidth){ + cm.setColumnWidth(ci, cw, true); + if(preventUpdate !== true){ + this.updateColumnWidth(ci, cw); + } + } + } + } + }, + + getColumnData : function(){ + var cs = [], cm = this.cm, colCount = cm.getColumnCount(); + for(var i = 0; i < colCount; i++){ + var name = cm.getDataIndex(i); + cs[i] = { + name : (typeof name == 'undefined' ? this.ds.fields.get(i).name : name), + renderer : cm.getRenderer(i), + id : cm.getColumnId(i), + style : this.getColumnStyle(i) + }; + } + return cs; + }, + + renderRows : function(startRow, endRow){ + var g = this.grid, cm = g.colModel, ds = g.store, stripe = g.stripeRows; + var colCount = cm.getColumnCount(); + + if(ds.getCount() < 1){ + return ""; + } + + var cs = this.getColumnData(); + + startRow = startRow || 0; + endRow = typeof endRow == "undefined"? ds.getCount()-1 : endRow; + + var rs = ds.getRange(startRow, endRow); + + return this.doRender(cs, rs, ds, startRow, colCount, stripe); + }, + + renderBody : function(){ + var markup = this.renderRows(); + return this.templates.body.apply({rows: markup}); + }, + + refreshRow : function(record){ + var ds = this.ds, index; + if(typeof record == 'number'){ + index = record; + record = ds.getAt(index); + }else{ + index = ds.indexOf(record); + } + var cls = []; + this.insertRows(ds, index, index, true); + this.getRow(index).rowIndex = index; + this.onRemove(ds, record, index+1, true); + this.fireEvent("rowupdated", this, index, record); + }, + + + refresh : function(headersToo){ + this.fireEvent("beforerefresh", this); + this.grid.stopEditing(true); + + var result = this.renderBody(); + this.mainBody.update(result); + + if(headersToo === true){ + this.updateHeaders(); + this.updateHeaderSortState(); + } + this.processRows(0, true); + this.layout(); + this.applyEmptyText(); + this.fireEvent("refresh", this); + }, + + applyEmptyText : function(){ + if(this.emptyText && !this.hasRows()){ + this.mainBody.update('
    ' + this.emptyText + '
    '); + } + }, + + updateHeaderSortState : function(){ + var state = this.ds.getSortState(); + if(!state){ + return; + } + if(!this.sortState || (this.sortState.field != state.field || this.sortState.direction != state.direction)){ + this.grid.fireEvent('sortchange', this.grid, state); + } + this.sortState = state; + var sortColumn = this.cm.findColumnIndex(state.field); + if(sortColumn != -1){ + var sortDir = state.direction; + this.updateSortIcon(sortColumn, sortDir); + } + }, + + destroy : function(){ + if(this.colMenu){ + this.colMenu.removeAll(); + Ext.menu.MenuMgr.unregister(this.colMenu); + this.colMenu.getEl().remove(); + delete this.colMenu; + } + if(this.hmenu){ + this.hmenu.removeAll(); + Ext.menu.MenuMgr.unregister(this.hmenu); + this.hmenu.getEl().remove(); + delete this.hmenu; + } + if(this.grid.enableColumnMove){ + var dds = Ext.dd.DDM.ids['gridHeader' + this.grid.getGridEl().id]; + if(dds){ + for(var dd in dds){ + if(!dds[dd].config.isTarget && dds[dd].dragElId){ + var elid = dds[dd].dragElId; + dds[dd].unreg(); + Ext.get(elid).remove(); + } else if(dds[dd].config.isTarget){ + dds[dd].proxyTop.remove(); + dds[dd].proxyBottom.remove(); + dds[dd].unreg(); + } + if(Ext.dd.DDM.locationCache[dd]){ + delete Ext.dd.DDM.locationCache[dd]; + } + } + delete Ext.dd.DDM.ids['gridHeader' + this.grid.getGridEl().id]; + } + } + + Ext.destroy(this.resizeMarker, this.resizeProxy); + + if(this.dragZone){ + this.dragZone.unreg(); + } + + this.initData(null, null); + Ext.EventManager.removeResizeListener(this.onWindowResize, this); + }, + + onDenyColumnHide : function(){ + + }, + + render : function(){ + + var cm = this.cm; + var colCount = cm.getColumnCount(); + + if(this.autoFill){ + this.fitColumns(true, true); + }else if(this.forceFit){ + this.fitColumns(true, false); + }else if(this.grid.autoExpandColumn){ + this.autoExpand(true); + } + + this.renderUI(); + }, + + + initData : function(ds, cm){ + if(this.ds){ + this.ds.un("load", this.onLoad, this); + this.ds.un("datachanged", this.onDataChange, this); + this.ds.un("add", this.onAdd, this); + this.ds.un("remove", this.onRemove, this); + this.ds.un("update", this.onUpdate, this); + this.ds.un("clear", this.onClear, this); + } + if(ds){ + ds.on("load", this.onLoad, this); + ds.on("datachanged", this.onDataChange, this); + ds.on("add", this.onAdd, this); + ds.on("remove", this.onRemove, this); + ds.on("update", this.onUpdate, this); + ds.on("clear", this.onClear, this); + } + this.ds = ds; + + if(this.cm){ + this.cm.un("configchange", this.onColConfigChange, this); + this.cm.un("widthchange", this.onColWidthChange, this); + this.cm.un("headerchange", this.onHeaderChange, this); + this.cm.un("hiddenchange", this.onHiddenChange, this); + this.cm.un("columnmoved", this.onColumnMove, this); + this.cm.un("columnlockchange", this.onColumnLock, this); + } + if(cm){ + cm.on("configchange", this.onColConfigChange, this); + cm.on("widthchange", this.onColWidthChange, this); + cm.on("headerchange", this.onHeaderChange, this); + cm.on("hiddenchange", this.onHiddenChange, this); + cm.on("columnmoved", this.onColumnMove, this); + cm.on("columnlockchange", this.onColumnLock, this); + } + this.cm = cm; + }, + + onDataChange : function(){ + this.refresh(); + this.updateHeaderSortState(); + }, + + onClear : function(){ + this.refresh(); + }, + + onUpdate : function(ds, record){ + this.refreshRow(record); + }, + + onAdd : function(ds, records, index){ + this.insertRows(ds, index, index + (records.length-1)); + }, + + onRemove : function(ds, record, index, isUpdate){ + if(isUpdate !== true){ + this.fireEvent("beforerowremoved", this, index, record); + } + this.removeRow(index); + if(isUpdate !== true){ + this.processRows(index); + this.applyEmptyText(); + this.fireEvent("rowremoved", this, index, record); + } + }, + + onLoad : function(){ + this.scrollToTop(); + }, + + onColWidthChange : function(cm, col, width){ + this.updateColumnWidth(col, width); + }, + + onHeaderChange : function(cm, col, text){ + this.updateHeaders(); + }, + + onHiddenChange : function(cm, col, hidden){ + this.updateColumnHidden(col, hidden); + }, + + onColumnMove : function(cm, oldIndex, newIndex){ + this.indexMap = null; + var s = this.getScrollState(); + this.refresh(true); + this.restoreScroll(s); + this.afterMove(newIndex); + }, + + onColConfigChange : function(){ + delete this.lastViewWidth; + this.indexMap = null; + this.refresh(true); + }, + + + initUI : function(grid){ + grid.on("headerclick", this.onHeaderClick, this); + + if(grid.trackMouseOver){ + grid.on("mouseover", this.onRowOver, this); + grid.on("mouseout", this.onRowOut, this); + } + }, + + initEvents : function(){ + + }, + + onHeaderClick : function(g, index){ + if(this.headersDisabled || !this.cm.isSortable(index)){ + return; + } + g.stopEditing(true); + g.store.sort(this.cm.getDataIndex(index)); + }, + + onRowOver : function(e, t){ + var row; + if((row = this.findRowIndex(t)) !== false){ + this.addRowClass(row, "x-grid3-row-over"); + } + }, + + onRowOut : function(e, t){ + var row; + if((row = this.findRowIndex(t)) !== false && row !== this.findRowIndex(e.getRelatedTarget())){ + this.removeRowClass(row, "x-grid3-row-over"); + } + }, + + handleWheel : function(e){ + e.stopPropagation(); + }, + + onRowSelect : function(row){ + this.addRowClass(row, "x-grid3-row-selected"); + }, + + onRowDeselect : function(row){ + this.removeRowClass(row, "x-grid3-row-selected"); + }, + + onCellSelect : function(row, col){ + var cell = this.getCell(row, col); + if(cell){ + this.fly(cell).addClass("x-grid3-cell-selected"); + } + }, + + onCellDeselect : function(row, col){ + var cell = this.getCell(row, col); + if(cell){ + this.fly(cell).removeClass("x-grid3-cell-selected"); + } + }, + + onColumnSplitterMoved : function(i, w){ + this.userResized = true; + var cm = this.grid.colModel; + cm.setColumnWidth(i, w, true); + + if(this.forceFit){ + this.fitColumns(true, false, i); + this.updateAllColumnWidths(); + }else{ + this.updateColumnWidth(i, w); + } + + this.grid.fireEvent("columnresize", i, w); + }, + + handleHdMenuClick : function(item){ + var index = this.hdCtxIndex; + var cm = this.cm, ds = this.ds; + switch(item.id){ + case "asc": + ds.sort(cm.getDataIndex(index), "ASC"); + break; + case "desc": + ds.sort(cm.getDataIndex(index), "DESC"); + break; + default: + index = cm.getIndexById(item.id.substr(4)); + if(index != -1){ + if(item.checked && cm.getColumnsBy(this.isHideableColumn, this).length <= 1){ + this.onDenyColumnHide(); + return false; + } + cm.setHidden(index, item.checked); + } + } + return true; + }, + + isHideableColumn : function(c){ + return !c.hidden && !c.fixed; + }, + + beforeColMenuShow : function(){ + var cm = this.cm, colCount = cm.getColumnCount(); + this.colMenu.removeAll(); + for(var i = 0; i < colCount; i++){ + if(cm.config[i].fixed !== true && cm.config[i].hideable !== false){ + this.colMenu.add(new Ext.menu.CheckItem({ + id: "col-"+cm.getColumnId(i), + text: cm.getColumnHeader(i), + checked: !cm.isHidden(i), + hideOnClick:false, + disabled: cm.config[i].hideable === false + })); + } + } + }, + + handleHdDown : function(e, t){ + if(Ext.fly(t).hasClass('x-grid3-hd-btn')){ + e.stopEvent(); + var hd = this.findHeaderCell(t); + Ext.fly(hd).addClass('x-grid3-hd-menu-open'); + var index = this.getCellIndex(hd); + this.hdCtxIndex = index; + var ms = this.hmenu.items, cm = this.cm; + ms.get("asc").setDisabled(!cm.isSortable(index)); + ms.get("desc").setDisabled(!cm.isSortable(index)); + this.hmenu.on("hide", function(){ + Ext.fly(hd).removeClass('x-grid3-hd-menu-open'); + }, this, {single:true}); + this.hmenu.show(t, "tl-bl?"); + } + }, + + handleHdOver : function(e, t){ + var hd = this.findHeaderCell(t); + if(hd && !this.headersDisabled){ + this.activeHd = hd; + this.activeHdIndex = this.getCellIndex(hd); + var fly = this.fly(hd); + this.activeHdRegion = fly.getRegion(); + if(!this.cm.isMenuDisabled(this.activeHdIndex)){ + fly.addClass("x-grid3-hd-over"); + this.activeHdBtn = fly.child('.x-grid3-hd-btn'); + if(this.activeHdBtn){ + this.activeHdBtn.dom.style.height = (hd.firstChild.offsetHeight-1)+'px'; + } + } + } + }, + + handleHdMove : function(e, t){ + if(this.activeHd && !this.headersDisabled){ + var hw = this.splitHandleWidth || 5; + var r = this.activeHdRegion; + var x = e.getPageX(); + var ss = this.activeHd.style; + if(x - r.left <= hw && this.cm.isResizable(this.activeHdIndex-1)){ + ss.cursor = Ext.isAir ? 'move' : Ext.isSafari ? 'e-resize' : 'col-resize'; }else if(r.right - x <= (!this.activeHdBtn ? hw : 2) && this.cm.isResizable(this.activeHdIndex)){ + ss.cursor = Ext.isAir ? 'move' : Ext.isSafari ? 'w-resize' : 'col-resize'; + }else{ + ss.cursor = ''; + } + } + }, + + handleHdOut : function(e, t){ + var hd = this.findHeaderCell(t); + if(hd && (!Ext.isIE || !e.within(hd, true))){ + this.activeHd = null; + this.fly(hd).removeClass("x-grid3-hd-over"); + hd.style.cursor = ''; + } + }, + + hasRows : function(){ + var fc = this.mainBody.dom.firstChild; + return fc && fc.className != 'x-grid-empty'; + }, + + bind : function(d, c){ + this.initData(d, c); + } +}); + + +Ext.grid.GridView.SplitDragZone = function(grid, hd){ + this.grid = grid; + this.view = grid.getView(); + this.marker = this.view.resizeMarker; + this.proxy = this.view.resizeProxy; + Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this, hd, + "gridSplitters" + this.grid.getGridEl().id, { + dragElId : Ext.id(this.proxy.dom), resizeFrame:false + }); + this.scroll = false; + this.hw = this.view.splitHandleWidth || 5; +}; +Ext.extend(Ext.grid.GridView.SplitDragZone, Ext.dd.DDProxy, { + + b4StartDrag : function(x, y){ + this.view.headersDisabled = true; + var h = this.view.mainWrap.getHeight(); + this.marker.setHeight(h); + this.marker.show(); + this.marker.alignTo(this.view.getHeaderCell(this.cellIndex), 'tl-tl', [-2, 0]); + this.proxy.setHeight(h); + var w = this.cm.getColumnWidth(this.cellIndex); + var minw = Math.max(w-this.grid.minColumnWidth, 0); + this.resetConstraints(); + this.setXConstraint(minw, 1000); + this.setYConstraint(0, 0); + this.minX = x - minw; + this.maxX = x + 1000; + this.startPos = x; + Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y); + }, + + + handleMouseDown : function(e){ + var t = this.view.findHeaderCell(e.getTarget()); + if(t){ + var xy = this.view.fly(t).getXY(), x = xy[0], y = xy[1]; + var exy = e.getXY(), ex = exy[0], ey = exy[1]; + var w = t.offsetWidth, adjust = false; + if((ex - x) <= this.hw){ + adjust = -1; + }else if((x+w) - ex <= this.hw){ + adjust = 0; + } + if(adjust !== false){ + this.cm = this.grid.colModel; + var ci = this.view.getCellIndex(t); + if(adjust == -1){ + if (ci + adjust < 0) { + return; + } + while(this.cm.isHidden(ci+adjust)){ + --adjust; + if(ci+adjust < 0){ + return; + } + } + } + this.cellIndex = ci+adjust; + this.split = t.dom; + if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){ + Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this, arguments); + } + }else if(this.view.columnDrag){ + this.view.columnDrag.callHandleMouseDown(e); + } + } + }, + + endDrag : function(e){ + this.marker.hide(); + var v = this.view; + var endX = Math.max(this.minX, e.getPageX()); + var diff = endX - this.startPos; + v.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff); + setTimeout(function(){ + v.headersDisabled = false; + }, 50); + }, + + autoOffset : function(){ + this.setDelta(0,0); + } +}); + + +Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { + + hideGroupedColumn:false, + + showGroupName:true, + + startCollapsed:false, + + enableGrouping:true, + + enableGroupingMenu:true, + + enableNoGroups:true, + + emptyGroupText : '(None)', + + ignoreAdd: false, + + groupTextTpl : '{text}', + + + + + gidSeed : 1000, + + + initTemplates : function(){ + Ext.grid.GroupingView.superclass.initTemplates.call(this); + this.state = {}; + + var sm = this.grid.getSelectionModel(); + sm.on(sm.selectRow ? 'beforerowselect' : 'beforecellselect', + this.onBeforeRowSelect, this); + + if(!this.startGroup){ + this.startGroup = new Ext.XTemplate( + '
    ', + '
    ', this.groupTextTpl ,'
    ', + '
    ' + ); + } + this.startGroup.compile(); + this.endGroup = '
    '; + }, + + + findGroup : function(el){ + return Ext.fly(el).up('.x-grid-group', this.mainBody.dom); + }, + + + getGroups : function(){ + return this.hasRows() ? this.mainBody.dom.childNodes : []; + }, + + + onAdd : function(){ + if(this.enableGrouping && !this.ignoreAdd){ + var ss = this.getScrollState(); + this.refresh(); + this.restoreScroll(ss); + }else if(!this.enableGrouping){ + Ext.grid.GroupingView.superclass.onAdd.apply(this, arguments); + } + }, + + + onRemove : function(ds, record, index, isUpdate){ + Ext.grid.GroupingView.superclass.onRemove.apply(this, arguments); + var g = document.getElementById(record._groupId); + if(g && g.childNodes[1].childNodes.length < 1){ + Ext.removeNode(g); + } + this.applyEmptyText(); + }, + + + refreshRow : function(record){ + if(this.ds.getCount()==1){ + this.refresh(); + }else{ + this.isUpdating = true; + Ext.grid.GroupingView.superclass.refreshRow.apply(this, arguments); + this.isUpdating = false; + } + }, + + + beforeMenuShow : function(){ + var field = this.getGroupField(); + var g = this.hmenu.items.get('groupBy'); + if(g){ + g.setDisabled(this.cm.config[this.hdCtxIndex].groupable === false); + } + var s = this.hmenu.items.get('showGroups'); + if(s){ + s.setDisabled(!field && this.cm.config[this.hdCtxIndex].groupable === false); + s.setChecked(!!field, true); + } + }, + + + renderUI : function(){ + Ext.grid.GroupingView.superclass.renderUI.call(this); + this.mainBody.on('mousedown', this.interceptMouse, this); + + if(this.enableGroupingMenu && this.hmenu){ + this.hmenu.add('-',{ + id:'groupBy', + text: this.groupByText, + handler: this.onGroupByClick, + scope: this, + iconCls:'x-group-by-icon' + }); + if(this.enableNoGroups){ + this.hmenu.add({ + id:'showGroups', + text: this.showGroupsText, + checked: true, + checkHandler: this.onShowGroupsClick, + scope: this + }); + } + this.hmenu.on('beforeshow', this.beforeMenuShow, this); + } + }, + + + onGroupByClick : function(){ + this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex)); + this.beforeMenuShow(); + }, + + + onShowGroupsClick : function(mi, checked){ + if(checked){ + this.onGroupByClick(); + }else{ + this.grid.store.clearGrouping(); + } + }, + + + toggleGroup : function(group, expanded){ + this.grid.stopEditing(true); + group = Ext.getDom(group); + var gel = Ext.fly(group); + expanded = expanded !== undefined ? + expanded : gel.hasClass('x-grid-group-collapsed'); + + this.state[gel.dom.id] = expanded; + gel[expanded ? 'removeClass' : 'addClass']('x-grid-group-collapsed'); + }, + + + toggleAllGroups : function(expanded){ + var groups = this.getGroups(); + for(var i = 0, len = groups.length; i < len; i++){ + this.toggleGroup(groups[i], expanded); + } + }, + + + expandAllGroups : function(){ + this.toggleAllGroups(true); + }, + + + collapseAllGroups : function(){ + this.toggleAllGroups(false); + }, + + + interceptMouse : function(e){ + var hd = e.getTarget('.x-grid-group-hd', this.mainBody); + if(hd){ + e.stopEvent(); + this.toggleGroup(hd.parentNode); + } + }, + + + getGroup : function(v, r, groupRenderer, rowIndex, colIndex, ds){ + var g = groupRenderer ? groupRenderer(v, {}, r, rowIndex, colIndex, ds) : String(v); + if(g === ''){ + g = this.cm.config[colIndex].emptyGroupText || this.emptyGroupText; + } + return g; + }, + + + getGroupField : function(){ + return this.grid.store.getGroupState(); + }, + + + renderRows : function(){ + var groupField = this.getGroupField(); + var eg = !!groupField; + + if(this.hideGroupedColumn) { + var colIndex = this.cm.findColumnIndex(groupField); + if(!eg && this.lastGroupField !== undefined) { + this.mainBody.update(''); + this.cm.setHidden(this.cm.findColumnIndex(this.lastGroupField), false); + delete this.lastGroupField; + }else if (eg && this.lastGroupField === undefined) { + this.lastGroupField = groupField; + this.cm.setHidden(colIndex, true); + }else if (eg && this.lastGroupField !== undefined && groupField !== this.lastGroupField) { + this.mainBody.update(''); + var oldIndex = this.cm.findColumnIndex(this.lastGroupField); + this.cm.setHidden(oldIndex, false); + this.lastGroupField = groupField; + this.cm.setHidden(colIndex, true); + } + } + return Ext.grid.GroupingView.superclass.renderRows.apply( + this, arguments); + }, + + + doRender : function(cs, rs, ds, startRow, colCount, stripe){ + if(rs.length < 1){ + return ''; + } + var groupField = this.getGroupField(); + var colIndex = this.cm.findColumnIndex(groupField); + + this.enableGrouping = !!groupField; + + if(!this.enableGrouping || this.isUpdating){ + return Ext.grid.GroupingView.superclass.doRender.apply( + this, arguments); + } + var gstyle = 'width:'+this.getTotalWidth()+';'; + + var gidPrefix = this.grid.getGridEl().id; + var cfg = this.cm.config[colIndex]; + var groupRenderer = cfg.groupRenderer || cfg.renderer; + var prefix = this.showGroupName ? + (cfg.groupName || cfg.header)+': ' : ''; + + var groups = [], curGroup, i, len, gid; + for(i = 0, len = rs.length; i < len; i++){ + var rowIndex = startRow + i; + var r = rs[i], + gvalue = r.data[groupField], + g = this.getGroup(gvalue, r, groupRenderer, rowIndex, colIndex, ds); + if(!curGroup || curGroup.group != g){ + gid = gidPrefix + '-gp-' + groupField + '-' + Ext.util.Format.htmlEncode(g); + + + var isCollapsed = typeof this.state[gid] !== 'undefined' ? !this.state[gid] : this.startCollapsed; + var gcls = isCollapsed ? 'x-grid-group-collapsed' : ''; + curGroup = { + group: g, + gvalue: gvalue, + text: prefix + g, + groupId: gid, + startRow: rowIndex, + rs: [r], + cls: gcls, + style: gstyle + }; + groups.push(curGroup); + }else{ + curGroup.rs.push(r); + } + r._groupId = gid; + } + + var buf = []; + for(i = 0, len = groups.length; i < len; i++){ + var g = groups[i]; + this.doGroupStart(buf, g, cs, ds, colCount); + buf[buf.length] = Ext.grid.GroupingView.superclass.doRender.call( + this, cs, g.rs, ds, g.startRow, colCount, stripe); + + this.doGroupEnd(buf, g, cs, ds, colCount); + } + return buf.join(''); + }, + + + getGroupId : function(value){ + var gidPrefix = this.grid.getGridEl().id; + var groupField = this.getGroupField(); + var colIndex = this.cm.findColumnIndex(groupField); + var cfg = this.cm.config[colIndex]; + var groupRenderer = cfg.groupRenderer || cfg.renderer; + var gtext = this.getGroup(value, {data:{}}, groupRenderer, 0, colIndex, this.ds); + return gidPrefix + '-gp-' + groupField + '-' + Ext.util.Format.htmlEncode(value); + }, + + + doGroupStart : function(buf, g, cs, ds, colCount){ + buf[buf.length] = this.startGroup.apply(g); + }, + + + doGroupEnd : function(buf, g, cs, ds, colCount){ + buf[buf.length] = this.endGroup; + }, + + + getRows : function(){ + if(!this.enableGrouping){ + return Ext.grid.GroupingView.superclass.getRows.call(this); + } + var r = []; + var g, gs = this.getGroups(); + for(var i = 0, len = gs.length; i < len; i++){ + g = gs[i].childNodes[1].childNodes; + for(var j = 0, jlen = g.length; j < jlen; j++){ + r[r.length] = g[j]; + } + } + return r; + }, + + + updateGroupWidths : function(){ + if(!this.enableGrouping || !this.hasRows()){ + return; + } + var tw = Math.max(this.cm.getTotalWidth(), this.el.dom.offsetWidth-this.scrollOffset) +'px'; + var gs = this.getGroups(); + for(var i = 0, len = gs.length; i < len; i++){ + gs[i].firstChild.style.width = tw; + } + }, + + + onColumnWidthUpdated : function(col, w, tw){ + this.updateGroupWidths(); + }, + + + onAllColumnWidthsUpdated : function(ws, tw){ + this.updateGroupWidths(); + }, + + + onColumnHiddenUpdated : function(col, hidden, tw){ + this.updateGroupWidths(); + }, + + + onLayout : function(){ + this.updateGroupWidths(); + }, + + + onBeforeRowSelect : function(sm, rowIndex){ + if(!this.enableGrouping){ + return; + } + var row = this.getRow(rowIndex); + if(row && !row.offsetParent){ + var g = this.findGroup(row); + this.toggleGroup(g, true); + } + }, + + + groupByText: 'Group By This Field', + + showGroupsText: 'Show in Groups' +}); + +Ext.grid.GroupingView.GROUP_ID = 1000; + + +Ext.grid.HeaderDragZone = function(grid, hd, hd2){ + this.grid = grid; + this.view = grid.getView(); + this.ddGroup = "gridHeader" + this.grid.getGridEl().id; + Ext.grid.HeaderDragZone.superclass.constructor.call(this, hd); + if(hd2){ + this.setHandleElId(Ext.id(hd)); + this.setOuterHandleElId(Ext.id(hd2)); + } + this.scroll = false; +}; +Ext.extend(Ext.grid.HeaderDragZone, Ext.dd.DragZone, { + maxDragWidth: 120, + getDragData : function(e){ + var t = Ext.lib.Event.getTarget(e); + var h = this.view.findHeaderCell(t); + if(h){ + return {ddel: h.firstChild, header:h}; + } + return false; + }, + + onInitDrag : function(e){ + this.view.headersDisabled = true; + var clone = this.dragData.ddel.cloneNode(true); + clone.id = Ext.id(); + clone.style.width = Math.min(this.dragData.header.offsetWidth,this.maxDragWidth) + "px"; + this.proxy.update(clone); + return true; + }, + + afterValidDrop : function(){ + var v = this.view; + setTimeout(function(){ + v.headersDisabled = false; + }, 50); + }, + + afterInvalidDrop : function(){ + var v = this.view; + setTimeout(function(){ + v.headersDisabled = false; + }, 50); + } +}); + + + +Ext.grid.HeaderDropZone = function(grid, hd, hd2){ + this.grid = grid; + this.view = grid.getView(); + + this.proxyTop = Ext.DomHelper.append(document.body, { + cls:"col-move-top", html:" " + }, true); + this.proxyBottom = Ext.DomHelper.append(document.body, { + cls:"col-move-bottom", html:" " + }, true); + this.proxyTop.hide = this.proxyBottom.hide = function(){ + this.setLeftTop(-100,-100); + this.setStyle("visibility", "hidden"); + }; + this.ddGroup = "gridHeader" + this.grid.getGridEl().id; + + + Ext.grid.HeaderDropZone.superclass.constructor.call(this, grid.getGridEl().dom); +}; +Ext.extend(Ext.grid.HeaderDropZone, Ext.dd.DropZone, { + proxyOffsets : [-4, -9], + fly: Ext.Element.fly, + + getTargetFromEvent : function(e){ + var t = Ext.lib.Event.getTarget(e); + var cindex = this.view.findCellIndex(t); + if(cindex !== false){ + return this.view.getHeaderCell(cindex); + } + }, + + nextVisible : function(h){ + var v = this.view, cm = this.grid.colModel; + h = h.nextSibling; + while(h){ + if(!cm.isHidden(v.getCellIndex(h))){ + return h; + } + h = h.nextSibling; + } + return null; + }, + + prevVisible : function(h){ + var v = this.view, cm = this.grid.colModel; + h = h.prevSibling; + while(h){ + if(!cm.isHidden(v.getCellIndex(h))){ + return h; + } + h = h.prevSibling; + } + return null; + }, + + positionIndicator : function(h, n, e){ + var x = Ext.lib.Event.getPageX(e); + var r = Ext.lib.Dom.getRegion(n.firstChild); + var px, pt, py = r.top + this.proxyOffsets[1]; + if((r.right - x) <= (r.right-r.left)/2){ + px = r.right+this.view.borderWidth; + pt = "after"; + }else{ + px = r.left; + pt = "before"; + } + var oldIndex = this.view.getCellIndex(h); + var newIndex = this.view.getCellIndex(n); + + if(this.grid.colModel.isFixed(newIndex)){ + return false; + } + + var locked = this.grid.colModel.isLocked(newIndex); + + if(pt == "after"){ + newIndex++; + } + if(oldIndex < newIndex){ + newIndex--; + } + if(oldIndex == newIndex && (locked == this.grid.colModel.isLocked(oldIndex))){ + return false; + } + px += this.proxyOffsets[0]; + this.proxyTop.setLeftTop(px, py); + this.proxyTop.show(); + if(!this.bottomOffset){ + this.bottomOffset = this.view.mainHd.getHeight(); + } + this.proxyBottom.setLeftTop(px, py+this.proxyTop.dom.offsetHeight+this.bottomOffset); + this.proxyBottom.show(); + return pt; + }, + + onNodeEnter : function(n, dd, e, data){ + if(data.header != n){ + this.positionIndicator(data.header, n, e); + } + }, + + onNodeOver : function(n, dd, e, data){ + var result = false; + if(data.header != n){ + result = this.positionIndicator(data.header, n, e); + } + if(!result){ + this.proxyTop.hide(); + this.proxyBottom.hide(); + } + return result ? this.dropAllowed : this.dropNotAllowed; + }, + + onNodeOut : function(n, dd, e, data){ + this.proxyTop.hide(); + this.proxyBottom.hide(); + }, + + onNodeDrop : function(n, dd, e, data){ + var h = data.header; + if(h != n){ + var cm = this.grid.colModel; + var x = Ext.lib.Event.getPageX(e); + var r = Ext.lib.Dom.getRegion(n.firstChild); + var pt = (r.right - x) <= ((r.right-r.left)/2) ? "after" : "before"; + var oldIndex = this.view.getCellIndex(h); + var newIndex = this.view.getCellIndex(n); + var locked = cm.isLocked(newIndex); + if(pt == "after"){ + newIndex++; + } + if(oldIndex < newIndex){ + newIndex--; + } + if(oldIndex == newIndex && (locked == cm.isLocked(oldIndex))){ + return false; + } + cm.setLocked(oldIndex, locked, true); + cm.moveColumn(oldIndex, newIndex); + this.grid.fireEvent("columnmove", oldIndex, newIndex); + return true; + } + return false; + } +}); + + +Ext.grid.GridView.ColumnDragZone = function(grid, hd){ + Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this, grid, hd, null); + this.proxy.el.addClass('x-grid3-col-dd'); +}; + +Ext.extend(Ext.grid.GridView.ColumnDragZone, Ext.grid.HeaderDragZone, { + handleMouseDown : function(e){ + + }, + + callHandleMouseDown : function(e){ + Ext.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call(this, e); + } +}); +Ext.grid.SplitDragZone = function(grid, hd, hd2){ + this.grid = grid; + this.view = grid.getView(); + this.proxy = this.view.resizeProxy; + Ext.grid.SplitDragZone.superclass.constructor.call(this, hd, + "gridSplitters" + this.grid.getGridEl().id, { + dragElId : Ext.id(this.proxy.dom), resizeFrame:false + }); + this.setHandleElId(Ext.id(hd)); + this.setOuterHandleElId(Ext.id(hd2)); + this.scroll = false; +}; +Ext.extend(Ext.grid.SplitDragZone, Ext.dd.DDProxy, { + fly: Ext.Element.fly, + + b4StartDrag : function(x, y){ + this.view.headersDisabled = true; + this.proxy.setHeight(this.view.mainWrap.getHeight()); + var w = this.cm.getColumnWidth(this.cellIndex); + var minw = Math.max(w-this.grid.minColumnWidth, 0); + this.resetConstraints(); + this.setXConstraint(minw, 1000); + this.setYConstraint(0, 0); + this.minX = x - minw; + this.maxX = x + 1000; + this.startPos = x; + Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y); + }, + + + handleMouseDown : function(e){ + ev = Ext.EventObject.setEvent(e); + var t = this.fly(ev.getTarget()); + if(t.hasClass("x-grid-split")){ + this.cellIndex = this.view.getCellIndex(t.dom); + this.split = t.dom; + this.cm = this.grid.colModel; + if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){ + Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this, arguments); + } + } + }, + + endDrag : function(e){ + this.view.headersDisabled = false; + var endX = Math.max(this.minX, Ext.lib.Event.getPageX(e)); + var diff = endX - this.startPos; + this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff); + }, + + autoOffset : function(){ + this.setDelta(0,0); + } +}); +Ext.grid.GridDragZone = function(grid, config){ + this.view = grid.getView(); + Ext.grid.GridDragZone.superclass.constructor.call(this, this.view.mainBody.dom, config); + if(this.view.lockedBody){ + this.setHandleElId(Ext.id(this.view.mainBody.dom)); + this.setOuterHandleElId(Ext.id(this.view.lockedBody.dom)); + } + this.scroll = false; + this.grid = grid; + this.ddel = document.createElement('div'); + this.ddel.className = 'x-grid-dd-wrap'; +}; + +Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, { + ddGroup : "GridDD", + + getDragData : function(e){ + var t = Ext.lib.Event.getTarget(e); + var rowIndex = this.view.findRowIndex(t); + if(rowIndex !== false){ + var sm = this.grid.selModel; + if(!sm.isSelected(rowIndex) || e.hasModifier()){ + sm.handleMouseDown(this.grid, rowIndex, e); + } + return {grid: this.grid, ddel: this.ddel, rowIndex: rowIndex, selections:sm.getSelections()}; + } + return false; + }, + + onInitDrag : function(e){ + var data = this.dragData; + this.ddel.innerHTML = this.grid.getDragDropText(); + this.proxy.update(this.ddel); + }, + + afterRepair : function(){ + this.dragging = false; + }, + + getRepairXY : function(e, data){ + return false; + }, + + onEndDrag : function(data, e){ + }, + + onValidDrop : function(dd, e, id){ + this.hideProxy(); + }, + + beforeInvalidDrop : function(e, id){ + + } +}); + + +Ext.grid.ColumnModel = function(config){ + + this.defaultWidth = 100; + + + this.defaultSortable = false; + + + if(config.columns){ + Ext.apply(this, config); + this.setConfig(config.columns, true); + }else{ + this.setConfig(config, true); + } + this.addEvents( + + "widthchange", + + "headerchange", + + "hiddenchange", + + "columnmoved", + "columnlockchange", + + "configchange" + ); + Ext.grid.ColumnModel.superclass.constructor.call(this); +}; +Ext.extend(Ext.grid.ColumnModel, Ext.util.Observable, { + + + + + + + + + + + + + + + + + + getColumnId : function(index){ + return this.config[index].id; + }, + + + setConfig : function(config, initial){ + if(!initial){ delete this.totalWidth; + for(var i = 0, len = this.config.length; i < len; i++){ + var c = this.config[i]; + if(c.editor){ + c.editor.destroy(); + } + } + } + this.config = config; + this.lookup = {}; + for(var i = 0, len = config.length; i < len; i++){ + var c = config[i]; + if(typeof c.renderer == "string"){ + c.renderer = Ext.util.Format[c.renderer]; + } + if(typeof c.id == "undefined"){ + c.id = i; + } + if(c.editor && c.editor.isFormField){ + c.editor = new Ext.grid.GridEditor(c.editor); + } + this.lookup[c.id] = c; + } + if(!initial){ + this.fireEvent('configchange', this); + } + }, + + + getColumnById : function(id){ + return this.lookup[id]; + }, + + + getIndexById : function(id){ + for(var i = 0, len = this.config.length; i < len; i++){ + if(this.config[i].id == id){ + return i; + } + } + return -1; + }, + + moveColumn : function(oldIndex, newIndex){ + var c = this.config[oldIndex]; + this.config.splice(oldIndex, 1); + this.config.splice(newIndex, 0, c); + this.dataMap = null; + this.fireEvent("columnmoved", this, oldIndex, newIndex); + }, + + isLocked : function(colIndex){ + return this.config[colIndex].locked === true; + }, + + setLocked : function(colIndex, value, suppressEvent){ + if(this.isLocked(colIndex) == value){ + return; + } + this.config[colIndex].locked = value; + if(!suppressEvent){ + this.fireEvent("columnlockchange", this, colIndex, value); + } + }, + + getTotalLockedWidth : function(){ + var totalWidth = 0; + for(var i = 0; i < this.config.length; i++){ + if(this.isLocked(i) && !this.isHidden(i)){ + this.totalWidth += this.getColumnWidth(i); + } + } + return totalWidth; + }, + + getLockedCount : function(){ + for(var i = 0, len = this.config.length; i < len; i++){ + if(!this.isLocked(i)){ + return i; + } + } + }, + + + getColumnCount : function(visibleOnly){ + if(visibleOnly === true){ + var c = 0; + for(var i = 0, len = this.config.length; i < len; i++){ + if(!this.isHidden(i)){ + c++; + } + } + return c; + } + return this.config.length; + }, + + + getColumnsBy : function(fn, scope){ + var r = []; + for(var i = 0, len = this.config.length; i < len; i++){ + var c = this.config[i]; + if(fn.call(scope||this, c, i) === true){ + r[r.length] = c; + } + } + return r; + }, + + + isSortable : function(col){ + if(typeof this.config[col].sortable == "undefined"){ + return this.defaultSortable; + } + return this.config[col].sortable; + }, + + + isMenuDisabled : function(col){ + return !!this.config[col].menuDisabled; + }, + + + getRenderer : function(col){ + if(!this.config[col].renderer){ + return Ext.grid.ColumnModel.defaultRenderer; + } + return this.config[col].renderer; + }, + + + setRenderer : function(col, fn){ + this.config[col].renderer = fn; + }, + + + getColumnWidth : function(col){ + return this.config[col].width || this.defaultWidth; + }, + + + setColumnWidth : function(col, width, suppressEvent){ + this.config[col].width = width; + this.totalWidth = null; + if(!suppressEvent){ + this.fireEvent("widthchange", this, col, width); + } + }, + + + getTotalWidth : function(includeHidden){ + if(!this.totalWidth){ + this.totalWidth = 0; + for(var i = 0, len = this.config.length; i < len; i++){ + if(includeHidden || !this.isHidden(i)){ + this.totalWidth += this.getColumnWidth(i); + } + } + } + return this.totalWidth; + }, + + + getColumnHeader : function(col){ + return this.config[col].header; + }, + + + setColumnHeader : function(col, header){ + this.config[col].header = header; + this.fireEvent("headerchange", this, col, header); + }, + + + getColumnTooltip : function(col){ + return this.config[col].tooltip; + }, + + setColumnTooltip : function(col, tooltip){ + this.config[col].tooltip = tooltip; + }, + + + getDataIndex : function(col){ + return this.config[col].dataIndex; + }, + + + setDataIndex : function(col, dataIndex){ + this.config[col].dataIndex = dataIndex; + }, + + + findColumnIndex : function(dataIndex){ + var c = this.config; + for(var i = 0, len = c.length; i < len; i++){ + if(c[i].dataIndex == dataIndex){ + return i; + } + } + return -1; + }, + + + isCellEditable : function(colIndex, rowIndex){ + return (this.config[colIndex].editable || (typeof this.config[colIndex].editable == "undefined" && this.config[colIndex].editor)) ? true : false; + }, + + + getCellEditor : function(colIndex, rowIndex){ + return this.config[colIndex].editor; + }, + + + setEditable : function(col, editable){ + this.config[col].editable = editable; + }, + + + + isHidden : function(colIndex){ + return this.config[colIndex].hidden; + }, + + + + isFixed : function(colIndex){ + return this.config[colIndex].fixed; + }, + + + isResizable : function(colIndex){ + return colIndex >= 0 && this.config[colIndex].resizable !== false && this.config[colIndex].fixed !== true; + }, + + setHidden : function(colIndex, hidden){ + var c = this.config[colIndex]; + if(c.hidden !== hidden){ + c.hidden = hidden; + this.totalWidth = null; + this.fireEvent("hiddenchange", this, colIndex, hidden); + } + }, + + + setEditor : function(col, editor){ + this.config[col].editor = editor; + } +}); + +Ext.grid.ColumnModel.defaultRenderer = function(value){ + if(typeof value == "string" && value.length < 1){ + return " "; + } + return value; +}; + +Ext.grid.DefaultColumnModel = Ext.grid.ColumnModel; + + +Ext.grid.AbstractSelectionModel = function(){ + this.locked = false; + Ext.grid.AbstractSelectionModel.superclass.constructor.call(this); +}; + +Ext.extend(Ext.grid.AbstractSelectionModel, Ext.util.Observable, { + + init : function(grid){ + this.grid = grid; + this.initEvents(); + }, + + + lock : function(){ + this.locked = true; + }, + + + unlock : function(){ + this.locked = false; + }, + + + isLocked : function(){ + return this.locked; + } +}); + +Ext.grid.RowSelectionModel = function(config){ + Ext.apply(this, config); + this.selections = new Ext.util.MixedCollection(false, function(o){ + return o.id; + }); + + this.last = false; + this.lastActive = false; + + this.addEvents( + + "selectionchange", + + "beforerowselect", + + "rowselect", + + "rowdeselect" + ); + + Ext.grid.RowSelectionModel.superclass.constructor.call(this); +}; + +Ext.extend(Ext.grid.RowSelectionModel, Ext.grid.AbstractSelectionModel, { + + singleSelect : false, + + + initEvents : function(){ + + if(!this.grid.enableDragDrop && !this.grid.enableDrag){ + this.grid.on("rowmousedown", this.handleMouseDown, this); + }else{ this.grid.on("rowclick", function(grid, rowIndex, e) { + if(e.button === 0 && !e.shiftKey && !e.ctrlKey) { + this.selectRow(rowIndex, false); + grid.view.focusRow(rowIndex); + } + }, this); + } + + this.rowNav = new Ext.KeyNav(this.grid.getGridEl(), { + "up" : function(e){ + if(!e.shiftKey){ + this.selectPrevious(e.shiftKey); + }else if(this.last !== false && this.lastActive !== false){ + var last = this.last; + this.selectRange(this.last, this.lastActive-1); + this.grid.getView().focusRow(this.lastActive); + if(last !== false){ + this.last = last; + } + }else{ + this.selectFirstRow(); + } + }, + "down" : function(e){ + if(!e.shiftKey){ + this.selectNext(e.shiftKey); + }else if(this.last !== false && this.lastActive !== false){ + var last = this.last; + this.selectRange(this.last, this.lastActive+1); + this.grid.getView().focusRow(this.lastActive); + if(last !== false){ + this.last = last; + } + }else{ + this.selectFirstRow(); + } + }, + scope: this + }); + + var view = this.grid.view; + view.on("refresh", this.onRefresh, this); + view.on("rowupdated", this.onRowUpdated, this); + view.on("rowremoved", this.onRemove, this); + }, + + onRefresh : function(){ + var ds = this.grid.store, index; + var s = this.getSelections(); + this.clearSelections(true); + for(var i = 0, len = s.length; i < len; i++){ + var r = s[i]; + if((index = ds.indexOfId(r.id)) != -1){ + this.selectRow(index, true); + } + } + if(s.length != this.selections.getCount()){ + this.fireEvent("selectionchange", this); + } + }, + + onRemove : function(v, index, r){ + if(this.selections.remove(r) !== false){ + this.fireEvent('selectionchange', this); + } + }, + + onRowUpdated : function(v, index, r){ + if(this.isSelected(r)){ + v.onRowSelect(index); + } + }, + + + selectRecords : function(records, keepExisting){ + if(!keepExisting){ + this.clearSelections(); + } + var ds = this.grid.store; + for(var i = 0, len = records.length; i < len; i++){ + this.selectRow(ds.indexOf(records[i]), true); + } + }, + + + getCount : function(){ + return this.selections.length; + }, + + + selectFirstRow : function(){ + this.selectRow(0); + }, + + + selectLastRow : function(keepExisting){ + this.selectRow(this.grid.store.getCount() - 1, keepExisting); + }, + + + selectNext : function(keepExisting){ + if(this.hasNext()){ + this.selectRow(this.last+1, keepExisting); + this.grid.getView().focusRow(this.last); + return true; + } + return false; + }, + + + selectPrevious : function(keepExisting){ + if(this.hasPrevious()){ + this.selectRow(this.last-1, keepExisting); + this.grid.getView().focusRow(this.last); + return true; + } + return false; + }, + + + hasNext : function(){ + return this.last !== false && (this.last+1) < this.grid.store.getCount(); + }, + + + hasPrevious : function(){ + return !!this.last; + }, + + + + getSelections : function(){ + return [].concat(this.selections.items); + }, + + + getSelected : function(){ + return this.selections.itemAt(0); + }, + + + each : function(fn, scope){ + var s = this.getSelections(); + for(var i = 0, len = s.length; i < len; i++){ + if(fn.call(scope || this, s[i], i) === false){ + return false; + } + } + return true; + }, + + + clearSelections : function(fast){ + if(this.locked) return; + if(fast !== true){ + var ds = this.grid.store; + var s = this.selections; + s.each(function(r){ + this.deselectRow(ds.indexOfId(r.id)); + }, this); + s.clear(); + }else{ + this.selections.clear(); + } + this.last = false; + }, + + + + selectAll : function(){ + if(this.locked) return; + this.selections.clear(); + for(var i = 0, len = this.grid.store.getCount(); i < len; i++){ + this.selectRow(i, true); + } + }, + + + hasSelection : function(){ + return this.selections.length > 0; + }, + + + isSelected : function(index){ + var r = typeof index == "number" ? this.grid.store.getAt(index) : index; + return (r && this.selections.key(r.id) ? true : false); + }, + + + isIdSelected : function(id){ + return (this.selections.key(id) ? true : false); + }, + + handleMouseDown : function(g, rowIndex, e){ + if(e.button !== 0 || this.isLocked()){ + return; + }; + var view = this.grid.getView(); + if(e.shiftKey && this.last !== false){ + var last = this.last; + this.selectRange(last, rowIndex, e.ctrlKey); + this.last = last; view.focusRow(rowIndex); + }else{ + var isSelected = this.isSelected(rowIndex); + if(e.ctrlKey && isSelected){ + this.deselectRow(rowIndex); + }else if(!isSelected || this.getCount() > 1){ + this.selectRow(rowIndex, e.ctrlKey || e.shiftKey); + view.focusRow(rowIndex); + } + } + }, + + + selectRows : function(rows, keepExisting){ + if(!keepExisting){ + this.clearSelections(); + } + for(var i = 0, len = rows.length; i < len; i++){ + this.selectRow(rows[i], true); + } + }, + + + selectRange : function(startRow, endRow, keepExisting){ + if(this.locked) return; + if(!keepExisting){ + this.clearSelections(); + } + if(startRow <= endRow){ + for(var i = startRow; i <= endRow; i++){ + this.selectRow(i, true); + } + }else{ + for(var i = startRow; i >= endRow; i--){ + this.selectRow(i, true); + } + } + }, + + + deselectRange : function(startRow, endRow, preventViewNotify){ + if(this.locked) return; + for(var i = startRow; i <= endRow; i++){ + this.deselectRow(i, preventViewNotify); + } + }, + + + selectRow : function(index, keepExisting, preventViewNotify){ + if(this.locked || (index < 0 || index >= this.grid.store.getCount())) return; + var r = this.grid.store.getAt(index); + if(r && this.fireEvent("beforerowselect", this, index, keepExisting, r) !== false){ + if(!keepExisting || this.singleSelect){ + this.clearSelections(); + } + this.selections.add(r); + this.last = this.lastActive = index; + if(!preventViewNotify){ + this.grid.getView().onRowSelect(index); + } + this.fireEvent("rowselect", this, index, r); + this.fireEvent("selectionchange", this); + } + }, + + + deselectRow : function(index, preventViewNotify){ + if(this.locked) return; + if(this.last == index){ + this.last = false; + } + if(this.lastActive == index){ + this.lastActive = false; + } + var r = this.grid.store.getAt(index); + if(r){ + this.selections.remove(r); + if(!preventViewNotify){ + this.grid.getView().onRowDeselect(index); + } + this.fireEvent("rowdeselect", this, index, r); + this.fireEvent("selectionchange", this); + } + }, + + restoreLast : function(){ + if(this._last){ + this.last = this._last; + } + }, + + acceptsNav : function(row, col, cm){ + return !cm.isHidden(col) && cm.isCellEditable(col, row); + }, + + onEditorKey : function(field, e){ + var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor; + var shift = e.shiftKey; + if(k == e.TAB){ + e.stopEvent(); + ed.completeEdit(); + if(shift){ + newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this); + }else{ + newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this); + } + }else if(k == e.ENTER){ + e.stopEvent(); + ed.completeEdit(); + if(this.moveEditorOnEnter !== false){ + if(shift){ + newCell = g.walkCells(ed.row - 1, ed.col, -1, this.acceptsNav, this); + }else{ + newCell = g.walkCells(ed.row + 1, ed.col, 1, this.acceptsNav, this); + } + } + }else if(k == e.ESC){ + ed.cancelEdit(); + } + if(newCell){ + g.startEditing(newCell[0], newCell[1]); + } + } +}); + +Ext.grid.CellSelectionModel = function(config){ + Ext.apply(this, config); + + this.selection = null; + + this.addEvents( + + "beforecellselect", + + "cellselect", + + "selectionchange" + ); + + Ext.grid.CellSelectionModel.superclass.constructor.call(this); +}; + +Ext.extend(Ext.grid.CellSelectionModel, Ext.grid.AbstractSelectionModel, { + + + initEvents : function(){ + this.grid.on("cellmousedown", this.handleMouseDown, this); + this.grid.getGridEl().on(Ext.isIE || Ext.isSafari3 ? "keydown" : "keypress", this.handleKeyDown, this); + var view = this.grid.view; + view.on("refresh", this.onViewChange, this); + view.on("rowupdated", this.onRowUpdated, this); + view.on("beforerowremoved", this.clearSelections, this); + view.on("beforerowsinserted", this.clearSelections, this); + if(this.grid.isEditor){ + this.grid.on("beforeedit", this.beforeEdit, this); + } + }, + + beforeEdit : function(e){ + this.select(e.row, e.column, false, true, e.record); + }, + + onRowUpdated : function(v, index, r){ + if(this.selection && this.selection.record == r){ + v.onCellSelect(index, this.selection.cell[1]); + } + }, + + onViewChange : function(){ + this.clearSelections(true); + }, + + + getSelectedCell : function(){ + return this.selection ? this.selection.cell : null; + }, + + + clearSelections : function(preventNotify){ + var s = this.selection; + if(s){ + if(preventNotify !== true){ + this.grid.view.onCellDeselect(s.cell[0], s.cell[1]); + } + this.selection = null; + this.fireEvent("selectionchange", this, null); + } + }, + + + hasSelection : function(){ + return this.selection ? true : false; + }, + + + handleMouseDown : function(g, row, cell, e){ + if(e.button !== 0 || this.isLocked()){ + return; + }; + this.select(row, cell); + }, + + + select : function(rowIndex, colIndex, preventViewNotify, preventFocus, r){ + if(this.fireEvent("beforecellselect", this, rowIndex, colIndex) !== false){ + this.clearSelections(); + r = r || this.grid.store.getAt(rowIndex); + this.selection = { + record : r, + cell : [rowIndex, colIndex] + }; + if(!preventViewNotify){ + var v = this.grid.getView(); + v.onCellSelect(rowIndex, colIndex); + if(preventFocus !== true){ + v.focusCell(rowIndex, colIndex); + } + } + this.fireEvent("cellselect", this, rowIndex, colIndex); + this.fireEvent("selectionchange", this, this.selection); + } + }, + + isSelectable : function(rowIndex, colIndex, cm){ + return !cm.isHidden(colIndex); + }, + + + handleKeyDown : function(e){ + if(!e.isNavKeyPress()){ + return; + } + var g = this.grid, s = this.selection; + if(!s){ + e.stopEvent(); + var cell = g.walkCells(0, 0, 1, this.isSelectable, this); + if(cell){ + this.select(cell[0], cell[1]); + } + return; + } + var sm = this; + var walk = function(row, col, step){ + return g.walkCells(row, col, step, sm.isSelectable, sm); + }; + var k = e.getKey(), r = s.cell[0], c = s.cell[1]; + var newCell; + + switch(k){ + case e.TAB: + if(e.shiftKey){ + newCell = walk(r, c-1, -1); + }else{ + newCell = walk(r, c+1, 1); + } + break; + case e.DOWN: + newCell = walk(r+1, c, 1); + break; + case e.UP: + newCell = walk(r-1, c, -1); + break; + case e.RIGHT: + newCell = walk(r, c+1, 1); + break; + case e.LEFT: + newCell = walk(r, c-1, -1); + break; + case e.ENTER: + if(g.isEditor && !g.editing){ + g.startEditing(r, c); + e.stopEvent(); + return; + } + break; + }; + if(newCell){ + this.select(newCell[0], newCell[1]); + e.stopEvent(); + } + }, + + acceptsNav : function(row, col, cm){ + return !cm.isHidden(col) && cm.isCellEditable(col, row); + }, + + onEditorKey : function(field, e){ + var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor; + if(k == e.TAB){ + if(e.shiftKey){ + newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this); + }else{ + newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this); + } + e.stopEvent(); + }else if(k == e.ENTER){ + ed.completeEdit(); + e.stopEvent(); + }else if(k == e.ESC){ + e.stopEvent(); + ed.cancelEdit(); + } + if(newCell){ + g.startEditing(newCell[0], newCell[1]); + } + } +}); + +Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, { + + clicksToEdit: 2, + + isEditor : true, + detectEdit: false, + + + autoEncode : false, + + + trackMouseOver: false, + initComponent : function(){ + Ext.grid.EditorGridPanel.superclass.initComponent.call(this); + + if(!this.selModel){ + + this.selModel = new Ext.grid.CellSelectionModel(); + } + + this.activeEditor = null; + + this.addEvents( + + "beforeedit", + + "afteredit", + + "validateedit" + ); + }, + + initEvents : function(){ + Ext.grid.EditorGridPanel.superclass.initEvents.call(this); + + this.on("bodyscroll", this.stopEditing, this, [true]); + + if(this.clicksToEdit == 1){ + this.on("cellclick", this.onCellDblClick, this); + }else { + if(this.clicksToEdit == 'auto' && this.view.mainBody){ + this.view.mainBody.on("mousedown", this.onAutoEditClick, this); + } + this.on("celldblclick", this.onCellDblClick, this); + } + this.getGridEl().addClass("xedit-grid"); + }, + + onCellDblClick : function(g, row, col){ + this.startEditing(row, col); + }, + + onAutoEditClick : function(e, t){ + if(e.button !== 0){ + return; + } + var row = this.view.findRowIndex(t); + var col = this.view.findCellIndex(t); + if(row !== false && col !== false){ + this.stopEditing(); + if(this.selModel.getSelectedCell){ var sc = this.selModel.getSelectedCell(); + if(sc && sc.cell[0] === row && sc.cell[1] === col){ + this.startEditing(row, col); + } + }else{ + if(this.selModel.isSelected(row)){ + this.startEditing(row, col); + } + } + } + }, + + onEditComplete : function(ed, value, startValue){ + this.editing = false; + this.activeEditor = null; + ed.un("specialkey", this.selModel.onEditorKey, this.selModel); + var r = ed.record; + var field = this.colModel.getDataIndex(ed.col); + value = this.postEditValue(value, startValue, r, field); + if(String(value) !== String(startValue)){ + var e = { + grid: this, + record: r, + field: field, + originalValue: startValue, + value: value, + row: ed.row, + column: ed.col, + cancel:false + }; + if(this.fireEvent("validateedit", e) !== false && !e.cancel){ + r.set(field, e.value); + delete e.cancel; + this.fireEvent("afteredit", e); + } + } + this.view.focusCell(ed.row, ed.col); + }, + + + startEditing : function(row, col){ + this.stopEditing(); + if(this.colModel.isCellEditable(col, row)){ + this.view.ensureVisible(row, col, true); + var r = this.store.getAt(row); + var field = this.colModel.getDataIndex(col); + var e = { + grid: this, + record: r, + field: field, + value: r.data[field], + row: row, + column: col, + cancel:false + }; + if(this.fireEvent("beforeedit", e) !== false && !e.cancel){ + this.editing = true; + var ed = this.colModel.getCellEditor(col, row); + if(!ed.rendered){ + ed.render(this.view.getEditorParent(ed)); + } + (function(){ ed.row = row; + ed.col = col; + ed.record = r; + ed.on("complete", this.onEditComplete, this, {single: true}); + ed.on("specialkey", this.selModel.onEditorKey, this.selModel); + this.activeEditor = ed; + var v = this.preEditValue(r, field); + ed.startEdit(this.view.getCell(row, col), v); + }).defer(50, this); + } + } + }, + + preEditValue : function(r, field){ + return this.autoEncode && typeof value == 'string' ? Ext.util.Format.htmlDecode(r.data[field]) : r.data[field]; + }, + + postEditValue : function(value, originalValue, r, field){ + return this.autoEncode && typeof value == 'string' ? Ext.util.Format.htmlEncode(value) : value; + }, + + + stopEditing : function(cancel){ + if(this.activeEditor){ + this.activeEditor[cancel === true ? 'cancelEdit' : 'completeEdit'](); + } + this.activeEditor = null; + } +}); +Ext.reg('editorgrid', Ext.grid.EditorGridPanel); +Ext.grid.GridEditor = function(field, config){ + Ext.grid.GridEditor.superclass.constructor.call(this, field, config); + field.monitorTab = false; +}; + +Ext.extend(Ext.grid.GridEditor, Ext.Editor, { + alignment: "tl-tl", + autoSize: "width", + hideEl : false, + cls: "x-small-editor x-grid-editor", + shim:false, + shadow:false +}); + +Ext.grid.PropertyRecord = Ext.data.Record.create([ + {name:'name',type:'string'}, 'value' +]); + + +Ext.grid.PropertyStore = function(grid, source){ + this.grid = grid; + this.store = new Ext.data.Store({ + recordType : Ext.grid.PropertyRecord + }); + this.store.on('update', this.onUpdate, this); + if(source){ + this.setSource(source); + } + Ext.grid.PropertyStore.superclass.constructor.call(this); +}; +Ext.extend(Ext.grid.PropertyStore, Ext.util.Observable, { + setSource : function(o){ + this.source = o; + this.store.removeAll(); + var data = []; + for(var k in o){ + if(this.isEditableValue(o[k])){ + data.push(new Ext.grid.PropertyRecord({name: k, value: o[k]}, k)); + } + } + this.store.loadRecords({records: data}, {}, true); + }, + + onUpdate : function(ds, record, type){ + if(type == Ext.data.Record.EDIT){ + var v = record.data['value']; + var oldValue = record.modified['value']; + if(this.grid.fireEvent('beforepropertychange', this.source, record.id, v, oldValue) !== false){ + this.source[record.id] = v; + record.commit(); + this.grid.fireEvent('propertychange', this.source, record.id, v, oldValue); + }else{ + record.reject(); + } + } + }, + + getProperty : function(row){ + return this.store.getAt(row); + }, + + isEditableValue: function(val){ + if(Ext.isDate(val)){ + return true; + }else if(typeof val == 'object' || typeof val == 'function'){ + return false; + } + return true; + }, + + setValue : function(prop, value){ + this.source[prop] = value; + this.store.getById(prop).set('value', value); + }, + + getSource : function(){ + return this.source; + } +}); + + +Ext.grid.PropertyColumnModel = function(grid, store){ + this.grid = grid; + var g = Ext.grid; + g.PropertyColumnModel.superclass.constructor.call(this, [ + {header: this.nameText, width:50, sortable: true, dataIndex:'name', id: 'name', menuDisabled:true}, + {header: this.valueText, width:50, resizable:false, dataIndex: 'value', id: 'value', menuDisabled:true} + ]); + this.store = store; + this.bselect = Ext.DomHelper.append(document.body, { + tag: 'select', cls: 'x-grid-editor x-hide-display', children: [ + {tag: 'option', value: 'true', html: 'true'}, + {tag: 'option', value: 'false', html: 'false'} + ] + }); + var f = Ext.form; + + var bfield = new f.Field({ + el:this.bselect, + bselect : this.bselect, + autoShow: true, + getValue : function(){ + return this.bselect.value == 'true'; + } + }); + this.editors = { + 'date' : new g.GridEditor(new f.DateField({selectOnFocus:true})), + 'string' : new g.GridEditor(new f.TextField({selectOnFocus:true})), + 'number' : new g.GridEditor(new f.NumberField({selectOnFocus:true, style:'text-align:left;'})), + 'boolean' : new g.GridEditor(bfield) + }; + this.renderCellDelegate = this.renderCell.createDelegate(this); + this.renderPropDelegate = this.renderProp.createDelegate(this); +}; + +Ext.extend(Ext.grid.PropertyColumnModel, Ext.grid.ColumnModel, { + nameText : 'Name', + valueText : 'Value', + dateFormat : 'm/j/Y', + + renderDate : function(dateVal){ + return dateVal.dateFormat(this.dateFormat); + }, + + renderBool : function(bVal){ + return bVal ? 'true' : 'false'; + }, + + isCellEditable : function(colIndex, rowIndex){ + return colIndex == 1; + }, + + getRenderer : function(col){ + return col == 1 ? + this.renderCellDelegate : this.renderPropDelegate; + }, + + renderProp : function(v){ + return this.getPropertyName(v); + }, + + renderCell : function(val){ + var rv = val; + if(Ext.isDate(val)){ + rv = this.renderDate(val); + }else if(typeof val == 'boolean'){ + rv = this.renderBool(val); + } + return Ext.util.Format.htmlEncode(rv); + }, + + getPropertyName : function(name){ + var pn = this.grid.propertyNames; + return pn && pn[name] ? pn[name] : name; + }, + + getCellEditor : function(colIndex, rowIndex){ + var p = this.store.getProperty(rowIndex); + var n = p.data['name'], val = p.data['value']; + if(this.grid.customEditors[n]){ + return this.grid.customEditors[n]; + } + if(Ext.isDate(val)){ + return this.editors['date']; + }else if(typeof val == 'number'){ + return this.editors['number']; + }else if(typeof val == 'boolean'){ + return this.editors['boolean']; + }else{ + return this.editors['string']; + } + } +}); + + +Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, { + + + + enableColumnMove:false, + stripeRows:false, + trackMouseOver: false, + clicksToEdit:1, + enableHdMenu : false, + viewConfig : { + forceFit:true + }, + + initComponent : function(){ + this.customEditors = this.customEditors || {}; + this.lastEditRow = null; + var store = new Ext.grid.PropertyStore(this); + this.propStore = store; + var cm = new Ext.grid.PropertyColumnModel(this, store); + store.store.sort('name', 'ASC'); + this.addEvents( + + 'beforepropertychange', + + 'propertychange' + ); + this.cm = cm; + this.ds = store.store; + Ext.grid.PropertyGrid.superclass.initComponent.call(this); + + this.selModel.on('beforecellselect', function(sm, rowIndex, colIndex){ + if(colIndex === 0){ + this.startEditing.defer(200, this, [rowIndex, 1]); + return false; + } + }, this); + }, + + onRender : function(){ + Ext.grid.PropertyGrid.superclass.onRender.apply(this, arguments); + + this.getGridEl().addClass('x-props-grid'); + }, + + afterRender: function(){ + Ext.grid.PropertyGrid.superclass.afterRender.apply(this, arguments); + if(this.source){ + this.setSource(this.source); + } + }, + + + setSource : function(source){ + this.propStore.setSource(source); + }, + + + getSource : function(){ + return this.propStore.getSource(); + } +}); +Ext.reg("propertygrid", Ext.grid.PropertyGrid); + + +Ext.grid.RowNumberer = function(config){ + Ext.apply(this, config); + if(this.rowspan){ + this.renderer = this.renderer.createDelegate(this); + } +}; + +Ext.grid.RowNumberer.prototype = { + + header: "", + + width: 23, + + sortable: false, + + + fixed:true, + menuDisabled:true, + dataIndex: '', + id: 'numberer', + rowspan: undefined, + + + renderer : function(v, p, record, rowIndex){ + if(this.rowspan){ + p.cellAttr = 'rowspan="'+this.rowspan+'"'; + } + return rowIndex+1; + } +}; + +Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { + + header: '
     
    ', + + width: 20, + + sortable: false, + + + menuDisabled:true, + fixed:true, + dataIndex: '', + id: 'checker', + + + initEvents : function(){ + Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this); + this.grid.on('render', function(){ + var view = this.grid.getView(); + view.mainBody.on('mousedown', this.onMouseDown, this); + Ext.fly(view.innerHd).on('mousedown', this.onHdMouseDown, this); + + }, this); + }, + + + onMouseDown : function(e, t){ + if(e.button === 0 && t.className == 'x-grid3-row-checker'){ + e.stopEvent(); + var row = e.getTarget('.x-grid3-row'); + if(row){ + var index = row.rowIndex; + if(this.isSelected(index)){ + this.deselectRow(index); + }else{ + this.selectRow(index, true); + } + } + } + }, + + + onHdMouseDown : function(e, t){ + if(t.className == 'x-grid3-hd-checker'){ + e.stopEvent(); + var hd = Ext.fly(t.parentNode); + var isChecked = hd.hasClass('x-grid3-hd-checker-on'); + if(isChecked){ + hd.removeClass('x-grid3-hd-checker-on'); + this.clearSelections(); + }else{ + hd.addClass('x-grid3-hd-checker-on'); + this.selectAll(); + } + } + }, + + + renderer : function(v, p, record){ + return '
     
    '; + } +}); + +Ext.LoadMask = function(el, config){ + this.el = Ext.get(el); + Ext.apply(this, config); + if(this.store){ + this.store.on('beforeload', this.onBeforeLoad, this); + this.store.on('load', this.onLoad, this); + this.store.on('loadexception', this.onLoad, this); + this.removeMask = Ext.value(this.removeMask, false); + }else{ + var um = this.el.getUpdater(); + um.showLoadIndicator = false; um.on('beforeupdate', this.onBeforeLoad, this); + um.on('update', this.onLoad, this); + um.on('failure', this.onLoad, this); + this.removeMask = Ext.value(this.removeMask, true); + } +}; + +Ext.LoadMask.prototype = { + + + + msg : 'Loading...', + + msgCls : 'x-mask-loading', + + + disabled: false, + + + disable : function(){ + this.disabled = true; + }, + + + enable : function(){ + this.disabled = false; + }, + + onLoad : function(){ + this.el.unmask(this.removeMask); + }, + + onBeforeLoad : function(){ + if(!this.disabled){ + this.el.mask(this.msg, this.msgCls); + } + }, + + + show: function(){ + this.onBeforeLoad(); + }, + + + hide: function(){ + this.onLoad(); + }, + + destroy : function(){ + if(this.store){ + this.store.un('beforeload', this.onBeforeLoad, this); + this.store.un('load', this.onLoad, this); + this.store.un('loadexception', this.onLoad, this); + }else{ + var um = this.el.getUpdater(); + um.un('beforeupdate', this.onBeforeLoad, this); + um.un('update', this.onLoad, this); + um.un('failure', this.onLoad, this); + } + } +}; + +Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { + + baseCls : 'x-progress', + + + waitTimer : null, + + + initComponent : function(){ + Ext.ProgressBar.superclass.initComponent.call(this); + this.addEvents( + + "update" + ); + }, + + + onRender : function(ct, position){ + Ext.ProgressBar.superclass.onRender.call(this, ct, position); + + var tpl = new Ext.Template( + '
    ', + '
    ', + '
    ', + '
    ', + '
     
    ', + '
    ', + '
    ', + '
    ', + '
     
    ', + '
    ', + '
    ', + '
    ' + ); + + if(position){ + this.el = tpl.insertBefore(position, {cls: this.baseCls}, true); + }else{ + this.el = tpl.append(ct, {cls: this.baseCls}, true); + } + if(this.id){ + this.el.dom.id = this.id; + } + var inner = this.el.dom.firstChild; + this.progressBar = Ext.get(inner.firstChild); + + if(this.textEl){ + + this.textEl = Ext.get(this.textEl); + delete this.textTopEl; + }else{ + + this.textTopEl = Ext.get(this.progressBar.dom.firstChild); + var textBackEl = Ext.get(inner.childNodes[1]); + this.textTopEl.setStyle("z-index", 99).addClass('x-hidden'); + this.textEl = new Ext.CompositeElement([this.textTopEl.dom.firstChild, textBackEl.dom.firstChild]); + this.textEl.setWidth(inner.offsetWidth); + } + this.progressBar.setHeight(inner.offsetHeight); + }, + + + afterRender : function(){ + Ext.ProgressBar.superclass.afterRender.call(this); + if(this.value){ + this.updateProgress(this.value, this.text); + }else{ + this.updateText(this.text); + } + }, + + + updateProgress : function(value, text){ + this.value = value || 0; + if(text){ + this.updateText(text); + } + var w = Math.floor(value*this.el.dom.firstChild.offsetWidth); + this.progressBar.setWidth(w); + if(this.textTopEl){ + + this.textTopEl.removeClass('x-hidden').setWidth(w); + } + this.fireEvent('update', this, value, text); + return this; + }, + + + wait : function(o){ + if(!this.waitTimer){ + var scope = this; + o = o || {}; + this.waitTimer = Ext.TaskMgr.start({ + run: function(i){ + var inc = o.increment || 10; + this.updateProgress(((((i+inc)%inc)+1)*(100/inc))*.01); + }, + interval: o.interval || 1000, + duration: o.duration, + onStop: function(){ + if(o.fn){ + o.fn.apply(o.scope || this); + } + this.reset(); + }, + scope: scope + }); + } + return this; + }, + + + isWaiting : function(){ + return this.waitTimer != null; + }, + + + updateText : function(text){ + this.text = text || ' '; + this.textEl.update(this.text); + return this; + }, + + + setSize : function(w, h){ + Ext.ProgressBar.superclass.setSize.call(this, w, h); + if(this.textTopEl){ + var inner = this.el.dom.firstChild; + this.textEl.setSize(inner.offsetWidth, inner.offsetHeight); + } + return this; + }, + + + reset : function(hide){ + this.updateProgress(0); + if(this.textTopEl){ + this.textTopEl.addClass('x-hidden'); + } + if(this.waitTimer){ + this.waitTimer.onStop = null; + Ext.TaskMgr.stop(this.waitTimer); + this.waitTimer = null; + } + if(hide === true){ + this.hide(); + } + return this; + } +}); +Ext.reg('progress', Ext.ProgressBar); + +Ext.Slider = Ext.extend(Ext.BoxComponent, { + + + vertical: false, + + minValue: 0, + + maxValue: 100, + + keyIncrement: 1, + + increment: 0, + + clickRange: [5,15], + + clickToChange : true, + + animate: true, + + + initComponent : function(){ + if(this.value === undefined){ + this.value = this.minValue; + } + Ext.Slider.superclass.initComponent.call(this); + this.keyIncrement = Math.max(this.increment, this.keyIncrement); + this.addEvents( + + 'beforechange', + + 'change', + + 'dragstart', + + 'drag', + + 'dragend' + ); + + if(this.vertical){ + Ext.apply(this, Ext.Slider.Vertical); + } + }, + + + onRender : function(){ + this.autoEl = { + cls: 'x-slider ' + (this.vertical ? 'x-slider-vert' : 'x-slider-horz'), + cn:{cls:'x-slider-end',cn:{cls:'x-slider-inner',cn:[{cls:'x-slider-thumb'},{tag:'a', cls:'x-slider-focus', href:"#", tabIndex: '-1', hidefocus:'on'}]}} + }; + Ext.Slider.superclass.onRender.apply(this, arguments); + this.endEl = this.el.first(); + this.innerEl = this.endEl.first(); + this.thumb = this.innerEl.first(); + this.halfThumb = (this.vertical ? this.thumb.getHeight() : this.thumb.getWidth())/2; + this.focusEl = this.thumb.next(); + this.initEvents(); + }, + + + initEvents : function(){ + this.thumb.addClassOnOver('x-slider-thumb-over'); + this.mon(this.el, 'mousedown', this.onMouseDown, this); + this.mon(this.el, 'keydown', this.onKeyDown, this); + + this.tracker = new Ext.dd.DragTracker({ + onBeforeStart: this.onBeforeDragStart.createDelegate(this), + onStart: this.onDragStart.createDelegate(this), + onDrag: this.onDrag.createDelegate(this), + onEnd: this.onDragEnd.createDelegate(this), + tolerance: 3, + autoStart: 300 + }); + this.tracker.initEl(this.thumb); + this.on('beforedestroy', this.tracker.destroy, this.tracker); + }, + + + onMouseDown : function(e){ + if(this.disabled) {return;} + if(this.clickToChange && e.target != this.thumb.dom){ + var local = this.innerEl.translatePoints(e.getXY()); + this.onClickChange(local); + } + this.focus(); + }, + + + onClickChange : function(local){ + if(local.top > this.clickRange[0] && local.top < this.clickRange[1]){ + this.setValue(Math.round(local.left/this.getRatio())); + } + }, + + + onKeyDown : function(e){ + if(this.disabled){e.preventDefault();return;} + var k = e.getKey(); + switch(k){ + case e.UP: + case e.RIGHT: + e.stopEvent(); + if(e.ctrlKey){ + this.setValue(this.maxValue); + }else{ + this.setValue(this.value+this.keyIncrement); + } + break; + case e.DOWN: + case e.LEFT: + e.stopEvent(); + if(e.ctrlKey){ + this.setValue(this.minValue); + }else{ + this.setValue(this.value-this.keyIncrement); + } + break; + default: + e.preventDefault(); + } + }, + + + doSnap : function(value){ + if(!this.increment || this.increment == 1 || !value) { + return value; + } + var newValue = value, inc = this.increment; + var m = value % inc; + if(m > 0){ + if(m > (inc/2)){ + newValue = value + (inc-m); + }else{ + newValue = value - m; + } + } + return newValue.constrain(this.minValue, this.maxValue); + }, + + + afterRender : function(){ + Ext.Slider.superclass.afterRender.apply(this, arguments); + if(this.value !== undefined){ + var v = this.normalizeValue(this.value); + if(v !== this.value){ + delete this.value; + this.setValue(v, false); + }else{ + this.moveThumb(this.translateValue(v), false); + } + } + }, + + + getRatio : function(){ + var w = this.innerEl.getWidth(); + var v = this.maxValue - this.minValue; + return w/v; + }, + + + normalizeValue : function(v){ + if(typeof v != 'number'){ + v = parseInt(v); + } + v = Math.round(v); + v = this.doSnap(v); + v = v.constrain(this.minValue, this.maxValue); + return v; + }, + + + setValue : function(v, animate){ + v = this.normalizeValue(v); + if(v !== this.value && this.fireEvent('beforechange', this, v, this.value) !== false){ + this.value = v; + this.moveThumb(this.translateValue(v), animate !== false); + this.fireEvent('change', this, v); + } + }, + + + translateValue : function(v){ + return (v * this.getRatio())-this.halfThumb; + }, + + + moveThumb: function(v, animate){ + if(!animate || this.animate === false){ + this.thumb.setLeft(v); + }else{ + this.thumb.shift({left: v, stopFx: true, duration:.35}); + } + }, + + + focus : function(){ + this.focusEl.focus(10); + }, + + + onBeforeDragStart : function(e){ + return !this.disabled; + }, + + + onDragStart: function(e){ + this.thumb.addClass('x-slider-thumb-drag'); + this.fireEvent('dragstart', this, e); + }, + + + onDrag: function(e){ + var pos = this.innerEl.translatePoints(this.tracker.getXY()); + this.setValue(Math.round(pos.left/this.getRatio()), false); + this.fireEvent('drag', this, e); + }, + + + onDragEnd: function(e){ + this.thumb.removeClass('x-slider-thumb-drag'); + this.fireEvent('dragend', this, e); + }, + + + onResize : function(w, h){ + this.innerEl.setWidth(w - (this.el.getPadding('l') + this.endEl.getPadding('r'))); + }, + + + getValue : function(){ + return this.value; + } +}); +Ext.reg('slider', Ext.Slider); + + +Ext.Slider.Vertical = { + onResize : function(w, h){ + this.innerEl.setHeight(h - (this.el.getPadding('t') + this.endEl.getPadding('b'))); + }, + + getRatio : function(){ + var h = this.innerEl.getHeight(); + var v = this.maxValue - this.minValue; + return h/v; + }, + + moveThumb: function(v, animate){ + if(!animate || this.animate === false){ + this.thumb.setBottom(v); + }else{ + this.thumb.shift({bottom: v, stopFx: true, duration:.35}); + } + }, + + onDrag: function(e){ + var pos = this.innerEl.translatePoints(this.tracker.getXY()); + var bottom = this.innerEl.getHeight()-pos.top; + this.setValue(Math.round(bottom/this.getRatio()), false); + this.fireEvent('drag', this, e); + }, + + onClickChange : function(local){ + if(local.left > this.clickRange[0] && local.left < this.clickRange[1]){ + var bottom = this.innerEl.getHeight()-local.top; + this.setValue(Math.round(bottom/this.getRatio())); + } + } +}; + +Ext.StatusBar = Ext.extend(Ext.Toolbar, { + + + + + + + + cls : 'x-statusbar', + + busyIconCls : 'x-status-busy', + + busyText : 'Loading...', + + autoClear : 5000, + + activeThreadId : 0, + + initComponent : function(){ + if(this.statusAlign=='right'){ + this.cls += ' x-status-right'; + } + Ext.StatusBar.superclass.initComponent.call(this); + }, + + afterRender : function(){ + Ext.StatusBar.superclass.afterRender.call(this); + + var right = this.statusAlign=='right', + td = Ext.get(this.nextBlock()); + + if(right){ + this.tr.appendChild(td.dom); + }else{ + td.insertBefore(this.tr.firstChild); + } + + this.statusEl = td.createChild({ + cls: 'x-status-text ' + (this.iconCls || this.defaultIconCls || ''), + html: this.text || this.defaultText || '' + }); + this.statusEl.unselectable(); + + this.spacerEl = td.insertSibling({ + tag: 'td', + style: 'width:100%', + cn: [{cls:'ytb-spacer'}] + }, right ? 'before' : 'after'); + }, + + + setStatus : function(o){ + o = o || {}; + + if(typeof o == 'string'){ + o = {text:o}; + } + if(o.text !== undefined){ + this.setText(o.text); + } + if(o.iconCls !== undefined){ + this.setIcon(o.iconCls); + } + + if(o.clear){ + var c = o.clear, + wait = this.autoClear, + defaults = {useDefaults: true, anim: true}; + + if(typeof c == 'object'){ + c = Ext.applyIf(c, defaults); + if(c.wait){ + wait = c.wait; + } + }else if(typeof c == 'number'){ + wait = c; + c = defaults; + }else if(typeof c == 'boolean'){ + c = defaults; + } + + c.threadId = this.activeThreadId; + this.clearStatus.defer(wait, this, [c]); + } + return this; + }, + + + clearStatus : function(o){ + o = o || {}; + + if(o.threadId && o.threadId !== this.activeThreadId){ + return this; + } + + var text = o.useDefaults ? this.defaultText : '', + iconCls = o.useDefaults ? this.defaultIconCls : ''; + + if(o.anim){ + this.statusEl.fadeOut({ + remove: false, + useDisplay: true, + scope: this, + callback: function(){ + this.setStatus({ + text: text, + iconCls: iconCls + }); + this.statusEl.show(); + } + }); + }else{ + this.statusEl.hide(); + this.setStatus({ + text: text, + iconCls: iconCls + }); + this.statusEl.show(); + } + return this; + }, + + + setText : function(text){ + this.activeThreadId++; + this.text = text || ''; + if(this.rendered){ + this.statusEl.update(this.text); + } + return this; + }, + + + getText : function(){ + return this.text; + }, + + + setIcon : function(cls){ + this.activeThreadId++; + cls = cls || ''; + + if(this.rendered){ + if(this.currIconCls){ + this.statusEl.removeClass(this.currIconCls); + this.currIconCls = null; + } + if(cls.length > 0){ + this.statusEl.addClass(cls); + this.currIconCls = cls; + } + }else{ + this.currIconCls = cls; + } + return this; + }, + + + showBusy : function(o){ + if(typeof o == 'string'){ + o = {text:o}; + } + o = Ext.applyIf(o || {}, { + text: this.busyText, + iconCls: this.busyIconCls + }); + return this.setStatus(o); + } +}); +Ext.reg('statusbar', Ext.StatusBar); + +Ext.debug = {}; + +(function(){ + +var cp; + +function createConsole(){ + + var scriptPanel = new Ext.debug.ScriptsPanel(); + var logView = new Ext.debug.LogPanel(); + var tree = new Ext.debug.DomTree(); + + var tabs = new Ext.TabPanel({ + activeTab: 0, + border: false, + tabPosition: 'bottom', + items: [{ + title: 'Debug Console', + layout:'border', + items: [logView, scriptPanel] + },{ + title: 'DOM Inspector', + layout:'border', + items: [tree] + }] + }); + + cp = new Ext.Panel({ + id: 'x-debug-browser', + title: 'Console', + collapsible: true, + animCollapse: false, + style: 'position:absolute;left:0;bottom:0;', + height:200, + logView: logView, + layout: 'fit', + + tools:[{ + id: 'close', + handler: function(){ + cp.destroy(); + cp = null; + Ext.EventManager.removeResizeListener(handleResize); + } + }], + + items: tabs + }); + + cp.render(document.body); + + cp.resizer = new Ext.Resizable(cp.el, { + minHeight:50, + handles: "n", + pinned: true, + transparent:true, + resizeElement : function(){ + var box = this.proxy.getBox(); + this.proxy.hide(); + cp.setHeight(box.height); + return box; + } + }); + + function handleResize(){ + cp.setWidth(Ext.getBody().getViewSize().width); + } + Ext.EventManager.onWindowResize(handleResize); + + handleResize(); +} + + +Ext.apply(Ext, { + log : function(){ + if(!cp){ + createConsole(); + } + cp.logView.log.apply(cp.logView, arguments); + }, + + logf : function(format, arg1, arg2, etc){ + Ext.log(String.format.apply(String, arguments)); + }, + + dump : function(o){ + if(typeof o == 'string' || typeof o == 'number' || typeof o == 'undefined' || Ext.isDate(o)){ + Ext.log(o); + }else if(!o){ + Ext.log("null"); + }else if(typeof o != "object"){ + Ext.log('Unknown return type'); + }else if(Ext.isArray(o)){ + Ext.log('['+o.join(',')+']'); + }else{ + var b = ["{\n"]; + for(var key in o){ + var to = typeof o[key]; + if(to != "function" && to != "object"){ + b.push(String.format(" {0}: {1},\n", key, o[key])); + } + } + var s = b.join(""); + if(s.length > 3){ + s = s.substr(0, s.length-2); + } + Ext.log(s + "\n}"); + } + }, + + _timers : {}, + + time : function(name){ + name = name || "def"; + Ext._timers[name] = new Date().getTime(); + }, + + timeEnd : function(name, printResults){ + var t = new Date().getTime(); + name = name || "def"; + var v = String.format("{0} ms", t-Ext._timers[name]); + Ext._timers[name] = new Date().getTime(); + if(printResults !== false){ + Ext.log('Timer ' + (name == "def" ? v : name + ": " + v)); + } + return v; + } +}); + +})(); + + +Ext.debug.ScriptsPanel = Ext.extend(Ext.Panel, { + id:'x-debug-scripts', + region: 'east', + minWidth: 200, + split: true, + width: 350, + border: false, + layout:'anchor', + style:'border-width:0 0 0 1px;', + + initComponent : function(){ + + this.scriptField = new Ext.form.TextArea({ + anchor: '100% -26', + style:'border-width:0;' + }); + + this.trapBox = new Ext.form.Checkbox({ + id: 'console-trap', + boxLabel: 'Trap Errors', + checked: true + }); + + this.toolbar = new Ext.Toolbar([{ + text: 'Run', + scope: this, + handler: this.evalScript + },{ + text: 'Clear', + scope: this, + handler: this.clear + }, + '->', + this.trapBox, + ' ', ' ' + ]); + + this.items = [this.toolbar, this.scriptField]; + + Ext.debug.ScriptsPanel.superclass.initComponent.call(this); + }, + + evalScript : function(){ + var s = this.scriptField.getValue(); + if(this.trapBox.getValue()){ + try{ + var rt = eval(s); + Ext.dump(rt === undefined? '(no return)' : rt); + }catch(e){ + Ext.log(e.message || e.descript); + } + }else{ + var rt = eval(s); + Ext.dump(rt === undefined? '(no return)' : rt); + } + }, + + clear : function(){ + this.scriptField.setValue(''); + this.scriptField.focus(); + } + +}); + +Ext.debug.LogPanel = Ext.extend(Ext.Panel, { + autoScroll: true, + region: 'center', + border: false, + style:'border-width:0 1px 0 0', + + log : function(){ + var markup = [ '
    ', + Ext.util.Format.htmlEncode(Array.prototype.join.call(arguments, ', ')).replace(/\n/g, '
    ').replace(/\s/g, ' '), + '
    '].join(''); + + this.body.insertHtml('beforeend', markup); + this.body.scrollTo('top', 100000); + }, + + clear : function(){ + this.body.update(''); + this.body.dom.scrollTop = 0; + } +}); + +Ext.debug.DomTree = Ext.extend(Ext.tree.TreePanel, { + enableDD:false , + lines:false, + rootVisible:false, + animate:false, + hlColor:'ffff9c', + autoScroll: true, + region:'center', + border:false, + + initComponent : function(){ + + + Ext.debug.DomTree.superclass.initComponent.call(this); + + var styles = false, hnode; + var nonSpace = /^\s*$/; + var html = Ext.util.Format.htmlEncode; + var ellipsis = Ext.util.Format.ellipsis; + var styleRe = /\s?([a-z\-]*)\:([^;]*)(?:[;\s\n\r]*)/gi; + + function findNode(n){ + if(!n || n.nodeType != 1 || n == document.body || n == document){ + return false; + } + var pn = [n], p = n; + while((p = p.parentNode) && p.nodeType == 1 && p.tagName.toUpperCase() != 'HTML'){ + pn.unshift(p); + } + var cn = hnode; + for(var i = 0, len = pn.length; i < len; i++){ + cn.expand(); + cn = cn.findChild('htmlNode', pn[i]); + if(!cn){ return false; + } + } + cn.select(); + var a = cn.ui.anchor; + treeEl.dom.scrollTop = Math.max(0 ,a.offsetTop-10); + cn.highlight(); + return true; + } + + function nodeTitle(n){ + var s = n.tagName; + if(n.id){ + s += '#'+n.id; + }else if(n.className){ + s += '.'+n.className; + } + return s; + } + + function onNodeSelect(t, n, last){ + return; + if(last && last.unframe){ + last.unframe(); + } + var props = {}; + if(n && n.htmlNode){ + if(frameEl.pressed){ + n.frame(); + } + if(inspecting){ + return; + } + addStyle.enable(); + reload.setDisabled(n.leaf); + var dom = n.htmlNode; + stylePanel.setTitle(nodeTitle(dom)); + if(styles && !showAll.pressed){ + var s = dom.style ? dom.style.cssText : ''; + if(s){ + var m; + while ((m = styleRe.exec(s)) != null){ + props[m[1].toLowerCase()] = m[2]; + } + } + }else if(styles){ + var cl = Ext.debug.cssList; + var s = dom.style, fly = Ext.fly(dom); + if(s){ + for(var i = 0, len = cl.length; i' + ellipsis(html(String(c.nodeValue)), 35) + '', + cls: 'x-tree-noicon' + })); + } + } + cb(); + }; + + + this.root = this.setRootNode(new Ext.tree.TreeNode('Ext')); + + hnode = this.root.appendChild(new Ext.debug.HtmlNode( + document.getElementsByTagName('html')[0] + )); + + } +}); + + +Ext.debug.HtmlNode = function(){ + var html = Ext.util.Format.htmlEncode; + var ellipsis = Ext.util.Format.ellipsis; + var nonSpace = /^\s*$/; + + var attrs = [ + {n: 'id', v: 'id'}, + {n: 'className', v: 'class'}, + {n: 'name', v: 'name'}, + {n: 'type', v: 'type'}, + {n: 'src', v: 'src'}, + {n: 'href', v: 'href'} + ]; + + function hasChild(n){ + for(var i = 0, c; c = n.childNodes[i]; i++){ + if(c.nodeType == 1){ + return true; + } + } + return false; + } + + function renderNode(n, leaf){ + var tag = n.tagName.toLowerCase(); + var s = '<' + tag; + for(var i = 0, len = attrs.length; i < len; i++){ + var a = attrs[i]; + var v = n[a.n]; + if(v && !nonSpace.test(v)){ + s += ' ' + a.v + '="' + html(v) +'"'; + } + } + var style = n.style ? n.style.cssText : ''; + if(style){ + s += ' style="' + html(style.toLowerCase()) +'"'; + } + if(leaf && n.childNodes.length > 0){ + s+='>' + ellipsis(html(String(n.innerHTML)), 35) + '</'+tag+'>'; + }else if(leaf){ + s += ' />'; + }else{ + s += '>'; + } + return s; + } + + var HtmlNode = function(n){ + var leaf = !hasChild(n); + this.htmlNode = n; + this.tagName = n.tagName.toLowerCase(); + var attr = { + text : renderNode(n, leaf), + leaf : leaf, + cls: 'x-tree-noicon' + }; + HtmlNode.superclass.constructor.call(this, attr); + this.attributes.htmlNode = n; if(!leaf){ + this.on('expand', this.onExpand, this); + this.on('collapse', this.onCollapse, this); + } + }; + + + Ext.extend(HtmlNode, Ext.tree.AsyncTreeNode, { + cls: 'x-tree-noicon', + preventHScroll: true, + refresh : function(highlight){ + var leaf = !hasChild(this.htmlNode); + this.setText(renderNode(this.htmlNode, leaf)); + if(highlight){ + Ext.fly(this.ui.textNode).highlight(); + } + }, + + onExpand : function(){ + if(!this.closeNode && this.parentNode){ + this.closeNode = this.parentNode.insertBefore(new Ext.tree.TreeNode({ + text:'</' + this.tagName + '>', + cls: 'x-tree-noicon' + }), this.nextSibling); + }else if(this.closeNode){ + this.closeNode.ui.show(); + } + }, + + onCollapse : function(){ + if(this.closeNode){ + this.closeNode.ui.hide(); + } + }, + + render : function(bulkRender){ + HtmlNode.superclass.render.call(this, bulkRender); + }, + + highlightNode : function(){ + }, + + highlight : function(){ + }, + + frame : function(){ + this.htmlNode.style.border = '1px solid #0000ff'; + }, + + unframe : function(){ + this.htmlNode.style.border = ''; + } + }); + + return HtmlNode; +}(); + + + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/ext/ext-base.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/ext/ext-base.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,10 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +Ext={version:"2.1"};window["undefined"]=window["undefined"];Ext.apply=function(C,D,B){if(B){Ext.apply(C,B)}if(C&&D&&typeof D=="object"){for(var A in D){C[A]=D[A]}}return C};(function(){var idSeed=0;var ua=navigator.userAgent.toLowerCase();var isStrict=document.compatMode=="CSS1Compat",isOpera=ua.indexOf("opera")>-1,isSafari=(/webkit|khtml/).test(ua),isSafari3=isSafari&&ua.indexOf("webkit/5")!=-1,isIE=!isOpera&&ua.indexOf("msie")>-1,isIE7=!isOpera&&ua.indexOf("msie 7")>-1,isGecko=!isSafari&&ua.indexOf("gecko")>-1,isBorderBox=isIE&&!isStrict,isWindows=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),isMac=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),isAir=(ua.indexOf("adobeair")!=-1),isLinux=(ua.indexOf("linux")!=-1),isSecure=window.location.href.toLowerCase().indexOf("https")===0;if(isIE&&!isIE7){try{document.execCommand("BackgroundImageCache",false,true)}catch(e){}}Ext.apply(Ext,{isStrict:isStrict,isSecure:isSecure,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http:/"+"/extjs.com/s.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p]}}}return o},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o)});return }var cache={};for(var b in o){var parts=b.split("@");if(parts[1]){var s=parts[0];if(!cache[s]){cache[s]=Ext.select(s)}cache[s].on(parts[1],o[b])}}cache=null},id:function(el,prefix){prefix=prefix||"ext-gen";el=Ext.getDom(el);var id=prefix+(++idSeed);return el?(el.id?el.id:(el.id=id)):id},extend:function(){var io=function(o){for(var m in o){this[m]=o[m]}};var oc=Object.prototype.constructor;return function(sb,sp,overrides){if(typeof sp=="object"){overrides=sp;sp=sb;sb=overrides.constructor!=oc?overrides.constructor:function(){sp.apply(this,arguments)}}var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==oc){spp.constructor=sp}sb.override=function(o){Ext.override(sb,o)};sbp.override=io;Ext.override(sb,overrides);sb.extend=function(o){Ext.extend(sb,o)};return sb}}(),override:function(origclass,overrides){if(overrides){var p=origclass.prototype;for(var method in overrides){p[method]=overrides[method]}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i=0){L=G[P]}if(!S||!L){return false}this.doRemove(S,O,L[this.WFN],false);delete G[P][this.WFN];delete G[P][this.FN];G.splice(P,1);return true},getTarget:function(N,M){N=N.browserEvent||N;var L=N.target||N.srcElement;return this.resolveTextNode(L)},resolveTextNode:function(L){if(Ext.isSafari&&L&&3==L.nodeType){return L.parentNode}else{return L}},getPageX:function(M){M=M.browserEvent||M;var L=M.pageX;if(!L&&0!==L){L=M.clientX||0;if(Ext.isIE){L+=this.getScroll()[1]}}return L},getPageY:function(L){L=L.browserEvent||L;var M=L.pageY;if(!M&&0!==M){M=L.clientY||0;if(Ext.isIE){M+=this.getScroll()[0]}}return M},getXY:function(L){L=L.browserEvent||L;return[this.getPageX(L),this.getPageY(L)]},getRelatedTarget:function(M){M=M.browserEvent||M;var L=M.relatedTarget;if(!L){if(M.type=="mouseout"){L=M.toElement}else{if(M.type=="mouseover"){L=M.fromElement}}}return this.resolveTextNode(L)},getTime:function(N){N=N.browserEvent||N;if(!N.time){var M=new Date().getTime();try{N.time=M}catch(L){this.lastError=L;return M}}return N.time},stopEvent:function(L){this.stopPropagation(L);this.preventDefault(L)},stopPropagation:function(L){L=L.browserEvent||L;if(L.stopPropagation){L.stopPropagation()}else{L.cancelBubble=true}},preventDefault:function(L){L=L.browserEvent||L;if(L.preventDefault){L.preventDefault()}else{L.returnValue=false}},getEvent:function(M){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break}N=N.caller}}return L},getCharCode:function(L){L=L.browserEvent||L;return L.charCode||L.keyCode||0},_getCacheIndex:function(Q,N,P){for(var O=0,M=G.length;O0)}var Q=[];for(var M=0,L=H.length;M0){for(var Q=0,S=T.length;Q0){O=G.length;while(O){N=O-1;M=G[N];if(M){R.removeListener(M[R.EL],M[R.TYPE],M[R.FN],N)}O=O-1}M=null;R.clearCache()}R.doRemove(window,"unload",R._unload)},getScroll:function(){var L=document.documentElement,M=document.body;if(L&&(L.scrollTop||L.scrollLeft)){return[L.scrollTop,L.scrollLeft]}else{if(M){return[M.scrollTop,M.scrollLeft]}else{return[0,0]}}},doAdd:function(){if(window.addEventListener){return function(O,M,N,L){O.addEventListener(M,N,(L))}}else{if(window.attachEvent){return function(O,M,N,L){O.attachEvent("on"+M,N)}}else{return function(){}}}}(),doRemove:function(){if(window.removeEventListener){return function(O,M,N,L){O.removeEventListener(M,N,(L))}}else{if(window.detachEvent){return function(N,L,M){N.detachEvent("on"+L,M)}}else{return function(){}}}}()}}();var D=Ext.lib.Event;D.on=D.addListener;D.un=D.removeListener;if(document&&document.body){D._load()}else{D.doAdd(window,"load",D._load)}D.doAdd(window,"unload",D._unload);D._tryPreloadAttach();Ext.lib.Ajax={request:function(K,I,E,J,F){if(F){var G=F.headers;if(G){for(var H in G){if(G.hasOwnProperty(H)){this.initHeader(H,G[H],false)}}}if(F.xmlData){if(!G||!G["Content-Type"]){this.initHeader("Content-Type","text/xml",false)}K=(K?K:(F.method?F.method:"POST"));J=F.xmlData}else{if(F.jsonData){if(!G||!G["Content-Type"]){this.initHeader("Content-Type","application/json",false)}K=(K?K:(F.method?F.method:"POST"));J=typeof F.jsonData=="object"?Ext.encode(F.jsonData):F.jsonData}}}return this.asyncRequest(K,I,E,J)},serializeForm:function(F){if(typeof F=="string"){F=(document.getElementById(F)||document.forms[F])}var G,E,H,J,K="",M=false;for(var L=0;L=200&&G<300){F=this.createResponseObject(I,J.argument);if(J.success){if(!J.scope){J.success(F)}else{J.success.apply(J.scope,[F])}}}else{switch(G){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:F=this.createExceptionObject(I.tId,J.argument,(E?E:false));if(J.failure){if(!J.scope){J.failure(F)}else{J.failure.apply(J.scope,[F])}}break;default:F=this.createResponseObject(I,J.argument);if(J.failure){if(!J.scope){J.failure(F)}else{J.failure.apply(J.scope,[F])}}}}this.releaseObject(I);F=null},createResponseObject:function(E,K){var H={};var M={};try{var G=E.conn.getAllResponseHeaders();var J=G.split("\n");for(var I=0;I=this.left&&E.right<=this.right&&E.top>=this.top&&E.bottom<=this.bottom)},getArea:function(){return((this.bottom-this.top)*(this.right-this.left))},intersect:function(I){var G=Math.max(this.top,I.top);var H=Math.min(this.right,I.right);var E=Math.min(this.bottom,I.bottom);var F=Math.max(this.left,I.left);if(E>=G&&H>=F){return new Ext.lib.Region(G,H,E,F)}else{return null}},union:function(I){var G=Math.min(this.top,I.top);var H=Math.max(this.right,I.right);var E=Math.max(this.bottom,I.bottom);var F=Math.min(this.left,I.left);return new Ext.lib.Region(G,H,E,F)},constrainTo:function(E){this.top=this.top.constrain(E.top,E.bottom);this.bottom=this.bottom.constrain(E.top,E.bottom);this.left=this.left.constrain(E.left,E.right);this.right=this.right.constrain(E.left,E.right);return this},adjust:function(G,F,E,H){this.top+=G;this.left+=F;this.right+=H;this.bottom+=E;return this}};Ext.lib.Region.getRegion=function(H){var J=Ext.lib.Dom.getXY(H);var G=J[1];var I=J[0]+H.offsetWidth;var E=J[1]+H.offsetHeight;var F=J[0];return new Ext.lib.Region(G,I,E,F)};Ext.lib.Point=function(E,F){if(Ext.isArray(E)){F=E[1];E=E[0]}this.x=this.right=this.left=this[0]=E;this.y=this.top=this.bottom=this[1]=F};Ext.lib.Point.prototype=new Ext.lib.Region();Ext.lib.Anim={scroll:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.Scroll)},motion:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.Motion)},color:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.ColorAnim)},run:function(I,F,K,L,E,H,G){G=G||Ext.lib.AnimBase;if(typeof L=="string"){L=Ext.lib.Easing[L]}var J=new G(I,F,K,L);J.animateX(function(){Ext.callback(E,H)});return J}};function C(E){if(!B){B=new Ext.Element.Flyweight()}B.dom=E;return B}if(Ext.isIE){function A(){var E=Function.prototype;delete E.createSequence;delete E.defer;delete E.createDelegate;delete E.createCallback;delete E.createInterceptor;window.detachEvent("onunload",A)}window.attachEvent("onunload",A)}Ext.lib.AnimBase=function(F,E,G,H){if(F){this.init(F,E,G,H)}};Ext.lib.AnimBase.prototype={toString:function(){var E=this.getEl();var F=E.id||E.tagName;return("Anim "+F)},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(E,G,F){return this.method(this.currentFrame,G,F-G,this.totalFrames)},setAttribute:function(E,G,F){if(this.patterns.noNegatives.test(E)){G=(G>0)?G:0}Ext.fly(this.getEl(),"_anim").setStyle(E,G+F)},getAttribute:function(E){var G=this.getEl();var I=C(G).getStyle(E);if(I!=="auto"&&!this.patterns.offsetUnit.test(I)){return parseFloat(I)}var F=this.patterns.offsetAttribute.exec(E)||[];var J=!!(F[3]);var H=!!(F[2]);if(H||(C(G).getStyle("position")=="absolute"&&J)){I=G["offset"+F[0].charAt(0).toUpperCase()+F[0].substr(1)]}else{I=0}return I},getDefaultUnit:function(E){if(this.patterns.defaultUnit.test(E)){return"px"}return""},animateX:function(G,E){var F=function(){this.onComplete.removeListener(F);if(typeof G=="function"){G.call(E||this,this)}};this.onComplete.addListener(F,this);this.animate()},setRuntimeAttribute:function(F){var K;var G;var H=this.attributes;this.runtimeAttributes[F]={};var J=function(L){return(typeof L!=="undefined")};if(!J(H[F]["to"])&&!J(H[F]["by"])){return false}K=(J(H[F]["from"]))?H[F]["from"]:this.getAttribute(F);if(J(H[F]["to"])){G=H[F]["to"]}else{if(J(H[F]["by"])){if(K.constructor==Array){G=[];for(var I=0,E=K.length;I0&&isFinite(O)){if(K.currentFrame+O>=N){O=N-(M+1)}K.currentFrame+=O}}};Ext.lib.Bezier=new function(){this.getPosition=function(I,H){var J=I.length;var G=[];for(var F=0;F0&&!Ext.isArray(O[0])){O=[O]}else{var N=[];for(P=0,R=O.length;P0){this.runtimeAttributes[S]=this.runtimeAttributes[S].concat(O)}this.runtimeAttributes[S][this.runtimeAttributes[S].length]=L}else{I.setRuntimeAttribute.call(this,S)}};var E=function(J,L){var K=Ext.lib.Dom.getXY(this.getEl());J=[J[0]-K[0]+L[0],J[1]-K[1]+L[1]];return J};var G=function(J){return(typeof J!=="undefined")}})();(function(){Ext.lib.Scroll=function(I,H,J,K){if(I){Ext.lib.Scroll.superclass.constructor.call(this,I,H,J,K)}};Ext.extend(Ext.lib.Scroll,Ext.lib.ColorAnim);var F=Ext.lib;var G=F.Scroll.superclass;var E=F.Scroll.prototype;E.toString=function(){var H=this.getEl();var I=H.id||H.tagName;return("Scroll "+I)};E.doMethod=function(H,K,I){var J=null;if(H=="scroll"){J=[this.method(this.currentFrame,K[0],I[0]-K[0],this.totalFrames),this.method(this.currentFrame,K[1],I[1]-K[1],this.totalFrames)]}else{J=G.doMethod.call(this,H,K,I)}return J};E.getAttribute=function(H){var J=null;var I=this.getEl();if(H=="scroll"){J=[I.scrollLeft,I.scrollTop]}else{J=G.getAttribute.call(this,H)}return J};E.setAttribute=function(H,K,J){var I=this.getEl();if(H=="scroll"){I.scrollLeft=K[0];I.scrollTop=K[1]}else{G.setAttribute.call(this,H,K,J)}}})()})(); diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/ext/keymap.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/ext/keymap.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,210 @@ +/** + * @class Ext.KeyMap + * Handles mapping keys to actions for an element. One key map can be used for multiple actions. + * The constructor accepts the same config object as defined by {@link #addBinding}. + * If you bind a callback function to a KeyMap, anytime the KeyMap handles an expected key + * combination it will call the function with this signature (if the match is a multi-key + * combination the callback will still be called only once): (String key, Ext.EventObject e) + * A KeyMap can also handle a string representation of keys.
    + * Usage: +
    
    +// map one key by key code
    +var map = new Ext.KeyMap("my-element", {
    +    key: 13, // or Ext.EventObject.ENTER
    +    fn: myHandler,
    +    scope: myObject
    +});
    +
    +// map multiple keys to one action by string
    +var map = new Ext.KeyMap("my-element", {
    +    key: "a\r\n\t",
    +    fn: myHandler,
    +    scope: myObject
    +});
    +
    +// map multiple keys to multiple actions by strings and array of codes
    +var map = new Ext.KeyMap("my-element", [
    +    {
    +        key: [10,13],
    +        fn: function(){ alert("Return was pressed"); }
    +    }, {
    +        key: "abc",
    +        fn: function(){ alert('a, b or c was pressed'); }
    +    }, {
    +        key: "\t",
    +        ctrl:true,
    +        shift:true,
    +        fn: function(){ alert('Control + shift + tab was pressed.'); }
    +    }
    +]);
    +
    + * Note: A KeyMap starts enabled + * @constructor + * @param {String/HTMLElement/Ext.Element} el The element to bind to + * @param {Object} config The config (see {@link #addBinding}) + * @param {String} eventName (optional) The event to bind to (defaults to "keydown") + */ +Ext.KeyMap = function(el, config, eventName){ + this.el = Ext.get(el); + this.eventName = eventName || "keydown"; + this.bindings = []; + if(config){ + this.addBinding(config); + } + this.enable(); +}; + +Ext.KeyMap.prototype = { + /** + * True to stop the event from bubbling and prevent the default browser action if the + * key was handled by the KeyMap (defaults to false) + * @type Boolean + */ + stopEvent : false, + + /** + * Add a new binding to this KeyMap. The following config object properties are supported: + *
    +Property    Type             Description
    +----------  ---------------  ----------------------------------------------------------------------
    +key         String/Array     A single keycode or an array of keycodes to handle
    +shift       Boolean          True to handle key only when shift is pressed (defaults to false)
    +ctrl        Boolean          True to handle key only when ctrl is pressed (defaults to false)
    +alt         Boolean          True to handle key only when alt is pressed (defaults to false)
    +fn          Function         The function to call when KeyMap finds the expected key combination
    +scope       Object           The scope of the callback function
    +
    + * + * Usage: + *
    
    +// Create a KeyMap
    +var map = new Ext.KeyMap(document, {
    +    key: Ext.EventObject.ENTER,
    +    fn: handleKey,
    +    scope: this
    +});
    +
    +//Add a new binding to the existing KeyMap later
    +map.addBinding({
    +    key: 'abc',
    +    shift: true,
    +    fn: handleKey,
    +    scope: this
    +});
    +
    + * @param {Object/Array} config A single KeyMap config or an array of configs + */ + addBinding : function(config){ + if(config instanceof Array){ + for(var i = 0, len = config.length; i < len; i++){ + this.addBinding(config[i]); + } + return; + } + var keyCode = config.key, + shift = config.shift, + ctrl = config.ctrl, + alt = config.alt, + fn = config.fn, + scope = config.scope; + if(typeof keyCode == "string"){ + var ks = []; + var keyString = keyCode.toUpperCase(); + for(var j = 0, len = keyString.length; j < len; j++){ + ks.push(keyString.charCodeAt(j)); + } + keyCode = ks; + } + var keyArray = keyCode instanceof Array; + var handler = function(e){ + if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) && (!alt || e.altKey)){ + var k = e.getKey(); + if(keyArray){ + for(var i = 0, len = keyCode.length; i < len; i++){ + if(keyCode[i] == k){ + if(this.stopEvent){ + e.stopEvent(); + } + fn.call(scope || window, k, e); + return; + } + } + }else{ + if(k == keyCode){ + if(this.stopEvent){ + e.stopEvent(); + } + fn.call(scope || window, k, e); + } + } + } + }; + this.bindings.push(handler); + }, + + /** + * Shorthand for adding a single key listener + * @param {Number/Array/Object} key Either the numeric key code, array of key codes or an object with the + * following options: + * {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)} + * @param {Function} fn The function to call + * @param {Object} scope (optional) The scope of the function + */ + on : function(key, fn, scope){ + var keyCode, shift, ctrl, alt; + if(typeof key == "object" && !(key instanceof Array)){ + keyCode = key.key; + shift = key.shift; + ctrl = key.ctrl; + alt = key.alt; + }else{ + keyCode = key; + } + this.addBinding({ + key: keyCode, + shift: shift, + ctrl: ctrl, + alt: alt, + fn: fn, + scope: scope + }) + }, + + // private + handleKeyDown : function(e){ + if(this.enabled){ //just in case + var b = this.bindings; + for(var i = 0, len = b.length; i < len; i++){ + b[i].call(this, e); + } + } + }, + + /** + * Returns true if this KeyMap is enabled + * @return {Boolean} + */ + isEnabled : function(){ + return this.enabled; + }, + + /** + * Enables this KeyMap + */ + enable: function(){ + if(!this.enabled){ + this.el.on(this.eventName, this.handleKeyDown, this); + this.enabled = true; + } + }, + + /** + * Disable this KeyMap + */ + disable: function(){ + if(this.enabled){ + this.el.removeListener(this.eventName, this.handleKeyDown, this); + this.enabled = false; + } + } +}; \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/features.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/features.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,97 @@ + var initialPage=[]; + var getPage = document.location.hash.replace("#",""); + if(getPage!=''){initialPage=getPage; } + + var myOPF, myOPF1; + + +function loadDemo(){ + if(getPage!='') + { + document.getElementById("code").value= initialPage; + load(Ext.util.JSON.decode(document.forms[0].code.value),c); + if(viewMode=='canvas') + { + c.renderer.rectDoc(zoominit) + } + + } + if(getPage=='') + { + + chargeFile(initialFile); + setTimeout("Draw()",2000); + + //load( [{type:"doc", left:0, top:0, width:160, height:160, viewBox:"0 0 160 160"}, {"id":"shape:567398b2-3763-cc53-678a-e74d1d5d7569","type":"rect","transform":"","fillColor":"#d5d4d4","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-8,"top":-4,"width":170,"height":169},{"id":"shape:0cc9fd3c-6518-31e7-1dd9-ac3f03f334f9","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":17.5,"height":22,"left":18.5,"top":95},{"id":"shape:91592290-f1a8-8bb1-30b9-8a1856f29375","type":"path","transform":"","fillColor":"#555500","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M5,112 L6,112 L11,112 L17,112 L25,112 L34,113 L38,113 L39,113 L40,113 L43,113 L47,113 L51,113 L52,113 L54,114 L59,114 L66,114 L73,113 L83,111 L85,111 L87,111 L92,111 L100,111 L107,111 L108,111 L111,111 L115,112 L116,112 L123,112 L131,113 L140,113 L146,113 L146,114 L146,115 L147,116 L149,118 L150,120 L150,122 L148,126 L145,128 L143,130 L143,131 L143,134 L141,136 L139,138 L135,140 L131,142 L127,144 L125,145 L121,145 L117,145 L115,145 L109,145 L102,145 L99,146 L96,147 L93,148 L89,149 L84,149 L80,150 L76,151 L73,151 L72,151 L71,151 L68,150 L66,148 L64,147 L58,146 L52,145 L46,145 L44,145 L43,145 L42,144 L41,143 L40,143 L37,143 L32,143 L29,143 L27,143 L25,143 L24,143 L23,143 L22,143 L21,143 L18,143 L16,143 L14,143 L13,143 L11,143 L10,143 L9,143 L8,143 L7,143 L6,143 L5,143 L4,143 L3,143 L4,143 L5,143 L6,143 z"},{"id":"shape:607f960c-6341-b01a-a000-692d153e6bc7","type":"text","transform":"","textFamily":"Arial","textSize":28,"top":137.922,"left":62,"text":"Robot 45","lineWidth":1,"fillColor":"#00daff","lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:aeb8f11c-5800-2feb-e3df-33139c1c070f","type":"rect","transform":"","fillColor":"#d5d4d4","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-2,"top":6,"width":6,"height":10},{"id":"shape:2b66c634-20de-49cc-501e-c2dd34ed072f","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":39,"height":34.5586,"left":53,"top":83.58269999999999},{"id":"shape:72ac0941-f863-abd4-1859-0a90e75d9f86","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":15,"height":12,"left":64,"top":94},{"id":"shape:8e937ef4-b625-9b54-a8d9-3f9db5391b29","type":"roundrect","transform":"rotate(-9.46232, 60, 85)","fillColor":"#808080","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"rx":20,"ry":20,"left":28,"top":71,"width":64,"height":28},{"id":"shape:03156a09-0646-b0cf-00d2-7a0dc4cb6300","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":39,"height":35,"left":81,"top":83},{"id":"shape:fc34042d-ab37-df13-0405-dae6ec9bb3bb","type":"rect","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":25.318,"top":85.7556,"width":16,"height":15},{"id":"shape:85289780-3df2-86f2-9aae-f189399120df","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":16.318,"top":85.7556,"width":16,"height":15},{"id":"shape:e054d647-771a-5b58-4cd0-68514c515be7","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":58.318,"top":59.7556,"width":16,"height":15},{"id":"shape:d9e5c336-4953-9ce5-9ecb-728c966350a4","type":"rect","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":65.318,"top":59.7556,"width":16,"height":15},{"id":"shape:0dba98fe-95ad-b2df-5796-364664bf50fb","type":"line","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":68,"top":59.7556,"width":0,"height":-25.7556},{"id":"shape:4f25051b-348d-82c6-3d3a-dc858d4671b9","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":15,"height":12,"left":93,"top":95},{"id":"shape:6cc4981f-ed54-8300-7db2-f63b5e3efdb3","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":4,"height":3,"left":25,"top":105}] + //,c); + }else{ + + } + +} + +function Draw() +{ + load(myOPF,c); + if(viewMode=='canvas') + { + c.renderer.rectDoc(zoominit) + } + + +} + +function loadContent(source) +{ + var myOPF; + eval("myOPF="+source); + return myOPF; +} +function chargeFile(fname) +{ + var xhr=createXHR(); + xhr.open("GET", fname,true); + xhr.onreadystatechange=function() + { + if (xhr.readyState == 4) + { + if (xhr.status != 404) + { + //myOPF=loadContent(xhr.responseText); + myOPFstr=xhr.responseText; + myOPF=loadContent(xhr.responseText); + //document.getElementById("source").innerHTML =xhr.responseText; + + } + else + { + //document.getElementById("source").innerHTML = fname + " not found"; + + } + } + } + xhr.send(null); +} + +function createXHR() +{ + var request = false; + try { + request = new ActiveXObject('Msxml2.XMLHTTP'); + } + catch (err2) { + try { + request = new ActiveXObject('Microsoft.XMLHTTP'); + } + catch (err3) { + try { + request = new XMLHttpRequest(); + } + catch (err1) + { + request = false; alert('no no') + } + } + } + return request; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/features_mini.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/features_mini.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,87 @@ + var initialPage=[]; + var getPage = document.location.hash.replace("#",""); + if(getPage!=''){initialPage=getPage; } + + var myOPF, myOPF1; + + +function loadDemo(){ + if(getPage!='') + { + document.getElementById("code").value= initialPage; + load(Ext.util.JSON.decode(document.forms[0].code.value),c); + + } + if(getPage=='') + { + + chargeFile(initialFile); + setTimeout("Draw()",2000); + + //load( [{type:"doc", left:0, top:0, width:160, height:160, viewBox:"0 0 160 160"}, {"id":"shape:567398b2-3763-cc53-678a-e74d1d5d7569","type":"rect","transform":"","fillColor":"#d5d4d4","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-8,"top":-4,"width":170,"height":169},{"id":"shape:0cc9fd3c-6518-31e7-1dd9-ac3f03f334f9","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":17.5,"height":22,"left":18.5,"top":95},{"id":"shape:91592290-f1a8-8bb1-30b9-8a1856f29375","type":"path","transform":"","fillColor":"#555500","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M5,112 L6,112 L11,112 L17,112 L25,112 L34,113 L38,113 L39,113 L40,113 L43,113 L47,113 L51,113 L52,113 L54,114 L59,114 L66,114 L73,113 L83,111 L85,111 L87,111 L92,111 L100,111 L107,111 L108,111 L111,111 L115,112 L116,112 L123,112 L131,113 L140,113 L146,113 L146,114 L146,115 L147,116 L149,118 L150,120 L150,122 L148,126 L145,128 L143,130 L143,131 L143,134 L141,136 L139,138 L135,140 L131,142 L127,144 L125,145 L121,145 L117,145 L115,145 L109,145 L102,145 L99,146 L96,147 L93,148 L89,149 L84,149 L80,150 L76,151 L73,151 L72,151 L71,151 L68,150 L66,148 L64,147 L58,146 L52,145 L46,145 L44,145 L43,145 L42,144 L41,143 L40,143 L37,143 L32,143 L29,143 L27,143 L25,143 L24,143 L23,143 L22,143 L21,143 L18,143 L16,143 L14,143 L13,143 L11,143 L10,143 L9,143 L8,143 L7,143 L6,143 L5,143 L4,143 L3,143 L4,143 L5,143 L6,143 z"},{"id":"shape:607f960c-6341-b01a-a000-692d153e6bc7","type":"text","transform":"","textFamily":"Arial","textSize":28,"top":137.922,"left":62,"text":"Robot 45","lineWidth":1,"fillColor":"#00daff","lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:aeb8f11c-5800-2feb-e3df-33139c1c070f","type":"rect","transform":"","fillColor":"#d5d4d4","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-2,"top":6,"width":6,"height":10},{"id":"shape:2b66c634-20de-49cc-501e-c2dd34ed072f","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":39,"height":34.5586,"left":53,"top":83.58269999999999},{"id":"shape:72ac0941-f863-abd4-1859-0a90e75d9f86","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":15,"height":12,"left":64,"top":94},{"id":"shape:8e937ef4-b625-9b54-a8d9-3f9db5391b29","type":"roundrect","transform":"rotate(-9.46232, 60, 85)","fillColor":"#808080","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"rx":20,"ry":20,"left":28,"top":71,"width":64,"height":28},{"id":"shape:03156a09-0646-b0cf-00d2-7a0dc4cb6300","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":39,"height":35,"left":81,"top":83},{"id":"shape:fc34042d-ab37-df13-0405-dae6ec9bb3bb","type":"rect","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":25.318,"top":85.7556,"width":16,"height":15},{"id":"shape:85289780-3df2-86f2-9aae-f189399120df","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":16.318,"top":85.7556,"width":16,"height":15},{"id":"shape:e054d647-771a-5b58-4cd0-68514c515be7","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":58.318,"top":59.7556,"width":16,"height":15},{"id":"shape:d9e5c336-4953-9ce5-9ecb-728c966350a4","type":"rect","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":65.318,"top":59.7556,"width":16,"height":15},{"id":"shape:0dba98fe-95ad-b2df-5796-364664bf50fb","type":"line","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":68,"top":59.7556,"width":0,"height":-25.7556},{"id":"shape:4f25051b-348d-82c6-3d3a-dc858d4671b9","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":15,"height":12,"left":93,"top":95},{"id":"shape:6cc4981f-ed54-8300-7db2-f63b5e3efdb3","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":4,"height":3,"left":25,"top":105}] + //,c); + }else{ + + } + +} + +function Draw() +{ + load(myOPF,c); +} + +function loadContent(source) +{ + var myOPF; + eval("myOPF="+source); + return myOPF; +} +function chargeFile(fname) +{ + var xhr=createXHR(); + xhr.open("GET", fname,true); + xhr.onreadystatechange=function() + { + if (xhr.readyState == 4) + { + if (xhr.status != 404) + { + //myOPF=loadContent(xhr.responseText); + myOPFstr=xhr.responseText; + myOPF=loadContent(xhr.responseText); + //document.getElementById("source").innerHTML =xhr.responseText; + + } + else + { + //document.getElementById("source").innerHTML = fname + " not found"; + + } + } + } + xhr.send(null); +} + +function createXHR() +{ + var request = false; + try { + request = new ActiveXObject('Msxml2.XMLHTTP'); + } + catch (err2) { + try { + request = new ActiveXObject('Microsoft.XMLHTTP'); + } + catch (err3) { + try { + request = new XMLHttpRequest(); + } + catch (err1) + { + request = false; alert('no no') + } + } + } + return request; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/format.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/format.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,135 @@ +/* +JSON Richdraw Abstraction Layer + +--------------------- +Also, + +JSON Rich Draw Format + +--------------------- + +*/ + + + +function canvas(richdraw,format){ + + var rawshapes = richdraw.getshapes() + var newshapes = []; + //var view=Ext.util.JSON.encode(myOPF[0]) + //newshapes.push(Ext.util.JSON.decode(view)); + newshapes.push(myOPF[0]); + for(var i = 0; i < rawshapes.length; i++){ + newshapes.push(richdraw.renderer.info(rawshapes[i])); + } + return newshapes; +} + + +var fullscreen=false; +function load(code,draw) +{ + + var noattachlistener=false; + var renderdoc=false; + var renderinfo=false + for(var i = 0; i < code.length; i++) + { + var rendering=true; + + if(code[i].type == "info") + { + rendering=false; + renderinfo=true; + if(code[i].loop!=null) + { + timerNext=code[i].loop; + }else{ + timerNext=0; + } + } + + if(code[i].type == "doc") + { + rendering=false; + renderdoc=true; + if(fullscreen==false) + { + draw.renderer.view( + code[i].left, + code[i].top, + code[i].width, + code[i].height, + code[i].viewBox, + (code[i].bgcolor!=null)?code[i].bgcolor:"" + ); + } + else + { + draw.renderer.view( + 0, + 0, + screenW, + screenH, + code[i].viewBox, + '' + ); + } + } + + if( rendering==true) + { + var co = draw.renderer.create(code[i].type, + (code[i].fillColor!=null)?code[i].fillColor:"", + (code[i].lineColor)?code[i].lineColor:"", + (code[i].fillOpac)?code[i].fillOpac:"", + (code[i].lineOpac)?code[i].lineOpac:"", + (code[i].lineWidth)?code[i].lineWidth:"", + (code[i].left)?code[i].left:"", + (code[i].top)?code[i].top:"", + (code[i].width)?code[i].width:"", + (code[i].height)?code[i].height:"", + (code[i].text)?code[i].text:'', + (code[i].textSize)?code[i].textSize:"", + (code[i].textFamily)?code[i].textFamily:'Arial', + (code[i].href)?code[i].href:'', + (code[i].points)?code[i].points:'', + (code[i].transform)?code[i].transform:'', + (code[i].parent)?code[i].parent:''); + + co.id = ""+code[i].id; + if (!noattachlistener) + { + Ext.get(co).on("mousedown", draw.onHit, draw); + + /* + co.addEventListener("click", function(event) { myfunction(this.id,draw,event); }, false); + co.addEventListener("mouseover", function(event) {myOverFunction(this.id,draw,event); }, false); + co.addEventListener("mouseout", function(event) {myOutFunction(this.id,draw,event); }, false); + co.addEventListener("mouseup", function(event) {myUpFunction(this.id,draw,event); }, false); + co.addEventListener("mousedown", function(event) {myDownFunction(this.id,draw,event); }, false); + co.addEventListener("mousemove", function(event) {myMoveFunction(this.id,draw,event); }, false); + co.addEventListener("dblclick", function(event) {myDblclickFunction(this.id,draw,event); }, false); + */ + } + } + } + if(renderdoc == false) + { + if(fullscreen==false) + { + draw.renderer.view(0,0,canvasWidth,canvasHeight,'0 0 700 400',''); + } + else + { + draw.renderer.view(0,0,screenW,screenH,'0 0 700 400',''); + } + } + if(renderinfo == false) + { + } +} + + + + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/format_mini.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/format_mini.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,305 @@ +/* +JSON Richdraw Abstraction Layer + +--------------------- +Also, + +JSON Rich Draw Format + +--------------------- + + +What data is not stored (yet) +-Transforms + +*/ + + + +function canvas(richdraw,format){ + var rawshapes = richdraw.getshapes() + var newshapes = []; + for(var i = 0; i < rawshapes.length; i++){ + newshapes.push(richdraw.renderer.info(rawshapes[i])); + } + return newshapes; +} + + +var fullscreen=false; +function load(code,draw) +{ + + var noattachlistener=false; + var renderdoc=false; + var renderinfo=false + for(var i = 0; i < code.length; i++) + { + var rendering=true; + + if(code[i].type == "info") + { + rendering=false; + renderinfo=true; + if(code[i].loop!=null) + { + timerNext=code[i].loop; + }else{ + timerNext=0; + } + } + + if(code[i].type == "doc") + { + rendering=false; + renderdoc=true; + if(fullscreen==false) + { + draw.renderer.view( + code[i].left, + code[i].top, + code[i].width, + code[i].height, + code[i].viewBox, + (code[i].bgcolor!=null)?code[i].fillColor:"" + ); + } + else + { + draw.renderer.view( + 0, + 0, + screenW, + screenH, + code[i].viewBox, + '' + ); + } + } + + if( rendering==true) + { + var co = draw.renderer.create(code[i].type, + (code[i].fillColor!=null)?code[i].fillColor:"", + (code[i].lineColor)?code[i].lineColor:"", + (code[i].fillOpac)?code[i].fillOpac:"", + (code[i].lineOpac)?code[i].lineOpac:"", + (code[i].lineWidth)?code[i].lineWidth:"", + (code[i].left)?code[i].left:"", + (code[i].top)?code[i].top:"", + (code[i].width)?code[i].width:"", + (code[i].height)?code[i].height:"", + (code[i].text)?code[i].text:'', + (code[i].textSize)?code[i].textSize:"", + (code[i].textFamily)?code[i].textFamily:'Arial', + (code[i].href)?code[i].href:'', + (code[i].points)?code[i].points:'', + (code[i].transform)?code[i].transform:'', + (code[i].parent)?code[i].parent:''); + + co.id = ""+code[i].id; + if (!noattachlistener) + { + Ext.get(co).on("mousedown", draw.onHit, draw); + + /* + co.addEventListener("click", function(event) { myfunction(this.id,draw,event); }, false); + co.addEventListener("mouseover", function(event) {myOverFunction(this.id,draw,event); }, false); + co.addEventListener("mouseout", function(event) {myOutFunction(this.id,draw,event); }, false); + co.addEventListener("mouseup", function(event) {myUpFunction(this.id,draw,event); }, false); + co.addEventListener("mousedown", function(event) {myDownFunction(this.id,draw,event); }, false); + co.addEventListener("mousemove", function(event) {myMoveFunction(this.id,draw,event); }, false); + co.addEventListener("dblclick", function(event) {myDblclickFunction(this.id,draw,event); }, false); + */ + } + } + } + if(renderdoc == false) + { + if(fullscreen==false) + { + draw.renderer.view(0,0,canvasWidth,canvasHeight,'0 0 700 400',''); + } + else + { + draw.renderer.view(0,0,screenW,screenH,'0 0 700 400',''); + } + } + if(renderinfo == false) + { + } +} + + + + + + + + + +function load03(code,richdraw){ + + //var co =richdraw.renderer.create('group', '', '', 1, '', '', 0, 0, '', '', '', '', '', '', '', '',''); + //co.id = 'frame'+frameNum; + // var co ={}; + var renderdoc=false; + var renderinfo=false + for(var i = 0; i < code.length; i++){ + // code[i].parent='frame'+frameNum; + var rendering=true; + if(code[i].type == "info") + { + rendering=false; + renderinfo=true; + if(code[i].loop!=null) + { + timerNext=code[i].loop; + }else{ + timerNext=0; + } + } + if(code[i].type == "doc") + { + rendering=false; + renderdoc=true; + if(fullscreen==false){ + richdraw.renderer.view( + code[i].left, + code[i].top, + code[i].width, + code[i].height, + code[i].viewBox + ); + }else{ + richdraw.renderer.view( + 0, + 0, + scr_w, + scr_h, + code[i].viewBox + ); + + + } + /*richdraw.renderer.view((code[i].left)?code[i].left:NaN, + (code[i].top)?code[i].top:NaN, + (code[i].width)?code[i].width:NaN, + (code[i].height)?code[i].height:NaN, + (code[i].viewBox)?code[i].viewBox:'' + */ + + } + + if( rendering==true) + { + var co = richdraw.renderer.create(code[i].type, + (code[i].fillColor!=null)?code[i].fillColor:"", + (code[i].lineColor)?code[i].lineColor:"", + (code[i].fillOpac)?code[i].fillOpac:"", + (code[i].lineOpac)?code[i].lineOpac:"", + (code[i].lineWidth)?code[i].lineWidth:"", + (code[i].left)?code[i].left:"", + (code[i].top)?code[i].top:"", + (code[i].width)?code[i].width:"", + (code[i].height)?code[i].height:"", + (code[i].text)?code[i].text:'', + (code[i].textSize)?code[i].textSize:"", + (code[i].textFamily)?code[i].textFamily:'Arial', + (code[i].href)?code[i].href:'', + (code[i].points)?code[i].points:'', + (code[i].transform)?code[i].transform:'', + (code[i].parent)?code[i].parent:''); + //(code[i].filter)?code[i].filter:''); + if(code[i].id==null){ + var nid='shape:' + createUUID(); + co.id = nid; + }else{ + co.id = code[i].id; + } + + //var cad=code[i].points; + //co.id = ""+code[i].id; + //co.addEventListener("click", function(event) { myfunction(this.id); }, false); + //co.addEventListener("mouseover", function(event) {myOverFunction(this.id); }, false); + //co.addEventListener("mouseout", function(event) {myOutFunction(this.id); }, false); + + + } + Ext.get(co).on("mousedown", richdraw.onHit, richdraw); + + } + if(renderdoc == false) + { + if(fullscreen==false){ + richdraw.renderer.view(0,0,canvasWidth,canvasHeight,'0 0 700 400'); + }else{ + richdraw.renderer.view(0,0,scr_w,scr_h,'0 0 700 400'); + } + //richdraw.renderer.view(0,0,document.getElementById("richdraw").style.width,document.getElementById("richdraw").style.height,zoominit); + + } + + if(renderinfo == false){ + + } + +} + +function load01(code,richdraw){ + +for(var i = 0; i < code.length; i++){ + + + var co = richdraw.renderer.create(code[i].type, //Shape + (code[i].fillColor)?code[i].fillColor:"red", + (code[i].lineColor)?code[i].lineColor:"black", + (code[i].fillOpac)?code[i].fillOpac:1, + (code[i].lineOpac)?code[i].lineOpac:1, + (code[i].lineWidth)?code[i].lineWidth:1, + (code[i].left)?code[i].left:100, + (code[i].top)?code[i].top:100, + (code[i].width)?code[i].width:100, + (code[i].height)?code[i].height:100, + (code[i].text)?code[i].text:'', + (code[i].textSize)?code[i].textSize:19, + (code[i].textFamily)?code[i].textFamily:'Arial', + (code[i].href)?code[i].href:'', + (code[i].points)?code[i].points:'', + (code[i].transform)?code[i].transform:'', + (code[i].parent)?code[i].parent:''); + + + +co.id = "shape:"+code[i].id; + +/* +HACKS! HACKS!! NOT GOOD!!! +*/ +if(code[i].type=="polyline"){ + + //richdraw.renderer.editShape(co,code[i].points) +}else if(code[i].type=="path"){ + + // richdraw.renderer.editShape(co,code[i].d) +}else if(code[i].type == "text"){ + //-- + //richdraw.renderer.editShape(co,code[i].text,null); + //richdraw.renderer.editShape(co,code[i].text) +} + +/* +End Evil Hacks +*/ + + +//Event.observe(co, "mousedown", richdraw.onHitListener); + +Ext.get(co).on("mousedown", richdraw.onHit, richdraw); +} + + +//create = function(shape, fillColor, lineColor, lineWidth, left, top, width, height) +} + + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/me.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/me.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,819 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ +Ext.BLANK_IMAGE_URL = 'theme/images/default/s.gif'; +var mefillColor = {r:255,g:0,b:0,hex:'#ff0000',visible:'visible',color:'#ff0000',opacity:'1',gradient:'no'}; +var mestrokeColor = {r:0,g:0,b:255,hex:'#000000',visible:'visible',color:'#ff0000',width:'1',opacity:'1',gradient:'no'}; + +var fillhex="#ff0000"; +var squarecont=0; +var squarerows=6; +var squarecols=6; +var squarelist=new Array(squarerows); +var filldraw=true; +var strokedraw=true; +var mode_render_fill=2; +var mode_render_stroke=2; + +var prevselect_fill='no-fill-gradient'; +var prevselect_stroke='no-stroke-gradient'; + +for (i = 0; i < squarerows; i++) + { + squarelist[i]=new Array(squarecols); + } + +function rgb2hex(r,g,b){ + var rh= toHex(r); + var gh= toHex(g); + var bh= toHex(b); + return '#'+rh + '' + gh + '' + bh; +// document.getElementById('inputfillhex').value=fillhex; + //parent.c.editCommand('mefillcolor', color); +} + +function hex2rgb(hex) + { + var regexp = new RegExp('^#?([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$'); + var match = hex.toLowerCase().match(regexp); + + if (match) + { + var rgb = new Array(parseInt(match[1], 16), parseInt(match[2], 16), parseInt(match[3], 16)); + return(rgb); + } + else + { + var rgb = new Array(0,0,0); + return(rgb); + } + } + +function toHex(color){ + color=parseInt(color).toString(16); + return color.length<2?"0"+color:color; +} + +function squareDump(r,g,b,container) { + squareArray(r,g,b); + for (i = 0; i < squarerows; i++) + { + for (j = 0; j < squarecols; j++) + { + document.getElementById(container+i+'_'+j).style.backgroundColor = squarelist[i][j]; + } + squarecont++; + } + squarecont=0; +} + + + +function squareArray(r,g,b) { + + var l00_05=ccnp(r,g,b,0,0,0,(squarerows+0)); + var color00_05=l00_05.split("_"); + + var l05_55=ccnp(255,255,255,255-r,255-g,255-b,(squarerows+0)); + var color05_55=l05_55.split("_"); + + var cols0, cols5, rowy; + var cad=''; + for(var i=0;i 1) t -= 1; + if(t < 1/6) return p + (q - p) * 6 * t; + if(t < 1/2) return q; + if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; + return p; + }; + + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1/3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1/3); + } + + return [parseInt(r * 255), parseInt(g * 255), parseInt(b * 255)]; +}; +/** + * Converts an RGB color value to HSL. Conversion formula adapted from + * http://en.wikipedia.org/wiki/HSL_color_space. Assumes r, g, and b are + * contained in the set [0, 255] and returns h, s, and l in the set [0, 1]. + * + * @param {Number} r The red color value + * @param {Number} g The green color value + * @param {Number} b The blue color value + * @return {Array} The HSL representation + */ +var rgbToHsl = function(r, g, b){ + r /= 255, g /= 255, b /= 255; + var max = Math.max(r, g, b), min = Math.min(r, g, b); + var h, s, l = (max + min) / 2; + + if(max == min){ + h = s = 0; // achromatic + }else{ + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch(max){ + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + h /= 6; + } + + return [h, s, l]; +}; +function selectSquare(x,y,container){ + movecolors=0; + //$("#square"+x+"_"+y).css("border", "1px solid #000"); + // $("#square"+x+"_"+y).mouseover(function(){ + + // }).mouseout(function(){ + // $("#square"+x+"_"+y).css("border", "0px solid #000"); + // }); + var cadcolor=document.getElementById('square_'+container+(x)+'_'+y).style.backgroundColor + //document.getElementById('texta').value=cadcolor; + var treecolors=GetString(cadcolor, '(', ')'); + + //OPCTION? + var rgb=treecolors.split(', '); + //squareDump(rgb[0],rgb[1],rgb[2],'square_'+container); + if(container=='stroke') + { + Ext.get('width-slider-stroke-mask').applyStyles({'background-color':'rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')'}); + //--document.forms.formstrokedata.mestrokecolor.value=rgb[0]+','+rgb[1]+','+rgb[2]; + mestrokeColor.r=rgb[0]; + mestrokeColor.g=rgb[1]; + mestrokeColor.b=rgb[2]; + mestrokeColor.hex=rgb2hex(rgb[0],rgb[1],rgb[2]); + c.editCommand('linecolor',mestrokeColor.hex); + } + else + { + //--document.forms.formfilldata.mefillcolor.value=rgb[0]+','+rgb[1]+','+rgb[2]; + mefillColor.r=rgb[0]; mefillColor.g=rgb[1];mefillColor.b=rgb[2]; + mefillColor.hex=rgb2hex(rgb[0],rgb[1],rgb[2]); + c.editCommand('fillcolor',mefillColor.hex); + + } + Ext.get('opacity-slider-'+container).applyStyles({'background-color':'rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')'}); + Ext.get(container+'-square').applyStyles({'background-color':'rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')'}); + + //document.getElementById('texta').value=rgb[0]+' '+rgb[1]+' '+rgb[2]; + /* if(actualEdit ==1){ + fillMemory(); + }else{ + strokeMemory(); + } + $('.slider1').SliderSetValues([[Math.round(rgb[0]*45/255),0]]); + $('.slider2').SliderSetValues([[Math.round(rgb[1]*45/255),0]]); + $('.slider3').SliderSetValues([[Math.round(rgb[2]*45/255),0]]); //-(mefillColor.b*45/255) + */ + + +} +function setbe(num,id) + { + if(num == 1) + { + if(filldraw==true) + { + + Ext.get(id).dom.src ='img/theme/images/no.gif'; + filldraw=false; + //--document.forms.formfilldata.fillvisible.value='hidden'; + mefillColor.visible='hidden'; + c.editCommand('fillcolor','none'); + // $('#tape').show("slow"); + + } + else + { + Ext.get(id).dom.src ='img/theme/images/ok.gif'; + filldraw=true; + //--document.forms.formfilldata.fillvisible.value='visible'; + mefillColor.visible='visible'; + c.editCommand('fillcolor',mefillColor.hex); + // $('#tape').hide("slow"); + } + } + + if( num== 2) // stroke + { + if(strokedraw==true) + { + Ext.get(id).dom.src ='img/theme/images/no.gif'; + strokedraw=false; + //--document.forms.formstrokedata.strokevisible.value='hidden'; + mestrokeColor.visible='hidden'; + c.editCommand('linecolor','none'); + //$('#tape').show("slow"); + } + else + { + Ext.get(id).dom.src ='img/theme/images/ok.gif'; + strokedraw=true; + //--document.forms.formstrokedata.strokevisible.value='visible'; + mestrokeColor.visible='visible'; + c.editCommand('linecolor',mestrokeColor.hex); + //$('#tape').hide("slow"); + } + } + } + +/////////// + +function onColorChange(){ +c.lineColor =mestrokeColor.hex; +c.fillColor = mefillColor.hex; +c.lineWidth =mestrokeColor.width; +c.lineOpac = mestrokeColor.opacity; +c.fillOpac = mefillColor.opacity; +if(mefillColor.visible=='hidden') +{ +c.fillColor = 'none'; +} +if(mestrokeColor.visible=='hidden') +{ +c.lineColor = 'none'; +} +return; +} + +/////////// + +function setProperties(){ + + Ext.get('opacity-slider-fill').applyStyles({'background-color':'rgb('+mefillColor.r+','+mefillColor.g+','+mefillColor.b+')'}); + Ext.get('fill-square').applyStyles({'background-color':'rgb('+mefillColor.r+','+mefillColor.g+','+mefillColor.b+')'}); + squareDump(mefillColor.r,mefillColor.g,mefillColor.b,'square_fill'); + + Ext.get('opacity-slider-stroke').applyStyles({'background-color':'rgb('+mestrokeColor.r+','+mestrokeColor.g+','+mestrokeColor.b+')'}); + Ext.get('width-slider-stroke-mask').applyStyles({'background-color':'rgb('+mestrokeColor.r+','+mestrokeColor.g+','+mestrokeColor.b+')'}); + Ext.get('stroke-square').applyStyles({'background-color':'rgb('+mestrokeColor.r+','+mestrokeColor.g+','+mestrokeColor.b+')'}); + squareDump(mestrokeColor.r,mestrokeColor.g,mestrokeColor.b,'square_stroke'); + +} +////////// + + +function GetString(source, start, end){ +var st = source.indexOf(start) + start.length; +var en = source.indexOf(end, start); + return source.substring(st, en);//trimAll(source.substring(st, en)); +} + + + + +var basicColors=new Array(" ", +"ff0000","ff8800","ffcc00", +"ffff00","ccff00","88ff00","00ff00","00ff88","00ffcc","00ffff", + "00ccff","0088ff","0000ff","8800ff","cc00ff","ff00ff","ff00cc","ff0088" +); + +var str='' +for(var a=1;a.'; +} +var str1='' +for(var a=basicColors.length;a>0;a--){ + str1+=' '; +} + + + var str2=''; + var contx=0; + var conty=0; + var unitx=8; + var unity=8; + var widthsq='width: '+unitx+'px;'; + for (i = 0; i < squarerows; i++) + { + contx=0; + for (j = 0; j < squarecols; j++) + { + str2+='
    '; + contx+=unitx; + } + conty+=unity; + } + + + var str3=''; + var contx=0; + var conty=0; + var unitx=8; + var unity=8; + var widthsq='width: '+unitx+'px;'; + for (i = 0; i < squarerows; i++) + { + contx=0; + for (j = 0; j < squarecols; j++) + { + str3+='
    '; + contx+=unitx; + } + conty+=unity; + } + +///////////////////// + + var str4=''; + str4+='  '; + str4+='  '; + str4+=''; + +///////////////////// + + var str5=''; + str5+='  '; + str5+='  '; + str5+=''; + +///////////////////// + + var str6=''; //
    + str6+=''; + str6+=''; + str6+=''; + str6+=''; + str6+=''; + + var str7=''; // + str7+=''; + str7+=''; + str7+=''; + str7+=''; + str7+=''; + + str7+=''; + + +//ONREADY + +Ext.onReady(function() { + + + // Ext.get("mefillColor").dom.innerHTML=(str); + // Ext.get("mestrokeColor").dom.innerHTML=(str1); + + + + + Ext.get("fillContainer").dom.innerHTML=(str2); + Ext.get("strokeContainer").dom.innerHTML=(str3); + //Ext.get("toolbox_fill").dom.innerHTML=(str4); + //Ext.get("toolbox_stroke").dom.innerHTML=(str5); + // Ext.get("divformfill").dom.innerHTML=(str6); + //Ext.get("divformstroke").dom.innerHTML=(str7); + + + Ext.get('fill-square').applyStyles({'background-color':'rgb(255,0,0)'}); + Ext.get('stroke-square').applyStyles({'background-color':'rgb(0,0,0)'}); + //Ext.get('no-stroke-gradient').applyStyles({'background-position':'0 0'}); + //Ext.get('no-fill-gradient').applyStyles({'background-position':'0 0'}); + + var color=hslToRgb(0, 1, 0.5); + squareDump(color[0],color[1],color[2],'square_fill'); + + var color=hslToRgb(0, 0, 0); + squareDump(color[0],color[1],color[2],'square_stroke'); + + //console.log('The windows has been loaded','fill-square' ); + new Ext.Slider({ + renderTo: 'slider-fill', + width: 62, + height: 5, + minValue: -1, + maxValue: 360, + value: 10, + plugins: new Ext.ux.SliderFillColor() + }); + new Ext.Slider({ + renderTo: 'opacity-slider-fill', + width: 55, + minValue: 0, + maxValue: 100, + value: 100, + plugins: new Ext.ux.SliderOpacityFill() + }); + + new Ext.Slider({ + renderTo: 'slider-stroke', + width: 62, + minValue: -1, + maxValue: 360, + value: -1, + plugins: new Ext.ux.SliderStrokeColor() + }); + + new Ext.Slider({ + renderTo: 'opacity-slider-stroke', + width: 57, + minValue: 0, + maxValue: 100, + value: 100, + plugins: new Ext.ux.SliderOpacityStroke() + }); + new Ext.Slider({ + renderTo: 'width-slider-stroke', + width: 57, + minValue: 0, + maxValue: 50, + value: 1, + plugins: new Ext.ux.SliderWidth() + }); + + +}); + +// end ONREADY + + + + + +Ext.ux.SliderFillColor = Ext.extend(Ext.Tip, { + minWidth: 10, + offsets : [0, -10], + init : function(slider){ + slider.on('dragstart', this.onSlide, this); + slider.on('drag', this.onSlide, this); + slider.on('dragend', this.hide, this); + slider.on('destroy', this.destroy, this); + }, + + onSlide : function(slider){ + //this.show(); + //this.doAutoWidth(); + //this.el.alignTo(slider.thumb, 'b-t?', this.offsets); + if(this.getText(slider)<0 || this.getText(slider)>359) + { + var color=new Array(); + color[0]='0'; + color[1]='0'; + color[2]='0'; + + if(this.getText(slider)>359) + { + + color[0]='245'; + color[1]='245'; + color[2]='245'; + } + Ext.get('fill-square').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + Ext.get('opacity-slider-fill').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + + } + else + { + var color=hslToRgb((this.getText(slider)/359), 1, 0.5); + Ext.get('fill-square').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + Ext.get('opacity-slider-fill').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + //var color=hslToRgb((this.getText(slider)/359), 1, 0.5); + } + + squareDump(color[0],color[1],color[2],'square_fill'); + //Ext.get("fillcolor").dom.innerHTML=(color[0]+','+color[1]+','+color[2]); + //--document.forms.formfilldata.fillcolor.value=color[0]+','+color[1]+','+color[2]; + mefillColor.r=color[0]; mefillColor.g=color[1]; mefillColor.b=color[2]; + mefillColor.hex=rgb2hex(color[0],color[1],color[2]); + c.editCommand('fillcolor',mefillColor.hex); + + //Ext.get("squareFill0_0").applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + // Ext.get("squareFill0_5").applyStyles({'background-color':'rgb(255,255,255)'}); + //Ext.get("squareFill5_5").applyStyles({'background-color':'rgb('+Math.abs(color[0]-255)+','+Math.abs(color[1]-255)+','+Math.abs(color[2]-255)+')'}); + // Ext.get("squareFill5_0").applyStyles({'background-color':'rgb(0,0,0)'}); + //Ext.get("text").dom.innerHTML=color[0]; + + }, + + getText : function(slider){ + return slider.getValue(); + } +}); + + + + +Ext.ux.SliderStrokeColor = Ext.extend(Ext.Tip, { + minWidth: 10, + offsets : [0, -10], + init : function(slider){ + slider.on('dragstart', this.onSlide, this); + slider.on('drag', this.onSlide, this); + slider.on('dragend', this.hide, this); + slider.on('destroy', this.destroy, this); + }, + + onSlide : function(slider){ + //this.show(); + //this.doAutoWidth(); + //this.el.alignTo(slider.thumb, 'b-t?', this.offsets); + if(this.getText(slider)<0 || this.getText(slider)>359) + { + var color=new Array(); + color[0]='0'; + color[1]='0'; + color[2]='0'; + + if(this.getText(slider)>359) + { + + color[0]='245'; + color[1]='245'; + color[2]='245'; + } + Ext.get('stroke-square').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + Ext.get('opacity-slider-stroke').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + Ext.get('width-slider-stroke-mask').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + + } + else + { + var color=hslToRgb((this.getText(slider)/359), 1, 0.5); + Ext.get('stroke-square').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + Ext.get('opacity-slider-stroke').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + Ext.get('width-slider-stroke-mask').applyStyles({'background-color':'rgb('+color[0]+','+color[1]+','+color[2]+')'}); + + /*Ext.get('stroke-square').applyStyles({'background-color':'hsl('+this.getText(slider)+',100%,50%)'}); + Ext.get('opacity-slider-stroke').applyStyles({'background-color':'hsl('+this.getText(slider)+',100%,50%)'}); + var color=hslToRgb((this.getText(slider)/359), 1, 0.5); + Ext.get('width-slider-stroke-mask').applyStyles({'background-color':'hsl('+this.getText(slider)+',100%,50%)'}); + */ + } + + + + //Ext.get('stroke-square').applyStyles({'background-color':'hsl('+this.getText(slider)+',100%,50%)'}); + //Ext.get('opacity-slider-stroke').applyStyles({'background-color':'hsl('+this.getText(slider)+',100%,50%)'}); + + //var color=hslToRgb((this.getText(slider)/359), 1, 0.5); + squareDump(color[0],color[1],color[2],'square_stroke'); + //--document.forms.formstrokedata.strokecolor.value=color[0]+','+color[1]+','+color[2]; + mestrokeColor.r=color[0]; mestrokeColor.g=color[1]; mestrokeColor.b=color[2]; + mestrokeColor.hex=rgb2hex(color[0],color[1],color[2]); + c.editCommand('linecolor',mestrokeColor.hex); + // this.body.update(''+this.getText(slider)); + + }, + + getText : function(slider){ + return slider.getValue(); + } + }); + + + + Ext.ux.SliderOpacityFill = Ext.extend(Ext.Tip, { + minWidth: 10, + offsets : [0, -10], + init : function(slider){ + slider.on('dragstart', this.onSlide, this); + slider.on('drag', this.onSlide, this); + slider.on('dragend', this.hide, this); + slider.on('destroy', this.destroy, this); + }, + + onSlide : function(slider){ + this.show(); + this.body.update(''+this.getText(slider)+'%'); + this.doAutoWidth(); + this.el.alignTo(slider.thumb, 'b-t?', this.offsets); + changeOpacity(this.getText(slider)/100, 'opacity-slider-fill'); + //--document.forms.formfilldata.fillopacity.value=this.getText(slider); + mefillColor.opacity=this.getText(slider)/100; + c.editCommand('fillopacity',mefillColor.opacity); + }, + + getText : function(slider){ + return slider.getValue(); + } + }); + Ext.ux.SliderOpacityStroke = Ext.extend(Ext.Tip, { + minWidth: 10, + offsets : [0, -10], + init : function(slider){ + slider.on('dragstart', this.onSlide, this); + slider.on('drag', this.onSlide, this); + slider.on('dragend', this.hide, this); + slider.on('destroy', this.destroy, this); + }, + + onSlide : function(slider){ + this.show(); + this.body.update(''+this.getText(slider)+'%'); + this.doAutoWidth(); + this.el.alignTo(slider.thumb, 'b-t?', this.offsets); + changeOpacity(this.getText(slider)/100, 'opacity-slider-stroke'); + //--document.forms.formstrokedata.strokeopacity.value=this.getText(slider); + mestrokeColor.opacity=this.getText(slider)/100; + c.editCommand('lineopacity',mestrokeColor.opacity); + }, + + getText : function(slider){ + return slider.getValue(); + } + }); + + Ext.ux.SliderWidth = Ext.extend(Ext.Tip, { + minWidth: 10, + offsets : [0, -10], + init : function(slider){ + slider.on('dragstart', this.onSlide, this); + slider.on('drag', this.onSlide, this); + slider.on('dragend', this.hide, this); + slider.on('destroy', this.destroy, this); + }, + + onSlide : function(slider){ + this.show(); + this.body.update(''+this.getText(slider)+'px'); + this.doAutoWidth(); + this.el.alignTo(slider.thumb, 'b-t?', this.offsets); + Ext.get('width-slider-stroke-mask').applyStyles({'width':this.getText(slider)+'px'}); + //--document.forms.formstrokedata.strokewidth.value=this.getText(slider); + mestrokeColor.width=this.getText(slider); + c.editCommand('linewidth',mestrokeColor.width); + }, + + getText : function(slider){ + return slider.getValue(); + } + }); + + + + + +//=================================== +//=================================== + +function select(select,action,type){ + var id=select.id; + if(type==0){var text='lineal';} + if(type==1){var text='radial';} + if(type==2){var text='no';} + // && mode_render_fill!=type + if(action==0 && mode_render_fill!=type) + { + Ext.get(id).applyStyles({'background-position':'0 12px'}); + + + } + if(action==1 && mode_render_fill!=type) + { + Ext.get(id).applyStyles({'background-position':'0 0'}); + + } + if(action==2) + { + mode_render_fill=type; + if(id.indexOf('fill')!=-1) + { + Ext.get(prevselect_fill).applyStyles({'background-position':'0 12px'}); + prevselect_fill=id; + //--document.forms.formfilldata.fillgradient.value=text; + }else{ + + Ext.get(prevselect_stroke).applyStyles({'background-position':'0 12px'}); + prevselect_stroke=id; + //--document.forms.formstrokedata.strokegradient.value=text; + } + Ext.get(id).applyStyles({'background-position':'0 0'}); + + + } +} + +function changeOpacity(opacity, id) + { + var object = document.getElementById(id).style; + object.opacity = (opacity ); + object.MozOpacity = (opacity); + object.KhtmlOpacity = (opacity); + object.filter = "alpha(opacity=" + parseFloat(opacity*100) + ")"; + } + + //print() function will just create a window similar to the default alert function within the page. +//Arguments +// txt - The message that appears in the box. +// title - The title of the box(OPTIONAL) + +/* +if(typeof console != 'object') { +console = {}; +console.log = function(){return false;}; +} + + +///////////////// +var Docs = function(){ +return { +init : function(){ +var loading = Ext.get('loading'); +var mask = Ext.get('loading-mask'); +mask.setOpacity(.1); +mask.shift({ +xy:loading.getXY(), +width:loading.getWidth(), +height:loading.getHeight(), +remove:true, +duration:1, +opacity:.8, +easing:'bounceOut', +callback : function(){ +loading.fadeOut({duration:.1,remove:true}); +} +}); +} +}; +}(); +Ext.onReady(Docs.init, Docs, true); + */ \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/onlypaths.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/onlypaths.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,990 @@ +/*---------------------------------------------------------------------------- + ONLYPATHS 0.1 + from + RICHDRAW 1.0 + Vector Graphics Drawing Script + ----------------------------------------------------------------------------- + Created by Mark Finkle (mark.finkle@gmail.com) + Implementation of simple vector graphic drawing control using SVG or VML. + ----------------------------------------------------------------------------- + Copyright (c) 2006 Mark Finkle + 2008 Antimatter15 + 2008 Josep_ssv + + This program is free software; you can redistribute it and/or modify it + under the terms of the MIT License. + + 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. + ----------------------------------------------------------------------------- + Dependencies: (SVG or VML rendering implementations) + History: + 2006-04-05 | Created richdraw.js + 2008 | Update content and added framework ExtJS + 2008-06-08 | Rename onlypaths.js + --------------------------------------------------------------------------*/ + +var xpArray=new Array(); +var ypArray=new Array(); +var setPoints=new Array(); + +var inout='';//true; +var typeTransform=''; + +var contmove=0; +var zoomx=0; +var zoomy=0; +var zoomscale=1; +var zoommode='frame'; //more minus frame + +// + +var data_path_close=true; +var data_text_family=''; +var data_text_size=19 +var data_text_messaje=''; +var data_image_href=''; + +var numClics=0; + +//////////// + +function RichDrawEditor(elem, renderer) { + this.container = elem; + this.gridX = 10; + this.gridY = 10; + this.mouseDownX = 0; + this.mouseDownY = 0; + this.clicX = 0; + this.clicY = 0; + this.nowDraw=false; + this.mode = ''; + this.fillColor = ''; + this.lineColor = ''; + this.lineWidth = ''; + this.selected = null; + this.squareSelect = null; + this.focusin = null; + this.lineOpac = 1; + this.fillOpac = 1; + this.gridWidth = 1; + this.opac = 1; + //++ ; + this.text_messaje=""; + this.text_size=19; + this.text_family="Arial"; + + this.pathsEdit = false; + this.previusBox=null; + this.initialPath=''; + this.clipboard=null; + this.moveNow=true; + + this.selectedBounds = { x:0, y:0, width:0, height: 0 }; + this.onselect = function() {} + this.onunselect = function() {} + + this.logtext = ""; + + this.renderer = renderer; + this.renderer.init(this.container); + this.renderer.editor = this; + + this.initialUnit=1; + this.unit=this.initialUnit; + + + this.inputxy = []; + this.viewInputxy = []; + this.onViewInputXY = function(){}; + this.onInputXY = function(){}; + + + //Ext.get(this.container).on('keypress', function(e){alert(e.keyCode);}); + + Ext.get(this.container).on( "mousedown", this.onMouseDown,this); + Ext.get(this.container).on( "mouseup", this.onMouseUp,this); + Ext.get(this.container).on( "mousemove", this.onMouseMove,this); + //Ext.get(this.container).on( "dblclick", this.onEndLine,this); + Ext.get(this.container).on( "selectstart", this.onSelectStart,this); + + + +} + +RichDrawEditor.prototype.log = function(logtext){ + if(document.forms[0].code){ + document.forms[0].code.value = logtext + } +} + + +RichDrawEditor.prototype.getshapes = function(){ + return this.renderer.getshapes(); +} + +RichDrawEditor.prototype.info = function(shape){ + return this.renderer.info(shape) +} + + +RichDrawEditor.prototype.clearWorkspace = function() { + this.container.innerHTML = ''; +}; + +RichDrawEditor.prototype.deleteSelection = function() { + if (this.selected) { + this.renderer.remove(this.container.ownerDocument.getElementById('tracker')); + this.renderer.remove(this.selected); + this.selected = null; + } +}; + +RichDrawEditor.prototype.toFront = function(order) { + if (this.selected) { + this.renderer.index(this.selected, order); + } +}; + +RichDrawEditor.prototype.deleteAll = function() { + this.renderer.removeAll(); +}; + + +RichDrawEditor.prototype.select = function(elem) { + if (elem == this.selected){ return; } + this.selected = elem; + this.renderer.showTracker(this.selected,this.pathsEdit); + this.onselect(this); +}; + + +RichDrawEditor.prototype.unselect = function() { + if (this.selected) { + this.renderer.remove(this.container.ownerDocument.getElementById('tracker')); + this.selected = null; + this.onunselect(this); + } +}; + +RichDrawEditor.prototype.getSelectedElement = function() { + return this.selected; +}; + +RichDrawEditor.prototype.toCurve = function() { + this.renderer.tocurve(); +} + +RichDrawEditor.prototype.submitShape = function(data) { + if (this.mode != 'select') { + setMode('path', 'Path'); + this.actualStyle(); + onColorChange(); + this.selected = this.renderer.create(this.mode, this.fillColor, this.lineColor, this.fillOpac, this.lineOpac, this.lineWidth, this.mouseDownX, this.mouseDownY, 1, 1,this.textMessaje,this.textSize,this.textFamily,this.imageHref, data, '', ''); + this.selected.id = 'shape:' + createUUID(); + Ext.get(this.selected).on("mousedown", this.onHit,this); + setMode('select', 'Select'); + } else { + this.renderer.transformShape(this.selected,data,null); + this.renderer.remove(this.container.ownerDocument.getElementById('tracker')); + this.renderer.showTracker(this.selected,this.pathsEdit); + } +}; + +RichDrawEditor.prototype.setGrid = function(horizontal, vertical) { + this.gridX = horizontal; + this.gridY = vertical; + this.gridWidth = (vertical+horizontal)/2; //average. ideally, it should be the same +}; + + + +RichDrawEditor.prototype.actualStyle = function() +{ + this.textMessaje=$('option_text_message').value; + this.textSize=parseFloat($('option_text_size').value); + this.textFamily=$('option_text_family').value; + this.pathClose = $('option_path_close').checked; + this.imageHref = $('option_image_href').value; + + return; +}; + + +RichDrawEditor.prototype.editCommand = function(cmd, value) +{ + if (cmd == 'mode') + { + this.mode = value; + } + else if (this.selected == null) + { + if (cmd == 'fillcolor') + { + this.fillColor = value; + } + else if (cmd == 'linecolor') + { + this.lineColor = value; + } + else if (cmd == 'linewidth') + { + this.lineWidth = parseInt(value) + 'px'; + } + else if (cmd == 'fillopacity') { + this.fillOpac = parseInt(value); + } + else if (cmd == 'lineopacity') { + this.lineOpac = parseInt(value); + } + } + else + { + this.renderer.editCommand(this.selected, cmd, value); + } +} + + +RichDrawEditor.prototype.queryCommand = function(cmd) +{ + if (cmd == 'mode') + { + return this.mode; + } + else if (this.selected == null) + { + if (cmd == 'fillcolor') + { + return this.fillColor; + } + else if (cmd == 'linecolor') + { + return this.lineColor; + } + else if (cmd == 'linewidth') + { + return this.lineWidth; + } + else if (cmd == 'fillopacity') + { + return this.fillOpac; + } + else if (cmd == 'lineopacity') + { + return this.fillOpac; + } + } + else + { + return this.renderer.queryCommand(this.selected, cmd); + } +} + + + + +RichDrawEditor.prototype.onSelectStart = function(event) { + return false +} + +RichDrawEditor.prototype.onMouseDown = function(event) { + + clockdata(); + + //MODE NO SELECT + if (this.mode != 'select') + { + var modeUsed=0; + if (this.mode == 'zoom') + { + var width=this.gridWidth; + contmove=0; + this.setGrid(width, width); + this.unselect(); + xpArray=new Array(); + ypArray=new Array(); + this.mouseDownX = this.viewInputxy[0]; + this.mouseDownY = this.viewInputxy[1]; + xpArray.push(this.mouseDownX); + ypArray.push(this.mouseDownY); + if(zoommode=='window'){ + this.squareSelect= this.renderer.create('rect', 'none', "#000000", 1, 1, 1, this.mouseDownX, this.mouseDownY, 1, 1,this.textMessaje,this.textSize,this.textFamily,this.imageHref,'M0,0 1,1', '', ''); + this.squareSelect.id = 'squareSelectID'; + Ext.get(this.squareSelect).on( "mousedown", this.onHit,this); + Ext.get(this.squareSelect).on( "mousemove", this.onDraw,this); + + }else{ + this.renderer.zoom(this.mouseDownX, this.mouseDownY); + } + modeUsed=1; + } //end zoom + if (this.mode == 'controlpath') + { + this.actualStyle(); + onColorChange(); + if(numClics<=0) + { + this.nowDraw=true; + setPoints=new Array(); + var width=this.gridWidth; + contmove=0; + this.setGrid(width, width); + this.unselect(); + xpArray=new Array(); + ypArray=new Array(); + this.mouseDownX = this.viewInputxy[0]; + this.mouseDownY = this.viewInputxy[1]; + xpArray.push(this.mouseDownX); + ypArray.push(this.mouseDownY); + setPoints.push(this.mouseDownX+','+this.mouseDownY); + onColorChange(); + this.actualStyle(); + this.selected = this.renderer.create(this.mode, this.fillColor, this.lineColor, this.fillOpac, this.lineOpac, this.lineWidth, this.mouseDownX, this.mouseDownY, 1, 1,this.textMessaje,this.textSize,this.textFamily,this.imageHref, 'M0,0 1,1', '', ''); + + this.selected.id = 'shape:' + createUUID(); + Ext.get(this.selected).on( "mousedown", this.onHit,this); + this.log(this.selected.id); + + Ext.get(this.selected).on( "dblclick", this.onEndLine,this); + Ext.get(this.container).on( "mousemove", this.onDraw,this); + numClics++; + } + else + { + var coord=this.viewInputxy; + var X=parseFloat(coord[0]); + var Y=parseFloat(coord[1]); + setPoints.push(X+','+Y); + this.renderer.clic(this.selected); + numClics++; + } + modeUsed=1; + } //end mode controlpath + if (modeUsed == 0) + { + var width=this.gridWidth; + contmove=0; + this.setGrid(width, width); + this.unselect(); + xpArray=new Array(); + ypArray=new Array(); + this.mouseDownX = this.viewInputxy[0]; + this.mouseDownY= this.viewInputxy[1]; + + xpArray.push(this.mouseDownX); + ypArray.push(this.mouseDownY); + + this.unselect(); + onColorChange(); + this.actualStyle(); + this.selected = this.renderer.create(this.mode, this.fillColor, this.lineColor, this.fillOpac, this.lineOpac, this.lineWidth, this.mouseDownX, this.mouseDownY, 1, 1,this.textMessaje,this.textSize,this.textFamily,this.imageHref,'M0,0 1,1', '', ''); + this.selected.id = 'shape:' + createUUID(); + Ext.get(this.selected).on( "mousedown", this.onHit,this); + Ext.get(this.container).on( "mousemove", this.onDraw,this); + } + } + else //----- MODE SELECT + { + if(this.container.ownerDocument.getElementById('tracker')) this.renderer.remove(this.container.ownerDocument.getElementById('tracker')); + + + var snappedX=this.viewInputxy[0]; + var snappedY=this.viewInputxy[1] + + if (this.mouseDownX != snappedX || this.mouseDownY != snappedY) + { + if(this.selected!=null && typeTransform=='Translate' ) + { + + Ext.get(this.container).un("mousemove", this.onDrag); + this.unselect(); + } + } + + if(typeTransform=='Translate') + { + inout='move';//true; + this.renderer.remove(this.container.ownerDocument.getElementById('tracker')); + + } + if(typeTransform=='Scale' || typeTransform=='Rotate') + { + inout='rotate_escale';//false + Ext.get(this.container).on( "mousemove", this.onDrag,this); + //Ext.get(this.selected).on( "mousedown", this.onHit,this); + this.renderer.remove(this.container.ownerDocument.getElementById('tracker')); + } + } //end mode select + return false; +}; + + +RichDrawEditor.prototype.onMouseUp = function(event) +{ + //MODE NO SELECT + if (this.mode != 'select') + { + if(this.mode == 'controlpath') + { + + } + else + { + //ZOOM + if (this.mode == 'zoom') + { + var snappedX=this.viewInputxy[0]; + var snappedY=this.viewInputxy[1]; + this.renderer.zoom(snappedX, snappedY); + this.renderer.remove(this.container.ownerDocument.getElementById('squareSelectID')); + Ext.get(this.container).un("mousemove", this.onDraw); + this.squareSelect = null; + this.selected = null; + }else{ + Ext.get(this.container).un("mousemove", this.onDraw); + this.selected = null; + } + } + } + else //MODE SELECT + { + Ext.get(this.container).un("mousemove", this.onDraw); //or drag + Ext.get(this.container).un("mousemove", this.onDrag); + moveNow=false; + contmove=0; + if(typeTransform=="Rotate" || typeTransform=="Scale" ) + { + this.renderer.showTracker(this.selected,this.pathsEdit); + typeTransform==''; + } + if(typeTransform=="Translate" ) + { + this.renderer.showTracker(this.selected,this.pathsEdit); + typeTransform=''; + contmove=0; + + } + + if(inout=='multiSelect') + { + + } + + typeTransform=''; + } +}; + + +RichDrawEditor.prototype.onDrag = function(event) { + + moveNow=true; + //var offset = Ext.get(this.selected).getXY() + //var deltaX = this.viewInputxy[0] - (this.viewInputxy[0] - this.mouseDownX); + //var deltaY = this.viewInputxy[1] - (this.viewInputxy[1] - this.mouseDownY); + //var deltaX = offset[0] ; + //var deltaY = offset[1] ; + + var deltaX = this.viewInputxy[0] ; + var deltaY = this.viewInputxy[1] ; + var deltaX= this.selectedBounds['x']-this.mouseDownX + this.viewInputxy[0]; + var deltaY= this.selectedBounds['y']-this.mouseDownY + this.viewInputxy[1]; + + //var deltX = this.viewInputxy[0]+(this.mouseDownX-this.viewInputxy[0]); + //var deltY = this.viewInputxy[1]+(this.mouseDownY-this.viewInputxy[1]); + + var modeUsed=0; + if(this.mode == 'zoom') + { + Ext.get(this.container).getXY(); + this.renderer.resize(this.squareSelect, this.clicX,this.clicY, this.viewInputxy[0], this.viewInputxy[1]); + modeUsed=1; + } + if(this.mode == 'controlpath') + { + modeUsed=1; + } + + if(modeUsed==0) + { + if(inout=='multiSelect') + { + this.renderer.showMultiSelect(this.mouseDownX, this.mouseDownY); + } + if(typeTransform=="Translate") + { + Ext.get(this.container).getXY(); + //this.log(this.mouseDownX+' '+event.getXY()[0]+' '+ this.selectedBounds.x +'contmove'+contmove); + //this.renderer.move(this.selected, this.viewInputxy[0],this.viewInputxy[1],this.clicX,this.clicY); + //this.renderer.move(this.selected, this.viewInputxy[0],this.viewInputxy[1], this.mouseDownX, this.mouseDownY); + this.renderer.move(this.selected, deltaX, deltaY, this.mouseDownX, this.mouseDownY); + } + if(typeTransform=="Rotate") + { + this.renderer.rotateShape(this.selected, this.previusBox,deltaX, deltaY); + } + if(typeTransform=="Scale") + { + this.renderer.scaleShape(this.selected, this.previusBox, this.selectedBounds.x + deltaX, this.selectedBounds.y + deltaY); + } + } +}; + + +RichDrawEditor.prototype.onResize = function(event) { + var deltaX = this.viewInputxy[0] - this.mouseDownX; + var deltaY = this.viewInputxy[1] - this.mouseDownY; + this.renderer.track(handle, deltaX, deltaY); + show_tracker(); +}; + + +RichDrawEditor.prototype.onDraw = function(event) { + if (this.selected == null) + { + if(this.squareSelect != null) + { + var offset = Ext.get(this.container).getXY() + var snappedX = this.viewInputxy[0];//Math.round(zoomx+((event.getXY()[0] - offset[0]) / this.gridX) * this.gridX); + var snappedY = this.viewInputxy[1];//Math.round(zoomy+((event.getXY()[1] - offset[1]) / this.gridY) * this.gridY); + this.renderer.resize(this.squareSelect, this.mouseDownX, this.mouseDownY, snappedX, snappedY); + } + else + { + return; + } + } + else + { + + var snappedX = this.viewInputxy[0];//Math.round(zoomx+((event.getXY()[0] - offset[0]) / this.gridX) * this.gridX); + var snappedY = this.viewInputxy[1];// Math.round(zoomy+((event.getXY()[1] - offset[1]) / this.gridY) * this.gridY); + this.renderer.resize(this.selected, this.mouseDownX, this.mouseDownY, snappedX, snappedY); + + } +}; + +RichDrawEditor.prototype.onRotate = function(event) { + if (this.selected == null) + { + + }else{ + } +}; + +RichDrawEditor.prototype.onScale = function(event) { + if (this.selected == null) + { + + }else{ + } +}; + +RichDrawEditor.prototype.onTransform = function(event) { + if (this.selected == null) + { + + }else{ + } +}; + +RichDrawEditor.prototype.onMouseMove = function(event) { + var offset = Ext.get(c.container).getXY() + var x = Math.round(event.getXY()[0] - offset[0]); + var y = Math.round(event.getXY()[1] - offset[1]); + if (ie || opera) + { + proporx =1; + propory =1; + zoominit2='1 1 1 1'; + this.inputxy = [x,y]; + this.viewInputxy = [x,y]; + this.onInputXY(x,y); + this.onViewInputXY(x,y); + } + else + { + //////////// + + var X = x ; // x cursor on canvas + var Y = y ; // y cursor on canvas + + var Ex = parseFloat(tokensCanvas[2]) ; // (end) width canvas. Corner down-left + var Ey = parseFloat(tokensCanvas[3]) ; // (end) height canvas. Corner up-right + + var zoomX = 0 ; // ? x unknown + var zoomY = 0 ; // ? y unknown + + var sx = parseFloat(tokensZoom[0]) ; // (start) x origin of the coord zoom. + var sy = parseFloat(tokensZoom[1]) ; // (start) y origin of the coord zoom. + var Wz = parseFloat(tokensZoom[2]) ; // width zoom + var Hz = parseFloat(tokensZoom[3]) ; // height zoom + + var ex = parseFloat(sx + Wz) ; // (end) x width zoom. Corner down-left + var ey = parseFloat(sy + Hz) ; // (end) y height zoom. Corner up-right + + var r = X / Ex ; // 0 to 1 + var s = Y / Ey ; // 0 to 1 + this.unit = this.initialUnit * (Hz/Ey) ; // 0 to 1 + zoomX= (1 - r) * sx + ex * r; + zoomY= (1 - s) * sy + ey * s; + + this.inputxy = [x,y]; + this.viewInputxy = [zoomX,zoomY]; + this.onInputXY(x,y); + this.onViewInputXY(zoomX,zoomY); + } + +}; + + +RichDrawEditor.prototype.onHit = function(event) { + Ext.get(this.container).un("mousemove", this.onDrag); + + if(this.mode == 'select') + { + if (event.stopPropagation) event.stopPropagation(); // DOM Level 2 + else event.cancelBubble = true; // IE + // Now prevent any default action. + if (event.preventDefault) event.preventDefault(); // DOM Level 2 + else event.returnValue = false; // IE + + if(inout=='multiSelect') + { + + } + else + { + //Ext.get(this.container).un("mousemove", this.onDrag); + typeTransform="Translate"; + contmove=0; + var width=this.gridWidth; + + this.setGrid(width, width); + + this.select(event.getTarget()); + this.previusBox=this.selected; + + this.renderer.getProperties(this.selected); + //var offset = Ext.get(this.container).getXY(); + + this.selectedBounds = this.renderer.bounds(this.selected); + + this.mouseDownX =this.viewInputxy[0];//x;// offset[0];//zoomx+snappedX; + this.mouseDownY =this.viewInputxy[1];//y;// offset[1];//zoomy+snappedY; + this.log(this.gridX); + this.renderer.info(this.selected); + if(this.container.ownerDocument.getElementById('tracker')) + { + this.renderer.remove(this.container.ownerDocument.getElementById('tracker')); + } + Ext.get(this.container).on( "mousemove", this.onDrag,this); + } + } + else + { + this.mouseDownX = this.viewInputxy[0];//Math.round(zoomx+((event.getXY()[0] - offset[0]) / this.gridX) * this.gridX); + this.mouseDownY = this.viewInputxy[1];//Math.round(zoomy+((event.getXY()[1] - offset[1]) / this.gridY) * this.gridY); + Ext.get(this.container).on( "mousemove", this.onDrag,this); + + } +}; + + +RichDrawEditor.prototype.onClic = function(event) { + if(this.mode == 'controlpath') + { + + } + else + { + + } +}; + +RichDrawEditor.prototype.reflect = function(HorV) { + this.selected=this.renderer.reflect(HorV); + this.selected.id = 'shape:' + createUUID(); + Ext.get(this.selected).on( "mousedown", this.onHit,this); +} + +RichDrawEditor.prototype.onEndLine = function(event) { + + if(this.mode == 'controlpath') + { + //alert(numClics); + numClics=0; + Ext.get(this.container).un("mousemove", this.onDraw); + //Ext.get(this.selected).un( "mousedown", this.onHit,this); + //Ext.get(this.selected).un( "dblclick", this.onEndLine); + //Ext.get(this.container).un( "mousemove", this.onDraw,this); + //Ext.get(this.container).un( "mousemove", this.onDrag,this); + // Ext.get(this.selected).un( "mousedown", this.onHit); + + // Ext.get(this.container).un("mousemove", this.onDraw,this); + //Ext.get(this.container).un("mousemove", this.onDrag,this); + this.selected = null; + + + } + else + { + + this.nowDraw=false; + typeTransform=''; + } +}; + +function noselect(){ +} + +function createUUID() +{ + return [4, 2, 2, 2, 6].map(function(length) { + var uuidpart = ""; + for (var i=0; i + * + * THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff + * against the source tree, available from the Prototype darcs repository. + * + * Prototype is freely distributable under the terms of an MIT-style license. + * + * For details, see the Prototype web site: http://prototype.conio.net/ + * +/*--------------------------------------------------------------------------*/ + +var Prototype = { + Version: '1.4.0', + ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)', + + emptyFunction: function() {}, + K: function(x) {return x} +} + +var Class = { + create: function() { + return function() { + this.initialize.apply(this, arguments); + } + } +} + +var Abstract = new Object(); + +Object.extend = function(destination, source) { + for (property in source) { + destination[property] = source[property]; + } + return destination; +} + +Object.inspect = function(object) { + try { + if (object == undefined) return 'undefined'; + if (object == null) return 'null'; + return object.inspect ? object.inspect() : object.toString(); + } catch (e) { + if (e instanceof RangeError) return '...'; + throw e; + } +} + +Function.prototype.bind = function() { + var __method = this, args = $A(arguments), object = args.shift(); + return function() { + return __method.apply(object, args.concat($A(arguments))); + } +} + +Function.prototype.bindAsEventListener = function(object) { + var __method = this; + return function(event) { + return __method.call(object, event || window.event); + } +} + +Object.extend(Number.prototype, { + toColorPart: function() { + var digits = this.toString(16); + if (this < 16) return '0' + digits; + return digits; + }, + + succ: function() { + return this + 1; + }, + + times: function(iterator) { + $R(0, this, true).each(iterator); + return this; + } +}); + +var Try = { + these: function() { + var returnValue; + + for (var i = 0; i < arguments.length; i++) { + var lambda = arguments[i]; + try { + returnValue = lambda(); + break; + } catch (e) {} + } + + return returnValue; + } +} + +/*--------------------------------------------------------------------------*/ + +var PeriodicalExecuter = Class.create(); +PeriodicalExecuter.prototype = { + initialize: function(callback, frequency) { + this.callback = callback; + this.frequency = frequency; + this.currentlyExecuting = false; + + this.registerCallback(); + }, + + registerCallback: function() { + setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + onTimerEvent: function() { + if (!this.currentlyExecuting) { + try { + this.currentlyExecuting = true; + this.callback(); + } finally { + this.currentlyExecuting = false; + } + } + } +} + +/*--------------------------------------------------------------------------*/ + +function $() { + var elements = new Array(); + + for (var i = 0; i < arguments.length; i++) { + var element = arguments[i]; + if (typeof element == 'string') + element = document.getElementById(element); + + if (arguments.length == 1) + return element; + + elements.push(element); + } + + return elements; +} +Object.extend(String.prototype, { + stripTags: function() { + return this.replace(/<\/?[^>]+>/gi, ''); + }, + + stripScripts: function() { + return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); + }, + + extractScripts: function() { + var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); + var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); + return (this.match(matchAll) || []).map(function(scriptTag) { + return (scriptTag.match(matchOne) || ['', ''])[1]; + }); + }, + + evalScripts: function() { + return this.extractScripts().map(eval); + }, + + escapeHTML: function() { + var div = document.createElement('div'); + var text = document.createTextNode(this); + div.appendChild(text); + return div.innerHTML; + }, + + unescapeHTML: function() { + var div = document.createElement('div'); + div.innerHTML = this.stripTags(); + return div.childNodes[0] ? div.childNodes[0].nodeValue : ''; + }, + + toQueryParams: function() { + var pairs = this.match(/^\??(.*)$/)[1].split('&'); + return pairs.inject({}, function(params, pairString) { + var pair = pairString.split('='); + params[pair[0]] = pair[1]; + return params; + }); + }, + + toArray: function() { + return this.split(''); + }, + + camelize: function() { + var oStringList = this.split('-'); + if (oStringList.length == 1) return oStringList[0]; + + var camelizedString = this.indexOf('-') == 0 + ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) + : oStringList[0]; + + for (var i = 1, len = oStringList.length; i < len; i++) { + var s = oStringList[i]; + camelizedString += s.charAt(0).toUpperCase() + s.substring(1); + } + + return camelizedString; + }, + + inspect: function() { + return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'"; + } +}); + +String.prototype.parseQuery = String.prototype.toQueryParams; + +var $break = new Object(); +var $continue = new Object(); + +var Enumerable = { + each: function(iterator) { + var index = 0; + try { + this._each(function(value) { + try { + iterator(value, index++); + } catch (e) { + if (e != $continue) throw e; + } + }); + } catch (e) { + if (e != $break) throw e; + } + }, + + all: function(iterator) { + var result = true; + this.each(function(value, index) { + result = result && !!(iterator || Prototype.K)(value, index); + if (!result) throw $break; + }); + return result; + }, + + any: function(iterator) { + var result = true; + this.each(function(value, index) { + if (result = !!(iterator || Prototype.K)(value, index)) + throw $break; + }); + return result; + }, + + collect: function(iterator) { + var results = []; + this.each(function(value, index) { + results.push(iterator(value, index)); + }); + return results; + }, + + detect: function (iterator) { + var result; + this.each(function(value, index) { + if (iterator(value, index)) { + result = value; + throw $break; + } + }); + return result; + }, + + findAll: function(iterator) { + var results = []; + this.each(function(value, index) { + if (iterator(value, index)) + results.push(value); + }); + return results; + }, + + grep: function(pattern, iterator) { + var results = []; + this.each(function(value, index) { + var stringValue = value.toString(); + if (stringValue.match(pattern)) + results.push((iterator || Prototype.K)(value, index)); + }) + return results; + }, + + include: function(object) { + var found = false; + this.each(function(value) { + if (value == object) { + found = true; + throw $break; + } + }); + return found; + }, + + inject: function(memo, iterator) { + this.each(function(value, index) { + memo = iterator(memo, value, index); + }); + return memo; + }, + + invoke: function(method) { + var args = $A(arguments).slice(1); + return this.collect(function(value) { + return value[method].apply(value, args); + }); + }, + + max: function(iterator) { + var result; + this.each(function(value, index) { + value = (iterator || Prototype.K)(value, index); + if (value >= (result || value)) + result = value; + }); + return result; + }, + + min: function(iterator) { + var result; + this.each(function(value, index) { + value = (iterator || Prototype.K)(value, index); + if (value <= (result || value)) + result = value; + }); + return result; + }, + + partition: function(iterator) { + var trues = [], falses = []; + this.each(function(value, index) { + ((iterator || Prototype.K)(value, index) ? + trues : falses).push(value); + }); + return [trues, falses]; + }, + + pluck: function(property) { + var results = []; + this.each(function(value, index) { + results.push(value[property]); + }); + return results; + }, + + reject: function(iterator) { + var results = []; + this.each(function(value, index) { + if (!iterator(value, index)) + results.push(value); + }); + return results; + }, + + sortBy: function(iterator) { + return this.collect(function(value, index) { + return {value: value, criteria: iterator(value, index)}; + }).sort(function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }).pluck('value'); + }, + + toArray: function() { + return this.collect(Prototype.K); + }, + + zip: function() { + var iterator = Prototype.K, args = $A(arguments); + if (typeof args.last() == 'function') + iterator = args.pop(); + + var collections = [this].concat(args).map($A); + return this.map(function(value, index) { + iterator(value = collections.pluck(index)); + return value; + }); + }, + + inspect: function() { + return '#'; + } +} + +Object.extend(Enumerable, { + map: Enumerable.collect, + find: Enumerable.detect, + select: Enumerable.findAll, + member: Enumerable.include, + entries: Enumerable.toArray +}); +var $A = Array.from = function(iterable) { + if (!iterable) return []; + if (iterable.toArray) { + return iterable.toArray(); + } else { + var results = []; + for (var i = 0; i < iterable.length; i++) + results.push(iterable[i]); + return results; + } +} + +Object.extend(Array.prototype, Enumerable); + +Array.prototype._reverse = Array.prototype.reverse; + +Object.extend(Array.prototype, { + _each: function(iterator) { + for (var i = 0; i < this.length; i++) + iterator(this[i]); + }, + + clear: function() { + this.length = 0; + return this; + }, + + first: function() { + return this[0]; + }, + + last: function() { + return this[this.length - 1]; + }, + + compact: function() { + return this.select(function(value) { + return value != undefined || value != null; + }); + }, + + flatten: function() { + return this.inject([], function(array, value) { + return array.concat(value.constructor == Array ? + value.flatten() : [value]); + }); + }, + + without: function() { + var values = $A(arguments); + return this.select(function(value) { + return !values.include(value); + }); + }, + + indexOf: function(object) { + for (var i = 0; i < this.length; i++) + if (this[i] == object) return i; + return -1; + }, + + reverse: function(inline) { + return (inline !== false ? this : this.toArray())._reverse(); + }, + + shift: function() { + var result = this[0]; + for (var i = 0; i < this.length - 1; i++) + this[i] = this[i + 1]; + this.length--; + return result; + }, + + inspect: function() { + return '[' + this.map(Object.inspect).join(', ') + ']'; + } +}); +var Hash = { + _each: function(iterator) { + for (key in this) { + var value = this[key]; + if (typeof value == 'function') continue; + + var pair = [key, value]; + pair.key = key; + pair.value = value; + iterator(pair); + } + }, + + keys: function() { + return this.pluck('key'); + }, + + values: function() { + return this.pluck('value'); + }, + + merge: function(hash) { + return $H(hash).inject($H(this), function(mergedHash, pair) { + mergedHash[pair.key] = pair.value; + return mergedHash; + }); + }, + + toQueryString: function() { + return this.map(function(pair) { + return pair.map(encodeURIComponent).join('='); + }).join('&'); + }, + + inspect: function() { + return '#'; + } +} + +function $H(object) { + var hash = Object.extend({}, object || {}); + Object.extend(hash, Enumerable); + Object.extend(hash, Hash); + return hash; +} +ObjectRange = Class.create(); +Object.extend(ObjectRange.prototype, Enumerable); +Object.extend(ObjectRange.prototype, { + initialize: function(start, end, exclusive) { + this.start = start; + this.end = end; + this.exclusive = exclusive; + }, + + _each: function(iterator) { + var value = this.start; + do { + iterator(value); + value = value.succ(); + } while (this.include(value)); + }, + + include: function(value) { + if (value < this.start) + return false; + if (this.exclusive) + return value < this.end; + return value <= this.end; + } +}); + +var $R = function(start, end, exclusive) { + return new ObjectRange(start, end, exclusive); +} + +var Ajax = { + getTransport: function() { + return Try.these( + function() {return new ActiveXObject('Msxml2.XMLHTTP')}, + function() {return new ActiveXObject('Microsoft.XMLHTTP')}, + function() {return new XMLHttpRequest()} + ) || false; + }, + + activeRequestCount: 0 +} + +Ajax.Responders = { + responders: [], + + _each: function(iterator) { + this.responders._each(iterator); + }, + + register: function(responderToAdd) { + if (!this.include(responderToAdd)) + this.responders.push(responderToAdd); + }, + + unregister: function(responderToRemove) { + this.responders = this.responders.without(responderToRemove); + }, + + dispatch: function(callback, request, transport, json) { + this.each(function(responder) { + if (responder[callback] && typeof responder[callback] == 'function') { + try { + responder[callback].apply(responder, [request, transport, json]); + } catch (e) {} + } + }); + } +}; + +Object.extend(Ajax.Responders, Enumerable); + +Ajax.Responders.register({ + onCreate: function() { + Ajax.activeRequestCount++; + }, + + onComplete: function() { + Ajax.activeRequestCount--; + } +}); + +Ajax.Base = function() {}; +Ajax.Base.prototype = { + setOptions: function(options) { + this.options = { + method: 'post', + asynchronous: true, + parameters: '' + } + Object.extend(this.options, options || {}); + }, + + responseIsSuccess: function() { + return this.transport.status == undefined + || this.transport.status == 0 + || (this.transport.status >= 200 && this.transport.status < 300); + }, + + responseIsFailure: function() { + return !this.responseIsSuccess(); + } +} + +Ajax.Request = Class.create(); +Ajax.Request.Events = + ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; + +Ajax.Request.prototype = Object.extend(new Ajax.Base(), { + initialize: function(url, options) { + this.transport = Ajax.getTransport(); + this.setOptions(options); + this.request(url); + }, + + request: function(url) { + var parameters = this.options.parameters || ''; + if (parameters.length > 0) parameters += '&_='; + + try { + this.url = url; + if (this.options.method == 'get' && parameters.length > 0) + this.url += (this.url.match(/\?/) ? '&' : '?') + parameters; + + Ajax.Responders.dispatch('onCreate', this, this.transport); + + this.transport.open(this.options.method, this.url, + this.options.asynchronous); + + if (this.options.asynchronous) { + this.transport.onreadystatechange = this.onStateChange.bind(this); + setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10); + } + + this.setRequestHeaders(); + + var body = this.options.postBody ? this.options.postBody : parameters; + this.transport.send(this.options.method == 'post' ? body : null); + + } catch (e) { + this.dispatchException(e); + } + }, + + setRequestHeaders: function() { + var requestHeaders = + ['X-Requested-With', 'XMLHttpRequest', + 'X-Prototype-Version', Prototype.Version]; + + if (this.options.method == 'post') { + requestHeaders.push('Content-type', + 'application/x-www-form-urlencoded'); + + /* Force "Connection: close" for Mozilla browsers to work around + * a bug where XMLHttpReqeuest sends an incorrect Content-length + * header. See Mozilla Bugzilla #246651. + */ + if (this.transport.overrideMimeType) + requestHeaders.push('Connection', 'close'); + } + + if (this.options.requestHeaders) + requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); + + for (var i = 0; i < requestHeaders.length; i += 2) + this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]); + }, + + onStateChange: function() { + var readyState = this.transport.readyState; + if (readyState != 1) + this.respondToReadyState(this.transport.readyState); + }, + + header: function(name) { + try { + return this.transport.getResponseHeader(name); + } catch (e) {} + }, + + evalJSON: function() { + try { + return eval(this.header('X-JSON')); + } catch (e) {} + }, + + evalResponse: function() { + try { + return eval(this.transport.responseText); + } catch (e) { + this.dispatchException(e); + } + }, + + respondToReadyState: function(readyState) { + var event = Ajax.Request.Events[readyState]; + var transport = this.transport, json = this.evalJSON(); + + if (event == 'Complete') { + try { + (this.options['on' + this.transport.status] + || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] + || Prototype.emptyFunction)(transport, json); + } catch (e) { + this.dispatchException(e); + } + + if ((this.header('Content-type') || '').match(/^text\/javascript/i)) + this.evalResponse(); + } + + try { + (this.options['on' + event] || Prototype.emptyFunction)(transport, json); + Ajax.Responders.dispatch('on' + event, this, transport, json); + } catch (e) { + this.dispatchException(e); + } + + /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ + if (event == 'Complete') + this.transport.onreadystatechange = Prototype.emptyFunction; + }, + + dispatchException: function(exception) { + (this.options.onException || Prototype.emptyFunction)(this, exception); + Ajax.Responders.dispatch('onException', this, exception); + } +}); + +Ajax.Updater = Class.create(); + +Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { + initialize: function(container, url, options) { + this.containers = { + success: container.success ? $(container.success) : $(container), + failure: container.failure ? $(container.failure) : + (container.success ? null : $(container)) + } + + this.transport = Ajax.getTransport(); + this.setOptions(options); + + var onComplete = this.options.onComplete || Prototype.emptyFunction; + this.options.onComplete = (function(transport, object) { + this.updateContent(); + onComplete(transport, object); + }).bind(this); + + this.request(url); + }, + + updateContent: function() { + var receiver = this.responseIsSuccess() ? + this.containers.success : this.containers.failure; + var response = this.transport.responseText; + + if (!this.options.evalScripts) + response = response.stripScripts(); + + if (receiver) { + if (this.options.insertion) { + new this.options.insertion(receiver, response); + } else { + Element.update(receiver, response); + } + } + + if (this.responseIsSuccess()) { + if (this.onComplete) + setTimeout(this.onComplete.bind(this), 10); + } + } +}); + +Ajax.PeriodicalUpdater = Class.create(); +Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { + initialize: function(container, url, options) { + this.setOptions(options); + this.onComplete = this.options.onComplete; + + this.frequency = (this.options.frequency || 2); + this.decay = (this.options.decay || 1); + + this.updater = {}; + this.container = container; + this.url = url; + + this.start(); + }, + + start: function() { + this.options.onComplete = this.updateComplete.bind(this); + this.onTimerEvent(); + }, + + stop: function() { + this.updater.onComplete = undefined; + clearTimeout(this.timer); + (this.onComplete || Prototype.emptyFunction).apply(this, arguments); + }, + + updateComplete: function(request) { + if (this.options.decay) { + this.decay = (request.responseText == this.lastText ? + this.decay * this.options.decay : 1); + + this.lastText = request.responseText; + } + this.timer = setTimeout(this.onTimerEvent.bind(this), + this.decay * this.frequency * 1000); + }, + + onTimerEvent: function() { + this.updater = new Ajax.Updater(this.container, this.url, this.options); + } +}); +document.getElementsByClassName = function(className, parentElement) { + var children = ($(parentElement) || document.body).getElementsByTagName('*'); + return $A(children).inject([], function(elements, child) { + if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) + elements.push(child); + return elements; + }); +} + +/*--------------------------------------------------------------------------*/ + +if (!window.Element) { + var Element = new Object(); +} + +Object.extend(Element, { + visible: function(element) { + return $(element).style.display != 'none'; + }, + + toggle: function() { + for (var i = 0; i < arguments.length; i++) { + var element = $(arguments[i]); + Element[Element.visible(element) ? 'hide' : 'show'](element); + } + }, + + hide: function() { + for (var i = 0; i < arguments.length; i++) { + var element = $(arguments[i]); + element.style.display = 'none'; + } + }, + + show: function() { + for (var i = 0; i < arguments.length; i++) { + var element = $(arguments[i]); + element.style.display = ''; + } + }, + + remove: function(element) { + element = $(element); + element.parentNode.removeChild(element); + }, + + update: function(element, html) { + $(element).innerHTML = html.stripScripts(); + setTimeout(function() {html.evalScripts()}, 10); + }, + + getHeight: function(element) { + element = $(element); + return element.offsetHeight; + }, + + classNames: function(element) { + return new Element.ClassNames(element); + }, + + hasClassName: function(element, className) { + if (!(element = $(element))) return; + return Element.classNames(element).include(className); + }, + + addClassName: function(element, className) { + if (!(element = $(element))) return; + return Element.classNames(element).add(className); + }, + + removeClassName: function(element, className) { + if (!(element = $(element))) return; + return Element.classNames(element).remove(className); + }, + + // removes whitespace-only text node children + cleanWhitespace: function(element) { + element = $(element); + for (var i = 0; i < element.childNodes.length; i++) { + var node = element.childNodes[i]; + if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) + Element.remove(node); + } + }, + + empty: function(element) { + return $(element).innerHTML.match(/^\s*$/); + }, + + scrollTo: function(element) { + element = $(element); + var x = element.x ? element.x : element.offsetLeft, + y = element.y ? element.y : element.offsetTop; + window.scrollTo(x, y); + }, + + getStyle: function(element, style) { + element = $(element); + var value = element.style[style.camelize()]; + if (!value) { + if (document.defaultView && document.defaultView.getComputedStyle) { + var css = document.defaultView.getComputedStyle(element, null); + value = css ? css.getPropertyValue(style) : null; + } else if (element.currentStyle) { + value = element.currentStyle[style.camelize()]; + } + } + + if (window.opera && ['left', 'top', 'right', 'bottom'].include(style)) + if (Element.getStyle(element, 'position') == 'static') value = 'auto'; + + return value == 'auto' ? null : value; + }, + + setStyle: function(element, style) { + element = $(element); + for (name in style) + element.style[name.camelize()] = style[name]; + }, + + getDimensions: function(element) { + element = $(element); + if (Element.getStyle(element, 'display') != 'none') + return {width: element.offsetWidth, height: element.offsetHeight}; + + // All *Width and *Height properties give 0 on elements with display none, + // so enable the element temporarily + var els = element.style; + var originalVisibility = els.visibility; + var originalPosition = els.position; + els.visibility = 'hidden'; + els.position = 'absolute'; + els.display = ''; + var originalWidth = element.clientWidth; + var originalHeight = element.clientHeight; + els.display = 'none'; + els.position = originalPosition; + els.visibility = originalVisibility; + return {width: originalWidth, height: originalHeight}; + }, + + makePositioned: function(element) { + element = $(element); + var pos = Element.getStyle(element, 'position'); + if (pos == 'static' || !pos) { + element._madePositioned = true; + element.style.position = 'relative'; + // Opera returns the offset relative to the positioning context, when an + // element is position relative but top and left have not been defined + if (window.opera) { + element.style.top = 0; + element.style.left = 0; + } + } + }, + + undoPositioned: function(element) { + element = $(element); + if (element._madePositioned) { + element._madePositioned = undefined; + element.style.position = + element.style.top = + element.style.left = + element.style.bottom = + element.style.right = ''; + } + }, + + makeClipping: function(element) { + element = $(element); + if (element._overflow) return; + element._overflow = element.style.overflow; + if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden') + element.style.overflow = 'hidden'; + }, + + undoClipping: function(element) { + element = $(element); + if (element._overflow) return; + element.style.overflow = element._overflow; + element._overflow = undefined; + } +}); + +var Toggle = new Object(); +Toggle.display = Element.toggle; + +/*--------------------------------------------------------------------------*/ + +Abstract.Insertion = function(adjacency) { + this.adjacency = adjacency; +} + +Abstract.Insertion.prototype = { + initialize: function(element, content) { + this.element = $(element); + this.content = content.stripScripts(); + + if (this.adjacency && this.element.insertAdjacentHTML) { + try { + this.element.insertAdjacentHTML(this.adjacency, this.content); + } catch (e) { + if (this.element.tagName.toLowerCase() == 'tbody') { + this.insertContent(this.contentFromAnonymousTable()); + } else { + throw e; + } + } + } else { + this.range = this.element.ownerDocument.createRange(); + if (this.initializeRange) this.initializeRange(); + this.insertContent([this.range.createContextualFragment(this.content)]); + } + + setTimeout(function() {content.evalScripts()}, 10); + }, + + contentFromAnonymousTable: function() { + var div = document.createElement('div'); + div.innerHTML = '' + this.content + '
    '; + return $A(div.childNodes[0].childNodes[0].childNodes); + } +} + +var Insertion = new Object(); + +Insertion.Before = Class.create(); +Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), { + initializeRange: function() { + this.range.setStartBefore(this.element); + }, + + insertContent: function(fragments) { + fragments.each((function(fragment) { + this.element.parentNode.insertBefore(fragment, this.element); + }).bind(this)); + } +}); + +Insertion.Top = Class.create(); +Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), { + initializeRange: function() { + this.range.selectNodeContents(this.element); + this.range.collapse(true); + }, + + insertContent: function(fragments) { + fragments.reverse(false).each((function(fragment) { + this.element.insertBefore(fragment, this.element.firstChild); + }).bind(this)); + } +}); + +Insertion.Bottom = Class.create(); +Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), { + initializeRange: function() { + this.range.selectNodeContents(this.element); + this.range.collapse(this.element); + }, + + insertContent: function(fragments) { + fragments.each((function(fragment) { + this.element.appendChild(fragment); + }).bind(this)); + } +}); + +Insertion.After = Class.create(); +Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), { + initializeRange: function() { + this.range.setStartAfter(this.element); + }, + + insertContent: function(fragments) { + fragments.each((function(fragment) { + this.element.parentNode.insertBefore(fragment, + this.element.nextSibling); + }).bind(this)); + } +}); + +/*--------------------------------------------------------------------------*/ + +Element.ClassNames = Class.create(); +Element.ClassNames.prototype = { + initialize: function(element) { + this.element = $(element); + }, + + _each: function(iterator) { + this.element.className.split(/\s+/).select(function(name) { + return name.length > 0; + })._each(iterator); + }, + + set: function(className) { + this.element.className = className; + }, + + add: function(classNameToAdd) { + if (this.include(classNameToAdd)) return; + this.set(this.toArray().concat(classNameToAdd).join(' ')); + }, + + remove: function(classNameToRemove) { + if (!this.include(classNameToRemove)) return; + this.set(this.select(function(className) { + return className != classNameToRemove; + }).join(' ')); + }, + + toString: function() { + return this.toArray().join(' '); + } +} + +Object.extend(Element.ClassNames.prototype, Enumerable); +var Field = { + clear: function() { + for (var i = 0; i < arguments.length; i++) + $(arguments[i]).value = ''; + }, + + focus: function(element) { + $(element).focus(); + }, + + present: function() { + for (var i = 0; i < arguments.length; i++) + if ($(arguments[i]).value == '') return false; + return true; + }, + + select: function(element) { + $(element).select(); + }, + + activate: function(element) { + element = $(element); + element.focus(); + if (element.select) + element.select(); + } +} + +/*--------------------------------------------------------------------------*/ + +var Form = { + serialize: function(form) { + var elements = Form.getElements($(form)); + var queryComponents = new Array(); + + for (var i = 0; i < elements.length; i++) { + var queryComponent = Form.Element.serialize(elements[i]); + if (queryComponent) + queryComponents.push(queryComponent); + } + + return queryComponents.join('&'); + }, + + getElements: function(form) { + form = $(form); + var elements = new Array(); + + for (tagName in Form.Element.Serializers) { + var tagElements = form.getElementsByTagName(tagName); + for (var j = 0; j < tagElements.length; j++) + elements.push(tagElements[j]); + } + return elements; + }, + + getInputs: function(form, typeName, name) { + form = $(form); + var inputs = form.getElementsByTagName('input'); + + if (!typeName && !name) + return inputs; + + var matchingInputs = new Array(); + for (var i = 0; i < inputs.length; i++) { + var input = inputs[i]; + if ((typeName && input.type != typeName) || + (name && input.name != name)) + continue; + matchingInputs.push(input); + } + + return matchingInputs; + }, + + disable: function(form) { + var elements = Form.getElements(form); + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + element.blur(); + element.disabled = 'true'; + } + }, + + enable: function(form) { + var elements = Form.getElements(form); + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + element.disabled = ''; + } + }, + + findFirstElement: function(form) { + return Form.getElements(form).find(function(element) { + return element.type != 'hidden' && !element.disabled && + ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); + }); + }, + + focusFirstElement: function(form) { + Field.activate(Form.findFirstElement(form)); + }, + + reset: function(form) { + $(form).reset(); + } +} + +Form.Element = { + serialize: function(element) { + element = $(element); + var method = element.tagName.toLowerCase(); + var parameter = Form.Element.Serializers[method](element); + + if (parameter) { + var key = encodeURIComponent(parameter[0]); + if (key.length == 0) return; + + if (parameter[1].constructor != Array) + parameter[1] = [parameter[1]]; + + return parameter[1].map(function(value) { + return key + '=' + encodeURIComponent(value); + }).join('&'); + } + }, + + getValue: function(element) { + element = $(element); + var method = element.tagName.toLowerCase(); + var parameter = Form.Element.Serializers[method](element); + + if (parameter) + return parameter[1]; + } +} + +Form.Element.Serializers = { + input: function(element) { + switch (element.type.toLowerCase()) { + case 'submit': + case 'hidden': + case 'password': + case 'text': + return Form.Element.Serializers.textarea(element); + case 'checkbox': + case 'radio': + return Form.Element.Serializers.inputSelector(element); + } + return false; + }, + + inputSelector: function(element) { + if (element.checked) + return [element.name, element.value]; + }, + + textarea: function(element) { + return [element.name, element.value]; + }, + + select: function(element) { + return Form.Element.Serializers[element.type == 'select-one' ? + 'selectOne' : 'selectMany'](element); + }, + + selectOne: function(element) { + var value = '', opt, index = element.selectedIndex; + if (index >= 0) { + opt = element.options[index]; + value = opt.value; + if (!value && !('value' in opt)) + value = opt.text; + } + return [element.name, value]; + }, + + selectMany: function(element) { + var value = new Array(); + for (var i = 0; i < element.length; i++) { + var opt = element.options[i]; + if (opt.selected) { + var optValue = opt.value; + if (!optValue && !('value' in opt)) + optValue = opt.text; + value.push(optValue); + } + } + return [element.name, value]; + } +} + +/*--------------------------------------------------------------------------*/ + +var $F = Form.Element.getValue; + +/*--------------------------------------------------------------------------*/ + +Abstract.TimedObserver = function() {} +Abstract.TimedObserver.prototype = { + initialize: function(element, frequency, callback) { + this.frequency = frequency; + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + this.registerCallback(); + }, + + registerCallback: function() { + setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + onTimerEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + } +} + +Form.Element.Observer = Class.create(); +Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.Observer = Class.create(); +Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { + getValue: function() { + return Form.serialize(this.element); + } +}); + +/*--------------------------------------------------------------------------*/ + +Abstract.EventObserver = function() {} +Abstract.EventObserver.prototype = { + initialize: function(element, callback) { + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + if (this.element.tagName.toLowerCase() == 'form') + this.registerFormCallbacks(); + else + this.registerCallback(this.element); + }, + + onElementEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + }, + + registerFormCallbacks: function() { + var elements = Form.getElements(this.element); + for (var i = 0; i < elements.length; i++) + this.registerCallback(elements[i]); + }, + + registerCallback: function(element) { + if (element.type) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + Event.observe(element, 'click', this.onElementEvent.bind(this)); + break; + case 'password': + case 'text': + case 'textarea': + case 'select-one': + case 'select-multiple': + Event.observe(element, 'change', this.onElementEvent.bind(this)); + break; + } + } + } +} + +Form.Element.EventObserver = Class.create(); +Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.EventObserver = Class.create(); +Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { + getValue: function() { + return Form.serialize(this.element); + } +}); +if (!window.Event) { + var Event = new Object(); +} + +Object.extend(Event, { + KEY_BACKSPACE: 8, + KEY_TAB: 9, + KEY_RETURN: 13, + KEY_ESC: 27, + KEY_LEFT: 37, + KEY_UP: 38, + KEY_RIGHT: 39, + KEY_DOWN: 40, + KEY_DELETE: 46, + + element: function(event) { + return event.target || event.srcElement; + }, + + isLeftClick: function(event) { + return (((event.which) && (event.which == 1)) || + ((event.button) && (event.button == 1))); + }, + + pointerX: function(event) { + return event.pageX || (event.clientX + + (document.documentElement.scrollLeft || document.body.scrollLeft)); + }, + + pointerY: function(event) { + return event.pageY || (event.clientY + + (document.documentElement.scrollTop || document.body.scrollTop)); + }, + + stop: function(event) { + if (event.preventDefault) { + event.preventDefault(); + event.stopPropagation(); + } else { + event.returnValue = false; + event.cancelBubble = true; + } + }, + + // find the first node with the given tagName, starting from the + // node the event was triggered on; traverses the DOM upwards + findElement: function(event, tagName) { + var element = Event.element(event); + while (element.parentNode && (!element.tagName || + (element.tagName.toUpperCase() != tagName.toUpperCase()))) + element = element.parentNode; + return element; + }, + + observers: false, + + _observeAndCache: function(element, name, observer, useCapture) { + if (!this.observers) this.observers = []; + if (element.addEventListener) { + this.observers.push([element, name, observer, useCapture]); + element.addEventListener(name, observer, useCapture); + } else if (element.attachEvent) { + this.observers.push([element, name, observer, useCapture]); + element.attachEvent('on' + name, observer); + } + }, + + unloadCache: function() { + if (!Event.observers) return; + for (var i = 0; i < Event.observers.length; i++) { + Event.stopObserving.apply(this, Event.observers[i]); + Event.observers[i][0] = null; + } + Event.observers = false; + }, + + observe: function(element, name, observer, useCapture) { + var element = $(element); + useCapture = useCapture || false; + + if (name == 'keypress' && + (navigator.appVersion.match(/Konqueror|Safari|KHTML/) + || element.attachEvent)) + name = 'keydown'; + + this._observeAndCache(element, name, observer, useCapture); + }, + + stopObserving: function(element, name, observer, useCapture) { + var element = $(element); + useCapture = useCapture || false; + + if (name == 'keypress' && + (navigator.appVersion.match(/Konqueror|Safari|KHTML/) + || element.detachEvent)) + name = 'keydown'; + + if (element.removeEventListener) { + element.removeEventListener(name, observer, useCapture); + } else if (element.detachEvent) { + element.detachEvent('on' + name, observer); + } + } +}); + +/* prevent memory leaks in IE */ +Event.observe(window, 'unload', Event.unloadCache, false); +var Position = { + // set to true if needed, warning: firefox performance problems + // NOT neeeded for page scrolling, only if draggable contained in + // scrollable elements + includeScrollOffsets: false, + + // must be called before calling withinIncludingScrolloffset, every time the + // page is scrolled + prepare: function() { + this.deltaX = window.pageXOffset + || document.documentElement.scrollLeft + || document.body.scrollLeft + || 0; + this.deltaY = window.pageYOffset + || document.documentElement.scrollTop + || document.body.scrollTop + || 0; + }, + + realOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.scrollTop || 0; + valueL += element.scrollLeft || 0; + element = element.parentNode; + } while (element); + return [valueL, valueT]; + }, + + cumulativeOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + } while (element); + return [valueL, valueT]; + }, + + positionedOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + if (element) { + p = Element.getStyle(element, 'position'); + if (p == 'relative' || p == 'absolute') break; + } + } while (element); + return [valueL, valueT]; + }, + + offsetParent: function(element) { + if (element.offsetParent) return element.offsetParent; + if (element == document.body) return element; + + while ((element = element.parentNode) && element != document.body) + if (Element.getStyle(element, 'position') != 'static') + return element; + + return document.body; + }, + + // caches x/y coordinate pair to use with overlap + within: function(element, x, y) { + if (this.includeScrollOffsets) + return this.withinIncludingScrolloffsets(element, x, y); + this.xcomp = x; + this.ycomp = y; + this.offset = this.cumulativeOffset(element); + + return (y >= this.offset[1] && + y < this.offset[1] + element.offsetHeight && + x >= this.offset[0] && + x < this.offset[0] + element.offsetWidth); + }, + + withinIncludingScrolloffsets: function(element, x, y) { + var offsetcache = this.realOffset(element); + + this.xcomp = x + offsetcache[0] - this.deltaX; + this.ycomp = y + offsetcache[1] - this.deltaY; + this.offset = this.cumulativeOffset(element); + + return (this.ycomp >= this.offset[1] && + this.ycomp < this.offset[1] + element.offsetHeight && + this.xcomp >= this.offset[0] && + this.xcomp < this.offset[0] + element.offsetWidth); + }, + + // within must be called directly before + overlap: function(mode, element) { + if (!mode) return 0; + if (mode == 'vertical') + return ((this.offset[1] + element.offsetHeight) - this.ycomp) / + element.offsetHeight; + if (mode == 'horizontal') + return ((this.offset[0] + element.offsetWidth) - this.xcomp) / + element.offsetWidth; + }, + + clone: function(source, target) { + source = $(source); + target = $(target); + target.style.position = 'absolute'; + var offsets = this.cumulativeOffset(source); + target.style.top = offsets[1] + 'px'; + target.style.left = offsets[0] + 'px'; + target.style.width = source.offsetWidth + 'px'; + target.style.height = source.offsetHeight + 'px'; + }, + + page: function(forElement) { + var valueT = 0, valueL = 0; + + var element = forElement; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + + // Safari fix + if (element.offsetParent==document.body) + if (Element.getStyle(element,'position')=='absolute') break; + + } while (element = element.offsetParent); + + element = forElement; + do { + valueT -= element.scrollTop || 0; + valueL -= element.scrollLeft || 0; + } while (element = element.parentNode); + + return [valueL, valueT]; + }, + + clone: function(source, target) { + var options = Object.extend({ + setLeft: true, + setTop: true, + setWidth: true, + setHeight: true, + offsetTop: 0, + offsetLeft: 0 + }, arguments[2] || {}) + + // find page position of source + source = $(source); + var p = Position.page(source); + + // find coordinate system to use + target = $(target); + var delta = [0, 0]; + var parent = null; + // delta [0,0] will do fine with position: fixed elements, + // position:absolute needs offsetParent deltas + if (Element.getStyle(target,'position') == 'absolute') { + parent = Position.offsetParent(target); + delta = Position.page(parent); + } + + // correct by body offsets (fixes Safari) + if (parent == document.body) { + delta[0] -= document.body.offsetLeft; + delta[1] -= document.body.offsetTop; + } + + // set position + if(options.setLeft) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; + if(options.setTop) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; + if(options.setWidth) target.style.width = source.offsetWidth + 'px'; + if(options.setHeight) target.style.height = source.offsetHeight + 'px'; + }, + + absolutize: function(element) { + element = $(element); + if (element.style.position == 'absolute') return; + Position.prepare(); + + var offsets = Position.positionedOffset(element); + var top = offsets[1]; + var left = offsets[0]; + var width = element.clientWidth; + var height = element.clientHeight; + + element._originalLeft = left - parseFloat(element.style.left || 0); + element._originalTop = top - parseFloat(element.style.top || 0); + element._originalWidth = element.style.width; + element._originalHeight = element.style.height; + + element.style.position = 'absolute'; + element.style.top = top + 'px';; + element.style.left = left + 'px';; + element.style.width = width + 'px';; + element.style.height = height + 'px';; + }, + + relativize: function(element) { + element = $(element); + if (element.style.position == 'relative') return; + Position.prepare(); + + element.style.position = 'relative'; + var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); + var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); + + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.height = element._originalHeight; + element.style.width = element._originalWidth; + } +} + +// Safari returns margins on body which is incorrect if the child is absolutely +// positioned. For performance reasons, redefine Position.cumulativeOffset for +// KHTML/WebKit only. +if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) { + Position.cumulativeOffset = function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + if (element.offsetParent == document.body) + if (Element.getStyle(element, 'position') == 'absolute') break; + + element = element.offsetParent; + } while (element); + + return [valueL, valueT]; + } +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/svgpaths.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/svgpaths.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,295 @@ + +var k = (Math.sqrt(2)-1)*4/3; +var mult=50; +var ctx=0; +var cty=0; + +var round= "M "+ctx+","+(cty+mult)+" C "+(ctx+mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult)+","+cty+" C"+(ctx+mult)+","+(cty-mult*k)+" "+(ctx+mult*k)+","+(cty-mult)+" "+ctx+","+(cty-mult)+" C"+(ctx-mult*k)+","+(cty-mult)+" "+(ctx-mult)+","+(cty-mult*k)+" "+(ctx-mult)+","+(cty)+" "+(ctx-mult)+","+(cty+mult*k)+" "+(ctx-mult*k)+","+(cty+mult)+" "+ctx+","+(cty+mult)+" z"; +var mult=30; +//var roundInside=round+" M "+ctx+","+(cty+mult)+" C "+ctx+","+(cty-mult)+" "+(ctx-mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty-mult*k)+" "+(ctx+mult)+","+(cty)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult*k)+","+(cty+mult)+" "+ctx+","+(cty+mult)+" "+(ctx-mult*k)+","+(cty+mult)+" "+(ctx-mult)+","+(cty+mult*k)+" "+(ctx-mult)+","+cty+" "+(ctx-mult)+","+(cty-mult*k)+" "+(ctx-mult*k)+","+(cty-mult)+" z"; +var semicircle="M "+ctx+","+(cty+mult)+" C "+(ctx+mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult)+","+cty+" C"+(ctx+mult)+","+(cty-mult*k)+" "+(ctx+mult*k)+","+(cty-mult)+" "+ctx+","+(cty-mult)+" "; +var sectors="M 50,50 L50,200 A100,100 0 0,1 200,50 L50,50"; +var roundInside=round+"M "+ctx+","+(cty+mult)+" C "+(ctx-mult*k)+","+(cty-mult)+" "+(ctx-mult)+","+(cty-mult*k)+" "+(ctx-mult)+","+cty+" "+(ctx-mult)+","+(cty-mult*k)+" "+(ctx-mult*k)+","+(cty+mult)+" "+ctx+","+(cty+mult)+" "+(ctx+mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult)+","+(cty)+" "+(ctx+mult)+","+(cty-mult*k)+" "+(ctx+mult*k)+","+(cty-mult)+" "+ctx+","+(cty-mult)+" z"; + + //m-6,0 c0,-8 12,-8 12,0 m-12,0 c0,8 12,8 12,0 + +var mult=50; +var semiround="M "+ctx+","+(cty+mult)+" C "+(ctx+mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult)+","+cty+" "; +var mult=30; +var horn=semiround+"C "+(ctx+mult)+","+(cty+mult*k)+" "+ (ctx+mult*k)+","+(cty+mult)+" "+ ctx+","+(cty+mult)+" z"; + + +var mult=50; +var ctx=0; +var cty=0; +var mult=50; +var semiround="M "+ctx+","+(cty+mult)+" C "+(ctx+mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult)+","+cty+" "; +var mult=30; +var semiroundInside=semiround+"L"+(ctx+mult)+","+cty+" C"+(ctx+mult)+","+(cty+mult*k)+" "+ (ctx+mult*k)+","+(cty+mult)+" "+ ctx+","+(cty+mult)+" z"; + + +var mult=0; +var ctx=0; +var cty=60; +var rad1=60; +var rad2=8; +var rad=0; +var addr=20; +var addx=70; +var addy=0 +var mult=30; +var multiround=''; +for(var m=0;m<8;m++){ + mult=rad1; + ctx+=addx; + var semi="M "+ctx+","+(cty+mult)+" C "+(ctx+mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult)+","+cty+" "; + + mult=rad; +multiround+=semi+"L"+(ctx+mult)+","+cty+" C"+(ctx+mult)+","+(cty+mult*k)+" "+ (ctx+mult*k)+","+(cty+mult)+" "+ ctx+","+(cty+mult)+" z "; +rad+=rad2; +} + + + + +var mult=0; +var ctx=0; +var cty=60; +var rad1=60; +var rad2=8; +var rad=0; +var addr=20; +var addx=70; +var addy=0 +var mult=30; +var multihorn=''; +for(var m=0;m<8;m++){ + mult=rad1; + ctx+=addx; + var semi="M "+ctx+","+(cty+mult)+" C "+(ctx+mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult)+","+cty+" "; + + mult=rad; +multihorn+=semi+"C "+(ctx+mult)+","+(cty+mult*k)+" "+ (ctx+mult*k)+","+(cty+mult)+" "+ ctx+","+(cty+mult)+" z"; +rad+=rad2; +} + +var mult=0; +var mult1=0; +var ctx=0; +var cty=60; +var rad1=60; +var rad2=8; +var rad=0; +var addr=20; +var addx=70; +var addy=0 +var mult=30; +var multilife1=''; +for(var m=0;m<8;m++){ + mult=rad1; + ctx+=addx; + var semi="M "+ctx+","+(cty+mult)+" C "+(ctx+mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult)+","+cty+" "; + + mult1=rad; +multilife1+=semi+"C "+(ctx+mult)+","+(cty+mult1*k)+" "+ (ctx+mult1*k)+","+(cty+mult1)+" "+ ctx+","+(cty+mult)+" z"; +rad+=rad2; +} + + +var mult=0; +var mult1=0; +var mult2=200; +var ctx=0; +var cty=60; +var rad1=60; +var rad2=8; +var rad=0; +var addr=20; +var addx=70; +var addy=0 +var mult=30; +var multilife2=''; +for(var m=0;m<8;m++){ + mult=rad1; + ctx+=addx; + var semi="M "+ctx+","+(cty+mult)+" C "+(ctx+mult1*k)+","+(cty+mult1)+" "+(ctx+mult1)+","+(cty+mult1*k)+" "+(ctx+mult)+","+cty+" "; + mult2=rad; + multilife2+=semi+"C "+(ctx+mult)+","+(cty+mult2*k)+" "+ (ctx+mult2*k)+","+(cty+mult2)+" "+ ctx+","+(cty+mult)+" z"; + rad+=rad2; +} + +var mult=30; +var mult1=70; +var mult2=0; +var ctx=0; +var cty=60; +var rad1=60; +var rad2=8; +var rad=0; +var addr=20; +var addx=70; +var addy=0 +var multilife3=shapes2faces(mult,mult1,mult2,ctx,cty,rad,rad1,rad2,addr,addx,addy); + +var ctx=0; +var cty=0; + +var mult=30; +var mult1=70; +var mult2=0; + +var rad1=60; +var rad2=8; +var rad=0; +var addr=20; +var addx=70; +var addy=0 +var multilife4=shapes2faces1(ctx,cty,mult,mult1,mult2,rad,rad1,rad2,addr,addx,addy); + + +function shapes2faces(mult,mult1,mult2,ctx,cty,rad,rad1,rad2,addr,addx,addy){ + var life=''; + for(var m=0;m<8;m++){ + mult=rad1; + ctx+=addx; + var semi="M "+ctx+","+(cty+mult)+" C "+(ctx+mult1*k)+","+(cty+mult1)+" "+(ctx+mult1)+","+(cty+mult1*k)+" "+(ctx+mult)+","+cty+" "; + mult2=rad; + life+=semi+"C "+(ctx+mult)+","+(cty+mult2*k)+" "+ (ctx+mult2*k)+","+(cty+mult2)+" "+ ctx+","+(cty+mult)+" z"; + rad+=rad2; + } + return life; +} + + +function shapes2faces1(mult,mult1,mult2,ctx,cty,rad,rad1,rad2,addr,addx,addy){ + var life=''; + for(var m=0;m<8;m++){ + mult=rad1; + ctx+=addx; + var semi="M "+ctx+","+(cty+mult)+" C "+(ctx+mult2*k)+","+(cty+mult2)+" "+(ctx+mult2)+","+(cty+mult2*k)+" "+(ctx+mult)+","+cty+" "; + mult2=rad; + life+=semi+"C "+(ctx+mult)+","+(cty+mult2*k)+" "+ (ctx+mult2*k)+","+(cty+mult2)+" "+ ctx+","+(cty+mult)+" z"; + rad+=rad2; + } + return life; +} + + + +var islab=isoSlab(200,200,40,1); +function isoSlab(x,y,side,height){ + var chain=''; + var iso=0.5235987755982988;//deg2rad(30);// + //parent.document.getElementById('someinfo').value=iso; + iso1=iso*1; + iso2=iso*3; + iso3=iso*5; + iso4=iso*7; + iso5=iso*9; + iso6=iso*11; + l1x=x+side*Math.cos(iso1); + l1y=y+side*Math.sin(iso1); + l2x=l1x+side*Math.cos(iso3); + l2y=l1y+side*Math.sin(iso3); + l3x=l2x+side*Math.cos(iso4); + l3y=l2y+side*Math.sin(iso4); + + chain+="M "+x+","+y+" L"+l1x+','+l1y+" "+l2x+','+l2y+" "+l3x+','+l3y+" "+x+","+y; + return chain; +} + +var iblock=isoBlock(200,200,40,60); +function isoBlock(x,y,side,height){ + + var chain=''; + var iso=0.5235987755982988;//deg2rad(30);// + parent.document.getElementById('someinfo').value=iso; + iso1=iso*1; + iso2=iso*3; + iso3=iso*5; + iso4=iso*7; + iso5=iso*9; + iso6=iso*11; + l1x=x+side*Math.cos(iso1); + l1y=y+side*Math.sin(iso1); + l2x=l1x+side*Math.cos(iso3); + l2y=l1y+side*Math.sin(iso3); + l3x=l2x+side*Math.cos(iso4); + l3y=l2y+side*Math.sin(iso4); + + m1x=l1x+height*Math.cos(iso2); + m1y=l1y+height*Math.sin(iso2); + m2x=m1x+side*Math.cos(iso3); + m2y=m1y+side*Math.sin(iso3); + m3x=m2x+side*Math.cos(iso4); + m3y=m2y+side*Math.sin(iso4); + + + + chain+="M "+x+","+y+" L"+l1x+','+l1y+" "+l2x+','+l2y+" "+l3x+','+l3y+" "+x+","+y; + chain+="M "+l1x+","+l1y+" L"+ m1x+','+m1y+" "+m2x+','+m2y+" "+l2x+','+l2y+" "+l1x+" "+l1y; + chain+="M "+l2x+","+l2y+" L"+ m2x+','+m2y+" "+m3x+','+m3y+" "+l3x+','+l3y+" "+l2x+" "+l2y; + + return chain; +} +function path(name,data) + { + this.name=name; + this.data=data; + } + var paths = new Array(); +paths.push(new path(" "," ")); +paths.push(new path("Circle","M "+ctx+","+(cty+mult)+" C "+(ctx+mult*k)+","+(cty+mult)+" "+(ctx+mult)+","+(cty+mult*k)+" "+(ctx+mult)+","+cty+" "+(ctx+mult)+","+(cty-mult*k)+" "+(ctx+mult*k)+","+(cty-mult)+" "+ctx+","+(cty-mult)+" "+(ctx-mult*k)+","+(cty-mult)+" "+(ctx-mult)+","+(cty-mult*k)+" "+(ctx-mult)+","+(cty)+" "+(ctx-mult)+","+(cty+mult*k)+" "+(ctx-mult*k)+","+(cty+mult)+" "+ctx+","+(cty+mult)+"")); //+" "+ctx+","+(cty+mult); +paths.push(new path("Sectors",sectors)); +paths.push(new path("IsoSlab",islab)); +paths.push(new path("IsoBlock",iblock)); +paths.push(new path("Ring",roundInside)); +paths.push(new path("Openring","M30.516,-0.125 C13.956,-0.125 0.516,13.315 0.516,29.875 C0.516,46.435 13.956,59.875 30.516,59.875 C46.737,59.875 59.919,46.968 60.453,30.875 L40.453,30.875 C39.941,35.916 35.691,39.875 30.516,39.875 C24.996,39.875 20.516,35.395 20.516,29.875 C20.516,24.7 24.475,20.387 29.516,19.875 C29.852,19.841 30.171,19.875 30.516,19.875 C35.691,19.875 39.941,23.835 40.453,28.875 L60.453,28.875 C59.919,12.782 46.737,-0.125 30.516,-0.125 z")); +paths.push(new path("Semicircle",semicircle)); +paths.push(new path("Semiround",semiround)); +paths.push(new path("Semiring",semiroundInside)); +paths.push(new path("Horn",horn)); +paths.push(new path("Multiround",multiround)); +paths.push(new path("Multihorn",multihorn)); +paths.push(new path("Smile","M 14.259536,40.040786 C 15.390718,47.977686 21.994878,54.095579 30.00708,54.095578 C 37.457213,54.095578 43.721998,48.803911 45.473419,41.683058 C 42.197299,45.827418 36.687895,48.557684 30.428889,48.557684 C 23.380933,48.557685 17.283291,45.087568 14.259536,40.040786 z")); +paths.push(new path("Multilife1",multilife1)); +paths.push(new path("Multilife2",multilife2)); +paths.push(new path("Multilife3",multilife3)); +paths.push(new path("Multilife4",multilife4)); +paths.push(new path("Flora Winx Club","M 132.53555,358.08217 C 131.68247,357.89829 129.63839,357.17092 127.99314,356.46581 L 125.00178,355.1838 L 125.33525,351.16262 C 125.52381,348.88877 126.60691,345.28713 127.82781,342.87406 C 129.62086,339.33018 129.89787,338.03313 129.46172,335.22381 C 128.40416,328.41189 125.85465,320.38023 122.41232,313.01616 C 120.41584,308.74516 119.05535,304.8254 119.27593,303.97979 C 119.52408,303.02849 113.17358,289.51553 101.78179,266.75475 C 91.945759,247.10236 83.619249,230.72408 83.278439,230.35858 C 82.937629,229.99307 82.252829,231.738 81.756669,234.23619 C 80.817469,238.965 80.384589,240.87989 72.051769,277.16667 C 69.260229,289.32297 66.794039,300.08328 66.571371,301.07847 C 66.266451,302.44122 66.557039,302.99002 67.748519,303.3016 C 69.635279,303.795 69.594839,303.3658 68.142469,307.48224 C 66.718084,311.51936 67.247564,314.68136 69.871939,317.81046 C 71.298039,319.51084 71.631339,320.5606 71.226199,322.07583 C 70.930619,323.18128 70.592259,328.3706 70.474279,333.60768 C 70.265499,342.87533 69.637609,345.36631 67.490643,345.44436 C 67.009703,345.46184 65.83827,347.11952 64.887473,349.12809 C 63.936675,351.13666 62.312074,353.82698 61.277257,355.10659 C 59.428653,357.3925 59.268671,357.43316 52.123557,357.43316 C 46.63996,357.43316 44.046879,357.07039 41.580503,355.95822 C 38.33966,354.4968 38.309663,354.44597 38.309663,350.41602 C 38.309663,346.02606 39.340006,344.67162 46.228763,340.00598 C 48.213757,338.66157 49.203959,337.31554 49.544901,335.49818 C 49.812247,334.0731 51.779148,328.33549 53.915796,322.74794 C 56.052443,317.16038 57.984942,310.81326 58.210231,308.64322 C 58.435528,306.47317 59.105207,303.60881 59.698419,302.27795 C 60.545692,300.3771 60.78214,294.47338 60.80104,274.74693 C 60.814278,260.93573 61.13401,248.31646 61.511557,246.70412 C 62.128043,244.07137 65.09166,239.76956 73.643189,229.09455 C 76.430209,225.61546 76.561719,224.85609 75.189559,220.16583 C 74.939989,219.31275 75.248789,219.66174 75.875789,220.94135 C 77.714329,224.69353 77.302289,226.35963 73.351279,231.14919 C 71.297309,233.63908 68.136049,237.81442 66.326228,240.42773 C 63.223304,244.90825 62.994339,245.61582 62.311027,252.83607 C 61.912471,257.04736 61.496652,270.00308 61.38697,281.62658 C 61.208336,300.55697 61.316785,302.76013 62.427192,302.75954 C 63.609754,302.75891 64.839189,296.93287 65.864048,286.47293 C 66.01032,284.98005 66.312688,281.83919 66.535984,279.49323 C 67.714919,267.10696 69.539869,254.64453 70.800209,250.37305 C 71.171579,249.11441 73.300219,243.19882 75.530509,237.2273 L 79.585579,226.37 L 79.124589,217.4515 C 78.871039,212.54633 78.508909,207.31155 78.319869,205.81868 C 78.130819,204.3258 77.747019,200.66146 77.466959,197.6757 C 76.715299,189.66185 75.842089,185.63013 74.586049,184.3741 C 73.070839,182.85888 69.391919,182.60141 66.879524,183.83475 L 64.816288,184.8476 L 65.948386,189.32284 C 66.571045,191.78423 68.844459,199.14201 71.000419,205.67346 C 73.156389,212.20492 74.765869,217.70332 74.577059,217.89214 C 74.284589,218.18459 66.981133,196.59483 63.671804,185.65511 C 62.371285,181.35595 60.440678,180.25173 54.207857,180.24222 C 45.717407,180.22925 39.5697,183.0674 37.555592,187.92989 C 36.721581,189.94337 36.765421,190.59088 37.847584,192.24247 C 38.547927,193.31133 39.636371,194.18585 40.266343,194.18585 C 40.896315,194.18585 41.41175,194.53484 41.41175,194.96137 C 41.41175,196.93138 37.734179,195.28241 36.445774,192.73471 C 35.022964,189.92121 35.969325,177.72714 37.898016,174.02229 C 40.983638,168.09509 46.606008,163.01722 56.728303,157.01561 C 59.820695,155.18211 62.350835,153.38228 62.350835,153.01602 C 62.350835,152.64976 63.293784,150.35854 64.446271,147.92444 C 66.815606,142.92033 74.090949,134.74813 79.370139,131.16087 C 81.312749,129.84085 83.181249,128.30062 83.522339,127.73813 C 84.277369,126.49309 88.708509,124.12033 89.256059,124.66788 C 89.966009,125.37784 88.656179,126.71547 87.251009,126.71547 C 86.494199,126.71547 85.687819,126.90264 85.459049,127.13141 C 84.986759,127.60369 86.082689,130.75242 88.688329,136.40949 L 90.474349,140.2871 L 91.206889,137.62308 C 91.746939,135.65904 92.115929,135.24466 92.611189,136.04602 C 93.008559,136.68898 92.954349,137.52895 92.478499,138.10233 C 90.436239,140.5631 92.638899,140.33206 96.862169,137.64251 C 99.421719,136.01247 102.64583,134.43064 104.02685,134.12732 C 107.27168,133.41464 107.68659,132.63211 106.10196,130.21366 C 105.08768,128.66567 104.57837,128.43027 103.74316,129.12343 C 100.04356,132.19383 105.66501,120.91481 111.85588,112.84591 C 114.27242,109.69629 116.56901,106.68671 116.95942,106.15795 C 117.80686,105.01019 116.04013,98.021165 114.90255,98.021165 C 114.48581,98.021165 114.34572,98.544635 114.59124,99.184445 C 114.83675,99.824245 114.69096,100.34773 114.26725,100.34773 C 113.84354,100.34773 113.14677,101.26859 112.71885,102.39409 C 112.29094,103.51959 111.78438,104.284 111.59317,104.09279 C 111.40195,103.90157 111.93377,101.93376 112.77498,99.719865 C 113.6162,97.505965 113.97393,95.694595 113.56994,95.694595 C 113.16595,95.694595 110.82565,96.218075 108.36928,96.857875 C 105.9129,97.497685 102.75501,98.021165 101.35174,98.021165 C 99.457589,98.021165 98.787689,98.370765 98.751189,99.378325 C 98.711929,100.46255 98.567079,100.40106 98.031009,99.072605 C 97.661949,98.158025 95.721739,96.591545 93.719439,95.591545 C 91.717129,94.591545 89.909969,93.333175 89.703509,92.795175 C 89.220089,91.535395 87.412699,91.529715 86.905619,92.786385 C 86.668189,93.374815 86.490399,93.231985 86.453229,92.422965 C 86.353979,90.262425 84.318769,91.636195 82.158979,95.321615 C 79.747689,99.436165 79.733059,99.969235 81.948519,102.98885 C 84.264669,106.14572 86.789599,111.65331 86.515129,112.94996 C 86.447409,113.26986 86.740989,113.5316 87.167529,113.5316 C 87.594059,113.5316 87.943049,114.02599 87.943049,114.63026 C 87.943049,115.23451 88.379279,115.90493 88.912449,116.12007 C 89.559659,116.38122 89.484479,116.53158 88.686249,116.57246 C 87.974569,116.60891 86.622129,114.86282 85.344899,112.25859 C 84.122259,109.76568 82.912519,108.18093 82.532879,108.57487 C 82.166429,108.95511 79.901319,112.99308 77.499299,117.54813 L 73.131989,125.83005 L 67.935299,127.49504 C 65.077103,128.4108 58.267387,130.91443 52.802589,133.05868 C 44.756497,136.21575 42.27952,137.56826 39.780168,140.16934 L 36.693747,143.38138 L 30.715887,143.02196 C 27.428071,142.82428 22.905864,142.67973 20.666546,142.70075 C 14.491656,142.7587 15.370384,141.0779 22.335026,139.50932 C 24.456132,139.03161 26.327272,138.2337 26.493109,137.7362 C 26.658939,137.23868 25.220083,135.16622 23.295634,133.13071 C 19.817272,129.45162 19.783769,129.4371 17.614209,130.66856 C 15.987544,131.59187 14.345571,131.78466 11.166405,131.4256 L 6.9010355,130.94387 L 9.6153615,129.50826 C 14.524716,126.9117 14.601772,126.69889 11.544906,124.17916 C 10.013228,122.91662 8.9185005,121.72516 9.1121955,121.53147 C 9.3058815,121.33778 10.981513,121.59234 12.835824,122.09716 C 18.766424,123.71169 18.597423,123.63067 17.477849,124.3226 C 16.818802,124.72991 17.232505,124.94381 18.662869,124.93527 C 19.871519,124.92807 21.994626,125.19479 23.380871,125.528 C 25.789386,126.10692 25.901317,126.03278 25.901317,123.85855 C 25.901317,120.67402 24.226353,118.60895 22.09539,119.16621 C 20.980461,119.45777 20.487935,119.29716 20.682064,118.70534 C 20.845947,118.20574 21.943698,117.68356 23.121498,117.54495 C 25.38485,117.2786 27.818778,118.95125 29.118041,121.6659 C 29.537249,122.54177 29.137367,122.29056 28.206004,121.09293 C 26.289574,118.62863 24.656666,118.18564 25.874026,120.46031 C 26.315569,121.28534 26.6845,124.68794 26.693869,128.02165 C 26.71266,134.71051 28.474815,139.92235 31.213051,141.38781 C 34.079045,142.92164 36.600537,142.37779 38.480324,139.82037 C 40.985965,136.41148 51.427984,131.55044 66.717169,126.67538 C 69.331919,125.84165 71.828799,124.72438 72.265799,124.19256 C 72.702799,123.66074 75.067709,119.42779 77.521159,114.786 L 81.981969,106.34638 L 80.164509,103.01936 C 78.353789,99.704675 78.352379,99.680525 79.784589,96.504465 C 81.278879,93.190705 80.965919,92.152205 78.333099,91.687915 C 77.088229,91.468395 76.357549,92.942705 73.507129,101.42533 C 70.281269,111.02529 68.585379,114.93007 69.765609,110.04016 C 71.577259,102.5342 75.611299,90.576885 76.567919,89.877385 C 77.184119,89.426815 78.587529,86.472355 79.686619,83.311925 L 81.684969,77.565685 L 80.062069,74.939785 C 79.169489,73.495555 77.983509,70.856595 77.426579,69.075455 L 76.413979,65.837015 L 76.362109,68.796205 C 76.333569,70.423755 76.671489,72.430415 77.113029,73.255445 C 77.650539,74.259785 77.655739,74.755515 77.128799,74.755515 C 75.709419,74.755515 73.208139,68.685245 73.208139,65.240615 C 73.208139,63.385725 73.720519,61.190665 74.346759,60.362705 C 74.992919,59.508405 75.496039,57.141615 75.510039,54.890415 C 75.527229,52.125985 76.004859,50.325795 77.085749,48.951675 C 78.233119,47.493035 78.637959,45.800665 78.641279,42.449035 C 78.643749,39.957095 79.009019,35.824325 79.452989,33.265105 C 79.896959,30.705885 80.407859,27.604655 80.588329,26.373495 C 80.768789,25.142315 81.059449,23.991995 81.234239,23.817215 C 81.826439,23.225005 82.612689,30.539845 82.053989,31.443845 C 81.740159,31.951635 81.836339,32.133125 82.275439,31.861745 C 82.734579,31.577975 83.467909,33.588155 84.070699,36.782815 C 84.631179,39.753245 85.343919,42.183605 85.654569,42.183605 C 85.965219,42.183605 86.462029,40.874905 86.758579,39.275395 C 87.650259,34.466025 91.096699,29.091255 96.451189,24.159675 C 103.94171,17.260745 107.10877,15.303915 108.93652,16.445375 C 111.07717,17.782235 111.2087,17.665995 111.2087,14.437385 C 111.2087,12.826135 111.77842,10.694465 112.47474,9.7003251 C 113.90325,7.6608451 119.21587,5.0013151 121.91277,4.9755951 C 123.41909,4.9612251 122.90362,5.7188651 118.6168,9.8200551 C 113.23844,14.965525 112.37991,16.597165 115.34954,16.029485 C 117.72939,15.574545 122.27811,20.670005 125.76559,27.697525 C 128.29834,32.801185 128.30117,32.820235 127.78802,41.269265 C 127.19168,51.087845 127.55292,53.168075 130.14977,54.869595 C 132.01758,56.093435 132.125,56.032305 136.9447,51.002565 C 142.37493,45.335695 151.91744,37.399515 155.57585,35.507675 C 157.53872,34.492635 158.06692,34.461195 158.65077,35.324655 C 159.17802,36.104395 159.2987,35.996495 159.1295,34.896595 C 159.00508,34.087775 159.37614,33.261275 159.95407,33.059925 C 160.73219,32.788825 160.85989,33.150545 160.44622,34.453945 C 160.00377,35.847945 160.13694,36.118365 161.08642,35.754015 C 161.9101,35.437945 161.67205,36.189975 160.32574,38.157145 C 155.87434,44.661345 149.25923,59.869985 149.21927,63.691775 C 149.19919,65.612325 154.97804,62.308765 173.25044,49.954045 C 183.40459,43.088395 189.52038,40.986735 197.41829,41.648855 C 202.14118,42.044805 211.251,45.154275 211.251,46.370385 C 211.251,46.587635 209.41883,45.912375 207.17951,44.869825 C 202.68372,42.776735 196.93612,42.374085 192.56032,43.845665 C 188.9115,45.072775 181.01544,50.387405 173.6382,56.581665 C 170.2259,59.446775 165.38278,63.131405 162.8757,64.769705 C 160.0675,66.604805 158.72761,67.896515 159.38585,68.134095 C 159.97351,68.346195 163.57095,69.236355 167.38016,70.112225 C 175.97701,72.088945 180.6387,74.111645 183.98182,77.315675 C 189.19775,82.314625 190.97843,88.499995 189.52395,96.566815 C 188.14537,104.21266 184.81481,109.51959 174.73837,120.12629 C 164.68508,130.70862 163.48813,132.93002 164.18761,139.70737 C 165.48338,152.26208 179.36377,158.17434 187.91504,149.8139 C 190.57091,147.21728 191.2664,144.37757 189.76978,142.24084 C 188.3369,140.19513 184.07484,140.19599 179.5638,142.24293 C 175.64642,144.02049 175.577,144.0334 175.577,142.98451 C 175.577,141.72129 184.41762,136.35367 188.27863,135.27266 C 195.19458,133.33631 198.07603,136.15602 195.09429,141.94227 C 190.5697,150.72252 181.53003,156.57357 172.49122,156.57239 C 166.6722,156.57164 160.47178,154.51391 159.21554,152.1666 C 158.75722,151.31021 158.37751,148.28697 158.37176,145.44831 C 158.35446,136.91492 161.76956,128.89274 169.34064,119.68205 C 171.94591,116.51257 175.16039,111.73896 176.48393,109.07402 C 179.4001,103.20232 179.2011,99.798365 175.48663,92.015385 C 173.21391,87.253325 164.26252,77.082075 162.34431,77.082075 C 161.94809,77.082075 163.38292,79.263225 165.53284,81.929085 C 174.75578,93.365375 174.86781,108.2988 165.83682,122.4501 C 163.16142,126.64237 158.53343,131.64501 157.90858,131.02015 C 157.69622,130.80781 158.82679,129.19037 160.42093,127.42584 C 164.06203,123.39557 166.82689,117.49622 167.4638,112.39851 C 168.34791,105.32242 165.51694,94.731325 161.95019,91.771185 C 160.75752,90.781365 160.66574,90.827295 161.07182,92.210825 C 163.53358,100.59801 164.05389,110.43261 162.37043,116.75615 C 161.07715,121.6141 156.67246,129.68209 152.45654,134.91524 C 148.80269,139.45071 140.27496,146.24449 136.9948,147.23315 C 134.29812,148.04593 134.93245,146.62717 138.0057,144.97211 C 142.37275,142.6203 148.49098,136.08413 150.56409,131.55585 C 151.66854,129.14342 152.61197,125.38583 152.81302,122.59852 L 153.15937,117.79697 L 151.36231,121.67458 C 150.37393,123.80726 148.96092,126.67052 148.22228,128.0374 C 146.34545,131.51052 139.64974,138.03347 134.73288,141.17875 C 132.458,142.63397 130.56094,144.4246 130.51718,145.15794 C 130.41435,146.88119 127.60453,138.4968 127.54203,136.28023 C 127.51597,135.35607 127.14989,134.48361 126.7285,134.34143 C 125.97198,134.08617 126.79636,118.33163 128.20292,106.16414 C 128.92131,99.949615 128.63402,99.521135 124.11401,100.06596 C 119.22424,100.65535 118.08795,101.53362 119.02534,103.99913 C 119.66536,105.68251 119.51527,106.47411 118.22525,108.21896 C 116.27259,110.86007 116.14313,116.73622 117.80063,127.49099 C 118.42514,131.54309 118.94236,137.27312 118.95,140.22439 C 118.96653,146.5996 120.62064,149.98891 129.35085,161.53599 C 132.38205,165.54522 135.64733,169.89768 136.60704,171.20813 C 137.56675,172.51857 138.32862,174.64756 138.30008,175.93921 C 138.2512,178.1522 138.19047,178.10315 137.24728,175.08875 C 136.69676,173.32936 134.30113,169.45187 131.92363,166.47212 C 129.54613,163.49237 125.60736,158.12667 123.1708,154.54835 C 118.68831,147.9654 116.1265,146.24188 116.38214,149.98112 C 117.14839,161.18888 117.33341,161.70369 122.55664,167.16107 C 127.7296,172.56591 128.29857,174.08047 126.25311,177.00076 C 124.63951,179.30451 122.26354,180.18724 114.71566,181.28725 L 108.5286,182.18893 L 106.29198,187.60575 C 105.06184,190.585 101.12806,199.61083 97.550249,207.66315 C 93.972439,215.71546 91.064749,222.69515 91.088709,223.17358 C 91.112679,223.652 93.212619,225.78836 95.755239,227.92104 C 98.297859,230.05373 102.60871,234.06705 105.33491,236.83954 L 110.29164,241.88043 L 111.98104,251.96221 C 116.25195,277.44952 123.15503,301.70147 125.94668,301.02636 C 126.41581,300.9129 127.56675,302.57149 128.50431,304.7121 C 130.46623,309.19146 134.35377,315.98847 140.02862,324.86125 C 145.72706,333.77093 149.19921,341.43945 150.21199,347.35206 C 151.27769,353.57357 150.29848,355.9949 146.10718,357.50226 C 143.49247,358.44262 135.74366,358.77372 132.53555,358.08217 z M 59.808636,353.21576 C 60.948482,351.69649 62.112571,350.27897 62.395505,350.0657 C 63.91379,348.92127 65.260739,344.45461 65.372414,340.1939 C 65.591422,331.83795 66.152985,328.47715 68.096899,323.8885 C 69.961909,319.48609 69.966679,319.41338 68.494269,317.83157 C 67.674597,316.95101 67.003964,315.81681 67.003964,315.31113 C 67.003964,314.80545 66.65498,314.39171 66.228443,314.39171 C 65.175486,314.39171 65.248594,311.03552 66.354419,308.60851 C 67.434813,306.2373 67.308465,306.07336 63.943578,305.48055 C 62.499556,305.22616 61.026973,304.83809 60.671171,304.6182 C 60.315377,304.3983 60.02427,304.92968 60.02427,305.79904 C 60.02427,307.677 56.020585,321.68108 53.909351,327.18781 C 53.091695,329.3205 52.343705,331.41441 52.247144,331.84094 C 52.023104,332.83056 51.807819,333.55257 50.744075,336.88184 C 50.101338,338.89345 48.583301,340.49964 44.880371,343.08601 C 40.154753,346.3867 39.883297,346.74425 39.872316,349.68251 C 39.862288,352.36569 40.165525,352.92409 42.096939,353.77902 C 45.227751,355.16485 50.509867,356.13901 54.420978,356.05189 C 57.275867,355.98831 58.023959,355.59451 59.808636,353.21576 z M 54.983379,339.91564 L 51.10577,338.41652 L 54.964883,338.82166 C 57.087392,339.04449 59.343331,339.74614 59.978072,340.38089 C 61.596097,341.99891 59.9834,341.84869 54.983379,339.91564 z M 144.84483,355.53614 C 149.40275,354.47865 149.65833,353.94543 148.59089,347.72063 C 147.12632,339.1799 141.05166,326.1696 135.99342,320.74022 C 135.1247,319.80776 134.64475,319.04484 134.92686,319.04484 C 135.20897,319.04484 134.99841,318.51301 134.45895,317.86299 C 132.99433,316.09824 126.71913,304.93254 126.71913,304.09124 C 126.71913,303.47809 121.38226,303.97891 120.68935,304.65709 C 120.43621,304.90484 123.256,311.82976 124.44893,313.88996 C 125.51034,315.72305 128.75049,325.57319 129.46094,329.12662 C 129.75941,330.6195 130.19008,332.15513 130.41798,332.53914 C 131.16987,333.80604 130.92276,340.59441 130.08611,341.65653 C 128.84216,343.23568 126.71913,350.06339 126.71913,352.48478 C 126.71913,354.3729 127.11084,354.71527 130.0151,355.36567 C 134.32859,356.33164 141.08153,356.40927 144.84483,355.53614 z M 141.45405,346.53008 C 141.45405,345.86511 141.80303,345.53672 142.22957,345.80033 C 143.23302,346.4205 143.23302,347.73914 142.22957,347.73914 C 141.80303,347.73914 141.45405,347.19506 141.45405,346.53008 z M 139.94535,340.62806 C 138.47576,340.2062 136.46909,340.01479 135.4861,340.2027 C 133.52376,340.57782 133.02754,339.63194 134.82484,338.94226 C 135.94257,338.51334 141.72821,338.94485 143.58673,339.59574 C 144.8472,340.03718 144.8472,341.55597 143.58673,341.46502 C 143.05356,341.42656 141.41494,341.04992 139.94535,340.62806 z M 68.810739,342.76266 C 69.042659,342.15828 69.240169,337.88322 69.249659,333.26252 C 69.261969,327.26372 69.044119,325.24771 68.487869,326.21266 C 68.059409,326.95593 67.784049,328.00289 67.875959,328.53922 C 67.967869,329.07556 67.822349,331.08481 67.552584,333.00423 C 66.12108,343.1897 66.103056,343.86153 67.261228,343.86153 C 67.881539,343.86153 68.578819,343.36704 68.810739,342.76266 z M 122.066,302.15291 C 122.066,301.81962 120.12917,296.4976 117.76193,290.3262 C 115.39468,284.1548 112.20535,275.44113 110.67452,270.96249 C 105.15889,254.82585 102.31804,248.963 94.250289,237.06677 C 89.928229,230.69373 86.395189,224.98183 86.399079,224.37367 C 86.408499,222.90061 89.691139,210.03962 93.094739,198.14083 C 94.784099,192.23496 95.678159,187.68726 95.411759,186.35525 C 94.507919,181.83606 90.755149,179.69638 87.722999,181.97138 C 86.679119,182.7546 86.203799,185.76938 85.248209,197.66798 C 84.597679,205.76794 84.065439,215.93471 84.065439,220.2608 L 84.065439,228.12641 L 96.469409,253.50431 C 115.59832,292.64106 120.72413,302.75888 121.42241,302.75888 C 121.77638,302.75888 122.066,302.48619 122.066,302.15291 z M 84.273089,194.57361 C 84.503939,188.17556 84.418459,183.98774 84.083119,185.26735 C 83.487039,187.54197 83.014909,207.16814 83.571639,206.52957 C 83.726579,206.35185 84.042239,200.97167 84.273089,194.57361 z M 47.615923,177.83983 C 51.612698,176.23839 53.199842,176.12313 72.820379,176.00954 C 90.277789,175.90847 94.307499,175.67443 97.055429,174.60194 C 98.868209,173.89443 100.35674,173.56183 100.36327,173.86281 C 100.3698,174.16379 100.63154,174.02251 100.94491,173.54885 C 101.25828,173.0752 102.56163,172.1457 103.84124,171.4833 C 109.96228,168.3147 112.93871,163.56699 112.93871,156.97192 C 112.93871,152.50618 113.7249,151.95628 114.89495,155.60365 L 115.70348,158.12409 L 115.77834,155.79753 C 115.8195,154.51792 115.48018,152.12765 115.02429,150.48583 C 113.82232,146.15711 107.56492,133.46493 107.04641,134.30391 C 106.8043,134.69564 104.93715,135.64794 102.89717,136.42014 C 100.85718,137.19233 98.108219,138.64003 96.788349,139.63725 C 95.468469,140.63447 94.069239,141.45038 93.678929,141.45038 C 93.288619,141.45038 92.533389,142.14835 92.000629,143.00142 C 91.467879,143.8545 90.766089,144.55246 90.441079,144.55246 C 90.116079,144.55246 89.056109,142.02233 88.085579,138.92993 C 85.872419,131.87821 84.720519,130.25601 82.360149,130.86688 C 76.779779,132.3111 64.183082,146.7487 64.843501,150.94346 C 65.095297,152.54278 65.495172,152.32378 69.432669,148.43007 C 71.804999,146.08412 74.100339,143.50886 74.533419,142.70727 C 74.966489,141.90568 75.805179,141.41805 76.397169,141.62366 C 78.488909,142.35015 66.940465,152.47036 58.018414,157.72945 C 44.402782,165.75517 38.056525,172.84224 37.620628,180.5083 L 37.406173,184.28 L 40.378359,181.91445 C 42.013066,180.6134 45.26997,178.77982 47.615923,177.83983 z M 61.575313,178.67542 C 61.575313,177.31384 61.077963,177.13158 57.503824,177.18338 C 55.264505,177.21582 52.210889,177.71952 50.71801,178.3027 L 48.003684,179.36303 L 52.269053,178.98347 C 55.778405,178.67118 57.817143,178.93436 61.381432,180.1598 C 61.488067,180.19646 61.575313,179.52849 61.575313,178.67542 z M 114.75394,177.8999 C 114.75394,177.04682 114.47974,176.34885 114.1446,176.34885 C 113.80947,176.34885 113.53527,177.04682 113.53527,177.8999 C 113.53527,178.75297 113.80947,179.45094 114.1446,179.45094 C 114.47974,179.45094 114.75394,178.75297 114.75394,177.8999 z M 121.50927,178.39469 C 125.14114,176.85749 127.03489,174.50194 126.06372,172.72964 C 124.8892,170.58623 117.41287,163.47871 117.41287,164.50553 C 117.41287,164.9975 117.79013,165.63318 118.25124,165.91815 C 118.71233,166.20312 118.87957,167.27309 118.62287,168.29585 C 118.30283,169.57099 118.46588,170.0928 119.14167,169.95617 C 121.12899,169.55438 120.71862,174.43677 118.54828,177.01608 C 116.21638,179.78738 117.16992,180.23135 121.50927,178.39469 z M 118.96392,172.76405 C 118.96392,171.6739 117.46142,171.21982 117.35354,172.27736 C 117.3209,172.59727 117.17443,173.4892 117.02804,174.25945 C 116.81319,175.38993 116.97414,175.48374 117.8629,174.74613 C 118.46846,174.24356 118.96392,173.35162 118.96392,172.76405 z M 114.31079,173.24677 C 114.31079,172.82023 113.9618,172.47124 113.53527,172.47124 C 113.10873,172.47124 112.75974,172.82023 112.75974,173.24677 C 112.75974,173.6733 113.10873,174.02229 113.53527,174.02229 C 113.9618,174.02229 114.31079,173.6733 114.31079,173.24677 z M 116.7246,166.04411 C 116.09125,165.41076 115.86183,165.49755 115.86183,166.37047 C 115.86183,167.9121 116.90467,168.95494 117.29009,167.79873 C 117.45359,167.30821 117.19912,166.51863 116.7246,166.04411 z M 115.86183,161.18041 C 115.86183,160.99231 115.31776,160.83842 114.65278,160.83842 C 113.9878,160.83842 113.66293,161.1931 113.93084,161.62659 C 114.37352,162.34285 115.86183,161.99896 115.86183,161.18041 z M 169.22726,153.0832 C 170.26735,153.0832 170.1771,152.76035 168.73947,151.33828 C 167.76927,150.37857 166.45147,148.89539 165.81103,148.04231 C 164.71331,146.5801 164.67445,146.63563 165.13254,149.01171 C 165.52865,151.06636 165.37205,151.53216 164.28517,151.53216 C 163.55186,151.53216 162.48828,150.92144 161.92165,150.175 C 160.99681,148.95666 160.88889,148.94837 160.86675,150.09395 C 160.83882,151.53928 167.28067,155.09114 167.69253,153.85751 C 167.83471,153.43164 168.52534,153.0832 169.22726,153.0832 z M 27.064599,141.45038 C 26.800984,141.02384 24.948216,140.72727 22.947339,140.79133 L 19.309383,140.90782 L 22.79923,141.45038 C 24.718646,141.74879 26.571406,142.04536 26.916482,142.10942 C 27.261558,142.17348 27.328207,141.87691 27.064599,141.45038 z M 15.044013,129.04203 C 16.557808,127.85793 16.695339,127.5217 15.671418,127.50824 C 14.950152,127.49875 14.129231,127.86442 13.847143,128.32086 C 13.565055,128.77728 12.584749,129.45314 11.668687,129.82274 C 10.091292,130.45919 10.085227,130.49645 11.554166,130.52667 C 12.40724,130.54422 13.977671,129.87614 15.044013,129.04203 z M 25.125795,129.17129 C 25.125795,128.81583 24.617665,128.52501 23.99662,128.52501 C 23.375582,128.52501 23.047195,128.81583 23.26687,129.17129 C 23.784515,130.00885 25.125795,130.00885 25.125795,129.17129 z M 136.49394,119.94581 C 136.23624,119.68811 136.05295,120.14615 136.08662,120.96368 C 136.12383,121.86712 136.3076,122.05088 136.55516,121.43223 C 136.77919,120.87239 136.75164,120.20351 136.49394,119.94581 z M 134.57404,118.76637 C 135.41712,117.18413 135.38351,117.12068 134.21356,118.0858 C 133.50392,118.67121 132.92331,119.45642 132.92331,119.83073 C 132.92331,121.01533 133.61246,120.57098 134.57404,118.76637 z M 115.08631,115.85816 C 115.08631,114.87467 114.5897,114.32952 113.72915,114.36835 C 112.98271,114.40202 112.78861,114.59906 113.29782,114.80621 C 113.80703,115.01336 114.03143,115.68378 113.79648,116.29603 C 113.56155,116.90827 113.75565,117.40921 114.22781,117.40921 C 114.69999,117.40921 115.08631,116.71124 115.08631,115.85816 z M 136.53409,110.99639 C 136.32165,110.47134 136.16078,111.0887 136.17658,112.36832 C 136.19239,113.64793 136.3662,114.07752 136.56282,113.32296 C 136.75945,112.5684 136.74652,111.52145 136.53409,110.99639 z M 140.99957,110.62339 C 140.33457,106.93793 139.8655,106.13328 139.10213,107.36844 C 138.58348,108.20763 140.43463,113.5316 141.24507,113.5316 C 141.39866,113.5316 141.28819,112.22291 140.99957,110.62339 z M 148.55891,103.92197 C 148.13637,101.20786 147.11356,97.510265 146.286,95.705115 C 145.00052,92.901045 144.71909,92.661145 144.35379,94.058015 C 144.11863,94.957295 144.2272,95.879065 144.59507,96.106425 C 144.96293,96.333775 145.04536,97.089335 144.77824,97.785455 C 144.47639,98.572025 144.60419,98.858525 145.11584,98.542305 C 145.69093,98.186885 145.71234,98.926955 145.18686,100.99719 C 144.52259,103.61418 144.6912,104.38752 146.62805,107.60758 C 149.19596,111.87681 149.65959,110.99184 148.55891,103.92197 z M 131.51767,106.79766 C 130.95784,106.57363 130.28896,106.60118 130.03125,106.85888 C 129.77356,107.11658 130.2316,107.29987 131.04913,107.2662 C 131.95257,107.22899 132.13633,107.04522 131.51767,106.79766 z M 134.86211,106.5519 C 134.24794,105.55817 133.69883,105.55817 133.69883,106.5519 C 133.69883,106.97844 134.06841,107.32742 134.52012,107.32742 C 134.97183,107.32742 135.12573,106.97844 134.86211,106.5519 z M 138.35196,103.79181 C 138.35196,103.17717 137.74124,102.70185 136.9948,102.73552 C 136.24836,102.7692 136.05426,102.96623 136.56347,103.17339 C 137.07268,103.38054 137.27511,104.1082 137.01332,104.79042 C 136.69713,105.61441 136.84193,105.84257 137.44465,105.47007 C 137.94367,105.16166 138.35196,104.40644 138.35196,103.79181 z M 131.75221,103.43717 C 131.4843,103.00367 130.94022,102.84977 130.54315,103.09518 C 129.46747,103.75998 129.66805,104.22534 131.03027,104.22534 C 131.69525,104.22534 132.02012,103.87066 131.75221,103.43717 z M 143.32984,100.85094 C 143.06184,100.15254 142.5132,99.784665 142.11065,100.03347 C 141.67426,100.30317 141.7517,100.93522 142.30242,101.59879 C 143.43692,102.96577 143.98757,102.56495 143.32984,100.85094 z M 134.05347,100.29414 C 133.38867,99.218455 132.92331,99.419035 132.92331,100.78126 C 132.92331,101.44624 133.27798,101.77111 133.71148,101.5032 C 134.14497,101.23528 134.29887,100.69121 134.05347,100.29414 z M 123.01901,98.232595 C 125.57281,97.869405 125.96814,97.515755 126.40129,95.206925 C 126.92894,92.394235 126.36425,88.252295 125.20298,86.417485 C 124.58273,85.437505 123.8201,85.423955 119.59186,86.317775 C 116.90054,86.886705 114.17507,87.357655 113.53527,87.364325 C 109.74375,87.403905 108.05607,87.027715 107.16779,85.944985 C 104.57261,82.781745 103.34391,81.711385 102.73785,82.085955 C 102.37536,82.309985 101.89728,81.799245 101.67545,80.950955 C 101.45362,80.102685 100.72593,79.408645 100.05835,79.408645 C 99.390769,79.408645 96.853499,78.528085 94.419969,77.451865 C 91.906909,76.340475 89.703509,75.786935 89.319829,76.170605 C 87.933589,77.556845 92.428139,84.837295 94.670159,84.837295 C 95.301659,84.837295 95.698269,83.914845 95.698269,82.446105 C 95.698269,79.765165 96.873559,79.706945 98.596949,82.302495 C 99.567249,83.763855 99.516799,84.120845 98.146299,85.491345 C 97.297509,86.340135 96.806619,87.238175 97.055429,87.486995 C 97.304239,87.735805 96.908849,87.939375 96.176769,87.939375 C 94.017999,87.939375 90.280269,85.684935 86.360999,82.018925 L 82.696219,78.590945 L 80.610419,83.801165 L 78.524629,89.011385 L 80.324069,90.368705 C 82.047079,91.668385 82.191559,91.662085 83.726099,90.220455 C 85.659719,88.403915 86.658029,88.329835 87.965979,89.905815 C 89.530809,91.791305 99.436409,96.470115 101.86341,96.470115 C 103.07463,96.470115 106.43741,95.737545 109.33627,94.842185 C 114.44827,93.263245 114.63848,93.257405 115.65581,94.648305 C 116.23271,95.437025 116.90711,96.888385 117.15448,97.873535 C 117.47464,99.148615 117.96771,99.517635 118.86572,99.154285 C 119.55953,98.873545 121.42852,98.458785 123.01901,98.232595 z M 131.51767,95.164825 C 130.95784,94.940805 130.28896,94.968355 130.03125,95.226045 C 129.77356,95.483755 130.2316,95.667045 131.04913,95.633365 C 131.95257,95.596155 132.13633,95.412395 131.51767,95.164825 z M 134.86211,94.919075 C 134.24794,93.925335 133.69883,93.925335 133.69883,94.919075 C 133.69883,95.345615 134.06841,95.694595 134.52012,95.694595 C 134.97183,95.694595 135.12573,95.345615 134.86211,94.919075 z M 149.34158,93.121115 C 147.47182,91.130845 147.14275,89.906275 148.62762,90.464305 C 149.16079,90.664675 150.46949,91.098105 151.53583,91.427485 L 153.47463,92.026355 L 151.34195,89.877115 C 150.16897,88.695035 149.20926,87.459145 149.20926,87.130695 C 149.20926,86.271995 154.77335,88.004875 156.38759,89.366315 C 157.13665,89.998065 157.94196,90.322495 158.17717,90.087285 C 158.78327,89.481185 154.9076,86.887805 150.53131,84.971135 C 147.09057,83.464195 146.78187,83.441785 146.40322,84.671485 C 146.17812,85.402485 145.66749,86.611295 145.26847,87.357735 C 144.78842,88.255775 144.82305,88.714905 145.37085,88.714905 C 145.82617,88.714905 145.97166,89.082285 145.69415,89.531305 C 145.41664,89.980325 146.35575,91.504565 147.78106,92.918475 C 150.66018,95.774575 151.99751,95.948225 149.34158,93.121115 z M 182.27094,90.441745 C 182.58959,88.425635 182.81114,85.617325 182.76325,84.201065 C 182.64595,80.731785 179.76152,74.755515 178.20438,74.755515 C 177.31832,74.755515 177.12766,75.144665 177.53948,76.112675 C 178.74743,78.951985 179.74303,83.256335 179.29537,83.703995 C 179.03873,83.960635 177.25999,82.601855 175.34262,80.684485 C 173.42525,78.767115 170.68694,76.861055 169.2575,76.448795 C 167.82805,76.036545 165.96053,75.439455 165.10746,75.121935 C 163.92148,74.680505 164.10402,75.103175 165.88298,76.917685 C 167.16259,78.222865 169.0476,79.404525 170.0719,79.543575 C 174.02733,80.080555 180.64964,88.881835 180.35992,93.216725 C 180.14544,96.425875 181.67651,94.202615 182.27094,90.441745 z M 138.35196,92.592505 C 138.35196,91.609015 137.85536,91.063865 136.9948,91.102695 C 136.24836,91.136365 136.05426,91.333405 136.56347,91.540555 C 137.07268,91.747705 137.29708,92.418125 137.06214,93.030375 C 136.8272,93.642615 137.0213,94.143555 137.49347,94.143555 C 137.96564,94.143555 138.35196,93.445585 138.35196,92.592505 z M 131.75221,91.804335 C 131.4843,91.370845 130.94022,91.216945 130.54315,91.462345 C 129.46747,92.127145 129.66805,92.592505 131.03027,92.592505 C 131.69525,92.592505 132.02012,92.237835 131.75221,91.804335 z M 168.30483,88.430695 C 168.04152,87.381575 166.46235,85.230935 164.79556,83.651495 C 160.08962,79.192165 151.81865,74.902785 154.74505,78.439235 C 155.91407,79.851955 156.92415,81.920825 158.53134,86.194455 C 159.59492,89.022545 161.22491,89.683095 160.44505,86.969975 C 160.1692,86.010265 159.77318,84.614325 159.56501,83.867885 C 158.81986,81.195965 161.26525,82.628355 164.63199,86.835865 C 168.17015,91.257595 169.1176,91.669005 168.30483,88.430695 z M 134.05347,88.661315 C 133.38867,87.585635 132.92331,87.786205 132.92331,89.148435 C 132.92331,89.813415 133.27798,90.138275 133.71148,89.870365 C 134.14497,89.602455 134.29887,89.058375 134.05347,88.661315 z M 108.10661,83.768965 C 108.10661,83.607925 107.49589,82.997205 106.74945,82.411805 C 105.51943,81.447155 105.492,81.474585 106.45664,82.704605 C 107.46976,83.996435 108.10661,84.407245 108.10661,83.768965 z M 131.51767,83.532005 C 130.95784,83.307975 130.28896,83.335525 130.03125,83.593225 C 129.77356,83.850925 130.2316,84.034215 131.04913,84.000545 C 131.95257,83.963335 132.13633,83.779565 131.51767,83.532005 z M 134.86211,83.286245 C 134.24794,82.292515 133.69883,82.292515 133.69883,83.286245 C 133.69883,83.712785 134.06841,84.061775 134.52012,84.061775 C 134.97183,84.061775 135.12573,83.712785 134.86211,83.286245 z M 86.972019,77.955815 C 83.768049,71.491595 83.332519,65.929775 85.539299,59.659715 C 87.442749,54.251495 87.388339,54.591945 86.349099,54.591945 C 85.898969,54.591945 84.611069,56.598605 83.487099,59.051195 C 80.058719,66.532225 81.030869,73.396905 86.478709,80.176015 C 87.853139,81.886315 89.073359,83.189955 89.190309,83.073015 C 89.307259,82.956065 88.309029,80.653325 86.972019,77.955815 z M 113.11438,82.564315 C 113.35979,82.167245 113.23738,81.642635 112.84238,81.398515 C 111.92551,80.831865 109.65766,81.682955 109.65766,82.593695 C 109.65766,83.511525 112.54413,83.486995 113.11438,82.564315 z M 119.68908,80.234515 C 124.74345,75.180155 125.72726,68.432165 122.38703,61.729205 C 120.12833,57.196585 116.27436,53.869215 114.8884,55.255175 C 114.26684,55.876735 114.70516,57.409555 116.49919,60.888115 C 119.75352,67.198135 119.93252,73.671145 117.01205,79.434415 C 115.93852,81.552925 115.41504,83.286245 115.84876,83.286245 C 116.28249,83.286245 118.01063,81.912975 119.68908,80.234515 z M 138.35196,80.959685 C 138.35196,79.976195 137.85536,79.431045 136.9948,79.469865 C 136.24836,79.503545 136.05426,79.700575 136.56347,79.907735 C 137.07268,80.114885 137.29708,80.785295 137.06214,81.397555 C 136.8272,82.009795 137.0213,82.510725 137.49347,82.510725 C 137.96564,82.510725 138.35196,81.812755 138.35196,80.959685 z M 143.00509,80.526155 C 143.00509,80.338055 142.65611,80.184165 142.22957,80.184165 C 141.80303,80.184165 141.45405,80.553745 141.45405,81.005455 C 141.45405,81.457165 141.80303,81.611055 142.22957,81.347445 C 142.65611,81.083825 143.00509,80.714245 143.00509,80.526155 z M 104.229,80.666875 C 104.229,80.505845 103.61828,79.895115 102.87184,79.309715 C 101.64182,78.345065 101.61439,78.372495 102.57904,79.602525 C 103.59215,80.894345 104.229,81.305165 104.229,80.666875 z M 131.75221,80.171515 C 131.4843,79.738015 130.94022,79.584115 130.54315,79.829525 C 129.46747,80.494325 129.66805,80.959685 131.03027,80.959685 C 131.69525,80.959685 132.02012,80.605005 131.75221,80.171515 z M 107.98058,76.386335 C 108.28457,74.245605 106.67122,72.918575 105.22442,74.119315 C 104.14773,75.012885 103.89496,77.265045 104.77283,78.142915 C 105.84897,79.219055 107.72415,78.192195 107.98058,76.386335 z M 134.05347,77.028485 C 133.38867,75.952805 132.92331,76.153385 132.92331,77.515605 C 132.92331,78.180585 133.27798,78.505455 133.71148,78.237545 C 134.14497,77.969625 134.29887,77.425555 134.05347,77.028485 z M 127.18768,74.190025 C 126.92997,73.932325 126.74669,74.390375 126.78036,75.207895 C 126.81757,76.111335 127.00134,76.295095 127.2489,75.676445 C 127.47292,75.116615 127.44538,74.447725 127.18768,74.190025 z M 107.44789,69.603265 C 108.84954,68.026855 110.42203,63.023035 110.42885,60.117535 C 110.4326,58.520265 110.14997,58.332835 108.30049,58.706065 C 107.12752,58.942775 105.55709,59.372725 104.81065,59.661505 C 102.77094,60.450605 103.12557,58.508925 105.46765,56.064325 C 108.01111,53.409525 107.66818,52.375605 102.29399,46.495955 L 98.083839,41.889805 L 96.413029,43.393865 C 94.259359,45.332585 90.269609,51.112105 90.269609,52.293165 C 90.269609,52.794545 91.142079,54.241625 92.208419,55.508905 C 94.875909,58.679035 94.659019,59.345245 91.142529,58.782935 C 87.508489,58.201825 86.684459,59.163475 88.239579,62.170735 C 89.719199,65.031995 96.293499,71.080865 97.268659,70.478185 C 98.424619,69.763755 98.168449,68.551335 96.861549,68.551335 C 96.221739,68.551335 95.698269,68.063185 95.698269,67.466565 C 95.698269,66.638405 96.890749,66.405005 100.73916,66.479925 C 104.34329,66.550085 105.78005,66.869325 105.78005,67.599955 C 105.78005,69.257345 102.12056,72.427965 100.19276,72.440815 C 98.822199,72.449965 98.669059,72.614985 99.527249,73.158005 C 100.80612,73.967225 105.40143,71.904875 107.44789,69.603265 z M 94.435319,64.305895 C 94.194009,63.677055 94.617049,62.542855 95.375399,61.785455 C 96.696359,60.466155 96.735119,60.481595 96.298849,62.153285 C 95.979709,63.376175 96.183469,63.898205 96.979919,63.898205 C 97.604969,63.898205 97.900689,64.247195 97.637069,64.673725 C 96.918959,65.835645 94.934869,65.607715 94.435319,64.305895 z M 88.330809,71.653425 C 87.716639,70.659685 87.167529,70.659685 87.167529,71.653425 C 87.167529,72.079965 87.537109,72.428945 87.988819,72.428945 C 88.440529,72.428945 88.594429,72.079965 88.330809,71.653425 z M 131.51767,71.899175 C 130.95784,71.675155 130.28896,71.702705 130.03125,71.960395 C 129.77356,72.218105 130.2316,72.401395 131.04913,72.367715 C 131.95257,72.330505 132.13633,72.146745 131.51767,71.899175 z M 91.820659,69.326855 C 91.820659,68.343365 91.324049,67.798225 90.463499,67.837045 C 89.717059,67.870715 89.522959,68.067755 90.032169,68.274915 C 90.541379,68.482055 90.765779,69.152475 90.530829,69.764725 C 90.295899,70.376965 90.489989,70.877905 90.962159,70.877905 C 91.434339,70.877905 91.820659,70.179935 91.820659,69.326855 z M 138.35196,69.326855 C 138.35196,68.343365 137.85536,67.798225 136.9948,67.837045 C 136.24836,67.870715 136.05426,68.067755 136.56347,68.274915 C 137.07268,68.482055 137.29708,69.152475 137.06214,69.764725 C 136.8272,70.376965 137.0213,70.877905 137.49347,70.877905 C 137.96564,70.877905 138.35196,70.179935 138.35196,69.326855 z M 103.84124,68.382315 C 104.38307,67.799085 104.18868,67.698775 103.19617,68.049435 C 102.41485,68.325485 101.10616,68.551335 100.28797,68.551335 C 99.469779,68.551335 98.800349,68.938155 98.800349,69.410935 C 98.800349,70.434685 102.66771,69.645535 103.84124,68.382315 z M 131.75221,68.538685 C 131.4843,68.105195 130.94022,67.951295 130.54315,68.196695 C 129.46747,68.861495 129.66805,69.326855 131.03027,69.326855 C 131.69525,69.326855 132.02012,68.972185 131.75221,68.538685 z M 87.522169,65.395665 C 86.857369,64.319985 86.392009,64.520555 86.392009,65.882785 C 86.392009,66.547765 86.746679,66.872625 87.180179,66.604715 C 87.613669,66.336795 87.767569,65.792725 87.522169,65.395665 z M 146.10718,65.403475 C 146.10718,64.951765 145.75819,64.797875 145.33166,65.061485 C 144.33792,65.675655 144.33792,66.224775 145.33166,66.224775 C 145.75819,66.224775 146.10718,65.855185 146.10718,65.403475 z M 80.922039,60.796125 C 81.271799,60.796125 81.745709,60.078225 81.975159,59.200785 C 82.240579,58.185865 82.061869,57.715625 81.483969,57.908255 C 80.984359,58.074795 80.610229,58.530955 80.652549,58.921945 C 80.694879,59.312935 80.233529,59.995505 79.627349,60.438765 C 78.825919,61.024785 78.698719,61.871215 79.161179,63.540845 L 79.797189,65.837015 L 80.041649,63.316565 C 80.176099,61.930325 80.572269,60.796125 80.922039,60.796125 z M 79.398949,57.296205 C 80.544919,55.760515 80.542689,55.760515 78.745469,57.297595 C 77.753609,58.145895 76.582359,59.541835 76.142689,60.399685 L 75.343289,61.959405 L 76.796159,60.398295 C 77.595239,59.539685 78.766499,58.143745 79.398949,57.296205 z M 124.0284,58.710305 C 123.59155,56.381715 123.68377,56.006255 124.52372,56.693725 C 125.28071,57.313295 125.81222,57.260045 126.51753,56.493975 C 127.75839,55.146235 126.80947,54.567385 122.75003,54.195815 C 119.83737,53.929205 119.6704,54.012275 120.69516,55.218185 C 121.30863,55.940095 122.25936,57.664955 122.80789,59.051195 C 124.13362,62.401575 124.69164,62.245715 124.0284,58.710305 z M 163.37647,60.020595 C 164.1069,59.167525 165.16944,58.469555 165.73767,58.469555 C 167.14977,58.469555 175.18253,54.062905 176.3628,52.640755 C 177.78691,50.924805 175.20653,51.103225 173.37969,52.847025 C 172.5977,53.593465 171.4635,54.318915 170.85925,54.459145 C 170.25498,54.599365 169.23711,55.164555 168.59731,55.715115 C 167.9575,56.265665 166.99779,56.558085 166.46462,56.364925 C 165.93145,56.171775 165.49522,56.391805 165.49522,56.853885 C 165.49522,57.315965 165.01187,57.694035 164.42113,57.694035 C 163.83038,57.694035 162.77538,58.566495 162.07669,59.632835 C 160.56119,61.945765 161.49067,62.223055 163.37647,60.020595 z M 138.35196,57.694035 C 138.35196,56.710545 137.85536,56.165395 136.9948,56.204215 C 136.24836,56.237895 136.05426,56.434925 136.56347,56.642085 C 137.07268,56.849235 137.29708,57.519655 137.06214,58.131905 C 136.8272,58.744145 137.0213,59.245075 137.49347,59.245075 C 137.96564,59.245075 138.35196,58.547105 138.35196,57.694035 z M 107.30863,57.724325 C 107.93608,57.327515 108.18952,56.742905 107.87181,56.425205 C 107.5541,56.107495 106.70421,56.437505 105.98316,57.158555 C 104.58149,58.560225 105.42057,58.918375 107.30863,57.724325 z M 89.831629,56.224255 C 90.067619,55.842415 89.739239,55.329885 89.101879,55.085315 C 88.397969,54.815195 87.943049,55.087735 87.943049,55.779565 C 87.943049,57.033885 89.154899,57.319235 89.831629,56.224255 z M 146.10718,53.816425 C 146.10718,53.389885 145.75819,53.040905 145.33166,53.040905 C 144.90512,53.040905 144.55613,53.389885 144.55613,53.816425 C 144.55613,54.242965 144.90512,54.591945 145.33166,54.591945 C 145.75819,54.591945 146.10718,54.242965 146.10718,53.816425 z M 81.355019,51.762825 C 82.677479,49.744485 82.671299,49.716885 80.995189,50.155195 C 79.729479,50.486185 79.399279,50.315845 79.714479,49.494475 C 80.265849,48.057615 79.817669,48.093195 78.304419,49.606455 C 76.649509,51.261365 76.600079,53.633885 78.249029,52.265385 C 79.201769,51.474685 79.412309,51.527685 79.412309,52.558185 C 79.412309,54.299385 79.795909,54.142335 81.355019,51.762825 z M 150.45333,50.924375 C 150.19563,50.666675 150.01234,51.124725 150.04601,51.942245 C 150.08322,52.845685 150.26699,53.029445 150.51455,52.410795 C 150.73858,51.850965 150.71103,51.182075 150.45333,50.924375 z M 90.463499,49.871065 C 92.507919,46.279065 92.092569,45.444075 89.881849,48.701755 C 87.806989,51.759235 87.612899,52.268165 88.524689,52.260485 C 88.844589,52.257785 89.717059,51.182545 90.463499,49.871065 z M 112.21772,51.773375 C 112.7766,51.214505 106.3111,46.061205 105.05105,46.061205 C 104.59893,46.061205 104.22579,45.799475 104.22185,45.479565 C 104.21791,45.159665 102.62685,43.153005 100.68616,41.020315 C 97.617739,37.648335 97.316819,37.469305 98.378479,39.647315 C 99.049939,41.024845 101.72797,44.427445 104.32964,47.208645 C 108.63921,51.815585 110.87924,53.111865 112.21772,51.773375 z M 155.01786,45.273035 C 154.74995,44.839545 154.20587,44.685645 153.80881,44.931045 C 152.73313,45.595855 152.9337,46.061205 154.29593,46.061205 C 154.9609,46.061205 155.28577,45.706535 155.01786,45.273035 z M 94.391349,42.545045 C 96.471509,38.182915 95.903829,36.862425 93.762709,41.082765 C 91.564949,45.414745 91.605179,45.285685 92.452549,45.285685 C 92.800079,45.285685 93.672539,44.052395 94.391349,42.545045 z M 83.677679,43.734645 C 83.063509,42.740895 82.514399,42.740895 82.514399,43.734645 C 82.514399,44.161185 82.883979,44.510165 83.335689,44.510165 C 83.787399,44.510165 83.941299,44.161185 83.677679,43.734645 z M 80.656379,39.291545 C 80.398669,39.033855 80.215389,39.491895 80.249059,40.309425 C 80.286269,41.212865 80.470039,41.396625 80.717599,40.777965 C 80.941619,40.218145 80.914079,39.549255 80.656379,39.291545 z M 158.12776,36.754945 C 157.5136,35.761205 156.96448,35.761205 156.96448,36.754945 C 156.96448,37.181485 157.33406,37.530475 157.78577,37.530475 C 158.23748,37.530475 158.39138,37.181485 158.12776,36.754945 z M 115.16389,29.920215 C 114.1955,28.110755 114.93581,27.133865 116.37212,28.325895 C 117.19242,29.006685 117.41806,28.799935 117.43738,27.349765 L 117.46189,25.509885 L 119.1823,27.530935 C 120.12853,28.642505 121.32384,30.212935 121.83856,31.020785 C 122.60266,32.220035 122.62783,32.037125 121.97573,30.024105 C 121.44859,28.396795 121.43601,27.074805 121.93872,26.135465 C 122.46863,25.145325 122.40088,24.302735 121.71605,23.366185 C 120.1681,21.249225 118.85152,21.689965 119.46164,24.120855 C 119.96926,26.143405 119.89056,26.114515 117.3491,23.345335 C 115.8972,21.763345 114.37533,20.468995 113.96717,20.468995 C 113.55901,20.468995 113.64384,20.887775 114.15568,21.399625 C 114.66753,21.911465 115.08631,22.937515 115.08631,23.679725 C 115.08631,25.371065 111.50552,25.284965 110.40352,23.567115 C 109.88709,22.762065 109.80846,23.182245 110.14623,24.942175 C 110.57769,27.190265 110.46806,27.414695 109.17574,26.929035 C 108.37446,26.627905 107.32624,25.857605 106.84639,25.217265 C 106.12934,24.260385 105.97393,24.432655 105.97393,26.184375 C 105.97393,27.697255 106.29043,28.194305 107.06461,27.897215 C 107.68501,27.659155 109.1318,28.558975 110.42006,29.984135 C 112.59735,32.392785 112.66907,32.414685 112.27656,30.550775 L 111.86828,28.611975 L 113.67118,30.612255 C 115.60772,32.760815 116.47015,32.360995 115.16389,29.920215 z M 146.76575,190.50212 C 146.70143,189.75568 146.7195,188.21702 146.80591,187.08286 C 146.89232,185.94871 146.59596,184.79391 146.14733,184.51665 C 145.17109,183.9133 145.04281,179.45094 146.00171,179.45094 C 146.37023,179.45094 147.67893,177.96775 148.90991,176.15497 C 152.05174,171.52824 154.64716,168.85834 157.35224,167.47038 L 159.67881,166.27663 L 157.66632,166.27185 C 156.55945,166.26922 154.98944,167.00121 154.17741,167.89849 C 153.36539,168.79578 151.27233,170.36717 149.52617,171.39048 C 147.49483,172.58093 145.62341,174.58853 144.33025,176.96448 L 142.30915,180.67792 L 144.2263,184.05314 C 146.17215,187.47886 146.35983,188.99172 144.57169,186.83714 C 144.03215,186.18702 143.16404,185.65511 142.64257,185.65511 C 141.18391,185.65511 139.29961,183.19575 138.78037,180.61422 L 138.31241,178.28766 L 139.63617,180.8081 C 141.17823,183.7442 142.16196,184.10001 141.67354,181.54499 C 141.47962,180.5306 142.21373,178.10589 143.3758,175.92246 L 145.41901,172.08348 L 143.04877,171.11186 C 139.98816,169.85723 140.05893,169.60827 143.36647,169.99441 C 145.9588,170.29705 146.12034,170.16047 147.90763,166.15495 C 150.65633,159.9948 152.12902,158.98336 158.10973,159.14815 C 162.1316,159.25896 163.23835,159.02512 163.84802,157.9357 C 164.84152,156.16041 165.78357,157.15716 165.11199,159.27308 C 164.63216,160.78491 163.25751,161.62147 157.74,163.75941 C 155.95996,164.44914 156.23656,164.64608 161.11766,166.16438 C 164.04171,167.07394 167.26982,167.81811 168.29124,167.81811 C 170.74906,167.81811 170.67305,169.20792 168.18101,169.83338 C 166.31174,170.30254 164.44323,170.08076 160.06657,168.87026 C 158.56865,168.45597 159.02683,169.11307 162.08132,171.7598 C 166.18099,175.31217 170.92387,180.44295 170.92387,181.32553 C 170.92387,182.17932 167.49689,180.06891 166.42065,178.55234 C 164.53108,175.88973 163.295,176.82234 163.43086,180.8081 C 163.52527,183.57818 163.27555,184.49183 162.42402,184.49183 C 161.40525,184.49183 158.26941,180.65141 157.56662,178.54302 C 157.24672,177.58335 150.04604,180.99808 148.52509,182.83072 C 147.78215,183.72591 147.75992,184.39607 148.43156,185.65103 C 149.37597,187.41569 148.77835,191.85929 147.5966,191.85929 C 147.20396,191.85929 146.83007,191.24856 146.76575,190.50212 z M 160.42159,175.94724 C 159.00756,170.72339 157.32792,169.75527 158.19593,174.6644 C 158.82885,178.2439 161.03823,183.1279 161.45668,181.87253 C 161.62933,181.35459 161.16354,178.68821 160.42159,175.94724 z M 162.12631,174.58917 C 161.91387,174.06412 161.75299,174.68148 161.7688,175.96109 C 161.7846,177.2407 161.95841,177.67029 162.15504,176.91574 C 162.35166,176.16118 162.33874,175.11422 162.12631,174.58917 z M 151.12108,168.5133 C 152.6288,167.1895 153.86239,165.64346 153.86239,165.07765 C 153.86239,164.51184 155.69456,163.36192 157.93388,162.52228 L 162.00537,160.99566 L 159.08424,160.44055 C 153.79987,159.43634 150.96615,161.44231 148.66235,167.81811 C 147.21476,171.82435 147.31706,171.85327 151.12108,168.5133 z M 164.08959,168.06387 C 163.52975,167.83984 162.86087,167.86739 162.60317,168.12509 C 162.34547,168.38279 162.80351,168.56608 163.62104,168.53241 C 164.52448,168.4952 164.70824,168.31143 164.08959,168.06387 z M 134.0547,156.13369 C 133.77355,155.67878 133.70984,155.14025 133.91313,154.93696 C 134.11641,154.73368 134.48939,155.10588 134.74197,155.76408 C 135.26636,157.13063 134.81941,157.37101 134.0547,156.13369 z M 132.63135,152.66546 C 131.88299,150.71526 132.10376,150.21206 133.01797,151.7842 C 133.47064,152.56263 133.67763,153.3629 133.47796,153.56258 C 133.27829,153.76225 132.89731,153.35854 132.63135,152.66546 z M 122.066,136.40949 C 122.066,134.91997 122.55039,134.91997 123.12198,136.40949 C 123.36749,137.04929 123.23033,137.57277 122.81719,137.57277 C 122.40404,137.57277 122.066,137.04929 122.066,136.40949 z M 34.586996,134.26962 C 33.452051,132.90209 30.436498,125.79938 30.825631,125.41025 C 30.99623,125.23965 31.688957,126.48252 32.365026,128.17219 C 33.683436,131.46722 35.802099,132.68594 38.067274,131.45231 C 38.840391,131.03126 40.397127,130.49346 41.52669,130.2572 C 42.656253,130.02093 46.936349,127.5839 51.038005,124.84157 C 55.13967,122.09924 60.060975,119.25769 61.974249,118.527 C 63.887515,117.79632 65.452921,116.72242 65.452921,116.14056 C 65.452921,115.5587 66.125298,115.08264 66.947095,115.08264 C 67.768889,115.08264 68.600879,114.47192 68.795939,113.72548 C 69.128329,112.45355 69.156249,112.45508 69.240569,113.74981 C 69.290049,114.50965 68.807049,115.3322 68.167249,115.57771 C 67.527442,115.82323 67.003964,116.44603 67.003964,116.96171 C 67.003964,117.47739 65.123193,118.67885 62.824477,119.63161 C 60.525768,120.58438 54.860831,123.61497 50.235736,126.36626 C 45.610649,129.11754 41.252419,131.3686 40.550789,131.3686 C 39.849159,131.3686 38.83411,131.89995 38.29513,132.54939 C 37.700134,133.26631 36.672684,133.55102 35.679722,133.27411 C 34.411876,132.92055 34.300705,132.99428 35.185117,133.60219 C 35.812569,134.03347 36.124034,134.58825 35.877271,134.83502 C 35.6305,135.08179 35.049882,134.82736 34.586996,134.26962 z M 92.864489,128.11401 C 92.836299,124.42691 93.025609,123.12678 93.406899,124.3889 C 93.903599,126.03306 94.014989,126.09199 94.139859,124.77666 C 94.242719,123.69322 94.506139,123.98405 95.013639,125.74134 C 95.579899,127.70211 95.427759,128.866 94.323979,131.01749 L 92.907799,133.77792 L 92.864489,128.11401 z M 99.785909,131.67557 C 100.04361,131.41787 100.71249,131.39033 101.27233,131.61435 C 101.89099,131.86191 101.70723,132.04568 100.80378,132.08289 C 99.986259,132.11656 99.528209,131.93328 99.785909,131.67557 z M 90.334039,129.04203 C 90.232949,128.82876 90.044659,127.60732 89.915609,126.32771 C 89.786569,125.04809 89.468689,122.6052 89.209209,120.89905 L 88.737439,117.79697 L 89.912599,121.28681 C 90.558929,123.20623 90.959519,125.82362 90.802789,127.10323 C 90.646069,128.38284 90.435129,129.2553 90.334039,129.04203 z M 96.473789,125.25938 C 96.473789,124.88507 97.054399,124.09986 97.764039,123.51445 C 98.933989,122.54933 98.967599,122.61279 98.124519,124.19502 C 97.162939,125.99963 96.473789,126.44398 96.473789,125.25938 z M 91.943109,120.51129 C 91.943109,119.44495 92.119129,119.00872 92.334269,119.54189 C 92.549409,120.07506 92.549409,120.94752 92.334269,121.4807 C 92.119129,122.01387 91.943109,121.57764 91.943109,120.51129 z M 100.05081,120.09933 C 100.75823,119.01968 101.49251,118.29182 101.68256,118.48187 C 102.21961,119.01892 100.39053,122.06234 99.530709,122.06234 C 99.109349,122.06234 99.343389,121.17899 100.05081,120.09933 z M 69.912169,119.67115 C 69.165729,118.85362 68.752439,118.18473 68.993749,118.18473 C 70.003319,118.18473 72.432619,119.84755 72.432619,120.53858 C 72.432619,121.6732 71.422829,121.32568 69.912169,119.67115 z M 91.106359,116.31055 C 91.072689,115.49302 91.255979,115.03498 91.513679,115.29268 C 91.771379,115.55038 91.798929,116.21926 91.574899,116.7791 C 91.327339,117.39775 91.143569,117.21399 91.106359,116.31055 z M 102.67796,116.7043 C 102.67796,116.34338 103.14327,115.6619 103.71199,115.18991 C 104.49233,114.54229 104.74602,114.60594 104.74602,115.44934 C 104.74602,116.06402 104.28071,116.7455 103.71199,116.96373 C 103.14327,117.18197 102.67796,117.06522 102.67796,116.7043 z M 90.024179,112.45956 C 89.732629,111.6998 89.516209,110.496 89.543249,109.78444 C 89.575809,108.92758 89.845169,109.12297 90.340919,110.36306 C 90.752599,111.39286 90.969019,112.59666 90.821849,113.03818 C 90.674679,113.47969 90.315729,113.21932 90.024179,112.45956 z M 105.00453,113.08044 C 105.00453,112.22796 109.26052,106.58526 109.91616,106.56846 C 110.27161,106.55936 110.43491,106.81364 110.27904,107.13354 C 108.53216,110.7189 107.7772,111.81318 106.50038,112.61057 C 105.67766,113.12436 105.00453,113.3358 105.00453,113.08044 z M 96.624979,106.16414 C 96.609169,104.88453 96.770039,104.26717 96.982479,104.79222 C 97.194909,105.31727 97.207839,106.36423 97.011219,107.11879 C 96.814589,107.87335 96.640779,107.44375 96.624979,106.16414 z M 87.228759,101.57564 C 87.195079,100.75811 87.378369,100.30007 87.636069,100.55776 C 87.893769,100.81547 87.921319,101.48435 87.697289,102.04418 C 87.449729,102.66284 87.265969,102.47908 87.228759,101.57564 z M 206.25371,75.271055 C 204.28356,73.830455 205.13747,69.681405 208.12289,66.188885 L 210.41244,63.510445 L 210.44396,65.985125 C 210.48368,69.103915 211.576,69.800435 213.96872,68.232665 C 216.31826,66.693185 218.44111,59.992095 217.74863,56.300805 C 217.47761,54.856125 216.06449,52.048455 214.60837,50.061545 L 211.96089,46.448965 L 214.66037,49.431255 C 217.61697,52.697585 219.78173,58.062085 219.78173,62.122465 C 219.78173,65.097835 218.01627,69.748005 216.07026,71.898315 C 213.27604,74.985895 208.2332,76.718495 206.25371,75.271055 z M 161.61761,33.348075 C 161.61761,32.753905 162.16963,32.055935 162.84432,31.797035 C 165.15819,30.909115 165.73444,31.327585 164.33194,32.877345 C 162.69295,34.688405 161.61761,34.874895 161.61761,33.348075 z")); +paths.push(new path("Butterfly","M203.62 139.62 C195.62 133.12 205.96 132.6 205.87 132.37 C191.62 96.87 168.64 81.2 166.87 80.37 C161.41 77.81 158.77 78.05 159.73 76.76 C160.69 75.47 167.01 79.51 167.87 80.12 C193.12 98.12 206.87 132.12 206.87 132.12 C206.87 132.12 208.62 133.12 208.87 132.37 C218.87 102.87 238.87 87.37 245.62 81.12 C252.37 74.87 255.92 74.26 246.62 81.37 C217.87 103.37 209.63 132.01 210.12 132.12 C221.62 134.62 210.62 140.12 211.12 139.62 C214.14 136.6 214.12 145.62 214.12 145.62 C214.12 145.62 231.12 110.62 297.62 66.12 C301.71 63.38 445.12 -14.88 395.12 80.62 C392.53 85.57 375.12 105.62 375.12 105.62 C375.12 105.62 376.62 114.12 370.62 121.12 C369.59 122.32 367.12 134.12 361.12 140.62 C359.43 142.46 361.09 139.04 361.12 140.62 C361.62 170.62 337.05 169.96 338.62 170.12 C348.12 171.12 349.47 183.45 349.62 183.62 C355.12 190.12 353.12 191.62 355.12 194.62 C365.91 210.81 354.53 209.84 356.12 212.62 C360.12 219.62 355.28 222.51 356.62 224.62 C360.12 230.12 354.03 233.62 354.12 235.12 C354.62 243.62 348.96 240.52 349.12 244.12 C349.62 255.12 345.62 250.62 343.12 254.62 C335.62 266.62 332.74 262.17 332.12 263.62 C329.12 270.62 325.09 268.94 323.62 270.62 C320.12 274.62 316.62 274.62 315.12 276.12 C308.12 283.12 304.15 278.17 303.12 278.62 C287.12 285.62 279.62 279.95 277.12 280.12 C269.62 280.62 270.77 279.46 268.62 277.62 C237.12 250.62 218.62 211.62 215.12 206.62 C213.69 204.57 210.63 192.91 211.62 195.62 C213.62 201.12 212.62 250.12 207.12 250.12 C201.62 250.12 201.12 204.12 204.62 195.62 C205.72 192.95 203.69 203.5 201.08 206.62 C195.62 213.12 178.79 250.62 146.88 277.62 C144.71 279.46 145.87 280.62 138.27 280.12 C135.75 279.95 128.14 285.62 111.94 278.62 C110.9 278.17 106.87 283.12 99.78 276.12 C98.26 274.62 94.72 274.62 91.17 270.62 C89.68 268.94 85.6 270.62 82.56 263.62 C81.93 262.17 79.01 266.62 71.42 254.62 C68.88 250.62 64.83 255.12 65.34 244.12 C65.51 240.52 59.77 243.62 60.27 235.12 C60.36 233.62 54.2 230.12 57.74 224.62 C59.1 222.51 54.2 219.62 58.25 212.62 C59.86 209.84 48.33 210.81 59.26 194.62 C61.29 191.62 59.26 190.12 64.83 183.62 C64.98 183.45 66.35 171.12 75.98 170.12 C77.57 169.96 52.68 170.62 53.18 140.62 C53.21 139.04 54.9 142.46 53.18 140.62 C47.11 134.12 44.6 122.32 43.56 121.12 C37.48 114.12 39 105.62 39 105.62 C39 105.62 21.37 85.57 18.74 80.62 C-31.9 -14.88 113.36 63.38 117.51 66.12 C184.87 110.62 201.29 145.62 201.29 145.62 C201.29 145.62 201.65 143.07 202.29 141.62 C202.93 140.18 203.85 139.81 203.62 139.62 zM242.12 153.12 C245.16 153.02 251.35 156.17 255.12 155.12 C280.55 148.06 328.44 154.56 331.62 155.62 C343.62 159.62 351.62 131.12 326.12 131.12 C294.59 131.12 301.12 129.12 280.12 126.12 C278.34 125.87 252.6 135.42 228.62 149.12 C225.12 151.12 227.12 153.62 242.12 153.12 zM223.12 148.12 C225.66 148.4 238.12 139.62 277.12 124.12 C279.49 123.18 279.62 118.12 300.62 108.62 C301.99 108 300.12 104.62 314.62 92.62 C321.79 86.69 297.12 87.62 291.62 88.62 C286.12 89.62 272.62 100.62 272.62 100.62 C272.62 100.62 287.8 88.55 282.62 90.12 C271.12 93.62 241.12 126.62 231.12 140.62 C221.12 154.62 247.62 116.62 254.12 110.62 C260.62 104.62 204.62 146.12 223.12 148.12 zM335.62 128.62 C350.14 131.53 348.62 110.12 341.12 109.12 C329.55 107.58 307.51 108.3 301.12 110.62 C284.62 116.62 280.29 122.65 281.62 123.12 C310.12 133.12 330.62 127.62 335.62 128.62 zM335.12 106.62 C341.04 107.36 351.12 109.62 351.62 101.62 C351.87 97.6 365.62 104.62 368.62 105.12 C371.1 105.53 358.12 100.33 353.62 97.12 C350.12 94.62 349.51 91.76 349.12 91.62 C317.12 80.12 303.62 107.12 303.62 107.12 C303.62 107.12 331.12 106.12 335.12 106.62 zM400.62 62.62 C395.62 54.62 386.66 57.08 383.62 53.62 C369.12 37.12 335.54 58.28 363.12 56.12 C395.12 53.62 401.21 63.57 400.62 62.62 zM376.62 66.62 C390.13 66.62 396.12 72.62 395.12 71.62 C388.12 64.62 382.12 66.12 380.62 64.12 C371.7 52.23 345.12 64.62 347.12 67.62 C349.12 70.62 373.12 66.62 376.62 66.62 zM330.12 76.12 C309.12 81.12 318.12 88.62 320.62 88.12 C340.05 84.24 334.5 75.08 330.12 76.12 zM340.62 52.12 C331.12 53.12 330.48 70.43 335.12 67.12 C342.12 62.12 350.12 51.12 340.62 52.12 zM315.62 75.62 C329.62 70.12 319.12 67.62 314.62 68.12 C310.12 68.62 306.79 75.45 308.12 78.12 C311.12 84.12 312.91 76.69 315.62 75.62 zM359.62 121.12 C364.12 118.62 358.62 112.62 354.62 115.12 C350.62 117.62 355.12 123.62 359.62 121.12 zM350.12 78.62 C361.89 90.39 366.62 84.12 369.12 83.12 C377.24 79.87 386.12 88.62 384.62 87.12 C377.34 79.84 372.62 81.12 371.62 79.62 C364.01 68.2 352.66 75.44 350.12 75.62 C343.12 76.12 334.43 81.03 337.62 80.12 C341.12 79.12 348.62 77.12 350.12 78.62 zM383.62 44.12 C390.62 39.12 381.4 37.85 379.62 38.12 C373.12 39.12 376.62 49.12 383.62 44.12 zM224.62 181.12 C230.12 187.62 291.62 285.12 282.12 252.62 C280.83 248.2 285.62 266.12 291.12 256.12 C292.66 253.32 301.27 253.03 274.62 208.62 C273.12 206.12 252.62 198.12 232.12 175.62 C229.02 172.21 220.05 175.72 224.62 181.12 zM280.12 215.62 C284.62 222.62 295.81 246.07 296.62 249.62 C299.12 260.62 306.12 248.12 307.62 248.62 C320.78 253.01 311.12 241.12 310.12 238.12 C300.95 210.62 279.62 213.12 279.62 213.12 C279.62 213.12 275.62 208.62 280.12 215.62 zM253.62 256.12 C266.26 274.09 271.12 267.12 273.62 265.12 C281.32 258.96 232.34 196.14 229.12 192.12 C225.12 187.12 225.12 215.62 253.62 256.12 zM300.12 219.12 C306.62 224.12 313.86 245.19 317.62 244.62 C327.62 243.12 321.62 234.62 324.12 236.12 C326.62 237.62 331.62 234.95 330.12 232.12 C317.62 208.62 298.12 216.12 298.12 216.12 C298.12 216.12 293.62 214.12 300.12 219.12 zM235.62 168.62 C216.12 168.62 282.12 222.62 301.12 212.12 C305.06 209.94 296.12 208.62 297.62 197.12 C297.9 195.02 284.12 191.12 284.12 178.12 C284.12 173.88 276.2 172.12 251.12 172.12 C246.62 172.12 256.03 168.62 235.62 168.62 zM307.62 213.62 C325.89 215.65 330.23 229.8 332.62 228.12 C361.12 208.12 309.89 199.96 300.62 201.12 C296.62 201.62 303.12 213.12 307.62 213.62 zM238.62 164.12 C242.12 166.62 254.12 176.62 292.62 168.12 C294.09 167.8 263.62 167.62 259.62 166.62 C255.62 165.62 236.25 162.43 238.62 164.12 zM305.12 198.62 C342.62 207.62 332.72 201.36 334.12 200.62 C342.62 196.12 333.33 195.23 334.62 193.62 C338.83 188.36 327.62 185.12 304.12 182.62 C298.56 182.03 287.54 179.27 287.12 180.12 C283.62 187.12 300.33 197.47 305.12 198.62 zM311.12 182.12 C343.62 187.62 323.23 177.43 323.62 177.12 C335.12 168.12 297.12 168.12 297.12 168.12 C297.12 168.12 280.79 172 281.12 172.62 C285.62 181.12 307.15 181.45 311.12 182.12 zM249.62 253.62 C249.62 253.62 220.62 207.12 226.62 188.12 C227.83 184.31 213.62 165.62 220.12 197.12 C220.22 197.61 218.89 190.43 216.62 187.12 C214.35 183.81 211.18 184.9 213.12 194.62 C218.01 219.05 249.62 253.62 249.62 253.62 zM289.12 83.62 C296.62 81.62 293.12 79.12 288.62 78.12 C284.12 77.12 281.62 85.62 289.12 83.62 zM187.4 149.12 C163.12 135.42 137.04 125.87 135.23 126.12 C113.96 129.12 120.58 131.12 88.64 131.12 C62.81 131.12 70.91 159.62 83.07 155.62 C86.29 154.56 134.8 148.06 160.56 155.12 C164.37 156.17 170.65 153.02 173.73 153.12 C188.92 153.62 190.95 151.12 187.4 149.12 zM161.57 110.62 C168.15 116.62 195 154.62 184.87 140.62 C174.74 126.62 144.35 93.62 132.7 90.12 C127.46 88.55 142.83 100.62 142.83 100.62 C142.83 100.62 129.16 89.62 123.58 88.62 C118.01 87.62 93.03 86.69 100.29 92.62 C114.97 104.62 113.08 108 114.47 108.62 C135.74 118.12 135.87 123.18 138.27 124.12 C177.78 139.62 190.4 148.4 192.97 148.12 C211.71 146.12 154.99 104.62 161.57 110.62 zM133.71 123.12 C135.07 122.65 130.68 116.62 113.96 110.62 C107.49 108.3 85.16 107.58 73.44 109.12 C65.85 110.12 64.31 131.53 79.01 128.62 C84.08 127.62 104.84 133.12 133.71 123.12 zM111.43 107.12 C111.43 107.12 97.75 80.12 65.34 91.62 C64.95 91.76 64.33 94.62 60.78 97.12 C56.23 100.33 43.08 105.53 45.59 105.12 C48.63 104.62 62.55 97.6 62.81 101.62 C63.31 109.62 73.53 107.36 79.52 106.62 C83.57 106.12 111.43 107.12 111.43 107.12 zM51.16 56.12 C79.09 58.28 45.08 37.12 30.39 53.62 C27.31 57.08 18.24 54.62 13.17 62.62 C12.57 63.57 18.74 53.62 51.16 56.12 zM67.37 67.62 C69.39 64.62 42.47 52.23 33.43 64.12 C31.91 66.12 25.83 64.62 18.74 71.62 C17.73 72.62 23.8 66.62 37.48 66.62 C41.03 66.62 65.34 70.62 67.37 67.62 zM84.59 76.12 C105.86 81.12 96.74 88.62 94.21 88.12 C74.53 84.24 80.15 75.08 84.59 76.12 zM79.52 67.12 C84.22 70.43 83.57 53.12 73.95 52.12 C64.33 51.12 72.43 62.12 79.52 67.12 zM106.87 78.12 C108.22 75.45 104.84 68.62 100.29 68.12 C95.73 67.62 85.09 70.12 99.27 75.62 C102.02 76.69 103.83 84.12 106.87 78.12 zM59.77 115.12 C55.72 112.62 50.14 118.62 54.7 121.12 C59.26 123.62 63.82 117.62 59.77 115.12 zM76.99 80.12 C80.22 81.03 71.42 76.12 64.33 75.62 C61.75 75.44 50.26 68.2 42.55 79.62 C41.53 81.12 36.75 79.84 29.38 87.12 C27.86 88.62 36.85 79.87 45.08 83.12 C47.61 84.12 52.41 90.39 64.33 78.62 C65.85 77.12 73.44 79.12 76.99 80.12 zM34.44 38.12 C32.64 37.85 23.3 39.12 30.39 44.12 C37.48 49.12 41.03 39.12 34.44 38.12 zM183.86 175.62 C163.09 198.12 142.32 206.12 140.8 208.62 C113.81 253.03 122.53 253.32 124.09 256.12 C129.66 266.12 134.52 248.2 133.21 252.62 C123.58 285.12 185.88 187.62 191.45 181.12 C196.08 175.72 187 172.21 183.86 175.62 zM135.74 213.12 C135.74 213.12 114.13 210.62 104.84 238.12 C103.83 241.12 94.05 253.01 107.38 248.62 C108.9 248.12 115.99 260.62 118.52 249.62 C119.34 246.07 130.68 222.62 135.23 215.62 C139.79 208.62 135.74 213.12 135.74 213.12 zM186.89 192.12 C183.64 196.14 134.02 258.96 141.82 265.12 C144.35 267.12 149.27 274.09 162.08 256.12 C190.95 215.62 190.95 187.12 186.89 192.12 zM117 216.12 C117 216.12 97.25 208.62 84.59 232.12 C83.06 234.95 88.13 237.62 90.66 236.12 C93.2 234.62 87.12 243.12 97.25 244.62 C101.06 245.19 108.39 224.12 114.97 219.12 C121.56 214.12 117 216.12 117 216.12 zM164.61 172.12 C139.2 172.12 131.18 173.88 131.18 178.12 C131.18 191.12 117.23 195.02 117.51 197.12 C119.03 208.62 109.97 209.94 113.96 212.12 C133.21 222.62 200.06 168.62 180.31 168.62 C159.64 168.62 169.17 172.12 164.61 172.12 zM114.47 201.12 C105.08 199.96 53.18 208.12 82.05 228.12 C84.47 229.8 88.87 215.65 107.38 213.62 C111.94 213.12 118.52 201.62 114.47 201.12 zM156 166.62 C151.95 167.62 121.09 167.8 122.57 168.12 C161.57 176.62 173.73 166.62 177.27 164.12 C179.67 162.43 160.05 165.62 156 166.62 zM128.14 180.12 C127.71 179.27 116.55 182.03 110.92 182.62 C87.12 185.12 75.76 188.36 80.03 193.62 C81.33 195.23 71.92 196.12 80.53 200.62 C81.95 201.36 71.92 207.62 109.91 198.62 C114.76 197.47 131.69 187.12 128.14 180.12 zM134.22 172.62 C134.56 172 118.01 168.12 118.01 168.12 C118.01 168.12 79.52 168.12 91.17 177.12 C91.57 177.43 70.91 187.62 103.83 182.12 C107.86 181.45 129.66 181.12 134.22 172.62 zM203.1 194.62 C205.07 184.9 201.85 183.81 199.56 187.12 C197.26 190.43 195.91 197.61 196.01 197.12 C202.6 165.62 188.21 184.31 189.43 188.12 C195.5 207.12 166.13 253.62 166.13 253.62 C166.13 253.62 198.15 219.05 203.1 194.62 zM126.62 78.12 C122.06 79.12 118.52 81.62 126.12 83.62 C133.71 85.62 131.18 77.12 126.62 78.12 z")); +paths.push(new path("Butterfly shadow","M204.33 139.83 C196.33 133.33 206.68 132.82 206.58 132.58 C192.33 97.08 169.35 81.41 167.58 80.58 C162.12 78.02 159.48 78.26 160.45 76.97 C161.41 75.68 167.72 79.72 168.58 80.33 C193.83 98.33 207.58 132.33 207.58 132.33 C207.58 132.33 209.33 133.33 209.58 132.58 C219.58 103.08 239.58 87.58 246.33 81.33 C253.08 75.08 256.63 74.47 247.33 81.58 C218.58 103.58 210.34 132.23 210.83 132.33 C222.33 134.83 211.33 140.33 211.83 139.83 C214.85 136.81 214.83 145.83 214.83 145.83 C214.83 145.83 231.83 110.83 298.33 66.33 C302.43 63.59 445.83 -14.67 395.83 80.83 C393.24 85.79 375.83 105.83 375.83 105.83 C375.83 105.83 377.33 114.33 371.33 121.33 C370.3 122.53 367.83 134.33 361.83 140.83 C360.14 142.67 361.81 139.25 361.83 140.83 C362.33 170.83 337.76 170.17 339.33 170.33 C348.83 171.33 350.19 183.66 350.33 183.83 C355.83 190.33 353.83 191.83 355.83 194.83 C366.63 211.02 355.24 210.05 356.83 212.83 C360.83 219.83 355.99 222.72 357.33 224.83 C360.83 230.33 354.75 233.84 354.83 235.33 C355.33 243.83 349.67 240.73 349.83 244.33 C350.33 255.33 346.33 250.83 343.83 254.83 C336.33 266.83 333.46 262.38 332.83 263.83 C329.83 270.83 325.81 269.15 324.33 270.83 C320.83 274.83 317.33 274.83 315.83 276.33 C308.83 283.33 304.86 278.39 303.83 278.83 C287.83 285.83 280.33 280.17 277.83 280.33 C270.33 280.83 271.48 279.67 269.33 277.83 C237.83 250.83 219.33 211.83 215.83 206.83 C214.4 204.79 211.35 193.12 212.33 195.83 C214.33 201.33 213.33 250.33 207.83 250.33 C202.33 250.33 201.83 204.33 205.33 195.83 C206.43 193.16 204.4 203.72 201.79 206.83 C196.33 213.33 179.5 250.83 147.59 277.83 C145.42 279.67 146.58 280.83 138.98 280.33 C136.46 280.17 128.85 285.83 112.65 278.83 C111.61 278.39 107.58 283.33 100.49 276.33 C98.97 274.83 95.43 274.83 91.88 270.83 C90.39 269.15 86.31 270.83 83.27 263.83 C82.64 262.38 79.73 266.83 72.13 254.83 C69.6 250.83 65.54 255.33 66.05 244.33 C66.22 240.73 60.48 243.83 60.99 235.33 C61.08 233.84 54.91 230.33 58.45 224.83 C59.81 222.72 54.91 219.83 58.96 212.83 C60.57 210.05 49.04 211.02 59.97 194.83 C62 191.83 59.97 190.33 65.54 183.83 C65.69 183.66 67.06 171.33 76.69 170.33 C78.28 170.17 53.39 170.83 53.9 140.83 C53.92 139.25 55.61 142.67 53.9 140.83 C47.82 134.33 45.32 122.53 44.27 121.33 C38.19 114.33 39.71 105.83 39.71 105.83 C39.71 105.83 22.08 85.79 19.46 80.83 C-31.19 -14.67 114.07 63.59 118.22 66.33 C185.58 110.83 202 145.83 202 145.83 C202 145.83 202.36 143.28 203 141.83 C203.64 140.39 204.56 140.02 204.33 139.83 z")); +//paths.push(new path("Fish's tail","M569.3857422,394.109375c-10.7744141,2.8852539-22.2714844,3.8129883-32.7353516,7.3813477 c17.7226563-15.1958008,16.7109375-38.7084961,28.5351563-56.605957 c3.7666016-5.0673828,6.8798828-10.3789063,11.2705078-15.1875 c-7.1923828,14.4277344-4.0732422,33.1464844-12.3359375,47.1474609 c-3.1806641,5.5615234-7.7294922,10.9570313-12.7597656,15.3251953c1.6435547-0.0615234,3.0820313-1.484375,4.5273438-2.4345703 c13.4208984-13.3925781,30.9541016-17.1376953,45.4716797-28.0185547 c5.8154297-4.6337891,11.1416016-10.7060547,13.6982422-17.2734375 C612.3105469,366.6630859,590.2050781,387.4892578,569.3857422,394.109375L569.3857422,394.109375z")); +paths.push(new path("tutorial","M 139.23126,12.451027 L 140.73051,12.451027 L 139.80954,15.470944 L 141.50155,15.470944 L 141.35162,15.963555 L 139.65961,15.963555 L 139.25267,17.205790 C 138.90999,18.262404 138.54588,19.540336 138.16036,21.039586 C 137.77484,22.524557 137.58208,23.388410 137.58208,23.631146 C 137.58208,23.959553 137.73201,24.123756 138.03186,24.123756 C 138.56016,24.123756 139.19556,23.395549 139.93804,21.939135 C 140.00944,21.782071 140.11653,21.589310 140.25931,21.360853 L 140.68767,21.575032 C 140.13081,22.731596 139.71673,23.474081 139.44543,23.802488 C 138.86001,24.502138 138.23890,24.851963 137.58208,24.851963 C 137.13945,24.851963 136.78248,24.716317 136.51119,24.445024 C 136.23990,24.159453 136.10425,23.795349 136.10425,23.352714 C 136.10425,22.952914 136.16850,22.503139 136.29701,22.003389 C 136.43980,21.446525 136.89671,19.847325 137.66775,17.205790 L 138.03186,15.963555 L 136.31843,15.963555 L 136.48977,15.470944 L 138.20320,15.470944 L 139.23126,12.451027 z M 149.99737,15.299601 L 151.60371,15.299601 C 150.24724,19.626007 149.56901,22.367492 149.56901,23.524056 C 149.56901,23.952413 149.68324,24.166592 149.91170,24.166592 C 150.18299,24.166592 150.50426,23.909578 150.87550,23.395549 C 151.26102,22.867242 151.59657,22.217567 151.88214,21.446525 L 152.35333,21.639285 C 151.59657,23.781071 150.65418,24.851963 149.52618,24.851963 C 148.55523,24.851963 148.06976,24.309378 148.06976,23.224206 C 148.06976,22.938635 148.10546,22.474582 148.17685,21.832046 C 147.61999,22.688760 147.17021,23.309878 146.82753,23.695399 C 146.14215,24.466442 145.36397,24.851963 144.49298,24.851963 C 143.97895,24.851963 143.55059,24.673481 143.20791,24.316517 C 142.86522,23.959553 142.69388,23.516917 142.69388,22.988610 C 142.69388,22.731596 142.90806,21.867743 143.33642,20.397050 L 143.72194,19.069143 C 144.15029,17.598451 144.36447,16.691762 144.36447,16.349076 C 144.36447,16.077783 144.27166,15.942137 144.08604,15.942137 C 143.48634,15.942137 142.69388,16.884522 141.70866,18.769293 L 141.23747,18.533697 C 142.32264,16.306240 143.41495,15.192512 144.51440,15.192512 C 144.91420,15.192512 145.23547,15.342437 145.47820,15.642287 C 145.73522,15.942137 145.86372,16.334798 145.86372,16.820269 C 145.86372,17.419969 145.72094,18.169594 145.43537,19.069143 L 144.85708,20.889661 C 144.38589,22.374632 144.15029,23.238485 144.15029,23.481221 C 144.15029,23.980971 144.40731,24.230846 144.92134,24.230846 C 145.37825,24.230846 145.87800,23.952413 146.42059,23.395549 C 146.97745,22.838685 147.47720,22.103339 147.91984,21.189511 C 148.59093,19.804489 149.28344,17.841187 149.99737,15.299601 z M 156.32999,12.451027 L 157.82924,12.451027 L 156.90827,15.470944 L 158.60028,15.470944 L 158.45035,15.963555 L 156.75834,15.963555 L 156.35140,17.205790 C 156.00872,18.262404 155.64461,19.540336 155.25909,21.039586 C 154.87357,22.524557 154.68081,23.388410 154.68081,23.631146 C 154.68081,23.959553 154.83074,24.123756 155.13059,24.123756 C 155.65889,24.123756 156.29429,23.395549 157.03677,21.939135 C 157.10817,21.782071 157.21526,21.589310 157.35804,21.360853 L 157.78640,21.575032 C 157.22954,22.731596 156.81546,23.474081 156.54416,23.802488 C 155.95874,24.502138 155.33763,24.851963 154.68081,24.851963 C 154.23818,24.851963 153.88121,24.716317 153.60992,24.445024 C 153.33863,24.159453 153.20298,23.795349 153.20298,23.352714 C 153.20298,22.952914 153.26723,22.503139 153.39574,22.003389 C 153.53853,21.446525 153.99544,19.847325 154.76648,17.205790 L 155.13059,15.963555 L 153.41716,15.963555 L 153.58850,15.470944 L 155.30193,15.470944 L 156.32999,12.451027 z M 163.74065,15.685123 C 162.71259,15.628008 161.79876,16.656065 160.99916,18.769293 C 160.44230,20.239986 160.16387,21.560753 160.16387,22.731596 C 160.16387,23.816767 160.64220,24.359353 161.59886,24.359353 C 162.36991,24.359353 163.04100,23.866742 163.61214,22.881521 C 163.98338,22.253264 164.30465,21.425107 164.57595,20.397050 C 164.84724,19.354715 165.00430,18.376633 165.04714,17.462804 C 165.10425,16.334798 164.66876,15.742237 163.74065,15.685123 z M 163.71923,15.192512 C 164.56167,15.192512 165.24704,15.528059 165.77535,16.199151 C 166.30365,16.855965 166.56781,17.712679 166.56781,18.769293 C 166.56781,20.068643 166.10375,21.382271 165.17565,22.710178 C 164.17615,24.138035 162.96247,24.851963 161.53461,24.851963 C 160.66362,24.851963 159.94969,24.552113 159.39283,23.952413 C 158.83596,23.338435 158.55753,22.560253 158.55753,21.617868 C 158.55753,20.018668 159.14295,18.505140 160.31379,17.077283 C 161.34185,15.820769 162.47700,15.192512 163.71923,15.192512 z M 167.89576,18.576533 L 167.44598,18.383772 C 167.81722,17.469944 168.26700,16.713180 168.79531,16.113480 C 169.32361,15.499501 169.79481,15.192512 170.20888,15.192512 C 171.13699,15.192512 171.60104,15.870744 171.60104,17.227208 C 171.60104,17.469944 171.55821,17.955415 171.47254,18.683622 C 172.45776,16.356215 173.50723,15.192512 174.62096,15.192512 C 174.93509,15.192512 175.19924,15.292462 175.41342,15.492362 C 175.64188,15.677983 175.75611,15.906441 175.75611,16.177733 C 175.75611,16.406190 175.67758,16.598951 175.52051,16.756015 C 175.36345,16.913080 175.17069,16.991612 174.94223,16.991612 C 174.45676,16.991612 174.21402,16.713180 174.21402,16.156316 C 174.21402,15.999251 174.16405,15.920719 174.06410,15.920719 C 173.92131,15.920719 173.72141,16.049226 173.46440,16.306240 C 173.20738,16.563255 172.98607,16.863105 172.80044,17.205790 C 172.22930,18.233847 171.30119,20.689761 170.01612,24.573531 L 168.40978,24.573531 C 169.08088,22.560253 169.51637,21.089561 169.71627,20.161454 C 170.03040,18.705040 170.18747,17.648426 170.18747,16.991612 C 170.18747,16.291962 170.07324,15.942137 169.84478,15.942137 C 169.64488,15.942137 169.35217,16.199151 168.96665,16.713180 C 168.59541,17.227208 168.23844,17.848326 167.89576,18.576533 z M 179.99685,10.352078 C 180.26814,10.352078 180.49660,10.452028 180.68222,10.651928 C 180.88212,10.837549 180.98207,11.066006 180.98207,11.337299 C 180.98207,11.608592 180.88212,11.844188 180.68222,12.044088 C 180.49660,12.243988 180.26814,12.343938 179.99685,12.343938 C 179.72556,12.343938 179.48996,12.243988 179.29006,12.044088 C 179.09016,11.844188 178.99021,11.608592 178.99021,11.337299 C 178.99021,11.066006 179.09016,10.837549 179.29006,10.651928 C 179.48996,10.452028 179.72556,10.352078 179.99685,10.352078 z M 180.31812,21.596450 L 180.74647,21.810628 C 179.78981,23.838185 178.74747,24.851963 177.61947,24.851963 C 177.21967,24.851963 176.89126,24.709178 176.63425,24.423606 C 176.37723,24.123756 176.24873,23.745374 176.24873,23.288460 C 176.24873,22.974332 176.29156,22.681621 176.37723,22.410328 C 176.46290,22.139035 176.69850,21.532196 177.08402,20.589811 L 177.89790,18.640786 C 178.38337,17.484222 178.62611,16.706040 178.62611,16.306240 C 178.62611,16.020669 178.50474,15.877883 178.26200,15.877883 C 177.76225,15.877883 177.07688,16.663205 176.20589,18.233847 L 175.77753,17.976833 C 176.79131,16.120619 177.76225,15.192512 178.69036,15.192512 C 179.07588,15.192512 179.39001,15.335298 179.63275,15.620869 C 179.87548,15.906441 179.99685,16.277683 179.99685,16.734598 C 179.99685,17.277183 179.70414,18.283822 179.11872,19.754514 L 178.21917,22.003389 C 177.84792,22.931496 177.66230,23.538335 177.66230,23.823906 C 177.66230,24.080921 177.77653,24.209428 178.00499,24.209428 C 178.27628,24.209428 178.62611,23.966692 179.05446,23.481221 C 179.49710,22.981471 179.91832,22.353214 180.31812,21.596450 z M 187.57881,15.727958 C 187.15046,15.699401 186.65071,15.949276 186.07956,16.477583 C 185.52270,16.991612 185.00153,17.684122 184.51606,18.555115 C 183.54512,20.282821 183.05965,21.732096 183.05965,22.902939 C 183.05965,23.816767 183.41661,24.273681 184.13054,24.273681 C 185.28710,24.273681 186.37941,23.138535 187.40747,20.868243 C 188.10712,19.326157 188.49978,18.048226 188.58545,17.034447 C 188.61401,16.663205 188.53548,16.356215 188.34986,16.113480 C 188.16423,15.870744 187.90722,15.742237 187.57881,15.727958 z M 189.37791,15.470944 L 190.89858,15.470944 C 190.54162,16.427608 190.05614,17.826908 189.44217,19.668843 C 188.78535,21.653564 188.45694,23.002889 188.45694,23.716817 C 188.45694,24.016667 188.57117,24.166592 188.79963,24.166592 C 189.29938,24.166592 189.99903,23.195649 190.89858,21.253764 L 191.36977,21.446525 C 190.77007,22.745874 190.25604,23.638285 189.82769,24.123756 C 189.39933,24.609228 188.91386,24.851963 188.37127,24.851963 C 187.48600,24.851963 187.04337,24.452163 187.04337,23.652564 C 187.04337,23.438385 187.10762,23.002889 187.23613,22.346075 C 186.22235,24.030946 185.13718,24.873381 183.98061,24.873381 C 183.25241,24.873381 182.65985,24.630645 182.20293,24.145174 C 181.74602,23.659703 181.51756,23.024307 181.51756,22.238985 C 181.51756,20.611229 182.16010,19.033447 183.44517,17.505640 C 184.73024,15.963555 186.05101,15.192512 187.40747,15.192512 C 188.12140,15.192512 188.66398,15.585173 189.03523,16.370494 L 189.37791,15.470944 z M 193.77581,10.780435 L 193.90432,10.287824 C 194.97521,10.244988 196.18889,10.173596 197.54535,10.073646 C 197.43113,10.459167 197.34545,10.737599 197.28834,10.908942 C 197.13128,11.351577 196.90996,12.022670 196.62439,12.922220 L 194.88954,18.576533 C 194.06138,21.275182 193.64731,22.931496 193.64731,23.545474 C 193.64731,23.988110 193.77581,24.209428 194.03283,24.209428 C 194.38979,24.209428 194.83243,23.823906 195.36073,23.052864 C 195.63203,22.653064 195.93902,22.124757 196.28170,21.467943 L 196.77431,21.703539 C 196.34595,22.488860 196.02469,23.045724 195.81051,23.374131 C 195.15369,24.359353 194.40407,24.851963 193.56163,24.851963 C 193.13328,24.851963 192.78345,24.694899 192.51216,24.380770 C 192.24087,24.066642 192.10522,23.666842 192.10522,23.181371 C 192.10522,22.581671 192.34796,21.489360 192.83343,19.904439 L 194.71820,13.757516 C 195.13228,12.401052 195.33932,11.637149 195.33932,11.465806 C 195.33932,11.208792 195.23937,11.037449 195.03947,10.951777 C 194.83957,10.851827 194.41835,10.794713 193.77581,10.780435 z ")); +//paths.push(new path("Double Circle","M508.9130859,166.2070313 c61.0849609,33.6157227,84.2705078,109.9931641,51.7490234,170.4824219 c-32.5175781,60.4916992-108.4897461,82.3041992-169.5742188,48.6889648 c-61.0839844-33.6147461-84.2700195-109.9931641-51.7485352-170.4833984 C371.8588867,154.4038086,447.828125,132.5917969,508.9130859,166.2070313L508.9130859,166.2070313z M506.7753906,170.1870117 c58.8671875,32.3945313,81.2089844,105.9970703,49.8681641,164.2924805 c-31.3369141,58.293457-104.5507813,79.3149414-163.4155273,46.9199219 c-58.8686523-32.3964844-81.2104492-105.9990234-49.8701172-164.293457 C374.6948242,158.8115234,447.9077148,137.7915039,506.7753906,170.1870117L506.7753906,170.1870117z")); +paths.push(new path("Region ","M 86.45097,687.89459 C 84.557278,686.09284 82.429286,685.97587 82.08013,682.99524 C 82.08013,681.55748 81.19141,680.3989 76.56279,675.80252 C 72.675766,673.35649 71.893177,669.99344 70.49372,666.42305 C 67.741184,660.50993 65.403485,653.82044 62.76945,647.66409 C 62.46599,647.66409 62.21771,647.29168 62.21771,646.8365 C 62.21771,646.38132 62.46599,646.0089 62.76945,646.0089 C 64.205879,642.39829 68.07404,639.55717 68.83852,635.80182 C 67.691467,632.97878 67.805836,629.7789 67.18332,626.69821 C 66.675332,626.14259 66.403699,625.13898 66.07985,624.49129 C 65.146992,623.19519 65.658994,622.40868 63.82694,623.38782 C 62.695492,623.83638 61.530089,624.55924 60.56251,625.04302 C 60.56251,625.8731 58.3878,625.70582 57.48857,624.80655 C 55.390021,621.04382 53.730367,617.45761 52.28651,613.45661 C 52.28651,612.8497 52.03823,612.35314 51.73477,612.35314 C 50.70635,612.35314 51.13555,608.70502 52.28651,607.66341 C 52.89342,607.11415 53.38998,606.37732 53.38998,606.02591 C 57.034533,601.57866 59.917072,595.77772 64.70794,592.49073 C 65.20968,592.49073 65.52812,591.96785 65.52812,591.14395 C 68.536308,586.27989 65.904661,585.12573 65.52812,580.17995 C 65.52812,578.25617 65.84518,577.4966 67.18332,576.21458 C 68.09368,575.3424 68.83852,574.22079 68.83852,573.72207 C 68.83852,572.33816 71.32385,567.73253 73.03375,565.94778 C 74.394278,563.44965 76.630359,555.09327 74.84324,552.7659 C 74.57518,552.7659 74.35586,551.02794 74.35586,548.90377 C 74.51836,547.07342 74.119302,545.53692 73.25239,544.17462 C 73.25239,542.73726 71.79202,541.73123 69.70553,541.73123 C 66.716358,541.14333 63.864577,539.52768 61.11425,537.86909 C 61.11425,537.56564 60.75311,537.31736 60.31172,537.31736 C 59.27203,537.31736 56.70037,534.7457 56.70037,533.70601 C 56.70037,533.26462 56.45209,532.90349 56.14864,532.90349 C 56.070943,528.05714 47.493407,520.42027 49.52784,516.35148 C 52.028742,506.37255 60.474194,498.49066 62.21771,488.21306 C 62.21771,487.3027 62.46599,486.55786 62.76945,486.55786 C 63.0729,486.55786 63.32118,486.08466 63.32118,485.5063 C 63.32118,484.58274 63.15381,484.53237 61.94615,485.09251 C 60.701196,486.36028 59.986229,486.24605 58.90731,486.00612 C 53.754127,483.14494 47.631226,482.39984 42.6386,478.83359 C 39.677049,476.96298 36.810746,473.61988 35.73449,470.22876 C 34.62247,466.2322 33.61028,462.1216 34.0793,457.86771 C 34.38275,457.86771 34.63103,457.37115 34.63103,456.76424 C 39.334751,448.25178 40.521996,437.49703 45.6657,429.41401 C 45.6657,427.46664 47.08016,426.97087 52.66089,426.96217 C 55.64124,426.95752 57.83143,426.77131 57.52798,426.54837 C 56.047568,424.50836 53.738789,420.5178 55.04518,418.14288 C 56.186624,412.94088 58.306626,408.30961 60.56251,403.7978 C 60.86597,403.7978 61.11425,403.40765 61.11425,402.93079 C 61.11425,401.07459 62.56329,400.4874 67.14391,400.4874 C 70.19597,400.77134 76.062276,401.0412 77.31023,404.08361 C 79.441128,407.06272 80.19653,410.95177 82.31499,413.91279 C 82.78249,414.09219 83.08573,414.55872 82.98885,414.94953 C 82.89198,415.34033 82.91686,415.47387 83.04413,415.24628 C 85.119485,414.79053 86.949185,414.24086 88.70093,412.90141 C 88.70093,412.44623 88.45265,412.0738 88.1492,412.0738 C 87.81641,412.0738 87.59746,409.77491 87.59746,406.2806 C 87.59746,402.7863 87.81641,400.4874 88.1492,400.4874 C 88.885296,399.25135 88.745227,397.83307 89.8044,396.62527 C 91.350182,394.29014 92.794667,392.61419 95.32173,391.10792 C 98.661462,389.97104 102.13158,389.08168 105.01648,387.24579 C 106.4009,387.24579 107.45988,385.81104 107.45988,383.93539 C 107.45988,382.05974 108.51886,380.62498 109.90327,380.62498 C 112.93495,379.82412 115.69513,377.71535 118.61636,376.21112 C 119.61617,374.9242 120.53664,371.59847 120.70149,369.59031 C 120.70149,367.38338 120.70149,367.38338 122.90842,367.38338 C 125.23112,367.30994 126.80899,365.54431 128.97749,365.17644 L 139.46043,364.07298 C 139.06694,358.37626 142.99801,354.14406 147.19526,350.83136 C 148.56432,350.83136 150.4951,348.10201 150.4951,346.16671 C 153.05358,341.92859 148.53211,338.83768 150.0813,334.09302 C 150.63303,333.87039 150.63303,333.80603 150.0813,333.77118 C 149.26884,333.71987 149.13344,330.96895 149.94337,330.96895 C 150.88542,329.75415 151.31759,327.87863 151.59857,326.27922 C 151.53861,324.36265 150.6327,323.18983 150.4951,321.2742 C 150.65253,317.98203 148.39887,316.99797 145.76596,316.07215 C 143.95602,316.07215 142.77084,314.88696 142.77084,313.07702 C 141.68168,310.00662 142.82577,309.43605 146.38706,309.62519 C 148.52408,310.09966 148.37298,308.39962 149.39164,306.92913 C 151.53194,303.58546 156.10073,301.9454 159.64861,299.8915 C 160.86723,299.40621 160.40869,298.31819 159.87458,297.3132 C 158.74061,294.61587 160.24564,291.16577 157.3366,289.58892 C 154.46752,288.09309 152.78464,285.8986 152.70204,282.64339 C 152.70204,280.62757 153.00798,279.31302 153.65226,278.56056 C 156.95571,276.4825 160.26227,279.24948 164.16895,278.75626 C 165.86475,277.8868 166.72318,277.56258 167.5639,275.79559 C 167.84812,275.79559 168.15846,274.98867 168.25356,274.00245 C 168.68549,271.60248 172.37357,271.62446 174.56724,270.93646 C 175.65343,271.2205 176.97832,270.25258 176.97832,269.17499 C 178.11196,265.92757 181.96758,266.35319 183.59913,264.6844 C 184.44511,263.16976 184.66076,261.72249 184.70259,259.7953 C 184.70259,257.08205 184.90775,255.92836 185.39226,255.917 C 183.39588,252.62221 180.35791,250.17091 180.28872,245.87555 C 179.88156,240.06211 184.30156,239.75344 188.70267,238.57637 C 189.73965,238.35787 190.21997,237.9107 190.21997,237.16371 C 191.45654,234.84252 192.45436,231.55235 194.94785,230.00169 C 195.28919,230.00169 196.10293,229.53808 196.75631,228.97143 C 197.83951,228.03199 197.94422,227.39986 197.94422,221.7989 L 197.94422,215.65661 C 196.00378,215.55469 194.30301,215.60211 192.70277,216.76007 C 188.1251,220.68438 187.1162,217.99951 184.7092,213.18666 C 182.5609,209.01019 182.37891,207.93234 183.82205,207.93234 C 185.11828,207.47116 185.9419,206.32551 187.16771,205.7254 C 190.95208,201.97531 198.05056,202.62098 199.0477,197.16983 C 199.14068,189.35798 207.82248,186.80087 209.08825,180.06978 C 216.61956,175.80292 219.56117,179.42987 225.45455,172.61434 C 226.2842,172.1144 226.27915,172.02207 225.39293,171.4905 C 224.86194,171.17197 224.42742,170.55004 224.42742,170.10844 C 224.42742,169.66684 223.14852,168.05323 221.58535,166.52265 C 219.44178,164.42376 218.89934,163.58365 219.3784,163.10462 C 222.18628,157.4827 217.11588,156.88958 216.81217,152.56912 C 217.10655,149.66269 217.53202,148.73224 216.70316,146.69457 C 216.70316,146.09023 216.2066,145.28568 215.59969,144.90665 C 214.99277,144.52764 214.49621,143.78069 214.49621,143.24677 C 212.72113,141.1661 214.30964,139.63948 214.49621,137.03456 C 215.06657,134.80589 215.06131,131.28832 216.65215,129.75936 C 217.67373,129.49221 218.16995,128.5848 218.85877,125.72401 C 219.12889,124.60214 219.57663,124.31272 221.2574,124.17344 C 223.97937,123.38431 226.54875,119.19755 227.73785,116.52125 C 227.73785,116.10558 228.33037,115.5402 229.05463,115.26484 C 229.77889,114.98948 231.00906,114.12664 231.78828,113.34743 C 233.66283,111.77885 236.00865,111.08414 237.9843,109.72374 C 242.05834,108.24884 237.77439,101.86446 235.65942,99.77905 C 233.16449,97.47931 233.1639,97.47793 234.2306,96.29059 C 236.10892,94.19971 236.05311,93.43399 233.86619,91.29859 C 232.73325,90.19229 231.65646,89.43702 231.47321,89.62021 C 228.56744,88.182685 227.38976,84.279163 228.77256,81.33834 C 231.44125,78.459252 235.54351,77.205988 239.04839,75.51625 C 239.40951,75.51625 240.13393,75.04217 240.65836,74.46275 C 241.56031,73.46609 241.56048,73.38054 240.6613,72.87733 C 240.03965,72.52945 239.81608,71.94276 240.01508,71.18175 C 239.47633,67.585533 234.49985,65.459004 234.47968,61.69973 C 232.80721,57.364751 230.03601,54.024835 229.94472,48.98537 L 232.49503,42.83739 C 234.84745,40.6639 235.32885,40.45976 238.702,40.20529 C 243.3504,40.154052 242.40886,36.233346 246.95985,35.90175 C 249.92272,35.76152 250.60741,35.90913 251.43841,36.86729 C 251.97798,37.48937 252.8041,37.99836 253.27423,37.99836 C 255.03519,39.366274 255.15962,38.472704 257.33333,37.99836 C 258.9204,37.99836 259.40417,37.21054 258.35296,36.33812 C 255.55971,32.317059 260.09379,28.132221 259.04237,24.73075 C 258.2118,23.40081 259.06897,22.43037 262.65071,20.64549 C 265.881,19.035785 267.46269,18.858593 267.46269,20.10642 C 267.46269,21.48733 269.06323,22.82515 269.81544,22.07296 C 270.58751,21.30088 276.29042,21.23494 276.29042,21.99809 C 278.94084,23.91099 282.88547,24.236317 285.11816,26.96369 C 285.11816,27.57672 285.48592,28.06715 285.9457,28.06715 C 286.40093,28.06715 286.77333,27.81887 286.77333,27.51542 C 286.77333,26.46401 290.35439,26.91164 291.18724,28.06715 C 292.00131,29.19664 294.49758,29.61269 294.49758,28.61889 C 294.49758,28.31543 295.36654,28.06715 296.42869,28.06715 C 298.17342,28.53321 300.37035,29.00962 301.67014,30.0233 C 301.67014,31.36398 304.23468,33.58449 305.78303,33.58449 C 306.67716,33.58449 307.18744,33.89188 307.18744,34.43048 C 307.18744,35.9802 310.86211,39.10183 312.6864,39.10183 C 313.60687,39.10183 314.36,38.85355 314.36,38.5501 C 314.36,38.24664 314.98073,37.99836 315.73933,37.99836 C 317.2371,38.741394 319.02338,38.977117 320.47261,39.79149 C 320.50745,40.34323 320.57185,40.34323 320.7945,39.79149 C 321.18862,38.81474 326.36752,38.89239 327.36519,39.89002 C 327.7987,40.32352 328.15334,41.06836 328.15334,41.54522 C 328.15334,42.14074 328.67162,42.41222 329.80851,42.41222 C 331.98829,43.571694 334.76282,48.609637 335.8776,51.36177 C 337.41239,53.633045 339.18315,50.85827 340.96501,50.1365 C 341.50492,50.1365 341.94668,49.88822 341.94668,49.58477 C 341.94668,48.59096 344.44303,49.00702 345.25711,50.1365 C 346.94737,51.783439 349.42481,52.017066 351.32619,52.89517 C 351.32619,53.21701 353.16529,53.4469 355.74002,53.4469 C 358.40282,53.676789 361.32364,53.959451 363.7402,55.1021 C 363.94812,55.43851 368.15975,55.65384 374.53154,55.65384 C 381.13068,55.65384 384.98195,55.45051 384.98195,55.1021 C 384.98195,54.79865 385.37884,54.55037 385.86404,54.55037 C 390.55663,51.067544 395.3278,48.6675 400.43046,46.8261 C 401.03738,46.8261 401.53394,46.57782 401.53394,46.27436 C 401.53394,45.55461 406.3306,45.55461 406.77539,46.27436 C 407.22035,46.99428 412.56862,46.99428 412.56862,46.27436 C 412.56862,45.97091 413.01039,45.72263 413.5503,45.72263 C 414.09021,45.72263 414.88981,45.22607 415.32727,44.61916 C 418.60977,42.657748 422.58505,40.846039 426.36196,40.20529 C 427.27234,40.20529 428.01714,39.95701 428.01714,39.65356 C 428.01714,39.35011 428.76202,39.10183 429.67231,39.10183 C 430.77579,39.10183 431.32757,38.82596 431.32757,38.27422 C 431.32757,37.81904 431.07924,37.44663 430.77579,37.44663 C 430.05865,35.346313 429.18296,33.168166 429.12061,30.80743 C 429.12061,27.74483 429.27356,27.32568 431.03328,25.56596 C 435.07707,22.900146 439.38793,19.530849 444.33267,19.239418 C 447.4963,19.239418 448.98303,20.02058 448.98303,21.68281 C 453.77063,23.734166 460.59668,21.779144 465.53502,24.20502 C 465.53502,24.9239 468.67701,24.9239 469.1213,24.20502 C 472.11146,23.324774 474.29925,21.143357 475.46623,18.131269 C 475.46623,17.09735 475.84309,17.032483 481.85055,17.032483 C 488.34128,17.032483 489.81135,17.461197 489.81135,19.354076 C 491.27739,21.224148 491.88504,24.416019 494.50102,23.10155 C 495.01787,22.26538 499.16148,22.44171 500.0578,23.33801 C 500.48148,26.717493 502.41862,29.640675 503.0529,32.75689 C 503.0529,33.51552 502.80467,34.13622 502.50121,34.13622 C 502.19464,34.13622 501.94943,35.60751 501.94943,37.44663 C 501.5421,42.156583 499.83727,46.746022 499.74256,51.51583 C 499.74256,53.90668 499.97548,55.65384 500.29425,55.65384 C 501.50685,57.664059 502.59153,60.248525 503.60469,62.27464 C 503.94872,62.27464 504.15638,65.49309 504.15638,70.82651 C 504.15638,76.15994 503.94872,79.37839 503.60469,79.37839 C 502.71273,81.38568 503.30168,86.556781 505.2139,87.65439 C 505.79548,87.65439 506.36544,87.9365 506.48034,88.28129 C 509.24999,88.204397 513.19422,88.890117 516.29455,90.41306 C 517.42473,91.112101 518.06068,90.914699 518.5015,92.34413 C 518.05046,93.834583 517.27299,95.228694 516.32897,96.45226 C 515.60261,97.08221 515.20471,98.25258 515.08761,100.10325 L 514.91522,102.82707 C 511.55045,102.55401 507.15095,104.21025 504.34696,102.04508 C 501.94917,100.47607 499.91938,105.92086 499.74256,108.3444 C 500.08174,115.30997 503.77374,120.62633 508.57029,125.72401 C 509.17721,126.16146 509.67377,126.79848 509.67377,127.13964 C 509.67377,127.4808 509.17721,128.20931 508.57029,128.75855 C 507.72549,129.52303 507.46681,130.45788 507.46681,132.74561 C 507.46681,135.8221 508.26346,137.31042 509.91022,137.31042 C 511.0823,137.31042 511.12422,141.85291 509.96106,142.81826 C 508.76769,143.80869 507.46681,146.64769 507.46681,148.26174 C 506.23297,151.89502 501.72667,154.43799 498.37384,156.06937 C 497.35892,156.06937 495.32865,158.50724 495.32865,159.72591 C 495.32865,161.16061 492.99114,163.24766 489.53542,164.89833 C 485.93508,166.61814 484.29396,168.10601 484.29396,169.65046 C 484.21515,170.82827 483.44357,171.53246 483.19049,172.65395 C 481.31618,175.30569 476.70738,174.53437 473.6656,175.51668 C 471.47034,176.74137 467.74197,180.54756 467.74197,181.56399 C 467.74197,182.17474 467.33271,182.55259 466.67107,182.55259 C 457.24796,185.98995 438.04256,190.7866 432.43104,198.82168 C 432.43104,200.12353 429.35395,202.415 427.60576,202.415 C 426.12252,202.48176 425.10366,203.28109 423.66426,203.51847 C 420.77159,203.51847 413.6721,208.02659 413.6721,209.86341 C 410.23702,213.7977 407.79331,218.47997 404.65724,222.69122 C 403.68251,224.40459 405.1775,224.68223 403.83534,226.88164 C 402.26965,227.77641 400.93906,228.73629 399.60283,230.00169 C 398.08893,232.28982 395.64058,231.83059 393.53383,232.76036 C 393.08702,233.48322 386.08543,233.48322 386.08543,232.76036 C 386.08543,232.4569 385.4647,232.20862 384.70602,232.20862 C 383.62198,232.25818 383.24866,232.94553 382.34502,233.31209 C 377.6523,237.78685 369.87261,234.77903 365.11953,238.82942 C 364.48206,239.71385 363.69121,239.93289 361.1356,239.93289 C 354.82991,242.03093 347.73037,241.70389 341.39498,243.79503 C 337.02359,245.13117 333.22391,247.32885 329.25682,249.31236 C 329.25682,249.61888 327.78549,249.8641 325.94639,249.8641 C 320.6403,250.73208 314.14055,250.52459 311.04957,255.38144 C 310.22499,257.54888 308.06015,258.68432 306.3599,259.7953 C 304.41486,258.54935 302.21089,257.76929 299.73904,257.58837 C 296.63819,257.31489 294.17806,259.24353 291.45837,259.7953 C 290.41239,259.7953 288.12185,261.74781 282.07894,267.79077 C 277.68145,272.18827 274.08347,276.10595 274.08347,276.49671 C 272.2727,282.11727 266.43403,284.23252 263.04878,288.73625 C 263.04878,289.2211 262.57276,289.58892 261.9453,289.58892 C 261.07744,289.58892 260.84183,289.95675 260.84183,291.31168 C 260.84183,292.78047 260.96388,292.93319 261.66946,292.34759 C 262.51671,291.95494 262.69087,292.16492 263.55502,291.56117 C 264.91221,290.33296 267.10931,290.62134 267.38457,292.06381 C 269.20181,295.20283 271.27281,299.22605 275.18695,299.81119 C 277.48623,299.74503 277.93639,302.04889 278.49729,303.95239 C 278.49729,305.77668 275.37567,309.45134 273.82597,309.45134 C 273.36072,309.45134 272.97999,309.69962 272.97999,310.00307 C 270.83882,311.84917 265.28884,312.31676 264.15226,314.96868 C 263.99078,315.9164 263.39483,316.20067 263.04878,317.05381 C 262.72262,318.43545 261.44464,319.13696 260.84183,320.37135 C 259.57054,323.08306 255.77346,324.13807 253.11757,325.45162 C 250.9037,326.57728 249.34056,323.22573 248.17958,321.33857 C 247.20354,320.45529 247.01305,320.44268 246.2451,321.21059 C 244.42406,324.30376 242.27812,327.28003 240.42771,330.41722 C 240.01872,334.49211 237.56843,337.19842 235.46211,340.44799 C 233.88764,342.66169 232.52974,345.16224 231.0482,347.52097 C 229.05077,350.48061 229.0284,354.44698 227.487,357.75312 C 224.66868,359.9321 221.13784,361.16047 217.80664,362.41777 C 215.84749,364.03692 217.09235,367.50432 215.34892,369.89126 C 213.6906,371.30245 212.0355,371.5443 211.18578,373.6889 C 210.54532,374.9582 209.72479,376.27501 208.97891,377.62986 C 208.97891,378.74494 207.65059,380.07325 206.5355,380.07325 C 205.14303,380.85661 203.67345,381.66302 202.0428,382.28019 C 200.50522,382.28019 199.0477,383.40997 199.0477,384.60178 C 198.57842,385.83495 197.42254,386.49203 196.84074,387.66853 C 196.84074,388.67559 194.32225,391.10792 193.27955,391.10792 C 191.3084,392.20591 189.07067,393.36162 186.90953,394.41833 C 185.8878,394.41833 185.80606,394.78615 185.80606,399.38394 C 185.8504,403.0393 184.97342,406.65347 183.49956,410.00481 C 183.35433,411.02741 182.9829,411.24229 181.39219,411.22399 C 179.31913,411.20016 178.08179,412.01862 178.08179,413.41373 C 177.44552,414.67985 176.6245,415.99246 175.87486,417.33888 L 167.04712,426.92341 C 167.06627,429.72174 167.21536,432.5919 166.49539,435.24662 C 165.55286,436.67888 165.14224,438.17309 163.28505,438.89475 C 162.07236,439.49468 160.57804,440.447 159.20029,441.18289 C 158.24351,440.86396 156.01245,443.25619 156.01245,444.60102 C 157.15581,446.85312 157.47884,448.78421 156.01827,451.36775 C 154.09299,452.51113 152.77669,453.16958 151.59857,455.35983 C 150.03747,457.6152 149.45084,459.55423 149.39164,462.28157 C 149.39164,464.48851 149.15518,466.14371 148.8399,466.14371 C 148.04685,467.39475 147.39639,469.10569 146.66244,470.55758 C 146.3752,470.55758 146.87176,471.94833 147.76591,473.64815 C 148.90467,475.31714 149.07114,477.41239 149.94337,479.10945 C 152.5296,482.42276 148.17525,487.55004 150.18367,490.38069 C 151.72628,492.08526 153.80551,496.52658 153.80551,498.1171 C 154.90816,501.66788 158.5103,503.68749 160.42631,506.80002 C 158.07794,511.40255 158.81295,512.9428 157.5406,515.79974 C 157.16728,515.79974 159.15352,518.101 161.95448,520.91365 C 164.75543,523.72629 167.04712,526.30283 167.04712,526.63929 C 168.57278,528.98868 170.03537,531.48577 171.31259,534.05318 C 173.44689,538.47055 174.17207,539.50138 175.15263,539.51164 C 176.34274,539.66445 177.0887,540.39779 178.25229,540.66809 C 180.30744,540.73664 182.72183,542.52515 183.84278,544.80936 C 184.72347,546.60399 185.60682,547.3259 188.8084,548.86744 C 193.46211,551.60668 197.08271,553.77011 202.62649,553.86937 L 207.87543,553.86937 C 207.78477,555.50583 207.85493,557.05775 208.42713,558.55911 C 208.96714,559.63224 209.03169,560.6939 209.70325,561.59364 C 210.10166,561.59364 211.09478,562.28999 211.91021,563.1411 C 213.41874,564.71566 213.8382,566.00751 212.84104,566.00751 C 212.14602,567.73163 211.58706,569.29628 210.0823,570.7629 C 208.86855,571.85948 207.87543,573.11797 207.87543,573.55953 C 207.87543,574.00108 207.50084,574.73688 207.04309,575.19465 C 206.33255,575.90517 205.96916,575.92007 204.56029,575.29644 C 202.06824,573.40997 201.05859,574.68411 198.63388,576.73664 C 196.12911,578.14491 197.71645,581.31947 195.73727,582.55952 C 191.81579,585.12977 187.74199,581.84549 183.84279,582.61161 C 181.07969,584.36187 180.29569,584.73783 181.39219,587.57108 C 182.19515,589.13427 182.10964,589.92215 181.39219,591.68961 C 181.39219,594.10328 178.88863,595.76334 175.21775,595.78369 C 173.18222,596.13982 171.65951,594.89468 169.77322,594.69767 C 167.23339,594.75661 168.63701,597.7048 167.33977,599.11153 C 164.5866,599.91776 162.08025,601.97098 159.32284,600.76673 C 159.32284,599.71618 157.30266,600.22096 156.01297,601.59378 C 154.15059,603.57616 147.26712,606.8358 144.94318,606.8358 C 140.60573,607.40489 138.45032,612.05652 138.35696,615.89278 L 138.35696,619.43244 L 135.1845,622.50245 C 132.75134,624.91274 129.16836,626.40119 125.77246,626.71659 L 123.73602,626.73491 C 126.75598,629.29976 127.67816,633.78463 128.42576,637.45703 C 128.42576,638.695 128.20289,638.83636 126.25138,638.83636 L 111.87375,643.25023 L 111.87375,652.07797 C 111.87375,657.5953 111.66685,660.90571 111.32202,660.90571 C 109.06288,665.53727 107.36325,670.94621 104.43464,675.44676 C 103.31017,677.70144 100.37617,678.02871 97.80454,678.56118 C 95.804384,678.7215 96.83373,684.70397 96.30598,688.48191 L 93.86709,690.06494 C 90.945835,690.14517 88.696128,689.75806 86.45097,687.89459 z")); +paths.push(new path("Recicle","M 75.226726,0.47113754 L 66.736191,18.080348 C 60.789718,12.894542 53.375924,9.8111576 45.345111,9.8111575 C 25.780684,9.8111575 9.9017938,28.076705 9.8876229,50.591946 L 0.40863754,50.681182 L 12.700905,75.250789 L 24.993172,99.79065 L 33.483707,82.18144 C 39.43018,87.367245 46.843974,90.45063 54.874787,90.45063 C 74.439214,90.450629 90.318105,72.185083 90.332275,49.669842 L 99.81126,49.580606 L 87.518993,25.010999 L 75.226726,0.47113754 z M 55.381684,28.401962 C 57.436505,28.337127 59.420933,28.68258 61.287041,29.353811 L 51.301158,49.99704 L 63.187907,49.907805 C 62.918683,61.816231 54.894596,71.542528 44.838214,71.859826 C 42.783393,71.924659 40.798965,71.579208 38.932857,70.907977 L 48.91874,50.264748 L 37.031991,50.353983 C 37.301215,38.445556 45.325301,28.71926 55.381684,28.401962 z")); +paths.push(new path("Computer ","M 0.84,211.41L 0.588,62.64L 59.808,3.24L 83.832,46.17L 83.832,189.54L 25.368,265.41C 15.792,260.82,4.284,241.65,1.008,211.41 z M 25.032,264.06L 25.2,105.3M 25.368,106.11L 83.16,47.52 z M 0.84,64.53C 5.124,89.64,9.828,104.76,25.2,106.11,14.952,107.46,5.544,94.23,0.84,64.53z M 4.368,120.96L 4.116,105.3C 8.148,116.91,12.432,125.28,19.824,131.76L 20.076,146.34L 14.28,139.05C 11.928,131.76,10.416,129.33,7.896,129.33L 4.368,120.96z M 17.556,199.53C 12.768,191.43,8.904,184.95,5.124,171.99z M 3.864,181.17C 8.148,196.29,12.768,205.47,19.32,213.57z M 9.408,154.17C 10.416,148.77,12.516,153.36,12.516,158.76,12.264,166.59,8.988,162.0,9.408,154.17 z")); +paths.push(new path("PDA","M 1.95,42.174L 1.755,47.388C 1.17,58.608,12.675,64.878,25.87,65.208L 25.805,60.786C 15.73,60.192,3.12,54.978,2.145,41.778L 37.635,19.998L 63.83,37.818L 25.805,60.786 z M 25.61,61.182L 25.87,65.208L 63.44,42.372L 63.83,38.016 z M 25.61,60.588C 14.365,60.786,3.12,53.394,2.145,42.372 z M 56.745,33.0L 62.075,29.37C 63.83,27.192,65.975,30.228,64.025,32.208L 61.035,35.574 z M 16.965,37.026L 37.245,24.42L 55.77,37.818L 34.45,51.018L 16.77,37.224 z M 13.0,45.012C 19.695,39.798,28.73,48.576,21.06,52.206,12.025,55.374,9.425,47.784,13.39,44.814 z")); +paths.push(new path("sh1","M305.947,142.688c-0.469-0.773-5.285-5.455-6-8.736 c-1.518-6.999-4.605-3.826-12.445-3.826c9.138-4.509,12.146-0.211,15.035-7.682c0.434-1.113,3.885-7.764,4.289-8.701 c3.92-5.631,5.191-12.398,5.191-18.486c0-6.094-1.233-11.49-2.244-14.326c-4.438-12.475-0.604-7.729-2.947-11.528 c-1.588-3.105-5.077-10.907-9.179-17.118l-7.784-10.318c-2.868-2.871-6.229-8.848-8.177-10.799c0-2.104-7.38-7.406-12.642-9.709 c-4.436-2.684-14.695-10.201-18.428-6.469C247.318,5.663,236.238,0,220.898,0s-24.712,8.663-28.305,12.252 c-3.593,0-10.66,16.989-10.66,26.396C180,60.387,199.17,67.014,199.17,70.359s-2.43,4.148-3.343,6.691 c-0.675,1.09-7.519,3.51-10.896,3.601c0,0-7.604-2.681-8.014-2.672c-5.227-0.964-14.208,2.763-21.201,1.222 c-6.996-1.538-12.368,1.09-14.253,2.977c0,1.172-0.344,11.684,3.954,25.553c0.3,3.158,2.014,10.055,3.92,19.116 c-1.323,3.434,0.74,3.574,1.113,5.47c1.778,9.059,3.52,19.693,4.27,30.68c0,5.391,3.886,22.734,3.886,22.734l18.044,0.557 c0.422,0.009,10.437,0.316,20.903,0.475c12.905,0.19,19.96,0.152,24.656-0.463h2.991h24.372l6.577-9.026 c0.656-0.899,1.626-2.388,2.599-4.327c0.791,0.905,14.578,16.688,14.578,16.688l13.163-3.48c0.366-0.094,3.659-0.973,7.102-2.162 c2.599-0.896,4.755-1.793,6.601-2.73c12.369-6.311,13.705-16.834,13.705-21.064C313.898,149.795,310.301,147.258,305.947,142.688 z")); +paths.push(new path("sh2","M398.619,157.397c-4.541,2.47-8.291,6.179-10.849,10.72c-2.446,4.354-3.683,9.041-3.683,13.939 c0,4.872,1.222,9.533,3.636,13.852c2.505,4.477,6.19,8.168,10.673,10.676c4.313,2.411,8.977,3.639,13.852,3.639 c4.869,0,11.098,0.472,13.846-3.639c4.488-6.703,7.641-4.714,10.143-9.193c2.414-4.313,4.178-10.462,4.178-15.334 c0-4.898-1.834-9.205-4.283-16.705c-1.611-4.957-5.713-5.484-10.248-7.954c-4.277-2.323-8.862-3.501-13.635-3.501 C407.473,153.896,402.888,155.074,398.619,157.397z")); +paths.push(new path("sh3","M431.279,175.506c-8.139,0.75-18.1,2.133-25.201,5.039 c3.606,3.785,8.912,6.826,11.525,11.52c3.691,6.656,5.139,15.615,5.654,25.447c5.18,5.177,0.111,20.549,0.1,30.715 c-5.353,3.164-10.324,7.98-16.556,10.078c-9.507,3.208-27.656,0.721-40.321,0.724c-8.291,0-14.818,0.864-20.88,2.156 c-3.835,0.82-7.86-0.993-10.802-1.438c-4.131-0.624-7.43,0.829-10.078,1.438c-6.387,1.474-12.179-1.069-17.279-1.438 c-5.736,14.262-15.053,27.709-28.084,34.562c-9.445,4.969-20.994,5.933-32.291,9.958c-18.234,6.48-45.744,1.98-68.83-1.497 c-24.429-3.68-58.639-9.82-64.477-15.659c-12.375-4.263-27.226-12.252-40.32-14.402c-1.233,4.412-4.452,9.803-9.198,14.546 c-4.775,10.406-17.856,17.016-23.922,21.454c-3.716,2.725-6.661,7.066-11.52,8.64c-1.976-4.438-6.836-6.835-10.08-10.078 c-4.562-4.562-3.847-5.273-8.402-9.841C8.002,295.113,3.445,285.768,0,286.386c17.284-20.106,23.944-21.114,29.26-36.029 c5.426-5.423,6.968-12.993,7.355-19.696c-0.655-1.33,12.114-4.189,12.705-5.355c-6.593,1.998-13.383,2.818-14.041,2.039 c-9.381-0.097-16.554-3.082-25.201-3.601c-0.498-8.956-2.688-17.54-4.528-26.247c-1.317-6.243-2.458-12.551-2.672-19.11 c13.44,1.679,26.883,3.36,40.323,5.042c0.122-9.287,0.696-19.96,0.719-30.24c9.961-5.965,18.625-20.106,33.119-20.162 c5.987,3.782,16.749,1.148,24.48,2.88c16.343,3.659,41.609,5.552,59.76,5.763c33.602,0,68.027,1.904,72.961,3.237 c5.496,1.485,75.36-1.802,80.399-1.802c6.085-3.668,23.476-0.354,31.679-2.159c8.35-1.831,18.563-0.196,27.36-2.159 c16.854-3.762,36.659-4.38,54.003-6.48c0.65,0.785-0.059,0.062,0.721,0.721C429.598,147.182,439.424,167.361,431.279,175.506z")); +paths.push(new path("sh4","M292.699,146.921c-1.822-5.177-4.758-5.61-5.692-7.315 c-1.86-3.396-3.079-5.555-4.649-7.122c-0.404-0.407,0.451-3.305,1.447-4.931l3.404-5.707c1.614-2.836,3.914-8.625,5.238-11.971 c0.794-2.001,1.201-3.018,1.705-3.82c2.297-2.719,3.105-6.923,3.105-10.963c0-3.627-0.639-7.102-1.389-9.211 c-0.059-0.17-5.391-15.07-9.059-20.666c-1.96-3.979-0.199-2.514-2.572-6.111c-1.055-1.597-6.721-9-7.178-9.797 c-0.076-0.129-4.482-8.089-8.982-10.945c-3.041-2.019-11.426-7.418-16.213-8.256c-1.857-0.328-7.819-0.091-9.577,0.706 c-2.487-8.968-9.694-14.145-21.527-15.419c-7.437-0.797-14.644,4.213-17.73,7.301c-4.578,1.72-7.116,9.688-6.335,15.955 c1.053,8.438,3.3,17.613,12.199,20.921c5.808,2.423,12.362,0.22,12.374,2.438c0.013,2.218,0.013-0.003,0.013-0.003 c-0.806,1.494-1.66,3.064-2.563,4.714c-0.757,1.383-1.116,2.622-1.378,3.519c0,0-0.183,0.592-0.199,0.653 c-0.563,0.993-4.856,5.136-5.074,6.688c-0.379,2.73-1.894,3.905-2.758,5.789c-2.389,3.604-4.742,8.268-5.581,9.973 c-4.601-0.023-0.297-1.816-9.387-1.57c0,0-12.325,1.939-13.605,1.969c-2.524-0.703-6.822-0.961-14.843,0.097 c0,0-5.927-0.472-7.373,0.976c-0.596,0.595,0.013,5.186,2.621,20.355c1.091,6.352,4.852,22.688,4.852,27.879 c0,3.264,5.197,28.307,5.197,28.307l5.917,0.179c29.539,0.905,39.56,0.633,43.575,0.009l21.384,0.003l2.156-2.962 c0.533-0.732,2.309-4.594,3.261-9.87c2.528-4.315,2.757-9.36,4.901-15.29c1.025,1.535,1.857,0.656,1.875,0.686 c3.199,4.471,4.424,6.322,9.158,11.063c1.178,1.131,3.035,3.656,3.896,4.828l4.131,7.43l6.973,5.596l4.318-1.14 c10.389-2.739,19.043-6.126,16.406-11.687C296.159,153.917,292.784,147.012,292.699,146.921z M242.839,97.699 c-0.565,0.586-2.657,2.813-4.688,5.839c0.044-0.53-0.079-1.046,0.062-1.477c1.324-4.034-0.709-4.034-1.629-5.265 c-0.686-0.92-1.547-1.641-2.52-2.153l1.389-1.802l0.94-1.307c0.243-0.363,2.95-0.721,3.126-1.075 c1.682-8.716,4.682-5.224,5.678-4.195c1.213,1.594,1.922,2.698,2.32,3.401C246.252,92.186,245.194,95.338,242.839,97.699z")); +paths.push(new path("sh5","M403.764,169.342c-2.493,1.354-3.595,2.438-5.01,4.954 c-1.374,2.44-1.781,5.071-2.068,7.761c-0.398,3.7,0.686,7.705,2.033,7.705c1.099,3.844,4.031,4.881,5.83,5.818 c4.189,2.197,6.012,1.049,6.855,1.547c3.527-0.498,3.773,0.797,8.546-1.547c4.767-2.338,3.56-3.557,5.821-5.818 c2.268-2.268,2.039-5.01,2.039-7.705c0-2.707-0.697-5.32-2.068-7.761c-1.418-2.511-0.984-5.399-4.479-6.243 c-3.495-0.838-7.14-0.788-9.788-0.788C408.832,167.265,406.166,168.035,403.764,169.342z ")); +paths.push(new path("sh6","M140.401,219.428c-0.485,20.438,14.266,32.18,35.278,25.201 c5.988-1.992,10.069-7.031,16.562-7.922c5.859,7.488,21.201,13.184,33.838,7.201c4.746-2.247,8.367-6.492,14.402-7.201 c5.32,9.111,16.562,9.609,28.799,7.922c-1.576,19.148-26.558,21.311-43.92,25.201c-3.84,0-7.681,0-11.52,0 c-12.103,2.467-30.328-0.24-41.039-2.883c-20.644-5.098-39.412-6.771-58.321-12.961c-10.91-3.574-25.066-10.289-36.719-11.52 c0,0.24,0,0.48,0,0.718c-0.24,0-0.48,0-0.721,0c-0.571,5.159-2.833,7.954-3.599,12.961c4.847,1.102,9.56,3.987,13.68,5.763 c13.043,5.604,27.407,9.059,40.32,13.676c17.496,6.264,36.306,8.01,54.719,12.961c5.606,1.512,12.16,0.911,17.281,2.162 c19.176,4.679,51.564-2.024,64.08-7.201c4.98-2.057,10.011-2.467,13.682-5.76c9.867-8.848,13.992-21.507,19.438-32.402 c0.398-0.797,0.144-4.775,0.718-6.475c1.266,0.451,0.7,0.135,1.441,0.715c4.242,1.395,7.465,4.5,12.24,5.76 c7.055,1.872,14.051-0.41,19.441-1.436c5.039-0.961,8.637,3.495,14.396,2.159c7.318-1.702,17.859-2.153,28.084-2.159 c0-0.486,0-0.961,0-1.441c1.564-2.774-0.428-6.627,0-9.36c1.172-7.532,2.314-18.712,5.76-23.042 c0.847-0.574,1.207-0.557,2.883-0.721c-2.42,7.465-2.771,20.18-0.724,28.802c2.083,1.058,3.126,3.328,5.039,4.321 c6.038,3.141,18.765,3.041,21.601-2.883c2.473-2.895,1.055-7.579,1.438-11.517c-1.438-0.483-2.88-0.961-4.315-1.441 c7.324-22.081-1.778-39.501-25.922-35.997c0-1.441,0-2.883,0-4.324c-4.523,0.785-7.412,4.002-10.799,5.76 c-6.158,3.188-12.785,4.857-21.604,5.039c-5.44-10.213-26.473-9.006-37.441-4.318c-3.029,1.295-5.3,3.885-8.637,5.042 c0-1.685,0-3.36,0-5.042c0.756-1.119,0.744-2.941,0.721-5.039c-4.201,0.003-8.191,0.709-11.52,1.441 c-9.955,2.18-21.196-1.588-29.52,1.441c-7.225,2.619-12.047,9.486-17.282,11.514c0-0.237,0-0.475,0-0.715 c-2.227-2.854-3.483-6.639-6.48-8.643c-9.891-6.627-26.657-2.552-34.559,2.883c-2.722,1.869-3.746,5.133-7.2,6.475 c-2.679-12.281-22.09-16.389-34.562-10.078c-3.45,1.746-6.122,5.092-10.08,6.48c-5.199-10.852-15.132-7.518-24.48-4.318 c-0.16-2.704-0.519-6.551,0-8.643c-0.24,0-0.48,0-0.721,0c-4.129,3.926-30.164,15.1-38.158,11.52 c-0.542-0.773-0.434-0.68-0.722-2.159c2.001-4.017-0.625-13.685,2.161-16.559c1.217-0.823,3.526-0.765,5.761-0.718 c4.371,2.695,12.312,0.217,18,1.436c11.676,2.508,27.164,1.729,39.601,2.883c6.478,0,12.958,0,19.438,0 c14.317,3.029,40.77,1.324,55.438,0c6.721,0,13.441,0,20.162,0c9.205-2.021,20.174,0.773,30.24-1.441 c22.245-4.898,48.41-2.373,69.838-7.201c4.078-0.24,8.162-0.478,12.24-0.715c12.311-2.892,26.279-3.539,38.162-6.486 c7.154-1.77,14.115-1.277,19.436-4.315c-1.213-3.595-1.424-8.414-1.436-12.961c-7.014,0.234-15.357,1.462-21.604,2.88 c-5.039,0.24-10.078,0.48-15.117,0.721c-16.535,3.686-35.807,3.299-54,4.318c-5.736,0.322-29.423,3.205-32.399,1.441 c-5.344-3.809-15.185,0.117-19.919,0.117c-3.551,0-39.727,0-43.682,0c-7.2,0-26.399-0.838-47.279-0.838c-3.12,0-6.242,0-9.362,0 c-4.685-2.83-23.216-0.627-30.239-2.162c-22.317-2.399-44.644-4.799-66.961-7.201c-4.274,5.801-14.833,7.107-15.12,16.564 c2.19,5.291-1.371,26.309-1.438,33.12c-2.426,0.835-6.589,0.771-10.081,0.718c-8.88-0.961-17.76-1.922-26.641-2.877 c0.655,0.776-0.056,0.059,0.722,0.718c-0.511,3.741,0.296,12.621,3.601,14.399c4.699,3.003,22.521,2.918,30.239,2.883 c0,0.237,0,0.475,0,0.718c-2.178,2.985-0.82,6.495-2.161,10.802c-3.123,10.025-5.495,21.674-10.078,30.958 c-3.62,7.327-8.162,15.138-12.961,21.601c-2.597,3.498-7.346,5.256-8.64,10.084c3.958,2.42,6.511,6.454,10.078,9.357 c0-0.24,0-0.48,0-0.721c15.41-9.316,29.06-29.402,37.441-45.36c-0.242-0.483-0.48-0.961-0.719-1.438 c2.187-4.09,5.492-10.588,7.2-12.961c-0.242-0.721-0.483-1.441-0.722-2.162c0.48,0,0.961,0,1.441,0 c0.983-1.447,1.23-8.959,2.881-12.24c0.478,0,0.958,0,1.438,0c1.087-1.652,0.214-6.023,1.438-7.919 c2.518-1.644,9.828-0.812,13.682-0.718c0.85-0.58,1.211-0.56,2.88-0.724c0,0.237,0,0.483,0,0.724 c-2.492,3.674-5.574,27.126-4.32,29.517c4.276,2.733,17.754,0.817,23.758,0.724c0-0.486,0-0.961,0-1.441 c1.219-2.109-0.494-4.635,0-6.48c1.266-4.723,6.023-13.579,9.362-20.162C132.038,217.025,134.191,219.217,140.401,219.428z")); +paths.push(new path("Cloud1","M96 48c45,-41 209,-10 63,16 110,3 -267,100 -145,31 -74,-6 82,-92 82,-47z")); +paths.push(new path("Airplane","M325 111l1 0c3,5 8,10 12,14 -12,0 -30,1 -37,1l-39 0 -6 -5 -12 -8c-10,-6 -22,-12 -40,-22 -17,-9 -41,-21 -52,-24 -11,-3 -39,-12 -50,-13 -12,-1 -31,-7 -44,-3 -13,4 -24,7 -21,14 4,7 8,14 13,20 4,7 18,15 24,21 5,5 25,16 29,20 2,3 11,9 16,12 -25,4 -42,9 -55,14 -16,7 -19,10 -29,15 -9,6 -12,15 -13,21 -1,5 6,12 18,16 12,4 81,4 86,4 3,0 61,-1 95,-1 7,6 14,12 18,15 6,6 19,14 28,19 9,4 27,14 55,22 29,8 55,17 66,18 12,0 32,5 40,2 8,-3 8,-2 12,-7 4,-6 8,-10 -4,-19 -12,-8 -29,-26 -40,-32 -10,-5 -19,-12 -29,-18 -1,-1 -2,-1 -3,-2 17,0 36,1 49,0 7,-1 20,-4 30,-6 7,5 19,11 24,10 6,-1 17,0 20,-3 4,-2 1,-2 -2,-8 -2,-5 -10,-10 -14,-13 4,-4 6,-7 7,-11 1,-6 -3,-15 -6,-21 -2,-6 -19,-13 -26,-15 0,0 0,0 0,0 1,0 1,-1 2,-1 3,-4 18,-15 21,-18 4,-3 23,-28 27,-32 5,-5 14,-22 15,-28 1,-5 3,-19 -11,-26 -13,-7 -29,9 -35,10 -6,2 -31,22 -36,26 -4,4 -35,28 -37,32 -2,3 -8,8 -14,14 -2,-1 -3,-3 -3,-4 -5,-6 -16,-11 -20,-12 -5,-1 -17,-3 -20,-2 -3,1 -10,0 -11,5 0,4 1,9 1,9z")); +paths.push(new path("Basket1","M 345.71429,293.51823 C 345.71429,346.35252 302.83429,389.23252 250,389.23252 C 197.16571,389.23252 154.28571,346.35252 154.28571,293.51823 C 154.28571,240.68394 197.16571,197.80394 250,197.80394 C 302.83429,197.80394 345.71429,240.68394 345.71429,293.51823 z M 244.4289,389.05684 C 230.45991,388.25934 221.61864,344.81077 224.69391,292.07342 C 227.73733,239.88254 241.28665,198.02896 255.15859,197.96863 M 334.04749,339.2834 C 324.40073,356.47166 278.91822,349.91864 232.52403,324.65613 C 186.12984,299.3936 156.30584,264.9408 165.95261,247.75253 C 166.11529,247.46266 166.26164,247.2223 166.44499,246.94382 M 335.75788,251.27694 C 336.79301,258.90039 299.21359,284.01176 251.87526,307.32912 C 205.60464,330.12055 167.01254,342.86233 164.36242,336.22281")); +paths.push(new path("Cruz","M 89.341183,173.90376 C 89.341183,176.43536 87.288673,178.48746 84.757453,178.48746 C 82.225853,178.48746 80.173733,176.43536 80.173733,173.90376 C 78.236463,175.49876 77.114123,177.87646 77.114123,180.38606 C 77.114123,185.02286 80.873053,188.78216 85.510223,188.78216 C 87.456973,188.78216 89.343453,188.10566 90.846343,186.86806 C 90.846343,191.78076 93.467403,196.32016 97.721733,198.77676 C 101.97607,196.32016 104.59714,191.78076 104.59714,186.86806 C 106.10002,188.10566 107.9865,188.78216 109.93325,188.78216 C 114.57043,188.78216 118.32936,185.02286 118.32936,180.38606 C 118.32936,177.87646 117.20702,175.49876 115.26975,173.90376 C 115.26975,176.43536 113.21763,178.48746 110.68603,178.48746 C 108.1548,178.48746 106.1023,176.43536 106.1023,173.90376 L 106.1023,136.79956 L 143.20649,136.79956 C 145.73809,136.79956 147.79021,138.85206 147.79021,141.38326 C 147.79021,143.91496 145.73809,145.96706 143.20649,145.96706 C 144.80148,147.90426 147.1792,149.02666 149.68882,149.02666 C 154.32561,149.02666 158.08493,145.26776 158.08493,140.63056 C 158.08493,138.68376 157.40834,136.79736 156.17077,135.29446 C 161.08351,135.29446 165.62288,132.67336 168.07944,128.41906 C 165.62288,124.16466 161.08351,121.54366 156.17077,121.54366 C 157.40834,120.04076 158.08493,118.15426 158.08493,116.20746 C 158.08493,111.57036 154.32561,107.81136 149.68882,107.81136 C 147.1792,107.81136 144.80148,108.93376 143.20649,110.87096 C 145.73809,110.87096 147.79021,112.92316 147.79021,115.45476 C 147.79021,117.98596 145.73809,120.03846 143.20649,120.03846 L 106.1023,120.03846 L 106.1023,82.934261 C 106.1023,80.402861 108.1548,78.350661 110.68603,78.350661 C 113.21763,78.350661 115.26975,80.402861 115.26975,82.934261 C 117.20702,81.339361 118.32936,78.961461 118.32936,76.452061 C 118.32936,71.815061 114.57043,68.056061 109.93325,68.056061 C 107.9865,68.056061 106.10002,68.732561 104.59714,69.969961 C 104.59714,65.057261 101.97607,60.517761 97.721733,58.061461 C 93.467403,60.517761 90.846343,65.057261 90.846343,69.969961 C 89.343453,68.732561 87.456973,68.056061 85.510223,68.056061 C 80.873053,68.056061 77.114123,71.815061 77.114123,76.452061 C 77.114123,78.961461 78.236463,81.339361 80.173733,82.934261 C 80.173733,80.402861 82.225853,78.350661 84.757453,78.350661 C 87.288673,78.350661 89.341183,80.402861 89.341183,82.934261 L 89.341183,120.03846 L 52.236993,120.03846 C 49.705543,120.03846 47.653383,117.98596 47.653383,115.45476 C 47.653383,112.92316 49.705543,110.87096 52.236993,110.87096 C 50.642073,108.93376 48.264203,107.81136 45.754813,107.81136 C 41.117793,107.81136 37.358743,111.57036 37.358743,116.20746 C 37.358743,118.15426 38.035293,120.04076 39.272663,121.54366 C 34.359973,121.54366 29.820483,124.16466 27.364163,128.41906 C 29.820483,132.67336 34.359973,135.29446 39.272663,135.29446 C 38.035293,136.79736 37.358743,138.68376 37.358743,140.63056 C 37.358743,145.26776 41.117793,149.02666 45.754813,149.02666 C 48.264203,149.02666 50.642073,147.90426 52.236993,145.96706 C 49.705543,145.96706 47.653383,143.91496 47.653383,141.38326 C 47.653383,138.85206 49.705543,136.79956 52.236993,136.79956 L 89.256391,136.74353 L 89.341183,173.90376 z")); +paths.push(new path("Star","M 525.54744,157.66424 L 485.77672,127.79524 L 445.20517,156.56705 L 461.32244,109.51282 L 421.42153,79.817963 L 471.15328,80.605843 L 487.0647,33.481608 L 501.68334,81.022775 L 551.41805,81.593251 L 510.72112,110.18743 L 525.54744,157.66424 z")); +paths.push(new path("The Zorro","M40.3725,163.02 L37.3725,163.02 L35.3715,169.02 L31.3716,171.02 L31.3716,176.02 L22.3727,174.02 L18.3728,167.02 L19.3728,164.02 L15.3728,164.02 L14.3728,158.02 L30.3716,136.02 L36.3725,118.022 L36.3725,107.021 L36.3725,104.021 L26.3716,98.0214 L21.3728,95.0214 L19.3728,91.0224 L15.3728,88.0224 L14.3728,82.0244 L14.3728,81.0244 L12.3729,79.0244 L11.373,72.0256 L11.373,69.0256 L10.373,69.0256 L8.37313,73.0256 L8.37313,68.0256 L6.37213,65.0236 L7.37313,61.0236 L7.37313,59.0236 L11.373,57.0236 L28.3716,8.02334 L11.373,59.0236 L15.3728,60.0236 L15.3728,65.0236 L18.3728,74.0256 L27.3716,84.0234 L33.3716,86.0234 L41.3725,85.0234 L45.3724,88.0224 L44.3724,82.0244 L44.3724,80.0244 L39.3725,77.0256 L38.3725,75.0256 L41.3725,74.0256 L45.3724,74.0256 L45.3724,70.0256 L48.3714,69.0256 L53.3713,69.0256 L56.3713,70.0256 L57.3713,74.0256 L62.3713,76.0246 L62.3713,78.0256 L56.3713,79.0244 L55.3713,85.0234 L54.3713,87.0224 L58.3713,89.0224 L64.3712,90.0224 L69.3712,68.0256 L72.3712,65.0236 L68.3712,60.0236 L73.3711,62.0236 L81.3711,62.0236 L84.371,58.0236 L84.371,64.0236 L91.3725,73.0256 L91.3725,77.0256 L98.3735,88.0224 L100.375,89.0224 L100.375,94.0214 L96.3735,98.0214 L92.3725,95.0214 L90.3715,92.0224 L88.3715,92.0224 L84.371,89.0224 L85.371,98.0214 L88.3715,105.021 L92.3725,103.021 L96.3735,104.021 L97.3735,110.022 L96.3735,111.022 L97.3735,115.022 L102.375,120.022 L110.377,108.021 L112.377,104.021 L118.377,103.021 L131.377,107.021 L133.377,111.022 L138.377,116.022 L138.377,124.022 L133.377,124.022 L128.377,119.022 L128.377,115.022 L127.377,112.022 L121.377,109.022 L116.377,109.022 L115.377,111.022 L113.377,125.022 L110.377,136.02 L106.376,141.02 L100.375,141.02 L101.375,152.02 L106.376,153.02 L111.377,153.02 L114.377,158.02 L114.377,160.02 L110.377,160.02 L104.375,165.02 L100.375,165.02 L97.3735,165.02 L100.375,162.02 L95.373,161.02 L91.3725,165.02 L95.373,177.02 L90.3715,169.02 L84.371,172.02 L79.3711,174.02 L80.3711,188.02 L81.3711,201.02 L80.3711,211.02 L82.3711,223.02 L86.371,234.02 L90.3715,239.02 L90.3715,243.02 L96.3735,248.02 L96.3735,254.02 L89.3715,252.02 L88.3715,247.02 L84.371,242.02 L73.3711,216.02 L73.3711,213.02 L72.3712,202.02 L67.3712,196.02 L57.3713,190.02 L53.3713,199.02 L53.3713,206.02 L54.3713,211.02 L53.3713,215.02 L53.3713,227.02 L59.3713,244.02 L61.3713,252.02 L64.3712,261.02 L58.3713,262.02 L54.3713,260.02 L54.3713,254.02 L55.3713,252.02 L51.3714,240.02 L48.3714,227.02 L49.3714,246.02 L46.3724,249.02 L39.3725,251.02 L35.3715,248.02 L35.3715,242.02 L36.3725,234.02 L32.3716,237.02 L33.3716,227.02 L31.3716,229.02 L36.3725,211.02 L35.3715,195.02 L32.3716,180.02 L38.3725,171.02 L38.3725,171.02 z")); +paths.push(new path("Man icon","M420,78 L443,70 L455,82 L453,94 L447,98 L447,108 L463,115 L489,177 L479,180 L457,135 L456,184 L464,276 L450,278 L438,187 L421,277 L408,276 L421,183 L418,135 L394,173 L383,164 L416,109 L428,105 L429,96 L419,91 L419,91 z")); +paths.push(new path("Woman icon","M378,456 l-33,213 c-6,36,-9,75,-19,110 c-15,17,-49,36,-70,43 v6 c4,-1,10,-2,16,-2 c12,0,24,3,32,10 c-8,11,-16,21,-20,35 c-10,41,2,91,-24,127 c-14,20,-34,31,-55,31 c-21,0,-41,-11,-55,-31 c-26,-36,-14,-86,-24,-127 c-4,-14,-12,-24,-20,-35 c8,-7,20,-10,32,-10 c6,0,12,1,16,2 v-6 c-21,-7,-55,-26,-70,-43 c-10,-35,-13,-74,-19,-110 l-33,-213 l2,-6 h34 l47,230 h3 l29,-104 l-81,-195 h46 l6,-7 v-367 l4,-7 h40 l2,4 l32,372 l6,5 h6 l6,-5 l32,-372 l2,-4 h40 l4,7 v367 l6,7 h46 l-81,195 l29,104 h3 l47,-230 h34Z")); +paths.push(new path("","")); +paths.push(new path("","")); + + +function deg2rad(angle){ +return (angle/180) * Math.PI; +} + + +/* +http://www.imatest.com/docs/testcharts_SFR_SVG.html +http://www.vectorials.com/tutorials/Isometric-Angles-42784.html +*/ \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/svgrenderer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/svgrenderer.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,4246 @@ +/*---------------------------------------------------------------------------- + SVGRENDERER 1.0 + SVG Renderer For RichDraw + ----------------------------------------------------------------------------- + Created by Mark Finkle (mark.finkle@gmail.com) + Implementation of SVG based renderer. + ----------------------------------------------------------------------------- +*/ +function AbstractRenderer() { + +}; + +AbstractRenderer.prototype.init = function(elem) {}; + + + + +function SVGRenderer() { + this.base = AbstractRenderer; + this.svgRoot = null; +} + + +SVGRenderer.prototype = new AbstractRenderer; + + +SVGRenderer.prototype.bounds = function(shape) { + + var box = shape.getBBox(); + + return { x:box.x, y:box.y, width:box.width, height: box.height }; + +}; + +SVGRenderer.prototype.init = function(elem) { + this.container = elem; + + this.container.style.MozUserSelect = 'none'; + + var svgNamespace = 'http://www.w3.org/2000/svg'; + + this.svgRoot = this.container.ownerDocument.createElementNS(svgNamespace, "svg"); + this.svgRoot.setAttributeNS(null,'viewBox', zoominit); + this.svgRoot.setAttributeNS(null,'preserveAspectRatio','none'); + this.svgRoot.setAttributeNS(null,'space','preserve'); + this.container.appendChild(this.svgRoot); +} + +SVGRenderer.prototype.view = function(left,top,width,height,viewBox,bgcolor) { + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tokens = viewBox.split(' '); + var margin=100; + var wFront=parseInt(document.getElementById('FRONT').style.width) + var hFront=parseInt(document.getElementById('FRONT').style.height) + var tC=0 + ' ' + 0 + ' ' + wFront + ' ' + hFront; + tokensCanvas= tC.split(' '); + var w=parseFloat(tokens[2]); + var h=parseFloat(tokens[3]); + var wImage = w - parseFloat(tokens[0]); + var hImage = h - parseFloat(tokens[1]); + var wCanvas = wFront; + var hCanvas = hFront; + proporImage = hImage / wImage; + proporCanvas = hCanvas / wCanvas; + + document.title= initialFile +' '+wImage+' x '+hImage; + + + if(bgcolor != '') + { + this.container.style.backgroundColor=bgcolor; + } else{ + this.container.style.backgroundColor="#ffffff"; + } +if(viewMode=='preview') + { + if(proporCanvas==proporImage) + { + this.container.style.width =wFront+'px'; + this.container.style.height =hFront+'px'; + this.container.style.left =0+'px' + this.container.style.top =0+'px' + + } + if(proporCanvasproporImage) + { + var proportion= hFront/wFront; + //var image_proportion= width/height; + var image_proportion= h/w; + var H=wFront*image_proportion; + var leftover=(hFront-H)/2; + + this.container.style.width =wFront+'px'; + this.container.style.height =H+'px'; + this.container.style.left =0+'px' + this.container.style.top =leftover+'px' + } + + this.svgRoot.setAttributeNS(null,'x', left); + this.svgRoot.setAttributeNS(null,'y', top); + this.svgRoot.setAttributeNS(null,'width', parseInt(this.container.style.width)); + this.svgRoot.setAttributeNS(null,'height', parseInt(this.container.style.height)); + + this.svgRoot.setAttributeNS(null,'viewBox', viewBox); + + } +if(viewMode=='canvas') + { + this.container.style.left = 0 + 'px'; + this.container.style.top = 0 + 'px'; + this.container.style.width = wFront + 'px'; + this.container.style.height = hFront + 'px'; + + // margins 10% + var percent=10; + var percentX = wImage / percent; + var percentY = hImage / percent; + var cornerNEx = parseFloat(tokens[0])-percentX; + var cornerNEy = parseFloat(tokens[1])-percentY; + var percentRectW=wImage + percentX*2; + var percentRectH=hImage + percentY*2; + + document.title= initialFile +' '+wImage+' x '+hImage; + // ajust proporImage to proporCanvas + if(proporCanvas==proporImage) + { + cornerNEx = parseFloat(tokens[0])-percentX + cornerNEy = parseFloat(tokens[1])-percentY + var wi=percentRectW; + var he=percentRectH;//hImage+percentY+addHimage; + zoominit=viewBox; + zoominit1 = cornerNEx+' '+cornerNEy+' '+wi+' '+he; + tokensZoom=zoominit1.split(' '); + } + + if(proporCanvasproporImage) + { + // add to hImage + var newHimage = percentRectH * ((hCanvas * percentRectW) / (wCanvas * percentRectH)) ;//newRectH * + var diffImages=newHimage-h; + cornerNEy = parseFloat(tokens[1]) - (diffImages / 2); + var wi=percentRectW; + var he=newHimage;//hImage+percentY+addHimage; + zoominit=viewBox; + zoominit1 = cornerNEx+' '+cornerNEy+' '+wi+' '+he; + tokensZoom=zoominit1.split(' '); + } + /* this.svgRoot.setAttributeNS(null,'x', cornerNEx); + this.svgRoot.setAttributeNS(null,'y', cornerNEy); + this.svgRoot.setAttributeNS(null,'width', wi); + this.svgRoot.setAttributeNS(null,'height',he); + */ + this.svgRoot.setAttributeNS(null,'x', 0); + this.svgRoot.setAttributeNS(null,'y', 0); + this.svgRoot.setAttributeNS(null,'width', wFront); + this.svgRoot.setAttributeNS(null,'height',hFront); + this.svgRoot.setAttributeNS(null,'viewBox', zoominit1); + + + } +} + +SVGRenderer.prototype.zoomFrame = function(zoom){ + this.svgRoot.setAttributeNS(null,'viewBox', zoom); +} + +SVGRenderer.prototype.rectDoc = function(viewBox) { + var tokens = viewBox.split(' '); + var wFront=parseInt(document.getElementById('FRONT').style.width) + var hFront=parseInt(document.getElementById('FRONT').style.height) + var tC=0 + ' ' + 0 + ' ' + wFront + ' ' + hFront; + tokensCanvas= tC.split(' '); + var Ey = parseFloat(tokensCanvas[3]) ; // (end) height canvas. Corner up-right + var Hz = parseFloat(tokens[3]) ; // height zoom + this.editor.unit = this.editor.initialUnit * (Hz/Ey) ; // 0 to 1 + + var svgNamespace = 'http://www.w3.org/2000/svg'; + + var shape = document.getElementById('rectDoc'); + if (shape) { + this.remove(shape); + } + var rect=this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + rect.setAttributeNS(null, 'id', 'rectDoc'); + rect.setAttributeNS(null, 'x', tokens[0] + 'px'); + rect.setAttributeNS(null, 'y', tokens[1] + 'px'); + rect.setAttributeNS(null, 'width', tokens[2]+ 'px'); + rect.setAttributeNS(null, 'height', tokens[3] + 'px'); + rect.setAttributeNS(null, 'fill', 'none'); + rect.setAttributeNS(null, 'stroke', '#000000'); + rect.setAttributeNS(null, 'stroke-width', this.editor.unit*2+'px'); + // this.svgRoot.appendChild(rect) + + this.svgRoot.insertBefore( rect, this.svgRoot.firstChild ); +} + +SVGRenderer.prototype.rectCanvas = function(docx,docy,docw,doch,viewBox) { + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tokens = zoominit1.split(' '); + var shape = document.getElementById('rectCanvas'); + if (shape) { + this.remove(shape); + } + var rect=this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + rect.setAttributeNS(null, 'id', 'rectBackground'); + rect.setAttributeNS(null, 'x', tokens[0] + 'px'); + rect.setAttributeNS(null, 'y', tokens[1] + 'px'); + rect.setAttributeNS(null, 'width', tokens[2] + 'px'); + rect.setAttributeNS(null, 'height', tokens[3] + 'px'); + rect.setAttributeNS(null, 'fill', '#666666'); + rect.setAttributeNS(null, 'stroke', 'none'); + //this.svgRoot.appendChild(rect) + this.svgRoot.insertBefore( rect, this.svgRoot.firstChild ); + + //this.index('rectBackground',0); + + /* var shape = document.getElementById('rectOverCanvas'); + if (shape) { + this.remove(shape); + } + var rect=this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + rect.setAttributeNS(null, 'id', 'rectOverCanvas'); + rect.setAttributeNS(null, 'x', docx + 'px'); + rect.setAttributeNS(null, 'y', docy + 'px'); + rect.setAttributeNS(null, 'width', docw + 'px'); + rect.setAttributeNS(null, 'height', doch + 'px'); + rect.setAttributeNS(null, 'fill', 'none'); + rect.setAttributeNS(null, 'stroke', '#000000'); + rect.setAttributeNS(null, 'stroke-width', 1+'px'); + // this.svgRoot.appendChild(rect) + this.svgRoot.insertBefore( rect, this.svgRoot.lastChild ); + */ +} + +SVGRenderer.prototype.removeAll = function() +{ + while( this.svgRoot.hasChildNodes () ) + { + this.svgRoot.removeChild( this.svgRoot.firstChild ); + } +} + +SVGRenderer.prototype.create = function(shape, fillColor, lineColor, fillOpac, lineOpac, lineWidth, left, top, width, height, textMessaje, textSize, textFamily, imageHref, points, transform, parent, viewBox) { + var svgNamespace = 'http://www.w3.org/2000/svg'; + var xlinkNS="http://www.w3.org/1999/xlink"; + + var svg; + + if (shape == 'rect') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + svg.setAttributeNS(null, 'x', left + 'px'); + svg.setAttributeNS(null, 'y', top + 'px'); + svg.setAttributeNS(null, 'width', width + 'px'); + svg.setAttributeNS(null, 'height', height + 'px'); + svg.setAttributeNS(null, 'rx', 0+'px'); + svg.setAttributeNS(null, 'ry', 0+'px'); + + //svg.setAttributeNS(null,'transform', "translate(0,0)"); + //svg.setAttributeNS(null,'transform', "translate('+left+','+top+')"); + svg.style.position = 'absolute'; + } + else if (shape == 'ellipse' || shape == 'circle') { + + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'ellipse'); + svg.setAttributeNS(null, 'cx', (left + width / 2) + 'px'); + svg.setAttributeNS(null, 'cy', (top + height / 2) + 'px'); + if(shape == 'circle'){ + svg.setAttributeNS(null, 'rx', (width / 2) + 'px'); + svg.setAttributeNS(null, 'ry', (width / 2) + 'px'); + }else{ + svg.setAttributeNS(null, 'rx', (width / 2) + 'px'); + svg.setAttributeNS(null, 'ry', (height / 2) + 'px'); + + } + //svg.setAttributeNS(null,'transform', "translate('+left+','+top+')"); + svg.style.position = 'absolute'; + } + else if (shape == 'roundrect') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + svg.setAttributeNS(null, 'x', left + 'px'); + svg.setAttributeNS(null, 'y', top + 'px'); + if(textSize!=0 || textSize!=''){ var rounded=textSize; }else{var rounded=18;} + svg.setAttributeNS(null, 'rx', rounded+'px'); + svg.setAttributeNS(null, 'ry', rounded+'px'); + svg.setAttributeNS(null, 'width', width + 'px'); + svg.setAttributeNS(null, 'height', height + 'px'); + //svg.setAttributeNS(null,'transform', "translate('+left+','+top+')"); + svg.style.position = 'absolute'; + } + else if (shape == 'line') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'line'); + svg.setAttributeNS(null, 'x1', left + 'px'); + svg.setAttributeNS(null, 'y1', top + 'px'); + svg.setAttributeNS(null, 'x2', left + width + 'px'); + svg.setAttributeNS(null, 'y2', top + height + 'px'); + //svg.setAttributeNS(null,'transform', "translate('+left+','+top+')"); + svg.style.position = 'absolute'; + } + else if (shape == 'polyline' || shape == 'polygon') { + var xcenterpoly=xpArray; + var ycenterpoly=ypArray; + var thispath=''+xpArray[1]+','+ypArray[1]; + svg = this.container.ownerDocument.createElementNS(svgNamespace, shape); + svg.setAttributeNS(null, 'points', points); + svg.style.position = 'absolute'; + } + else if (shape == 'path') + { + var k = (Math.sqrt(2)-1)*4/3; + var circle="M 0,1 L 0.552,1 1,0.552 1,0 1,-0.552 0.552,-1 0,-1 -0.552,-1 -1,-0.552 -1,0 -1,0.552 -0.552,1 0,1z" // 4th + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'path'); + //svg.setAttributeNS(null, 'd', 'M '+thispath+' C'+thispath); + svg.setAttributeNS(null, 'd', points); + //svg.setAttributeNS(null,'transform', "translate(-80,-80)"); + svg.style.position = 'absolute'; + } + else if (shape == 'controlpath') + { + var point='M '+left+','+top+' L '+(left+1)+','+(top+1)+'z' // 4th + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'path'); + //svg.setAttributeNS(null, 'd', 'M '+thispath+' C'+thispath); + svg.setAttributeNS(null, 'd', point); + svg.setAttributeNS(null,'transform', "translate(0,0)"); + svg.style.position = 'absolute'; + } + else if (shape == 'text') + { + var data = this.container.ownerDocument.createTextNode(textMessaje); + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'text'); + svg.setAttributeNS(null, 'x', parseFloat(left) + 'px'); + svg.setAttributeNS(null, 'y', parseFloat(top) + 'px'); + svg.setAttributeNS(null, 'font-family', textFamily ); + svg.setAttributeNS(null, 'font-size', parseFloat(textSize)); + svg.style.position = 'absolute'; + svg.appendChild(data); + } + else if (shape == 'clipPath') + { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'clipPath'); + } + else if (shape == 'filter') + { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'filter'); + } + else if (shape == 'feGaussianBlur') + { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'filter'); + svg.setAttributeNS(null, 'in','SourceGraphic'); + svg.setAttributeNS(null, 'stdDeviation',parseFloat(left)); + } + else if (shape == 'linearGradient') + { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'linearGradient'); + svg.setAttributeNS(null, 'x1', left); + svg.setAttributeNS(null, 'y1', top); + svg.setAttributeNS(null, 'x2', width); + svg.setAttributeNS(null, 'y2', height); + svg.setAttributeNS(null, 'gradientUnits',textMessaje);//"userSpaceOnUse" + svg.setAttributeNS(xlinkNS,'href', imageHref); + + } + else if (shape == 'radialGradient') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'radialGradient'); + svg.setAttributeNS(null, 'gradientUnits',textMessaje);//"userSpaceOnUse" + svg.setAttributeNS(null, 'cx', left); + svg.setAttributeNS(null, 'cy', top ); + svg.setAttributeNS(null, 'fx', width); + svg.setAttributeNS(null, 'fy', height); + svg.setAttributeNS(null, 'r', lineWidth); + svg.setAttributeNS(xlinkNS,'href', imageHref); + } + else if (shape == 'stop') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'stop'); + svg.setAttributeNS(null, 'stop-color', fillColor); + svg.setAttributeNS(null, 'stop-opacity', fillOpac); + svg.setAttributeNS(null, 'offset', lineOpac); + } + else if (shape == 'defs') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'defs'); + //svg.setAttributeNS(null, 'id', 'defs'); + } + else if (shape == 'group') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'g'); + svg.setAttributeNS(null, 'x', left + 'px'); + svg.setAttributeNS(null, 'y', top + 'px'); + svg.setAttributeNS(null, 'width', width + 'px'); + svg.setAttributeNS(null, 'height', height + 'px'); + svg.setAttributeNS(null, 'fill-opacity', parseFloat(fillOpac)); + svg.setAttributeNS(null, 'fill', fillColor); + //} + + //else if (shape == 'linearGradient') { + //return false + } + else if (shape == 'pattern') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'pattern'); + svg.setAttributeNS(null, 'x', left); + svg.setAttributeNS(null, 'y', top); + svg.setAttributeNS(null, 'width', width ); + svg.setAttributeNS(null, 'height', height); + svg.setAttributeNS(null, 'viewBox', viewBox); + svg.setAttributeNS(null, 'patternUnits', 'userSpaceOnUse'); + + } + else if (shape == 'use') { + var svg = this.container.ownerDocument.createElementNS(svgNamespace, 'use'); + svg.setAttributeNS(xlinkNS,'xlink:href', imageHref); + } + else if (shape == 'image') { + /* svg = this.container.ownerDocument.createElementNS(svgNamespace, 'g'); + svg.setAttributeNS(null, 'x', left + 'px'); + svg.setAttributeNS(null, 'y', top + 'px'); + svg.setAttributeNS(null, 'width', width + 'px'); + svg.setAttributeNS(null, 'height', height + 'px'); + */ + var svg = this.container.ownerDocument.createElementNS(svgNamespace, 'image'); + svg.setAttributeNS(xlinkNS,'href', imageHref); + svg.setAttributeNS(null, 'x', left + 'px'); + svg.setAttributeNS(null, 'y', top + 'px'); + svg.setAttributeNS(null, 'width', width + 'px'); + svg.setAttributeNS(null, 'height', height + 'px'); + svg.setAttributeNS(null, 'opacity', parseFloat(fillOpac)); + svg.setAttributeNS(null, 'preserveAspectRatio','none');//xMinYMin slice + //svg.setAttributeNS(null, 'viewbox', left+' '+top+' '+width+' '+height); + //Ext.get(this.container).removeAllListeners(isvg) + //svg.appendChild(isvg); + /* + var rsvg = this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + rsvg.setAttributeNS(null, 'x', left + 'px'); + rsvg.setAttributeNS(null, 'y', top + 'px'); + rsvg.setAttributeNS(null, 'width', width + 'px'); + rsvg.setAttributeNS(null, 'height', height + 'px'); + rsvg.style.fill = fillColor; + rsvg.style.stroke = lineColor; + rsvg.style.strokeWidth = lineWidth; + rsvg.setAttributeNS(null, 'opacity', '0.1'); + rsvg.style.strokOpacity = lineOpac; + // Ext.get(this.container).removeAllListeners(rsvg) + svg.appendChild(rsvg); + + */ + //svg.setAttributeNS(null, 'color-rendering', fillColor); + //svg.setAttributeNS(null, 'display', 'inherit'); + + //alert(fillOpac+'lkjlkj'); + //svg.setAttributeNS(null, 'fill-opacity', parseFloat(fillOpac)); + + /* if (fillColor.length == 0){fillColor = 'none';} + if (lineColor.length == 0){lineColor = 'none';} + svg.style.fill = fillColor; + svg.style.stroke = lineColor; + svg.style.strokeWidth = lineWidth; + svg.style.fillOpacity = fillOpac; + svg.style.strokOpacity = lineOpac; + svg.style.setAttributeNS(null, 'fill', fillColor); + svg.style.setAttributeNS(null, 'stroke', lineColor); + svg.style.setAttributeNS(null, 'stroke-width', lineWidth); + svg.style.setAttributeNS(null, 'fill-opacity', fillOpac); + svg.style.setAttributeNS(null, 'stroke-opacity',lineOpac); + + */ + } + + if(shape == 'zoom') + { + + }else + { + if(transform!='') + { + svg.setAttributeNS(null, 'transform', transform); + } + + var render=true; + if(shape.indexOf('image')>=0){render=false;} + //if(shape.indexOf('group')>=0){render=false;} + if(shape.indexOf('linearGradient')>=0){render=false;} + if(shape.indexOf('radialGradient')>=0){render=false;} + if(shape.indexOf('stop')>=0){render=false;} + if(shape.indexOf('def')>=0){render=false;} + if(shape.indexOf('filter')>=0){render=false;} + if(shape.indexOf('feGaussianBlur')>=0){render=false;} + + + + //|| shape != 'group' + //if(shape != 'image' || shape != 'stop' || shape != 'def') + if(render==true) + { + + //var set = this.container.ownerDocument.createElementNS(svgNamespace, "style"); + + if (lineColor.length == 0){lineColor = 'none';} + if (fillColor.length == 0){fillColor = 'none';} + //if (lineWidth == NaN || lineWidth == 0 ){lineColor = '#000000';} + + + // set.setAttributeNS(null, 'stroke', lineColor); + //set.setAttributeNS(null, 'stroke-width', lineWidth); + //set.setAttributeNS(null, 'fill-opacity', fillOpac); + //set.setAttributeNS(null, 'stroke-opacity',lineOpac); + //svg.appendChild(set); + //svg.setAttributeNS(null, "style","fill:"+ fillColor+";stroke:"+lineColor+";strokeWidth:"+lineWidth+";fill-opacity:"+fillOpac+";stroke-opacity:"+lineOpac); + // + (fillColor!=''|| fillColor!=null )?svg.setAttributeNS(null, 'fill', fillColor):svg.setAttributeNS(null, 'fill', '#000000'); + + //svg.setAttributeNS(null, 'filter', filter); + svg.setAttributeNS(null, 'stroke', lineColor); + svg.setAttributeNS(null, 'stroke-width', parseFloat(lineWidth)); + svg.setAttributeNS(null, 'fill-opacity', parseFloat(fillOpac)); + svg.setAttributeNS(null, 'stroke-opacity',parseFloat(lineOpac)); + svg.setAttributeNS(null, 'stroke-linejoin','round') + + /* + + + + svg.style.stroke = lineColor; + svg.style.strokeWidth = lineWidth; + svg.style.fillOpacity = fillOpac; + svg.style.strokOpacity = lineOpac; + if (fillColor.length == 0){fillColor = 'none';} + + if (lineColor.length == 0){lineColor = 'none';} + */ + } + + + if(parent==''){ + this.svgRoot.appendChild(svg); + }else{ + if(document.getElementById(parent)){ + var parentShape = document.getElementById(parent); + parentShape.appendChild(svg); + } + } + + + return svg; + + } + +}; + + + +SVGRenderer.prototype.zoomFrame = function(zoom){ + this.svgRoot.setAttributeNS(null,'viewBox', zoom); + + +} +SVGRenderer.prototype.zoom = function(clicx,clicy){ +/* +function(direction, amount) { +var viewBox = this.rootNode.getAttribute('viewBox'); + var viewVals = viewBox.split(' '); + if (amount == null) { + amount = SVGElement.panFactor; + } + switch (direction) { + case 'left': + amount = 0 - amount; + // intentionally fall through + case 'right': + var currentPosition = parseFloat(viewVals[0]); + currentPosition += amount; + viewVals[0] = currentPosition; + break; + case 'up': + amount = 0 - amount; + // intentionally fall through + case 'down': + var currentPosition = parseFloat(viewVals[1]); + currentPosition += amount; + viewVals[1] = currentPosition; + break; + case 'origin': + // reset everything to initial values + viewVals[0] = 0; + viewVals[1] = 0; + this.rootNode.currentScale = 1; + this.rootNode.currentTranslate.x = 0; + this.rootNode.currentTranslate.y = 0; + break; + } + this.rootNode.setAttribute('viewBox', viewVals.join(' ')); + */ + + + + //canvasWidth + //canvasheight + if(zoommode=='frame') + { + var viewBox = this.svgRoot.getAttributeNS(null,'viewBox'); + + //alert(viewBox); + + var viewBox = zoominit; + var viewVals = viewBox.split(' '); + + zoomx = parseFloat(viewVals[0]); + zoomy = parseFloat(viewVals[1]); + zoomw = parseFloat(viewVals[2]); + zoomh = parseFloat(viewVals[3]); + proporDiagonal=1; + } + else + { + + var viewBox = this.svgRoot.getAttributeNS(null,'viewBox'); + + var viewVals = viewBox.split(' '); + var prevX = parseFloat(viewVals[0]); + var prevY = parseFloat(viewVals[1]); + var prevW = parseFloat(viewVals[2]); + var prevH = parseFloat(viewVals[3]); + var prevWidth=prevW-prevX; + var prevHeight=prevH-prevY; + + } + + if(zoommode=='more') + { + fieldViewx=prevW*0.95; + fieldViewy=prevH*0.95; + diagonalFrame=dist2p(0,0,fieldViewx,fieldViewy); + //diagonalAngle=getAngle(fieldViewx,fieldViewy); + zoomx=(diagonalMidx+(diagonalFrame/2)*Math.cos(diagonalAngle+Math.PI));//-(fieldViewx/8);//-(canvasW/2)docx-fieldViewx; + zoomy=(diagonalMidy+(diagonalFrame/2)*Math.sin(diagonalAngle+Math.PI));//-(fieldViewy/8);//-(canvasH/2);//docy-fieldViewy; + zoomw=prevW*0.95; + zoomh=prevH*0.95; + + + proporDiagonal=diagonalFrame/diagonalinit; + //alert(proporDiagonal); + } + if(zoommode=='minus') + { + fieldViewx=prevW*1.05; + fieldViewy=prevH*1.05; + diagonalFrame=dist2p(0,0,fieldViewx,fieldViewy); + //diagonalAngle=getAngle(fieldViewx,fieldViewy); + zoomx=(diagonalMidx+(diagonalFrame/2)*Math.cos(diagonalAngle+Math.PI));//-(fieldViewx/8);//-(canvasW/2)docx-fieldViewx; + zoomy=(diagonalMidy+(diagonalFrame/2)*Math.sin(diagonalAngle+Math.PI));//-(fieldViewy/8);//-(canvasH/2);//docy-fieldViewy; + zoomw=prevW*1.05; + zoomh=prevH*1.05; + proporDiagonal=diagonalFrame/diagonalinit; + + } + if(zoommode=='window') + { + + zoomx=c.mouseDownX; + zoomy=c.mouseDownY; + var dF=dist2p(c.mouseDownX,c.mouseDownY,clicx,clicy); + //var mid=pmd2pb(c.clicX,c.clicX,clicx,clicy,0.5) + zoomw=dF*proporDoc;//(mid[1]+(dF/2)*Math.cos(diagonalAngle+Math.PI)); + zoomh=dF;//(mid[2]+(dF/2)*Math.sin(diagonalAngle+Math.PI)); + + + } + var direction=0; + if(zoommode=='hand') + { + direction=ang2v(clicx,clicy,centerZoomx,centerZoomy); + var distance=dist2p(clicx,clicy,centerZoomx,centerZoomy); + var left = prevX+distance*Math.cos(direction); + var top = prevY+distance*Math.sin(direction); + makeWorkSite(prevH,left,top); + } + direction=direction*180/Math.PI; + //this.svgRoot.currentScale = zoomscale+0.1; + //this.svgRoot.currentTranslate.x = 0; + //this.svgRoot.currentTranslate.y = 0; + //var resultPosx=clicx-((prevscalex-posx)/2);//-Math.abs(posx+clicx) + //var resultPosy=clicy-((prevscalex-posy)/2);//-Math.abs(posy+clicy) + //var resultPosx=-Math.abs(posx+clicx); + //var resultPosy=-Math.abs(posy+clicy); + + this.svgRoot.setAttributeNS(null,'viewBox', (zoomx)+' '+(zoomy)+' '+zoomw+' '+zoomh+''); + var viewBox = this.svgRoot.getAttributeNS(null,'viewBox'); + //$('status').innerHTML=' '+viewBox; + //alert(direction+'__'+prevZoomCenterx+' '+prevZoomCentery+' '+centerZoomx+' '+centerZoomy); +} + +//this.mode, this.fillColor, this.lineColor, this.fillOpac, this.lineOpac, this.lineWidth, this.mouseDownX, this.mouseDownY, 1, 1,'','' +SVGRenderer.prototype.datacreate = function(fillColor, lineColor, fillOpac, lineOpac, lineWidth, left, top, width, height, textMessaje, textSize, textFamily, imageHref, transform) { + var svgNamespace = 'http://www.w3.org/2000/svg'; + var svg; + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'path'); + svg.setAttributeNS(null, 'd', data); + svg.setAttributeNS(null,'transform', "translate(0,0)"); + svg.style.position = 'absolute'; + if (fillColor.length == 0){fillColor = 'none';} + svg.setAttributeNS(null, 'fill', fillColor); + if (lineColor.length == 0){lineColor = 'none';} + svg.setAttributeNS(null, 'stroke', lineColor); + svg.setAttributeNS(null, 'stroke-width', lineWidth); + this.svgRoot.appendChild(svg); + return svg; +}; + +SVGRenderer.prototype.querySelected = function(shape,centerx,centery,width,height) +{ + var result = true; + var shapes='names: g, image, rect, path, ellipse, circle, text, line, '; + + //if(shape.getBBox && shape) + if( shapes.indexOf(' '+shape.tagName+',')>0) + { + + var box = shape.getBBox(); + }else + { + return false; + } + var p1x = box.x; + if(Math.abs(p1x-centerx)>width){result = false} + + var p1y = box.y; + if(Math.abs(p1y-centery)>height){result = false} + + var p2x = box.x+box.width; + if(Math.abs(p2x-centerx)>width){result = false} + + var p2y = box.y; + if(Math.abs(p2y-centery)>height){result = false} + + var p3x = box.x+box.width; + if(Math.abs(p3x-centerx)>width){result = false} + + var p3y = box.y+box.height; + if(Math.abs(p3y-centery)>height){result = false} + + var p4x = box.x; +if(Math.abs(p4x-centerx)>width){result = false} + + var p4y = box.y+box.height; + if(Math.abs(p4y-centery)>height){result = false} + + if(result) + { + return { 'in':result, 'cornersx': p1x+','+p2x+','+p3x+','+p4x+',' ,'cornersy': p1y+','+p2y+','+p3y+','+p4y+',' }; + } + else + { + return { 'in':result } + } +//center.distanceFrom(point1); + + +} + +SVGRenderer.prototype.searchBoxes = function() +{ + var base = this.svgRoot; + + var NumNodes = base.childNodes.length; + var chain= ''; + for(i = 0;i < NumNodes;i++) + { + if (base.childNodes[i].getBBox) + { + chain+=base.childNodes[i].id + ';' + } + } + chain+='' + return chain; + +} + +SVGRenderer.prototype.DrawBorder= function(numNode, targetElement ) +{ + var shapes='names: g, image, rect, path, ellipse, circle, text, line, '; + + //if(shape.getBBox && shape) + if( shapes.indexOf(' '+targetElement.tagName+',')>0) + { + var bbox = targetElement.getBBox(); + var svgns = 'http://www.w3.org/2000/svg'; + + var outline = this.container.ownerDocument.createElementNS(svgns, 'rect'); + outline.setAttributeNS( null, 'x', bbox.x - 2 ); + outline.setAttributeNS( null, 'y', bbox.y - 2 ); + outline.setAttributeNS( null, 'width', bbox.width + 4 ); + outline.setAttributeNS( null, 'height', bbox.height + 4 ); + outline.setAttributeNS( null, 'stroke', '#ff00ff' ); + outline.setAttributeNS( null, 'fill', 'none' ); + outline.setAttributeNS( null, 'id', 'shapeBoxed'+numNode ); + + targetElement.parentNode.insertBefore( outline, targetElement ); + return 'shapeBoxed'+numNode; + } + else + { + return false + } +} + +SVGRenderer.prototype.index = function(shape,order) { + + if(order==-1) + { + this.svgRoot.appendChild( shape ); + } + if(order==0){ + + this.svgRoot.insertBefore( shape, shape.parentNode.firstChild ); + } + + if(order==1 || order==2) + { + var id=shape.getAttributeNS(null, 'id'); + //alert(id); + + + var numNodes=this.svgRoot.childNodes.length; + //alert(numNodes); + + var num=0; + for(var i = 1; i < numNodes; i++) + { + + var etiq=this.svgRoot.childNodes[i].getAttributeNS(null, 'id'); + if (etiq==id) + { + num=i; + + } + } + //alert(num); + if(order==1) + { + if((num-1)>=-1) + { + this.svgRoot.insertBefore( shape, this.svgRoot.childNodes[num-1]); + } + } + if(order==2){ + if((num+1)2) + { + if(rot.length>2){ union=',';} + cadScale='scale('+scl+')'; + if(scl.indexOf('-')!=-1) + { + var dist= dist2p(left,top,box.x,box.y); + + left=left; + } + if(scl.indexOf(',-')!=-1 || scl.indexOf(', -')!=-1 ) + { + //top=eval('-'+top); + var dist= dist2p(left,top,box.x,box.y); + top=top; + } + + } + //shape.setAttributeNS(null,'transform', 'rotate('+(angle)+', '+centerx+', '+centery+')'); + shape.setAttributeNS(null,'transform', cadRot+union+cadScale); + + //var angleRad=angle*Math.PI/180; + + + + //dist=dist2p(x,y,left, top) ; + rotated=true; + + } + //left=left-box.x; + //top=top-box.y; + //left = centerx-left; + //top = centery-top; + + contmove++; + + if (shape.tagName == 'rect'){ + /* var dudy= shape.parentNode; + if(dudy.tagName=='g'){ + document.forms[0].code.value= 'this g ============ '; + shape.setAttributeNS(null, 'x', left); + shape.setAttributeNS(null, 'y', top); + + dudy.setAttributeNS(null, 'x', left); + dudy.setAttributeNS(null, 'y', top); + dudy.childNodes[0].setAttributeNS(null, 'x', left); + dudy.childNodes[0].setAttributeNS(null, 'y', top); + + }else{ + //document.forms[0].code.value= box.x+' '+box.y+' formX Y'+ fromX+'_'+fromY+' left '+left+'_'+top+'=============='; + //document.forms[0].code.value+= tran+' rot '+ angle+'_'+x+'_'+y+' dist '+dist; + if(rotated){ + //shape.setAttributeNS(null, 'x', box.x*Math.cos(angleRad)) ; + //shape.setAttributeNS(null, 'y', box.y*Math.sin(angleRad)) ; + shape.setAttributeNS(null, 'x', left); + shape.setAttributeNS(null, 'y', top); + + + }else{ + */ + shape.setAttributeNS(null, 'x', left); + shape.setAttributeNS(null, 'y', top); + //} + //$('option_rect_trx').value= left; + //$('option_rect_try').value= top; + // var h=shape.getAttributeNS(null, 'height'); + //var w=shape.getAttributeNS(null, 'width'); + //document.forms[0].code.value= h+' '+w; + //} + } + if (shape.tagName == 'g') + { + //this.editor.log(shape.tagName+' =============='); + + shape.setAttributeNS(null, 'x', left); + shape.setAttributeNS(null, 'y', top); + shape.childNodes[0].setAttributeNS(null, 'x', left + 'px'); + shape.childNodes[0].setAttributeNS(null, 'y', top + 'px'); + shape.childNodes[1].setAttributeNS(null, 'x', left + 'px'); + shape.childNodes[1].setAttributeNS(null, 'y', top + 'px'); + + } + if (shape.tagName == 'image'){ + shape.setAttributeNS(null, 'x',left + 'px'); + shape.setAttributeNS(null, 'y', top + 'px'); + //$('option_img_trx').value= left; + //$('option_img_try').value= top; + var h=shape.getAttributeNS(null, 'height'); + var w=shape.getAttributeNS(null, 'width'); + // this.editor.log( h+' '+w); + } + if (shape.tagName == 'text'){ + var size=parseFloat(shape.getAttributeNS(null, 'font-size')); + //$('code').value=size; + shape.setAttributeNS(null, 'x', left + 'px'); + shape.setAttributeNS(null, 'y', parseFloat(top+size) + 'px'); + //$('option_text_trx').value= left; + //$('option_text_try').value= top; + + } + if (shape.tagName == 'line'){ + var deltaX = shape.getBBox().width; + var deltaY = shape.getBBox().height; + shape.setAttributeNS(null, 'x1', left + 'px'); + shape.setAttributeNS(null, 'y1', top + 'px'); + + shape.setAttributeNS(null, 'x2', left + deltaX + 'px'); + shape.setAttributeNS(null, 'y2', top + deltaY + 'px'); + //$('option_line_trx').value= left; + //$('option_line_try').value= top; + + } + if (shape.tagName == 'ellipse'){ + var putx=left + (shape.getBBox().width / 2) + var puty= top + (shape.getBBox().height / 2) + shape.setAttributeNS(null, 'cx', putx + 'px'); + shape.setAttributeNS(null, 'cy', puty + 'px'); + //$('option_ellipse_trx').value= putx; + //$('option_ellipse_try').value= puty; + + } + if (shape.tagName == 'path' || shape.tagName == 'polyline' ) { + + if(contmove==1){ + xshe=left; + yshe=top; + } + var path=shape.getAttributeNS(null, 'd'); + path=path.replace(/, /g, ','); + path=path.replace(/ ,/g, ','); + var ps =path.split(" ") + var pcc = ""; + var point =ps[0].split(","); + + + var num0= parseFloat(point[0].substring(1)); + var num1= parseFloat(point[1]); + + var ang= ang2v(box.x,box.y,left,top) ; + var angle = Math.round((ang/Math.PI* 2)* 360); + var angx = Math.cos(ang); + var angy = Math.sin(ang); + var dist= dist2p(left,top,box.x,box.y); + var xinc=dist*angx; + var yinc=dist*angy; + var re = /^[-]?\d*\.?\d*$/; + for(var i = 0; i < ps.length; i++) + { + if(ps[i].indexOf(',')>0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + if(char1=='A' || char1=='a'){isArc=true; contArc=0;} + if(isArc==true){contArc++} + if(contArc==4){contArc=0; isArc=false} + + //if (isNaN(valnum)) + if (!char1.match(re)) + { + var num0= parseFloat(point[0].substring(1)); + var text=char1; + }else{ + if(isArc==true && contArc==2 ) + { + var num0= point[0]; + }else{ + var num0= parseFloat(point[0]); + } + var text=''; + + } + + + if(isArc==true && contArc==2) + { + point[1]= point[1].toString() ; + } + else + { + + num0+=xinc; + point[1]= parseFloat(point[1]); + point[1]+=yinc; + + } + var cx=num0; + + var cy=point[1]; + pcc+=text+cx+','+cy+' '; + }else{ + pcc+=ps[i]+' '; + } + } + + shape.setAttributeNS(null,'d', pcc); + + } + + +//$('status').innerHTML=typeTransform+': '+left+' '+top; +//$('option_select_trx').value= left; +//$('option_select_try').value= top; + + + +}; + + + +SVGRenderer.prototype.track = function(shape) { + // TODO +}; + + +SVGRenderer.prototype.clic = function(shape) { + var end=''; + if(data_path_close==true){end='z';} + var maxcont=setPoints.length; + var thispath='M'+setPoints[0]+' '; + $('someinfo').value=maxcont; + + for(var conta=1;conta< maxcont;conta++){ + thispath+='L'+setPoints[conta]+' '; + } + //var pointshape=shape.getAttributeNS(null,"d"); + //shape.setAttributeNS(null,'d',thispath+end); + var path=thispath+end; + + shape.setAttributeNS(null,'d',path); + $('control_codebase').value=path; + +} + + +SVGRenderer.prototype.resize = function(shape, fromX, fromY, toX, toY) { + var deltaX = toX - fromX; + var deltaY = toY - fromY; + + /* if (lineColor.length == 0){lineColor = 'none';} + if (fillColor.length == 0){fillColor = 'none';} + shape.style.fill = fillColor; + shape.style.stroke = lineColor; + shape.style.strokeWidth = lineWidth; + shape.style.fillOpacity = fillOpac; + shape.style.strokOpacity = lineOpac; + */ + if (shape.tagName == 'rect' ) + { + + + if (deltaX < 0) { + shape.setAttributeNS(null, 'x', toX + 'px'); + shape.setAttributeNS(null, 'width', -deltaX + 'px'); + } + else + { + shape.setAttributeNS(null, 'width', deltaX + 'px'); + } + + if (deltaY < 0) + { + shape.setAttributeNS(null, 'y', toY + 'px'); + shape.setAttributeNS(null, 'height', -deltaY + 'px'); + } + else + { + shape.setAttributeNS(null, 'height', deltaY + 'px'); + } + /*shape.style.fill = fillColor; + shape.style.stroke = lineColor; + shape.style.strokeWidth = lineWidth; + shape.style.fillOpacity = fillOpac; + shape.style.strokOpacity = lineOpac; + */ + + } + + /* if ( shape.tagName == 'simage' ) + { + var img=shape.firstChild;//nodeName;//nodparseFloatue;//nodes.item(0); + //alert(img); + if (deltaX < 0) { + shape.setAttributeNS(null, 'x', parseFloat(toX) + 'px'); + shape.setAttributeNS(null, 'width', parseFloat(-deltaX) + 'px'); + + } + else + { + shape.setAttributeNS(null, 'width', parseFloat(deltaX) + 'px'); + } + + if (deltaY < 0) + { + shape.setAttributeNS(null, 'y', parseFloat(toY) + 'px'); + shape.setAttributeNS(null, 'height', parseFloat(-deltaY) + 'px'); + } + else + { + shape.setAttributeNS(null, 'height', parseFloat(deltaY) + 'px'); + } + var h=shape.getAttributeNS(null, 'height'); + var w=shape.getAttributeNS(null, 'width'); + document.forms[0].code.value= h+' '+w; + + + + }*/ + if (shape.tagName == 'g' || shape.tagName == 'image') + { + + + if (deltaX < 0) + { + shape.setAttributeNS(null, 'x', parseFloat(toX) + 'px' ); + shape.setAttributeNS(null, 'width', parseFloat(-deltaX) + 'px'); + + + } + else + { + shape.setAttributeNS(null, 'width', parseFloat(deltaX) + 'px'); + } + + if (deltaY < 0) + { + shape.setAttributeNS(null, 'y', parseFloat(toY) + 'px'); + shape.setAttributeNS(null, 'height', parseFloat(-deltaY) + 'px' ); + } + else + { + shape.setAttributeNS(null, 'height', parseFloat(deltaY) + 'px'); + + } + + } + if (shape.tagName == 'ellipse') { + if (deltaX < 0) { + shape.setAttributeNS(null, 'cx', (fromX + deltaX / 2) + 'px'); + shape.setAttributeNS(null, 'rx', (-deltaX / 2) + 'px'); + } + else { + shape.setAttributeNS(null, 'cx', (fromX + deltaX / 2) + 'px'); + shape.setAttributeNS(null, 'rx', (deltaX / 2) + 'px'); + } + + if (deltaY < 0) { + shape.setAttributeNS(null, 'cy', (fromY + deltaY / 2) + 'px'); + shape.setAttributeNS(null, 'ry', (-deltaY / 2) + 'px'); + } + else { + shape.setAttributeNS(null, 'cy', (fromY + deltaY / 2) + 'px'); + shape.setAttributeNS(null, 'ry', (deltaY / 2) + 'px'); + } + } + if (shape.tagName == 'line') { + shape.setAttributeNS(null, 'x2', toX); + shape.setAttributeNS(null, 'y2', toY); + } + if (shape.tagName == 'polyline') { + + xpArray.push(toX); + ypArray.push(toY); + var thispath=''+xpArray[1]+','+ypArray[1]; + var thispath1=''; + var thispath2=''; + var maxcont=xpArray.length; + + for(var conta=2;conta< maxcont;conta++){ + thispath1+=' '+xpArray[conta]+' '+ypArray[conta]; + thispath2+=' '+xpArray[conta]+', '+ypArray[conta]; + + } + + + shape.setAttributeNS(null,'points',thispath+thispath1); + + + } + + if (shape.tagName == 'path') { + + if (selectmode == 'controlpath') + { + var end=''; + if(data_path_close==true){end='z';} + + var thispath='M'+setPoints[0]+' '; + var maxcont=setPoints.length; + + for(var conta=1;conta< maxcont;conta++){ + thispath+='L'+setPoints[conta]+' '; + + + } + var path=thispath+'L'+toX+','+toY+end; + //var pointshape=shape.getAttributeNS(null,"d"); + shape.setAttributeNS(null,'d',path); + document.forms[0].control_codebase.value=path; + } + else + { + + xpArray.push(toX); + ypArray.push(toY); + + var thispath=''+xpArray[1]+','+ypArray[1]; + var thispath1=''; + var thispath2=''; + var maxcont=xpArray.length; + + for(var conta=2;conta< maxcont;conta++){ + //thispath1+=' '+xpArray[conta]+' '+ypArray[conta]; + thispath2+=' '+xpArray[conta]+','+ypArray[conta]; + //if((conta+2)%3==0){thispath2+=' C';} + } + var end=''; + if(data_path_close==true){end='z';} + shape.setAttributeNS(null,'d','M '+thispath+ ' L'+thispath2+end); + + + + /* + + var pointshape=shape.getAttributeNS(null,"points"); + var thispoint=' '+toX+' '+toY; + $('status').innerHTML =pointshape; + shape.setAttributeNS(null,'points',pointshape+thispoint) + shape.setAttributeNS(null, 'stroke-width', "25"); + shape.setAttributeNS(null, 'fill', "#FFFF00"); + + //shape.points.push(toX); + //shape.points.push(toY); + //shape.setAttribute("points",pointshape+); + // var maxcont=xpArray.length-1; + var thispath=''+xpArray[1]+','+ypArray[1]; + var maxcont=xpArray.length; + //alert(maxcont); + for(var conta=2;conta< maxcont;conta++){ + thispath+=','+xpArray[conta]+','+ypArray[conta]; + } + //alert(shape.points[1]); + //shape.setAttribute("points",thispath); + //points.Value = thispath; + var thispath=''+xpArray[1]+','+ypArray[1]; + var maxcont=xpArray.length; + //alert(maxcont); + for(var conta=1;conta< maxcont;conta++){ + thispath+=','+xpArray[conta]+','+ypArray[conta]; + } + + shape.points.Value = thispath; + */ + + + + + /* + + + //this.renderer.move(this.selected, this.selectedBounds.x + deltaX, this.selectedBounds.y + deltaY); + // shape.setAttributeNS(null,'transform', "translate("+(toX)+","+(toy)+")"); + + + + var thispath=''+xpArray[0]+','+ypArray[0]; + var maxcont=xpArray.length; + //shape.setAttributeNS(null,'transform', "translate("+toX+","+toY+")"); + for(var conta=1;conta< maxcont;conta++){ + thispath+=','+xpArray[conta]+','+ypArray[conta]; + } + + shape.setAttributeNS(null, 'x', toX); + shape.setAttributeNS(null, 'y', toY); + shape.setAttributeNS(null, 'points', thispath); + */ + } + } + if (shape == 'text') {} + +}; +SVGRenderer.prototype.tocurve = function() +{ + var points=$('control_codebase').value.split('L'); + var chain=''; + chain+=points[0]+'C'; + var numpoints=points.length-1; + for(var a=1;a=0) + { + + } + else + { + if(mystyle!= null){ + //var estilo=shape.getAttribute('style'); + var data; + + var estilo=generateJSON(mystyle); + eval("data="+estilo); + //var data=eval('"'+estilo+'"'); + //var data=estilo.evalJSON(); + + (data["font-size"])?shInfo.textSize=data["font-size"]:shInfo.textSize; + (data["font-family"])?shInfo.textFamily=data["font-family"]:shInfo.textFamily; + + (data.fill)?shInfo.fillColor=data.fill:shInfo.fillColor; + (data.stroke)?shInfo.lineColor=data.stroke:shInfo.lineColor; + (data.transform)?shInfo.transform=data.transform:shInfo.transform; + (data["fill-opacity"])?shInfo.fillOpac=data["fill-opacity"]:shInfo.fillOpac; + + } + + } + } + shInfo.filter = shape.getAttribute('filter') + shInfo.lineColor = shape.getAttribute('stroke') + shInfo.fillOpac = parseFloat(shape.getAttribute('fill-opacity')) + shInfo.lineOpac = parseFloat(shape.getAttribute('stroke-opacity')) + shInfo.lineWidth = parseFloat(shape.getAttribute('stroke-width')) + + var mystyle= shape.getAttribute('style'); + + if(mystyle!= null && mystyle.indexOf('=0) + { + + } + else + { + // shInfo.style=shape.getAttribute('style'); + + if(mystyle!= null){ + //var estilo=shape.getAttribute('style'); + var data; + + var estilo=generateJSON(mystyle); + eval("data="+estilo); + //var data=eval('"'+estilo+'"'); + //var data=estilo.evalJSON(); + + (data["font-size"])?shInfo.textSize=data["font-size"]:shInfo.textSize; + (data["font-family"])?shInfo.textFamily=data["font-family"]:shInfo.textFamily; + + (data.fill)?shInfo.fillColor=data.fill:shInfo.fillColor; + (data.stroke)?shInfo.lineColor=data.stroke:shInfo.lineColor; + (data.transform)?shInfo.transform=data.transform:shInfo.transform; + (data["fill-opacity"])?shInfo.fillOpac=data["fill-opacity"]:shInfo.fillOpac; + //(data.color)?shInfo.lineColor=data.color:shInfo.lineColor; + + //shInfo.fillColor=data.fill; + //document.getElementById("someinfo").value +=data.fill+' ';//estilo ;//data['fill']+' ';// + } + } + } + + + if (shape.tagName == 'rect') + { + if(shape.getAttribute('rx') || shape.getAttribute('ry')){ + shInfo.type = "rect"; + shInfo.rx = parseFloat(shape.getAttribute('rx')) + shInfo.ry = parseFloat(shape.getAttribute('rx')) + } + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + } + else if (shape.tagName == 'ellipse' || shape.tagName == 'circle') + { + if(shape.tagName == 'circle'){ + shInfo.width = parseFloat(shape.getAttribute('r'))*2; + shInfo.height = parseFloat(shape.getAttribute('r'))*2; + }else{ + shInfo.width = parseFloat(shape.getAttribute('rx'))*2; + shInfo.height = parseFloat(shape.getAttribute('ry'))*2; + } + + shInfo.left = parseFloat(shape.getAttribute('cx')) - (shInfo.width/2); + shInfo.top = parseFloat(shape.getAttribute('cy')) - (shInfo.height/2) ; + } + else if(shape.tagName == 'linearGradient') { + shInfo.text =shape.getAttribute('gradientUnits');//"userSpaceOnUse" + shInfo.left = shape.getAttribute('x1'); + shInfo.top = shape.getAttribute('y1'); + shInfo.width = shape.getAttribute('x2'); + shInfo.height = shape.getAttribute('y2'); + shInfo.href = shape.getAttribute('xlink:href'); + } + else if(shape.tagName == 'radialGradient') { + shInfo.text =shape.getAttribute('gradientUnits');//"userSpaceOnUse" + shInfo.left = shape.getAttribute('cx'); + shInfo.top = shape.getAttribute('cy'); + shInfo.width = shape.getAttribute('fx'); + shInfo.height = shape.getAttribute('fy'); + shInfo.lineWidth = shape.getAttribute('r'); + shInfo.href = shape.getAttribute('xlink:href'); + } + else if(shape.tagName == 'stop') + { + shInfo.fillColor = shape.getAttribute('stop-color'); + shInfo.fillOpac = shape.getAttribute('stop-opacity'); + shInfo.lineOpac = shape.getAttribute('offset'); + var mystyle= shape.getAttribute('style'); + if(mystyle!= null && mystyle.indexOf('=0) + { + + } + else + { + if(mystyle!= null) + { + var data; + var estilo=generateJSON(mystyle); + eval("data="+estilo); + (data["stop-color"])?shInfo.fillColor=data["stop-color"]:shInfo.fillColor; + (data["stop-opacity"])?shInfo.fillOpac=data["stop-opacity"]:shInfo.fillOpac; + //document.getElementById("someinfo").value +=data["stop-color"]+' '; + } + } + } + else if (shape.tagName == 'line') + { + shInfo.left = parseFloat(shape.getAttribute('x1')); + shInfo.top = parseFloat(shape.getAttribute('y1')); + shInfo.width = parseFloat(shape.getAttribute('x2')) -shInfo.left; + shInfo.height = parseFloat(shape.getAttribute('y2')) -shInfo.top; + } + else if (shape.tagName == 'polyline' || shape.tagName == 'polygon') + { + shInfo.points = shape.getAttribute('points'); + } + + else if (shape.tagName == 'g') + { + shInfo.type = "group"; + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.fillColor = shape.getAttribute('fill'); + if(shape.getAttribute('id')==null || shape.getAttribute('id')=='') + { + var nid='shape:' + createUUID(); + shape.setAttributeNS(null, 'id', nid); + shInfo.id=shape.getAttribute('id'); + } + + } + else if (shape.tagName == 'path') + { + shInfo.points = shape.getAttribute('d'); + //shInfo.transform = shape.getAttribute('transform'); + + //alert(shInfo.transform); + //document.forms[0].codebase.value=shape.getAttribute('d'); + + } + else if (shape.tagName == 'pattern') + { + + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.viewBox = shape.getAttribute('viewBox'); + + if(shape.getAttribute('id')==null || shape.getAttribute('id')=='') + { + var nid='shape:' + createUUID(); + shape.setAttributeNS(null, 'id', nid); + shInfo.id=shape.getAttribute('id'); + } + + } + else if (shape.tagName == 'image') + { + + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.fillOpac = parseFloat(shape.getAttribute('opacity')); + shInfo.href = shape.getAttribute('href'); + + } + else if (shape.tagName == 'use') + { + + shInfo.href = shape.getAttribute('xlink:href'); + + } + if(shape.parentNode.tagName != 'svg'){ + //shInfo.width = parseFloat(shape.getAttribute('width')); + //shInfo.height = parseFloat(shape.getAttribute('height')); + //shInfo.viewBox = shape.getAttribute('viewBox'); + shInfo.parent=shape.parentNode.getAttribute('id'); + + } + + return shInfo; + }else{ + //do nothing if its the tracker + } + + + +}; + +SVGRenderer.prototype.info01 = function(shape) +{ + var shInfo = {}; +if(shape.id != "tracker"){ + //shInfo.id = shape.id.substr(6); + shInfo.id =shape.getAttribute('id'); + shInfo.type = shape.tagName; + + if(shape.tagName=='svg') + { + shInfo.type ='doc' + shInfo.left = parseFloat(shape.getAttribute('x')); + shInfo.top = parseFloat(shape.getAttribute('y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.viewBox = shape.getAttribute('viewBox'); + shInfo.bgcolor=this.container.style.backgroundColor; + } + + if (shape.hasAttributeNS(null,'transform')) { + shInfo.transform = shape.getAttribute('transform'); + }else{ + shInfo.transform =''; + } + + if(shape.tagName == "text"){ + + shInfo.textFamily = shape.getAttribute('font-family') + shInfo.textSize = parseInt(shape.getAttribute('font-size')) + shInfo.top = parseFloat(shape.getAttribute('y')) + shInfo.left = parseFloat(shape.getAttribute('x')) + shInfo.text = shape.textContent + shInfo.lineWidth = parseFloat(shape.getAttribute('stroke-width')) + + //shInfo.text = shape.nodparseFloatue; + } + var styled=true; + if(shape.tagName =='image'){styled=false;} + if(shape.tagName =='g'){styled=false;} + if(shape.tagName =='stop'){styled=false;} + if(shape.tagName =='svg'){styled=false;} + if(styled) + { + shInfo.fillColor = shape.getAttribute('fill') + shInfo.lineColor = shape.getAttribute('stroke') + shInfo.fillOpac = parseFloat(shape.getAttribute('fill-opacity')) + shInfo.lineOpac = parseFloat(shape.getAttribute('stroke-opacity')) + shInfo.lineWidth = parseFloat(shape.getAttribute('stroke-width')) + + var mystyle= shape.getAttribute('style'); + + if(mystyle!= null && mystyle.indexOf('=0) + { + + } + else + { + // shInfo.style=shape.getAttribute('style'); + + if(mystyle!= null){ + //var estilo=shape.getAttribute('style'); + var data; + + var estilo=generateJSON(mystyle); + eval("data="+estilo); + //var data=eval('"'+estilo+'"'); + //var data=estilo.evalJSON(); + + (data["font-size"])?shInfo.textSize=data["font-size"]:shInfo.textSize; + (data["font-family"])?shInfo.textFamily=data["font-family"]:shInfo.textFamily; + + (data.fill)?shInfo.fillColor=data.fill:shInfo.fillColor; + (data.stroke)?shInfo.lineColor=data.stroke:shInfo.lineColor; + (data.transform)?shInfo.transform=data.transform:shInfo.transform; + (data["fill-opacity"])?shInfo.fillOpac=data["fill-opacity"]:shInfo.fillOpac; + //shInfo.fillColor=data.fill; + //document.getElementById("someinfo").value +=data.fill+' ';//estilo ;//data['fill']+' ';// + } + } + } + + + if (shape.tagName == 'rect') + { + if(shape.getAttribute('rx') || shape.getAttribute('ry')){ + shInfo.type = "rect"; + shInfo.rx = parseFloat(shape.getAttribute('rx')) + shInfo.ry = parseFloat(shape.getAttribute('rx')) + } + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + } + else if (shape.tagName == 'ellipse' || shape.tagName == 'circle') + { + if(shape.tagName == 'circle'){ + shInfo.width = parseFloat(shape.getAttribute('r'))*2; + shInfo.height = parseFloat(shape.getAttribute('r'))*2; + }else{ + shInfo.width = parseFloat(shape.getAttribute('rx'))*2; + shInfo.height = parseFloat(shape.getAttribute('ry'))*2; + } + + shInfo.left = parseFloat(shape.getAttribute('cx')) - (shInfo.width/2); + shInfo.top = parseFloat(shape.getAttribute('cy')) - (shInfo.height/2) ; + } + else if(shape.tagName == 'linearGradient') { + shInfo.left = (shape.getAttribute( 'x1')); + shInfo.top = parseFloat(shape.getAttribute( 'y1')); + shInfo.width = parseFloat(shape.getAttribute('x2')); + shInfo.height = parseFloat(shape.getAttribute('y2')); + + } + else if(shape.tagName == 'stop') { + shInfo.fillColor = shape.getAttribute('stop-color'); + shInfo.fillOpac = shape.getAttribute('stop-opacity'); + shInfo.lineOpac = shape.getAttribute('offset'); + var mystyle= shape.getAttribute('style'); + if(mystyle!= null && mystyle.indexOf('=0) + { + + } + else + { + if(mystyle!= null){ + var data; + var estilo=generateJSON(mystyle); + eval("data="+estilo); + (data["stop-color"])?shInfo.fillColor=data["stop-color"]:shInfo.fillColor; + (data["stop-opacity"])?shInfo.fillOpac=data["stop-opacity"]:shInfo.fillOpac; + document.getElementById("someinfo").value +=data["stop-color"]+' '; + } + + } + } + else if (shape.tagName == 'line') + { + shInfo.left = parseFloat(shape.getAttribute('x1')); + shInfo.top = parseFloat(shape.getAttribute('y1')); + shInfo.width = parseFloat(shape.getAttribute('x2')) -shInfo.left; + shInfo.height = parseFloat(shape.getAttribute('y2')) -shInfo.top; + } + else if (shape.tagName == 'polyline') + { + shInfo.points = shape.getAttribute('points'); + } + else if (shape.tagName == 'g') + { + shInfo.type = "group"; + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.fillColor = shape.getAttribute('fill') + + } + else if (shape.tagName == 'path') + { + shInfo.points = shape.getAttribute('d'); + //shInfo.transform = shape.getAttribute('transform'); + + //alert(shInfo.transform); + //document.forms[0].codebase.value=shape.getAttribute('d'); + + } + else + + + if (shape.tagName == 'image') + { + + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.fillOpac = parseFloat(shape.getAttribute('opacity')); + shInfo.href = shape.getAttribute('href'); + + } + if(shape.parentNode.tagName != 'svg'){ + //shInfo.width = parseFloat(shape.getAttribute('width')); + //shInfo.height = parseFloat(shape.getAttribute('height')); + //shInfo.viewBox = parseFloat(shape.getAttribute('viewBox')); + shInfo.parent=shape.parentNode.getAttribute('id'); + + } + return shInfo; + }else{ + //do nothing if its the tracker + } + + + +}; +SVGRenderer.prototype.info01 = function(shape) +{ + +var shInfo = {}; +if(shape.id != "tracker"){ +shInfo.id = shape.id.substr(6); + shInfo.type = shape.tagName; + if (shape.hasAttributeNS(null,'transform')) { + shInfo.transform = shape.getAttribute('transform'); + }else{ + shInfo.transform =''; + } + + + //if(shape.tagName !='image') + // { + shInfo.fillColor = shape.getAttribute('fill') + shInfo.lineColor = shape.getAttribute('stroke') + shInfo.fillOpac = parseFloat(shape.getAttribute('fill-opacity')) + shInfo.lineOpac = parseFloat(shape.getAttribute('stroke-opacity')) + shInfo.lineWidth = parseFloat(shape.getAttribute('stroke-width')) + // } + + + if (shape.tagName == 'rect') + { + if(shape.getAttribute('rx') || shape.getAttribute('ry')){ + shInfo.type = "roundrect"; + shInfo.rx = parseFloat(shape.getAttribute('rx')) + shInfo.ry = parseFloat(shape.getAttribute('rx')) + } + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + } + else if (shape.tagName == 'ellipse') + { + shInfo.width = parseFloat(shape.getAttribute('rx'))*2; + shInfo.height = parseFloat(shape.getAttribute('ry'))*2; + shInfo.left = parseFloat(shape.getAttribute('cx')) - (shInfo.width/2); + shInfo.top = parseFloat(shape.getAttribute('cy')) - (shInfo.height/2) ; + + } + else if (shape.tagName == 'line') + { + shInfo.left = parseFloat(shape.getAttribute('x1')); + shInfo.top = parseFloat(shape.getAttribute('y1')); + shInfo.width = parseFloat(shape.getAttribute('x2')) -shInfo.left; + shInfo.height = parseFloat(shape.getAttribute('y2')) -shInfo.top; + } + else if (shape.tagName == 'polyline') + { + shInfo.points = shape.getAttribute('points'); + } + else + + if (shape.tagName == 'path') + { + shInfo.d = shape.getAttribute('d'); + //shInfo.transform = shape.getAttribute('transform'); + + //alert(shInfo.transform); + //document.forms[0].codebase.value=shape.getAttribute('d'); + + } + else + + if(shape.tagName == "text"){ + + shInfo.textFamily = shape.getAttribute('font-family') + shInfo.textSize = parseInt(shape.getAttribute('font-size')) + shInfo.top = parseFloat(shape.getAttribute('y')) + shInfo.left = parseFloat(shape.getAttribute('x')) + shInfo.text = shape.textContent + shInfo.lineWidth = parseFloat(shape.getAttribute('stroke-width')) + + //shInfo.text = shape.nodparseFloatue; + } + else + + if (shape.tagName == 'image') + { + + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.fillOpac = parseFloat(shape.getAttribute('opacity')); + shInfo.href = shape.getAttribute('href'); + + } + + return shInfo; + }else{ + //do nothing if its the tracker + } + + +} + + + + + +SVGRenderer.prototype.transformShape = function(shape,data,transform) +{ + var svgNamespace = 'http://www.w3.org/2000/svg'; + var xlinkNS="http://www.w3.org/1999/xlink"; + // + + if(shape.tagName == 'rect') + { + var box = shape.getBBox(); + var sdata=data.split(';'); + + //alert(data[0]); + shape.setAttributeNS(null,'x',parseFloat(sdata[0])); + shape.setAttributeNS(null,'y',parseFloat(sdata[1])); + shape.setAttributeNS(null, 'width', parseFloat(sdata[2])); + shape.setAttributeNS(null, 'height', parseFloat(sdata[3])); + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.setAttributeNS(null, 'transform','rotate('+parseFloat(sdata[4])+','+centerx+','+centery+')'); + + //shape.nodparseFloatue=data; + } + else + if(shape.tagName == 'text') + { + if(data.indexOf('<;>',0)==-1 ) + { + shape.textContent = data; + } + else + { + var sdata=data.split('<;>'); //????????? + shape.textContent = sdata[0]; + shape.setAttributeNS(null,'font-size',parseFloat(sdata[1])); + shape.setAttributeNS(null,'font-family',sdata[2]); + } + //shape.nodparseFloatue=data; + } + else + if (shape.tagName == 'polyline') + { + shape.setAttributeNS(null,'points',data); + } + else + if (shape.tagName == 'image') + { + //alert(data); + if(data.indexOf(';',0)==-1 ) + { + shape.setAttributeNS(xlinkNS,'href',data); + } + else + { + var box = shape.getBBox(); + var sdata=data.split(';'); + shape.setAttributeNS(null,'x',parseFloat(sdata[0])); + shape.setAttributeNS(null,'y',parseFloat(sdata[1])); + shape.setAttributeNS(null, 'width', parseFloat(sdata[2])); + shape.setAttributeNS(null, 'height',parseFloat(sdata[3])); + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.setAttributeNS(null, 'transform',' rotate('+parseFloat(sdata[4])+','+centerx+','+centery+')'); + + + } + + } + else + if (shape.tagName == 'path') + { + if(data.indexOf(';',0)==-1 ) + { + shape.setAttributeNS(null, 'd', data); + shape.setAttributeNS(null, 'transform', transform); + } + else + { + var box = shape.getBBox(); + var sdata=data.split(';'); + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.setAttributeNS(null, 'transform','scale('+parseFloat(sdata[2])+','+parseFloat(sdata[3])+')'+' rotate('+parseFloat(sdata[4])+','+centerx+','+centery+')'+' translate('+parseFloat(sdata[0])+','+parseFloat(sdata[1])+')'); + + + } + } + + +} +SVGRenderer.prototype.editShape = function(shape,data) +{ + if(shape.tagName == 'text'){ + shape.textContent = data + }else + if (shape.tagName == 'polyline') + { + shape.setAttributeNS(null,'points',data); + } + else + + if (shape.tagName == 'path') + { + shape.setAttributeNS(null, 'd', data); + + } + +} +SVGRenderer.prototype.editCommand = function(shape, cmd, value) +{ + if (shape != null) { + if (cmd == 'fillcolor') { + if (value != '') + shape.setAttributeNS(null, 'fill', value); + else + shape.setAttributeNS(null, 'fill', 'none'); + } + else if (cmd == 'linecolor') { + if (value != '') + shape.setAttributeNS(null, 'stroke', value); + else + shape.setAttributeNS(null, 'stroke', 'none'); + } + else if (cmd == 'linewidth') { + shape.setAttributeNS(null, 'stroke-width', parseInt(value) + 'px'); + } + else if (cmd == 'fillopacity') { + if(shape.tagName=='image') + { + shape.setAttributeNS(null, 'opacity', parseFloat(value)); + } + else + { + shape.setAttributeNS(null, 'fill-opacity', parseFloat(value)); + } + + } + else if (cmd == 'lineopacity') { + + shape.setAttributeNS(null, 'stroke-opacity', parseFloat(value)); + + } + + } +} + + +SVGRenderer.prototype.queryCommand = function(shape, cmd) +{ + var result = ''; + + if (shape != null) { + if (cmd == 'fillcolor') { + result = shape.getAttributeNS(null, 'fill'); + if (result == 'none') + result = ''; + } + else if (cmd == 'linecolor') { + result = shape.getAttributeNS(null, 'stroke'); + if (result == 'none') + result = ''; + } + else if (cmd == 'linewidth') { + result = shape.getAttributeNS(null, 'stroke'); + if (result == 'none') + result = ''; + else + result = shape.getAttributeNS(null, 'stroke-width'); + } + else if (cmd == 'fillopacity') { + if(shape.tagName=='image') + { + shape.setAttributeNS(null, 'opacity', parseFloat(value)); + } + else + { + shape.setAttributeNS(null, 'fill-opacity', parseFloat(value)); + } + + } + else if (cmd == 'lineopacity') { + + shape.setAttributeNS(null, 'stroke-opacity', parseFloat(value)); + + } + + } + + return result; +} + +SVGRenderer.prototype.getProperties = function(shape) +{ + var result = ''; + + if (shape != null) + { + result = shape.getAttributeNS(null, 'fill'); + if (result == 'none') + { + mefillColor.visible = 'hidden'; + mefillColor.hex = '#000000'; + filldraw=true; + setbe(1,'img_okfill'); + } + else + { + //alert(mefillColor.hex+' '+result); + mefillColor.visible = 'visible'; + mefillColor.hex = result; + var rgb=hex2rgb(result) + mefillColor.r=rgb[0]; + mefillColor.g=rgb[1]; + mefillColor.b=rgb[2]; + filldraw=false; + setbe(1,'img_okfill'); + + } + + result = shape.getAttributeNS(null, 'stroke'); + if (result == 'none') + { + mestrokeColor.visible = 'hidden'; + mestrokeColor.hex = '#000000'; + mestrokeColor.width = 0; + strokedraw=true; + setbe(2,'img_okstroke'); + + } + else + { + mestrokeColor.visible = 'visible'; + mestrokeColor.hex = result; + var rgb=hex2rgb(result) + mestrokeColor.r=rgb[0]; + mestrokeColor.g=rgb[1]; + mestrokeColor.b=rgb[2]; + strokedraw=false; + setbe(2,'img_okstroke'); + + } + + result = shape.getAttributeNS(null, 'stroke-width'); + mestrokeColor.width = result; + + result = shape.getAttributeNS(null, 'fill-opacity'); + mefillColor.opacity = result; + + result = shape.getAttributeNS(null, 'stroke-opacity'); + mestrokeColor.opacity = result; + + setProperties(); + } +} + + +SVGRenderer.prototype.showMultiSelect = function(iniX,iniY) { + var tracker = document.getElementById('trackerMultiSelect'); + if (tracker) { + this.remove(tracker); + } + + var coord=this.editor.viewInputxy; + toX=parseFloat(coord[0]); + toY=parseFloat(coord[1]); + + tracker = document.createElementNS(svgNamespace, 'rect'); + + tracker.setAttributeNS(null, 'x', iniX); + tracker.setAttributeNS(null, 'y', iniY); + tracker.setAttributeNS(null, 'width', toX); + tracker.setAttributeNS(null, 'height', toY); + tracker.setAttributeNS(null, 'fill', '#ffffff'); + tracker.setAttributeNS(null, 'stroke', 'green'); + tracker.setAttributeNS(null, 'stroke-width', widthLine); + + this.svgRoot.appendChild(tracker); +} + + +function mouseCoord() +{ + var coord=this.editor.viewInputxy; + coord[0]=parseFloat(coord[0]); + coord[1]=parseFloat(coord[1]); + return coord +} +/* +function nodeHit(node) +{ + node.addEventListener("mousemove", function(event) {nodeMove(node)}, false); + +} + +function nodeUp(node) +{ + //node.stopObserving("mousemove"); +} + +function nodeMove(node) +{ + var mypath=$('control_codebase').value; + var x= $('option_path_x').value; + var y= $('option_path_y').value; + var precoord=x+','+y; + var coord=mouseCoord(); + node.setAttributeNS(null, 'x', coord[0]-2); + node.setAttributeNS(null, 'y', coord[1]-2); + + $('option_path_x').value=parseFloat(node.getAttributeNS(null,'x'))+2; + $('option_path_y').value=parseFloat(node.getAttributeNS(null,'y'))+2; + + var cadx= $('option_path_x').value; + var cady= $('option_path_y').value; + var coord=cadx+','+cady; + var cad1=new RegExp(precoord,"g"); + + + var result=mypath.replace(cad1, coord); + + + $('control_codebase').value=result; + + $('someinfo').value=precoord; + setShape(); + + + +} +*/ + +var memoNode=null; +var memoPrevControl=new Array(); +var memoNextControl=new Array(); + +SVGRenderer.prototype.nodeMove = function(newx,newy) { + var mypath=$('control_codebase').value; + var x= $('option_path_x').value; + var y= $('option_path_y').value; + var precoord=x+','+y; + + $('option_path_x').value=newx; + $('option_path_y').value=newy; + + var cadx= newx; + var cady= newy; + + var coord=cadx+','+cady; + var cad1=new RegExp(precoord,"g"); + + + var result=mypath.replace(cad1, coord); + + + $('control_codebase').value=result; + + $('someinfo').value=precoord; + setShape(); + +} + +function drawNodeControl(svg,numId){ + + var svgNamespace = 'http://www.w3.org/2000/svg'; + var color1='#0066ff'; + // if(parseInt(memoNode.id)==a){ + + var pointprev=memoPrevControl[numId].split(','); + + var controlNode1 = document.createElementNS(svgNamespace, 'rect'); + controlNode1.setAttributeNS(null, 'x', pointprev[0]-widthLine*2); + controlNode1.setAttributeNS(null, 'y', pointprev[1]-widthLine*2); + + controlNode1.setAttributeNS(null, 'width', widthLine*4); + controlNode1.setAttributeNS(null, 'height', widthLine*4); + controlNode1.setAttributeNS(null, 'fill', color1); + controlNode1.setAttributeNS(null, 'stroke', '#000000'); + controlNode1.setAttributeNS(null, 'stroke-width', '0'); + controlNode1.setAttributeNS(null, 'id', 'controlNode1'); + controlNode1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + svg.appendChild(controlNode1); + + var pointnext=memoNextControl[numId].split(','); + + + var controlNode2 = document.createElementNS(svgNamespace, 'rect'); + controlNode2.setAttributeNS(null, 'x', pointnext[0]-widthLine*2); + controlNode2.setAttributeNS(null, 'y', pointnext[1]-widthLine*2); + + controlNode2.setAttributeNS(null, 'width', widthLine*4); + controlNode2.setAttributeNS(null, 'height', widthLine*4); + controlNode2.setAttributeNS(null, 'fill', color1); + controlNode2.setAttributeNS(null, 'stroke', '#000000'); + controlNode2.setAttributeNS(null, 'stroke-width', '0'); + controlNode2.setAttributeNS(null, 'id', 'controlNode1'); + controlNode2.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + svg.appendChild(controlNode2); + + //} + + +} + +SVGRenderer.prototype.showNodesCurve = function(path,controlNodeNum){ + memoNextControl=new Array(); + memoPrevControl=new Array(); + var widthLine=this.editor.unit; + var svgNamespace = 'http://www.w3.org/2000/svg'; + // tracker = document.createElementNS(svgNamespace, 'g'); + var svg = this.container.ownerDocument.createElementNS(svgNamespace, 'g'); + svg.setAttributeNS(null, 'id', 'editNodesPath'); + + /* var group = document.getElementById('editNodesPath'); + if (group) + { + this.remove(group); + } + */ + + var points=path.split(' '); + var chain=''; + var segment=' '; + prevControl=' '; + nextControl=' '; + nodePoint=' '; + var init=points[0].split('M'); + var allcoords=init[1].split(' '); + var point=allcoords[0].split(','); + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'x', point[0]-widthLine*2); + rect1.setAttributeNS(null, 'y', point[1]-widthLine*2); + + rect1.setAttributeNS(null, 'width', widthLine*4); + rect1.setAttributeNS(null, 'height', widthLine*4); + rect1.setAttributeNS(null, 'fill', '#ff7700'); + rect1.setAttributeNS(null, 'stroke', '#000000'); + rect1.setAttributeNS(null, 'stroke-width', '0'); + rect1.setAttributeNS(null, 'id', '0'); + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'stroke-width', 1 ); }, false); + rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'stroke-width', 0 );}, false); + + svg.appendChild(rect1); + + if(controlNodeNum==0){ var color='#ffff00';} + if(controlNodeNum==1){var color='#00ffff';} + if(controlNodeNum==2){var color='#00cc00';} + var color1='#ffff00'; + + var numpoints=points.length-1; + var recalls=''; + var re = /^[-]?\d*\.?\d*$/; + for(var a=1;a<=numpoints;a++) + { + + var ini=points[a].substring(0,1); + if (!ini.match(re)) + { + var end=points[a].substring(1); + color='#0000ff'; + if(ini=='L' || ini=='M') + { + color='#ffff00'; + } + + if(ini=='C') + { + recall=a+2; + //color='#ffff00'; + } + + }else + { + var end=points[a]; + var ini=''; + color='#ff00ff'; + if(a==recall) + { + color='#ffff00'; + } + } + + + //segment=points[a].split(','); + prevControl=segment[0]+' '; + nextControl=segment[1]+' '; + nodePoint=segment[2]+' '; + memoPrevControl[a]=prevControl; + memoNextControl[a]=nextControl; + if(controlNodeNum==0){chain+=prevControl; var point=prevControl.split(',');} + if(controlNodeNum==1){chain+=nextControl; var point=nextControl.split(',');} + if(controlNodeNum==2){chain+=nodePoint; var point=nodePoint.split(',');} + if(controlNodeNum==3){chain+=nodePoint; var point=nodePoint.split(',');} + + + //if (isNaN(valnum)) + + //if(ini=='C'){color='#ff00ff';} + + var point=end.split(','); + if(memoNode!=null){ + } + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'x', point[0]-widthLine*2); + rect1.setAttributeNS(null, 'y', point[1]-widthLine*2); + + rect1.setAttributeNS(null, 'width', widthLine*4); + rect1.setAttributeNS(null, 'height', widthLine*4); + rect1.setAttributeNS(null, 'fill', color); + rect1.setAttributeNS(null, 'stroke', '#000000'); + rect1.setAttributeNS(null, 'stroke-width', '0'); + rect1.setAttributeNS(null, 'id', ''+a); + rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );}drawNodeControl(svg,this.getAttributeNS(null,'id')); memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + // rect1.addEventListener("mousedown", function(event) {nodeHit(this);if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; document.forms[0].option_path_x.focus(); }, false); + //rect1.addEventListener("mousedown", function(event) { if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} nodeHit(this); memoNode=this;this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + //rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} addControlPoints(segment[0],segment[1],svg); memoNode=this; this.setAttributeNS(null, 'fillColor', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + //rect1.addEventListener("mouseup", function(event) {nodeUp(this); }, false); + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'fillColor', '#ffcc00' ); }, false); + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'fillColor', '#00cc00' ); }, false); + + + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'stroke-width', 0 ); }, false); + + svg.appendChild(rect1); + + } + var info=''; + + if(controlNodeNum==0){info='prev Control'} + if(controlNodeNum==1){info='next Control'} + if(controlNodeNum==2){info='points node'} + // $('someinfo').value=numpoints+ ' '+info+':'+ chain; + $('someinfo').value='Crtl+Arrow to move'; + //return chain; + + + //this.svgRoot.appendChild(svg); + + return svg; + +}; + +SVGRenderer.prototype.showNodesCurve1 = function(path,controlNodeNum){ + memoNextControl=new Array(); + memoPrevControl=new Array(); + var svgNamespace = 'http://www.w3.org/2000/svg'; + // tracker = document.createElementNS(svgNamespace, 'g'); + var svg = this.container.ownerDocument.createElementNS(svgNamespace, 'g'); + svg.setAttributeNS(null, 'id', 'editNodesPath'); + + /* var group = document.getElementById('editNodesPath'); + if (group) + { + this.remove(group); + } + */ + + var points=path.split('C'); + var chain=''; + var segment=' '; + prevControl=' '; + nextControl=' '; + nodePoint=' '; + var init=points[0].split('M'); + var allcoords=init[1].split(' '); + var point=allcoords[0].split(','); + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'x', point[0]-2); + rect1.setAttributeNS(null, 'y', point[1]-2); + + rect1.setAttributeNS(null, 'width', 4); + rect1.setAttributeNS(null, 'height', 4); + rect1.setAttributeNS(null, 'fill', '#ff7700'); + rect1.setAttributeNS(null, 'stroke', '#000000'); + rect1.setAttributeNS(null, 'stroke-width', '0'); + rect1.setAttributeNS(null, 'id', '0'); + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'stroke-width', 1 ); }, false); + rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'stroke-width', 0 );}, false); + + svg.appendChild(rect1); + + if(controlNodeNum==0){ var color='#ffff00';} + if(controlNodeNum==1){var color='#00ffff';} + if(controlNodeNum==2){var color='#00cc00';} + var color1='#ffff00'; + + var numpoints=points.length-1; + for(var a=1;a<=numpoints;a++) + { + + + + segment=points[a].split(' '); + prevControl=segment[0]+' '; + nextControl=segment[1]+' '; + nodePoint=segment[2]+' '; + memoPrevControl[a]=prevControl; + memoNextControl[a]=nextControl; + if(controlNodeNum==0){chain+=prevControl; var point=prevControl.split(',');} + if(controlNodeNum==1){chain+=nextControl; var point=nextControl.split(',');} + if(controlNodeNum==2){chain+=nodePoint; var point=nodePoint.split(',');} + if(controlNodeNum==3){chain+=nodePoint; var point=nodePoint.split(',');} + + if(memoNode!=null){ + } + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'x', point[0]-2); + rect1.setAttributeNS(null, 'y', point[1]-2); + + rect1.setAttributeNS(null, 'width', 4); + rect1.setAttributeNS(null, 'height', 4); + rect1.setAttributeNS(null, 'fill', color); + rect1.setAttributeNS(null, 'stroke', '#000000'); + rect1.setAttributeNS(null, 'stroke-width', '0'); + rect1.setAttributeNS(null, 'id', ''+a); + rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );}drawNodeControl(svg,this.getAttributeNS(null,'id')); memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + // rect1.addEventListener("mousedown", function(event) {nodeHit(this);if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; document.forms[0].option_path_x.focus(); }, false); + //rect1.addEventListener("mousedown", function(event) { if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} nodeHit(this); memoNode=this;this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + //rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} addControlPoints(segment[0],segment[1],svg); memoNode=this; this.setAttributeNS(null, 'fillColor', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + //rect1.addEventListener("mouseup", function(event) {nodeUp(this); }, false); + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'fillColor', '#ffcc00' ); }, false); + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'fillColor', '#00cc00' ); }, false); + + + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'stroke-width', 0 ); }, false); + + svg.appendChild(rect1); + + } + var info=''; + + if(controlNodeNum==0){info='prev Control'} + if(controlNodeNum==1){info='next Control'} + if(controlNodeNum==2){info='points node'} + // $('someinfo').value=numpoints+ ' '+info+':'+ chain; + $('someinfo').value='Crtl+Arrow to move'; + //return chain; + + + //this.svgRoot.appendChild(svg); + + return svg; + +}; +SVGRenderer.prototype.showTracker = function(shape,pathsEdit) { + + var box = shape.getBBox(); + var matrix = shape.getScreenCTM(); + var trshape= shape.getAttributeNS(null, 'transform'); + var shap=1; + var T = shape.getCTM(); + //a,b,c,d,e,f + + var widthLine=this.editor.unit; + + + + //var thisTransform = { sx: s[0], r: shape.vRotate, t: shape.vTranslate }; + //if (currentTransform != null) alert(currentTransform.t); + + if (shape.tagName == 'rect') { + + $('option_rect_rot').value= T.b* (Math.PI * 2 / 360); + $('option_rect_trx').value= box.x; + $('option_rect_try').value= box.y; + $('option_rect_sclx').value= box.width; + $('option_rect_scly').value= box.height; + + } + + if (shape.tagName == 'image'){ + $('option_img_trx').value= box.x; + $('option_img_try').value= box.y; + $('option_img_sclx').value= box.width; + $('option_img_scly').value= box.height; + $('option_img_rot').value= T.b* (Math.PI * 2 / 360); + } + if (shape.tagName == 'text'){ + //$('option_text_trx').value= box.x; + //$('option_text_try').value= box.y; + $('option_text_size').value= box.height; + /*$('option_text_sclx').value= box.width; + $('option_text_scly').value= box.height; + $('option_text_rot').value= T.b* (Math.PI * 2 / 360); + */ + } + if (shape.tagName == 'line'){ + /* + $('option_line_trx').value= box.x; + $('option_line_try').value= box.y; + */ + } + if (shape.tagName == 'ellipse'){ + /*$('option_ellipse_trx').value= putx; + $('option_ellipse_try').value= puty; + $('option_ellipse_sclx').value= box.width; + $('option_ellipse_scly').value= box.height; + $('option_ellipse_rot').value= T.b* (Math.PI * 2 / 360); + */ + } + + + + /* if (shape.getAttributeNS(null, 'transform') ) { + + + shap=2; }else{ + }*/ + var tracker = document.getElementById('tracker'); + if (tracker) { + this.remove(tracker); + } + + var svgNamespace = 'http://www.w3.org/2000/svg'; + + tracker = document.createElementNS(svgNamespace, 'g'); + tracker.setAttributeNS(null, 'id', 'tracker'); + + var controlPoints=null; + if (shape.tagName == 'path') { shap=2; + + /* $('option_path_trx').value= box.x; + $('option_path_try').value= box.y; + $('option_path_sclx').value= T.a; + $('option_path_scly').value= T.d; + $('option_path_rot').value= T.b* (Math.PI * 2 / 360); + */ + var path=shape.getAttributeNS(null, 'd'); + $('control_codebase').value=path; + + //controlPoints=this.showNodesCurve(path,0); + //controlPoints=this.showNodesCurve(path,1); + controlPoints=this.showNodesCurve(path,2); + + + /* controlPoints=this.showNodesCurve(path,1); + + tracker.appendChild(controlPoints); + + controlPoints=this.showNodesCurve(path,0); + + tracker.appendChild(controlPoints); + */ + } + + var svg = this.container.ownerDocument.createElementNS(svgNamespace, 'g'); + svg.setAttributeNS(null, 'id', 'transformSquares'); + + + //var rect = document.createElementNS(svgNamespace, 'rect'); + var border = document.createElementNS(svgNamespace, 'path'); + + var trshape='translate (0,0) rotate(0) translate(0,0) '; + var trshape_split=trshape.split(') '); + + // get_between (trshape, s1, s2) ; + if(shape.getAttributeNS(null, 'transform')){ + var trshape=shape.getAttributeNS(null, 'transform') ; + //var spl=trshape.replace(', ',' '); + //var spl1=spl.replace(')',' '); + var trshape_split=trshape.split(') '); + + + } + + var corners = []; + var point = createPoint(box.x, box.y, box.width, box.height); + //point = {x:box.x, y:box.y, width: box.width, height:box.height}; +//point = createPoint(box.x, box.y, box.width, box.height); + //1 + corners.push( createPoint(box.x + box.width, box.y, box.width, box.height) ); + point.x = box.x + box.width; + point.y = box.y; + //2 + corners.push( createPoint(box.x + box.width, box.y + box.height, box.width, box.height) ); + point.x = box.x + box.width; + point.y = box.y + box.height; + //3 + //corners.push( point.matrixTransform(matrix) ); + corners.push( createPoint(box.x , box.y + box.height, box.width, box.height) ); + point.x = box.x; + point.y = box.y + box.height; + //4 + corners.push( createPoint(box.x + box.width, box.y, box.width, box.height) ); + + var max = createPoint(corners[0].x, corners[0].y); + var min = createPoint(corners[0].x, corners[0].y); + + // identify the new corner coordinates of the + // fully transformed bounding box + for (var i = 1; i < corners.length; i++) { + var x = corners[i].x; + var y = corners[i].y; + if (x < min.x) { + min.x = x; + } + else if (x > max.x) { + max.x = x; + } + if (y < min.y) { + min.y = y; + } + else if (y > max.y) { + max.y = y; + } + } + + + border.setAttributeNS(null, 'd', "M"+(min.x-(widthLine*10))+","+ (min.y-(widthLine*10))+' h'+(box.width+(widthLine*20))+','+(0)+' v'+(0)+','+(box.height+(widthLine*20))+' h'+(-box.width-(widthLine*20))+','+(0)+' z M'+(box.x+box.width+(widthLine*10))+","+ (box.y+(box.height/2)+' h'+(widthLine*25)+',0 ')); + + + border.setAttributeNS(null, 'fill', 'none'); + border.setAttributeNS(null, 'stroke', '#cccccc'); + border.setAttributeNS(null, 'stroke-width', widthLine); + +// createRect(min.x, min.y, max.x - min.x, max.y - min.y); + + var circle1 = document.createElementNS(svgNamespace, 'ellipse'); + circle1.setAttributeNS(null, 'cx', (box.x + box.width+(widthLine*40)) + 'px'); + circle1.setAttributeNS(null, 'cy', (box.y + box.height / 2) + 'px'); + circle1.setAttributeNS(null, 'rx', (widthLine*5) + 'px'); + circle1.setAttributeNS(null, 'ry', (widthLine*5) + 'px'); + circle1.setAttributeNS(null, 'fill', '#ffffff'); + circle1.setAttributeNS(null, 'stroke', 'green'); + circle1.setAttributeNS(null, 'stroke-width', widthLine); + + var circleCenter = document.createElementNS(svgNamespace, 'ellipse'); + circleCenter.setAttributeNS(null, 'cx', (box.x + (box.width/2)) + 'px'); + circleCenter.setAttributeNS(null, 'cy', (box.y + (box.height /2)) + 'px'); + circleCenter.setAttributeNS(null, 'rx', (widthLine*10) + 'px'); + circleCenter.setAttributeNS(null, 'ry', (widthLine*10) + 'px'); + circleCenter.setAttributeNS(null, 'fill', '#ffffff'); + circleCenter.setAttributeNS(null, 'stroke', 'green'); + circleCenter.setAttributeNS(null, 'stroke-width', widthLine); + + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'width', widthLine*10); + rect1.setAttributeNS(null, 'height', widthLine*10); + rect1.setAttributeNS(null, 'fill', '#ffffff'); + rect1.setAttributeNS(null, 'stroke', 'green'); + rect1.setAttributeNS(null, 'stroke-width', widthLine); + + var rect2 = document.createElementNS(svgNamespace, 'rect'); + rect2.setAttributeNS(null, 'width', widthLine*10); + rect2.setAttributeNS(null, 'height', widthLine*10); + rect2.setAttributeNS(null, 'fill', '#ffffff'); + rect2.setAttributeNS(null, 'stroke', 'green'); + rect2.setAttributeNS(null, 'stroke-width', widthLine); + + var rect3 = document.createElementNS(svgNamespace, 'rect'); + rect3.setAttributeNS(null, 'width', widthLine*10); + rect3.setAttributeNS(null, 'height', widthLine*10); + rect3.setAttributeNS(null, 'fill', '#ffffff'); + rect3.setAttributeNS(null, 'stroke', 'green'); + rect3.setAttributeNS(null, 'stroke-width', widthLine); + + var rect4 = document.createElementNS(svgNamespace, 'rect'); + rect4.setAttributeNS(null, 'width', widthLine*10); + rect4.setAttributeNS(null, 'height', widthLine*10); + rect4.setAttributeNS(null, 'fill', '#ffffff'); + rect4.setAttributeNS(null, 'stroke', 'green'); + rect4.setAttributeNS(null, 'stroke-width', widthLine); + + var rectmid12 = document.createElementNS(svgNamespace, 'rect'); + rectmid12.setAttributeNS(null, 'width', widthLine*10); + rectmid12.setAttributeNS(null, 'height', widthLine*10); + rectmid12.setAttributeNS(null, 'fill', '#ffffff'); + rectmid12.setAttributeNS(null, 'stroke', 'green'); + rectmid12.setAttributeNS(null, 'stroke-width', widthLine); + + var rectmid23 = document.createElementNS(svgNamespace, 'rect'); + rectmid23.setAttributeNS(null, 'width', widthLine*10); + rectmid23.setAttributeNS(null, 'height', widthLine*10); + rectmid23.setAttributeNS(null, 'fill', '#ffffff'); + rectmid23.setAttributeNS(null, 'stroke', 'green'); + rectmid23.setAttributeNS(null, 'stroke-width', widthLine); + + var rectmid34 = document.createElementNS(svgNamespace, 'rect'); + rectmid34.setAttributeNS(null, 'width', widthLine*10); + rectmid34.setAttributeNS(null, 'height', widthLine*10); + rectmid34.setAttributeNS(null, 'fill', '#ffffff'); + rectmid34.setAttributeNS(null, 'stroke', 'green'); + rectmid34.setAttributeNS(null, 'stroke-width', widthLine); + + var rectmid41 = document.createElementNS(svgNamespace, 'rect'); + rectmid41.setAttributeNS(null, 'width', widthLine*10); + rectmid41.setAttributeNS(null, 'height', widthLine*10); + rectmid41.setAttributeNS(null, 'fill', '#ffffff'); + rectmid41.setAttributeNS(null, 'stroke', 'green'); + rectmid41.setAttributeNS(null, 'stroke-width', widthLine); + // rect.setAttributeNS(null, 'x', box.x - widthLine*10); + // rect.setAttributeNS(null, 'y', box.y - widthLine*10); + + rect1.setAttributeNS(null, 'x', box.x - widthLine*15); + rect1.setAttributeNS(null, 'y', box.y - widthLine*15); + + + rect2.setAttributeNS(null, 'x', box.x + box.width +widthLine*5 ); + rect2.setAttributeNS(null, 'y', box.y - widthLine*15); + + rect3.setAttributeNS(null, 'x', box.x + box.width + widthLine*5 ); + rect3.setAttributeNS(null, 'y', box.y + box.height + widthLine*5); + + rect4.setAttributeNS(null, 'x', box.x - widthLine*15 ); + rect4.setAttributeNS(null, 'y', box.y + box.height + widthLine*5); + + + + rectmid12.setAttributeNS(null, 'x', box.x + (box.width/2) - widthLine*5); + rectmid12.setAttributeNS(null, 'y', box.y - widthLine*15); + + rectmid23.setAttributeNS(null, 'x', box.x + box.width + widthLine*5 ); + rectmid23.setAttributeNS(null, 'y', box.y + (box.height/2) - widthLine*5); + + rectmid34.setAttributeNS(null, 'x', box.x + (box.width/2) - widthLine*5 ); + rectmid34.setAttributeNS(null, 'y', box.y + box.height + widthLine*5); + + rectmid41.setAttributeNS(null, 'x', box.x - widthLine*15 ); + rectmid41.setAttributeNS(null, 'y', box.y + (box.height/2) - widthLine*5); + + svg.appendChild(border); + var colorin="#ff0000"; + var colorout="#ffffff" + + circle1.addEventListener("mouseover", function(event) {circle1.setAttributeNS(null, 'cursor', 's-resize'); circle1.setAttributeNS(null, 'fill', colorin ); typeTransform='Rotate'; scaleType='nw'; }, false); + circle1.addEventListener("mouseout", function(event) {circle1.setAttributeNS(null, 'cursor', 'default'); circle1.setAttributeNS(null, 'fill', colorout ); typeTransform='Rotate'; }, false); //typeTransform='rotate' + circleCenter.addEventListener("mouseover", function(event) {circleCenter.setAttributeNS(null, 'cursor', 'move'); circleCenter.setAttributeNS(null, 'fill', colorin ); typeTransform='spìnCenter'; scaleType='nw'; }, false); + circleCenter.addEventListener("mouseout", function(event) {circleCenter.setAttributeNS(null, 'cursor', 'default'); circleCenter.setAttributeNS(null, 'fill', colorout ); typeTransform=''; }, false); //typeTransform='rotate' + + + rect1.addEventListener("mouseover", function(event) {rect1.setAttributeNS(null, 'cursor', 'nw-resize'); rect1.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='nw';}, false); + rect1.addEventListener("mouseout", function(event) {rect1.setAttributeNS(null, 'cursor', 'default'); rect1.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); //typeTransform='rotate' + + rect2.addEventListener("mouseover", function(event) {rect2.setAttributeNS(null, 'cursor', 'ne-resize'); rect2.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='ne';}, false); + rect2.addEventListener("mouseout", function(event) {rect2.setAttributeNS(null, 'cursor', 'default'); rect2.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rect3.addEventListener("mouseover", function(event) {rect3.setAttributeNS(null, 'cursor', 'se-resize'); rect3.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='se';}, false); + rect3.addEventListener("mouseout", function(event) {rect3.setAttributeNS(null, 'cursor', 'default'); rect3.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rect4.addEventListener("mouseover", function(event) {rect4.setAttributeNS(null, 'cursor', 'sw-resize'); rect4.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='sw';}, false); + rect4.addEventListener("mouseout", function(event) {rect4.setAttributeNS(null, 'cursor', 'default'); rect4.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rectmid12.addEventListener("mouseover", function(event) {rectmid12.setAttributeNS(null, 'cursor', 'n-resize'); rectmid12.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='n';}, false); + rectmid12.addEventListener("mouseout", function(event) {rectmid12.setAttributeNS(null, 'cursor', 'default'); rectmid12.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rectmid23.addEventListener("mouseover", function(event) {rectmid23.setAttributeNS(null, 'cursor', 'e-resize'); rectmid23.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='e';}, false); + rectmid23.addEventListener("mouseout", function(event) {rectmid23.setAttributeNS(null, 'cursor', 'default'); rectmid23.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rectmid34.addEventListener("mouseover", function(event) {rectmid34.setAttributeNS(null, 'cursor', 's-resize'); rectmid34.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='s';}, false); + rectmid34.addEventListener("mouseout", function(event) {rectmid34.setAttributeNS(null, 'cursor', 'default'); rectmid34.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rectmid41.addEventListener("mouseover", function(event) {rectmid41.setAttributeNS(null, 'cursor', 'w-resize'); rectmid41.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='w'; }, false); + rectmid41.addEventListener("mouseout", function(event) {rectmid41.setAttributeNS(null, 'cursor', 'default'); rectmid41.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + ////////// + svg.setAttributeNS(null, 'transform',trshape); + + svg.appendChild(circle1); + //tracker.appendChild(circleCenter); + if (shape.tagName == 'text'){ + svg.appendChild(rect1); + svg.appendChild(rect2); + svg.appendChild(rect3); + svg.appendChild(rect4); + }else{ + svg.appendChild(rect1); + svg.appendChild(rect2); + svg.appendChild(rect3); + svg.appendChild(rect4); + svg.appendChild(rectmid12); + svg.appendChild(rectmid23); + svg.appendChild(rectmid34); + svg.appendChild(rectmid41); + + } + if(pathsEdit) + { + controlPoints.setAttributeNS(null, 'transform',trshape); + tracker.appendChild(controlPoints); + }else{ + tracker.appendChild(svg); + } + this.svgRoot.appendChild(tracker); + +} + + +SVGRenderer.prototype.getMarkup = function() { + + return this.container.innerHTML; +} + + +///////////////////////////////// +var rotatexxx=0; + +var scaleType=''; +var xrot=0; +var yrot=0; + +var point = {x:0, y:0, width: 0, height:0}; + +function createPoint (x, y, width, height) { + //var point = {x:34, y:22, width: 22, height:23}; + //point.x = x; + //point.y = y; + point = {x:x, y:y, width: width, height:height}; + return point; + } + +/////////////////////////////// + +SVGRenderer.prototype.restruct= function(shape) +{ + //alert('end'); + //forceRedraw(); +//clearWorkspace(); +//document.getElementById('richdraw').style.cursor='default'; +}; + + + +SVGRenderer.prototype.transform = function() { + //document.forms[0].code.value='Im tranforming'; +}; + +SVGRenderer.prototype.scaleShape = function(shape,previus, toX, toY) { + + var box = shape.getBBox(); + var prevbox=previus.getBBox(); + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + var coord=this.editor.viewInputxy; + toX=parseFloat(coord[0]); + toY=parseFloat(coord[1]); + var d2p_center=dist2p(centerx,centery,toX,toY); + + var d2p=dist2p(box.x,box.y,toX,toY); + + var shareScale=box.width/d2p; + + var trans_ShareScale=''; + var tx, ty, tw, yh; + + if(scaleType.length==1){ + if(scaleType== 'w') + { + trans_ShareScale=shareScale+",1"; + tx=toX; + ty=prevbox.y; + var dist=prevbox.x-toX; + var w=dist+prevbox.width; + if(w<1){w=1;} + tw=w; + th=prevbox.height; + //document.forms[0].code.value=box.x+' '+toX+' '+dist+''; + } + if(scaleType== 'e') + { + trans_ShareScale=shareScale+",1"; + tx=prevbox.x; + ty=prevbox.y; + var dist=toX-(prevbox.x+prevbox.width); //dist2p(toX,b,c,d); + var w=dist+prevbox.width; + if(w<1){w=1;} + tw=w; + th=prevbox.height; + + } + if(scaleType== 'n') + { + trans_ShareScale="1,"+shareScale; + + tx=prevbox.x; + ty=toY; + var dist=prevbox.y-toY; + var h=dist+prevbox.height; + if(h<1){h=1;} + tw=prevbox.width; + th=h; + + } + if( scaleType== 's') + { + trans_ShareScale="1,"+shareScale; + + tx=prevbox.x; + ty=prevbox.y; + var dist=toY-(prevbox.y+prevbox.height); //dist2p(toX,b,c,d); + var h=dist+prevbox.height; + if(h<1){h=1;} + tw=prevbox.width; + th=h; + + } + } + if(scaleType.length==2){ + if(scaleType== 'nw'){ + trans_ShareScale=shareScale+","+shareScale; + + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + var angle_diagonal=ang2v(prevbox.x,prevbox.y,prevbox.x+prevbox.width,prevbox.y+prevbox.height) + + var ax= prevbox.x; + var ay= prevbox.y; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y+prevbox.height; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + this.editor.log(angle_diagonal* 180 / Math.PI); + + var tx= section_a[1]; + var ty= section_a[2]; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x+prevbox.width; + var cy= prevbox.y; + + var dx= prevbox.x+prevbox.width; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1] + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y+prevbox.height; + + var dx= 0; + var dy= prevbox.y+prevbox.height; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + + } + + //////////////////// SE + + if( scaleType== 'se'){ + trans_ShareScale=shareScale+","+shareScale; + + + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + var angle_diagonal=ang2v(prevbox.x,prevbox.y,prevbox.x+prevbox.width,prevbox.y+prevbox.height) + + + + var ax= prevbox.x; + var ay= prevbox.y; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y+prevbox.height; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tracker = document.getElementById('tracker'); + + ////////// + var tx= prevbox.x; + var ty= prevbox.y; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x; + var cy= prevbox.y; + + var dx= prevbox.x; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + ///////////////// + + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1] + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y; + + var dx=0; + var dy= prevbox.y; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + /////////////// + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + + tw=distx; + th=disty; + + + } + + if(scaleType== 'ne'){ + + trans_ShareScale=shareScale+","+shareScale; + + var angle_diagonal=ang2v(prevbox.x,prevbox.y+prevbox.height,prevbox.x+prevbox.width,prevbox.y) + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + + + + + var ax= prevbox.x; + var ay= prevbox.y+prevbox.height; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + + this.editor.log(angle_diagonal); + + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tracker = document.getElementById('tracker'); + + ////////// + var tx= prevbox.x; + var ty= section_a[2]; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x; + var cy= prevbox.y; + + var dx= prevbox.x; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + ///////////////// + + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1]; + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y+prevbox.height; + + var dx=0; + var dy= prevbox.y+prevbox.height; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + /////////////// + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + + + + + } + if(scaleType== 'sw'){ + trans_ShareScale=shareScale+","+shareScale; + + + + + var angle_diagonal=ang2v(prevbox.x,prevbox.y+prevbox.height,prevbox.x+prevbox.width,prevbox.y) + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + + + + + var ax= prevbox.x; + var ay= prevbox.y+prevbox.height; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + + this.editor.log(angle_diagonal); + + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tracker = document.getElementById('tracker'); + + ////////// + var tx= section_a[1]; + var ty= prevbox.y; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x+prevbox.width; + var cy= prevbox.y+prevbox.height; + + var dx= prevbox.x+prevbox.width; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + ///////////////// + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1]; + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y; + + var dx=0; + var dy= prevbox.y; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + /////////////// + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + } + + } + + + + if(shape.tagName == 'rect') + { + //alert(data[0]); + shape.setAttributeNS(null,'x',tx); + shape.setAttributeNS(null,'y',ty); + shape.setAttributeNS(null, 'width', tw); + shape.setAttributeNS(null, 'height', th); + + //shape.nodparseFloatue=data; + } + else + if(shape.tagName == 'text') + { + + var tsize=shape.getAttributeNS(null, 'font-size') ; + // var d2p_center=dist2p(centerx,centery,toX,toY); + + var d2p=dist2p(0,box.y,0,toY); + //shape.setAttributeNS(null, 'x', tx + 'px'); + //shape.setAttributeNS(null, 'y', ty + 'px'); + //var mysize=box.height+1 ; + //if((toX - centerx)<0){tsize++}else{tsize--} + tsize=d2p; + //var mysize=parseInt(Math.round(th)); + + if(scaleType== 'ne'){ shape.setAttributeNS(null, 'font-size',tsize);} + if(scaleType== 'se'){ shape.setAttributeNS(null, 'font-size',tsize);} + if(scaleType== 'nw'){ shape.setAttributeNS(null, 'font-size',tsize);} + if(scaleType== 'sw'){ shape.setAttributeNS(null, 'font-size',tsize);} + + //shape.setAttributeNS(null, 'font-size', mysize); + + + /* + shape.setAttributeNS(null,'x',tx); + shape.setAttributeNS(null,'y',ty); + shape.setAttributeNS(null, 'width', tw); + shape.setAttributeNS(null, 'height', th); + + //previus.setAttributeNS(null,'transform', "scale("+trans_ShareScale+")"); + shape.setAttributeNS(null, 'x', tx + 'px'); + shape.setAttributeNS(null, 'y', ty + 'px'); + + shape.setAttributeNS(null, 'textLength', parseInt(Math.round(tw))); + + */ + } + else + if(shape.tagName == 'ellipse') + { + //shape.getAttributeNS(null, 'transform) + shape.setAttributeNS(null, 'cx', (tx + (box.width / 2)) + 'px'); + shape.setAttributeNS(null, 'cy', (ty + (box.height / 2)) + 'px'); + shape.setAttributeNS(null, 'rx', (tw / 2) + 'px'); + shape.setAttributeNS(null, 'ry', (th / 2) + 'px'); + + + } + else + if(shape.tagName == 'line') + { + shape.setAttributeNS(null, 'x1', tx + 'px'); + shape.setAttributeNS(null, 'y1', ty + 'px'); + shape.setAttributeNS(null, 'x2', tx + tw + 'px'); + shape.setAttributeNS(null, 'y2', ty + th + 'px'); + + } + else + if (shape.tagName == 'polyline') + { + + } + else + if (shape.tagName == 'image') + { + shape.setAttributeNS(null,'x',tx); + shape.setAttributeNS(null,'y',ty); + shape.setAttributeNS(null, 'width', tw); + shape.setAttributeNS(null, 'height', th); + + } + else + if (shape.tagName == 'path') + { + // var xscale= box.width/tw; + // var yscale= box.height/th; + var xscale= tw/box.width; + var yscale= th/box.height; + var xinc=xscale;//dist*angx; + var yinc=yscale/ty;//dist*angy; + + if(scaleType== 'n') + { + tx=box.x+(box.width/2); + ty=box.y+box.height; + var xinc=1; + var yinc=box.y/toY;//dist*angy; + + } + if(scaleType== 's') + { + tx=box.x+(box.width/2); + ty=box.y; + var xinc=1; + var yinc=toY/(box.y+box.height);//dist*angy; + } + if(scaleType== 'e') + { + tx=box.x; + ty=box.y+(box.height/2); + var xinc=toX/(box.x+box.width); + var yinc=1; + + } + if(scaleType== 'w') + { + tx=box.x+box.width; + ty=box.y+(box.height/2); + var xinc=box.x/toX; + var yinc=1; + + } + if(scaleType== 'ne') + { + tx=box.x; + ty=box.y+box.height; + var xinc=toX/(box.x+box.width); + var yinc=xinc; + } + if(scaleType== 'nw') + { + tx=box.x+box.width; + ty=box.y+box.height; + var xinc=box.x/toX; + var yinc=xinc; + } + if(scaleType== 'se') + { + tx=box.x; + ty=box.y; + var xinc=toX/(box.x+box.width); + var yinc=xinc; + } + if(scaleType== 'sw') + { + tx=(box.x+box.width); + ty=box.y; + var xinc=box.x/toX; + var yinc=xinc; + } + if(xinc==0){ xinc= 0.0000001;} + if(yinc==0){ yinc= 0.0000001; } + var prevpath=previus.getAttributeNS(null, 'd'); + var path=shape.getAttributeNS(null, 'd'); +//////////// + + + //xshe=left; + //yshe=top; + + path=path.replace(/, /g, ','); + path=path.replace(/ ,/g, ','); + var ps =path.split(" ") + var pcc = ""; + var point =ps[0].split(","); + + + var num0= parseFloat(point[0].substring(1)); + var num1= parseFloat(point[1]); + + + var ang= ang2v(box.x,box.y,tx,ty) ; + var angle = Math.round((ang/Math.PI* 2)* 360); + var angx = Math.cos(ang); + var angy = Math.sin(ang); + var dist= dist2p(tx,ty,box.x,box.y); + //var xinc=xscale;//dist*angx; + //var yinc=yscale;//dist*angy; + var re = /^[-]?\d*\.?\d*$/; + var axis = $V([tx,ty]); + for(var i = 0; i < ps.length; i++) + { + if(ps[i].indexOf(',')>0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + if(char1=='A' || char1=='a'){isArc=true; contArc=0;} + if(isArc==true){contArc++} + if(contArc==4){contArc=0; isArc=false} + + //if (isNaN(valnum)) + if (!char1.match(re)) + { + var num0= parseFloat(point[0].substring(1)); + var text=char1; + }else{ + if(isArc==true && contArc==2 ) + { + var num0= point[0]; + }else{ + var num0= parseFloat(point[0]); + } + var text=''; + + } + + + if(isArc==true && contArc==2) + { + point[1]= point[1].toString() ; + } + else + { + + //num0*=xinc; + point[1]= parseFloat(point[1]); + //point[1]*=yinc; + var pointIni=$V([num0,point[1],1]); + var matrT = $M([[1,0,-tx],[0,1,-ty],[0,0,1]]); + var matrS = $M([[xinc,0,0],[0,yinc,0],[0,0,1]]); + var matrR = $M([[1,0,tx],[0,1,ty],[0,0,1]]); + var matr1= matrT.x(pointIni); + var matr2= matrS.x(matr1); + //var pointR=pointIni.Random(1) + //var pointR=pointIni.rotate(Math.PI/180,axis); + //var pointRc=pointIni.cross(axis); + //var pointR=matr2; + var pointR=matrR.x(matr2); + num0=pointR.elements[0]; + point[1]=pointR.elements[1]; + $('code').value=pointIni.elements[0]+','+pointR.elements[1]+' '; + } + var cx=num0; + var cy=point[1]; + pcc+=text+cx+','+cy+' '; + //pcc+=text+cx+','+cy+' '; + + }else{ + pcc+=ps[i]+' '; + } + } + + shape.setAttributeNS(null,'d', pcc); + + + +////////////// +/* + path=path.replace(/, /g, ','); + path=path.replace(/ ,/g, ','); + var ps =path.split(" ") + var pcc = ""; + + var xinc=tx-prevbox.x; + var yinc=ty-prevbox.y; + + var re = /^[-]?\d*\.?\d*$/; + for(var i = 0; i < ps.length; i++) + { + if(ps[i].indexOf(',')>0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + point[1]= parseFloat(point[1]); + + // var valnum =char1.charAt(0); + //if (isNaN(valnum)) + if (!char1.match(re)) + + { + var num0= parseFloat(point[0].substring(1)); + var text=char1; + }else{ + var num0= parseFloat(point[0]); + var text=''; + + } + //num0+=dist*angx; + //point[1]+=dist*angy; + num0*=xscale; + point[1]*=yscale; + + // num0+=xinc; + // point[1]+=yinc; + + + + var cx=num0; + var cy=point[1]; + pcc+=text+cx+','+cy+' '; + }else{ + pcc+=ps[i]+' '; + } + } + + + + + + // $('code').value=dist+' '+ ang+' '+'__'+x+'= '+left+'/ '+y+'= ' +top+''; + + //shape.setAttributeNS(null,'transform', "rotate("+left+")"); + + // shape.setAttributeNS(null,'transform', "translate("+trax+","+tray+") rotate("+0+") scale(1,1)"); + shape.setAttributeNS(null,'d', pcc); + + + + + + + + //document.forms[0].code.value=''; + //shape.setAttributeNS(null,'transform', "scale("+trans_ShareScale+")"); + */ + + } + + + + + + + + + + + + + +//$('status').innerHTML=typeTransform+': '+shareScale; + + +}; + + +SVGRenderer.prototype.rotateShape = function(shape, previus, toX, toY) { + + //document.getElementById('richdraw').style.cursor='e-resize'; + var box = shape.getBBox(); + var prevbox=previus.getBBox(); + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + var coord=this.editor.viewInputxy; + + var actual_angle=ang2v(centerx,centery,coord[0], coord[1]); + + if(xrot0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + if(char1=='A' || char1=='a'){isArc=true; contArc=0;} + if(isArc==true){contArc++} + if(contArc==4){contArc=0; isArc=false} + + //if (isNaN(valnum)) + if (!char1.match(re)) + { + var num0= parseFloat(point[0].substring(1)); + var text=char1; + }else{ + if(isArc==true && contArc==2 ) + { + var num0= point[0]; + }else{ + var num0= parseFloat(point[0]); + } + var text=''; + + } + + + if(isArc==true && contArc==2) + { + point[1]= point[1].toString() ; + } + else + { + + //num0*=xinc; + point[1]= parseFloat(point[1]); + //point[1]*=yinc; + var pointIni=$V([num0,point[1],1]); + var matrT = $M([[1,0,-tx],[0,1,-ty],[0,0,1]]); + var matrS = $M([[xinc,0,0],[0,yinc,0],[0,0,1]]); + var matrR = $M([[1,0,tx],[0,1,ty],[0,0,1]]); + var matr1= matrT.x(pointIni); + var matr2= matrS.x(matr1); + //var pointR=pointIni.Random(1) + //var pointR=pointIni.rotate(Math.PI/180,axis); + //var pointRc=pointIni.cross(axis); + //var pointR=matr2; + var pointR=matrR.x(matr2); + num0=pointR.elements[0]; + point[1]=pointR.elements[1]; + $('code').value=pointIni.elements[0]+','+pointR.elements[1]+' '; + } + var cx=num0; + var cy=point[1]; + pcc+=text+cx+','+cy+' '; + //pcc+=text+cx+','+cy+' '; + + }else{ + pcc+=ps[i]+' '; + } + } + var svg =shape.cloneNode(false); + svg.setAttributeNS(null,'d', pcc); + this.svgRoot.appendChild(svg); + return svg; + } + else + { + if(shape.tagName=="text" || shape.tagName=="image" ) + { + + + var tr=''; + var turn0=''; + var svg =shape.cloneNode(false); + var x= shape.getAttributeNS(null, 'x'); + var y= shape.getAttributeNS(null, 'y'); + x+=box.width/2; + y+=box.height/2; + if(HorV=='V') + { + svg.setAttributeNS(null,'x',-parseFloat(x)); + var scaleSim='-1, 1'; + svg.setAttributeNS(null,'transform','scale('+scaleSim+')'); + //svg.setAttributeNS(null,'y',parseFloat(x)); + svg.setAttributeNS(null,'x',-parseFloat(x)); + + + } + if(HorV=='H') + { + var scaleSim='1, -1'; + svg.setAttributeNS(null,'y',-parseFloat(y)); + svg.setAttributeNS(null,'transform','scale('+scaleSim+')'); + //svg.setAttributeNS(null,'x',parseFloat(x)); + svg.setAttributeNS(null,'y',-parseFloat(y)); + + + } + + if(shape.hasAttributeNS(null, 'transform')) + { + tr=shape.getAttributeNS(null, 'transform'); + turn0=GetString(tr,'rotate(',')'); + + svg.setAttributeNS(null,'transform','rotate('+turn+'),scale('+scaleSim+')'); + svg.setAttributeNS(null,'x',parseFloat(x)); + svg.setAttributeNS(null,'y',parseFloat(y)); + + //svg.setAttributeNS(null,'transform','rotate('+turn+'),scale('+''); + }else{ + + } + + + + if(shape.tagName=="text"){ + var text=shape.textContent ; + svg.textContent=text; + } + //svg.setAttributeNS(null,'writing-mode',mode); + //svg.setAttributeNS(null,'glyph-orientation-horizontal','0deg'); + // + //svg.appendChild(text); + + this.svgRoot.appendChild(svg); + return svg; + } + else + { + if(shape.hasAttributeNS(null, 'transform')) + { + + + var tr=shape.getAttributeNS(null, 'transform'); + var turn0=GetString(tr, 'rotate(',','); + turn0=parseFloat(turn0); + //alert(turn0); + + if(HorV=='V'){ + var angle=180; + //var turn=(turn0+angle)-(turn0-90); + var turn=turn0+((angle-turn0)*2); + } + if(HorV=='H'){ + var angle=90; + var turn=turn0+((angle-turn0)*2); + } + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + //this.editor.log(centerx+' '+centery+' '+coord[0]+' '+coord[1]+'____ '+rot_angle+' '+actual_angle*180/Math.PI); + var svg =shape.cloneNode(false); + svg.setAttributeNS(null,'transform', "rotate("+turn+","+centerx+","+centery+")"); + this.svgRoot.appendChild(svg); + return svg; + } + else + { + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + shape.setAttributeNS(null,'transform', "rotate("+180+","+centerx+","+centery+")"); + + } + } + } +}; +//http://dev.opera.com/articles/view/svg-evolution-2-our-first-steps-into-sv/?page=3 +//http://www.w3.org/TR/2000/03/WD-SVG-20000303/exchange.html#StylingAttributes +//http://www.xml.com/lpt/a/1390 + + + + + + + +//http://xml-utils.com/conferencia-svg.html#d0e527 +//http://www.xml.com/lpt/a/1321 +//http://phrogz.net/objjob/object.asp?id=101 +//http://admisource.gouv.fr/plugins/scmcvs/cvsweb.php/Cassini-ihm/js-yosemite/mapApp.js?rev=1.1;cvsroot=cassini +//http://groups.google.com/group/prototype-graphic/msg/0547c0caea8869c6 +//http://sylvester.jcoglan.com/ \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/svgrenderer_mini.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/svgrenderer_mini.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,3588 @@ +/*---------------------------------------------------------------------------- + SVGRENDERER 1.0 + SVG Renderer For RichDraw + ----------------------------------------------------------------------------- + Created by Mark Finkle (mark.finkle@gmail.com) + Implementation of SVG based renderer. + ----------------------------------------------------------------------------- +*/ +function AbstractRenderer() { + +}; + +AbstractRenderer.prototype.init = function(elem) {}; +AbstractRenderer.prototype.bounds = function(shape) { return { x:0, y:0, width:0, height: 0 }; }; + +function SVGRenderer() { + this.base = AbstractRenderer; + this.svgRoot = null; +} + + +SVGRenderer.prototype = new AbstractRenderer; + + + + +SVGRenderer.prototype.init = function(elem) { + this.container = elem; + + this.container.style.MozUserSelect = 'none'; + + var svgNamespace = 'http://www.w3.org/2000/svg'; + + this.svgRoot = this.container.ownerDocument.createElementNS(svgNamespace, "svg"); + this.svgRoot.setAttributeNS(null,'viewBox', zoominit); + this.svgRoot.setAttributeNS(null,'preserveAspectRatio','none'); + this.svgRoot.setAttributeNS(null,'space','preserve'); + this.container.appendChild(this.svgRoot); +} + +SVGRenderer.prototype.view = function(left,top,width,height,viewBox) { + if(mode=='preview') + { + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tokens = viewBox.split(' '); + var prx=100; + this.container.style.top =(parseInt(document.getElementById('FRONT').style.height)-height)/2+'px' + + this.container.style.width = width;//document.getElementById('FRONT').style.width; + this.container.style.height =height;//document.getElementById('FRONT').style.height; + //alert(this.container.style.width+' '+width) + //alert(this.container.style.height+' '+height) + this.svgRoot.setAttributeNS(null,'x', left); + this.svgRoot.setAttributeNS(null,'y', top); + this.svgRoot.setAttributeNS(null,'width', width); + this.svgRoot.setAttributeNS(null,'height', height); + + var x=parseFloat(tokens[0])-prx*4; + var y=parseFloat(tokens[1])-prx*2; + var w=parseFloat(tokens[2])+prx; + var h=parseFloat(tokens[3])+prx; + //workspace= x+''+y+''+w+''+h; + //workspace= left+''+top+''+width+''+heigth; + this.svgRoot.setAttributeNS(null,'viewBox', viewBox); + //this.svgRoot.setAttributeNS(null,'viewBox', workspace); + //zoominit = workspace; + } + else + { + this.container.style.top =0+'px'; + + var tokens = viewBox.split(' '); + proporImage= (parseFloat(tokens[2])-parseFloat(tokens[0]))/(parseFloat(tokens[3])-parseFloat(tokens[1])); + //alert(proporImage +' '+proporCanvas) + //if(marginx<=parseInt(document.getElementById('FRONT').style.width)){marginx=0;} + docx=parseFloat(tokens[0]); + docy=parseFloat(tokens[1]); + docw=parseFloat(tokens[2]); + doch=parseFloat(tokens[3]); + + marginx=(parseInt(document.getElementById('FRONT').style.width)-(parseFloat(tokens[2])-parseFloat(tokens[0])))/2; + marginy=(parseInt(document.getElementById('FRONT').style.height)-(parseFloat(tokens[3])-parseFloat(tokens[1])))/2; + //if(marginx<=0){marginx=0;} + //if(marginy<=0){marginy=0;} + var x=(parseFloat(tokens[0])-marginx); + var y=(parseFloat(tokens[1])-marginy); + var w=(parseFloat(tokens[2])+marginx*2); + var h=(parseFloat(tokens[3])+marginy*2); + //alert(tokens[3]+' '+tokens[1]+' / '+(parseFloat(tokens[3])-parseFloat(tokens[1]))+' '+parseInt(document.getElementById('FRONT').style.height)+' /'+h+' '+height); + //if(h>=parseInt(document.getElementById('FRONT').style.height)){h=parseInt(document.getElementById('FRONT').style.height);} + //if(h>=parseInt(document.getElementById('FRONT').style.height)){y=0;h=600;}//parseInt(document.getElementById('FRONT').style.height)*2} + zoominit1 = x+' '+y+' '+w+' '+h; + //alert(this.container.style.height+' '+height+' '+h+' '+zoominit1) + this.svgRoot.setAttributeNS(null,'width', w); + this.svgRoot.setAttributeNS(null,'height', h); + this.svgRoot.setAttributeNS(null,'viewBox', zoominit1); + zoomx=x; + zoomy=y; + //this.svgRoot.setAttributeNS(null,'viewBox', zoominit; + //this.rectCanvas(x,y,w,h,zoominit) + //this.rectCanvas(left,top,width,height,viewBox) + + } +} + +SVGRenderer.prototype.zoomFrame = function(zoom){ + this.svgRoot.setAttributeNS(null,'viewBox', zoom); +} + +SVGRenderer.prototype.rectDoc = function(viewBox) { + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tokens = viewBox.split(' '); + var shape = document.getElementById('rectCanvas'); + if (shape) { + this.remove(shape); + } + var rect=this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + rect.setAttributeNS(null, 'id', 'rectDoc'); + rect.setAttributeNS(null, 'x', tokens[0] + 'px'); + rect.setAttributeNS(null, 'y', tokens[1] + 'px'); + rect.setAttributeNS(null, 'width', tokens[2]+ 'px'); + rect.setAttributeNS(null, 'height', tokens[3] + 'px'); + rect.setAttributeNS(null, 'fill', 'none'); + rect.setAttributeNS(null, 'stroke', '#000000'); + rect.setAttributeNS(null, 'stroke-width', 1+'px'); + // this.svgRoot.appendChild(rect) + this.svgRoot.appendChild(rect); + +} +SVGRenderer.prototype.rectCanvas = function(docx,docy,docw,doch,viewBox) { + + var svgNamespace = 'http://www.w3.org/2000/svg'; + + var tokens = zoominit1.split(' '); + var shape = document.getElementById('rectCanvas'); + if (shape) { + this.remove(shape); + } + + var rect=this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + rect.setAttributeNS(null, 'id', 'rectBackground'); + rect.setAttributeNS(null, 'x', tokens[0] + 'px'); + rect.setAttributeNS(null, 'y', tokens[1] + 'px'); + rect.setAttributeNS(null, 'width', tokens[2] + 'px'); + rect.setAttributeNS(null, 'height', tokens[3] + 'px'); + rect.setAttributeNS(null, 'fill', '#666666'); + rect.setAttributeNS(null, 'stroke', 'none'); + //this.svgRoot.appendChild(rect) + this.svgRoot.insertBefore( rect, this.svgRoot.firstChild ); + + //this.index('rectBackground',0); + + /* var shape = document.getElementById('rectOverCanvas'); + if (shape) { + this.remove(shape); + } + var rect=this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + rect.setAttributeNS(null, 'id', 'rectOverCanvas'); + rect.setAttributeNS(null, 'x', docx + 'px'); + rect.setAttributeNS(null, 'y', docy + 'px'); + rect.setAttributeNS(null, 'width', docw + 'px'); + rect.setAttributeNS(null, 'height', doch + 'px'); + rect.setAttributeNS(null, 'fill', 'none'); + rect.setAttributeNS(null, 'stroke', '#000000'); + rect.setAttributeNS(null, 'stroke-width', 1+'px'); + // this.svgRoot.appendChild(rect) + this.svgRoot.insertBefore( rect, this.svgRoot.lastChild ); + */ +} + +SVGRenderer.prototype.removeAll = function() +{ + while( this.svgRoot.hasChildNodes () ) + { + this.svgRoot.removeChild( this.svgRoot.firstChild ); + } +} + +SVGRenderer.prototype.create = function(shape, fillColor, lineColor, fillOpac, lineOpac, lineWidth, left, top, width, height, textMessaje, textSize, textFamily, imageHref, points, transform, parent) { + var svgNamespace = 'http://www.w3.org/2000/svg'; + var xlinkNS="http://www.w3.org/1999/xlink"; + + var svg; + + if (shape == 'rect') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + svg.setAttributeNS(null, 'x', left + 'px'); + svg.setAttributeNS(null, 'y', top + 'px'); + svg.setAttributeNS(null, 'width', width + 'px'); + svg.setAttributeNS(null, 'height', height + 'px'); + svg.style.position = 'absolute'; + } + else if (shape == 'ellipse' || shape == 'circle') { + + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'ellipse'); + svg.setAttributeNS(null, 'cx', (left + width / 2) + 'px'); + svg.setAttributeNS(null, 'cy', (top + height / 2) + 'px'); + if(shape == 'circle'){ + svg.setAttributeNS(null, 'rx', (width / 2) + 'px'); + svg.setAttributeNS(null, 'ry', (width / 2) + 'px'); + }else{ + svg.setAttributeNS(null, 'rx', (width / 2) + 'px'); + svg.setAttributeNS(null, 'ry', (height / 2) + 'px'); + + } + svg.style.position = 'absolute'; + } + else if (shape == 'roundrect') { + svg = this.container.ownerDocument.createElementNS(svgNamespace, 'rect'); + svg.setAttributeNS(null, 'x', left + 'px'); + svg.setAttributeNS(null, 'y', top + 'px'); + + var percent = width*20/100; + if(width=-1) + { + this.svgRoot.insertBefore( shape, this.svgRoot.childNodes[num-1]); + } + } + if(order==2){ + if((num+1)2) + { + if(rot.length>2){ union=',';} + cadScale='scale('+scl+')'; + if(scl.indexOf('-')!=-1) + { + var dist= dist2p(left,top,box.x,box.y); + + left=left; + } + if(scl.indexOf(',-')!=-1 || scl.indexOf(', -')!=-1 ) + { + //top=eval('-'+top); + var dist= dist2p(left,top,box.x,box.y); + top=top; + } + + } + //shape.setAttributeNS(null,'transform', 'rotate('+(angle)+', '+centerx+', '+centery+')'); + shape.setAttributeNS(null,'transform', cadRot+union+cadScale); + + //var angleRad=angle*Math.PI/180; + + + + //dist=dist2p(x,y,left, top) ; + rotated=true; + + } + + contmove++; + + if (shape.tagName == 'rect'){ + /* var dudy= shape.parentNode; + if(dudy.tagName=='g'){ + document.forms[0].code.value= 'this g ============ '; + shape.setAttributeNS(null, 'x', left); + shape.setAttributeNS(null, 'y', top); + + dudy.setAttributeNS(null, 'x', left); + dudy.setAttributeNS(null, 'y', top); + dudy.childNodes[0].setAttributeNS(null, 'x', left); + dudy.childNodes[0].setAttributeNS(null, 'y', top); + + }else{ + //document.forms[0].code.value= box.x+' '+box.y+' formX Y'+ fromX+'_'+fromY+' left '+left+'_'+top+'=============='; + //document.forms[0].code.value+= tran+' rot '+ angle+'_'+x+'_'+y+' dist '+dist; + if(rotated){ + //shape.setAttributeNS(null, 'x', box.x*Math.cos(angleRad)) ; + //shape.setAttributeNS(null, 'y', box.y*Math.sin(angleRad)) ; + shape.setAttributeNS(null, 'x', left); + shape.setAttributeNS(null, 'y', top); + + + }else{ + */ + shape.setAttributeNS(null, 'x', left); + shape.setAttributeNS(null, 'y', top); + //} + //$('option_rect_trx').value= left; + //$('option_rect_try').value= top; + // var h=shape.getAttributeNS(null, 'height'); + //var w=shape.getAttributeNS(null, 'width'); + //document.forms[0].code.value= h+' '+w; + //} + } + if (shape.tagName == 'g') + { + //this.editor.log(shape.tagName+' =============='); + + shape.setAttributeNS(null, 'x', left); + shape.setAttributeNS(null, 'y', top); + shape.childNodes[0].setAttributeNS(null, 'x', left + 'px'); + shape.childNodes[0].setAttributeNS(null, 'y', top + 'px'); + shape.childNodes[1].setAttributeNS(null, 'x', left + 'px'); + shape.childNodes[1].setAttributeNS(null, 'y', top + 'px'); + + } + if (shape.tagName == 'image'){ + shape.setAttributeNS(null, 'x',left + 'px'); + shape.setAttributeNS(null, 'y', top + 'px'); + //$('option_img_trx').value= left; + //$('option_img_try').value= top; + var h=shape.getAttributeNS(null, 'height'); + var w=shape.getAttributeNS(null, 'width'); + // this.editor.log( h+' '+w); + } + if (shape.tagName == 'text'){ + var size=parseFloat(shape.getAttributeNS(null, 'font-size')); + //$('code').value=size; + shape.setAttributeNS(null, 'x', left + 'px'); + shape.setAttributeNS(null, 'y', parseFloat(top+size) + 'px'); + //$('option_text_trx').value= left; + //$('option_text_try').value= top; + + } + if (shape.tagName == 'line'){ + var deltaX = shape.getBBox().width; + var deltaY = shape.getBBox().height; + shape.setAttributeNS(null, 'x1', left + 'px'); + shape.setAttributeNS(null, 'y1', top + 'px'); + + shape.setAttributeNS(null, 'x2', left + deltaX + 'px'); + shape.setAttributeNS(null, 'y2', top + deltaY + 'px'); + //$('option_line_trx').value= left; + //$('option_line_try').value= top; + + } + if (shape.tagName == 'ellipse'){ + var putx=left + (shape.getBBox().width / 2) + var puty= top + (shape.getBBox().height / 2) + shape.setAttributeNS(null, 'cx', putx + 'px'); + shape.setAttributeNS(null, 'cy', puty + 'px'); + //$('option_ellipse_trx').value= putx; + //$('option_ellipse_try').value= puty; + + } + if (shape.tagName == 'path' || shape.tagName == 'polyline' ) { + + if(contmove==1){ + xshe=left; + yshe=top; + } + var path=shape.getAttributeNS(null, 'd'); + path=path.replace(/, /g, ','); + path=path.replace(/ ,/g, ','); + var ps =path.split(" ") + var pcc = ""; + var point =ps[0].split(","); + + + var num0= parseFloat(point[0].substring(1)); + var num1= parseFloat(point[1]); + + var ang= ang2v(box.x,box.y,left,top) ; + var angle = Math.round((ang/Math.PI* 2)* 360); + var angx = Math.cos(ang); + var angy = Math.sin(ang); + var dist= dist2p(left,top,box.x,box.y); + var xinc=dist*angx; + var yinc=dist*angy; + var re = /^[-]?\d*\.?\d*$/; + for(var i = 0; i < ps.length; i++) + { + if(ps[i].indexOf(',')>0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + if(char1=='A' || char1=='a'){isArc=true; contArc=0;} + if(isArc==true){contArc++} + if(contArc==4){contArc=0; isArc=false} + + //if (isNaN(valnum)) + if (!char1.match(re)) + { + var num0= parseFloat(point[0].substring(1)); + var text=char1; + }else{ + if(isArc==true && contArc==2 ) + { + var num0= point[0]; + }else{ + var num0= parseFloat(point[0]); + } + var text=''; + + } + + + if(isArc==true && contArc==2) + { + point[1]= point[1].toString() ; + } + else + { + + num0+=xinc; + point[1]= parseFloat(point[1]); + point[1]+=yinc; + + } + var cx=num0; + + var cy=point[1]; + pcc+=text+cx+','+cy+' '; + }else{ + pcc+=ps[i]+' '; + } + } + + shape.setAttributeNS(null,'d', pcc); + + } + + +//$('status').innerHTML=typeTransform+': '+left+' '+top; +//$('option_select_trx').value= left; +//$('option_select_try').value= top; + + + +}; + + + +SVGRenderer.prototype.track = function(shape) { + // TODO +}; + + +SVGRenderer.prototype.clic = function(shape) { + var end=''; + if(data_path_close==true){end='z';} + var maxcont=setPoints.length; + var thispath='M'+setPoints[0]+' '; + $('someinfo').value=maxcont; + + for(var conta=1;conta< maxcont;conta++){ + thispath+='L'+setPoints[conta]+' '; + } + //var pointshape=shape.getAttributeNS(null,"d"); + //shape.setAttributeNS(null,'d',thispath+end); + var path=thispath+end; + + shape.setAttributeNS(null,'d',path); + $('control_codebase').value=path; + +} + + +SVGRenderer.prototype.resize = function(shape, fromX, fromY, toX, toY) { + var deltaX = toX - fromX; + var deltaY = toY - fromY; + + /* if (lineColor.length == 0){lineColor = 'none';} + if (fillColor.length == 0){fillColor = 'none';} + shape.style.fill = fillColor; + shape.style.stroke = lineColor; + shape.style.strokeWidth = lineWidth; + shape.style.fillOpacity = fillOpac; + shape.style.strokOpacity = lineOpac; + */ + if (shape.tagName == 'rect' ) + { + + + if (deltaX < 0) { + shape.setAttributeNS(null, 'x', toX + 'px'); + shape.setAttributeNS(null, 'width', -deltaX + 'px'); + } + else + { + shape.setAttributeNS(null, 'width', deltaX + 'px'); + } + + if (deltaY < 0) + { + shape.setAttributeNS(null, 'y', toY + 'px'); + shape.setAttributeNS(null, 'height', -deltaY + 'px'); + } + else + { + shape.setAttributeNS(null, 'height', deltaY + 'px'); + } + /*shape.style.fill = fillColor; + shape.style.stroke = lineColor; + shape.style.strokeWidth = lineWidth; + shape.style.fillOpacity = fillOpac; + shape.style.strokOpacity = lineOpac; + */ + + } + + /* if ( shape.tagName == 'simage' ) + { + var img=shape.firstChild;//nodeName;//nodparseFloatue;//nodes.item(0); + //alert(img); + if (deltaX < 0) { + shape.setAttributeNS(null, 'x', parseFloat(toX) + 'px'); + shape.setAttributeNS(null, 'width', parseFloat(-deltaX) + 'px'); + + } + else + { + shape.setAttributeNS(null, 'width', parseFloat(deltaX) + 'px'); + } + + if (deltaY < 0) + { + shape.setAttributeNS(null, 'y', parseFloat(toY) + 'px'); + shape.setAttributeNS(null, 'height', parseFloat(-deltaY) + 'px'); + } + else + { + shape.setAttributeNS(null, 'height', parseFloat(deltaY) + 'px'); + } + var h=shape.getAttributeNS(null, 'height'); + var w=shape.getAttributeNS(null, 'width'); + document.forms[0].code.value= h+' '+w; + + + + }*/ + if (shape.tagName == 'g' || shape.tagName == 'image') + { + + + if (deltaX < 0) + { + shape.setAttributeNS(null, 'x', parseFloat(toX) + 'px' ); + shape.setAttributeNS(null, 'width', parseFloat(-deltaX) + 'px'); + + + } + else + { + shape.setAttributeNS(null, 'width', parseFloat(deltaX) + 'px'); + } + + if (deltaY < 0) + { + shape.setAttributeNS(null, 'y', parseFloat(toY) + 'px'); + shape.setAttributeNS(null, 'height', parseFloat(-deltaY) + 'px' ); + } + else + { + shape.setAttributeNS(null, 'height', parseFloat(deltaY) + 'px'); + + } + + } + if (shape.tagName == 'ellipse') { + if (deltaX < 0) { + shape.setAttributeNS(null, 'cx', (fromX + deltaX / 2) + 'px'); + shape.setAttributeNS(null, 'rx', (-deltaX / 2) + 'px'); + } + else { + shape.setAttributeNS(null, 'cx', (fromX + deltaX / 2) + 'px'); + shape.setAttributeNS(null, 'rx', (deltaX / 2) + 'px'); + } + + if (deltaY < 0) { + shape.setAttributeNS(null, 'cy', (fromY + deltaY / 2) + 'px'); + shape.setAttributeNS(null, 'ry', (-deltaY / 2) + 'px'); + } + else { + shape.setAttributeNS(null, 'cy', (fromY + deltaY / 2) + 'px'); + shape.setAttributeNS(null, 'ry', (deltaY / 2) + 'px'); + } + } + if (shape.tagName == 'line') { + shape.setAttributeNS(null, 'x2', toX); + shape.setAttributeNS(null, 'y2', toY); + } + if (shape.tagName == 'polyline') { + + xpArray.push(toX); + ypArray.push(toY); + var thispath=''+xpArray[1]+','+ypArray[1]; + var thispath1=''; + var thispath2=''; + var maxcont=xpArray.length; + + for(var conta=2;conta< maxcont;conta++){ + thispath1+=' '+xpArray[conta]+' '+ypArray[conta]; + thispath2+=' '+xpArray[conta]+', '+ypArray[conta]; + + } + + + shape.setAttributeNS(null,'points',thispath+thispath1); + + + } + + if (shape.tagName == 'path') { + + if (selectmode == 'controlpath') + { + var end=''; + if(data_path_close==true){end='z';} + + var thispath='M'+setPoints[0]+' '; + var maxcont=setPoints.length; + + for(var conta=1;conta< maxcont;conta++){ + thispath+='L'+setPoints[conta]+' '; + + + } + var path=thispath+'L'+toX+','+toY+end; + //var pointshape=shape.getAttributeNS(null,"d"); + shape.setAttributeNS(null,'d',path); + document.forms[0].control_codebase.value=path; + } + else + { + + xpArray.push(toX); + ypArray.push(toY); + + var thispath=''+xpArray[1]+','+ypArray[1]; + var thispath1=''; + var thispath2=''; + var maxcont=xpArray.length; + + for(var conta=2;conta< maxcont;conta++){ + //thispath1+=' '+xpArray[conta]+' '+ypArray[conta]; + thispath2+=' '+xpArray[conta]+','+ypArray[conta]; + //if((conta+2)%3==0){thispath2+=' C';} + } + var end=''; + if(data_path_close==true){end='z';} + shape.setAttributeNS(null,'d','M '+thispath+ ' L'+thispath2+end); + + + + /* + + var pointshape=shape.getAttributeNS(null,"points"); + var thispoint=' '+toX+' '+toY; + $('status').innerHTML =pointshape; + shape.setAttributeNS(null,'points',pointshape+thispoint) + shape.setAttributeNS(null, 'stroke-width', "25"); + shape.setAttributeNS(null, 'fill', "#FFFF00"); + + //shape.points.push(toX); + //shape.points.push(toY); + //shape.setAttribute("points",pointshape+); + // var maxcont=xpArray.length-1; + var thispath=''+xpArray[1]+','+ypArray[1]; + var maxcont=xpArray.length; + //alert(maxcont); + for(var conta=2;conta< maxcont;conta++){ + thispath+=','+xpArray[conta]+','+ypArray[conta]; + } + //alert(shape.points[1]); + //shape.setAttribute("points",thispath); + //points.Value = thispath; + var thispath=''+xpArray[1]+','+ypArray[1]; + var maxcont=xpArray.length; + //alert(maxcont); + for(var conta=1;conta< maxcont;conta++){ + thispath+=','+xpArray[conta]+','+ypArray[conta]; + } + + shape.points.Value = thispath; + */ + + + + + /* + + + //this.renderer.move(this.selected, this.selectedBounds.x + deltaX, this.selectedBounds.y + deltaY); + // shape.setAttributeNS(null,'transform', "translate("+(toX)+","+(toy)+")"); + + + + var thispath=''+xpArray[0]+','+ypArray[0]; + var maxcont=xpArray.length; + //shape.setAttributeNS(null,'transform', "translate("+toX+","+toY+")"); + for(var conta=1;conta< maxcont;conta++){ + thispath+=','+xpArray[conta]+','+ypArray[conta]; + } + + shape.setAttributeNS(null, 'x', toX); + shape.setAttributeNS(null, 'y', toY); + shape.setAttributeNS(null, 'points', thispath); + */ + } + } + if (shape == 'text') {} + +}; +SVGRenderer.prototype.tocurve = function() +{ + var points=$('control_codebase').value.split('L'); + var chain=''; + chain+=points[0]+'C'; + var numpoints=points.length-1; + for(var a=1;a=0) + { + + } + else + { + // shInfo.style=shape.getAttribute('style'); + + if(mystyle!= null){ + //var estilo=shape.getAttribute('style'); + var data; + + var estilo=generateJSON(mystyle); + eval("data="+estilo); + //var data=eval('"'+estilo+'"'); + //var data=estilo.evalJSON(); + + (data["font-size"])?shInfo.textSize=data["font-size"]:shInfo.textSize; + (data["font-family"])?shInfo.textFamily=data["font-family"]:shInfo.textFamily; + + (data.fill)?shInfo.fillColor=data.fill:shInfo.fillColor; + (data.stroke)?shInfo.lineColor=data.stroke:shInfo.lineColor; + (data.transform)?shInfo.transform=data.transform:shInfo.transform; + (data["fill-opacity"])?shInfo.fillOpac=data["fill-opacity"]:shInfo.fillOpac; + //shInfo.fillColor=data.fill; + //document.getElementById("someinfo").value +=data.fill+' ';//estilo ;//data['fill']+' ';// + } + } + } + + + if (shape.tagName == 'rect') + { + if(shape.getAttribute('rx') || shape.getAttribute('ry')){ + shInfo.type = "roundrect"; + shInfo.rx = parseFloat(shape.getAttribute('rx')) + shInfo.ry = parseFloat(shape.getAttribute('rx')) + } + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + } + else if (shape.tagName == 'ellipse' || shape.tagName == 'circle') + { + if(shape.tagName == 'circle'){ + shInfo.width = parseFloat(shape.getAttribute('r'))*2; + shInfo.height = parseFloat(shape.getAttribute('r'))*2; + }else{ + shInfo.width = parseFloat(shape.getAttribute('rx'))*2; + shInfo.height = parseFloat(shape.getAttribute('ry'))*2; + } + + shInfo.left = parseFloat(shape.getAttribute('cx')) - (shInfo.width/2); + shInfo.top = parseFloat(shape.getAttribute('cy')) - (shInfo.height/2) ; + } + else if(shape.tagName == 'linearGradient') { + shInfo.left = (shape.getAttribute( 'x1')); + shInfo.top = parseFloat(shape.getAttribute( 'y1')); + shInfo.width = parseFloat(shape.getAttribute('x2')); + shInfo.height = parseFloat(shape.getAttribute('y2')); + + } + else if(shape.tagName == 'stop') { + shInfo.fillColor = shape.getAttribute('stop-color'); + shInfo.fillOpac = shape.getAttribute('stop-opacity'); + shInfo.lineOpac = shape.getAttribute('offset'); + var mystyle= shape.getAttribute('style'); + if(mystyle!= null && mystyle.indexOf('=0) + { + + } + else + { + if(mystyle!= null){ + var data; + var estilo=generateJSON(mystyle); + eval("data="+estilo); + (data["stop-color"])?shInfo.fillColor=data["stop-color"]:shInfo.fillColor; + (data["stop-opacity"])?shInfo.fillOpac=data["stop-opacity"]:shInfo.fillOpac; + document.getElementById("someinfo").value +=data["stop-color"]+' '; + } + + } + } + else if (shape.tagName == 'line') + { + shInfo.left = parseFloat(shape.getAttribute('x1')); + shInfo.top = parseFloat(shape.getAttribute('y1')); + shInfo.width = parseFloat(shape.getAttribute('x2')) -shInfo.left; + shInfo.height = parseFloat(shape.getAttribute('y2')) -shInfo.top; + } + else if (shape.tagName == 'polyline') + { + shInfo.points = shape.getAttribute('points'); + } + else if (shape.tagName == 'g') + { + shInfo.type = "group"; + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.fillColor = shape.getAttribute('fill') + + } + else if (shape.tagName == 'path') + { + shInfo.points = shape.getAttribute('d'); + //shInfo.transform = shape.getAttribute('transform'); + + //alert(shInfo.transform); + //document.forms[0].codebase.value=shape.getAttribute('d'); + + } + else + + + if (shape.tagName == 'image') + { + + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.fillOpac = parseFloat(shape.getAttribute('opacity')); + shInfo.href = shape.getAttribute('href'); + + } + if(shape.parentNode.tagName != 'svg'){ + //shInfo.width = parseFloat(shape.getAttribute('width')); + //shInfo.height = parseFloat(shape.getAttribute('height')); + //shInfo.viewBox = parseFloat(shape.getAttribute('viewBox')); + shInfo.parent=shape.parentNode.getAttribute('id'); + + } + return shInfo; + }else{ + //do nothing if its the tracker + } + + + +}; +SVGRenderer.prototype.info01 = function(shape) +{ + +var shInfo = {}; +if(shape.id != "tracker"){ +shInfo.id = shape.id.substr(6); + shInfo.type = shape.tagName; + if (shape.hasAttributeNS(null,'transform')) { + shInfo.transform = shape.getAttribute('transform'); + }else{ + shInfo.transform =''; + } + + + if(shape.tagName !='image') + { + shInfo.fillColor = shape.getAttribute('fill') + shInfo.lineColor = shape.getAttribute('stroke') + shInfo.fillOpac = parseFloat(shape.getAttribute('fill-opacity')) + shInfo.lineOpac = parseFloat(shape.getAttribute('stroke-opacity')) + shInfo.lineWidth = parseFloat(shape.getAttribute('stroke-width')) + } + + + if (shape.tagName == 'rect') + { + if(shape.getAttribute('rx') || shape.getAttribute('ry')){ + shInfo.type = "roundrect"; + shInfo.rx = parseFloat(shape.getAttribute('rx')) + shInfo.ry = parseFloat(shape.getAttribute('rx')) + } + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + } + else if (shape.tagName == 'ellipse') + { + shInfo.width = parseFloat(shape.getAttribute('rx'))*2; + shInfo.height = parseFloat(shape.getAttribute('ry'))*2; + shInfo.left = parseFloat(shape.getAttribute('cx')) - (shInfo.width/2); + shInfo.top = parseFloat(shape.getAttribute('cy')) - (shInfo.height/2) ; + + } + else if (shape.tagName == 'line') + { + shInfo.left = parseFloat(shape.getAttribute('x1')); + shInfo.top = parseFloat(shape.getAttribute('y1')); + shInfo.width = parseFloat(shape.getAttribute('x2')) -shInfo.left; + shInfo.height = parseFloat(shape.getAttribute('y2')) -shInfo.top; + } + else if (shape.tagName == 'polyline') + { + shInfo.points = shape.getAttribute('points'); + } + else + + if (shape.tagName == 'path') + { + shInfo.d = shape.getAttribute('d'); + //shInfo.transform = shape.getAttribute('transform'); + + //alert(shInfo.transform); + //document.forms[0].codebase.value=shape.getAttribute('d'); + + } + else + + if(shape.tagName == "text"){ + + shInfo.textFamily = shape.getAttribute('font-family') + shInfo.textSize = parseInt(shape.getAttribute('font-size')) + shInfo.top = parseFloat(shape.getAttribute('y')) + shInfo.left = parseFloat(shape.getAttribute('x')) + shInfo.text = shape.textContent + shInfo.lineWidth = parseFloat(shape.getAttribute('stroke-width')) + + //shInfo.text = shape.nodparseFloatue; + } + else + + if (shape.tagName == 'image') + { + + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.fillOpac = parseFloat(shape.getAttribute('opacity')); + shInfo.href = shape.getAttribute('href'); + + } + + return shInfo; + }else{ + //do nothing if its the tracker + } + + +} + + + + + +SVGRenderer.prototype.transformShape = function(shape,data,transform) +{ + var svgNamespace = 'http://www.w3.org/2000/svg'; + var xlinkNS="http://www.w3.org/1999/xlink"; + // + + if(shape.tagName == 'rect') + { + var box = shape.getBBox(); + var sdata=data.split(';'); + + //alert(data[0]); + shape.setAttributeNS(null,'x',parseFloat(sdata[0])); + shape.setAttributeNS(null,'y',parseFloat(sdata[1])); + shape.setAttributeNS(null, 'width', parseFloat(sdata[2])); + shape.setAttributeNS(null, 'height', parseFloat(sdata[3])); + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.setAttributeNS(null, 'transform','rotate('+parseFloat(sdata[4])+','+centerx+','+centery+')'); + + //shape.nodparseFloatue=data; + } + else + if(shape.tagName == 'text') + { + if(data.indexOf('<;>',0)==-1 ) + { + shape.textContent = data; + } + else + { + var sdata=data.split('<;>'); //????????? + shape.textContent = sdata[0]; + shape.setAttributeNS(null,'font-size',parseFloat(sdata[1])); + shape.setAttributeNS(null,'font-family',sdata[2]); + } + //shape.nodparseFloatue=data; + } + else + if (shape.tagName == 'polyline') + { + shape.setAttributeNS(null,'points',data); + } + else + if (shape.tagName == 'image') + { + //alert(data); + if(data.indexOf(';',0)==-1 ) + { + shape.setAttributeNS(xlinkNS,'href',data); + } + else + { + var box = shape.getBBox(); + var sdata=data.split(';'); + shape.setAttributeNS(null,'x',parseFloat(sdata[0])); + shape.setAttributeNS(null,'y',parseFloat(sdata[1])); + shape.setAttributeNS(null, 'width', parseFloat(sdata[2])); + shape.setAttributeNS(null, 'height',parseFloat(sdata[3])); + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.setAttributeNS(null, 'transform',' rotate('+parseFloat(sdata[4])+','+centerx+','+centery+')'); + + + } + + } + else + if (shape.tagName == 'path') + { + if(data.indexOf(';',0)==-1 ) + { + shape.setAttributeNS(null, 'd', data); + shape.setAttributeNS(null, 'transform', transform); + } + else + { + var box = shape.getBBox(); + var sdata=data.split(';'); + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.setAttributeNS(null, 'transform','scale('+parseFloat(sdata[2])+','+parseFloat(sdata[3])+')'+' rotate('+parseFloat(sdata[4])+','+centerx+','+centery+')'+' translate('+parseFloat(sdata[0])+','+parseFloat(sdata[1])+')'); + + + } + } + + +} +SVGRenderer.prototype.editShape = function(shape,data) +{ + if(shape.tagName == 'text'){ + shape.textContent = data + }else + if (shape.tagName == 'polyline') + { + shape.setAttributeNS(null,'points',data); + } + else + + if (shape.tagName == 'path') + { + shape.setAttributeNS(null, 'd', data); + + } + +} +SVGRenderer.prototype.editCommand = function(shape, cmd, value) +{ + if (shape != null) { + if (cmd == 'fillcolor') { + if (value != '') + shape.setAttributeNS(null, 'fill', value); + else + shape.setAttributeNS(null, 'fill', 'none'); + } + else if (cmd == 'linecolor') { + if (value != '') + shape.setAttributeNS(null, 'stroke', value); + else + shape.setAttributeNS(null, 'stroke', 'none'); + } + else if (cmd == 'linewidth') { + shape.setAttributeNS(null, 'stroke-width', parseInt(value) + 'px'); + } + else if (cmd == 'fillopacity') { + if(shape.tagName=='image') + { + shape.setAttributeNS(null, 'opacity', parseFloat(value)); + } + else + { + shape.setAttributeNS(null, 'fill-opacity', parseFloat(value)); + } + + } + else if (cmd == 'lineopacity') { + + shape.setAttributeNS(null, 'stroke-opacity', parseFloat(value)); + + } + + } +} + + +SVGRenderer.prototype.queryCommand = function(shape, cmd) +{ + var result = ''; + + if (shape != null) { + if (cmd == 'fillcolor') { + result = shape.getAttributeNS(null, 'fill'); + if (result == 'none') + result = ''; + } + else if (cmd == 'linecolor') { + result = shape.getAttributeNS(null, 'stroke'); + if (result == 'none') + result = ''; + } + else if (cmd == 'linewidth') { + result = shape.getAttributeNS(null, 'stroke'); + if (result == 'none') + result = ''; + else + result = shape.getAttributeNS(null, 'stroke-width'); + } + else if (cmd == 'fillopacity') { + if(shape.tagName=='image') + { + shape.setAttributeNS(null, 'opacity', parseFloat(value)); + } + else + { + shape.setAttributeNS(null, 'fill-opacity', parseFloat(value)); + } + + } + else if (cmd == 'lineopacity') { + + shape.setAttributeNS(null, 'stroke-opacity', parseFloat(value)); + + } + + } + + return result; +} + +SVGRenderer.prototype.getProperties = function(shape) +{ + var result = ''; + + if (shape != null) + { + result = shape.getAttributeNS(null, 'fill'); + if (result == 'none') + { + mefillColor.visible = 'hidden'; + mefillColor.hex = '#000000'; + filldraw=true; + setbe(1,'img_okfill'); + } + else + { + //alert(mefillColor.hex+' '+result); + mefillColor.visible = 'visible'; + mefillColor.hex = result; + var rgb=hex2rgb(result) + mefillColor.r=rgb[0]; + mefillColor.g=rgb[1]; + mefillColor.b=rgb[2]; + filldraw=false; + setbe(1,'img_okfill'); + + } + + result = shape.getAttributeNS(null, 'stroke'); + if (result == 'none') + { + mestrokeColor.visible = 'hidden'; + mestrokeColor.hex = '#000000'; + mestrokeColor.width = 0; + strokedraw=true; + setbe(2,'img_okstroke'); + + } + else + { + mestrokeColor.visible = 'visible'; + mestrokeColor.hex = result; + var rgb=hex2rgb(result) + mestrokeColor.r=rgb[0]; + mestrokeColor.g=rgb[1]; + mestrokeColor.b=rgb[2]; + strokedraw=false; + setbe(2,'img_okstroke'); + + } + + result = shape.getAttributeNS(null, 'stroke-width'); + mestrokeColor.width = result; + + result = shape.getAttributeNS(null, 'fill-opacity'); + mefillColor.opacity = result; + + result = shape.getAttributeNS(null, 'stroke-opacity'); + mestrokeColor.opacity = result; + + setProperties(); + } +} + + +SVGRenderer.prototype.showMultiSelect = function(iniX,iniY) { + var tracker = document.getElementById('trackerMultiSelect'); + if (tracker) { + this.remove(tracker); + } + + var coord=this.editor.inputxy; + toX=parseFloat(coord[0]); + toY=parseFloat(coord[1]); + + tracker = document.createElementNS(svgNamespace, 'rect'); + + tracker.setAttributeNS(null, 'x', iniX); + tracker.setAttributeNS(null, 'y', iniY); + tracker.setAttributeNS(null, 'width', toX); + tracker.setAttributeNS(null, 'height', toY); + tracker.setAttributeNS(null, 'fill', '#ffffff'); + tracker.setAttributeNS(null, 'stroke', 'green'); + tracker.setAttributeNS(null, 'stroke-width', '1'); + + this.svgRoot.appendChild(tracker); +} + + +function mouseCoord() +{ + var coord=this.editor.inputxy; + coord[0]=parseFloat(coord[0]); + coord[1]=parseFloat(coord[1]); + return coord +} +/* +function nodeHit(node) +{ + node.addEventListener("mousemove", function(event) {nodeMove(node)}, false); + +} + +function nodeUp(node) +{ + //node.stopObserving("mousemove"); +} + +function nodeMove(node) +{ + var mypath=$('control_codebase').value; + var x= $('option_path_x').value; + var y= $('option_path_y').value; + var precoord=x+','+y; + var coord=mouseCoord(); + node.setAttributeNS(null, 'x', coord[0]-2); + node.setAttributeNS(null, 'y', coord[1]-2); + + $('option_path_x').value=parseFloat(node.getAttributeNS(null,'x'))+2; + $('option_path_y').value=parseFloat(node.getAttributeNS(null,'y'))+2; + + var cadx= $('option_path_x').value; + var cady= $('option_path_y').value; + var coord=cadx+','+cady; + var cad1=new RegExp(precoord,"g"); + + + var result=mypath.replace(cad1, coord); + + + $('control_codebase').value=result; + + $('someinfo').value=precoord; + setShape(); + + + +} +*/ +var memoNode=null; +var memoPrevControl=new Array(); +var memoNextControl=new Array(); +SVGRenderer.prototype.nodeMove = function(newx,newy) { + var mypath=$('control_codebase').value; + var x= $('option_path_x').value; + var y= $('option_path_y').value; + var precoord=x+','+y; + + $('option_path_x').value=newx; + $('option_path_y').value=newy; + + var cadx= newx; + var cady= newy; + + var coord=cadx+','+cady; + var cad1=new RegExp(precoord,"g"); + + + var result=mypath.replace(cad1, coord); + + + $('control_codebase').value=result; + + $('someinfo').value=precoord; + setShape(); + +} + +function drawNodeControl(svg,numId){ + + var svgNamespace = 'http://www.w3.org/2000/svg'; + var color1='#0066ff'; + // if(parseInt(memoNode.id)==a){ + + var pointprev=memoPrevControl[numId].split(','); + + var controlNode1 = document.createElementNS(svgNamespace, 'rect'); + controlNode1.setAttributeNS(null, 'x', pointprev[0]-2); + controlNode1.setAttributeNS(null, 'y', pointprev[1]-2); + + controlNode1.setAttributeNS(null, 'width', 4); + controlNode1.setAttributeNS(null, 'height', 4); + controlNode1.setAttributeNS(null, 'fill', color1); + controlNode1.setAttributeNS(null, 'stroke', '#000000'); + controlNode1.setAttributeNS(null, 'stroke-width', '0'); + controlNode1.setAttributeNS(null, 'id', 'controlNode1'); + controlNode1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + svg.appendChild(controlNode1); + + var pointnext=memoNextControl[numId].split(','); + + + var controlNode2 = document.createElementNS(svgNamespace, 'rect'); + controlNode2.setAttributeNS(null, 'x', pointnext[0]-2); + controlNode2.setAttributeNS(null, 'y', pointnext[1]-2); + + controlNode2.setAttributeNS(null, 'width', 4); + controlNode2.setAttributeNS(null, 'height', 4); + controlNode2.setAttributeNS(null, 'fill', color1); + controlNode2.setAttributeNS(null, 'stroke', '#000000'); + controlNode2.setAttributeNS(null, 'stroke-width', '0'); + controlNode2.setAttributeNS(null, 'id', 'controlNode1'); + controlNode2.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + svg.appendChild(controlNode2); + + //} + + +} + +SVGRenderer.prototype.showNodesCurve = function(path,controlNodeNum){ + memoNextControl=new Array(); + memoPrevControl=new Array(); + var svgNamespace = 'http://www.w3.org/2000/svg'; + // tracker = document.createElementNS(svgNamespace, 'g'); + var svg = this.container.ownerDocument.createElementNS(svgNamespace, 'g'); + svg.setAttributeNS(null, 'id', 'editNodesPath'); + + /* var group = document.getElementById('editNodesPath'); + if (group) + { + this.remove(group); + } + */ + + var points=path.split(' '); + var chain=''; + var segment=' '; + prevControl=' '; + nextControl=' '; + nodePoint=' '; + var init=points[0].split('M'); + var allcoords=init[1].split(' '); + var point=allcoords[0].split(','); + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'x', point[0]-2); + rect1.setAttributeNS(null, 'y', point[1]-2); + + rect1.setAttributeNS(null, 'width', 4); + rect1.setAttributeNS(null, 'height', 4); + rect1.setAttributeNS(null, 'fill', '#ff7700'); + rect1.setAttributeNS(null, 'stroke', '#000000'); + rect1.setAttributeNS(null, 'stroke-width', '0'); + rect1.setAttributeNS(null, 'id', '0'); + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'stroke-width', 1 ); }, false); + rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'stroke-width', 0 );}, false); + + svg.appendChild(rect1); + + if(controlNodeNum==0){ var color='#ffff00';} + if(controlNodeNum==1){var color='#00ffff';} + if(controlNodeNum==2){var color='#00cc00';} + var color1='#ffff00'; + + var numpoints=points.length-1; + var recalls=''; + var re = /^[-]?\d*\.?\d*$/; + for(var a=1;a<=numpoints;a++) + { + + var ini=points[a].substring(0,1); + if (!ini.match(re)) + { + var end=points[a].substring(1); + color='#0000ff'; + if(ini=='L' || ini=='M') + { + color='#ffff00'; + } + + if(ini=='C') + { + recall=a+2; + //color='#ffff00'; + } + + }else + { + var end=points[a]; + var ini=''; + color='#ff00ff'; + if(a==recall) + { + color='#ffff00'; + } + } + + + //segment=points[a].split(','); + /*prevControl=segment[0]+' '; + nextControl=segment[1]+' '; + nodePoint=segment[2]+' '; + memoPrevControl[a]=prevControl; + memoNextControl[a]=nextControl; + if(controlNodeNum==0){chain+=prevControl; var point=prevControl.split(',');} + if(controlNodeNum==1){chain+=nextControl; var point=nextControl.split(',');} + if(controlNodeNum==2){chain+=nodePoint; var point=nodePoint.split(',');} + if(controlNodeNum==3){chain+=nodePoint; var point=nodePoint.split(',');} + + */ + //if (isNaN(valnum)) + + //if(ini=='C'){color='#ff00ff';} + + var point=end.split(','); + if(memoNode!=null){ + } + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'x', point[0]-2); + rect1.setAttributeNS(null, 'y', point[1]-2); + + rect1.setAttributeNS(null, 'width', 4); + rect1.setAttributeNS(null, 'height', 4); + rect1.setAttributeNS(null, 'fill', color); + rect1.setAttributeNS(null, 'stroke', '#000000'); + rect1.setAttributeNS(null, 'stroke-width', '0'); + rect1.setAttributeNS(null, 'id', ''+a); + rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );}drawNodeControl(svg,this.getAttributeNS(null,'id')); memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + // rect1.addEventListener("mousedown", function(event) {nodeHit(this);if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; document.forms[0].option_path_x.focus(); }, false); + //rect1.addEventListener("mousedown", function(event) { if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} nodeHit(this); memoNode=this;this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + //rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} addControlPoints(segment[0],segment[1],svg); memoNode=this; this.setAttributeNS(null, 'fillColor', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + //rect1.addEventListener("mouseup", function(event) {nodeUp(this); }, false); + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'fillColor', '#ffcc00' ); }, false); + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'fillColor', '#00cc00' ); }, false); + + + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'stroke-width', 0 ); }, false); + + svg.appendChild(rect1); + + } + var info=''; + + if(controlNodeNum==0){info='prev Control'} + if(controlNodeNum==1){info='next Control'} + if(controlNodeNum==2){info='points node'} + // $('someinfo').value=numpoints+ ' '+info+':'+ chain; + $('someinfo').value='Crtl+Arrow to move'; + //return chain; + + + //this.svgRoot.appendChild(svg); + + return svg; + +}; + +SVGRenderer.prototype.showNodesCurve1 = function(path,controlNodeNum){ + memoNextControl=new Array(); + memoPrevControl=new Array(); + var svgNamespace = 'http://www.w3.org/2000/svg'; + // tracker = document.createElementNS(svgNamespace, 'g'); + var svg = this.container.ownerDocument.createElementNS(svgNamespace, 'g'); + svg.setAttributeNS(null, 'id', 'editNodesPath'); + + /* var group = document.getElementById('editNodesPath'); + if (group) + { + this.remove(group); + } + */ + + var points=path.split('C'); + var chain=''; + var segment=' '; + prevControl=' '; + nextControl=' '; + nodePoint=' '; + var init=points[0].split('M'); + var allcoords=init[1].split(' '); + var point=allcoords[0].split(','); + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'x', point[0]-2); + rect1.setAttributeNS(null, 'y', point[1]-2); + + rect1.setAttributeNS(null, 'width', 4); + rect1.setAttributeNS(null, 'height', 4); + rect1.setAttributeNS(null, 'fill', '#ff7700'); + rect1.setAttributeNS(null, 'stroke', '#000000'); + rect1.setAttributeNS(null, 'stroke-width', '0'); + rect1.setAttributeNS(null, 'id', '0'); + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'stroke-width', 1 ); }, false); + rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'stroke-width', 0 );}, false); + + svg.appendChild(rect1); + + if(controlNodeNum==0){ var color='#ffff00';} + if(controlNodeNum==1){var color='#00ffff';} + if(controlNodeNum==2){var color='#00cc00';} + var color1='#ffff00'; + + var numpoints=points.length-1; + for(var a=1;a<=numpoints;a++) + { + + + + segment=points[a].split(' '); + prevControl=segment[0]+' '; + nextControl=segment[1]+' '; + nodePoint=segment[2]+' '; + memoPrevControl[a]=prevControl; + memoNextControl[a]=nextControl; + if(controlNodeNum==0){chain+=prevControl; var point=prevControl.split(',');} + if(controlNodeNum==1){chain+=nextControl; var point=nextControl.split(',');} + if(controlNodeNum==2){chain+=nodePoint; var point=nodePoint.split(',');} + if(controlNodeNum==3){chain+=nodePoint; var point=nodePoint.split(',');} + + if(memoNode!=null){ + } + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'x', point[0]-2); + rect1.setAttributeNS(null, 'y', point[1]-2); + + rect1.setAttributeNS(null, 'width', 4); + rect1.setAttributeNS(null, 'height', 4); + rect1.setAttributeNS(null, 'fill', color); + rect1.setAttributeNS(null, 'stroke', '#000000'); + rect1.setAttributeNS(null, 'stroke-width', '0'); + rect1.setAttributeNS(null, 'id', ''+a); + rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );}drawNodeControl(svg,this.getAttributeNS(null,'id')); memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + // rect1.addEventListener("mousedown", function(event) {nodeHit(this);if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} memoNode=this; this.setAttributeNS(null, 'fill-color', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; document.forms[0].option_path_x.focus(); }, false); + //rect1.addEventListener("mousedown", function(event) { if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} nodeHit(this); memoNode=this;this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + //rect1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttributeNS(null, 'stroke-width', 0 );} addControlPoints(segment[0],segment[1],svg); memoNode=this; this.setAttributeNS(null, 'fillColor', '#ffff00' );this.setAttributeNS(null, 'stroke-width', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttributeNS(null,'x'))+2; $('option_path_y').value=parseFloat(this.getAttributeNS(null,'y'))+2; }, false); + //rect1.addEventListener("mouseup", function(event) {nodeUp(this); }, false); + //rect1.addEventListener("mouseover", function(event) {this.setAttributeNS(null, 'fillColor', '#ffcc00' ); }, false); + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'fillColor', '#00cc00' ); }, false); + + + //rect1.addEventListener("mouseout", function(event) {this.setAttributeNS(null, 'stroke-width', 0 ); }, false); + + svg.appendChild(rect1); + + } + var info=''; + + if(controlNodeNum==0){info='prev Control'} + if(controlNodeNum==1){info='next Control'} + if(controlNodeNum==2){info='points node'} + // $('someinfo').value=numpoints+ ' '+info+':'+ chain; + $('someinfo').value='Crtl+Arrow to move'; + //return chain; + + + //this.svgRoot.appendChild(svg); + + return svg; + +}; +SVGRenderer.prototype.showTracker = function(shape,pathsEdit) { + + var box = shape.getBBox(); + var matrix = shape.getScreenCTM(); + var trshape= shape.getAttributeNS(null, 'transform'); + var shap=1; + var T = shape.getCTM(); + //a,b,c,d,e,f + + + + + //var thisTransform = { sx: s[0], r: shape.vRotate, t: shape.vTranslate }; + //if (currentTransform != null) alert(currentTransform.t); + + if (shape.tagName == 'rect') { + + $('option_rect_rot').value= T.b* (Math.PI * 2 / 360); + $('option_rect_trx').value= box.x; + $('option_rect_try').value= box.y; + $('option_rect_sclx').value= box.width; + $('option_rect_scly').value= box.height; + + } + + if (shape.tagName == 'image'){ + $('option_img_trx').value= box.x; + $('option_img_try').value= box.y; + $('option_img_sclx').value= box.width; + $('option_img_scly').value= box.height; + $('option_img_rot').value= T.b* (Math.PI * 2 / 360); + } + if (shape.tagName == 'text'){ + /* f$('option_text_trx').value= box.x; + $('option_text_try').value= box.y; + $('option_text_sclx').value= box.width; + $('option_text_scly').value= box.height; + $('option_text_rot').value= T.b* (Math.PI * 2 / 360); + */ + } + if (shape.tagName == 'line'){ + /* + $('option_line_trx').value= box.x; + $('option_line_try').value= box.y; + */ + } + if (shape.tagName == 'ellipse'){ + /*$('option_ellipse_trx').value= putx; + $('option_ellipse_try').value= puty; + $('option_ellipse_sclx').value= box.width; + $('option_ellipse_scly').value= box.height; + $('option_ellipse_rot').value= T.b* (Math.PI * 2 / 360); + */ + } + + + + /* if (shape.getAttributeNS(null, 'transform') ) { + + + shap=2; }else{ + }*/ + var tracker = document.getElementById('tracker'); + if (tracker) { + this.remove(tracker); + } + + var svgNamespace = 'http://www.w3.org/2000/svg'; + + tracker = document.createElementNS(svgNamespace, 'g'); + tracker.setAttributeNS(null, 'id', 'tracker'); + + var controlPoints=null; + if (shape.tagName == 'path') { shap=2; + + /* $('option_path_trx').value= box.x; + $('option_path_try').value= box.y; + $('option_path_sclx').value= T.a; + $('option_path_scly').value= T.d; + $('option_path_rot').value= T.b* (Math.PI * 2 / 360); + */ + var path=shape.getAttributeNS(null, 'd'); + $('control_codebase').value=path; + + //controlPoints=this.showNodesCurve(path,0); + //controlPoints=this.showNodesCurve(path,1); + controlPoints=this.showNodesCurve(path,2); + + + /* controlPoints=this.showNodesCurve(path,1); + + tracker.appendChild(controlPoints); + + controlPoints=this.showNodesCurve(path,0); + + tracker.appendChild(controlPoints); + */ + } + + var svg = this.container.ownerDocument.createElementNS(svgNamespace, 'g'); + svg.setAttributeNS(null, 'id', 'transformSquares'); + + + //var rect = document.createElementNS(svgNamespace, 'rect'); + var border = document.createElementNS(svgNamespace, 'path'); + + var trshape='translate (0,0) rotate(0) translate(0,0) '; + var trshape_split=trshape.split(') '); + + // get_between (trshape, s1, s2) ; + if(shape.getAttributeNS(null, 'transform')){ + var trshape=shape.getAttributeNS(null, 'transform') ; + //var spl=trshape.replace(', ',' '); + //var spl1=spl.replace(')',' '); + var trshape_split=trshape.split(') '); + + + } + + var corners = []; + var point = createPoint(box.x, box.y, box.width, box.height); + //point = {x:box.x, y:box.y, width: box.width, height:box.height}; +//point = createPoint(box.x, box.y, box.width, box.height); + //1 + corners.push( createPoint(box.x + box.width, box.y, box.width, box.height) ); + point.x = box.x + box.width; + point.y = box.y; + //2 + corners.push( createPoint(box.x + box.width, box.y + box.height, box.width, box.height) ); + point.x = box.x + box.width; + point.y = box.y + box.height; + //3 + //corners.push( point.matrixTransform(matrix) ); + corners.push( createPoint(box.x , box.y + box.height, box.width, box.height) ); + point.x = box.x; + point.y = box.y + box.height; + //4 + corners.push( createPoint(box.x + box.width, box.y, box.width, box.height) ); + + var max = createPoint(corners[0].x, corners[0].y); + var min = createPoint(corners[0].x, corners[0].y); + + // identify the new corner coordinates of the + // fully transformed bounding box + for (var i = 1; i < corners.length; i++) { + var x = corners[i].x; + var y = corners[i].y; + if (x < min.x) { + min.x = x; + } + else if (x > max.x) { + max.x = x; + } + if (y < min.y) { + min.y = y; + } + else if (y > max.y) { + max.y = y; + } + } + + // return the bounding box as an SVGRect object + //rect = document.createElementNS(svgNamespace, 'rect'); + //rect.setAttributeNS(null, 'x', min.x-10); + //rect.setAttributeNS(null, 'y', min.y-10); + + //rect.setAttributeNS(null, 'width', max.x - min.x+20); + //rect.setAttributeNS(null, 'height', max.y - min.y+20); + + border.setAttributeNS(null, 'd', "M"+(min.x-10)+","+ (min.y-10)+' h'+(box.width+20)+','+(0)+' v'+(0)+','+(box.height+20)+' h'+(-box.width-20)+','+(0)+' z M'+(box.x+box.width+10)+","+ (box.y+(box.height/2)+' h'+(25)+',0 ')); + + + border.setAttributeNS(null, 'fill', 'none'); + border.setAttributeNS(null, 'stroke', '#cccccc'); + border.setAttributeNS(null, 'stroke-width', '1'); + +// createRect(min.x, min.y, max.x - min.x, max.y - min.y); + + var circle1 = document.createElementNS(svgNamespace, 'ellipse'); + circle1.setAttributeNS(null, 'cx', (box.x + box.width+40) + 'px'); + circle1.setAttributeNS(null, 'cy', (box.y + box.height / 2) + 'px'); + circle1.setAttributeNS(null, 'rx', (5) + 'px'); + circle1.setAttributeNS(null, 'ry', (5) + 'px'); + circle1.setAttributeNS(null, 'fill', '#ffffff'); + circle1.setAttributeNS(null, 'stroke', 'green'); + circle1.setAttributeNS(null, 'stroke-width', '1'); + + var circleCenter = document.createElementNS(svgNamespace, 'ellipse'); + circleCenter.setAttributeNS(null, 'cx', (box.x + (box.width/2)) + 'px'); + circleCenter.setAttributeNS(null, 'cy', (box.y + (box.height /2)) + 'px'); + circleCenter.setAttributeNS(null, 'rx', (10) + 'px'); + circleCenter.setAttributeNS(null, 'ry', (10) + 'px'); + circleCenter.setAttributeNS(null, 'fill', '#ffffff'); + circleCenter.setAttributeNS(null, 'stroke', 'green'); + circleCenter.setAttributeNS(null, 'stroke-width', '1'); + + var rect1 = document.createElementNS(svgNamespace, 'rect'); + rect1.setAttributeNS(null, 'width', 10); + rect1.setAttributeNS(null, 'height', 10); + rect1.setAttributeNS(null, 'fill', '#ffffff'); + rect1.setAttributeNS(null, 'stroke', 'green'); + rect1.setAttributeNS(null, 'stroke-width', '1'); + + var rect2 = document.createElementNS(svgNamespace, 'rect'); + rect2.setAttributeNS(null, 'width', 10); + rect2.setAttributeNS(null, 'height', 10); + rect2.setAttributeNS(null, 'fill', '#ffffff'); + rect2.setAttributeNS(null, 'stroke', 'green'); + rect2.setAttributeNS(null, 'stroke-width', '1'); + + var rect3 = document.createElementNS(svgNamespace, 'rect'); + rect3.setAttributeNS(null, 'width', 10); + rect3.setAttributeNS(null, 'height', 10); + rect3.setAttributeNS(null, 'fill', '#ffffff'); + rect3.setAttributeNS(null, 'stroke', 'green'); + rect3.setAttributeNS(null, 'stroke-width', '1'); + + var rect4 = document.createElementNS(svgNamespace, 'rect'); + rect4.setAttributeNS(null, 'width', 10); + rect4.setAttributeNS(null, 'height', 10); + rect4.setAttributeNS(null, 'fill', '#ffffff'); + rect4.setAttributeNS(null, 'stroke', 'green'); + rect4.setAttributeNS(null, 'stroke-width', '1'); + + var rectmid12 = document.createElementNS(svgNamespace, 'rect'); + rectmid12.setAttributeNS(null, 'width', 10); + rectmid12.setAttributeNS(null, 'height', 10); + rectmid12.setAttributeNS(null, 'fill', '#ffffff'); + rectmid12.setAttributeNS(null, 'stroke', 'green'); + rectmid12.setAttributeNS(null, 'stroke-width', '1'); + + var rectmid23 = document.createElementNS(svgNamespace, 'rect'); + rectmid23.setAttributeNS(null, 'width', 10); + rectmid23.setAttributeNS(null, 'height', 10); + rectmid23.setAttributeNS(null, 'fill', '#ffffff'); + rectmid23.setAttributeNS(null, 'stroke', 'green'); + rectmid23.setAttributeNS(null, 'stroke-width', '1'); + + var rectmid34 = document.createElementNS(svgNamespace, 'rect'); + rectmid34.setAttributeNS(null, 'width', 10); + rectmid34.setAttributeNS(null, 'height', 10); + rectmid34.setAttributeNS(null, 'fill', '#ffffff'); + rectmid34.setAttributeNS(null, 'stroke', 'green'); + rectmid34.setAttributeNS(null, 'stroke-width', '1'); + + var rectmid41 = document.createElementNS(svgNamespace, 'rect'); + rectmid41.setAttributeNS(null, 'width', 10); + rectmid41.setAttributeNS(null, 'height', 10); + rectmid41.setAttributeNS(null, 'fill', '#ffffff'); + rectmid41.setAttributeNS(null, 'stroke', 'green'); + rectmid41.setAttributeNS(null, 'stroke-width', '1'); + // rect.setAttributeNS(null, 'x', box.x - 10); + // rect.setAttributeNS(null, 'y', box.y - 10); + + rect1.setAttributeNS(null, 'x', box.x - 10-5); + rect1.setAttributeNS(null, 'y', box.y - 10-5); + + + rect2.setAttributeNS(null, 'x', box.x + box.width +5 ); + rect2.setAttributeNS(null, 'y', box.y -10 -5); + + rect3.setAttributeNS(null, 'x', box.x + box.width+5 ); + rect3.setAttributeNS(null, 'y', box.y + box.height+5); + + rect4.setAttributeNS(null, 'x', box.x -10-5 ); + rect4.setAttributeNS(null, 'y', box.y + box.height+5); + + + + rectmid12.setAttributeNS(null, 'x', box.x + (box.width/2) -5); + rectmid12.setAttributeNS(null, 'y', box.y - 10-5); + + rectmid23.setAttributeNS(null, 'x', box.x + box.width +5 ); + rectmid23.setAttributeNS(null, 'y', box.y + (box.height/2)-5); + + rectmid34.setAttributeNS(null, 'x', box.x + (box.width/2)-5 ); + rectmid34.setAttributeNS(null, 'y', box.y + box.height+5); + + rectmid41.setAttributeNS(null, 'x', box.x -10-5 ); + rectmid41.setAttributeNS(null, 'y', box.y + (box.height/2)-5); + + svg.appendChild(border); + //tracker.appendChild(getScreenBBox (shape)); + //currentTranslate + //currentScale + // shape.setAttributeNS(null,'transform', "translate("+(box.x+(box.width/2))+","+(box.y+(box.height/2))+") rotate("+rotatexxx+") translate("+(-box.x-(box.width/2))+","+(-box.y-(box.height/2))+") "); + + //var trshape=shape.getAttributeNS(null, 'transform') ; + //----tracker.setAttributeNS(null,'transform', "translate("+(box.x+(box.width/2))+","+(box.y+(box.height/2))+") "+trshape_split[1]+") translate("+(-box.x-(box.width/2))+","+(-box.y-(box.height/2))+") "); + + + + //} + // tracker.appendChild(getScreenBBox (shape)); + var colorin="#ff0000"; + var colorout="#ffffff" + + circle1.addEventListener("mouseover", function(event) {circle1.setAttributeNS(null, 'cursor', 's-resize'); circle1.setAttributeNS(null, 'fill', colorin ); typeTransform='Rotate'; scaleType='nw'; }, false); + circle1.addEventListener("mouseout", function(event) {circle1.setAttributeNS(null, 'cursor', 'default'); circle1.setAttributeNS(null, 'fill', colorout ); typeTransform='Rotate'; }, false); //typeTransform='rotate' + circleCenter.addEventListener("mouseover", function(event) {circleCenter.setAttributeNS(null, 'cursor', 'move'); circleCenter.setAttributeNS(null, 'fill', colorin ); typeTransform='spìnCenter'; scaleType='nw'; }, false); + circleCenter.addEventListener("mouseout", function(event) {circleCenter.setAttributeNS(null, 'cursor', 'default'); circleCenter.setAttributeNS(null, 'fill', colorout ); typeTransform=''; }, false); //typeTransform='rotate' + + + //rect1.addEventListener("mouseover", cursore1in, false); + rect1.addEventListener("mouseover", function(event) {rect1.setAttributeNS(null, 'cursor', 'nw-resize'); rect1.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='nw';}, false); + rect1.addEventListener("mouseout", function(event) {rect1.setAttributeNS(null, 'cursor', 'default'); rect1.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); //typeTransform='rotate' + //rect1.addEventListener("click", function(event) { rect1.setAttributeNS(null, 'fill', '#00ff00' ); typeTransform='Scale'; }, false); + + rect2.addEventListener("mouseover", function(event) {rect2.setAttributeNS(null, 'cursor', 'ne-resize'); rect2.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='ne';}, false); + rect2.addEventListener("mouseout", function(event) {rect2.setAttributeNS(null, 'cursor', 'default'); rect2.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rect3.addEventListener("mouseover", function(event) {rect3.setAttributeNS(null, 'cursor', 'se-resize'); rect3.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='se';}, false); + rect3.addEventListener("mouseout", function(event) {rect3.setAttributeNS(null, 'cursor', 'default'); rect3.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rect4.addEventListener("mouseover", function(event) {rect4.setAttributeNS(null, 'cursor', 'sw-resize'); rect4.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='sw';}, false); + rect4.addEventListener("mouseout", function(event) {rect4.setAttributeNS(null, 'cursor', 'default'); rect4.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rectmid12.addEventListener("mouseover", function(event) {rectmid12.setAttributeNS(null, 'cursor', 'n-resize'); rectmid12.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='n';}, false); + rectmid12.addEventListener("mouseout", function(event) {rectmid12.setAttributeNS(null, 'cursor', 'default'); rectmid12.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rectmid23.addEventListener("mouseover", function(event) {rectmid23.setAttributeNS(null, 'cursor', 'e-resize'); rectmid23.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='e';}, false); + rectmid23.addEventListener("mouseout", function(event) {rectmid23.setAttributeNS(null, 'cursor', 'default'); rectmid23.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rectmid34.addEventListener("mouseover", function(event) {rectmid34.setAttributeNS(null, 'cursor', 's-resize'); rectmid34.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='s';}, false); + rectmid34.addEventListener("mouseout", function(event) {rectmid34.setAttributeNS(null, 'cursor', 'default'); rectmid34.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + rectmid41.addEventListener("mouseover", function(event) {rectmid41.setAttributeNS(null, 'cursor', 'w-resize'); rectmid41.setAttributeNS(null, 'fill', colorin ); typeTransform='Scale'; scaleType='w'; }, false); + rectmid41.addEventListener("mouseout", function(event) {rectmid41.setAttributeNS(null, 'cursor', 'default'); rectmid41.setAttributeNS(null, 'fill', colorout ); typeTransform='Scale'; }, false); + + ////////// + svg.setAttributeNS(null, 'transform',trshape); + + svg.appendChild(circle1); + //tracker.appendChild(circleCenter); + if (shape.tagName == 'text'){ + svg.appendChild(rect1); + svg.appendChild(rect2); + svg.appendChild(rect3); + svg.appendChild(rect4); + }else{ + svg.appendChild(rect1); + svg.appendChild(rect2); + svg.appendChild(rect3); + svg.appendChild(rect4); + svg.appendChild(rectmid12); + svg.appendChild(rectmid23); + svg.appendChild(rectmid34); + svg.appendChild(rectmid41); + + } + if(pathsEdit) + { + controlPoints.setAttributeNS(null, 'transform',trshape); + tracker.appendChild(controlPoints); + }else{ + tracker.appendChild(svg); + } + this.svgRoot.appendChild(tracker); + +} + + +SVGRenderer.prototype.getMarkup = function() { + + return this.container.innerHTML; +} + + +///////////////////////////////// +var rotatexxx=0; + +var scaleType=''; +var xrot=0; +var yrot=0; + +var point = {x:0, y:0, width: 0, height:0}; + +function createPoint (x, y, width, height) { + //var point = {x:34, y:22, width: 22, height:23}; + //point.x = x; + //point.y = y; + point = {x:x, y:y, width: width, height:height}; + return point; + } + +/////////////////////////////// + +SVGRenderer.prototype.restruct= function(shape) +{ + //alert('end'); + //forceRedraw(); +//clearWorkspace(); +//document.getElementById('richdraw').style.cursor='default'; +}; + + + +SVGRenderer.prototype.transform = function() { + //document.forms[0].code.value='Im tranforming'; +}; + +SVGRenderer.prototype.scaleShape = function(shape,previus, toX, toY) { + + var box = shape.getBBox(); + var prevbox=previus.getBBox(); + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + var coord=this.editor.inputxy; + toX=parseFloat(coord[0]); + toY=parseFloat(coord[1]); + var d2p_center=dist2p(centerx,centery,toX,toY); + + var d2p=dist2p(box.x,box.y,toX,toY); + + var shareScale=box.width/d2p; + + var trans_ShareScale=''; + var tx, ty, tw, yh; + + if(scaleType.length==1){ + if(scaleType== 'w') + { + trans_ShareScale=shareScale+",1"; + tx=toX; + ty=prevbox.y; + var dist=prevbox.x-toX; + var w=dist+prevbox.width; + if(w<1){w=1;} + tw=w; + th=prevbox.height; + //document.forms[0].code.value=box.x+' '+toX+' '+dist+''; + } + if(scaleType== 'e') + { + trans_ShareScale=shareScale+",1"; + tx=prevbox.x; + ty=prevbox.y; + var dist=toX-(prevbox.x+prevbox.width); //dist2p(toX,b,c,d); + var w=dist+prevbox.width; + if(w<1){w=1;} + tw=w; + th=prevbox.height; + + } + if(scaleType== 'n') + { + trans_ShareScale="1,"+shareScale; + + tx=prevbox.x; + ty=toY; + var dist=prevbox.y-toY; + var h=dist+prevbox.height; + if(h<1){h=1;} + tw=prevbox.width; + th=h; + + } + if( scaleType== 's') + { + trans_ShareScale="1,"+shareScale; + + tx=prevbox.x; + ty=prevbox.y; + var dist=toY-(prevbox.y+prevbox.height); //dist2p(toX,b,c,d); + var h=dist+prevbox.height; + if(h<1){h=1;} + tw=prevbox.width; + th=h; + + } + } + if(scaleType.length==2){ + if(scaleType== 'nw'){ + trans_ShareScale=shareScale+","+shareScale; + + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + var angle_diagonal=ang2v(prevbox.x,prevbox.y,prevbox.x+prevbox.width,prevbox.y+prevbox.height) + + var ax= prevbox.x; + var ay= prevbox.y; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y+prevbox.height; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + this.editor.log(angle_diagonal* 180 / Math.PI); + + var tx= section_a[1]; + var ty= section_a[2]; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x+prevbox.width; + var cy= prevbox.y; + + var dx= prevbox.x+prevbox.width; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1] + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y+prevbox.height; + + var dx= 0; + var dy= prevbox.y+prevbox.height; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + + } + + //////////////////// SE + + if( scaleType== 'se'){ + trans_ShareScale=shareScale+","+shareScale; + + + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + var angle_diagonal=ang2v(prevbox.x,prevbox.y,prevbox.x+prevbox.width,prevbox.y+prevbox.height) + + + + var ax= prevbox.x; + var ay= prevbox.y; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y+prevbox.height; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tracker = document.getElementById('tracker'); + + ////////// + var tx= prevbox.x; + var ty= prevbox.y; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x; + var cy= prevbox.y; + + var dx= prevbox.x; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + ///////////////// + + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1] + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y; + + var dx=0; + var dy= prevbox.y; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + /////////////// + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + + tw=distx; + th=disty; + + + } + + if(scaleType== 'ne'){ + + trans_ShareScale=shareScale+","+shareScale; + + var angle_diagonal=ang2v(prevbox.x,prevbox.y+prevbox.height,prevbox.x+prevbox.width,prevbox.y) + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + + + + + var ax= prevbox.x; + var ay= prevbox.y+prevbox.height; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + + this.editor.log(angle_diagonal); + + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tracker = document.getElementById('tracker'); + + ////////// + var tx= prevbox.x; + var ty= section_a[2]; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x; + var cy= prevbox.y; + + var dx= prevbox.x; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + ///////////////// + + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1]; + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y+prevbox.height; + + var dx=0; + var dy= prevbox.y+prevbox.height; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + /////////////// + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + + + + + } + if(scaleType== 'sw'){ + trans_ShareScale=shareScale+","+shareScale; + + + + + var angle_diagonal=ang2v(prevbox.x,prevbox.y+prevbox.height,prevbox.x+prevbox.width,prevbox.y) + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + + + + + var ax= prevbox.x; + var ay= prevbox.y+prevbox.height; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + + this.editor.log(angle_diagonal); + + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + var svgNamespace = 'http://www.w3.org/2000/svg'; + var tracker = document.getElementById('tracker'); + + ////////// + var tx= section_a[1]; + var ty= prevbox.y; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x+prevbox.width; + var cy= prevbox.y+prevbox.height; + + var dx= prevbox.x+prevbox.width; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + ///////////////// + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1]; + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y; + + var dx=0; + var dy= prevbox.y; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + /////////////// + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + } + + } + + + + if(shape.tagName == 'rect') + { + //alert(data[0]); + shape.setAttributeNS(null,'x',tx); + shape.setAttributeNS(null,'y',ty); + shape.setAttributeNS(null, 'width', tw); + shape.setAttributeNS(null, 'height', th); + + //shape.nodparseFloatue=data; + } + else + if(shape.tagName == 'text') + { + + var tsize=shape.getAttributeNS(null, 'font-size') ; + tsize=eval(tsize); + //shape.setAttributeNS(null, 'x', tx + 'px'); + //shape.setAttributeNS(null, 'y', ty + 'px'); + //var mysize=box.height+1 ; + var mysize=parseInt(Math.round(th)); + + if(scaleType== 'ne'){ shape.setAttributeNS(null, 'font-size',tsize+1);} + //shape.setAttributeNS(null, 'font-size', mysize); + + + /* + shape.setAttributeNS(null,'x',tx); + shape.setAttributeNS(null,'y',ty); + shape.setAttributeNS(null, 'width', tw); + shape.setAttributeNS(null, 'height', th); + + //previus.setAttributeNS(null,'transform', "scale("+trans_ShareScale+")"); + shape.setAttributeNS(null, 'x', tx + 'px'); + shape.setAttributeNS(null, 'y', ty + 'px'); + + shape.setAttributeNS(null, 'textLength', parseInt(Math.round(tw))); + + */ + } + else + if(shape.tagName == 'ellipse') + { + //shape.getAttributeNS(null, 'transform) + shape.setAttributeNS(null, 'cx', (tx + (box.width / 2)) + 'px'); + shape.setAttributeNS(null, 'cy', (ty + (box.height / 2)) + 'px'); + shape.setAttributeNS(null, 'rx', (tw / 2) + 'px'); + shape.setAttributeNS(null, 'ry', (th / 2) + 'px'); + + + } + else + if(shape.tagName == 'line') + { + shape.setAttributeNS(null, 'x1', tx + 'px'); + shape.setAttributeNS(null, 'y1', ty + 'px'); + shape.setAttributeNS(null, 'x2', tx + tw + 'px'); + shape.setAttributeNS(null, 'y2', ty + th + 'px'); + + } + else + if (shape.tagName == 'polyline') + { + + } + else + if (shape.tagName == 'image') + { + shape.setAttributeNS(null,'x',tx); + shape.setAttributeNS(null,'y',ty); + shape.setAttributeNS(null, 'width', tw); + shape.setAttributeNS(null, 'height', th); + + } + else + if (shape.tagName == 'path') + { + // var xscale= box.width/tw; + // var yscale= box.height/th; + var xscale= tw/box.width; + var yscale= th/box.height; + var xinc=xscale;//dist*angx; + var yinc=yscale/ty;//dist*angy; + + if(scaleType== 'n') + { + tx=box.x+(box.width/2); + ty=box.y+box.height; + var xinc=1; + var yinc=box.y/toY;//dist*angy; + + } + if(scaleType== 's') + { + tx=box.x+(box.width/2); + ty=box.y; + var xinc=1; + var yinc=toY/(box.y+box.height);//dist*angy; + } + if(scaleType== 'e') + { + tx=box.x; + ty=box.y+(box.height/2); + var xinc=toX/(box.x+box.width); + var yinc=1; + + } + if(scaleType== 'w') + { + tx=box.x+box.width; + ty=box.y+(box.height/2); + var xinc=box.x/toX; + var yinc=1; + + } + if(scaleType== 'ne') + { + tx=box.x; + ty=box.y+box.height; + var xinc=toX/(box.x+box.width); + var yinc=xinc; + } + if(scaleType== 'nw') + { + tx=box.x+box.width; + ty=box.y+box.height; + var xinc=box.x/toX; + var yinc=xinc; + } + if(scaleType== 'se') + { + tx=box.x; + ty=box.y; + var xinc=toX/(box.x+box.width); + var yinc=xinc; + } + if(scaleType== 'sw') + { + tx=(box.x+box.width); + ty=box.y; + var xinc=box.x/toX; + var yinc=xinc; + } + if(xinc==0){ xinc= 0.0000001;} + if(yinc==0){ yinc= 0.0000001; } + var prevpath=previus.getAttributeNS(null, 'd'); + var path=shape.getAttributeNS(null, 'd'); +//////////// + + + //xshe=left; + //yshe=top; + + path=path.replace(/, /g, ','); + path=path.replace(/ ,/g, ','); + var ps =path.split(" ") + var pcc = ""; + var point =ps[0].split(","); + + + var num0= parseFloat(point[0].substring(1)); + var num1= parseFloat(point[1]); + + + var ang= ang2v(box.x,box.y,tx,ty) ; + var angle = Math.round((ang/Math.PI* 2)* 360); + var angx = Math.cos(ang); + var angy = Math.sin(ang); + var dist= dist2p(tx,ty,box.x,box.y); + //var xinc=xscale;//dist*angx; + //var yinc=yscale;//dist*angy; + var re = /^[-]?\d*\.?\d*$/; + var axis = $V([tx,ty]); + for(var i = 0; i < ps.length; i++) + { + if(ps[i].indexOf(',')>0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + if(char1=='A' || char1=='a'){isArc=true; contArc=0;} + if(isArc==true){contArc++} + if(contArc==4){contArc=0; isArc=false} + + //if (isNaN(valnum)) + if (!char1.match(re)) + { + var num0= parseFloat(point[0].substring(1)); + var text=char1; + }else{ + if(isArc==true && contArc==2 ) + { + var num0= point[0]; + }else{ + var num0= parseFloat(point[0]); + } + var text=''; + + } + + + if(isArc==true && contArc==2) + { + point[1]= point[1].toString() ; + } + else + { + + //num0*=xinc; + point[1]= parseFloat(point[1]); + //point[1]*=yinc; + var pointIni=$V([num0,point[1],1]); + var matrT = $M([[1,0,-tx],[0,1,-ty],[0,0,1]]); + var matrS = $M([[xinc,0,0],[0,yinc,0],[0,0,1]]); + var matrR = $M([[1,0,tx],[0,1,ty],[0,0,1]]); + var matr1= matrT.x(pointIni); + var matr2= matrS.x(matr1); + //var pointR=pointIni.Random(1) + //var pointR=pointIni.rotate(Math.PI/180,axis); + //var pointRc=pointIni.cross(axis); + //var pointR=matr2; + var pointR=matrR.x(matr2); + num0=pointR.elements[0]; + point[1]=pointR.elements[1]; + $('code').value=pointIni.elements[0]+','+pointR.elements[1]+' '; + } + var cx=num0; + var cy=point[1]; + pcc+=text+cx+','+cy+' '; + //pcc+=text+cx+','+cy+' '; + + }else{ + pcc+=ps[i]+' '; + } + } + + shape.setAttributeNS(null,'d', pcc); + + + +////////////// +/* + path=path.replace(/, /g, ','); + path=path.replace(/ ,/g, ','); + var ps =path.split(" ") + var pcc = ""; + + var xinc=tx-prevbox.x; + var yinc=ty-prevbox.y; + + var re = /^[-]?\d*\.?\d*$/; + for(var i = 0; i < ps.length; i++) + { + if(ps[i].indexOf(',')>0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + point[1]= parseFloat(point[1]); + + // var valnum =char1.charAt(0); + //if (isNaN(valnum)) + if (!char1.match(re)) + + { + var num0= parseFloat(point[0].substring(1)); + var text=char1; + }else{ + var num0= parseFloat(point[0]); + var text=''; + + } + //num0+=dist*angx; + //point[1]+=dist*angy; + num0*=xscale; + point[1]*=yscale; + + // num0+=xinc; + // point[1]+=yinc; + + + + var cx=num0; + var cy=point[1]; + pcc+=text+cx+','+cy+' '; + }else{ + pcc+=ps[i]+' '; + } + } + + + + + + // $('code').value=dist+' '+ ang+' '+'__'+x+'= '+left+'/ '+y+'= ' +top+''; + + //shape.setAttributeNS(null,'transform', "rotate("+left+")"); + + // shape.setAttributeNS(null,'transform', "translate("+trax+","+tray+") rotate("+0+") scale(1,1)"); + shape.setAttributeNS(null,'d', pcc); + + + + + + + + //document.forms[0].code.value=''; + //shape.setAttributeNS(null,'transform', "scale("+trans_ShareScale+")"); + */ + + } + + + + + + + + + + + + + +//$('status').innerHTML=typeTransform+': '+shareScale; + + +}; + + +SVGRenderer.prototype.rotateShape = function(shape, previus, toX, toY) { + + //document.getElementById('richdraw').style.cursor='e-resize'; + var box = shape.getBBox(); + var prevbox=previus.getBBox(); + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + var coord=this.editor.inputxy; + + var actual_angle=ang2v(centerx,centery,coord[0], coord[1]); + + if(xrot0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + if(char1=='A' || char1=='a'){isArc=true; contArc=0;} + if(isArc==true){contArc++} + if(contArc==4){contArc=0; isArc=false} + + //if (isNaN(valnum)) + if (!char1.match(re)) + { + var num0= parseFloat(point[0].substring(1)); + var text=char1; + }else{ + if(isArc==true && contArc==2 ) + { + var num0= point[0]; + }else{ + var num0= parseFloat(point[0]); + } + var text=''; + + } + + + if(isArc==true && contArc==2) + { + point[1]= point[1].toString() ; + } + else + { + + //num0*=xinc; + point[1]= parseFloat(point[1]); + //point[1]*=yinc; + var pointIni=$V([num0,point[1],1]); + var matrT = $M([[1,0,-tx],[0,1,-ty],[0,0,1]]); + var matrS = $M([[xinc,0,0],[0,yinc,0],[0,0,1]]); + var matrR = $M([[1,0,tx],[0,1,ty],[0,0,1]]); + var matr1= matrT.x(pointIni); + var matr2= matrS.x(matr1); + //var pointR=pointIni.Random(1) + //var pointR=pointIni.rotate(Math.PI/180,axis); + //var pointRc=pointIni.cross(axis); + //var pointR=matr2; + var pointR=matrR.x(matr2); + num0=pointR.elements[0]; + point[1]=pointR.elements[1]; + $('code').value=pointIni.elements[0]+','+pointR.elements[1]+' '; + } + var cx=num0; + var cy=point[1]; + pcc+=text+cx+','+cy+' '; + //pcc+=text+cx+','+cy+' '; + + }else{ + pcc+=ps[i]+' '; + } + } + var svg =shape.cloneNode(false); + svg.setAttributeNS(null,'d', pcc); + this.svgRoot.appendChild(svg); + return svg; + } + else + { + if(shape.tagName=="text" || shape.tagName=="image" ) + { + + + var tr=''; + var turn0=''; + var svg =shape.cloneNode(false); + var x= shape.getAttributeNS(null, 'x'); + var y= shape.getAttributeNS(null, 'y'); + x+=box.width/2; + y+=box.height/2; + if(HorV=='V') + { + svg.setAttributeNS(null,'x',-parseFloat(x)); + var scaleSim='-1, 1'; + svg.setAttributeNS(null,'transform','scale('+scaleSim+')'); + //svg.setAttributeNS(null,'y',parseFloat(x)); + svg.setAttributeNS(null,'x',-parseFloat(x)); + + + } + if(HorV=='H') + { + var scaleSim='1, -1'; + svg.setAttributeNS(null,'y',-parseFloat(y)); + svg.setAttributeNS(null,'transform','scale('+scaleSim+')'); + //svg.setAttributeNS(null,'x',parseFloat(x)); + svg.setAttributeNS(null,'y',-parseFloat(y)); + + + } + + if(shape.hasAttributeNS(null, 'transform')) + { + tr=shape.getAttributeNS(null, 'transform'); + turn0=GetString(tr,'rotate(',')'); + + svg.setAttributeNS(null,'transform','rotate('+turn+'),scale('+scaleSim+')'); + svg.setAttributeNS(null,'x',parseFloat(x)); + svg.setAttributeNS(null,'y',parseFloat(y)); + + //svg.setAttributeNS(null,'transform','rotate('+turn+'),scale('+''); + }else{ + + } + + + + if(shape.tagName=="text"){ + var text=shape.textContent ; + svg.textContent=text; + } + //svg.setAttributeNS(null,'writing-mode',mode); + //svg.setAttributeNS(null,'glyph-orientation-horizontal','0deg'); + // + //svg.appendChild(text); + + this.svgRoot.appendChild(svg); + return svg; + } + else + { + if(shape.hasAttributeNS(null, 'transform')) + { + + + var tr=shape.getAttributeNS(null, 'transform'); + var turn0=GetString(tr, 'rotate(',','); + turn0=parseFloat(turn0); + //alert(turn0); + + if(HorV=='V'){ + var angle=180; + //var turn=(turn0+angle)-(turn0-90); + var turn=turn0+((angle-turn0)*2); + } + if(HorV=='H'){ + var angle=90; + var turn=turn0+((angle-turn0)*2); + } + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + //this.editor.log(centerx+' '+centery+' '+coord[0]+' '+coord[1]+'____ '+rot_angle+' '+actual_angle*180/Math.PI); + var svg =shape.cloneNode(false); + svg.setAttributeNS(null,'transform', "rotate("+turn+","+centerx+","+centery+")"); + this.svgRoot.appendChild(svg); + return svg; + } + else + { + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + shape.setAttributeNS(null,'transform', "rotate("+180+","+centerx+","+centery+")"); + + } + } + } +}; +//http://dev.opera.com/articles/view/svg-evolution-2-our-first-steps-into-sv/?page=3 +//http://www.w3.org/TR/2000/03/WD-SVG-20000303/exchange.html#StylingAttributes +//http://www.xml.com/lpt/a/1390 + + + + + + + +//http://xml-utils.com/conferencia-svg.html#d0e527 +//http://www.xml.com/lpt/a/1321 +//http://phrogz.net/objjob/object.asp?id=101 +//http://admisource.gouv.fr/plugins/scmcvs/cvsweb.php/Cassini-ihm/js-yosemite/mapApp.js?rev=1.1;cvsroot=cassini +//http://groups.google.com/group/prototype-graphic/msg/0547c0caea8869c6 +//http://sylvester.jcoglan.com/ \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/sylvester.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/sylvester.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('9 17={3i:\'0.1.3\',16:1e-6};l v(){}v.23={e:l(i){8(i<1||i>7.4.q)?w:7.4[i-1]},2R:l(){8 7.4.q},1u:l(){8 F.1x(7.2u(7))},24:l(a){9 n=7.4.q;9 V=a.4||a;o(n!=V.q){8 1L}J{o(F.13(7.4[n-1]-V[n-1])>17.16){8 1L}}H(--n);8 2x},1q:l(){8 v.u(7.4)},1b:l(a){9 b=[];7.28(l(x,i){b.19(a(x,i))});8 v.u(b)},28:l(a){9 n=7.4.q,k=n,i;J{i=k-n;a(7.4[i],i+1)}H(--n)},2q:l(){9 r=7.1u();o(r===0){8 7.1q()}8 7.1b(l(x){8 x/r})},1C:l(a){9 V=a.4||a;9 n=7.4.q,k=n,i;o(n!=V.q){8 w}9 b=0,1D=0,1F=0;7.28(l(x,i){b+=x*V[i-1];1D+=x*x;1F+=V[i-1]*V[i-1]});1D=F.1x(1D);1F=F.1x(1F);o(1D*1F===0){8 w}9 c=b/(1D*1F);o(c<-1){c=-1}o(c>1){c=1}8 F.37(c)},1m:l(a){9 b=7.1C(a);8(b===w)?w:(b<=17.16)},34:l(a){9 b=7.1C(a);8(b===w)?w:(F.13(b-F.1A)<=17.16)},2k:l(a){9 b=7.2u(a);8(b===w)?w:(F.13(b)<=17.16)},2j:l(a){9 V=a.4||a;o(7.4.q!=V.q){8 w}8 7.1b(l(x,i){8 x+V[i-1]})},2C:l(a){9 V=a.4||a;o(7.4.q!=V.q){8 w}8 7.1b(l(x,i){8 x-V[i-1]})},22:l(k){8 7.1b(l(x){8 x*k})},x:l(k){8 7.22(k)},2u:l(a){9 V=a.4||a;9 i,2g=0,n=7.4.q;o(n!=V.q){8 w}J{2g+=7.4[n-1]*V[n-1]}H(--n);8 2g},2f:l(a){9 B=a.4||a;o(7.4.q!=3||B.q!=3){8 w}9 A=7.4;8 v.u([(A[1]*B[2])-(A[2]*B[1]),(A[2]*B[0])-(A[0]*B[2]),(A[0]*B[1])-(A[1]*B[0])])},2A:l(){9 m=0,n=7.4.q,k=n,i;J{i=k-n;o(F.13(7.4[i])>F.13(m)){m=7.4[i]}}H(--n);8 m},2Z:l(x){9 a=w,n=7.4.q,k=n,i;J{i=k-n;o(a===w&&7.4[i]==x){a=i+1}}H(--n);8 a},3g:l(){8 S.2X(7.4)},2d:l(){8 7.1b(l(x){8 F.2d(x)})},2V:l(x){8 7.1b(l(y){8(F.13(y-x)<=17.16)?x:y})},1o:l(a){o(a.K){8 a.1o(7)}9 V=a.4||a;o(V.q!=7.4.q){8 w}9 b=0,2b;7.28(l(x,i){2b=x-V[i-1];b+=2b*2b});8 F.1x(b)},3a:l(a){8 a.1h(7)},2T:l(a){8 a.1h(7)},1V:l(t,a){9 V,R,x,y,z;2S(7.4.q){27 2:V=a.4||a;o(V.q!=2){8 w}R=S.1R(t).4;x=7.4[0]-V[0];y=7.4[1]-V[1];8 v.u([V[0]+R[0][0]*x+R[0][1]*y,V[1]+R[1][0]*x+R[1][1]*y]);1I;27 3:o(!a.U){8 w}9 C=a.1r(7).4;R=S.1R(t,a.U).4;x=7.4[0]-C[0];y=7.4[1]-C[1];z=7.4[2]-C[2];8 v.u([C[0]+R[0][0]*x+R[0][1]*y+R[0][2]*z,C[1]+R[1][0]*x+R[1][1]*y+R[1][2]*z,C[2]+R[2][0]*x+R[2][1]*y+R[2][2]*z]);1I;2P:8 w}},1t:l(a){o(a.K){9 P=7.4.2O();9 C=a.1r(P).4;8 v.u([C[0]+(C[0]-P[0]),C[1]+(C[1]-P[1]),C[2]+(C[2]-(P[2]||0))])}1d{9 Q=a.4||a;o(7.4.q!=Q.q){8 w}8 7.1b(l(x,i){8 Q[i-1]+(Q[i-1]-x)})}},1N:l(){9 V=7.1q();2S(V.4.q){27 3:1I;27 2:V.4.19(0);1I;2P:8 w}8 V},2n:l(){8\'[\'+7.4.2K(\', \')+\']\'},26:l(a){7.4=(a.4||a).2O();8 7}};v.u=l(a){9 V=25 v();8 V.26(a)};v.i=v.u([1,0,0]);v.j=v.u([0,1,0]);v.k=v.u([0,0,1]);v.2J=l(n){9 a=[];J{a.19(F.2F())}H(--n);8 v.u(a)};v.1j=l(n){9 a=[];J{a.19(0)}H(--n);8 v.u(a)};l S(){}S.23={e:l(i,j){o(i<1||i>7.4.q||j<1||j>7.4[0].q){8 w}8 7.4[i-1][j-1]},33:l(i){o(i>7.4.q){8 w}8 v.u(7.4[i-1])},2E:l(j){o(j>7.4[0].q){8 w}9 a=[],n=7.4.q,k=n,i;J{i=k-n;a.19(7.4[i][j-1])}H(--n);8 v.u(a)},2R:l(){8{2D:7.4.q,1p:7.4[0].q}},2D:l(){8 7.4.q},1p:l(){8 7.4[0].q},24:l(a){9 M=a.4||a;o(1g(M[0][0])==\'1f\'){M=S.u(M).4}o(7.4.q!=M.q||7.4[0].q!=M[0].q){8 1L}9 b=7.4.q,15=b,i,G,10=7.4[0].q,j;J{i=15-b;G=10;J{j=10-G;o(F.13(7.4[i][j]-M[i][j])>17.16){8 1L}}H(--G)}H(--b);8 2x},1q:l(){8 S.u(7.4)},1b:l(a){9 b=[],12=7.4.q,15=12,i,G,10=7.4[0].q,j;J{i=15-12;G=10;b[i]=[];J{j=10-G;b[i][j]=a(7.4[i][j],i+1,j+1)}H(--G)}H(--12);8 S.u(b)},2i:l(a){9 M=a.4||a;o(1g(M[0][0])==\'1f\'){M=S.u(M).4}8(7.4.q==M.q&&7.4[0].q==M[0].q)},2j:l(a){9 M=a.4||a;o(1g(M[0][0])==\'1f\'){M=S.u(M).4}o(!7.2i(M)){8 w}8 7.1b(l(x,i,j){8 x+M[i-1][j-1]})},2C:l(a){9 M=a.4||a;o(1g(M[0][0])==\'1f\'){M=S.u(M).4}o(!7.2i(M)){8 w}8 7.1b(l(x,i,j){8 x-M[i-1][j-1]})},2B:l(a){9 M=a.4||a;o(1g(M[0][0])==\'1f\'){M=S.u(M).4}8(7.4[0].q==M.q)},22:l(a){o(!a.4){8 7.1b(l(x){8 x*a})}9 b=a.1u?2x:1L;9 M=a.4||a;o(1g(M[0][0])==\'1f\'){M=S.u(M).4}o(!7.2B(M)){8 w}9 d=7.4.q,15=d,i,G,10=M[0].q,j;9 e=7.4[0].q,4=[],21,20,c;J{i=15-d;4[i]=[];G=10;J{j=10-G;21=0;20=e;J{c=e-20;21+=7.4[i][c]*M[c][j]}H(--20);4[i][j]=21}H(--G)}H(--d);9 M=S.u(4);8 b?M.2E(1):M},x:l(a){8 7.22(a)},32:l(a,b,c,d){9 e=[],12=c,i,G,j;9 f=7.4.q,1p=7.4[0].q;J{i=c-12;e[i]=[];G=d;J{j=d-G;e[i][j]=7.4[(a+i-1)%f][(b+j-1)%1p]}H(--G)}H(--12);8 S.u(e)},31:l(){9 a=7.4.q,1p=7.4[0].q;9 b=[],12=1p,i,G,j;J{i=1p-12;b[i]=[];G=a;J{j=a-G;b[i][j]=7.4[j][i]}H(--G)}H(--12);8 S.u(b)},1y:l(){8(7.4.q==7.4[0].q)},2A:l(){9 m=0,12=7.4.q,15=12,i,G,10=7.4[0].q,j;J{i=15-12;G=10;J{j=10-G;o(F.13(7.4[i][j])>F.13(m)){m=7.4[i][j]}}H(--G)}H(--12);8 m},2Z:l(x){9 a=w,12=7.4.q,15=12,i,G,10=7.4[0].q,j;J{i=15-12;G=10;J{j=10-G;o(7.4[i][j]==x){8{i:i+1,j:j+1}}}H(--G)}H(--12);8 w},30:l(){o(!7.1y){8 w}9 a=[],n=7.4.q,k=n,i;J{i=k-n;a.19(7.4[i][i])}H(--n);8 v.u(a)},1K:l(){9 M=7.1q(),1c;9 n=7.4.q,k=n,i,1s,1n=7.4[0].q,p;J{i=k-n;o(M.4[i][i]==0){2e(j=i+1;j17.16){1Y++;1I}}H(--G)}H(--a);8 1Y},3d:l(){8 7.1Y()},2W:l(a){9 M=a.4||a;o(1g(M[0][0])==\'1f\'){M=S.u(M).4}9 T=7.1q(),1p=T.4[0].q;9 b=T.4.q,15=b,i,G,10=M[0].q,j;o(b!=M.q){8 w}J{i=15-b;G=10;J{j=10-G;T.4[i][1p+j]=M[i][j]}H(--G)}H(--b);8 T},2w:l(){o(!7.1y()||7.2y()){8 w}9 a=7.4.q,15=a,i,j;9 M=7.2W(S.I(a)).1K();9 b,1n=M.4[0].q,p,1c,2v;9 c=[],2c;J{i=a-1;1c=[];b=1n;c[i]=[];2v=M.4[i][i];J{p=1n-b;2c=M.4[i][p]/2v;1c.19(2c);o(p>=15){c[i].19(2c)}}H(--b);M.4[i]=1c;2e(j=0;j3||b.4.q>3){8 w}9 c=b.1u();o(c===0){8 w}7.K=a;7.U=v.u([b.4[0]/c,b.4[1]/c,b.4[2]/c]);8 7}};14.u=l(a,b){9 L=25 14();8 L.1Z(a,b)};14.X=14.u(v.1j(3),v.i);14.Y=14.u(v.1j(3),v.j);14.Z=14.u(v.1j(3),v.k);l 11(){}11.23={24:l(a){8(7.1h(a.K)&&7.1m(a))},1q:l(){8 11.u(7.K,7.W)},2U:l(a){9 V=a.4||a;8 11.u([7.K.4[0]+V[0],7.K.4[1]+V[1],7.K.4[2]+(V[2]||0)],7.W)},1m:l(a){9 b;o(a.W){b=7.W.1C(a.W);8(F.13(b)<=17.16||F.13(F.1A-b)<=17.16)}1d o(a.U){8 7.W.2k(a.U)}8 w},2k:l(a){9 b=7.W.1C(a.W);8(F.13(F.1A/2-b)<=17.16)},1o:l(a){o(7.1v(a)||7.1h(a)){8 0}o(a.K){9 A=7.K.4,B=a.K.4,N=7.W.4;8 F.13((A[0]-B[0])*N[0]+(A[1]-B[1])*N[1]+(A[2]-B[2])*N[2])}1d{9 P=a.4||a;9 A=7.K.4,N=7.W.4;8 F.13((A[0]-P[0])*N[0]+(A[1]-P[1])*N[1]+(A[2]-(P[2]||0))*N[2])}},1h:l(a){o(a.W){8 w}o(a.U){8(7.1h(a.K)&&7.1h(a.K.2j(a.U)))}1d{9 P=a.4||a;9 A=7.K.4,N=7.W.4;9 b=F.13(N[0]*(A[0]-P[0])+N[1]*(A[1]-P[1])+N[2]*(A[2]-(P[2]||0)));8(b<=17.16)}},1v:l(a){o(1g(a.U)==\'1f\'&&1g(a.W)==\'1f\'){8 w}8!7.1m(a)},1U:l(a){o(!7.1v(a)){8 w}o(a.U){9 A=a.K.4,D=a.U.4,P=7.K.4,N=7.W.4;9 b=(N[0]*(P[0]-A[0])+N[1]*(P[1]-A[1])+N[2]*(P[2]-A[2]))/(N[0]*D[0]+N[1]*D[1]+N[2]*D[2]);8 v.u([A[0]+D[0]*b,A[1]+D[1]*b,A[2]+D[2]*b])}1d o(a.W){9 c=7.W.2f(a.W).2q();9 N=7.W.4,A=7.K.4,O=a.W.4,B=a.K.4;9 d=S.1j(2,2),i=0;H(d.2y()){i++;d=S.u([[N[i%3],N[(i+1)%3]],[O[i%3],O[(i+1)%3]]])}9 e=d.2w().4;9 x=N[0]*A[0]+N[1]*A[1]+N[2]*A[2];9 y=O[0]*B[0]+O[1]*B[1]+O[2]*B[2];9 f=[e[0][0]*x+e[0][1]*y,e[1][0]*x+e[1][1]*y];9 g=[];2e(9 j=1;j<=3;j++){g.19((i==j)?0:f[(j+(5-i)%3)%3])}8 14.u(g,c)}},1r:l(a){9 P=a.4||a;9 A=7.K.4,N=7.W.4;9 b=(A[0]-P[0])*N[0]+(A[1]-P[1])*N[1]+(A[2]-(P[2]||0))*N[2];8 v.u([P[0]+N[0]*b,P[1]+N[1]*b,(P[2]||0)+N[2]*b])},1V:l(t,a){9 R=S.1R(t,a.U).4;9 C=a.1r(7.K).4;9 A=7.K.4,N=7.W.4;9 b=C[0],1E=C[1],1J=C[2],1w=A[0],18=A[1],1a=A[2];9 x=1w-b,y=18-1E,z=1a-1J;8 11.u([b+R[0][0]*x+R[0][1]*y+R[0][2]*z,1E+R[1][0]*x+R[1][1]*y+R[1][2]*z,1J+R[2][0]*x+R[2][1]*y+R[2][2]*z],[R[0][0]*N[0]+R[0][1]*N[1]+R[0][2]*N[2],R[1][0]*N[0]+R[1][1]*N[1]+R[1][2]*N[2],R[2][0]*N[0]+R[2][1]*N[1]+R[2][2]*N[2]])},1t:l(a){o(a.W){9 A=7.K.4,N=7.W.4;9 b=A[0],18=A[1],1a=A[2],2M=N[0],2L=N[1],2Q=N[2];9 c=7.K.1t(a).4;9 d=b+2M,2p=18+2L,2m=1a+2Q;9 Q=a.1r([d,2p,2m]).4;9 e=[Q[0]+(Q[0]-d)-c[0],Q[1]+(Q[1]-2p)-c[1],Q[2]+(Q[2]-2m)-c[2]];8 11.u(c,e)}1d o(a.U){8 7.1V(F.1A,a)}1d{9 P=a.4||a;8 11.u(7.K.1t([P[0],P[1],(P[2]||0)]),7.W)}},1Z:l(a,b,c){a=v.u(a);a=a.1N();o(a===w){8 w}b=v.u(b);b=b.1N();o(b===w){8 w}o(1g(c)==\'1f\'){c=w}1d{c=v.u(c);c=c.1N();o(c===w){8 w}}9 d=a.4[0],18=a.4[1],1a=a.4[2];9 e=b.4[0],1W=b.4[1],1X=b.4[2];9 f,1i;o(c!==w){9 g=c.4[0],2l=c.4[1],2t=c.4[2];f=v.u([(1W-18)*(2t-1a)-(1X-1a)*(2l-18),(1X-1a)*(g-d)-(e-d)*(2t-1a),(e-d)*(2l-18)-(1W-18)*(g-d)]);1i=f.1u();o(1i===0){8 w}f=v.u([f.4[0]/1i,f.4[1]/1i,f.4[2]/1i])}1d{1i=F.1x(e*e+1W*1W+1X*1X);o(1i===0){8 w}f=v.u([b.4[0]/1i,b.4[1]/1i,b.4[2]/1i])}7.K=a;7.W=f;8 7}};11.u=l(a,b,c){9 P=25 11();8 P.1Z(a,b,c)};11.2I=11.u(v.1j(3),v.k);11.2H=11.u(v.1j(3),v.i);11.2G=11.u(v.1j(3),v.j);11.36=11.2I;11.35=11.2H;11.3j=11.2G;9 $V=v.u;9 $M=S.u;9 $L=14.u;9 $P=11.u;',62,206,'||||elements|||this|return|var||||||||||||function|||if||length||||create|Vector|null|||||||||Math|nj|while||do|anchor||||||||Matrix||direction||normal||||kj|Plane|ni|abs|Line|ki|precision|Sylvester|A2|push|A3|map|els|else||undefined|typeof|contains|mod|Zero|D3|D2|isParallelTo|kp|distanceFrom|cols|dup|pointClosestTo|np|reflectionIn|modulus|intersects|A1|sqrt|isSquare|X2|PI|X3|angleFrom|mod1|C2|mod2|sin|cos|break|C3|toRightTriangular|false|Y3|to3D|E2|E1|E3|Rotation|Y2|Y1|intersectionWith|rotate|v12|v13|rank|setVectors|nc|sum|multiply|prototype|eql|new|setElements|case|each|PA3|PA2|part|new_element|round|for|cross|product|AD2|isSameSizeAs|add|isPerpendicularTo|v22|AN3|inspect|AD3|AN2|toUnitVector|PsubQ3|PsubQ2|v23|dot|divisor|inverse|true|isSingular|determinant|max|canMultiplyFromLeft|subtract|rows|col|random|ZX|YZ|XY|Random|join|N2|N1|D1|slice|default|N3|dimensions|switch|liesIn|translate|snapTo|augment|Diagonal|trace|indexOf|diagonal|transpose|minor|row|isAntiparallelTo|ZY|YX|acos|RotationZ|RotationY|liesOn|RotationX|inv|rk|tr|det|toDiagonalMatrix|toUpperTriangular|version|XZ'.split('|'),0,{})) \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/vmlpaths.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/vmlpaths.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,15 @@ +var k = (Math.sqrt(2)-1)*4/3; +var mult=50; +var circleTanslatex=100; +var circleTanslatey=200; + + +var forma=new Array(); +forma[0]="m"+circleTanslatex+","+(circleTanslatey+mult)+" l"+(circleTanslatex+mult*k)+","+(circleTanslatey+mult)+" "+(circleTanslatex+mult)+","+(circleTanslatey+mult*k)+" "+(circleTanslatex+mult)+","+circleTanslatey+", "+(circleTanslatex+mult)+","+(circleTanslatey-mult*k)+", "+(circleTanslatex+mult*k)+","+(circleTanslatey-mult)+", "+circleTanslatex+","+(circleTanslatey-mult)+", "+(circleTanslatex-mult*k)+","+(circleTanslatey-mult)+", "+(circleTanslatex-mult)+","+(circleTanslatey-mult*k)+", "+(circleTanslatex-mult)+","+(circleTanslatey)+", "+(circleTanslatex-mult)+","+(circleTanslatey+mult*k)+", "+(circleTanslatex-mult*k)+","+(circleTanslatey+mult)+", "+circleTanslatex+","+(circleTanslatey+mult)+"xe"; +forma[1]="m493,182 c493,223,405,255,296,255,187,255,99,223,99,182 l99,350 c99,391,187,423,296,423,405,423,493,391,493,350 l493,182 e" +forma[2]="m296,255 c405,255,493,223,493,182,493,142,405,109,296,109,187,109,99,142,99,182,99,223,187,255,296,255 e"; +forma[3]="m-465,-352l-465,-468,-284,-468,-284,-352,-465,-352xe" +forma[4]="m3519,1316 l 3553,1306 3589,1296 3606,1291 3642,1283 3660,1280 3674,1279 3689,1279 3704,1281 3720,1282 3735,1283 3749,1283 3756,1282 3763,1280 3770,1277 3776,1274 3782,1269 3787,1264 3795,1252 3801,1238 3811,1208 3817,1193 3820,1186 3828,1172 3833,1167 3841,1160 3849,1154 3858,1149 3868,1145 3878,1142 3889,1139 3900,1137 3910,1135 3921,1135 3933,1137 3957,1143 3969,1145 3981,1146 3986,1146 3992,1145 3997,1144 4002,1141 4008,1137 4014,1132 4019,1127 4024,1121 4033,1108 4061,1048 4069,1034 4065,1053 4062,1073 4060,1094 4058,1114 4056,1124 4054,1133 4052,1143 4049,1152 4041,1168 4029,1182 4023,1186 4017,1189 4010,1191 3996,1193 3988,1192 3981,1191 3973,1190 3956,1187 3940,1184 3932,1183 3925,1183 3917,1184 3910,1185 3905,1187 3895,1193 3887,1203 3884,1208 3880,1213 3877,1218 3868,1230 3852,1258 3845,1272 3837,1285 3828,1297 3823,1303 3818,1308 3806,1316 3798,1320 3789,1323 3771,1327 3752,1329 3733,1330 3713,1330 3694,1330 3675,1332 3656,1335 3641,1339 3626,1345 3611,1350 3581,1364 3566,1370 3551,1377 3536,1383 3534,1375 3532,1366 3530,1358 3528,1349 3525,1341 3523,1333 3521,1324 3519,1316x m2653,1537 l 2641,1540 2619,1546 2607,1549 2596,1552 2572,1558 2561,1561 2573,1577 2587,1595 2593,1605 2599,1614 2604,1623 2607,1632 2609,1643 2610,1654 2609,1667 2608,1679 2608,1691 2609,1702 2610,1708 2612,1712 2615,1717 2619,1721 2636,1734 2654,1746 2674,1758 2684,1762 2694,1767 2705,1771 2716,1774 2726,1776 2737,1777 2747,1777 2758,1777 2768,1775 2778,1772 2786,1768 2793,1763 2798,1757 2803,1750 2807,1742 2810,1734 2813,1724 2815,1715 2819,1695 2824,1675 2830,1657 2834,1648 2839,1641 2843,1637 2847,1634 2853,1631 2859,1629 2865,1628 2871,1628 2873,1628 2877,1630 2879,1632 2882,1637 2888,1649 2890,1655 2893,1669 2896,1682 2900,1710 2904,1723 2909,1736 2915,1744 2930,1753 2936,1755 2946,1757 2959,1759 2973,1760 2986,1760 2999,1761 3013,1761 3026,1761 3040,1760 3053,1760 3114,1757 3175,1753 3235,1749 3296,1744 3418,1736 3479,1733 3540,1732 3545,1734 3550,1737 3558,1745 3562,1750 3566,1754 3568,1756 3571,1757 3573,1757 3576,1757 3587,1755 3599,1752 3611,1748 3622,1743 3644,1731 3662,1715 3670,1705 3676,1694 3682,1682 3687,1670 3691,1657 3694,1644 3698,1632 3701,1619 3702,1615 3705,1597 3707,1590 3708,1585 3710,1580 3713,1576 3722,1570 3734,1564 3748,1558 3763,1551 3779,1545 3794,1540 3807,1535 3817,1531 3808,1530 3798,1529 3787,1529 3775,1529 3751,1531 3738,1534 3726,1536 3715,1539 3703,1543 3693,1547 3684,1551 3675,1556 3668,1562 3663,1567 3659,1573 3657,1579 3656,1585 3656,1599 3657,1606 3657,1613 3657,1619 3656,1626 3654,1634 3652,1644 3649,1653 3647,1662 3644,1671 3640,1678 3637,1682 3634,1685 3628,1689 3624,1691 3619,1692 3615,1693 3611,1693 3602,1691 3592,1689 3583,1686 3573,1683 3564,1681 3555,1680 3495,1684 3435,1690 3376,1696 3316,1702 3256,1709 3197,1715 3137,1720 3078,1724 3066,1724 3042,1722 3030,1720 3019,1718 2997,1712 2986,1708 2982,1707 2977,1704 2973,1701 2967,1695 2964,1691 2962,1683 2961,1675 2962,1668 2965,1660 2967,1651 2971,1635 2972,1627 2971,1619 2967,1611 2963,1602 2958,1594 2952,1587 2938,1573 2930,1568 2922,1564 2914,1561 2905,1559 2895,1559 2886,1559 2876,1560 2867,1561 2858,1563 2831,1566 2822,1568 2813,1569 2804,1572 2796,1575 2784,1585 2782,1588 2780,1594 2780,1598 2780,1605 2782,1613 2785,1637 2784,1644 2782,1652 2779,1661 2777,1670 2769,1686 2764,1693 2761,1696 2758,1698 2754,1701 2750,1702 2739,1706 2728,1708 2716,1709 2704,1709 2692,1707 2681,1704 2671,1699 2661,1692 2659,1690 2657,1686 2656,1683 2655,1679 2655,1671 2657,1653 2659,1643 2661,1634 2661,1626 2661,1615 2659,1593 2658,1581 2656,1569 2654,1547 2653,1537xe"; +forma[5]="m1279,2755 l 1276,2766 1275,2778 1273,2789 1272,2801 1266,2834 1263,2845 1260,2855 1256,2864 1252,2874 1248,2883 1243,2892 1238,2900 1233,2907 1227,2913 1219,2917 1215,2918 1211,2918 1203,2918 1194,2918 1186,2917 1177,2918 1173,2920 1169,2921 1163,2927 1159,2932 1156,2936 1152,2948 1148,2960 1146,2973 1143,2987 1140,3000 1138,3006 1135,3011 1133,3017 1130,3021 1122,3030 1114,3038 1106,3044 1097,3049 1087,3054 1078,3059 1068,3064 1059,3070 1067,3062 1074,3054 1082,3047 1090,3039 1098,3032 1105,3023 1111,3015 1117,3006 1121,2994 1127,2968 1129,2954 1131,2941 1134,2928 1136,2922 1145,2907 1153,2899 1161,2895 1171,2892 1180,2890 1190,2888 1199,2886 1204,2884 1208,2882 1216,2876 1221,2871 1225,2865 1228,2858 1232,2850 1234,2842 1237,2834 1239,2826 1241,2819 1244,2810 1246,2802 1248,2793 1250,2785 1251,2776 1253,2768 1254,2759 1256,2751 1258,2751 1261,2752 1264,2752 1267,2753 1270,2753 1273,2754 1276,2754 1279,2755xe"; +forma[6]="m,l,21600r21600,l21600,xe"; +forma[7]=" M 0,0 L 100,100,200,0 X E"; diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/vmlrenderer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/vmlrenderer.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1453 @@ +//---------------------------------------------------------------------------- +// VMLRENDERER 1.0 +// VML Renderer For RichDraw +// Dependencies: +// History: +// 2006-04-05 | Created +// --------------------------------------------------------------------------*/ + + +function VMLRenderer() { + this.base = AbstractRenderer; +} + + +VMLRenderer.prototype = new AbstractRenderer; + +VMLRenderer.prototype.bounds = function(shape) { + var rect = new Object(); + rect['x'] = shape.offsetLeft; + rect['y'] = shape.offsetTop; + rect['width'] = shape.offsetWidth; + rect['height'] = shape.offsetHeight; + return rect; +} + +VMLRenderer.prototype.init = function(elem) + { + this.container = elem; + // this.container.style.overflow = 'hidden'; + this.container.unselectable = "on"; + // Add VML includes and namespace + elem.ownerDocument.namespaces.add("v", "urn:schemas-microsoft-com:vml"); + var style = elem.ownerDocument.createStyleSheet(); + style.addRule('v\\:*', "behavior: url(#default#VML); display:inline-block"); + //NOT VML biewBox + //http://blogs.msdn.com/ie/archive/2008/03/18/webbrowser-control-rendering-modes-in-ie8.aspx + + } + + + + +var proporx=1; +var propory=1; + +VMLRenderer.prototype.view = function(left,top,width,height,viewBox,bgcolor) { + var tokens = viewBox.split(' '); + + var margin=100; + var wFront=parseInt(document.getElementById('FRONT').style.width) + var hFront=parseInt(document.getElementById('FRONT').style.height) + var tC=0 + ' ' + 0 + ' ' + wFront + ' ' + hFront; + tokensCanvas= tC.split(' '); + + var w=parseFloat(tokens[2]); + var h=parseFloat(tokens[3]); + var wImage = w - parseFloat(tokens[0]); + var hImage = h - parseFloat(tokens[1]); + var wCanvas = wFront; + var hCanvas = hFront; + proporImage = hImage / wImage; + proporCanvas = hCanvas / wCanvas; + + document.title= initialFile +' '+wImage+' x '+hImage; + + + if(bgcolor != '') + { + this.container.style.backgroundColor=bgcolor; + } else{ + this.container.style.backgroundColor="#ffffff"; + } +if(viewMode=='preview') + { + if(proporCanvas==proporImage) + { + this.container.style.width =wFront+'px'; + this.container.style.height =hFront+'px'; + this.container.style.left =0+'px' + this.container.style.top =0+'px' + canvasLeft = 0; + canvasTop = 0; + canvasWidth =wFront ; + canvasHeight = hFront; + zoominit1= 0+' '+0+' '+wFront+' '+hFront; + zoominit = viewBox; + zoominit2 = zoominit1; + + + proporx = 1; + propory = 1; + + } + if(proporCanvasproporImage) + { + var proportion= hFront/wFront; + //var image_proportion= width/height; + var image_proportion= h/w; + var H=wFront*image_proportion; + var leftover=(hFront-H)/2; + + this.container.style.width =wFront+'px'; + this.container.style.height =H+'px'; + this.container.style.left =0+'px' + this.container.style.top =leftover+'px' + + canvasLeft = 0; + canvasTop = leftover; + canvasWidth = wFront; + canvasHeight = H; + //zoominit1 = 0+' '+leftover+' '+wFront+' '+H; + zoominit1 = 0+' '+0+' '+wFront+' '+H; + zoominit = viewBox; + zoominit2 = viewBox;//zoominit1; + + proporx = wFront/w; + propory = H/h; + + } + // proporx = width/tokens[2]; + //propory = height/tokens[2]; + + + + } +if(viewMode=='canvas') + { + this.container.style.left = 0 + 'px'; + this.container.style.top = 0 + 'px'; + this.container.style.width = wFront + 'px'; + this.container.style.height = hFront + 'px'; + + // margins 10% + var percent=10; + var percentX = wImage / percent; + var percentY = hImage / percent; + var cornerNEx = parseFloat(tokens[0])-percentX; + var cornerNEy = parseFloat(tokens[1])-percentY; + var percentRectW=wImage + percentX*2; + var percentRectH=hImage + percentY*2; + + document.title= initialFile +' '+wImage+' x '+hImage; + // ajust proporImage to proporCanvas + if(proporCanvas==proporImage) + { + cornerNEx = parseFloat(tokens[0])-percentX + cornerNEy = parseFloat(tokens[1])-percentY + var wi=percentRectW; + var he=percentRectH;//hImage+percentY+addHimage; + zoominit=viewBox; + zoominit1 = (-percentX) +' '+(-percentY)+' '+wi+' '+he; + proporx =(w*(100-percent*2)/100)/w; + propory =( h*(100-percent*2)/100)/h; + zoominit2=zoominit1; + tokensZoom=tokensCanvas;//viewBox.split(' '); ;//zoominit1.split(' '); + + } + + if(proporCanvasproporImage) + { + // add to hImage + var newHimage = percentRectH * ((hCanvas * percentRectW) / (wCanvas * percentRectH)) ;//newRectH * + var diffImages=newHimage-h; + cornerNEy = parseFloat(tokens[1]) - (diffImages / 2); + var wi=percentRectW; + var he=newHimage;//hImage+percentY+addHimage; + zoominit=viewBox; + proporx =wFront/wi; + propory = wFront/wi; + + zoominit1 = (proporx*cornerNEx) +' '+(propory*cornerNEy)+' '+wi+' '+he; + zoominit2=zoominit1; + tokensZoom=zoominit1.split(' '); + + } + + + } +} + + + +VMLRenderer.prototype.zoomFrame = function(zoom){ + myOPF.viewBox=zoom; + load(myOPF,c); + document.getElementById("source").value=myOPF.toJSONString(); +} +VMLRenderer.prototype.rectDoc = function(viewBox) { + var tokens2 = zoominit2.split(' '); + var tokens = zoominit.split(' '); + var shape = document.getElementById('rectDoc'); + if (shape) { + this.remove(shape); + } + var rect=this.container.ownerDocument.createElement('v:rect'); + rect.id='rectDoc'; + rect.style.position = 'absolute'; + rect.style.left =-parseInt(tokens2[0]); + rect.style.top = -parseInt(tokens2[1]); + rect.style.width = parseInt(tokens[2]); + rect.style.height = parseInt(tokens[3]); + rect.setAttribute('filled', 'false'); + rect.setAttribute('stroked', 'true'); + rect.setAttribute('strokeweight', 2); + rect.setAttribute('strokecolor',"#ff0000"); + //this.container.appendChild(rect); + //this.container.insertBefore(rect, this.container.firstChild ); + //alert(docx+' '+docy+' '+docw+' '+doch+' '+viewBox) +} +VMLRenderer.prototype.rectCanvas = function(docx,docy,docw,doch,viewBox) { + + var tokens = zoominit1.split(' '); + var shape = document.getElementById('rectCanvas'); + if (shape) { + this.remove(shape); + } + + var rect=this.container.ownerDocument.createElement('v:rect'); + rect.id='rectBackground'; + rect.style.position = 'absolute'; + rect.style.left = tokens[0] ; + rect.style.top =tokens[1]; + rect.style.width=tokens[2]; + rect.style.height= tokens[3] ; + rect.setAttribute('filled', 'true'); + rect.setAttribute('fillcolor',"#666666"); + rect.setAttribute('stroked', 'false'); + + this.container.insertBefore(rect, this.container.firstChild ); + +} + +VMLRenderer.prototype.removeAll = function(){ + while (this.container.hasChildNodes()) { + this.container.removeChild(this.container.firstChild); + } +} + +function VMLviewBox(container,left,top,width,height){ + var tokens = zoominit2.split(' '); + left *= proporx; + left = left - parseFloat(tokens[0]); + top *= propory; + top = top - parseFloat(tokens[1]); + width *= proporx; + height *= propory; + + return {"x":parseFloat(Math.round(left)), "y":parseFloat(Math.round(top)), "w":parseFloat(Math.round(width)), "h":parseFloat(Math.round(height))}; +} +function VMLviewBox1(container,left,top,width,height){ + var tokens = zoominit2.split(' '); + left *= proporx; + left = left - parseFloat(tokens[0]); + top *= propory; + top = top - parseFloat(tokens[1]); + width *= proporx; + height *= propory; + + return {"x":parseFloat(Math.round(left)), "y":parseFloat(Math.round(top)), "w":parseFloat(Math.round(width)), "h":parseFloat(Math.round(height))}; +} + +VMLRenderer.prototype.create = function(shape, fillColor, lineColor, fillOpac, lineOpac, lineWidth, left, top, width, height, textMessaje, textSize, textFamily, imageHref, points, transform, parent) { + var tokens = zoominit2.split(' '); + + var zoom=VMLviewBox(this.container,left,top,width,height); + + left=zoom.x; + top=zoom.y; + width=zoom.w; + height=zoom.h; + + var zoom=VMLviewBox(this.container,left,top,textSize,textSize); + //if(zoom.w<1){zoom.w=1} + if(zoom.y== undefined){left=0} + if(zoom.x== undefined){top=0} + if(zoom.w== undefined){width=0} + if(zoom.h== undefined){height=0} + textSize=zoom.h; + + var zoom=VMLviewBox(this.container,left,top,lineWidth*2/3,lineWidth); + //if(zoom.w<1){zoom.w=1} + lineWidth=zoom.w; + var vml; + var shap=1; + if (shape == 'rect') { + + vml = this.container.ownerDocument.createElement('v:rect'); + vml.style.position = 'absolute'; + vml.style.left = left; + vml.style.top = top; + vml.style.width = width; + vml.style.height = height; + } + else if (shape == 'roundrect') { + vml = this.container.ownerDocument.createElement('v:roundrect'); + vml.style.position = 'absolute'; + vml.style.left = left; + vml.style.top = top; + vml.style.width = width; + vml.style.height = height; + vml.setAttribute('arcsize', '20%'); + + } + else if (shape == 'ellipse') { + vml = this.container.ownerDocument.createElement('v:oval'); + vml.style.left = left; + vml.style.top = top; + vml.style.width = width; + vml.style.height = height; + vml.style.position = 'absolute'; + } + else if (shape == 'line') { + + vml = this.container.ownerDocument.createElement('v:line'); + vml.setAttribute('from', left + 'px,' + top + 'px'); + vml.setAttribute('to', (left+width) + 'px,' + (top+height) + 'px'); + + } + else if (shape == 'polyline') { + vml = this.container.ownerDocument.createElement('v:polyline'); + vml.setAttribute("points", points); + + } + else if (shape == 'path') + { + vml = this.container.ownerDocument.createElement('v:shape'); + var tokens = zoominit1.split(' '); + var tokens1 = zoominit1.split(' '); + var tokens2 = zoominit2.split(' '); + tokens[0]=0; + tokens[1]=0; + var path=points; + path=path.replace(/, /g, ','); + path=path.replace(/ ,/g, ','); + var ps =path.split(" ") + var pcc = ""; + + var re = /^[-]?\d*\.?\d*$/; + var contArc=0; + var isArc=false; + for(var i = 0; i < ps.length; i++) + { + if(ps[i].indexOf(',')>0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + + if (!char1.match(re)) + { + var num0prev= parseFloat(point[0].substring(1)); + var zoom=VMLviewBox(this.container,num0prev*1+(parseInt(tokens2[0])*0),0,parseInt(tokens2[2]),parseInt(tokens2[3])); + num0=zoom.x; + + var text=char1; + }else{ + var num0prev= parseFloat(point[0]); + var zoom=VMLviewBox(this.container,num0prev*1+(parseInt(tokens2[0])*0),0,parseInt(tokens2[2]),parseInt(tokens2[3])); + num0=zoom.x; + + } + point[1]= parseFloat(point[1]); + var zoom=VMLviewBox(this.container,0,point[1],parseInt(tokens2[2]),parseInt(tokens2[3])); + point[1]=zoom.y; + var cx=num0+parseInt(tokens2[0]); + var cy=point[1]+parseInt(tokens2[1]); + pcc+=text+cx+','+cy+' '; + } + else + { + pcc+=ps[i]+' '; + } + + } + //////////////////// + var thispath=pcc; + thispath=thispath.replace(/M/g,'m'); + thispath=thispath.replace(/C/g,'c'); + thispath=thispath.replace(/L/g,'l'); + thispath=thispath.replace(/z/g,'x'); + + //document.getElementById('source').value=points+'\r\n'+thispath +'\r\n'+'________'+'\r\n' + var zoom=VMLviewBox(this.container,tokens[0],tokens[1],tokens[2],tokens[3]); + + vml.style.position="absolute"; + vml.style.width= zoom.w+"px"; + vml.style.height=zoom.h+"px"; + vml.style.left=zoom.x+"px"; + vml.style.top=zoom.y+"px"; + vml.setAttribute('coordsize', zoom.w+','+zoom.h); + + var path01 = this.container.ownerDocument.createElement('v:path'); + path01.setAttribute("v", thispath+' e'); + + + + vml.appendChild(path01) + + } + + else if (shape == 'controlpath') + { + + vml = this.container.ownerDocument.createElement('v:shape'); + vml.style.position="absolute"; + vml.style.width= 700+"px"; + vml.style.height=500+"px"; + vml.style.left=left+"px"; + vml.style.top=top+"px"; + vml.setAttribute('coordsize', '700,500'); + + var path01 = this.container.ownerDocument.createElement('v:path'); + path01.setAttribute('v', 'm '+left+','+top+' c'+(left+1)+','+(top+1)+' e '); + + vml.appendChild(path01) + } + else if (shape == 'image') { + var data =imageHref;//document.forms[0].option_text_message.value; + vml = this.container.ownerDocument.createElement('v:image'); + vml.setAttribute('src',imageHref); + vml.style.position="absolute"; + vml.style.width=width+"px"; + vml.style.height=height+"px"; + vml.style.left=left+"px"; + vml.style.top=top+"px"; + vml.style.margin=0+"px"; + vml.style.padding=0+"px"; + if (fillColor != '' || fillColor != 'none') { + vml.setAttribute('filled', 'false'); + vml.setAttribute('fillcolor', fillColor); + } + else { + vml.setAttribute('filled', 'false'); + } + vml.setAttribute('strokeweight','0px');// parseFloat(lineWidth)+'px'); + vml.setAttribute('stroked', 'false'); + vml.setAttribute('strokecolor','#000000');//lineColor); + + + } + + else if (shape == 'text') + { + + var data =textMessaje; + vml = this.container.ownerDocument.createElement('v:shape'); + vml.style.position="absolute"; + //vml.setAttribute('coordorigin',left+', '+top); + //vml.style.coorsize= ''; + coordorigin="0, 0" + + var ts=isNaN(textSize) + if(ts==true){ + textSize=10; + } + vml.style.width= textSize+'px';//tokens[2]+'px' + vml.style.height=textSize+'px'; + vml.style.left=(left+"px"); + vml.style.top=(top-(textSize*1/4)+"px"); + vml.style.margin=0+"px"; + vml.style.padding=0+"px"; + vml.setAttribute('path','m '+0+' '+0+' r '+(textSize*data.length)+' '+0+' e'); + var textPathObj = this.container.ownerDocument.createElement("v:textpath"); + textPathObj.setAttribute('string', data); + textPathObj.setAttribute('fitshape','false'); + textPathObj.setAttribute('trim', 'false'); + textPathObj.setAttribute('fitpath', 'false'); + textPathObj.setAttribute('on','true'); + textPathObj.style.fontFamily=textFamily; + textPathObj.style.fontSize=textSize+'px'; + textPathObj.setAttribute('vTextKern','true'); + textPathObj.setAttribute('text-align','center'); + + var pathObj = this.container.ownerDocument.createElement("v:path"); + pathObj.setAttribute('textpathok', 'true'); + vml.appendChild(textPathObj); + vml.appendChild(pathObj); + + + } + + + + else if (shape == 'texto') + { + vml = this.container.ownerDocument.createElement('v:shape'); + vml.style.position="absolute"; + + vml.style.coordsize=1000+', '+1000; + vml.style.width= 1000; + vml.style.height=1000; + vml.style.left=left; + vml.style.top=top-parseFloat(textSize); + + vml.style.padding=0; + var textBox = this.container.ownerDocument.createElement("v:textbox"); + textBox.setAttribute('mso-rotate-with-shape',true) + var divtext = this.container.ownerDocument.createElement("div"); + divtext.style.coordorigin=0+', '+(0); + divtext.style.margin=0; + divtext.style.fontFamily=textFamily; + divtext.style.margin=0; + divtext.style.padding=0; + divtext.style.vRotateLetters=true; + divtext.style.fontSize=parseFloat(textSize); + + + + + + + divtext.style.color=fillColor; + + + + + + //divtext.setAttribute('v-rotate-letters','true'); + if(transform.indexOf('rotate')>=0) + { + + myRotate1=transform.split('rotate('); + myRotate2=myRotate1[1].split(')'); + myRotate3=myRotate2[0].split(','); + + //divtext.setAttribute('mso-rotate',myRotate3[0]); + //textBox.style.msoRotate= myRotate3[0]; + //textBox.style.centerX=myRotate3[1]; + //textBox.style.centerY=myRotate3[2]; + //vml.style.rotation= myRotate3[0]; + //vml.style.centerX=myRotate3[1]; + //vml.style.centerY=myRotate3[2]; + vml.setAttribute('rotation',myRotate3[0]+'Deg'); + } + + divtext.innerHTML=textMessaje; + textBox.appendChild(divtext); + + vml.appendChild(textBox); + + } + else if (shape == 'defs') { + var vml; + + } + + else if (shape == 'group') { + vml = this.container.ownerDocument.createElement('v:group'); + vml.style.left=left+"px"; + vml.style.top=top+"px"; + } + + if(shape == 'zoom' || shape == 'defs') + { + + }else + { + if(transform.indexOf('rotate')>=0) + { + myRotate1=transform.split('rotate('); + myRotate2=myRotate1[1].split(')'); + myRotate3=myRotate2[0].split(','); + + vml.style.rotation= myRotate3[0]+'Deg'; + vml.style.centerX=myRotate3[1]; + vml.style.centerY=myRotate3[2]; + + } + + if(shape != 'image' ) + { + if (lineColor.length == 0){lineColor = 'none';} + if (fillColor.length == 0){fillColor = 'none';} + (fillColor!=''|| fillColor!=null )?vml.setAttribute('fillcolor', fillColor):vml.setAttribute('filled', 'true'); + + if (fillColor != '' || fillColor != 'none' ) + { + vml.setAttribute('filled', 'true'); + vml.setAttribute('fillcolor', fillColor); + + } + else + { + vml.setAttribute('filled', 'false'); + } + + + if(lineWidth==0 || lineWidth=='none' || lineColor== 'none' ) + { + vml.setAttribute('stroked', 'false'); + } + else + { + //if(isNaN(lineColor)==false){alert('-'+lineColor+'-');lineColor='#000000';lineWidth=1;} + vml.setAttribute('stroked', 'true'); + vml.setAttribute('strokecolor', lineColor); + vml.setAttribute('strokeweight', lineWidth); + var stroke = this.container.ownerDocument.createElement('v:stroke'); + stroke.setAttribute("opacity", parseFloat(lineOpac)); + vml.appendChild(stroke); + + } + + if (fillOpac != '') + { + if (fillOpac == 'none' || fillColor=='none'){fillOpac=0;} + var fill = this.container.ownerDocument.createElement('v:fill'); + fill.setAttribute("opacity",parseFloat(fillOpac)); + //alert(fillOpac) + vml.appendChild(fill); + } + } + } + if(parent==''){ + if(vml){ + this.container.appendChild(vml);} + }else{ + if(document.getElementById(parent)){ + var parentShape = document.getElementById(parent); + if(vml||vml!=null ){ + parentShape.appendChild(vml); + } + } + } + //var parentDoc = document.getElementById('mydraw'); + //parentDoc.appendChild(vml); + return vml; +}; + +VMLRenderer.prototype.resize = function(shape, fromX, fromY, toX, toY) { + var deltaX = toX - fromX; + var deltaY = toY - fromY; + if (shape.tagName == 'rect' ) + { + + + if (deltaX < 0) { + shape.style.left=toX + 'px'; + shape.style.width=-deltaX + 'px'; + } + else + { + shape.style.width= deltaX + 'px'; + } + + if (deltaY < 0) + { + shape.style.top=toY + 'px'; + shape.style.height=-deltaY + 'px'; + } + else + { + shape.style.height=deltaY + 'px'; + } + } +} +VMLRenderer.prototype.duplicate = function(shape) + { + var vml; + vml =shape.cloneNode(false); + //vml.setAttribute('fillcolor', "#aa00aa"); + vml.setAttribute('filled', "false"); + this.container.appendChild(vml); + return vml; + + }; +VMLRenderer.prototype.querySelected = function(shape,centerx,centery,width,height) +{ + var result = true; + var shapes='names: group, image, rect, path, ellipse, circle, text, line, '; + + //if(shape.getBBox && shape) + if( shapes.indexOf(' '+shape.tagName+',')>0) + { + + var box = this.bounds(shape); + }else + { + return false; + } + var p1x = box.x; + if(Math.abs(p1x-centerx)>width){result = false} + + var p1y = box.y; + if(Math.abs(p1y-centery)>height){result = false} + + var p2x = box.x+box.width; + if(Math.abs(p2x-centerx)>width){result = false} + + var p2y = box.y; + if(Math.abs(p2y-centery)>height){result = false} + + var p3x = box.x+box.width; + if(Math.abs(p3x-centerx)>width){result = false} + + var p3y = box.y+box.height; + if(Math.abs(p3y-centery)>height){result = false} + + var p4x = box.x; +if(Math.abs(p4x-centerx)>width){result = false} + + var p4y = box.y+box.height; + if(Math.abs(p4y-centery)>height){result = false} + + if(result) + { + return { 'in':result, 'cornersx': p1x+','+p2x+','+p3x+','+p4x+',' ,'cornersy': p1y+','+p2y+','+p3y+','+p4y+',' }; + } + else + { + return { 'in':result } + } +//center.distanceFrom(point1); + + +} + +VMLRenderer.prototype.searchBoxes = function() +{ + var base = this.container; + + var NumNodes = base.childNodes.length; + var chain= ''; + for(i = 0;i < NumNodes;i++) + { + if (this.bounds(base.childNodes[i])) + { + chain+=base.childNodes[i].id + ';' + } + } + chain+='' + return chain; + +} + +VMLRenderer.prototype.DrawBorder= function(numNode, targetElement ) +{ + var shapes='names: group, image, rect, path, ellipse, circle, text, line, '; + + //if(shape.getBBox && shape) + if( shapes.indexOf(' '+targetElement.tagName+',')>0) + { + var bbox = this.bounds(targetElement); + + var outline = this.container.ownerDocument.createElement('v:rect'); + outline.setAttribute('x', bbox.x - 2 ); + outline.setAttribute('y', bbox.y - 2 ); + outline.setAttribute('width', bbox.width + 4 ); + outline.setAttribute('height', bbox.height + 4 ); + outline.setAttribute('stroke', '#ff00ff' ); + outline.setAttribute('fill', 'none' ); + outline.setAttribute('id', 'shapeBoxed'+numNode ); + + targetElement.parentNode.insertBefore( outline, targetElement ); + return 'shapeBoxed'+numNode; + } + else + { + return false + } +} + + +VMLRenderer.prototype.getMarkup = function() { + + //return this.container.parentNode.innerHTML; + return this.container.innerHTML; +} + +VMLRenderer.prototype.remove = function(shape) { + if(shape!=null){ shape.removeNode(true); } +} + +VMLRenderer.prototype.removeAll = function() { + while( this.container.hasChildNodes () ){ + this.container.removeChild( this.container.firstChild ); + //this.container.removeNode( this.container.firstChild ); + } +} + +VMLRenderer.prototype.editCommand = function(shape, cmd, value) +{ + if (shape != null) { + if (cmd == 'fillcolor') { + if (value == '' || value =='none') + shape.style.fill='none'; + else + shape.style.fill=value; + } + else if (cmd == 'linecolor') { + if (value != '') + shape.style.stroke=value; + else + shape.style.stroke='none'; + } + else if (cmd == 'linewidth') { + if( value=='none' || value=='') + { + shape.style.strokeWidth=0; + }else{ + shape.style.strokeWidth=parseInt(value) + 'px'; + } + } + else if (cmd == 'fillopacity') { + if(shape.tagName=='image') + { + shape.style.opacity=parseFloat(value); + } + else + { + shape.style.fillOpacity=parseFloat(value); + } + + } + else if (cmd == 'lineopacity') { + + shape.style.strokeOpacity=parseFloat(value); + + } + else if (cmd == 'filter') + { + if (value != '') + { + //shape.style.setProperty("filter", value) ; + shape.style.filter=value; + //alert(value) + } + } + else if (cmd == 'textContent') + { + if (value != '') + { + shape.textContent=value; + } + } + else if (cmd == 'textSize') + { + if (value != '') + { + shape.style.fontSize=parseFloat(eval(value)); + } + } + else if (cmd == 'textFamily') + { + if (value != '') + { + shape.style.fontFamily=value; + } + } + else if (cmd == 'textSpacing') + { + if (value != '') + { + shape.style.letterSpacing=''+value+'em'; + //alert(value) //bad letter-spacing word-spacing + } + } + else if (cmd == 'textLength') + { + if (value != '') + { + //shape.style.=''+value+''; + shape.style.lengthAdjust='spacing';//spacing spacingAndGlyphs + //alert(value) //bad textLength + } + } + + + else if (cmd == 'textAnchor') + { + if (value != '') + { + shape.style.textAnchor=value; + } + } + else if (cmd == 'textWeight') + { + if (value != '') + { + shape.style.fontWeight=value; + } + } + else if (cmd == 'textStyle') + { + if (value != '') + { + shape.style.fontStyle=value; + } + } + else if (cmd == 'textDecoration') + { + if (value != '') + { + shape.style.textDecoration=value; + } + //alert(value) //bad textDecoration + } + else if (cmd == 'textMode') + { + if (value != '') + { + shape.style.writingMode=value; + } + } + else if (cmd == 'textDirection') + { + if (value != '') + { + shape.style.direction=value; + } + } + else if (cmd == 'textOrientation') + { + if (value != '') + { + shape.style.glyphOrientationVertical=value; + } + } + else if (cmd == 'stopcolor') + { + if (value != '') + { + shape.style.stopColor=value; + } + } + else if (cmd == 'linearGradient') + { + if (value != '') + { + shape.style.x1=value.x1; + shape.style.y1=value.y1; + shape.style.x2=value.x2; + shape.style.y2=value.y2; + } + } + else if (cmd == 'radialGradient') + { + if (value != '') + { + shape.style.x1=value.x1; + shape.style.y1=value.y1; + shape.style.x2=value.x2; + shape.style.y2=value.y2; + } + } + else if (cmd == 'leftTop') + { + if (value != '') + { + shape.style.left=parseInt(value.left)+'px'; + shape.style.top=parseInt(value.top)+'px'; + + } + } + else if (cmd == 'cxcy') + { + if (value != '') + { + shape.style.cx=value.cx; + shape.style.cy=value.cy; + + } + } + + } +} + + +VMLRenderer.prototype.queryCommand = function(shape, cmd) +{ + var result = ''; + + if (shape != null) { + if (cmd == 'fillcolor') { + result = shape.style.fill; + if (result == 'none') + result = ''; + } + else if (cmd == 'linecolor') { + result = shape.style.stroke; + if (result == 'none') + result = ''; + } + else if (cmd == 'linewidth') { + result = shape.style.stroke; + if (result == 'none') + result = ''; + else + result = shape.style.strokeWidth; + } + else if (cmd == 'fillopacity') { + if(shape.tagName=='image') + { + result= shape.style.opacity; + } + else + { + result= shape.style.fillOpacity; + } + + } + else if (cmd == 'lineopacity') { + + result= shape.style.strokeOpacity; + + } + else if (cmd == 'text') { + var text1=shape.textContent; + var text2=shape.style.fontFamily; + var text3=parseInt(shape.style.fontSize); + + result= {"data":text1,"family":text2,"size":text3}; + + } + else if (cmd == 'points') { + result=shape.style,d; + + } + else if (cmd == 'stopcolor') { + result=shape.style.stopColor + + } + else if (cmd == 'box') { + result= this.bounds(shape); + + } + else if (cmd == 'linearGradient') { + var x1=shape.style.x1; + var y1=shape.style.y1; + var x2=shape.style.x2; + var y2=shape.style.y2; + result= {"x1":x1,"y1":y1,"x2":x2,"y2":y2}; + + } + + + } + + return result; +} + + VMLRenderer.prototype.showTracker01 = function(shape) { + var box = this.bounds(shape); + + var tracker = document.getElementById('tracker'); + if (tracker) { + this.remove(tracker); + } + + tracker = this.container.ownerDocument.createElement('v:rect'); + tracker.id = 'tracker'; + tracker.style.position = 'absolute'; + tracker.style.left = box.x - 10; + tracker.style.top = box.y - 10; + tracker.style.width = box.width + 20; + tracker.style.height = box.height + 20; + tracker.setAttribute('filled', 'false'); + tracker.setAttribute('stroked', 'true'); + tracker.setAttribute('strokecolor', 'blue'); + tracker.setAttribute('strokeweight', '1px'); + this.container.appendChild(tracker); +} + + +VMLRenderer.prototype.showTracker = function(shape) { + var box = this.bounds(shape); + //alert(box.width+' '+shape.id) + var trshape = parseFloat(shape.getAttribute('rotation')); + var tracker = document.getElementById('tracker'); + + if (tracker) { + this.remove(tracker); + } + + if (shape.tagName == 'shape') + { + shap=2; + if(shape.children[0].tagName == 'path') + { + + /* $('option_path_trx').value= box.x; + $('option_path_try').value= box.y; + $('option_path_sclx').value= box.width; + $('option_path_scly').value= box.height; + $('option_path_rot').value= shape.style.rotation; + */ + //var path=shape.children[0].getAttribute('v'); + // $('control_codebase').value=path; + } + } + if (shape.tagName == 'rect') { + /* + $('option_rect_rot').value= shape.getAttribute('rotation'); + $('option_rect_trx').value= box.x; + $('option_rect_try').value= box.y; + $('option_rect_sclx').value= box.width; + $('option_rect_scly').value= box.height; + */ + } + + if (shape.tagName == 'image'){ + /* $('option_img_trx').value= box.x; + $('option_img_try').value= box.y; + $('option_img_sclx').value= box.width; + $('option_img_scly').value= box.height; + $('option_img_rot').value= T.b* (Math.PI * 2 / 360); + */ + } + if (shape.tagName == 'text'){ + /* f$('option_text_trx').value= box.x; + $('option_text_try').value= box.y; + $('option_text_sclx').value= box.width; + $('option_text_scly').value= box.height; + $('option_text_rot').value= T.b* (Math.PI * 2 / 360); + */ + } + if (shape.tagName == 'line'){ + /* + $('option_line_trx').value= box.x; + $('option_line_try').value= box.y; + */ + } + if (shape.tagName == 'oval'){ + /*$('option_ellipse_trx').value= putx; + $('option_ellipse_try').value= puty; + $('option_ellipse_sclx').value= box.width; + $('option_ellipse_scly').value= box.height; + $('option_ellipse_rot').value= T.b* (Math.PI * 2 / 360); + */ + } + + + + /*var matrix = shape.getScreenCTM(); + var trshape= shape.getAttribute('transform'); + var shap=1; + if (shape.tagName == 'path') { shap=2; + + + + } + */ + //if (shape.getAttribute('transform') ) { shap=2; } + //var svgNamespace = 'http://www.w3.org/2000/svg'; + + tracker = this.container.ownerDocument.createElement('v:group'); + tracker.id = 'tracker'; + //tracker.setAttribute('rotation',trshape); + tracker.setAttribute('coordorigin','0, 0'); + //tracker.setAttribute('wrapcoords',true); + + + tracker.setAttribute('coordsize',box.width+','+ box.height); + tracker.style.position = 'absolute'; + tracker.style.left = box.x ; + tracker.style.top = box.y; + tracker.style.width = box.width ; + tracker.style.height = box.height ; + + + //////////////// + + + var corners = []; + var point = createPoint(box.x, box.y, box.width, box.height); + //point = {x:box.x, y:box.y, width: box.width, height:box.height}; +//point = createPoint(box.x, box.y, box.width, box.height); + //1 + corners.push( createPoint(box.x + box.width, box.y, box.width, box.height) ); + point.x = box.x + box.width; + point.y = box.y; + //2 + corners.push( createPoint(box.x + box.width, box.y + box.height, box.width, box.height) ); + point.x = box.x + box.width; + point.y = box.y + box.height; + //3 + //corners.push( point.matrixTransform(matrix) ); + corners.push( createPoint(box.x , box.y + box.height, box.width, box.height) ); + point.x = box.x; + point.y = box.y + box.height; + //4 + corners.push( createPoint(box.x + box.width, box.y, box.width, box.height) ); + + var max = createPoint(corners[0].x, corners[0].y); + var min = createPoint(corners[0].x, corners[0].y); + + for (var i = 1; i < corners.length; i++) { + var x = corners[i].x; + var y = corners[i].y; + if (x < min.x) { + min.x = x; + } + else if (x > max.x) { + max.x = x; + } + if (y < min.y) { + min.y = y; + } + else if (y > max.y) { + max.y = y; + } + } + + + var border_square = this.container.ownerDocument.createElement('v:rect'); + + border_square.style.position = 'relative'; + border_square.style.left = 0 - 10; + border_square.style.top = 0 - 10; + border_square.style.width = box.width + 20; + border_square.style.height = box.height + 20; + border_square.setAttribute('filled', 'false'); + border_square.setAttribute('stroked', 'true'); + border_square.setAttribute('strokecolor', 'blue'); + border_square.setAttribute('strokeweight', '1px'); + + + var border_angle = this.container.ownerDocument.createElement('v:polyline'); + border_angle.style.position = 'relative'; + + border_angle.setAttribute('filled', 'false'); + border_angle.setAttribute('stroked', 'true'); + border_angle.setAttribute('strokecolor', 'blue'); + border_angle.setAttribute('strokeweight', '1px'); + border_angle.setAttribute("points", (box.width+10)+","+((box.height/2))+", "+(box.width+10+25)+","+((box.height/2)) ); + + + var circle1 = this.container.ownerDocument.createElement('v:oval'); + circle1.style.position = 'relative'; + circle1.style.left = ( (box.width+40)-5); + circle1.style.top = ( (box.height / 2) -5); + circle1.style.width = (10); + circle1.style.height = (10); + circle1.setAttribute('filled', 'true'); + circle1.setAttribute('stroked', 'true'); + circle1.setAttribute('fillcolor', '#ffffff'); + circle1.setAttribute('strokecolor', 'green'); + circle1.setAttribute('strokeweight', '1px'); + + + var rect1 = this.container.ownerDocument.createElement('v:rect'); + rect1.style.position = 'relative'; + rect1.style.left = - 10-5; + rect1.style.top = - 10-5; + rect1.style.width = 10; + rect1.style.height = 10; + rect1.setAttribute('filled', 'true'); + rect1.setAttribute('stroked', 'true'); + rect1.setAttribute('fillcolor', '#ffffff'); + rect1.setAttribute('strokecolor', 'green'); + rect1.setAttribute('strokeweight', '1px'); + + + var rect2 = this.container.ownerDocument.createElement('v:rect'); + rect2.style.position = 'relative'; + rect2.style.left = box.width +5; + rect2.style.top = -10 -5; + rect2.style.width = 10; + rect2.style.height = 10; + rect2.setAttribute('filled', 'true'); + rect2.setAttribute('stroked', 'true'); + rect2.setAttribute('fillcolor', '#ffffff'); + rect2.setAttribute('strokecolor', 'green'); + rect2.setAttribute('strokeweight', '1px'); + + + var rect3 = this.container.ownerDocument.createElement('v:rect'); + rect3.style.position = 'relative'; + rect3.style.left = box.width+5; + rect3.style.top = box.height+5; + rect3.style.width = 10; + rect3.style.height = 10; + rect3.setAttribute('filled', 'true'); + rect3.setAttribute('stroked', 'true'); + rect3.setAttribute('fillcolor', '#ffffff'); + rect3.setAttribute('strokecolor', 'green'); + rect3.setAttribute('strokeweight', '1px'); + + var rect4 = this.container.ownerDocument.createElement('v:rect'); + rect4.style.position = 'relative'; + rect4.style.left = -10-5; + rect4.style.top = box.height+5; + rect4.style.width = 10; + rect4.style.height = 10; + rect4.setAttribute('filled', 'true'); + rect4.setAttribute('stroked', 'true'); + rect4.setAttribute('fillcolor', '#ffffff'); + rect4.setAttribute('strokecolor', 'green'); + rect4.setAttribute('strokeweight', '1px'); + + + + var rectmid12 = this.container.ownerDocument.createElement('v:rect'); + rectmid12.style.position = 'relative'; + rectmid12.style.left = (box.width/2) -5; + rectmid12.style.top =- 10-5; + rectmid12.style.width = 10; + rectmid12.style.height = 10; + rectmid12.setAttribute('filled', 'true'); + rectmid12.setAttribute('stroked', 'true'); + rectmid12.setAttribute('fillcolor', '#ffffff'); + rectmid12.setAttribute('strokecolor', 'green'); + rectmid12.setAttribute('strokeweight', '1px'); + + var rectmid23 = this.container.ownerDocument.createElement('v:rect'); + rectmid23.style.position = 'relative'; + rectmid23.style.left = box.width +5; + rectmid23.style.top = (box.height/2)-5; + rectmid23.style.width = 10; + rectmid23.style.height = 10; + rectmid23.setAttribute('filled', 'true'); + rectmid23.setAttribute('stroked', 'true'); + rectmid23.setAttribute('fillcolor', '#ffffff'); + rectmid23.setAttribute('strokecolor', 'green'); + rectmid23.setAttribute('strokeweight', '1px'); + + var rectmid34 = this.container.ownerDocument.createElement('v:rect'); + rectmid34.style.position = 'relative'; + rectmid34.style.left = (box.width/2)-5; + rectmid34.style.top = box.height+5; + rectmid34.style.width = 10; + rectmid34.style.height = 10; + rectmid34.setAttribute('filled', 'true'); + rectmid34.setAttribute('stroked', 'true'); + rectmid34.setAttribute('fillcolor', '#ffffff'); + rectmid34.setAttribute('strokecolor', '#000000'); + rectmid34.setAttribute('strokeweight', '1px'); + + + var rectmid41 = this.container.ownerDocument.createElement('v:rect'); + rectmid41.style.position = 'relative'; + rectmid41.style.left = -10-5 ; + rectmid41.style.top =(box.height/2)-5; + rectmid41.style.width = 10; + rectmid41.style.height = 10; + rectmid41.setAttribute('filled', 'true'); + rectmid41.setAttribute('stroked', 'true'); + rectmid41.setAttribute('fillcolor', '#ffffff'); + rectmid41.setAttribute('strokecolor', 'green'); + rectmid41.setAttribute('strokeweight', '1px'); + + + + + var colorin="#ff0000"; + var colorout="#ffffff" + + circle1.attachEvent("onmouseover", function(event) {circle1.style.cursor= 's-resize'; circle1.setAttribute('fillcolor', colorin ); typeTransform='Rotate'; scaleType='nw'; }, false); + circle1.attachEvent("onmouseout", function(event) {circle1.style.cursor= 'default'; circle1.setAttribute('fillcolor', colorout ); typeTransform='Rotate'; }, false); //typeTransform='rotate' + + + rect1.attachEvent("onmouseover", function(event) {rect1.style.cursor= 'nw-resize'; rect1.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='nw'; }, false); + rect1.attachEvent("onmouseout", function(event) {rect1.style.cursor= 'default'; rect1.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); //typeTransform='rotate' + + rect2.attachEvent("onmouseover", function(event) {rect2.style.cursor= 'ne-resize'; rect2.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='ne';}, false); + rect2.attachEvent("onmouseout", function(event) {rect2.style.cursor= 'default'; rect2.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); + + rect3.attachEvent("onmouseover", function(event) {rect3.style.cursor= 'se-resize'; rect3.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='se';}, false); + rect3.attachEvent("onmouseout", function(event) {rect3.style.cursor= 'default'; rect3.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); + + rect4.attachEvent("onmouseover", function(event) {rect4.style.cursor= 'sw-resize'; rect4.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='sw';}, false); + rect4.attachEvent("onmouseout", function(event) {rect4.style.cursor= 'default'; rect4.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); + + rectmid12.attachEvent("onmouseover", function(event) {rectmid12.style.cursor= 'n-resize'; rectmid12.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='n';}, false); + rectmid12.attachEvent("onmouseout", function(event) {rectmid12.style.cursor= 'default'; rectmid12.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + + rectmid23.attachEvent("onmouseover", function(event) {rectmid23.style.cursor= 'e-resize'; rectmid23.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='e';}, false); + rectmid23.attachEvent("onmouseout", function(event) {rectmid23.style.cursor= 'default'; rectmid23.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + + rectmid34.attachEvent("onmouseover", function(event) {rectmid34.style.cursor= 's-resize'; rectmid34.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='s';}, false); + rectmid34.attachEvent("onmouseout", function(event) {rectmid34.style.cursor= 'default'; rectmid34.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + + rectmid41.attachEvent("onmouseover", function(event) {rectmid41.style.cursor= 'w-resize'; rectmid41.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='w'; }, false); + rectmid41.attachEvent("onmouseout", function(event) {rectmid41.style.cursor= 'default'; rectmid41.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + //tracker.setAttribute('transform',trshape); + + + + tracker.appendChild(border_square); + tracker.appendChild(border_angle); + + tracker.appendChild(circle1); + + tracker.appendChild(rect1); + tracker.appendChild(rect2); + tracker.appendChild(rect3); + tracker.appendChild(rect4); + tracker.appendChild(rectmid12); + tracker.appendChild(rectmid23); + tracker.appendChild(rectmid34); + tracker.appendChild(rectmid41); + + /* + + + + */ + + //alert(shape.id) + this.container.appendChild(tracker); + + + +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/vmlrendererPrev.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/vmlrendererPrev.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,2583 @@ +/*---------------------------------------------------------------------------- + VMLRENDERER 1.0 + VML Renderer For RichDraw + ----------------------------------------------------------------------------- + Created by Mark Finkle (mark.finkle@gmail.com) + Implementation of VML based renderer. + ----------------------------------------------------------------------------- + Copyright (c) 2006 Mark Finkle + + This program is free software; you can redistribute it and/or modify it + under the terms of the MIT License. + + 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. + ----------------------------------------------------------------------------- + Dependencies: + History: + 2006-04-05 | Created + --------------------------------------------------------------------------*/ + + + +function VMLRenderer() { + this.base = AbstractRenderer; +} + + +VMLRenderer.prototype = new AbstractRenderer; + + +VMLRenderer.prototype.init = function(elem) + { + this.container = elem; + // this.container.style.overflow = 'hidden'; + this.container.unselectable = "on"; + // Add VML includes and namespace + elem.ownerDocument.namespaces.add("v", "urn:schemas-microsoft-com:vml"); + var style = elem.ownerDocument.createStyleSheet(); + style.addRule('v\\:*', "behavior: url(#default#VML); display:inline-block"); + //NOT VML biewBox + //http://blogs.msdn.com/ie/archive/2008/03/18/webbrowser-control-rendering-modes-in-ie8.aspx + } + +var proporx=1; +var propory=1; + +VMLRenderer.prototype.view = function(left,top,width,height,viewBox,bgcolor) { + var tokens = viewBox.split(' '); + + var margin=100; + var wFront=parseInt(document.getElementById('FRONT').style.width) + var hFront=parseInt(document.getElementById('FRONT').style.height) + var tC=0 + ' ' + 0 + ' ' + wFront + ' ' + hFront; + tokensCanvas= tC.split(' '); + + var w=parseFloat(tokens[2]); + var h=parseFloat(tokens[3]); + var wImage = w - parseFloat(tokens[0]); + var hImage = h - parseFloat(tokens[1]); + var wCanvas = wFront; + var hCanvas = hFront; + proporImage = hImage / wImage; + proporCanvas = hCanvas / wCanvas; + + document.title= initialFile +' '+wImage+' x '+hImage; + + + if(bgcolor != '') + { + this.container.style.backgroundColor=bgcolor; + } else{ + this.container.style.backgroundColor="#ffffff"; + } +if(viewMode=='preview') + { + if(proporCanvas==proporImage) + { + this.container.style.width =wFront+'px'; + this.container.style.height =hFront+'px'; + this.container.style.left =0+'px' + this.container.style.top =0+'px' + canvasLeft = 0; + canvasTop = 0; + canvasWidth =wFront ; + canvasHeight = hFront; + zoominit1= 0+' '+0+' '+wFront+' '+hFront; + zoominit = viewBox; + zoominit2 = zoominit1; + + + proporx = 1; + propory = 1; + + } + if(proporCanvasproporImage) + { + var proportion= hFront/wFront; + //var image_proportion= width/height; + var image_proportion= h/w; + var H=wFront*image_proportion; + var leftover=(hFront-H)/2; + + this.container.style.width =wFront+'px'; + this.container.style.height =H+'px'; + this.container.style.left =0+'px' + this.container.style.top =leftover+'px' + + canvasLeft = 0; + canvasTop = leftover; + canvasWidth = wFront; + canvasHeight = H; + //zoominit1 = 0+' '+leftover+' '+wFront+' '+H; + zoominit1 = 0+' '+0+' '+wFront+' '+H; + zoominit = viewBox; + zoominit2 = viewBox;//zoominit1; + + proporx = wFront/w; + propory = H/h; + + } + // proporx = width/tokens[2]; + //propory = height/tokens[2]; + + + + } +if(viewMode=='canvas') + { + this.container.style.left = 0 + 'px'; + this.container.style.top = 0 + 'px'; + this.container.style.width = wFront + 'px'; + this.container.style.height = hFront + 'px'; + + // margins 10% + var percent=10; + var percentX = wImage / percent; + var percentY = hImage / percent; + var cornerNEx = parseFloat(tokens[0])-percentX; + var cornerNEy = parseFloat(tokens[1])-percentY; + var percentRectW=wImage + percentX*2; + var percentRectH=hImage + percentY*2; + + document.title= initialFile +' '+wImage+' x '+hImage; + // ajust proporImage to proporCanvas + if(proporCanvas==proporImage) + { + cornerNEx = parseFloat(tokens[0])-percentX + cornerNEy = parseFloat(tokens[1])-percentY + var wi=percentRectW; + var he=percentRectH;//hImage+percentY+addHimage; + zoominit=viewBox; + zoominit1 = (-percentX) +' '+(-percentY)+' '+wi+' '+he; + proporx =(w*(100-percent*2)/100)/w; + propory =( h*(100-percent*2)/100)/h; + zoominit2=zoominit1; + tokensZoom=tokensCanvas;//viewBox.split(' '); ;//zoominit1.split(' '); + + } + + if(proporCanvasproporImage) + { + // add to hImage + var newHimage = percentRectH * ((hCanvas * percentRectW) / (wCanvas * percentRectH)) ;//newRectH * + var diffImages=newHimage-h; + cornerNEy = parseFloat(tokens[1]) - (diffImages / 2); + var wi=percentRectW; + var he=newHimage;//hImage+percentY+addHimage; + zoominit=viewBox; + proporx =wFront/wi; + propory = wFront/wi; + + zoominit1 = (proporx*cornerNEx) +' '+(propory*cornerNEy)+' '+wi+' '+he; + zoominit2=zoominit1; + tokensZoom=zoominit1.split(' '); + + } + + + } +} + + + +VMLRenderer.prototype.zoomFrame = function(zoom){ + myOPF.viewBox=zoom; + load(myOPF,c); + document.getElementById("source").value=myOPF.toJSONString(); +} +VMLRenderer.prototype.rectDoc = function(viewBox) { + var tokens2 = zoominit2.split(' '); + var tokens = zoominit.split(' '); + var shape = document.getElementById('rectDoc'); + if (shape) { + this.remove(shape); + } + var rect=this.container.ownerDocument.createElement('v:rect'); + rect.id='rectDoc'; + rect.style.position = 'absolute'; + rect.style.left =-parseInt(tokens2[0]); + rect.style.top = -parseInt(tokens2[1]); + rect.style.width = parseInt(tokens[2]); + rect.style.height = parseInt(tokens[3]); + rect.setAttribute('filled', 'false'); + rect.setAttribute('stroked', 'true'); + rect.setAttribute('strokeweight', 2); + rect.setAttribute('strokecolor',"#ff0000"); + //this.container.appendChild(rect); + //this.container.insertBefore(rect, this.container.firstChild ); + //alert(docx+' '+docy+' '+docw+' '+doch+' '+viewBox) +} +VMLRenderer.prototype.rectCanvas = function(docx,docy,docw,doch,viewBox) { + + var tokens = zoominit1.split(' '); + var shape = document.getElementById('rectCanvas'); + if (shape) { + this.remove(shape); + } + + var rect=this.container.ownerDocument.createElement('v:rect'); + rect.id='rectBackground'; + rect.style.position = 'absolute'; + rect.style.left = tokens[0] ; + rect.style.top =tokens[1]; + rect.style.width=tokens[2]; + rect.style.height= tokens[3] ; + rect.setAttribute('filled', 'true'); + rect.setAttribute('fillcolor',"#666666"); + rect.setAttribute('stroked', 'false'); + + this.container.insertBefore(rect, this.container.firstChild ); + +} + +VMLRenderer.prototype.removeAll = function(){ + while (this.container.hasChildNodes()) { + this.container.removeChild(this.container.firstChild); + } +} + +function VMLviewBox(container,left,top,width,height){ + var tokens = zoominit2.split(' '); + left *= proporx; + left = left - parseFloat(tokens[0]); + top *= propory; + top = top - parseFloat(tokens[1]); + width *= proporx; + height *= propory; + + return {"x":parseFloat(Math.round(left)), "y":parseFloat(Math.round(top)), "w":parseFloat(Math.round(width)), "h":parseFloat(Math.round(height))}; +} +function VMLviewBox1(container,left,top,width,height){ + var tokens = zoominit2.split(' '); + left *= proporx; + left = left - parseFloat(tokens[0]); + top *= propory; + top = top - parseFloat(tokens[1]); + width *= proporx; + height *= propory; + + return {"x":parseFloat(Math.round(left)), "y":parseFloat(Math.round(top)), "w":parseFloat(Math.round(width)), "h":parseFloat(Math.round(height))}; +} + +VMLRenderer.prototype.create = function(shape, fillColor, lineColor, fillOpac, lineOpac, lineWidth, left, top, width, height, textMessaje, textSize, textFamily, imageHref, points, transform, parent) { + var tokens = zoominit2.split(' '); + + var zoom=VMLviewBox(this.container,left,top,width,height); + + left=zoom.x; + top=zoom.y; + width=zoom.w; + height=zoom.h; + + var zoom=VMLviewBox(this.container,left,top,textSize,textSize); + //if(zoom.w<1){zoom.w=1} + if(zoom.y== undefined){left=0} + if(zoom.x== undefined){top=0} + if(zoom.w== undefined){width=0} + if(zoom.h== undefined){height=0} + textSize=zoom.h; + + var zoom=VMLviewBox(this.container,left,top,lineWidth*2/3,lineWidth); + //if(zoom.w<1){zoom.w=1} + lineWidth=zoom.w; + var vml; + var shap=1; + if (shape == 'rect') { + + vml = this.container.ownerDocument.createElement('v:rect'); + vml.style.position = 'absolute'; + vml.style.left = left; + vml.style.top = top; + vml.style.width = width; + vml.style.height = height; + } + else if (shape == 'roundrect') { + vml = this.container.ownerDocument.createElement('v:roundrect'); + vml.style.position = 'absolute'; + vml.style.left = left; + vml.style.top = top; + vml.style.width = width; + vml.style.height = height; + vml.setAttribute('arcsize', '20%'); + + } + else if (shape == 'ellipse') { + vml = this.container.ownerDocument.createElement('v:oval'); + vml.style.left = left; + vml.style.top = top; + vml.style.width = width; + vml.style.height = height; + vml.style.position = 'absolute'; + } + else if (shape == 'line') { + + vml = this.container.ownerDocument.createElement('v:line'); + vml.setAttribute('from', left + 'px,' + top + 'px'); + vml.setAttribute('to', left + 'px,' + top + 'px'); + + } + else if (shape == 'polyline') { + vml = this.container.ownerDocument.createElement('v:polyline'); + vml.setAttribute("points", points); + + } + else if (shape == 'path') + { + vml = this.container.ownerDocument.createElement('v:shape'); + var tokens = zoominit1.split(' '); + var tokens1 = zoominit1.split(' '); + var tokens2 = zoominit2.split(' '); + tokens[0]=0; + tokens[1]=0; + var path=points; + path=path.replace(/, /g, ','); + path=path.replace(/ ,/g, ','); + var ps =path.split(" ") + var pcc = ""; + + var re = /^[-]?\d*\.?\d*$/; + var contArc=0; + var isArc=false; + for(var i = 0; i < ps.length; i++) + { + if(ps[i].indexOf(',')>0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + + if (!char1.match(re)) + { + var num0prev= parseFloat(point[0].substring(1)); + var zoom=VMLviewBox(this.container,num0prev*1+(parseInt(tokens2[0])*0),0,parseInt(tokens2[2]),parseInt(tokens2[3])); + num0=zoom.x; + + var text=char1; + }else{ + var num0prev= parseFloat(point[0]); + var zoom=VMLviewBox(this.container,num0prev*1+(parseInt(tokens2[0])*0),0,parseInt(tokens2[2]),parseInt(tokens2[3])); + num0=zoom.x; + + } + point[1]= parseFloat(point[1]); + var zoom=VMLviewBox(this.container,0,point[1],parseInt(tokens2[2]),parseInt(tokens2[3])); + point[1]=zoom.y; + var cx=num0+parseInt(tokens2[0]); + var cy=point[1]+parseInt(tokens2[1]); + pcc+=text+cx+','+cy+' '; + } + else + { + pcc+=ps[i]+' '; + } + + } + //////////////////// + var thispath=pcc; + thispath=thispath.replace(/M/g,'m'); + thispath=thispath.replace(/C/g,'c'); + thispath=thispath.replace(/L/g,'l'); + thispath=thispath.replace(/z/g,'x'); + + //document.getElementById('source').value=points+'\r\n'+thispath +'\r\n'+'________'+'\r\n' + var zoom=VMLviewBox(this.container,tokens[0],tokens[1],tokens[2],tokens[3]); + + vml.style.position="absolute"; + vml.style.width= zoom.w+"px"; + vml.style.height=zoom.h+"px"; + vml.style.left=zoom.x+"px"; + vml.style.top=zoom.y+"px"; + vml.setAttribute('coordsize', zoom.w+','+zoom.h); + + var path01 = this.container.ownerDocument.createElement('v:path'); + path01.setAttribute("v", thispath+' e'); + + + + vml.appendChild(path01) + + } + + else if (shape == 'controlpath') + { + + vml = this.container.ownerDocument.createElement('v:shape'); + vml.style.position="absolute"; + vml.style.width= 700+"px"; + vml.style.height=500+"px"; + vml.style.left=left+"px"; + vml.style.top=top+"px"; + vml.setAttribute('coordsize', '700,500'); + + var path01 = this.container.ownerDocument.createElement('v:path'); + path01.setAttribute('v', 'm '+left+','+top+' c'+(left+1)+','+(top+1)+' e '); + + vml.appendChild(path01) + } + else if (shape == 'image') { + var data =imageHref;//document.forms[0].option_text_message.value; + vml = this.container.ownerDocument.createElement('v:image'); + vml.setAttribute('src',imageHref); + vml.style.position="absolute"; + vml.style.width=width+"px"; + vml.style.height=height+"px"; + vml.style.left=left+"px"; + vml.style.top=top+"px"; + vml.style.margin=0+"px"; + vml.style.padding=0+"px"; + if (fillColor != '' || fillColor != 'none') { + vml.setAttribute('filled', 'false'); + vml.setAttribute('fillcolor', fillColor); + } + else { + vml.setAttribute('filled', 'false'); + } + vml.setAttribute('strokeweight','0px');// parseFloat(lineWidth)+'px'); + vml.setAttribute('stroked', 'false'); + vml.setAttribute('strokecolor','#000000');//lineColor); + + + } + + else if (shape == 'text') + { + + var data =textMessaje; + vml = this.container.ownerDocument.createElement('v:shape'); + vml.style.position="absolute"; + //vml.setAttribute('coordorigin',left+', '+top); + //vml.style.coorsize= ''; + coordorigin="0, 0" + + var ts=isNaN(textSize) + if(ts==true){ + textSize=10; + } + vml.style.width= textSize+'px';//tokens[2]+'px' + vml.style.height=textSize+'px'; + vml.style.left=(left+"px"); + vml.style.top=(top-(textSize*1/4)+"px"); + vml.style.margin=0+"px"; + vml.style.padding=0+"px"; + vml.setAttribute('path','m '+0+' '+0+' r '+(textSize*data.length)+' '+0+' e'); + var textPathObj = this.container.ownerDocument.createElement("v:textpath"); + textPathObj.setAttribute('string', data); + textPathObj.setAttribute('fitshape','false'); + textPathObj.setAttribute('trim', 'false'); + textPathObj.setAttribute('fitpath', 'false'); + textPathObj.setAttribute('on','true'); + textPathObj.style.fontFamily=textFamily; + textPathObj.style.fontSize=textSize+'px'; + textPathObj.setAttribute('vTextKern','true'); + textPathObj.setAttribute('text-align','center'); + + var pathObj = this.container.ownerDocument.createElement("v:path"); + pathObj.setAttribute('textpathok', 'true'); + vml.appendChild(textPathObj); + vml.appendChild(pathObj); + + + } + + + + else if (shape == 'texto') + { + vml = this.container.ownerDocument.createElement('v:shape'); + vml.style.position="absolute"; + + vml.style.coordsize=1000+', '+1000; + vml.style.width= 1000; + vml.style.height=1000; + vml.style.left=left; + vml.style.top=top-parseFloat(textSize); + + vml.style.padding=0; + var textBox = this.container.ownerDocument.createElement("v:textbox"); + textBox.setAttribute('mso-rotate-with-shape',true) + var divtext = this.container.ownerDocument.createElement("div"); + divtext.style.coordorigin=0+', '+(0); + divtext.style.margin=0; + divtext.style.fontFamily=textFamily; + divtext.style.margin=0; + divtext.style.padding=0; + divtext.style.vRotateLetters=true; + divtext.style.fontSize=parseFloat(textSize); + + + + + + + divtext.style.color=fillColor; + + + + + + //divtext.setAttribute('v-rotate-letters','true'); + if(transform.indexOf('rotate')>=0) + { + + myRotate1=transform.split('rotate('); + myRotate2=myRotate1[1].split(')'); + myRotate3=myRotate2[0].split(','); + + //divtext.setAttribute('mso-rotate',myRotate3[0]); + //textBox.style.msoRotate= myRotate3[0]; + //textBox.style.centerX=myRotate3[1]; + //textBox.style.centerY=myRotate3[2]; + //vml.style.rotation= myRotate3[0]; + //vml.style.centerX=myRotate3[1]; + //vml.style.centerY=myRotate3[2]; + vml.setAttribute('rotation',myRotate3[0]+'Deg'); + } + + divtext.innerHTML=textMessaje; + textBox.appendChild(divtext); + + vml.appendChild(textBox); + + } + else if (shape == 'defs') { + var vml; + + } + + else if (shape == 'group') { + vml = this.container.ownerDocument.createElement('v:group'); + vml.style.left=left+"px"; + vml.style.top=top+"px"; + } + + if(shape == 'zoom' || shape == 'defs') + { + + }else + { + if(transform.indexOf('rotate')>=0) + { + myRotate1=transform.split('rotate('); + myRotate2=myRotate1[1].split(')'); + myRotate3=myRotate2[0].split(','); + + vml.style.rotation= myRotate3[0]+'Deg'; + vml.style.centerX=myRotate3[1]; + vml.style.centerY=myRotate3[2]; + + } + + if(shape != 'image' ) + { + //alert(fillColor) + if (fillColor != '' || fillColor != 'none' ) + { + vml.setAttribute('filled', 'true'); + vml.setAttribute('fillcolor', fillColor); + + } + else + { + vml.setAttribute('filled', 'false'); + } + + + if(lineWidth==0 || lineWidth=='none' || lineColor== 'none' ) + { + vml.setAttribute('stroked', 'false'); + } + else + { + //if(isNaN(lineColor)==false){alert('-'+lineColor+'-');lineColor='#000000';lineWidth=1;} + vml.setAttribute('stroked', 'true'); + vml.setAttribute('strokecolor', lineColor); + vml.setAttribute('strokeweight', lineWidth); + var stroke = this.container.ownerDocument.createElement('v:stroke'); + stroke.setAttribute("opacity", parseFloat(lineOpac)); + vml.appendChild(stroke); + + } + + if (fillOpac != '') + { + if (fillOpac == 'none' || fillColor=='none'){fillOpac=0;} + var fill = this.container.ownerDocument.createElement('v:fill'); + fill.setAttribute("opacity",parseFloat(fillOpac)); + //alert(fillOpac) + vml.appendChild(fill); + } + } + } + if(parent==''){ + if(vml){ + this.container.appendChild(vml);} + }else{ + if(document.getElementById(parent)){ + var parentShape = document.getElementById(parent); + if(vml||vml!=null ){ + parentShape.appendChild(vml); + } + } + } + //var parentDoc = document.getElementById('mydraw'); + //parentDoc.appendChild(vml); + return vml; +}; + + + +VMLRenderer.prototype.zoom = function(clicx,clicy) + { + } + +VMLRenderer.prototype.datacreate = function(fillColor, lineColor, fillOpac, lineOpac, lineWidth, left, top, width, height, textMessaje, textSize, textFamily, imageHref, transform) + { + } + +VMLRenderer.prototype.duplicate = function(shape) + { + var vml; + vml =shape.cloneNode(false); + //vml.setAttribute('fillcolor', "#aa00aa"); + //vml.setAttribute('filled', "false"); + this.container.appendChild(vml); + return vml; + + }; + +VMLRenderer.prototype.querySelected = function(shape,centerx,centery,width,height) +{ + var result = true; + var shapes='names: group, image, rect, path, ellipse, circle, text, line, '; + + //if(shape.getBBox && shape) + if( shapes.indexOf(' '+shape.tagName+',')>0) + { + + var box = this.bounds(shape); + }else + { + return false; + } + var p1x = box.x; + if(Math.abs(p1x-centerx)>width){result = false} + + var p1y = box.y; + if(Math.abs(p1y-centery)>height){result = false} + + var p2x = box.x+box.width; + if(Math.abs(p2x-centerx)>width){result = false} + + var p2y = box.y; + if(Math.abs(p2y-centery)>height){result = false} + + var p3x = box.x+box.width; + if(Math.abs(p3x-centerx)>width){result = false} + + var p3y = box.y+box.height; + if(Math.abs(p3y-centery)>height){result = false} + + var p4x = box.x; +if(Math.abs(p4x-centerx)>width){result = false} + + var p4y = box.y+box.height; + if(Math.abs(p4y-centery)>height){result = false} + + if(result) + { + return { 'in':result, 'cornersx': p1x+','+p2x+','+p3x+','+p4x+',' ,'cornersy': p1y+','+p2y+','+p3y+','+p4y+',' }; + } + else + { + return { 'in':result } + } +//center.distanceFrom(point1); + + +} + +VMLRenderer.prototype.searchBoxes = function() +{ + var base = this.container; + + var NumNodes = base.childNodes.length; + var chain= ''; + for(i = 0;i < NumNodes;i++) + { + if (this.bounds(base.childNodes[i])) + { + chain+=base.childNodes[i].id + ';' + } + } + chain+='' + return chain; + +} + +VMLRenderer.prototype.DrawBorder= function(numNode, targetElement ) +{ + var shapes='names: group, image, rect, path, ellipse, circle, text, line, '; + + //if(shape.getBBox && shape) + if( shapes.indexOf(' '+targetElement.tagName+',')>0) + { + var bbox = this.bounds(targetElement); + + var outline = this.container.ownerDocument.createElement('v:rect'); + outline.setAttribute('x', bbox.x - 2 ); + outline.setAttribute('y', bbox.y - 2 ); + outline.setAttribute('width', bbox.width + 4 ); + outline.setAttribute('height', bbox.height + 4 ); + outline.setAttribute('stroke', '#ff00ff' ); + outline.setAttribute('fill', 'none' ); + outline.setAttribute('id', 'shapeBoxed'+numNode ); + + targetElement.parentNode.insertBefore( outline, targetElement ); + return 'shapeBoxed'+numNode; + } + else + { + return false + } +} + + +VMLRenderer.prototype.index = function(shape,order) { + + if(order==-1) + { + this.container.appendChild( shape ); + } + if(order==0){ + + this.container.insertBefore( shape, shape.parentNode.firstChild ); + } + + if(order==1 || order==2) + { + var id=shape.getAttribute('id'); + //alert(id); + + + var numNodes=this.container.childNodes.length; + //alert(numNodes); + + var num=0; + for(var i = 1; i < numNodes; i++) + { + + var etiq=this.container.childNodes[i].getAttribute('id'); + if (etiq==id) + { + num=i; + + } + } + //alert(num); + if(order==1) + { + if((num-1)>=-1) + { + this.container.insertBefore( shape, this.container.childNodes[num-1]); + } + } + if(order==2){ + if((num+1)1) + //{ shap.style.position="absolute"; + shape.style.width=100+"px"; + shape.style.height=100+"px"; + shape.style.left=toX+"px"; + shape.style.top=toY+"px"; + shape.style.margin=0+"px"; + shape.style.padding=0+"px"; + shape.appendChild(path01); + //} + } + else + { + shape.style.position="absolute"; + shape.style.width= 700+"px"; + shape.style.height=500+"px"; + shape.style.left="0px"; + shape.style.top="0px"; + //shape.setAttribute('coordsize', '700,500'); + shape.appendChild(path01); + } + + //shape.setAttribute('position', 'absolute'); + //shape.translate(xpArray[conta+1]+','+ypArray[conta+1]); + //shape.setAttribute('coordsize', '700,500'); + // shape.v.Value ='M '+thispath1+ ' C'+thispath2+' x e'; + //shape.v.Value = 'M '+thispath+ ' c '+thispath2; + //shape.setAttribute("v", 'M '+thispath+ ' C '+thispath2); + //shape.setAttribute('path','M '+thispath+ ' C '+thispath2); + } + } + +}; + + +VMLRenderer.prototype.tocurve = function() { + + +}; + + +VMLRenderer.prototype.info = function(shape) +{ +var shInfo = {}; +shInfo.id = shape.id; + shInfo.type = shape.tagName; + if (shape.tagName == 'rect') + { + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + //++ + //shInfo.rotate = parseFloat(shape.getAttribute('rotation')); + } + else if (shape.tagName == 'oval') + { + shInfo.width = parseFloat(shape.getAttribute('rx'))*2; + shInfo.height = parseFloat(shape.getAttribute('ry'))*2; + shInfo.left = (shInfo.width * 2) - parseFloat(shape.getAttribute('rx')); + shInfo.top = (shInfo.height * 2) - parseFloat(shape.getAttribute('ry')); + + } + else if (shape.tagName == 'roundrect') + { + shInfo.left = parseFloat(shape.getAttribute('x')); + shInfo.top = parseFloat(shape.getAttribute('y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + + } + else if (shape.tagName == 'line') + { + shInfo.left = parseFloat(shape.getAttribute('x1')); + shInfo.top = parseFloat(shape.getAttribute('y1')); + + } + else if (shape.tagName == 'polyline') + { + shInfo.points = shape.getAttribute('points'); + } + else if (shape.tagName == 'image') + { + shInfo.left = parseFloat(shape.getAttribute('x')); + shInfo.top = parseFloat(shape.getAttribute('y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.src = shape.getAttribute('src'); + } + else + + if (shape.tagName == 'shape') + { + if(shape.children[0].tagName=='path') { + shInfo.d = shape.getAttribute('v'); + this.editor.log(shape.getAttribute('v')); + + } + if(shape.children[0].tagName=='textpath') { + shInfo['font-family'] = shape.children[0].getAttribute('font-family') + shInfo['font-size'] = parseInt(shape.children[0].getAttribute('font-size')) + shInfo.top = parseFloat(shape.children[0].getAttribute('y')) + shInfo.left = parseFloat(shape.children[0].getAttribute('x')) + shInfo.text = shape.textContent + + } + } + return shInfo; + + +} +VMLRenderer.prototype.transformShape = function(shape,data,transform) +{ + + if(shape.tagName == 'rect') + { + + var box = this.bounds(shape); + var sdata=data.split(';'); + + //alert(data[0]); + shape.style.top = parseFloat(sdata[0]) + 'px'; + shape.style.left = parseFloat(sdata[1]) + 'px'; + shape.style.width = parseFloat(sdata[2]) + 'px'; + shape.style.height = parseFloat(sdata[3]) + 'px'; + + + + // var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + // var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.style.rotation=parseFloat(sdata[4]); + + //shape.nodparseFloatue=data; + } + else + if(shape.tagName == 'text') + { + if(data.indexOf('<;>',0)==-1 ) + { + shape.textContent = data; + } + else + { + var sdata=data.split('<;>'); //????????? + shape.textContent = sdata[0]; + shape.setAttribute('font-size',parseFloat(sdata[1])); + shape.setAttribute('font-family',sdata[2]); + } + //shape.nodparseFloatue=data; + } + else + if (shape.tagName == 'polyline') + { + shape.setAttribute('points',data); + } + else + if (shape.tagName == 'image') + { + //alert(data); + if(data.indexOf(';',0)==-1 ) + { + shape.setAttribute('src',data); + } + else + { + var box = this.bounds(shape); + var sdata=data.split(';'); + shape.style.top = parseFloat(sdata[0]) + 'px'; + shape.style.left = parseFloat(sdata[1]) + 'px'; + shape.style.width = parseFloat(sdata[2]) + 'px'; + shape.style.height = parseFloat(sdata[3]) + 'px'; + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.style.rotation=parseFloat(sdata[4]); + + + } + + } + else + if (shape.tagName == 'path') + { + if(data.indexOf(';',0)==-1 ) + { + //shape.setAttribute( 'd', data); //???????? + //shape.setAttribute( 'transform', transform); + } + else + { + var box = this.bounds(shape); + var sdata=data.split(';'); + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + //++shape.setAttribute( 'transform','scale('+parseFloat(sdata[2])+','+parseFloat(sdata[3])+')'+' rotate('+parseFloat(sdata[4])+','+centerx+','+centery+')'+' translate('+parseFloat(sdata[0])+','+parseFloat(sdata[1])+')'); + + + } + } + + +} +VMLRenderer.prototype.editShape = function(shape,data) +{ +if(shape.tagName == 'text'){ +shape.textContent = data +}else + if (shape.tagName == 'polyline') + { + shape.setAttribute('points',data); + } + else + + if (shape.tagName == 'path') + { + shape.setAttribute('v', data); + + } + + +} +VMLRenderer.prototype.editCommand = function(shape, cmd, value) +{ + if (shape != null) { + if (cmd == 'fillcolor') { + if (value != '') { + shape.filled = 'true'; + shape.fillcolor = value; + } + else { + shape.filled = 'false'; + shape.fillcolor = ''; + } + } + else if (cmd == 'linecolor') { + if (value != '') { + shape.stroked = 'true'; + shape.strokecolor = value; + } + else { + shape.stroked = 'false'; + shape.strokecolor = ''; + } + } + else if (cmd == 'linewidth') { + shape.strokeweight = parseInt(value) + 'px'; + } + else if (cmd == 'fillopacity') { + + shape.fill.opacity= parseFloat(value); + //shape.style.fill.setAttribute("opacity", parseFloat(value)); + + } + } +} + + +VMLRenderer.prototype.queryCommand = function(shape, cmd) +{ + if (shape != null) { + if (cmd == 'fillcolor') { + if (shape.filled == 'false') + return ''; + else + return shape.fillcolor; + } + else if (cmd == 'linecolor') { + if (shape.stroked == 'false') + return ''; + else + return shape.strokecolor; + } + else if (cmd == 'linewidth') { + if (shape.stroked == 'false') { + return ''; + } + else { + // VML always transforms the pixels to points, so we have to convert them back + return (parseFloat(shape.strokeweight) * (screen.logicalXDPI / 72)) + 'px'; + } + } + } +} + +VMLRenderer.prototype.getProperties = function(shape) +{ + var result = ''; + + if (shape != null) + { + result = shape.getAttribute('fillcolor'); + if (result == 'none') + { + mefillColor.visible = 'hidden'; + mefillColor.hex = '#000000'; + filldraw=true; + setbe(1,'img_okfill'); + } + else + { + //alert(mefillColor.hex+' '+result); + mefillColor.visible = 'visible'; + mefillColor.hex = result; + var rgb=hex2rgb(result) + mefillColor.r=rgb[0]; + mefillColor.g=rgb[1]; + mefillColor.b=rgb[2]; + filldraw=false; + setbe(1,'img_okfill'); + + } + + result = shape.getAttribute('strokecolor'); + if (result == 'none') + { + mestrokeColor.visible = 'hidden'; + mestrokeColor.hex = '#000000'; + mestrokeColor.width = 0; + strokedraw=true; + setbe(2,'img_okstroke'); + + } + else + { + mestrokeColor.visible = 'visible'; + mestrokeColor.hex = result; + var rgb=hex2rgb(result) + mestrokeColor.r=rgb[0]; + mestrokeColor.g=rgb[1]; + mestrokeColor.b=rgb[2]; + strokedraw=false; + setbe(2,'img_okstroke'); + + } + + result = shape.getAttribute('strokeweight'); + mestrokeColor.width = result; + + result = shape.fill.getAttribute('opacity'); + mefillColor.opacity = result; + + result = shape.stroke.getAttribute('opacity'); + mestrokeColor.opacity = result; + + setProperties(); + } +} + + +VMLRenderer.prototype.showMultiSelect = function(iniX,iniY) { + var tracker = document.getElementById('trackerMultiSelect'); + if (tracker) { + this.remove(tracker); + } + var coord=this.editor.inputxy; + toX=parseFloat(coord[0]); + toY=parseFloat(coord[1]); + + tracker = this.container.ownerDocument.createElement('v:rect'); + + tracker.style.position = 'relative'; + tracker.style.left = iniX; + tracker.style.top = iniY; + tracker.style.width = toX ; + tracker.style.height = toY; + tracker.setAttribute('filled', 'false'); + tracker.setAttribute('stroked', 'true'); + tracker.setAttribute('strokecolor', 'blue'); + tracker.setAttribute('strokeweight', '1px'); + + this.container.appendChild(tracker); +} + +function mouseCoord() +{ + var coord=this.editor.inputxy; + coord[0]=parseFloat(coord[0]); + coord[1]=parseFloat(coord[1]); + return coord +} + +var memoNode=null; +var memoPrevControl=new Array(); +var memoNextControl=new Array(); +VMLRenderer.prototype.nodeMove = function(newx,newy) { + var mypath=$('control_codebase').value; + var x= $('option_path_x').value; + var y= $('option_path_y').value; + var precoord=x+','+y; + + $('option_path_x').value=newx; + $('option_path_y').value=newy; + + var cadx= newx; + var cady= newy; + + var coord=cadx+','+cady; + var cad1=new RegExp(precoord,"g"); + + + var result=mypath.replace(cad1, coord); + + + $('control_codebase').value=result; + + $('someinfo').value=precoord; + setShape(); + +} + +function drawNodeControl(vml,numId){ + var color1='#0066ff'; + // if(parseInt(memoNode.id)==a){ + + var pointprev=memoPrevControl[numId].split(','); + var controlNode1 = this.container.ownerDocument.createElement('v:rect'); + controlNode1.setAttribute('x', pointprev[0]-2); + controlNode1.setAttribute('y', pointprev[1]-2); + + controlNode1.setAttribute('width', 4); + controlNode1.setAttribute('height', 4); + controlNode1.setAttribute('fillcolor', color1); + controlNode1.setAttribute('strokecolor', '#000000'); + controlNode1.setAttribute('strokeweight', '0'); + controlNode1.setAttribute('id', 'controlNode1'); + controlNode1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttribute('strokeweight', 0 );} memoNode=this; this.setAttribute('fillcolor', '#ffff00' );this.setAttribute('strokeweight', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttribute('x'))+2; $('option_path_y').value=parseFloat(this.getAttribute('y'))+2; }, false); + vml.appendChild(controlNode1); + + var pointnext=memoNextControl[numId].split(','); + + + var controlNode2 =this.container.ownerDocument.createElement('v:rect'); + controlNode2.setAttribute('x', pointnext[0]-2); + controlNode2.setAttribute('y', pointnext[1]-2); + + controlNode2.setAttribute('width', 4); + controlNode2.setAttribute('height', 4); + controlNode2.setAttribute('fillcolor', color1); + controlNode2.setAttribute('strokecolor', '#000000'); + controlNode2.setAttribute('strokeweight', '0'); + controlNode2.setAttribute('id', 'controlNode1'); + controlNode2.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttribute('strokeweight', 0 );} memoNode=this; this.setAttribute('fillcolor', '#ffff00' );this.setAttribute('strokeweight', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttribute('x'))+2; $('option_path_y').value=parseFloat(this.getAttribute('y'))+2; }, false); + vml.appendChild(controlNode2); + + //} + + +} + +VMLRenderer.prototype.showNodesCurve = function(path){ + var points=path.split('c'); + var chain=''; + var segment=' '; + var numpoints=points.length-1; + for(var a=1;a max.x) { + max.x = x; + } + if (y < min.y) { + min.y = y; + } + else if (y > max.y) { + max.y = y; + } + } + + + var border_square = this.container.ownerDocument.createElement('v:rect'); + + border_square.style.position = 'relative'; + border_square.style.left = 0 - 10; + border_square.style.top = 0 - 10; + border_square.style.width = box.width + 20; + border_square.style.height = box.height + 20; + border_square.setAttribute('filled', 'false'); + border_square.setAttribute('stroked', 'true'); + border_square.setAttribute('strokecolor', 'blue'); + border_square.setAttribute('strokeweight', '1px'); + + + var border_angle = this.container.ownerDocument.createElement('v:polyline'); + border_angle.style.position = 'relative'; + + //border_angle.setAttribute('from',(box.width+10) + 'px,' + (box.height/2) + 'px'); + //border_angle.setAttribute('to', (box.width+10+25) + 'px,' + (box.width+10) + 'px'); + border_angle.setAttribute('filled', 'false'); + border_angle.setAttribute('stroked', 'true'); + border_angle.setAttribute('strokecolor', 'blue'); + border_angle.setAttribute('strokeweight', '1px'); + border_angle.setAttribute("points", (box.width+10)+","+((box.height/2))+", " + +(box.width+10+25)+","+((box.height/2)) ); + + + /* var path01 = this.container.ownerDocument.createElement('v:path'); + //path01.setAttribute("v", "m "+thispath+" c"+ thispath2+" e "); + path01.setAttribute("v", "m"+(min.x-10)+","+ (min.y-10)+" r"+(box.width+20)+","+(0)+" r"+(0)+","+(box.height+20)+" r"+(-box.width-20)+','+(0)+"x e m"+(box.x+box.width+10)+","+ (box.y+(box.height/2))+" r"+(25)+",0 e "); + border.appendChild(path01) + */ + //border.setAttribute('stroke-width', '1'); + +// createRect(min.x, min.y, max.x - min.x, max.y - min.y); + + + /* tracker = this.container.ownerDocument.createElement('v:rect'); + tracker.id = 'tracker'; + tracker.style.position = 'absolute'; + tracker.style.left = box.x - 10; + tracker.style.top = box.y - 10; + tracker.style.width = box.width + 20; + tracker.style.height = box.height + 20; + tracker.setAttribute('filled', 'false'); + tracker.setAttribute('stroked', 'true'); + tracker.setAttribute('strokecolor', 'blue'); + tracker.setAttribute('strokeweight', '1px'); + this.container.appendChild(tracker); + */ + var circle1 = this.container.ownerDocument.createElement('v:oval'); + circle1.style.position = 'relative'; + circle1.style.left = ( (box.width+40)-5); + circle1.style.top = ( (box.height / 2) -5); + circle1.style.width = (10); + circle1.style.height = (10); + circle1.setAttribute('filled', 'true'); + circle1.setAttribute('stroked', 'true'); + circle1.setAttribute('fillcolor', '#ffffff'); + circle1.setAttribute('strokecolor', 'green'); + circle1.setAttribute('strokeweight', '1px'); + + + var rect1 = this.container.ownerDocument.createElement('v:rect'); + rect1.style.position = 'relative'; + rect1.style.left = - 10-5; + rect1.style.top = - 10-5; + rect1.style.width = 10; + rect1.style.height = 10; + rect1.setAttribute('filled', 'true'); + rect1.setAttribute('stroked', 'true'); + rect1.setAttribute('fillcolor', '#ffffff'); + rect1.setAttribute('strokecolor', 'green'); + rect1.setAttribute('strokeweight', '1px'); + + + var rect2 = this.container.ownerDocument.createElement('v:rect'); + rect2.style.position = 'relative'; + rect2.style.left = box.width +5; + rect2.style.top = -10 -5; + rect2.style.width = 10; + rect2.style.height = 10; + rect2.setAttribute('filled', 'true'); + rect2.setAttribute('stroked', 'true'); + rect2.setAttribute('fillcolor', '#ffffff'); + rect2.setAttribute('strokecolor', 'green'); + rect2.setAttribute('strokeweight', '1px'); + + + var rect3 = this.container.ownerDocument.createElement('v:rect'); + rect3.style.position = 'relative'; + rect3.style.left = box.width+5; + rect3.style.top = box.height+5; + rect3.style.width = 10; + rect3.style.height = 10; + rect3.setAttribute('filled', 'true'); + rect3.setAttribute('stroked', 'true'); + rect3.setAttribute('fillcolor', '#ffffff'); + rect3.setAttribute('strokecolor', 'green'); + rect3.setAttribute('strokeweight', '1px'); + + var rect4 = this.container.ownerDocument.createElement('v:rect'); + rect4.style.position = 'relative'; + rect4.style.left = -10-5; + rect4.style.top = box.height+5; + rect4.style.width = 10; + rect4.style.height = 10; + rect4.setAttribute('filled', 'true'); + rect4.setAttribute('stroked', 'true'); + rect4.setAttribute('fillcolor', '#ffffff'); + rect4.setAttribute('strokecolor', 'green'); + rect4.setAttribute('strokeweight', '1px'); + + + + var rectmid12 = this.container.ownerDocument.createElement('v:rect'); + rectmid12.style.position = 'relative'; + rectmid12.style.left = (box.width/2) -5; + rectmid12.style.top =- 10-5; + rectmid12.style.width = 10; + rectmid12.style.height = 10; + rectmid12.setAttribute('filled', 'true'); + rectmid12.setAttribute('stroked', 'true'); + rectmid12.setAttribute('fillcolor', '#ffffff'); + rectmid12.setAttribute('strokecolor', 'green'); + rectmid12.setAttribute('strokeweight', '1px'); + + var rectmid23 = this.container.ownerDocument.createElement('v:rect'); + rectmid23.style.position = 'relative'; + rectmid23.style.left = box.width +5; + rectmid23.style.top = (box.height/2)-5; + rectmid23.style.width = 10; + rectmid23.style.height = 10; + rectmid23.setAttribute('filled', 'true'); + rectmid23.setAttribute('stroked', 'true'); + rectmid23.setAttribute('fillcolor', '#ffffff'); + rectmid23.setAttribute('strokecolor', 'green'); + rectmid23.setAttribute('strokeweight', '1px'); + + var rectmid34 = this.container.ownerDocument.createElement('v:rect'); + rectmid34.style.position = 'relative'; + rectmid34.style.left = (box.width/2)-5; + rectmid34.style.top = box.height+5; + rectmid34.style.width = 10; + rectmid34.style.height = 10; + rectmid34.setAttribute('filled', 'true'); + rectmid34.setAttribute('stroked', 'true'); + rectmid34.setAttribute('fillcolor', '#ffffff'); + rectmid34.setAttribute('strokecolor', 'green'); + rectmid34.setAttribute('strokeweight', '1px'); + + + var rectmid41 = this.container.ownerDocument.createElement('v:rect'); + rectmid41.style.position = 'relative'; + rectmid41.style.left = -10-5 ; + rectmid41.style.top =(box.height/2)-5; + rectmid41.style.width = 10; + rectmid41.style.height = 10; + rectmid41.setAttribute('filled', 'true'); + rectmid41.setAttribute('stroked', 'true'); + rectmid41.setAttribute('fillcolor', '#ffffff'); + rectmid41.setAttribute('strokecolor', 'green'); + rectmid41.setAttribute('strokeweight', '1px'); + + + + + var colorin="#ff0000"; + var colorout="#ffffff" + + circle1.attachEvent("onmouseover", function(event) {circle1.style.cursor= 's-resize'; circle1.setAttribute('fillcolor', colorin ); typeTransform='Rotate'; scaleType='nw'; }, false); + circle1.attachEvent("onmouseout", function(event) {circle1.style.cursor= 'default'; circle1.setAttribute('fillcolor', colorout ); typeTransform='Rotate'; }, false); //typeTransform='rotate' + + + rect1.attachEvent("onmouseover", function(event) {rect1.style.cursor= 'nw-resize'; rect1.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='nw'; }, false); + rect1.attachEvent("onmouseout", function(event) {rect1.style.cursor= 'default'; rect1.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); //typeTransform='rotate' + + rect2.attachEvent("onmouseover", function(event) {rect2.style.cursor= 'ne-resize'; rect2.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='ne';}, false); + rect2.attachEvent("onmouseout", function(event) {rect2.style.cursor= 'default'; rect2.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); + + rect3.attachEvent("onmouseover", function(event) {rect3.style.cursor= 'se-resize'; rect3.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='se';}, false); + rect3.attachEvent("onmouseout", function(event) {rect3.style.cursor= 'default'; rect3.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); + + rect4.attachEvent("onmouseover", function(event) {rect4.style.cursor= 'sw-resize'; rect4.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='sw';}, false); + rect4.attachEvent("onmouseout", function(event) {rect4.style.cursor= 'default'; rect4.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); + + rectmid12.attachEvent("onmouseover", function(event) {rectmid12.style.cursor= 'n-resize'; rectmid12.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='n';}, false); + rectmid12.attachEvent("onmouseout", function(event) {rectmid12.style.cursor= 'default'; rectmid12.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + + rectmid23.attachEvent("onmouseover", function(event) {rectmid23.style.cursor= 'e-resize'; rectmid23.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='e';}, false); + rectmid23.attachEvent("onmouseout", function(event) {rectmid23.style.cursor= 'default'; rectmid23.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + + rectmid34.attachEvent("onmouseover", function(event) {rectmid34.style.cursor= 's-resize'; rectmid34.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='s';}, false); + rectmid34.attachEvent("onmouseout", function(event) {rectmid34.style.cursor= 'default'; rectmid34.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + + rectmid41.attachEvent("onmouseover", function(event) {rectmid41.style.cursor= 'w-resize'; rectmid41.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='w'; }, false); + rectmid41.attachEvent("onmouseout", function(event) {rectmid41.style.cursor= 'default'; rectmid41.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + //tracker.setAttribute('transform',trshape); + + + + tracker.appendChild(border_square); + tracker.appendChild(border_angle); + + tracker.appendChild(circle1); + + tracker.appendChild(rect1); + tracker.appendChild(rect2); + tracker.appendChild(rect3); + tracker.appendChild(rect4); + tracker.appendChild(rectmid12); + tracker.appendChild(rectmid23); + tracker.appendChild(rectmid34); + tracker.appendChild(rectmid41); + + /* + + + + */ + + + this.container.appendChild(tracker); + + + +} + + + + + + + + + + +VMLRenderer.prototype.getMarkup = function() { + + return this.container.innerHTML; +} + + + +///////////////////////////////// + + + +var rotatexxx=0; + +var scaleType=''; +var xrot=0; +var yrot=0; + +var point = {x:0, y:0, width: 0, height:0}; + +function createPoint (x, y, width, height) { + //var point = {x:34, y:22, width: 22, height:23}; + //point.x = x; + //point.y = y; + point = {x:x, y:y, width: width, height:height}; + return point; + } + + +///////////////////////////////// + +VMLRenderer.prototype.restruct= function(shape) +{ +}; + + + +VMLRenderer.prototype.transform = function() { + +}; + +VMLRenderer.prototype.scaleShape = function(shape, previus,toX, toY) { +// document.forms[0].code.value="escala"; + + //document.forms[0].code.value="escala"; + var box = this.bounds(shape); + var prevbox=this.bounds(previus); + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + var coord=this.editor.inputxy; + toX=parseFloat(coord[0]); + toY=parseFloat(coord[1]); + var d2p_center=dist2p(centerx,centery,toX,toY); + + var d2p=dist2p(box.x,box.y,toX,toY); + + var shareScale=box.width/d2p; + + var trans_ShareScale=''; + var tx, ty, tw, yh; + + if(scaleType.length==1){ + if(scaleType== 'w') + { + trans_ShareScale=shareScale+",1"; + tx=toX; + ty=prevbox.y; + var dist=prevbox.x-toX; + var w=dist+prevbox.width; + if(w<1){w=1;} + tw=w; + th=prevbox.height; + //document.forms[0].code.value=box.x+' '+toX+' '+dist+''; + } + if(scaleType== 'e') + { + trans_ShareScale=shareScale+",1"; + tx=prevbox.x; + ty=prevbox.y; + var dist=toX-(prevbox.x+prevbox.width); //dist2p(toX,b,c,d); + var w=dist+prevbox.width; + if(w<1){w=1;} + tw=w; + th=prevbox.height; + + } + if(scaleType== 'n') + { + trans_ShareScale="1,"+shareScale; + + tx=prevbox.x; + ty=toY; + var dist=prevbox.y-toY; + var h=dist+prevbox.height; + if(h<1){h=1;} + tw=prevbox.width; + th=h; + + } + if( scaleType== 's') + { + trans_ShareScale="1,"+shareScale; + + tx=prevbox.x; + ty=prevbox.y; + var dist=toY-(prevbox.y+prevbox.height); //dist2p(toX,b,c,d); + var h=dist+prevbox.height; + if(h<1){h=1;} + tw=prevbox.width; + th=h; + + } + } + if(scaleType.length==2){ + if(scaleType== 'nw'){ + trans_ShareScale=shareScale+","+shareScale; + + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + var angle_diagonal=ang2v(prevbox.x,prevbox.y,prevbox.x+prevbox.width,prevbox.y+prevbox.height) + + var ax= prevbox.x; + var ay= prevbox.y; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y+prevbox.height; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + this.editor.log(angle_diagonal* 180 / Math.PI); + + var tx= section_a[1]; + var ty= section_a[2]; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x+prevbox.width; + var cy= prevbox.y; + + var dx= prevbox.x+prevbox.width; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1] + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y+prevbox.height; + + var dx= 0; + var dy= prevbox.y+prevbox.height; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + + } + + //////////////////// SE + + if( scaleType== 'se'){ + trans_ShareScale=shareScale+","+shareScale; + + + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + var angle_diagonal=ang2v(prevbox.x,prevbox.y,prevbox.x+prevbox.width,prevbox.y+prevbox.height) + + + + var ax= prevbox.x; + var ay= prevbox.y; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y+prevbox.height; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + + ////////// + var tx= prevbox.x; + var ty= prevbox.y; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x; + var cy= prevbox.y; + + var dx= prevbox.x; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + ///////////////// + + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1] + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y; + + var dx=0; + var dy= prevbox.y; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + /////////////// + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + + tw=distx; + th=disty; + + + } + + if(scaleType== 'ne'){ + + trans_ShareScale=shareScale+","+shareScale; + + var angle_diagonal=ang2v(prevbox.x,prevbox.y+prevbox.height,prevbox.x+prevbox.width,prevbox.y) + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + + + + + var ax= prevbox.x; + var ay= prevbox.y+prevbox.height; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + + this.editor.log(angle_diagonal); + + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + + ////////// + var tx= prevbox.x; + var ty= section_a[2]; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x; + var cy= prevbox.y; + + var dx= prevbox.x; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + ///////////////// + + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1]; + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y+prevbox.height; + + var dx=0; + var dy= prevbox.y+prevbox.height; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + /////////////// + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + + + + + } + if(scaleType== 'sw'){ + trans_ShareScale=shareScale+","+shareScale; + + + + + var angle_diagonal=ang2v(prevbox.x,prevbox.y+prevbox.height,prevbox.x+prevbox.width,prevbox.y) + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + + + + + var ax= prevbox.x; + var ay= prevbox.y+prevbox.height; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + + this.editor.log(angle_diagonal); + + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + ////////// + var tx= section_a[1]; + var ty= prevbox.y; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x+prevbox.width; + var cy= prevbox.y+prevbox.height; + + var dx= prevbox.x+prevbox.width; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + ///////////////// + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1]; + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y; + + var dx=0; + var dy= prevbox.y; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + /////////////// + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + } + + } + + + + if(shape.tagName == 'rect') + { + //alert(data[0]); + + + shape.style.left = tx + 'px'; + shape.style.top = ty + 'px'; + shape.style.height = th + 'px'; + shape.style.width = tw + 'px'; + + } + else + if(shape.tagName == 'text') + { + /* + shape.setAttribute('x',tx); + shape.setAttribute('y',ty); + shape.setAttribute('width', tw); + shape.setAttribute('height', th); + + //previus.setAttribute('transform', "scale("+trans_ShareScale+")"); + shape.setAttribute('x', tx + 'px'); + shape.setAttribute('y', ty + 'px'); + + shape.setAttribute('textLength', parseInt(Math.round(tw))); + + */ + } + else + if(shape.tagName == 'oval') + { + //shape.getAttribute('transform) + + shape.style.left = tx + 'px'; + shape.style.top = ty + 'px'; + shape.style.height = th + 'px'; + shape.style.width = tw + 'px'; + + + } + else + if(shape.tagName == 'line') + { + shape.setAttribute('to',tx + 'px,' + ty + 'px'); + shape.setAttribute('from', tw + 'px,' + th + 'px'); + + + } + else + if (shape.tagName == 'polyline') + { + + } + else + if (shape.tagName == 'image') + { + + shape.style.left = tx + 'px'; + shape.style.top = ty + 'px'; + shape.style.height = th + 'px'; + shape.style.width = tw + 'px'; + + } + else + if (shape.tagName == 'shape') + { + + shape.style.left = tx + 'px'; + shape.style.top = ty + 'px'; + shape.style.height = th + 'px'; + shape.style.width = tw + 'px'; + + //document.forms[0].code.value=''; + //shape.setAttribute('transform', "scale("+trans_ShareScale+")"); + + } + + + + + +}; + + + +VMLRenderer.prototype.rotateShape = function(shape, previus,toX, toY) { + + + + //document.forms[0].code.value=$('xyinput').innerHTML; + //document.getElementById('richdraw').style.cursor='e-resize'; + var box = this.bounds(shape); + var prevbox=this.bounds(previus); + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + var coord=this.editor.inputxy; + + var actual_angle=ang2v(centerx,centery,coord[0], coord[1]); + + if(xrot"9"?p:""; + n = Math.round(c.substring(d!="") * 100); + l+= (d+n+" "); + } + LX[i] = l; + code = ''; + VML.insertAdjacentHTML("beforeEnd",code); + } else { + L[i] = LX[i] = "" + VML.insertAdjacentHTML("beforeEnd",""); + } +} +*/ +//http://msdn2.microsoft.com/en-us/library/bb263897(VS.85).aspx +//http://www.w3.org/TR/NOTE-VML +//http://trac.openlayers.org/changeset/5285 +//http://vectorconverter.sourceforge.net/index.html +//http://www.dhteumeuleu.com/colorsyntax/viewJS.php?src=svg2vml1.html + + +VMLRenderer.prototype.getshapes = function(){ +return this.container.childNodes; +} + + +VMLRenderer.prototype.reflect = function(HorV) { +}; + + + + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/js/vmlrenderer_mini.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/js/vmlrenderer_mini.js Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,2348 @@ +/*---------------------------------------------------------------------------- + VMLRENDERER 1.0 + VML Renderer For RichDraw + ----------------------------------------------------------------------------- + Created by Mark Finkle (mark.finkle@gmail.com) + Implementation of VML based renderer. + ----------------------------------------------------------------------------- + Copyright (c) 2006 Mark Finkle + + This program is free software; you can redistribute it and/or modify it + under the terms of the MIT License. + + 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. + ----------------------------------------------------------------------------- + Dependencies: + History: + 2006-04-05 | Created + --------------------------------------------------------------------------*/ + + + +function VMLRenderer() { + this.base = AbstractRenderer; +} + + +VMLRenderer.prototype = new AbstractRenderer; + + +VMLRenderer.prototype.init = function(elem) + { + this.container = elem; + // this.container.style.overflow = 'hidden'; + this.container.unselectable = "on"; + // Add VML includes and namespace + elem.ownerDocument.namespaces.add("v", "urn:schemas-microsoft-com:vml"); + var style = elem.ownerDocument.createStyleSheet(); + style.addRule('v\\:*', "behavior: url(#default#VML); display:inline-block"); + //NOT VML biewBox + //http://blogs.msdn.com/ie/archive/2008/03/18/webbrowser-control-rendering-modes-in-ie8.aspx + } + +VMLRenderer.prototype.view = function(left,top,width,height,viewBox) { + if(mode=='preview') + { + + var tokens = viewBox.split(' '); + var prx=100; + this.container.style.top =(parseInt(document.getElementById('FRONT').style.height)-height)/2+'px' + this.container.style.left =(parseInt(document.getElementById('FRONT').style.width)-width)/2+'px' + + this.container.style.width = width;//document.getElementById('FRONT').style.width; + this.container.style.height =height;//document.getElementById('FRONT').style.height; + + + canvasLeft = left; + canvasTop = top; + canvasWidth = width; + canvasHeight = height; + zoominit = viewBox; + zoominit1 = viewBox; + zoominit2 = viewBox; + var tokens = zoominit.split(' '); + proporx = width/tokens[2]; + propory = height/tokens[3]; + /* var x=parseFloat(tokens[0])-prx; + var y=parseFloat(tokens[1])-prx; + var w=parseFloat(tokens[2])+prx; + var h=parseFloat(tokens[3])+prx; + workspace= x+''+y+''+w+''+h; + //zoominit = workspace; + */ + //VMLviewBox('',left,top,width,height) + } + else + { + + // + this.container.style.top =0+'px'; + + var tokens = viewBox.split(' '); + proporImage= (parseFloat(tokens[2])-parseFloat(tokens[0]))/(parseFloat(tokens[3])-parseFloat(tokens[1])); + var marginx=(parseInt(document.getElementById('FRONT').style.width)-(parseFloat(tokens[2])-parseFloat(tokens[0])))/2; + var marginy=(parseInt(document.getElementById('FRONT').style.height)-(parseFloat(tokens[3])-parseFloat(tokens[1])))/2; + var x=(parseFloat(tokens[0])-marginx); + var y=(parseFloat(tokens[1])-marginy); + var w=(parseFloat(tokens[2])+marginx*2); + var h=(parseFloat(tokens[3])+marginy*2); + //alert(tokens[3]+' '+tokens[1]+' / '+(parseFloat(tokens[3])-parseFloat(tokens[1]))+' '+parseInt(document.getElementById('FRONT').style.height)+' /'+h+' '+height); + //if(h>=parseInt(document.getElementById('FRONT').style.height)){h=parseInt(document.getElementById('FRONT').style.height);} + //if(h>=parseInt(document.getElementById('FRONT').style.height)){y=0;h=600;}//parseInt(document.getElementById('FRONT').style.height)*2} + //zoominit = x+' '+y+' '+w+' '+h; + canvasLeft = 0; + canvasTop = 0; + canvasWidth = w; + canvasHeight = h; + //proporx = w/tokens[2]; + //propory = h/tokens[3]; + + this.container.style.left =canvasLeft+'px' + this.container.style.top =canvasTop+'px' + + this.container.style.width = canvasWidth;//document.getElementById('FRONT').style.width; + this.container.style.height =canvasHeight;//document.getElementById('FRONT').style.height; + zoominit1 = canvasLeft+' '+canvasTop+' '+canvasWidth+' '+canvasHeight; + zoominit2= x+' '+y+' '+w+' '+h; + //VMLviewBox('',x,canvasTop,w,h) + //this.rectCanvas(x,y,w,h,zoominit) + // this.rectCanvas(x,y,canvasWidth,canvasHeight,zoominit2) + // zoominit = viewBox; + } +} + +VMLRenderer.prototype.zoomFrame = function(zoom){ + myOPF.viewBox=zoom; + load(myOPF,c); + document.getElementById("source").value=myOPF.toJSONString(); +} +VMLRenderer.prototype.rectDoc = function(viewBox) { + var tokens2 = zoominit2.split(' '); + var tokens = zoominit.split(' '); + var shape = document.getElementById('rectDoc'); + if (shape) { + this.remove(shape); + } + var rect=this.container.ownerDocument.createElement('v:rect'); + rect.id='rectDoc'; + rect.style.position = 'absolute'; + rect.style.left =-parseInt(tokens2[0]); + rect.style.top = -parseInt(tokens2[1]); + rect.style.width = parseInt(tokens[2]); + rect.style.height = parseInt(tokens[3]); + rect.setAttribute('filled', 'false'); + rect.setAttribute('stroked', 'true'); + rect.setAttribute('strokeweight', 2); + rect.setAttribute('strokecolor',"#ff0000"); + this.container.appendChild(rect); + //this.container.insertBefore(rect, this.container.firstChild ); + //alert(docx+' '+docy+' '+docw+' '+doch+' '+viewBox) + } +VMLRenderer.prototype.rectCanvas = function(docx,docy,docw,doch,viewBox) { + + var tokens = zoominit1.split(' '); + var shape = document.getElementById('rectCanvas'); + if (shape) { + this.remove(shape); + } + + var rect=this.container.ownerDocument.createElement('v:rect'); + rect.id='rectBackground'; + rect.style.position = 'absolute'; + rect.style.left = tokens[0] ; + rect.style.top =tokens[1]; + rect.style.width=tokens[2]; + rect.style.height= tokens[3] ; + rect.setAttribute('filled', 'true'); + rect.setAttribute('fillcolor',"#666666"); + rect.setAttribute('stroked', 'false'); + + this.container.insertBefore(rect, this.container.firstChild ); + +} + +VMLRenderer.prototype.removeAll = function(){ + while (this.container.hasChildNodes()) { + this.container.removeChild(this.container.firstChild); + } +} + +function VMLviewBox(container,left,top,width,height){ + var tokens = zoominit2.split(' '); + left *= proporx; + left = left - parseFloat(tokens[0]); + top *= propory; + top = top - parseFloat(tokens[1]); + width *= proporx; + height *= propory; + + return {"x":parseFloat(Math.round(left)), "y":parseFloat(Math.round(top)), "w":parseFloat(Math.round(width)), "h":parseFloat(Math.round(height))}; +} +function VMLviewBox1(container,left,top,width,height){ + var tokens = zoominit2.split(' '); + left *= proporx; + left = left - parseFloat(tokens[0]); + top *= propory; + top = top - parseFloat(tokens[1]); + width *= proporx; + height *= propory; + + return {"x":parseFloat(Math.round(left)), "y":parseFloat(Math.round(top)), "w":parseFloat(Math.round(width)), "h":parseFloat(Math.round(height))}; +} + +VMLRenderer.prototype.create = function(shape, fillColor, lineColor, fillOpac, lineOpac, lineWidth, left, top, width, height, textMessaje, textSize, textFamily, imageHref, points, transform, parent) { + var tokens = zoominit2.split(' '); + var zoom=VMLviewBox(this.container,left,top,width,height); + left=zoom.x; + top=zoom.y; + width=zoom.w; + height=zoom.h; + + var zoom=VMLviewBox(this.container,left,top,textSize,textSize); + if(zoom.w<1){zoom.w=1} + textSize=zoom.h; + + var zoom=VMLviewBox(this.container,left,top,lineWidth*2/3,lineWidth); + if(zoom.w<1){zoom.w=1} + lineWidth=zoom.w; + + + var vml; + + var shap=1; + if (shape == 'rect') { + vml = this.container.ownerDocument.createElement('v:rect'); + vml.style.position = 'absolute'; + vml.style.left = left; + vml.style.top = top; + vml.style.width = width; + vml.style.height = height; + } + else if (shape == 'roundrect') { + vml = this.container.ownerDocument.createElement('v:roundrect'); + vml.style.position = 'absolute'; + vml.style.left = left; + vml.style.top = top; + vml.style.width = width; + vml.style.height = height; + vml.setAttribute('arcsize', '20%'); + + } + else if (shape == 'ellipse') { + vml = this.container.ownerDocument.createElement('v:oval'); + vml.style.left = left; + vml.style.top = top; + vml.style.width = width; + vml.style.height = height; + vml.style.position = 'absolute'; + } + else if (shape == 'line') { + vml = this.container.ownerDocument.createElement('v:line'); + vml.style.position = 'absolute'; + vml.setAttribute('from', left-80 + 'px,' + top + 'px'); + vml.setAttribute('to', (left-80+width) + 'px,' + (top+height) + 'px'); + + } + else if (shape == 'polyline') { + vml = this.container.ownerDocument.createElement('v:polyline'); + vml.setAttribute("points", points); + + } + else if (shape == 'path') + { + vml = this.container.ownerDocument.createElement('v:shape'); + var tokens = zoominit1.split(' '); + var tokens1 = zoominit1.split(' '); + var tokens2 = zoominit2.split(' '); + tokens[0]=0; + tokens[1]=0; + var path=points; + path=path.replace(/, /g, ','); + path=path.replace(/ ,/g, ','); + var ps =path.split(" ") + var pcc = ""; + + var re = /^[-]?\d*\.?\d*$/; + var contArc=0; + var isArc=false; + for(var i = 0; i < ps.length; i++) + { + if(ps[i].indexOf(',')>0){ + + var point =ps[i].split(","); + var char1=point[0].substring(0,1); + + if (!char1.match(re)) + { + var num0= parseFloat(point[0].substring(1)); + var zoom=VMLviewBox(this.container,num0+(parseInt(tokens2[0])*proporx),0,parseInt(tokens2[2]),parseInt(tokens2[3])); + num0=zoom.x; + + var text=char1; + }else{ + var num0= parseFloat(point[0]); + var zoom=VMLviewBox(this.container,num0+(parseInt(tokens2[0])*proporx),0,parseInt(tokens2[2]),parseInt(tokens2[3])); + num0=zoom.x; + + } + point[1]= parseFloat(point[1]); + var zoom=VMLviewBox(this.container,0,point[1],parseInt(tokens2[2]),parseInt(tokens2[3])); + point[1]=zoom.y; + var cx=num0; + var cy=point[1]+parseInt(tokens2[1]); + pcc+=text+cx+','+cy+' '; + } + else + { + pcc+=ps[i]+' '; + } + + } + //////////////////// + var thispath=pcc; + thispath=thispath.replace(/M/g,'m'); + thispath=thispath.replace(/C/g,'c'); + thispath=thispath.replace(/L/g,'l'); + thispath=thispath.replace(/z/g,'x'); + + //document.getElementById('source').value=points+'\r\n'+thispath +'\r\n'+'________'+'\r\n' + var zoom=VMLviewBox(this.container,tokens[0],tokens[1],tokens[2],tokens[3]); + + vml.style.position="absolute"; + vml.style.width= zoom.w+"px"; + vml.style.height=zoom.h+"px"; + vml.style.left=zoom.x+"px"; + vml.style.top=zoom.y+"px"; + vml.setAttribute('coordsize', zoom.w+','+zoom.h); + + var path01 = this.container.ownerDocument.createElement('v:path'); + path01.setAttribute("v", thispath+' e'); + + + + vml.appendChild(path01) + + } + + else if (shape == 'controlpath') + { + + vml = this.container.ownerDocument.createElement('v:shape'); + vml.style.position="absolute"; + vml.style.width= 700+"px"; + vml.style.height=500+"px"; + vml.style.left=left+"px"; + vml.style.top=top+"px"; + vml.setAttribute('coordsize', '700,500'); + + var path01 = this.container.ownerDocument.createElement('v:path'); + path01.setAttribute('v', 'm '+left+','+top+' c'+(left+1)+','+(top+1)+' e '); + + vml.appendChild(path01) + } + else if (shape == 'image') { + var data =imageHref;//document.forms[0].option_text_message.value; + vml = this.container.ownerDocument.createElement('v:image'); + vml.setAttribute('src',imageHref); + vml.style.position="absolute"; + vml.style.width=width+"px"; + vml.style.height=height+"px"; + vml.style.left=left+"px"; + vml.style.top=top+"px"; + vml.style.margin=0+"px"; + vml.style.padding=0+"px"; + if (fillColor != '' || fillColor != 'none') { + vml.setAttribute('filled', 'false'); + vml.setAttribute('fillcolor', fillColor); + } + else { + vml.setAttribute('filled', 'false'); + } + vml.setAttribute('strokeweight','0px');// parseFloat(lineWidth)+'px'); + vml.setAttribute('stroked', 'false'); + vml.setAttribute('strokecolor','#000000');//lineColor); + + + } + + else if (shape == 'text') + { + + var data =textMessaje; + vml = this.container.ownerDocument.createElement('v:shape'); + vml.style.position="absolute"; + //vml.setAttribute('coordorigin',left+', '+top); + //vml.style.coorsize= ''; + coordorigin="0, 0" + vml.style.width= textSize+'px';//tokens[2]+'px' + vml.style.height=textSize+'px'; + vml.style.left=(left+"px"); + vml.style.top=(top-(textSize*1/4)+"px"); + vml.style.margin=0+"px"; + vml.style.padding=0+"px"; + vml.setAttribute('path','m '+0+' '+0+' r '+(textSize*data.length)+' '+0+' e'); + var textPathObj = this.container.ownerDocument.createElement("v:textpath"); + textPathObj.setAttribute('string', data); + textPathObj.setAttribute('fitshape','false'); + textPathObj.setAttribute('trim', 'false'); + textPathObj.setAttribute('fitpath', 'false'); + textPathObj.setAttribute('on','true'); + textPathObj.style.fontFamily=textFamily; + textPathObj.style.fontSize=textSize+'px'; + textPathObj.setAttribute('vTextKern','true'); + textPathObj.setAttribute('text-align','center'); + + var pathObj = this.container.ownerDocument.createElement("v:path"); + pathObj.setAttribute('textpathok', 'true'); + vml.appendChild(textPathObj); + vml.appendChild(pathObj); + + + } + + + + else if (shape == 'texto') + { + vml = this.container.ownerDocument.createElement('v:shape'); + vml.style.position="absolute"; + + vml.style.coordsize=1000+', '+1000; + vml.style.width= 1000; + vml.style.height=1000; + vml.style.left=left; + vml.style.top=top-parseFloat(textSize); + + vml.style.padding=0; + var textBox = this.container.ownerDocument.createElement("v:textbox"); + textBox.setAttribute('mso-rotate-with-shape',true) + var divtext = this.container.ownerDocument.createElement("div"); + divtext.style.coordorigin=0+', '+(0); + divtext.style.margin=0; + divtext.style.fontFamily=textFamily; + divtext.style.margin=0; + divtext.style.padding=0; + divtext.style.vRotateLetters=true; + divtext.style.fontSize=parseFloat(textSize); + + + + + + + divtext.style.color=fillColor; + + + + + + //divtext.setAttribute('v-rotate-letters','true'); + if(transform.indexOf('rotate')>=0) + { + + myRotate1=transform.split('rotate('); + myRotate2=myRotate1[1].split(')'); + myRotate3=myRotate2[0].split(','); + + //divtext.setAttribute('mso-rotate',myRotate3[0]); + //textBox.style.msoRotate= myRotate3[0]; + //textBox.style.centerX=myRotate3[1]; + //textBox.style.centerY=myRotate3[2]; + //vml.style.rotation= myRotate3[0]; + //vml.style.centerX=myRotate3[1]; + //vml.style.centerY=myRotate3[2]; + vml.setAttribute('rotation',myRotate3[0]+'Deg'); + } + + divtext.innerHTML=textMessaje; + textBox.appendChild(divtext); + + vml.appendChild(textBox); + + } + else if (shape == 'group') { + vml = this.container.ownerDocument.createElement('v:group'); + vml.style.left=left+"px"; + vml.style.top=top+"px"; + } + + if(shape == 'zoom') + { + + }else + { + if(transform.indexOf('rotate')>=0) + { + myRotate1=transform.split('rotate('); + myRotate2=myRotate1[1].split(')'); + myRotate3=myRotate2[0].split(','); + + vml.style.rotation= myRotate3[0]+'Deg'; + vml.style.centerX=myRotate3[1]; + vml.style.centerY=myRotate3[2]; + + } + + if(shape != 'image' ) + { + + if (fillColor != '' || fillColor != 'none') + { + vml.setAttribute('filled', 'true'); + vml.setAttribute('fillcolor', fillColor); + + } + else + { + vml.setAttribute('filled', 'false'); + } + + + if(lineWidth==0 || lineWidth=='none' || lineColor== 'none' ) + { + vml.setAttribute('stroked', 'false'); + } + else + { + + vml.setAttribute('stroked', 'true'); + vml.setAttribute('strokecolor', lineColor); + vml.setAttribute('strokeweight', lineWidth); + var stroke = this.container.ownerDocument.createElement('v:stroke'); + stroke.setAttribute("opacity", parseFloat(lineOpac)); + vml.appendChild(stroke); + } + + if (fillOpac != '') + { + if (fillOpac == 'none' || fillColor=='none'){fillOpac=0;} + var fill = this.container.ownerDocument.createElement('v:fill'); + fill.setAttribute("opacity",parseFloat(fillOpac)); + //alert(fillOpac) + vml.appendChild(fill); + } + } + } + if(parent==''){ + this.container.appendChild(vml); + }else{ + var parentShape = document.getElementById(parent); + parentShape.appendChild(vml); + } + //var parentDoc = document.getElementById('mydraw'); + //parentDoc.appendChild(vml); + return vml; +}; + + +VMLRenderer.prototype.zoom = function(clicx,clicy) + { + } + +VMLRenderer.prototype.datacreate = function(fillColor, lineColor, fillOpac, lineOpac, lineWidth, left, top, width, height, textMessaje, textSize, textFamily, imageHref, transform) + { + } + +VMLRenderer.prototype.duplicate = function(shape) + { + var vml; + vml =shape.cloneNode(false); + //vml.setAttribute('fillcolor', "#aa00aa"); + //vml.setAttribute('filled', "false"); + this.container.appendChild(vml); + return vml; + + }; + + + +VMLRenderer.prototype.index = function(shape,order) { + + if(order==-1) + { + this.container.appendChild( shape ); + } + if(order==0){ + + this.container.insertBefore( shape, shape.parentNode.firstChild ); + } + + if(order==1 || order==2) + { + var id=shape.getAttribute('id'); + //alert(id); + + + var numNodes=this.container.childNodes.length; + //alert(numNodes); + + var num=0; + for(var i = 1; i < numNodes; i++) + { + + var etiq=this.container.childNodes[i].getAttribute('id'); + if (etiq==id) + { + num=i; + + } + } + //alert(num); + if(order==1) + { + if((num-1)>=-1) + { + this.container.insertBefore( shape, this.container.childNodes[num-1]); + } + } + if(order==2){ + if((num+1)1) + //{ shap.style.position="absolute"; + shape.style.width=100+"px"; + shape.style.height=100+"px"; + shape.style.left=toX+"px"; + shape.style.top=toY+"px"; + shape.style.margin=0+"px"; + shape.style.padding=0+"px"; + shape.appendChild(path01); + //} + } + else + { + shape.style.position="absolute"; + shape.style.width= 700+"px"; + shape.style.height=500+"px"; + shape.style.left="0px"; + shape.style.top="0px"; + //shape.setAttribute('coordsize', '700,500'); + shape.appendChild(path01); + } + + //shape.setAttribute('position', 'absolute'); + //shape.translate(xpArray[conta+1]+','+ypArray[conta+1]); + //shape.setAttribute('coordsize', '700,500'); + // shape.v.Value ='M '+thispath1+ ' C'+thispath2+' x e'; + //shape.v.Value = 'M '+thispath+ ' c '+thispath2; + //shape.setAttribute("v", 'M '+thispath+ ' C '+thispath2); + //shape.setAttribute('path','M '+thispath+ ' C '+thispath2); + } + } + +}; + + +VMLRenderer.prototype.tocurve = function() { + + +}; + + +VMLRenderer.prototype.info = function(shape) +{ +var shInfo = {}; +shInfo.id = shape.id; + shInfo.type = shape.tagName; + if (shape.tagName == 'rect') + { + shInfo.left = parseFloat(shape.getAttribute( 'x')); + shInfo.top = parseFloat(shape.getAttribute( 'y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + //++ + //shInfo.rotate = parseFloat(shape.getAttribute('rotation')); + } + else if (shape.tagName == 'oval') + { + shInfo.width = parseFloat(shape.getAttribute('rx'))*2; + shInfo.height = parseFloat(shape.getAttribute('ry'))*2; + shInfo.left = (shInfo.width * 2) - parseFloat(shape.getAttribute('rx')); + shInfo.top = (shInfo.height * 2) - parseFloat(shape.getAttribute('ry')); + + } + else if (shape.tagName == 'roundrect') + { + shInfo.left = parseFloat(shape.getAttribute('x')); + shInfo.top = parseFloat(shape.getAttribute('y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + + } + else if (shape.tagName == 'line') + { + shInfo.left = parseFloat(shape.getAttribute('x1')); + shInfo.top = parseFloat(shape.getAttribute('y1')); + + } + else if (shape.tagName == 'polyline') + { + shInfo.points = shape.getAttribute('points'); + } + else if (shape.tagName == 'image') + { + shInfo.left = parseFloat(shape.getAttribute('x')); + shInfo.top = parseFloat(shape.getAttribute('y')); + shInfo.width = parseFloat(shape.getAttribute('width')); + shInfo.height = parseFloat(shape.getAttribute('height')); + shInfo.src = shape.getAttribute('src'); + } + else + + if (shape.tagName == 'shape') + { + if(shape.children[0].tagName=='path') { + shInfo.d = shape.getAttribute('v'); + this.editor.log(shape.getAttribute('v')); + + } + if(shape.children[0].tagName=='textpath') { + shInfo['font-family'] = shape.children[0].getAttribute('font-family') + shInfo['font-size'] = parseInt(shape.children[0].getAttribute('font-size')) + shInfo.top = parseFloat(shape.children[0].getAttribute('y')) + shInfo.left = parseFloat(shape.children[0].getAttribute('x')) + shInfo.text = shape.textContent + + } + } + return shInfo; + + +} +VMLRenderer.prototype.transformShape = function(shape,data,transform) +{ + + if(shape.tagName == 'rect') + { + + var box = this.bounds(shape); + var sdata=data.split(';'); + + //alert(data[0]); + shape.style.top = parseFloat(sdata[0]) + 'px'; + shape.style.left = parseFloat(sdata[1]) + 'px'; + shape.style.width = parseFloat(sdata[2]) + 'px'; + shape.style.height = parseFloat(sdata[3]) + 'px'; + + + + // var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + // var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.style.rotation=parseFloat(sdata[4]); + + //shape.nodparseFloatue=data; + } + else + if(shape.tagName == 'text') + { + if(data.indexOf('<;>',0)==-1 ) + { + shape.textContent = data; + } + else + { + var sdata=data.split('<;>'); //????????? + shape.textContent = sdata[0]; + shape.setAttribute('font-size',parseFloat(sdata[1])); + shape.setAttribute('font-family',sdata[2]); + } + //shape.nodparseFloatue=data; + } + else + if (shape.tagName == 'polyline') + { + shape.setAttribute('points',data); + } + else + if (shape.tagName == 'image') + { + //alert(data); + if(data.indexOf(';',0)==-1 ) + { + shape.setAttribute('src',data); + } + else + { + var box = this.bounds(shape); + var sdata=data.split(';'); + shape.style.top = parseFloat(sdata[0]) + 'px'; + shape.style.left = parseFloat(sdata[1]) + 'px'; + shape.style.width = parseFloat(sdata[2]) + 'px'; + shape.style.height = parseFloat(sdata[3]) + 'px'; + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + shape.style.rotation=parseFloat(sdata[4]); + + + } + + } + else + if (shape.tagName == 'path') + { + if(data.indexOf(';',0)==-1 ) + { + //shape.setAttribute( 'd', data); //???????? + //shape.setAttribute( 'transform', transform); + } + else + { + var box = this.bounds(shape); + var sdata=data.split(';'); + var centerx=parseFloat(sdata[0])+parseFloat(box.width/2); + var centery=parseFloat(sdata[1])+parseFloat(box.height/2); + //++shape.setAttribute( 'transform','scale('+parseFloat(sdata[2])+','+parseFloat(sdata[3])+')'+' rotate('+parseFloat(sdata[4])+','+centerx+','+centery+')'+' translate('+parseFloat(sdata[0])+','+parseFloat(sdata[1])+')'); + + + } + } + + +} +VMLRenderer.prototype.editShape = function(shape,data) +{ +if(shape.tagName == 'text'){ +shape.textContent = data +}else + if (shape.tagName == 'polyline') + { + shape.setAttribute('points',data); + } + else + + if (shape.tagName == 'path') + { + shape.setAttribute('v', data); + + } + + +} +VMLRenderer.prototype.editCommand = function(shape, cmd, value) +{ + if (shape != null) { + if (cmd == 'fillcolor') { + if (value != '') { + shape.filled = 'true'; + shape.fillcolor = value; + } + else { + shape.filled = 'false'; + shape.fillcolor = ''; + } + } + else if (cmd == 'linecolor') { + if (value != '') { + shape.stroked = 'true'; + shape.strokecolor = value; + } + else { + shape.stroked = 'false'; + shape.strokecolor = ''; + } + } + else if (cmd == 'linewidth') { + shape.strokeweight = parseInt(value) + 'px'; + } + else if (cmd == 'fillopacity') { + + shape.fill.opacity= parseFloat(value); + //shape.style.fill.setAttribute("opacity", parseFloat(value)); + + } + } +} + + +VMLRenderer.prototype.queryCommand = function(shape, cmd) +{ + if (shape != null) { + if (cmd == 'fillcolor') { + if (shape.filled == 'false') + return ''; + else + return shape.fillcolor; + } + else if (cmd == 'linecolor') { + if (shape.stroked == 'false') + return ''; + else + return shape.strokecolor; + } + else if (cmd == 'linewidth') { + if (shape.stroked == 'false') { + return ''; + } + else { + // VML always transforms the pixels to points, so we have to convert them back + return (parseFloat(shape.strokeweight) * (screen.logicalXDPI / 72)) + 'px'; + } + } + } +} + +VMLRenderer.prototype.getProperties = function(shape) +{ + var result = ''; + + if (shape != null) + { + result = shape.getAttribute('fillcolor'); + if (result == 'none') + { + mefillColor.visible = 'hidden'; + mefillColor.hex = '#000000'; + filldraw=true; + setbe(1,'img_okfill'); + } + else + { + //alert(mefillColor.hex+' '+result); + mefillColor.visible = 'visible'; + mefillColor.hex = result; + var rgb=hex2rgb(result) + mefillColor.r=rgb[0]; + mefillColor.g=rgb[1]; + mefillColor.b=rgb[2]; + filldraw=false; + setbe(1,'img_okfill'); + + } + + result = shape.getAttribute('strokecolor'); + if (result == 'none') + { + mestrokeColor.visible = 'hidden'; + mestrokeColor.hex = '#000000'; + mestrokeColor.width = 0; + strokedraw=true; + setbe(2,'img_okstroke'); + + } + else + { + mestrokeColor.visible = 'visible'; + mestrokeColor.hex = result; + var rgb=hex2rgb(result) + mestrokeColor.r=rgb[0]; + mestrokeColor.g=rgb[1]; + mestrokeColor.b=rgb[2]; + strokedraw=false; + setbe(2,'img_okstroke'); + + } + + result = shape.getAttribute('strokeweight'); + mestrokeColor.width = result; + + result = shape.fill.getAttribute('opacity'); + mefillColor.opacity = result; + + result = shape.stroke.getAttribute('opacity'); + mestrokeColor.opacity = result; + + setProperties(); + } +} + + +VMLRenderer.prototype.showMultiSelect = function(iniX,iniY) { + var tracker = document.getElementById('trackerMultiSelect'); + if (tracker) { + this.remove(tracker); + } + var coord=this.editor.inputxy; + toX=parseFloat(coord[0]); + toY=parseFloat(coord[1]); + + tracker = this.container.ownerDocument.createElement('v:rect'); + + tracker.style.position = 'relative'; + tracker.style.left = iniX; + tracker.style.top = iniY; + tracker.style.width = toX ; + tracker.style.height = toY; + tracker.setAttribute('filled', 'false'); + tracker.setAttribute('stroked', 'true'); + tracker.setAttribute('strokecolor', 'blue'); + tracker.setAttribute('strokeweight', '1px'); + + this.container.appendChild(tracker); +} + +function mouseCoord() +{ + var coord=this.editor.inputxy; + coord[0]=parseFloat(coord[0]); + coord[1]=parseFloat(coord[1]); + return coord +} + +var memoNode=null; +var memoPrevControl=new Array(); +var memoNextControl=new Array(); +VMLRenderer.prototype.nodeMove = function(newx,newy) { + var mypath=$('control_codebase').value; + var x= $('option_path_x').value; + var y= $('option_path_y').value; + var precoord=x+','+y; + + $('option_path_x').value=newx; + $('option_path_y').value=newy; + + var cadx= newx; + var cady= newy; + + var coord=cadx+','+cady; + var cad1=new RegExp(precoord,"g"); + + + var result=mypath.replace(cad1, coord); + + + $('control_codebase').value=result; + + $('someinfo').value=precoord; + setShape(); + +} + +function drawNodeControl(vml,numId){ + var color1='#0066ff'; + // if(parseInt(memoNode.id)==a){ + + var pointprev=memoPrevControl[numId].split(','); + var controlNode1 = this.container.ownerDocument.createElement('v:rect'); + controlNode1.setAttribute('x', pointprev[0]-2); + controlNode1.setAttribute('y', pointprev[1]-2); + + controlNode1.setAttribute('width', 4); + controlNode1.setAttribute('height', 4); + controlNode1.setAttribute('fillcolor', color1); + controlNode1.setAttribute('strokecolor', '#000000'); + controlNode1.setAttribute('strokeweight', '0'); + controlNode1.setAttribute('id', 'controlNode1'); + controlNode1.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttribute('strokeweight', 0 );} memoNode=this; this.setAttribute('fillcolor', '#ffff00' );this.setAttribute('strokeweight', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttribute('x'))+2; $('option_path_y').value=parseFloat(this.getAttribute('y'))+2; }, false); + vml.appendChild(controlNode1); + + var pointnext=memoNextControl[numId].split(','); + + + var controlNode2 =this.container.ownerDocument.createElement('v:rect'); + controlNode2.setAttribute('x', pointnext[0]-2); + controlNode2.setAttribute('y', pointnext[1]-2); + + controlNode2.setAttribute('width', 4); + controlNode2.setAttribute('height', 4); + controlNode2.setAttribute('fillcolor', color1); + controlNode2.setAttribute('strokecolor', '#000000'); + controlNode2.setAttribute('strokeweight', '0'); + controlNode2.setAttribute('id', 'controlNode1'); + controlNode2.addEventListener("mousedown", function(event) {if(memoNode != null){memoNode.setAttribute('strokeweight', 0 );} memoNode=this; this.setAttribute('fillcolor', '#ffff00' );this.setAttribute('strokeweight', 1 );$('option_path_num').value=this.getAttributeNS(null,'id'); $('option_path_x').value=parseFloat(this.getAttribute('x'))+2; $('option_path_y').value=parseFloat(this.getAttribute('y'))+2; }, false); + vml.appendChild(controlNode2); + + //} + + +} + +VMLRenderer.prototype.showNodesCurve = function(path){ + var points=path.split('c'); + var chain=''; + var segment=' '; + var numpoints=points.length-1; + for(var a=1;a max.x) { + max.x = x; + } + if (y < min.y) { + min.y = y; + } + else if (y > max.y) { + max.y = y; + } + } + + + var border_square = this.container.ownerDocument.createElement('v:rect'); + + border_square.style.position = 'relative'; + border_square.style.left = 0 - 10; + border_square.style.top = 0 - 10; + border_square.style.width = box.width + 20; + border_square.style.height = box.height + 20; + border_square.setAttribute('filled', 'false'); + border_square.setAttribute('stroked', 'true'); + border_square.setAttribute('strokecolor', 'blue'); + border_square.setAttribute('strokeweight', '1px'); + + + var border_angle = this.container.ownerDocument.createElement('v:polyline'); + border_angle.style.position = 'relative'; + + //border_angle.setAttribute('from',(box.width+10) + 'px,' + (box.height/2) + 'px'); + //border_angle.setAttribute('to', (box.width+10+25) + 'px,' + (box.width+10) + 'px'); + border_angle.setAttribute('filled', 'false'); + border_angle.setAttribute('stroked', 'true'); + border_angle.setAttribute('strokecolor', 'blue'); + border_angle.setAttribute('strokeweight', '1px'); + border_angle.setAttribute("points", (box.width+10)+","+((box.height/2))+", " + +(box.width+10+25)+","+((box.height/2)) ); + + + /* var path01 = this.container.ownerDocument.createElement('v:path'); + //path01.setAttribute("v", "m "+thispath+" c"+ thispath2+" e "); + path01.setAttribute("v", "m"+(min.x-10)+","+ (min.y-10)+" r"+(box.width+20)+","+(0)+" r"+(0)+","+(box.height+20)+" r"+(-box.width-20)+','+(0)+"x e m"+(box.x+box.width+10)+","+ (box.y+(box.height/2))+" r"+(25)+",0 e "); + border.appendChild(path01) + */ + //border.setAttribute('stroke-width', '1'); + +// createRect(min.x, min.y, max.x - min.x, max.y - min.y); + + + /* tracker = this.container.ownerDocument.createElement('v:rect'); + tracker.id = 'tracker'; + tracker.style.position = 'absolute'; + tracker.style.left = box.x - 10; + tracker.style.top = box.y - 10; + tracker.style.width = box.width + 20; + tracker.style.height = box.height + 20; + tracker.setAttribute('filled', 'false'); + tracker.setAttribute('stroked', 'true'); + tracker.setAttribute('strokecolor', 'blue'); + tracker.setAttribute('strokeweight', '1px'); + this.container.appendChild(tracker); + */ + var circle1 = this.container.ownerDocument.createElement('v:oval'); + circle1.style.position = 'relative'; + circle1.style.left = ( (box.width+40)-5); + circle1.style.top = ( (box.height / 2) -5); + circle1.style.width = (10); + circle1.style.height = (10); + circle1.setAttribute('filled', 'true'); + circle1.setAttribute('stroked', 'true'); + circle1.setAttribute('fillcolor', '#ffffff'); + circle1.setAttribute('strokecolor', 'green'); + circle1.setAttribute('strokeweight', '1px'); + + + var rect1 = this.container.ownerDocument.createElement('v:rect'); + rect1.style.position = 'relative'; + rect1.style.left = - 10-5; + rect1.style.top = - 10-5; + rect1.style.width = 10; + rect1.style.height = 10; + rect1.setAttribute('filled', 'true'); + rect1.setAttribute('stroked', 'true'); + rect1.setAttribute('fillcolor', '#ffffff'); + rect1.setAttribute('strokecolor', 'green'); + rect1.setAttribute('strokeweight', '1px'); + + + var rect2 = this.container.ownerDocument.createElement('v:rect'); + rect2.style.position = 'relative'; + rect2.style.left = box.width +5; + rect2.style.top = -10 -5; + rect2.style.width = 10; + rect2.style.height = 10; + rect2.setAttribute('filled', 'true'); + rect2.setAttribute('stroked', 'true'); + rect2.setAttribute('fillcolor', '#ffffff'); + rect2.setAttribute('strokecolor', 'green'); + rect2.setAttribute('strokeweight', '1px'); + + + var rect3 = this.container.ownerDocument.createElement('v:rect'); + rect3.style.position = 'relative'; + rect3.style.left = box.width+5; + rect3.style.top = box.height+5; + rect3.style.width = 10; + rect3.style.height = 10; + rect3.setAttribute('filled', 'true'); + rect3.setAttribute('stroked', 'true'); + rect3.setAttribute('fillcolor', '#ffffff'); + rect3.setAttribute('strokecolor', 'green'); + rect3.setAttribute('strokeweight', '1px'); + + var rect4 = this.container.ownerDocument.createElement('v:rect'); + rect4.style.position = 'relative'; + rect4.style.left = -10-5; + rect4.style.top = box.height+5; + rect4.style.width = 10; + rect4.style.height = 10; + rect4.setAttribute('filled', 'true'); + rect4.setAttribute('stroked', 'true'); + rect4.setAttribute('fillcolor', '#ffffff'); + rect4.setAttribute('strokecolor', 'green'); + rect4.setAttribute('strokeweight', '1px'); + + + + var rectmid12 = this.container.ownerDocument.createElement('v:rect'); + rectmid12.style.position = 'relative'; + rectmid12.style.left = (box.width/2) -5; + rectmid12.style.top =- 10-5; + rectmid12.style.width = 10; + rectmid12.style.height = 10; + rectmid12.setAttribute('filled', 'true'); + rectmid12.setAttribute('stroked', 'true'); + rectmid12.setAttribute('fillcolor', '#ffffff'); + rectmid12.setAttribute('strokecolor', 'green'); + rectmid12.setAttribute('strokeweight', '1px'); + + var rectmid23 = this.container.ownerDocument.createElement('v:rect'); + rectmid23.style.position = 'relative'; + rectmid23.style.left = box.width +5; + rectmid23.style.top = (box.height/2)-5; + rectmid23.style.width = 10; + rectmid23.style.height = 10; + rectmid23.setAttribute('filled', 'true'); + rectmid23.setAttribute('stroked', 'true'); + rectmid23.setAttribute('fillcolor', '#ffffff'); + rectmid23.setAttribute('strokecolor', 'green'); + rectmid23.setAttribute('strokeweight', '1px'); + + var rectmid34 = this.container.ownerDocument.createElement('v:rect'); + rectmid34.style.position = 'relative'; + rectmid34.style.left = (box.width/2)-5; + rectmid34.style.top = box.height+5; + rectmid34.style.width = 10; + rectmid34.style.height = 10; + rectmid34.setAttribute('filled', 'true'); + rectmid34.setAttribute('stroked', 'true'); + rectmid34.setAttribute('fillcolor', '#ffffff'); + rectmid34.setAttribute('strokecolor', 'green'); + rectmid34.setAttribute('strokeweight', '1px'); + + + var rectmid41 = this.container.ownerDocument.createElement('v:rect'); + rectmid41.style.position = 'relative'; + rectmid41.style.left = -10-5 ; + rectmid41.style.top =(box.height/2)-5; + rectmid41.style.width = 10; + rectmid41.style.height = 10; + rectmid41.setAttribute('filled', 'true'); + rectmid41.setAttribute('stroked', 'true'); + rectmid41.setAttribute('fillcolor', '#ffffff'); + rectmid41.setAttribute('strokecolor', 'green'); + rectmid41.setAttribute('strokeweight', '1px'); + + + + + var colorin="#ff0000"; + var colorout="#ffffff" + + circle1.attachEvent("onmouseover", function(event) {circle1.style.cursor= 's-resize'; circle1.setAttribute('fillcolor', colorin ); typeTransform='Rotate'; scaleType='nw'; }, false); + circle1.attachEvent("onmouseout", function(event) {circle1.style.cursor= 'default'; circle1.setAttribute('fillcolor', colorout ); typeTransform='Rotate'; }, false); //typeTransform='rotate' + + + rect1.attachEvent("onmouseover", function(event) {rect1.style.cursor= 'nw-resize'; rect1.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='nw'; }, false); + rect1.attachEvent("onmouseout", function(event) {rect1.style.cursor= 'default'; rect1.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); //typeTransform='rotate' + + rect2.attachEvent("onmouseover", function(event) {rect2.style.cursor= 'ne-resize'; rect2.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='ne';}, false); + rect2.attachEvent("onmouseout", function(event) {rect2.style.cursor= 'default'; rect2.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); + + rect3.attachEvent("onmouseover", function(event) {rect3.style.cursor= 'se-resize'; rect3.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='se';}, false); + rect3.attachEvent("onmouseout", function(event) {rect3.style.cursor= 'default'; rect3.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); + + rect4.attachEvent("onmouseover", function(event) {rect4.style.cursor= 'sw-resize'; rect4.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='sw';}, false); + rect4.attachEvent("onmouseout", function(event) {rect4.style.cursor= 'default'; rect4.setAttribute('fillcolor', colorout ); typeTransform='Scale'; }, false); + + rectmid12.attachEvent("onmouseover", function(event) {rectmid12.style.cursor= 'n-resize'; rectmid12.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='n';}, false); + rectmid12.attachEvent("onmouseout", function(event) {rectmid12.style.cursor= 'default'; rectmid12.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + + rectmid23.attachEvent("onmouseover", function(event) {rectmid23.style.cursor= 'e-resize'; rectmid23.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='e';}, false); + rectmid23.attachEvent("onmouseout", function(event) {rectmid23.style.cursor= 'default'; rectmid23.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + + rectmid34.attachEvent("onmouseover", function(event) {rectmid34.style.cursor= 's-resize'; rectmid34.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='s';}, false); + rectmid34.attachEvent("onmouseout", function(event) {rectmid34.style.cursor= 'default'; rectmid34.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + + rectmid41.attachEvent("onmouseover", function(event) {rectmid41.style.cursor= 'w-resize'; rectmid41.setAttribute('fillcolor', colorin ); typeTransform='Scale'; scaleType='w'; }, false); + rectmid41.attachEvent("onmouseout", function(event) {rectmid41.style.cursor= 'default'; rectmid41.setAttribute('fillcolor', colorout ); typeTransform=''; }, false); + //tracker.setAttribute('transform',trshape); + + + + tracker.appendChild(border_square); + tracker.appendChild(border_angle); + + tracker.appendChild(circle1); + + tracker.appendChild(rect1); + tracker.appendChild(rect2); + tracker.appendChild(rect3); + tracker.appendChild(rect4); + tracker.appendChild(rectmid12); + tracker.appendChild(rectmid23); + tracker.appendChild(rectmid34); + tracker.appendChild(rectmid41); + + /* + + + + */ + + + this.container.appendChild(tracker); + + + +} + + + + + + + + + + +VMLRenderer.prototype.getMarkup = function() { + + return this.container.innerHTML; +} + + + +///////////////////////////////// + + + +var rotatexxx=0; + +var scaleType=''; +var xrot=0; +var yrot=0; + +var point = {x:0, y:0, width: 0, height:0}; + +function createPoint (x, y, width, height) { + //var point = {x:34, y:22, width: 22, height:23}; + //point.x = x; + //point.y = y; + point = {x:x, y:y, width: width, height:height}; + return point; + } + + +///////////////////////////////// + +VMLRenderer.prototype.restruct= function(shape) +{ +}; + + + +VMLRenderer.prototype.transform = function() { + +}; + +VMLRenderer.prototype.scaleShape = function(shape, previus,toX, toY) { +// document.forms[0].code.value="escala"; + + //document.forms[0].code.value="escala"; + var box = this.bounds(shape); + var prevbox=this.bounds(previus); + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + var coord=this.editor.inputxy; + toX=parseFloat(coord[0]); + toY=parseFloat(coord[1]); + var d2p_center=dist2p(centerx,centery,toX,toY); + + var d2p=dist2p(box.x,box.y,toX,toY); + + var shareScale=box.width/d2p; + + var trans_ShareScale=''; + var tx, ty, tw, yh; + + if(scaleType.length==1){ + if(scaleType== 'w') + { + trans_ShareScale=shareScale+",1"; + tx=toX; + ty=prevbox.y; + var dist=prevbox.x-toX; + var w=dist+prevbox.width; + if(w<1){w=1;} + tw=w; + th=prevbox.height; + //document.forms[0].code.value=box.x+' '+toX+' '+dist+''; + } + if(scaleType== 'e') + { + trans_ShareScale=shareScale+",1"; + tx=prevbox.x; + ty=prevbox.y; + var dist=toX-(prevbox.x+prevbox.width); //dist2p(toX,b,c,d); + var w=dist+prevbox.width; + if(w<1){w=1;} + tw=w; + th=prevbox.height; + + } + if(scaleType== 'n') + { + trans_ShareScale="1,"+shareScale; + + tx=prevbox.x; + ty=toY; + var dist=prevbox.y-toY; + var h=dist+prevbox.height; + if(h<1){h=1;} + tw=prevbox.width; + th=h; + + } + if( scaleType== 's') + { + trans_ShareScale="1,"+shareScale; + + tx=prevbox.x; + ty=prevbox.y; + var dist=toY-(prevbox.y+prevbox.height); //dist2p(toX,b,c,d); + var h=dist+prevbox.height; + if(h<1){h=1;} + tw=prevbox.width; + th=h; + + } + } + if(scaleType.length==2){ + if(scaleType== 'nw'){ + trans_ShareScale=shareScale+","+shareScale; + + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + var angle_diagonal=ang2v(prevbox.x,prevbox.y,prevbox.x+prevbox.width,prevbox.y+prevbox.height) + + var ax= prevbox.x; + var ay= prevbox.y; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y+prevbox.height; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + this.editor.log(angle_diagonal* 180 / Math.PI); + + var tx= section_a[1]; + var ty= section_a[2]; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x+prevbox.width; + var cy= prevbox.y; + + var dx= prevbox.x+prevbox.width; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1] + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y+prevbox.height; + + var dx= 0; + var dy= prevbox.y+prevbox.height; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + + } + + //////////////////// SE + + if( scaleType== 'se'){ + trans_ShareScale=shareScale+","+shareScale; + + + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + var angle_diagonal=ang2v(prevbox.x,prevbox.y,prevbox.x+prevbox.width,prevbox.y+prevbox.height) + + + + var ax= prevbox.x; + var ay= prevbox.y; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y+prevbox.height; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + + ////////// + var tx= prevbox.x; + var ty= prevbox.y; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x; + var cy= prevbox.y; + + var dx= prevbox.x; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + ///////////////// + + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1] + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y; + + var dx=0; + var dy= prevbox.y; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + /////////////// + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + + tw=distx; + th=disty; + + + } + + if(scaleType== 'ne'){ + + trans_ShareScale=shareScale+","+shareScale; + + var angle_diagonal=ang2v(prevbox.x,prevbox.y+prevbox.height,prevbox.x+prevbox.width,prevbox.y) + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + + + + + var ax= prevbox.x; + var ay= prevbox.y+prevbox.height; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + + this.editor.log(angle_diagonal); + + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + + ////////// + var tx= prevbox.x; + var ty= section_a[2]; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x; + var cy= prevbox.y; + + var dx= prevbox.x; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + ///////////////// + + + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1]; + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y+prevbox.height; + + var dx=0; + var dy= prevbox.y+prevbox.height; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + /////////////// + + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + + + + + } + if(scaleType== 'sw'){ + trans_ShareScale=shareScale+","+shareScale; + + + + + var angle_diagonal=ang2v(prevbox.x,prevbox.y+prevbox.height,prevbox.x+prevbox.width,prevbox.y) + //var angle_diagonal=getAngle(prevbox.width,prevbox.height); + + + + + var ax= prevbox.x; + var ay= prevbox.y+prevbox.height; + var bx= prevbox.x+prevbox.width; + var by= prevbox.y; + + var cx= toX; + var cy= toY; + var dx= toX+10*Math.cos(angle_diagonal+(Math.PI/2)); + var dy= toY+10*Math.sin(angle_diagonal+(Math.PI/2)); + + + this.editor.log(angle_diagonal); + + + var section_a=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + + + ////////// + var tx= section_a[1]; + var ty= prevbox.y; + + var ax= section_a[1]; + var ay= section_a[2]; + var bx= 0; + var by= section_a[2] ; + + var cx=prevbox.x+prevbox.width; + var cy= prevbox.y+prevbox.height; + + var dx= prevbox.x+prevbox.width; + var dy= 0; + + + var section_b=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var distx=dist2p(section_a[1],section_a[2],section_b[1],section_b[2]); + + ///////////////// + var ax= section_a[1]; + var ay= section_a[2]; + var bx= section_a[1]; + var by= 0; + + var cx= prevbox.x; + var cy= prevbox.y; + + var dx=0; + var dy= prevbox.y; + + + var section_c=ntrsccn2rb(ax,ay,bx,by,cx,cy,dx,dy); + var disty=dist2p(section_a[1],section_a[2],section_c[1],section_c[2]); + /////////////// + + + + if(distx<1){distx=1;} + + + if(disty<1){disty=1;} + //document.forms[0].code.value=distx+' '+disty; + tw=distx; + th=disty; + + } + + } + + + + if(shape.tagName == 'rect') + { + //alert(data[0]); + + + shape.style.left = tx + 'px'; + shape.style.top = ty + 'px'; + shape.style.height = th + 'px'; + shape.style.width = tw + 'px'; + + } + else + if(shape.tagName == 'text') + { + /* + shape.setAttribute('x',tx); + shape.setAttribute('y',ty); + shape.setAttribute('width', tw); + shape.setAttribute('height', th); + + //previus.setAttribute('transform', "scale("+trans_ShareScale+")"); + shape.setAttribute('x', tx + 'px'); + shape.setAttribute('y', ty + 'px'); + + shape.setAttribute('textLength', parseInt(Math.round(tw))); + + */ + } + else + if(shape.tagName == 'oval') + { + //shape.getAttribute('transform) + + shape.style.left = tx + 'px'; + shape.style.top = ty + 'px'; + shape.style.height = th + 'px'; + shape.style.width = tw + 'px'; + + + } + else + if(shape.tagName == 'line') + { + shape.setAttribute('to',tx + 'px,' + ty + 'px'); + shape.setAttribute('from', tw + 'px,' + th + 'px'); + + + } + else + if (shape.tagName == 'polyline') + { + + } + else + if (shape.tagName == 'image') + { + + shape.style.left = tx + 'px'; + shape.style.top = ty + 'px'; + shape.style.height = th + 'px'; + shape.style.width = tw + 'px'; + + } + else + if (shape.tagName == 'shape') + { + + shape.style.left = tx + 'px'; + shape.style.top = ty + 'px'; + shape.style.height = th + 'px'; + shape.style.width = tw + 'px'; + + //document.forms[0].code.value=''; + //shape.setAttribute('transform', "scale("+trans_ShareScale+")"); + + } + + + + + +}; + + + +VMLRenderer.prototype.rotateShape = function(shape, previus,toX, toY) { + + + + //document.forms[0].code.value=$('xyinput').innerHTML; + //document.getElementById('richdraw').style.cursor='e-resize'; + var box = this.bounds(shape); + var prevbox=this.bounds(previus); + var centerx= box.x+(box.width/2); + var centery= box.y+(box.height/2); + var coord=this.editor.inputxy; + + var actual_angle=ang2v(centerx,centery,coord[0], coord[1]); + + if(xrot"9"?p:""; + n = Math.round(c.substring(d!="") * 100); + l+= (d+n+" "); + } + LX[i] = l; + code = ''; + VML.insertAdjacentHTML("beforeEnd",code); + } else { + L[i] = LX[i] = "" + VML.insertAdjacentHTML("beforeEnd",""); + } +} +*/ +//http://msdn2.microsoft.com/en-us/library/bb263897(VS.85).aspx +//http://www.w3.org/TR/NOTE-VML +//http://trac.openlayers.org/changeset/5285 +//http://vectorconverter.sourceforge.net/index.html +//http://www.dhteumeuleu.com/colorsyntax/viewJS.php?src=svg2vml1.html + + +VMLRenderer.prototype.getshapes = function(){ +return this.container.childNodes; +} + + +VMLRenderer.prototype.reflect = function(HorV) { +}; + + + + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/lifes.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/lifes.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{type:"doc", left:0, top:0, width:20, height:10, viewBox:"0 0 20 10", bgcolor:"#ffffff", title:"", link:"", meta:""}, {"id":"shape:d708671d-8b30-c3ae-bca2-ada75bf34533","type":"path","transform":"","fillColor":"#00ff81","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M0.922414,3.24138 L0.922414,3.21552 L0.922414,3.18966 L0.922414,3.16379 L0.922414,3.13793 L0.948276,3.13793 L0.948276,3.11207 L0.974138,3.08621 L1.02586,3.03448 L1.07759,3.00862 L1.15517,2.98276 L1.23276,2.93103 L1.31034,2.90517 L1.41379,2.85345 L1.5431,2.82759 L1.62069,2.80172 L1.72414,2.80172 L1.80172,2.77586 L1.85345,2.77586 L1.90517,2.77586 L1.9569,2.77586 L2.00862,2.77586 L2.03448,2.77586 L2.11207,2.80172 L2.13793,2.85345 L2.18966,2.90517 L2.21552,2.90517 L2.24138,2.98276 L2.26724,3.00862 L2.2931,3.06034 L2.2931,3.13793 L2.2931,3.16379 L2.2931,3.26724 L2.2931,3.2931 L2.24138,3.34483 L2.21552,3.39655 L2.21552,3.42241 L2.18966,3.44828 L2.16379,3.47414 L2.16379,3.5 L2.13793,3.5 L2.11207,3.5 L2.08621,3.52586 L2.08621,3.55172 L2.06034,3.57759 L2.00862,3.60345 L1.9569,3.60345 L1.93103,3.62931 L1.90517,3.62931 L1.85345,3.62931 L1.82759,3.62931 L1.75,3.62931 L1.67241,3.62931 L1.62069,3.62931 L1.59483,3.62931 L1.5431,3.62931 L1.51724,3.62931 L1.49138,3.62931 L1.46552,3.62931 L1.43966,3.65517 L1.43966,3.68103 L1.43966,3.7069 L1.43966,3.75862 L1.43966,3.81034 L1.43966,3.83621 L1.43966,3.86207 L1.43966,3.91379 L1.41379,3.91379 L1.41379,3.93966 L1.41379,3.96552 L1.38793,3.96552 L1.36207,3.99138 L1.33621,3.99138 L1.31034,3.99138 L1.28448,3.99138 L1.25862,3.99138 L1.2069,3.99138 L1.18103,3.99138 L1.15517,3.99138 L1.10345,3.99138 L1.02586,3.99138 L0.974138,3.99138 L0.948276,3.99138 L0.922414,3.99138 L0.896552,3.96552 L0.87069,3.96552 L0.87069,3.93966 L0.844828,3.91379 L0.818965,3.88793 L0.818965,3.86207 L0.818965,3.83621 L0.818965,3.81034 L0.818965,3.78448 L0.818965,3.75862 L0.844828,3.73276 L0.87069,3.7069 L0.896552,3.7069 L0.922414,3.68103 L0.948276,3.65517 L0.974138,3.65517 L0.974138,3.62931 L1,3.62931 L1,3.60345 L1,3.57759 L1,3.55172 L1,3.52586 L0.974138,3.52586 L0.948276,3.52586 L0.87069,3.52586 L0.844828,3.52586 L0.793103,3.52586 L0.741379,3.52586 L0.715517,3.52586 L0.689655,3.55172 L0.663793,3.55172 L0.612069,3.55172 L0.586207,3.55172 L0.560345,3.55172 L0.534483,3.55172 L0.508621,3.52586 L0.482759,3.5 L0.456897,3.47414 L0.456897,3.44828 L0.431034,3.42241 L0.431034,3.39655 L0.431034,3.34483 L0.431034,3.31897 L0.431034,3.2931 L0.431034,3.26724 L0.431034,3.24138 L0.456897,3.21552 L0.482759,3.18966 L0.482759,3.16379 L0.508621,3.16379 L0.508621,3.13793 L0.534483,3.13793 L0.560345,3.13793 L0.586207,3.16379 L0.612069,3.18966 L0.612069,3.21552 L0.637931,3.21552 L0.637931,3.24138 L0.637931,3.26724 L0.663793,3.26724 L0.663793,3.2931 L0.689655,3.2931 L0.689655,3.31897 L0.715517,3.31897 z"},{"id":"shape:ea07c87c-903b-5d0d-dec2-ca2e9a3b5b4d","type":"path","transform":"","fillColor":"#00ff81","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M4.49138,2.69828 L4.49138,2.67241 L4.51724,2.64655 L4.5431,2.64655 L4.56897,2.62069 L4.56897,2.59483 L4.59483,2.59483 L4.67241,2.51724 L4.67241,2.49138 L4.75,2.46552 L4.77586,2.46552 L4.82759,2.41379 L4.90517,2.41379 L4.98276,2.41379 L5.00862,2.38793 L5.06034,2.38793 L5.08621,2.38793 L5.13793,2.38793 L5.16379,2.38793 L5.16379,2.41379 L5.21552,2.43966 L5.21552,2.46552 L5.24138,2.49138 L5.26724,2.51724 L5.2931,2.5431 L5.34483,2.62069 L5.37069,2.62069 L5.37069,2.64655 L5.39655,2.69828 L5.39655,2.72414 L5.39655,2.75 L5.39655,2.77586 L5.39655,2.80172 L5.39655,2.82759 L5.39655,2.85345 L5.34483,2.85345 L5.34483,2.87931 L5.31897,2.87931 L5.31897,2.90517 L5.2931,2.90517 L5.26724,2.90517 L5.26724,2.93103 L5.24138,2.93103 L5.21552,2.9569 L5.21552,2.98276 L5.21552,3.00862 L5.21552,3.03448 L5.24138,3.06034 L5.26724,3.08621 L5.26724,3.11207 L5.2931,3.11207 L5.31897,3.13793 L5.34483,3.16379 L5.37069,3.18966 L5.37069,3.21552 L5.39655,3.21552 L5.42241,3.24138 L5.44828,3.26724 L5.44828,3.2931 L5.44828,3.31897 L5.44828,3.34483 L5.44828,3.37069 L5.44828,3.39655 L5.44828,3.42241 L5.44828,3.44828 L5.42241,3.44828 L5.39655,3.47414 L5.37069,3.5 L5.34483,3.5 L5.13793,3.44828 L5.11207,3.42241 L5.11207,3.39655 L5.08621,3.39655 L5.08621,3.37069 L5.06034,3.37069 L5.03448,3.34483 L5.00862,3.34483 L4.98276,3.31897 L4.98276,3.2931 L4.9569,3.26724 L4.93103,3.26724 L4.93103,3.24138 L4.90517,3.24138 L4.90517,3.21552 L4.87931,3.18966 L4.85345,3.18966 L4.85345,3.16379 L4.82759,3.16379 L4.82759,3.13793 L4.80172,3.11207 L4.77586,3.11207 L4.75,3.11207 L4.72414,3.11207 L4.69828,3.11207 L4.67241,3.11207 L4.64655,3.11207 L4.62069,3.13793 L4.59483,3.13793 L4.56897,3.13793 L4.5431,3.13793 L4.49138,3.13793 L4.46552,3.13793 L4.43966,3.13793 L4.41379,3.13793 L4.38793,3.13793 L4.36207,3.11207 L4.33621,3.08621 L4.31034,3.06034 L4.28448,3.03448 L4.25862,3.00862 L4.23276,2.98276 L4.2069,2.9569 L4.18103,2.93103 L4.15517,2.90517 L4.15517,2.87931 L4.15517,2.85345 L4.18103,2.85345 L4.2069,2.82759 L4.23276,2.82759 L4.28448,2.82759 L4.31034,2.82759 L4.36207,2.82759 L4.38793,2.82759 L4.36207,2.82759 L4.33621,2.80172 L4.33621,2.77586 L4.31034,2.77586 L4.31034,2.75 L4.28448,2.72414 L4.28448,2.69828 L4.28448,2.67241 L4.28448,2.64655 L4.28448,2.62069 L4.31034,2.59483 L4.33621,2.59483 L4.36207,2.59483 L4.38793,2.59483 L4.41379,2.59483 L4.43966,2.59483 z"},{"id":"shape:c407f647-5f79-c1be-a71b-61118b4b664b","type":"path","transform":"","fillColor":"#00ff81","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M6.22414,2.67241 L6.22414,2.64655 L6.22414,2.62069 L6.22414,2.59483 L6.25,2.59483 L6.25,2.5431 L6.27586,2.51724 L6.30172,2.49138 L6.32759,2.49138 L6.40517,2.46552 L6.4569,2.43966 L6.48276,2.41379 L6.53448,2.41379 L6.56034,2.41379 L6.58621,2.41379 L6.63793,2.43966 L6.66379,2.46552 L6.68966,2.49138 L6.68966,2.51724 L6.71552,2.5431 L6.71552,2.56897 L6.71552,2.62069 L6.71552,2.67241 L6.68966,2.69828 L6.68966,2.72414 L6.66379,2.75 L6.66379,2.77586 L6.63793,2.80172 L6.61207,2.82759 L6.58621,2.82759 L6.56034,2.85345 L6.56034,2.87931 L6.58621,2.90517 L6.61207,2.93103 L6.61207,2.9569 L6.63793,2.9569 L6.66379,2.9569 L6.68966,2.9569 L6.71552,2.9569 L6.74138,2.9569 L6.74138,2.98276 L6.76724,2.98276 L6.76724,3.00862 L6.76724,3.03448 L6.76724,3.06034 L6.76724,3.08621 L6.76724,3.11207 L6.74138,3.11207 L6.71552,3.11207 L6.68966,3.11207 L6.66379,3.11207 L6.63793,3.11207 L6.61207,3.11207 L6.58621,3.11207 L6.56034,3.11207 L6.53448,3.11207 L6.50862,3.11207 L6.48276,3.11207 L6.48276,3.08621 L6.4569,3.06034 L6.4569,3.03448 L6.43103,3.03448 L6.40517,3.00862 L6.37931,2.98276 L6.35345,2.9569 L6.32759,2.93103 L6.30172,2.93103 L6.27586,2.93103 L6.25,2.93103 L6.22414,2.93103 L6.19828,2.93103 L6.17241,2.93103 L6.12069,2.93103 L6.09483,2.93103 L6.06897,2.93103 L6.0431,2.93103 L6.01724,2.93103 L5.99138,2.90517 L5.96552,2.87931 L5.93966,2.85345 L5.93966,2.82759 L5.93966,2.80172 L5.93966,2.77586 L5.91379,2.77586 L5.91379,2.75 L5.91379,2.72414 L5.93966,2.72414 L5.93966,2.69828 L5.96552,2.69828 L5.96552,2.67241 L5.99138,2.67241 L6.01724,2.67241 L6.0431,2.69828 L6.06897,2.69828 L6.09483,2.69828 L6.09483,2.72414 L6.12069,2.72414 L6.09483,2.72414 L6.12069,2.72414 L6.14655,2.72414 z"},{"id":"shape:85393087-45ed-2673-c138-e754d2b1c1d9","type":"path","transform":"","fillColor":"#00ff81","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M5.39655,2.07759 L5.39655,2.05172 L5.42241,2.05172 L5.42241,2.02586 L5.44828,2.02586 L5.47414,2 L5.5,2 L5.55172,2 L5.57759,2 L5.60345,2 L5.62931,2 L5.65517,2 L5.68103,2 L5.7069,2 L5.7069,2.02586 L5.73276,2.05172 L5.73276,2.07759 L5.73276,2.10345 L5.73276,2.12931 L5.7069,2.12931 L5.7069,2.15517 L5.68103,2.15517 L5.65517,2.15517 L5.65517,2.18103 L5.62931,2.2069 L5.62931,2.23276 L5.65517,2.23276 L5.65517,2.25862 L5.68103,2.25862 L5.68103,2.28448 L5.7069,2.28448 L5.7069,2.31034 L5.73276,2.33621 L5.7069,2.33621 L5.7069,2.36207 L5.68103,2.36207 L5.65517,2.36207 L5.65517,2.38793 L5.62931,2.38793 L5.60345,2.38793 L5.57759,2.38793 L5.55172,2.38793 L5.52586,2.38793 L5.52586,2.36207 L5.5,2.33621 L5.47414,2.31034 L5.44828,2.31034 L5.44828,2.28448 L5.42241,2.25862 L5.39655,2.25862 L5.37069,2.25862 L5.34483,2.23276 L5.31897,2.23276 L5.2931,2.23276 L5.26724,2.23276 L5.24138,2.23276 L5.21552,2.2069 L5.18966,2.2069 L5.18966,2.18103 L5.16379,2.15517 L5.13793,2.12931 L5.13793,2.10345 L5.11207,2.10345 L5.08621,2.07759 L5.08621,2.05172 L5.06034,2.02586 L5.03448,2 L5.03448,1.97414 L5.03448,1.94828 L5.03448,1.92241 L5.06034,1.92241 L5.08621,1.92241 L5.11207,1.92241 L5.13793,1.92241 L5.16379,1.92241 L5.18966,1.92241 L5.21552,1.92241 L5.21552,1.94828 L5.24138,1.94828 L5.26724,1.94828 L5.26724,1.97414 L5.2931,1.97414 L5.31897,1.97414 z"},{"id":"shape:a7ad8c08-f2f6-c444-f041-9ef614eea07f","type":"path","transform":"","fillColor":"#80d5ab","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M7.77586,1.76724 L7.80172,1.76724 L7.80172,1.74138 L7.87931,1.71552 L7.90517,1.71552 L7.93103,1.71552 L7.9569,1.71552 L7.98276,1.71552 L8.06034,1.71552 L8.08621,1.71552 L8.11207,1.71552 L8.16379,1.71552 L8.18966,1.71552 L8.21552,1.71552 L8.24138,1.74138 L8.24138,1.76724 L8.24138,1.7931 L8.24138,1.81897 L8.24138,1.84483 L8.21552,1.84483 L8.21552,1.87069 L8.21552,1.92241 L8.21552,1.94828 L8.21552,1.97414 L8.16379,1.97414 L8.16379,2 L8.16379,2.02586 L8.13793,2.02586 L8.11207,2.02586 L8.11207,2.05172 L8.08621,2.05172 L8.06034,2.05172 L8.08621,2.05172 L8.11207,2.07759 L8.08621,2.07759 L8.06034,2.07759 L8.08621,2.10345 L8.08621,2.12931 L8.06034,2.12931 L8.03448,2.12931 L8.03448,2.15517 L8.00862,2.15517 L7.98276,2.15517 L7.9569,2.15517 L7.93103,2.15517 L7.85345,2.07759 L7.82759,2.07759 L7.77586,2.05172 L7.75,2.05172 L7.77586,2.07759 L7.72414,2.05172 L7.72414,2.02586 L7.67241,1.97414 L7.64655,1.97414 L7.64655,1.94828 L7.62069,1.92241 L7.46552,1.58621 L7.49138,1.58621 L7.49138,1.53448 L7.51724,1.50862 L7.5431,1.50862 L7.56897,1.48276 L7.56897,1.4569 L7.62069,1.43103 L7.64655,1.43103 L7.67241,1.43103 L7.69828,1.43103 L7.72414,1.43103 L7.75,1.4569 L7.75,1.48276 L7.75,1.50862 L7.77586,1.53448 L7.75,1.53448 L7.75,1.56034 L7.75,1.58621 L7.75,1.61207 L7.72414,1.61207 L7.69828,1.61207 L7.67241,1.61207 L7.64655,1.61207 L7.64655,1.63793 L7.62069,1.63793 L7.64655,1.66379 L7.64655,1.68966 L7.62069,1.66379 L7.59483,1.63793 L7.56897,1.63793 z"},{"id":"shape:71672a5b-a35d-56fc-72ca-6eb60fd44a37","type":"path","transform":"","fillColor":"#80d5ab","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M7.51724,2.77586 L7.51724,2.75 L7.51724,2.72414 L7.5431,2.72414 L7.5431,2.69828 L7.56897,2.67241 L7.59483,2.67241 L7.62069,2.67241 L7.67241,2.64655 L7.72414,2.64655 L7.77586,2.64655 L7.77586,2.67241 L7.80172,2.67241 L7.80172,2.69828 L7.82759,2.69828 L7.82759,2.72414 L7.85345,2.75 L7.87931,2.75 L7.87931,2.77586 L7.87931,2.80172 L7.87931,2.82759 L7.87931,2.85345 L7.87931,2.87931 L7.87931,2.90517 L7.87931,2.93103 L7.87931,2.9569 L7.85345,2.9569 L7.82759,2.9569 L7.82759,2.98276 L7.80172,2.98276 L7.80172,3.00862 L7.80172,3.03448 L7.82759,3.06034 L7.85345,3.06034 L7.87931,3.06034 L7.87931,3.08621 L7.90517,3.08621 L7.93103,3.11207 L7.93103,3.13793 L7.9569,3.13793 L7.9569,3.16379 L7.9569,3.18966 L7.9569,3.21552 L7.93103,3.21552 L7.90517,3.24138 L7.87931,3.24138 L7.85345,3.24138 L7.82759,3.24138 L7.80172,3.24138 L7.77586,3.24138 L7.75,3.24138 L7.72414,3.24138 L7.69828,3.24138 L7.69828,3.21552 L7.67241,3.18966 L7.64655,3.16379 L7.62069,3.13793 L7.62069,3.11207 L7.62069,3.08621 L7.59483,3.08621 L7.59483,3.06034 L7.59483,3.03448 L7.56897,3.03448 L7.56897,3.00862 L7.5431,2.98276 L7.51724,2.98276 L7.49138,2.98276 L7.46552,2.98276 L7.43966,2.9569 L7.41379,2.9569 L7.38793,2.93103 L7.36207,2.90517 L7.33621,2.90517 L7.33621,2.87931 L7.33621,2.85345 L7.31034,2.85345 L7.28448,2.82759 L7.25862,2.80172 L7.23276,2.77586 L7.2069,2.75 L7.2069,2.72414 L7.2069,2.69828 L7.23276,2.69828 L7.25862,2.69828 L7.31034,2.69828 L7.33621,2.69828 L7.36207,2.69828 L7.41379,2.72414 z"},{"id":"shape:5805db86-501b-311d-877c-73c501cb2d0c","type":"path","transform":"","fillColor":"#aa557f","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M9.25,2.75 L9.27586,2.72414 L9.30172,2.69828 L9.30172,2.67241 L9.32759,2.64655 L9.35345,2.64655 L9.35345,2.62069 L9.37931,2.62069 L9.40517,2.62069 L9.43103,2.62069 L9.4569,2.62069 L9.48276,2.62069 L9.50862,2.62069 L9.53448,2.62069 L9.56034,2.64655 L9.58621,2.67241 L9.61207,2.69828 L9.61207,2.72414 L9.61207,2.75 L9.61207,2.77586 L9.61207,2.80172 L9.58621,2.82759 L9.58621,2.85345 L9.58621,2.87931 L9.56034,2.87931 L9.56034,2.90517 L9.50862,2.90517 L9.50862,2.93103 L9.48276,2.93103 L9.4569,2.9569 L9.4569,2.98276 L9.43103,2.98276 L9.40517,3.00862 L9.37931,3.00862 L9.37931,3.03448 L9.40517,3.03448 L9.40517,3.06034 L9.43103,3.06034 L9.43103,3.08621 L9.43103,3.11207 L9.4569,3.13793 L9.4569,3.16379 L9.48276,3.18966 L9.48276,3.21552 L9.48276,3.24138 L9.48276,3.26724 L9.4569,3.26724 L9.43103,3.2931 L9.40517,3.2931 L9.37931,3.2931 L9.35345,3.2931 L9.32759,3.2931 L9.30172,3.2931 L9.27586,3.2931 L9.25,3.2931 L9.22414,3.2931 L9.19828,3.2931 L9.17241,3.2931 L9.17241,3.26724 L9.14655,3.26724 L9.14655,3.24138 L9.12069,3.24138 L9.09483,3.21552 L9.09483,3.18966 L9.09483,3.16379 L9.06897,3.13793 L9.0431,3.11207 L9.0431,3.08621 L9.01724,3.06034 L9.01724,3.03448 L9.01724,3.00862 L9.01724,2.98276 L9.01724,2.9569 L9.01724,2.93103 L9.01724,2.90517 L9.01724,2.87931 L9.01724,2.85345 L9.01724,2.82759 L9.01724,2.80172 L9.01724,2.77586 L9.01724,2.75 L8.99138,2.72414 L8.99138,2.69828 L8.96552,2.67241 L8.96552,2.64655 L8.96552,2.62069 L8.93966,2.59483 L8.93966,2.56897 L8.93966,2.5431 L8.96552,2.5431 L8.96552,2.51724 L8.96552,2.49138 L8.99138,2.49138 L9.01724,2.49138 L9.01724,2.51724 L9.0431,2.51724 L9.0431,2.5431 L9.06897,2.5431 L9.06897,2.56897 L9.06897,2.59483 L9.06897,2.62069 L9.06897,2.64655 L9.06897,2.67241 L9.09483,2.67241 L9.09483,2.69828 L9.06897,2.69828 L9.09483,2.69828 L9.09483,2.72414 L9.12069,2.72414 L9.14655,2.75 L9.17241,2.77586 L9.19828,2.77586 z"},{"id":"shape:cb7fbbd6-6146-792c-97fe-d0d0cc8f502f","type":"path","transform":"","fillColor":"#aaaaaa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M10.7241,3.03448 L10.7241,3.00862 L10.7241,2.98276 L10.75,2.98276 L10.7759,2.93103 L10.8017,2.93103 L10.8534,2.87931 L10.9052,2.87931 L10.931,2.87931 L10.9569,2.87931 L10.9828,2.87931 L11.0603,2.93103 L11.0862,2.9569 L11.0862,2.98276 L11.0862,3.00862 L11.0862,3.03448 L11.0862,3.06034 L11.0603,3.08621 L11.0603,3.11207 L11.0603,3.13793 L11.0345,3.13793 L11.0086,3.16379 L10.9828,3.16379 L10.9569,3.16379 L10.931,3.16379 L10.931,3.18966 L10.9569,3.21552 L10.9828,3.24138 L10.9569,3.24138 L10.9828,3.26724 L10.9828,3.2931 L10.9828,3.31897 L10.9828,3.34483 L10.9828,3.37069 L10.9569,3.37069 L10.931,3.39655 L10.9052,3.39655 L10.8793,3.39655 L10.8534,3.39655 L10.8276,3.39655 L10.8017,3.39655 L10.7759,3.39655 L10.75,3.39655 L10.7241,3.37069 L10.7241,3.34483 L10.6983,3.34483 L10.6724,3.31897 L10.6466,3.2931 L10.6207,3.26724 L10.5948,3.24138 L10.5948,3.21552 L10.5948,3.18966 L10.5948,3.16379 L10.5948,3.13793 L10.5948,3.06034 L10.6207,3.03448 z"},{"id":"shape:e36f5144-74b8-e6bb-90c1-30f377dd9612","type":"path","transform":"","fillColor":"#aaaaaa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M9.56034,2.31034 L9.58621,2.31034 L9.58621,2.28448 L9.61207,2.28448 L9.61207,2.25862 L9.63793,2.25862 L9.66379,2.25862 L9.68966,2.25862 L9.71552,2.25862 L9.74138,2.25862 L9.76724,2.28448 L9.7931,2.28448 L9.7931,2.31034 L9.81897,2.33621 L9.81897,2.36207 L9.81897,2.38793 L9.7931,2.38793 L9.76724,2.38793 L9.74138,2.38793 L9.71552,2.38793 L9.68966,2.38793 L9.66379,2.38793 L9.63793,2.38793 L9.63793,2.36207 z"},{"id":"shape:806f9b0f-a1e5-adb3-e212-8705618b6409","type":"path","transform":"","fillColor":"#aaaaaa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M8.96552,1.92241 L8.99138,1.94828 L9.0431,1.97414 L9.06897,2 L9.06897,2.02586 L9.09483,2.02586 L9.09483,2.05172 L9.09483,2.07759 L9.09483,2.10345 L9.09483,2.12931 L9.06897,2.12931 L9.0431,2.12931 L9.01724,2.12931 L8.99138,2.12931 L8.99138,2.10345 L8.99138,2.07759 z"},{"id":"shape:4d059de2-d05a-fd66-adfc-86ccd09d14e2","type":"path","transform":"","fillColor":"#aaaaaa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M8.57759,2.25862 L8.60345,2.28448 L8.60345,2.31034 L8.62931,2.31034 L8.65517,2.31034 L8.68103,2.31034 L8.7069,2.31034 L8.68103,2.28448 L8.65517,2.25862 L8.68103,2.25862 L8.7069,2.25862 L8.73276,2.25862 L8.7069,2.23276 L8.68103,2.23276 z"},{"id":"shape:2ca0df2f-967d-90d6-8a87-4b8e3dc0cc06","type":"path","transform":"","fillColor":"#aaaaaa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M9.74138,1.50862 L9.74138,1.53448 L9.76724,1.53448 L9.76724,1.56034 L9.76724,1.58621 L9.7931,1.58621 L9.81897,1.61207 L9.84483,1.61207 L9.87069,1.61207 L9.89655,1.61207 L9.92241,1.61207 L9.94828,1.61207 L9.97414,1.61207 L10,1.61207 L10.0259,1.61207 L10.0517,1.61207 L10.0776,1.61207 L10.0776,1.58621 L10.1034,1.58621 L10.1293,1.58621 L10.1034,1.56034 L10.0776,1.53448 L10.0517,1.50862 L10.0259,1.48276 L10,1.48276 L9.97414,1.48276 L9.94828,1.48276 L9.92241,1.4569 L9.92241,1.43103 L9.89655,1.43103 L9.87069,1.40517 L9.84483,1.37931 L9.81897,1.37931 L9.7931,1.37931 L9.76724,1.37931 L9.74138,1.37931 L9.71552,1.37931 L9.68966,1.37931 z"},{"id":"shape:8f2c6f1b-17eb-dfc7-91b7-cf82efb92799","type":"path","transform":"","fillColor":"#d480aa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M10.9828,1.50862 L10.9569,1.48276 L10.931,1.4569 L10.931,1.43103 L10.931,1.40517 L10.931,1.37931 L10.931,1.35345 L10.9569,1.35345 L10.9569,1.32759 L10.9828,1.32759 L11.0086,1.32759 L11.0345,1.32759 L11.0603,1.32759 L11.0862,1.35345 L11.1121,1.35345 L11.1121,1.37931 L11.1121,1.40517 L11.1379,1.43103 L11.1379,1.4569 L11.1379,1.48276 L11.1638,1.50862 L11.1897,1.50862 L11.1897,1.53448 L11.2155,1.53448 L11.2155,1.56034 L11.2155,1.58621 L11.2155,1.61207 L11.2155,1.63793 L11.1897,1.63793 L11.1897,1.66379 L11.1897,1.68966 L11.1638,1.68966 L11.1379,1.68966 L11.1121,1.68966 L11.0862,1.68966 L11.0603,1.68966 L11.0345,1.68966 L11.0086,1.68966 L10.9828,1.66379 L10.9828,1.63793 L10.9828,1.61207 L10.9569,1.58621 L10.931,1.58621 L10.931,1.56034 L10.931,1.53448 L10.931,1.50862 z"},{"id":"shape:38add693-721a-6912-f5eb-83a75e493c16","type":"path","transform":"","fillColor":"#d480aa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M11.3707,1.37931 L11.3707,1.35345 L11.3707,1.32759 L11.3966,1.32759 L11.4224,1.35345 L11.4483,1.37931 L11.4483,1.40517 L11.4483,1.43103 L11.4483,1.4569 L11.4224,1.4569 L11.3966,1.4569 L11.3707,1.4569 L11.3448,1.4569 L11.319,1.4569 L11.2931,1.4569 L11.2931,1.43103 z"},{"id":"shape:dc758202-4099-90ae-d205-ad78dcff78f6","type":"path","transform":"","fillColor":"#d480aa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M11.9397,1.22414 L11.9655,1.22414 L11.9914,1.22414 L12.0172,1.22414 L12.0431,1.22414 L12.069,1.25 L12.0948,1.27586 L12.0948,1.30172 L12.0948,1.32759 L12.0948,1.35345 L12.0948,1.37931 L12.0948,1.40517 L12.069,1.40517 L12.0431,1.40517 L12.0172,1.40517 L11.9914,1.37931 L11.9655,1.35345 L11.9397,1.32759 z"},{"id":"shape:3d623426-8992-9808-a9e4-fc000c78d7cc","type":"path","transform":"","fillColor":"#d480aa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M10.8017,0.396552 L10.8276,0.37069 L10.8276,0.344828 L10.8534,0.344828 L10.8534,0.318966 L10.8793,0.318966 L10.9052,0.318966 L10.9052,0.344828 L10.931,0.344828 L10.9569,0.37069 L10.9569,0.396552 L10.9828,0.422414 L10.9828,0.448276 L10.9569,0.448276 L10.931,0.448276 z"},{"id":"shape:1cb5dc84-d4f3-3613-f6b0-d5d49b96f16e","type":"path","transform":"","fillColor":"#d480aa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M9.53448,0.318966 L9.56034,0.318966 L9.58621,0.318966 L9.58621,0.293103 L9.61207,0.293103 L9.63793,0.293103 L9.66379,0.293103 L9.68966,0.318966 L9.71552,0.318966 L9.71552,0.344828 L9.71552,0.37069 L9.68966,0.37069 L9.68966,0.396552 L9.68966,0.422414 L9.66379,0.422414 z"},{"id":"shape:a3f37303-b9c9-409e-7f78-dc67cc236695","type":"path","transform":"","fillColor":"#d480aa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M7.90517,0.422414 L7.93103,0.422414 L7.9569,0.422414 L7.98276,0.422414 L8.00862,0.422414 L8.03448,0.422414 L8.06034,0.422414 L8.08621,0.422414 L8.11207,0.396552 L8.08621,0.37069 L8.06034,0.344828 L8.03448,0.344828 L8.08621,0.37069 L8.11207,0.37069 L8.08621,0.37069 L8.11207,0.396552 L8.11207,0.422414 L8.11207,0.448276 L8.11207,0.474138 L8.11207,0.5 L8.08621,0.5 L8.06034,0.5 L8.03448,0.5 z"},{"id":"shape:ae5d5222-754f-ec64-c39f-2c48426b1b85","type":"path","transform":"","fillColor":"#d480aa","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M8.73276,-0.0172414 L8.73276,-0.0431034 L8.75862,-0.0431034 L8.75862,-0.0689655 L8.78448,-0.0948276 L8.81034,-0.0948276 L8.86207,-0.0948276 L8.86207,-0.0689655 L8.88793,-0.0689655 L8.88793,-0.0431034 L8.91379,-0.0431034 L8.91379,-0.0172414 L8.91379,0.00862069 L8.88793,0.00862069 L8.88793,0.0344828 L8.86207,0.0344828 L8.83621,0.0344828 L8.81034,0.0344828 z"},{"id":"shape:82767852-162f-3367-139a-d8b89d3dd930","type":"path","transform":"","fillColor":"#1f8000","lineColor":"#3f8000","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M-2.93103,7.84483 L-2.90517,7.7931 L-2.85345,7.76724 L-2.82759,7.71552 L-2.75,7.63793 L-2.69828,7.56034 L-2.5431,7.43103 L-2.38793,7.32759 L-2,7.09483 L-1.66379,6.96552 L-1.27586,6.81034 L-0.862069,6.65517 L-0.5,6.5 L-0.0603448,6.37069 L0.301724,6.18966 L0.482759,6.13793 L0.818965,6.06034 L1.18103,6.00862 L1.59483,5.98276 L2.13793,5.98276 L2.73276,5.98276 L3.27586,5.98276 L3.74138,5.98276 L3.92241,5.98276 L4.02586,5.98276 L4.25862,6.00862 L4.59483,6.11207 L4.9569,6.16379 L5.2931,6.21552 L5.78448,6.31897 L6.22414,6.37069 L6.71552,6.37069 L6.89655,6.37069 L7.10345,6.31897 L7.31034,6.24138 L7.59483,6.08621 L7.72414,6.03448 L7.90517,5.9569 L8.00862,5.87931 L8.03448,5.82759 L8.03448,5.80172 L8.03448,5.77586 L8.03448,5.75 L8.03448,5.72414 L8.03448,5.69828 L8.06034,5.69828 L8.08621,5.69828 L8.11207,5.69828 L8.13793,5.69828 L8.16379,5.75 L8.26724,5.87931 L8.34483,5.98276 L8.34483,6.13793 L8.34483,6.21552 L8.2931,6.2931 L8.21552,6.39655 L8.18966,6.47414 L8.13793,6.60345 L8.06034,6.73276 L7.9569,6.88793 L7.82759,7.06897 L7.77586,7.22414 L7.67241,7.37931 L7.59483,7.43103 L7.51724,7.56034 L7.46552,7.61207 L7.38793,7.63793 L7.23276,7.76724 L7.07759,7.87069 L6.87069,8.02586 L6.71552,8.12931 L6.61207,8.25862 L6.53448,8.31034 L6.40517,8.41379 L6.27586,8.5431 L6.19828,8.64655 L6.09483,8.75 L5.99138,8.80172 L5.93966,8.82759 L5.88793,8.87931 L5.78448,8.90517 L5.62931,8.9569 L5.5,9.00862 L5.42241,9.06034 L5.31897,9.08621 L5.24138,9.13793 L5.08621,9.18966 L4.93103,9.2931 L4.80172,9.37069 L4.67241,9.42241 L4.56897,9.47414 L4.46552,9.52586 L4.33621,9.57759 L4.07759,9.7069 L3.81897,9.81034 L3.58621,9.81034 L3.40517,9.81034 L3.17241,9.81034 L2.99138,9.81034 L2.7069,9.81034 L2.55172,9.81034 L2.37069,9.81034 L2.21552,9.81034 L2.00862,9.81034 L1.69828,9.81034 L1.49138,9.81034 L1.28448,9.81034 L1.15517,9.81034 L1,9.81034 L0.767241,9.81034 L0.767241,9.78448 L0.767241,9.88793 L0.508621,9.83621 L0.275862,9.83621 L-0.00862069,9.83621 L-0.137931,9.83621 L-0.396552,9.83621 L-0.603448,9.83621 L-0.887931,9.83621 L-0.991379,9.83621 L-1.0431,9.83621 L-1.09483,9.83621 L-1.22414,9.83621 L-1.37931,9.83621 L-1.50862,9.83621 L-1.58621,9.86207 L-1.63793,9.86207 L-1.68966,9.86207 L-1.71552,9.86207 L-1.74138,9.86207 L-1.81897,9.86207 L-1.87069,9.86207 L-1.94828,9.86207 L-2,9.86207 L-2.05172,9.86207 L-2.07759,9.86207 L-2.10345,9.86207 L-2.15517,9.86207 L-2.23276,9.86207 L-2.25862,9.86207 L-2.31034,9.86207 L-2.33621,9.86207 L-2.36207,9.86207 L-2.41379,9.86207 L-2.43966,9.86207 L-2.46552,9.86207 L-2.56897,9.86207 L-2.59483,9.86207 L-2.64655,9.86207 L-2.87931,9.86207 L-2.90517,9.86207 L-2.93103,9.86207 L-3.00862,9.83621 L-3.06034,9.81034 L-3.16379,9.75862 L-3.21552,9.75862 L-3.26724,9.73276 L-3.37069,9.73276 L-3.57759,9.73276 L-3.7069,9.73276 L-3.75862,9.73276 L-3.83621,9.73276 L-3.96552,9.73276 L-4.0431,9.73276 L-4.12069,9.73276 L-4.14655,9.73276 L-4.19828,9.73276 L-4.25,9.73276 L-4.30172,9.73276 L-4.27586,9.73276 L-4.25,9.73276 z"},{"id":"shape:c2a07665-d288-204b-6ff2-a70f6fa3ff62","type":"path","transform":"","fillColor":"#ff2bf8","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M0.689655,5.18103 L0.715517,5.18103 L0.741379,5.12931 L0.922414,4.92241 L1.18103,4.68966 L1.67241,4.32759 L2.06034,4.06897 L2.5,3.7069 L2.86207,3.5 L3.30172,3.37069 L3.53448,3.31897 L3.76724,3.31897 L3.94828,3.31897 L4.31034,3.39655 L4.72414,3.47414 L5.03448,3.55172 L5.52586,3.57759 L5.91379,3.65517 L6.37931,3.68103 L6.89655,3.68103 L7.59483,3.62931 L8.06034,3.62931 L8.88793,3.62931 L9.35345,3.55172 L9.74138,3.5 L9.89655,3.44828 L10.0517,3.39655 L10.1552,3.39655 L10.3879,3.37069 L10.4914,3.37069 L10.5431,3.34483 L10.5431,3.37069 L10.5172,3.39655 L10.4397,3.47414 L10.3879,3.5 L10.3103,3.55172 L10.2845,3.57759 L10.2328,3.62931 L10.1293,3.68103 L10.0517,3.78448 L9.89655,3.91379 L9.71552,4.06897 L9.56034,4.17241 L9.35345,4.30172 L9.19828,4.40517 L8.86207,4.56034 L8.39655,4.7931 L8.18966,4.97414 L7.87931,5.2069 L7.77586,5.25862 L7.64655,5.33621 L7.43966,5.36207 L6.97414,5.38793 L6.68966,5.38793 L6.48276,5.36207 L6.37931,5.33621 L6.14655,5.28448 L5.86207,5.23276 L5.62931,5.2069 L5.44828,5.2069 L5.21552,5.2069 L5.00862,5.18103 L4.75,5.18103 L4.51724,5.18103 L4.25862,5.18103 L4.02586,5.18103 L3.87069,5.18103 L3.63793,5.2069 L3.35345,5.25862 L3.06897,5.28448 L2.75862,5.31034 L2.55172,5.33621 L2.37069,5.36207 L2.21552,5.36207 L2.13793,5.36207 L2.03448,5.36207 L1.9569,5.36207 L1.87931,5.36207 L1.82759,5.36207 L1.75,5.38793 L1.67241,5.38793 L1.56897,5.41379 L1.46552,5.41379 L1.38793,5.43966 L1.28448,5.46552 L1.18103,5.49138 L1.07759,5.51724 L1,5.5431 L0.896552,5.56897 L0.767241,5.56897 L0.689655,5.62069 L0.637931,5.64655 L0.586207,5.67241 L0.534483,5.69828 L0.456897,5.72414 L0.431034,5.72414 L0.37931,5.72414 L0.327586,5.72414 L0.25,5.75 L0.224138,5.75 L0.198276,5.77586 L0.172414,5.77586 L0.12069,5.77586 L0.0948276,5.77586 L0.0431034,5.77586 L-0.00862069,5.77586 L-0.0603448,5.80172 L-0.112069,5.85345 L-0.163793,5.87931 L-0.241379,5.90517 L-0.267241,5.93103 L-0.318966,5.93103 L-0.37069,5.9569 L-0.396552,5.9569 L-0.422414,5.98276 L-0.448276,6.03448 L-0.525862,6.03448 L-0.551724,6.03448 L-0.577586,6.03448 L-0.603448,6.03448 z"},{"id":"shape:dbe8da14-7d74-4986-5d8e-5d97c4d1f980","type":"path","transform":"","fillColor":"#aa004f","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M0.456897,5.5431 L0.793103,5.41379 L1.59483,5.15517 L2.21552,5.02586 L2.7069,4.87069 L3.01724,4.76724 L3.43103,4.76724 L3.94828,4.76724 L4.51724,4.68966 L5.00862,4.63793 L5.44828,4.53448 L5.83621,4.48276 L6.06897,4.4569 L6.43103,4.4569 L6.68966,4.50862 L7.10345,4.53448 L7.28448,4.53448 L7.43966,4.53448 L7.59483,4.53448 L7.62069,4.53448 L7.64655,4.53448 L7.67241,4.53448 L7.67241,4.56034 L7.67241,4.58621 L7.64655,4.58621 L7.62069,4.61207 L7.5431,4.68966 L7.41379,4.76724 L7.23276,4.92241 L7.05172,5.05172 L6.87069,5.18103 L6.61207,5.33621 L6.22414,5.49138 L6.06897,5.5431 L5.55172,5.51724 L4.82759,5.49138 L4.49138,5.49138 L4,5.46552 L3.30172,5.46552 L2.88793,5.46552 L2.42241,5.46552 L2.16379,5.46552 L2.18966,5.5431 L1.67241,5.56897 L1.33621,5.62069 L1.05172,5.69828 L0.818965,5.80172 L0.663793,5.80172 L0.560345,5.80172 L0.482759,5.80172 L0.353448,5.80172 L0.224138,5.80172 L0.0948276,5.80172 L0.0172414,5.80172 L-0.0603448,5.80172 L-0.241379,5.82759 L-0.422414,5.90517 L-0.474138,5.93103 L-0.525862,5.93103 L-0.525862,5.9569 L-0.525862,5.98276 L-0.551724,5.98276 L-0.577586,5.98276 z"},{"id":"shape:95ead073-e200-b747-cef1-1836130c35c9","type":"path","transform":"","fillColor":"#ff55a4","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M-0.422414,6.06034 L-0.241379,5.9569 L-0.112069,5.87931 L0.508621,5.72414 L0.974138,5.64655 L1.62069,5.62069 L2.96552,5.51724 L3.94828,5.36207 L5.06034,5.15517 L5.83621,5 L6.68966,4.84483 L6.81897,4.76724 L7.15517,4.68966 L7.31034,4.66379 L7.33621,4.68966 L7.33621,4.71552 L7.36207,4.71552 L7.41379,4.89655 L7.41379,5 L7.41379,5.07759 L7.38793,5.12931 L7.28448,5.28448 L7.10345,5.36207 L6.76724,5.43966 L6.27586,5.43966 L5.65517,5.46552 L4.93103,5.46552 L3.94828,5.46552 L2.88793,5.46552 L2.03448,5.51724 L1.36207,5.64655 L1,5.77586 L0.715517,5.87931 L0.456897,5.9569 L0.275862,5.9569 L0.25,5.9569 L0.172414,5.9569 z"},{"id":"shape:175689e6-1618-0343-b47f-79dfdb36440c","type":"path","transform":"","fillColor":"#ff2b8e","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M-0.241379,5.62069 L-0.241379,5.59483 L-0.0862069,5.38793 L0.0948276,5.12931 L0.353448,4.76724 L0.689655,4.48276 L1.02586,4.25 L1.25862,4.17241 L1.51724,4.12069 L1.93103,4.06897 L2.47414,4.12069 L2.96552,4.12069 L3.53448,4.14655 L4.25862,4.14655 L4.75,4.14655 L5.03448,4.06897 L5.62931,4.0431 L6.17241,4.0431 L6.19828,4.01724 L6.12069,4.06897 L5.93966,4.12069 L5.60345,4.17241 L5.26724,4.32759 L4.93103,4.48276 L4.46552,4.71552 L4.10345,4.87069 L3.68966,5 L3.19828,5.2069 L2.68103,5.41379 L0.87069,5.98276 L0.637931,5.98276 L0.224138,6.00862 L-0.0862069,6.00862 L-0.241379,6.00862 L-0.318966,6.00862 L-0.344828,6.00862 L-0.37069,6.00862 z"},{"id":"shape:a993a37b-cf8e-1a26-d512-c98b30486894","type":"path","transform":"","fillColor":"#d50063","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M1.25862,5.07759 L2.65517,4.56034 L2.73276,4.56034 L2.93966,4.61207 L3.14655,4.61207 L3.4569,4.61207 L3.7931,4.53448 L4,4.48276 L4.05172,4.43103 L4.02586,4.43103 L3.97414,4.4569 L3.7931,4.58621 L3.58621,4.74138 L3.35345,4.92241 L3.12069,5.07759 L2.99138,5.15517 L2.75862,5.23276 L2.57759,5.23276 L2.21552,5.23276 L1.85345,5.23276 L1.41379,5.23276 L1.05172,5.23276 L0.767241,5.23276 L0.637931,5.23276 L0.586207,5.23276 L0.508621,5.23276 L0.482759,5.23276 L0.431034,5.23276 L0.405172,5.23276 z"},{"id":"shape:4f8153a6-67f1-ded1-e90a-05dd4f5e57de","type":"path","transform":"","fillColor":"#d50063","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M8.44828,4.09483 L8.55172,4.0431 L8.75862,3.96552 L9.06897,3.83621 L9.32759,3.73276 L9.58621,3.62931 L9.66379,3.60345 L9.76724,3.57759 L9.87069,3.55172 L9.89655,3.52586 L9.97414,3.47414 L9.97414,3.5 L9.97414,3.52586 L9.84483,3.68103 L9.76724,3.78448 L9.71552,3.88793 L9.61207,3.93966 L9.4569,4.0431 L9.35345,4.12069 L9.27586,4.12069 L9.19828,4.12069 L9.06897,4.12069 L8.96552,4.12069 L8.81034,4.12069 L8.68103,4.12069 L8.52586,4.12069 L8.44828,4.12069 L8.31897,4.12069 L8.24138,4.12069 L8.13793,4.12069 L8.11207,4.12069 L8.06034,4.12069 z"},{"id":"shape:1f27e960-db34-febb-ceb3-0f0793a6cf4e","type":"path","transform":"","fillColor":"#aa557c","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M4.51724,6.62931 L5.34483,6.47414 L6.53448,6.31897 L7.23276,6.03448 L7.5431,5.87931 L7.85345,5.72414 L8.08621,5.56897 L8.11207,5.5431 L8.11207,5.51724 L7.2069,6.52586 L6.94828,6.62931 L6.68966,6.65517 L6.19828,6.7069 L5.7069,6.75862 L5.2931,6.78448 L4.9569,6.78448 L4.5431,6.78448 L4.33621,6.78448 L4.10345,6.78448 L3.92241,6.78448 L3.63793,6.78448 L3.43103,6.78448 L3.19828,6.78448 L2.91379,6.81034 L2.65517,6.86207 L2.26724,6.88793 L1.93103,6.91379 L1.62069,6.91379 L1.51724,6.91379 L1.41379,6.91379 L1.36207,6.91379 L1.31034,6.91379 z"},{"id":"shape:74f5cef1-ce08-600d-e384-958dac4704de","type":"path","transform":"","fillColor":"#805569","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M6.61207,5.43966 L6.63793,5.38793 L6.81897,5.31034 L7,5.2069 L7.05172,5.15517 L7.10345,5.15517 L7.2069,5.15517 L7.2069,5.2069 L7.2069,5.25862 L7.07759,5.43966 L7.02586,5.5431 L6.7931,5.69828 L6.48276,5.82759 L6.09483,5.90517 L5.78448,5.93103 L5.5,5.98276 L5.11207,6.03448 L4.56897,6.08621 L4.15517,6.13793 L3.87069,6.13793 L3.71552,6.13793 L3.66379,6.13793 L3.50862,6.13793 L3.43103,6.13793 L3.32759,6.13793 L3.19828,6.13793 L3.0431,6.13793 L2.86207,6.13793 L2.60345,6.13793 L2.34483,6.16379 L2.16379,6.16379 L2.06034,6.16379 L1.90517,6.16379 L1.75,6.16379 z"},{"id":"shape:93177ed1-1f6a-b50b-12a3-3a6ca8ae664e","type":"path","transform":"","fillColor":"#805569","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M7.49138,5.31034 L7.69828,5.18103 L7.98276,4.81897 L8.2931,4.56034 L8.31897,4.50862 L8.31897,4.4569 L8.31897,4.43103 L8.39655,4.50862 L8.44828,4.58621 L8.5,4.63793 L8.47414,4.74138 L8.2931,5.05172 L8.16379,5.12931 L7.90517,5.2069 L7.51724,5.25862 L7.38793,5.31034 L7.2069,5.31034 L7.05172,5.31034 L6.97414,5.31034 L6.89655,5.31034 L6.81897,5.31034 L6.76724,5.31034 L6.68966,5.25862 z"},{"id":"shape:3356fa31-7bda-9431-fb49-731e3cd9425d","type":"ellipse","transform":"","fillColor":"#ffe100","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"width":2.50862,"height":2.37932,"left":14.08619,"top":1.3275800000000002}] \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/new.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/new.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{type:"doc", left:0, top:0, width:700, height:500, viewBox:"0 0 700 500", bgcolor:"#ffffff", title:"", link:"", meta:""} ] \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/onerobot.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/onerobot.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{type:"doc", left:0, top:0, width:160, height:160, viewBox:"0 0 160 160", bgcolor:"#006666", title:"", link:"", meta:""}, {"id":"shape:567398b2-3763-cc53-678a-e74d1d5d7569","type":"rect","transform":"","fillColor":"#d5d4d4","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-146,"top":-6,"width":444,"height":171},{"id":"shape:0cc9fd3c-6518-31e7-1dd9-ac3f03f334f9","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":17.5,"height":22,"left":18.5,"top":95},{"id":"shape:aeb8f11c-5800-2feb-e3df-33139c1c070f","type":"rect","transform":"","fillColor":"#d5d4d4","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-4,"top":4,"width":8,"height":12},{"id":"shape:2b66c634-20de-49cc-501e-c2dd34ed072f","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":39,"height":34.5586,"left":53,"top":83.58269999999999},{"id":"shape:8ce004c5-af9a-d815-2111-9719e9c2b0c1","type":"path","transform":"","fillColor":"#555500","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-153,160.5 L-153,159.5 L-154,158.5 L-157,156.5 L-159,154.5 L-162,152.5 L-165,149.5 L-169,145.5 L-171,143.5 L-174,138.5 L-176,134.5 L-179,133.5 L-181,130.5 L-182,130.5 L-182,128.5 L-182,126.5 L-180,123.5 L-177,122.5 L-176,120.5 L-173,118.5 L-170,116.5 L-163,115.5 L-156,113.5 L-147,113.5 L-144,113.5 L-143,113.5 L-140,113.5 L-136,113.5 L-135,113.5 L-134,113.5 L-133,112.5 L-130,112.5 L-127,112.5 L-125,112.5 L-122,112.5 L-119,112.5 L-115,111.5 L-113,111.5 L-110,111.5 L-109,111.5 L-106,111.5 L-99,114.5 L-93,115.5 L-90,115.5 L-87,115.5 L-84,115.5 L-81,115.5 L-78,114.5 L-71,113.5 L-62,112.5 L-53,111.5 L-43,110.5 L-34,107.5 L-25,106.5 L-21,106.5 L-20,106.5 L-20,107.5 L-19,107.5 L-18,108.5 L-16,108.5 L-15,108.5 L-12,108.5 L-7,110.5 L-5,111.5 L-2,111.5 L1,111.5 L7,113.5 L10,113.5 L11,113.5 L13,113.5 L16,113.5 L18,112.5 L19,112.5 L20,112.5 L21,112.5 L22,112.5 L23,112.5 L25,112.5 L26,112.5 L27,112.5 L28,112.5 L29,112.5 L30,112.5 L32,112.5 L33,111.5 L34,111.5 L35,110.5 L37,110.5 L39,110.5 L40,110.5 L41,110.5 L43,110.5 L44,110.5 L45,110.5 L46,110.5 L48,110.5 L50,111.5 L53,111.5 L54,111.5 L55,111.5 L56,111.5 L57,111.5 L58,111.5 L59,111.5 L60,111.5 L62,111.5 L63,111.5 L64,111.5 L66,111.5 L67,111.5 L68,111.5 L69,111.5 L70,111.5 L71,111.5 L72,111.5 L73,111.5 L74,111.5 L75,111.5 L76,111.5 L77,111.5 L78,111.5 L78,112.5 L79,113.5 L80,114.5 L81,114.5 L82,114.5 L82,115.5 L84,116.5 L85,116.5 L86,116.5 L87,116.5 L89,116.5 L92,116.5 L93,116.5 L95,116.5 L97,116.5 L100,116.5 L114,116.5 L115,116.5 L116,115.5 L118,115.5 L119,115.5 L120,115.5 L122,114.5 L125,114.5 L128,114.5 L129,114.5 L131,114.5 L132,114.5 L135,114.5 L143,114.5 L149,114.5 L150,114.5 L151,114.5 L152,114.5 L154,114.5 L160,114.5 L163,114.5 L165,114.5 L166,114.5 L169,114.5 L171,114.5 L175,114.5 L178,114.5 L188,114.5 L192,114.5 L194,114.5 L195,114.5 L198,114.5 L202,114.5 L205,114.5 L207,114.5 L209,114.5 L210,114.5 L211,114.5 L214,117.5 L217,119.5 L220,120.5 L221,120.5 L224,120.5 L226,120.5 L230,120.5 L233,120.5 L235,120.5 L241,120.5 L244,120.5 L251,120.5 L257,120.5 L260,120.5 L261,120.5 L264,120.5 L267,120.5 L271,120.5 L274,120.5 L277,120.5 L279,120.5 L280,120.5 L281,120.5 L282,120.5 L283,120.5 L284,120.5 L285,120.5 L285,121.5 L286,121.5 L287,121.5 L287,122.5 L288,122.5 L289,122.5 L290,123.5 L290,124.5 L291,124.5 L291,125.5 L291,126.5 L292,127.5 L292,128.5 L292,129.5 L292,130.5 L293,131.5 L294,132.5 L295,133.5 L296,133.5 L296,134.5 L296,135.5 L296,136.5 L296,137.5 L296,138.5 L296,139.5 L296,147.5 L296,149.5 L296,151.5 L296,152.5 L296,153.5 L296,154.5 L296,155.5 L296,156.5 L296,157.5 L296,158.5 L296,159.5 z"},{"id":"shape:72ac0941-f863-abd4-1859-0a90e75d9f86","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":15,"height":12,"left":64,"top":94},{"id":"shape:8e937ef4-b625-9b54-a8d9-3f9db5391b29","type":"roundrect","transform":"rotate(-9.46232, 60, 85)","fillColor":"#808080","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"rx":20,"ry":20,"left":28,"top":71,"width":64,"height":28},{"id":"shape:03156a09-0646-b0cf-00d2-7a0dc4cb6300","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":39,"height":35,"left":81,"top":83},{"id":"shape:fc34042d-ab37-df13-0405-dae6ec9bb3bb","type":"rect","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":23.318,"top":83.7556,"width":18,"height":17},{"id":"shape:85289780-3df2-86f2-9aae-f189399120df","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":14.318,"top":83.7556,"width":18,"height":17},{"id":"shape:e054d647-771a-5b58-4cd0-68514c515be7","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":56.318,"top":57.7556,"width":18,"height":17},{"id":"shape:d9e5c336-4953-9ce5-9ecb-728c966350a4","type":"rect","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":63.318,"top":57.7556,"width":18,"height":17},{"id":"shape:0dba98fe-95ad-b2df-5796-364664bf50fb","type":"line","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":68,"top":59.7556,"width":0,"height":-25.7556},{"id":"shape:4f25051b-348d-82c6-3d3a-dc858d4671b9","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":15,"height":12,"left":93,"top":95},{"id":"shape:6cc4981f-ed54-8300-7db2-f63b5e3efdb3","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":4,"height":3,"left":25,"top":105},{"id":"shape:607f960c-6341-b01a-a000-692d153e6bc7","type":"text","transform":"","textFamily":"Arial","textSize":28,"top":147.688,"left":27,"text":"Robot 45","lineWidth":1,"fillColor":"#00daff","lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:ad070b30-da2f-24d2-abc4-58282961872e","type":"path","transform":"","fillColor":"#555500","lineColor":"#00002b","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M224,119 L225,116 L226,116 L227,116 L229,117 L229,119 L230,119 L231,119 L231,120 L231,122 L231,123 L231,124 L230,124 L229,124 L227,124 L226,124 L225,124 z"},{"id":"shape:35123ef7-89d8-6830-d58d-e95079d8b8a6","type":"path","transform":"","fillColor":"#555500","lineColor":"#00002b","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M239,118 L240,115 L247,114 L247,117 L248,118 L248,119 L248,120 L248,121 L247,122 L247,123 L246,123 L244,123 L243,123 L242,123 L240,123 L239,123 L238,123 L238,122 L238,121 z"},{"id":"shape:6ab1f71d-24be-c896-965c-8c08574977f6","type":"path","transform":"","fillColor":"#555500","lineColor":"#00002b","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M237,116 L237,119 L237,123 L234,125 L230,125 L229,125 L228,122 L227,121 z"},{"id":"shape:9d3181e3-dff6-fd3f-325d-3ded051914fd","type":"path","transform":"","fillColor":"#555500","lineColor":"#00002b","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M194,114 L195,111 L198,111 L200,113 L201,113 L202,113 L202,115 L200,116 L200,117 L199,117 L198,117 z"},{"id":"shape:126a2a49-0271-81cf-6f27-e02ebf683477","type":"path","transform":"","fillColor":"#555500","lineColor":"#00002b","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-94,110 L-91,111 L-89,111 L-87,113 L-89,117 L-91,121 L-93,121 L-95,120 L-95,119 L-95,118 z"},{"id":"shape:8dd36493-2c51-92e6-120f-2468ff359872","type":"path","transform":"","fillColor":"#555500","lineColor":"#00002b","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-85,118 L-89,115 L-87,110 L-80,111 L-78,111 L-78,112 L-78,116 L-78,119 z"},{"id":"shape:e544869c-ba12-e593-a87e-39842aa2e5de","type":"path","transform":"","fillColor":"#555500","lineColor":"#00002b","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-120,110 L-114,110 L-113,113 L-113,116 L-114,117 L-115,117 L-116,117 z"},{"id":"shape:1df39d5f-dbfe-9b1f-11ad-e61125c1dcbc","type":"path","transform":"","fillColor":"#555500","lineColor":"#00002b","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-47,113 L-47,110 L-44,110 L-41,110 L-40,110 L-40,113 z"}] diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/onerobot1.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/onerobot1.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,3 @@ +//[{type:"doc", left:0, top:0, width:160, height:160, viewBox:"0 0 160 160"}, {"id":"shape:567398b2-3763-cc53-678a-e74d1d5d7569","type":"rect","transform":"","fillColor":"#d5d4d4","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-8,"top":-4,"width":170,"height":169},{"id":"shape:0cc9fd3c-6518-31e7-1dd9-ac3f03f334f9","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":17.5,"height":22,"left":18.5,"top":95},{"id":"shape:91592290-f1a8-8bb1-30b9-8a1856f29375","type":"path","transform":"","fillColor":"#555500","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M5,112 L6,112 L11,112 L17,112 L25,112 L34,113 L38,113 L39,113 L40,113 L43,113 L47,113 L51,113 L52,113 L54,114 L59,114 L66,114 L73,113 L83,111 L85,111 L87,111 L92,111 L100,111 L107,111 L108,111 L111,111 L115,112 L116,112 L123,112 L131,113 L140,113 L146,113 L146,114 L146,115 L147,116 L149,118 L150,120 L150,122 L148,126 L145,128 L143,130 L143,131 L143,134 L141,136 L139,138 L135,140 L131,142 L127,144 L125,145 L121,145 L117,145 L115,145 L109,145 L102,145 L99,146 L96,147 L93,148 L89,149 L84,149 L80,150 L76,151 L73,151 L72,151 L71,151 L68,150 L66,148 L64,147 L58,146 L52,145 L46,145 L44,145 L43,145 L42,144 L41,143 L40,143 L37,143 L32,143 L29,143 L27,143 L25,143 L24,143 L23,143 L22,143 L21,143 L18,143 L16,143 L14,143 L13,143 L11,143 L10,143 L9,143 L8,143 L7,143 L6,143 L5,143 L4,143 L3,143 L4,143 L5,143 L6,143 z"},{"id":"shape:607f960c-6341-b01a-a000-692d153e6bc7","type":"text","transform":"","textFamily":"Arial","textSize":28,"top":137.922,"left":62,"text":"Robot 45","lineWidth":1,"fillColor":"#00daff","lineColor":"none","fillOpac":1,"lineOpac":1},{"id":"shape:aeb8f11c-5800-2feb-e3df-33139c1c070f","type":"rect","transform":"","fillColor":"#d5d4d4","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-2,"top":6,"width":6,"height":10},{"id":"shape:2b66c634-20de-49cc-501e-c2dd34ed072f","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":39,"height":34.5586,"left":53,"top":83.58269999999999},{"id":"shape:72ac0941-f863-abd4-1859-0a90e75d9f86","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":15,"height":12,"left":64,"top":94},{"id":"shape:8e937ef4-b625-9b54-a8d9-3f9db5391b29","type":"roundrect","transform":"rotate(-9.46232, 60, 85)","fillColor":"#808080","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"rx":20,"ry":20,"left":28,"top":71,"width":64,"height":28},{"id":"shape:03156a09-0646-b0cf-00d2-7a0dc4cb6300","type":"ellipse","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":39,"height":35,"left":81,"top":83},{"id":"shape:fc34042d-ab37-df13-0405-dae6ec9bb3bb","type":"rect","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":25.318,"top":85.7556,"width":16,"height":15},{"id":"shape:85289780-3df2-86f2-9aae-f189399120df","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":16.318,"top":85.7556,"width":16,"height":15},{"id":"shape:e054d647-771a-5b58-4cd0-68514c515be7","type":"rect","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":58.318,"top":59.7556,"width":16,"height":15},{"id":"shape:d9e5c336-4953-9ce5-9ecb-728c966350a4","type":"rect","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":65.318,"top":59.7556,"width":16,"height":15},{"id":"shape:0dba98fe-95ad-b2df-5796-364664bf50fb","type":"line","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":68,"top":59.7556,"width":0,"height":-25.7556},{"id":"shape:4f25051b-348d-82c6-3d3a-dc858d4671b9","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":15,"height":12,"left":93,"top":95},{"id":"shape:6cc4981f-ed54-8300-7db2-f63b5e3efdb3","type":"ellipse","transform":"","fillColor":"#aaaaaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":4,"height":3,"left":25,"top":105}] +//[{"id":"shape:shape:138a8c08-77bf-7242-a0f2-a33051dbc03f","type":"path","transform":"","fillColor":"#d58080","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M97.6193,170 L97.6193,170 L94.2524,161 L94.2524,161 L100.986,131 L100.986,131 L114.454,117 L114.454,117 L134.657,109 L134.657,109 L164.958,101 L164.958,101 L201.996,99 L201.996,99 L245.768,100 L245.768,100 L264.284,102 L264.284,102 L277.754,110 L277.754,110 L286.172,123 L286.172,123 L292.904,138 L292.904,138 L292.904,153 L292.904,153 L287.853,172 L287.853,172 L281.12,191 L281.12,191 L276.068,209 L276.068,209 L271.021,221 L271.021,221 L264.284,232 L264.284,232 L262.602,236 L262.602,236 L255.869,243 L255.869,243 L252.5,248 L252.5,248 L245.768,251 L245.768,251 L242.4,254 L242.4,254 L235.665,257 L235.665,257 L228.931,260 L228.931,260 L220.515,263 L220.515,263 L210.413,266 L210.413,266 L200.312,269 L200.312,269 L186.846,271 L186.846,271 L173.374,272 L173.374,272 L158.226,273 L158.226,273 L144.757,273 L144.757,273 L134.657,273 L134.657,273 L126.238,273 L126.238,273 L114.454,271 L114.454,271 L106.037,269 L106.037,269 L97.6193,266 L97.6193,266 L90.8853,264 L90.8853,264 L87.5185,261 L87.5185,261 L80.7846,258 L80.7846,258 L75.7339,256 L75.7339,256 L70.6835,251 L70.6835,251 L69,246 L69,246 L70.6835,241 L70.6835,241 L72.367,237 L72.367,237 L77.4175,234 L77.4175,234 L80.7846,231 L80.7846,231 L87.5185,228 L87.5185,228 L100.986,223 L100.986,223 L111.087,221 L111.087,221 L126.238,217 L126.238,217 L136.339,214 L136.339,214 L173.374,197 L173.374,197 L175.06,193 L175.06,193 L175.06,191 L175.06,191 L175.06,188 L175.06,188 L175.06,185 L175.06,185 L175.06,184 L175.06,184 L175.06,182 L175.06,182 L175.06,180 L175.06,180 L175.06,179 L175.06,179 L175.06,177 L175.06,177 L175.06,176 L175.06,176 L173.374,176 L173.374,176 L171.694,174 L171.694,174 L170.009,173 L170.009,173 L170.009,172 L170.009,172 L168.327,171 L168.327,171 L166.642,171 L166.642,171 L164.958,171 L164.958,171 L163.277,171 L163.277,171 L159.908,172 L159.908,172 L158.226,173 L158.226,173 L156.542,173 L156.542,173 L151.491,175 L151.491,175 L148.122,176 L148.122,176 L146.442,177 L146.442,177 L144.757,177 L144.757,177 L144.757,178 L144.757,178 L143.073,178 L143.073,178 L143.073,179 L143.073,179 L141.39,179 L141.39,179 L138.023,180 L138.023,180 L131.29,181 L131.29,181 L127.921,182 L127.921,182 L119.504,185 L119.504,185 L116.138,186 L116.138,186 L112.771,186 L112.771,186 L111.087,186 L111.087,186 L109.403,186 L109.403,186 L107.721,186 L107.721,186 L106.037,186 L106.037,186 L104.353,186 L104.353,186 L102.67,186 L102.67,186 L97.6193,185 L97.6193,185 L95.9359,185 L95.9359,185 L94.2524,184 L94.2524,184 L92.5688,182 L92.5688,182 L90.8853,182 L90.8853,182 L89.2021,181 L89.2021,181 L87.5185,180 L87.5185,180 L85.8348,179 L85.8348,179 L85.8348,178 L85.8348,178 L85.8348,177 L85.8348,177 L85.8348,176 L85.8348,176 L87.5185,176 L87.5185,176 L89.2021,176 L89.2021,176 L90.8853,176 L90.8853,176 L92.5688,176 L92.5688,176 L94.2524,176 L94.2524,176 L95.9359,176 L95.9359,176 L97.6193,176 L97.6193,176 L97.6193,175 L97.6193,175 L99.3031,174 L99.3031,174 L97.6193,174 L97.6193,174 L95.9359,174 L95.9359,174 L94.2524,174 L94.2524,174 L92.5688,174 L92.5688,174 L90.8853,174 L90.8853,174 L89.2021,174 L89.2021,174 L85.8348,173 L85.8348,173 L84.1513,172 L84.1513,172 L82.4679,169 L82.4679,169 z"},{"id":"shape:shape:a5f598d0-748e-93a0-517e-bacc7b67b7e6","type":"rect","transform":"","fillColor":"#e3e4e4","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":4,"top":4.04767,"width":591,"height":324.952},{"id":"shape:shape:b5311c59-28ea-4862-4f57-e4a9ee79f4c2","type":"path","transform":"rotate(9.07562, 254.012, 255.452)","fillColor":"#d5d5d5","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M146.069,250.918 L146.069,250.918 L141.709,247.806 L141.709,247.806 L150.433,237.432 L150.433,237.432 L167.877,232.589 L167.877,232.589 L194.047,229.821 L194.047,229.821 L233.294,227.055 L233.294,227.055 L281.271,226.363 L281.271,226.363 L337.972,226.709 L337.972,226.709 L361.952,227.4 L361.952,227.4 L379.402,230.168 L379.402,230.168 L390.301,234.663 L390.301,234.663 L399.025,239.851 L399.025,239.851 L399.025,245.039 L399.025,245.039 L392.48,251.609 L392.48,251.609 L383.759,258.18 L383.759,258.18 L377.215,264.406 L377.215,264.406 L370.679,268.557 L370.679,268.557 L361.952,272.36 L361.952,272.36 L359.773,273.744 L359.773,273.744 L351.052,276.165 L351.052,276.165 L346.692,277.894 L346.692,277.894 L337.972,278.931 L337.972,278.931 L333.605,279.97 L333.605,279.97 L324.883,281.005 L324.883,281.005 L316.164,282.043 L316.164,282.043 L305.259,283.082 L305.259,283.082 L292.172,284.119 L292.172,284.119 L279.091,285.157 L279.091,285.157 L261.646,285.849 L261.646,285.849 L244.198,286.193 L244.198,286.193 L224.576,286.54 L224.576,286.54 L207.128,286.54 L207.128,286.54 L194.047,286.54 L194.047,286.54 L183.142,286.54 L183.142,286.54 L167.877,285.849 L167.877,285.849 L156.978,285.157 L156.978,285.157 L146.069,284.119 L146.069,284.119 L137.347,283.427 L137.347,283.427 L132.986,282.39 L132.986,282.39 L124.264,281.351 L124.264,281.351 L117.723,280.661 L117.723,280.661 L111.18,278.931 L111.18,278.931 L109,277.202 L109,277.202 L111.18,275.472 L111.18,275.472 L113.361,274.089 L113.361,274.089 L119.903,273.052 L119.903,273.052 L124.264,272.015 L124.264,272.015 L132.986,270.978 L132.986,270.978 L150.433,269.248 L150.433,269.248 L163.516,268.557 L163.516,268.557 L183.142,267.171 L183.142,267.171 L196.223,266.136 L196.223,266.136 L244.198,260.255 L244.198,260.255 L246.381,258.873 L246.381,258.873 L246.381,258.18 L246.381,258.18 L246.381,257.143 L246.381,257.143 L246.381,256.106 L246.381,256.106 L246.381,255.76 L246.381,255.76 L246.381,255.067 L246.381,255.067 L246.381,254.377 L246.381,254.377 L246.381,254.03 L246.381,254.03 L246.381,253.338 L246.381,253.338 L246.381,252.993 L246.381,252.993 L244.198,252.993 L244.198,252.993 L242.023,252.302 L242.023,252.302 L239.839,251.956 L239.839,251.956 L239.839,251.609 L239.839,251.609 L237.658,251.264 L237.658,251.264 L235.477,251.264 L235.477,251.264 L233.294,251.264 L233.294,251.264 L231.119,251.264 L231.119,251.264 L226.753,251.609 L226.753,251.609 L224.576,251.956 L224.576,251.956 L222.393,251.956 L222.393,251.956 L215.852,252.647 L215.852,252.647 L211.488,252.993 L211.488,252.993 L209.31,253.338 L209.31,253.338 L207.128,253.338 L207.128,253.338 L207.128,253.684 L207.128,253.684 L204.949,253.684 L204.949,253.684 L204.949,254.03 L204.949,254.03 L202.766,254.03 L202.766,254.03 L198.405,254.377 L198.405,254.377 L189.685,254.723 L189.685,254.723 L185.317,255.067 L185.317,255.067 L174.42,256.106 L174.42,256.106 L170.06,256.452 L170.06,256.452 L165.699,256.452 L165.699,256.452 L163.516,256.452 L163.516,256.452 L161.332,256.452 L161.332,256.452 L159.159,256.452 L159.159,256.452 L156.978,256.452 L156.978,256.452 L154.792,256.452 L154.792,256.452 L152.614,256.452 L152.614,256.452 L146.069,256.106 L146.069,256.106 L143.892,256.106 L143.892,256.106 L141.709,255.76 L141.709,255.76 L139.529,255.067 L139.529,255.067 L137.347,255.067 L137.347,255.067 L135.169,254.723 L135.169,254.723 L132.986,254.377 L132.986,254.377 L130.806,254.03 L130.806,254.03 L130.806,253.684 L130.806,253.684 L130.806,253.338 L130.806,253.338 L130.806,252.993 L130.806,252.993 L132.986,252.993 L132.986,252.993 L135.169,252.993 L135.169,252.993 L137.347,252.993 L137.347,252.993 L139.529,252.993 L139.529,252.993 L141.709,252.993 L141.709,252.993 L143.892,252.993 L143.892,252.993 L146.069,252.993 L146.069,252.993 L146.069,252.647 L146.069,252.647 L148.251,252.302 L148.251,252.302 L146.069,252.302 L146.069,252.302 L143.892,252.302 L143.892,252.302 L141.709,252.302 L141.709,252.302 L139.529,252.302 L139.529,252.302 L137.347,252.302 L137.347,252.302 L135.169,252.302 L135.169,252.302 L130.806,251.956 L130.806,251.956 L128.625,251.609 L128.625,251.609 L126.445,250.572 L126.445,250.572 z"},{"id":"shape:shape:6ba078c5-d5f1-81d4-0a14-989a39c9b976","type":"path","transform":"","fillColor":"#645555","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M167,119 L167,119 L176,111 L176,111 L209,96 L209,96 L248,86 L248,86 L272,81 L272,81 L300,77 L300,77 L323,75 L323,75 L342,75 L342,75 L340,75 L340,75 L338,76 L338,76 L334,78 L334,78 L326,81 L326,81 L324,81 L324,81 L315,81 L315,81 L306,82 L306,82 L300,82 L300,82 L292,83 L292,83 L281,86 L281,86 L273,89 L273,89 L268,92 L268,92 L262,95 L262,95 L255,98 L255,98 L246,102 L246,102 L238,106 L238,106 L234,108 L234,108 L232,109 L232,109 L230,111 L230,111 L230,110 L230,110 L234,108 L234,108 L240,107 L240,107 L252,106 L252,106 L259,106 L259,106 L268,106 L268,106 L281,106 L281,106 L290,106 L290,106 L297,105 L297,105 L300,104 L300,104 L301,104 L301,104 L300,104 L300,104 L294,106 L294,106 L282,109 L282,109 L264,111 L264,111 L256,112 L256,112 L248,113 L248,113 L240,113 L240,113 L231,113 L231,113 L224,113 L224,113 L218,113 L218,113 L216,113 L216,113 L212,113 L212,113 L210,113 L210,113 L209,113 L209,113 L210,113 L210,113 L211,113 L211,113 L211,114 L211,114 L213,115 L213,115 L218,116 L218,116 L226,116 L226,116 L238,117 L238,117 L248,118 L248,118 L259,118 L259,118 L273,118 L273,118 L297,118 L297,118 L317,118 L317,118 L340,118 L340,118 L353,118 L353,118 L364,118 L364,118 L369,117 L369,117 L374,116 L374,116 L378,115 L378,115 L380,114 L380,114 L379,114 L379,114 L377,116 L377,116 L371,118 L371,118 L357,124 L357,124 L346,128 L346,128 L332,130 L332,130 L305,131 L305,131 L306,131 L306,131 L312,131 L312,131 L327,131 L327,131 L337,131 L337,131 L347,131 L347,131 L349,131 L349,131 L348,132 L348,132 L345,133 L345,133 L338,137 L338,137 L331,138 L331,138 L323,138 L323,138 L311,139 L311,139 L305,141 L305,141 L299,141 L299,141 L295,141 L295,141 L292,141 L292,141 L290,141 L290,141 L288,141 L288,141 L287,141 L287,141 L286,141 L286,141 L285,141 L285,141 L282,141 L282,141 L277,141 L277,141 L273,141 L273,141 L268,141 L268,141 L264,141 L264,141 L256,141 L256,141 L252,141 L252,141 L250,141 L250,141 L248,141 L248,141 L246,141 L246,141 L243,141 L243,141 L242,141 L242,141 L241,141 L241,141 L277,151 L277,151 L290,153 L290,153 L297,153 L297,153 L308,153 L308,153 L322,153 L322,153 L326,153 L326,153 L325,153 L325,153 L322,154 L322,154 L314,157 L314,157 L305,157 L305,157 L285,158 L285,158 L267,158 L267,158 L254,158 L254,158 L240,158 L240,158 L225,158 L225,158 L212,158 L212,158 L206,158 L206,158 L203,158 L203,158 L199,158 L199,158 L193,158 L193,158 L188,158 L188,158 L181,158 L181,158 L172,158 L172,158 L165,158 L165,158 L162,158 L162,158 L161,158 L161,158 L162,158 L162,158 L163,158 L163,158 L162,158 L162,158 L161,157 L161,157 L192,113 z"},{"id":"shape:shape:c3eceb80-0fcc-7c9d-0499-555dfa770c3d","type":"path","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M2,170 L2,170 z"},{"id":"shape:shape:ad19ae68-527d-0f70-9eae-fd9bcffb1fa9","type":"path","transform":"","fillColor":"#abaeae","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M97.619,157.839 L97.619,157.839 L94.252,148.733 L94.252,148.733 L100.986,118.378 L100.986,118.378 L114.454,104.211 L114.454,104.211 L134.657,96.118 L134.657,96.118 L164.958,88.0236 L164.958,88.0236 L201.996,86 L201.996,86 L245.768,87.0116 L245.768,87.0116 L264.284,89.0355 L264.284,89.0355 L277.754,97.131 L277.754,97.131 L286.172,110.284 L286.172,110.284 L292.904,125.461 L292.904,125.461 L292.904,140.637 L292.904,140.637 L287.853,159.862 L287.853,159.862 L281.12,179.087 L281.12,179.087 L276.068,197.297 L276.068,197.297 L271.021,209.44 L271.021,209.44 L264.284,220.569 L264.284,220.569 L262.602,224.616 L262.602,224.616 L255.869,231.699 L255.869,231.699 L252.5,236.759 L252.5,236.759 L245.768,239.795 L245.768,239.795 L242.4,242.832 L242.4,242.832 L235.665,245.864 L235.665,245.864 L228.931,248.901 L228.931,248.901 L220.515,251.937 L220.515,251.937 L210.413,254.971 L210.413,254.971 L200.312,258.006 L200.312,258.006 L186.846,260.03 L186.846,260.03 L173.374,261.042 L173.374,261.042 L158.226,262.054 L158.226,262.054 L144.757,262.054 L144.757,262.054 L134.657,262.054 L134.657,262.054 L126.238,262.054 L126.238,262.054 L114.454,260.03 L114.454,260.03 L106.037,258.006 L106.037,258.006 L97.619,254.971 L97.619,254.971 L90.885,252.948 L90.885,252.948 L87.518,249.912 L87.518,249.912 L80.785,246.879 L80.785,246.879 L75.734,244.852 L75.734,244.852 L70.684,239.795 L70.684,239.795 L69,234.736 L69,234.736 L70.684,229.678 L70.684,229.678 L72.367,225.628 L72.367,225.628 L77.417,222.593 L77.417,222.593 L80.785,219.557 L80.785,219.557 L87.518,216.522 L87.518,216.522 L100.986,211.465 L100.986,211.465 L111.087,209.44 L111.087,209.44 L126.238,205.39 L126.238,205.39 L136.339,202.359 L136.339,202.359 L173.374,185.155 L173.374,185.155 L175.06,181.11 L175.06,181.11 L175.06,179.087 L175.06,179.087 L175.06,176.05 L175.06,176.05 L175.06,173.015 L175.06,173.015 L175.06,172.005 L175.06,172.005 L175.06,169.979 L175.06,169.979 L175.06,167.955 L175.06,167.955 L175.06,166.945 L175.06,166.945 L175.06,164.921 L175.06,164.921 L175.06,163.909 L175.06,163.909 L173.374,163.909 L173.374,163.909 L171.694,161.886 L171.694,161.886 L170.009,160.874 L170.009,160.874 L170.009,159.862 L170.009,159.862 L168.327,158.849 L168.327,158.849 L166.642,158.849 L166.642,158.849 L164.958,158.849 L164.958,158.849 L163.277,158.849 L163.277,158.849 L159.908,159.862 L159.908,159.862 L158.226,160.874 L158.226,160.874 L156.542,160.874 L156.542,160.874 L151.491,162.897 L151.491,162.897 L148.122,163.909 L148.122,163.909 L146.442,164.921 L146.442,164.921 L144.757,164.921 L144.757,164.921 L144.757,165.931 L144.757,165.931 L143.073,165.931 L143.073,165.931 L143.073,166.945 L143.073,166.945 L141.39,166.945 L141.39,166.945 L138.023,167.955 L138.023,167.955 L131.29,168.969 L131.29,168.969 L127.921,169.979 L127.921,169.979 L119.504,173.015 L119.504,173.015 L116.138,174.028 L116.138,174.028 L112.771,174.028 L112.771,174.028 L111.087,174.028 L111.087,174.028 L109.403,174.028 L109.403,174.028 L107.721,174.028 L107.721,174.028 L106.037,174.028 L106.037,174.028 L104.353,174.028 L104.353,174.028 L102.67,174.028 L102.67,174.028 L97.619,173.015 L97.619,173.015 L95.936,173.015 L95.936,173.015 L94.252,172.005 L94.252,172.005 L92.569,169.979 L92.569,169.979 L90.885,169.979 L90.885,169.979 L89.202,168.969 L89.202,168.969 L87.518,167.955 L87.518,167.955 L85.835,166.945 L85.835,166.945 L85.835,165.931 L85.835,165.931 L85.835,164.921 L85.835,164.921 L85.835,163.909 L85.835,163.909 L87.518,163.909 L87.518,163.909 L89.202,163.909 L89.202,163.909 L90.885,163.909 L90.885,163.909 L92.569,163.909 L92.569,163.909 L94.252,163.909 L94.252,163.909 L95.936,163.909 L95.936,163.909 L97.619,163.909 L97.619,163.909 L97.619,162.897 L97.619,162.897 L99.303,161.886 L99.303,161.886 L97.619,161.886 L97.619,161.886 L95.936,161.886 L95.936,161.886 L94.252,161.886 L94.252,161.886 L92.569,161.886 L92.569,161.886 L90.885,161.886 L90.885,161.886 L89.202,161.886 L89.202,161.886 L85.835,160.874 L85.835,160.874 L84.151,159.862 L84.151,159.862 L82.468,156.826 L82.468,156.826 z"},{"id":"shape:shape:690732cb-3516-6d61-b14b-88bd51355757","type":"path","transform":"","fillColor":"#d58080","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M90.619,156 L90.619,156 L87.252,147 L87.252,147 L93.986,117 L93.986,117 L107.454,103 L107.454,103 L127.657,95 L127.657,95 L157.958,87 L157.958,87 L194.996,85 L194.996,85 L238.768,86 L238.768,86 L257.284,88 L257.284,88 L270.754,96 L270.754,96 L279.172,109 L279.172,109 L285.904,124 L285.904,124 L285.904,139 L285.904,139 L280.853,158 L280.853,158 L274.12,177 L274.12,177 L269.068,195 L269.068,195 L264.021,207 L264.021,207 L257.284,218 L257.284,218 L255.602,222 L255.602,222 L248.869,229 L248.869,229 L245.5,234 L245.5,234 L238.768,237 L238.768,237 L235.4,240 L235.4,240 L228.665,243 L228.665,243 L221.931,246 L221.931,246 L213.515,249 L213.515,249 L203.413,252 L203.413,252 L193.312,255 L193.312,255 L179.846,257 L179.846,257 L166.374,258 L166.374,258 L151.226,259 L151.226,259 L137.757,259 L137.757,259 L127.657,259 L127.657,259 L119.238,259 L119.238,259 L107.454,257 L107.454,257 L99.037,255 L99.037,255 L90.619,252 L90.619,252 L83.885,250 L83.885,250 L80.518,247 L80.518,247 L73.785,244 L73.785,244 L68.734,242 L68.734,242 L63.684,237 L63.684,237 L62,232 L62,232 L63.684,227 L63.684,227 L65.367,223 L65.367,223 L70.417,220 L70.417,220 L73.785,217 L73.785,217 L80.518,214 L80.518,214 L93.986,209 L93.986,209 L104.087,207 L104.087,207 L119.238,203 L119.238,203 L129.339,200 L129.339,200 L166.374,183 L166.374,183 L168.06,179 L168.06,179 L168.06,177 L168.06,177 L168.06,174 L168.06,174 L168.06,171 L168.06,171 L168.06,170 L168.06,170 L168.06,168 L168.06,168 L168.06,166 L168.06,166 L168.06,165 L168.06,165 L168.06,163 L168.06,163 L168.06,162 L168.06,162 L166.374,162 L166.374,162 L164.694,160 L164.694,160 L163.009,159 L163.009,159 L163.009,158 L163.009,158 L161.327,157 L161.327,157 L159.642,157 L159.642,157 L157.958,157 L157.958,157 L156.277,157 L156.277,157 L152.908,158 L152.908,158 L151.226,159 L151.226,159 L149.542,159 L149.542,159 L144.491,161 L144.491,161 L141.122,162 L141.122,162 L139.442,163 L139.442,163 L137.757,163 L137.757,163 L137.757,164 L137.757,164 L136.073,164 L136.073,164 L136.073,165 L136.073,165 L134.39,165 L134.39,165 L131.023,166 L131.023,166 L124.29,167 L124.29,167 L120.921,168 L120.921,168 L112.504,171 L112.504,171 L109.138,172 L109.138,172 L105.771,172 L105.771,172 L104.087,172 L104.087,172 L102.403,172 L102.403,172 L100.721,172 L100.721,172 L99.037,172 L99.037,172 L97.353,172 L97.353,172 L95.67,172 L95.67,172 L90.619,171 L90.619,171 L88.936,171 L88.936,171 L87.252,170 L87.252,170 L85.569,168 L85.569,168 L83.885,168 L83.885,168 L82.202,167 L82.202,167 L80.518,166 L80.518,166 L78.835,165 L78.835,165 L78.835,164 L78.835,164 L78.835,163 L78.835,163 L78.835,162 L78.835,162 L80.518,162 L80.518,162 L82.202,162 L82.202,162 L83.885,162 L83.885,162 L85.569,162 L85.569,162 L87.252,162 L87.252,162 L88.936,162 L88.936,162 L90.619,162 L90.619,162 L90.619,161 L90.619,161 L92.303,160 L92.303,160 L90.619,160 L90.619,160 L88.936,160 L88.936,160 L87.252,160 L87.252,160 L85.569,160 L85.569,160 L83.885,160 L83.885,160 L82.202,160 L82.202,160 L78.835,159 L78.835,159 L77.151,158 L77.151,158 L75.468,155 L75.468,155 z"},{"id":"shape:shape:bbbe20da-b627-2224-61ac-aaeaa05c577c","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M93.619,157 L93.619,157 L90.252,148 L90.252,148 L96.986,118 L96.986,118 L110.454,104 L110.454,104 L130.657,96 L130.657,96 L160.958,88 L160.958,88 L197.996,86 L197.996,86 L241.768,87 L241.768,87 L260.284,89 L260.284,89 L273.754,97 L273.754,97 L282.172,110 L282.172,110 L288.904,125 L288.904,125 L288.904,140 L288.904,140 L283.853,159 L283.853,159 L277.12,178 L277.12,178 L272.068,196 L272.068,196 L267.021,208 L267.021,208 L260.284,219 L260.284,219 L258.602,223 L258.602,223 L251.869,230 L251.869,230 L248.5,235 L248.5,235 L241.768,238 L241.768,238 L238.4,241 L238.4,241 L231.665,244 L231.665,244 L224.931,247 L224.931,247 L216.515,250 L216.515,250 L206.413,253 L206.413,253 L196.312,256 L196.312,256 L182.846,258 L182.846,258 L169.374,259 L169.374,259 L154.226,260 L154.226,260 L140.757,260 L140.757,260 L130.657,260 L130.657,260 L122.238,260 L122.238,260 L110.454,258 L110.454,258 L102.037,256 L102.037,256 L93.619,253 L93.619,253 L86.885,251 L86.885,251 L83.518,248 L83.518,248 L76.785,245 L76.785,245 L71.734,243 L71.734,243 L66.684,238 L66.684,238 L65,233 L65,233 L66.684,228 L66.684,228 L68.367,224 L68.367,224 L73.417,221 L73.417,221 L76.785,218 L76.785,218 L83.518,215 L83.518,215 L96.986,210 L96.986,210 L107.087,208 L107.087,208 L122.238,204 L122.238,204 L132.339,201 L132.339,201 L169.374,184 L169.374,184 L171.06,180 L171.06,180 L171.06,178 L171.06,178 L171.06,175 L171.06,175 L171.06,172 L171.06,172 L171.06,171 L171.06,171 L171.06,169 L171.06,169 L171.06,167 L171.06,167 L171.06,166 L171.06,166 L171.06,164 L171.06,164 L171.06,163 L171.06,163 L169.374,163 L169.374,163 L167.694,161 L167.694,161 L166.009,160 L166.009,160 L166.009,159 L166.009,159 L164.327,158 L164.327,158 L162.642,158 L162.642,158 L160.958,158 L160.958,158 L159.277,158 L159.277,158 L155.908,159 L155.908,159 L154.226,160 L154.226,160 L152.542,160 L152.542,160 L147.491,162 L147.491,162 L144.122,163 L144.122,163 L142.442,164 L142.442,164 L140.757,164 L140.757,164 L140.757,165 L140.757,165 L139.073,165 L139.073,165 L139.073,166 L139.073,166 L137.39,166 L137.39,166 L134.023,167 L134.023,167 L127.29,168 L127.29,168 L123.921,169 L123.921,169 L115.504,172 L115.504,172 L112.138,173 L112.138,173 L108.771,173 L108.771,173 L107.087,173 L107.087,173 L105.403,173 L105.403,173 L103.721,173 L103.721,173 L102.037,173 L102.037,173 L100.353,173 L100.353,173 L98.67,173 L98.67,173 L93.619,172 L93.619,172 L91.936,172 L91.936,172 L90.252,171 L90.252,171 L88.569,169 L88.569,169 L86.885,169 L86.885,169 L85.202,168 L85.202,168 L83.518,167 L83.518,167 L81.835,166 L81.835,166 L81.835,165 L81.835,165 L81.835,164 L81.835,164 L81.835,163 L81.835,163 L83.518,163 L83.518,163 L85.202,163 L85.202,163 L86.885,163 L86.885,163 L88.569,163 L88.569,163 L90.252,163 L90.252,163 L91.936,163 L91.936,163 L93.619,163 L93.619,163 L93.619,162 L93.619,162 L95.303,161 L95.303,161 L93.619,161 L93.619,161 L91.936,161 L91.936,161 L90.252,161 L90.252,161 L88.569,161 L88.569,161 L86.885,161 L86.885,161 L85.202,161 L85.202,161 L81.835,160 L81.835,160 L80.151,159 L80.151,159 L78.468,156 L78.468,156 z"},{"id":"shape:shape:b1a3db48-3257-050c-c3a6-a0018239d500","type":"path","transform":"","fillColor":"#ff8080","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M97.658,154.069 L97.658,154.069 L94.521,145.317 L94.521,145.317 L100.795,116.131 L100.795,116.131 L113.339,102.511 L113.339,102.511 L132.158,94.729 L132.158,94.729 L160.381,86.9457 L160.381,86.9457 L194.881,85 L194.881,85 L235.655,85.9728 L235.655,85.9728 L252.9,87.918 L252.9,87.918 L265.447,95.701 L265.447,95.701 L273.287,108.349 L273.287,108.349 L279.56,122.94 L279.56,122.94 L279.56,137.532 L279.56,137.532 L274.852,156.015 L274.852,156.015 L268.581,174.499 L268.581,174.499 L263.876,192.01 L263.876,192.01 L259.175,203.685 L259.175,203.685 L252.9,214.385 L252.9,214.385 L251.332,218.275 L251.332,218.275 L245.061,225.084 L245.061,225.084 L241.925,229.95 L241.925,229.95 L235.655,232.868 L235.655,232.868 L232.515,235.788 L232.515,235.788 L226.243,238.704 L226.243,238.704 L219.972,241.623 L219.972,241.623 L212.131,244.544 L212.131,244.544 L202.721,247.459 L202.721,247.459 L193.314,250.38 L193.314,250.38 L180.769,252.326 L180.769,252.326 L168.222,253.297 L168.222,253.297 L154.112,254.27 L154.112,254.27 L141.565,254.27 L141.565,254.27 L132.158,254.27 L132.158,254.27 L124.315,254.27 L124.315,254.27 L113.339,252.326 L113.339,252.326 L105.501,250.38 L105.501,250.38 L97.658,247.459 L97.658,247.459 L91.385,245.515 L91.385,245.515 L88.249,242.598 L88.249,242.598 L81.977,239.677 L81.977,239.677 L77.272,237.733 L77.272,237.733 L72.568,232.868 L72.568,232.868 L71,228.004 L71,228.004 L72.568,223.139 L72.568,223.139 L74.136,219.25 L74.136,219.25 L78.84,216.331 L78.84,216.331 L81.977,213.412 L81.977,213.412 L88.249,210.493 L88.249,210.493 L100.795,205.628 L100.795,205.628 L110.203,203.685 L110.203,203.685 L124.315,199.791 L124.315,199.791 L133.723,196.877 L133.723,196.877 L168.222,180.335 L168.222,180.335 L169.792,176.447 L169.792,176.447 L169.792,174.499 L169.792,174.499 L169.792,171.581 L169.792,171.581 L169.792,168.665 L169.792,168.665 L169.792,167.689 L169.792,167.689 L169.792,165.743 L169.792,165.743 L169.792,163.797 L169.792,163.797 L169.792,162.824 L169.792,162.824 L169.792,160.88 L169.792,160.88 L169.792,159.905 L169.792,159.905 L168.222,159.905 L168.222,159.905 L166.657,157.963 L166.657,157.963 L165.087,156.989 L165.087,156.989 L165.087,156.015 L165.087,156.015 L163.518,155.044 L163.518,155.044 L161.95,155.044 L161.95,155.044 L160.381,155.044 L160.381,155.044 L158.816,155.044 L158.816,155.044 L155.677,156.015 L155.677,156.015 L154.112,156.989 L154.112,156.989 L152.541,156.989 L152.541,156.989 L147.838,158.935 L147.838,158.935 L144.7,159.905 L144.7,159.905 L143.133,160.88 L143.133,160.88 L141.565,160.88 L141.565,160.88 L141.565,161.852 L141.565,161.852 L139.997,161.852 L139.997,161.852 L139.997,162.824 L139.997,162.824 L138.429,162.824 L138.429,162.824 L135.291,163.797 L135.291,163.797 L129.021,164.77 L129.021,164.77 L125.88,165.743 L125.88,165.743 L118.043,168.665 L118.043,168.665 L114.908,169.635 L114.908,169.635 L111.772,169.635 L111.772,169.635 L110.203,169.635 L110.203,169.635 L108.632,169.635 L108.632,169.635 L107.07,169.635 L107.07,169.635 L105.501,169.635 L105.501,169.635 L103.93,169.635 L103.93,169.635 L102.363,169.635 L102.363,169.635 L97.658,168.665 L97.658,168.665 L96.09,168.665 L96.09,168.665 L94.521,167.689 L94.521,167.689 L92.954,165.743 L92.954,165.743 L91.385,165.743 L91.385,165.743 L89.817,164.77 L89.817,164.77 L88.249,163.797 L88.249,163.797 L86.681,162.824 L86.681,162.824 L86.681,161.852 L86.681,161.852 L86.681,160.88 L86.681,160.88 L86.681,159.905 L86.681,159.905 L88.249,159.905 L88.249,159.905 L89.817,159.905 L89.817,159.905 L91.385,159.905 L91.385,159.905 L92.954,159.905 L92.954,159.905 L94.521,159.905 L94.521,159.905 L96.09,159.905 L96.09,159.905 L97.658,159.905 L97.658,159.905 L97.658,158.935 L97.658,158.935 L99.226,157.963 L99.226,157.963 L97.658,157.963 L97.658,157.963 L96.09,157.963 L96.09,157.963 L94.521,157.963 L94.521,157.963 L92.954,157.963 L92.954,157.963 L91.385,157.963 L91.385,157.963 L89.817,157.963 L89.817,157.963 L86.681,156.989 L86.681,156.989 L85.113,156.015 L85.113,156.015 L83.545,153.097 L83.545,153.097 z"},{"id":"shape:shape:0e3b8c63-121b-765e-2973-38be57b5339f","type":"path","transform":"","fillColor":"#ffcbaa","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M234,97.7423 C233,97.7423 232,97.7423 231,97.7423 C230,97.7423 229,97.7423 228,97.7423 C226,97.7423 225,96.8391 224,96.8391 C220,96.8391 219,96.8391 218,96.8391 C215,96.8391 212,96.8391 209,96.8391 C205,96.8391 200,96.8391 193,96.8391 C189,96.8391 183,96.8391 179,96.8391 C174,96.8391 171,96.8391 166,96.8391 C162,96.8391 157,96.8391 152,96.8391 C147,96.8391 142,96.8391 141,96.8391 C139,96.8391 138,96.8391 137,96.8391 C136,96.8391 133,97.7423 130,98.6457 C126,100.452 122,103.163 121,104.063 C119,105.872 117,107.679 115,109.484 C113,110.387 112,110.387 111,110.387 C110,111.292 108,113.097 108,113.999 C106,115.806 104,116.71 104,117.613 C103,119.42 103,120.322 102,120.322 C102,122.129 101,122.129 101,123.934 C101,125.742 101,126.645 101,127.549 C101,128.452 101,129.355 101,131.162 C101,132.969 101,133.872 102,135.678 C102,136.58 102,137.484 103,138.387 C104,139.291 104,140.192 104,141.098 C105,141.098 106,141.098 107,141.098 C110,141.098 112,141.098 115,142 C119,142 124,142 125,142 C128,142 133,142 138,142 C146,142 153,139.291 159,136.58 C162,134.773 165,132.066 174,128.452 C183,123.934 194,120.322 201,117.613 C211,115.806 220,113.999 228,113.999 C229,113.999 233,113.999 238,113.999 C242,113.999 245,113.999 248,113.999 C252,113.999 255,113.999 258,113.999 C260,113.097 262,111.292 265,110.387 C265,107.679 265,105.872 265,104.968 C265,104.063 265,103.163 265,102.257 C265,101.356 264,101.356 263,101.356 C263,100.452 262,100.452 261,100.452 C261,99.5481 260,99.5481 259,99.5481 C259,99.5481 259,99.5481 257,98.6457 z"},{"id":"shape:shape:666e4fc0-fc00-ec77-8744-5e93c19e7cdf","type":"path","transform":"","fillColor":"#2b0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M126,138 L126,138 L126,137 L126,137 L126,136 L126,136 L126,135 L126,135 L126,133 L126,133 L126,132 L126,132 L126,130 L126,130 L126,128 L126,128 L127,127 L127,127 L127,126 L127,126 L128,125 L128,125 L129,124 L129,124 L130,124 L130,124 L131,124 L131,124 L132,124 L132,124 L132,125 L132,125 L133,125 L133,125 L133,126 L133,126 L133,127 L133,127 L133,128 L133,128 L134,128 L134,128 L135,129 L135,129 L135,130 L135,130 L136,130 L136,130 L136,131 L136,131 L137,131 L137,131 L138,131 L138,131 L139,131 L139,131 L140,131 L140,131 L142,131 L142,131 L144,131 L144,131 L146,131 L146,131 L148,131 L148,131 L150,131 L150,131 L153,131 L153,131 L154,131 L154,131 L157,131 L157,131 L158,130 L158,130 L159,130 L159,130 L160,130 L160,130 L160,129 L160,129 L159,130 L159,130 L158,130 L158,130 L157,130 L157,130 L156,131 L156,131 L154,131 L154,131 L152,132 L152,132 L151,133 L151,133 L150,133 L150,133 L149,133 L149,133 L147,133 L147,133 L146,133 L146,133 L143,134 L143,134 L140,134 L140,134 L138,135 L138,135 L135,135 L135,135 L134,135 L134,135 L133,135 L133,135 L131,135 L131,135 L129,135 L129,135 L125,136 L125,136 L125,137 L125,137 L125,138 L125,138 L124,138 L124,138 z"},{"id":"shape:shape:9dea1525-39ba-800c-feaa-6aacf78ba0af","type":"path","transform":"","fillColor":"#ffe0aa","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M194,176 L194,177 L194,183 L193,184 L192,191 L191,193 L191,194 L189,197 L186,199 L184,201 L181,202 L177,202 L172,203 L167,205 L159,207 L152,210 L149,213 L143,216 L137,218 L129,220 L121,222 L115,224 L108,226 L103,228 L100,229 L98,230 L96,231 L96,232 L94,232 L94,233 L94,234 L95,235 L95,236 L96,238 L98,241 L100,242 L106,243 L114,246 L120,246 L129,247 L141,248 L153,248 L168,248 L181,245 L191,240 L202,232 L213,227 L223,220 L232,212 L239,201 L242,192 L242,183 L242,176 L241,172 L241,169 L239,165 L238,162 L237,160 L236,158 L232,156 L226,154 L222,154 L217,154 L213,154 L210,154 L206,154 L204,154 L202,155 L200,155 L199,155 L197,156 L196,157 L195,158 L195,159 L194,159 L191,159 L190,159 L189,159 L188,159 L187,159 L185,159 L184,159 L183,159 L182,159 L181,159 L178,159 L175,159 L174,159 L172,159 L170,159 L170,160 L173,161 L178,164 L179,164 L180,165 L184,166 L186,167 L189,168 L190,168 L190,170 L192,172 L193,173 L192,174 z"},{"id":"shape:shape:f51775c4-7dc5-3e1a-b9a1-a891a4861643","type":"path","transform":"","fillColor":"#2b0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M199,135 L199,135 L203,130 L203,130 L220,124 L220,124 L238,120 L238,120 L256,118 L256,118 L277,117 L277,117 L291,115 L291,115 L296,114 L296,114 L309,112 L309,112 L324,109 L324,109 L349,105 L349,105 L366,105 L366,105 L384,102 L384,102 L388,102 L388,102 L397,100 L397,100 L398,100 L398,100 L399,99 L399,99 L398,99 L398,99 L397,101 L397,101 L389,105 L389,105 L378,109 L378,109 L376,110 L376,110 L375,110 L375,110 L365,113 L365,113 L360,113 L360,113 L351,116 L351,116 L346,116 L346,116 L341,117 L341,117 L332,117 L332,117 L318,118 L318,118 L309,119 L309,119 L300,120 L300,120 L291,121 L291,121 L284,122 L284,122 L274,122 L274,122 L268,122 L268,122 L263,122 L263,122 L257,122 L257,122 L253,122 L253,122 L251,122 L251,122 L251,123 L251,123 L250,123 L250,123 L250,124 L250,124 L250,125 L250,125 L250,126 L250,126 L251,126 L251,126 L254,126 L254,126 L262,126 L262,126 L271,127 L271,127 L283,129 L283,129 L299,130 L299,130 L319,133 L319,133 L336,136 L336,136 L355,139 L355,139 L384,142 L384,142 L405,141 L405,141 L425,137 L425,137 L441,133 L441,133 L451,132 L451,132 L452,132 L452,132 L451,132 L451,132 L449,134 L449,134 L445,135 L445,135 L437,137 L437,137 L427,139 L427,139 L414,141 L414,141 L405,141 L405,141 L324,145 L324,145 L314,145 L314,145 L306,145 L306,145 L299,145 L299,145 L287,145 L287,145 L280,145 L280,145 L272,145 L272,145 L268,145 L268,145 L263,145 L263,145 L258,145 L258,145 L251,145 L251,145 L248,145 L248,145 L247,144 L247,144 L246,144 L246,144 L244,143 L244,143 L241,141 L241,141 L240,141 L240,141 L240,140 L240,140 L239,140 L239,140 L240,140 L240,140 L241,140 L241,140 L242,140 L242,140 L246,144 L246,144 L251,149 L251,149 L259,153 L259,153 L267,157 L267,157 L282,162 L282,162 L300,170 L300,170 L320,176 L320,176 L340,183 L340,183 L364,185 L364,185 L375,185 L375,185 L379,185 L379,185 L378,185 L378,185 L334,187 L334,187 L322,187 L322,187 L313,187 L313,187 L307,186 L307,186 L298,185 L298,185 L289,182 L289,182 L279,179 L279,179 L273,176 L273,176 L264,172 L264,172 L258,169 L258,169 L252,166 L252,166 L246,163 L246,163 L239,160 L239,160 L234,158 L234,158 L227,155 L227,155 L222,153 L222,153 L218,152 L218,152 L216,151 L216,151 L213,151 L213,151 L210,151 L210,151 L209,151 L209,151 L207,151 L207,151 L206,151 L206,151 L205,151 L205,151 L203,152 L203,152 z"},{"id":"shape:shape:f1696b26-8812-eadd-359d-0650d6b18f0d","type":"path","transform":"","fillColor":"#f8eaea","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M128,106 L127,107 L125,108 L123,109 L123,110 L123,111 L124,112 L125,112 L126,114 L132,116 L137,117 L141,118 L142,118 L143,118 L146,118 L148,118 L150,118 L151,118 L152,117 L153,116 L154,116 L154,115 L155,114 L154,114 L153,113 L151,111 L148,110 L147,109 L146,109 L144,108 L143,107 L141,106 L140,106 L140,105 L139,105 L138,105 z"},{"id":"shape:shape:489c8cdb-d7d2-4f04-a030-f6bdb3eda592","type":"path","transform":"","fillColor":"#f8eaea","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M217,168 L216,168 L215,168 L213,168 L212,168 L211,168 L210,168 L209,169 L207,170 L207,171 L207,172 L207,173 L207,174 L208,174 L208,175 L209,176 L210,176 L215,177 L216,178 L217,179 L218,181 L220,183 L221,185 L222,187 L222,188 L222,189 L222,190 L222,192 L222,193 L222,196 L222,197 L222,201 L222,202 L222,204 L221,206 L220,208 L218,210 L216,212 L213,214 L210,214 L206,215 L200,217 L197,217 L194,219 L193,219 L191,219 L190,219 L189,219 L189,217 L192,213 L199,210 L206,207 L211,204 L214,201 L214,199 L214,197 L214,195 L214,194 L213,193 z"},{"id":"shape:shape:6205d5d9-fb9f-d95d-3bdd-7dbc3944e91f","type":"path","transform":"","fillColor":"#f8eaea","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M202,132 L202,131 L203,130 L204,129 L206,128 L209,125 L212,124 L215,122 L220,121 L226,120 L232,118 L237,117 L241,116 L242,116 L245,116 L247,116 L250,116 L255,116 L257,116 L258,116 L260,116 L263,116 L264,116 L267,116 L270,116 L271,116 L272,116 L273,116 L274,116 L278,116 L279,116 L280,116 L282,116 L284,116 L289,116 L291,116 L294,116 L297,116 L299,116 L300,116 L300,115 L301,114 L301,113 L302,113 L304,112 L305,111 L306,111 L307,111 L308,111 L309,111 L310,111 L311,111 L312,111 L313,111 L314,111 L319,111 L321,111 L322,111 L323,111 L324,111 L325,110 L326,110 L326,109 L327,109 L328,109 L328,108 L327,109 L326,110 L324,111 L322,112 L321,113 L320,114 L318,115 L315,116 L313,117 L312,117 L311,117 L308,117 L306,117 L304,117 L302,117 L298,117 L294,117 L291,117 L287,118 L283,119 L279,120 L277,120 L275,120 L273,120 L271,121 L268,121 L266,121 L264,121 L262,121 L261,121 L258,121 L254,122 L251,122 L248,122 L245,122 L244,123 L240,124 L239,124 L238,124 L237,124 L235,125 L233,126 L232,126 L229,127 L228,128 L227,128 L225,128 L224,129 L223,129 L221,129 L220,130 L219,131 L218,131 L217,132 L216,132 L216,133 L214,133 L213,133 z"},{"id":"shape:shape:35ff325b-9bf7-ffb5-e0e4-5c05484a6b3e","type":"path","transform":"","fillColor":"#f8eaea","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M228,124 L230,124 L237,124 L242,124 L244,124 L248,124 L250,124 L252,124 L256,124 L258,124 L262,124 L264,124 L265,124 L266,124 L267,124 L268,124 L269,124 L270,124 L271,124 L272,124 L274,125 L275,125 L280,126 L283,127 L287,129 L289,129 L292,130 L295,131 L300,133 L306,135 L308,136 L310,138 L314,139 L315,139 L316,139 L317,139 L318,139 L320,139 L322,139 L323,139 L324,139 L325,139 L329,139 L329,140 L327,140 L327,141 L324,141 L323,141 L322,141 L320,141 L314,141 L312,141 L309,140 L307,140 L305,140 L303,140 L299,140 L297,140 L294,139 L293,139 L291,138 L286,138 L284,137 L279,137 L275,137 L272,136 L269,136 L266,136 L264,135 L260,135 L256,134 L253,134 L249,134 L246,134 L245,134 L243,133 L242,133 L240,133 L238,133 L236,132 L234,132 L232,131 L231,131 L230,131 L229,130 L228,130 L226,129 L223,129 L222,128 L220,128 L219,128 L218,128 L217,128 L216,128 L215,128 L214,129 L213,129 L212,129 L211,129 z"},{"id":"shape:shape:828be9cd-2111-93c3-30e7-6b2401f1643c","type":"path","transform":"","fillColor":"#d5552b","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M86,159 L85,159 L84,159 L84,158 L83,158 L83,157 L82,157 L82,156 L83,156 L84,156 L85,156 L87,156 L88,156 L89,156 L94,156 L97,158 L99,158 L101,158 L104,158 L108,158 L110,158 L111,158 L114,158 L115,158 L116,158 L115,158 L114,158 L113,158 L112,158 L110,158 L108,158 L106,158 L104,158 L102,158 L100,159 L98,159 L96,160 L95,161 L93,161 L92,161 L90,161 L89,161 L88,161 L87,161 L86,161 L87,161 L88,161 L92,161 L96,161 L102,161 L105,161 L110,162 L113,163 L115,163 L116,163 L117,163 L118,163 L119,163 L120,163 L119,164 L118,164 L115,165 L113,166 L110,167 L108,167 L106,168 L104,168 L102,168 L99,168 L97,168 L96,168 L95,168 L94,168 L93,168 L92,168 L91,168 L90,168 L88,168 L87,168 L86,168 L85,168 L84,168 L83,168 L82,168 z"},{"id":"shape:shape:0864464a-e756-56e7-8ed2-a7f6a1ed65ef","type":"path","transform":"rotate(40.7933, 82.855, 229.356)","fillColor":"#803100","lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M90.144,216.74 L88.019,221.181 C86.529,219.874 84.673,219.097 82.662,219.097 C77.761,219.097 73.785,223.703 73.782,229.381 L71.409,229.404 L74.487,235.602 L77.566,241.791 L79.692,237.349 C81.18,238.657 83.036,239.434 85.049,239.434 C89.946,239.434 93.923,234.828 93.926,229.148 L96.301,229.127 L93.223,222.931 L90.144,216.74 z M85.174,223.784 C85.689,223.768 86.185,223.853 86.655,224.025 L84.153,229.232 L87.129,229.21 C87.062,232.212 85.053,234.666 82.534,234.747 C82.018,234.764 81.523,234.677 81.056,234.508 L83.556,229.3 L80.58,229.32 C80.646,226.319 82.657,223.865 85.174,223.784 z"},{"id":"shape:shape:1f109e99-e4bc-984e-c86f-609ccb3ba830","type":"path","transform":"","fillColor":"#e3e4e4","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M715,87 L714,87 z"},{"id":"shape:shape:da1367fc-1549-3372-fd3c-826bd04c2be2","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M27,375 L27,374 L41,364 L55,353 L59,346 L59,344 L59,345 L59,349 L58,354 L58,357 L59,356 L77,348 L83,342 L84,342 L84,343 L81,349 L75,356 L73,364 L73,371 L74,375"},{"id":"shape:shape:4ae4d650-e61e-601a-27e0-de77ce4baf35","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"MNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN LNaN,NaN "},{"id":"shape:shape:51d43970-ddb0-d82d-59b6-36745020ad64","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M141,364 C142,364 145,362 146,361 C145,361 144,361 144,360 C144,359 145,359 146,359 C149,361 151,362 152,362 C152,363 152,364 152,367 C150,371 149,375 149,376 C149,378 150,378 155,378 C161,375 162,373 161,371 C160,371 160,370 161,370 C164,369 172,369 174,369 C178,368 178,366 178,364 C175,362 171,362 167,364 C165,365 164,367 164,369 C164,371 165,373 166,374 C170,374 180,374 182,372 C184,368 187,366 190,363 C189,363 185,365 183,366 C182,367 182,371 184,373 C184,374 187,374 195,373 C198,368 201,364 202,363 C202,364 201,365 201,366 C201,367 200,368 200,369 C200,371 200,372 201,372 C202,372 206,372 210,370 C210,367 211,365 211,363 C211,362 211,363 210,367 C208,372 205,376 201,380 C197,384 193,386 190,387 C187,387 185,386 187,381 C192,379 203,379 216,378 C217,375 224,369 226,365 C227,364 229,363 228,363 C225,363 223,366 222,369 C222,370 222,371 224,371 C227,371 234,371 235,371 C236,371 236,370 237,369 C238,367 244,361 246,354 C245,348 243,345 242,346 C242,351 242,361 242,369 C242,374 242,376 243,377 C246,376 248,374 249,373 C251,372 251,371 252,371 C257,370 263,370 267,370 C268,368 268,364 264,360 C260,358 258,360 255,364 C268,368 272,367 271,367 C274,366 282,365 288,365 C289,364 290,364 291,364 C290,364 285,361 280,361 C277,363 275,365 275,369 C275,372 279,375 282,374 C288,370 288,366 288,364 C288,363 295,355 297,347 C297,344 297,343 297,344 C295,352 292,363 292,369 C292,370 296,371 308,371 C315,371 322,371 322,370"},{"id":"shape:shape:5c36b19f-d455-294b-8d4b-80b65790d2c4","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M348,360 L349,360 L364,358 L367,358 L368,359 L370,362 L370,365 L370,368 L370,371 L369,373 L368,373 L367,373 L367,372 L367,370 L370,367 L376,365 L380,364 L384,363 L387,362 L392,362 L394,362 L395,364 L395,367 L395,370 L394,373 L393,373 L392,373 L392,372 L392,368 L394,367 L398,365 L402,365 L404,365 L405,365 L406,366 L407,368 L408,371 L408,373 L408,375 L409,377 L412,378 L415,377 L420,373 L424,370 L426,369 L427,368 L427,369 L425,371 L425,373 L425,374 L426,374 L427,374 L429,374 L434,374 L435,372 L435,370 L435,368 L435,366 L433,364 L429,363 L428,364 L428,365 L429,365 L432,365 L436,365 L451,365 L453,366 L453,367 L453,368 L453,370 L453,371 L452,371 L451,371 L451,370 L451,367 L453,364 L461,364 L465,364 L466,364 L466,365 L466,367 L466,369 L466,370 L466,372 L466,373 L466,372 L466,370 L467,366 L469,365 L471,365 L473,364 L477,364 L481,364 L481,365 L481,366 L481,367 L481,370 L480,373 L478,373 L477,373 L478,373 L484,372 L486,370 L488,364 L492,358 L493,354 L493,351 L493,347 L493,346 L493,347 L493,350 L493,356 L493,362 L494,365 L494,367 L494,369 L494,372 L494,373 L495,373 L503,373 L506,373 L507,371 L507,370 L506,370 L505,370 L504,367 L503,366 L500,364 L500,363 L502,363 L501,363 L507,363 L516,363 L517,363 L519,363 L524,363 L526,363 L526,361 L525,360 L522,356 L519,356 L513,357 L510,360 L510,361 L510,364 L510,366 L510,368 L510,370 L512,371 L518,371 L522,369 L530,365 L542,365 L544,364 L545,364 L545,362 L545,361 L545,360 L543,359 L542,359 L540,359 L540,360 L540,361 L540,362 L541,362 L543,362 L548,364 L550,366 L550,367 L550,368 L550,369 L550,370 L551,371 L552,371 L555,371 L559,371 L562,371 L561,371 L558,369"},{"id":"shape:shape:569acc72-fe23-f020-0cd5-b2a2b631eb98","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M88.0542,359.605 L87.5398,359.605 L87.0255,363.286 L87.0255,366.962 L87.0255,368.803 L87.0255,369.714 L88.57,370.648 L90.1143,370.648 L92.1739,370.648 L94.2317,370.648 L95.2617,369.714 L96.2924,366.962 L96.8067,366.046 L97.325,363.286 L97.325,362.361 L97.325,361.438 L97.325,360.54 L97.8366,360.54 L96.8067,363.286 L92.6873,372.486 L89.0844,378.002 L85.9939,383.512 L83.9351,385.359 L81.3617,385.359 L79.3007,385.359 L76.7272,384.439 L76.2129,384.439 L76.7272,382.596 L81.8774,378.922 L88.0542,377.07 L90.1143,377.07 L95.778,378.002 L98.8639,378.002 L101.439,378.002 L101.956,378.002"},{"id":"shape:0d53abb2-690e-4b5f-ef63-618edd0c2748","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M487,352 L488,352 L508,349 L510,349 L511,348 L512,348 L512,347 L513,347"}] +[{type:"doc", left:0, top:0, width:600, height:400, viewBox:"0 0 200 200"}, {"id":"shape:shape:shape:91147b3e-1c05-cbb7-660b-2827cd3832a5","type":"rect","transform":"","fillColor":"#0088ff","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":-6,"top":-5,"width":610,"height":408},{"id":"shape:shape:shape:e57e0836-a53d-3d33-63e0-2a5a182ff24b","type":"path","transform":"","fillColor":"#8b55aa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-20,180 L-19,180 L-15,180 L-1,180 L12,180 L25,180 L45,180 L67,180 L91,180 L112,180 L139,181 L160,186 L177,187 L196,190 L217,193 L234,193 L248,190 L249,190 L250,190 L251,190 L255,189 L256,189 L260,187 L261,184 L261,181 L262,180 L264,178 L270,176 L277,176 L280,176 L285,176 L294,176 L301,177 L314,179 L332,180 L363,181 L399,181 L436,181 L475,186 L505,186 L526,186 L530,185 L531,184 L534,184 L534,185 L537,190 L542,195 L543,195 L547,195 L553,196 L557,196 L565,196 L575,196 L578,196 L585,196 L592,196 L599,198 L606,200 L614,201 L617,202 L619,202 L621,202 L621,203 L620,203 L622,205 L625,207 L629,211 L631,220 L631,226 L631,227 L632,227 L632,228 L632,230 L635,242 L637,260 L642,289 L646,326 L647,349 L649,360 L652,371 L652,385 L650,405 L649,406 L650,404 L650,403 L640,411 L634,416 L625,419 L617,421 L604,421 L576,421 L549,419 L520,419 L489,421 L468,425 L444,427 L434,427 L433,427 L421,426 L389,424 L364,423 L340,422 L309,422 L275,422 L248,418 L205,410 L181,408 L158,408 L136,408 L117,408 L104,408 L103,408 L93,408 L88,407 L75,407 L63,407 L58,407 L59,405 L58,406 L53,407 L48,407 L37,407 L30,408 L20,408 L11,408 L8,408 L-8,405 L-9,405 L-12,404 L-23,403 L-22,403 z"},{"id":"shape:shape:fae831bd-f8a9-0aef-e05a-a2d43217ca6a","type":"path","transform":"","fillColor":"#ffa100","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-10,229 L-8,228 L12,227 L30,227 L45,225 L64,223 L73,222 L94,222 L126,223 L148,225 L174,232 L197,237 L212,237 L235,237 L258,231 L284,227 L310,227 L328,227 L332,227 L332,228 L333,228 L337,227 L359,227 L382,227 L405,229 L425,229 L449,230 L479,232 L499,232 L514,232 L530,232 L546,232 L550,234 L554,238 L557,240 L561,242 L565,245 L569,247 L574,250 L585,255 L599,259 L614,259 L624,259 L627,259 L631,259 L632,259 L631,259 L630,259 L630,260 L617,277 L596,282 L565,282 L533,282 L502,282 L470,283 L425,288 L378,292 L336,292 L338,299 L338,298 L339,298 L320,297 L282,298 L249,298 L235,299 L205,300 L177,300 L136,292 L102,292 L79,292 L54,291 L31,290 L13,288 L5,287 L-5,284 L-10,283 L-14,282 L-17,279 L-19,277 L-22,274 L-23,273 L-23,272 L-23,268 L-22,262 L-22,258 L-25,253 L-25,249 L-24,244 L-24,240 L-25,236 L-25,234 L-25,232 L-26,230 L-27,229 L-27,228 z"},{"id":"shape:shape:f3546758-b60c-fe82-01ee-3a8789c98bd3","type":"path","transform":"","fillColor":"#805b55","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M515,258 L515,256 L515,243 L515,235 L515,225 L515,213 L515,208 L515,205 L515,204 L515,203 L515,202 L515,200 L516,199 L516,198 L517,198 L519,198 L522,198 L524,198 L526,198 L528,196 L530,196 L530,197 L530,200 L528,206 L528,210 L528,214 L528,218 L528,223 L528,229 L528,232 L528,237 L528,244 L528,251 L529,253 L530,255 L530,259 L530,260 L530,262 L529,264 L529,266 L528,267 L527,268 L527,269 L527,270 L526,271 L524,271 L521,271 L517,271 L514,271 L511,271 L510,271 L509,271 L508,271 L507,271 L506,271 L506,270 L506,267 L506,265 L506,264 L506,263 L508,260 L509,259 L510,258 L511,258 L511,257 L512,257 L513,256 L514,256 z"},{"id":"shape:shape:shape:750cd9c2-2bf9-19af-2e28-0a0dd65ff407","type":"path","transform":"","fillColor":"#d5c12b","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-38,317 L-38,315 L-34,299 L-22,282 L-1,268 L31,258 L48,257 L83,260 L124,267 L158,273 L197,279 L198,279 L199,279 L200,279 L205,279 L213,277 L226,275 L236,272 L247,268 L270,266 L310,261 L349,257 L381,254 L422,247 L464,247 L487,249 L507,252 L504,253 L505,253 L509,253 L514,253 L548,256 L570,256 L587,255 L600,253 L627,253 L635,253 L645,253 L648,254 L648,255 L648,260 L648,264 L648,267 L648,272 L653,299 L661,357 L661,395 L661,401 L661,405 L662,406 L662,405 z"},{"id":"shape:shape:ee708dc4-b885-ac06-2b53-1b881ee0a547","type":"path","transform":"","fillColor":"#d5d0aa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M563,254 L563,255 L551,255 L548,255 L542,257 L536,257 L531,257 L528,257 L526,257 L523,257 L522,257 L521,257 L520,257 L519,257 L517,258 L513,259 L511,259 L510,259 L508,260 L508,261 L508,262 L508,263 L509,266 L509,268 L507,270 L494,272 L486,272 L471,273 L447,282 L426,291 L410,296 L390,300 L371,300 L357,301 L352,301 L345,301 L341,302 L337,303 L329,305 L324,305 L319,305 L289,313 L284,315 L281,317 L279,319 L278,319 L276,319 L272,320 L269,321 L267,321 L265,321 L262,322 L261,322 L260,323 L259,323 L258,323 L256,323 L254,323 L253,324 L252,324 L249,325 L248,326 L247,328 L246,329 L246,330 L251,332 L256,332 L260,335 L265,339 L266,339 L269,339 L279,346 L280,346 L286,347 L298,351 L304,351 L308,352 L310,352 L313,352 L314,352 L318,349 L325,344 L326,339 L331,337 L335,336 L341,332 L346,327 L353,326 L357,325 L367,324 L372,324 L385,324 L396,324 L407,322 L418,319 L425,315 L437,311 L445,306 L453,300 L458,298 L468,296 L475,294 L481,294 L490,292 L495,290 L503,286 L510,282 L512,279 L516,275 L519,272 L520,271 L521,270 L521,268 L521,266 L521,265 L522,265 L523,264 L528,264 L529,264 L530,264 L532,264 L535,264 L536,264 L540,264 L543,262 L550,260 L552,260 L555,260 L556,260 L559,260 L560,260 L564,260 L569,260 L570,260 L571,260 L573,259 L574,258 L575,258 L576,256 L577,255 L577,254 L578,254"},{"id":"shape:shape:68dd586d-2a11-dfb6-8e61-67b873e5a1d8","type":"ellipse","transform":"","fillColor":"#ff3f00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":36,"height":26,"left":496,"top":346},{"id":"shape:shape:6380c037-e4a1-3f94-f048-fe70e3bb6944","type":"rect","transform":"","fillColor":"#ffdf80","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":541,"top":211,"width":53,"height":45},{"id":"shape:shape:90565f78-8fcd-37e6-9ac6-f8e1e6fa7b9e","type":"path","transform":"","fillColor":"#d56a00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M410,255 L411,254 L414,244 L414,238 L414,232 L416,223 L419,216 L420,213 L420,212 L420,211 L420,210 L420,209 L420,206 L420,201 L420,197 L420,193 L420,192 L420,189 L421,189 L422,188 L426,188 L434,188 L436,188 L437,188 L437,191 L437,197 L437,205 L436,215 L436,221 L436,229 L436,234 L435,238 L433,240 L429,245 L428,247 L427,250 L426,253 L424,257 L424,258 L424,259 L424,260 z"},{"id":"shape:shape:73b8e958-2710-1ac8-5598-903d9360adc1","type":"path","transform":"","fillColor":"#00d56c","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M421,201 L419,201 L410,196 L405,190 L404,188 L404,183 L400,176 L395,170 L395,168 L398,163 L399,159 L397,155 L395,149 L397,139 L401,135 L404,135 L404,134 L401,128 L410,118 L436,111 L444,110 L446,110 L447,111 L453,113 L460,117 L459,123 L451,131 L449,136 L449,137 L450,137 L454,137 L461,139 L464,140 L470,147 L474,155 L475,160 L475,162 L475,163 L479,168 L483,171 L481,176 L475,183 L475,184 L480,191 L481,194 L478,198 L473,202 L468,202 L467,203 L464,206 L459,210 L449,213 L441,213 L437,213 L436,213 L434,213 L433,213 L432,213 L429,213 z"},{"id":"shape:shape:8c790adb-bcd4-01ea-47ff-cb07c9e5e0a4","type":"rect","transform":"","fillColor":"#d51c00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":564,"top":229,"width":10,"height":26},{"id":"shape:shape:shape:d3652ad8-f29b-7d6b-9163-9a4b9239fd5b","type":"path","transform":"","fillColor":"#58aa2b","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M-77,361 L-76,360 L-73,341 L-70,335 L-66,327 L-42,313 L-19,300 L11,293 L32,297 L61,298 L101,311 L137,316 L138,316 L140,311 L171,313 L224,318 L262,325 L302,339 L368,351 L451,365 L452,365 L453,364 L456,364 L467,365 L497,367 L554,375 L639,389 L654,389 L665,389 L679,389 L685,389 L693,391 L694,394 L696,398 L697,398 L699,404 L700,414 L700,416 L701,420 L701,424 L699,425 L698,426 L679,437 L646,435 L634,436 L622,434 L602,434 L574,434 L512,433 L510,433 L509,433 L501,431 L501,430 L466,426 L436,426 L374,426 L320,430 L292,433 L280,437 L263,431 L232,424 L203,417 L178,415 L155,415 L149,415 L147,415 L146,415 L121,415 L81,417 L64,416 L63,414 L29,411 L1,408 L-7.95779e-13,408 L-7.95779e-13,407 L-14,403 L-28,403 L-31,402 L-33,401 L-36,401 L-43,401 L-44,401 L-45,401 L-47,401 L-48,401 z"},{"id":"shape:shape:shape:8133762b-ac9d-62be-326c-d893874351a5","type":"path","transform":"","fillColor":"#007777","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M469,269 L469,267 L469,260 L470,254 L475,245 L483,239 L492,232 L500,227 L508,223 L514,220 L521,217 L528,214 L532,212 L535,209 L537,207 L538,206 L538,205 L538,206 L537,207 L537,208 L535,210 L533,213 L530,219 L528,223 L525,228 L524,231 L521,234 L519,238 L516,241 L514,244 L513,246 L510,249 L508,252 L504,256 L501,257 L499,259 L495,259 L492,260 L489,260 L488,260 L485,261 L482,261 L480,261 L479,261 L477,261 L476,261 L475,262 L474,263 L473,263 L473,264 L472,264 L472,265 L471,265 L471,266 L470,267 L470,268 z"},{"id":"shape:shape:shape:63eea63e-3cc4-cd46-b27f-8e2d276886ef","type":"path","transform":"","fillColor":"#007733","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M470,232 L469,232 L467,228 L465,226 L461,223 L459,220 L457,216 L455,213 L453,209 L450,204 L448,197 L446,193 L446,188 L445,183 L445,179 L445,176 L445,171 L445,168 L446,166 L446,164 L446,163 L446,161 L446,162 L446,165 L447,168 L448,171 L449,174 L452,180 L453,184 L454,188 L455,191 L458,195 L459,196 L462,200 L465,204 L467,206 L467,208 L468,210 L468,212 L468,213 L468,215 L468,216 L468,218 L468,219 L468,220 L468,221 L468,222 L468,224 L468,225 z"},{"id":"shape:shape:shape:73843aa5-9b8f-fbca-c680-1f6e4979bd73","type":"path","transform":"","fillColor":"#779900","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M454,313 L454,312 L455,305 L455,298 L453,290 L449,281 L449,279 L446,272 L442,266 L439,262 L437,259 L434,256 L431,253 L428,251 L426,249 L423,246 L421,242 L419,241 L418,240 L417,239 L416,238 L417,238 L417,240 L417,241 L417,244 L418,249 L421,256 L424,264 L426,270 L429,276 L434,281 L439,288 L443,292 L447,297 L449,300 L450,303 L450,307 L450,308 L450,309 L450,310 L450,311 L451,311 z"},{"id":"shape:shape:shape:75e96be1-f017-b17b-de17-c8a7caaa0cec","type":"path","transform":"","fillColor":"#558800","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M263,349 L263,348 L257,340 L253,336 L249,330 L241,325 L234,320 L229,316 L221,308 L208,294 L195,278 L192,273 L191,271 L191,270 L192,270 L193,271 L193,272 L193,275 L193,277 L193,279 L193,280 L195,286 L200,297 L206,308 L211,318 L217,328 L224,336 L228,340 L235,346 L242,350 L245,352 L251,355 L252,355 L255,357 L258,361 L260,362 L261,362 L262,362 L263,362 L265,364 L268,365 L270,367 L270,368 L270,369 L270,370 z"},{"id":"shape:shape:shape:3975e04e-2089-3701-f22b-ea0ce25fe2a4","type":"path","transform":"","fillColor":"#007733","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M272,404 L272,403 L273,394 L276,388 L279,380 L283,370 L291,359 L298,352 L318,340 L331,334 L335,331 L338,328 L338,326 L339,326 L339,325 L339,326 L338,327 L338,329 L338,331 L335,336 L333,340 L328,344 L323,350 L320,353 L315,356 L311,359 L308,362 L303,366 L299,369 L297,371 L294,375 L291,378 L289,379 L288,380 L287,382 L286,383 L284,385 L282,386 L281,387 L280,389 L280,390 z"},{"id":"shape:shape:shape:fce1ba5d-3ba8-f35e-4272-f7507f5217cd","type":"path","transform":"","fillColor":"#007733","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M355,249 L354,248 L350,245 L347,242 L341,237 L337,234 L334,230 L332,226 L327,221 L323,214 L319,210 L317,206 L314,202 L313,199 L310,195 L309,193 L308,192 L308,191 L307,191 L307,192 L306,196 L306,201 L306,207 L306,215 L308,223 L310,231 L314,241 L319,246 L322,250 L327,256 L330,261 L335,267 L337,269 L341,273 L344,276 L349,280 L351,283 L353,287 L355,289 L359,295 L362,298 L365,303 L367,306 L370,308 L371,309 L371,310 L375,312 L380,315 L383,317 L387,319 L388,319 L387,318 L386,315 L384,313 L383,311 L381,308 L381,306 L378,304 L375,298 L372,294 L371,289 L370,284 L368,280 L368,277 L368,274 L367,271 L365,267 L365,266 L364,264 L363,261 L362,260 L362,258 L362,257 L362,256 L361,256 L361,255 L360,255 L360,254 L360,253 z"},{"id":"shape:shape:shape:a58a92af-e5b7-17d2-3293-975ce462520a","type":"path","transform":"","fillColor":"#638000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M379,278 L379,277 L382,269 L384,265 L387,262 L391,256 L392,255 L396,251 L402,247 L405,244 L409,240 L412,236 L413,233 L413,231 L414,229 L414,228 L414,227 L414,225 L414,224 L414,222 L414,220 L414,216 L414,213 L414,211 L414,210 L414,207 L414,204 L414,203 L414,202 L414,201 L414,200 L414,199 L414,198 L414,197 L414,196 L414,197 L412,199 L410,202 L407,206 L405,208 L402,213 L400,216 L398,219 L394,223 L390,228 L385,235 L381,240 L379,246 L376,251 L375,257 L374,259 L374,262 L374,264 L374,267 L374,268 L374,269 L375,269 L375,270 L375,271 z"},{"id":"shape:shape:shape:6780e686-414e-dc36-ce3d-8299018e40bb","type":"path","transform":"","fillColor":"#779900","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M404,320 L404,319 L406,298 L411,284 L418,263 L421,253 L432,238 L441,228 L442,226 L447,219 L450,216 L453,213 L453,212 L453,213 L453,216 L453,222 L453,228 L452,239 L448,255 L442,275 L437,288 L432,299 L428,308 L424,317 L421,324 L420,327 L417,331 L414,334 L411,338 L408,341 L407,342 L406,344 L404,347 L402,349 L402,350 L402,352 L401,353 L401,354 L400,354 z"},{"id":"shape:shape:shape:3ddf760a-e399-d24f-6cde-82581398197b","type":"path","transform":"","fillColor":"#00ff00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M190,239 L191,239 L197,230 L202,225 L209,217 L217,211 L229,205 L238,198 L243,194 L247,192 L249,190 L252,187 L254,185 L254,184 L255,184 L255,186 L254,189 L253,192 L250,198 L247,205 L243,211 L239,215 L235,220 L231,224 L229,228 L225,231 L220,234 L216,236 L211,237 L206,238 L202,239 L200,240 L199,241 L196,242 L194,245 L192,246 L190,248 L188,249 L185,250 L184,252 L182,254 z"},{"id":"shape:shape:shape:d2ef12f0-377e-be99-e94f-2ccd03cafa5a","type":"path","transform":"","fillColor":"#00ff00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M178,305 L177,303 L176,289 L175,269 L166,232 L164,212 L163,189 L162,181 L162,178 L163,178 L164,178 L165,184 L167,192 L173,205 L179,221 L184,233 L186,244 L189,258 L191,265 L192,272 L192,281 L192,286 L192,291 L189,297 L189,302 L188,306 L188,309 L187,311 L187,314 L187,317 L185,322 L184,324 L183,327 L182,330 L182,331 L182,333 L182,334 L181,333 z"},{"id":"shape:shape:shape:418a5cf3-f82b-8c11-1416-c92d05728d4c","type":"path","transform":"","fillColor":"#99ffff","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M119,25 L116,24 L111,24 L106,23 L101,23 L98,23 L96,23 L95,23 L94,23 L92,23 L88,23 L86,23 L85,23 L84,24 L83,24 L82,25 L79,26 L77,27 L76,28 L75,28 L74,29 L73,30 L72,30 L70,32 L69,34 L67,36 L66,37 L66,38 L65,40 L65,41 L65,42 L65,43 L66,44 L66,45 L67,45 L68,46 L68,47 L70,47 L71,48 L75,49 L77,49 L81,50 L84,52 L87,53 L92,53 L95,53 L96,53 L97,53 L97,54 L97,55 L96,55 L96,57 L96,58 L96,60 L96,62 L96,63 L97,63 L98,65 L101,67 L103,68 L106,68 L108,69 L113,70 L119,71 L127,72 L136,72 L144,72 L153,73 L160,73 L169,73 L176,73 L185,73 L192,73 L198,72 L201,71 L202,70 L205,68 L206,67 L206,66 L206,65 L206,64 L205,64 L204,62 L203,61 L201,60 L199,59 L198,58 L195,56 L192,56 L193,56 L195,56 L198,56 L202,56 L204,56 L209,56 L215,56 L220,56 L223,56 L227,56 L232,57 L236,57 L238,57 L240,57 L242,57 L244,56 L245,56 L247,55 L248,54 L249,53 L250,53 L250,52 L250,51 L250,50 L250,49 L249,48 L248,47 L246,46 L244,45 L242,42 L240,40 L240,39 L241,39 L244,39 L249,39 L254,39 L257,39 L259,39 L260,39 L261,38 L262,37 L264,36 L265,34 L266,34 L266,33 L266,32 L265,32 L263,30 L261,28 L258,27 L256,27 L254,26 L251,26 L250,25 L245,24 L243,24 L240,23 L237,23 L234,23 L230,23 L225,23 L221,23 L217,23 L214,23 L211,23 L208,23 L206,23 L202,23 L200,23 L197,23 L196,23 L192,23 L189,23 L187,23 L186,23 L185,23 L185,22 L186,21 L187,21 L187,20 L186,20 L183,20 L179,19 L174,19 L166,19 L161,19 L156,19 L153,19 L150,19 L147,19 L146,19 L144,19 L143,19 L141,19 L139,19 L137,19 L133,19 L132,19 L131,19 L129,19 L128,19 L127,19 z"},{"id":"shape:shape:shape:3a52f9a9-1a90-cd6e-adaf-f059f87a7f59","type":"path","transform":"","fillColor":"#99ffff","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M432,115 L430,114 L416,111 L407,109 L399,106 L395,104 L388,101 L384,99 L380,97 L376,94 L372,92 L371,90 L370,88 L370,86 L371,82 L375,79 L381,76 L389,74 L397,73 L403,73 L408,73 L410,73 L412,74 L414,74 L413,74 L412,74 L412,73 L411,72 L411,71 L413,70 L422,68 L429,67 L434,67 L441,67 L447,67 L453,67 L460,67 L465,68 L468,69 L474,71 L477,72 L478,72 L478,73 L479,73 L482,72 L486,70 L493,68 L501,67 L510,67 L523,67 L539,69 L544,69 L547,69 L550,70 L554,72 L558,73 L559,74 L559,75 L558,76 L556,77 L554,79 L554,82 L553,82 L552,82 L553,82 L559,82 L565,82 L570,83 L576,85 L583,88 L592,92 L605,97 L610,99 L611,100 L611,101 L611,102 L611,103 L611,104 L611,105 L611,107 L610,109 L609,111 L608,111 L607,112 L605,112 L605,113 L604,113 L603,114 L602,114 L601,114 L600,114 L597,115 L595,115 L592,115 L591,115 L587,115 L582,115 L577,115 L575,115 L574,115 L572,115 L570,115 L568,115 L565,115 L562,115 L558,115 L555,115 L551,115 L546,115 L541,115 L534,115 L528,115 L524,115 L520,115 L516,115 L512,115 L509,115 L505,115 L503,115 L501,115 L498,115 L495,115 L491,115 L490,115 L488,115 L486,115 L484,116 L481,116 L479,116 L478,116 L477,116 L475,116 L474,116 L473,116 L472,116 L460,117 L458,117 L457,117 L456,117 L455,117 L454,117 L453,118 L452,118 L451,119 L451,118 L451,117 z"},{"id":"shape:shape:shape:032bb231-be40-505e-8a55-50ac0aaf51fe","type":"path","transform":"","fillColor":"#00ffaa","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M62,139 L61,139 L57,138 L50,135 L42,133 L37,130 L30,126 L28,125 L28,124 L34,124 L40,124 L52,124 L64,124 L72,124 L78,124 L80,124 L81,124 L82,124 L85,122 L95,122 L109,122 L124,123 L135,124 L147,125 L157,126 L158,127 L159,127 L160,128 L172,132 L175,133 L176,133 L176,134 L176,135 L174,137 L171,138 L167,138 L163,138 L160,137 L159,137 L158,137 L157,137 L153,137 L147,137 L141,137 L138,136 L132,136 L129,136 L126,136 L121,135 L119,134 L118,134 L116,134 L114,134 L114,135 L116,137 L117,138 L117,139 L117,140 L115,141 L111,141 L105,141 L102,141 L98,141 L95,141 L92,141 L90,141 L88,141 L86,140 L84,140 L81,140 L82,140 L82,141 L82,142 L82,143 L80,143 L77,143 L74,143 L73,143 L71,143 L70,143 L67,143 L66,143 L63,143 L61,143 L56,143 L54,143 L52,143 L50,143 L49,143 L49,141 L50,141 L51,140 L52,140 L53,140 L54,140 L54,139 L55,139 z"},{"id":"shape:shape:shape:6dc9b7d4-a027-4f8e-b427-00f05485a938","type":"path","transform":"","fillColor":"#00ff00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M201,166 L200,167 L198,170 L196,172 L193,176 L191,179 L190,180 L187,185 L183,190 L183,195 L182,198 L182,202 L182,206 L182,208 L182,211 L182,214 L182,218 L182,222 L182,228 L182,233 L182,238 L182,242 L183,246 L183,253 L184,263 L185,275 L185,285 L185,295 L185,307 L185,315 L184,324 L184,331 L184,340 L183,348 L180,357 L178,362 L178,365 L176,368 L174,372 L173,373 L170,377 L167,381 L166,383 L166,384 L165,384 L165,385 L163,387 L162,389 L161,389 L161,390 L160,390 L159,391 L157,391 L154,393 L151,395 L150,397 L148,401 L148,402 L147,402 L146,402 L147,402 L148,402 L153,403 L154,403 L156,403 L162,405 L163,404 L166,398 L173,392 L178,386 L183,382 L186,379 L189,372 L192,366 L193,359 L193,354 L195,345 L195,337 L195,332 L195,326 L195,319 L195,311 L195,303 L195,297 L195,290 L195,286 L195,280 L195,275 L195,268 L196,261 L196,256 L196,250 L196,244 L196,237 L196,233 L195,228 L195,226 L195,223 L195,222 L194,217 L194,213 L195,198 L195,193 L195,192 L195,189 L196,185 L197,185 L198,183 L200,181 L201,180 L205,178 L211,174 L212,173 L213,173 z"},{"id":"shape:shape:2716ec87-7614-e90f-59e7-73fab586ac34","type":"path","transform":"","fillColor":"#00ff41","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M513,205 L512,205 L505,205 L501,204 L499,201 L496,198 L496,194 L496,190 L492,186 L483,180 L479,177 L477,173 L477,167 L479,164 L480,162 L478,159 L472,153 L469,148 L471,140 L479,133 L485,130 L490,129 L492,127 L497,124 L509,121 L516,120 L517,120 L518,120 L530,120 L536,118 L537,118 L540,122 L542,125 L544,126 L548,129 L552,133 L552,135 L552,136 L550,136 L550,137 L553,143 L559,153 L560,160 L554,169 L550,176 L550,180 L553,185 L554,186 L554,189 L553,193 L552,196 L551,197 L550,200 L547,201 L544,204 L541,204 L539,204 L534,204 L532,204 L531,204 L528,204 L526,204 L525,204 L524,204 L524,205 L523,206 L523,209 L523,210 L523,211 L523,212 L522,212 z"},{"id":"shape:shape:shape:16f3accc-875e-9780-4866-f167a8e5d4b6","type":"path","transform":"","fillColor":"#88ff00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M265,307 L264,307 L260,317 L258,323 L258,327 L259,330 L259,332 L259,335 L259,338 L259,341 L259,347 L261,354 L263,361 L263,365 L264,373 L264,378 L264,380 L264,384 L264,388 L264,391 L264,394 L264,398 L264,403 L264,406 L264,407 L262,410 L262,411 L263,411 L264,411 L265,411 L266,411 L268,411 L269,411 L272,411 L273,411 L274,411 L275,411 L276,410 L276,409 L276,408 L276,407 L276,405 L276,403 L276,399 L276,394 L276,388 L274,382 L274,372 L274,363 L273,355 L273,349 L272,344 L272,338 L272,332 L272,325 L272,320 L272,315 L272,311 L272,308 L272,306 L272,305 z"},{"id":"shape:shape:shape:2845b71e-6e0e-65fe-e036-221f21b8e053","type":"path","transform":"","fillColor":"#007733","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M260,325 L260,324 L251,315 L250,312 L250,310 L251,307 L253,304 L253,301 L253,299 L253,298 L253,297 L255,297 L257,297 L260,298 L263,298 L267,298 L270,298 L273,299 L276,300 L278,300 L279,300 L280,300 L281,300 L282,300 L282,301 L282,304 L282,309 L282,314 L281,316 L279,321 L277,323 L273,324 L271,325 L270,325 L269,325 L269,326 L270,325 L271,324 z"},{"id":"shape:shape:shape:d2ebeb98-2f86-55aa-e139-4b515d1af9f6","type":"path","transform":"","fillColor":"#55b055","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M375,174 L375,175 L370,181 L368,188 L366,193 L365,196 L365,198 L365,201 L365,202 L365,206 L364,210 L364,214 L364,218 L364,221 L364,224 L364,228 L364,232 L364,237 L364,240 L364,246 L364,252 L364,258 L364,265 L365,271 L366,277 L368,281 L369,287 L372,295 L376,304 L377,311 L383,322 L388,332 L393,343 L398,356 L402,367 L405,378 L407,388 L408,394 L408,397 L408,398 L408,401 L408,403 L408,404 L408,405 L408,406 L409,406 L411,406 L414,406 L417,406 L418,406 L418,405 L418,404 L418,403 L418,402 L418,401 L418,398 L418,394 L418,388 L418,383 L417,379 L415,376 L413,372 L411,368 L408,363 L407,359 L406,354 L405,349 L403,344 L402,340 L401,336 L398,332 L397,327 L396,324 L395,320 L394,316 L391,312 L388,308 L385,304 L382,300 L380,296 L379,294 L379,292 L379,290 L379,287 L379,282 L379,277 L379,275 L379,270 L379,263 L379,258 L379,251 L379,245 L379,235 L379,227 L379,220 L379,213 L379,207 L379,200 L379,195 L379,191 L379,190 L379,188 L379,184 L379,183 L381,180 L382,176 L383,174 L384,173 z"},{"id":"shape:shape:shape:f513e5d2-dcf1-5acd-8490-c4a28094a46b","type":"path","transform":"","fillColor":"#007755","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M502,135 L502,136 L500,141 L497,144 L494,149 L492,152 L491,155 L489,157 L487,159 L485,164 L483,167 L482,169 L481,175 L480,177 L478,181 L477,185 L475,190 L473,194 L473,200 L472,205 L471,210 L470,213 L469,216 L469,221 L469,224 L468,229 L468,233 L468,240 L467,249 L466,257 L463,266 L461,276 L459,285 L459,291 L457,297 L454,300 L452,306 L452,310 L450,314 L450,321 L450,326 L449,332 L449,339 L449,344 L448,351 L447,355 L447,361 L447,365 L447,370 L447,374 L447,377 L447,382 L447,386 L447,392 L447,396 L447,399 L447,403 L447,406 L447,407 L448,407 L449,407 L452,407 L453,407 L454,407 L454,406 L455,400 L456,394 L457,389 L457,383 L457,379 L457,374 L457,367 L458,358 L458,352 L458,346 L458,340 L458,336 L458,333 L458,329 L459,324 L459,319 L459,315 L459,313 L460,308 L461,303 L461,300 L462,298 L464,294 L465,290 L466,287 L468,285 L469,282 L470,278 L470,276 L471,272 L472,268 L472,264 L473,260 L473,256 L473,253 L473,250 L473,247 L473,243 L475,237 L476,235 L476,234 L476,229 L477,225 L477,222 L477,220 L478,218 L479,213 L479,212 L480,211 L481,209 L482,207 L485,202 L488,198 L488,197 L491,192 L491,188 L492,182 L493,176 L493,167 L494,162 L495,158 L495,157 L496,156 L497,155 L497,154 L500,152 L502,150 L504,148 L508,144 L511,141 L513,137 L514,134 z"},{"id":"shape:shape:shape:421a548c-4039-f6c2-6d84-5c3d24997338","type":"path","transform":"","fillColor":"#2b2b38","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M363,202 L363,201 L356,193 L354,190 L354,187 L354,186 L354,185 L356,183 L357,180 L358,180 L359,180 L363,180 L368,179 L371,179 L375,179 L379,179 L382,179 L383,179 L385,179 L386,179 L387,179 L388,179 L388,180 L388,181 L388,185 L388,191 L388,194 L385,198 L383,201 L382,201 L381,201 L380,201 L379,201 L378,201 L378,202 L377,202 z"},{"id":"shape:shape:shape:8e0cc6f9-b175-0364-1679-015ce9ffd6f0","type":"path","transform":"","fillColor":"#007733","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M185,191 L185,190 L185,188 L185,186 L185,184 L185,181 L185,177 L185,173 L186,171 L187,169 L188,167 L189,167 L190,166 L192,166 L193,166 L196,166 L200,166 L202,167 L204,167 L206,168 L207,168 L208,170 L208,171 L208,172 L209,174 L209,175 L210,176 L211,176 L212,176 L212,179 L212,180 L209,182 L205,185 L201,188 L201,189 L199,190 L198,192 L197,192 L197,193 L196,193 L196,194 L195,194 z"},{"id":"shape:shape:shape:9e90f710-4d06-35ed-1b88-8e3715c271cd","type":"path","transform":"","fillColor":"#2b2b63","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M494,168 L495,167 L503,161 L507,159 L510,157 L513,155 L516,152 L518,150 L518,148 L518,147 L518,146 L518,145 L518,144 L517,144 L516,143 L514,141 L513,140 L512,140 L510,139 L509,137 L507,137 L506,136 L503,136 L501,135 L499,134 L497,134 L495,134 L493,134 L492,134 L490,134 L489,134 L488,134 L487,135 L486,135 L486,136 L486,137 L486,138 L486,140 L485,142 L485,144 L485,147 L485,150 L485,152 L485,153 L485,155 L485,156 L485,157 L485,158 L485,159 L485,160 z"},{"id":"shape:shape:shape:febf2333-e2e3-cff4-ce3a-871c285b269a","type":"path","transform":"","fillColor":"#ff0088","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M368,144 L368,143 L369,141 L369,140 L370,137 L373,135 L376,132 L380,130 L382,129 L384,128 L390,128 L396,128 L401,128 L406,128 L407,128 L408,129 L408,130 L409,132 L410,134 L412,137 L412,138 L412,140 L412,141 L412,144 L411,146 L411,147 L410,149 L407,152 L406,154 L404,155 L403,155 L402,156 L401,156 L400,156 L399,157 L398,157 L399,157 L400,158 L403,160 L407,162 L409,164 L412,166 L413,167 L415,169 L417,171 L419,174 L420,177 L420,178 L420,181 L420,183 L420,185 L420,188 L419,191 L416,194 L415,195 L414,195 L409,195 L405,195 L402,195 L397,195 L395,195 L392,194 L390,192 L388,190 L386,188 L384,185 L383,184 L381,183 L380,182 L379,183 L378,185 L376,186 L372,189 L367,190 L363,192 L359,192 L355,192 L351,192 L348,192 L345,192 L344,190 L341,188 L339,186 L337,183 L336,181 L335,179 L335,176 L336,173 L339,170 L340,169 L342,168 L343,168 L347,167 L348,167 L349,167 L349,166 L348,165 L346,163 L345,162 L344,160 L343,157 L341,155 L340,153 L340,152 L340,150 L340,148 L340,147 L341,145 L343,143 L347,140 L350,139 L352,138 L353,138 L354,138 L355,138 L357,138 L360,138 L362,138 L363,138 L364,138 L365,138 L365,139 z"},{"id":"shape:shape:shape:a12e564a-a5e7-7a0a-1da5-9845f72bd815","type":"path","transform":"","fillColor":"#ff0088","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M191,148 L190,147 L189,146 L188,144 L186,142 L186,139 L186,137 L186,135 L186,132 L187,130 L187,129 L188,127 L189,126 L191,124 L191,122 L192,121 L194,120 L194,119 L196,119 L198,118 L202,118 L206,118 L208,118 L209,118 L210,119 L212,119 L213,119 L214,121 L217,123 L219,124 L221,126 L222,128 L222,129 L223,131 L224,132 L224,135 L224,136 L224,138 L224,139 L224,140 L225,139 L226,138 L230,137 L234,136 L237,135 L240,135 L244,135 L247,135 L251,135 L254,136 L256,136 L256,137 L257,137 L258,139 L259,140 L250,162 L248,162 L245,164 L243,165 L242,165 L241,165 L240,166 L239,166 L238,166 L237,166 L234,166 L232,166 L231,166 L231,167 L235,170 L239,176 L240,177 L240,180 L240,183 L240,186 L239,188 L238,190 L236,191 L234,192 L231,193 L228,195 L225,195 L221,196 L219,196 L217,196 L215,196 L212,196 L211,195 L209,193 L207,190 L204,187 L202,182 L202,179 L202,176 L202,174 L202,173 L202,172 L201,172 L199,173 L196,173 L193,174 L189,174 L186,174 L181,174 L177,174 L174,174 L173,174 L171,172 L170,171 L170,169 L169,167 L168,164 L168,161 L168,158 L168,157 L168,154 L169,152 L170,151 L171,150 L172,149 L173,149 L174,149 L175,149 L175,148 L176,148 L177,148 L178,148 L179,148 L180,148 L181,148 L182,148 z"},{"id":"shape:shape:270d9c6b-d39e-e1cd-da62-ea7758a18df8","type":"path","transform":"","fillColor":"#ff7f00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M83,261 L84,259 L89,249 L89,241 L89,236 L90,230 L90,228 L90,224 L90,222 L91,222 L92,222 L95,222 L97,222 L99,222 L100,222 L100,227 L100,234 L98,239 L97,245 L97,250 L96,256 L96,260 L96,263 L96,264 L96,265 L96,266 L96,267 L96,269 L96,270 L96,272 L96,273 L94,273 L92,273 L91,273 L89,273 L85,272 L82,271 L81,271 L80,271 L79,271 L78,270 z"},{"id":"shape:shape:shape:19904bde-9979-6e01-425c-98374f071bd0","type":"path","transform":"","fillColor":"#ff0088","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M502,110 L502,109 L502,107 L502,105 L505,103 L506,101 L507,99 L508,97 L509,96 L510,95 L514,92 L515,92 L517,91 L518,91 L520,91 L522,91 L523,91 L524,92 L524,93 L525,94 L527,98 L529,100 L529,103 L530,106 L530,108 L530,109 L530,111 L530,112 L530,114 L530,116 L530,118 L529,120 L529,122 L528,124 L527,124 L526,125 L527,125 L528,125 L531,126 L533,127 L537,129 L540,132 L542,134 L543,135 L544,137 L546,139 L547,140 L547,142 L547,143 L547,146 L547,148 L547,150 L546,152 L544,155 L544,156 L543,157 L541,158 L540,159 L538,159 L536,160 L533,161 L531,161 L529,161 L527,161 L526,161 L525,161 L522,160 L521,158 L520,156 L518,155 L516,154 L515,152 L513,151 L512,149 L510,147 L509,145 L508,145 L508,143 L507,143 L507,142 L507,141 L506,141 L505,141 L505,142 L503,143 L501,143 L500,144 L498,144 L475,134 L474,133 L471,130 L470,128 L470,127 L469,126 L468,126 L468,125 L468,124 L468,123 L468,122 L469,122 L470,122 L470,121 L471,121 L473,121 L474,121 L475,121 L476,121 L477,121 L479,121 L480,121 L481,121 L481,120 L481,119 L480,117 L480,116 L480,115 L480,114 L479,112 L478,110 L478,108 L478,107 L478,105 L479,103 L479,102 L480,100 L481,99 L482,99 L484,99 L486,99 L487,99 L488,99 L489,99 L490,99 L491,101 L493,102 L495,103 L496,105 L497,105 L497,106 L498,106 L498,107 L499,107 L500,108 z"},{"id":"shape:shape:shape:feecc37c-bc7d-8658-e33d-f08c8c2c9803","type":"ellipse","transform":"","fillColor":"#ff8800","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":28,"height":21,"left":197,"top":147},{"id":"shape:shape:shape:c4981b97-de52-ce73-6b7d-61fdcf00d11a","type":"ellipse","transform":"","fillColor":"#ffff00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":30,"height":21,"left":362,"top":155},{"id":"shape:shape:shape:83969ca0-2c09-58f9-7114-fa2e1a08d8a8","type":"ellipse","transform":"","fillColor":"#fdfdfd","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":21,"height":16,"left":498,"top":118},{"id":"shape:shape:shape:48522b54-e1c1-25f5-fe6a-f0cd24c8e224","type":"path","transform":"","fillColor":"#00ff88","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M88,402 L88,400 L88,360 L98,320 L122,286 L139,272 L139,271 L141,267 L145,258 L152,247 L155,241 L155,238 L155,239 L155,251 L155,269 L152,285 L144,298 L134,312 L122,331 L112,350 L108,366 L106,382 L104,397 L103,404 L103,405 L103,407 L103,409 L103,410 L103,409 z"},{"id":"shape:shape:shape:45f9eb62-0c9d-cd10-c237-03453bb64ca4","type":"path","transform":"","fillColor":"#007733","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M32,404 L32,403 L33,385 L35,353 L54,313 L81,278 L94,261 L95,258 L95,259 L92,268 L89,277 L78,294 L70,308 L65,317 L60,327 L59,334 L53,344 L47,353 L44,362 L41,373 L41,382 L41,393 L41,396 L41,397 z"},{"id":"shape:shape:shape:6f87efb1-9f03-246f-4d1a-36a7cf8c023b","type":"path","transform":"","fillColor":"#ff0000","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M261,278 L261,277 L261,269 L261,262 L262,259 L266,255 L268,253 L271,250 L274,249 L276,248 L279,248 L281,248 L283,248 L287,249 L288,249 L291,251 L291,253 L294,256 L294,259 L294,261 L294,263 L294,266 L293,269 L292,271 L291,273 L290,274 L290,275 L291,275 L296,275 L300,275 L303,275 L303,276 L305,277 L307,278 L310,281 L311,283 L313,286 L313,287 L313,289 L313,290 L313,292 L312,294 L310,295 L309,296 L307,297 L304,298 L302,299 L299,299 L298,299 L296,299 L295,299 L294,299 L292,298 L291,298 L292,298 L293,298 L294,299 L296,300 L297,302 L298,304 L298,307 L298,310 L298,313 L297,316 L295,318 L293,318 L289,318 L285,318 L279,318 L276,318 L272,317 L265,317 L263,316 L261,315 L260,313 L258,312 L257,310 L256,308 L255,307 L255,305 L255,304 L255,303 L255,302 L255,301 L253,301 L252,301 L246,301 L242,298 L240,297 L238,295 L236,293 L234,291 L232,288 L231,285 L230,282 L230,280 L231,278 L234,274 L236,272 L238,270 L240,269 L242,267 L246,266 L247,266 L248,266 L249,266 L250,266 L251,266 L252,267 L253,268 L253,269 L255,270 L256,272 L256,273 L256,274 L257,274 L258,274 L258,275 L259,276 L260,276 L259,275 z"},{"id":"shape:shape:shape:7a19be64-8422-cf7f-a436-5f95b1baddb2","type":"path","transform":"","fillColor":"#007733","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M45,401 L45,400 L40,381 L30,353 L20,327 L11,304 L4,291 L-8,265 L-19,251 L-22,248 L-27,244 L-28,242 L-28,243 L-23,253 L-16,264 L-15,273 L-11,288 L-5,303 L-2,315 L5,333 L11,348 L16,364 L20,378 L23,389 L24,396 L25,401 L25,404 L25,408 L26,412 L26,413 z"},{"id":"shape:shape:shape:a201b0c6-b5ae-0597-0f00-9976e3cd7215","type":"ellipse","transform":"","fillColor":"#ff00ff","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":22,"height":18,"left":264,"top":280},{"id":"shape:shape:0f4ec5b2-50bd-3d10-8212-94bbdef8afd9","type":"path","transform":"","fillColor":"#d59f00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M51,255 L51,254 L51,248 L52,242 L52,237 L52,231 L52,226 L52,223 L52,219 L52,215 L52,211 L52,210 L55,210 L59,210 L63,210 L64,210 L64,212 L64,214 L64,218 L64,223 L64,230 L64,239 L65,250 L65,254 L63,259 L62,261 L61,262 L60,263 L59,264 L59,266 L59,267 L59,268 L59,269 L60,270 L61,270 L60,270 L58,270 L53,268 L50,268 L47,268 L46,268 L45,266 L45,265 L47,264 L48,263 L49,263 z"},{"id":"shape:shape:96b51290-fe46-9f59-aea4-51528f9a8d0e","type":"path","transform":"","fillColor":"#3eff00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M53,220 L52,220 L47,220 L41,215 L37,209 L35,203 L35,202 L33,197 L30,185 L36,178 L37,177 L37,174 L39,169 L51,163 L53,162 L54,160 L66,155 L70,157 L74,160 L81,167 L88,171 L88,180 L90,187 L93,194 L93,200 L93,205 L93,209 L92,214 L87,215 L82,215 L82,216 L84,219 L85,224 L84,227 L81,229 L76,229 L72,229 L71,229 L67,229 L65,229 L63,229 L62,229 L60,227 L60,226 z"},{"id":"shape:shape:1fd57d2b-7798-a7f1-b6c2-b69735c9c9d0","type":"path","transform":"","fillColor":"#82d500","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M92,236 L91,236 L87,237 L81,233 L78,229 L82,225 L82,224 L80,218 L78,213 L77,207 L79,205 L79,203 L81,196 L85,193 L85,192 L85,186 L99,176 L103,174 L103,175 L111,178 L118,183 L118,184 L119,186 L124,191 L120,199 L119,202 L119,209 L120,215 L120,220 L116,224 L116,230 L115,236 L113,238 L110,239 L108,241 L107,241 L105,241 L103,241 L101,241 L100,241 L99,241 L98,241 z"},{"id":"shape:shape:f431d7d6-9985-5582-dffc-ed9dcd4c56a4","type":"path","transform":"","fillColor":"#fdfdfd","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M259,96 L260,96 L266,96 L267,96 L270,96 L271,97 L275,100 L276,100 L277,100 L277,101 L278,103 L278,104 L279,104 L287,103 L293,103 L295,103 L296,103 L297,103 L298,104 L297,104 L293,104 L289,104 L287,104 L284,104 L282,104 L281,105 L280,106 L280,107 L279,107 L277,108 L277,109 L276,109 L275,109 L274,108 L272,106 L271,105 L269,103 L268,102 L267,101 L266,101 L266,100 L265,100 L263,98 L261,97 L260,97 L260,96 L259,96 L258,96 z"},{"id":"shape:shape:c45652bf-d6ea-8716-5beb-afd5fbb43b13","type":"path","transform":"","fillColor":"#fdfdfd","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M229,103 L230,103 L232,103 L233,103 L233,104 L234,105 L234,106 L234,107 L235,107 L237,107 L242,108 L245,108 L245,109 L244,109 L242,109 L240,110 L239,110 L237,110 L235,110 L233,110 L232,110 L232,111 L231,111 L231,110 L230,107 L228,106 L228,105 L227,105 L227,104 L226,104 L225,103 L224,103 L223,103 L222,102 L222,101 z"},{"id":"shape:shape:25a4ac37-72c3-1363-e2aa-2745593a7cd9","type":"path","transform":"","fillColor":"#ffbf00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M298,354 L297,354 L297,346 L297,341 L297,336 L298,332 L301,327 L304,324 L306,324 L310,324 L313,324 L314,324 L316,324 L317,324 L319,324 L321,326 L321,328 L322,330 L326,332 L327,333 L329,333 L330,334 L331,334 L331,335 L331,336 L330,339 L326,343 L321,345 L316,346 L313,347 L308,347 L304,347 L302,348 L301,349 L301,350 L300,351 L300,352 L299,352 L298,352 z"},{"id":"shape:shape:f9f338c3-aa8a-f600-3b4b-96357c34c962","type":"path","transform":"","fillColor":"#dcff00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M324,330 L325,330 L328,330 L330,326 L331,323 L331,320 L331,318 L331,316 L331,314 L331,313 L331,312 L330,311 L330,309 L329,308 L329,307 L330,307 L331,307 L331,309 L331,311 L331,313 L332,313 L334,315 L334,316 L335,316 L336,316 L339,314 L342,312 L343,309 L343,307 L344,305 L345,305 L345,306 L343,308 L340,310 L337,311 L336,314 L335,316 L335,320 L335,322 L335,325 L335,328 L335,331 L335,332 L335,333 L335,334 L334,334 L333,334 L333,335 L332,336 L331,336 L330,336 L329,337 L328,337 z"},{"id":"shape:shape:2d0abc9d-40b7-7aeb-0010-4637d9c89472","type":"ellipse","transform":"","fillColor":"#ff2200","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":13,"height":16,"left":487,"top":352},{"id":"shape:shape:124496fa-ded0-d119-5dd6-9c51072adf5b","type":"ellipse","transform":"","fillColor":"#292929","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":6,"height":6,"left":505,"top":351},{"id":"shape:shape:afb3d0d1-d909-6441-a122-7df8e9f2a0e0","type":"ellipse","transform":"","fillColor":"#292929","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":6,"height":7,"left":520,"top":354},{"id":"shape:shape:bf7a199b-4202-0869-4224-d09519c1a0d2","type":"ellipse","transform":"","fillColor":"#292929","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":6.67886,"height":5.56588,"left":508.66057,"top":361.78906},{"id":"shape:shape:f649be50-dd8d-3985-2acb-742f4ce3bf94","type":"ellipse","transform":"","fillColor":"#292929","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"width":5,"height":3.92408,"left":491,"top":357.07596},{"id":"shape:shape:1034154b-9e64-ad45-fe4b-7727e90fe5b5","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M496,352 L497,350 L501,342 L502,341"},{"id":"shape:shape:304ac0d7-fb95-769f-1ddb-6871b8ab3698","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M490,355 L489,354 L484,347"},{"id":"shape:shape:7cdbbfd9-ba8a-7fac-1a50-cf70f079acf8","type":"path","transform":"","fillColor":"none","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M314,335 L314,336 L313,337 L313,339 L312,340 L311,340 L310,340 L309,340 L309,338 L309,337 L309,336 L309,334 L309,333 L310,332 L312,331 L314,331 L315,331 L317,331 L318,331 L318,332 L318,333 L318,336 L318,338 L318,339 L318,340 L318,342 L316,343 L315,343 L313,344 L312,344 L310,344 L307,344 L306,344 L305,344 L303,342 L302,339 L301,336 L301,334 L302,332 L302,330 L303,328 L305,328 L308,328 L309,328 L311,328 L313,328 L315,328 L318,328 L319,328 L320,328 L321,328 L322,328 L322,329 L322,331"},{"id":"shape:shape:4cf36ca4-0060-5e4b-edcc-21709db59fab","type":"path","transform":"translate(0)","fillColor":"#aa3c2b","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M534,215 L574,177 L608,220 L534,215 L534,215"},{"id":"shape:shape:47576b94-d5b2-325e-4774-58f45291e892","type":"rect","transform":"","fillColor":"#aa2a00","lineColor":"#000000","fillOpac":1,"lineOpac":1,"lineWidth":1,"left":546,"top":221,"width":10,"height":12}] diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/oye.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/oye.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{"type":"doc","left":0,"top":0,"width":160,"height":160,"viewBox":"0 0 160 160","bgcolor":"#111122","title":"","link":"","meta":""},{"id":"shape:ab1d9da6-df50-e719-85d8-3132c41995a6","type":"roundrect","transform":"","fillColor":"#d4848b","filter":null,"lineColor":"#0000ff","fillOpac":null,"lineOpac":null,"lineWidth":null,"rx":18,"ry":18,"left":3.77578,"top":1.58459,"width":152.086,"height":156.346},{"id":"shape:01e577af-c9c5-d4f3-e964-797a631e9738","type":"roundrect","transform":"","fillColor":"#00f3dc","filter":null,"lineColor":"#dcff00","fillOpac":null,"lineOpac":null,"lineWidth":3,"rx":18,"ry":18,"left":8.46476,"top":6.99467,"width":142.101,"height":146.081},{"id":"shape:048cd47a-0f84-2b2a-53a5-f17f6b6cfaed","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M34.4828,17.5172 L33.6552,17.5172 L29.931,18.7586 L25.3793,24.9655 L24.5517,29.931 L24.9655,33.2414 L29.1034,35.3103 L34.8966,36.5517 L37.3793,36.5517 L37.7931,36.1379 L38.2069,36.1379 L38.2069,35.7241 L38.6207,35.3103 L39.4483,33.6552 L39.8621,31.5862 L39.8621,28.2759 L39.8621,24.9655 L39.4483,23.7241 L39.0345,22.8966 L38.6207,21.2414 L38.2069,20.4138 L37.7931,20 L37.3793,19.5862 L36.9655,19.5862 L36.9655,19.1724 L36.5517,19.1724 L36.1379,19.1724 L35.7241,18.7586 L35.3103,18.3448 L34.8966,17.931 L34.069,17.5172 L33.2414,17.5172 L32.8276,17.5172 L32.4138,17.5172 L32.4138,17.1034 L32,17.1034 L31.5862,17.1034"},{"id":"shape:60ae1ab4-0eeb-da30-2d79-9f2d504e2508","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M41.1034,27.8621 L41.1034,28.2759 L41.1034,28.6897 L41.1034,29.1034 L41.1034,29.5172 L41.1034,29.931 L41.1034,30.3448 L41.1034,30.7586 L41.5172,31.1724 L41.5172,31.5862 L41.931,31.5862 L42.7586,31.5862 L43.5862,31.5862 L44,31.5862 L44.4138,31.5862 L44.8276,31.1724 L45.6552,29.931 L46.069,28.6897 L46.069,28.2759 L46.069,27.0345 L46.069,27.4483 L46.069,29.5172 L46.069,32.4138 L46.069,35.7241 L46.069,39.0345 L45.6552,39.4483 L44.8276,39.4483 L43.1724,39.0345 L41.931,37.3793 L41.1034,36.5517 L40.6897,35.3103 L41.931,34.8966 L44,34.069 L46.069,34.069 L48.5517,33.2414 L49.3793,32.8276 L49.3793,32.4138 L48.9655,31.5862 L48.1379,30.7586 L48.5517,30.7586 L50.2069,30.7586 L53.1034,30.7586 L55.1724,30.7586 L56.4138,29.931 L56.4138,29.5172 L55.5862,28.6897 L54.7586,28.2759 L53.5172,27.8621 L52.2759,27.4483 L51.8621,27.4483 L51.4483,27.4483 L51.0345,27.8621 L50.6207,28.6897 L50.2069,29.5172 L49.7931,30.3448 L49.7931,31.1724 L49.7931,31.5862 L50.2069,32 L51.0345,32.4138 L52.2759,32.8276 L54.7586,33.2414 L56,33.2414 L57.2414,33.2414 L57.6552,33.2414 L57.6552,32.8276"},{"id":"shape:b902d3ee-e720-ea2b-e7b5-bbe4ee8a1c5a","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M62.2069,32 L62.2069,32.4138 L61.7931,33.6552 L61.7931,34.4828 L61.7931,35.3103"},{"id":"shape:92801257-f3f0-4330-8e23-054af5622308","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M32,45.6552 L32,46.069 L31.1724,49.3793 L30.3448,53.931 L29.931,57.2414 L29.5172,59.3103 L29.5172,60.5517 L29.1034,60.5517 L28.6897,60.5517"},{"id":"shape:ae6d2f90-80a2-0cc7-0c5c-bd9e3fe4d3b9","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M31.5862,45.6552 L32,46.069 L32.4138,47.7241 L32.8276,49.3793 L32.8276,50.6207 L33.2414,50.2069 L33.2414,49.7931 L33.6552,49.7931 L34.069,48.9655 L35.7241,47.3103 L36.1379,46.4828 L36.1379,46.069 L36.9655,45.2414 L37.3793,44.8276 L37.3793,44.4138 L37.7931,44.4138 L37.7931,45.2414 L37.7931,47.7241 L38.6207,51.0345 L38.6207,53.931 L38.6207,56.4138 L38.6207,58.069 L39.0345,58.8966 L39.4483,58.8966 L39.8621,59.3103 L40.6897,59.7241 L41.1034,59.7241 L41.931,59.7241 L42.7586,59.7241 L43.1724,59.3103 L43.1724,58.8966"},{"id":"shape:1d48cf48-ce8a-afdd-6294-66028973643f","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M43.1724,54.7586 L44,54.7586 L45.6552,54.7586 L47.3103,54.7586 L48.5517,54.7586 L49.3793,54.3448 L49.7931,53.931 L48.9655,53.5172 L47.7241,52.6897 L46.069,52.6897 L45.2414,52.2759 L44.4138,52.2759 L43.5862,52.6897 L43.5862,53.5172 L43.5862,55.5862 L44,57.2414 L44,57.6552 L45.2414,58.069 L46.4828,58.069 L47.7241,58.069 L49.3793,58.069 L50.2069,58.069 L50.2069,57.6552 L50.6207,56.8276"},{"id":"shape:bb928351-acad-8c4a-9d8a-537d109ce220","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M64.6897,52.2759 L63.8621,52.2759 L62.6207,52.2759 L61.7931,52.2759 L61.3793,52.6897 L61.3793,53.931 L61.7931,55.1724 L62.6207,56.4138 L63.8621,56.8276 L63.8621,57.2414 L64.2759,56.4138 L64.2759,55.5862 L64.6897,53.931 L64.6897,53.5172 L64.2759,52.2759 L64.2759,52.6897 L64.2759,53.5172 L64.6897,55.5862 L65.5172,56.4138 L65.931,56.8276 L66.7586,56.8276 L69.6552,56.8276 L72.1379,56 L73.3793,54.3448 L75.0345,52.6897 L76.6897,50.2069 L76.6897,49.3793 L76.6897,48.5517 L75.8621,46.8966 L75.8621,45.6552 L75.0345,44.8276 L74.2069,44 L73.7931,44 L73.3793,44 L73.3793,44.4138 L73.3793,45.6552 L73.3793,48.1379 L73.3793,50.6207 L73.3793,52.2759 L73.3793,54.3448 L73.3793,55.1724 L73.3793,56.4138 L73.3793,57.2414 L73.3793,58.069 L73.7931,58.069 L74.6207,58.069 L75.8621,57.6552 L77.931,57.2414 L78.7586,56.4138 L79.5862,55.5862 L79.5862,55.1724 L80,55.1724 L81.6552,55.1724 L84.1379,54.7586 L84.5517,53.931 L84.9655,53.5172 L84.9655,53.1034 L84.5517,52.2759 L82.4828,51.8621 L81.6552,51.8621 L80.4138,52.2759 L79.5862,52.2759 L79.1724,53.1034 L79.1724,53.931 L79.1724,54.7586 L79.1724,55.5862 L79.1724,56.8276 L79.5862,56.8276 L80.8276,57.2414 L83.3103,57.2414 L84.5517,57.2414 L85.3793,57.2414 L85.3793,56.8276 L84.9655,56.4138"},{"id":"shape:256214ee-6f63-e6da-156e-aab92c106062","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M90.7586,52.2759 L90.3448,52.2759 L89.5172,52.2759 L88.6897,52.2759 L87.8621,52.2759 L87.4483,52.6897 L86.6207,53.1034 L85.7931,54.3448 L85.7931,54.7586 L85.7931,56 L85.7931,56.4138 L86.6207,56.8276 L87.4483,57.2414 L87.8621,57.2414 L89.931,56.8276 L90.7586,55.1724 L90.7586,53.931 L90.7586,53.5172 L91.1724,52.6897 L91.1724,52.2759 L91.1724,51.8621 L91.1724,52.2759 L91.1724,53.5172 L91.1724,56 L91.1724,58.4828 L91.1724,60.1379 L91.1724,62.6207 L91.1724,63.8621 L90.7586,64.6897 L90.3448,65.1034 L89.931,65.1034 L89.5172,65.1034 L88.2759,64.2759 L87.4483,63.4483 L87.0345,62.6207 L87.0345,60.9655 L87.4483,59.3103 L89.1034,58.069 L91.5862,56.4138 L93.6552,55.1724 L94.8966,54.3448 L96.1379,53.1034 L96.5517,52.6897 L96.5517,51.8621 L96.9655,51.4483 L96.5517,51.4483 L95.7241,51.8621 L95.7241,52.2759 L95.7241,52.6897 L95.7241,53.5172 L96.1379,53.5172 L98.2069,53.5172 L99.0345,53.5172 L99.4483,53.5172 L99.4483,53.931 L99.4483,55.1724 L99.4483,55.5862 L99.4483,56.4138 L99.4483,57.2414 L99.4483,57.6552 L99.8621,57.6552 L100.69,57.6552 L101.931,57.2414 L102.759,56.4138 L103.586,54.7586 L103.586,53.1034 L104,52.6897 L104,53.1034 L103.586,53.931 L103.586,55.5862 L104,56.4138 L105.241,56.4138 L107.724,56.4138 L108.966,56.4138 L109.379,54.7586 L109.379,53.1034 L108.552,51.0345 L108.138,51.0345 L107.31,51.0345 L106.069,51.0345 L105.655,51.0345 L106.483,53.1034 L106.897,53.1034 L108.138,53.1034 L109.793,53.1034 L110.621,52.6897 L111.448,52.2759 L111.862,51.8621 L112.276,51.4483 L112.69,51.4483"},{"id":"shape:0b318bca-b49a-73c7-6811-7f6ecccc3586","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M129.241,51.0345 L129.241,51.4483 L128,51.4483 L127.586,51.8621 L126.759,52.2759 L125.931,52.2759 L125.931,52.6897 L125.931,53.5172 L125.931,54.3448 L125.931,55.1724 L125.931,55.5862 L126.345,55.5862 L127.172,56 L127.586,56 L128.414,55.5862 L128.828,55.5862 L129.655,54.7586 L130.069,53.931 L130.069,52.6897 L130.069,51.4483 L129.655,49.7931 L129.655,49.3793 L129.655,48.5517 L129.655,47.7241 L129.655,47.3103 L130.069,47.3103 L130.069,48.1379 L130.483,49.7931 L130.897,51.0345 L130.897,52.2759 L130.897,53.5172 L130.897,53.931 L130.897,54.7586 L130.897,55.1724 L130.897,55.5862 L131.31,55.5862 L131.724,55.5862 L132.552,56 L133.379,56 L134.207,56 L134.621,55.5862 L134.621,55.1724 L134.207,55.1724 L134.207,54.7586 L134.621,54.7586 L136.276,54.7586 L137.103,54.7586 L138.759,54.3448 L139.172,53.931 L139.172,53.5172 L139.172,53.1034 L139.172,52.2759 L139.172,51.8621 L138.759,51.4483 L138.345,50.6207 L137.931,50.6207 L137.517,50.6207 L137.103,50.6207 L136.276,50.6207 L135.862,51.0345 L134.621,51.8621 L134.207,52.2759 L134.207,52.6897 L134.207,53.5172 L134.207,54.3448 L134.207,55.5862 L134.207,56.4138 L134.621,56.4138 L135.034,56.4138 L135.862,56.4138 L136.69,56.8276 L137.517,56.8276 L138.345,56.8276 L138.759,56.8276 L139.172,56.8276 L139.172,56.4138 L139.172,56"},{"id":"shape:c75d607a-849b-6ccb-706c-a9fec1f141c3","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M28.6897,70.4828 L28.6897,70.8966 L29.1034,73.7931 L29.1034,76.6897 L29.5172,77.1034 L30.3448,77.1034 L31.5862,77.1034 L32,76.6897 L32.8276,75.0345 L32.8276,73.3793 L32.8276,72.1379 L33.2414,71.7241 L33.6552,71.7241 L35.3103,72.1379 L36.9655,72.1379 L39.4483,72.1379 L40.2759,72.1379 L41.1034,72.1379 L41.1034,71.7241 L41.1034,70.8966 L41.1034,70.4828 L41.1034,70.069 L40.2759,69.6552 L39.8621,69.6552 L39.0345,69.6552 L38.6207,70.069 L37.7931,71.3103 L37.7931,72.5517 L37.3793,73.3793 L37.3793,74.6207 L37.7931,75.0345 L39.8621,75.4483 L41.931,75.4483 L44.4138,75.0345 L44.8276,74.2069 L45.2414,72.5517 L45.2414,71.3103 L45.2414,70.4828 L45.2414,70.069 L45.2414,70.4828 L45.6552,70.4828 L47.7241,70.4828 L49.7931,70.4828 L49.7931,70.8966 L49.7931,71.3103 L49.7931,72.1379 L49.3793,74.2069 L49.3793,75.4483 L49.7931,75.4483 L50.2069,75.4483 L50.6207,75.4483 L51.0345,75.4483 L51.8621,74.6207 L52.6897,73.7931 L53.1034,73.3793 L53.931,72.1379 L54.3448,70.4828 L54.3448,68.8276 L54.3448,67.1724 L54.7586,65.1034 L54.7586,64.2759 L54.7586,64.6897 L54.7586,67.1724 L54.7586,70.4828 L54.7586,72.1379 L54.7586,74.2069 L54.7586,75.0345 L55.5862,75.0345 L57.2414,75.0345 L58.8966,75.0345 L61.7931,75.0345 L62.2069,74.2069 L61.7931,73.7931 L60.9655,72.5517 L60.9655,72.1379 L62.6207,72.1379 L64.6897,72.1379 L65.931,71.7241 L66.3448,70.8966 L65.1034,69.2414 L64.2759,68.8276 L63.0345,69.2414 L62.2069,71.3103 L62.2069,72.5517 L63.0345,74.6207 L63.4483,75.0345 L65.1034,75.8621 L66.3448,75.8621 L66.7586,75.8621 L67.1724,75.8621 L69.2414,75.8621 L69.2414,75.4483 L68.8276,74.6207"},{"id":"shape:27dcd203-837f-5a62-2266-cac6cf3ae24d","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M52.6897,67.5862 L53.1034,67.5862 L55.1724,67.5862 L56.4138,67.5862 L56.8276,67.5862 L57.2414,67.5862 L56.8276,67.5862"},{"id":"shape:33f13849-6a47-2ec4-69de-4924c46a01b4","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M87.8621,72.9655 L87.4483,72.9655 L86.2069,72.9655 L84.9655,73.3793 L83.7241,74.6207 L83.3103,75.4483 L83.7241,76.6897 L84.5517,77.5172 L84.5517,77.931 L85.7931,76.2759 L87.0345,75.8621 L88.2759,74.6207 L89.1034,73.3793 L89.5172,71.7241 L89.5172,70.069 L88.2759,69.2414 L87.8621,68.4138 L88.2759,68.8276 L89.5172,72.1379 L89.931,74.6207 L89.931,75.4483 L89.931,75.8621 L90.3448,76.6897 L90.7586,77.1034 L91.1724,77.1034 L91.5862,77.1034 L92,77.1034 L92.4138,77.1034 L92.8276,76.6897 L93.2414,75.8621 L93.6552,75.4483 L94.069,75.4483 L94.8966,75.4483 L96.1379,75.4483 L96.9655,75.4483 L98.2069,75.4483 L98.6207,74.6207 L99.0345,74.2069 L99.0345,73.3793 L97.7931,72.5517 L96.5517,72.1379 L96.1379,72.1379 L95.7241,72.1379 L95.3103,72.9655 L94.8966,73.3793 L94.8966,74.2069 L94.4828,74.6207 L94.4828,75.8621 L95.3103,76.2759 L95.7241,76.2759 L96.1379,76.2759 L96.9655,76.2759 L97.3793,76.2759 L97.7931,76.2759 L98.6207,76.6897 L99.4483,76.6897 L99.8621,76.6897 L100.69,76.6897 L101.931,76.6897 L102.345,76.6897 L102.759,76.6897 L102.759,76.2759 L102.759,75.0345"},{"id":"shape:b7b233e5-cc4e-a446-6797-bd7c81304794","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M27.8621,85.3793 L27.8621,85.7931 L27.8621,88.2759 L27.8621,91.1724 L27.8621,92.4138 L27.8621,92.8276"},{"id":"shape:5c6c6e75-80c0-6866-7b3f-2afae2503f10","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M27.4483,88.6897 L27.8621,88.6897 L28.6897,87.8621 L29.5172,87.0345 L31.1724,86.6207 L31.5862,86.2069 L32.4138,86.6207 L32.8276,88.2759 L32.8276,90.7586 L32.8276,91.5862 L33.2414,91.5862 L35.3103,91.5862 L36.9655,91.1724 L37.3793,89.931 L37.7931,89.1034 L37.7931,88.6897 L36.9655,88.2759 L36.9655,87.8621 L36.9655,88.2759 L36.9655,89.931 L37.3793,91.5862 L37.7931,92 L39.0345,92.4138 L41.1034,92.4138 L42.3448,92 L42.3448,90.3448 L42.3448,88.6897 L42.3448,87.8621 L42.3448,87.4483 L42.3448,87.8621 L42.3448,90.3448 L42.3448,91.5862 L43.1724,92 L45.2414,91.5862 L46.8966,89.5172 L46.8966,89.1034 L46.4828,88.6897 L50.2069,88.6897 L51.8621,88.6897 L52.2759,87.8621 L52.2759,87.0345 L52.2759,86.6207 L51.4483,86.2069 L51.0345,85.7931 L49.7931,85.7931 L48.9655,85.7931 L47.7241,85.7931 L47.3103,86.6207 L46.8966,87.4483 L46.8966,88.6897 L46.8966,89.931 L47.3103,91.1724 L48.1379,91.5862 L48.9655,92 L49.7931,92 L51.0345,92 L51.8621,92 L53.1034,91.5862 L54.3448,90.7586 L55.1724,89.931 L55.5862,88.6897 L55.5862,87.8621 L55.5862,87.4483 L55.5862,87.8621 L55.5862,88.6897 L55.5862,90.7586 L55.5862,91.1724 L56,91.1724 L56.4138,91.1724 L57.6552,91.1724 L58.4828,91.1724 L58.8966,89.5172 L58.8966,88.2759 L58.8966,87.4483 L58.8966,87.0345 L59.3103,87.0345 L59.7241,87.0345 L60.1379,87.0345 L61.3793,87.0345 L62.2069,87.0345 L62.6207,87.0345 L63.0345,87.0345 L63.4483,87.0345 L63.4483,87.4483 L63.4483,88.2759 L63.4483,89.931 L63.4483,91.1724 L64.2759,92 L65.5172,92 L67.1724,92 L67.5862,91.1724 L67.5862,90.3448 L67.5862,89.1034 L67.1724,87.8621 L66.3448,87.4483 L65.1034,86.6207 L64.2759,86.6207 L63.4483,86.6207 L63.4483,86.2069 L63.4483,87.4483 L63.4483,87.8621 L64.6897,88.2759 L67.1724,88.2759 L68.8276,88.2759 L70.8966,87.8621 L71.7241,87.4483 L71.7241,87.0345 L71.7241,86.2069"},{"id":"shape:b67d75ea-2598-59df-852f-8d8001a2eca8","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M85.7931,89.1034 L86.2069,89.931 L86.2069,94.8966 L86.2069,100.69 L86.2069,102.345 L85.7931,101.931 L84.9655,100.69"},{"id":"shape:dd0e1b45-4cb3-8d63-e647-395c65474fef","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M84.9655,89.1034 L85.3793,89.1034 L87.8621,88.2759 L89.1034,88.2759 L90.3448,88.6897 L90.7586,89.931 L90.7586,92 L89.931,92.8276 L88.6897,92.8276 L87.4483,92.8276 L86.6207,92.8276 L86.2069,92.8276"},{"id":"shape:fd37ef58-c15d-7c66-ca7a-872d89ba5f95","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M94.4828,89.931 L94.069,89.931 L93.6552,89.931 L93.6552,90.7586 L92.8276,92 L92.8276,93.2414 L92.8276,94.069 L93.2414,94.4828 L94.4828,94.4828 L95.3103,94.4828 L96.1379,94.4828 L96.5517,93.6552 L96.5517,92 L96.5517,91.5862 L95.7241,90.7586 L95.7241,90.3448 L94.8966,89.931 L94.4828,89.1034 L94.069,89.1034 L94.069,89.5172 L94.069,89.931 L94.069,90.3448 L94.4828,90.3448 L95.3103,90.3448 L96.9655,90.3448 L98.2069,90.3448 L99.0345,90.3448 L99.8621,90.3448 L99.8621,89.5172 L99.8621,88.6897 L99.4483,88.6897 L98.6207,87.8621 L98.2069,87.8621 L97.7931,87.8621 L97.7931,88.2759 L98.2069,89.1034 L99.0345,89.5172 L101.103,90.3448 L101.931,90.7586 L101.931,91.1724 L101.931,91.5862 L101.931,92.8276 L101.931,94.069 L101.931,94.8966 L102.759,95.7241 L103.172,95.7241 L103.586,95.7241 L104.828,95.7241 L105.241,95.7241 L105.241,94.4828"},{"id":"shape:711043f4-75ee-e388-2d7f-5884451df045","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M116,89.1034 L115.586,89.1034 L113.517,89.931 L112.276,91.5862 L114.345,94.069 L114.759,94.069 L115.586,94.069 L116,93.6552 L116.414,93.2414 L116.828,92.4138 L116.828,92 L116.828,91.1724 L116,89.931 L116,89.5172 L116.414,89.5172 L116.828,91.5862 L116.828,93.2414 L117.241,94.4828 L118.069,94.8966 L118.897,94.8966 L119.724,94.8966 L120.552,94.4828 L120.966,94.4828 L121.379,94.069 L121.793,93.6552 L121.379,93.6552 L121.379,93.2414"},{"id":"shape:d13f5e01-8441-db78-026f-b40581ab41ab","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M122.621,88.6897 L122.207,88.6897 L121.379,89.931 L120.552,90.7586 L120.552,91.5862 L120.552,92.4138 L120.552,92.8276 L121.379,93.6552 L123.034,93.6552 L124.69,94.4828 L125.931,94.4828 L126.345,94.4828 L127.172,93.6552 L127.172,92.8276 L127.172,92 L127.172,91.1724 L127.172,90.3448 L126.345,89.1034 L125.517,88.2759 L124.69,88.2759 L124.69,87.8621 L123.862,87.4483 L123.448,87.4483 L123.034,87.4483 L122.621,87.8621 L121.793,88.2759"},{"id":"shape:d69ee6ed-d775-fb17-a0d0-e2956449d0c0","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M126.759,90.7586 L126.759,92 L126.759,96.9655 L125.931,99.8621 L125.931,101.517 L125.931,102.759 L125.931,104.414 L125.931,105.655 L125.931,106.069 L125.931,106.483 L125.931,106.069 L125.517,105.241"},{"id":"shape:e0c4a3f8-6608-234a-8ddf-6058d762979c","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M123.862,100.69 L124.69,100.69 L126.759,100.69 L128,100.276 L128,99.8621"},{"id":"shape:5ee9d0d0-787b-af96-6c9b-623deba95b04","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M126.759,93.2414 L127.172,93.2414 L128.828,93.2414 L129.655,92.8276 L129.655,91.5862 L129.655,90.7586 L129.655,89.1034 L129.655,88.2759 L130.069,87.8621 L130.069,87.4483 L130.483,87.4483 L130.483,87.8621 L130.483,88.2759 L130.483,89.5172 L130.483,90.3448 L130.483,91.1724 L130.483,92 L130.483,92.4138 L130.897,92.4138 L131.724,92.4138 L132.552,92.4138 L133.793,92.4138 L134.621,91.1724 L135.034,89.931 L135.034,88.2759 L135.034,87.8621 L135.034,88.2759 L135.034,89.5172 L135.034,91.5862 L135.034,92.4138 L135.034,92.8276 L135.448,92.8276 L136.69,92.8276 L137.931,92.8276 L139.172,92.4138 L140,90.7586 L140.414,89.5172 L140.414,88.2759 L140.414,87.8621 L140.414,88.2759 L140.414,89.1034 L140.414,89.931 L140.414,90.7586 L140.414,91.5862 L140.414,92 L140.414,92.4138 L140.828,92.8276 L141.241,93.2414 L141.655,93.2414 L142.069,93.2414 L142.069,92.4138 L142.483,91.5862"},{"id":"shape:a72777d3-7da4-b732-fa2d-fece9aad70b0","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M141.655,83.7241 L142.483,82.8966 L143.724,81.6552 L143.724,80.8276"},{"id":"shape:11cf070b-038e-7a3e-1edb-308f39712ef5","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M72.5517,114.759 L75.4483,114.759 L80.4138,121.793 L75.0345,128.414 L63.8621,125.103 L58.4828,121.793 L61.7931,119.31 L75.0345,119.31 L77.931,119.724 L77.5172,119.724 L67.1724,117.655 L61.3793,116.414 L63.4483,117.241 L77.931,118.897 L78.7586,118.897 L73.7931,118.483 L74.2069,117.655 L82.8966,116.414 L87.0345,116.414 L87.0345,115.586 L87.8621,114.759 L88.2759,115.172 L85.3793,116 L82.4828,116 L81.6552,116 L82.069,116 L88.2759,116 L89.5172,116 L88.6897,116.414 L89.1034,116.414 L99.4483,116.414 L105.241,116.414 L96.5517,117.655 L84.9655,121.379 L66.3448,125.103 L56.8276,125.517 L51.4483,125.517 L48.1379,125.517 L47.7241,125.517 L48.1379,124.69 L58.4828,123.862 L75.0345,125.103 L87.0345,128 L88.6897,128 L90.7586,128"},{"id":"shape:1629f024-c7ec-ee06-39b5-36ac4ad1d1ca","type":"ellipse","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":7.65166,"height":8.01292,"left":115.69217,"top":111.40454},{"id":"shape:3d38d55b-525c-6834-de75-491e59dc75ba","type":"path","transform":"rotate(-99.0766, 136.51, 121.853)","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M126.398,116.368 C127.133,122.561 131.41,127.337 136.602,127.337 C141.427,127.337 145.482,123.209 146.623,117.649 C144.494,120.884 140.925,123.02 136.873,123.02 C132.307,123.02 128.357,120.304 126.398,116.368 z"},{"id":"shape:23cd9885-30a5-6365-44cc-30f6e342cad6","type":"ellipse","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":7.34276,"height":8.00534,"left":115.69162,"top":124.64433},{"id":"face:1629f024-c7ec-ee06-39b5-36ac4ad1d1ca","type":"ellipse","transform":"","fillColor":"#f8faf9","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":7.65166,"height":8.01292,"left":115.27817,"top":111.39753999999999},{"id":"shape:23cd9885-30a5-6365-44cc-30f6e342cad6","type":"ellipse","transform":"","fillColor":"#fefefe","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":7.34276,"height":8.00534,"left":115.69162,"top":124.64433},{"id":"shape:491b9a26-642c-c291-ee0b-e8ed20c263fc","type":"ellipse","transform":"","fillColor":"#007baa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":5.7931,"height":6.62068,"left":115.58645,"top":111.44866},{"id":"shape:3d38d55b-525c-6834-de75-491e59dc75ba","type":"path","transform":"rotate(-99.0766, 136.51, 121.853)","fillColor":"#f5f5f5","filter":null,"lineColor":"#ff3f00","fillOpac":null,"lineOpac":null,"lineWidth":3,"points":"M126.398,116.368 C127.133,122.561 131.41,127.337 136.602,127.337 C141.427,127.337 145.482,123.209 146.623,117.649 C144.494,120.884 140.925,123.02 136.873,123.02 C132.307,123.02 128.357,120.304 126.398,116.368 z"},{"id":"shape:b1e72a1c-89f2-1e18-e6c2-9182852ae66d","type":"ellipse","transform":"","fillColor":"#007baa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":5.7931,"height":6.62068,"left":116.00045,"top":124.68866},{"id":"shape:aedd3e29-0e01-8ab4-cf5d-e8a57f0fc9b0","type":"ellipse","transform":"","fillColor":"#232625","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":3.72414,"height":3.72414,"left":116.41393,"top":112.68993},{"id":"shape:27551e24-f321-88ee-5c98-e7f65106c2f6","type":"ellipse","transform":"","fillColor":"#232625","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":3.72414,"height":3.72414,"left":116.82793,"top":125.92893},{"id":"shape:da441732-f0e4-c7ea-c336-76a27b63e8e6","type":"ellipse","transform":"","fillColor":"#ffffd4","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":1.24138,"height":1.24138,"left":116.82731,"top":112.68931},{"id":"shape:8bd41a83-0c46-1dca-4de7-7dd18d3c4a4e","type":"ellipse","transform":"","fillColor":"#ffffd4","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":1.24138,"height":1.24138,"left":117.24131,"top":126.34331},{"id":"shape:2b4b7814-67d0-94ea-3163-a9bd12df5782","type":"path","transform":"rotate(-99.0766, 138.868, 121.868)","fillColor":"#292929","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M131.777,118.023 C132.292,122.364 135.291,125.712 138.934,125.712 C142.318,125.712 145.163,122.815 145.96,118.923 C144.468,121.188 141.962,122.688 139.123,122.688 C135.917,122.688 133.15,120.79 131.777,118.023 z"},{"id":"shape:0298f344-5c78-f7d9-3e77-048b69f17c9c","type":"ellipse","transform":"","fillColor":"#ff2200","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":3,"width":11.5862,"height":6.62068,"left":122.62089999999999,"top":118.48266000000001},{"id":"shape:2d6da671-516e-c3c9-5f0d-70522d242f28","type":"path","transform":"rotate(-82.482, 114.913, 114.339)","fillColor":"#151515","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M111.852,116.116 L111.852,116.018 L111.949,115.819 L112.047,115.819 L112.447,115.523 L113.134,115.326 L113.531,115.326 L114.022,115.227 L114.714,115.227 L115.307,115.227 L115.9,115.227 L116.296,115.326 L116.393,115.326 L116.59,115.424 L116.791,115.523 L116.889,115.819 L117.087,116.018 L117.184,116.116 L117.184,116.313 L117.184,116.412 L117.283,116.412 L117.38,116.412 L117.481,116.313 L117.778,116.313 L118.074,116.214 L118.366,116.116 L118.766,116.018 L119.457,115.819 L119.753,115.819 L119.852,115.721 L120.047,115.721 L120.243,115.622 L120.347,115.622 L120.446,115.523 L120.544,115.523 L120.643,115.523 L120.544,115.523 L120.243,115.523 L119.949,115.523 L119.654,115.622 L119.356,115.622 L119.159,115.721 L118.865,115.721 L118.766,115.721 L118.669,115.721 L118.569,115.721 L118.469,115.721 L118.366,115.721 L118.272,115.721 L118.172,115.721 L118.074,115.721 L117.977,115.721 L117.977,115.622 L117.977,115.523 L118.172,115.227 L118.469,115.129 L118.865,114.93 L119.259,114.733 L119.557,114.535 L119.852,114.337 L120.147,114.24 L120.243,114.141 L120.347,114.141 L120.243,114.141 L120.047,114.141 L119.557,114.24 L119.259,114.337 L118.865,114.437 L118.569,114.535 L118.366,114.634 L118.272,114.733 L118.074,114.733 L117.977,114.832 L117.876,114.93 L117.681,115.227 L117.481,115.326 L117.38,115.326 L117.283,115.326 L117.184,115.326 L117.184,115.227 L117.184,114.93 L117.184,114.733 L117.283,114.437 L117.38,114.24 L117.578,113.844 L117.578,113.745 L117.578,113.548 L117.681,113.449 L117.681,113.252 L117.778,113.152 L117.778,112.955 L117.778,112.856 L117.778,112.757 L117.778,112.659 L117.778,112.56 L117.778,112.659 L117.778,112.757 L117.778,112.856 L117.578,113.054 L117.481,113.252 L117.38,113.351 L117.283,113.548 L117.087,113.646 L117.087,113.745 L116.99,113.844 L116.791,113.943 L116.691,114.041 L116.59,114.041 L116.59,114.141 L116.59,114.24 L116.491,114.24 L116.491,114.337 L116.491,114.437 L116.491,114.535 L116.491,114.634 L116.393,114.634 L116.393,114.733 L116.296,114.733 L116.199,114.733 L116.097,114.634 L116.001,114.337 L115.9,113.943 L115.8,113.646 L115.602,113.351 L115.505,113.054 L115.505,112.955 L115.505,112.757 L115.505,112.56 L115.505,112.462 L115.505,112.363 L115.408,112.363 L115.408,114.141 L115.408,114.437 L115.408,114.535 L115.408,114.634 L115.408,114.733 L115.408,114.832 L115.307,114.832 L115.307,114.733 L115.21,114.733 L115.11,114.634 L115.11,114.437 L115.009,114.24 L114.812,113.943 L114.615,113.745 L114.518,113.548 L114.322,113.351 L114.125,113.152 L113.922,112.955 L113.628,112.757 L113.432,112.462 L113.335,112.363 L113.235,112.363 L113.235,112.265 L113.235,112.363 L113.235,112.462 L113.235,112.56 L113.335,112.659 L113.335,112.757 L113.432,112.757 L113.531,112.955 L113.531,113.054 L113.531,113.252 L113.628,113.351 L113.628,113.548 L113.628,113.745 L113.727,113.943 L113.824,114.041 L113.922,114.337 L113.922,114.437 L114.022,114.437 L114.022,114.535 L114.125,114.634 L114.223,114.634 L114.125,114.634 L114.022,114.634 L113.922,114.535 L113.628,114.24 L113.335,113.943 L112.936,113.745 L112.64,113.449 L112.447,113.252 L112.247,113.152 L112.144,112.955 L111.949,112.856 L111.755,112.757 L111.654,112.757 L111.556,112.659 L111.453,112.56 L111.356,112.56 L111.356,112.462 L111.453,112.462 L111.556,112.56 L111.556,112.757 L111.654,112.856 L111.755,113.054 L111.852,113.152 L111.949,113.351 L112.047,113.548 L112.047,113.646 L112.047,113.844 L112.144,113.943 L112.247,114.041 L112.247,114.141 L112.344,114.141 L112.344,114.24 L112.447,114.24 L112.543,114.337 L112.543,114.437 L112.543,114.535 L112.543,114.634 L112.447,114.634 L112.344,114.634 L112.047,114.437 L111.654,114.337 L111.061,114.24 L110.962,114.24 L110.666,114.24 L110.569,114.24 L110.368,114.24 L110.268,114.24 L110.072,114.24 L109.975,114.24 L109.876,114.24 L109.975,114.24 L110.171,114.337 L110.569,114.337 L110.865,114.437 L111.061,114.437 L111.061,114.535 L111.158,114.535 L111.256,114.535 L111.453,114.733 L111.556,114.733 L111.556,114.832 L111.556,114.93 L111.356,115.03 L111.158,115.129 L110.666,115.129 L110.368,115.129 L110.171,115.129 L109.876,115.129 L109.778,115.129 L109.678,115.129 L109.478,115.129 L109.38,115.227 L109.478,115.227 L109.678,115.227 L109.876,115.227 L109.975,115.227 L110.072,115.227 L110.171,115.227 L110.268,115.227 L110.569,115.227 L110.865,115.326 L111.158,115.326 L111.256,115.326 L111.256,115.424 L111.061,115.424 L110.962,115.424 L111.061,115.424 L111.158,115.424 L111.158,115.523 L111.158,115.622 L111.061,115.622 L111.061,115.721 L110.962,115.721 L110.666,115.721 L110.569,115.721 L110.465,115.721 L110.368,115.721 L110.268,115.721 L110.072,115.721 L109.778,115.721 L109.678,115.721 L109.778,115.721 L109.778,115.819 L109.876,115.819 L109.876,115.919 L109.975,115.919"},{"id":"shape:d60f3570-0859-24bf-24e2-28dcc4faffed","type":"path","transform":"rotate(-82.482, 115.326, 127.995)","fillColor":"#151515","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M112.263,129.773 L112.263,129.674 L112.362,129.477 L112.463,129.477 L112.859,129.18 L113.549,128.983 L113.944,128.983 L114.437,128.884 L115.127,128.884 L115.721,128.884 L116.314,128.884 L116.707,128.983 L116.806,128.983 L117.006,129.081 L117.204,129.18 L117.301,129.477 L117.499,129.674 L117.596,129.773 L117.596,129.97 L117.596,130.069 L117.694,130.069 L117.793,130.069 L117.896,129.97 L118.191,129.97 L118.487,129.872 L118.782,129.773 L119.18,129.674 L119.87,129.477 L120.165,129.477 L120.263,129.378 L120.463,129.378 L120.659,129.279 L120.76,129.279 L120.859,129.18 L120.957,129.18 L121.056,129.18 L120.957,129.18 L120.659,129.18 L120.362,129.18 L120.066,129.279 L119.771,129.279 L119.575,129.378 L119.277,129.378 L119.18,129.378 L119.081,129.378 L118.982,129.378 L118.883,129.378 L118.782,129.378 L118.687,129.378 L118.588,129.378 L118.487,129.378 L118.388,129.378 L118.388,129.279 L118.388,129.18 L118.588,128.884 L118.883,128.785 L119.277,128.587 L119.674,128.39 L119.969,128.193 L120.263,127.995 L120.562,127.896 L120.659,127.797 L120.76,127.797 L120.659,127.797 L120.463,127.797 L119.969,127.896 L119.674,127.995 L119.277,128.094 L118.982,128.193 L118.782,128.291 L118.687,128.39 L118.487,128.39 L118.388,128.489 L118.29,128.587 L118.094,128.884 L117.896,128.983 L117.793,128.983 L117.694,128.983 L117.596,128.983 L117.596,128.884 L117.596,128.587 L117.596,128.39 L117.694,128.094 L117.793,127.896 L117.993,127.501 L117.993,127.402 L117.993,127.205 L118.094,127.106 L118.094,126.908 L118.191,126.809 L118.191,126.612 L118.191,126.513 L118.191,126.415 L118.191,126.316 L118.191,126.217 L118.191,126.316 L118.191,126.415 L118.191,126.513 L117.993,126.711 L117.896,126.908 L117.793,127.007 L117.694,127.205 L117.499,127.303 L117.499,127.402 L117.402,127.501 L117.204,127.6 L117.105,127.698 L117.006,127.698 L117.006,127.797 L117.006,127.896 L116.907,127.896 L116.907,127.995 L116.907,128.094 L116.907,128.193 L116.907,128.291 L116.806,128.291 L116.806,128.39 L116.707,128.39 L116.61,128.39 L116.51,128.291 L116.413,127.995 L116.314,127.6 L116.215,127.303 L116.015,127.007 L115.918,126.711 L115.918,126.612 L115.918,126.415 L115.918,126.217 L115.918,126.118 L115.918,126.02 L115.819,126.02 L115.819,127.797 L115.819,128.094 L115.819,128.193 L115.819,128.291 L115.819,128.39 L115.819,128.489 L115.721,128.489 L115.721,128.39 L115.624,128.39 L115.523,128.291 L115.523,128.094 L115.424,127.896 L115.228,127.6 L115.028,127.402 L114.931,127.205 L114.734,127.007 L114.538,126.809 L114.338,126.612 L114.041,126.415 L113.846,126.118 L113.747,126.02 L113.648,126.02 L113.648,125.921 L113.648,126.02 L113.648,126.118 L113.648,126.217 L113.747,126.316 L113.747,126.415 L113.846,126.415 L113.944,126.612 L113.944,126.711 L113.944,126.908 L114.041,127.007 L114.041,127.205 L114.041,127.402 L114.14,127.6 L114.237,127.698 L114.338,127.995 L114.338,128.094 L114.437,128.094 L114.437,128.193 L114.538,128.291 L114.635,128.291 L114.538,128.291 L114.437,128.291 L114.338,128.193 L114.041,127.896 L113.747,127.6 L113.349,127.402 L113.053,127.106 L112.859,126.908 L112.661,126.809 L112.56,126.612 L112.362,126.513 L112.166,126.415 L112.068,126.415 L111.969,126.316 L111.868,126.217 L111.771,126.217 L111.771,126.118 L111.868,126.118 L111.969,126.217 L111.969,126.415 L112.068,126.513 L112.166,126.711 L112.263,126.809 L112.362,127.007 L112.463,127.205 L112.463,127.303 L112.463,127.501 L112.56,127.6 L112.661,127.698 L112.661,127.797 L112.758,127.797 L112.758,127.896 L112.859,127.896 L112.956,127.995 L112.956,128.094 L112.956,128.193 L112.956,128.291 L112.859,128.291 L112.758,128.291 L112.463,128.094 L112.068,127.995 L111.472,127.896 L111.374,127.896 L111.079,127.896 L110.982,127.896 L110.784,127.896 L110.681,127.896 L110.485,127.896 L110.388,127.896 L110.29,127.896 L110.388,127.896 L110.584,127.995 L110.982,127.995 L111.277,128.094 L111.472,128.094 L111.472,128.193 L111.571,128.193 L111.672,128.193 L111.868,128.39 L111.969,128.39 L111.969,128.489 L111.969,128.587 L111.771,128.686 L111.571,128.785 L111.079,128.785 L110.784,128.785 L110.584,128.785 L110.29,128.785 L110.191,128.785 L110.092,128.785 L109.894,128.785 L109.793,128.884 L109.894,128.884 L110.092,128.884 L110.29,128.884 L110.388,128.884 L110.485,128.884 L110.584,128.884 L110.681,128.884 L110.982,128.884 L111.277,128.983 L111.571,128.983 L111.672,128.983 L111.672,129.081 L111.472,129.081 L111.374,129.081 L111.472,129.081 L111.571,129.081 L111.571,129.18 L111.571,129.279 L111.472,129.279 L111.472,129.378 L111.374,129.378 L111.079,129.378 L110.982,129.378 L110.881,129.378 L110.784,129.378 L110.681,129.378 L110.485,129.378 L110.191,129.378 L110.092,129.378 L110.191,129.378 L110.191,129.477 L110.29,129.477 L110.29,129.575 L110.388,129.575"}] \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/oyegroup.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/oyegroup.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{"type":"doc","left":0,"top":0,"width":160,"height":160,"viewBox":"0 0 160 160","bgcolor":"#111122","title":"","link":"","meta":""},{"id":"shape:ab1d9da6-df50-e719-85d8-3132c41995a6","type":"roundrect","transform":"","fillColor":"#d4848b","filter":null,"lineColor":"#0000ff","fillOpac":null,"lineOpac":null,"lineWidth":null,"rx":18,"ry":18,"left":3.77578,"top":1.58459,"width":152.086,"height":156.346},{"id":"shape:01e577af-c9c5-d4f3-e964-797a631e9738","type":"roundrect","transform":"","fillColor":"#00f3dc","filter":null,"lineColor":"#dcff00","fillOpac":null,"lineOpac":null,"lineWidth":3,"rx":18,"ry":18,"left":8.46476,"top":6.99467,"width":142.101,"height":146.081},{"id":"shape:048cd47a-0f84-2b2a-53a5-f17f6b6cfaed","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M34.4828,17.5172 L33.6552,17.5172 L29.931,18.7586 L25.3793,24.9655 L24.5517,29.931 L24.9655,33.2414 L29.1034,35.3103 L34.8966,36.5517 L37.3793,36.5517 L37.7931,36.1379 L38.2069,36.1379 L38.2069,35.7241 L38.6207,35.3103 L39.4483,33.6552 L39.8621,31.5862 L39.8621,28.2759 L39.8621,24.9655 L39.4483,23.7241 L39.0345,22.8966 L38.6207,21.2414 L38.2069,20.4138 L37.7931,20 L37.3793,19.5862 L36.9655,19.5862 L36.9655,19.1724 L36.5517,19.1724 L36.1379,19.1724 L35.7241,18.7586 L35.3103,18.3448 L34.8966,17.931 L34.069,17.5172 L33.2414,17.5172 L32.8276,17.5172 L32.4138,17.5172 L32.4138,17.1034 L32,17.1034 L31.5862,17.1034"},{"id":"shape:60ae1ab4-0eeb-da30-2d79-9f2d504e2508","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M41.1034,27.8621 L41.1034,28.2759 L41.1034,28.6897 L41.1034,29.1034 L41.1034,29.5172 L41.1034,29.931 L41.1034,30.3448 L41.1034,30.7586 L41.5172,31.1724 L41.5172,31.5862 L41.931,31.5862 L42.7586,31.5862 L43.5862,31.5862 L44,31.5862 L44.4138,31.5862 L44.8276,31.1724 L45.6552,29.931 L46.069,28.6897 L46.069,28.2759 L46.069,27.0345 L46.069,27.4483 L46.069,29.5172 L46.069,32.4138 L46.069,35.7241 L46.069,39.0345 L45.6552,39.4483 L44.8276,39.4483 L43.1724,39.0345 L41.931,37.3793 L41.1034,36.5517 L40.6897,35.3103 L41.931,34.8966 L44,34.069 L46.069,34.069 L48.5517,33.2414 L49.3793,32.8276 L49.3793,32.4138 L48.9655,31.5862 L48.1379,30.7586 L48.5517,30.7586 L50.2069,30.7586 L53.1034,30.7586 L55.1724,30.7586 L56.4138,29.931 L56.4138,29.5172 L55.5862,28.6897 L54.7586,28.2759 L53.5172,27.8621 L52.2759,27.4483 L51.8621,27.4483 L51.4483,27.4483 L51.0345,27.8621 L50.6207,28.6897 L50.2069,29.5172 L49.7931,30.3448 L49.7931,31.1724 L49.7931,31.5862 L50.2069,32 L51.0345,32.4138 L52.2759,32.8276 L54.7586,33.2414 L56,33.2414 L57.2414,33.2414 L57.6552,33.2414 L57.6552,32.8276"},{"id":"shape:b902d3ee-e720-ea2b-e7b5-bbe4ee8a1c5a","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M62.2069,32 L62.2069,32.4138 L61.7931,33.6552 L61.7931,34.4828 L61.7931,35.3103"},{"id":"shape:92801257-f3f0-4330-8e23-054af5622308","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M32,45.6552 L32,46.069 L31.1724,49.3793 L30.3448,53.931 L29.931,57.2414 L29.5172,59.3103 L29.5172,60.5517 L29.1034,60.5517 L28.6897,60.5517"},{"id":"shape:ae6d2f90-80a2-0cc7-0c5c-bd9e3fe4d3b9","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M31.5862,45.6552 L32,46.069 L32.4138,47.7241 L32.8276,49.3793 L32.8276,50.6207 L33.2414,50.2069 L33.2414,49.7931 L33.6552,49.7931 L34.069,48.9655 L35.7241,47.3103 L36.1379,46.4828 L36.1379,46.069 L36.9655,45.2414 L37.3793,44.8276 L37.3793,44.4138 L37.7931,44.4138 L37.7931,45.2414 L37.7931,47.7241 L38.6207,51.0345 L38.6207,53.931 L38.6207,56.4138 L38.6207,58.069 L39.0345,58.8966 L39.4483,58.8966 L39.8621,59.3103 L40.6897,59.7241 L41.1034,59.7241 L41.931,59.7241 L42.7586,59.7241 L43.1724,59.3103 L43.1724,58.8966"},{"id":"shape:1d48cf48-ce8a-afdd-6294-66028973643f","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M43.1724,54.7586 L44,54.7586 L45.6552,54.7586 L47.3103,54.7586 L48.5517,54.7586 L49.3793,54.3448 L49.7931,53.931 L48.9655,53.5172 L47.7241,52.6897 L46.069,52.6897 L45.2414,52.2759 L44.4138,52.2759 L43.5862,52.6897 L43.5862,53.5172 L43.5862,55.5862 L44,57.2414 L44,57.6552 L45.2414,58.069 L46.4828,58.069 L47.7241,58.069 L49.3793,58.069 L50.2069,58.069 L50.2069,57.6552 L50.6207,56.8276"},{"id":"shape:bb928351-acad-8c4a-9d8a-537d109ce220","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M64.6897,52.2759 L63.8621,52.2759 L62.6207,52.2759 L61.7931,52.2759 L61.3793,52.6897 L61.3793,53.931 L61.7931,55.1724 L62.6207,56.4138 L63.8621,56.8276 L63.8621,57.2414 L64.2759,56.4138 L64.2759,55.5862 L64.6897,53.931 L64.6897,53.5172 L64.2759,52.2759 L64.2759,52.6897 L64.2759,53.5172 L64.6897,55.5862 L65.5172,56.4138 L65.931,56.8276 L66.7586,56.8276 L69.6552,56.8276 L72.1379,56 L73.3793,54.3448 L75.0345,52.6897 L76.6897,50.2069 L76.6897,49.3793 L76.6897,48.5517 L75.8621,46.8966 L75.8621,45.6552 L75.0345,44.8276 L74.2069,44 L73.7931,44 L73.3793,44 L73.3793,44.4138 L73.3793,45.6552 L73.3793,48.1379 L73.3793,50.6207 L73.3793,52.2759 L73.3793,54.3448 L73.3793,55.1724 L73.3793,56.4138 L73.3793,57.2414 L73.3793,58.069 L73.7931,58.069 L74.6207,58.069 L75.8621,57.6552 L77.931,57.2414 L78.7586,56.4138 L79.5862,55.5862 L79.5862,55.1724 L80,55.1724 L81.6552,55.1724 L84.1379,54.7586 L84.5517,53.931 L84.9655,53.5172 L84.9655,53.1034 L84.5517,52.2759 L82.4828,51.8621 L81.6552,51.8621 L80.4138,52.2759 L79.5862,52.2759 L79.1724,53.1034 L79.1724,53.931 L79.1724,54.7586 L79.1724,55.5862 L79.1724,56.8276 L79.5862,56.8276 L80.8276,57.2414 L83.3103,57.2414 L84.5517,57.2414 L85.3793,57.2414 L85.3793,56.8276 L84.9655,56.4138"},{"id":"shape:256214ee-6f63-e6da-156e-aab92c106062","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M90.7586,52.2759 L90.3448,52.2759 L89.5172,52.2759 L88.6897,52.2759 L87.8621,52.2759 L87.4483,52.6897 L86.6207,53.1034 L85.7931,54.3448 L85.7931,54.7586 L85.7931,56 L85.7931,56.4138 L86.6207,56.8276 L87.4483,57.2414 L87.8621,57.2414 L89.931,56.8276 L90.7586,55.1724 L90.7586,53.931 L90.7586,53.5172 L91.1724,52.6897 L91.1724,52.2759 L91.1724,51.8621 L91.1724,52.2759 L91.1724,53.5172 L91.1724,56 L91.1724,58.4828 L91.1724,60.1379 L91.1724,62.6207 L91.1724,63.8621 L90.7586,64.6897 L90.3448,65.1034 L89.931,65.1034 L89.5172,65.1034 L88.2759,64.2759 L87.4483,63.4483 L87.0345,62.6207 L87.0345,60.9655 L87.4483,59.3103 L89.1034,58.069 L91.5862,56.4138 L93.6552,55.1724 L94.8966,54.3448 L96.1379,53.1034 L96.5517,52.6897 L96.5517,51.8621 L96.9655,51.4483 L96.5517,51.4483 L95.7241,51.8621 L95.7241,52.2759 L95.7241,52.6897 L95.7241,53.5172 L96.1379,53.5172 L98.2069,53.5172 L99.0345,53.5172 L99.4483,53.5172 L99.4483,53.931 L99.4483,55.1724 L99.4483,55.5862 L99.4483,56.4138 L99.4483,57.2414 L99.4483,57.6552 L99.8621,57.6552 L100.69,57.6552 L101.931,57.2414 L102.759,56.4138 L103.586,54.7586 L103.586,53.1034 L104,52.6897 L104,53.1034 L103.586,53.931 L103.586,55.5862 L104,56.4138 L105.241,56.4138 L107.724,56.4138 L108.966,56.4138 L109.379,54.7586 L109.379,53.1034 L108.552,51.0345 L108.138,51.0345 L107.31,51.0345 L106.069,51.0345 L105.655,51.0345 L106.483,53.1034 L106.897,53.1034 L108.138,53.1034 L109.793,53.1034 L110.621,52.6897 L111.448,52.2759 L111.862,51.8621 L112.276,51.4483 L112.69,51.4483"},{"id":"shape:0b318bca-b49a-73c7-6811-7f6ecccc3586","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M129.241,51.0345 L129.241,51.4483 L128,51.4483 L127.586,51.8621 L126.759,52.2759 L125.931,52.2759 L125.931,52.6897 L125.931,53.5172 L125.931,54.3448 L125.931,55.1724 L125.931,55.5862 L126.345,55.5862 L127.172,56 L127.586,56 L128.414,55.5862 L128.828,55.5862 L129.655,54.7586 L130.069,53.931 L130.069,52.6897 L130.069,51.4483 L129.655,49.7931 L129.655,49.3793 L129.655,48.5517 L129.655,47.7241 L129.655,47.3103 L130.069,47.3103 L130.069,48.1379 L130.483,49.7931 L130.897,51.0345 L130.897,52.2759 L130.897,53.5172 L130.897,53.931 L130.897,54.7586 L130.897,55.1724 L130.897,55.5862 L131.31,55.5862 L131.724,55.5862 L132.552,56 L133.379,56 L134.207,56 L134.621,55.5862 L134.621,55.1724 L134.207,55.1724 L134.207,54.7586 L134.621,54.7586 L136.276,54.7586 L137.103,54.7586 L138.759,54.3448 L139.172,53.931 L139.172,53.5172 L139.172,53.1034 L139.172,52.2759 L139.172,51.8621 L138.759,51.4483 L138.345,50.6207 L137.931,50.6207 L137.517,50.6207 L137.103,50.6207 L136.276,50.6207 L135.862,51.0345 L134.621,51.8621 L134.207,52.2759 L134.207,52.6897 L134.207,53.5172 L134.207,54.3448 L134.207,55.5862 L134.207,56.4138 L134.621,56.4138 L135.034,56.4138 L135.862,56.4138 L136.69,56.8276 L137.517,56.8276 L138.345,56.8276 L138.759,56.8276 L139.172,56.8276 L139.172,56.4138 L139.172,56"},{"id":"shape:c75d607a-849b-6ccb-706c-a9fec1f141c3","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M28.6897,70.4828 L28.6897,70.8966 L29.1034,73.7931 L29.1034,76.6897 L29.5172,77.1034 L30.3448,77.1034 L31.5862,77.1034 L32,76.6897 L32.8276,75.0345 L32.8276,73.3793 L32.8276,72.1379 L33.2414,71.7241 L33.6552,71.7241 L35.3103,72.1379 L36.9655,72.1379 L39.4483,72.1379 L40.2759,72.1379 L41.1034,72.1379 L41.1034,71.7241 L41.1034,70.8966 L41.1034,70.4828 L41.1034,70.069 L40.2759,69.6552 L39.8621,69.6552 L39.0345,69.6552 L38.6207,70.069 L37.7931,71.3103 L37.7931,72.5517 L37.3793,73.3793 L37.3793,74.6207 L37.7931,75.0345 L39.8621,75.4483 L41.931,75.4483 L44.4138,75.0345 L44.8276,74.2069 L45.2414,72.5517 L45.2414,71.3103 L45.2414,70.4828 L45.2414,70.069 L45.2414,70.4828 L45.6552,70.4828 L47.7241,70.4828 L49.7931,70.4828 L49.7931,70.8966 L49.7931,71.3103 L49.7931,72.1379 L49.3793,74.2069 L49.3793,75.4483 L49.7931,75.4483 L50.2069,75.4483 L50.6207,75.4483 L51.0345,75.4483 L51.8621,74.6207 L52.6897,73.7931 L53.1034,73.3793 L53.931,72.1379 L54.3448,70.4828 L54.3448,68.8276 L54.3448,67.1724 L54.7586,65.1034 L54.7586,64.2759 L54.7586,64.6897 L54.7586,67.1724 L54.7586,70.4828 L54.7586,72.1379 L54.7586,74.2069 L54.7586,75.0345 L55.5862,75.0345 L57.2414,75.0345 L58.8966,75.0345 L61.7931,75.0345 L62.2069,74.2069 L61.7931,73.7931 L60.9655,72.5517 L60.9655,72.1379 L62.6207,72.1379 L64.6897,72.1379 L65.931,71.7241 L66.3448,70.8966 L65.1034,69.2414 L64.2759,68.8276 L63.0345,69.2414 L62.2069,71.3103 L62.2069,72.5517 L63.0345,74.6207 L63.4483,75.0345 L65.1034,75.8621 L66.3448,75.8621 L66.7586,75.8621 L67.1724,75.8621 L69.2414,75.8621 L69.2414,75.4483 L68.8276,74.6207"},{"id":"shape:27dcd203-837f-5a62-2266-cac6cf3ae24d","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M52.6897,67.5862 L53.1034,67.5862 L55.1724,67.5862 L56.4138,67.5862 L56.8276,67.5862 L57.2414,67.5862 L56.8276,67.5862"},{"id":"shape:33f13849-6a47-2ec4-69de-4924c46a01b4","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M87.8621,72.9655 L87.4483,72.9655 L86.2069,72.9655 L84.9655,73.3793 L83.7241,74.6207 L83.3103,75.4483 L83.7241,76.6897 L84.5517,77.5172 L84.5517,77.931 L85.7931,76.2759 L87.0345,75.8621 L88.2759,74.6207 L89.1034,73.3793 L89.5172,71.7241 L89.5172,70.069 L88.2759,69.2414 L87.8621,68.4138 L88.2759,68.8276 L89.5172,72.1379 L89.931,74.6207 L89.931,75.4483 L89.931,75.8621 L90.3448,76.6897 L90.7586,77.1034 L91.1724,77.1034 L91.5862,77.1034 L92,77.1034 L92.4138,77.1034 L92.8276,76.6897 L93.2414,75.8621 L93.6552,75.4483 L94.069,75.4483 L94.8966,75.4483 L96.1379,75.4483 L96.9655,75.4483 L98.2069,75.4483 L98.6207,74.6207 L99.0345,74.2069 L99.0345,73.3793 L97.7931,72.5517 L96.5517,72.1379 L96.1379,72.1379 L95.7241,72.1379 L95.3103,72.9655 L94.8966,73.3793 L94.8966,74.2069 L94.4828,74.6207 L94.4828,75.8621 L95.3103,76.2759 L95.7241,76.2759 L96.1379,76.2759 L96.9655,76.2759 L97.3793,76.2759 L97.7931,76.2759 L98.6207,76.6897 L99.4483,76.6897 L99.8621,76.6897 L100.69,76.6897 L101.931,76.6897 L102.345,76.6897 L102.759,76.6897 L102.759,76.2759 L102.759,75.0345"},{"id":"shape:b7b233e5-cc4e-a446-6797-bd7c81304794","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M27.8621,85.3793 L27.8621,85.7931 L27.8621,88.2759 L27.8621,91.1724 L27.8621,92.4138 L27.8621,92.8276"},{"id":"shape:5c6c6e75-80c0-6866-7b3f-2afae2503f10","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M27.4483,88.6897 L27.8621,88.6897 L28.6897,87.8621 L29.5172,87.0345 L31.1724,86.6207 L31.5862,86.2069 L32.4138,86.6207 L32.8276,88.2759 L32.8276,90.7586 L32.8276,91.5862 L33.2414,91.5862 L35.3103,91.5862 L36.9655,91.1724 L37.3793,89.931 L37.7931,89.1034 L37.7931,88.6897 L36.9655,88.2759 L36.9655,87.8621 L36.9655,88.2759 L36.9655,89.931 L37.3793,91.5862 L37.7931,92 L39.0345,92.4138 L41.1034,92.4138 L42.3448,92 L42.3448,90.3448 L42.3448,88.6897 L42.3448,87.8621 L42.3448,87.4483 L42.3448,87.8621 L42.3448,90.3448 L42.3448,91.5862 L43.1724,92 L45.2414,91.5862 L46.8966,89.5172 L46.8966,89.1034 L46.4828,88.6897 L50.2069,88.6897 L51.8621,88.6897 L52.2759,87.8621 L52.2759,87.0345 L52.2759,86.6207 L51.4483,86.2069 L51.0345,85.7931 L49.7931,85.7931 L48.9655,85.7931 L47.7241,85.7931 L47.3103,86.6207 L46.8966,87.4483 L46.8966,88.6897 L46.8966,89.931 L47.3103,91.1724 L48.1379,91.5862 L48.9655,92 L49.7931,92 L51.0345,92 L51.8621,92 L53.1034,91.5862 L54.3448,90.7586 L55.1724,89.931 L55.5862,88.6897 L55.5862,87.8621 L55.5862,87.4483 L55.5862,87.8621 L55.5862,88.6897 L55.5862,90.7586 L55.5862,91.1724 L56,91.1724 L56.4138,91.1724 L57.6552,91.1724 L58.4828,91.1724 L58.8966,89.5172 L58.8966,88.2759 L58.8966,87.4483 L58.8966,87.0345 L59.3103,87.0345 L59.7241,87.0345 L60.1379,87.0345 L61.3793,87.0345 L62.2069,87.0345 L62.6207,87.0345 L63.0345,87.0345 L63.4483,87.0345 L63.4483,87.4483 L63.4483,88.2759 L63.4483,89.931 L63.4483,91.1724 L64.2759,92 L65.5172,92 L67.1724,92 L67.5862,91.1724 L67.5862,90.3448 L67.5862,89.1034 L67.1724,87.8621 L66.3448,87.4483 L65.1034,86.6207 L64.2759,86.6207 L63.4483,86.6207 L63.4483,86.2069 L63.4483,87.4483 L63.4483,87.8621 L64.6897,88.2759 L67.1724,88.2759 L68.8276,88.2759 L70.8966,87.8621 L71.7241,87.4483 L71.7241,87.0345 L71.7241,86.2069"},{"id":"shape:b67d75ea-2598-59df-852f-8d8001a2eca8","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M85.7931,89.1034 L86.2069,89.931 L86.2069,94.8966 L86.2069,100.69 L86.2069,102.345 L85.7931,101.931 L84.9655,100.69"},{"id":"shape:dd0e1b45-4cb3-8d63-e647-395c65474fef","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M84.9655,89.1034 L85.3793,89.1034 L87.8621,88.2759 L89.1034,88.2759 L90.3448,88.6897 L90.7586,89.931 L90.7586,92 L89.931,92.8276 L88.6897,92.8276 L87.4483,92.8276 L86.6207,92.8276 L86.2069,92.8276"},{"id":"shape:fd37ef58-c15d-7c66-ca7a-872d89ba5f95","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M94.4828,89.931 L94.069,89.931 L93.6552,89.931 L93.6552,90.7586 L92.8276,92 L92.8276,93.2414 L92.8276,94.069 L93.2414,94.4828 L94.4828,94.4828 L95.3103,94.4828 L96.1379,94.4828 L96.5517,93.6552 L96.5517,92 L96.5517,91.5862 L95.7241,90.7586 L95.7241,90.3448 L94.8966,89.931 L94.4828,89.1034 L94.069,89.1034 L94.069,89.5172 L94.069,89.931 L94.069,90.3448 L94.4828,90.3448 L95.3103,90.3448 L96.9655,90.3448 L98.2069,90.3448 L99.0345,90.3448 L99.8621,90.3448 L99.8621,89.5172 L99.8621,88.6897 L99.4483,88.6897 L98.6207,87.8621 L98.2069,87.8621 L97.7931,87.8621 L97.7931,88.2759 L98.2069,89.1034 L99.0345,89.5172 L101.103,90.3448 L101.931,90.7586 L101.931,91.1724 L101.931,91.5862 L101.931,92.8276 L101.931,94.069 L101.931,94.8966 L102.759,95.7241 L103.172,95.7241 L103.586,95.7241 L104.828,95.7241 L105.241,95.7241 L105.241,94.4828"},{"id":"shape:711043f4-75ee-e388-2d7f-5884451df045","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M116,89.1034 L115.586,89.1034 L113.517,89.931 L112.276,91.5862 L114.345,94.069 L114.759,94.069 L115.586,94.069 L116,93.6552 L116.414,93.2414 L116.828,92.4138 L116.828,92 L116.828,91.1724 L116,89.931 L116,89.5172 L116.414,89.5172 L116.828,91.5862 L116.828,93.2414 L117.241,94.4828 L118.069,94.8966 L118.897,94.8966 L119.724,94.8966 L120.552,94.4828 L120.966,94.4828 L121.379,94.069 L121.793,93.6552 L121.379,93.6552 L121.379,93.2414"},{"id":"shape:d13f5e01-8441-db78-026f-b40581ab41ab","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M122.621,88.6897 L122.207,88.6897 L121.379,89.931 L120.552,90.7586 L120.552,91.5862 L120.552,92.4138 L120.552,92.8276 L121.379,93.6552 L123.034,93.6552 L124.69,94.4828 L125.931,94.4828 L126.345,94.4828 L127.172,93.6552 L127.172,92.8276 L127.172,92 L127.172,91.1724 L127.172,90.3448 L126.345,89.1034 L125.517,88.2759 L124.69,88.2759 L124.69,87.8621 L123.862,87.4483 L123.448,87.4483 L123.034,87.4483 L122.621,87.8621 L121.793,88.2759"},{"id":"shape:d69ee6ed-d775-fb17-a0d0-e2956449d0c0","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M126.759,90.7586 L126.759,92 L126.759,96.9655 L125.931,99.8621 L125.931,101.517 L125.931,102.759 L125.931,104.414 L125.931,105.655 L125.931,106.069 L125.931,106.483 L125.931,106.069 L125.517,105.241"},{"id":"shape:e0c4a3f8-6608-234a-8ddf-6058d762979c","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M123.862,100.69 L124.69,100.69 L126.759,100.69 L128,100.276 L128,99.8621"},{"id":"shape:5ee9d0d0-787b-af96-6c9b-623deba95b04","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M126.759,93.2414 L127.172,93.2414 L128.828,93.2414 L129.655,92.8276 L129.655,91.5862 L129.655,90.7586 L129.655,89.1034 L129.655,88.2759 L130.069,87.8621 L130.069,87.4483 L130.483,87.4483 L130.483,87.8621 L130.483,88.2759 L130.483,89.5172 L130.483,90.3448 L130.483,91.1724 L130.483,92 L130.483,92.4138 L130.897,92.4138 L131.724,92.4138 L132.552,92.4138 L133.793,92.4138 L134.621,91.1724 L135.034,89.931 L135.034,88.2759 L135.034,87.8621 L135.034,88.2759 L135.034,89.5172 L135.034,91.5862 L135.034,92.4138 L135.034,92.8276 L135.448,92.8276 L136.69,92.8276 L137.931,92.8276 L139.172,92.4138 L140,90.7586 L140.414,89.5172 L140.414,88.2759 L140.414,87.8621 L140.414,88.2759 L140.414,89.1034 L140.414,89.931 L140.414,90.7586 L140.414,91.5862 L140.414,92 L140.414,92.4138 L140.828,92.8276 L141.241,93.2414 L141.655,93.2414 L142.069,93.2414 L142.069,92.4138 L142.483,91.5862"},{"id":"shape:a72777d3-7da4-b732-fa2d-fece9aad70b0","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M141.655,83.7241 L142.483,82.8966 L143.724,81.6552 L143.724,80.8276"},{"id":"shape:11cf070b-038e-7a3e-1edb-308f39712ef5","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M72.5517,114.759 L75.4483,114.759 L80.4138,121.793 L75.0345,128.414 L63.8621,125.103 L58.4828,121.793 L61.7931,119.31 L75.0345,119.31 L77.931,119.724 L77.5172,119.724 L67.1724,117.655 L61.3793,116.414 L63.4483,117.241 L77.931,118.897 L78.7586,118.897 L73.7931,118.483 L74.2069,117.655 L82.8966,116.414 L87.0345,116.414 L87.0345,115.586 L87.8621,114.759 L88.2759,115.172 L85.3793,116 L82.4828,116 L81.6552,116 L82.069,116 L88.2759,116 L89.5172,116 L88.6897,116.414 L89.1034,116.414 L99.4483,116.414 L105.241,116.414 L96.5517,117.655 L84.9655,121.379 L66.3448,125.103 L56.8276,125.517 L51.4483,125.517 L48.1379,125.517 L47.7241,125.517 L48.1379,124.69 L58.4828,123.862 L75.0345,125.103 L87.0345,128 L88.6897,128 L90.7586,128"},{"id":"shape:1629f024-c7ec-ee06-39b5-36ac4ad1d1ca","type":"ellipse","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":7.65166,"height":8.01292,"left":115.69217,"top":111.40454},{"id":"shape:3d38d55b-525c-6834-de75-491e59dc75ba","type":"path","transform":"rotate(-99.0766, 136.51, 121.853)","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M126.398,116.368 C127.133,122.561 131.41,127.337 136.602,127.337 C141.427,127.337 145.482,123.209 146.623,117.649 C144.494,120.884 140.925,123.02 136.873,123.02 C132.307,123.02 128.357,120.304 126.398,116.368 z"},{"id":"face","type":"group","transform":"","fillColor":"#f8faf9","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":200,"height":200,"left":0,"top":0},{"id":"shape:23cd9885-30a5-6365-44cc-30f6e342cad6","type":"ellipse","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":7.34276,"height":8.00534,"left":115.69162,"top":124.64433,"parent":"face"},{"id":"face:1629f024-c7ec-ee06-39b5-36ac4ad1d1ca","type":"ellipse","transform":"","fillColor":"#f8faf9","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":7.65166,"height":8.01292,"left":115.27817,"top":111.39753999999999,"parent":"face"},{"id":"shape:23cd9885-30a5-6365-44cc-30f6e342cad6","type":"ellipse","transform":"","fillColor":"#fefefe","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":7.34276,"height":8.00534,"left":115.69162,"top":124.64433,"parent":"face"},{"id":"shape:491b9a26-642c-c291-ee0b-e8ed20c263fc","type":"ellipse","transform":"","fillColor":"#007baa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":5.7931,"height":6.62068,"left":115.58645,"top":111.44866,"parent":"face"},{"id":"shape:3d38d55b-525c-6834-de75-491e59dc75ba","type":"path","transform":"rotate(-99.0766, 136.51, 121.853)","fillColor":"#f5f5f5","filter":null,"lineColor":"#ff3f00","fillOpac":null,"lineOpac":null,"lineWidth":3,"points":"M126.398,116.368 C127.133,122.561 131.41,127.337 136.602,127.337 C141.427,127.337 145.482,123.209 146.623,117.649 C144.494,120.884 140.925,123.02 136.873,123.02 C132.307,123.02 128.357,120.304 126.398,116.368 z","parent":"face"},{"id":"shape:b1e72a1c-89f2-1e18-e6c2-9182852ae66d","type":"ellipse","transform":"","fillColor":"#007baa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":5.7931,"height":6.62068,"left":116.00045,"top":124.68866,"parent":"face"},{"id":"shape:aedd3e29-0e01-8ab4-cf5d-e8a57f0fc9b0","type":"ellipse","transform":"","fillColor":"#232625","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":3.72414,"height":3.72414,"left":116.41393,"top":112.68993,"parent":"face"},{"id":"shape:27551e24-f321-88ee-5c98-e7f65106c2f6","type":"ellipse","transform":"","fillColor":"#232625","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":3.72414,"height":3.72414,"left":116.82793,"top":125.92893,"parent":"face"},{"id":"shape:da441732-f0e4-c7ea-c336-76a27b63e8e6","type":"ellipse","transform":"","fillColor":"#ffffd4","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":1.24138,"height":1.24138,"left":116.82731,"top":112.68931,"parent":"face"},{"id":"shape:8bd41a83-0c46-1dca-4de7-7dd18d3c4a4e","type":"ellipse","transform":"","fillColor":"#ffffd4","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":1.24138,"height":1.24138,"left":117.24131,"top":126.34331,"parent":"face"},{"id":"shape:2b4b7814-67d0-94ea-3163-a9bd12df5782","type":"path","transform":"rotate(-99.0766, 138.868, 121.868)","fillColor":"#292929","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M131.777,118.023 C132.292,122.364 135.291,125.712 138.934,125.712 C142.318,125.712 145.163,122.815 145.96,118.923 C144.468,121.188 141.962,122.688 139.123,122.688 C135.917,122.688 133.15,120.79 131.777,118.023 z","parent":"face"},{"id":"shape:0298f344-5c78-f7d9-3e77-048b69f17c9c","type":"ellipse","transform":"","fillColor":"#ff2200","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":3,"width":11.5862,"height":6.62068,"left":122.62089999999999,"top":118.48266000000001,"parent":"face"},{"id":"shape:2d6da671-516e-c3c9-5f0d-70522d242f28","type":"path","transform":"rotate(-82.482, 114.913, 114.339)","fillColor":"#151515","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M111.852,116.116 L111.852,116.018 L111.949,115.819 L112.047,115.819 L112.447,115.523 L113.134,115.326 L113.531,115.326 L114.022,115.227 L114.714,115.227 L115.307,115.227 L115.9,115.227 L116.296,115.326 L116.393,115.326 L116.59,115.424 L116.791,115.523 L116.889,115.819 L117.087,116.018 L117.184,116.116 L117.184,116.313 L117.184,116.412 L117.283,116.412 L117.38,116.412 L117.481,116.313 L117.778,116.313 L118.074,116.214 L118.366,116.116 L118.766,116.018 L119.457,115.819 L119.753,115.819 L119.852,115.721 L120.047,115.721 L120.243,115.622 L120.347,115.622 L120.446,115.523 L120.544,115.523 L120.643,115.523 L120.544,115.523 L120.243,115.523 L119.949,115.523 L119.654,115.622 L119.356,115.622 L119.159,115.721 L118.865,115.721 L118.766,115.721 L118.669,115.721 L118.569,115.721 L118.469,115.721 L118.366,115.721 L118.272,115.721 L118.172,115.721 L118.074,115.721 L117.977,115.721 L117.977,115.622 L117.977,115.523 L118.172,115.227 L118.469,115.129 L118.865,114.93 L119.259,114.733 L119.557,114.535 L119.852,114.337 L120.147,114.24 L120.243,114.141 L120.347,114.141 L120.243,114.141 L120.047,114.141 L119.557,114.24 L119.259,114.337 L118.865,114.437 L118.569,114.535 L118.366,114.634 L118.272,114.733 L118.074,114.733 L117.977,114.832 L117.876,114.93 L117.681,115.227 L117.481,115.326 L117.38,115.326 L117.283,115.326 L117.184,115.326 L117.184,115.227 L117.184,114.93 L117.184,114.733 L117.283,114.437 L117.38,114.24 L117.578,113.844 L117.578,113.745 L117.578,113.548 L117.681,113.449 L117.681,113.252 L117.778,113.152 L117.778,112.955 L117.778,112.856 L117.778,112.757 L117.778,112.659 L117.778,112.56 L117.778,112.659 L117.778,112.757 L117.778,112.856 L117.578,113.054 L117.481,113.252 L117.38,113.351 L117.283,113.548 L117.087,113.646 L117.087,113.745 L116.99,113.844 L116.791,113.943 L116.691,114.041 L116.59,114.041 L116.59,114.141 L116.59,114.24 L116.491,114.24 L116.491,114.337 L116.491,114.437 L116.491,114.535 L116.491,114.634 L116.393,114.634 L116.393,114.733 L116.296,114.733 L116.199,114.733 L116.097,114.634 L116.001,114.337 L115.9,113.943 L115.8,113.646 L115.602,113.351 L115.505,113.054 L115.505,112.955 L115.505,112.757 L115.505,112.56 L115.505,112.462 L115.505,112.363 L115.408,112.363 L115.408,114.141 L115.408,114.437 L115.408,114.535 L115.408,114.634 L115.408,114.733 L115.408,114.832 L115.307,114.832 L115.307,114.733 L115.21,114.733 L115.11,114.634 L115.11,114.437 L115.009,114.24 L114.812,113.943 L114.615,113.745 L114.518,113.548 L114.322,113.351 L114.125,113.152 L113.922,112.955 L113.628,112.757 L113.432,112.462 L113.335,112.363 L113.235,112.363 L113.235,112.265 L113.235,112.363 L113.235,112.462 L113.235,112.56 L113.335,112.659 L113.335,112.757 L113.432,112.757 L113.531,112.955 L113.531,113.054 L113.531,113.252 L113.628,113.351 L113.628,113.548 L113.628,113.745 L113.727,113.943 L113.824,114.041 L113.922,114.337 L113.922,114.437 L114.022,114.437 L114.022,114.535 L114.125,114.634 L114.223,114.634 L114.125,114.634 L114.022,114.634 L113.922,114.535 L113.628,114.24 L113.335,113.943 L112.936,113.745 L112.64,113.449 L112.447,113.252 L112.247,113.152 L112.144,112.955 L111.949,112.856 L111.755,112.757 L111.654,112.757 L111.556,112.659 L111.453,112.56 L111.356,112.56 L111.356,112.462 L111.453,112.462 L111.556,112.56 L111.556,112.757 L111.654,112.856 L111.755,113.054 L111.852,113.152 L111.949,113.351 L112.047,113.548 L112.047,113.646 L112.047,113.844 L112.144,113.943 L112.247,114.041 L112.247,114.141 L112.344,114.141 L112.344,114.24 L112.447,114.24 L112.543,114.337 L112.543,114.437 L112.543,114.535 L112.543,114.634 L112.447,114.634 L112.344,114.634 L112.047,114.437 L111.654,114.337 L111.061,114.24 L110.962,114.24 L110.666,114.24 L110.569,114.24 L110.368,114.24 L110.268,114.24 L110.072,114.24 L109.975,114.24 L109.876,114.24 L109.975,114.24 L110.171,114.337 L110.569,114.337 L110.865,114.437 L111.061,114.437 L111.061,114.535 L111.158,114.535 L111.256,114.535 L111.453,114.733 L111.556,114.733 L111.556,114.832 L111.556,114.93 L111.356,115.03 L111.158,115.129 L110.666,115.129 L110.368,115.129 L110.171,115.129 L109.876,115.129 L109.778,115.129 L109.678,115.129 L109.478,115.129 L109.38,115.227 L109.478,115.227 L109.678,115.227 L109.876,115.227 L109.975,115.227 L110.072,115.227 L110.171,115.227 L110.268,115.227 L110.569,115.227 L110.865,115.326 L111.158,115.326 L111.256,115.326 L111.256,115.424 L111.061,115.424 L110.962,115.424 L111.061,115.424 L111.158,115.424 L111.158,115.523 L111.158,115.622 L111.061,115.622 L111.061,115.721 L110.962,115.721 L110.666,115.721 L110.569,115.721 L110.465,115.721 L110.368,115.721 L110.268,115.721 L110.072,115.721 L109.778,115.721 L109.678,115.721 L109.778,115.721 L109.778,115.819 L109.876,115.819 L109.876,115.919 L109.975,115.919","parent":"face"},{"id":"shape:d60f3570-0859-24bf-24e2-28dcc4faffed","type":"path","transform":"rotate(-82.482, 115.326, 127.995)","fillColor":"#151515","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M112.263,129.773 L112.263,129.674 L112.362,129.477 L112.463,129.477 L112.859,129.18 L113.549,128.983 L113.944,128.983 L114.437,128.884 L115.127,128.884 L115.721,128.884 L116.314,128.884 L116.707,128.983 L116.806,128.983 L117.006,129.081 L117.204,129.18 L117.301,129.477 L117.499,129.674 L117.596,129.773 L117.596,129.97 L117.596,130.069 L117.694,130.069 L117.793,130.069 L117.896,129.97 L118.191,129.97 L118.487,129.872 L118.782,129.773 L119.18,129.674 L119.87,129.477 L120.165,129.477 L120.263,129.378 L120.463,129.378 L120.659,129.279 L120.76,129.279 L120.859,129.18 L120.957,129.18 L121.056,129.18 L120.957,129.18 L120.659,129.18 L120.362,129.18 L120.066,129.279 L119.771,129.279 L119.575,129.378 L119.277,129.378 L119.18,129.378 L119.081,129.378 L118.982,129.378 L118.883,129.378 L118.782,129.378 L118.687,129.378 L118.588,129.378 L118.487,129.378 L118.388,129.378 L118.388,129.279 L118.388,129.18 L118.588,128.884 L118.883,128.785 L119.277,128.587 L119.674,128.39 L119.969,128.193 L120.263,127.995 L120.562,127.896 L120.659,127.797 L120.76,127.797 L120.659,127.797 L120.463,127.797 L119.969,127.896 L119.674,127.995 L119.277,128.094 L118.982,128.193 L118.782,128.291 L118.687,128.39 L118.487,128.39 L118.388,128.489 L118.29,128.587 L118.094,128.884 L117.896,128.983 L117.793,128.983 L117.694,128.983 L117.596,128.983 L117.596,128.884 L117.596,128.587 L117.596,128.39 L117.694,128.094 L117.793,127.896 L117.993,127.501 L117.993,127.402 L117.993,127.205 L118.094,127.106 L118.094,126.908 L118.191,126.809 L118.191,126.612 L118.191,126.513 L118.191,126.415 L118.191,126.316 L118.191,126.217 L118.191,126.316 L118.191,126.415 L118.191,126.513 L117.993,126.711 L117.896,126.908 L117.793,127.007 L117.694,127.205 L117.499,127.303 L117.499,127.402 L117.402,127.501 L117.204,127.6 L117.105,127.698 L117.006,127.698 L117.006,127.797 L117.006,127.896 L116.907,127.896 L116.907,127.995 L116.907,128.094 L116.907,128.193 L116.907,128.291 L116.806,128.291 L116.806,128.39 L116.707,128.39 L116.61,128.39 L116.51,128.291 L116.413,127.995 L116.314,127.6 L116.215,127.303 L116.015,127.007 L115.918,126.711 L115.918,126.612 L115.918,126.415 L115.918,126.217 L115.918,126.118 L115.918,126.02 L115.819,126.02 L115.819,127.797 L115.819,128.094 L115.819,128.193 L115.819,128.291 L115.819,128.39 L115.819,128.489 L115.721,128.489 L115.721,128.39 L115.624,128.39 L115.523,128.291 L115.523,128.094 L115.424,127.896 L115.228,127.6 L115.028,127.402 L114.931,127.205 L114.734,127.007 L114.538,126.809 L114.338,126.612 L114.041,126.415 L113.846,126.118 L113.747,126.02 L113.648,126.02 L113.648,125.921 L113.648,126.02 L113.648,126.118 L113.648,126.217 L113.747,126.316 L113.747,126.415 L113.846,126.415 L113.944,126.612 L113.944,126.711 L113.944,126.908 L114.041,127.007 L114.041,127.205 L114.041,127.402 L114.14,127.6 L114.237,127.698 L114.338,127.995 L114.338,128.094 L114.437,128.094 L114.437,128.193 L114.538,128.291 L114.635,128.291 L114.538,128.291 L114.437,128.291 L114.338,128.193 L114.041,127.896 L113.747,127.6 L113.349,127.402 L113.053,127.106 L112.859,126.908 L112.661,126.809 L112.56,126.612 L112.362,126.513 L112.166,126.415 L112.068,126.415 L111.969,126.316 L111.868,126.217 L111.771,126.217 L111.771,126.118 L111.868,126.118 L111.969,126.217 L111.969,126.415 L112.068,126.513 L112.166,126.711 L112.263,126.809 L112.362,127.007 L112.463,127.205 L112.463,127.303 L112.463,127.501 L112.56,127.6 L112.661,127.698 L112.661,127.797 L112.758,127.797 L112.758,127.896 L112.859,127.896 L112.956,127.995 L112.956,128.094 L112.956,128.193 L112.956,128.291 L112.859,128.291 L112.758,128.291 L112.463,128.094 L112.068,127.995 L111.472,127.896 L111.374,127.896 L111.079,127.896 L110.982,127.896 L110.784,127.896 L110.681,127.896 L110.485,127.896 L110.388,127.896 L110.29,127.896 L110.388,127.896 L110.584,127.995 L110.982,127.995 L111.277,128.094 L111.472,128.094 L111.472,128.193 L111.571,128.193 L111.672,128.193 L111.868,128.39 L111.969,128.39 L111.969,128.489 L111.969,128.587 L111.771,128.686 L111.571,128.785 L111.079,128.785 L110.784,128.785 L110.584,128.785 L110.29,128.785 L110.191,128.785 L110.092,128.785 L109.894,128.785 L109.793,128.884 L109.894,128.884 L110.092,128.884 L110.29,128.884 L110.388,128.884 L110.485,128.884 L110.584,128.884 L110.681,128.884 L110.982,128.884 L111.277,128.983 L111.571,128.983 L111.672,128.983 L111.672,129.081 L111.472,129.081 L111.374,129.081 L111.472,129.081 L111.571,129.081 L111.571,129.18 L111.571,129.279 L111.472,129.279 L111.472,129.378 L111.374,129.378 L111.079,129.378 L110.982,129.378 L110.881,129.378 L110.784,129.378 L110.681,129.378 L110.485,129.378 L110.191,129.378 L110.092,129.378 L110.191,129.378 L110.191,129.477 L110.29,129.477 L110.29,129.575 L110.388,129.575","parent":"face"}] \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/oyegroup01.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/oyegroup01.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{"type":"doc","left":0,"top":0,"width":160,"height":160,"viewBox":"0 0 160 160","bgcolor":"#111122","title":"","link":"","meta":""},{"id":"shape:ab1d9da6-df50-e719-85d8-3132c41995a6","type":"roundrect","transform":"","fillColor":"#d4848b","filter":null,"lineColor":"#0000ff","fillOpac":null,"lineOpac":null,"lineWidth":null,"rx":18,"ry":18,"left":3.77578,"top":1.58459,"width":152.086,"height":156.346},{"id":"shape:01e577af-c9c5-d4f3-e964-797a631e9738","type":"roundrect","transform":"","fillColor":"#00f3dc","filter":null,"lineColor":"#dcff00","fillOpac":null,"lineOpac":null,"lineWidth":3,"rx":18,"ry":18,"left":9.34753,"top":6.11192,"width":142.101,"height":146.081},{"id":"shape:919a3144-48ab-a082-6efd-b77264632358","type":"path","transform":"","fillColor":"#ff00f7","filter":null,"lineColor":"none","fillOpac":1,"lineOpac":1,"lineWidth":1,"points":"M56.9213,48.9358 L61.3599,15.3317 L86.4057,46.717 L136.496,37.8404 L104.158,68.2751 L133.01,106.323 L83.8671,80.3218 L46.4595,107.59 L54.3849,69.8602 L11.5862,52.7408 L11.5862,52.7408 z"},{"id":"shape:048cd47a-0f84-2b2a-53a5-f17f6b6cfaed","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M34.4828,17.5172 L33.6552,17.5172 L29.931,18.7586 L25.3793,24.9655 L24.5517,29.931 L24.9655,33.2414 L29.1034,35.3103 L34.8966,36.5517 L37.3793,36.5517 L37.7931,36.1379 L38.2069,36.1379 L38.2069,35.7241 L38.6207,35.3103 L39.4483,33.6552 L39.8621,31.5862 L39.8621,28.2759 L39.8621,24.9655 L39.4483,23.7241 L39.0345,22.8966 L38.6207,21.2414 L38.2069,20.4138 L37.7931,20 L37.3793,19.5862 L36.9655,19.5862 L36.9655,19.1724 L36.5517,19.1724 L36.1379,19.1724 L35.7241,18.7586 L35.3103,18.3448 L34.8966,17.931 L34.069,17.5172 L33.2414,17.5172 L32.8276,17.5172 L32.4138,17.5172 L32.4138,17.1034 L32,17.1034 L31.5862,17.1034"},{"id":"shape:60ae1ab4-0eeb-da30-2d79-9f2d504e2508","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M41.1034,27.8621 L41.1034,28.2759 L41.1034,28.6897 L41.1034,29.1034 L41.1034,29.5172 L41.1034,29.931 L41.1034,30.3448 L41.1034,30.7586 L41.5172,31.1724 L41.5172,31.5862 L41.931,31.5862 L42.7586,31.5862 L43.5862,31.5862 L44,31.5862 L44.4138,31.5862 L44.8276,31.1724 L45.6552,29.931 L46.069,28.6897 L46.069,28.2759 L46.069,27.0345 L46.069,27.4483 L46.069,29.5172 L46.069,32.4138 L46.069,35.7241 L46.069,39.0345 L45.6552,39.4483 L44.8276,39.4483 L43.1724,39.0345 L41.931,37.3793 L41.1034,36.5517 L40.6897,35.3103 L41.931,34.8966 L44,34.069 L46.069,34.069 L48.5517,33.2414 L49.3793,32.8276 L49.3793,32.4138 L48.9655,31.5862 L48.1379,30.7586 L48.5517,30.7586 L50.2069,30.7586 L53.1034,30.7586 L55.1724,30.7586 L56.4138,29.931 L56.4138,29.5172 L55.5862,28.6897 L54.7586,28.2759 L53.5172,27.8621 L52.2759,27.4483 L51.8621,27.4483 L51.4483,27.4483 L51.0345,27.8621 L50.6207,28.6897 L50.2069,29.5172 L49.7931,30.3448 L49.7931,31.1724 L49.7931,31.5862 L50.2069,32 L51.0345,32.4138 L52.2759,32.8276 L54.7586,33.2414 L56,33.2414 L57.2414,33.2414 L57.6552,33.2414 L57.6552,32.8276"},{"id":"shape:b902d3ee-e720-ea2b-e7b5-bbe4ee8a1c5a","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M62.2069,32 L62.2069,32.4138 L61.7931,33.6552 L61.7931,34.4828 L61.7931,35.3103"},{"id":"shape:92801257-f3f0-4330-8e23-054af5622308","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M32,45.6552 L32,46.069 L31.1724,49.3793 L30.3448,53.931 L29.931,57.2414 L29.5172,59.3103 L29.5172,60.5517 L29.1034,60.5517 L28.6897,60.5517"},{"id":"shape:ae6d2f90-80a2-0cc7-0c5c-bd9e3fe4d3b9","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M31.5862,45.6552 L32,46.069 L32.4138,47.7241 L32.8276,49.3793 L32.8276,50.6207 L33.2414,50.2069 L33.2414,49.7931 L33.6552,49.7931 L34.069,48.9655 L35.7241,47.3103 L36.1379,46.4828 L36.1379,46.069 L36.9655,45.2414 L37.3793,44.8276 L37.3793,44.4138 L37.7931,44.4138 L37.7931,45.2414 L37.7931,47.7241 L38.6207,51.0345 L38.6207,53.931 L38.6207,56.4138 L38.6207,58.069 L39.0345,58.8966 L39.4483,58.8966 L39.8621,59.3103 L40.6897,59.7241 L41.1034,59.7241 L41.931,59.7241 L42.7586,59.7241 L43.1724,59.3103 L43.1724,58.8966"},{"id":"shape:1d48cf48-ce8a-afdd-6294-66028973643f","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M43.1724,54.7586 L44,54.7586 L45.6552,54.7586 L47.3103,54.7586 L48.5517,54.7586 L49.3793,54.3448 L49.7931,53.931 L48.9655,53.5172 L47.7241,52.6897 L46.069,52.6897 L45.2414,52.2759 L44.4138,52.2759 L43.5862,52.6897 L43.5862,53.5172 L43.5862,55.5862 L44,57.2414 L44,57.6552 L45.2414,58.069 L46.4828,58.069 L47.7241,58.069 L49.3793,58.069 L50.2069,58.069 L50.2069,57.6552 L50.6207,56.8276"},{"id":"shape:bb928351-acad-8c4a-9d8a-537d109ce220","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M64.6897,52.2759 L63.8621,52.2759 L62.6207,52.2759 L61.7931,52.2759 L61.3793,52.6897 L61.3793,53.931 L61.7931,55.1724 L62.6207,56.4138 L63.8621,56.8276 L63.8621,57.2414 L64.2759,56.4138 L64.2759,55.5862 L64.6897,53.931 L64.6897,53.5172 L64.2759,52.2759 L64.2759,52.6897 L64.2759,53.5172 L64.6897,55.5862 L65.5172,56.4138 L65.931,56.8276 L66.7586,56.8276 L69.6552,56.8276 L72.1379,56 L73.3793,54.3448 L75.0345,52.6897 L76.6897,50.2069 L76.6897,49.3793 L76.6897,48.5517 L75.8621,46.8966 L75.8621,45.6552 L75.0345,44.8276 L74.2069,44 L73.7931,44 L73.3793,44 L73.3793,44.4138 L73.3793,45.6552 L73.3793,48.1379 L73.3793,50.6207 L73.3793,52.2759 L73.3793,54.3448 L73.3793,55.1724 L73.3793,56.4138 L73.3793,57.2414 L73.3793,58.069 L73.7931,58.069 L74.6207,58.069 L75.8621,57.6552 L77.931,57.2414 L78.7586,56.4138 L79.5862,55.5862 L79.5862,55.1724 L80,55.1724 L81.6552,55.1724 L84.1379,54.7586 L84.5517,53.931 L84.9655,53.5172 L84.9655,53.1034 L84.5517,52.2759 L82.4828,51.8621 L81.6552,51.8621 L80.4138,52.2759 L79.5862,52.2759 L79.1724,53.1034 L79.1724,53.931 L79.1724,54.7586 L79.1724,55.5862 L79.1724,56.8276 L79.5862,56.8276 L80.8276,57.2414 L83.3103,57.2414 L84.5517,57.2414 L85.3793,57.2414 L85.3793,56.8276 L84.9655,56.4138"},{"id":"shape:256214ee-6f63-e6da-156e-aab92c106062","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M90.7586,52.2759 L90.3448,52.2759 L89.5172,52.2759 L88.6897,52.2759 L87.8621,52.2759 L87.4483,52.6897 L86.6207,53.1034 L85.7931,54.3448 L85.7931,54.7586 L85.7931,56 L85.7931,56.4138 L86.6207,56.8276 L87.4483,57.2414 L87.8621,57.2414 L89.931,56.8276 L90.7586,55.1724 L90.7586,53.931 L90.7586,53.5172 L91.1724,52.6897 L91.1724,52.2759 L91.1724,51.8621 L91.1724,52.2759 L91.1724,53.5172 L91.1724,56 L91.1724,58.4828 L91.1724,60.1379 L91.1724,62.6207 L91.1724,63.8621 L90.7586,64.6897 L90.3448,65.1034 L89.931,65.1034 L89.5172,65.1034 L88.2759,64.2759 L87.4483,63.4483 L87.0345,62.6207 L87.0345,60.9655 L87.4483,59.3103 L89.1034,58.069 L91.5862,56.4138 L93.6552,55.1724 L94.8966,54.3448 L96.1379,53.1034 L96.5517,52.6897 L96.5517,51.8621 L96.9655,51.4483 L96.5517,51.4483 L95.7241,51.8621 L95.7241,52.2759 L95.7241,52.6897 L95.7241,53.5172 L96.1379,53.5172 L98.2069,53.5172 L99.0345,53.5172 L99.4483,53.5172 L99.4483,53.931 L99.4483,55.1724 L99.4483,55.5862 L99.4483,56.4138 L99.4483,57.2414 L99.4483,57.6552 L99.8621,57.6552 L100.69,57.6552 L101.931,57.2414 L102.759,56.4138 L103.586,54.7586 L103.586,53.1034 L104,52.6897 L104,53.1034 L103.586,53.931 L103.586,55.5862 L104,56.4138 L105.241,56.4138 L107.724,56.4138 L108.966,56.4138 L109.379,54.7586 L109.379,53.1034 L108.552,51.0345 L108.138,51.0345 L107.31,51.0345 L106.069,51.0345 L105.655,51.0345 L106.483,53.1034 L106.897,53.1034 L108.138,53.1034 L109.793,53.1034 L110.621,52.6897 L111.448,52.2759 L111.862,51.8621 L112.276,51.4483 L112.69,51.4483"},{"id":"shape:0b318bca-b49a-73c7-6811-7f6ecccc3586","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M129.241,51.0345 L129.241,51.4483 L128,51.4483 L127.586,51.8621 L126.759,52.2759 L125.931,52.2759 L125.931,52.6897 L125.931,53.5172 L125.931,54.3448 L125.931,55.1724 L125.931,55.5862 L126.345,55.5862 L127.172,56 L127.586,56 L128.414,55.5862 L128.828,55.5862 L129.655,54.7586 L130.069,53.931 L130.069,52.6897 L130.069,51.4483 L129.655,49.7931 L129.655,49.3793 L129.655,48.5517 L129.655,47.7241 L129.655,47.3103 L130.069,47.3103 L130.069,48.1379 L130.483,49.7931 L130.897,51.0345 L130.897,52.2759 L130.897,53.5172 L130.897,53.931 L130.897,54.7586 L130.897,55.1724 L130.897,55.5862 L131.31,55.5862 L131.724,55.5862 L132.552,56 L133.379,56 L134.207,56 L134.621,55.5862 L134.621,55.1724 L134.207,55.1724 L134.207,54.7586 L134.621,54.7586 L136.276,54.7586 L137.103,54.7586 L138.759,54.3448 L139.172,53.931 L139.172,53.5172 L139.172,53.1034 L139.172,52.2759 L139.172,51.8621 L138.759,51.4483 L138.345,50.6207 L137.931,50.6207 L137.517,50.6207 L137.103,50.6207 L136.276,50.6207 L135.862,51.0345 L134.621,51.8621 L134.207,52.2759 L134.207,52.6897 L134.207,53.5172 L134.207,54.3448 L134.207,55.5862 L134.207,56.4138 L134.621,56.4138 L135.034,56.4138 L135.862,56.4138 L136.69,56.8276 L137.517,56.8276 L138.345,56.8276 L138.759,56.8276 L139.172,56.8276 L139.172,56.4138 L139.172,56"},{"id":"shape:c75d607a-849b-6ccb-706c-a9fec1f141c3","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M28.6897,70.4828 L28.6897,70.8966 L29.1034,73.7931 L29.1034,76.6897 L29.5172,77.1034 L30.3448,77.1034 L31.5862,77.1034 L32,76.6897 L32.8276,75.0345 L32.8276,73.3793 L32.8276,72.1379 L33.2414,71.7241 L33.6552,71.7241 L35.3103,72.1379 L36.9655,72.1379 L39.4483,72.1379 L40.2759,72.1379 L41.1034,72.1379 L41.1034,71.7241 L41.1034,70.8966 L41.1034,70.4828 L41.1034,70.069 L40.2759,69.6552 L39.8621,69.6552 L39.0345,69.6552 L38.6207,70.069 L37.7931,71.3103 L37.7931,72.5517 L37.3793,73.3793 L37.3793,74.6207 L37.7931,75.0345 L39.8621,75.4483 L41.931,75.4483 L44.4138,75.0345 L44.8276,74.2069 L45.2414,72.5517 L45.2414,71.3103 L45.2414,70.4828 L45.2414,70.069 L45.2414,70.4828 L45.6552,70.4828 L47.7241,70.4828 L49.7931,70.4828 L49.7931,70.8966 L49.7931,71.3103 L49.7931,72.1379 L49.3793,74.2069 L49.3793,75.4483 L49.7931,75.4483 L50.2069,75.4483 L50.6207,75.4483 L51.0345,75.4483 L51.8621,74.6207 L52.6897,73.7931 L53.1034,73.3793 L53.931,72.1379 L54.3448,70.4828 L54.3448,68.8276 L54.3448,67.1724 L54.7586,65.1034 L54.7586,64.2759 L54.7586,64.6897 L54.7586,67.1724 L54.7586,70.4828 L54.7586,72.1379 L54.7586,74.2069 L54.7586,75.0345 L55.5862,75.0345 L57.2414,75.0345 L58.8966,75.0345 L61.7931,75.0345 L62.2069,74.2069 L61.7931,73.7931 L60.9655,72.5517 L60.9655,72.1379 L62.6207,72.1379 L64.6897,72.1379 L65.931,71.7241 L66.3448,70.8966 L65.1034,69.2414 L64.2759,68.8276 L63.0345,69.2414 L62.2069,71.3103 L62.2069,72.5517 L63.0345,74.6207 L63.4483,75.0345 L65.1034,75.8621 L66.3448,75.8621 L66.7586,75.8621 L67.1724,75.8621 L69.2414,75.8621 L69.2414,75.4483 L68.8276,74.6207"},{"id":"shape:27dcd203-837f-5a62-2266-cac6cf3ae24d","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M52.6897,67.5862 L53.1034,67.5862 L55.1724,67.5862 L56.4138,67.5862 L56.8276,67.5862 L57.2414,67.5862 L56.8276,67.5862"},{"id":"shape:33f13849-6a47-2ec4-69de-4924c46a01b4","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M87.8621,72.9655 L87.4483,72.9655 L86.2069,72.9655 L84.9655,73.3793 L83.7241,74.6207 L83.3103,75.4483 L83.7241,76.6897 L84.5517,77.5172 L84.5517,77.931 L85.7931,76.2759 L87.0345,75.8621 L88.2759,74.6207 L89.1034,73.3793 L89.5172,71.7241 L89.5172,70.069 L88.2759,69.2414 L87.8621,68.4138 L88.2759,68.8276 L89.5172,72.1379 L89.931,74.6207 L89.931,75.4483 L89.931,75.8621 L90.3448,76.6897 L90.7586,77.1034 L91.1724,77.1034 L91.5862,77.1034 L92,77.1034 L92.4138,77.1034 L92.8276,76.6897 L93.2414,75.8621 L93.6552,75.4483 L94.069,75.4483 L94.8966,75.4483 L96.1379,75.4483 L96.9655,75.4483 L98.2069,75.4483 L98.6207,74.6207 L99.0345,74.2069 L99.0345,73.3793 L97.7931,72.5517 L96.5517,72.1379 L96.1379,72.1379 L95.7241,72.1379 L95.3103,72.9655 L94.8966,73.3793 L94.8966,74.2069 L94.4828,74.6207 L94.4828,75.8621 L95.3103,76.2759 L95.7241,76.2759 L96.1379,76.2759 L96.9655,76.2759 L97.3793,76.2759 L97.7931,76.2759 L98.6207,76.6897 L99.4483,76.6897 L99.8621,76.6897 L100.69,76.6897 L101.931,76.6897 L102.345,76.6897 L102.759,76.6897 L102.759,76.2759 L102.759,75.0345"},{"id":"shape:b7b233e5-cc4e-a446-6797-bd7c81304794","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M27.8621,85.3793 L27.8621,85.7931 L27.8621,88.2759 L27.8621,91.1724 L27.8621,92.4138 L27.8621,92.8276"},{"id":"shape:5c6c6e75-80c0-6866-7b3f-2afae2503f10","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M27.4483,88.6897 L27.8621,88.6897 L28.6897,87.8621 L29.5172,87.0345 L31.1724,86.6207 L31.5862,86.2069 L32.4138,86.6207 L32.8276,88.2759 L32.8276,90.7586 L32.8276,91.5862 L33.2414,91.5862 L35.3103,91.5862 L36.9655,91.1724 L37.3793,89.931 L37.7931,89.1034 L37.7931,88.6897 L36.9655,88.2759 L36.9655,87.8621 L36.9655,88.2759 L36.9655,89.931 L37.3793,91.5862 L37.7931,92 L39.0345,92.4138 L41.1034,92.4138 L42.3448,92 L42.3448,90.3448 L42.3448,88.6897 L42.3448,87.8621 L42.3448,87.4483 L42.3448,87.8621 L42.3448,90.3448 L42.3448,91.5862 L43.1724,92 L45.2414,91.5862 L46.8966,89.5172 L46.8966,89.1034 L46.4828,88.6897 L50.2069,88.6897 L51.8621,88.6897 L52.2759,87.8621 L52.2759,87.0345 L52.2759,86.6207 L51.4483,86.2069 L51.0345,85.7931 L49.7931,85.7931 L48.9655,85.7931 L47.7241,85.7931 L47.3103,86.6207 L46.8966,87.4483 L46.8966,88.6897 L46.8966,89.931 L47.3103,91.1724 L48.1379,91.5862 L48.9655,92 L49.7931,92 L51.0345,92 L51.8621,92 L53.1034,91.5862 L54.3448,90.7586 L55.1724,89.931 L55.5862,88.6897 L55.5862,87.8621 L55.5862,87.4483 L55.5862,87.8621 L55.5862,88.6897 L55.5862,90.7586 L55.5862,91.1724 L56,91.1724 L56.4138,91.1724 L57.6552,91.1724 L58.4828,91.1724 L58.8966,89.5172 L58.8966,88.2759 L58.8966,87.4483 L58.8966,87.0345 L59.3103,87.0345 L59.7241,87.0345 L60.1379,87.0345 L61.3793,87.0345 L62.2069,87.0345 L62.6207,87.0345 L63.0345,87.0345 L63.4483,87.0345 L63.4483,87.4483 L63.4483,88.2759 L63.4483,89.931 L63.4483,91.1724 L64.2759,92 L65.5172,92 L67.1724,92 L67.5862,91.1724 L67.5862,90.3448 L67.5862,89.1034 L67.1724,87.8621 L66.3448,87.4483 L65.1034,86.6207 L64.2759,86.6207 L63.4483,86.6207 L63.4483,86.2069 L63.4483,87.4483 L63.4483,87.8621 L64.6897,88.2759 L67.1724,88.2759 L68.8276,88.2759 L70.8966,87.8621 L71.7241,87.4483 L71.7241,87.0345 L71.7241,86.2069"},{"id":"shape:b67d75ea-2598-59df-852f-8d8001a2eca8","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M85.7931,89.1034 L86.2069,89.931 L86.2069,94.8966 L86.2069,100.69 L86.2069,102.345 L85.7931,101.931 L84.9655,100.69"},{"id":"shape:dd0e1b45-4cb3-8d63-e647-395c65474fef","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M84.9655,89.1034 L85.3793,89.1034 L87.8621,88.2759 L89.1034,88.2759 L90.3448,88.6897 L90.7586,89.931 L90.7586,92 L89.931,92.8276 L88.6897,92.8276 L87.4483,92.8276 L86.6207,92.8276 L86.2069,92.8276"},{"id":"shape:fd37ef58-c15d-7c66-ca7a-872d89ba5f95","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M94.4828,89.931 L94.069,89.931 L93.6552,89.931 L93.6552,90.7586 L92.8276,92 L92.8276,93.2414 L92.8276,94.069 L93.2414,94.4828 L94.4828,94.4828 L95.3103,94.4828 L96.1379,94.4828 L96.5517,93.6552 L96.5517,92 L96.5517,91.5862 L95.7241,90.7586 L95.7241,90.3448 L94.8966,89.931 L94.4828,89.1034 L94.069,89.1034 L94.069,89.5172 L94.069,89.931 L94.069,90.3448 L94.4828,90.3448 L95.3103,90.3448 L96.9655,90.3448 L98.2069,90.3448 L99.0345,90.3448 L99.8621,90.3448 L99.8621,89.5172 L99.8621,88.6897 L99.4483,88.6897 L98.6207,87.8621 L98.2069,87.8621 L97.7931,87.8621 L97.7931,88.2759 L98.2069,89.1034 L99.0345,89.5172 L101.103,90.3448 L101.931,90.7586 L101.931,91.1724 L101.931,91.5862 L101.931,92.8276 L101.931,94.069 L101.931,94.8966 L102.759,95.7241 L103.172,95.7241 L103.586,95.7241 L104.828,95.7241 L105.241,95.7241 L105.241,94.4828"},{"id":"shape:711043f4-75ee-e388-2d7f-5884451df045","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M116,89.1034 L115.586,89.1034 L113.517,89.931 L112.276,91.5862 L114.345,94.069 L114.759,94.069 L115.586,94.069 L116,93.6552 L116.414,93.2414 L116.828,92.4138 L116.828,92 L116.828,91.1724 L116,89.931 L116,89.5172 L116.414,89.5172 L116.828,91.5862 L116.828,93.2414 L117.241,94.4828 L118.069,94.8966 L118.897,94.8966 L119.724,94.8966 L120.552,94.4828 L120.966,94.4828 L121.379,94.069 L121.793,93.6552 L121.379,93.6552 L121.379,93.2414"},{"id":"shape:d13f5e01-8441-db78-026f-b40581ab41ab","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M122.621,88.6897 L122.207,88.6897 L121.379,89.931 L120.552,90.7586 L120.552,91.5862 L120.552,92.4138 L120.552,92.8276 L121.379,93.6552 L123.034,93.6552 L124.69,94.4828 L125.931,94.4828 L126.345,94.4828 L127.172,93.6552 L127.172,92.8276 L127.172,92 L127.172,91.1724 L127.172,90.3448 L126.345,89.1034 L125.517,88.2759 L124.69,88.2759 L124.69,87.8621 L123.862,87.4483 L123.448,87.4483 L123.034,87.4483 L122.621,87.8621 L121.793,88.2759"},{"id":"shape:d69ee6ed-d775-fb17-a0d0-e2956449d0c0","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M126.759,90.7586 L126.759,92 L126.759,96.9655 L125.931,99.8621 L125.931,101.517 L125.931,102.759 L125.931,104.414 L125.931,105.655 L125.931,106.069 L125.931,106.483 L125.931,106.069 L125.517,105.241"},{"id":"shape:e0c4a3f8-6608-234a-8ddf-6058d762979c","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M123.862,100.69 L124.69,100.69 L126.759,100.69 L128,100.276 L128,99.8621"},{"id":"shape:5ee9d0d0-787b-af96-6c9b-623deba95b04","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M126.759,93.2414 L127.172,93.2414 L128.828,93.2414 L129.655,92.8276 L129.655,91.5862 L129.655,90.7586 L129.655,89.1034 L129.655,88.2759 L130.069,87.8621 L130.069,87.4483 L130.483,87.4483 L130.483,87.8621 L130.483,88.2759 L130.483,89.5172 L130.483,90.3448 L130.483,91.1724 L130.483,92 L130.483,92.4138 L130.897,92.4138 L131.724,92.4138 L132.552,92.4138 L133.793,92.4138 L134.621,91.1724 L135.034,89.931 L135.034,88.2759 L135.034,87.8621 L135.034,88.2759 L135.034,89.5172 L135.034,91.5862 L135.034,92.4138 L135.034,92.8276 L135.448,92.8276 L136.69,92.8276 L137.931,92.8276 L139.172,92.4138 L140,90.7586 L140.414,89.5172 L140.414,88.2759 L140.414,87.8621 L140.414,88.2759 L140.414,89.1034 L140.414,89.931 L140.414,90.7586 L140.414,91.5862 L140.414,92 L140.414,92.4138 L140.828,92.8276 L141.241,93.2414 L141.655,93.2414 L142.069,93.2414 L142.069,92.4138 L142.483,91.5862"},{"id":"shape:a72777d3-7da4-b732-fa2d-fece9aad70b0","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M141.655,83.7241 L142.483,82.8966 L143.724,81.6552 L143.724,80.8276"},{"id":"shape:11cf070b-038e-7a3e-1edb-308f39712ef5","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M59.7518,120.056 L62.6483,120.056 L67.6138,127.09 L62.2345,133.711 L51.062,130.4 L45.6828,127.09 L48.9931,124.607 L62.2345,124.607 L65.131,125.021 L64.7172,125.021 L54.3723,122.952 L48.5792,121.711 L50.6483,122.538 L65.131,124.194 L65.9588,124.194 L60.9933,123.78 L61.4068,122.952 L70.0968,121.711 L74.2345,121.711 L74.2345,120.883 L75.0623,120.056 L75.4758,120.469 L72.5792,121.297 L69.6828,121.297 L68.8553,121.297 L69.269,121.297 L75.4758,121.297 L76.7172,121.297 L75.8898,121.711 L76.3033,121.711 L86.6483,121.711 L92.443,121.711 L83.7518,122.952 L72.1655,126.676 L53.5447,130.4 L44.0275,130.814 L38.6483,130.814 L35.3379,130.814 L34.9241,130.814 L35.3379,129.987 L45.6828,129.159 L62.2345,130.4 L74.2345,133.297 L75.8898,133.297 L77.9588,133.297"},{"id":"shape:1629f024-c7ec-ee06-39b5-36ac4ad1d1ca","type":"ellipse","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":7.65166,"height":8.01292,"left":115.69217,"top":111.40454},{"id":"shape:3d38d55b-525c-6834-de75-491e59dc75ba","type":"path","transform":"rotate(-99.0766, 136.51, 121.853)","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M126.398,116.368 C127.133,122.561 131.41,127.337 136.602,127.337 C141.427,127.337 145.482,123.209 146.623,117.649 C144.494,120.884 140.925,123.02 136.873,123.02 C132.307,123.02 128.357,120.304 126.398,116.368 z"},{"id":"face","type":"group","transform":"","fillColor":"#f8faf9","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":null,"top":null,"width":200,"height":200},{"id":"shape:48d109cd-1712-90ea-d77b-abb19f048797","type":"roundrect","transform":"","fillColor":"none","filter":null,"lineColor":"#000000","fillOpac":null,"lineOpac":null,"lineWidth":null,"rx":0,"ry":0,"left":-162.759,"top":24.1655,"width":36.6345,"height":26.9241}] \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/solids.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/solids.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{type:"doc", left:0, top:0, width:700, height:300, viewBox:"0 0 700 300", bgcolor:"#ff0000", title:"", link:"", meta:""}, {"id":"defs","type":"defs","transform":"","fillColor":null,"lineColor":null,"fillOpac":null,"lineOpac":null,"lineWidth":null},{"id":"shape:074bc7b6-5e02-03ed-32d0-fbe246030cc7","type":"rect","transform":"","fillColor":"#000000","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":3,"top":3.5,"width":693,"height":292},{"id":"shape:140ca1eb-15ef-cc52-34f0-9a2605d4158c","type":"image","transform":"","fillColor":"none","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":77,"top":34.5,"width":288,"height":231.5,"href":"http://www.slimeland.com/raytrace/primitiveconvention.jpg"},{"id":"shape:aba83ab0-631b-f0c3-20c5-a8f7b7103edc","type":"ellipse","transform":"","fillColor":"#008001","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"width":111.7728,"height":109.1296,"left":414.99960000000004,"top":119.5002},{"id":"shape:d11da3fb-93d2-f10a-50fc-1e1b0d551305","type":"rect","transform":"","fillColor":"#6400ff","lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"left":533,"top":130.5,"width":94.1144,"height":93.6906}] diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/svgpaths.htm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/svgpaths.htm Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,40 @@ + + + + + + + SVG + + + + + + +
    + +
    + + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/svgshapes.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/svgshapes.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1 @@ +[{"type":"doc","left":0,"top":0,"width":20,"height":10,"viewBox":"0 0 20 10","bgcolor":"#ffffff","title":"","link":"","meta":""},{"id":"shape:3a283200-ea35-8292-5e02-5584a0315466","type":"rect","transform":"","fillColor":"#5564d4","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"rx":0,"ry":0,"left":-1.56895,"top":-1.01724,"width":41.0172,"height":20.9483},{"id":"shape:5b55fa0e-f6a5-0f87-e85c-dd5cfe361c9f","type":"rect","transform":"","fillColor":"#54aa00","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"rx":0,"ry":0,"left":-2.03448,"top":8.7069,"width":38.5862,"height":9.31034},{"id":"shape:7f128276-9e58-dd1e-516b-73eae7ada908","type":"path","transform":"translate(0)","fillColor":"none","filter":null,"lineColor":"#152b00","fillOpac":null,"lineOpac":null,"lineWidth":0.1,"points":"M7.9569,5.15517 L18.819,1.12069 L18.819,1.12069 L18.8448,1.12069 z"},{"id":"shape:38ce3200-761b-c172-6d84-836122f9ae76","type":"path","transform":"translate(0)","fillColor":"none","filter":null,"lineColor":"#152b00","fillOpac":null,"lineOpac":null,"lineWidth":0.1,"points":"M13.0517,1.74138 L19.9569,6.99138 L19.9569,6.99138 z"},{"id":"shape:046815e5-0137-b6f7-a367-bfc5384bfca8","type":"path","transform":"","fillColor":"none","filter":null,"lineColor":"#152b00","fillOpac":null,"lineOpac":null,"lineWidth":0.1,"points":"M12.9757,1.5087 L19.0625,0.655171 L20.3967,7.48284 L7,5.51732 L9.64045,3.65525 L9.64045,3.65525 z"},{"id":"shape:f6b5420c-2921-1274-6ded-749cd701a7c3","type":"image","transform":"","left":-0.396549,"top":8.69827,"width":21,"height":1.37069,"fillOpac":0.59,"href":"http://4.bp.blogspot.com/_HZ3YUNnUIUI/R952RCTTeoI/AAAAAAAADII/eBS_KPjlKqA/s1600/475593431_121bf9060d.jpg"},{"id":"shape:175689e6-1618-0343-b47f-79dfdb36440c","type":"path","transform":"","fillColor":"#ff2b8e","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M5.83619,10.0172 L5.83619,9.99139 L5.99136,9.78448 L6.17239,9.52586 L6.43101,9.1638 L6.76722,8.87931 L7.10343,8.64655 L7.33619,8.56896 L7.59481,8.51724 L8.0086,8.46552 L8.55171,8.51724 L9.04309,8.51724 L9.61205,8.5431 L10.3361,8.5431 L10.8274,8.5431 L11.1119,8.46552 L11.7068,8.43965 L12.2499,8.43965 L12.2758,8.41379 L12.1982,8.46552 L12.0171,8.51724 L11.6809,8.56896 L11.3447,8.72414 L11.0084,8.87931 L10.5429,9.11207 L10.181,9.26724 L9.76723,9.39655 L9.27585,9.60345 L8.7586,9.81034 L6.94826,10.3793 L6.7155,10.3793 L6.3017,10.4051 L5.99136,10.4051 L5.83619,10.4051 L5.7586,10.4051 L5.73274,10.4051 L5.70688,10.4051 z"},{"id":"shape:d708671d-8b30-c3ae-bca2-ada75bf34533","type":"path","transform":"","fillColor":"#00ff81","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M9.27585,9.39656 L9.27585,9.37064 L9.27585,9.34466 L9.27585,9.31897 L9.27585,9.29305 L9.30178,9.29305 L9.30178,9.26707 L9.32768,9.24138 L9.37933,9.18946 L9.43103,9.16379 L9.50868,9.13785 L9.58633,9.0862 L9.66394,9.06026 L9.76736,9.00863 L9.89666,8.98265 L9.97428,8.95688 L10.0777,8.95688 L10.1553,8.93104 L10.207,8.93104 L10.2588,8.93104 L10.3105,8.93104 L10.3622,8.93104 L10.3881,8.93104 L10.4657,8.95688 L10.4915,9.00863 L10.5432,9.06026 L10.5691,9.06026 L10.595,9.13785 L10.6208,9.16379 L10.6467,9.21546 L10.6467,9.29305 L10.6467,9.31897 L10.6467,9.42227 L10.6467,9.44825 L10.595,9.49986 L10.5691,9.55172 L10.5691,9.57747 L10.5432,9.60345 L10.5174,9.62931 L10.5174,9.65506 L10.4915,9.65506 L10.4657,9.65506 L10.4398,9.68104 L10.4398,9.7069 L10.4139,9.73265 L10.3622,9.75863 L10.3105,9.75863 L10.2846,9.78428 L10.2588,9.78428 L10.207,9.78428 L10.1812,9.78428 L10.1036,9.78428 L10.026,9.78428 L9.97428,9.78428 L9.94838,9.78428 L9.89666,9.78428 L9.87085,9.78428 L9.84495,9.78428 L9.81912,9.78428 L9.79322,9.81026 L9.79322,9.8362 L9.79322,9.86187 L9.79322,9.91373 L9.79322,9.96557 L9.79322,9.99137 L9.79322,10.0173 L9.79322,10.069 L9.76736,10.069 L9.76736,10.0949 L9.76736,10.1207 L9.74156,10.1207 L9.71566,10.1466 L9.68986,10.1466 L9.66394,10.1466 L9.63804,10.1466 L9.61223,10.1466 L9.5604,10.1466 L9.5346,10.1466 L9.50868,10.1466 L9.45694,10.1466 L9.37933,10.1466 L9.32768,10.1466 L9.30178,10.1466 L9.27585,10.1466 L9.25005,10.1207 L9.22413,10.1207 L9.22413,10.0949 L9.19823,10.069 L9.17241,10.0432 L9.17241,10.0173 L9.17241,9.99137 L9.17241,9.96557 L9.17241,9.93946 L9.17241,9.91373 L9.19823,9.88785 L9.22413,9.86187 L9.25005,9.86187 L9.27585,9.8362 L9.30178,9.81026 L9.32768,9.81026 L9.32768,9.78428 L9.35348,9.78428 L9.35348,9.75863 L9.35348,9.73265 L9.35348,9.7069 L9.35348,9.68104 L9.32768,9.68104 L9.30178,9.68104 L9.22413,9.68104 L9.19823,9.68104 L9.1465,9.68104 L9.09486,9.68104 L9.06895,9.68104 L9.04306,9.7069 L9.01724,9.7069 L8.96542,9.7069 L8.93962,9.7069 L8.91371,9.7069 L8.88791,9.7069 L8.862,9.68104 L8.8362,9.65506 L8.8103,9.62931 L8.8103,9.60345 L8.78449,9.57747 L8.78449,9.55172 L8.78449,9.49986 L8.78449,9.47415 L8.78449,9.44825 L8.78449,9.42227 L8.78449,9.39656 L8.8103,9.37064 L8.8362,9.34466 L8.8362,9.31897 L8.862,9.31897 L8.862,9.29305 L8.88791,9.29305 L8.91371,9.29305 L8.93962,9.31897 L8.96542,9.34466 L8.96542,9.37064 L8.99134,9.37064 L8.99134,9.39656 L8.99134,9.42227 L9.01724,9.42227 L9.01724,9.44825 L9.04306,9.44825 L9.04306,9.47415 L9.06895,9.47415 z"},{"id":"shape:ea07c87c-903b-5d0d-dec2-ca2e9a3b5b4d","type":"path","transform":"","fillColor":"#00ff81","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M16.6466,5.90516 L16.6466,5.87929 L16.6724,5.85343 L16.6983,5.85343 L16.7242,5.82757 L16.7242,5.80171 L16.75,5.80171 L16.8276,5.72412 L16.8276,5.69826 L16.9052,5.6724 L16.9311,5.6724 L16.9828,5.62067 L17.0604,5.62067 L17.138,5.62067 L17.1638,5.59481 L17.2155,5.59481 L17.2414,5.59481 L17.2931,5.59481 L17.319,5.59481 L17.319,5.62067 L17.3707,5.64654 L17.3707,5.6724 L17.3966,5.69826 L17.4224,5.72412 L17.4483,5.74998 L17.5,5.82757 L17.5259,5.82757 L17.5259,5.85343 L17.5517,5.90516 L17.5517,5.93102 L17.5517,5.95688 L17.5517,5.98274 L17.5517,6.0086 L17.5517,6.03447 L17.5517,6.06033 L17.5,6.06033 L17.5,6.08619 L17.4742,6.08619 L17.4742,6.11205 L17.4483,6.11205 L17.4224,6.11205 L17.4224,6.13791 L17.3966,6.13791 L17.3707,6.16378 L17.3707,6.18964 L17.3707,6.2155 L17.3707,6.24137 L17.3966,6.26722 L17.4224,6.29309 L17.4224,6.31895 L17.4483,6.31895 L17.4742,6.34481 L17.5,6.37067 L17.5259,6.39654 L17.5259,6.4224 L17.5517,6.4224 L17.5776,6.44826 L17.6035,6.47412 L17.6035,6.49998 L17.6035,6.52585 L17.6035,6.55171 L17.6035,6.57757 L17.6035,6.60343 L17.6035,6.62929 L17.6035,6.65516 L17.5776,6.65516 L17.5517,6.68102 L17.5259,6.70688 L17.5,6.70688 L17.2931,6.65516 L17.2673,6.62929 L17.2673,6.60343 L17.2414,6.60343 L17.2414,6.57757 L17.2155,6.57757 L17.1897,6.55171 L17.1638,6.55171 L17.138,6.52585 L17.138,6.49998 L17.1121,6.47412 L17.0862,6.47412 L17.0862,6.44826 L17.0604,6.44826 L17.0604,6.4224 L17.0345,6.39654 L17.0086,6.39654 L17.0086,6.37067 L16.9828,6.37067 L16.9828,6.34481 L16.9569,6.31895 L16.9311,6.31895 L16.9052,6.31895 L16.8793,6.31895 L16.8535,6.31895 L16.8276,6.31895 L16.8017,6.31895 L16.7759,6.34481 L16.75,6.34481 L16.7242,6.34481 L16.6983,6.34481 L16.6466,6.34481 L16.6207,6.34481 L16.5949,6.34481 L16.569,6.34481 L16.5431,6.34481 L16.5173,6.31895 L16.4914,6.29309 L16.4655,6.26722 L16.4397,6.24137 L16.4138,6.2155 L16.388,6.18964 L16.3621,6.16378 L16.3362,6.13791 L16.3104,6.11205 L16.3104,6.08619 L16.3104,6.06033 L16.3362,6.06033 L16.3621,6.03447 L16.388,6.03447 L16.4397,6.03447 L16.4655,6.03447 L16.5173,6.03447 L16.5431,6.03447 L16.5173,6.03447 L16.4914,6.0086 L16.4914,5.98274 L16.4655,5.98274 L16.4655,5.95688 L16.4397,5.93102 L16.4397,5.90516 L16.4397,5.87929 L16.4397,5.85343 L16.4397,5.82757 L16.4655,5.80171 L16.4914,5.80171 L16.5173,5.80171 L16.5431,5.80171 L16.569,5.80171 L16.5949,5.80171 z"},{"id":"shape:c407f647-5f79-c1be-a71b-61118b4b664b","type":"path","transform":"","fillColor":"#00ff81","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.4483,5.56896 L17.4483,5.54311 L17.4483,5.51724 L17.4483,5.49138 L17.4742,5.49138 L17.4742,5.43964 L17.5,5.41379 L17.5258,5.38793 L17.5517,5.38793 L17.6293,5.36206 L17.681,5.33621 L17.7069,5.31034 L17.7586,5.31034 L17.7845,5.31034 L17.8103,5.31034 L17.8621,5.33621 L17.888,5.36206 L17.9138,5.38793 L17.9138,5.41379 L17.9397,5.43964 L17.9397,5.46552 L17.9397,5.51724 L17.9397,5.56896 L17.9138,5.59483 L17.9138,5.6207 L17.888,5.64655 L17.888,5.67242 L17.8621,5.69826 L17.8362,5.72414 L17.8103,5.72414 L17.7845,5.75001 L17.7845,5.77585 L17.8103,5.80172 L17.8362,5.82759 L17.8362,5.85344 L17.8621,5.85344 L17.888,5.85344 L17.9138,5.85344 L17.9397,5.85344 L17.9655,5.85344 L17.9655,5.87932 L17.9914,5.87932 L17.9914,5.90518 L17.9914,5.93103 L17.9914,5.9569 L17.9914,5.98277 L17.9914,6.00862 L17.9655,6.00862 L17.9397,6.00862 L17.9138,6.00862 L17.888,6.00862 L17.8621,6.00862 L17.8362,6.00862 L17.8103,6.00862 L17.7845,6.00862 L17.7586,6.00862 L17.7327,6.00862 L17.7069,6.00862 L17.7069,5.98277 L17.681,5.9569 L17.681,5.93103 L17.6551,5.93103 L17.6293,5.90518 L17.6034,5.87932 L17.5776,5.85344 L17.5517,5.82759 L17.5258,5.82759 L17.5,5.82759 L17.4742,5.82759 L17.4483,5.82759 L17.4224,5.82759 L17.3966,5.82759 L17.3449,5.82759 L17.319,5.82759 L17.2931,5.82759 L17.2673,5.82759 L17.2414,5.82759 L17.2155,5.80172 L17.1897,5.77585 L17.1638,5.75001 L17.1638,5.72414 L17.1638,5.69826 L17.1638,5.67242 L17.138,5.67242 L17.138,5.64655 L17.138,5.6207 L17.1638,5.6207 L17.1638,5.59483 L17.1897,5.59483 L17.1897,5.56896 L17.2155,5.56896 L17.2414,5.56896 L17.2673,5.59483 L17.2931,5.59483 L17.319,5.59483 L17.319,5.6207 L17.3449,5.6207 L17.319,5.6207 L17.3449,5.6207 L17.3707,5.6207 z"},{"id":"shape:85393087-45ed-2673-c138-e754d2b1c1d9","type":"path","transform":"","fillColor":"#00ff81","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M9.58635,8.38794 L9.58635,8.36207 L9.61215,8.36207 L9.61215,8.33617 L9.63806,8.33617 L9.66385,8.31035 L9.68975,8.31035 L9.7415,8.31035 L9.7674,8.31035 L9.7933,8.31035 L9.8191,8.31035 L9.845,8.31035 L9.8709,8.31035 L9.89666,8.31035 L9.89666,8.33617 L9.92256,8.36207 L9.92256,8.38794 L9.92256,8.41376 L9.92256,8.43968 L9.89666,8.43968 L9.89666,8.46549 L9.8709,8.46549 L9.845,8.46549 L9.845,8.49135 L9.8191,8.51727 L9.8191,8.54308 L9.845,8.54308 L9.845,8.56894 L9.8709,8.56894 L9.8709,8.59483 L9.89666,8.59483 L9.89666,8.62065 L9.92256,8.64653 L9.89666,8.64653 L9.89666,8.67242 L9.8709,8.67242 L9.845,8.67242 L9.845,8.69822 L9.8191,8.69822 L9.7933,8.69822 L9.7674,8.69822 L9.7415,8.69822 L9.71565,8.69822 L9.71565,8.67242 L9.68975,8.64653 L9.66385,8.62065 L9.63806,8.62065 L9.63806,8.59483 L9.61215,8.56894 L9.58635,8.56894 L9.56045,8.56894 L9.53455,8.54308 L9.50876,8.54308 L9.48286,8.54308 L9.45695,8.54308 L9.43115,8.54308 L9.40523,8.51727 L9.37931,8.51727 L9.37931,8.49135 L9.3535,8.46549 L9.32758,8.43968 L9.32758,8.41376 L9.30177,8.41376 L9.27585,8.38794 L9.27585,8.36207 L9.25005,8.33617 L9.22415,8.31035 L9.22415,8.28448 L9.22415,8.25858 L9.22415,8.23276 L9.25005,8.23276 L9.27585,8.23276 L9.30177,8.23276 L9.32758,8.23276 L9.3535,8.23276 L9.37931,8.23276 L9.40523,8.23276 L9.40523,8.25858 L9.43115,8.25858 L9.45695,8.25858 L9.45695,8.28448 L9.48286,8.28448 L9.50876,8.28448 z"},{"id":"shape:a7ad8c08-f2f6-c444-f041-9ef614eea07f","type":"path","transform":"","fillColor":"#80d5ab","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M18.0173,5.18104 L18.0429,5.18104 L18.0429,5.15518 L18.1206,5.12932 L18.1465,5.12932 L18.1724,5.12932 L18.1983,5.12932 L18.2239,5.12932 L18.3016,5.12932 L18.3275,5.12932 L18.3533,5.12932 L18.4049,5.12932 L18.431,5.12932 L18.4569,5.12932 L18.4825,5.15518 L18.4825,5.18104 L18.4825,5.20691 L18.4825,5.23277 L18.4825,5.25863 L18.4569,5.25863 L18.4569,5.2845 L18.4569,5.33621 L18.4569,5.36209 L18.4569,5.38794 L18.4049,5.38794 L18.4049,5.4138 L18.4049,5.43966 L18.3792,5.43966 L18.3533,5.43966 L18.3533,5.46552 L18.3275,5.46552 L18.3016,5.46552 L18.3275,5.46552 L18.3533,5.49139 L18.3275,5.49139 L18.3016,5.49139 L18.3275,5.51725 L18.3275,5.54311 L18.3016,5.54311 L18.2757,5.54311 L18.2757,5.56897 L18.2498,5.56897 L18.2239,5.56897 L18.1983,5.56897 L18.1724,5.56897 L18.0947,5.49139 L18.0688,5.49139 L18.0173,5.46552 L17.9914,5.46552 L18.0173,5.49139 L17.9653,5.46552 L17.9653,5.43966 L17.9137,5.38794 L17.8879,5.38794 L17.8879,5.36209 L17.862,5.33621 L17.7069,5.00001 L17.7328,5.00001 L17.7328,4.94828 L17.7584,4.92242 L17.7843,4.92242 L17.8102,4.89656 L17.8102,4.8707 L17.862,4.84483 L17.8879,4.84483 L17.9137,4.84483 L17.9396,4.84483 L17.9653,4.84483 L17.9914,4.8707 L17.9914,4.89656 L17.9914,4.92242 L18.0173,4.94828 L17.9914,4.94828 L17.9914,4.97414 L17.9914,5.00001 L17.9914,5.02587 L17.9653,5.02587 L17.9396,5.02587 L17.9137,5.02587 L17.8879,5.02587 L17.8879,5.05173 L17.862,5.05173 L17.8879,5.07759 L17.8879,5.10345 L17.862,5.07759 L17.8361,5.05173 L17.8102,5.05173 z"},{"id":"shape:71672a5b-a35d-56fc-72ca-6eb60fd44a37","type":"path","transform":"","fillColor":"#80d5ab","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.7586,5.41379 L17.7586,5.38792 L17.7586,5.36207 L17.7845,5.36207 L17.7845,5.33621 L17.8104,5.31033 L17.8362,5.31033 L17.8621,5.31033 L17.9138,5.28448 L17.9655,5.28448 L18.0172,5.28448 L18.0172,5.31033 L18.0431,5.31033 L18.0431,5.33621 L18.069,5.33621 L18.069,5.36207 L18.0948,5.38792 L18.1207,5.38792 L18.1207,5.41379 L18.1207,5.43964 L18.1207,5.46551 L18.1207,5.49138 L18.1207,5.51723 L18.1207,5.54309 L18.1207,5.56896 L18.1207,5.59482 L18.0948,5.59482 L18.069,5.59482 L18.069,5.62068 L18.0431,5.62068 L18.0431,5.64655 L18.0431,5.67241 L18.069,5.69827 L18.0948,5.69827 L18.1207,5.69827 L18.1207,5.72414 L18.1466,5.72414 L18.1724,5.75 L18.1724,5.77586 L18.1983,5.77586 L18.1983,5.80172 L18.1983,5.82759 L18.1983,5.85345 L18.1724,5.85345 L18.1466,5.87931 L18.1207,5.87931 L18.0948,5.87931 L18.069,5.87931 L18.0431,5.87931 L18.0172,5.87931 L17.9914,5.87931 L17.9655,5.87931 L17.9397,5.87931 L17.9397,5.85345 L17.9138,5.82759 L17.8879,5.80172 L17.8621,5.77586 L17.8621,5.75 L17.8621,5.72414 L17.8362,5.72414 L17.8362,5.69827 L17.8362,5.67241 L17.8104,5.67241 L17.8104,5.64655 L17.7845,5.62068 L17.7586,5.62068 L17.7328,5.62068 L17.7069,5.62068 L17.681,5.59482 L17.6552,5.59482 L17.6293,5.56896 L17.6035,5.54309 L17.5776,5.54309 L17.5776,5.51723 L17.5776,5.49138 L17.5517,5.49138 L17.5259,5.46551 L17.5,5.43964 L17.4742,5.41379 L17.4483,5.38792 L17.4483,5.36207 L17.4483,5.33621 L17.4742,5.33621 L17.5,5.33621 L17.5517,5.33621 L17.5776,5.33621 L17.6035,5.33621 L17.6552,5.36207 z"},{"id":"shape:5805db86-501b-311d-877c-73c501cb2d0c","type":"path","transform":"","fillColor":"#aa557f","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.7328,5.80173 L17.7586,5.77587 L17.7845,5.75001 L17.7845,5.72414 L17.8104,5.69829 L17.8362,5.69829 L17.8362,5.67241 L17.8621,5.67241 L17.8879,5.67241 L17.9138,5.67241 L17.9397,5.67241 L17.9655,5.67241 L17.9914,5.67241 L18.0173,5.67241 L18.0431,5.69829 L18.069,5.72414 L18.0948,5.75001 L18.0948,5.77587 L18.0948,5.80173 L18.0948,5.82759 L18.0948,5.85345 L18.069,5.87932 L18.069,5.90519 L18.069,5.93103 L18.0431,5.93103 L18.0431,5.9569 L17.9914,5.9569 L17.9914,5.98277 L17.9655,5.98277 L17.9397,6.00862 L17.9397,6.03449 L17.9138,6.03449 L17.8879,6.06036 L17.8621,6.06036 L17.8621,6.0862 L17.8879,6.0862 L17.8879,6.11207 L17.9138,6.11207 L17.9138,6.13795 L17.9138,6.1638 L17.9397,6.18966 L17.9397,6.21553 L17.9655,6.24139 L17.9655,6.26724 L17.9655,6.29312 L17.9655,6.31897 L17.9397,6.31897 L17.9138,6.34482 L17.8879,6.34482 L17.8621,6.34482 L17.8362,6.34482 L17.8104,6.34482 L17.7845,6.34482 L17.7586,6.34482 L17.7328,6.34482 L17.7069,6.34482 L17.681,6.34482 L17.6551,6.34482 L17.6551,6.31897 L17.6293,6.31897 L17.6293,6.29312 L17.6034,6.29312 L17.5776,6.26724 L17.5776,6.24139 L17.5776,6.21553 L17.5517,6.18966 L17.5258,6.1638 L17.5258,6.13795 L17.5,6.11207 L17.5,6.0862 L17.5,6.06036 L17.5,6.03449 L17.5,6.00862 L17.5,5.98277 L17.5,5.9569 L17.5,5.93103 L17.5,5.90519 L17.5,5.87932 L17.5,5.85345 L17.5,5.82759 L17.5,5.80173 L17.4741,5.77587 L17.4741,5.75001 L17.4482,5.72414 L17.4482,5.69829 L17.4482,5.67241 L17.4224,5.64656 L17.4224,5.6207 L17.4224,5.59482 L17.4482,5.59482 L17.4482,5.56897 L17.4482,5.54311 L17.4741,5.54311 L17.5,5.54311 L17.5,5.56897 L17.5258,5.56897 L17.5258,5.59482 L17.5517,5.59482 L17.5517,5.6207 L17.5517,5.64656 L17.5517,5.67241 L17.5517,5.69829 L17.5517,5.72414 L17.5776,5.72414 L17.5776,5.75001 L17.5517,5.75001 L17.5776,5.75001 L17.5776,5.77587 L17.6034,5.77587 L17.6293,5.80173 L17.6551,5.82759 L17.681,5.82759 z"},{"id":"shape:cb7fbbd6-6146-792c-97fe-d0d0cc8f502f","type":"path","transform":"","fillColor":"#aaaaaa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M18.069,5.56896 L18.069,5.5431 L18.069,5.51724 L18.0949,5.51724 L18.1207,5.46551 L18.1466,5.46551 L18.1983,5.41379 L18.2501,5.41379 L18.2758,5.41379 L18.3017,5.41379 L18.3276,5.41379 L18.4052,5.46551 L18.4311,5.49138 L18.4311,5.51724 L18.4311,5.5431 L18.4311,5.56896 L18.4311,5.59482 L18.4052,5.62069 L18.4052,5.64655 L18.4052,5.67241 L18.3794,5.67241 L18.3535,5.69827 L18.3276,5.69827 L18.3017,5.69827 L18.2758,5.69827 L18.2758,5.72414 L18.3017,5.75 L18.3276,5.77586 L18.3017,5.77586 L18.3276,5.80172 L18.3276,5.82758 L18.3276,5.85345 L18.3276,5.87931 L18.3276,5.90517 L18.3017,5.90517 L18.2758,5.93103 L18.2501,5.93103 L18.2242,5.93103 L18.1983,5.93103 L18.1725,5.93103 L18.1466,5.93103 L18.1207,5.93103 L18.0949,5.93103 L18.069,5.90517 L18.069,5.87931 L18.0431,5.87931 L18.0172,5.85345 L17.9915,5.82758 L17.9656,5.80172 L17.9397,5.77586 L17.9397,5.75 L17.9397,5.72414 L17.9397,5.69827 L17.9397,5.67241 L17.9397,5.59482 L17.9656,5.56896 z"},{"id":"shape:e36f5144-74b8-e6bb-90c1-30f377dd9612","type":"path","transform":"","fillColor":"#aaaaaa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.5775,4.1724 L17.6034,4.1724 L17.6034,4.14654 L17.6293,4.14654 L17.6293,4.12068 L17.6551,4.12068 L17.681,4.12068 L17.7069,4.12068 L17.7328,4.12068 L17.7585,4.12068 L17.7844,4.14654 L17.8103,4.14654 L17.8103,4.1724 L17.8362,4.19827 L17.8362,4.22413 L17.8362,4.24999 L17.8103,4.24999 L17.7844,4.24999 L17.7585,4.24999 L17.7328,4.24999 L17.7069,4.24999 L17.681,4.24999 L17.6551,4.24999 L17.6551,4.22413 z"},{"id":"shape:806f9b0f-a1e5-adb3-e212-8705618b6409","type":"path","transform":"","fillColor":"#aaaaaa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.7069,3.88793 L17.7327,3.91381 L17.7846,3.93967 L17.8104,3.96552 L17.8104,3.99138 L17.8363,3.99138 L17.8363,4.01725 L17.8363,4.04311 L17.8363,4.06897 L17.8363,4.09484 L17.8104,4.09484 L17.7846,4.09484 L17.7586,4.09484 L17.7327,4.09484 L17.7327,4.06897 L17.7327,4.04311 z"},{"id":"shape:4d059de2-d05a-fd66-adfc-86ccd09d14e2","type":"path","transform":"","fillColor":"#aaaaaa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.6811,3.91379 L17.707,3.93965 L17.707,3.96551 L17.7329,3.96551 L17.7587,3.96551 L17.7846,3.96551 L17.8105,3.96551 L17.7846,3.93965 L17.7587,3.91379 L17.7846,3.91379 L17.8105,3.91379 L17.8364,3.91379 L17.8105,3.88793 L17.7846,3.88793 z"},{"id":"shape:2ca0df2f-967d-90d6-8a87-4b8e3dc0cc06","type":"path","transform":"","fillColor":"#aaaaaa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.7069,4.81895 L17.7069,4.84481 L17.7328,4.84481 L17.7328,4.87067 L17.7328,4.89654 L17.7586,4.89654 L17.7845,4.9224 L17.8104,4.9224 L17.8363,4.9224 L17.8621,4.9224 L17.888,4.9224 L17.9138,4.9224 L17.9397,4.9224 L17.9655,4.9224 L17.9914,4.9224 L18.0172,4.9224 L18.0431,4.9224 L18.0431,4.89654 L18.0689,4.89654 L18.0948,4.89654 L18.0689,4.87067 L18.0431,4.84481 L18.0172,4.81895 L17.9914,4.79309 L17.9655,4.79309 L17.9397,4.79309 L17.9138,4.79309 L17.888,4.76723 L17.888,4.74136 L17.8621,4.74136 L17.8363,4.7155 L17.8104,4.68964 L17.7845,4.68964 L17.7586,4.68964 L17.7328,4.68964 L17.7069,4.68964 L17.681,4.68964 L17.6552,4.68964 z"},{"id":"shape:8f2c6f1b-17eb-dfc7-91b7-cf82efb92799","type":"path","transform":"","fillColor":"#d480aa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.6552,4.61207 L17.6293,4.58621 L17.6034,4.56035 L17.6034,4.53448 L17.6034,4.50862 L17.6034,4.48276 L17.6034,4.4569 L17.6293,4.4569 L17.6293,4.43104 L17.6552,4.43104 L17.6809,4.43104 L17.7068,4.43104 L17.7326,4.43104 L17.7585,4.4569 L17.7844,4.4569 L17.7844,4.48276 L17.7844,4.50862 L17.8103,4.53448 L17.8103,4.56035 L17.8103,4.58621 L17.8362,4.61207 L17.8621,4.61207 L17.8621,4.63793 L17.8879,4.63793 L17.8879,4.66379 L17.8879,4.68966 L17.8879,4.71552 L17.8879,4.74138 L17.8621,4.74138 L17.8621,4.76724 L17.8621,4.79311 L17.8362,4.79311 L17.8103,4.79311 L17.7844,4.79311 L17.7585,4.79311 L17.7326,4.79311 L17.7068,4.79311 L17.6809,4.79311 L17.6552,4.76724 L17.6552,4.74138 L17.6552,4.71552 L17.6293,4.68966 L17.6034,4.68966 L17.6034,4.66379 L17.6034,4.63793 L17.6034,4.61207 z"},{"id":"shape:38add693-721a-6912-f5eb-83a75e493c16","type":"path","transform":"","fillColor":"#d480aa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.7328,3.50001 L17.7328,3.47415 L17.7328,3.44829 L17.7587,3.44829 L17.7846,3.47415 L17.8105,3.50001 L17.8105,3.52587 L17.8105,3.55173 L17.8105,3.5776 L17.7846,3.5776 L17.7587,3.5776 L17.7328,3.5776 L17.7069,3.5776 L17.6811,3.5776 L17.6552,3.5776 L17.6552,3.55173 z"},{"id":"shape:dc758202-4099-90ae-d205-ad78dcff78f6","type":"path","transform":"","fillColor":"#d480aa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.6294,4.22413 L17.6551,4.22413 L17.681,4.22413 L17.7068,4.22413 L17.7327,4.22413 L17.7586,4.24999 L17.7844,4.27585 L17.7844,4.30171 L17.7844,4.32758 L17.7844,4.35344 L17.7844,4.3793 L17.7844,4.40516 L17.7586,4.40516 L17.7327,4.40516 L17.7068,4.40516 L17.681,4.3793 L17.6551,4.35344 L17.6294,4.32758 z"},{"id":"shape:3d623426-8992-9808-a9e4-fc000c78d7cc","type":"path","transform":"","fillColor":"#d480aa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.7068,3.44828 L17.7327,3.42242 L17.7327,3.39656 L17.7585,3.39656 L17.7585,3.3707 L17.7844,3.3707 L17.8103,3.3707 L17.8103,3.39656 L17.8361,3.39656 L17.862,3.42242 L17.862,3.44828 L17.8879,3.47414 L17.8879,3.5 L17.862,3.5 L17.8361,3.5 z"},{"id":"shape:1cb5dc84-d4f3-3613-f6b0-d5d49b96f16e","type":"path","transform":"","fillColor":"#d480aa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.6551,3.21552 L17.681,3.21552 L17.707,3.21552 L17.707,3.18966 L17.7329,3.18966 L17.7586,3.18966 L17.7845,3.18966 L17.8104,3.21552 L17.8362,3.21552 L17.8362,3.24139 L17.8362,3.26725 L17.8104,3.26725 L17.8104,3.29311 L17.8104,3.31897 L17.7845,3.31897 z"},{"id":"shape:a3f37303-b9c9-409e-7f78-dc67cc236695","type":"path","transform":"","fillColor":"#d480aa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.6034,3.75861 L17.6293,3.75861 L17.6552,3.75861 L17.681,3.75861 L17.7069,3.75861 L17.7327,3.75861 L17.7586,3.75861 L17.7845,3.75861 L17.8103,3.73275 L17.7845,3.70689 L17.7586,3.68103 L17.7327,3.68103 L17.7845,3.70689 L17.8103,3.70689 L17.7845,3.70689 L17.8103,3.73275 L17.8103,3.75861 L17.8103,3.78448 L17.8103,3.81034 L17.8103,3.8362 L17.7845,3.8362 L17.7586,3.8362 L17.7327,3.8362 z"},{"id":"shape:ae5d5222-754f-ec64-c39f-2c48426b1b85","type":"path","transform":"","fillColor":"#d480aa","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":null,"points":"M17.681,3.70689 L17.681,3.68103 L17.7069,3.68103 L17.7069,3.65516 L17.7329,3.6293 L17.7586,3.6293 L17.8104,3.6293 L17.8104,3.65516 L17.8363,3.65516 L17.8363,3.68103 L17.8621,3.68103 L17.8621,3.70689 L17.8621,3.73275 L17.8363,3.73275 L17.8363,3.75861 L17.8104,3.75861 L17.7845,3.75861 L17.7586,3.75861 z"},{"id":"shape:82767852-162f-3367-139a-d8b89d3dd930","type":"path","transform":"","fillColor":"#1f8000","filter":null,"lineColor":"#3f8000","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M3.94826,10.9998 L3.97412,10.948 L4.02584,10.9222 L4.0517,10.8704 L4.12929,10.7929 L4.18101,10.7153 L4.33619,10.586 L4.49136,10.4825 L4.87929,10.2499 L5.2155,10.1206 L5.60343,9.96539 L6.01721,9.81019 L6.37929,9.65512 L6.81895,9.52582 L7.18102,9.34486 L7.36204,9.29307 L7.69826,9.21548 L8.0603,9.16381 L8.47414,9.13801 L9.01723,9.13801 L9.61211,9.13801 L10.155,9.13801 L10.6206,9.13801 L10.8016,9.13801 L10.9051,9.13801 L11.1378,9.16381 L11.4741,9.26727 L11.8361,9.31896 L12.1723,9.37066 L12.6637,9.4741 L13.1034,9.52582 L13.5947,9.52582 L13.7758,9.52582 L13.9827,9.4741 L14.1896,9.39655 L14.4741,9.24137 L14.6034,9.1897 L14.7844,9.11211 L14.8879,9.0345 L14.9138,8.9828 L14.9138,8.95689 L14.9138,8.9311 L14.9138,8.90517 L14.9138,8.87926 L14.9138,8.85345 L14.9396,8.85345 L14.9655,8.85345 L14.9913,8.85345 L15.0172,8.85345 L15.0431,8.90517 L15.1465,9.0345 L15.2241,9.13801 L15.2241,9.29307 L15.2241,9.37066 L15.1724,9.44827 L15.0948,9.55161 L15.0689,9.62922 L15.0172,9.75852 L14.9396,9.8878 L14.8362,10.043 L14.7069,10.224 L14.6551,10.3792 L14.5517,10.5342 L14.4741,10.586 L14.3965,10.7153 L14.3448,10.767 L14.2672,10.7929 L14.112,10.9222 L13.9569,11.0256 L13.75,11.1808 L13.5947,11.2842 L13.4913,11.4135 L13.4137,11.4653 L13.2844,11.5687 L13.1551,11.698 L13.0775,11.8015 L12.9741,11.9049 L12.8706,11.9566 L12.8189,11.9825 L12.7672,12.0342 L12.6637,12.0601 L12.5085,12.1118 L12.3792,12.1635 L12.3016,12.2153 L12.1982,12.2411 L12.1206,12.2929 L11.9654,12.3446 L11.8103,12.448 L11.6809,12.5256 L11.5516,12.5773 L11.4482,12.6291 L11.3447,12.6808 L11.2154,12.7325 L10.9568,12.8618 L10.6982,12.9653 L10.4654,12.9653 L10.2844,12.9653 L10.0516,12.9653 L9.87066,12.9653 L9.58618,12.9653 L9.431,12.9653 L9.24998,12.9653 L9.09482,12.9653 L8.88789,12.9653 L8.57757,12.9653 L8.37066,12.9653 L8.16377,12.9653 L8.03446,12.9653 L7.87929,12.9653 L7.64653,12.9653 L7.64653,12.9394 L7.64653,13.0429 L7.38791,12.9911 L7.15515,12.9911 L6.87067,12.9911 L6.74136,12.9911 L6.48275,12.9911 L6.27584,12.9911 L5.99136,12.9911 L5.88791,12.9911 L5.83619,12.9911 L5.78445,12.9911 L5.65515,12.9911 L5.49998,12.9911 L5.37067,12.9911 L5.29308,13.017 L5.24136,13.017 L5.18962,13.017 L5.16377,13.017 L5.13791,13.017 L5.06032,13.017 L5.0086,13.017 L4.93101,13.017 L4.87929,13.017 L4.82757,13.017 L4.8017,13.017 L4.77584,13.017 L4.72412,13.017 L4.64653,13.017 L4.62067,13.017 L4.56895,13.017 L4.54308,13.017 L4.51721,13.017 L4.4655,13.017 L4.43962,13.017 L4.41377,13.017 L4.31032,13.017 L4.28445,13.017 L4.23275,13.017 L3.99998,13.017 L3.97412,13.017 L3.94826,13.017 L3.87067,12.9911 L3.81895,12.9653 L3.7155,12.9135 L3.66377,12.9135 L3.61205,12.8877 L3.5086,12.8877 L3.3017,12.8877 L3.17239,12.8877 L3.12067,12.8877 L3.04308,12.8877 L2.91377,12.8877 L2.83619,12.8877 L2.7586,12.8877 L2.73274,12.8877 L2.68101,12.8877 L2.62929,12.8877 L2.57757,12.8877 L2.60343,12.8877 L2.62929,12.8877 z"},{"id":"shape:c2a07665-d288-204b-6ff2-a70f6fa3ff62","type":"path","transform":"","fillColor":"#ff2bf8","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M8.34481,7.8448 L8.37061,7.8448 L8.39651,7.79309 L8.57755,7.58618 L8.83624,7.35344 L9.32787,6.99136 L9.71595,6.73273 L10.1558,6.37068 L10.5178,6.16377 L10.9574,6.03447 L11.1902,5.98275 L11.423,5.98275 L11.604,5.98275 L11.9661,6.06033 L12.3799,6.13792 L12.6902,6.2155 L13.1815,6.24136 L13.5695,6.31893 L14.035,6.3448 L14.5523,6.3448 L15.2506,6.29309 L15.7159,6.29309 L16.5437,6.29309 L17.0092,6.2155 L17.3973,6.16377 L17.5523,6.11206 L17.7076,6.06033 L17.8111,6.06033 L18.0437,6.03447 L18.1473,6.03447 L18.199,6.00861 L18.199,6.03447 L18.1731,6.06033 L18.0955,6.13792 L18.0437,6.16377 L17.9662,6.2155 L17.9404,6.24136 L17.8886,6.29309 L17.7851,6.3448 L17.7076,6.44826 L17.5523,6.57755 L17.3714,6.73273 L17.2162,6.83618 L17.0092,6.9655 L16.8539,7.06893 L16.5178,7.2241 L16.0521,7.45685 L15.8454,7.63791 L15.535,7.87068 L15.4315,7.92238 L15.3023,7.99997 L15.0954,8.02585 L14.6298,8.05169 L14.3454,8.05169 L14.1385,8.02585 L14.035,7.99997 L13.8023,7.94826 L13.5178,7.89653 L13.2851,7.87068 L13.104,7.87068 L12.8713,7.87068 L12.6643,7.8448 L12.4057,7.8448 L12.173,7.8448 L11.9143,7.8448 L11.6815,7.8448 L11.5263,7.8448 L11.2936,7.87068 L11.0091,7.92238 L10.7247,7.94826 L10.4143,7.9741 L10.2075,7.99997 L10.0265,8.02585 L9.87123,8.02585 L9.79359,8.02585 L9.69015,8.02585 L9.61251,8.02585 L9.53487,8.02585 L9.48306,8.02585 L9.40541,8.05169 L9.32787,8.05169 L9.22434,8.07755 L9.12089,8.07755 L9.04323,8.10344 L8.93969,8.12928 L8.83624,8.15511 L8.73274,8.181 L8.65514,8.20684 L8.55175,8.23274 L8.42245,8.23274 L8.34481,8.28447 L8.29311,8.31036 L8.24131,8.33616 L8.18961,8.36216 L8.11201,8.38796 L8.08621,8.38796 L8.03441,8.38796 L7.98271,8.38796 L7.90511,8.41387 L7.87931,8.41387 L7.85341,8.43967 L7.82751,8.43967 L7.77581,8.43967 L7.75001,8.43967 L7.69821,8.43967 L7.64653,8.43967 L7.59483,8.46556 L7.54313,8.51727 L7.49133,8.54317 L7.41383,8.56895 L7.38793,8.59487 L7.33623,8.59487 L7.28454,8.62076 L7.25864,8.62076 L7.23274,8.64656 L7.20694,8.69837 L7.12932,8.69837 L7.10342,8.69837 L7.07762,8.69837 L7.05172,8.69837 z"},{"id":"shape:dbe8da14-7d74-4986-5d8e-5d97c4d1f980","type":"path","transform":"","fillColor":"#aa004f","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M7.74997,8.38791 L8.0862,8.25863 L8.88796,8 L9.50896,7.8707 L10.0006,7.71552 L10.3109,7.61207 L10.7247,7.61207 L11.2419,7.61207 L11.8109,7.53448 L12.3023,7.48277 L12.742,7.3793 L13.1299,7.32761 L13.3627,7.30172 L13.7247,7.30172 L13.9833,7.35345 L14.3972,7.3793 L14.5782,7.3793 L14.7334,7.3793 L14.8886,7.3793 L14.9144,7.3793 L14.9402,7.3793 L14.9661,7.3793 L14.9661,7.40518 L14.9661,7.43104 L14.9402,7.43104 L14.9144,7.45689 L14.8368,7.53448 L14.7075,7.61207 L14.5265,7.76725 L14.3454,7.89654 L14.1644,8.02586 L13.9058,8.18104 L13.5179,8.33622 L13.3627,8.38791 L12.8454,8.36207 L12.1213,8.33622 L11.785,8.33622 L11.2936,8.31034 L10.5954,8.31034 L10.1816,8.31034 L9.71596,8.31034 L9.45714,8.31034 L9.48306,8.38791 L8.96545,8.41381 L8.62935,8.4655 L8.34479,8.54311 L8.11206,8.64655 L7.95688,8.64655 L7.85344,8.64655 L7.77585,8.64655 L7.64654,8.64655 L7.51722,8.64655 L7.3879,8.64655 L7.31031,8.64655 L7.23274,8.64655 L7.05172,8.67247 L6.87067,8.74996 L6.81895,8.77583 L6.76722,8.77583 L6.76722,8.80173 L6.76722,8.82751 L6.74136,8.82751 L6.71551,8.82751 z"},{"id":"shape:a993a37b-cf8e-1a26-d512-c98b30486894","type":"path","transform":"","fillColor":"#d50063","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":1,"points":"M15.4311,6.42242 L16.8277,5.90517 L16.9053,5.90517 L17.1122,5.9569 L17.319,5.9569 L17.6294,5.9569 L17.9656,5.87931 L18.1725,5.82759 L18.2241,5.77586 L18.1984,5.77586 L18.1466,5.80172 L17.9656,5.93104 L17.7586,6.08621 L17.526,6.26724 L17.2931,6.42242 L17.1639,6.5 L16.9311,6.57759 L16.75,6.57759 L16.3881,6.57759 L16.026,6.57759 L15.5863,6.57759 L15.2242,6.57759 L14.9397,6.57759 L14.8104,6.57759 L14.7587,6.57759 L14.6811,6.57759 L14.6552,6.57759 L14.6035,6.57759 L14.5776,6.57759 z"},{"id":"shape:4f8153a6-67f1-ded1-e90a-05dd4f5e57de","type":"path","transform":"","fillColor":"#d50063","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":0.1,"points":"M8.08622,8.64654 L8.18965,8.59482 L8.39652,8.51723 L8.70696,8.38792 L8.96561,8.28448 L9.22432,8.181 L9.30195,8.15518 L9.40539,8.1293 L9.50896,8.10341 L9.53477,8.07759 L9.6124,8.02584 L9.6124,8.05171 L9.6124,8.07759 L9.48306,8.23274 L9.40539,8.33618 L9.35368,8.43964 L9.25021,8.49136 L9.09493,8.59482 L8.9915,8.67241 L8.91391,8.67241 L8.8363,8.67241 L8.70696,8.67241 L8.60341,8.67241 L8.44823,8.67241 L8.31899,8.67241 L8.16379,8.67241 L8.08622,8.67241 L7.9569,8.67241 L7.87931,8.67241 L7.77584,8.67241 L7.75001,8.67241 L7.69825,8.67241 z"},{"id":"shape:1f27e960-db34-febb-ceb3-0f0793a6cf4e","type":"path","transform":"","fillColor":"#aa557c","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":0.1,"points":"M14.2415,7.45689 L15.069,7.30172 L16.2586,7.14655 L16.957,6.86207 L17.2672,6.70689 L17.5776,6.55172 L17.8103,6.39655 L17.8362,6.37068 L17.8362,6.34483 L16.9311,7.35345 L16.6725,7.45689 L16.4139,7.48276 L15.9226,7.53448 L15.4311,7.5862 L15.0172,7.61207 L14.6811,7.61207 L14.2672,7.61207 L14.0603,7.61207 L13.8276,7.61207 L13.6466,7.61207 L13.3621,7.61207 L13.1551,7.61207 L12.9225,7.61207 L12.638,7.63793 L12.3792,7.68966 L11.9913,7.71552 L11.6551,7.74137 L11.3447,7.74137 L11.2412,7.74137 L11.1379,7.74137 L11.0861,7.74137 L11.0345,7.74137 z"},{"id":"shape:74f5cef1-ce08-600d-e384-958dac4704de","type":"path","transform":"","fillColor":"#805569","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":0.1,"points":"M17.5777,6.11206 L17.6035,6.06034 L17.7845,5.98274 L17.9655,5.87931 L18.0173,5.82757 L18.069,5.82757 L18.1724,5.82757 L18.1724,5.87931 L18.1724,5.93102 L18.0431,6.11206 L17.9914,6.21551 L17.7586,6.37068 L17.4483,6.49999 L17.0604,6.57757 L16.75,6.60343 L16.4655,6.65516 L16.0777,6.70689 L15.5345,6.75861 L15.1207,6.81034 L14.8363,6.81034 L14.6811,6.81034 L14.6293,6.81034 L14.4741,6.81034 L14.3966,6.81034 L14.293,6.81034 L14.1637,6.81034 L14.0085,6.81034 L13.8275,6.81034 L13.5689,6.81034 L13.3103,6.83619 L13.1292,6.83619 L13.0259,6.83619 L12.8707,6.83619 L12.7155,6.83619 z"},{"id":"shape:93177ed1-1f6a-b50b-12a3-3a6ca8ae664e","type":"path","transform":"","fillColor":"#805569","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":0.1,"points":"M17.2673,6.65517 L17.4743,6.52586 L17.7587,6.1638 L18.0689,5.90517 L18.0948,5.85345 L18.0948,5.80173 L18.0948,5.77586 L18.1725,5.85345 L18.2241,5.93104 L18.2758,5.98276 L18.25,6.08621 L18.0689,6.39655 L17.9396,6.47414 L17.681,6.55173 L17.2932,6.60345 L17.1639,6.65517 L16.9828,6.65517 L16.8276,6.65517 L16.75,6.65517 L16.6725,6.65517 L16.5948,6.65517 L16.5432,6.65517 L16.4655,6.60345 z"},{"id":"shape:3356fa31-7bda-9431-fb49-731e3cd9425d","type":"ellipse","transform":"rotate(2.23295, 5.38364, 2.52374)","fillColor":"#d5cb80","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null,"lineWidth":0.1,"width":2.56062,"height":2.35484,"left":4.10337,"top":1.2527000000000001},{"id":"shape:586870df-e743-85a8-f0e1-0455906e4ea3","type":"text","transform":"","textFamily":"Arial","textSize":2,"top":2.02586,"left":1.12931,"text":"s","lineWidth":0.1,"fillColor":"#ff6200","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null},{"id":"shape:047da402-5855-8964-3363-fd4fba0c981a","type":"text","transform":"","textFamily":"Arial","textSize":2,"top":3.79634,"left":1.16055,"text":"v","lineWidth":0.1,"fillColor":"#ff6200","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null},{"id":"shape:8517cf61-19c7-d05d-d84f-1fff0f1e78ed","type":"text","transform":"","textFamily":"Arial","textSize":2,"top":5.57542,"left":1.2694,"text":"g","lineWidth":0.1,"fillColor":"#ff6200","filter":null,"lineColor":"none","fillOpac":null,"lineOpac":null}] \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/README.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/README.txt Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,3 @@ +2006-11-21 jvs: +ext-all.css contains all of the other css files combined and stripped of comments (except themes). + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/borders.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/borders.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,61 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #99bbe8; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #99bbe8; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #99bbe8; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} + +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #99bbe8; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #99bbe8; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/box.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/box.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,111 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +/* + Creates rounded, raised boxes like on the Ext website - the markup isn't pretty: +
    +
    +
    +

    YOUR TITLE HERE (optional)

    +
    YOUR CONTENT HERE
    +
    +
    +
    + */ + +.x-box-tl { + background: transparent url(../images/default/box/corners.gif) no-repeat 0 0; + zoom:1; +} + +.x-box-tc { + height: 8px; + background: transparent url(../images/default/box/tb.gif) repeat-x 0 0; + overflow: hidden; +} + +.x-box-tr { + background: transparent url(../images/default/box/corners.gif) no-repeat right -8px; +} + +.x-box-ml { + background: transparent url(../images/default/box/l.gif) repeat-y 0; + padding-left: 4px; + overflow: hidden; + zoom:1; +} + +.x-box-mc { + background: #eee url(../images/default/box/tb.gif) repeat-x 0 -16px; + padding: 4px 10px; + font-family: "Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif; + color: #393939; + font-size: 12px; +} + +.x-box-mc h3 { + font-size: 14px; + font-weight: bold; + margin: 0 0 4px 0; + zoom:1; +} + +.x-box-mr { + background: transparent url(../images/default/box/r.gif) repeat-y right; + padding-right: 4px; + overflow: hidden; +} + +.x-box-bl { + background: transparent url(../images/default/box/corners.gif) no-repeat 0 -16px; + zoom:1; +} + +.x-box-bc { + background: transparent url(../images/default/box/tb.gif) repeat-x 0 -8px; + height: 8px; + overflow: hidden; +} + +.x-box-br { + background: transparent url(../images/default/box/corners.gif) no-repeat right -24px; +} + +.x-box-tl, .x-box-bl { + padding-left: 8px; + overflow: hidden; +} + +.x-box-tr, .x-box-br { + padding-right: 8px; + overflow: hidden; +} + +.x-box-blue .x-box-bl, .x-box-blue .x-box-br, .x-box-blue .x-box-tl, .x-box-blue .x-box-tr { + background-image: url(../images/default/box/corners-blue.gif); +} + +.x-box-blue .x-box-bc, .x-box-blue .x-box-mc, .x-box-blue .x-box-tc { + background-image: url(../images/default/box/tb-blue.gif); +} + +.x-box-blue .x-box-mc { + background-color: #c3daf9; +} + +.x-box-blue .x-box-mc h3 { + color: #17385b; +} + +.x-box-blue .x-box-ml { + background-image: url(../images/default/box/l-blue.gif); +} + +.x-box-blue .x-box-mr { + background-image: url(../images/default/box/r-blue.gif); +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/button.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/button.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,159 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-btn{ + font:normal 11px tahoma, verdana, helvetica; + cursor:pointer; + white-space: nowrap; +} +.x-btn button{ + border:0 none; + background:transparent; + font:normal 11px tahoma,verdana,helvetica; + padding-left:3px; + padding-right:3px; + cursor:pointer; + margin:0; + overflow:visible; + width:auto; + -moz-outline:0 none; + outline:0 none; +} +* html .ext-ie .x-btn button { + width:1px; +} +.ext-gecko .x-btn button { + padding-left:0; + padding-right:0; +} +.ext-ie .x-btn button { + padding-top:2px; +} +/* + Predefined css class for buttons with only icon. Add this class (x-btn-icon) and a class with a background-image + to your button for a button with just an icon. + e.g. + .my-class .x-btn-text { background-image: url(foo.gif); } + */ + +.x-btn-icon .x-btn-center .x-btn-text{ + background-position: center; + background-repeat: no-repeat; + height: 16px; + width: 16px; + cursor:pointer; + white-space: nowrap; + padding:0; +} +.x-btn-icon .x-btn-center{ + padding:1px; +} +.x-btn em { + font-style:normal; + font-weight:normal; +} +/* + Button class for icon and text. Add this class (x-btn-text-icon) and a class with a background-image + to your button for both text and icon. +*/ + +.x-btn-text-icon .x-btn-center .x-btn-text{ + background-position: 0 2px; + background-repeat: no-repeat; + padding-left:18px; + padding-top:3px; + padding-bottom:2px; + padding-right:0; +} + +.x-btn-left, .x-btn-right{ + font-size:1px; + line-height:1px; +} +.x-btn-left{ + width:3px; + height:21px; + background:url(../images/default/button/btn-sprite.gif) no-repeat 0 0; +} +.x-btn-right{ + width:3px; + height:21px; + background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -21px; +} +.x-btn-left i, .x-btn-right i{ + display:block; + width:3px; + overflow:hidden; + font-size:1px; + line-height:1px; +} +.x-btn-center{ + background:url(../images/default/button/btn-sprite.gif) repeat-x 0 -42px; + vertical-align: middle; + text-align:center; + padding:0 5px; + cursor:pointer; + white-space:nowrap; +} +.x-btn-over .x-btn-left{ + background-position:0 -63px; +} +.x-btn-over .x-btn-right{ + background-position:0 -84px; +} +.x-btn-over .x-btn-center{ + background-position:0 -105px; +} +.x-btn-click .x-btn-center, .x-btn-menu-active .x-btn-center{ + background-position:0 -126px; +} +.x-btn-disabled *{ + color:gray !important; + cursor:default !important; +} +.x-btn-menu-text-wrap .x-btn-center { + padding:0 3px; +} +.ext-gecko .x-btn-menu-text-wrap .x-btn-center { + padding:0 1px; +} +.x-btn-menu-arrow-wrap .x-btn-center { + padding:0; +} +.x-btn-menu-arrow-wrap .x-btn-center button { + width:12px !important; + height:21px; + padding:0 !important; + display:block; + background:transparent url(../images/default/button/btn-arrow.gif) no-repeat left 3px; +} +.x-btn-with-menu .x-btn-center { + padding-right:2px !important; +} +.x-btn-with-menu .x-btn-center em { + display:block; + background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 0; + padding-right:10px; +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + display:block; + background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 3px; + padding-right:10px; +} + +/* Toggle button styles */ +.x-btn-pressed .x-btn-left{ + background: url(../images/default/button/btn-sprite.gif) no-repeat 0 -63px; +} +.x-btn-pressed .x-btn-right{ + background: url(../images/default/button/btn-sprite.gif) no-repeat 0 -84px; +} +.x-btn-pressed .x-btn-center{ + background: url(../images/default/button/btn-sprite.gif) repeat-x 0 -126px; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/combo.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/combo.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,55 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-combo-list { + border:1px solid #98c0f4; + background:#ddecfe; + zoom:1; + overflow:hidden; +} +.x-combo-list-inner { + overflow:auto; + background:white; + position:relative; /* for calculating scroll offsets */ + zoom:1; + overflow-x:hidden; +} +.x-combo-list-hd { + font:bold 11px tahoma, arial, helvetica, sans-serif; + color:#15428b; + background-image: url(../images/default/layout/panel-title-light-bg.gif); + border-bottom:1px solid #98c0f4; + padding:3px; +} +.x-resizable-pinned .x-combo-list-inner { + border-bottom:1px solid #98c0f4; +} +.x-combo-list-item { + font:normal 12px tahoma, arial, helvetica, sans-serif; + padding:2px; + border:1px solid #fff; + white-space: nowrap; + overflow:hidden; + text-overflow: ellipsis; +} +.x-combo-list .x-combo-selected{ + border:1px dotted #a3bae9 !important; + background:#DFE8F6; + cursor:pointer; +} +.x-combo-noedit{ + cursor:pointer; +} +.x-combo-list .x-toolbar { + border-top:1px solid #98c0f4; + border-bottom:0 none; +} + +.x-combo-list-small .x-combo-list-item { + font:normal 11px tahoma, arial, helvetica, sans-serif; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/core.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/core.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,314 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.ext-el-mask { + z-index: 20000; + position: absolute; + top:0; + left:0; + -moz-opacity: 0.5; + opacity: .50; + filter: alpha(opacity=50); + background-color: #CCC; + width: 100%; + height: 100%; + zoom: 1; +} +.ext-el-mask-msg { + z-index: 20001; + position: absolute; + top: 0; + left: 0; + border:1px solid #6593cf; + background: #c3daf9 url(../images/default/box/tb-blue.gif) repeat-x 0 -16px; + padding:2px; +} +.ext-el-mask-msg div { + padding:5px 10px 5px 10px; + background: #eee; + border:1px solid #a3bad9; + color:#222; + font:normal 11px tahoma, arial, helvetica, sans-serif; + cursor:wait; +} + +.ext-shim { + position:absolute; + visibility:hidden; + left:0; + top:0; + overflow:hidden; +} +.ext-ie .ext-shim { + filter: alpha(opacity=0); +} +.ext-ie6 .ext-shim { + margin-left: 5px; + margin-top: 3px; +} + +.x-mask-loading div { + padding:5px 10px 5px 25px; + background: #fbfbfb url( '../images/default/grid/loading.gif' ) no-repeat 5px 5px; + line-height: 16px; +} +/* class for hiding elements without using display:none */ +.x-hidden, .x-hide-offsets { + position:absolute; + left:-10000px; + top:-10000px; + visibility:hidden; +} +.x-hide-display { + display:none !important; +} + +.x-hide-visibility { + visibility:hidden !important; +} + +.x-masked { + overflow: hidden !important; +} + +.x-masked select, .x-masked object, .x-masked embed { + visibility: hidden; +} + +.x-layer { + visibility: hidden; +} + +.x-unselectable, .x-unselectable * { + -moz-user-select: none; + -khtml-user-select: none; +} + +.x-repaint { + zoom: 1; + background-color: transparent; + -moz-outline: none; +} + +.x-item-disabled { + color: gray; + cursor: default; + opacity: .6; + -moz-opacity: .6; + filter: alpha(opacity=60); +} + +.x-item-disabled * { + color: gray !important; + cursor: default !important; +} + +.x-splitbar-proxy { + position: absolute; + visibility: hidden; + z-index: 20001; + background: #aaa; + zoom: 1; + line-height: 1px; + font-size: 1px; + overflow: hidden; +} + +.x-splitbar-h, .x-splitbar-proxy-h { + cursor: e-resize; + cursor: col-resize; +} + +.x-splitbar-v, .x-splitbar-proxy-v { + cursor: s-resize; + cursor: row-resize; +} + +.x-color-palette { + width: 150px; + height: 92px; + cursor: pointer; +} + +.x-color-palette a { + border: 1px solid #fff; + float: left; + padding: 2px; + text-decoration: none; + -moz-outline: 0 none; + outline: 0 none; + cursor: pointer; +} + +.x-color-palette a:hover, .x-color-palette a.x-color-palette-sel { + border: 1px solid #8BB8F3; + background: #deecfd; +} + +.x-color-palette em { + display: block; + border: 1px solid #ACA899; +} + +.x-color-palette em span { + cursor: pointer; + display: block; + height: 10px; + line-height: 10px; + width: 10px; +} + +.x-ie-shadow { + display: none; + position: absolute; + overflow: hidden; + left:0; + top:0; + background:#777; + zoom:1; +} + +.x-shadow { + display: none; + position: absolute; + overflow: hidden; + left:0; + top:0; +} + +.x-shadow * { + overflow: hidden; +} + +.x-shadow * { + padding: 0; + border: 0; + margin: 0; + clear: none; + zoom: 1; +} + +/* top bottom */ +.x-shadow .xstc, .x-shadow .xsbc { + height: 6px; + float: left; +} + +/* corners */ +.x-shadow .xstl, .x-shadow .xstr, .x-shadow .xsbl, .x-shadow .xsbr { + width: 6px; + height: 6px; + float: left; +} + +/* sides */ +.x-shadow .xsc { + width: 100%; +} + +.x-shadow .xsml, .x-shadow .xsmr { + width: 6px; + float: left; + height: 100%; +} + +.x-shadow .xsmc { + float: left; + height: 100%; + background: transparent url( ../images/default/shadow-c.png ); +} + +.x-shadow .xst, .x-shadow .xsb { + height: 6px; + overflow: hidden; + width: 100%; +} + +.x-shadow .xsml { + background: transparent url( ../images/default/shadow-lr.png ) repeat-y 0 0; +} + +.x-shadow .xsmr { + background: transparent url( ../images/default/shadow-lr.png ) repeat-y -6px 0; +} + +.x-shadow .xstl { + background: transparent url( ../images/default/shadow.png ) no-repeat 0 0; +} + +.x-shadow .xstc { + background: transparent url( ../images/default/shadow.png ) repeat-x 0 -30px; +} + +.x-shadow .xstr { + background: transparent url( ../images/default/shadow.png ) repeat-x 0 -18px; +} + +.x-shadow .xsbl { + background: transparent url( ../images/default/shadow.png ) no-repeat 0 -12px; +} + +.x-shadow .xsbc { + background: transparent url( ../images/default/shadow.png ) repeat-x 0 -36px; +} + +.x-shadow .xsbr { + background: transparent url( ../images/default/shadow.png ) repeat-x 0 -6px; +} + +.loading-indicator { + font-size: 11px; + background-image: url(../images/default/grid/loading.gif); + background-repeat: no-repeat; + background-position: left; + padding-left: 20px; + line-height: 16px; + margin: 3px; +} + +.x-text-resize { + position: absolute; + left: -1000px; + top: -1000px; + visibility: hidden; + zoom: 1; +} + +.x-drag-overlay { + width: 100%; + height: 100%; + display: none; + position: absolute; + left: 0; + top: 0; + background-image:url(../images/default/s.gif); + z-index: 20000; +} + +.x-clear { + clear:both; + height:0; + overflow:hidden; + line-height:0; + font-size:0; +} + + +.x-spotlight { + z-index: 8999; + position: absolute; + top:0; + left:0; + -moz-opacity: 0.5; + opacity: .50; + filter: alpha(opacity=50); + background-color: #CCC; + width:0; + height:0; + zoom: 1; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/date-picker.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/date-picker.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,247 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-date-picker { + border: 1px solid #1b376c; + border-top:0 none; + background:#fff; + position:relative; +} +.x-date-picker a { + -moz-outline:0 none; + outline:0 none; +} +.x-date-inner, .x-date-inner td, .x-date-inner th{ + border-collapse:separate; +} +.x-date-middle,.x-date-left,.x-date-right { + background: url(../images/default/shared/hd-sprite.gif) repeat-x 0 -83px; + color:#FFF; + font:bold 11px "sans serif", tahoma, verdana, helvetica; + overflow:hidden; +} + +.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{ + background:transparent !important; + vertical-align:middle; +} +.x-date-middle .x-btn .x-btn-text { + color:#fff; +} +.x-date-middle .x-btn-with-menu .x-btn-center em { + background:transparent url(../images/default/toolbar/btn-arrow-light.gif) no-repeat right 0; +} +.x-date-right, .x-date-left { + width:18px; +} +.x-date-right{ + text-align:right; +} +.x-date-middle { + padding-top:2px;padding-bottom:2px; + width:130px; /* FF3 */ +} +.x-date-right a, .x-date-left a{ + display:block; + width:16px; + height:16px; + background-position: center; + background-repeat: no-repeat; + cursor:pointer; + -moz-opacity: 0.6; + opacity:.6; + filter: alpha(opacity=60); +} +.x-date-right a:hover, .x-date-left a:hover{ + -moz-opacity: 1; + opacity:1; + filter: alpha(opacity=100); +} +.x-date-right a { + background-image: url(../images/default/shared/right-btn.gif); + margin-right:2px; + text-decoration:none !important; +} +.x-date-left a{ + background-image: url(../images/default/shared/left-btn.gif); + margin-left:2px; + text-decoration:none !important; +} +table.x-date-inner { + width:100%; + table-layout:fixed; +} +.x-date-inner th { + width:25px; +} +.x-date-inner th { + background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; + text-align:right !important; + border-bottom: 1px solid #a3bad9; + font:normal 10px arial, helvetica,tahoma,sans-serif; + color:#233d6d; + cursor:default; + padding:0; + border-collapse:separate; +} +.x-date-inner th span { + display:block; + padding:2px; + padding-right:7px; +} +.x-date-inner td { + border: 1px solid #fff; + text-align:right; + padding:0; +} +.x-date-inner a { + padding:2px 5px; + display:block; + font:normal 11px arial, helvetica,tahoma,sans-serif; + text-decoration:none; + color:black; + text-align:right; + zoom:1; +} +.x-date-inner .x-date-active{ + cursor:pointer; + color:black; +} +.x-date-inner .x-date-selected a{ + background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; + border:1px solid #8db2e3; + padding:1px 4px; +} +.x-date-inner .x-date-today a{ + border: 1px solid darkred; + padding:1px 4px; +} +.x-date-inner .x-date-selected span{ + font-weight:bold; +} +.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a { + color:#aaaaaa; + text-decoration:none !important; +} +.x-date-bottom { + padding:4px; + border-top: 1px solid #a3bad9; + background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; +} + +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ + text-decoration:none !important; + color:black; + background: #ddecfe; +} + +.x-date-inner .x-date-disabled a { + cursor:default; + background:#eeeeee; + color:#bbbbbb; +} +.x-date-mmenu{ + background:#eeeeee !important; +} +.x-date-mmenu .x-menu-item { + font-size:10px; + padding:1px 24px 1px 4px; + white-space: nowrap; + color:#000; +} +.x-date-mmenu .x-menu-item .x-menu-item-icon { + width:10px;height:10px;margin-right:5px; + background-position:center -4px !important; +} + +.x-date-mp { + position:absolute; + left:0; + top:0; + background:white; + display:none; +} +.x-date-mp td { + padding:2px; + font:normal 11px arial, helvetica,tahoma,sans-serif; +} +td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn { + border: 0 none; + text-align:center; + vertical-align: middle; + width:25%; +} +.x-date-mp-ok { + margin-right:3px; +} +.x-date-mp-btns button { + text-decoration:none; + text-align:center; + text-decoration:none !important; + background:#083772; + color:white; + border:1px solid; + border-color: #3366cc #000055 #000055 #3366cc; + padding:1px 3px 1px; + font:normal 11px arial, helvetica,tahoma,sans-serif; + cursor:pointer; +} +.x-date-mp-btns { + background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; +} +.x-date-mp-btns td { + border-top: 1px solid #c5d2df; + text-align:center; +} +td.x-date-mp-month a,td.x-date-mp-year a { + display:block; + padding:2px 4px; + text-decoration:none; + text-align:center; + color:#15428b; +} + +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { + color:#15428b; + text-decoration:none; + cursor:pointer; + background: #ddecfe; +} + +td.x-date-mp-sel a { + padding:1px 3px; + background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; + border:1px solid #8db2e3; +} +.x-date-mp-ybtn a { + overflow:hidden; + width:15px; + height:15px; + cursor:pointer; + background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat; + display:block; + margin:0 auto; +} +.x-date-mp-ybtn a.x-date-mp-next { + background-position:0 -120px; +} +.x-date-mp-ybtn a.x-date-mp-next:hover { + background-position:-15px -120px; +} +.x-date-mp-ybtn a.x-date-mp-prev { + background-position:0 -105px; +} +.x-date-mp-ybtn a.x-date-mp-prev:hover { + background-position:-15px -105px; +} +.x-date-mp-ybtn { + text-align:center; +} +td.x-date-mp-sep { + border-right:1px solid #c5d2df; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/dd.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/dd.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,75 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-dd-drag-proxy{ + position:absolute; + left:0;top:0; + visibility:hidden; + z-index:15000; +} +.x-dd-drag-ghost{ + color: black; + font: normal 11px arial, helvetica, sans-serif; + -moz-opacity: 0.85; + opacity:.85; + filter: alpha(opacity=85); + border-top:1px solid #dddddd; + border-left:1px solid #dddddd; + border-right:1px solid #bbbbbb; + border-bottom:1px solid #bbbbbb; + padding:3px; + padding-left:20px; + background-color:white; + white-space:nowrap; +} +.x-dd-drag-repair .x-dd-drag-ghost{ + -moz-opacity: 0.4; + opacity:.4; + filter: alpha(opacity=40); + border:0 none; + padding:0; + background-color:transparent; +} +.x-dd-drag-repair .x-dd-drop-icon{ + visibility:hidden; +} +.x-dd-drop-icon{ + position:absolute; + top:3px; + left:3px; + display:block; + width:16px; + height:16px; + background-color:transparent; + background-position: center; + background-repeat: no-repeat; + z-index:1; +} +.x-dd-drop-nodrop .x-dd-drop-icon{ + background-image: url(../images/default/dd/drop-no.gif); +} +.x-dd-drop-ok .x-dd-drop-icon{ + background-image: url(../images/default/dd/drop-yes.gif); +} +.x-dd-drop-ok-add .x-dd-drop-icon{ + background-image: url(../images/default/dd/drop-add.gif); +} + + +.x-view-selector { + position:absolute; + left:0; + top:0; + width:0; + background:#c3daf9; + border:1px dotted #3399bb; + opacity: .5; + -moz-opacity: .5; + filter:alpha(opacity=50); + zoom:1; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/debug.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/debug.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,37 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +#x-debug-browser .x-tree .x-tree-node a span { + color:#222297; + font-size:11px; + padding-top:2px; + font-family:"monotype","courier new",sans-serif; + line-height:18px; +} +#x-debug-browser .x-tree a i { + color:#FF4545; + font-style:normal; +} +#x-debug-browser .x-tree a em { + color:#999; +} +#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{ + background:#c3daf9; +} +#x-debug-browser .x-tool-toggle { + background-position:0 -75px; +} +#x-debug-browser .x-tool-toggle-over { + background-position:-15px -75px; +} +#x-debug-browser.x-panel-collapsed .x-tool-toggle { + background-position:0 -60px; +} +#x-debug-browser.x-panel-collapsed .x-tool-toggle-over { + background-position:-15px -60px; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/dialog.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/dialog.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,69 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-window-dlg .x-window-body { + border:0 none !important; + padding:5px 10px; + overflow:hidden !important; +} +.x-window-dlg .x-window-mc { + border:0 none !important; +} +.x-window-dlg .ext-mb-text, +.x-window-dlg .x-window-header-text { + font-size:12px; +} +.x-window-dlg .ext-mb-input { + margin-top:4px; + width:95%; +} +.x-window-dlg .ext-mb-textarea { + margin-top:4px; + font:normal 12px tahoma,arial,helvetica,sans-serif; +} +.x-window-dlg .x-progress-wrap { + margin-top:4px; +} +.ext-ie .x-window-dlg .x-progress-wrap { + margin-top:6px; +} +.x-window-dlg .x-msg-box-wait { + background: transparent url(../images/default/grid/loading.gif) no-repeat left; + display:block; + width:300px; + padding-left:18px; + line-height:18px; +} +.x-window-dlg .ext-mb-icon { + float:left; + width:47px; + height:32px; +} +.x-window-dlg .ext-mb-icon { + float:left; + width:47px; + height:32px; +} +.ext-ie .x-window-dlg .ext-mb-icon { + width:44px; /* 3px IE margin issue */ +} +.x-window-dlg .ext-mb-info { + background:transparent url(../images/default/window/icon-info.gif) no-repeat top left; +} +.x-window-dlg .ext-mb-warning { + background:transparent url(../images/default/window/icon-warning.gif) no-repeat top left; +} +.x-window-dlg .ext-mb-question { + background:transparent url(../images/default/window/icon-question.gif) no-repeat top left; +} +.x-window-dlg .ext-mb-error { + background:transparent url(../images/default/window/icon-error.gif) no-repeat top left; +} +.ext-gecko .ext-mb-fix-cursor { + overflow:auto; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/editor.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/editor.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,66 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-html-editor-wrap { + border:1px solid #a9bfd3; + background:white; +} +.x-html-editor-tb .x-btn-text { + background:transparent url(../images/default/editor/tb-sprite.gif) no-repeat; +} +.x-html-editor-tb .x-edit-bold .x-btn-text { + background-position:0 0; +} +.x-html-editor-tb .x-edit-italic .x-btn-text { + background-position:-16px 0; +} +.x-html-editor-tb .x-edit-underline .x-btn-text { + background-position:-32px 0; +} +.x-html-editor-tb .x-edit-forecolor .x-btn-text { + background-position:-160px 0; +} +.x-html-editor-tb .x-edit-backcolor .x-btn-text { + background-position:-176px 0; +} +.x-html-editor-tb .x-edit-justifyleft .x-btn-text { + background-position:-112px 0; +} +.x-html-editor-tb .x-edit-justifycenter .x-btn-text { + background-position:-128px 0; +} +.x-html-editor-tb .x-edit-justifyright .x-btn-text { + background-position:-144px 0; +} +.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text { + background-position:-80px 0; +} +.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text { + background-position:-96px 0; +} +.x-html-editor-tb .x-edit-increasefontsize .x-btn-text { + background-position:-48px 0; +} +.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text { + background-position:-64px 0; +} +.x-html-editor-tb .x-edit-sourceedit .x-btn-text { + background-position:-192px 0; +} +.x-html-editor-tb .x-edit-createlink .x-btn-text { + background-position:-208px 0; +} + +.x-html-editor-tip .x-tip-bd .x-tip-bd-inner { + padding:5px; + padding-bottom:1px; +} + +.x-html-editor-tb .x-toolbar { + position:static !important; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/ext-all.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/ext-all.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,903 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;} +img,body,html{border:0;} +address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;} +ol,ul{list-style:none;} +caption,th{text-align:left;} +h1,h2,h3,h4,h5,h6{font-size:100%;} +q:before,q:after{content:'';} + +.ext-el-mask{z-index:20000;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:100%;height:100%;zoom:1;} +.ext-el-mask-msg{z-index:20001;position:absolute;top:0;left:0;border:1px solid #6593cf;background:#c3daf9 url(../images/default/box/tb-blue.gif) repeat-x 0 -16px;padding:2px;} +.ext-el-mask-msg div{padding:5px 10px 5px 10px;background:#eee;border:1px solid #a3bad9;color:#222;font:normal 11px tahoma,arial,helvetica,sans-serif;cursor:wait;} +.ext-shim{position:absolute;visibility:hidden;left:0;top:0;overflow:hidden;} +.ext-ie .ext-shim{filter:alpha(opacity=0);} +.ext-ie6 .ext-shim{margin-left:5px;margin-top:3px;} +.x-mask-loading div{padding:5px 10px 5px 25px;background:#fbfbfb url( '../images/default/grid/loading.gif' ) no-repeat 5px 5px;line-height:16px;} +.x-hidden,.x-hide-offsets{position:absolute;left:-10000px;top:-10000px;visibility:hidden;} +.x-hide-display{display:none!important;} +.x-hide-visibility{visibility:hidden!important;} +.x-masked{overflow:hidden!important;} +.x-masked select,.x-masked object,.x-masked embed{visibility:hidden;} +.x-layer{visibility:hidden;} +.x-unselectable,.x-unselectable *{-moz-user-select:none;-khtml-user-select:none;} +.x-repaint{zoom:1;background-color:transparent;-moz-outline:none;} +.x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);} +.x-item-disabled *{color:gray!important;cursor:default!important;} +.x-splitbar-proxy{position:absolute;visibility:hidden;z-index:20001;background:#aaa;zoom:1;line-height:1px;font-size:1px;overflow:hidden;} +.x-splitbar-h,.x-splitbar-proxy-h{cursor:e-resize;cursor:col-resize;} +.x-splitbar-v,.x-splitbar-proxy-v{cursor:s-resize;cursor:row-resize;} +.x-color-palette{width:150px;height:92px;cursor:pointer;} +.x-color-palette a{border:1px solid #fff;float:left;padding:2px;text-decoration:none;-moz-outline:0 none;outline:0 none;cursor:pointer;} +.x-color-palette a:hover,.x-color-palette a.x-color-palette-sel{border:1px solid #8BB8F3;background:#deecfd;} +.x-color-palette em{display:block;border:1px solid #ACA899;} +.x-color-palette em span{cursor:pointer;display:block;height:10px;line-height:10px;width:10px;} +.x-ie-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;background:#777;zoom:1;} +.x-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;} +.x-shadow *{overflow:hidden;} +.x-shadow *{padding:0;border:0;margin:0;clear:none;zoom:1;} +.x-shadow .xstc,.x-shadow .xsbc{height:6px;float:left;} +.x-shadow .xstl,.x-shadow .xstr,.x-shadow .xsbl,.x-shadow .xsbr{width:6px;height:6px;float:left;} +.x-shadow .xsc{width:100%;} +.x-shadow .xsml,.x-shadow .xsmr{width:6px;float:left;height:100%;} +.x-shadow .xsmc{float:left;height:100%;background:transparent url( ../images/default/shadow-c.png );} +.x-shadow .xst,.x-shadow .xsb{height:6px;overflow:hidden;width:100%;} +.x-shadow .xsml{background:transparent url( ../images/default/shadow-lr.png ) repeat-y 0 0;} +.x-shadow .xsmr{background:transparent url( ../images/default/shadow-lr.png ) repeat-y -6px 0;} +.x-shadow .xstl{background:transparent url( ../images/default/shadow.png ) no-repeat 0 0;} +.x-shadow .xstc{background:transparent url( ../images/default/shadow.png ) repeat-x 0 -30px;} +.x-shadow .xstr{background:transparent url( ../images/default/shadow.png ) repeat-x 0 -18px;} +.x-shadow .xsbl{background:transparent url( ../images/default/shadow.png ) no-repeat 0 -12px;} +.x-shadow .xsbc{background:transparent url( ../images/default/shadow.png ) repeat-x 0 -36px;} +.x-shadow .xsbr{background:transparent url( ../images/default/shadow.png ) repeat-x 0 -6px;} +.loading-indicator{font-size:11px;background-image:url(../images/default/grid/loading.gif);background-repeat:no-repeat;background-position:left;padding-left:20px;line-height:16px;margin:3px;} +.x-text-resize{position:absolute;left:-1000px;top:-1000px;visibility:hidden;zoom:1;} +.x-drag-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background-image:url(../images/default/s.gif);z-index:20000;} +.x-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;} +.x-spotlight{z-index:8999;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:0;height:0;zoom:1;} + +.x-tab-panel{overflow:hidden;} +.x-tab-panel-header,.x-tab-panel-footer{background:#deecfd;border:1px solid #8db2e3;overflow:hidden;zoom:1;} +.x-tab-panel-header{border:1px solid #8db2e3;padding-bottom:2px;} +.x-tab-panel-footer{border:1px solid #8db2e3;padding-top:2px;} +.x-tab-strip-wrap{width:100%;overflow:hidden;position:relative;zoom:1;} +ul.x-tab-strip{display:block;width:5000px;zoom:1;} +ul.x-tab-strip-top{padding-top:1px;background:url(../images/default/tabs/tab-strip-bg.gif) #cedff5 repeat-x bottom;border-bottom:1px solid #8db2e3;} +ul.x-tab-strip-bottom{padding-bottom:1px;background:url(../images/default/tabs/tab-strip-btm-bg.gif) #cedff5 repeat-x top;border-top:1px solid #8db2e3;border-bottom:0 none;} +.x-tab-panel-header-plain .x-tab-strip-top{background:transparent!important;padding-top:0!important;} +.x-tab-panel-header-plain{background:transparent!important;border-width:0!important;padding-bottom:0!important;} +.x-tab-panel-header-plain .x-tab-strip-spacer{border:1px solid #8db2e3;border-top:0 none;height:2px;background:#deecfd;font-size:1px;line-height:1px;} +.ext-border-box .x-tab-panel-header-plain .x-tab-strip-spacer{height:3px;} +ul.x-tab-strip li{float:left;margin-left:2px;} +ul.x-tab-strip li.x-tab-edge{float:left;margin:0!important;padding:0!important;border:0 none!important;font-size:1px!important;line-height:1px!important;overflow:hidden;zoom:1;background:transparent!important;width:1px;} +.x-tab-strip a,.x-tab-strip span,.x-tab-strip em{display:block;} +.x-tab-strip a{text-decoration:none!important;-moz-outline:none;outline:none;cursor:pointer;} +.x-tab-strip-inner{overflow:hidden;text-overflow:ellipsis;} +.x-tab-strip span.x-tab-strip-text{font:normal 11px tahoma,arial,helvetica;color:#416aa3;white-space:nowrap;cursor:pointer;padding:4px 0;} +.x-tab-strip .x-tab-with-icon .x-tab-right{padding-left:6px;} +.x-tab-strip .x-tab-with-icon span.x-tab-strip-text{padding-left:20px;background-position:0 3px;background-repeat:no-repeat;} +.x-tab-strip-over span.x-tab-strip-text{color:#15428b;} +.x-tab-strip-active{cursor:default;} +.x-tab-strip-active span.x-tab-strip-text{cursor:default;color:#15428b;font-weight:bold;} +.x-tab-strip-disabled .x-tabs-text{cursor:default;color:#aaa;} +.x-tab-panel-body{overflow:hidden;} +.x-tab-panel-bwrap{overflow:hidden;} +.ext-ie .x-tab-strip .x-tab-right{position:relative;} +.x-tab-strip-top .x-tab-strip-active .x-tab-right{margin-bottom:-1px;} +.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-bottom:5px;} +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{margin-top:-1px;} +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-top:5px;} +.x-tab-strip-top .x-tab-right{background:transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat 0 -51px;padding-left:10px;} +.x-tab-strip-top .x-tab-left{background:transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat right -351px;padding-right:10px;} +.x-tab-strip-top .x-tab-strip-inner{background:transparent url(../images/default/tabs/tabs-sprite.gif) repeat-x 0 -201px;} +.x-tab-strip-top .x-tab-strip-over .x-tab-right{background-position:0 -101px;} +.x-tab-strip-top .x-tab-strip-over .x-tab-left{background-position:right -401px;} +.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner{background-position:0 -251px;} +.x-tab-strip-top .x-tab-strip-active .x-tab-right{background-position:0 0;} +.x-tab-strip-top .x-tab-strip-active .x-tab-left{background-position:right -301px;} +.x-tab-strip-top .x-tab-strip-active .x-tab-strip-inner{background-position:0 -151px;} +.x-tab-strip-bottom .x-tab-right{background:url(../images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;} +.x-tab-strip-bottom .x-tab-left{background:url(../images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;} +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{background:url(../images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;} +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left{background:url(../images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;} +.x-tab-strip-bottom .x-tab-left{padding:0 10px;} +.x-tab-strip-bottom .x-tab-right{padding:0;} +.x-tab-strip .x-tab-strip-close{display:none;} +.x-tab-strip-closable{position:relative;} +.x-tab-strip-closable .x-tab-left{padding-right:19px;} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../images/default/tabs/tab-close.gif);opacity:.6;-moz-opacity:.6;background-repeat:no-repeat;display:block;width:11px;height:11px;position:absolute;top:3px;right:3px;cursor:pointer;z-index:2;} +.x-tab-strip .x-tab-strip-active a.x-tab-strip-close{opacity:.8;-moz-opacity:.8;} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{background-image:url(../images/default/tabs/tab-close.gif);opacity:1;-moz-opacity:1;} +.x-tab-panel-body{border:1px solid #8db2e3;background:#fff;} +.x-tab-panel-body-top{border-top:0 none;} +.x-tab-panel-body-bottom{border-bottom:0 none;} +.x-tab-scroller-left{background:transparent url(../images/default/tabs/scroll-left.gif) no-repeat -18px 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;left:0;top:0;z-index:10;cursor:pointer;} +.x-tab-scroller-left-over{background-position:0 0;} +.x-tab-scroller-left-disabled{background-position:-18px 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;} +.x-tab-scroller-right{background:transparent url(../images/default/tabs/scroll-right.gif) no-repeat 0 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;right:0;top:0;z-index:10;cursor:pointer;} +.x-tab-scroller-right-over{background-position:-18px 0;} +.x-tab-scroller-right-disabled{background-position:0 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;} +.x-tab-scrolling .x-tab-strip-wrap{margin-left:18px;margin-right:18px;} +.x-tab-scrolling{position:relative;} +.x-tab-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;} +.x-tab-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;} + + .x-form-field{margin:0;font:normal 12px tahoma,arial,helvetica,sans-serif;} +.x-form-text,textarea.x-form-field{padding:1px 3px;background:#fff url(../images/default/form/text-bg.gif) repeat-x 0 0;border:1px solid #B5B8C8;} +textarea.x-form-field{padding:2px 3px;} +.x-form-text{height:22px;line-height:18px;vertical-align:middle;} +.ext-ie .x-form-text{margin:-1px 0;height:22px;line-height:18px;} +.ext-ie textarea.x-form-field{margin:-1px 0;} +.ext-strict .x-form-text{height:18px;} +.ext-safari .x-form-text{height:20px;padding:0 3px;} +.ext-safari.ext-mac textarea.x-form-field{margin-bottom:-2px;} +.ext-gecko .x-form-text{padding-top:2px;padding-bottom:0;} +textarea{resize:none;} +.x-form-select-one{height:20px;line-height:18px;vertical-align:middle;background-color:#fff;border:1px solid #B5B8C8;} +.x-form-field-wrap{position:relative;zoom:1;white-space:nowrap;} +.x-editor .x-form-check-wrap{background:#fff;} +.x-form-field-wrap .x-form-trigger{width:17px;height:21px;border:0;background:transparent url(../images/default/form/trigger.gif) no-repeat 0 0;cursor:pointer;border-bottom:1px solid #B5B8C8;position:absolute;top:0;} +.ext-safari .x-form-field-wrap .x-form-trigger{height:21px;} +.x-form-field-wrap .x-form-date-trigger{background-image:url(../images/default/form/date-trigger.gif);cursor:pointer;} +.x-form-field-wrap .x-form-clear-trigger{background-image:url(../images/default/form/clear-trigger.gif);cursor:pointer;} +.x-form-field-wrap .x-form-search-trigger{background-image:url(../images/default/form/search-trigger.gif);cursor:pointer;} +.ext-safari .x-form-field-wrap .x-form-trigger{right:0;} +.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{position:static;top:auto;vertical-align:top;} +.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;} +.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;} +.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;} +.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;} +.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;} +.x-trigger-wrap-focus .x-form-trigger{border-bottom:1px solid #7eadd9;} +.x-item-disabled .x-form-trigger-over{background-position:0 0!important;border-bottom:1px solid #B5B8C8;} +.x-item-disabled .x-form-trigger-click{background-position:0 0!important;border-bottom:1px solid #B5B8C8;} +.x-form-focus,textarea.x-form-focus{border:1px solid #7eadd9;} +.x-form-invalid,textarea.x-form-invalid{background:#fff url(../images/default/grid/invalid_line.gif) repeat-x bottom;border:1px solid #dd7870;} +.ext-safari .x-form-invalid{background-color:#fee;border:1px solid #ff7870;} +.x-editor{visibility:hidden;padding:0;margin:0;} +.x-form-check-wrap{line-height:18px;} +.ext-ie .x-form-check-wrap input{width:15px;height:15px;} +.x-editor .x-form-check-wrap{padding:3px;} +.x-editor .x-form-checkbox{height:13px;} +.x-form-grow-sizer{font:normal 12px tahoma,arial,helvetica,sans-serif;left:-10000px;padding:8px 3px;position:absolute;visibility:hidden;top:-10000px;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;zoom:1;} +.x-form-grow-sizer p{margin:0!important;border:0 none!important;padding:0!important;} +.x-form-item{font:normal 12px tahoma,arial,helvetica,sans-serif;display:block;margin-bottom:4px;zoom:1;} +.x-form-item label{display:block;float:left;width:100px;padding:3px;padding-left:0;clear:left;z-index:2;position:relative;} +.x-form-element{padding-left:105px;position:relative;} +.x-form-invalid-msg{color:#e00;padding:2px;padding-left:18px;font:normal 11px tahoma,arial,helvetica,sans-serif;background:transparent url(../images/default/shared/warning.gif) no-repeat 0 2px;line-height:16px;width:200px;} +.x-form-label-right label{text-align:right;} +.x-form-label-top .x-form-item label{width:auto;float:none;clear:none;display:inline;margin-bottom:4px;position:static;} +.x-form-label-top .x-form-element{padding-left:0;padding-top:4px;} +.x-form-label-top .x-form-item{padding-bottom:4px;} +.x-form-empty-field{color:gray;} +.x-small-editor .x-form-field{font:normal 11px arial,tahoma,helvetica,sans-serif;} +.x-small-editor .x-form-text{height:20px;line-height:16px;vertical-align:middle;} +.ext-ie .x-small-editor .x-form-text{margin-top:-1px!important;margin-bottom:-1px!important;height:20px!important;line-height:16px!important;} +.ext-strict .x-small-editor .x-form-text{height:16px!important;} +.ext-safari .x-small-editor .x-form-field{font:normal 12px arial,tahoma,helvetica,sans-serif;} +.ext-ie .x-small-editor .x-form-text{height:20px;line-height:16px;} +.ext-border-box .x-small-editor .x-form-text{height:20px;} +.x-small-editor .x-form-select-one{height:20px;line-height:16px;vertical-align:middle;} +.x-small-editor .x-form-num-field{text-align:right;} +.x-small-editor .x-form-field-wrap .x-form-trigger{height:19px;} +.x-form-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;} +.x-form-clear-left{clear:left;height:0;overflow:hidden;line-height:0;font-size:0;} +.x-form-cb-label{width:'auto'!important;float:none!important;clear:none!important;display:inline!important;margin-left:4px;} +.x-form-column{float:left;padding:0;margin:0;width:48%;overflow:hidden;zoom:1;} +.x-form .x-form-btns-ct .x-btn{float:right;clear:none;} +.x-form .x-form-btns-ct .x-form-btns td{border:0;padding:0;} +.x-form .x-form-btns-ct .x-form-btns-right table{float:right;clear:none;} +.x-form .x-form-btns-ct .x-form-btns-left table{float:left;clear:none;} +.x-form .x-form-btns-ct .x-form-btns-center{text-align:center;} +.x-form .x-form-btns-ct .x-form-btns-center table{margin:0 auto;} +.x-form .x-form-btns-ct table td.x-form-btn-td{padding:3px;} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;} +.x-form .x-form-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;} +.x-form .x-form-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;} +.x-form .x-form-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;} +.x-form-invalid-icon{width:16px;height:18px;visibility:hidden;position:absolute;left:0;top:0;display:block;background:transparent url(../images/default/form/exclamation.gif) no-repeat 0 2px;} +.x-fieldset{border:1px solid #B5B8C8;padding:10px;margin-bottom:10px;display:block;} +.x-fieldset legend{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;} +.ext-ie .x-fieldset legend{margin-bottom:10px;} +.ext-ie .x-fieldset{padding-top:0;padding-bottom:10px;} +.x-fieldset legend .x-tool-toggle{margin-right:3px;margin-left:0;float:left!important;} +.x-fieldset legend input{margin-right:3px;float:left!important;height:13px;width:13px;} +fieldset.x-panel-collapsed{padding-bottom:0!important;border-width:1px 0 0 0!important;} +fieldset.x-panel-collapsed .x-fieldset-bwrap{visibility:hidden;position:absolute;left:-1000px;top:-1000px;} +.ext-ie .x-fieldset-bwrap{zoom:1;} +.ext-ie td .x-form-text{position:relative;top:-1px;} +.x-fieldset-noborder{border:0 none transparent;} +.x-fieldset-noborder legend{margin-left:-3px;} +.ext-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px;} +.ext-ie .x-fieldset-noborder legend span{position:absolute;left:-5px;} +.ext-gecko .x-window-body .x-form-item{-moz-outline:none;overflow:auto;} +.ext-gecko .x-form-item{-moz-outline:none;} +.x-hide-label label.x-form-item-label{display:none;} +.x-hide-label .x-form-element{padding-left:0!important;} +.x-fieldset{overflow:hidden;} +.x-fieldset-bwrap{overflow:hidden;zoom:1;} +.x-fieldset-body{overflow:hidden;} + +.x-btn{font:normal 11px tahoma,verdana,helvetica;cursor:pointer;white-space:nowrap;} +.x-btn button{border:0 none;background:transparent;font:normal 11px tahoma,verdana,helvetica;padding-left:3px;padding-right:3px;cursor:pointer;margin:0;overflow:visible;width:auto;-moz-outline:0 none;outline:0 none;} +* html .ext-ie .x-btn button{width:1px;} +.ext-gecko .x-btn button{padding-left:0;padding-right:0;} +.ext-ie .x-btn button{padding-top:2px;} +.x-btn-icon .x-btn-center .x-btn-text{background-position:center;background-repeat:no-repeat;height:16px;width:16px;cursor:pointer;white-space:nowrap;padding:0;} +.x-btn-icon .x-btn-center{padding:1px;} +.x-btn em{font-style:normal;font-weight:normal;} +.x-btn-text-icon .x-btn-center .x-btn-text{background-position:0 2px;background-repeat:no-repeat;padding-left:18px;padding-top:3px;padding-bottom:2px;padding-right:0;} +.x-btn-left,.x-btn-right{font-size:1px;line-height:1px;} +.x-btn-left{width:3px;height:21px;background:url(../images/default/button/btn-sprite.gif) no-repeat 0 0;} +.x-btn-right{width:3px;height:21px;background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -21px;} +.x-btn-left i,.x-btn-right i{display:block;width:3px;overflow:hidden;font-size:1px;line-height:1px;} +.x-btn-center{background:url(../images/default/button/btn-sprite.gif) repeat-x 0 -42px;vertical-align:middle;text-align:center;padding:0 5px;cursor:pointer;white-space:nowrap;} +.x-btn-over .x-btn-left{background-position:0 -63px;} +.x-btn-over .x-btn-right{background-position:0 -84px;} +.x-btn-over .x-btn-center{background-position:0 -105px;} +.x-btn-click .x-btn-center,.x-btn-menu-active .x-btn-center{background-position:0 -126px;} +.x-btn-disabled *{color:gray!important;cursor:default!important;} +.x-btn-menu-text-wrap .x-btn-center{padding:0 3px;} +.ext-gecko .x-btn-menu-text-wrap .x-btn-center{padding:0 1px;} +.x-btn-menu-arrow-wrap .x-btn-center{padding:0;} +.x-btn-menu-arrow-wrap .x-btn-center button{width:12px!important;height:21px;padding:0!important;display:block;background:transparent url(../images/default/button/btn-arrow.gif) no-repeat left 3px;} +.x-btn-with-menu .x-btn-center{padding-right:2px!important;} +.x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 0;padding-right:10px;} +.x-btn-text-icon .x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 3px;padding-right:10px;} +.x-btn-pressed .x-btn-left{background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -63px;} +.x-btn-pressed .x-btn-right{background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -84px;} +.x-btn-pressed .x-btn-center{background:url(../images/default/button/btn-sprite.gif) repeat-x 0 -126px;} + +.x-toolbar{border-color:#a9bfd3;border-style:solid;border-width:0 0 1px 0;display:block;padding:2px;background:#d0def0 url(../images/default/toolbar/bg.gif) repeat-x top left;position:relative;zoom:1;} +.x-toolbar .x-item-disabled .x-btn-icon{opacity:.35;-moz-opacity:.35;filter:alpha(opacity=35);} +.x-toolbar td{vertical-align:middle;} +.mso .x-toolbar,.x-grid-mso .x-toolbar{border:0 none;background:url(../images/default/grid/mso-hd.gif);} +.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 11px tahoma,arial,helvetica,sans-serif;} +.x-toolbar .x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);} +.x-toolbar .x-item-disabled *{color:gray;cursor:default;} +.x-toolbar .x-btn-left{background:none;} +.x-toolbar .x-btn-right{background:none;} +.x-toolbar .x-btn-center{background:none;padding:0;} +.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:2px;} +.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:0;} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{padding:0 2px;} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;} +.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button{background-position:0 -47px;} +.x-toolbar .x-btn-over .x-btn-left{background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0;} +.x-toolbar .x-btn-over .x-btn-right{background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px;} +.x-toolbar .x-btn-over .x-btn-center{background:url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px;} +.x-toolbar .x-btn-click .x-btn-left,.x-toolbar .x-btn-pressed .x-btn-left,.x-toolbar .x-btn-menu-active .x-btn-left{background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px;} +.x-toolbar .x-btn-click .x-btn-right,.x-toolbar .x-btn-pressed .x-btn-right,.x-toolbar .x-btn-menu-active .x-btn-right{background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px;} +.x-toolbar .x-btn-click .x-btn-center,.x-toolbar .x-btn-pressed .x-btn-center,.x-toolbar .x-btn-menu-active .x-btn-center{background:url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px;} +.x-toolbar .x-btn-with-menu .x-btn-center em{padding-right:8px;} +.x-toolbar .ytb-text{padding:2px;} +.x-toolbar .ytb-sep{background-image:url(../images/default/grid/grid-blue-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px 0;border:0;} +.x-toolbar .ytb-spacer{width:2px;} +.x-tbar-page-number{width:24px;height:14px;} +.x-tbar-page-first{background-image:url(../images/default/grid/page-first.gif)!important;} +.x-tbar-loading{background-image:url(../images/default/grid/done.gif)!important;} +.x-tbar-page-last{background-image:url(../images/default/grid/page-last.gif)!important;} +.x-tbar-page-next{background-image:url(../images/default/grid/page-next.gif)!important;} +.x-tbar-page-prev{background-image:url(../images/default/grid/page-prev.gif)!important;} +.x-item-disabled .x-tbar-loading{background-image:url(../images/default/grid/loading.gif)!important;} +.x-item-disabled .x-tbar-page-first{background-image:url(../images/default/grid/page-first-disabled.gif)!important;} +.x-item-disabled .x-tbar-page-last{background-image:url(../images/default/grid/page-last-disabled.gif)!important;} +.x-item-disabled .x-tbar-page-next{background-image:url(../images/default/grid/page-next-disabled.gif)!important;} +.x-item-disabled .x-tbar-page-prev{background-image:url(../images/default/grid/page-prev-disabled.gif)!important;} +.x-paging-info{position:absolute;top:5px;right:8px;color:#444;} +.x-statusbar .x-status-text{height:21px;line-height:21px;padding:0 4px;cursor:default;} +.x-statusbar .x-status-busy{padding-left:25px;background:transparent url(../images/default/grid/loading.gif) no-repeat 3px 3px;} +.x-statusbar .x-status-text-panel{border-top:1px solid #99BBE8;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #99BBE8;padding:2px 8px 2px 5px;} + +.x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;background:white;filter:alpha(opacity=0);opacity:0;zoom:1;} +.x-resizable-handle-east{width:6px;cursor:e-resize;right:0;top:0;height:100%;} +.ext-ie .x-resizable-handle-east{margin-right:-1px;} +.x-resizable-handle-south{width:100%;cursor:s-resize;left:0;bottom:0;height:6px;} +.ext-ie .x-resizable-handle-south{margin-bottom:-1px;} +.x-resizable-handle-west{width:6px;cursor:w-resize;left:0;top:0;height:100%;} +.x-resizable-handle-north{width:100%;cursor:n-resize;left:0;top:0;height:6px;} +.x-resizable-handle-southeast{width:6px;cursor:se-resize;right:0;bottom:0;height:6px;z-index:101;} +.x-resizable-handle-northwest{width:6px;cursor:nw-resize;left:0;top:0;height:6px;z-index:101;} +.x-resizable-handle-northeast{width:6px;cursor:ne-resize;right:0;top:0;height:6px;z-index:101;} +.x-resizable-handle-southwest{width:6px;cursor:sw-resize;left:0;bottom:0;height:6px;z-index:101;} +.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1;} +.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{background:url(../images/default/sizer/e-handle.gif);background-position:left;} +.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{background:url(../images/default/sizer/e-handle.gif);background-position:left;} +.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{background:url(../images/default/sizer/s-handle.gif);background-position:top;} +.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background:url(../images/default/sizer/s-handle.gif);background-position:top;} +.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background:url(../images/default/sizer/se-handle.gif);background-position:top left;} +.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background:url(../images/default/sizer/nw-handle.gif);background-position:bottom right;} +.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background:url(../images/default/sizer/ne-handle.gif);background-position:bottom left;} +.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background:url(../images/default/sizer/sw-handle.gif);background-position:top right;} +.x-resizable-proxy{border:1px dashed #3b5a82;position:absolute;overflow:hidden;display:none;left:0;top:0;z-index:50000;} +.x-resizable-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background:white;z-index:200000;-moz-opacity:0;opacity:0;filter:alpha(opacity=0);} + + .x-grid3{position:relative;overflow:hidden;background-color:#fff;} +.x-grid-panel .x-panel-body{overflow:hidden!important;} +.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #99bbe8;} +.x-grid3 table{table-layout:fixed;} +.x-grid3-viewport{overflow:hidden;} +.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 11px arial,tahoma,helvetica,sans-serif;-moz-outline:none;-moz-user-focus:normal;} +.x-grid3-row td,.x-grid3-summary-row td{line-height:13px;vertical-align:top;padding-left:1px;padding-right:1px;-moz-user-select:none;} +.x-grid3-hd-row td{line-height:15px;vertical-align:middle;border-left:1px solid #eee;border-right:1px solid #d0d0d0;} +.x-grid3-hd-row .x-grid3-marker-hd{padding:3px;} +.x-grid3-row .x-grid3-marker{padding:3px;} +.x-grid3-cell-inner,.x-grid3-hd-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:3px 3px 3px 5px;white-space:nowrap;} +.x-grid3-hd-inner{position:relative;cursor:inherit;padding:4px 3px 4px 5px;} +.x-grid3-row-body{white-space:normal;} +.x-grid3-body-cell{-moz-outline:0 none;outline:0 none;} +.ext-ie .x-grid3-cell-inner,.ext-ie .x-grid3-hd-inner{width:100%;} +.ext-strict .x-grid3-cell-inner,.ext-strict .x-grid3-hd-inner{width:auto;} +.x-grid-row-loading{background:#fff url(../images/default/shared/loading-balls.gif) no-repeat center center;} +.x-grid-page{overflow:hidden;} +.x-grid3-row{cursor:default;border:1px solid #ededed;border-top-color:#fff;width:100%;} +.x-grid3-row-alt{background-color:#fafafa;} +.x-grid3-row-over{border:1px solid #ddd;background:#efefef url(../images/default/grid/row-over.gif) repeat-x left top;} +.x-grid3-resize-proxy{width:1px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;} +.x-grid3-resize-marker{width:1px;left:0;background-color:#777;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;} +.x-grid3-focus{position:absolute;left:0;top:0;width:1px;height:1px;line-height:1px;font-size:1px;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;} +.x-grid3-header{background:#f9f9f9 url(../images/default/grid/grid3-hrow.gif) repeat-x 0 bottom;cursor:default;zoom:1;padding:1px 0 0 0;} +.x-grid3-header-pop{border-left:1px solid #d0d0d0;float:right;clear:none;} +.x-grid3-header-pop-inner{border-left:1px solid #eee;width:14px;height:19px;background:transparent url(../images/default/grid/hd-pop.gif) no-repeat center center;} +.ext-ie .x-grid3-header-pop-inner{width:15px;} +.ext-strict .x-grid3-header-pop-inner{width:14px;} +.x-grid3-header-inner{overflow:hidden;zoom:1;float:left;} +.x-grid3-header-offset{padding-left:1px;width:10000px;} +td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #aaccf6;border-right:1px solid #aaccf6;} +td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{background:#ebf3fd url(../images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;} +.x-grid3-sort-icon{background-repeat:no-repeat;display:none;height:4px;width:13px;margin-left:3px;vertical-align:middle;} +.sort-asc .x-grid3-sort-icon{background-image:url(../images/default/grid/sort_asc.gif);display:inline;} +.sort-desc .x-grid3-sort-icon{background-image:url(../images/default/grid/sort_desc.gif);display:inline;} +.ext-strict .ext-ie .x-grid3-header-inner{position:relative;} +.ext-strict .ext-ie6 .x-grid3-hd{position:relative;} +.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;} +.x-grid3-body{zoom:1;} +.x-grid3-scroller{overflow:auto;zoom:1;position:relative;} +.x-grid3-cell-text,.x-grid3-hd-text{display:block;padding:3px 5px 3px 5px;-moz-user-select:none;-khtml-user-select:none;color:black;} +.x-grid3-split{background-image:url(../images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;cursor:e-resize;cursor:col-resize;display:block;font-size:1px;height:16px;overflow:hidden;position:absolute;top:2px;width:6px;z-index:3;} +.x-grid3-hd-text{color:#15428b;} +.x-dd-drag-proxy .x-grid3-hd-inner{background:#ebf3fd url(../images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;width:120px;padding:3px;border:1px solid #aaccf6;overflow:hidden;} +.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:1px;font-size:1px;overflow:hidden;visibility:hidden;z-index:20000;} +.col-move-top{background:transparent url(../images/default/grid/col-move-top.gif) no-repeat left top;} +.col-move-bottom{background:transparent url(../images/default/grid/col-move-bottom.gif) no-repeat left top;} +.x-grid3-row-selected{background:#DFE8F6!important;border:1px dotted #a3bae9;} +.x-grid3-cell-selected{background-color:#B8CFEE!important;color:black;} +.x-grid3-cell-selected span{color:black!important;} +.x-grid3-cell-selected .x-grid3-cell-text{color:black;} +.x-grid3-locked td.x-grid3-row-marker,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{background:#ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x 0 bottom!important;vertical-align:middle!important;color:black;padding:0;border-top:1px solid white;border-bottom:none!important;border-right:1px solid #6fa0df!important;text-align:center;} +.x-grid3-locked td.x-grid3-row-marker div,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{padding:0 4px;color:#15428b!important;text-align:center;} +.x-grid3-dirty-cell{background:transparent url(../images/default/grid/dirty.gif) no-repeat 0 0;} +.x-grid3-topbar,.x-grid3-bottombar{font:normal 11px arial,tahoma,helvetica,sans-serif;overflow:hidden;display:none;zoom:1;position:relative;} +.x-grid3-topbar .x-toolbar{border-right:0 none;} +.x-grid3-bottombar .x-toolbar{border-right:0 none;border-bottom:0 none;border-top:1px solid #a9bfd3;} +.x-props-grid .x-grid3-cell{padding:1px;} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y -16px!important;padding-left:12px;color:black!important;} +.x-props-grid .x-grid3-body .x-grid3-td-name{padding:1px;padding-right:0;background:white!important;border:0 none;border-right:1px solid #eee;} +.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../images/default/grid/hmenu-asc.gif);} +.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../images/default/grid/hmenu-desc.gif);} +.xg-hmenu-lock .x-menu-item-icon{background-image:url(../images/default/grid/hmenu-lock.gif);} +.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../images/default/grid/hmenu-unlock.gif);} +.x-grid3-col-dd{border:0 none;padding:0;background:transparent;} +.x-dd-drag-ghost .x-grid3-dd-wrap{padding:1px 3px 3px 1px;} +.x-grid3-hd{-moz-user-select:none;} +.x-grid3-hd-btn{display:none;position:absolute;width:14px;background:#c3daf9 url(../images/default/grid/grid3-hd-btn.gif) no-repeat left center;right:0;top:0;z-index:2;cursor:pointer;} +.x-grid3-hd-over .x-grid3-hd-btn,.x-grid3-hd-menu-open .x-grid3-hd-btn{display:block;} +a.x-grid3-hd-btn:hover{background-position:-14px center;} +.x-grid3-body .x-grid3-td-expander{background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner{padding:0!important;height:100%;} +.x-grid3-row-expander{width:100%;height:18px;background-position:4px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/grid/row-expand-sprite.gif);} +.x-grid3-row-collapsed .x-grid3-row-expander{background-position:4px 2px;} +.x-grid3-row-expanded .x-grid3-row-expander{background-position:-21px 2px;} +.x-grid3-row-collapsed .x-grid3-row-body{display:none!important;} +.x-grid3-row-expanded .x-grid3-row-body{display:block!important;} +.x-grid3-body .x-grid3-td-checker{background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner,.x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner{padding:0!important;height:100%;} +.x-grid3-row-checker,.x-grid3-hd-checker{width:100%;height:18px;background-position:2px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/grid/row-check-sprite.gif);} +.x-grid3-row .x-grid3-row-checker{background-position:2px 2px;} +.x-grid3-row-selected .x-grid3-row-checker,.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 2px;} +.x-grid3-hd-checker{background-position:2px 3px;} +.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 3px;} +.x-grid3-body .x-grid3-td-numberer{background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{padding:3px 5px 0 0!important;text-align:right;color:#444;} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{background:transparent url(../images/default/grid/grid3-special-col-sel-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner{padding:1px 0 0 0!important;} +.x-grid3-check-col{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/menu/unchecked.gif);} +.x-grid3-check-col-on{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/menu/checked.gif);} +.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1;} +.x-grid-group-hd{border-bottom:2px solid #99bbe8;cursor:pointer;padding-top:6px;} +.x-grid-group-hd div{background:transparent url(../images/default/grid/group-expand-sprite.gif) no-repeat 3px -47px;padding:4px 4px 4px 17px;color:#3764a0;font:bold 11px tahoma,arial,helvetica,sans-serif;} +.x-grid-group-collapsed .x-grid-group-hd div{background-position:3px 3px;} +.x-grid-group-collapsed .x-grid-group-body{display:none;} +.x-group-by-icon{background-image:url(../images/default/grid/group-by.gif);} +.x-cols-icon{background-image:url(../images/default/grid/columns.gif);} +.x-show-groups-icon{background-image:url(../images/default/grid/group-by.gif);} +.ext-ie .x-grid3 .x-editor .x-form-text{position:relative;top:-1px;} +.ext-ie .x-props-grid .x-editor .x-form-text{position:static;top:0;} +.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif;} +.ext-ie7 .x-grid-panel .x-panel-bbar{position:relative;} + +.x-dd-drag-proxy{position:absolute;left:0;top:0;visibility:hidden;z-index:15000;} +.x-dd-drag-ghost{color:black;font:normal 11px arial,helvetica,sans-serif;-moz-opacity:0.85;opacity:.85;filter:alpha(opacity=85);border-top:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:3px;padding-left:20px;background-color:white;white-space:nowrap;} +.x-dd-drag-repair .x-dd-drag-ghost{-moz-opacity:0.4;opacity:.4;filter:alpha(opacity=40);border:0 none;padding:0;background-color:transparent;} +.x-dd-drag-repair .x-dd-drop-icon{visibility:hidden;} +.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1;} +.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../images/default/dd/drop-no.gif);} +.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../images/default/dd/drop-yes.gif);} +.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../images/default/dd/drop-add.gif);} +.x-view-selector{position:absolute;left:0;top:0;width:0;background:#c3daf9;border:1px dotted #39b;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);zoom:1;} + +.x-tree .x-panel-body{background-color:#fff;} +.ext-strict .ext-ie .x-tree .x-panel-bwrap{position:relative;overflow:hidden;} +.x-tree-icon,.x-tree-ec-icon,.x-tree-elbow-line,.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-repeat:no-repeat;} +.x-tree-node-collapsed .x-tree-node-icon,.x-tree-node-expanded .x-tree-node-icon,.x-tree-node-leaf .x-tree-node-icon{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-position:center;background-repeat:no-repeat;} +.ext-ie .x-tree-node-indent img,.ext-ie .x-tree-node-icon,.ext-ie .x-tree-ec-icon{vertical-align:middle!important;} +.x-tree-node-expanded .x-tree-node-icon{background-image:url(../images/default/tree/folder-open.gif);} +.x-tree-node-leaf .x-tree-node-icon{background-image:url(../images/default/tree/leaf.gif);} +.x-tree-node-collapsed .x-tree-node-icon{background-image:url(../images/default/tree/folder.gif);} +.ext-ie input.x-tree-node-cb{width:15px;height:15px;} +input.x-tree-node-cb{margin-left:1px;} +.ext-ie input.x-tree-node-cb{margin-left:0;} +.x-tree-noicon .x-tree-node-icon{width:0;height:0;} +.x-tree-node-loading .x-tree-node-icon{background-image:url(../images/default/tree/loading.gif)!important;} +.x-tree-node-loading a span{font-style:italic;color:#444;} +.ext-ie .x-tree-node-el input{width:15px;height:15px;} +.x-tree-lines .x-tree-elbow{background-image:url(../images/default/tree/elbow.gif);} +.x-tree-lines .x-tree-elbow-plus{background-image:url(../images/default/tree/elbow-plus.gif);} +.x-tree-lines .x-tree-elbow-minus{background-image:url(../images/default/tree/elbow-minus.gif);} +.x-tree-lines .x-tree-elbow-end{background-image:url(../images/default/tree/elbow-end.gif);} +.x-tree-lines .x-tree-elbow-end-plus{background-image:url(../images/default/tree/elbow-end-plus.gif);} +.x-tree-lines .x-tree-elbow-end-minus{background-image:url(../images/default/tree/elbow-end-minus.gif);} +.x-tree-lines .x-tree-elbow-line{background-image:url(../images/default/tree/elbow-line.gif);} +.x-tree-no-lines .x-tree-elbow{background:transparent;} +.x-tree-no-lines .x-tree-elbow-plus{background-image:url(../images/default/tree/elbow-plus-nl.gif);} +.x-tree-no-lines .x-tree-elbow-minus{background-image:url(../images/default/tree/elbow-minus-nl.gif);} +.x-tree-no-lines .x-tree-elbow-end{background:transparent;} +.x-tree-no-lines .x-tree-elbow-end-plus{background-image:url(../images/default/tree/elbow-end-plus-nl.gif);} +.x-tree-no-lines .x-tree-elbow-end-minus{background-image:url(../images/default/tree/elbow-end-minus-nl.gif);} +.x-tree-no-lines .x-tree-elbow-line{background:transparent;} +.x-tree-arrows .x-tree-elbow{background:transparent;} +.x-tree-arrows .x-tree-elbow-plus{background:transparent url(../images/default/tree/arrows.gif) no-repeat 0 0;} +.x-tree-arrows .x-tree-elbow-minus{background:transparent url(../images/default/tree/arrows.gif) no-repeat -16px 0;} +.x-tree-arrows .x-tree-elbow-end{background:transparent;} +.x-tree-arrows .x-tree-elbow-end-plus{background:transparent url(../images/default/tree/arrows.gif) no-repeat 0 0;} +.x-tree-arrows .x-tree-elbow-end-minus{background:transparent url(../images/default/tree/arrows.gif) no-repeat -16px 0;} +.x-tree-arrows .x-tree-elbow-line{background:transparent;} +.x-tree-arrows .x-tree-ec-over .x-tree-elbow-plus{background-position:-32px 0;} +.x-tree-arrows .x-tree-ec-over .x-tree-elbow-minus{background-position:-48px 0;} +.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-plus{background-position:-32px 0;} +.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-minus{background-position:-48px 0;} +.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer;} +.ext-ie ul.x-tree-node-ct{font-size:0;line-height:0;zoom:1;} +.x-tree-node{color:black;font:normal 11px arial,tahoma,helvetica,sans-serif;white-space:nowrap;} +.x-tree-node-el{line-height:18px;cursor:pointer;} +.x-tree-node a,.x-dd-drag-ghost a{text-decoration:none;color:black;-khtml-user-select:none;-moz-user-select:none;-kthml-user-focus:normal;-moz-user-focus:normal;-moz-outline:0 none;outline:0 none;} +.x-tree-node a span,.x-dd-drag-ghost a span{text-decoration:none;color:black;padding:1px 3px 1px 2px;} +.x-tree-node .x-tree-node-disabled a span{color:gray!important;} +.x-tree-node .x-tree-node-disabled .x-tree-node-icon{-moz-opacity:0.5;opacity:.5;filter:alpha(opacity=50);} +.x-tree-node .x-tree-node-inline-icon{background:transparent;} +.x-tree-node a:hover,.x-dd-drag-ghost a:hover{text-decoration:none;} +.x-tree-node div.x-tree-drag-insert-below{border-bottom:1px dotted #36c;} +.x-tree-node div.x-tree-drag-insert-above{border-top:1px dotted #36c;} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{border-bottom:0 none;} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{border-top:0 none;} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #36c;} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #36c;} +.x-tree-node .x-tree-drag-append a span{background:#ddd;border:1px dotted gray;} +.x-tree-node .x-tree-node-over{background-color:#eee;} +.x-tree-node .x-tree-selected{background-color:#d9e8fb;} +.x-dd-drag-ghost .x-tree-node-indent,.x-dd-drag-ghost .x-tree-ec-icon{display:none!important;} +.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/default/tree/drop-add.gif);} +.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/default/tree/drop-over.gif);} +.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/default/tree/drop-under.gif);} +.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/default/tree/drop-between.gif);} +.x-tree-root-ct{zoom:1;} + +.x-date-picker{border:1px solid #1b376c;border-top:0 none;background:#fff;position:relative;} +.x-date-picker a{-moz-outline:0 none;outline:0 none;} +.x-date-inner,.x-date-inner td,.x-date-inner th{border-collapse:separate;} +.x-date-middle,.x-date-left,.x-date-right{background:url(../images/default/shared/hd-sprite.gif) repeat-x 0 -83px;color:#FFF;font:bold 11px "sans serif",tahoma,verdana,helvetica;overflow:hidden;} +.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{background:transparent!important;vertical-align:middle;} +.x-date-middle .x-btn .x-btn-text{color:#fff;} +.x-date-middle .x-btn-with-menu .x-btn-center em{background:transparent url(../images/default/toolbar/btn-arrow-light.gif) no-repeat right 0;} +.x-date-right,.x-date-left{width:18px;} +.x-date-right{text-align:right;} +.x-date-middle{padding-top:2px;padding-bottom:2px;width:130px;} +.x-date-right a,.x-date-left a{display:block;width:16px;height:16px;background-position:center;background-repeat:no-repeat;cursor:pointer;-moz-opacity:0.6;opacity:.6;filter:alpha(opacity=60);} +.x-date-right a:hover,.x-date-left a:hover{-moz-opacity:1;opacity:1;filter:alpha(opacity=100);} +.x-date-right a{background-image:url(../images/default/shared/right-btn.gif);margin-right:2px;text-decoration:none!important;} +.x-date-left a{background-image:url(../images/default/shared/left-btn.gif);margin-left:2px;text-decoration:none!important;} +table.x-date-inner{width:100%;table-layout:fixed;} +.x-date-inner th{width:25px;} +.x-date-inner th{background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;text-align:right!important;border-bottom:1px solid #a3bad9;font:normal 10px arial,helvetica,tahoma,sans-serif;color:#233d6d;cursor:default;padding:0;border-collapse:separate;} +.x-date-inner th span{display:block;padding:2px;padding-right:7px;} +.x-date-inner td{border:1px solid #fff;text-align:right;padding:0;} +.x-date-inner a{padding:2px 5px;display:block;font:normal 11px arial,helvetica,tahoma,sans-serif;text-decoration:none;color:black;text-align:right;zoom:1;} +.x-date-inner .x-date-active{cursor:pointer;color:black;} +.x-date-inner .x-date-selected a{background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;padding:1px 4px;} +.x-date-inner .x-date-today a{border:1px solid darkred;padding:1px 4px;} +.x-date-inner .x-date-selected span{font-weight:bold;} +.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a{color:#aaa;text-decoration:none!important;} +.x-date-bottom{padding:4px;border-top:1px solid #a3bad9;background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;} +.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{text-decoration:none!important;color:black;background:#ddecfe;} +.x-date-inner .x-date-disabled a{cursor:default;background:#eee;color:#bbb;} +.x-date-mmenu{background:#eee!important;} +.x-date-mmenu .x-menu-item{font-size:10px;padding:1px 24px 1px 4px;white-space:nowrap;color:#000;} +.x-date-mmenu .x-menu-item .x-menu-item-icon{width:10px;height:10px;margin-right:5px;background-position:center -4px!important;} +.x-date-mp{position:absolute;left:0;top:0;background:white;display:none;} +.x-date-mp td{padding:2px;font:normal 11px arial,helvetica,tahoma,sans-serif;} +td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn{border:0 none;text-align:center;vertical-align:middle;width:25%;} +.x-date-mp-ok{margin-right:3px;} +.x-date-mp-btns button{text-decoration:none;text-align:center;text-decoration:none!important;background:#083772;color:white;border:1px solid;border-color:#36c #005 #005 #36c;padding:1px 3px 1px;font:normal 11px arial,helvetica,tahoma,sans-serif;cursor:pointer;} +.x-date-mp-btns{background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;} +.x-date-mp-btns td{border-top:1px solid #c5d2df;text-align:center;} +td.x-date-mp-month a,td.x-date-mp-year a{display:block;padding:2px 4px;text-decoration:none;text-align:center;color:#15428b;} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{color:#15428b;text-decoration:none;cursor:pointer;background:#ddecfe;} +td.x-date-mp-sel a{padding:1px 3px;background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;} +.x-date-mp-ybtn a{overflow:hidden;width:15px;height:15px;cursor:pointer;background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat;display:block;margin:0 auto;} +.x-date-mp-ybtn a.x-date-mp-next{background-position:0 -120px;} +.x-date-mp-ybtn a.x-date-mp-next:hover{background-position:-15px -120px;} +.x-date-mp-ybtn a.x-date-mp-prev{background-position:0 -105px;} +.x-date-mp-ybtn a.x-date-mp-prev:hover{background-position:-15px -105px;} +.x-date-mp-ybtn{text-align:center;} +td.x-date-mp-sep{border-right:1px solid #c5d2df;} + +.x-tip{position:absolute;top:0;left:0;visibility:hidden;z-index:20000;border:0 none;} +.x-tip .x-tip-close{background-image:url(../images/default/qtip/close.gif);height:15px;float:right;width:15px;margin:0 0 2px 2px;cursor:pointer;display:none;} +.x-tip .x-tip-tc{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -62px;padding-top:3px;overflow:hidden;zoom:1;} +.x-tip .x-tip-tl{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 0;padding-left:6px;overflow:hidden;zoom:1;} +.x-tip .x-tip-tr{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right 0;padding-right:6px;overflow:hidden;zoom:1;} +.x-tip .x-tip-bc{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -121px;height:3px;overflow:hidden;} +.x-tip .x-tip-bl{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -59px;padding-left:6px;zoom:1;} +.x-tip .x-tip-br{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -59px;padding-right:6px;zoom:1;} +.x-tip .x-tip-mc{border:0 none;font:normal 11px tahoma,arial,helvetica,sans-serif;} +.x-tip .x-tip-ml{background:#fff url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -124px;padding-left:6px;zoom:1;} +.x-tip .x-tip-mr{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -124px;padding-right:6px;zoom:1;} +.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc{font-size:0;line-height:0;} +.x-tip .x-tip-header-text{font:bold 11px tahoma,arial,helvetica,sans-serif;padding:0;margin:0 0 2px 0;color:#444;} +.x-tip .x-tip-body{font:normal 11px tahoma,arial,helvetica,sans-serif;margin:0!important;line-height:14px;color:#444;padding:0;} +.x-tip .x-tip-body .loading-indicator{margin:0;} +.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text{cursor:move;} +.x-form-invalid-tip .x-tip-tc{background:url(../images/default/form/error-tip-corners.gif) repeat-x 0 -12px;padding-top:6px;} +.x-form-invalid-tip .x-tip-tl{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-tr{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-bc{background:url(../images/default/form/error-tip-corners.gif) repeat-x 0 -18px;height:6px;} +.x-form-invalid-tip .x-tip-bl{background:url(../images/default/form/error-tip-corners.gif) no-repeat 0 -6px;} +.x-form-invalid-tip .x-tip-br{background:url(../images/default/form/error-tip-corners.gif) no-repeat right -6px;} +.x-form-invalid-tip .x-tip-ml{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-mr{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-body{padding:2px;} +.x-form-invalid-tip .x-tip-body{padding-left:24px;background:transparent url(../images/default/form/exclamation.gif) no-repeat 2px 2px;} + +.x-menu{border:1px solid #718bb7;z-index:15000;zoom:1;background:#f0f0f0 url(../images/default/menu/menu.gif) repeat-y;padding:2px;} +.x-menu a{text-decoration:none!important;} +.ext-ie .x-menu{zoom:1;overflow:hidden;} +.x-menu-list{background:transparent;border:0 none;} +.x-menu li{line-height:100%;} +.x-menu li.x-menu-sep-li{font-size:1px;line-height:1px;} +.x-menu-list-item{font:normal 11px tahoma,arial,sans-serif;white-space:nowrap;-moz-user-select:none;-khtml-user-select:none;display:block;padding:1px;} +.x-menu-item-arrow{background:transparent url(../images/default/menu/menu-parent.gif) no-repeat right;} +.x-menu-sep{display:block;font-size:1px;line-height:1px;margin:2px 3px;background-color:#e0e0e0;border-bottom:1px solid #fff;overflow:hidden;} +.x-menu-focus{position:absolute;left:0;top:-5px;width:0;height:0;line-height:1px;} +.x-menu a.x-menu-item{display:block;line-height:16px;padding:3px 21px 3px 3px;white-space:nowrap;text-decoration:none;color:#222;-moz-outline:0 none;outline:0 none;cursor:pointer;} +.x-menu-item-active{background:#ebf3fd url(../images/default/menu/item-over.gif) repeat-x left bottom;border:1px solid #aaccf6;padding:0;} +.x-menu-item-active a.x-menu-item{color:#233d6d;} +.x-menu-item-icon{border:0 none;height:16px;padding:0;vertical-align:top;width:16px;margin:0 8px 0 0;background-position:center;} +.x-menu-check-item .x-menu-item-icon{background:transparent url(../images/default/menu/unchecked.gif) no-repeat center;} +.x-menu-item-checked .x-menu-item-icon{background-image:url(../images/default/menu/checked.gif);} +.x-menu-group-item .x-menu-item-icon{background:transparent;} +.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background:transparent url(../images/default/menu/group-checked.gif) no-repeat center;} +.x-menu-plain{background:#fff!important;} +.x-menu-date-item{padding:0;} +.x-menu .x-color-palette,.x-menu .x-date-picker{margin-left:26px;margin-right:4px;} +.x-menu .x-date-picker{border:1px solid #a3bad9;margin-top:2px;margin-bottom:2px;} +.x-menu-plain .x-color-palette,.x-menu-plain .x-date-picker{margin:0;border:0 none;} +.x-date-menu{padding:0!important;} +.x-cycle-menu .x-menu-item-checked{border:1px dotted #a3bae9!important;background:#DFE8F6;padding:0;} + + .x-box-tl{background:transparent url(../images/default/box/corners.gif) no-repeat 0 0;zoom:1;} +.x-box-tc{height:8px;background:transparent url(../images/default/box/tb.gif) repeat-x 0 0;overflow:hidden;} +.x-box-tr{background:transparent url(../images/default/box/corners.gif) no-repeat right -8px;} +.x-box-ml{background:transparent url(../images/default/box/l.gif) repeat-y 0;padding-left:4px;overflow:hidden;zoom:1;} +.x-box-mc{background:#eee url(../images/default/box/tb.gif) repeat-x 0 -16px;padding:4px 10px;font-family:"Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;color:#393939;font-size:12px;} +.x-box-mc h3{font-size:14px;font-weight:bold;margin:0 0 4px 0;zoom:1;} +.x-box-mr{background:transparent url(../images/default/box/r.gif) repeat-y right;padding-right:4px;overflow:hidden;} +.x-box-bl{background:transparent url(../images/default/box/corners.gif) no-repeat 0 -16px;zoom:1;} +.x-box-bc{background:transparent url(../images/default/box/tb.gif) repeat-x 0 -8px;height:8px;overflow:hidden;} +.x-box-br{background:transparent url(../images/default/box/corners.gif) no-repeat right -24px;} +.x-box-tl,.x-box-bl{padding-left:8px;overflow:hidden;} +.x-box-tr,.x-box-br{padding-right:8px;overflow:hidden;} +.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr{background-image:url(../images/default/box/corners-blue.gif);} +.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../images/default/box/tb-blue.gif);} +.x-box-blue .x-box-mc{background-color:#c3daf9;} +.x-box-blue .x-box-mc h3{color:#17385b;} +.x-box-blue .x-box-ml{background-image:url(../images/default/box/l-blue.gif);} +.x-box-blue .x-box-mr{background-image:url(../images/default/box/r-blue.gif);} + +#x-debug-browser .x-tree .x-tree-node a span{color:#222297;font-size:11px;padding-top:2px;font-family:"monotype","courier new",sans-serif;line-height:18px;} +#x-debug-browser .x-tree a i{color:#FF4545;font-style:normal;} +#x-debug-browser .x-tree a em{color:#999;} +#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background:#c3daf9;} +#x-debug-browser .x-tool-toggle{background-position:0 -75px;} +#x-debug-browser .x-tool-toggle-over{background-position:-15px -75px;} +#x-debug-browser.x-panel-collapsed .x-tool-toggle{background-position:0 -60px;} +#x-debug-browser.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -60px;} + +.x-combo-list{border:1px solid #98c0f4;background:#ddecfe;zoom:1;overflow:hidden;} +.x-combo-list-inner{overflow:auto;background:white;position:relative;zoom:1;overflow-x:hidden;} +.x-combo-list-hd{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;background-image:url(../images/default/layout/panel-title-light-bg.gif);border-bottom:1px solid #98c0f4;padding:3px;} +.x-resizable-pinned .x-combo-list-inner{border-bottom:1px solid #98c0f4;} +.x-combo-list-item{font:normal 12px tahoma,arial,helvetica,sans-serif;padding:2px;border:1px solid #fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} +.x-combo-list .x-combo-selected{border:1px dotted #a3bae9!important;background:#DFE8F6;cursor:pointer;} +.x-combo-noedit{cursor:pointer;} +.x-combo-list .x-toolbar{border-top:1px solid #98c0f4;border-bottom:0 none;} +.x-combo-list-small .x-combo-list-item{font:normal 11px tahoma,arial,helvetica,sans-serif;} + +.x-panel{border-style:solid;border-color:#99bbe8;border-width:0;} +.x-panel-header{overflow:hidden;zoom:1;color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 3px 4px 5px;border:1px solid #99bbe8;line-height:15px;background:transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 -1px;} +.x-panel-body{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;background:white;position:relative;} +.x-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;} +.x-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;} +.x-panel-tbar-noheader .x-toolbar,.x-panel-mc .x-panel-tbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;} +.x-panel-body-noheader,.x-panel-mc .x-panel-body{border-top:1px solid #99bbe8;} +.x-panel-header{overflow:hidden;zoom:1;} +.x-panel-tl .x-panel-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;border:0 none;background:transparent;} +.x-panel-tl .x-panel-icon,.x-window-tl .x-panel-icon{padding-left:20px!important;background-repeat:no-repeat;background-position:0 4px;zoom:1;} +.x-panel-inline-icon{width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;margin-right:4px;margin-top:-1px;margin-bottom:-1px;} +.x-panel-tc{background:transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 0;overflow:hidden;} +.ext-strict .ext-ie7 .x-panel-tc{overflow:visible;} +.x-panel-tl{background:transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 0;padding-left:6px;zoom:1;border-bottom:1px solid #99bbe8;} +.x-panel-tr{background:transparent url(../images/default/panel/corners-sprite.gif) no-repeat right 0;zoom:1;padding-right:6px;} +.x-panel-bc{background:transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 bottom;zoom:1;} +.x-panel-bc .x-panel-footer{zoom:1;} +.x-panel-bl{background:transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 bottom;padding-left:6px;zoom:1;} +.x-panel-br{background:transparent url(../images/default/panel/corners-sprite.gif) no-repeat right bottom;padding-right:6px;zoom:1;} +.x-panel-mc{border:0 none;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;padding-top:6px;background:#dfe8f6;} +.x-panel-mc .x-panel-body{background:transparent;border:0 none;} +.x-panel-ml{background:#fff url(../images/default/panel/left-right.gif) repeat-y 0 0;padding-left:6px;zoom:1;} +.x-panel-mr{background:transparent url(../images/default/panel/left-right.gif) repeat-y right 0;padding-right:6px;zoom:1;} +.x-panel-bc .x-panel-footer{padding-bottom:6px;} +.x-panel-nofooter .x-panel-bc,.x-panel-nofooter .x-window-bc{height:6px;font-size:0;line-height:0;} +.x-panel-bwrap{overflow:hidden;zoom:1;} +.x-panel-body{overflow:hidden;zoom:1;} +.x-panel-collapsed .x-resizable-handle{display:none;} +.ext-gecko .x-panel-animated div{overflow:hidden!important;} +.x-plain-body{overflow:hidden;} +.x-plain-bbar .x-toolbar{overflow:hidden;padding:2px;} +.x-plain-tbar .x-toolbar{overflow:hidden;padding:2px;} +.x-plain-bwrap{overflow:hidden;zoom:1;} +.x-plain{overflow:hidden;} +.x-tool{overflow:hidden;width:15px;height:15px;float:right;cursor:pointer;background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat;margin-left:2px;} +.x-tool-toggle{background-position:0 -60px;} +.x-tool-toggle-over{background-position:-15px -60px;} +.x-panel-collapsed .x-tool-toggle{background-position:0 -75px;} +.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -75px;} +.x-tool-close{background-position:0 -0;} +.x-tool-close-over{background-position:-15px 0;} +.x-tool-minimize{background-position:0 -15px;} +.x-tool-minimize-over{background-position:-15px -15px;} +.x-tool-maximize{background-position:0 -30px;} +.x-tool-maximize-over{background-position:-15px -30px;} +.x-tool-restore{background-position:0 -45px;} +.x-tool-restore-over{background-position:-15px -45px;} +.x-tool-gear{background-position:0 -90px;} +.x-tool-gear-over{background-position:-15px -90px;} +.x-tool-pin{background-position:0 -135px;} +.x-tool-pin-over{background-position:-15px -135px;} +.x-tool-unpin{background-position:0 -150px;} +.x-tool-unpin-over{background-position:-15px -150px;} +.x-tool-right{background-position:0 -165px;} +.x-tool-right-over{background-position:-15px -165px;} +.x-tool-left{background-position:0 -180px;} +.x-tool-left-over{background-position:-15px -180px;} +.x-tool-up{background-position:0 -210px;} +.x-tool-up-over{background-position:-15px -210px;} +.x-tool-down{background-position:0 -195px;} +.x-tool-down-over{background-position:-15px -195px;} +.x-tool-refresh{background-position:0 -225px;} +.x-tool-refresh-over{background-position:-15px -225px;} +.x-tool-minus{background-position:0 -255px;} +.x-tool-minus-over{background-position:-15px -255px;} +.x-tool-plus{background-position:0 -240px;} +.x-tool-plus-over{background-position:-15px -240px;} +.x-tool-search{background-position:0 -270px;} +.x-tool-search-over{background-position:-15px -270px;} +.x-tool-save{background-position:0 -285px;} +.x-tool-save-over{background-position:-15px -285px;} +.x-tool-help{background-position:0 -300px;} +.x-tool-help-over{background-position:-15px -300px;} +.x-tool-print{background-position:0 -315px;} +.x-tool-print-over{background-position:-15px -315px;} +.x-panel-ghost{background:#cbddf3;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;opacity:.65;-moz-opacity:.65;filter:alpha(opacity=65);} +.x-panel-ghost ul{margin:0;padding:0;overflow:hidden;font-size:0;line-height:0;border:1px solid #99bbe8;border-top:0 none;display:block;} +.x-panel-ghost *{cursor:move!important;} +.x-panel-dd-spacer{border:2px dashed #99bbe8;} +.x-panel-btns-ct{padding:5px;} +.x-panel-btns-ct .x-btn{float:right;clear:none;} +.x-panel-btns-ct .x-panel-btns td{border:0;padding:0;} +.x-panel-btns-ct .x-panel-btns-right table{float:right;clear:none;} +.x-panel-btns-ct .x-panel-btns-left table{float:left;clear:none;} +.x-panel-btns-ct .x-panel-btns-center{text-align:center;} +.x-panel-btns-ct .x-panel-btns-center table{margin:0 auto;} +.x-panel-btns-ct table td.x-panel-btn-td{padding:3px;} +.x-panel-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;} +.x-panel-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;} +.x-panel-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;} +.x-panel-btns-ct .x-btn-over .x-btn-left{background-position:0 -63px;} +.x-panel-btns-ct .x-btn-over .x-btn-right{background-position:0 -84px;} +.x-panel-btns-ct .x-btn-over .x-btn-center{background-position:0 -105px;} +.x-panel-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;} +.x-panel-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;} +.x-panel-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;} + +.x-window{zoom:1;} +.x-window .x-resizable-handle{opacity:0;-moz-opacity:0;filter:alpha(opacity=0);} +.x-window-proxy{background:#C7DFFC;border:1px solid #99bbe8;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;display:none;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);} +.x-window-header{overflow:hidden;zoom:1;} +.x-window-bwrap{z-index:1;position:relative;zoom:1;} +.x-window-tl .x-window-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;} +.x-window-header-text{cursor:pointer;} +.x-window-tc{background:transparent url(../images/default/window/top-bottom.png) repeat-x 0 0;overflow:hidden;zoom:1;} +.x-window-tl{background:transparent url(../images/default/window/left-corners.png) no-repeat 0 0;padding-left:6px;zoom:1;z-index:1;position:relative;} +.x-window-tr{background:transparent url(../images/default/window/right-corners.png) no-repeat right 0;padding-right:6px;} +.x-window-bc{background:transparent url(../images/default/window/top-bottom.png) repeat-x 0 bottom;zoom:1;} +.x-window-bc .x-window-footer{padding-bottom:6px;zoom:1;font-size:0;line-height:0;} +.x-window-bl{background:transparent url(../images/default/window/left-corners.png) no-repeat 0 bottom;padding-left:6px;zoom:1;} +.x-window-br{background:transparent url(../images/default/window/right-corners.png) no-repeat right bottom;padding-right:6px;zoom:1;} +.x-window-mc{border:1px solid #99bbe8;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;background:#dfe8f6;} +.x-window-ml{background:transparent url(../images/default/window/left-right.png) repeat-y 0 0;padding-left:6px;zoom:1;} +.x-window-mr{background:transparent url(../images/default/window/left-right.png) repeat-y right 0;padding-right:6px;zoom:1;} +.x-window-body{overflow:hidden;} +.x-window-bwrap{overflow:hidden;} +.x-window-maximized .x-window-bl,.x-window-maximized .x-window-br,.x-window-maximized .x-window-ml,.x-window-maximized .x-window-mr,.x-window-maximized .x-window-tl,.x-window-maximized .x-window-tr{padding:0;} +.x-window-maximized .x-window-footer{padding-bottom:0;} +.x-window-maximized .x-window-tc{padding-left:3px;padding-right:3px;background-color:white;} +.x-window-maximized .x-window-mc{border-left:0 none;border-right:0 none;} +.x-window-tbar .x-toolbar,.x-window-bbar .x-toolbar{border-left:0 none;border-right:0 none;} +.x-window-bbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;} +.x-window-draggable,.x-window-draggable .x-window-header-text{cursor:move;} +.x-window-maximized .x-window-draggable,.x-window-maximized .x-window-draggable .x-window-header-text{cursor:default;} +.x-window-body{background:transparent;} +.x-panel-ghost .x-window-tl{border-bottom:1px solid #99bbe8;} +.x-panel-collapsed .x-window-tl{border-bottom:1px solid #84a0c4;} +.x-window-maximized-ct{overflow:hidden;} +.x-window-maximized .x-resizable-handle{display:none;} +.x-window-sizing-ghost ul{border:0 none!important;} +.x-dlg-focus{-moz-outline:0 none;outline:0 none;width:0;height:0;overflow:hidden;position:absolute;top:0;left:0;} +.x-dlg-mask{z-index:10000;display:none;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;} +body.ext-ie6.x-body-masked select{visibility:hidden;} +body.ext-ie6.x-body-masked .x-window select{visibility:visible;} +.x-window-plain .x-window-mc{background:#CAD9EC;border-right:1px solid #DFE8F6;border-bottom:1px solid #DFE8F6;border-top:1px solid #a3bae9;border-left:1px solid #a3bae9;} +.x-window-plain .x-window-body{border-left:1px solid #DFE8F6;border-top:1px solid #DFE8F6;border-bottom:1px solid #a3bae9;border-right:1px solid #a3bae9;background:transparent!important;} +body.x-body-masked .x-window-plain .x-window-mc{background:#C7D6E9;} + +.x-html-editor-wrap{border:1px solid #a9bfd3;background:white;} +.x-html-editor-tb .x-btn-text{background:transparent url(../images/default/editor/tb-sprite.gif) no-repeat;} +.x-html-editor-tb .x-edit-bold .x-btn-text{background-position:0 0;} +.x-html-editor-tb .x-edit-italic .x-btn-text{background-position:-16px 0;} +.x-html-editor-tb .x-edit-underline .x-btn-text{background-position:-32px 0;} +.x-html-editor-tb .x-edit-forecolor .x-btn-text{background-position:-160px 0;} +.x-html-editor-tb .x-edit-backcolor .x-btn-text{background-position:-176px 0;} +.x-html-editor-tb .x-edit-justifyleft .x-btn-text{background-position:-112px 0;} +.x-html-editor-tb .x-edit-justifycenter .x-btn-text{background-position:-128px 0;} +.x-html-editor-tb .x-edit-justifyright .x-btn-text{background-position:-144px 0;} +.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text{background-position:-80px 0;} +.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text{background-position:-96px 0;} +.x-html-editor-tb .x-edit-increasefontsize .x-btn-text{background-position:-48px 0;} +.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text{background-position:-64px 0;} +.x-html-editor-tb .x-edit-sourceedit .x-btn-text{background-position:-192px 0;} +.x-html-editor-tb .x-edit-createlink .x-btn-text{background-position:-208px 0;} +.x-html-editor-tip .x-tip-bd .x-tip-bd-inner{padding:5px;padding-bottom:1px;} +.x-html-editor-tb .x-toolbar{position:static!important;} + +.x-panel-noborder .x-panel-body-noborder{border-width:0;} +.x-panel-noborder .x-panel-header-noborder{border-width:0;border-bottom:1px solid #99bbe8;} +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;} +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;} +.x-window-noborder .x-window-mc{border-width:0;} +.x-window-plain .x-window-body-noborder{border-width:0;} +.x-tab-panel-noborder .x-tab-panel-body-noborder{border-width:0;} +.x-tab-panel-noborder .x-tab-panel-header-noborder{border-top-width:0;border-left-width:0;border-right-width:0;} +.x-tab-panel-noborder .x-tab-panel-footer-noborder{border-bottom-width:0;border-left-width:0;border-right-width:0;} +.x-tab-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;} +.x-tab-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;} + +.x-border-layout-ct{background:#dfe8f6;} +.x-border-panel{position:absolute;left:0;top:0;} +.x-tool-collapse-south{background-position:0 -195px;} +.x-tool-collapse-south-over{background-position:-15px -195px;} +.x-tool-collapse-north{background-position:0 -210px;} +.x-tool-collapse-north-over{background-position:-15px -210px;} +.x-tool-collapse-west{background-position:0 -180px;} +.x-tool-collapse-west-over{background-position:-15px -180px;} +.x-tool-collapse-east{background-position:0 -165px;} +.x-tool-collapse-east-over{background-position:-15px -165px;} +.x-tool-expand-south{background-position:0 -210px;} +.x-tool-expand-south-over{background-position:-15px -210px;} +.x-tool-expand-north{background-position:0 -195px;} +.x-tool-expand-north-over{background-position:-15px -195px;} +.x-tool-expand-west{background-position:0 -165px;} +.x-tool-expand-west-over{background-position:-15px -165px;} +.x-tool-expand-east{background-position:0 -180px;} +.x-tool-expand-east-over{background-position:-15px -180px;} +.x-tool-expand-north,.x-tool-expand-south{float:right;margin:3px;} +.x-tool-expand-east,.x-tool-expand-west{float:none;margin:3px auto;} +.x-accordion-hd .x-tool-toggle{background-position:0 -255px;} +.x-accordion-hd .x-tool-toggle-over{background-position:-15px -255px;} +.x-panel-collapsed .x-accordion-hd .x-tool-toggle{background-position:0 -240px;} +.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over{background-position:-15px -240px;} +.x-accordion-hd{color:#222;padding-top:4px;padding-bottom:3px;border-top:0 none;font-weight:normal;background:transparent url(../images/default/panel/light-hd.gif) repeat-x 0 -9px;} +.x-layout-collapsed{position:absolute;left:-10000px;top:-10000px;visibility:hidden;background-color:#d2e0f2;width:20px;height:20px;overflow:hidden;border:1px solid #98c0f4;z-index:20;} +.ext-border-box .x-layout-collapsed{width:22px;height:22px;} +.x-layout-collapsed-over{cursor:pointer;background-color:#d9e8fb;} +.x-layout-collapsed-west .x-layout-collapsed-tools,.x-layout-collapsed-east .x-layout-collapsed-tools{position:absolute;top:0;left:0;width:20px;height:20px;} +.x-layout-split{position:absolute;height:5px;width:5px;line-height:1px;font-size:1px;z-index:3;background-color:transparent;} +.x-layout-split-h{background-image:url(../images/default/s.gif);background-position:left;} +.x-layout-split-v{background-image:url(../images/default/s.gif);background-position:top;} +.x-column-layout-ct{overflow:hidden;zoom:1;} +.x-column{float:left;padding:0;margin:0;overflow:hidden;zoom:1;} +.x-layout-mini{position:absolute;top:0;left:0;display:block;width:5px;height:35px;cursor:pointer;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);} +.x-layout-mini-over,.x-layout-collapsed-over .x-layout-mini{opacity:1;-moz-opacity:1;filter:none;} +.x-layout-split-west .x-layout-mini{top:48%;background-image:url(../images/default/layout/mini-left.gif);} +.x-layout-split-east .x-layout-mini{top:48%;background-image:url(../images/default/layout/mini-right.gif);} +.x-layout-split-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/default/layout/mini-top.gif);} +.x-layout-split-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/default/layout/mini-bottom.gif);} +.x-layout-cmini-west .x-layout-mini{top:48%;background-image:url(../images/default/layout/mini-right.gif);} +.x-layout-cmini-east .x-layout-mini{top:48%;background-image:url(../images/default/layout/mini-left.gif);} +.x-layout-cmini-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/default/layout/mini-bottom.gif);} +.x-layout-cmini-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/default/layout/mini-top.gif);} +.x-layout-cmini-west,.x-layout-cmini-east{border:0 none;width:5px!important;padding:0;background:transparent;} +.x-layout-cmini-north,.x-layout-cmini-south{border:0 none;height:5px!important;padding:0;background:transparent;} +.x-viewport,.x-viewport body{margin:0;padding:0;border:0 none;overflow:hidden;height:100%;} +.x-abs-layout-item{position:absolute;left:0;top:0;} +.ext-ie input.x-abs-layout-item,.ext-ie textarea.x-abs-layout-item{margin:0;} + +.x-progress-wrap{border:1px solid #6593cf;overflow:hidden;} +.x-progress-inner{height:18px;background:#e0e8f3 url(../images/default/qtip/bg.gif) repeat-x;position:relative;} +.x-progress-bar{height:18px;float:left;width:0;background:#9CBFEE url( ../images/default/progress/progress-bg.gif ) repeat-x left center;border-top:1px solid #D1E4FD;border-bottom:1px solid #7FA9E4;border-right:1px solid #7FA9E4;} +.x-progress-text{font-size:11px;font-weight:bold;color:#fff;padding:1px 5px;overflow:hidden;position:absolute;left:0;text-align:center;} +.x-progress-text-back{color:#396095;line-height:16px;} +.ext-ie .x-progress-text-back{line-height:15px;} + +.x-window-dlg .x-window-body{border:0 none!important;padding:5px 10px;overflow:hidden!important;} +.x-window-dlg .x-window-mc{border:0 none!important;} +.x-window-dlg .ext-mb-text,.x-window-dlg .x-window-header-text{font-size:12px;} +.x-window-dlg .ext-mb-input{margin-top:4px;width:95%;} +.x-window-dlg .ext-mb-textarea{margin-top:4px;font:normal 12px tahoma,arial,helvetica,sans-serif;} +.x-window-dlg .x-progress-wrap{margin-top:4px;} +.ext-ie .x-window-dlg .x-progress-wrap{margin-top:6px;} +.x-window-dlg .x-msg-box-wait{background:transparent url(../images/default/grid/loading.gif) no-repeat left;display:block;width:300px;padding-left:18px;line-height:18px;} +.x-window-dlg .ext-mb-icon{float:left;width:47px;height:32px;} +.x-window-dlg .ext-mb-icon{float:left;width:47px;height:32px;} +.ext-ie .x-window-dlg .ext-mb-icon{width:44px;} +.x-window-dlg .ext-mb-info{background:transparent url(../images/default/window/icon-info.gif) no-repeat top left;} +.x-window-dlg .ext-mb-warning{background:transparent url(../images/default/window/icon-warning.gif) no-repeat top left;} +.x-window-dlg .ext-mb-question{background:transparent url(../images/default/window/icon-question.gif) no-repeat top left;} +.x-window-dlg .ext-mb-error{background:transparent url(../images/default/window/icon-error.gif) no-repeat top left;} +.ext-gecko .ext-mb-fix-cursor{overflow:auto;} + + .x-slider{zoom:1;} +.x-slider-inner{position:relative;left:0;top:0;overflow:visible;zoom:1;} +.x-slider-focus{position:absolute;left:0;top:0;width:1px;height:1px;line-height:1px;font-size:1px;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;} +.x-slider-horz{padding-left:7px;background:transparent url(../images/default/slider/slider-bg.png) no-repeat 0 -22px;} +.x-slider-horz .x-slider-end{padding-right:7px;zoom:1;background:transparent url(../images/default/slider/slider-bg.png) no-repeat right -44px;} +.x-slider-horz .x-slider-inner{background:transparent url(../images/default/slider/slider-bg.png) repeat-x 0 0;height:22px;} +.x-slider-horz .x-slider-thumb{width:14px;height:15px;position:absolute;left:0;top:3px;background:transparent url(../images/default/slider/slider-thumb.png) no-repeat 0 0;} +.x-slider-horz .x-slider-thumb-over{background-position:-14px -15px;} +.x-slider-horz .x-slider-thumb-drag{background-position:-28px -30px;} +.x-slider-vert{padding-top:7px;background:transparent url(../images/default/slider/slider-v-bg.png) no-repeat -44px 0;width:22px;} +.x-slider-vert .x-slider-end{padding-bottom:7px;zoom:1;background:transparent url(../images/default/slider/slider-v-bg.png) no-repeat -22px bottom;} +.x-slider-vert .x-slider-inner{background:transparent url(../images/default/slider/slider-v-bg.png) repeat-y 0 0;} +.x-slider-vert .x-slider-thumb{width:15px;height:14px;position:absolute;left:3px;bottom:0;background:transparent url(../images/default/slider/slider-v-thumb.png) no-repeat 0 0;} +.x-slider-vert .x-slider-thumb-over{background-position:-15px -14px;} +.x-slider-vert .x-slider-thumb-drag{background-position:-30px -28px;} + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/form.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/form.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,495 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +/* all fields */ +.x-form-field{ + margin: 0 0 0 0; + font:normal 12px tahoma, arial, helvetica, sans-serif; +} + +/* ---- text fields ---- */ +.x-form-text, textarea.x-form-field{ + padding:1px 3px; + background:#fff url(../images/default/form/text-bg.gif) repeat-x 0 0; + border:1px solid #B5B8C8; +} +textarea.x-form-field { + padding:2px 3px; +} +.x-form-text { + height:22px; + line-height:18px; + vertical-align:middle; +} +.ext-ie .x-form-text { + margin:-1px 0; /* ie bogus margin bug */ + height:22px; /* ie quirks */ + line-height:18px; +} +.ext-ie textarea.x-form-field { + margin:-1px 0; /* ie bogus margin bug */ +} +.ext-strict .x-form-text { + height:18px; +} +.ext-safari .x-form-text { + height:20px; /* safari always same size */ + padding:0 3px; /* remove extra top/bottom padding */ +} +.ext-safari.ext-mac textarea.x-form-field { + margin-bottom:-2px; /* another bogus margin bug, safari/mac only */ +} +.ext-gecko .x-form-text { + padding-top:2px; /* FF won't center the text vertically */ + padding-bottom:0; +} +textarea { + resize: none; /* Disable browser resizable textarea */ +} + +/* select boxes */ + +.x-form-select-one { + height:20px; + line-height:18px; + vertical-align:middle; + background-color:#fff; /* opera */ + border: 1px solid #B5B8C8; +} + +/* multi select boxes */ + +/* --- TODO --- */ + +/* checkboxes */ + +/* --- TODO --- */ + +/* radios */ + +/* --- TODO --- */ + + +/* wrapped fields and triggers */ + +.x-form-field-wrap { + position:relative; + zoom:1; + white-space: nowrap; +} + +.x-editor .x-form-check-wrap { + background:#fff; +} +.x-form-field-wrap .x-form-trigger{ + width:17px; + height:21px; + border:0; + background:transparent url(../images/default/form/trigger.gif) no-repeat 0 0; + cursor:pointer; + border-bottom: 1px solid #B5B8C8; + position:absolute; + top:0; +} +.ext-safari .x-form-field-wrap .x-form-trigger{ + height:21px; /* safari doesn't allow height adjustments to the fields, so adjust trigger */ +} + +.x-form-field-wrap .x-form-date-trigger{ + background-image: url(../images/default/form/date-trigger.gif); + cursor:pointer; +} +.x-form-field-wrap .x-form-clear-trigger{ + background-image: url(../images/default/form/clear-trigger.gif); + cursor:pointer; +} +.x-form-field-wrap .x-form-search-trigger{ + background-image: url(../images/default/form/search-trigger.gif); + cursor:pointer; +} +.ext-safari .x-form-field-wrap .x-form-trigger{ + right:0; +} +.x-form-field-wrap .x-form-twin-triggers{ + +} +.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{ + position:static; + top:auto; + vertical-align:top; +} + + +.x-form-field-wrap .x-form-trigger-over{ + background-position:-17px 0; +} +.x-form-field-wrap .x-form-trigger-click{ + background-position:-34px 0; +} + +.x-trigger-wrap-focus .x-form-trigger{ + background-position:-51px 0; +} +.x-trigger-wrap-focus .x-form-trigger-over{ + background-position:-68px 0; +} +.x-trigger-wrap-focus .x-form-trigger-click{ + background-position:-85px 0; +} +.x-trigger-wrap-focus .x-form-trigger{ + border-bottom: 1px solid #7eadd9; +} + +.x-item-disabled .x-form-trigger-over{ + background-position:0 0 !important; + border-bottom: 1px solid #B5B8C8; +} +.x-item-disabled .x-form-trigger-click{ + background-position:0 0 !important; + border-bottom: 1px solid #B5B8C8; +} + +/* field focus style */ +.x-form-focus, textarea.x-form-focus{ + border: 1px solid #7eadd9; +} + +/* invalid fields */ +.x-form-invalid, textarea.x-form-invalid{ + background:#fff url(../images/default/grid/invalid_line.gif) repeat-x bottom; + border: 1px solid #dd7870; +} +.ext-safari .x-form-invalid{ + background-color:#ffeeee; + border: 1px solid #ff7870; +} + +/* editors */ + +.x-editor { + visibility:hidden; + padding:0; + margin:0; +} +.x-form-check-wrap { + line-height:18px; +} +.ext-ie .x-form-check-wrap input { + width:15px; + height:15px; +} +.x-editor .x-form-check-wrap { + padding:3px; +} +.x-editor .x-form-checkbox { + height:13px; +} +/* If you override the default field font above, you would need to change this font as well */ +.x-form-grow-sizer { + font:normal 12px tahoma, arial, helvetica, sans-serif; + left: -10000px; + padding: 8px 3px; + position: absolute; + visibility:hidden; + top: -10000px; + white-space: pre-wrap; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + word-wrap: break-word; + zoom:1; +} +.x-form-grow-sizer p { + margin:0 !important; + border:0 none !important; + padding:0 !important; +} +/* Form Items CSS */ + +.x-form-item { + font:normal 12px tahoma, arial, helvetica, sans-serif; + display:block; + margin-bottom:4px; + zoom:1; +} + +.x-form-item label { + display:block; + float:left; + width:100px; + padding:3px; + padding-left:0; + clear:left; + z-index:2; + position:relative; +} + +.x-form-element { + padding-left:105px; + position:relative; +} + +.x-form-invalid-msg { + color:#ee0000; + padding:2px; + padding-left:18px; + font:normal 11px tahoma, arial, helvetica, sans-serif; + background: transparent url(../images/default/shared/warning.gif) no-repeat 0 2px; + line-height:16px; + width:200px; +} + + +.x-form-label-right label { + text-align:right; +} + +.x-form-label-top .x-form-item label { + width:auto; + float:none; + clear:none; + display:inline; + margin-bottom:4px; + position:static; +} + +.x-form-label-top .x-form-element { + padding-left:0; + padding-top:4px; +} + +.x-form-label-top .x-form-item { + padding-bottom:4px; +} + +.x-form-empty-field { + color:gray; +} +/* Editor small font for grid, toolbar and tree */ +.x-small-editor .x-form-field { + font:normal 11px arial, tahoma, helvetica, sans-serif; +} +.x-small-editor .x-form-text { + height:20px; + line-height:16px; + vertical-align:middle; +} +.ext-ie .x-small-editor .x-form-text { + margin-top:-1px !important; /* ie bogus margin bug */ + margin-bottom:-1px !important; + height:20px !important; /* ie quirks */ + line-height:16px !important; +} +.ext-strict .x-small-editor .x-form-text { + height:16px !important; +} + +.ext-safari .x-small-editor .x-form-field { + /* safari text field will not size so needs bigger font */ + font:normal 12px arial, tahoma, helvetica, sans-serif; +} +.ext-ie .x-small-editor .x-form-text { + height:20px; + line-height:16px; +} +.ext-border-box .x-small-editor .x-form-text { + height:20px; +} + +.x-small-editor .x-form-select-one { + height:20px; + line-height:16px; + vertical-align:middle; +} +.x-small-editor .x-form-num-field { + text-align:right; +} +.x-small-editor .x-form-field-wrap .x-form-trigger{ + height:19px; +} + + +.x-form-clear { + clear:both; + height:0; + overflow:hidden; + line-height:0; + font-size:0; +} +.x-form-clear-left { + clear:left; + height:0; + overflow:hidden; + line-height:0; + font-size:0; +} + +.x-form-cb-label { + width:'auto' !important; + float:none !important; + clear:none !important; + display:inline !important; + margin-left:4px; +} + +.x-form-column { + float:left; + padding:0; + margin:0; + width:48%; + overflow:hidden; + zoom:1; +} + +/* buttons */ +.x-form .x-form-btns-ct .x-btn{ + float:right; + clear:none; +} +.x-form .x-form-btns-ct .x-form-btns td { + border:0; + padding:0; +} +.x-form .x-form-btns-ct .x-form-btns-right table{ + float:right; + clear:none; +} +.x-form .x-form-btns-ct .x-form-btns-left table{ + float:left; + clear:none; +} +.x-form .x-form-btns-ct .x-form-btns-center{ + text-align:center; /*ie*/ +} +.x-form .x-form-btns-ct .x-form-btns-center table{ + margin:0 auto; /*everyone else*/ +} +.x-form .x-form-btns-ct table td.x-form-btn-td{ + padding:3px; +} + +.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{ + background-position:0 -147px; +} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{ + background-position:0 -168px; +} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{ + background-position:0 -189px; +} + +.x-form .x-form-btns-ct .x-btn-click .x-btn-center{ + background-position:0 -126px; +} +.x-form .x-form-btns-ct .x-btn-click .x-btn-right{ + background-position:0 -84px; +} +.x-form .x-form-btns-ct .x-btn-click .x-btn-left{ + background-position:0 -63px; +} +.x-form-invalid-icon { + width:16px; + height:18px; + visibility:hidden; + position:absolute; + left:0; + top:0; + display:block; + background:transparent url(../images/default/form/exclamation.gif) no-repeat 0 2px; +} + +/* fieldsets */ +.x-fieldset { + border:1px solid #B5B8C8; + padding:10px; + margin-bottom:10px; + display:block; /* preserve margins in IE */ +} +.x-fieldset legend { + font:bold 11px tahoma, arial, helvetica, sans-serif; + color:#15428b; +} +.ext-ie .x-fieldset legend { + margin-bottom:10px; +} +.ext-ie .x-fieldset { + padding-top: 0; + padding-bottom:10px; +} +.x-fieldset legend .x-tool-toggle { + margin-right:3px; + margin-left:0; + float:left !important; +} +.x-fieldset legend input { + margin-right:3px; + float:left !important; + height:13px; + width:13px; +} +fieldset.x-panel-collapsed { + padding-bottom:0 !important; + border-width: 1px 0 0 0 !important; +} +fieldset.x-panel-collapsed .x-fieldset-bwrap { + visibility:hidden; + position:absolute; + left:-1000px; + top:-1000px; +} +.ext-ie .x-fieldset-bwrap { + zoom:1; +} +.ext-ie td .x-form-text { + position:relative; + top:-1px; +} +.x-fieldset-noborder { + border:0px none transparent; +} +.x-fieldset-noborder legend { + margin-left:-3px; +} +/* IE legend positioing bug */ +.ext-ie .x-fieldset-noborder legend { + position: relative; + margin-bottom:23px; +} +.ext-ie .x-fieldset-noborder legend span { + position: absolute; + left:-5px; +} + +.ext-gecko .x-window-body .x-form-item { + -moz-outline: none; + overflow: auto; +} + +.ext-gecko .x-form-item { + -moz-outline: none; +} + +.x-hide-label label.x-form-item-label { + display:none; +} +.x-hide-label .x-form-element { + padding-left: 0 !important; +} + +.x-fieldset { + overflow:hidden; +} + +.x-fieldset-bwrap { + overflow:hidden; + zoom:1; +} + +.x-fieldset-body { + overflow:hidden; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/grid.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/grid.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,554 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +/* Grid3 styles */ +.x-grid3 { + position:relative; + overflow:hidden; + background-color:#fff; +} + +.x-grid-panel .x-panel-body { + overflow:hidden !important; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #99bbe8; +} + +.x-grid3 table { + table-layout:fixed; +} +.x-grid3-viewport{ + overflow:hidden; +} +.x-grid3-hd-row td, .x-grid3-row td, .x-grid3-summary-row td{ + font:normal 11px arial, tahoma, helvetica, sans-serif; + -moz-outline: none; + -moz-user-focus: normal; +} +.x-grid3-row td, .x-grid3-summary-row td { + line-height:13px; + vertical-align: top; + padding-left:1px; + padding-right:1px; + -moz-user-select: none; +} +.x-grid3-hd-row td { + line-height:15px; + vertical-align:middle; + border-left:1px solid #eee; + border-right:1px solid #d0d0d0; +} + +.x-grid3-hd-row .x-grid3-marker-hd { + padding:3px; +} + +.x-grid3-row .x-grid3-marker { + padding:3px; +} + +.x-grid3-cell-inner, .x-grid3-hd-inner{ + overflow:hidden; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + padding:3px 3px 3px 5px; + white-space: nowrap; +} + +.x-grid3-hd-inner { + position:relative; + cursor:inherit; + padding:4px 3px 4px 5px; +} + +.x-grid3-row-body { + white-space:normal; +} + +.x-grid3-body-cell { + -moz-outline:0 none; + outline:0 none; +} +/* IE Quirks to clip */ +.ext-ie .x-grid3-cell-inner, .ext-ie .x-grid3-hd-inner{ + width:100%; +} +/* reverse above in strict mode */ +.ext-strict .x-grid3-cell-inner, .ext-strict .x-grid3-hd-inner{ + width:auto; +} + +.x-grid3-col { + +} + +.x-grid-row-loading { + background: #fff url(../images/default/shared/loading-balls.gif) no-repeat center center; +} +.x-grid-page { + overflow:hidden; +} +.x-grid3-row { + cursor: default; + border:1px solid #ededed; + border-top-color:#fff; + /*border-bottom: 1px solid #ededed;*/ + width:100%; +} +.x-grid3-row-alt{ + background-color:#fafafa; +} + +.x-grid3-row-over { + border:1px solid #dddddd; + background: #efefef url(../images/default/grid/row-over.gif) repeat-x left top; +} + +.x-grid3-resize-proxy { + width:1px; + left:0; + background-color:#777; + cursor: e-resize; + cursor: col-resize; + position:absolute; + top:0; + height:100px; + overflow:hidden; + visibility:hidden; + border:0 none; + z-index:7; +} +.x-grid3-resize-marker { + width:1px; + left:0; + background-color:#777; + position:absolute; + top:0; + height:100px; + overflow:hidden; + visibility:hidden; + border:0 none; + z-index:7; +} +.x-grid3-focus { + position:absolute; + left:0; + top:0; + width:1px; + height:1px; + line-height:1px; + font-size:1px; + -moz-outline:0 none; + outline:0 none; + -moz-user-select: normal; + -khtml-user-select: normal; +} + +/* header styles */ +.x-grid3-header{ + background: #f9f9f9 url(../images/default/grid/grid3-hrow.gif) repeat-x 0 bottom; + cursor:default; + zoom:1; + padding:1px 0 0 0; +} + +.x-grid3-header-pop { + border-left:1px solid #d0d0d0; + float:right; + clear:none; +} +.x-grid3-header-pop-inner { + border-left:1px solid #eee; + width:14px; + height:19px; + background: transparent url(../images/default/grid/hd-pop.gif) no-repeat center center; +} +.ext-ie .x-grid3-header-pop-inner { + width:15px; +} +.ext-strict .x-grid3-header-pop-inner { + width:14px; +} +.x-grid3-header-inner { + overflow:hidden; + zoom:1; + float:left; +} +.x-grid3-header-offset { + padding-left:1px; + width:10000px; +} + +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #aaccf6; + border-right:1px solid #aaccf6; +} +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background: #ebf3fd url(../images/default/grid/grid3-hrow-over.gif) repeat-x left bottom; + +} +.x-grid3-sort-icon{ + background-repeat: no-repeat; + display: none; + height: 4px; + width: 13px; + margin-left:3px; + vertical-align: middle; +} +.sort-asc .x-grid3-sort-icon { + background-image: url(../images/default/grid/sort_asc.gif); + display: inline; +} +.sort-desc .x-grid3-sort-icon { + background-image: url(../images/default/grid/sort_desc.gif); + display: inline; +} + +/* Header position fixes for IE strict mode */ +.ext-strict .ext-ie .x-grid3-header-inner{position:relative;} +.ext-strict .ext-ie6 .x-grid3-hd{position:relative;} +.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;} + +/* Body Styles */ +.x-grid3-body { + zoom:1; +} +.x-grid3-scroller { + overflow:auto; + zoom:1; + position:relative; +} +.x-grid3-cell-text, .x-grid3-hd-text { + display: block; + padding: 3px 5px 3px 5px; + -moz-user-select: none; + -khtml-user-select: none; + color:black; +} +.x-grid3-split { + background-image: url(../images/default/grid/grid-split.gif); + background-position: center; + background-repeat: no-repeat; + cursor: e-resize; + cursor: col-resize; + display: block; + font-size: 1px; + height: 16px; + overflow: hidden; + position: absolute; + top: 2px; + width: 6px; + z-index: 3; +} + +.x-grid3-hd-text { + color:#15428b; +} +/* Column Reorder DD */ +.x-dd-drag-proxy .x-grid3-hd-inner{ + background: #ebf3fd url(../images/default/grid/grid3-hrow-over.gif) repeat-x left bottom; + width:120px; + padding:3px; + border:1px solid #aaccf6; + overflow:hidden; +} + +.col-move-top, .col-move-bottom{ + width:9px; + height:9px; + position:absolute; + top:0; + line-height:1px; + font-size:1px; + overflow:hidden; + visibility:hidden; + z-index:20000; +} +.col-move-top{ + background:transparent url(../images/default/grid/col-move-top.gif) no-repeat left top; +} +.col-move-bottom{ + background:transparent url(../images/default/grid/col-move-bottom.gif) no-repeat left top; +} + +/* Selection Styles */ +.x-grid3-row-selected { + background: #DFE8F6 !important; + border:1px dotted #a3bae9; +} + +.x-grid3-cell-selected{ + background-color: #B8CFEE !important; + color: black; +} +.x-grid3-cell-selected span{ + color: black !important; +} +.x-grid3-cell-selected .x-grid3-cell-text{ + color: black; +} + +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ + background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x 0 bottom !important; + vertical-align:middle !important; + color:black; + padding:0; + border-top:1px solid white; + border-bottom:none !important; + border-right:1px solid #6fa0df !important; + text-align:center; +} +.x-grid3-locked td.x-grid3-row-marker div, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{ + padding:0 4px; + color:#15428b !important; + text-align:center; +} + +/* dirty cells */ +.x-grid3-dirty-cell { + background: transparent url(../images/default/grid/dirty.gif) no-repeat 0 0; +} + +/* Grid Toolbars */ +.x-grid3-topbar, .x-grid3-bottombar{ + font:normal 11px arial, tahoma, helvetica, sans-serif; + overflow:hidden; + display:none; + zoom:1; + position:relative; +} +.x-grid3-topbar .x-toolbar{ + border-right:0 none; +} +.x-grid3-bottombar .x-toolbar{ + border-right:0 none; + border-bottom:0 none; + border-top:1px solid #a9bfd3; +} +/* Props Grid Styles */ +.x-props-grid .x-grid3-cell{ + padding:1px; +} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ + background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y -16px !important; + padding-left:12px; + color:black !important; +} +.x-props-grid .x-grid3-body .x-grid3-td-name{ + padding:1px; + padding-right:0; + background:white !important; + border:0 none; + border-right:1px solid #eeeeee; +} + +/* header menu */ +.xg-hmenu-sort-asc .x-menu-item-icon{ + background-image: url(../images/default/grid/hmenu-asc.gif); +} +.xg-hmenu-sort-desc .x-menu-item-icon{ + background-image: url(../images/default/grid/hmenu-desc.gif); +} +.xg-hmenu-lock .x-menu-item-icon{ + background-image: url(../images/default/grid/hmenu-lock.gif); +} +.xg-hmenu-unlock .x-menu-item-icon{ + background-image: url(../images/default/grid/hmenu-unlock.gif); +} + +/* dd */ +.x-grid3-col-dd { + border:0 none; + padding:0; + background:transparent; +} + +.x-dd-drag-ghost .x-grid3-dd-wrap { + padding:1px 3px 3px 1px; +} + +.x-grid3-hd { + -moz-user-select:none; +} + +.x-grid3-hd-btn { + display:none; + position:absolute; + width:14px; + background:#c3daf9 url(../images/default/grid/grid3-hd-btn.gif) no-repeat left center; + right:0; + top:0; + z-index:2; + cursor:pointer; +} + +.x-grid3-hd-over .x-grid3-hd-btn, .x-grid3-hd-menu-open .x-grid3-hd-btn { + display:block; +} + +a.x-grid3-hd-btn:hover { + background-position:-14px center; +} + +/* Expanders */ + +.x-grid3-body .x-grid3-td-expander { + background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner { + padding:0 !important; + height:100%; +} +.x-grid3-row-expander { + width:100%; + height:18px; + background-position:4px 2px; + background-repeat:no-repeat; + background-color:transparent; + background-image:url(../images/default/grid/row-expand-sprite.gif); +} +.x-grid3-row-collapsed .x-grid3-row-expander { + background-position:4px 2px; +} +.x-grid3-row-expanded .x-grid3-row-expander { + background-position:-21px 2px; +} +.x-grid3-row-collapsed .x-grid3-row-body { + display:none !important; +} +.x-grid3-row-expanded .x-grid3-row-body { + display:block !important; +} + +/* Checkers */ + +.x-grid3-body .x-grid3-td-checker { + background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right; +} + +.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner, .x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner { + padding:0 !important; + height:100%; +} + +.x-grid3-row-checker, .x-grid3-hd-checker { + width:100%; + height:18px; + background-position:2px 2px; + background-repeat:no-repeat; + background-color:transparent; + background-image:url(../images/default/grid/row-check-sprite.gif); +} +.x-grid3-row .x-grid3-row-checker { + background-position:2px 2px; +} +.x-grid3-row-selected .x-grid3-row-checker, .x-grid3-hd-checker-on .x-grid3-hd-checker { + background-position:-23px 2px; +} +.x-grid3-hd-checker { + background-position:2px 3px; +} +.x-grid3-hd-checker-on .x-grid3-hd-checker { + background-position:-23px 3px; +} + +/* Numberer */ + +.x-grid3-body .x-grid3-td-numberer { + background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner { + padding:3px 5px 0 0 !important; + text-align:right; + color:#444; +} + +/* All specials */ + +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background:transparent url(../images/default/grid/grid3-special-col-sel-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner { + padding: 1px 0 0 0 !important; +} + +.x-grid3-check-col { + width:100%; + height:16px; + background-position:center center; + background-repeat:no-repeat; + background-color:transparent; + background-image:url(../images/default/menu/unchecked.gif); +} + + +.x-grid3-check-col-on { + width:100%; + height:16px; + background-position:center center; + background-repeat:no-repeat; + background-color:transparent; + background-image:url(../images/default/menu/checked.gif); +} + +/* Grouping classes */ +.x-grid-group, .x-grid-group-body, .x-grid-group-hd { + zoom:1; +} +.x-grid-group-hd { + border-bottom: 2px solid #99bbe8; + cursor:pointer; + padding-top:6px; +} +.x-grid-group-hd div { + background:transparent url(../images/default/grid/group-expand-sprite.gif) no-repeat 3px -47px; + padding:4px 4px 4px 17px; + color:#3764a0; + font:bold 11px tahoma, arial, helvetica, sans-serif; +} +.x-grid-group-collapsed .x-grid-group-hd div { + background-position: 3px 3px; +} +.x-grid-group-collapsed .x-grid-group-body { + display:none; +} + +.x-group-by-icon { + background-image:url(../images/default/grid/group-by.gif); +} +.x-cols-icon { + background-image:url(../images/default/grid/columns.gif); +} +.x-show-groups-icon { + background-image:url(../images/default/grid/group-by.gif); +} + +.ext-ie .x-grid3 .x-editor .x-form-text { + position:relative; + top:-1px; +} +.ext-ie .x-props-grid .x-editor .x-form-text { + position:static; + top:0; +} + +.x-grid-empty { + padding:10px; + color:gray; + font:normal 11px tahoma, arial, helvetica, sans-serif; +} + + +/* fix floating toolbar issue */ +.ext-ie7 .x-grid-panel .x-panel-bbar { + position:relative; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/layout.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/layout.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,267 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-border-layout-ct { + background:#dfe8f6; +} +.x-border-panel { + position:absolute; + left:0; + top:0; +} + +.x-tool-collapse-south { + background-position:0 -195px; +} +.x-tool-collapse-south-over { + background-position:-15px -195px; +} + +.x-tool-collapse-north { + background-position:0 -210px; +} +.x-tool-collapse-north-over { + background-position:-15px -210px; +} + +.x-tool-collapse-west { + background-position:0 -180px; +} +.x-tool-collapse-west-over { + background-position:-15px -180px; +} + +.x-tool-collapse-east { + background-position:0 -165px; +} +.x-tool-collapse-east-over { + background-position:-15px -165px; +} + + +.x-tool-expand-south { + background-position:0 -210px; +} +.x-tool-expand-south-over { + background-position:-15px -210px; +} + +.x-tool-expand-north { + background-position:0 -195px; +} +.x-tool-expand-north-over { + background-position:-15px -195px; +} + +.x-tool-expand-west { + background-position:0 -165px; +} +.x-tool-expand-west-over { + background-position:-15px -165px; +} + +.x-tool-expand-east { + background-position:0 -180px; +} +.x-tool-expand-east-over { + background-position:-15px -180px; +} + +.x-tool-expand-north, .x-tool-expand-south { + float:right; + margin:3px; +} +.x-tool-expand-east, .x-tool-expand-west { + float:none; + margin:3px auto; +} + + + +.x-accordion-hd .x-tool-toggle { + background-position:0 -255px; +} +.x-accordion-hd .x-tool-toggle-over { + background-position:-15px -255px; +} +.x-panel-collapsed .x-accordion-hd .x-tool-toggle { + background-position:0 -240px; +} +.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over { + background-position:-15px -240px; +} + +.x-accordion-hd { + color:#222; + padding-top:4px; + padding-bottom:3px; + border-top:0 none; + font-weight:normal; + background: transparent url(../images/default/panel/light-hd.gif) repeat-x 0 -9px; +} + +.x-layout-collapsed{ + position:absolute; + left:-10000px; + top:-10000px; + visibility:hidden; + background-color:#d2e0f2; + width:20px; + height:20px; + overflow:hidden; + border:1px solid #98c0f4; + z-index:20; +} +.ext-border-box .x-layout-collapsed{ + width:22px; + height:22px; +} +.x-layout-collapsed-over{ + cursor:pointer; + background-color:#d9e8fb; +} +.x-layout-collapsed-west .x-layout-collapsed-tools, .x-layout-collapsed-east .x-layout-collapsed-tools{ + position:absolute; + top:0; + left:0; + width:20px; + height:20px; +} + + +.x-layout-split{ + position:absolute; + height:5px; + width:5px; + line-height:1px; + font-size:1px; + z-index:3; + background-color:transparent; +} + +.x-layout-split-h{ + background-image:url(../images/default/s.gif); + background-position: left; +} +.x-layout-split-v{ + background-image:url(../images/default/s.gif); + background-position: top; +} + +.x-column-layout-ct { + overflow:hidden; + /*padding:3px 3px 3px 3px;*/ + zoom:1; +} + +.x-column { + float:left; + padding:0; + margin:0; + overflow:hidden; + zoom:1; + /*margin:3px;*/ +} + +/* mini mode */ + +.x-layout-mini { + position:absolute; + top:0; + left:0; + display:block; + width:5px; + height:35px; + cursor:pointer; + opacity:.5; + -moz-opacity:.5; + filter:alpha(opacity=50); +} +.x-layout-mini-over, .x-layout-collapsed-over .x-layout-mini{ + opacity:1; + -moz-opacity:1; + filter:none; +} + +.x-layout-split-west .x-layout-mini { + top:48%; + background-image:url(../images/default/layout/mini-left.gif); +} +.x-layout-split-east .x-layout-mini { + top:48%; + background-image:url(../images/default/layout/mini-right.gif); +} +.x-layout-split-north .x-layout-mini { + left:48%; + height:5px; + width:35px; + background-image:url(../images/default/layout/mini-top.gif); +} +.x-layout-split-south .x-layout-mini { + left:48%; + height:5px; + width:35px; + background-image:url(../images/default/layout/mini-bottom.gif); +} + + +.x-layout-cmini-west .x-layout-mini { + top:48%; + background-image:url(../images/default/layout/mini-right.gif); +} + +.x-layout-cmini-east .x-layout-mini { + top:48%; + background-image:url(../images/default/layout/mini-left.gif); +} + +.x-layout-cmini-north .x-layout-mini { + left:48%; + height:5px; + width:35px; + background-image:url(../images/default/layout/mini-bottom.gif); +} + +.x-layout-cmini-south .x-layout-mini { + left:48%; + height:5px; + width:35px; + background-image:url(../images/default/layout/mini-top.gif); +} + +.x-layout-cmini-west, .x-layout-cmini-east { + border:0 none; + width:5px !important; + padding:0; + background:transparent; +} + +.x-layout-cmini-north, .x-layout-cmini-south { + border:0 none; + height:5px !important; + padding:0; + background:transparent; +} + +.x-viewport, .x-viewport body { + margin: 0; + padding: 0; + border: 0 none; + overflow: hidden; + height: 100%; +} + +.x-abs-layout-item { + position:absolute; + left:0; + top:0; +} + +.ext-ie input.x-abs-layout-item, .ext-ie textarea.x-abs-layout-item { + margin:0; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/menu.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/menu.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,135 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-menu { + border: 1px solid #718bb7; + z-index: 15000; + zoom: 1; + background: #f0f0f0 url(../images/default/menu/menu.gif) repeat-y; + padding: 2px; +} +.x-menu a { + text-decoration: none !important; +} +.ext-ie .x-menu { + zoom:1; + overflow:hidden; +} +.x-menu-list{ + background:transparent; + border:0 none; +} +.x-menu li{ + line-height:100%; +} +.x-menu li.x-menu-sep-li{ + font-size:1px; + line-height:1px; +} +.x-menu-list-item{ + font:normal 11px tahoma,arial, sans-serif; + white-space: nowrap; + -moz-user-select: none; + -khtml-user-select: none; + display:block; + padding:1px; +} +.x-menu-item-arrow{ + background:transparent url(../images/default/menu/menu-parent.gif) no-repeat right; +} +.x-menu-sep { + display:block; + font-size:1px; + line-height:1px; + margin: 2px 3px; + background-color:#e0e0e0; + border-bottom:1px solid #fff; + overflow:hidden; +} +.x-menu-focus { + position:absolute; + left:0; + top:-5px; + width:0; + height:0; + line-height:1px; +} +.x-menu a.x-menu-item { + display:block; + line-height:16px; + padding:3px 21px 3px 3px; + white-space: nowrap; + text-decoration:none; + color:#222; + -moz-outline: 0 none; + outline: 0 none; + cursor:pointer; +} +.x-menu-item-active { + background: #ebf3fd url(../images/default/menu/item-over.gif) repeat-x left bottom; + border:1px solid #aaccf6; + padding: 0; +} +.x-menu-item-active a.x-menu-item { + color: #233d6d; +} + +.x-menu-item-icon { + border: 0 none; + height: 16px; + padding: 0; + vertical-align: top; + width: 16px; + margin: 0 8px 0 0; + background-position:center; +} + +.x-menu-check-item .x-menu-item-icon{ + background: transparent url(../images/default/menu/unchecked.gif) no-repeat center; +} + +.x-menu-item-checked .x-menu-item-icon{ + background-image:url(../images/default/menu/checked.gif); +} +.x-menu-group-item .x-menu-item-icon{ + background: transparent; +} + +.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{ + background: transparent url(../images/default/menu/group-checked.gif) no-repeat center; +} + +.x-menu-plain { + background:#fff !important; +} +.x-menu-date-item{ + padding:0; +} + +.x-menu .x-color-palette, .x-menu .x-date-picker{ + margin-left: 26px; + margin-right:4px; +} +.x-menu .x-date-picker{ + border:1px solid #a3bad9; + margin-top:2px; + margin-bottom:2px; +} +.x-menu-plain .x-color-palette, .x-menu-plain .x-date-picker{ + margin: 0; + border: 0 none; +} +.x-date-menu { + padding:0 !important; +} + +.x-cycle-menu .x-menu-item-checked { + border:1px dotted #a3bae9 !important; + background:#DFE8F6; + padding:0; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/panel.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/panel.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,423 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-panel { + border-style: solid; + border-color: #99bbe8; + border-width:0; +} + +.x-panel-header { + overflow:hidden; + zoom:1; + color:#15428b; + font:bold 11px tahoma,arial,verdana,sans-serif; + padding:5px 3px 4px 5px; + border:1px solid #99bbe8; + line-height: 15px; + background: transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 -1px; +} + +.x-panel-body { + border:1px solid #99bbe8; + border-top:0 none; + overflow:hidden; + background:white; + position: relative; /* added for item scroll positioning */ +} + +.x-panel-bbar .x-toolbar { + border:1px solid #99bbe8; + border-top:0 none; + overflow:hidden; + padding:2px; +} + + +.x-panel-tbar .x-toolbar { + border:1px solid #99bbe8; + border-top:0 none; + overflow:hidden; + padding:2px; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-top:1px solid #99bbe8; + border-bottom: 0 none; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-top:1px solid #99bbe8; +} +.x-panel-header { + overflow:hidden; + zoom:1; +} +.x-panel-tl .x-panel-header { + color:#15428b; + font:bold 11px tahoma,arial,verdana,sans-serif; + padding:5px 0 4px 0; + border:0 none; + background:transparent; +} +.x-panel-tl .x-panel-icon, .x-window-tl .x-panel-icon { + padding-left:20px !important; + background-repeat:no-repeat; + background-position:0 4px; + zoom:1; +} +.x-panel-inline-icon { + width:16px; + height:16px; + background-repeat:no-repeat; + background-position:0 0; + vertical-align:middle; + margin-right:4px; + margin-top:-1px; + margin-bottom:-1px; +} +.x-panel-tc { + background: transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 0; + overflow:hidden; +} +/* fix ie7 strict mode bug */ +.ext-strict .ext-ie7 .x-panel-tc { + overflow: visible; +} +.x-panel-tl { + background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 0; + padding-left:6px; + zoom:1; + border-bottom:1px solid #99bbe8; +} +.x-panel-tr { + background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat right 0; + zoom:1; + padding-right:6px; +} +.x-panel-bc { + background: transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 bottom; + zoom:1; +} +.x-panel-bc .x-panel-footer { + zoom:1; +} + +.x-panel-bl { + background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 bottom; + padding-left:6px; + zoom:1; +} +.x-panel-br { + background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat right bottom; + padding-right:6px; + zoom:1; +} +.x-panel-mc { + border:0 none; + padding:0; + margin:0; + font: normal 11px tahoma,arial,helvetica,sans-serif; + padding-top:6px; + background:#dfe8f6; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background: #fff url(../images/default/panel/left-right.gif) repeat-y 0 0; + padding-left:6px; + zoom:1; +} +.x-panel-mr { + background: transparent url(../images/default/panel/left-right.gif) repeat-y right 0; + padding-right:6px; + zoom:1; +} +.x-panel-bc .x-panel-footer { + padding-bottom:6px; +} +.x-panel-nofooter .x-panel-bc, .x-panel-nofooter .x-window-bc { + height:6px; + font-size:0; + line-height:0; +} + +.x-panel-bwrap { + overflow:hidden; + zoom:1; +} +.x-panel-body { + overflow:hidden; + zoom:1; +} + +.x-panel-collapsed .x-resizable-handle{ + display:none; +} + +.ext-gecko .x-panel-animated div { + overflow:hidden !important; +} + +/* Plain */ +.x-plain-body { + overflow:hidden; +} + +.x-plain-bbar .x-toolbar { + overflow:hidden; + padding:2px; +} + +.x-plain-tbar .x-toolbar { + overflow:hidden; + padding:2px; +} + +.x-plain-bwrap { + overflow:hidden; + zoom:1; +} + +.x-plain { + overflow:hidden; +} + +/* Tools */ +.x-tool { + overflow:hidden; + width:15px; + height:15px; + float:right; + cursor:pointer; + background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat; + margin-left:2px; +} + +/* expand / collapse tools */ +.x-tool-toggle { + background-position:0 -60px; +} +.x-tool-toggle-over { + background-position:-15px -60px; +} +.x-panel-collapsed .x-tool-toggle { + background-position:0 -75px; +} +.x-panel-collapsed .x-tool-toggle-over { + background-position:-15px -75px; +} + +.x-tool-close { + background-position:0 -0; +} +.x-tool-close-over { + background-position:-15px 0; +} + +.x-tool-minimize { + background-position:0 -15px; +} +.x-tool-minimize-over { + background-position:-15px -15px; +} + +.x-tool-maximize { + background-position:0 -30px; +} +.x-tool-maximize-over { + background-position:-15px -30px; +} + +.x-tool-restore { + background-position:0 -45px; +} +.x-tool-restore-over { + background-position:-15px -45px; +} + +.x-tool-gear { + background-position:0 -90px; +} +.x-tool-gear-over { + background-position:-15px -90px; +} + +.x-tool-pin { + background-position:0 -135px; +} +.x-tool-pin-over { + background-position:-15px -135px; +} +.x-tool-unpin { + background-position:0 -150px; +} +.x-tool-unpin-over { + background-position:-15px -150px; +} +.x-tool-right { + background-position:0 -165px; +} +.x-tool-right-over { + background-position:-15px -165px; +} +.x-tool-left { + background-position:0 -180px; +} +.x-tool-left-over { + background-position:-15px -180px; +} +.x-tool-up { + background-position:0 -210px; +} +.x-tool-up-over { + background-position:-15px -210px; +} +.x-tool-down { + background-position:0 -195px; +} +.x-tool-down-over { + background-position:-15px -195px; +} +.x-tool-refresh { + background-position:0 -225px; +} +.x-tool-refresh-over { + background-position:-15px -225px; +} + +.x-tool-minus { + background-position:0 -255px; +} +.x-tool-minus-over { + background-position:-15px -255px; +} +.x-tool-plus { + background-position:0 -240px; +} +.x-tool-plus-over { + background-position:-15px -240px; +} + +.x-tool-search { + background-position:0 -270px; +} +.x-tool-search-over { + background-position:-15px -270px; +} +.x-tool-save { + background-position:0 -285px; +} +.x-tool-save-over { + background-position:-15px -285px; +} +.x-tool-help { + background-position:0 -300px; +} +.x-tool-help-over { + background-position:-15px -300px; +} +.x-tool-print { + background-position:0 -315px; +} +.x-tool-print-over { + background-position:-15px -315px; +} + +/* Ghosting */ +.x-panel-ghost { + background:#cbddf3; + z-index:12000; + overflow:hidden; + position:absolute; + left:0;top:0; + opacity:.65; + -moz-opacity:.65; + filter:alpha(opacity=65); +} + +.x-panel-ghost ul { + margin:0; + padding:0; + overflow:hidden; + font-size:0; + line-height:0; + border:1px solid #99bbe8; + border-top:0 none; + display:block; +} + +.x-panel-ghost * { + cursor:move !important; +} + +.x-panel-dd-spacer { + border:2px dashed #99bbe8; +} +/* Buttons */ + +.x-panel-btns-ct { + padding:5px; +} + +.x-panel-btns-ct .x-btn{ + float:right; + clear:none; +} +.x-panel-btns-ct .x-panel-btns td { + border:0; + padding:0; +} +.x-panel-btns-ct .x-panel-btns-right table{ + float:right; + clear:none; +} +.x-panel-btns-ct .x-panel-btns-left table{ + float:left; + clear:none; +} +.x-panel-btns-ct .x-panel-btns-center{ + text-align:center; /*ie*/ +} +.x-panel-btns-ct .x-panel-btns-center table{ + margin:0 auto; /*everyone else*/ +} +.x-panel-btns-ct table td.x-panel-btn-td{ + padding:3px; +} + +.x-panel-btns-ct .x-btn-focus .x-btn-left{ + background-position:0 -147px; +} +.x-panel-btns-ct .x-btn-focus .x-btn-right{ + background-position:0 -168px; +} +.x-panel-btns-ct .x-btn-focus .x-btn-center{ + background-position:0 -189px; +} + +.x-panel-btns-ct .x-btn-over .x-btn-left{ + background-position:0 -63px; +} +.x-panel-btns-ct .x-btn-over .x-btn-right{ + background-position:0 -84px; +} +.x-panel-btns-ct .x-btn-over .x-btn-center{ + background-position:0 -105px; +} + +.x-panel-btns-ct .x-btn-click .x-btn-center{ + background-position:0 -126px; +} +.x-panel-btns-ct .x-btn-click .x-btn-right{ + background-position:0 -84px; +} +.x-panel-btns-ct .x-btn-click .x-btn-left{ + background-position:0 -63px; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/progress.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/progress.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,43 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-progress-wrap { + border:1px solid #6593cf; + overflow:hidden; +} +.x-progress-inner { + height:18px; + background: #e0e8f3 url(../images/default/qtip/bg.gif) repeat-x; + position:relative; +} +.x-progress-bar { + height:18px; + float:left; + width:0; + background:#9CBFEE url( ../images/default/progress/progress-bg.gif ) repeat-x left center; + border-top:1px solid #D1E4FD; + border-bottom:1px solid #7FA9E4; + border-right:1px solid #7FA9E4; +} +.x-progress-text { + font-size:11px; + font-weight:bold; + color:#fff; + padding:1px 5px; + overflow:hidden; + position:absolute; + left:0; + text-align:center; +} +.x-progress-text-back { + color:#396095; + line-height:16px; +} +.ext-ie .x-progress-text-back { + line-height:15px; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/qtips.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/qtips.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,134 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-tip{ + position: absolute; + top: 0; + left:0; + visibility: hidden; + z-index: 20000; + border:0 none; +} +.x-tip .x-tip-close{ + background-image: url(../images/default/qtip/close.gif); + height: 15px; + float:right; + width: 15px; + margin:0 0 2px 2px; + cursor:pointer; + display:none; +} +.x-tip .x-tip-tc { + background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -62px; + padding-top:3px; + overflow:hidden; + zoom:1; +} +.x-tip .x-tip-tl { + background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 0; + padding-left:6px; + overflow:hidden; + zoom:1; +} +.x-tip .x-tip-tr { + background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right 0; + padding-right:6px; + overflow:hidden; + zoom:1; +} +.x-tip .x-tip-bc { + background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -121px; + height:3px; + overflow:hidden; +} +.x-tip .x-tip-bl { + background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -59px; + padding-left:6px; + zoom:1; +} +.x-tip .x-tip-br { + background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -59px; + padding-right:6px; + zoom:1; +} +.x-tip .x-tip-mc { + border:0 none; + font: normal 11px tahoma,arial,helvetica,sans-serif; +} +.x-tip .x-tip-ml { + background: #fff url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -124px; + padding-left:6px; + zoom:1; +} +.x-tip .x-tip-mr { + background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -124px; + padding-right:6px; + zoom:1; +} +.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc { + font-size:0; + line-height:0; +} +.x-tip .x-tip-header-text { + font: bold 11px tahoma,arial,helvetica,sans-serif; + padding:0; + margin:0 0 2px 0; + color:#444; +} +.x-tip .x-tip-body { + font: normal 11px tahoma,arial,helvetica,sans-serif; + margin:0 !important; + line-height:14px; + color:#444; + padding:0; +} + +.x-tip .x-tip-body .loading-indicator { + margin:0; +} + +.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text { + cursor:move; +} + +.x-form-invalid-tip { +} + +.x-form-invalid-tip .x-tip-tc { + background: url(../images/default/form/error-tip-corners.gif) repeat-x 0 -12px; + padding-top:6px; +} +.x-form-invalid-tip .x-tip-tl { + background-image: url(../images/default/form/error-tip-corners.gif); +} +.x-form-invalid-tip .x-tip-tr { + background-image: url(../images/default/form/error-tip-corners.gif); +} +.x-form-invalid-tip .x-tip-bc { + background: url(../images/default/form/error-tip-corners.gif) repeat-x 0 -18px; + height:6px; +} +.x-form-invalid-tip .x-tip-bl { + background: url(../images/default/form/error-tip-corners.gif) no-repeat 0 -6px; +} +.x-form-invalid-tip .x-tip-br { + background: url(../images/default/form/error-tip-corners.gif) no-repeat right -6px; +} +.x-form-invalid-tip .x-tip-ml { + background-image: url(../images/default/form/error-tip-corners.gif); +} +.x-form-invalid-tip .x-tip-mr { + background-image: url(../images/default/form/error-tip-corners.gif); +} +.x-form-invalid-tip .x-tip-body { + padding:2px; +} +.x-form-invalid-tip .x-tip-body { + padding-left:24px; + background:transparent url(../images/default/form/exclamation.gif) no-repeat 2px 2px; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/reset-min.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/reset-min.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,9 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/reset.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/reset.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,9 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/resizable.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/resizable.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,143 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-resizable-handle { + position:absolute; + z-index:100; + /* ie needs these */ + font-size:1px; + line-height:6px; + overflow:hidden; + background:white; + filter:alpha(opacity=0); + opacity:0; + zoom:1; +} +.x-resizable-handle-east{ + width:6px; + cursor:e-resize; + right:0; + top:0; + height:100%; +} +.ext-ie .x-resizable-handle-east { + margin-right:-1px; /*IE rounding error*/ +} +.x-resizable-handle-south{ + width:100%; + cursor:s-resize; + left:0; + bottom:0; + height:6px; +} +.ext-ie .x-resizable-handle-south { + margin-bottom:-1px; /*IE rounding error*/ +} +.x-resizable-handle-west{ + width:6px; + cursor:w-resize; + left:0; + top:0; + height:100%; +} +.x-resizable-handle-north{ + width:100%; + cursor:n-resize; + left:0; + top:0; + height:6px; +} +.x-resizable-handle-southeast{ + width:6px; + cursor:se-resize; + right:0; + bottom:0; + height:6px; + z-index:101; +} +.x-resizable-handle-northwest{ + width:6px; + cursor:nw-resize; + left:0; + top:0; + height:6px; + z-index:101; +} +.x-resizable-handle-northeast{ + width:6px; + cursor:ne-resize; + right:0; + top:0; + height:6px; + z-index:101; +} +.x-resizable-handle-southwest{ + width:6px; + cursor:sw-resize; + left:0; + bottom:0; + height:6px; + z-index:101; +} +.x-resizable-over .x-resizable-handle, .x-resizable-pinned .x-resizable-handle{ + filter:alpha(opacity=100); + opacity:1; +} +.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east{ + background:url(../images/default/sizer/e-handle.gif); + background-position: left; +} +.x-resizable-over .x-resizable-handle-west, .x-resizable-pinned .x-resizable-handle-west{ + background:url(../images/default/sizer/e-handle.gif); + background-position: left; +} +.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south{ + background:url(../images/default/sizer/s-handle.gif); + background-position: top; +} +.x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north{ + background:url(../images/default/sizer/s-handle.gif); + background-position: top; +} +.x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{ + background:url(../images/default/sizer/se-handle.gif); + background-position: top left; +} +.x-resizable-over .x-resizable-handle-northwest, .x-resizable-pinned .x-resizable-handle-northwest{ + background:url(../images/default/sizer/nw-handle.gif); + background-position:bottom right; +} +.x-resizable-over .x-resizable-handle-northeast, .x-resizable-pinned .x-resizable-handle-northeast{ + background:url(../images/default/sizer/ne-handle.gif); + background-position: bottom left; +} +.x-resizable-over .x-resizable-handle-southwest, .x-resizable-pinned .x-resizable-handle-southwest{ + background:url(../images/default/sizer/sw-handle.gif); + background-position: top right; +} +.x-resizable-proxy{ + border: 1px dashed #3b5a82; + position:absolute; + overflow:hidden; + display:none; + left:0;top:0; + z-index:50000; +} +.x-resizable-overlay{ + width:100%; + height:100%; + display:none; + position:absolute; + left:0; + top:0; + background:white; + z-index:200000; + -moz-opacity: 0; + opacity:0; + filter: alpha(opacity=0); +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/slider.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/slider.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,90 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +/* Shared styles */ +.x-slider { + zoom:1; +} +.x-slider-inner { + position:relative; + left:0; + top:0; + overflow:visible; + zoom:1; +} +.x-slider-focus { + position:absolute; + left:0; + top:0; + width:1px; + height:1px; + line-height:1px; + font-size:1px; + -moz-outline:0 none; + outline:0 none; + -moz-user-select: normal; + -khtml-user-select: normal; +} + +/* Horizontal styles */ +.x-slider-horz { + padding-left:7px; + background:transparent url(../images/default/slider/slider-bg.png) no-repeat 0 -22px; +} +.x-slider-horz .x-slider-end { + padding-right:7px; + zoom:1; + background:transparent url(../images/default/slider/slider-bg.png) no-repeat right -44px; +} +.x-slider-horz .x-slider-inner { + background:transparent url(../images/default/slider/slider-bg.png) repeat-x 0 0; + height:22px; +} +.x-slider-horz .x-slider-thumb { + width:14px; + height:15px; + position:absolute; + left:0; + top:3px; + background:transparent url(../images/default/slider/slider-thumb.png) no-repeat 0 0; +} +.x-slider-horz .x-slider-thumb-over { + background-position: -14px -15px; +} +.x-slider-horz .x-slider-thumb-drag { + background-position: -28px -30px; +} + +/* Vertical styles */ +.x-slider-vert { + padding-top:7px; + background:transparent url(../images/default/slider/slider-v-bg.png) no-repeat -44px 0; + width:22px; +} +.x-slider-vert .x-slider-end { + padding-bottom:7px; + zoom:1; + background:transparent url(../images/default/slider/slider-v-bg.png) no-repeat -22px bottom; +} +.x-slider-vert .x-slider-inner { + background:transparent url(../images/default/slider/slider-v-bg.png) repeat-y 0 0; +} +.x-slider-vert .x-slider-thumb { + width:15px; + height:14px; + position:absolute; + left:3px; + bottom:0; + background:transparent url(../images/default/slider/slider-v-thumb.png) no-repeat 0 0; +} +.x-slider-vert .x-slider-thumb-over { + background-position: -15px -14px; +} +.x-slider-vert .x-slider-thumb-drag { + background-position: -30px -28px; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/tabs.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/tabs.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,341 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-tab-panel { + overflow:hidden; +} +.x-tab-panel-header, .x-tab-panel-footer { + background: #deecfd; + border: 1px solid #8db2e3; + overflow:hidden; + zoom:1; +} + + +.x-tab-panel-header { + border: 1px solid #8db2e3; + padding-bottom: 2px; +} + +.x-tab-panel-footer { + border: 1px solid #8db2e3; + padding-top: 2px; +} + + +.x-tab-strip-wrap { + width:100%; + overflow:hidden; + position:relative; + zoom:1; +} +ul.x-tab-strip { + display:block; + width:5000px; + zoom:1; +} + +ul.x-tab-strip-top{ + padding-top: 1px; + background: url(../images/default/tabs/tab-strip-bg.gif) #cedff5 repeat-x bottom; + border-bottom: 1px solid #8db2e3; +} + +ul.x-tab-strip-bottom{ + padding-bottom: 1px; + background: url(../images/default/tabs/tab-strip-btm-bg.gif) #cedff5 repeat-x top; + border-top: 1px solid #8db2e3; + border-bottom: 0 none; +} + +.x-tab-panel-header-plain .x-tab-strip-top { + background:transparent !important; + padding-top:0 !important; +} +.x-tab-panel-header-plain { + background:transparent !important; + border-width:0 !important; + padding-bottom:0 !important; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border:1px solid #8db2e3; + border-top: 0 none; + height:2px; + background: #deecfd; + font-size:1px; + line-height:1px; +} + +.ext-border-box .x-tab-panel-header-plain .x-tab-strip-spacer { + height:3px; +} + + +ul.x-tab-strip li { + float:left; + margin-left:2px; +} + + +ul.x-tab-strip li.x-tab-edge { + float:left; + margin:0 !important; + padding:0 !important; + border:0 none !important; + font-size:1px !important; + line-height:1px !important; + overflow:hidden; + zoom:1; + background:transparent !important; + width:1px; +} + +.x-tab-strip a, .x-tab-strip span, .x-tab-strip em { + display:block; +} + +.x-tab-strip a { + text-decoration:none !important; + -moz-outline: none; + outline: none; + cursor:pointer; +} + +.x-tab-strip-inner { + overflow:hidden; + text-overflow: ellipsis; +} + +.x-tab-strip span.x-tab-strip-text { + font:normal 11px tahoma,arial,helvetica; + color:#416aa3; + white-space: nowrap; + cursor:pointer; + padding:4px 0; +} +.x-tab-strip .x-tab-with-icon .x-tab-right { + padding-left:6px; +} +.x-tab-strip .x-tab-with-icon span.x-tab-strip-text { + padding-left:20px; + background-position: 0 3px; + background-repeat: no-repeat; +} + +.x-tab-strip-over span.x-tab-strip-text { + color:#15428b; +} + +.x-tab-strip-active { + cursor:default; +} + +.x-tab-strip-active span.x-tab-strip-text { + cursor:default; + color:#15428b; + font-weight:bold; +} + +.x-tab-strip-disabled .x-tabs-text { + cursor:default; + color:#aaaaaa; +} + +.x-tab-panel-body { + overflow:hidden; +} +.x-tab-panel-bwrap { + overflow:hidden; +} +.ext-ie .x-tab-strip .x-tab-right { + position:relative; +} + +.x-tab-strip-top .x-tab-strip-active .x-tab-right { + margin-bottom:-1px; +} + +.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text { + padding-bottom:5px; +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + margin-top:-1px; +} +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text { + padding-top:5px; +} + + +.x-tab-strip-top .x-tab-right { + background: transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat 0 -51px; + padding-left:10px; +} + +.x-tab-strip-top .x-tab-left { + background: transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat right -351px; + padding-right:10px; +} + +.x-tab-strip-top .x-tab-strip-inner { + background: transparent url(../images/default/tabs/tabs-sprite.gif) repeat-x 0 -201px; +} + +.x-tab-strip-top .x-tab-strip-over .x-tab-right { + background-position:0 -101px; +} +.x-tab-strip-top .x-tab-strip-over .x-tab-left { + background-position:right -401px; +} +.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner { + background-position:0 -251px; +} + +.x-tab-strip-top .x-tab-strip-active .x-tab-right { + background-position: 0 0; +} + +.x-tab-strip-top .x-tab-strip-active .x-tab-left { + background-position: right -301px; +} + +.x-tab-strip-top .x-tab-strip-active .x-tab-strip-inner { + background-position: 0 -151px; +} + +.x-tab-strip-bottom .x-tab-right { + background: url(../images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right; +} + +.x-tab-strip-bottom .x-tab-left { + background: url(../images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left; +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background: url(../images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left; +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background: url(../images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right; +} +.x-tab-strip-bottom .x-tab-left { + padding:0 10px; +} +.x-tab-strip-bottom .x-tab-right { + padding:0; +} +.x-tab-strip .x-tab-strip-close { + display:none; +} +.x-tab-strip-closable { + position:relative; +} + +.x-tab-strip-closable .x-tab-left { + padding-right:19px; +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/default/tabs/tab-close.gif); + opacity:.6; + -moz-opacity:.6; + background-repeat:no-repeat; + display:block; + width:11px;height:11px; + position:absolute; + top:3px; + right:3px; + cursor:pointer; + z-index:2; +} + +.x-tab-strip .x-tab-strip-active a.x-tab-strip-close { + opacity:.8; + -moz-opacity:.8; +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/default/tabs/tab-close.gif); + opacity:1; + -moz-opacity:1; +} + +.x-tab-panel-body { + border: 1px solid #8db2e3; + background:#fff; +} +.x-tab-panel-body-top { + border-top: 0 none; +} +.x-tab-panel-body-bottom { + border-bottom: 0 none; +} + +.x-tab-scroller-left { + background: transparent url(../images/default/tabs/scroll-left.gif) no-repeat -18px 0; + border-bottom: 1px solid #8db2e3; + width:18px; + position:absolute; + left:0; + top:0; + z-index:10; + cursor:pointer; +} +.x-tab-scroller-left-over { + background-position: 0 0; +} +.x-tab-scroller-left-disabled { + background-position: -18px 0; + opacity:.5; + -moz-opacity:.5; + filter:alpha(opacity=50); + cursor:default; +} +.x-tab-scroller-right { + background: transparent url(../images/default/tabs/scroll-right.gif) no-repeat 0 0; + border-bottom: 1px solid #8db2e3; + width:18px; + position:absolute; + right:0; + top:0; + z-index:10; + cursor:pointer; +} +.x-tab-scroller-right-over { + background-position: -18px 0; +} +.x-tab-scroller-right-disabled { + background-position: 0 0; + opacity:.5; + -moz-opacity:.5; + filter:alpha(opacity=50); + cursor:default; +} + +.x-tab-scrolling .x-tab-strip-wrap { + margin-left:18px; + margin-right:18px; +} + +.x-tab-scrolling { + position:relative; +} + +.x-tab-panel-bbar .x-toolbar { + border:1px solid #99bbe8; + border-top:0 none; + overflow:hidden; + padding:2px; +} + +.x-tab-panel-tbar .x-toolbar { + border:1px solid #99bbe8; + border-top:0 none; + overflow:hidden; + padding:2px; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/toolbar.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/toolbar.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,183 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-toolbar{ + border-color:#a9bfd3; + border-style:solid; + border-width:0 0 1px 0; + display: block; + padding:2px; + background:#d0def0 url(../images/default/toolbar/bg.gif) repeat-x top left; + position:relative; + zoom:1; +} +.x-toolbar .x-item-disabled .x-btn-icon { + opacity: .35; + -moz-opacity: .35; + filter: alpha(opacity=35); +} +.x-toolbar td { + vertical-align:middle; +} +.mso .x-toolbar, .x-grid-mso .x-toolbar{ + border: 0 none; + background: url(../images/default/grid/mso-hd.gif); +} +.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{ + white-space: nowrap; + font:normal 11px tahoma, arial, helvetica, sans-serif; +} +.x-toolbar .x-item-disabled { + color:gray; + cursor:default; + opacity:.6; + -moz-opacity:.6; + filter:alpha(opacity=60); +} +.x-toolbar .x-item-disabled * { + color:gray; + cursor:default; +} +.x-toolbar .x-btn-left{ + background:none; +} +.x-toolbar .x-btn-right{ + background:none; +} +.x-toolbar .x-btn-center{ + background:none; + padding:0 0; +} +.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{ + padding-right:2px; +} +.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{ + padding-right:0; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{ + padding:0 2px; +} + +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + width:12px; + background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px; +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + width:12px; + background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px; +} +.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button { + background-position: 0 -47px; +} +.x-toolbar .x-btn-over .x-btn-left{ + background: url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0; +} +.x-toolbar .x-btn-over .x-btn-right{ + background: url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px; +} +.x-toolbar .x-btn-over .x-btn-center{ + background: url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px; +} + +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background: url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px; +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background: url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px; +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background: url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px; +} + +.x-toolbar .x-btn-with-menu .x-btn-center em{ + padding-right:8px; +} + +.x-toolbar .ytb-text{ + padding:2px; +} +.x-toolbar .ytb-sep { + background-image: url(../images/default/grid/grid-blue-split.gif); + background-position: center; + background-repeat: no-repeat; + display: block; + font-size: 1px; + height: 16px; + width:4px; + overflow: hidden; + cursor:default; + margin: 0 2px 0; + border:0; +} +.x-toolbar .ytb-spacer { + width:2px; +} + +/* Paging Toolbar */ + +.x-tbar-page-number{ + width:24px; + height:14px; +} +.x-tbar-page-first{ + background-image: url(../images/default/grid/page-first.gif) !important; +} +.x-tbar-loading{ + background-image: url(../images/default/grid/done.gif) !important; +} +.x-tbar-page-last{ + background-image: url(../images/default/grid/page-last.gif) !important; +} +.x-tbar-page-next{ + background-image: url(../images/default/grid/page-next.gif) !important; +} +.x-tbar-page-prev{ + background-image: url(../images/default/grid/page-prev.gif) !important; +} +.x-item-disabled .x-tbar-loading{ + background-image: url(../images/default/grid/loading.gif) !important; +} +.x-item-disabled .x-tbar-page-first{ + background-image: url(../images/default/grid/page-first-disabled.gif) !important; +} +.x-item-disabled .x-tbar-page-last{ + background-image: url(../images/default/grid/page-last-disabled.gif) !important; +} +.x-item-disabled .x-tbar-page-next{ + background-image: url(../images/default/grid/page-next-disabled.gif) !important; +} +.x-item-disabled .x-tbar-page-prev{ + background-image: url(../images/default/grid/page-prev-disabled.gif) !important; +} +.x-paging-info { + position:absolute; + top:5px; + right: 8px; + color:#444; +} + +/* StatusBar */ + +.x-statusbar .x-status-text { + height: 21px; + line-height: 21px; + padding: 0 4px; + cursor: default; +} +.x-statusbar .x-status-busy { + padding-left: 25px; + background: transparent url(../images/default/grid/loading.gif) no-repeat 3px 3px; +} +.x-statusbar .x-status-text-panel { + border-top: 1px solid #99BBE8; + border-right: 1px solid #fff; + border-bottom: 1px solid #fff; + border-left: 1px solid #99BBE8; + padding: 2px 8px 2px 5px; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/tree.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/tree.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,254 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-tree .x-panel-body{ + background-color:#fff; +} +.ext-strict .ext-ie .x-tree .x-panel-bwrap{ + position:relative; + overflow:hidden; +} +.x-tree-icon, .x-tree-ec-icon, .x-tree-elbow-line, .x-tree-elbow, .x-tree-elbow-end, .x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{ + border: 0 none; + height: 18px; + margin: 0; + padding: 0; + vertical-align: top; + width: 16px; + background-repeat: no-repeat; +} +.x-tree-node-collapsed .x-tree-node-icon, .x-tree-node-expanded .x-tree-node-icon, .x-tree-node-leaf .x-tree-node-icon{ + border: 0 none; + height: 18px; + margin: 0; + padding: 0; + vertical-align: top; + width: 16px; + background-position:center; + background-repeat: no-repeat; +} +.ext-ie .x-tree-node-indent img, .ext-ie .x-tree-node-icon, .ext-ie .x-tree-ec-icon { + vertical-align:middle !important; +} +/* some default icons for leaf/folder */ +.x-tree-node-expanded .x-tree-node-icon{ + background-image:url(../images/default/tree/folder-open.gif); +} +.x-tree-node-leaf .x-tree-node-icon{ + background-image:url(../images/default/tree/leaf.gif); +} +.x-tree-node-collapsed .x-tree-node-icon{ + background-image:url(../images/default/tree/folder.gif); +} +/* checkboxes */ +.ext-ie input.x-tree-node-cb { + width:15px; + height:15px; +} +input.x-tree-node-cb { + margin-left:1px; +} +.ext-ie input.x-tree-node-cb { + margin-left:0; +} + +.x-tree-noicon .x-tree-node-icon{ + width:0; height:0; +} +/* loading icon */ +.x-tree-node-loading .x-tree-node-icon{ + background-image:url(../images/default/tree/loading.gif) !important; +} +.x-tree-node-loading a span{ + font-style: italic; + color:#444444; +} +.ext-ie .x-tree-node-el input { + width:15px; + height:15px; +} +/* Line styles */ +.x-tree-lines .x-tree-elbow{ + background-image:url(../images/default/tree/elbow.gif); +} +.x-tree-lines .x-tree-elbow-plus{ + background-image:url(../images/default/tree/elbow-plus.gif); +} +.x-tree-lines .x-tree-elbow-minus{ + background-image:url(../images/default/tree/elbow-minus.gif); +} +.x-tree-lines .x-tree-elbow-end{ + background-image:url(../images/default/tree/elbow-end.gif); +} +.x-tree-lines .x-tree-elbow-end-plus{ + background-image:url(../images/default/tree/elbow-end-plus.gif); +} +.x-tree-lines .x-tree-elbow-end-minus{ + background-image:url(../images/default/tree/elbow-end-minus.gif); +} +.x-tree-lines .x-tree-elbow-line{ + background-image:url(../images/default/tree/elbow-line.gif); +} + +/* No line styles */ +.x-tree-no-lines .x-tree-elbow{ + background:transparent; +} +.x-tree-no-lines .x-tree-elbow-plus{ + background-image:url(../images/default/tree/elbow-plus-nl.gif); +} +.x-tree-no-lines .x-tree-elbow-minus{ + background-image:url(../images/default/tree/elbow-minus-nl.gif); +} +.x-tree-no-lines .x-tree-elbow-end{ + background:transparent; +} +.x-tree-no-lines .x-tree-elbow-end-plus{ + background-image:url(../images/default/tree/elbow-end-plus-nl.gif); +} +.x-tree-no-lines .x-tree-elbow-end-minus{ + background-image:url(../images/default/tree/elbow-end-minus-nl.gif); +} +.x-tree-no-lines .x-tree-elbow-line{ + background:transparent; +} + + +/* Arrows */ +.x-tree-arrows .x-tree-elbow{ + background:transparent; +} +.x-tree-arrows .x-tree-elbow-plus{ + background:transparent url(../images/default/tree/arrows.gif) no-repeat 0 0; +} +.x-tree-arrows .x-tree-elbow-minus{ + background:transparent url(../images/default/tree/arrows.gif) no-repeat -16px 0; +} +.x-tree-arrows .x-tree-elbow-end{ + background:transparent; +} +.x-tree-arrows .x-tree-elbow-end-plus{ + background:transparent url(../images/default/tree/arrows.gif) no-repeat 0 0; +} +.x-tree-arrows .x-tree-elbow-end-minus{ + background:transparent url(../images/default/tree/arrows.gif) no-repeat -16px 0; +} +.x-tree-arrows .x-tree-elbow-line{ + background:transparent; +} + +.x-tree-arrows .x-tree-ec-over .x-tree-elbow-plus{ + background-position:-32px 0; +} +.x-tree-arrows .x-tree-ec-over .x-tree-elbow-minus{ + background-position:-48px 0; +} +.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-plus{ + background-position:-32px 0; +} +.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-minus{ + background-position:-48px 0; +} + + + +.x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{ + cursor:pointer; +} +.ext-ie ul.x-tree-node-ct{ + font-size:0; + line-height:0; + zoom:1; +} +.x-tree-node{ + color: black; + font: normal 11px arial, tahoma, helvetica, sans-serif; + white-space: nowrap; +} + +.x-tree-node-el { + line-height:18px; + cursor:pointer; +} + +.x-tree-node a, .x-dd-drag-ghost a{ + text-decoration:none; + color:black; + -khtml-user-select:none; + -moz-user-select:none; + -kthml-user-focus:normal; + -moz-user-focus:normal; + -moz-outline: 0 none; + outline:0 none; +} +.x-tree-node a span, .x-dd-drag-ghost a span{ + text-decoration:none; + color:black; + padding:1px 3px 1px 2px; +} +.x-tree-node .x-tree-node-disabled a span{ + color:gray !important; +} +.x-tree-node .x-tree-node-disabled .x-tree-node-icon{ + -moz-opacity: 0.5; + opacity:.5; + filter: alpha(opacity=50); +} +.x-tree-node .x-tree-node-inline-icon{ + background:transparent; +} +.x-tree-node a:hover, .x-dd-drag-ghost a:hover{ + text-decoration:none; +} +.x-tree-node div.x-tree-drag-insert-below{ + border-bottom:1px dotted #3366cc; +} +.x-tree-node div.x-tree-drag-insert-above{ + border-top:1px dotted #3366cc; +} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{ + border-bottom:0 none; +} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{ + border-top:0 none; +} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{ + border-bottom:2px solid #3366cc; +} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{ + border-top:2px solid #3366cc; +} +.x-tree-node .x-tree-drag-append a span{ + background:#dddddd; + border:1px dotted gray; +} +.x-tree-node .x-tree-node-over { + background-color: #eee; +} +.x-tree-node .x-tree-selected { + background-color: #d9e8fb; +} +.x-dd-drag-ghost .x-tree-node-indent, .x-dd-drag-ghost .x-tree-ec-icon{ + display:none !important; +} +.x-tree-drop-ok-append .x-dd-drop-icon{ + background-image: url(../images/default/tree/drop-add.gif); +} +.x-tree-drop-ok-above .x-dd-drop-icon{ + background-image: url(../images/default/tree/drop-over.gif); +} +.x-tree-drop-ok-below .x-dd-drop-icon{ + background-image: url(../images/default/tree/drop-under.gif); +} +.x-tree-drop-ok-between .x-dd-drop-icon{ + background-image: url(../images/default/tree/drop-between.gif); +} +/* Fix for ie rootVisible:false issue */ +.x-tree-root-ct { + zoom:1; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/window.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/window.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,207 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-window { + zoom:1; +} +.x-window .x-resizable-handle { + opacity:0; + -moz-opacity:0; + filter:alpha(opacity=0); +} + +.x-window-proxy { + background:#C7DFFC; + border:1px solid #99bbe8; + z-index:12000; + overflow:hidden; + position:absolute; + left:0;top:0; + display:none; + opacity:.5; + -moz-opacity:.5; + filter:alpha(opacity=50); +} + +.x-window-header { + overflow:hidden; + zoom:1; +} +.x-window-bwrap { + z-index:1; + position:relative; + zoom:1; +} +.x-window-tl .x-window-header { + color:#15428b; + font:bold 11px tahoma,arial,verdana,sans-serif; + padding:5px 0 4px 0; +} +.x-window-header-text { + cursor:pointer; +} +.x-window-tc { + background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 0; + overflow:hidden; + zoom:1; +} +.x-window-tl { + background: transparent url(../images/default/window/left-corners.png) no-repeat 0 0; + padding-left:6px; + zoom:1; + z-index:1; + position:relative; +} +.x-window-tr { + background: transparent url(../images/default/window/right-corners.png) no-repeat right 0; + padding-right:6px; +} +.x-window-bc { + background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 bottom; + zoom:1; +} +.x-window-bc .x-window-footer { + padding-bottom:6px; + zoom:1; + font-size:0; + line-height:0; +} +.x-window-bl { + background: transparent url(../images/default/window/left-corners.png) no-repeat 0 bottom; + padding-left:6px; + zoom:1; +} +.x-window-br { + background: transparent url(../images/default/window/right-corners.png) no-repeat right bottom; + padding-right:6px; + zoom:1; +} +.x-window-mc { + border:1px solid #99bbe8; + padding:0; + margin:0; + font: normal 11px tahoma,arial,helvetica,sans-serif; + background:#dfe8f6; +} + + +.x-window-ml { + background: transparent url(../images/default/window/left-right.png) repeat-y 0 0; + padding-left:6px; + zoom:1; +} +.x-window-mr { + background: transparent url(../images/default/window/left-right.png) repeat-y right 0; + padding-right:6px; + zoom:1; +} +.x-window-body { + overflow:hidden; +} +.x-window-bwrap { + overflow:hidden; +} +.x-window-maximized .x-window-bl, .x-window-maximized .x-window-br, + .x-window-maximized .x-window-ml, .x-window-maximized .x-window-mr, + .x-window-maximized .x-window-tl, .x-window-maximized .x-window-tr { + padding:0; +} +.x-window-maximized .x-window-footer { + padding-bottom:0; +} +.x-window-maximized .x-window-tc { + padding-left:3px; + padding-right:3px; + background-color:white; +} +.x-window-maximized .x-window-mc { + border-left:0 none; + border-right:0 none; +} +.x-window-tbar .x-toolbar, .x-window-bbar .x-toolbar { + border-left:0 none; + border-right: 0 none; +} +.x-window-bbar .x-toolbar { + border-top:1px solid #99bbe8; + border-bottom:0 none; +} +.x-window-draggable, .x-window-draggable .x-window-header-text { + cursor:move; +} +.x-window-maximized .x-window-draggable, .x-window-maximized .x-window-draggable .x-window-header-text { + cursor:default; +} +.x-window-body { + background:transparent; +} +.x-panel-ghost .x-window-tl { + border-bottom:1px solid #99bbe8; +} +.x-panel-collapsed .x-window-tl { + border-bottom:1px solid #84a0c4; +} +.x-window-maximized-ct { + overflow:hidden; +} +.x-window-maximized .x-resizable-handle { + display:none; +} +.x-window-sizing-ghost ul { + border:0 none !important; +} + + +.x-dlg-focus{ + -moz-outline:0 none; + outline:0 none; + width:0; + height:0; + overflow:hidden; + position:absolute; + top:0; + left:0; +} +.x-dlg-mask{ + z-index:10000; + display:none; + position:absolute; + top:0; + left:0; + -moz-opacity: 0.5; + opacity:.50; + filter: alpha(opacity=50); + background-color:#CCC; +} + +body.ext-ie6.x-body-masked select { + visibility:hidden; +} +body.ext-ie6.x-body-masked .x-window select { + visibility:visible; +} + +.x-window-plain .x-window-mc { + background: #CAD9EC; + border-right:1px solid #DFE8F6; + border-bottom:1px solid #DFE8F6; + border-top:1px solid #a3bae9; + border-left:1px solid #a3bae9; +} + +.x-window-plain .x-window-body { + border-left:1px solid #DFE8F6; + border-top:1px solid #DFE8F6; + border-bottom:1px solid #a3bae9; + border-right:1px solid #a3bae9; + background:transparent !important; +} + +body.x-body-masked .x-window-plain .x-window-mc { + background: #C7D6E9; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-black.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-black.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,633 @@ +/* + * Ext JS Library 2.0 Alpha 1 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * @license LGPL + * @author Kemal Tunador + */ + +.x-panel { + border-style: solid; + border-color: #000000; +} +.x-panel-header { + color:#f0eeef; + border:1px solid #000000; + background-image:url(../images/black/panel/white-top-bottom.gif); +} + +.x-panel-body { + border-color:#000000; +} + +.x-panel-bbar .x-toolbar { + border-color:#000000; +} + +.x-panel-tbar .x-toolbar { + border-color:#000000; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#000000; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#000000; +} +.x-panel-tl .x-panel-header { + color:#f0eeef; +} +.x-panel-tc { + background-image:url(../images/black/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/black/panel/corners-sprite.gif); + border-color:#000000; +} +.x-panel-tr { + background-image:url(../images/black/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/black/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/black/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/black/panel/corners-sprite.gif); +} +.x-panel-mc { + background:#363636; + color:#eeeeee; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/black/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/black/panel/left-right.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#363636; +} + +.x-panel-ghost ul { + border-color:#000000; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #000000; +} + +/* Grid */ +.x-grid3-row { + color:#000000; +} +.x-grid3-row-over { + border:1px solid #292929; + background-image:url(../images/black/grid/row-over.gif); +} +.x-grid3-header{ + background-image:url(../images/black/grid/grid3-hrow.gif); +} +.x-grid3-header-pop-inner { + border-left:1px solid #000000; + background-image:url(../images/black/grid/hd-pop.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #000000; + border-right:1px solid #000000; +} +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background-image:url(../images/black/grid/grid3-hrow-over.gif); + background-color:#595959; +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background-image:url(../images/black/grid/grid3-hrow-over.gif); +} +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ + background-image:url(../images/black/grid/grid-hrow.gif); + color:#666666; + border-top:1px solid white; + border-right:1px solid #000000 !important; +} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ + background-image:url(../images/black/grid/grid3-special-col-bg.gif); + color:#eeeeee !important; +} +.x-grid3-hd-btn { + background-image:url(../images/black/grid/grid3-hd-btn.gif); +} +.x-grid3-body .x-grid3-td-expander { + background-image:url(../images/black/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-checker { + background-image:url(../images/black/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-numberer { + background-image:url(../images/black/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background-image:url(../images/black/grid/grid3-special-col-sel-bg.gif); +} +.x-grid3-hd-row td { + border-left:1px solid #888888; + border-right:1px solid #666666; +} +.x-grid3-row-selected { + background: #f0eeef; + border:1px dotted #999999; +} +.xg-hmenu-sort-asc .x-menu-item-icon{ + background-image: url(../images/black/grid/hmenu-asc.gif); +} +.xg-hmenu-sort-desc .x-menu-item-icon{ + background-image: url(../images/black/grid/hmenu-desc.gif); +} + +/* Menu */ + +.x-menu { + border: 1px solid #000000; + background-color:#393939; + background-image:url(../images/black/menu/menu.gif); +} +.x-menu-sep { + background-color:#4d4d4d; + border-bottom:1px solid #272727; +} +.x-menu-plain { + background:#393939 !important; +} +.x-menu-item-active { + background-image:url(../images/black/menu/item-over.gif); + background-color:#3f3f3f; + border:1px solid #222222; +} +.x-menu a.x-menu-item { + color:#eeeeee; +} +.x-menu-item-active a.x-menu-item { + color: #ffffff; +} + +/* Tools */ +.x-tool { + background-image:url(../images/black/panel/tool-sprites.gif); +} + +/* Buttons */ + +.x-btn-text{ +color: #f0eeef; +font-weight:bold !important; +} +.x-btn-left{ + background-image:url(../images/black/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/black/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/black/button/btn-sprite.gif); +} +.x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/black/button/btn-arrow.gif); +} +.x-btn-with-menu .x-btn-center em { + background-image:url(../images/black/toolbar/btn-arrow.gif); +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background-image:url(../images/black/toolbar/btn-arrow-light.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#f3f3f3; /* f1f2f4 */ +} + +.x-accordion-hd { + background-image:url(../images/black/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#222222; + border-color:#000000; +} +.x-layout-collapsed-over{ + background-color:#444444; +} + + +/* qtips */ +.x-tip .x-tip-close{ + background-image: url(../images/black/qtip/close.gif); +} +.x-tip .x-tip-tc { + background-image:url(../images/black/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tl { + background-image:url(../images/black/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tr { + background-image:url(../images/black/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bc { + background-image:url(../images/black/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bl { + background-image:url(../images/black/qtip/tip-sprite.gif); +} +.x-tip .x-tip-br { + background-image:url(../images/black/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ml { + background-image:url(../images/black/qtip/tip-sprite.gif); +} +.x-tip .x-tip-mr { + background-image:url(../images/black/qtip/tip-sprite.gif); +} +.x-tip .x-tip-header-text { + color:#ffffff; +} +.x-tip .x-tip-body { + color:#eeeeee; +} +/* Toolbars */ + +.x-toolbar{ + border-color:#444444; + background:#282828 url(../images/black/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#f0eeef; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/black/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/black/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/black/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/black/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/black/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#ffffff; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/black/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/black/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/black/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/black/grid/grid-split.gif); +} +.x-paging-info { + color:#f0eeef; +} + +/* Form */ + +.x-form-field-wrap .x-form-trigger{ + background-image:url(../images/black/form/trigger.gif); + border-bottom: 1px solid #a3a3a3; +} +.x-form-field-wrap .x-form-date-trigger{ + background-image: url(../images/black/form/date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger{ + background-image: url(../images/black/form/clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger{ + background-image: url(../images/black/form/search-trigger.gif); +} + +.x-form-text, textarea.x-form-field{ + border: 1px solid #a3a3a3; +} +.x-form-select-one { + border: 1px solid #a3a3a3; +} +.x-item-disabled .x-form-trigger-over{ + border-bottom: 1px solid #a3a3a3; +} +.x-item-disabled .x-form-trigger-click{ + border-bottom: 1px solid #a3a3a3; +} +.x-form fieldset { + border:1px solid #a3a3a3; +} +.x-trigger-wrap-focus .x-form-trigger{ + border-bottom: 1px solid #0e0e0e; +} +.x-form-focus, textarea.x-form-focus{ + border: 1px solid #0e0e0e; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #363636; + border-color:#000000; +} + + +.x-tab-panel-header { + border-color:#000000; +} + +.x-tab-panel-footer { + border-color:#000000; +} + +ul.x-tab-strip-top{ + background:#353535 url(../images/black/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#000000; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/black/tabs/tab-strip-btm-bg.gif); + border-color:#000000; +} + +.x-tab-strip span.x-tab-strip-text { + color:#cccccc; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#ffffff; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#f0eeef; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/black/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/black/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/black/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/black/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/black/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/black/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/black/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/black/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/black/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#000000; + background:#eeeeee; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #000000; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #000000; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#000000; + background: #353535; +} + +.x-tab-scroller-left { + background-image: url(../images/black/tabs/scroll-left.gif); + border-color:#000000; +} +.x-tab-scroller-right { + background-image: url(../images/black/tabs/scroll-right.gif); + border-color:#000000; +} + +/* Window */ + +.x-window-proxy { + background:#363636; + border-color:#000000; +} + +.x-window-tl .x-window-header { + color:#f0eeef; +} +.x-window-tc { + background-image:url(../images/black/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/black/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/black/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/black/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/black/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/black/window/right-corners.png); +} +.x-window-mc { + border:1px solid #333333; + background:#454545; + color: #eeeeee; +} + +.x-window-ml { + background-image:url(../images/black/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/black/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#000000; +} +.x-panel-collapsed .x-window-tl { + border-color:#000000; +} + +.x-window-plain .x-window-mc { + color: #eeeeee; + background: #222222; + border-left:1px solid #111111; + border-top:1px solid #111111; + border-bottom:1px solid #222222; + border-right:1px solid #222222; +} + +.x-window-plain .x-window-body { + border-left:1px solid #555555; + border-top:1px solid #555555; + border-bottom:1px solid #333333; + border-right:1px solid #333333; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + color: #eeeeee; + background-color: #1a1a1a; +} + +/* Date Picker */ +.x-date-picker { + border: 1px solid #000000; + background:#ffffff; +} +.x-date-middle,.x-date-left,.x-date-right { + background-image: url(../images/black/shared/hd-sprite.gif); +} +.x-date-middle .x-btn-with-menu .x-btn-center em { + background-image:url(../images/black/toolbar/btn-arrow-light.gif); +} +.x-date-right a { + background-image: url(../images/black/shared/right-btn.gif); +} +.x-date-left a{ + background-image: url(../images/black/shared/left-btn.gif); +} +.x-date-inner th { + background-image:url(../images/black/shared/glass-bg.gif); + border-bottom: 1px solid #000000; + color:#f0eeef; +} +.x-date-inner .x-date-selected a{ + background-image:url(../images/black/shared/glass-bg.gif); + border:1px solid #000000; + color:#f0eeef; +} +.x-date-bottom { + border-top: 1px solid #000000; + background-image:url(../images/black/shared/glass-bg.gif); +} +.x-date-mp-btns { + background-image:url(../images/black/shared/glass-bg.gif); +} +td.x-date-mp-sel a { + background-image:url(../images/black/shared/glass-bg.gif); + border:1px solid #000000; + color: #f0eeef !important; +} +.x-date-mp-ybtn a { + background-image:url(../images/black/panel/tool-sprites.gif); +} +.x-date-mp-btns button { + background-image:url(../images/black/shared/glass-bg.gif); + border-color: #eeeeee #bbbbbb #bbbbbb #eeeeee; + color: #f0eeef; +} +.x-date-inner a{ + color:#000000; +} +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ + color:#f0eeef; + background: #353535; +} +td.x-date-mp-month a,td.x-date-mp-year a { + color:#000000; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { + color:#f0eeef; + background: #353535; +} + +/* misc */ +.x-html-editor-wrap { + border-color:#000000; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #000000; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #000000; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #000000; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #000000; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #000000; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-chocolate.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-chocolate.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,623 @@ +/* + * Ext JS Library 2.0 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * @Theme: Chocolate + * @Created by Paul Baugher + */ +.x-panel { + border-style: solid; + border-color: #578746; +} +.x-panel-header { + color:#000000; + border:1px solid #578746; + background-image:url(../images/chocolate/panel/white-top-bottom.gif); +} +.x-panel-tl .x-panel-header { + color:#000000; +} +.x-panel-body { + border-color:#578746; +} + +.x-panel-bbar .x-toolbar { + border-color:#578746; +} + +.x-panel-tbar .x-toolbar { + border-color:#578746; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#578746; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#578746; +} +.x-panel-tc { + background-image:url(../images/chocolate/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/chocolate/panel/corners-sprite.gif); + border-color:#578746; +} +.x-panel-tr { + background-image:url(../images/chocolate/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/chocolate/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/chocolate/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/chocolate/panel/corners-sprite.gif); +} +.x-panel-mc { + background-color:#abcb9f; + color:#000000; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/chocolate/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/chocolate/panel/left-right.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#abcb9f; +} + +.x-panel-ghost ul { + border-color:#578746; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #578746; +} + +/* Grid */ +.x-grid3-row { + color:#000000; +} +.x-grid3-row-over { + border:1px solid #578746; + background-image:url(../images/chocolate/grid/row-over.gif); +} +.x-grid3-header{ + background-image:url(../images/chocolate/grid/grid3-hrow.gif); +} +.x-grid3-header-pop-inner { + border-left:1px solid #abcb9f; + background-image:url(../images/chocolate/grid/hd-pop.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #abcb9f; + border-right:1px solid #abcb9f; +} +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background-image:url(../images/chocolate/grid/grid3-hrow-over.gif); + background-color:#abcb9f; +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background-image:url(../images/chocolate/grid/grid3-hrow-over.gif); +} +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ + background-image:url(../images/chocolate/grid/grid-hrow.gif); + color:#666666; + border-top:1px solid #abcb9f; + border-right:1px solid #abcb9f !important; +} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ + background-image:url(../images/chocolate/grid/grid3-special-col-bg.gif); + color:#eeeeee !important; +} +.x-grid3-hd-btn { + background-image:url(../images/chocolate/grid/grid3-hd-btn.gif); +} +.x-grid3-body .x-grid3-td-expander { + background-image:url(../images/chocolate/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-checker { + background-image:url(../images/chocolate/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-numberer { + background-image:url(../images/chocolate/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background-image:url(../images/chocolate/grid/grid3-special-col-sel-bg.gif); +} +.x-grid3-hd-row td { + border-left:1px solid #abcb9f; + border-right:1px solid #abcb9f; +} +.x-grid3-row-selected { + background: #abcb9f; + border:1px dotted #578746; +} + +/* Menu */ + +.x-menu { + border: 1px solid #abcb9f; + background-color:#578746; + background-image:url(../images/chocolate/menu/menu.gif); +} +.x-menu-sep { + background-color:#578746; + border-bottom:1px solid #abcb9f; +} +.x-menu-plain { + background:#578746 !important; +} +.x-menu-item-active { + background-image:url(../images/chocolate/menu/item-over.gif); + background-color:#abcb9f; + border:1px solid #578746; +} +.x-menu a.x-menu-item { + color:#222222; +} +.x-menu-item-active a.x-menu-item { + color: #000000; +} + +/* Tools */ +.x-tool { + background-image:url(../images/chocolate/panel/tool-sprites.gif); +} + +/* Buttons */ + +.x-btn-text{ + color: #000000; + font-weight:bold !important; +} +.x-btn-left{ + background-image:url(../images/chocolate/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/chocolate/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/chocolate/button/btn-sprite.gif); +} +.x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/chocolate/button/btn-arrow.gif); +} +.x-btn-with-menu .x-btn-center em { + background-image:url(../images/chocolate/toolbar/btn-arrow.gif); +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background-image:url(../images/chocolate/toolbar/btn-arrow.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#abcb9f; /* f1f2f4 */ +} + +.x-accordion-hd { + background-image:url(../images/chocolate/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#abcb9f; + border-color:#578746; +} +.x-layout-collapsed-over{ + background-color:#abcb9f; +} + + +/* qtips */ +.x-tip .x-tip-close{ + background-image: url(../images/chocolate/qtip/close.gif); +} +.x-tip .x-tip-tc { + background-image:url(../images/chocolate/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tl { + background-image:url(../images/chocolate/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tr { + background-image:url(../images/chocolate/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bc { + background-image:url(../images/chocolate/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bl { + background-image:url(../images/chocolate/qtip/tip-sprite.gif); +} +.x-tip .x-tip-br { + background-image:url(../images/chocolate/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ml { + background-image:url(../images/chocolate/qtip/tip-sprite.gif); +} +.x-tip .x-tip-mr { + background-image:url(../images/chocolate/qtip/tip-sprite.gif); +} +.x-tip .x-tip-header-text { + color:#000000; +} +.x-tip .x-tip-body { + color:#111111; +} +/* Toolbars */ + +.x-toolbar{ + border-color:#578746; + background:#abcb9f url(../images/chocolate/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#222222; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/chocolate/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/chocolate/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/chocolate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/chocolate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/chocolate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#000000; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/chocolate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/chocolate/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/chocolate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/chocolate/grid/grid-split.gif); +} +.x-paging-info { + color:#000000; +} + +/* Form */ + +.x-form-field-wrap .x-form-trigger{ + background-image:url(../images/chocolate/form/trigger.gif); + border-bottom: 1px solid #578746; +} +.x-form-field-wrap .x-form-date-trigger{ + background-image: url(../images/chocolate/form/date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger{ + background-image: url(../images/chocolate/form/clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger{ + background-image: url(../images/chocolate/form/search-trigger.gif); +} + +.x-form-text, textarea.x-form-field{ + border: 1px solid #578746; +} +.x-form-select-one { + border: 1px solid #578746; +} +.x-item-disabled .x-form-trigger-over{ + border-bottom: 1px solid #578746; +} +.x-item-disabled .x-form-trigger-click{ + border-bottom: 1px solid #578746; +} +.x-form fieldset { + border:1px solid #578746; +} +.x-trigger-wrap-focus .x-form-trigger{ + border-bottom: 1px solid #578746; +} +.x-form-focus, textarea.x-form-focus{ + border: 1px solid #578746; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #abcb9f; + border-color:#578746; +} + + +.x-tab-panel-header { + border-color:#578746; +} + +.x-tab-panel-footer { + border-color:#578746; +} + +ul.x-tab-strip-top{ + background:#abcb9f url(../images/chocolate/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#578746; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/chocolate/tabs/tab-strip-btm-bg.gif); + border-color:#578746; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#000000; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#111111; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/chocolate/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/chocolate/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/chocolate/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/chocolate/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/chocolate/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/chocolate/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/chocolate/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/chocolate/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/chocolate/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#578746; + background:#abcb9f; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #578746; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #578746; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#578746; + background: #abcb9f; +} + +.x-tab-scroller-left { + background-image: url(../images/chocolate/tabs/scroll-left.gif); + border-color:#578746; +} +.x-tab-scroller-right { + background-image: url(../images/chocolate/tabs/scroll-right.gif); + border-color:#578746; +} + +/* Window */ + +.x-window-proxy { + background:#abcb9f; + border-color:#578746; +} + +.x-window-tl .x-window-header { + color:#000000; +} +.x-window-tc { + background-image:url(../images/chocolate/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/chocolate/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/chocolate/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/chocolate/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/chocolate/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/chocolate/window/right-corners.png); +} +.x-window-mc { + border:1px solid #578746; + background:#abcb9f; +} + +.x-window-ml { + background-image:url(../images/chocolate/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/chocolate/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#578746; +} +.x-panel-collapsed .x-window-tl { + border-color:#578746; +} + +.x-window-plain .x-window-mc { + color: #eeeeee; + background: #abcb9f; + border-left:1px solid #578746; + border-top:1px solid #578746; + border-bottom:1px solid #578746; + border-right:1px solid #578746; +} + +.x-window-plain .x-window-body { + border-left:1px solid #578746; + border-top:1px solid #578746; + border-bottom:1px solid #578746; + border-right:1px solid #578746; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #abcb9f; +} + +/* Date Picker */ +.x-date-picker { + border: 1px solid #578746; + background:#ffffff; +} +.x-date-middle,.x-date-left,.x-date-right { + background-image: url(../images/chocolate/shared/hd-sprite.gif); +} +.x-date-middle .x-btn-with-menu .x-btn-center em { + background-image:url(../images/chocolate/toolbar/btn-arrow-light.gif); +} +.x-date-right a { + background-image: url(../images/chocolate/shared/right-btn.gif); +} +.x-date-left a{ + background-image: url(../images/chocolate/shared/left-btn.gif); +} +.x-date-inner th { + background-image:url(../images/chocolate/shared/glass-bg.gif); + border-bottom: 1px solid #578746; + color:#000000; +} +.x-date-inner .x-date-selected a{ + background-image:url(../images/chocolate/shared/glass-bg.gif); + border:1px solid #578746; + color:#000000; +} +.x-date-bottom { + border-top: 1px solid #578746; + background-image:url(../images/chocolate/shared/glass-bg.gif); +} +.x-date-mp-btns { + background-image:url(../images/chocolate/shared/glass-bg.gif); +} +td.x-date-mp-sel a { + background-image:url(../images/chocolate/shared/glass-bg.gif); + border:1px solid #578746; + color: #000000 !important; +} +.x-date-mp-ybtn a { + background-image:url(../images/chocolate/panel/tool-sprites.gif); +} +.x-date-mp-btns button { + background-image:url(../images/chocolate/shared/glass-bg.gif); + border-color: #578746 #578746 #578746 #578746; + color: #000000; +} +.x-date-inner a{ + color:#000000; +} +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ + color:#f0eeef; + background: #578746; +} +td.x-date-mp-month a,td.x-date-mp-year a { + color:#000000; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { + color:#f0eeef; + background: #578746; +} + +/* misc */ +.x-html-editor-wrap { + border-color:#578746; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #578746; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #578746; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #578746; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #578746; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #578746; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-darkgray.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-darkgray.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,606 @@ +/* + * Ext JS Library 2.0 Alpha 1 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * @license LGPL + * @author Kemal Tunador + */ + +.x-panel { + border-style: solid; + border-color: #777777; +} +.x-panel-header { + color:#eeeeee; + border:1px solid #777777; + background-image:url(../images/darkgray/panel/white-top-bottom.gif); +} + +.x-panel-body { + border-color:#777777; +} + +.x-panel-bbar .x-toolbar { + border-color:#777777; +} + +.x-panel-tbar .x-toolbar { + border-color:#777777; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#777777; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#777777; +} +.x-panel-tl .x-panel-header { + color:#eeeeee; +} +.x-panel-tc { + background-image:url(../images/darkgray/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/darkgray/panel/corners-sprite.gif); + border-color:#777777; +} +.x-panel-tr { + background-image:url(../images/darkgray/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/darkgray/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/darkgray/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/darkgray/panel/corners-sprite.gif); +} +.x-panel-mc { + background:#888888; + color:#f9f9f9; /*ADDED*/ +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/darkgray/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/darkgray/panel/left-right.gif); +} + +/* Grid */ +.x-grid3-row { + color:#000000; +} +.x-grid3-row-over { + border:1px solid #dddddd; + background-image:url(../images/darkgray/grid/row-over.gif); +} +.x-grid3-header{ + background-image:url(../images/darkgray/grid/grid3-hrow.gif); +} +.x-grid3-header-pop-inner { + border-left:1px solid #eeeeee; + background-image:url(../images/darkgray/grid/hd-pop.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #906699; + border-right:1px solid #906699; + color: #000000; +} +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background-image:url(../images/darkgray/grid/grid3-hrow-over.gif); +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background-image:url(../images/darkgray/grid/grid3-hrow-over.gif); +} +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ + background-image:url(../images/darkgray/grid/grid-hrow.gif); + color:black; + border-top:1px solid white; + border-right:1px solid #df6fd8 !important; +} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ + background-image:url(../images/darkgray/grid/grid3-special-col-bg.gif); + color:black !important; +} +.x-grid3-hd-btn { + background-image:url(../images/darkgray/grid/grid3-hd-btn.gif); +} +.x-grid3-body .x-grid3-td-expander { + background-image:url(../images/darkgray/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-checker { + background-image:url(../images/darkgray/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-numberer { + background-image:url(../images/darkgray/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background-image:url(../images/darkgray/grid/grid3-special-col-sel-bg.gif); +} +.x-grid3-row-selected { + color: #eeeeee; + background: #585559; + border:1px dotted #111111; +} + +/* Menu */ +.x-menu { + border: 1px solid #333333; + background-image:url(../images/darkgray/menu/menu.gif); +} +.x-menu-sep { + background-color:#e6e6e6; + border-bottom:1px solid #bfbfbf; +} +.x-menu-item-active { + background-image:url(../images/darkgray/menu/item-over.gif); + border:1px solid #aaaaaa; +} + +/* Tools */ +.x-tool { + background-image:url(../images/darkgray/panel/tool-sprites.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#888888; +} + +.x-panel-ghost ul { + border-color:#555555; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #777777; +} + +/* Buttons */ + +.x-btn-text{ +color: #eeeeee; +} +.x-btn-left{ + background-image:url(../images/darkgray/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/darkgray/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/darkgray/button/btn-sprite.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#aeabaf; /* f1f2f4 */ +} + +.x-accordion-hd { + background-image:url(../images/darkgray/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#777777; + border-color:#555555; +} +.x-layout-collapsed-over{ + background-color:#888888; +} + + +/* qtips */ +.x-tip .x-tip-close{ + background-image: url(../images/darkgray/qtip/close.gif); +} +.x-tip .x-tip-tc { + background-image:url(../images/darkgray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tl { + background-image:url(../images/darkgray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tr { + background-image:url(../images/darkgray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bc { + background-image:url(../images/darkgray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bl { + background-image:url(../images/darkgray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-br { + background-image:url(../images/darkgray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ml { + background-image:url(../images/darkgray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-mr { + background-image:url(../images/darkgray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-header-text { + color:#eeeeee; +} +.x-tip .x-tip-body { + color:#eeeeee; +} +/* Toolbars */ + +.x-toolbar{ + border-color:#777777; + background:#9c9c9c url(../images/darkgray/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#e5e5e5; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/darkgray/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/darkgray/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/darkgray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/darkgray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/darkgray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#eeeeee; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/darkgray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/darkgray/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/darkgray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/darkgray/grid/grid-split.gif); +} +.x-paging-info { + color:#f9f9f9; +} + +/* Form */ + +.x-form-field-wrap .x-form-trigger{ + background-image:url(../images/darkgray/form/trigger.gif); + border-bottom: 1px solid #a5a5a5; +} +.x-form-field-wrap .x-form-date-trigger{ + background-image: url(../images/darkgray/form/date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger{ + background-image: url(../images/darkgray/form/clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger{ + background-image: url(../images/darkgray/form/search-trigger.gif); +} +.x-form-text, textarea.x-form-field{ + border: 1px solid #a5a5a5; +} +.x-form-select-one { + border: 1px solid #a5a5a5; +} +.x-item-disabled .x-form-trigger-over{ + border-bottom: 1px solid #a5a5a5; +} +.x-item-disabled .x-form-trigger-click{ + border-bottom: 1px solid #a5a5a5; +} +.x-form fieldset { + border:1px solid #a5a5a5; +} +.x-trigger-wrap-focus .x-form-trigger{ + border-bottom: 1px solid #929292; +} +.x-form-focus, textarea.x-form-focus{ + border: 1px solid #929292; +} +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #646464; + border-color:#777777; +} + + +.x-tab-panel-header { + border-color:#777777; +} + +.x-tab-panel-footer { + border-color:#777777; +} + +ul.x-tab-strip-top{ + background:#7a7a7a url(../images/darkgray/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#777777; + padding-top: 2px; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/darkgray/tabs/tab-strip-btm-bg.gif); + border-color:#777777; +} + +.x-tab-strip span.x-tab-strip-text { + color:#dddddd; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#000000; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#eeeeee; +} + +.x-tab-strip-disabled .x-tabs-text { + color:#888888; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/darkgray/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/darkgray/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/darkgray/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/darkgray/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/darkgray/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/darkgray/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/darkgray/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/darkgray/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/darkgray/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#777777; + background:#eeeeee; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #777777; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #777777; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#777777; + background: #e7e7e7; +} + +.x-tab-scroller-left { + background-image: url(../images/darkgray/tabs/scroll-left.gif); + border-color:#aeaeae; +} +.x-tab-scroller-right { + background-image: url(../images/darkgray/tabs/scroll-right.gif); + border-color:#aeaeae; +} + +/* Buttons */ + +.x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/darkgray/button/btn-arrow.gif); +} +.x-btn-with-menu .x-btn-center em { + background-image:url(../images/darkgray/toolbar/btn-arrow.gif); +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background-image:url(../images/darkgray/toolbar/btn-arrow-light.gif); +} + +/* Window */ + +.x-window-proxy { + background:#e0e0e0; + border-color:#b0b0b0; +} + +.x-window-tl .x-window-header { + color:#eeeeee; +} +.x-window-tc { + background-image:url(../images/darkgray/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/darkgray/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/darkgray/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/darkgray/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/darkgray/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/darkgray/window/right-corners.png); +} +.x-window-mc { + border:1px solid #555555; + background:#aaaaaa; +} + +.x-window-ml { + background-image:url(../images/darkgray/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/darkgray/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#555555; +} +.x-panel-collapsed .x-window-tl { + border-color:#555555; +} + +.x-window-plain .x-window-mc { + background: #999999; + border-right:1px solid #eeeeee; + border-bottom:1px solid #eeeeee; + border-top:1px solid #555555; + border-left:1px solid #555555; +} + +.x-window-plain .x-window-body { + border-left:1px solid #eeeeee; + border-top:1px solid #eeeeee; + border-bottom:1px solid #555555; + border-right:1px solid #555555; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #999999; +} + +/* Date Picker */ +.x-date-picker { + border: 1px solid #000000; + background:#eeeeee; +} +.x-date-middle,.x-date-left,.x-date-right { + background-image: url(../images/darkgray/shared/hd-sprite.gif); +} +.x-date-middle .x-btn-with-menu .x-btn-center em { + background-image:url(../images/darkgray/toolbar/btn-arrow-light.gif); +} +.x-date-right a { + background-image: url(../images/darkgray/shared/right-btn.gif); +} +.x-date-left a{ + background-image: url(../images/darkgray/shared/left-btn.gif); +} +.x-date-inner th { + background-image:url(../images/darkgray/shared/glass-bg.gif); + border-bottom: 1px solid #333333; + color:#f2eef0; +} +.x-date-inner .x-date-selected a{ + background-image:url(../images/darkgray/shared/glass-bg.gif); + border:1px solid #333333; + color:#f2eef0; +} +.x-date-bottom { + border-top: 1px solid #333333; + background-image:url(../images/darkgray/shared/glass-bg.gif); +} +.x-date-mp-btns { + background-image:url(../images/darkgray/shared/glass-bg.gif); +} +td.x-date-mp-sel a { + background-image:url(../images/darkgray/shared/glass-bg.gif); + border:1px solid #000000; + color: #f2eef0; +} +.x-date-mp-ybtn a { + background-image:url(../images/darkgray/panel/tool-sprites.gif); +} +.x-date-mp-btns button { + background-image:url(../images/darkgray/shared/glass-bg.gif); + border-color: #555555 #000000 #000000 #555555; +} +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ + color:#f2eef0; + background: #333333; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { + color:#f2eef0; + background: #333333; +} + +/* misc */ +.x-html-editor-wrap { + border-color:#d0d0d0; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #d0d0d0; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #d0d0d0; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #d0d0d0; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #d0d0d0; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #d0d0d0; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-gray-extend.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-gray-extend.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,104 @@ +/***************************************************************/ +/*galdaka extension for x-theme-gray | by Jose Alfonso Dacosta*/ +/**************************************************************/ + +/*FORM*/ +.x-form-field{font:normal 11px arial, verdana, tahoma, arial, helvetica, sans-serif;} +.x-form-field-wrap .x-form-trigger{background:transparent url(../images/gray-extend/form/trigger.gif) no-repeat 0 0;border-bottom:1px solid #B5B8C8;} +.x-form-field-wrap .x-form-date-trigger{background-image:url(../images/gray-extend/form/date-trigger.gif);cursor:pointer;} +.x-form-field-wrap .x-form-clear-trigger{background-image:url(../images/gray-extend/form/clear-trigger.gif);cursor:pointer;} +.x-form-field-wrap .x-form-search-trigger{background-image:url(../images/gray-extend/form/search-trigger.gif);cursor:pointer;} +.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;} +.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;} +.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;} +.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;} +.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;} +.x-item-disabled .x-form-trigger-over{background-position:0 0 !important;border-bottom: 1px solid red;} +.x-item-disabled .x-form-trigger-click{background-position:0 0 !important;border-bottom: 1px solid red;} +.x-form-focus{border: 1px solid #000000;} +.x-form-item {font:normal 11px arial, verdana, tahoma, arial, helvetica, sans-serif;color: #808594;} +.x-trigger-wrap-focus .x-form-trigger{border-bottom: 1px solid #b9b9b9;} + +/*SPECIAL LN*/ +.x-form fieldset {border:1px solid #dedede;} +.x-form fieldset legend {font: bold 11px arial, verdana, tahoma, helvetica, sans-serif;color: #606060;} + +/*BOX*/ +.x-box-blue .x-box-mc {background-color: #e7e7e7;} + +/*MASK*/ +.ext-el-mask-msg{border:1px solid #8f8f8f;background:#d7d7d7 url(../images/gray-extend/box/tb-gray.gif) repeat-x 0 -16px;} +.ext-el-mask-msg div {border:1px solid #ccc;font:bold 12px Arial, verdana, arial, tahoma, helvetica, sans-serif;} + +/*GRID*/ +td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;} +td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{background:#f2f2f2 url(../images/gray-extend/grid/grid3-hrow-over.gif) repeat-x left bottom;} +td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #ececec;border-right:1px solid #c8c8c8;} +.x-dd-drag-proxy .x-grid3-hd-inner{background:#f2f2f2 url(../images/gray-extend/grid/grid3-hrow-over.gif) repeat-x left bottom;border:1px solid #c8c8c8;} +.col-move-top{background:transparent url(../images/gray-extend/grid/col-move-top.gif) no-repeat left top;} +.col-move-bottom{background:transparent url(../images/gray-extend/grid/col-move-bottom.gif) no-repeat left top;} +.x-grid3-row-selected{background:#e8e8e8!important;border:1px dotted #b9b9b9;} +.x-grid3-cell-selected{background-color:#cdcdcd!important;color:black;} +.x-grid3-locked td.x-grid3-row-marker,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{background:#ebeadb url(../images/gray-extend/grid/grid-hrow.gif) repeat-x 0 bottom!important;border-right:1px solid #9c9c9c!important;} +.x-grid3-locked td.x-grid3-row-marker div,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{color:#434343!important;} +.x-grid3-bottombar .x-toolbar{border-top:1px solid #434343;} +.x-grid3-hd-btn{background:#d7d7d7 url(../images/gray-extend/grid/grid3-hd-btn.gif) no-repeat left center;} +.x-grid3-body .x-grid3-td-expander{background:transparent url(../images/gray-extend/grid/grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-numberer{background:transparent url(../images/gray-extend/grid/grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{background:transparent url(img/graygrid/grid3-special-col-sel-bg.gif) repeat-y right;} +.x-grid-group-hd div{color:#626262;} +.x-grid-group-hd{border-bottom:2px solid #d7d7d7} +.x-grid-group-hd div{background:color: #616161;font:bold 11px arial,helvetica,sans-serif;} +.sort-asc .x-grid3-sort-icon{background-image:url(../images/gray-extend/grid/sort_asc.gif);display:inline;} +.sort-desc .x-grid3-sort-icon{background-image:url(../images/gray-extend/grid/sort_desc.gif);display:inline;} + +/*VIEW*/ +.x-view-selector{background:#d8d8d8;} + +/*TREE*/ +.x-tree-node .x-tree-selected{background-color:#e6e6e6; border: 1px dotted #b9b9b9;} + +/*DATEPICKER*/ +.x-date-picker{border:1px solid #373737;} +.x-date-middle,.x-date-left,.x-date-right{background:url(../images/gray-extend/shared/hd-sprite.gif) repeat-x 0 -83px;} +.x-date-middle .x-btn-with-menu .x-btn-center em{background:transparent url(../images/gray-extend/toolbar/btn-arrow-light.gif) no-repeat right 0;} +.x-date-right a{background-image:url(../images/gray-extend/shared/right-btn.gif);} +.x-date-left a{background-image:url(../images/gray-extend/shared/left-btn.gif);} +.x-date-inner th{background:#eaeaea url(../images/gray-extend/shared/glass-bg.gif) repeat-x left top;border-bottom:1px solid #eaeaea;color:#6f6f6f} +.x-date-inner .x-date-selected a{background:#ebebeb url(../images/gray-extend/shared/glass-bg.gif) repeat-x left top;border:1px solid #afafaf;} +.x-date-bottom{border-top:1px solid #d5d5d5;background:#ebebeb url(../images/gray-extend/shared/glass-bg.gif) repeat-x left top;} +.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{background:#eaeaea;} +.x-date-mp-btns button{background:#767676;border-color:#545454 #000000 #000000 #545454;} +.x-date-mp-btns{background:#ebebeb url(../images/gray-extend/shared/glass-bg.gif) repeat-x left top;} +.x-date-mp-btns td{border-top:1px solid #d0d0d0;} +td.x-date-mp-month a,td.x-date-mp-year a{color:#606060;} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{color:#606060;background:#eaeaea;} +td.x-date-mp-sel a{padding:1px 3px;background:#dfecfb url(../images/gray-extend/shared/glass-bg.gif) repeat-x left top;border:1px solid #afafaf;} +.x-date-mp-ybtn a{background:transparent url(../images/gray-extend/panel/tool-sprites.gif) no-repeat;} +td.x-date-mp-sep{border-right:1px solid #d0d0d0;} + +/*MENU*/ +.x-menu{border:1px solid #898989;} +.x-menu-item-arrow{background:transparent url(../images/gray-extend/menu/menu-parent.gif) no-repeat right;} +.x-menu-item-active{background:#ebf3fd url(../images/gray-extend/menu/item-over.gif) repeat-x left bottom;border:1px solid #c8c8c8;} +.x-menu-item-active a.x-menu-item{color:#5a5a5a;} +.x-menu .x-date-picker{border:1px solid #b8b8b8;} +.x-cycle-menu .x-menu-item-checked{border:1px dotted #b8b8b8!important;background:#e7e7e7;} + +/*COMBO*/ +.x-combo-list{border:1px solid #bcbcbc;background:#ddecfe;zoom:1;} +.x-combo-list-hd{font:bold 11px arial,helvetica,sans-serif;color:#15428b;background-image:url(../images/gray-extend/layout/panel-title-light-bg.gif);border-bottom:1px solid #bcbcbc;padding:3px;} +.x-resizable-pinned .x-combo-list-inner{border-bottom:1px solid #bcbcbc;} +.x-combo-list-item{font:normal 11px arial,helvetica,sans-serif;} +.x-combo-list .x-combo-selected{border:1px dotted #b9b9b9!important;background:#e7e7e7;cursor:pointer;} +.x-combo-list .x-toolbar{border-top:1px solid #98c0f4;} +.x-combo-list-small .x-combo-list-item{font:normal 11px arial,helvetica,sans-serif;} + +/*BUTTONS*/ +.x-btn-with-menu .x-btn-center em{background:transparent url(../images/gray-extend/toolbar/btn-arrow.gif) no-repeat right 0;} + +/*TOOLBAR*/ +.x-tbar-page-first{background-image:url(../images/gray-extend/grid/page-first.gif)!important;} +.x-tbar-page-last{background-image:url(../images/gray-extend/grid/page-last.gif)!important;} +.x-tbar-page-next{background-image:url(../images/gray-extend/grid/page-next.gif)!important;} +.x-tbar-page-prev{background-image:url(../images/gray-extend/grid/page-prev.gif)!important;} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-gray.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-gray.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,415 @@ +/* + * Ext JS Library 2.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-panel { + border-style: solid; + border-color: #d0d0d0; +} +.x-panel-header { + color:#333; + border:1px solid #d0d0d0; + background-image:url(../images/gray/panel/white-top-bottom.gif); +} + +.x-panel-body { + border-color:#d0d0d0; +} + +.x-panel-bbar .x-toolbar { + border-color:#d0d0d0; +} + +.x-panel-tbar .x-toolbar { + border-color:#d0d0d0; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#d0d0d0; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#d0d0d0; +} +.x-panel-tl .x-panel-header { + color:#333; +} +.x-panel-tc { + background-image:url(../images/gray/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/gray/panel/corners-sprite.gif); + border-color:#d0d0d0; +} +.x-panel-tr { + background-image:url(../images/gray/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/gray/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/gray/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/gray/panel/corners-sprite.gif); +} +.x-panel-mc { + background:#f1f1f1; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/gray/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/gray/panel/left-right.gif); +} + +/* Tools */ +.x-tool { + background-image:url(../images/gray/panel/tool-sprites.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#e0e0e0; +} + +.x-panel-ghost ul { + border-color:#b0b0b0; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #d0d0d0; +} + +/* Buttons */ + +.x-btn-left{ + background-image:url(../images/gray/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/gray/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/gray/button/btn-sprite.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#f0f0f0; +} + +.x-accordion-hd { + background-image:url(../images/gray/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#eee; + border-color:#e0e0e0; +} +.x-layout-collapsed-over{ + background-color:#fbfbfb; +} + + +/* qtips */ +.x-tip .x-tip-top { + background-image:url(../images/gray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-top-left { + background-image:url(../images/gray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-top-right { + background-image:url(../images/gray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ft { + background-image:url(../images/gray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ft-left { + background-image:url(../images/gray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ft-right { + background-image:url(../images/gray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bd-left { + background-image:url(../images/gray/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bd-right { + background-image:url(../images/gray/qtip/tip-sprite.gif); +} + +/* Toolbars */ + +.x-toolbar{ + border-color:#d0d0d0; + background:#f0f4f5 url(../images/gray/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#444; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/gray/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/gray/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#111; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/default/grid/grid-split.gif); +} + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #EAEAEA; + border-color:#d0d0d0; +} + + +.x-tab-panel-header { + border-color:#d0d0d0; +} + +.x-tab-panel-footer { + border-color:#d0d0d0; +} + +ul.x-tab-strip-top{ + background:#dbdbdb url(../images/gray/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#d0d0d0; + padding-top: 2px; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/gray/tabs/tab-strip-btm-bg.gif); + border-color:#d0d0d0; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#111; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#333; +} + +.x-tab-strip-disabled .x-tabs-text { + color:#aaaaaa; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/gray/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/gray/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/gray/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/gray/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/gray/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/gray/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/gray/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/gray/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/gray/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#d0d0d0; + background:#fff; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #d0d0d0; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #d0d0d0; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#d0d0d0; + background: #eaeaea; +} + +.x-tab-scroller-left { + background-image: url(../images/gray/tabs/scroll-left.gif); + border-color:#aeaeae; +} +.x-tab-scroller-right { + background-image: url(../images/gray/tabs/scroll-right.gif); + border-color:#aeaeae; +} + +/* Window */ + +.x-window-proxy { + background:#e0e0e0; + border-color:#b0b0b0; +} + +.x-window-tl .x-window-header { + color:#555; +} +.x-window-tc { + background-image:url(../images/gray/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/gray/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/gray/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/gray/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/gray/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/gray/window/right-corners.png); +} +.x-window-mc { + border:1px solid #d0d0d0; + background:#e8e8e8; +} + +.x-window-ml { + background-image:url(../images/gray/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/gray/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#d0d0d0; +} +.x-panel-collapsed .x-window-tl { + border-color:#d0d0d0; +} + +.x-window-plain .x-window-mc { + background: #e8e8e8; + border-right:1px solid #eee; + border-bottom:1px solid #eee; + border-top:1px solid #d0d0d0; + border-left:1px solid #d0d0d0; +} + +.x-window-plain .x-window-body { + border-left:1px solid #eee; + border-top:1px solid #eee; + border-bottom:1px solid #d0d0d0; + border-right:1px solid #d0d0d0; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #e4e4e4; +} + + +/* misc */ +.x-html-editor-wrap { + border-color:#d0d0d0; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #d0d0d0; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #d0d0d0; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #d0d0d0; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #d0d0d0; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #d0d0d0; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-green.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-green.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,415 @@ +/* + * Ext JS Library 2.0 RC 1 + * Copyright(c) 2006-2007, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +.x-panel { + border-style: solid; + border-color: #91ceb9; +} +.x-panel-header { + color:#333; + border:1px solid #91ceb9; + background-image:url(../images/green/panel/white-top-bottom.gif); +} + +.x-panel-body { + border-color:#91ceb9; +} + +.x-panel-bbar .x-toolbar { + border-color:#91ceb9; +} + +.x-panel-tbar .x-toolbar { + border-color:#91ceb9; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#91ceb9; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#91ceb9; +} +.x-panel-tl .x-panel-header { + color:#333; +} +.x-panel-tc { + background-image:url(../images/green/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/green/panel/corners-sprite.gif); + border-color:#91ceb9; +} +.x-panel-tr { + background-image:url(../images/green/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/green/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/green/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/green/panel/corners-sprite.gif); +} +.x-panel-mc { + background:#d8efe7; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/green/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/green/panel/left-right.gif); +} + +/* Tools */ +.x-tool { + background-image:url(../images/green/panel/tool-sprites.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#b2dece; +} + +.x-panel-ghost ul { + border-color:#55ae8f; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #91ceb9; +} + +/* Buttons */ + +.x-btn-left{ + background-image:url(../images/green/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/green/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/green/button/btn-sprite.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#d5eee5; +} + +.x-accordion-hd { + background-image:url(../images/green/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#d0ebe2; + border-color:#b2dece; +} +.x-layout-collapsed-over{ + background-color:#f0f9f6; +} + + +/* qtips */ +.x-tip .x-tip-top { + background-image:url(../images/green/qtip/tip-sprite.gif); +} +.x-tip .x-tip-top-left { + background-image:url(../images/green/qtip/tip-sprite.gif); +} +.x-tip .x-tip-top-right { + background-image:url(../images/green/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ft { + background-image:url(../images/green/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ft-left { + background-image:url(../images/green/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ft-right { + background-image:url(../images/green/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bd-left { + background-image:url(../images/green/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bd-right { + background-image:url(../images/green/qtip/tip-sprite.gif); +} + +/* Toolbars */ + +.x-toolbar{ + border-color:#91ceb9; + background:#ddf1ea url(../images/green/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#444; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/green/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/green/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/green/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/green/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/green/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#111; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/green/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/green/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/green/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/default/grid/grid-split.gif); +} + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #77bcb9; + border-color:#91ceb9; +} + + +.x-tab-panel-header { + border-color:#91ceb9; +} + +.x-tab-panel-footer { + border-color:#91ceb9; +} + +ul.x-tab-strip-top{ + background:#037162 url(../images/green/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#91ceb9; + padding-top: 2px; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/green/tabs/tab-strip-btm-bg.gif); + border-color:#91ceb9; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#111; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#333; +} + +.x-tab-strip-disabled .x-tabs-text { + color:#a6d8c7; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/green/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/green/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/green/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/green/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/green/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/green/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/green/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/green/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/green/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#91ceb9; + background:#fff; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #91ceb9; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #91ceb9; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#91ceb9; + background: #77bcb9; +} + +.x-tab-scroller-left { + background-image: url(../images/green/tabs/scroll-left.gif); + border-color:#4aaea2; +} +.x-tab-scroller-right { + background-image: url(../images/green/tabs/scroll-right.gif); + border-color:#4aaea2; +} + +/* Window */ + +.x-window-proxy { + background:#b2dece; + border-color:#55ae8f; +} + +.x-window-tl .x-window-header { + color:#555; +} +.x-window-tc { + background-image:url(../images/green/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/green/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/green/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/green/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/green/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/green/window/right-corners.png); +} +.x-window-mc { + border:1px solid #91ceb9; + background:#91cec6; +} + +.x-window-ml { + background-image:url(../images/green/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/green/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#91ceb9; +} +.x-panel-collapsed .x-window-tl { + border-color:#91ceb9; +} + +.x-window-plain .x-window-mc { + background: #91cec6; + border-right:1px solid #d0ebe2; + border-bottom:1px solid #d0ebe2; + border-top:1px solid #91ceb9; + border-left:1px solid #91ceb9; +} + +.x-window-plain .x-window-body { + border-left:1px solid #d0ebe2; + border-top:1px solid #d0ebe2; + border-bottom:1px solid #91ceb9; + border-right:1px solid #91ceb9; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #bce2d5; +} + + +/* misc */ +.x-html-editor-wrap { + border-color:#91ceb9; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #91ceb9; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #91ceb9; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #91ceb9; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #91ceb9; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #91ceb9; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-indigo.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-indigo.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,672 @@ +.x-panel { + border-style: solid; + border-color: #abc; +} +.x-panel-header { + color:#fafafa; + border:1px solid #abc; + background-image:url(../images/indigo/panel_white-top-bottom.gif); +} + +.x-panel-body { + border-color:#abc; +} + +.x-panel-bbar .x-toolbar { + border-color:#abc; +} + +.x-panel-tbar .x-toolbar { + border-color:#abc; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#abc; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#abc; +} +.x-panel-tl .x-panel-header { + color:#f4f4f4; +} +.x-panel-tc { + background-image:url(../images/indigo/panel_top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/indigo/panel_corners-sprite.gif); + border-color:#abc; +} +.x-panel-tr { + background-image:url(../images/indigo/panel_corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/indigo/panel_top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/indigo/panel_corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/indigo/panel_corners-sprite.gif); +} +.x-panel-mc { + background:#eef4f8; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/indigo/panel_left-right.gif); +} +.x-panel-mr { + background-image:url(../images/indigo/panel_left-right.gif); +} + +.x-panel-dd-spacer{ + border:2px dashed #89a; +} + + +/* Tools */ +.x-tool { + background-image:url(../images/indigo/panel_tool-sprites.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#e0e0e0; +} + +.x-panel-ghost ul { + border-color:#b0b0b0; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #abc; +} + +/* Buttons */ + +.x-btn-left{ + background-image:url(../images/indigo/button_btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/indigo/button_btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/indigo/button_btn-sprite.gif); +} +.x-btn-over button{ + color:#fff; +} +.x-btn-focus button{ + color:#fff; +} +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background:transparent url(../images/indigo/toolbar_btn-arrow.gif) no-repeat scroll right 3px; +} +.x-btn-with-menu .x-btn-center em { + background:transparent url(../images/indigo/toolbar_btn-arrow.gif) no-repeat scroll right 0pt; +} +.x-btn-menu-arrow-wrap .x-btn-center button{ + background:transparent url(../images/indigo/button_btn-arrow.gif) no-repeat left 3px; +} + + +/* Layout classes */ + +.x-border-layout-ct { + background:#f0f0f0; +} + +.x-accordion-hd { + background-image:url(../images/indigo/panel_light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#567; + border-color:#e0e0e0; +} +.x-layout-collapsed-over{ + background-color:#789; +} + + + +/* Toolbars */ + +.x-toolbar{ + border-color:#abc; + background:#f0f4f5 url(../images/indigo/toolbar_bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#f4f4f4; +} +.x-toolbar .ytb-text { + color:white; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/indigo/toolbar_btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/indigo/toolbar_btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/indigo/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/indigo/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/indigo/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#fff; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/indigo/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/indigo/toolbar_tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/indigo/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/indigo/grid_grid-split.gif); +} + +/* Menus */ + +.x-menu{ + border:1px solid #aaa; + background:#f0f0f0 url(../images/indigo/menu_menu.gif) repeat-y; +} +.x-menu-item-active{ + background:#ebf3fd url(../images/indigo/menu_item-over.gif) repeat-x left bottom; + border:1px solid #c2cbd2; +} +.x-menu-item-arrow{ + background:transparent url(../images/indigo/menu_menu-parent.gif) no-repeat right; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + + background: #6b869f; + border-color:#4f657b; +} + + +.x-tab-panel-header { + border-color:#abc; +} + +.x-tab-panel-footer { + border-color:#abc; +} + +ul.x-tab-strip-top{ + background:#dbdbdb url(../images/indigo/tabs_tab-strip-bg.gif) repeat-x left top; + border-color:#4c647e; + padding-top: 2px; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/indigo/tabs_tab-strip-btm-bg.gif); + border-color:#566c82; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#111; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#fff; +} + +.x-tab-strip-disabled .x-tabs-text { + color:#aaaaaa; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/indigo/tabs_tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/indigo/tabs_tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/indigo/tabs_tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/indigo/tabs_tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/indigo/tabs_tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/indigo/tabs_tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/indigo/tabs_tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/indigo/tabs_tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/indigo/tabs_tab-close.gif); +} + +.x-tab-panel-body { + border-color:#abc; + background:#fff; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #abc; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #abc; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#abc; + background: #6b869f; +} + +.x-tab-scroller-left { + background-image: url(../images/indigo/tabs_scroll-left.gif); + border-color:#aeaeae; +} +.x-tab-scroller-right { + background-image: url(../images/indigo/tabs_scroll-right.gif); + border-color:#aeaeae; +} + +/* Window */ + +.x-window-proxy { + background:#e4e8ec; + border-color:#abc; +} + +.x-window-tl .x-window-header { + color:#fafafa; +} +.x-window-tc { + background-image:url(../images/indigo/window_top-bottom.png); +} +.x-window-tl { + background-image:url(../images/indigo/window_left-corners.png); +} +.x-window-tr { + background-image:url(../images/indigo/window_right-corners.png); +} +.x-window-bc { + background-image:url(../images/indigo/window_top-bottom.png); +} +.x-window-bl { + background-image:url(../images/indigo/window_left-corners.png); +} +.x-window-br { + background-image:url(../images/indigo/window_right-corners.png); +} +.x-window-mc { + border:1px solid #abc; + background:#e8e8e8; +} + +.x-window-ml { + background-image:url(../images/indigo/window_left-right.png); +} +.x-window-mr { + background-image:url(../images/indigo/window_left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#abc; +} +.x-panel-collapsed .x-window-tl { + border-color:#abc; +} + +.x-window-plain .x-window-mc { + background: #e8e8e8; + border-right:1px solid #eee; + border-bottom:1px solid #eee; + border-top:1px solid #abc; + border-left:1px solid #abc; +} + +.x-window-plain .x-window-body { + border-left:1px solid #ddd; + border-top:1px solid #ddd; + border-bottom:1px solid #abc; + border-right:1px solid #abc; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #eceef0; +} + + +/* HTML Editor */ +.x-html-editor-wrap { + border-color:#abc; +} +.x-html-editor-tb .x-btn-text { + background:transparent url(../images/indigo/editor_tb-sprite.gif) no-repeat scroll 0%; +} + + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #abc; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #abc; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #abc; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #abc; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #abc; +} + +/* Forms */ +.x-form-text, textarea.x-form-field { + border:1px solid #9ab; +} +.x-trigger-wrap-focus .x-form-trigger { + border-bottom:1px solid #4a7192; +} +.x-form-focus,textarea.x-form-focus { + border:1px solid #4a7192; +} + +.x-form-field-wrap .x-form-trigger { + background:transparent url(../images/indigo/form_trigger.gif) no-repeat 0 0; +} +.x-form-field-wrap .x-form-date-trigger { + background-image:url(../images/indigo/form_date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger { + background-image:url(../images/indigo/form_clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger { + background-image:url(../images/indigo/form_search-trigger.gif); +} + +.x-form-field-wrap .x-form-trigger { + border-bottom:1px solid #778899; +} + +.x-form fieldset legend { + color:#333; +} + +/* the following need to be duplicated from ext-all.js, + otherwise hover effects are broken */ +.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;} +.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;} +.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;} +.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;} +.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;} + + +/* Grid */ + +.x-grid3-row-selected { + background:#fbf0d2; + border:1px dotted #ccc; +} +.x-grid3-hd-btn{ + background:#f2daa9 url(../images/indigo/grid_grid3-hd-btn.gif) no-repeat left center; +} +.x-grid3-header{ + background:#f9f9f9 url(../images/indigo/grid_grid3-hrow.gif) repeat-x 0 bottom; +} +td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{ + background:#ebf3fd url(../images/indigo/grid_grid3-hrow-over.gif) repeat-x left bottom; +} +.sort-asc .x-grid3-sort-icon{ + background-image:url(../images/indigo/grid_sort_asc.gif); +} +.sort-desc .x-grid3-sort-icon{ + background-image:url(../images/indigo/grid_sort_desc.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #fff; + border-right:1px solid #ccc; +} +.x-grid3-cell-selected{ + background-color:#e0eaee!important; +} +.x-grid3-body .x-grid3-td-expander{ + background:transparent url(../images/indigo/grid_grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-td-checker{ + background:transparent url(../images/indigo/grid_grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-td-numberer{ + background:transparent url(../images/indigo/grid_grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{ + background:transparent url(../images/indigo/grid_grid3-special-col-sel-bg.gif) repeat-y right; +} +.x-grid-group-hd { + border-bottom:2px solid #abb; +} +.x-grid-group-hd div { + color: #456; +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background:#ebf3fd url(../images/indigo/grid_grid3-hrow-over.gif) repeat-x left bottom; + border:1px solid #abc; +} +.x-tbar-page-first{ + background-image:url(../images/indigo/grid_page-first.gif)!important; +} +.x-tbar-page-last{ + background-image:url(../images/indigo/grid_page-last.gif)!important; +} +.x-tbar-page-next{ + background-image:url(../images/indigo/grid_page-next.gif)!important; +} +.x-tbar-page-prev{ + background-image:url(../images/indigo/grid_page-prev.gif)!important; +} +.x-paging-info { + color:#FFFFFF; +} + + +/* Progress Bar */ + +.x-progress-bar{ + background:#9CBFEE url( ../../resources/images/indigo/progress_progress-bg.gif ) repeat-x left center; + border-top:1px solid #ddd; + border-bottom:1px solid #ddd; +} + + +/* Combos */ +.x-combo-list{ + border:1px solid #89a; +} +.x-combo-list .x-combo-selected{ + border:1px dotted #ccc!important; + background:#fbf0d2; +} + + +/* Calendars */ + +.x-date-middle,.x-date-left,.x-date-right{ + background:url(../images/indigo/shared_hd-sprite.gif) repeat-x 0 -83px; +} +.x-date-bottom { + background:#DFECFB url(../images/indigo/shared_glass-bg.gif) repeat-x scroll left top; + border-top:1px solid #abc; +} +.x-date-right a{ + background-image:url(../images/indigo/shared_right-btn.gif); +} +.x-date-left a{ + background-image:url(../images/indigo/shared_left-btn.gif); +} +.x-date-inner th{ + background:#dfecfb url(../images/indigo/shared_glass-bg.gif) repeat-x left top; + border-bottom:1px solid #abc; + color:#345; +} +.x-date-inner .x-date-selected a { + background:#dfecfb url(../images/indigo/shared_glass-bg.gif) repeat-x scroll left top; + border:1px solid #89a; +} +.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{ + background:#cfdce1; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{ + color:#123; + background:#cfdce1; +} +.x-date-mp-ybtn a{ + background:transparent url(../images/indigo/panel_tool-sprites.gif) no-repeat; +} +.x-date-mp-btns { + background:#dfecfb url(../images/indigo/shared_glass-bg.gif) repeat-x scroll left top; +} +td.x-date-mp-sel a{ + background:#dfecfb url(../images/indigo/shared_glass-bg.gif) repeat-x left top; + border:1px solid #abc; +} +.x-date-mp-btns button{ + background:#405574; + border:1px solid; + border-color:#abc #055 #055 #abc; +} + +/* Resizable Handle */ +.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{ + background:url(../images/indigo/sizer_e-handle.gif);background-position:left; +} +.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{ + background:url(../images/indigo/sizer_e-handle.gif);background-position:left; +} +.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{ + background:url(../images/indigo/sizer_s-handle.gif);background-position:top; +} +.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{ + background:url(../images/indigo/sizer_s-handle.gif);background-position:top; +} +.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{ + background:url(../images/indigo/sizer_se-handle.gif);background-position:top left; +} +.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{ + background:url(../images/indigo/sizer_nw-handle.gif);background-position:bottom right; +} +.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{ + background:url(../images/indigo/sizer_ne-handle.gif);background-position:bottom left; +} +.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{ + background:url(../images/indigo/sizer_sw-handle.gif);background-position:top right; +} + +/* Tips */ +.x-tip .x-tip-close{ + background-image:url(../images/indigo/qtip_close.gif); +} +.x-tip .x-tip-tc{ + background:transparent url(../images/indigo/qtip_tip-sprite.gif) no-repeat 0 -62px; +} +.x-tip .x-tip-tl{ + background:transparent url(../images/indigo/qtip_tip-sprite.gif) no-repeat 0 0; +} +.x-tip .x-tip-tr{ + background:transparent url(../images/indigo/qtip_tip-sprite.gif) no-repeat right 0; +} +.x-tip .x-tip-bc{ + background:transparent url(../images/indigo/qtip_tip-sprite.gif) no-repeat 0 -121px; +} +.x-tip .x-tip-bl{ + background:transparent url(../images/indigo/qtip_tip-sprite.gif) no-repeat 0 -59px; +} +.x-tip .x-tip-br{ + background:transparent url(../images/indigo/qtip_tip-sprite.gif) no-repeat right -59px; +} +.x-tip .x-tip-ml{ + background:#fff url(../images/indigo/qtip_tip-sprite.gif) no-repeat 0 -124px; +} +.x-tip .x-tip-mr{ + background:transparent url(../images/indigo/qtip_tip-sprite.gif) no-repeat right -124px; +} +.x-form-invalid-tip .x-tip-tc{background:url(../images/default/form/error-tip-corners.gif) repeat-x 0 -12px;padding-top:6px;} +.x-form-invalid-tip .x-tip-tl{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-tr{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-bc{background:url(../images/default/form/error-tip-corners.gif) repeat-x 0 -18px;height:6px;} +.x-form-invalid-tip .x-tip-bl{background:url(../images/default/form/error-tip-corners.gif) no-repeat 0 -6px;} +.x-form-invalid-tip .x-tip-br{background:url(../images/default/form/error-tip-corners.gif) no-repeat right -6px;} +.x-form-invalid-tip .x-tip-ml{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-mr{background-image:url(../images/default/form/error-tip-corners.gif);} + + + + +/* Miscellaneous */ + +.x-item-disabled * { + color:#333 !important; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-midnight.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-midnight.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,674 @@ +.x-panel { + border-style: solid; + border-color: #cccccc; +} +.x-panel-header { + color:#fafafa; + border:1px solid #cccccc; + background-image:url(../images/midnight/panel_white-top-bottom.gif); +} + +.x-panel-body { + border-color:#cccccc; +} + +.x-panel-bbar .x-toolbar { + border-color:#cccccc; +} + +.x-panel-tbar .x-toolbar { + border-color:#cccccc; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#cccccc; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#cccccc; +} +.x-panel-tl .x-panel-header { + color:#f4f4f4; +} +.x-panel-tc { + background-image:url(../images/midnight/panel_top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/midnight/panel_corners-sprite.gif); + border-color:#cccccc; +} +.x-panel-tr { + background-image:url(../images/midnight/panel_corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/midnight/panel_top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/midnight/panel_corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/midnight/panel_corners-sprite.gif); +} +.x-panel-mc { + background:#e4e6ef; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/midnight/panel_left-right.gif); +} +.x-panel-mr { + background-image:url(../images/midnight/panel_left-right.gif); +} + +.x-panel-dd-spacer{ + border:2px dashed #89a; +} + + +/* Tools */ +.x-tool { + background-image:url(../images/midnight/panel_tool-sprites.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#e0e0e0; +} + +.x-panel-ghost ul { + border-color:#b0b0b0; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #cccccc; +} + +/* Buttons */ + +.x-btn-left{ + background-image:url(../images/midnight/button_btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/midnight/button_btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/midnight/button_btn-sprite.gif); +} +.x-btn-over button{ + color:#fff; +} +.x-btn-focus button{ + color:#fff; +} +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background:transparent url(../images/midnight/toolbar_btn-arrow.gif) no-repeat scroll right 3px; +} +.x-btn-with-menu .x-btn-center em { + background:transparent url(../images/midnight/toolbar_btn-arrow.gif) no-repeat scroll right 0pt; +} +.x-btn-menu-arrow-wrap .x-btn-center button{ + background:transparent url(../images/midnight/button_btn-arrow.gif) no-repeat left 3px; +} +.x-btn-text,.x-btn-text-icon{color:#fff;font-weight:bold !important;} +.x-item-disabled{color:#999;} + + +/* Layout classes */ + +.x-border-layout-ct { + background:#f0f0f0; +} + +.x-accordion-hd { + background-image:url(../images/midnight/panel_light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#141847; + border-color:#e0e0e0; +} +.x-layout-collapsed-over{ + background-color:#171763; +} + + + +/* Toolbars */ + +.x-toolbar{ + border-color:#cccccc; + background:#f0f4f5 url(../images/midnight/toolbar_bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#f4f4f4; +} +.x-toolbar .ytb-text { + color:white; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/midnight/toolbar_btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/midnight/toolbar_btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/midnight/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/midnight/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/midnight/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#fff; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/midnight/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/midnight/toolbar_tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/midnight/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/midnight/grid_grid-split.gif); +} + +/* Menus */ + +.x-menu{ + border:1px solid #aaa; + background:#f0f0f0 url(../images/midnight/menu_menu.gif) repeat-y; +} +.x-menu-item-active{ + background:#ebf3fd url(../images/midnight/menu_item-over.gif) repeat-x left bottom; + border:1px solid #c2cbd2; +} +.x-menu-item-arrow{ + background:transparent url(../images/midnight/menu_menu-parent.gif) no-repeat right; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + + background: #444a7d; + border-color:#4f657b; +} + + +.x-tab-panel-header { + border-color:#cccccc; +} + +.x-tab-panel-footer { + border-color:#cccccc; +} + +ul.x-tab-strip-top{ + background:#dbdbdb url(../images/midnight/tabs_tab-strip-bg.gif) repeat-x left top; + border-color:#4c647e; + padding-top: 2px; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/midnight/tabs_tab-strip-btm-bg.gif); + border-color:#566c82; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#111; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#fff; +} + +.x-tab-strip-disabled .x-tabs-text { + color:#aaaaaa; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/midnight/tabs_tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/midnight/tabs_tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/midnight/tabs_tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/midnight/tabs_tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/midnight/tabs_tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/midnight/tabs_tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/midnight/tabs_tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/midnight/tabs_tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/midnight/tabs_tab-close.gif); +} + +.x-tab-panel-body { + border-color:#cccccc; + background:#fff; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #cccccc; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #cccccc; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#cccccc; + background: #444a7d; +} + +.x-tab-scroller-left { + background-image: url(../images/midnight/tabs_scroll-left.gif); + border-color:#aeaeae; +} +.x-tab-scroller-right { + background-image: url(../images/midnight/tabs_scroll-right.gif); + border-color:#aeaeae; +} + +/* Window */ + +.x-window-proxy { + background:#e4e8ec; + border-color:#cccccc; +} + +.x-window-tl .x-window-header { + color:#fafafa; +} +.x-window-tc { + background-image:url(../images/midnight/window_top-bottom.png); +} +.x-window-tl { + background-image:url(../images/midnight/window_left-corners.png); +} +.x-window-tr { + background-image:url(../images/midnight/window_right-corners.png); +} +.x-window-bc { + background-image:url(../images/midnight/window_top-bottom.png); +} +.x-window-bl { + background-image:url(../images/midnight/window_left-corners.png); +} +.x-window-br { + background-image:url(../images/midnight/window_right-corners.png); +} +.x-window-mc { + border:1px solid #cccccc; + background:#e8e8e8; +} + +.x-window-ml { + background-image:url(../images/midnight/window_left-right.png); +} +.x-window-mr { + background-image:url(../images/midnight/window_left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#cccccc; +} +.x-panel-collapsed .x-window-tl { + border-color:#cccccc; +} + +.x-window-plain .x-window-mc { + background: #e8e8e8; + border-right:1px solid #eee; + border-bottom:1px solid #eee; + border-top:1px solid #cccccc; + border-left:1px solid #cccccc; +} + +.x-window-plain .x-window-body { + border-left:1px solid #ddd; + border-top:1px solid #ddd; + border-bottom:1px solid #cccccc; + border-right:1px solid #cccccc; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #eceef0; +} + + +/* HTML Editor */ +.x-html-editor-wrap { + border-color:#cccccc; +} +.x-html-editor-tb .x-btn-text { + background:transparent url(../images/midnight/editor_tb-sprite.gif) no-repeat scroll 0%; +} + + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #cccccc; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #cccccc; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #cccccc; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #cccccc; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #cccccc; +} + +/* Forms */ +.x-form-text, textarea.x-form-field { + border:1px solid #9ab; +} +.x-trigger-wrap-focus .x-form-trigger { + border-bottom:1px solid #4a7192; +} +.x-form-focus,textarea.x-form-focus { + border:1px solid #4a7192; +} + +.x-form-field-wrap .x-form-trigger { + background:transparent url(../images/midnight/form_trigger.gif) no-repeat 0 0; +} +.x-form-field-wrap .x-form-date-trigger { + background-image:url(../images/midnight/form_date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger { + background-image:url(../images/midnight/form_clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger { + background-image:url(../images/midnight/form_search-trigger.gif); +} + +.x-form-field-wrap .x-form-trigger { + border-bottom:1px solid #778899; +} + +.x-form fieldset legend { + color:#333; +} + +/* the following need to be duplicated from ext-all.js, + otherwise hover effects are broken */ +.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;} +.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;} +.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;} +.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;} +.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;} + + +/* Grid */ + +.x-grid3-row-selected { + background:#fbf0d2; + border:1px dotted #ccc; +} +.x-grid3-hd-btn{ + background:#f2daa9 url(../images/midnight/grid_grid3-hd-btn.gif) no-repeat left center; +} +.x-grid3-header{ + background:#f9f9f9 url(../images/midnight/grid_grid3-hrow.gif) repeat-x 0 bottom; +} +td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{ + background:#ebf3fd url(../images/midnight/grid_grid3-hrow-over.gif) repeat-x left bottom; +} +.sort-asc .x-grid3-sort-icon{ + background-image:url(../images/midnight/grid_sort_asc.gif); +} +.sort-desc .x-grid3-sort-icon{ + background-image:url(../images/midnight/grid_sort_desc.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #fff; + border-right:1px solid #ccc; +} +.x-grid3-cell-selected{ + background-color:#e0eaee!important; +} +.x-grid3-body .x-grid3-td-expander{ + background:transparent url(../images/midnight/grid_grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-td-checker{ + background:transparent url(../images/midnight/grid_grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-td-numberer{ + background:transparent url(../images/midnight/grid_grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{ + background:transparent url(../images/midnight/grid_grid3-special-col-sel-bg.gif) repeat-y right; +} +.x-grid-group-hd { + border-bottom:2px solid #abb; +} +.x-grid-group-hd div { + color: #456; +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background:#ebf3fd url(../images/midnight/grid_grid3-hrow-over.gif) repeat-x left bottom; + border:1px solid #cccccc; +} +.x-tbar-page-first{ + background-image:url(../images/midnight/grid_page-first.gif)!important; +} +.x-tbar-page-last{ + background-image:url(../images/midnight/grid_page-last.gif)!important; +} +.x-tbar-page-next{ + background-image:url(../images/midnight/grid_page-next.gif)!important; +} +.x-tbar-page-prev{ + background-image:url(../images/midnight/grid_page-prev.gif)!important; +} +.x-paging-info { + color:#FFFFFF; +} + + +/* Progress Bar */ + +.x-progress-bar{ + background:#9CBFEE url( ../../resources/images/midnight/progress_progress-bg.gif ) repeat-x left center; + border-top:1px solid #ddd; + border-bottom:1px solid #ddd; +} + + +/* Combos */ +.x-combo-list{ + border:1px solid #89a; +} +.x-combo-list .x-combo-selected{ + border:1px dotted #ccc!important; + background:#fbf0d2; +} + + +/* Calendars */ + +.x-date-middle,.x-date-left,.x-date-right{ + background:url(../images/midnight/shared_hd-sprite.gif) repeat-x 0 -83px; +} +.x-date-bottom { + background:#DFECFB url(../images/midnight/shared_glass-bg.gif) repeat-x scroll left top; + border-top:1px solid #cccccc; +} +.x-date-right a{ + background-image:url(../images/midnight/shared_right-btn.gif); +} +.x-date-left a{ + background-image:url(../images/midnight/shared_left-btn.gif); +} +.x-date-inner th{ + background:#dfecfb url(../images/midnight/shared_glass-bg.gif) repeat-x left top; + border-bottom:1px solid #cccccc; + color:#345; +} +.x-date-inner .x-date-selected a { + background:#dfecfb url(../images/midnight/shared_glass-bg.gif) repeat-x scroll left top; + border:1px solid #89a; +} +.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{ + background:#cfdce1; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{ + color:#123; + background:#cfdce1; +} +.x-date-mp-ybtn a{ + background:transparent url(../images/midnight/panel_tool-sprites.gif) no-repeat; +} +.x-date-mp-btns { + background:#dfecfb url(../images/midnight/shared_glass-bg.gif) repeat-x scroll left top; +} +td.x-date-mp-sel a{ + background:#dfecfb url(../images/midnight/shared_glass-bg.gif) repeat-x left top; + border:1px solid #cccccc; +} +.x-date-mp-btns button{ + background:#405574; + border:1px solid; + border-color:#cccccc #055 #055 #cccccc; +} + +/* Resizable Handle */ +.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{ + background:url(../images/midnight/sizer_e-handle.gif);background-position:left; +} +.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{ + background:url(../images/midnight/sizer_e-handle.gif);background-position:left; +} +.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{ + background:url(../images/midnight/sizer_s-handle.gif);background-position:top; +} +.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{ + background:url(../images/midnight/sizer_s-handle.gif);background-position:top; +} +.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{ + background:url(../images/midnight/sizer_se-handle.gif);background-position:top left; +} +.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{ + background:url(../images/midnight/sizer_nw-handle.gif);background-position:bottom right; +} +.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{ + background:url(../images/midnight/sizer_ne-handle.gif);background-position:bottom left; +} +.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{ + background:url(../images/midnight/sizer_sw-handle.gif);background-position:top right; +} + +/* Tips */ +.x-tip .x-tip-close{ + background-image:url(../images/midnight/qtip_close.gif); +} +.x-tip .x-tip-tc{ + background:transparent url(../images/midnight/qtip_tip-sprite.gif) no-repeat 0 -62px; +} +.x-tip .x-tip-tl{ + background:transparent url(../images/midnight/qtip_tip-sprite.gif) no-repeat 0 0; +} +.x-tip .x-tip-tr{ + background:transparent url(../images/midnight/qtip_tip-sprite.gif) no-repeat right 0; +} +.x-tip .x-tip-bc{ + background:transparent url(../images/midnight/qtip_tip-sprite.gif) no-repeat 0 -121px; +} +.x-tip .x-tip-bl{ + background:transparent url(../images/midnight/qtip_tip-sprite.gif) no-repeat 0 -59px; +} +.x-tip .x-tip-br{ + background:transparent url(../images/midnight/qtip_tip-sprite.gif) no-repeat right -59px; +} +.x-tip .x-tip-ml{ + background:#fff url(../images/midnight/qtip_tip-sprite.gif) no-repeat 0 -124px; +} +.x-tip .x-tip-mr{ + background:transparent url(../images/midnight/qtip_tip-sprite.gif) no-repeat right -124px; +} +.x-form-invalid-tip .x-tip-tc{background:url(../images/default/form/error-tip-corners.gif) repeat-x 0 -12px;padding-top:6px;} +.x-form-invalid-tip .x-tip-tl{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-tr{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-bc{background:url(../images/default/form/error-tip-corners.gif) repeat-x 0 -18px;height:6px;} +.x-form-invalid-tip .x-tip-bl{background:url(../images/default/form/error-tip-corners.gif) no-repeat 0 -6px;} +.x-form-invalid-tip .x-tip-br{background:url(../images/default/form/error-tip-corners.gif) no-repeat right -6px;} +.x-form-invalid-tip .x-tip-ml{background-image:url(../images/default/form/error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-mr{background-image:url(../images/default/form/error-tip-corners.gif);} + + + + +/* Miscellaneous */ + +.x-item-disabled * { + color:#333 !important; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-olive.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-olive.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,624 @@ +/* + * Ext JS Library 2.0 Alpha 1 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * @license LGPL + * @author Kemal Tunador + */ + +.x-panel { + border-style: solid; + border-color: #68cccd; +} +.x-panel-header { + color:#000000; + border:1px solid #68cccd; + background-image:url(../images/olive/panel/white-top-bottom.gif); +} +.x-panel-tl .x-panel-header { + color:#000000; +} +.x-panel-body { + border-color:#68cccd; +} + +.x-panel-bbar .x-toolbar { + border-color:#68cccd; +} + +.x-panel-tbar .x-toolbar { + border-color:#68cccd; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#68cccd; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#68cccd; +} +.x-panel-tc { + background-image:url(../images/olive/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/olive/panel/corners-sprite.gif); + border-color:#68cccd; +} +.x-panel-tr { + background-image:url(../images/olive/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/olive/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/olive/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/olive/panel/corners-sprite.gif); +} +.x-panel-mc { + background:#99dddd; + color:#000000; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/olive/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/olive/panel/left-right.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#99dddd; +} + +.x-panel-ghost ul { + border-color:#68cccd; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #68cccd; +} + +/* Grid */ +.x-grid3-row { + color:#000000; +} +.x-grid3-row-over { + border:1px solid #68cccd; + background-image:url(../images/olive/grid/row-over.gif); +} +.x-grid3-header{ + background-image:url(../images/olive/grid/grid3-hrow.gif); +} +.x-grid3-header-pop-inner { + border-left:1px solid #2a8e8f; + background-image:url(../images/olive/grid/hd-pop.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #2a8e8f; + border-right:1px solid #2a8e8f; +} +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background-image:url(../images/olive/grid/grid3-hrow-over.gif); + background-color:#a5e1e1; +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background-image:url(../images/olive/grid/grid3-hrow-over.gif); +} +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ + background-image:url(../images/olive/grid/grid-hrow.gif); + color:#666666; + border-top:1px solid #188889; + border-right:1px solid #2a8e8f !important; +} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ + background-image:url(../images/olive/grid/grid3-special-col-bg.gif); + color:#eeeeee !important; +} +.x-grid3-hd-btn { + background-image:url(../images/olive/grid/grid3-hd-btn.gif); +} +.x-grid3-body .x-grid3-td-expander { + background-image:url(../images/olive/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-checker { + background-image:url(../images/olive/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-numberer { + background-image:url(../images/olive/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background-image:url(../images/olive/grid/grid3-special-col-sel-bg.gif); +} +.x-grid3-hd-row td { + border-left:1px solid #77e7e9; + border-right:1px solid #188889; +} +.x-grid3-row-selected { + background: #a5e1e1; + border:1px dotted #68cccd; +} + +/* Menu */ + +.x-menu { + border: 1px solid #5da9a9; + background-color:#afdadb; + background-image:url(../images/olive/menu/menu.gif); +} +.x-menu-sep { + background-color:#c6edee; + border-bottom:1px solid #41807f; +} +.x-menu-plain { + background:#afdadb !important; +} +.x-menu-item-active { + background-image:url(../images/olive/menu/item-over.gif); + background-color:#a4efee; + border:1px solid #59b6b5; +} +.x-menu a.x-menu-item { + color:#222222; +} +.x-menu-item-active a.x-menu-item { + color: #000000; +} + +/* Tools */ +.x-tool { + background-image:url(../images/olive/panel/tool-sprites.gif); +} + +/* Buttons */ + +.x-btn-text{ + color: #000000; + font-weight:bold !important; +} +.x-btn-left{ + background-image:url(../images/olive/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/olive/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/olive/button/btn-sprite.gif); +} +.x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/olive/button/btn-arrow.gif); +} +.x-btn-with-menu .x-btn-center em { + background-image:url(../images/olive/toolbar/btn-arrow.gif); +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background-image:url(../images/olive/toolbar/btn-arrow.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#f3f9ff; /* f1f2f4 */ +} + +.x-accordion-hd { + background-image:url(../images/olive/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#6acfcb; + border-color:#5dc8c9; +} +.x-layout-collapsed-over{ + background-color:#78d5ca; +} + + +/* qtips */ +.x-tip .x-tip-close{ + background-image: url(../images/olive/qtip/close.gif); +} +.x-tip .x-tip-tc { + background-image:url(../images/olive/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tl { + background-image:url(../images/olive/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tr { + background-image:url(../images/olive/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bc { + background-image:url(../images/olive/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bl { + background-image:url(../images/olive/qtip/tip-sprite.gif); +} +.x-tip .x-tip-br { + background-image:url(../images/olive/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ml { + background-image:url(../images/olive/qtip/tip-sprite.gif); +} +.x-tip .x-tip-mr { + background-image:url(../images/olive/qtip/tip-sprite.gif); +} +.x-tip .x-tip-header-text { + color:#000000; +} +.x-tip .x-tip-body { + color:#111111; +} +/* Toolbars */ + +.x-toolbar{ + border-color:#68cccd; + background:#8fd9da url(../images/olive/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#222222; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/olive/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/olive/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/olive/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/olive/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/olive/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#000000; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/olive/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/olive/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/olive/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/olive/grid/grid-split.gif); +} +.x-paging-info { + color:#000000; +} + +/* Form */ + +.x-form-field-wrap .x-form-trigger{ + background-image:url(../images/olive/form/trigger.gif); + border-bottom: 1px solid #55d4d6; +} +.x-form-field-wrap .x-form-date-trigger{ + background-image: url(../images/olive/form/date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger{ + background-image: url(../images/olive/form/clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger{ + background-image: url(../images/olive/form/search-trigger.gif); +} + +.x-form-text, textarea.x-form-field{ + border: 1px solid #55d4d6; +} +.x-form-select-one { + border: 1px solid #55d4d6; +} +.x-item-disabled .x-form-trigger-over{ + border-bottom: 1px solid #55d4d6; +} +.x-item-disabled .x-form-trigger-click{ + border-bottom: 1px solid #55d4d6; +} +.x-form fieldset { + border:1px solid #55d4d6; +} +.x-trigger-wrap-focus .x-form-trigger{ + border-bottom: 1px solid #2fb6b8; +} +.x-form-focus, textarea.x-form-focus{ + border: 1px solid #2fb6b8; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #9ededf; + border-color:#5dc8c9; +} + + +.x-tab-panel-header { + border-color:#5dc8c9; +} + +.x-tab-panel-footer { + border-color:#5dc8c9; +} + +ul.x-tab-strip-top{ + background:#9ededf url(../images/olive/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#5dc8c9; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/olive/tabs/tab-strip-btm-bg.gif); + border-color:#5dc8c9; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#000000; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#111111; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/olive/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/olive/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/olive/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/olive/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/olive/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/olive/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/olive/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/olive/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/olive/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#5dc8c9; + background:#eeeeee; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #5dc8c9; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #5dc8c9; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#5dc8c9; + background: #9ededf; +} + +.x-tab-scroller-left { + background-image: url(../images/olive/tabs/scroll-left.gif); + border-color:#5dc8c9; +} +.x-tab-scroller-right { + background-image: url(../images/olive/tabs/scroll-right.gif); + border-color:#5dc8c9; +} + +/* Window */ + +.x-window-proxy { + background:#363636; + border-color:#5dc8c9; +} + +.x-window-tl .x-window-header { + color:#000000; +} +.x-window-tc { + background-image:url(../images/olive/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/olive/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/olive/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/olive/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/olive/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/olive/window/right-corners.png); +} +.x-window-mc { + border:1px solid #3db0b2; + background:#92dedf; +} + +.x-window-ml { + background-image:url(../images/olive/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/olive/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#5dc8c9; +} +.x-panel-collapsed .x-window-tl { + border-color:#5dc8c9; +} + +.x-window-plain .x-window-mc { + color: #eeeeee; + background: #5dc6c6; + border-left:1px solid #34a4a6; + border-top:1px solid #34a4a6; + border-bottom:1px solid #47c3c4; + border-right:1px solid #47c3c4; +} + +.x-window-plain .x-window-body { + border-left:1px solid #5ec8c9; + border-top:1px solid #5ec8c9; + border-bottom:1px solid #3db0b2; + border-right:1px solid #3db0b2; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #5dc6c6; +} + +/* Date Picker */ +.x-date-picker { + border: 1px solid #5dc8c9; + background:#ffffff; +} +.x-date-middle,.x-date-left,.x-date-right { + background-image: url(../images/olive/shared/hd-sprite.gif); +} +.x-date-middle .x-btn-with-menu .x-btn-center em { + background-image:url(../images/olive/toolbar/btn-arrow-light.gif); +} +.x-date-right a { + background-image: url(../images/olive/shared/right-btn.gif); +} +.x-date-left a{ + background-image: url(../images/olive/shared/left-btn.gif); +} +.x-date-inner th { + background-image:url(../images/olive/shared/glass-bg.gif); + border-bottom: 1px solid #5dc8c9; + color:#000000; +} +.x-date-inner .x-date-selected a{ + background-image:url(../images/olive/shared/glass-bg.gif); + border:1px solid #5dc8c9; + color:#000000; +} +.x-date-bottom { + border-top: 1px solid #5dc8c9; + background-image:url(../images/olive/shared/glass-bg.gif); +} +.x-date-mp-btns { + background-image:url(../images/olive/shared/glass-bg.gif); +} +td.x-date-mp-sel a { + background-image:url(../images/olive/shared/glass-bg.gif); + border:1px solid #5dc8c9; + color: #000000 !important; +} +.x-date-mp-ybtn a { + background-image:url(../images/olive/panel/tool-sprites.gif); +} +.x-date-mp-btns button { + background-image:url(../images/olive/shared/glass-bg.gif); + border-color: #34a4a6 #5dc8c9 #5dc8c9 #34a4a6; + color: #000000; +} +.x-date-inner a{ + color:#000000; +} +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ + color:#f0eeef; + background: #5dc8c9; +} +td.x-date-mp-month a,td.x-date-mp-year a { + color:#000000; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { + color:#f0eeef; + background: #5dc8c9; +} + +/* misc */ +.x-html-editor-wrap { + border-color:#5dc8c9; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #5dc8c9; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #5dc8c9; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #5dc8c9; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #5dc8c9; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #5dc8c9; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-orange.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-orange.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,628 @@ +/* + * Ext JS Library 2.0 Alpha 1 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * @license LGPL + * @author Lubos Strapko + + */ + +.x-panel { + border-style: solid; + border-color: #ff8c37; +} +.x-panel-header { + color:#010101; + border:1px solid #ff8c37; + background-image:url(../images/orange/panel/white-top-bottom.gif); +} +.x-panel-tl .x-panel-header { + color:#010101; +} +.x-panel-body { + border-color:#ff8c37; +} + +.x-panel-bbar .x-toolbar { + border-color:#ff8c37; +} + +.x-panel-tbar .x-toolbar { + border-color:#ff8c37; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#ff8c37; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#ff8c37; +} +.x-panel-tc { + background-image:url(../images/orange/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/orange/panel/corners-sprite.gif); + border-color:#ff8c37; +} +.x-panel-tr { + background-image:url(../images/orange/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/orange/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/orange/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/orange/panel/corners-sprite.gif); +} +.x-panel-mc { + background:#ffb177; + color:#010101; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/orange/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/orange/panel/left-right.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#ffb177; +} + +.x-panel-ghost ul { + border-color:#ff8c37; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #ff8c37; +} + +/* Grid */ +.x-grid3-row { + color:#010101; +} +.x-grid3-row-over { + border:1px solid #ff8c37; + background-image:url(../images/orange/grid/row-over.gif); +} +.x-grid3-header{ + background-image:url(../images/orange/grid/grid3-hrow.gif); +} +.x-grid3-header-pop-inner { + border-left:1px solid #ba4f00; + background-image:url(../images/orange/grid/hd-pop.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #ba4f00; + border-right:1px solid #ba4f00; +} +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background-image:url(../images/orange/grid/grid3-hrow-over.gif); + background-color:#feba88; +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background-image:url(../images/orange/grid/grid3-hrow-over.gif); +} +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ + background-image:url(../images/orange/grid/grid-hrow.gif); + color:#666666; + border-top:1px solid #a24500; + border-right:1px solid #ba4f00 !important; +} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ + background-image:url(../images/orange/grid/grid3-special-col-bg.gif); + color:#eeeeee !important; +} +.x-grid3-hd-btn { + background-image:url(../images/orange/grid/grid3-hd-btn.gif); +} +.x-grid3-body .x-grid3-td-expander { + background-image:url(../images/orange/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-checker { + background-image:url(../images/orange/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-numberer { + background-image:url(../images/orange/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background-image:url(../images/orange/grid/grid3-special-col-sel-bg.gif); +} +.x-grid3-hd-row td { + border-left:1px solid #ffa461; + border-right:1px solid #a24500; +} +.x-grid3-row-selected { + background: #feba88; + border:1px dotted #ff8c37; +} + +/* Menu */ + +.x-menu { + border: 1px solid #cf7737; + background-color:#f1c099; + background-image:url(../images/orange/menu/menu.gif); +} +.x-menu-sep { + background-color:#ffd4b5; + border-bottom:1px solid #a05422; +} +.x-menu-plain { + background:#f1c099 !important; +} +.x-menu-item-active { + background-image:url(../images/orange/menu/item-over.gif); + background-color:#ffbf95; + border:1px solid #e47a2c; +} +.x-menu a.x-menu-item { + color:#222222; +} +.x-menu-item-active a.x-menu-item { + color: #010101; +} + +/* Tools */ +.x-tool { + background-image:url(../images/orange/panel/tool-sprites.gif); +} + +/* Buttons */ + +.x-btn-text{ + color: #010101; + font-weight:bold !important; +} +.x-btn-left{ + background-image:url(../images/orange/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/orange/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/orange/button/btn-sprite.gif); +} +.x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/orange/button/btn-arrow.gif); +} +.x-btn-with-menu .x-btn-center em { + background-image:url(../images/orange/toolbar/btn-arrow.gif); +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background-image:url(../images/orange/toolbar/btn-arrow.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#ffd9b1; /* f1f2f4 */ +} + +.x-accordion-hd { + background-image:url(../images/orange/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#ff853b; + border-color:#ff8327; +} +.x-layout-collapsed-over{ + background-color:#ff854f; +} + + +/* qtips */ +.x-tip .x-tip-close{ + background-image: url(../images/orange/qtip/close.gif); +} +.x-tip .x-tip-tc { + background-image:url(../images/orange/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tl { + background-image:url(../images/orange/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tr { + background-image:url(../images/orange/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bc { + background-image:url(../images/orange/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bl { + background-image:url(../images/orange/qtip/tip-sprite.gif); +} +.x-tip .x-tip-br { + background-image:url(../images/orange/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ml { + background-image:url(../images/orange/qtip/tip-sprite.gif); +} +.x-tip .x-tip-mr { + background-image:url(../images/orange/qtip/tip-sprite.gif); +} +.x-tip .x-tip-header-text { + color:#010101; +} +.x-tip .x-tip-body { + color:#111111; +} +/* Toolbars */ + +.x-toolbar{ + border-color:#ff8c37; + background:#ffaa6b url(../images/orange/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#222222; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/orange/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/orange/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/orange/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/orange/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/orange/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#010101; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/orange/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/orange/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/orange/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/orange/grid/grid-split.gif); +} +.x-paging-info { + color:#010101; +} + +/* Form */ + +.x-form-field-wrap .x-form-trigger{ + background-image:url(../images/orange/form/trigger.gif); + border-bottom: 1px solid #ff862d; +} +.x-form-field-wrap .x-form-date-trigger{ + background-image: url(../images/orange/form/date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger{ + background-image: url(../images/orange/form/clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger{ + background-image: url(../images/orange/form/search-trigger.gif); +} + +.x-form-text, textarea.x-form-field{ + border: 1px solid #ff862d; +} +.x-form-select-one { + border: 1px solid #ff862d; +} +.x-item-disabled .x-form-trigger-over{ + border-bottom: 1px solid #ff862d; +} +.x-item-disabled .x-form-trigger-click{ + border-bottom: 1px solid #ff862d; +} +.x-form fieldset { + border:1px solid #ff862d; +} +.x-trigger-wrap-focus .x-form-trigger{ + border-bottom: 1px solid #e86200; +} +.x-form-focus, textarea.x-form-focus{ + border: 1px solid #e86200; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #ffb57f; + border-color:#ff8327; +} + + +.x-tab-panel-header { + border-color:#ff8327; +} + +.x-tab-panel-footer { + border-color:#ff8327; +} + +ul.x-tab-strip-top{ + background:#ffb57f url(../images/orange/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#ff8327; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/orange/tabs/tab-strip-btm-bg.gif); + border-color:#ff8327; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#010101; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#111111; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/orange/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/orange/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/orange/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/orange/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/orange/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/orange/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/orange/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/orange/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/orange/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#ff8327; + background:#eeeeee; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #ff8327; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #ff8327; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#ff8327; + background: #ffb57f; +} + +.x-tab-scroller-left { + background-image: url(../images/orange/tabs/scroll-left.gif); + border-color:#ff8327; +} +.x-tab-scroller-right { + background-image: url(../images/orange/tabs/scroll-right.gif); + border-color:#ff8327; +} + +/* Window */ + +.x-window-proxy { + background:#363636; + border-color:#ff8327; +} + +.x-window-tl .x-window-header { + color:#010101; +} +.x-window-tc { + background-image:url(../images/orange/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/orange/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/orange/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/orange/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/orange/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/orange/window/right-corners.png); +} +.x-window-mc { + border:1px solid #ee6602; + background:#ffae73; +} + +.x-window-ml { + background-image:url(../images/orange/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/orange/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#ff8327; +} +.x-panel-collapsed .x-window-tl { + border-color:#ff8327; +} + +.x-window-plain .x-window-mc { + color: #eeeeee; + background: #f9822b; + border-left:1px solid #da5c00; + border-top:1px solid #da5c00; + border-bottom:1px solid #ff730d; + border-right:1px solid #ff730d; +} + +.x-window-plain .x-window-body { + border-left:1px solid #fe842a; + border-top:1px solid #fe842a; + border-bottom:1px solid #ee6602; + border-right:1px solid #ee6602; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #f9822b; + +} + +/* Date Picker */ +.x-date-picker { + border: 1px solid #ff8327; + background:#ffffff; +} +.x-date-middle,.x-date-left,.x-date-right { + background-image: url(../images/orange/shared/hd-sprite.gif); +} +.x-date-middle .x-btn-with-menu .x-btn-center em { + background-image:url(../images/orange/toolbar/btn-arrow-light.gif); +} +.x-date-right a { + background-image: url(../images/orange/shared/right-btn.gif); +} +.x-date-left a{ + background-image: url(../images/orange/shared/left-btn.gif); +} +.x-date-inner th { + background-image:url(../images/orange/shared/glass-bg.gif); + border-bottom: 1px solid #ff8327; + color:#010101; +} +.x-date-inner .x-date-selected a{ + background-image:url(../images/orange/shared/glass-bg.gif); + border:1px solid #ff8327; + color:#010101; +} +.x-date-bottom { + border-top: 1px solid #ff8327; + background-image:url(../images/orange/shared/glass-bg.gif); +} +.x-date-mp-btns { + background-image:url(../images/orange/shared/glass-bg.gif); +} +td.x-date-mp-sel a { + background-image:url(../images/orange/shared/glass-bg.gif); + border:1px solid #ff8327; + color: #010101 !important; +} +.x-date-mp-ybtn a { + background-image:url(../images/orange/panel/tool-sprites.gif); +} +.x-date-mp-btns button { + background-image:url(../images/orange/shared/glass-bg.gif); + border-color: #da5c00 #ff8327 #ff8327 #da5c00; + color: #010101; +} +.x-date-inner a{ + color:#010101; +} +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ + color:#edf1f1; + background: #ff8327; +} +td.x-date-mp-month a,td.x-date-mp-year a { + color:#010101; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { + color:#edf1f1; + background: #ff8327; +} + +/* misc */ +.x-html-editor-wrap { + border-color:#ff8327; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #ff8327; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #ff8327; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #ff8327; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #ff8327; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #ff8327; +} +.sort-asc .x-grid3-sort-icon{background-image:url(../images/orange/grid/sort_asc.gif);display:inline;} +.sort-desc .x-grid3-sort-icon{background-image:url(../images/orange/grid/sort_desc.gif);display:inline;} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-peppermint.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-peppermint.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,626 @@ +/* + * Ext JS Library 2.0 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * @Theme: Peppermint + * @Created by Paul Baugher + */ +//border-color: #ff0f0f; +//background:#ffe3e3; + +.x-panel { + border-style: solid; + border-color: #ff0f0f; +} +.x-panel-header { + color:#000000; + border:1px solid #ff0f0f; + background-image:url(../images/peppermint/panel/white-top-bottom.gif); +} +.x-panel-tl .x-panel-header { + color:#000000; +} +.x-panel-body { + border-color:#ff0f0f; +} + +.x-panel-bbar .x-toolbar { + border-color:#ff0f0f; +} + +.x-panel-tbar .x-toolbar { + border-color:#ff0f0f; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#ff0f0f; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#ff0f0f; +} +.x-panel-tc { + background-image:url(../images/peppermint/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/peppermint/panel/corners-sprite.gif); + border-color:#ff0f0f; +} +.x-panel-tr { + background-image:url(../images/peppermint/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/peppermint/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/peppermint/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/peppermint/panel/corners-sprite.gif); +} +.x-panel-mc { + background-color:#ffe3e3; + color:#000000; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/peppermint/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/peppermint/panel/left-right.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#ffe3e3; +} + +.x-panel-ghost ul { + border-color:#ff0f0f; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #ff0f0f; +} + +/* Grid */ +.x-grid3-row { + color:#000000; +} +.x-grid3-row-over { + border:1px solid #ff0f0f; + background-image:url(../images/peppermint/grid/row-over.gif); +} +.x-grid3-header{ + background-image:url(../images/peppermint/grid/grid3-hrow.gif); +} +.x-grid3-header-pop-inner { + border-left:1px solid #ffe3e3; + background-image:url(../images/peppermint/grid/hd-pop.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #ffe3e3; + border-right:1px solid #ffe3e3; +} +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background-image:url(../images/peppermint/grid/grid3-hrow-over.gif); + background-color:#ffe3e3; +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background-image:url(../images/peppermint/grid/grid3-hrow-over.gif); +} +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ + background-image:url(../images/peppermint/grid/grid-hrow.gif); + color:#666666; + border-top:1px solid #ffe3e3; + border-right:1px solid #ffe3e3 !important; +} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ + background-image:url(../images/peppermint/grid/grid3-special-col-bg.gif); + color:#eeeeee !important; +} +.x-grid3-hd-btn { + background-image:url(../images/peppermint/grid/grid3-hd-btn.gif); +} +.x-grid3-body .x-grid3-td-expander { + background-image:url(../images/peppermint/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-checker { + background-image:url(../images/peppermint/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-numberer { + background-image:url(../images/peppermint/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background-image:url(../images/peppermint/grid/grid3-special-col-sel-bg.gif); +} +.x-grid3-hd-row td { + border-left:1px solid #ffe3e3; + border-right:1px solid #ffe3e3; +} +.x-grid3-row-selected { + background: #ffe3e3; + border:1px dotted #ff0f0f; +} + +/* Menu */ + +.x-menu { + border: 1px solid #ffe3e3; + background-color:#ff0f0f; + background-image:url(../images/peppermint/menu/menu.gif); +} +.x-menu-sep { + background-color:#ff0f0f; + border-bottom:1px solid #ffe3e3; +} +.x-menu-plain { + background:#ff0f0f !important; +} +.x-menu-item-active { + background-image:url(../images/peppermint/menu/item-over.gif); + background-color:#ffe3e3; + border:1px solid #ff0f0f; +} +.x-menu a.x-menu-item { + color:#222222; +} +.x-menu-item-active a.x-menu-item { + color: #000000; +} + +/* Tools */ +.x-tool { + background-image:url(../images/peppermint/panel/tool-sprites.gif); +} + +/* Buttons */ + +.x-btn-text{ + color: #000000; + font-weight:bold !important; +} +.x-btn-left{ + background-image:url(../images/peppermint/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/peppermint/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/peppermint/button/btn-sprite.gif); +} +.x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/peppermint/button/btn-arrow.gif); +} +.x-btn-with-menu .x-btn-center em { + background-image:url(../images/peppermint/toolbar/btn-arrow.gif); +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background-image:url(../images/peppermint/toolbar/btn-arrow.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#ffe3e3; /* f1f2f4 */ +} + +.x-accordion-hd { + background-image:url(../images/peppermint/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#ffe3e3; + border-color:#ff0f0f; +} +.x-layout-collapsed-over{ + background-color:#ffe3e3; +} + + +/* qtips */ +.x-tip .x-tip-close{ + background-image: url(../images/peppermint/qtip/close.gif); +} +.x-tip .x-tip-tc { + background-image:url(../images/peppermint/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tl { + background-image:url(../images/peppermint/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tr { + background-image:url(../images/peppermint/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bc { + background-image:url(../images/peppermint/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bl { + background-image:url(../images/peppermint/qtip/tip-sprite.gif); +} +.x-tip .x-tip-br { + background-image:url(../images/peppermint/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ml { + background-image:url(../images/peppermint/qtip/tip-sprite.gif); +} +.x-tip .x-tip-mr { + background-image:url(../images/peppermint/qtip/tip-sprite.gif); +} +.x-tip .x-tip-header-text { + color:#000000; +} +.x-tip .x-tip-body { + color:#111111; +} +/* Toolbars */ + +.x-toolbar{ + border-color:#ff0f0f; + background:#ffe3e3 url(../images/peppermint/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#222222; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/peppermint/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/peppermint/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/peppermint/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/peppermint/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/peppermint/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#000000; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/peppermint/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/peppermint/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/peppermint/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/peppermint/grid/grid-split.gif); +} +.x-paging-info { + color:#000000; +} + +/* Form */ + +.x-form-field-wrap .x-form-trigger{ + background-image:url(../images/peppermint/form/trigger.gif); + border-bottom: 1px solid #ff0f0f; +} +.x-form-field-wrap .x-form-date-trigger{ + background-image: url(../images/peppermint/form/date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger{ + background-image: url(../images/peppermint/form/clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger{ + background-image: url(../images/peppermint/form/search-trigger.gif); +} + +.x-form-text, textarea.x-form-field{ + border: 1px solid #ff0f0f; +} +.x-form-select-one { + border: 1px solid #ff0f0f; +} +.x-item-disabled .x-form-trigger-over{ + border-bottom: 1px solid #ff0f0f; +} +.x-item-disabled .x-form-trigger-click{ + border-bottom: 1px solid #ff0f0f; +} +.x-form fieldset { + border:1px solid #ff0f0f; +} +.x-trigger-wrap-focus .x-form-trigger{ + border-bottom: 1px solid #ff0f0f; +} +.x-form-focus, textarea.x-form-focus{ + border: 1px solid #ff0f0f; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #ffe3e3; + border-color:#ff0f0f; +} + + +.x-tab-panel-header { + border-color:#ff0f0f; +} + +.x-tab-panel-footer { + border-color:#ff0f0f; +} + +ul.x-tab-strip-top{ + background:#ffe3e3 url(../images/peppermint/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#ff0f0f; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/peppermint/tabs/tab-strip-btm-bg.gif); + border-color:#ff0f0f; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#000000; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#111111; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/peppermint/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/peppermint/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/peppermint/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/peppermint/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/peppermint/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/peppermint/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/peppermint/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/peppermint/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/peppermint/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#ff0f0f; + background:#ffe3e3; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #ff0f0f; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #ff0f0f; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#ff0f0f; + background: #ffe3e3; +} + +.x-tab-scroller-left { + background-image: url(../images/peppermint/tabs/scroll-left.gif); + border-color:#ff0f0f; +} +.x-tab-scroller-right { + background-image: url(../images/peppermint/tabs/scroll-right.gif); + border-color:#ff0f0f; +} + +/* Window */ + +.x-window-proxy { + background:#ffe3e3; + border-color:#ff0f0f; +} + +.x-window-tl .x-window-header { + color:#000000; +} +.x-window-tc { + background-image:url(../images/peppermint/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/peppermint/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/peppermint/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/peppermint/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/peppermint/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/peppermint/window/right-corners.png); +} +.x-window-mc { + border:1px solid #ff0f0f; + background:#ffe3e3; +} + +.x-window-ml { + background-image:url(../images/peppermint/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/peppermint/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#ff0f0f; +} +.x-panel-collapsed .x-window-tl { + border-color:#ff0f0f; +} + +.x-window-plain .x-window-mc { + color: #eeeeee; + background: #ffe3e3; + border-left:1px solid #ff0f0f; + border-top:1px solid #ff0f0f; + border-bottom:1px solid #ff0f0f; + border-right:1px solid #ff0f0f; +} + +.x-window-plain .x-window-body { + border-left:1px solid #ff0f0f; + border-top:1px solid #ff0f0f; + border-bottom:1px solid #ff0f0f; + border-right:1px solid #ff0f0f; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #ffe3e3; +} + +/* Date Picker */ +.x-date-picker { + border: 1px solid #ff0f0f; + background:#ffffff; +} +.x-date-middle,.x-date-left,.x-date-right { + background-image: url(../images/peppermint/shared/hd-sprite.gif); +} +.x-date-middle .x-btn-with-menu .x-btn-center em { + background-image:url(../images/peppermint/toolbar/btn-arrow-light.gif); +} +.x-date-right a { + background-image: url(../images/peppermint/shared/right-btn.gif); +} +.x-date-left a{ + background-image: url(../images/peppermint/shared/left-btn.gif); +} +.x-date-inner th { + background-image:url(../images/peppermint/shared/glass-bg.gif); + border-bottom: 1px solid #ff0f0f; + color:#000000; +} +.x-date-inner .x-date-selected a{ + background-image:url(../images/peppermint/shared/glass-bg.gif); + border:1px solid #ff0f0f; + color:#000000; +} +.x-date-bottom { + border-top: 1px solid #ff0f0f; + background-image:url(../images/peppermint/shared/glass-bg.gif); +} +.x-date-mp-btns { + background-image:url(../images/peppermint/shared/glass-bg.gif); +} +td.x-date-mp-sel a { + background-image:url(../images/peppermint/shared/glass-bg.gif); + border:1px solid #ff0f0f; + color: #000000 !important; +} +.x-date-mp-ybtn a { + background-image:url(../images/peppermint/panel/tool-sprites.gif); +} +.x-date-mp-btns button { + background-image:url(../images/peppermint/shared/glass-bg.gif); + border-color: #ff0f0f #ff0f0f #ff0f0f #ff0f0f; + color: #000000; +} +.x-date-inner a{ + color:#000000; +} +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ + color:#eeeef0; + background: #ff0f0f; +} +td.x-date-mp-month a,td.x-date-mp-year a { + color:#000000; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { + color:#eeeef0; + background: #ff0f0f; +} + +/* misc */ +.x-html-editor-wrap { + border-color:#ff0f0f; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #ff0f0f; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #ff0f0f; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #ff0f0f; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #ff0f0f; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #ff0f0f; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-pink.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-pink.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,624 @@ +/* + * Ext JS Library 2.0 Alpha 1 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * @license GPL + * @author Kemal Tunador + */ + +.x-panel { + border-style: solid; + border-color: #b381a7; +} +.x-panel-header { + color:#000000; + border:1px solid #b381a7; + background-image:url(../images/pink/panel/white-top-bottom.gif); +} +.x-panel-tl .x-panel-header { + color:#000000; +} +.x-panel-body { + border-color:#b381a7; +} + +.x-panel-bbar .x-toolbar { + border-color:#b381a7; +} + +.x-panel-tbar .x-toolbar { + border-color:#b381a7; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#b381a7; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#b381a7; +} +.x-panel-tc { + background-image:url(../images/pink/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/pink/panel/corners-sprite.gif); + border-color:#b381a7; +} +.x-panel-tr { + background-image:url(../images/pink/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/pink/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/pink/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/pink/panel/corners-sprite.gif); +} +.x-panel-mc { + background:#cbaac3; + color:#000000; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/pink/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/pink/panel/left-right.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#cbaac3; +} + +.x-panel-ghost ul { + border-color:#b381a7; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #b381a7; +} + +/* Grid */ +.x-grid3-row { + color:#000000; +} +.x-grid3-row-over { + border:1px solid #b381a7; + background-image:url(../images/pink/grid/row-over.gif); +} +.x-grid3-header{ + background-image:url(../images/pink/grid/grid3-hrow.gif); +} +.x-grid3-header-pop-inner { + border-left:1px solid #a36a95; + background-image:url(../images/pink/grid/hd-pop.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #a36a95; + border-right:1px solid #a36a95; +} +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background-image:url(../images/pink/grid/grid3-hrow-over.gif); + background-color:#c785b7; +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background-image:url(../images/pink/grid/grid3-hrow-over.gif); +} +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ + background-image:url(../images/pink/grid/grid-hrow.gif); + color:#666666; + border-top:1px solid #af73a1; + border-right:1px solid #a36a95 !important; +} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ + background-image:url(../images/pink/grid/grid3-special-col-bg.gif); + color:#eeeeee !important; +} +.x-grid3-hd-btn { + background-image:url(../images/pink/grid/grid3-hd-btn.gif); +} +.x-grid3-body .x-grid3-td-expander { + background-image:url(../images/pink/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-checker { + background-image:url(../images/pink/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-numberer { + background-image:url(../images/pink/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background-image:url(../images/pink/grid/grid3-special-col-sel-bg.gif); +} +.x-grid3-hd-row td { + border-left:1px solid #d99ac8; + border-right:1px solid #af73a1; +} +.x-grid3-row-selected { + background: #c785b7; + border:1px dotted #b381a7; +} + +/* Menu */ + +.x-menu { + border: 1px solid #9f6696; + background-color:#d5b4cf; + background-image:url(../images/pink/menu/menu.gif); +} +.x-menu-sep { + background-color:#e9cbe4; + border-bottom:1px solid #784971; +} +.x-menu-plain { + background:#d5b4cf !important; +} +.x-menu-item-active { + background-image:url(../images/pink/menu/item-over.gif); + background-color:#e5addd; + border:1px solid #aa64a0; +} +.x-menu a.x-menu-item { + color:#222222; +} +.x-menu-item-active a.x-menu-item { + color: #000000; +} + +/* Tools */ +.x-tool { + background-image:url(../images/pink/panel/tool-sprites.gif); +} + +/* Buttons */ + +.x-btn-text{ + color: #000000; + font-weight:bold !important; +} +.x-btn-left{ + background-image:url(../images/pink/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/pink/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/pink/button/btn-sprite.gif); +} +.x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/pink/button/btn-arrow.gif); +} +.x-btn-with-menu .x-btn-center em { + background-image:url(../images/pink/toolbar/btn-arrow.gif); +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background-image:url(../images/pink/toolbar/btn-arrow.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#e2b4d5; /* f1f2f4 */ +} + +.x-accordion-hd { + background-image:url(../images/pink/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#e2b4d5; + border-color:#aa679a; +} +.x-layout-collapsed-over{ + background-color:#d578aa; +} + + +/* qtips */ +.x-tip .x-tip-close{ + background-image: url(../images/pink/qtip/close.gif); +} +.x-tip .x-tip-tc { + background-image:url(../images/pink/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tl { + background-image:url(../images/pink/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tr { + background-image:url(../images/pink/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bc { + background-image:url(../images/pink/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bl { + background-image:url(../images/pink/qtip/tip-sprite.gif); +} +.x-tip .x-tip-br { + background-image:url(../images/pink/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ml { + background-image:url(../images/pink/qtip/tip-sprite.gif); +} +.x-tip .x-tip-mr { + background-image:url(../images/pink/qtip/tip-sprite.gif); +} +.x-tip .x-tip-header-text { + color:#000000; +} +.x-tip .x-tip-body { + color:#111111; +} +/* Toolbars */ + +.x-toolbar{ + border-color:#b381a7; + background:#b4da8f url(../images/pink/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#222222; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/pink/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/pink/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/pink/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/pink/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/pink/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#000000; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/pink/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/pink/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/pink/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/pink/grid/grid-split.gif); +} +.x-paging-info { + color:#000000; +} + +/* Form */ + +.x-form-field-wrap .x-form-trigger{ + background-image:url(../images/pink/form/trigger.gif); + border-bottom: 1px solid #aa679a; +} +.x-form-field-wrap .x-form-date-trigger{ + background-image: url(../images/pink/form/date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger{ + background-image: url(../images/pink/form/clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger{ + background-image: url(../images/pink/form/search-trigger.gif); +} + +.x-form-text, textarea.x-form-field{ + border: 1px solid #aa679a; +} +.x-form-select-one { + border: 1px solid #aa679a; +} +.x-item-disabled .x-form-trigger-over{ + border-bottom: 1px solid #aa679a; +} +.x-item-disabled .x-form-trigger-click{ + border-bottom: 1px solid #aa679a; +} +.x-form fieldset { + border:1px solid #aa679a; +} +.x-trigger-wrap-focus .x-form-trigger{ + border-bottom: 1px solid #aa679a; +} +.x-form-focus, textarea.x-form-focus{ + border: 1px solid #aa679a; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #f8e2f2; + border-color:#aa679a; +} + + +.x-tab-panel-header { + border-color:#aa679a; +} + +.x-tab-panel-footer { + border-color:#aa679a; +} + +ul.x-tab-strip-top{ + background: #f8e2f2 url(../images/pink/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#aa679a; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/pink/tabs/tab-strip-btm-bg.gif); + border-color:#aa679a; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#000000; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#111111; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/pink/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/pink/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/pink/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/pink/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/pink/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/pink/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/pink/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/pink/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/pink/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#aa679a; + background:#eeeeee; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #aa679a; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #aa679a; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#aa679a; + background: #f8e2f2; +} + +.x-tab-scroller-left { + background-image: url(../images/pink/tabs/scroll-left.gif); + border-color:#aa679a; +} +.x-tab-scroller-right { + background-image: url(../images/pink/tabs/scroll-right.gif); + border-color:#aa679a; +} + +/* Window */ + +.x-window-proxy { + background:#363636; + border-color:#aa679a; +} + +.x-window-tl .x-window-header { + color:#000000; +} +.x-window-tc { + background-image:url(../images/pink/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/pink/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/pink/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/pink/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/pink/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/pink/window/right-corners.png); +} +.x-window-mc { + border:1px solid #a34b94; + background:#d59bcc; +} + +.x-window-ml { + background-image:url(../images/pink/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/pink/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#aa679a; +} +.x-panel-collapsed .x-window-tl { + border-color:#aa679a; +} + +.x-window-plain .x-window-mc { + color: #eeeeee; + background: #b456a5; + border-left:1px solid #aa679a; + border-top:1px solid #aa679a; + border-bottom:1px solid #a34b94; + border-right:1px solid #a34b94; +} + +.x-window-plain .x-window-body { + border-left:1px solid #a34b94; + border-top:1px solid #a34b94; + border-bottom:1px solid #a34b94; + border-right:1px solid #a34b94; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #b456a5; +} + +/* Date Picker */ +.x-date-picker { + border: 1px solid #aa679a; + background:#ffffff; +} +.x-date-middle,.x-date-left,.x-date-right { + background-image: url(../images/pink/shared/hd-sprite.gif); +} +.x-date-middle .x-btn-with-menu .x-btn-center em { + background-image:url(../images/pink/toolbar/btn-arrow-light.gif); +} +.x-date-right a { + background-image: url(../images/pink/shared/right-btn.gif); +} +.x-date-left a{ + background-image: url(../images/pink/shared/left-btn.gif); +} +.x-date-inner th { + background-image:url(../images/pink/shared/glass-bg.gif); + border-bottom: 1px solid #aa679a; + color:#000000; +} +.x-date-inner .x-date-selected a{ + background-image:url(../images/pink/shared/glass-bg.gif); + border:1px solid #aa679a; + color:#000000; +} +.x-date-bottom { + border-top: 1px solid #aa679a; + background-image:url(../images/pink/shared/glass-bg.gif); +} +.x-date-mp-btns { + background-image:url(../images/pink/shared/glass-bg.gif); +} +td.x-date-mp-sel a { + background-image:url(../images/pink/shared/glass-bg.gif); + border:1px solid #aa679a; + color: #000000 !important; +} +.x-date-mp-ybtn a { + background-image:url(../images/pink/panel/tool-sprites.gif); +} +.x-date-mp-btns button { + background-image:url(../images/pink/shared/glass-bg.gif); + border-color: #aa679a #aa679a #aa679a #aa679a; + color: #000000; +} +.x-date-inner a{ + color:#000000; +} +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ + color:#eeeef0; + background: #aa679a; +} +td.x-date-mp-month a,td.x-date-mp-year a { + color:#000000; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { + color:#eeeef0; + background: #aa679a; +} + +/* misc */ +.x-html-editor-wrap { + border-color:#aa679a; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #aa679a; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #aa679a; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #aa679a; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #aa679a; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #aa679a; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-purple.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-purple.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,606 @@ +/* + * Ext JS Library 2.0 Alpha 1 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * @license LGPL + * @author Kemal Tunador + */ + +.x-panel { + border-style: solid; + border-color: #ff82a3; +} +.x-panel-header { + color:#331033; + border:1px solid #ff82a3; + background-image:url(../images/purple/panel/white-top-bottom.gif); +} + +.x-panel-body { + border-color:#ff82a3; +} + +.x-panel-bbar .x-toolbar { + border-color:#ff82a3; +} + +.x-panel-tbar .x-toolbar { + border-color:#ff82a3; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#ff82a3; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#ff82a3; +} +.x-panel-tl .x-panel-header { + color:#331033; +} +.x-panel-tc { + background-image:url(../images/purple/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/purple/panel/corners-sprite.gif); + border-color:#ff82a3; +} +.x-panel-tr { + background-image:url(../images/purple/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/purple/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/purple/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/purple/panel/corners-sprite.gif); +} +.x-panel-mc { + background:#ffd6df; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/purple/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/purple/panel/left-right.gif); +} + +/* Grid */ +.x-grid3-row { + color:#000000; +} +.x-grid3-row-over { + border:1px solid #ffd6df; + background-image:url(../images/purple/grid/row-over.gif); +} +.x-grid3-header{ + background-image:url(../images/purple/grid/grid3-hrow.gif); +} +.x-grid3-header-pop-inner { + border-left:1px solid #ffd6df; + background-image:url(../images/purple/grid/hd-pop.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #ff82a3; + border-right:1px solid #ff82a3; +} +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background-image:url(../images/purple/grid/grid3-hrow-over.gif); +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background-image:url(../images/purple/grid/grid3-hrow-over.gif); +} +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ + background-image:url(../images/purple/grid/grid-hrow.gif); + color:black; + border-top:1px solid white; + border-right:1px solid #ff82a3 !important; +} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ + background-image:url(../images/purple/grid/grid3-special-col-bg.gif); + color:black !important; +} +.x-grid3-hd-btn { + background-image:url(../images/purple/grid/grid3-hd-btn.gif); +} +.x-grid3-body .x-grid3-td-expander { + background-image:url(../images/purple/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-checker { + background-image:url(../images/purple/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-td-numberer { + background-image:url(../images/purple/grid/grid3-special-col-bg.gif); +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, +.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background-image:url(../images/purple/grid/grid3-special-col-sel-bg.gif); +} +.x-grid3-row-selected { + background: #ffd6df; + border:1px dotted #ff82a3; +} + +/* Menu */ +.x-menu { + border: 1px solid #ffc6cf; + background-image:url(../images/purple/menu/menu.gif); +} +.x-menu-sep { + background-color:#ffffff; + border-bottom:1px solid #ffc6cf; +} +.x-menu-item-active { + background-image:url(../images/purple/menu/item-over.gif); + border:1px solid #ff82a3; +} + +/* Tools */ +.x-tool { + background-image:url(../images/purple/panel/tool-sprites.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#ffa7be; +} + +.x-panel-ghost ul { + border-color:#ff82a3; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #ffd6df; +} + +/* Buttons */ + +.x-btn-text{ +color: #331033; +} +.x-btn-left{ + background-image:url(../images/purple/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/purple/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/purple/button/btn-sprite.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#f2f1f0; /* f1f2f4 */ +} + +.x-accordion-hd { + background-image:url(../images/purple/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#ffd6df; + border-color:#ffa7be; +} +.x-layout-collapsed-over{ + background-color:#ffb6ca; +} + + +/* qtips */ +.x-tip .x-tip-close{ + background-image: url(../images/purple/qtip/close.gif); +} +.x-tip .x-tip-tc { + background-image:url(../images/purple/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tl { + background-image:url(../images/purple/qtip/tip-sprite.gif); +} +.x-tip .x-tip-tr { + background-image:url(../images/purple/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bc { + background-image:url(../images/purple/qtip/tip-sprite.gif); +} +.x-tip .x-tip-bl { + background-image:url(../images/purple/qtip/tip-sprite.gif); +} +.x-tip .x-tip-br { + background-image:url(../images/purple/qtip/tip-sprite.gif); +} +.x-tip .x-tip-ml { + background-image:url(../images/purple/qtip/tip-sprite.gif); +} +.x-tip .x-tip-mr { + background-image:url(../images/purple/qtip/tip-sprite.gif); +} +.x-tip .x-tip-header-text { + color:#331033; +} +.x-tip .x-tip-body { + color:#331033; +} +/* Toolbars */ + +.x-toolbar{ + border-color:#ff82a3; + background:#ffc3d6 url(../images/purple/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#331033; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/purple/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/purple/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/purple/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/purple/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/purple/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#000000; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/purple/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/purple/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/purple/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/purple/grid/grid-split.gif); +} +.x-paging-info { + color:#331033; +} + +/* Form */ + +.x-form-field-wrap .x-form-trigger{ + background-image:url(../images/purple/form/trigger.gif); + border-bottom: 1px solid #ff7f7e; +} +.x-form-field-wrap .x-form-date-trigger{ + background-image: url(../images/purple/form/date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger{ + background-image: url(../images/purple/form/clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger{ + background-image: url(../images/purple/form/search-trigger.gif); +} + +.x-form-text, textarea.x-form-field{ + border: 1px solid #ff7f7e; +} +.x-form-select-one { + border: 1px solid #ff7f7e; +} +.x-item-disabled .x-form-trigger-over{ + border-bottom: 1px solid #ff7f7e; +} +.x-item-disabled .x-form-trigger-click{ + border-bottom: 1px solid #ff7f7e; +} +.x-form fieldset { + border:1px solid #ff7f7e; +} +.x-trigger-wrap-focus .x-form-trigger{ + border-bottom: 1px solid #ff5892; +} +.x-form-focus, textarea.x-form-focus{ + border: 1px solid #ff5892; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #ffdce5; + border-color:#ff7197; +} + + +.x-tab-panel-header { + border-color:#ff7197; +} + +.x-tab-panel-footer { + border-color:#ff7197; +} + +ul.x-tab-strip-top{ + background:#ffbbcb url(../images/purple/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#ff7197; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/purple/tabs/tab-strip-btm-bg.gif); + border-color:#ff7197; +} + +.x-tab-strip span.x-tab-strip-text { + color:#553355; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#000000; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#331033; +} + +.x-tab-strip-disabled .x-tabs-text { + color:#775577; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/purple/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/purple/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/purple/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/purple/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/purple/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/purple/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/purple/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/purple/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/purple/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#ff7197; + background:#eeeeee; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #ff7197; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #ff7197; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#ff7197; + background: #ffdce5; +} + +.x-tab-scroller-left { + background-image: url(../images/purple/tabs/scroll-left.gif); + border-color:#ff7197; +} +.x-tab-scroller-right { + background-image: url(../images/purple/tabs/scroll-right.gif); + border-color:#ff7197; +} + +/* Buttons */ + +.x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/purple/button/btn-arrow.gif); +} +.x-btn-with-menu .x-btn-center em { + background-image:url(../images/purple/toolbar/btn-arrow.gif); +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background-image:url(../images/purple/toolbar/btn-arrow.gif); +} + +/* Window */ + +.x-window-proxy { + background:#ffd6df; + border-color:#ffa7be; +} + +.x-window-tl .x-window-header { + color:#331033; +} +.x-window-tc { + background-image:url(../images/purple/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/purple/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/purple/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/purple/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/purple/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/purple/window/right-corners.png); +} +.x-window-mc { + border:1px solid #ff82a3; + background:#ffd6df; +} + +.x-window-ml { + background-image:url(../images/purple/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/purple/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#ff82a3; +} +.x-panel-collapsed .x-window-tl { + border-color:#ff82a3; +} + +.x-window-plain .x-window-mc { + background: #f5bdcd; + border-right:1px solid #ffa7be; + border-bottom:1px solid #ffa7be; + border-top:1px solid #ff82a3; + border-left:1px solid #ff82a3; +} + +.x-window-plain .x-window-body { + border-left:1px solid #ff82a3; + border-top:1px solid #ff82a3; + border-bottom:1px solid #ffa7be; + border-right:1px solid #ffa7be; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #f5bdcd; +} + +/* Date Picker */ +.x-date-picker { + border: 1px solid #ff82a3; + background:#ffd6df; +} +.x-date-middle,.x-date-left,.x-date-right { + background-image: url(../images/purple/shared/hd-sprite.gif); +} +.x-date-middle .x-btn-with-menu .x-btn-center em { + background-image:url(../images/purple/toolbar/btn-arrow-light.gif); +} +.x-date-right a { + background-image: url(../images/purple/shared/right-btn.gif); +} +.x-date-left a{ + background-image: url(../images/purple/shared/left-btn.gif); +} +.x-date-inner th { + background-image:url(../images/purple/shared/glass-bg.gif); + border-bottom: 1px solid #ff82a3; + color:#331033; +} +.x-date-inner .x-date-selected a{ + background-image:url(../images/purple/shared/glass-bg.gif); + border:1px solid #ff82a3; + color:#331033; +} +.x-date-bottom { + border-top: 1px solid #ff82a3; + background-image:url(../images/purple/shared/glass-bg.gif); +} +.x-date-mp-btns { + background-image:url(../images/purple/shared/glass-bg.gif); +} +td.x-date-mp-sel a { + background-image:url(../images/purple/shared/glass-bg.gif); + border:1px solid #ff82a3; + color: #331033; +} +.x-date-mp-ybtn a { + background-image:url(../images/purple/panel/tool-sprites.gif); +} +.x-date-mp-btns button { + background-image:url(../images/purple/shared/glass-bg.gif); + border-color: #ffa7be #ff82a3 #ff82a3 #ffa7be; + color: #331033 +} +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ + color:#331033; + background: #ff82a3; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { + color:#331033; + background: #ff82a3; +} + +/* misc */ +.x-html-editor-wrap { + border-color:#ffd6df; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #ffd6df; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #ffd6df; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #ffd6df; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #ffd6df; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #ffd6df; +} \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-silverCherry.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-silverCherry.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1546 @@ +/* + * Ext JS Library 2.0.1 + * Copyright(c) 2006-2008, Ext JS, LLC. + * licensing@extjs.com + * + * http://extjs.com/license + */ + +html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;} +img,body,html{border:0;} +address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;} +ol,ul{list-style:none;} +caption,th{text-align:left;} +h1,h2,h3,h4,h5,h6{font-size:100%;} +q:before,q:after{content:'';} + +.ext-el-mask{z-index:20000;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:100%;height:100%;zoom:1;} +.ext-el-mask-msg{z-index:20001;position:absolute;top:0;left:0;border:1px solid #cfcfcf;background:#fafafa url(../images/silverCherry/box_tb-blue.gif) repeat-x 0 -16px;padding:2px;} +.ext-el-mask-msg div{padding:5px 10px 5px 10px;background:#eee;border:1px solid #d9d9d9;color:#222;font:normal 11px tahoma,arial,helvetica,sans-serif;cursor:wait;} +.ext-shim{position:absolute;visibility:hidden;left:0;top:0;overflow:hidden;} +.ext-ie .ext-shim{filter:alpha(opacity=0);} +.ext-ie6 .ext-shim{margin-left:5px;margin-top:3px;} +.x-mask-loading div{padding:5px 10px 5px 25px;background:#fbfbfb url( '../images/silverCherry/grid_loading.gif' ) no-repeat 5px 5px;line-height:16px;} +.x-hidden,.x-hide-offsets{position:absolute;left:-10000px;top:-10000px;visibility:hidden;} +.x-hide-display{display:none!important;} +.x-hide-visibility{visibility:hidden!important;} +.x-masked{overflow:hidden!important;} +.x-masked select,.x-masked object,.x-masked embed{visibility:hidden;} +.x-layer{visibility:hidden;} +.x-unselectable,.x-unselectable *{-moz-user-select:none;-khtml-user-select:none;} +.x-repaint{zoom:1;background-color:transparent;-moz-outline:none;} +.x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);} +.x-item-disabled *{color:gray!important;cursor:default!important;} +.x-splitbar-proxy{position:absolute;visibility:hidden;z-index:20001;background:#aaa;zoom:1;line-height:1px;font-size:1px;overflow:hidden;} +.x-splitbar-h,.x-splitbar-proxy-h{cursor:e-resize;cursor:col-resize;} +.x-splitbar-v,.x-splitbar-proxy-v{cursor:s-resize;cursor:row-resize;} +.x-color-palette{width:150px;height:92px;cursor:pointer;} +.x-color-palette a{border:1px solid #fff;float:left;padding:2px;text-decoration:none;-moz-outline:0 none;outline:0 none;cursor:pointer;} +.x-color-palette a:hover,.x-color-palette a.x-color-palette-sel{border:1px solid #f2f2f2;background:#fcfcfc;} +.x-color-palette em{display:block;border:1px solid #ababab;} +.x-color-palette em span{cursor:pointer;display:block;height:10px;line-height:10px;width:10px;} +.x-ie-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;background:#777;zoom:1;} +.x-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;} +.x-shadow *{overflow:hidden;} +.x-shadow *{padding:0;border:0;margin:0;clear:none;zoom:1;} +.x-shadow .xstc,.x-shadow .xsbc{height:6px;float:left;} +.x-shadow .xstl,.x-shadow .xstr,.x-shadow .xsbl,.x-shadow .xsbr{width:6px;height:6px;float:left;} +.x-shadow .xsc{width:100%;} +.x-shadow .xsml,.x-shadow .xsmr{width:6px;float:left;height:100%;} +.x-shadow .xsmc{float:left;height:100%;background:transparent url( ../images/silverCherry/shadow-c.png );} +.x-shadow .xst,.x-shadow .xsb{height:6px;overflow:hidden;width:100%;} +.x-shadow .xsml{background:transparent url( ../images/silverCherry/shadow-lr.png ) repeat-y 0 0;} +.x-shadow .xsmr{background:transparent url( ../images/silverCherry/shadow-lr.png ) repeat-y -6px 0;} +.x-shadow .xstl{background:transparent url( ../images/silverCherry/shadow.png ) no-repeat 0 0;} +.x-shadow .xstc{background:transparent url( ../images/silverCherry/shadow.png ) repeat-x 0 -30px;} +.x-shadow .xstr{background:transparent url( ../images/silverCherry/shadow.png ) repeat-x 0 -18px;} +.x-shadow .xsbl{background:transparent url( ../images/silverCherry/shadow.png ) no-repeat 0 -12px;} +.x-shadow .xsbc{background:transparent url( ../images/silverCherry/shadow.png ) repeat-x 0 -36px;} +.x-shadow .xsbr{background:transparent url( ../images/silverCherry/shadow.png ) repeat-x 0 -6px;} +.loading-indicator{font-size:11px;background-image:url(../images/silverCherry/grid_loading.gif);background-repeat:no-repeat;background-position:left;padding-left:20px;line-height:16px;margin:3px;} +.x-text-resize{position:absolute;left:-1000px;top:-1000px;visibility:hidden;zoom:1;} +.x-drag-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background-image:url(../images/silverCherry/s.gif);z-index:20000;} +.x-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;} +.x-spotlight{z-index:8999;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:0;height:0;zoom:1;} + +.x-tab-panel{overflow:hidden;} +.x-tab-panel-header,.x-tab-panel-footer{background:#fcfcfc;border:1px solid #e3e3e3;overflow:hidden;zoom:1;} +.x-tab-panel-header{border:1px solid #e3e3e3;padding-bottom:2px;} +.x-tab-panel-footer{border:1px solid #e3e3e3;padding-top:2px;} +.x-tab-strip-wrap{width:100%;overflow:hidden;position:relative;zoom:1;} +ul.x-tab-strip{display:block;width:5000px;zoom:1;} +ul.x-tab-strip-top{padding-top:1px;background:url(../images/silverCherry/tabs_tab-strip-bg.gif) #f5f5f5 repeat-x bottom;border-bottom:1px solid #e3e3e3;} +ul.x-tab-strip-bottom{padding-bottom:1px;background:url(../images/silverCherry/tabs_tab-strip-btm-bg.gif) #f5f5f5 repeat-x top;border-top:1px solid #e3e3e3;border-bottom:0 none;} +.x-tab-panel-header-plain .x-tab-strip-top{background:transparent!important;padding-top:0!important;} +.x-tab-panel-header-plain{background:transparent!important;border-width:0!important;padding-bottom:0!important;} +.x-tab-panel-header-plain .x-tab-strip-spacer{border:1px solid #e3e3e3;border-top:0 none;height:2px;background:#fcfcfc;font-size:1px;line-height:1px;} +.ext-border-box .x-tab-panel-header-plain .x-tab-strip-spacer{height:3px;} +ul.x-tab-strip li{float:left;margin-left:2px;} +ul.x-tab-strip li.x-tab-edge{float:left;margin:0!important;padding:0!important;border:0 none!important;font-size:1px!important;line-height:1px!important;overflow:hidden;zoom:1;background:transparent!important;width:1px;} +.x-tab-strip a,.x-tab-strip span,.x-tab-strip em{display:block;} +.x-tab-strip a{text-decoration:none!important;-moz-outline:none;outline:none;cursor:pointer;} +.x-tab-strip-inner{overflow:hidden;text-overflow:ellipsis;} +.x-tab-strip span.x-tab-strip-text{font:normal 11px tahoma,arial,helvetica;color:#a3a3a3;white-space:nowrap;cursor:pointer;padding:4px 0;} +.x-tab-strip .x-tab-with-icon .x-tab-right{padding-left:6px;} +.x-tab-strip .x-tab-with-icon span.x-tab-strip-text{padding-left:20px;background-position:0 3px;background-repeat:no-repeat;} +.x-tab-strip-over span.x-tab-strip-text{color:#8c8c8c;} +.x-tab-strip-active{cursor:default;} +.x-tab-strip-active span.x-tab-strip-text{cursor:default;color:#8c8c8c;font-weight:bold;} +.x-tab-strip-disabled .x-tabs-text{cursor:default;color:#aaa;} +.x-tab-panel-body{overflow:hidden;} +.x-tab-panel-bwrap{overflow:hidden;} +.ext-ie .x-tab-strip .x-tab-right{position:relative;} +.x-tab-strip-top .x-tab-strip-active .x-tab-right{margin-bottom:-1px;} +.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-bottom:5px;} +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{margin-top:-1px;} +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-top:5px;} +.x-tab-strip-top .x-tab-right{background:transparent url(../images/silverCherry/tabs_tabs-sprite.gif) no-repeat 0 -51px;padding-left:10px;} +.x-tab-strip-top .x-tab-left{background:transparent url(../images/silverCherry/tabs_tabs-sprite.gif) no-repeat right -351px;padding-right:10px;} +.x-tab-strip-top .x-tab-strip-inner{background:transparent url(../images/silverCherry/tabs_tabs-sprite.gif) repeat-x 0 -201px;} +.x-tab-strip-top .x-tab-strip-over .x-tab-right{background-position:0 -101px;} +.x-tab-strip-top .x-tab-strip-over .x-tab-left{background-position:right -401px;} +.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner{background-position:0 -251px;} +.x-tab-strip-top .x-tab-strip-active .x-tab-right{background-position:0 0;} +.x-tab-strip-top .x-tab-strip-active .x-tab-left{background-position:right -301px;} +.x-tab-strip-top .x-tab-strip-active .x-tab-strip-inner{background-position:0 -151px;} +.x-tab-strip-bottom .x-tab-right{background:url(../images/silverCherry/tabs_tab-btm-inactive-right-bg.gif) no-repeat bottom right;} +.x-tab-strip-bottom .x-tab-left{background:url(../images/silverCherry/tabs_tab-btm-inactive-left-bg.gif) no-repeat bottom left;} +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{background:url(../images/silverCherry/tabs_tab-btm-right-bg.gif) no-repeat bottom left;} +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left{background:url(../images/silverCherry/tabs_tab-btm-left-bg.gif) no-repeat bottom right;} +.x-tab-strip-bottom .x-tab-left{padding:0 10px;} +.x-tab-strip-bottom .x-tab-right{padding:0;} +.x-tab-strip .x-tab-strip-close{display:none;} +.x-tab-strip-closable{position:relative;} +.x-tab-strip-closable .x-tab-left{padding-right:19px;} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../images/silverCherry/tabs_tab-close.gif);opacity:.6;-moz-opacity:.6;background-repeat:no-repeat;display:block;width:11px;height:11px;position:absolute;top:3px;right:3px;cursor:pointer;z-index:2;} +.x-tab-strip .x-tab-strip-active a.x-tab-strip-close{opacity:.8;-moz-opacity:.8;} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{background-image:url(../images/silverCherry/tabs_tab-close.gif);opacity:1;-moz-opacity:1;} +.x-tab-panel-body{border:1px solid #e3e3e3;background:#fff;} +.x-tab-panel-body-top{border-top:0 none;} +.x-tab-panel-body-bottom{border-bottom:0 none;} +.x-tab-scroller-left{background:transparent url(../images/silverCherry/tabs_scroll-left.gif) no-repeat -18px 0;border-bottom:1px solid #e3e3e3;width:18px;position:absolute;left:0;top:0;z-index:10;cursor:pointer;} +.x-tab-scroller-left-over{background-position:0 0;} +.x-tab-scroller-left-disabled{background-position:-18px 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;} +.x-tab-scroller-right{background:transparent url(../images/silverCherry/tabs_scroll-right.gif) no-repeat 0 0;border-bottom:1px solid #e3e3e3;width:18px;position:absolute;right:0;top:0;z-index:10;cursor:pointer;} +.x-tab-scroller-right-over{background-position:-18px 0;} +.x-tab-scroller-right-disabled{background-position:0 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;} +.x-tab-scrolling .x-tab-strip-wrap{margin-left:18px;margin-right:18px;} +.x-tab-scrolling{position:relative;} +.x-tab-panel-bbar .x-toolbar{border:1px solid #e8e8e8;border-top:0 none;overflow:hidden;padding:2px;} +.x-tab-panel-tbar .x-toolbar{border:1px solid #e8e8e8;border-top:0 none;overflow:hidden;padding:2px;} +.x-border-layout-ct .x-tab-panel{background:white;} + +.x-form-field{margin:0;font:normal 12px tahoma,arial,helvetica,sans-serif;} +.x-form-text,textarea.x-form-field{padding:1px 3px;background:#fff url(../images/silverCherry/form_text-bg.gif) repeat-x 0 0;border:1px solid #c7c7c7;} +textarea.x-form-field{padding:2px 3px;} +.x-form-text{height:22px;line-height:18px;vertical-align:middle;} +.ext-ie .x-form-text{margin:-1px 0;height:22px;line-height:18px;} +.ext-ie textarea.x-form-field{margin:-1px 0;} +.ext-strict .x-form-text{height:18px;} +.ext-safari .x-form-text{height:20px;padding:0 3px;} +.ext-safari.ext-mac textarea.x-form-field{margin-bottom:-2px;} +.ext-gecko .x-form-text{padding-top:2px;padding-bottom:0;} +textarea{resize:none;} +.x-form-select-one{height:20px;line-height:18px;vertical-align:middle;background-color:#fff;border:1px solid #c7c7c7;} +.x-form-field-wrap{position:relative;zoom:1;white-space:nowrap;} +.x-editor .x-form-check-wrap{background:#fff;} +.x-form-field-wrap .x-form-trigger{width:17px;height:21px;border:0;background:transparent url(../images/silverCherry/form_trigger.gif) no-repeat 0 0;cursor:pointer;border-bottom:1px solid #c7c7c7;position:absolute;top:0;} +.ext-safari .x-form-field-wrap .x-form-trigger{height:21px;} +.x-form-field-wrap .x-form-date-trigger{background-image:url(../images/silverCherry/form_date-trigger.gif);cursor:pointer;} +.x-form-field-wrap .x-form-clear-trigger{background-image:url(../images/silverCherry/form_clear-trigger.gif);cursor:pointer;} +.x-form-field-wrap .x-form-search-trigger{background-image:url(../images/silverCherry/form_search-trigger.gif);cursor:pointer;} +.ext-safari .x-form-field-wrap .x-form-trigger{right:0;} +.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{position:static;top:auto;vertical-align:top;} +.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;} +.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;} +.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;} +.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;} +.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;} +.x-trigger-wrap-focus .x-form-trigger{border-bottom:1px solid #d9d9d9;} +.x-item-disabled .x-form-trigger-over{background-position:0 0!important;border-bottom:1px solid #c7c7c7;} +.x-item-disabled .x-form-trigger-click{background-position:0 0!important;border-bottom:1px solid #c7c7c7;} +.x-form-focus,textarea.x-form-focus{border:1px solid #d9d9d9;} +.x-form-invalid,textarea.x-form-invalid{background:#fff url(../images/silverCherry/grid_invalid_line.gif) repeat-x bottom;border:1px solid #ff7870;} +.ext-safari .x-form-invalid{background-color:#fee;border:1px solid #ff7870;} +.x-editor{visibility:hidden;padding:0;margin:0;} +.x-form-check-wrap{line-height:18px;} +.ext-ie .x-form-check-wrap input{width:15px;height:15px;} +.x-editor .x-form-check-wrap{padding:3px;} +.x-editor .x-form-checkbox{height:13px;} +.x-form-grow-sizer{font:normal 12px tahoma,arial,helvetica,sans-serif;left:-10000px;padding:8px 3px;position:absolute;visibility:hidden;top:-10000px;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;zoom:1;} +.x-form-grow-sizer p{margin:0!important;border:0 none!important;padding:0!important;} +.x-form-item{font:normal 12px tahoma,arial,helvetica,sans-serif;display:block;margin-bottom:4px;} +.x-form-item label{display:block;float:left;width:100px;padding:3px;padding-left:0;clear:left;z-index:2;position:relative;} +.x-form-element{padding-left:105px;position:relative;} +.x-form-invalid-msg{color:#e00;padding:2px;padding-left:18px;font:normal 11px tahoma,arial,helvetica,sans-serif;background:transparent url(../images/silverCherry/shared_warning.gif) no-repeat 0 2px;line-height:16px;width:200px;} +.x-form-label-right label{text-align:right;} +.x-form-label-top .x-form-item label{width:auto;float:none;clear:none;display:inline;margin-bottom:4px;position:static;} +.x-form-label-top .x-form-element{padding-left:0;padding-top:4px;} +.x-form-label-top .x-form-item{padding-bottom:4px;} +.x-form-empty-field{color:gray;} +.x-small-editor .x-form-field{font:normal 11px arial,tahoma,helvetica,sans-serif;} +.x-small-editor .x-form-text{height:20px;line-height:16px;vertical-align:middle;} +.ext-ie .x-small-editor .x-form-text{margin-top:-1px!important;margin-bottom:-1px!important;height:20px!important;line-height:16px!important;} +.ext-strict .x-small-editor .x-form-text{height:16px!important;} +.ext-safari .x-small-editor .x-form-field{font:normal 12px arial,tahoma,helvetica,sans-serif;} +.ext-ie .x-small-editor .x-form-text{height:20px;line-height:16px;} +.ext-border-box .x-small-editor .x-form-text{height:20px;} +.x-small-editor .x-form-select-one{height:20px;line-height:16px;vertical-align:middle;} +.x-small-editor .x-form-num-field{text-align:right;} +.x-small-editor .x-form-field-wrap .x-form-trigger{height:19px;} +.x-form-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;} +.x-form-clear-left{clear:left;height:0;overflow:hidden;line-height:0;font-size:0;} +.x-form-cb-label{width:'auto'!important;float:none!important;clear:none!important;display:inline!important;margin-left:4px;} +.x-form-column{float:left;padding:0;margin:0;width:48%;overflow:hidden;zoom:1;} +.x-form .x-form-btns-ct .x-btn{float:right;clear:none;} +.x-form .x-form-btns-ct .x-form-btns td{border:0;padding:0;} +.x-form .x-form-btns-ct .x-form-btns-right table{float:right;clear:none;} +.x-form .x-form-btns-ct .x-form-btns-left table{float:left;clear:none;} +.x-form .x-form-btns-ct .x-form-btns-center{text-align:center;} +.x-form .x-form-btns-ct .x-form-btns-center table{margin:0 auto;} +.x-form .x-form-btns-ct table td.x-form-btn-td{padding:3px;} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;} +.x-form .x-form-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;} +.x-form .x-form-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;} +.x-form .x-form-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;} +.x-form-invalid-icon{width:16px;height:18px;visibility:hidden;position:absolute;left:0;top:0;display:block;background:transparent url(../images/silverCherry/form_exclamation.gif) no-repeat 0 2px;} +.x-fieldset{border:1px solid #c7c7c7;padding:10px;margin-bottom:10px;} +.x-fieldset legend{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#8c8c8c;} +.ext-ie .x-fieldset legend{margin-bottom:10px;} +.ext-ie .x-fieldset{padding-top:0;padding-bottom:5px;} +.x-fieldset legend .x-tool-toggle{margin-right:3px;margin-left:0;float:left!important;} +.x-fieldset legend input{margin-right:3px;float:left!important;height:13px;width:13px;} +fieldset.x-panel-collapsed{padding-bottom:0!important;border-width:1px 0 0 0!important;} +fieldset.x-panel-collapsed .x-fieldset-bwrap{visibility:hidden;position:absolute;left:-1000px;top:-1000px;} +.ext-ie .x-fieldset-bwrap{zoom:1;} +.ext-ie td .x-form-text{position:relative;top:-1px;} +.x-fieldset-noborder{border:0 none transparent;} +.x-fieldset-noborder legend{margin-left:-3px;} +.ext-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px;} +.ext-ie .x-fieldset-noborder legend span{position:absolute;left:-5px;} +.ext-gecko .x-window-body .x-form-item{-moz-outline:none;} +.ext-gecko .x-form-item{-moz-outline:none;} +.x-hide-label label.x-form-item-label{display:none;} +.x-hide-label .x-form-element{padding-left:0!important;} + +.x-btn{font:normal 11px tahoma,verdana,helvetica;cursor:pointer;white-space:nowrap;} +.x-btn button{border:0 none;background:transparent;font:normal 11px tahoma,verdana,helvetica;padding-left:3px;padding-right:3px;cursor:pointer;margin:0;overflow:visible;width:auto;-moz-outline:0 none;outline:0 none;} +* html .ext-ie .x-btn button{width:1px;} +.ext-gecko .x-btn button{padding-left:0;padding-right:0;} +.ext-ie .x-btn button{padding-top:2px;} +.x-btn-icon .x-btn-center .x-btn-text{background-position:center;background-repeat:no-repeat;height:16px;width:16px;cursor:pointer;white-space:nowrap;padding:0;} +.x-btn-icon .x-btn-center{padding:1px;} +.x-btn em{font-style:normal;font-weight:normal;} +.x-btn-text-icon .x-btn-center .x-btn-text{background-position:0 2px;background-repeat:no-repeat;padding-left:18px;padding-top:3px;padding-bottom:2px;padding-right:0;} +.x-btn-left,.x-btn-right{font-size:1px;line-height:1px;} +.x-btn-left{width:3px;height:21px;background:url(../images/silverCherry/button_btn-sprite.gif) no-repeat 0 0;} +.x-btn-right{width:3px;height:21px;background:url(../images/silverCherry/button_btn-sprite.gif) no-repeat 0 -21px;} +.x-btn-left i,.x-btn-right i{display:block;width:3px;overflow:hidden;font-size:1px;line-height:1px;} +.x-btn-center{background:url(../images/silverCherry/button_btn-sprite.gif) repeat-x 0 -42px;vertical-align:middle;text-align:center;padding:0 5px;cursor:pointer;white-space:nowrap;} +.x-btn-over .x-btn-left{background-position:0 -63px;} +.x-btn-over .x-btn-right{background-position:0 -84px;} +.x-btn-over .x-btn-center{background-position:0 -105px;} +.x-btn-click .x-btn-center,.x-btn-menu-active .x-btn-center{background-position:0 -126px;} +.x-btn-disabled *{color:gray!important;cursor:default!important;} +.x-btn-menu-text-wrap .x-btn-center{padding:0 3px;} +.ext-gecko .x-btn-menu-text-wrap .x-btn-center{padding:0 1px;} +.x-btn-menu-arrow-wrap .x-btn-center{padding:0;} +.x-btn-menu-arrow-wrap .x-btn-center button{width:12px!important;height:21px;padding:0!important;display:block;background:transparent url(../images/silverCherry/button_btn-arrow.gif) no-repeat left 3px;} +.x-btn-with-menu .x-btn-center{padding-right:2px!important;} +.x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../images/silverCherry/toolbar_btn-arrow.gif) no-repeat right 0;padding-right:10px;} +.x-btn-text-icon .x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../images/silverCherry/toolbar_btn-arrow.gif) no-repeat right 3px;padding-right:10px;} +.x-btn-pressed .x-btn-left{background:url(../images/silverCherry/button_btn-sprite.gif) no-repeat 0 -63px;} +.x-btn-pressed .x-btn-right{background:url(../images/silverCherry/button_btn-sprite.gif) no-repeat 0 -84px;} +.x-btn-pressed .x-btn-center{background:url(../images/silverCherry/button_btn-sprite.gif) repeat-x 0 -126px;} + +.x-toolbar{border-color:#d4d4d4;border-style:solid;border-width:0 0 1px 0;display:block;padding:2px;background:#f0f0f0 url(../images/silverCherry/toolbar_bg.gif) repeat-x top left;position:relative;zoom:1;} +.x-toolbar .x-item-disabled .x-btn-icon{opacity:.35;-moz-opacity:.35;filter:alpha(opacity=35);} +.x-toolbar td{vertical-align:middle;} +.mso .x-toolbar,.x-grid-mso .x-toolbar{border:0 none;background:url(../images/silverCherry/grid_mso-hd.gif);} +.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 11px tahoma,arial,helvetica,sans-serif;} +.x-toolbar .x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);} +.x-toolbar .x-item-disabled *{color:gray;cursor:default;} +.x-toolbar .x-btn-left{background:none;} +.x-toolbar .x-btn-right{background:none;} +.x-toolbar .x-btn-center{background:none;padding:0;} +.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:2px;} +.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:0;} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{padding:0 2px;} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../images/silverCherry/toolbar_btn-arrow.gif) no-repeat 0 3px;} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../images/silverCherry/toolbar_btn-arrow.gif) no-repeat 0 3px;} +.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button{background-position:0 -47px;} +.x-toolbar .x-btn-over .x-btn-left{background:url(../images/silverCherry/toolbar_tb-btn-sprite.gif) no-repeat 0 0;} +.x-toolbar .x-btn-over .x-btn-right{background:url(../images/silverCherry/toolbar_tb-btn-sprite.gif) no-repeat 0 -21px;} +.x-toolbar .x-btn-over .x-btn-center{background:url(../images/silverCherry/toolbar_tb-btn-sprite.gif) repeat-x 0 -42px;} +.x-toolbar .x-btn-click .x-btn-left,.x-toolbar .x-btn-pressed .x-btn-left,.x-toolbar .x-btn-menu-active .x-btn-left{background:url(../images/silverCherry/toolbar_tb-btn-sprite.gif) no-repeat 0 -63px;} +.x-toolbar .x-btn-click .x-btn-right,.x-toolbar .x-btn-pressed .x-btn-right,.x-toolbar .x-btn-menu-active .x-btn-right{background:url(../images/silverCherry/toolbar_tb-btn-sprite.gif) no-repeat 0 -84px;} +.x-toolbar .x-btn-click .x-btn-center,.x-toolbar .x-btn-pressed .x-btn-center,.x-toolbar .x-btn-menu-active .x-btn-center{background:url(../images/silverCherry/toolbar_tb-btn-sprite.gif) repeat-x 0 -105px;} +.x-toolbar .x-btn-with-menu .x-btn-center em{padding-right:8px;} +.x-toolbar .ytb-text{padding:2px;} +.x-toolbar .ytb-sep{background-image:url(../images/silverCherry/grid_grid-blue-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px 0;border:0;} +.x-toolbar .ytb-spacer{width:2px;} +.x-tbar-page-number{width:24px;height:14px;} +.x-tbar-page-first{background-image:url(../images/silverCherry/grid_page-first.gif)!important;} +.x-tbar-loading{background-image:url(../images/silverCherry/grid_done.gif)!important;} +.x-tbar-page-last{background-image:url(../images/silverCherry/grid_page-last.gif)!important;} +.x-tbar-page-next{background-image:url(../images/silverCherry/grid_page-next.gif)!important;} +.x-tbar-page-prev{background-image:url(../images/silverCherry/grid_page-prev.gif)!important;} +.x-item-disabled .x-tbar-loading{background-image:url(../images/silverCherry/grid_loading.gif)!important;} +.x-item-disabled .x-tbar-page-first{background-image:url(../images/silverCherry/grid_page-first-disabled.gif)!important;} +.x-item-disabled .x-tbar-page-last{background-image:url(../images/silverCherry/grid_page-last-disabled.gif)!important;} +.x-item-disabled .x-tbar-page-next{background-image:url(../images/silverCherry/grid_page-next-disabled.gif)!important;} +.x-item-disabled .x-tbar-page-prev{background-image:url(../images/silverCherry/grid_page-prev-disabled.gif)!important;} +.x-paging-info{position:absolute;top:5px;right:8px;color:#444;} + +.x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;background:white;filter:alpha(opacity=0);opacity:0;zoom:1;} +.x-resizable-handle-east{width:6px;cursor:e-resize;right:0;top:0;height:100%;} +.ext-ie .x-resizable-handle-east{margin-right:-1px;} +.x-resizable-handle-south{width:100%;cursor:s-resize;left:0;bottom:0;height:6px;} +.ext-ie .x-resizable-handle-south{margin-bottom:-1px;} +.x-resizable-handle-west{width:6px;cursor:w-resize;left:0;top:0;height:100%;} +.x-resizable-handle-north{width:100%;cursor:n-resize;left:0;top:0;height:6px;} +.x-resizable-handle-southeast{width:6px;cursor:se-resize;right:0;bottom:0;height:6px;z-index:101;} +.x-resizable-handle-northwest{width:6px;cursor:nw-resize;left:0;top:0;height:6px;z-index:101;} +.x-resizable-handle-northeast{width:6px;cursor:ne-resize;right:0;top:0;height:6px;z-index:101;} +.x-resizable-handle-southwest{width:6px;cursor:sw-resize;left:0;bottom:0;height:6px;z-index:101;} +.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1;} +.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{background:url(../images/silverCherry/sizer_e-handle.gif);background-position:left;} +.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{background:url(../images/silverCherry/sizer_e-handle.gif);background-position:left;} +.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{background:url(../images/silverCherry/sizer_s-handle.gif);background-position:top;} +.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background:url(../images/silverCherry/sizer_s-handle.gif);background-position:top;} +.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background:url(../images/silverCherry/sizer_se-handle.gif);background-position:top left;} +.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background:url(../images/silverCherry/sizer_nw-handle.gif);background-position:bottom right;} +.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background:url(../images/silverCherry/sizer_ne-handle.gif);background-position:bottom left;} +.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background:url(../images/silverCherry/sizer_sw-handle.gif);background-position:top right;} +.x-resizable-proxy{border:1px dashed #828282;position:absolute;overflow:hidden;display:none;left:0;top:0;z-index:50000;} +.x-resizable-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background:white;z-index:200000;-moz-opacity:0;opacity:0;filter:alpha(opacity=0);} + + .x-grid3{position:relative;overflow:hidden;background-color:#fff;} +.x-grid-panel .x-panel-body{overflow:hidden!important;} +.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #e8e8e8;} +.ext-ie .x-grid3 table,.ext-safari .x-grid3 table{table-layout:fixed;} +.x-grid3-viewport{overflow:hidden;} +.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 11px arial,tahoma,helvetica,sans-serif;-moz-outline:none;-moz-user-focus:normal;} +.x-grid3-row td,.x-grid3-summary-row td{line-height:13px;vertical-align:top;padding-left:1px;padding-right:1px;-moz-user-select:none;} +.x-grid3-hd-row td{line-height:15px;vertical-align:middle;border-left:1px solid #eee;border-right:1px solid #d0d0d0;} +.x-grid3-hd-row .x-grid3-marker-hd{padding:3px;} +.x-grid3-row .x-grid3-marker{padding:3px;} +.x-grid3-cell-inner,.x-grid3-hd-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:3px 3px 3px 5px;white-space:nowrap;} +.x-grid3-hd-inner{position:relative;cursor:inherit;padding:4px 3px 4px 5px;} +.x-grid3-row-body{white-space:normal;} +.x-grid3-body-cell{-moz-outline:0 none;outline:0 none;} +.ext-ie .x-grid3-cell-inner,.ext-ie .x-grid3-hd-inner{width:100%;} +.ext-strict .x-grid3-cell-inner,.ext-strict .x-grid3-hd-inner{width:auto;} +.x-grid-row-loading{background:#fff url(../images/silverCherry/shared_loading-balls.gif) no-repeat center center;} +.x-grid-page{overflow:hidden;} +.x-grid3-row{cursor:default;border:1px solid #ededed;border-top-color:#fff;width:100%;} +.x-grid3-row-alt{background-color:#fafafa;} +.x-grid3-row-over{border:1px solid #ddd;background:#efefef url(../images/silverCherry/grid_row-over.gif) repeat-x left top;} +.x-grid3-resize-proxy{width:1px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;} +.x-grid3-resize-marker{width:1px;left:0;background-color:#777;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;} +.x-grid3-focus{position:absolute;top:0;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;} +.x-grid3-header{background:#f9f9f9 url(../images/silverCherry/grid_grid3-hrow.gif) repeat-x 0 bottom;cursor:default;zoom:1;padding:1px 0 0 0;} +.x-grid3-header-pop{border-left:1px solid #d0d0d0;float:right;clear:none;} +.x-grid3-header-pop-inner{border-left:1px solid #eee;width:14px;height:19px;background:transparent url(../images/silverCherry/grid_hd-pop.gif) no-repeat center center;} +.ext-ie .x-grid3-header-pop-inner{width:15px;} +.ext-strict .x-grid3-header-pop-inner{width:14px;} +.x-grid3-header-inner{overflow:hidden;zoom:1;float:left;} +.x-grid3-header-offset{padding-left:1px;width:10000px;} +td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #f5f5f5;border-right:1px solid #f5f5f5;} +td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{background:#fcfcfc url(../images/silverCherry/grid_grid3-hrow-over.gif) repeat-x left bottom;} +.x-grid3-sort-icon{background-repeat:no-repeat;display:none;height:4px;width:13px;margin-left:3px;vertical-align:middle;} +.sort-asc .x-grid3-sort-icon{background-image:url(../images/silverCherry/grid_sort_asc.gif);display:inline;} +.sort-desc .x-grid3-sort-icon{background-image:url(../images/silverCherry/grid_sort_desc.gif);display:inline;} +.ext-strict .ext-ie .x-grid3-header-inner{position:relative;} +.ext-strict .ext-ie6 .x-grid3-hd{position:relative;} +.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;} +.x-grid3-body{zoom:1;} +.x-grid3-scroller{overflow:auto;zoom:1;position:relative;} +.x-grid3-cell-text,.x-grid3-hd-text{display:block;padding:3px 5px 3px 5px;-moz-user-select:none;-khtml-user-select:none;color:black;} +.x-grid3-split{background-image:url(../images/silverCherry/grid_grid-split.gif);background-position:center;background-repeat:no-repeat;cursor:e-resize;cursor:col-resize;display:block;font-size:1px;height:16px;overflow:hidden;position:absolute;top:2px;width:6px;z-index:3;} +.x-grid3-hd-text{color:#8c8c8c;} +.x-dd-drag-proxy .x-grid3-hd-inner{background:#fcfcfc url(../images/silverCherry/grid_grid3-hrow-over.gif) repeat-x left bottom;width:120px;padding:3px;border:1px solid #f5f5f5;overflow:hidden;} +.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:1px;font-size:1px;overflow:hidden;visibility:hidden;z-index:20000;} +.col-move-top{background:transparent url(../images/silverCherry/grid_col-move-top.gif) no-repeat left top;} +.col-move-bottom{background:transparent url(../images/silverCherry/grid_col-move-bottom.gif) no-repeat left top;} +.x-grid3-row-selected{background:#f5f5f5!important;border:1px dotted #e8e8e8;} +.x-grid3-cell-selected{background-color:#ededed!important;color:black;} +.x-grid3-cell-selected span{color:black!important;} +.x-grid3-cell-selected .x-grid3-cell-text{color:black;} +.x-grid3-locked td.x-grid3-row-marker,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{background:#ebebeb url(../images/silverCherry/grid_grid-hrow.gif) repeat-x 0 bottom!important;vertical-align:middle!important;color:black;padding:0;border-top:1px solid white;border-bottom:none!important;border-right:1px solid #dedede!important;text-align:center;} +.x-grid3-locked td.x-grid3-row-marker div,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{padding:0 4px;color:#8c8c8c!important;text-align:center;} +.x-grid3-dirty-cell{background:transparent url(../images/silverCherry/grid_dirty.gif) no-repeat 0 0;} +.x-grid3-topbar,.x-grid3-bottombar{font:normal 11px arial,tahoma,helvetica,sans-serif;overflow:hidden;display:none;zoom:1;position:relative;} +.x-grid3-topbar .x-toolbar{border-right:0 none;} +.x-grid3-bottombar .x-toolbar{border-right:0 none;border-bottom:0 none;border-top:1px solid #d4d4d4;} +.x-props-grid .x-grid3-cell{padding:1px;} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background:transparent url(../images/silverCherry/grid_grid3-special-col-bg.gif) repeat-y -16px!important;padding-left:12px;color:black!important;} +.x-props-grid .x-grid3-body .x-grid3-td-name{padding:1px;padding-right:0;background:white!important;border:0 none;border-right:1px solid #eee;} +.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../images/silverCherry/grid_hmenu-asc.gif);} +.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../images/silverCherry/grid_hmenu-desc.gif);} +.xg-hmenu-lock .x-menu-item-icon{background-image:url(../images/silverCherry/grid_hmenu-lock.gif);} +.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../images/silverCherry/grid_hmenu-unlock.gif);} +.x-grid3-col-dd{border:0 none;padding:0;background:transparent;} +.x-dd-drag-ghost .x-grid3-dd-wrap{padding:1px 3px 3px 1px;} +.x-grid3-hd{-moz-user-select:none;} +.x-grid3-hd-btn{display:none;position:absolute;width:14px;background:#fafafa url(../images/silverCherry/grid_grid3-hd-btn.gif) no-repeat left center;right:0;top:0;z-index:2;cursor:pointer;} +.x-grid3-hd-over .x-grid3-hd-btn,.x-grid3-hd-menu-open .x-grid3-hd-btn{display:block;} +a.x-grid3-hd-btn:hover{background-position:-14px center;} +.x-grid3-body .x-grid3-td-expander{background:transparent url(../images/silverCherry/grid_grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner{padding:0!important;height:100%;} +.x-grid3-row-expander{width:100%;height:18px;background-position:4px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/silverCherry/grid_row-expand-sprite.gif);} +.x-grid3-row-collapsed .x-grid3-row-expander{background-position:4px 2px;} +.x-grid3-row-expanded .x-grid3-row-expander{background-position:-21px 2px;} +.x-grid3-row-collapsed .x-grid3-row-body{display:none!important;} +.x-grid3-row-expanded .x-grid3-row-body{display:block!important;} +.x-grid3-body .x-grid3-td-checker{background:transparent url(../images/silverCherry/grid_grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner,.x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner{padding:0!important;height:100%;} +.x-grid3-row-checker,.x-grid3-hd-checker{width:100%;height:18px;background-position:2px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/silverCherry/grid_row-check-sprite.gif);} +.x-grid3-row .x-grid3-row-checker{background-position:2px 2px;} +.x-grid3-row-selected .x-grid3-row-checker,.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 2px;} +.x-grid3-hd-checker{background-position:2px 3px;} +.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 3px;} +.x-grid3-body .x-grid3-td-numberer{background:transparent url(../images/silverCherry/grid_grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{padding:3px 5px 0 0!important;text-align:right;color:#444;} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{background:transparent url(../images/silverCherry/grid_grid3-special-col-sel-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner{padding:1px 0 0 0!important;} +.x-grid3-check-col{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/silverCherry/menu_unchecked.gif);} +.x-grid3-check-col-on{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/silverCherry/menu_checked.gif);} +.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1;} +.x-grid-group-hd{border-bottom:2px solid #e8e8e8;cursor:pointer;padding-top:6px;} +.x-grid-group-hd div{background:transparent url(../images/silverCherry/grid_group-expand-sprite.gif) no-repeat 3px -47px;padding:4px 4px 4px 17px;color:#a1a1a1;font:bold 11px tahoma,arial,helvetica,sans-serif;} +.x-grid-group-collapsed .x-grid-group-hd div{background-position:3px 3px;} +.x-grid-group-collapsed .x-grid-group-body{display:none;} +.x-group-by-icon{background-image:url(../images/silverCherry/grid_group-by.gif);} +.x-cols-icon{background-image:url(../images/silverCherry/grid_columns.gif);} +.x-show-groups-icon{background-image:url(../images/silverCherry/grid_group-by.gif);} +.ext-ie .x-grid3 .x-editor .x-form-text{position:relative;top:-1px;} +.x-grid-editor{position:relative!important;float:left;} +.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif;} + +.x-dd-drag-proxy{position:absolute;left:0;top:0;visibility:hidden;z-index:15000;} +.x-dd-drag-ghost{color:black;font:normal 11px arial,helvetica,sans-serif;-moz-opacity:0.85;opacity:.85;filter:alpha(opacity=85);border-top:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:3px;padding-left:20px;background-color:white;white-space:nowrap;} +.x-dd-drag-repair .x-dd-drag-ghost{-moz-opacity:0.4;opacity:.4;filter:alpha(opacity=40);border:0 none;padding:0;background-color:transparent;} +.x-dd-drag-repair .x-dd-drop-icon{visibility:hidden;} +.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1;} +.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../images/silverCherry/dd_drop-no.gif);} +.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../images/silverCherry/dd_drop-yes.gif);} +.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../images/silverCherry/dd_drop-add.gif);} +.x-view-selector{position:absolute;left:0;top:0;width:0;background:#fafafa;border:1px dotted #a00;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);zoom:1;} + +.x-tree .x-panel-body{background-color:#fff;} +.ext-strict .ext-ie .x-tree .x-panel-bwrap{position:relative;overflow:hidden;} +.x-tree-icon,.x-tree-ec-icon,.x-tree-elbow-line,.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-repeat:no-repeat;} +.x-tree-node-collapsed .x-tree-node-icon,.x-tree-node-expanded .x-tree-node-icon,.x-tree-node-leaf .x-tree-node-icon{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-position:center;background-repeat:no-repeat;} +.ext-ie .x-tree-node-indent img,.ext-ie .x-tree-node-icon,.ext-ie .x-tree-ec-icon{vertical-align:middle!important;} +.x-tree-node-collapsed .x-tree-node-icon{background-image:url(../images/silverCherry/tree_folder.gif);} +.x-tree-node-expanded .x-tree-node-icon{background-image:url(../images/silverCherry/tree_folder-open.gif);} +.x-tree-node-leaf .x-tree-node-icon{background-image:url(../images/silverCherry/tree_leaf.gif);} +.ext-ie input.x-tree-node-cb{width:15px;height:15px;} +input.x-tree-node-cb{margin-left:1px;} +.ext-ie input.x-tree-node-cb{margin-left:0;} +.x-tree-noicon .x-tree-node-icon{width:0;height:0;} +.x-tree-node-loading .x-tree-node-icon{background-image:url(../images/silverCherry/tree_loading.gif)!important;} +.x-tree-node-loading a span{font-style:italic;color:#444;} +.ext-ie .x-tree-node-el input{width:15px;height:15px;} +.x-tree-lines .x-tree-elbow{background-image:url(../images/silverCherry/tree_elbow.gif);} +.x-tree-lines .x-tree-elbow-plus{background-image:url(../images/silverCherry/tree_elbow-plus.gif);} +.x-tree-lines .x-tree-elbow-minus{background-image:url(../images/silverCherry/tree_elbow-minus.gif);} +.x-tree-lines .x-tree-elbow-end{background-image:url(../images/silverCherry/tree_elbow-end.gif);} +.x-tree-lines .x-tree-elbow-end-plus{background-image:url(../images/silverCherry/tree_elbow-end-plus.gif);} +.x-tree-lines .x-tree-elbow-end-minus{background-image:url(../images/silverCherry/tree_elbow-end-minus.gif);} +.x-tree-lines .x-tree-elbow-line{background-image:url(../images/silverCherry/tree_elbow-line.gif);} +.x-tree-no-lines .x-tree-elbow{background:transparent;} +.x-tree-no-lines .x-tree-elbow-plus{background-image:url(../images/silverCherry/tree_elbow-plus-nl.gif);} +.x-tree-no-lines .x-tree-elbow-minus{background-image:url(../images/silverCherry/tree_elbow-minus-nl.gif);} +.x-tree-no-lines .x-tree-elbow-end{background:transparent;} +.x-tree-no-lines .x-tree-elbow-end-plus{background-image:url(../images/silverCherry/tree_elbow-end-plus-nl.gif);} +.x-tree-no-lines .x-tree-elbow-end-minus{background-image:url(../images/silverCherry/tree_elbow-end-minus-nl.gif);} +.x-tree-no-lines .x-tree-elbow-line{background:transparent;} +.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer;} +.ext-ie ul.x-tree-node-ct{font-size:0;line-height:0;zoom:1;} +.x-tree-node{color:black;font:normal 11px arial,tahoma,helvetica,sans-serif;white-space:nowrap;} +.x-tree-node-el{line-height:18px;cursor:pointer;} +.x-tree-node a,.x-dd-drag-ghost a{text-decoration:none;color:black;-khtml-user-select:none;-moz-user-select:none;-kthml-user-focus:normal;-moz-user-focus:normal;-moz-outline:0 none;outline:0 none;} +.x-tree-node a span,.x-dd-drag-ghost a span{text-decoration:none;color:black;padding:1px 3px 1px 2px;} +.x-tree-node .x-tree-node-disabled a span{color:gray!important;} +.x-tree-node .x-tree-node-disabled .x-tree-node-icon{-moz-opacity:0.5;opacity:.5;filter:alpha(opacity=50);} +.x-tree-node .x-tree-node-inline-icon{background:transparent;} +.x-tree-node a:hover,.x-dd-drag-ghost a:hover{text-decoration:none;} +.x-tree-node div.x-tree-drag-insert-below{border-bottom:1px dotted #900;} +.x-tree-node div.x-tree-drag-insert-above{border-top:1px dotted #900;} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{border-bottom:0 none;} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{border-top:0 none;} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #900;} +.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #900;} +.x-tree-node .x-tree-drag-append a span{background:#ddd;border:1px dotted gray;} +.x-tree-node .x-tree-node-over{background-color:#eee;} +.x-tree-node .x-tree-selected{background-color:#fafafa;} +.x-dd-drag-ghost .x-tree-node-indent,.x-dd-drag-ghost .x-tree-ec-icon{display:none!important;} +.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/silverCherry/tree_drop-add.gif);} +.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/silverCherry/tree_drop-over.gif);} +.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/silverCherry/tree_drop-under.gif);} +.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/silverCherry/tree_drop-between.gif);} + +.x-date-picker{border:1px solid #6b6b6b;border-top:0 none;background:#fff;position:relative;} +.x-date-picker a{-moz-outline:0 none;outline:0 none;} +.x-date-inner,.x-date-inner td,.x-date-inner th{border-collapse:separate;} +.x-date-middle,.x-date-left,.x-date-right{background:url(../images/silverCherry/shared_hd-sprite.gif) repeat-x 0 -83px;color:#FFF;font:bold 11px "sans serif",tahoma,verdana,helvetica;overflow:hidden;} +.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{background:transparent!important;vertical-align:middle;} +.x-date-middle .x-btn .x-btn-text{color:#fff;} +.x-date-middle .x-btn-with-menu .x-btn-center em{background:transparent url(../images/silverCherry/toolbar_btn-arrow-light.gif) no-repeat right 0;} +.x-date-right,.x-date-left{width:18px;} +.x-date-right{text-align:right;} +.x-date-middle{padding-top:2px;padding-bottom:2px;} +.x-date-right a,.x-date-left a{display:block;width:16px;height:16px;background-position:center;background-repeat:no-repeat;cursor:pointer;-moz-opacity:0.6;opacity:.6;filter:alpha(opacity=60);} +.x-date-right a:hover,.x-date-left a:hover{-moz-opacity:1;opacity:1;filter:alpha(opacity=100);} +.x-date-right a{background-image:url(../images/silverCherry/shared_right-btn.gif);margin-right:2px;text-decoration:none!important;} +.x-date-left a{background-image:url(../images/silverCherry/shared_left-btn.gif);margin-left:2px;text-decoration:none!important;} +table.x-date-inner{width:100%;table-layout:fixed;} +.x-date-inner th{width:25px;} +.x-date-inner th{background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;text-align:right!important;border-bottom:1px solid #d9d9d9;font:normal 10px arial,helvetica,tahoma,sans-serif;color:#6e6e6e;cursor:default;padding:0;border-collapse:separate;} +.x-date-inner th span{display:block;padding:2px;padding-right:7px;} +.x-date-inner td{border:1px solid #fff;text-align:right;padding:0;} +.x-date-inner a{padding:2px 5px;display:block;font:normal 11px arial,helvetica,tahoma,sans-serif;text-decoration:none;color:black;text-align:right;zoom:1;} +.x-date-inner .x-date-active{cursor:pointer;color:black;} +.x-date-inner .x-date-selected a{background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;border:1px solid #e3e3e3;padding:1px 4px;} +.x-date-inner .x-date-today a{border:1px solid darkred;padding:1px 4px;} +.x-date-inner .x-date-selected span{font-weight:bold;} +.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a{color:#aaa;text-decoration:none!important;} +.x-date-bottom{padding:4px;border-top:1px solid #d9d9d9;background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;} +.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{text-decoration:none!important;color:black;background:#fcfcfc;} +.x-date-inner .x-date-disabled a{cursor:default;background:#eee;color:#bbb;} +.x-date-mmenu{background:#eee!important;} +.x-date-mmenu .x-menu-item{font-size:10px;padding:1px 24px 1px 4px;white-space:nowrap;color:#000;} +.x-date-mmenu .x-menu-item .x-menu-item-icon{width:10px;height:10px;margin-right:5px;background-position:center -4px!important;} +.x-date-mp{position:absolute;left:0;top:0;background:white;display:none;} +.x-date-mp td{padding:2px;font:normal 11px arial,helvetica,tahoma,sans-serif;} +td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn{border:0 none;text-align:center;vertical-align:middle;width:25%;} +.x-date-mp-ok{margin-right:3px;} +.x-date-mp-btns button{text-decoration:none;text-align:center;text-decoration:none!important;background:#737373;color:white;border:1px solid;border-color:#900 #005 #005 #900;padding:1px 3px 1px;font:normal 11px arial,helvetica,tahoma,sans-serif;cursor:pointer;} +.x-date-mp-btns{background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;} +.x-date-mp-btns td{border-top:1px solid #dedede;text-align:center;} +td.x-date-mp-month a,td.x-date-mp-year a{display:block;padding:2px 4px;text-decoration:none;text-align:center;color:#8c8c8c;} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{color:#8c8c8c;text-decoration:none;cursor:pointer;background:#fcfcfc;} +td.x-date-mp-sel a{padding:1px 3px;background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;border:1px solid #e3e3e3;} +.x-date-mp-ybtn a{overflow:hidden;width:15px;height:15px;cursor:pointer;background:transparent url(../images/silverCherry/panel_tool-sprites.gif) no-repeat;display:block;margin:0 auto;} +.x-date-mp-ybtn a.x-date-mp-next{background-position:0 -120px;} +.x-date-mp-ybtn a.x-date-mp-next:hover{background-position:-15px -120px;} +.x-date-mp-ybtn a.x-date-mp-prev{background-position:0 -105px;} +.x-date-mp-ybtn a.x-date-mp-prev:hover{background-position:-15px -105px;} +.x-date-mp-ybtn{text-align:center;} +td.x-date-mp-sep{border-right:1px solid #dedede;} + +.x-tip{position:absolute;top:0;left:0;visibility:hidden;z-index:20000;border:0 none;} +.x-tip .x-tip-close{background-image:url(../images/silverCherry/qtip_close.gif);height:15px;float:right;width:15px;margin:0 0 2px 2px;cursor:pointer;display:none;} +.x-tip .x-tip-tc{background:transparent url(../images/silverCherry/qtip_tip-sprite.gif) no-repeat 0 -62px;padding-top:3px;overflow:hidden;zoom:1;} +.x-tip .x-tip-tl{background:transparent url(../images/silverCherry/qtip_tip-sprite.gif) no-repeat 0 0;padding-left:6px;overflow:hidden;zoom:1;} +.x-tip .x-tip-tr{background:transparent url(../images/silverCherry/qtip_tip-sprite.gif) no-repeat right 0;padding-right:6px;overflow:hidden;zoom:1;} +.x-tip .x-tip-bc{background:transparent url(../images/silverCherry/qtip_tip-sprite.gif) no-repeat 0 -121px;height:3px;overflow:hidden;} +.x-tip .x-tip-bl{background:transparent url(../images/silverCherry/qtip_tip-sprite.gif) no-repeat 0 -59px;padding-left:6px;zoom:1;} +.x-tip .x-tip-br{background:transparent url(../images/silverCherry/qtip_tip-sprite.gif) no-repeat right -59px;padding-right:6px;zoom:1;} +.x-tip .x-tip-mc{border:0 none;font:normal 11px tahoma,arial,helvetica,sans-serif;} +.x-tip .x-tip-ml{background:#fff url(../images/silverCherry/qtip_tip-sprite.gif) no-repeat 0 -124px;padding-left:6px;zoom:1;} +.x-tip .x-tip-mr{background:transparent url(../images/silverCherry/qtip_tip-sprite.gif) no-repeat right -124px;padding-right:6px;zoom:1;} +.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc{font-size:0;line-height:0;} +.x-tip .x-tip-header-text{font:bold 11px tahoma,arial,helvetica,sans-serif;padding:0;margin:0 0 2px 0;color:#444;} +.x-tip .x-tip-body{font:normal 11px tahoma,arial,helvetica,sans-serif;margin:0!important;line-height:14px;color:#444;padding:0;} +.x-tip .x-tip-body .loading-indicator{margin:0;} +.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text{cursor:move;} +.x-form-invalid-tip .x-tip-tc{background:url(../images/silverCherry/form_error-tip-corners.gif) repeat-x 0 -12px;padding-top:6px;} +.x-form-invalid-tip .x-tip-tl{background-image:url(../images/silverCherry/form_error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-tr{background-image:url(../images/silverCherry/form_error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-bc{background:url(../images/silverCherry/form_error-tip-corners.gif) repeat-x 0 -18px;height:6px;} +.x-form-invalid-tip .x-tip-bl{background:url(../images/silverCherry/form_error-tip-corners.gif) no-repeat 0 -6px;} +.x-form-invalid-tip .x-tip-br{background:url(../images/silverCherry/form_error-tip-corners.gif) no-repeat right -6px;} +.x-form-invalid-tip .x-tip-ml{background-image:url(../images/silverCherry/form_error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-mr{background-image:url(../images/silverCherry/form_error-tip-corners.gif);} +.x-form-invalid-tip .x-tip-body{padding:2px;} +.x-form-invalid-tip .x-tip-body{padding-left:24px;background:transparent url(../images/silverCherry/form_exclamation.gif) no-repeat 2px 2px;} + +.x-menu{border:1px solid #b8b8b8;z-index:15000;zoom:1;background:#f0f0f0 url(../images/silverCherry/menu_menu.gif) repeat-y;padding:2px;} +.x-menu a{text-decoration:none!important;} +.ext-ie .x-menu{zoom:1;overflow:hidden;} +.x-menu-list{background:transparent;border:0 none;} +.x-menu li{line-height:100%;} +.x-menu li.x-menu-sep-li{font-size:1px;line-height:1px;} +.x-menu-list-item{font:normal 11px tahoma,arial,sans-serif;white-space:nowrap;-moz-user-select:none;-khtml-user-select:none;display:block;padding:1px;} +.x-menu-item-arrow{background:transparent url(../images/silverCherry/menu_menu-parent.gif) no-repeat right;} +.x-menu-sep{display:block;font-size:1px;line-height:1px;margin:2px 3px;background-color:#e0e0e0;border-bottom:1px solid #fff;} +.x-menu-focus{position:absolute;left:0;top:-5px;width:0;height:0;line-height:1px;} +.x-menu a.x-menu-item{display:block;line-height:16px;padding:3px 21px 3px 3px;white-space:nowrap;text-decoration:none;color:#222;-moz-outline:0 none;outline:0 none;cursor:pointer;} +.x-menu-item-active{background:#fcfcfc url(../images/silverCherry/menu_item-over.gif) repeat-x left bottom;border:1px solid #f5f5f5;padding:0;} +.x-menu-item-active a.x-menu-item{color:#6e6e6e;} +.x-menu-item-icon{border:0 none;height:16px;padding:0;vertical-align:top;width:16px;margin:0 8px 0 0;background-position:center;} +.x-menu-check-item .x-menu-item-icon{background:transparent url(../images/silverCherry/menu_unchecked.gif) no-repeat center;} +.x-menu-item-checked .x-menu-item-icon{background-image:url(../images/silverCherry/menu_checked.gif);} +.x-menu-group-item .x-menu-item-icon{background:transparent;} +.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background:transparent url(../images/silverCherry/menu_group-checked.gif) no-repeat center;} +.x-menu-plain{background:#fff!important;} +.x-menu-date-item{padding:0;} +.x-menu .x-color-palette,.x-menu .x-date-picker{margin-left:26px;margin-right:4px;} +.x-menu .x-date-picker{border:1px solid #d9d9d9;margin-top:2px;margin-bottom:2px;} +.x-menu-plain .x-color-palette,.x-menu-plain .x-date-picker{margin:0;border:0 none;} +.x-date-menu{padding:0!important;} +.x-cycle-menu .x-menu-item-checked{border:1px dotted #e8e8e8!important;background:#f5f5f5;padding:0;} + + .x-box-tl{background:transparent url(../images/silverCherry/box_corners.gif) no-repeat 0 0;zoom:1;} +.x-box-tc{height:8px;background:transparent url(../images/silverCherry/box_tb.gif) repeat-x 0 0;overflow:hidden;} +.x-box-tr{background:transparent url(../images/silverCherry/box_corners.gif) no-repeat right -8px;} +.x-box-ml{background:transparent url(../images/silverCherry/box_l.gif) repeat-y 0;padding-left:4px;overflow:hidden;zoom:1;} +.x-box-mc{background:#eee url(../images/silverCherry/box_tb.gif) repeat-x 0 -16px;padding:4px 10px;font-family:"Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;color:#393939;font-size:12px;} +.x-box-mc h3{font-size:14px;font-weight:bold;margin:0 0 4px 0;zoom:1;} +.x-box-mr{background:transparent url(../images/silverCherry/box_r.gif) repeat-y right;padding-right:4px;overflow:hidden;} +.x-box-bl{background:transparent url(../images/silverCherry/box_corners.gif) no-repeat 0 -16px;zoom:1;} +.x-box-bc{background:transparent url(../images/silverCherry/box_tb.gif) repeat-x 0 -8px;height:8px;overflow:hidden;} +.x-box-br{background:transparent url(../images/silverCherry/box_corners.gif) no-repeat right -24px;} +.x-box-tl,.x-box-bl{padding-left:8px;overflow:hidden;} +.x-box-tr,.x-box-br{padding-right:8px;overflow:hidden;} +.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr{background-image:url(../images/silverCherry/box_corners-blue.gif);} +.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../images/silverCherry/box_tb-blue.gif);} +.x-box-blue .x-box-mc{background-color:#fafafa;} +.x-box-blue .x-box-mc h3{color:#aa0000;} +.x-box-blue .x-box-ml{background-image:url(../images/silverCherry/box_l-blue.gif);} +.x-box-blue .x-box-mr{background-image:url(../images/silverCherry/box_r-blue.gif);} + +#x-debug-browser .x-tree .x-tree-node a span{color:#990000;font-size:11px;padding-top:2px;font-family:"monotype","courier new",sans-serif;line-height:18px;} +#x-debug-browser .x-tree a i{color:#FF4545;font-style:normal;} +#x-debug-browser .x-tree a em{color:#999;} +#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background:#fafafa;} +#x-debug-browser .x-tool-toggle{background-position:0 -75px;} +#x-debug-browser .x-tool-toggle-over{background-position:-15px -75px;} +#x-debug-browser.x-panel-collapsed .x-tool-toggle{background-position:0 -60px;} +#x-debug-browser.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -60px;} + +.x-combo-list{border:1px solid #f5f5f5;background:#fcfcfc;zoom:1;overflow:hidden;} +.x-combo-list-inner{overflow:auto;background:white;position:relative;zoom:1;overflow-x:hidden;} +.x-combo-list-hd{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#8c8c8c;background-image:url(../images/silverCherry/layout_panel-title-light-bg.gif);border-bottom:1px solid #f5f5f5;padding:3px;} +.x-resizable-pinned .x-combo-list-inner{border-bottom:1px solid #f5f5f5;} +.x-combo-list-item{font:normal 12px tahoma,arial,helvetica,sans-serif;padding:2px;border:1px solid #fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} +.x-combo-list .x-combo-selected{border:1px dotted #e8e8e8!important;background:#f5f5f5;cursor:pointer;} +.x-combo-noedit{cursor:pointer;} +.x-combo-list .x-toolbar{border-top:1px solid #f5f5f5;border-bottom:0 none;} +.x-combo-list-small .x-combo-list-item{font:normal 11px tahoma,arial,helvetica,sans-serif;} + +.x-panel{border-style:solid;border-color:#e8e8e8;border-width:0;} +.x-panel-header{overflow:hidden;zoom:1;color:#8c8c8c;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 3px 4px 5px;border:1px solid #e8e8e8;line-height:15px;background:transparent url(../images/silverCherry/panel_white-top-bottom.gif) repeat-x 0 -1px;} +.x-panel-body{border:1px solid #e8e8e8;border-top:0 none;overflow:hidden;background:white;position:relative;} +.x-panel-bbar .x-toolbar{border:1px solid #e8e8e8;border-top:0 none;overflow:hidden;padding:2px;} +.x-panel-tbar .x-toolbar{border:1px solid #e8e8e8;border-top:0 none;overflow:hidden;padding:2px;} +.x-panel-tbar-noheader .x-toolbar,.x-panel-mc .x-panel-tbar .x-toolbar{border-top:1px solid #e8e8e8;border-bottom:0 none;} +.x-panel-body-noheader,.x-panel-mc .x-panel-body{border-top:1px solid #e8e8e8;} +.x-panel-header{overflow:hidden;zoom:1;} +.x-panel-tl .x-panel-header{color:#8c8c8c;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;border:0 none;background:transparent;} +.x-panel-tl .x-panel-icon,.x-window-tl .x-panel-icon{padding-left:20px!important;background-repeat:no-repeat;background-position:0 4px;zoom:1;} +.x-panel-inline-icon{width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;margin-right:4px;margin-top:-1px;margin-bottom:-1px;} +.x-panel-tc{background:transparent url(../images/silverCherry/panel_top-bottom.gif) repeat-x 0 0;overflow:hidden;} +.ext-ie7 .x-panel-tc{overflow:visible;} +.x-panel-tl{background:transparent url(../images/silverCherry/panel_corners-sprite.gif) no-repeat 0 0;padding-left:6px;zoom:1;border-bottom:1px solid #e8e8e8;} +.x-panel-tr{background:transparent url(../images/silverCherry/panel_corners-sprite.gif) no-repeat right 0;zoom:1;padding-right:6px;} +.x-panel-bc{background:transparent url(../images/silverCherry/panel_top-bottom.gif) repeat-x 0 bottom;zoom:1;} +.x-panel-bc .x-panel-footer{zoom:1;} +.x-panel-bl{background:transparent url(../images/silverCherry/panel_corners-sprite.gif) no-repeat 0 bottom;padding-left:6px;zoom:1;} +.x-panel-br{background:transparent url(../images/silverCherry/panel_corners-sprite.gif) no-repeat right bottom;padding-right:6px;zoom:1;} +.x-panel-mc{border:0 none;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;padding-top:6px;background:#f5f5f5;} +.x-panel-mc .x-panel-body{background:transparent;border:0 none;} +.x-panel-ml{background:#fff url(../images/silverCherry/panel_left-right.gif) repeat-y 0 0;padding-left:6px;zoom:1;} +.x-panel-mr{background:transparent url(../images/silverCherry/panel_left-right.gif) repeat-y right 0;padding-right:6px;zoom:1;} +.x-panel-bc .x-panel-footer{padding-bottom:6px;} +.x-panel-nofooter .x-panel-bc{height:6px;font-size:0;line-height:0;} +.x-panel-bwrap{overflow:hidden;zoom:1;} +.x-panel-body{overflow:hidden;zoom:1;} +.x-panel-collapsed .x-resizable-handle{display:none;} +.ext-gecko .x-panel-animated div{overflow:hidden!important;} +.x-plain-body{overflow:hidden;} +.x-plain-bbar .x-toolbar{overflow:hidden;padding:2px;} +.x-plain-tbar .x-toolbar{overflow:hidden;padding:2px;} +.x-plain-bwrap{overflow:hidden;zoom:1;} +.x-plain{overflow:hidden;} +.x-tool{overflow:hidden;width:15px;height:15px;float:right;cursor:pointer;background:transparent url(../images/silverCherry/panel_tool-sprites.gif) no-repeat;margin-left:2px;} +.x-tool-toggle{background-position:0 -60px;} +.x-tool-toggle-over{background-position:-15px -60px;} +.x-panel-collapsed .x-tool-toggle{background-position:0 -75px;} +.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -75px;} +.x-tool-close{background-position:0 -0;} +.x-tool-close-over{background-position:-15px 0;} +.x-tool-minimize{background-position:0 -15px;} +.x-tool-minimize-over{background-position:-15px -15px;} +.x-tool-maximize{background-position:0 -30px;} +.x-tool-maximize-over{background-position:-15px -30px;} +.x-tool-restore{background-position:0 -45px;} +.x-tool-restore-over{background-position:-15px -45px;} +.x-tool-gear{background-position:0 -90px;} +.x-tool-gear-over{background-position:-15px -90px;} +.x-tool-pin{background-position:0 -135px;} +.x-tool-pin-over{background-position:-15px -135px;} +.x-tool-unpin{background-position:0 -150px;} +.x-tool-unpin-over{background-position:-15px -150px;} +.x-tool-right{background-position:0 -165px;} +.x-tool-right-over{background-position:-15px -165px;} +.x-tool-left{background-position:0 -180px;} +.x-tool-left-over{background-position:-15px -180px;} +.x-tool-up{background-position:0 -210px;} +.x-tool-up-over{background-position:-15px -210px;} +.x-tool-down{background-position:0 -195px;} +.x-tool-down-over{background-position:-15px -195px;} +.x-tool-refresh{background-position:0 -225px;} +.x-tool-refresh-over{background-position:-15px -225px;} +.x-tool-minus{background-position:0 -255px;} +.x-tool-minus-over{background-position:-15px -255px;} +.x-tool-plus{background-position:0 -240px;} +.x-tool-plus-over{background-position:-15px -240px;} +.x-tool-search{background-position:0 -270px;} +.x-tool-search-over{background-position:-15px -270px;} +.x-tool-save{background-position:0 -285px;} +.x-tool-save-over{background-position:-15px -285px;} +.x-tool-help{background-position:0 -300px;} +.x-tool-help-over{background-position:-15px -300px;} +.x-panel-ghost{background:#f2f2f2;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;opacity:.65;-moz-opacity:.65;filter:alpha(opacity=65);} +.x-panel-ghost ul{margin:0;padding:0;overflow:hidden;font-size:0;line-height:0;border:1px solid #e8e8e8;border-top:0 none;display:block;} +.x-panel-ghost *{cursor:move!important;} +.x-panel-dd-spacer{border:2px dashed #e8e8e8;} +.x-panel-btns-ct{padding:5px;} +.x-panel-btns-ct .x-btn{float:right;clear:none;} +.x-panel-btns-ct .x-panel-btns td{border:0;padding:0;} +.x-panel-btns-ct .x-panel-btns-right table{float:right;clear:none;} +.x-panel-btns-ct .x-panel-btns-left table{float:left;clear:none;} +.x-panel-btns-ct .x-panel-btns-center{text-align:center;} +.x-panel-btns-ct .x-panel-btns-center table{margin:0 auto;} +.x-panel-btns-ct table td.x-panel-btn-td{padding:3px;} +.x-panel-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;} +.x-panel-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;} +.x-panel-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;} +.x-panel-btns-ct .x-btn-over .x-btn-left{background-position:0 -63px;} +.x-panel-btns-ct .x-btn-over .x-btn-right{background-position:0 -84px;} +.x-panel-btns-ct .x-btn-over .x-btn-center{background-position:0 -105px;} +.x-panel-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;} +.x-panel-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;} +.x-panel-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;} + +.x-window{zoom:1;} +.x-window .x-resizable-handle{opacity:0;-moz-opacity:0;filter:alpha(opacity=0);} +.x-window-proxy{background:#fcfcfc;border:1px solid #e8e8e8;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;display:none;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);} +.x-window-header{overflow:hidden;zoom:1;} +.x-window-bwrap{z-index:1;position:relative;zoom:1;} +.x-window-tl .x-window-header{color:#8c8c8c;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;} +.x-window-header-text{cursor:pointer;} +.x-window-tc{background:transparent url(../images/silverCherry/window/top-bottom.png) repeat-x 0 0;overflow:hidden;zoom:1;} +.x-window-tl{background:transparent url(../images/silverCherry/window/left-corners.png) no-repeat 0 0;padding-left:6px;zoom:1;z-index:1;position:relative;} +.x-window-tr{background:transparent url(../images/silverCherry/window/right-corners.png) no-repeat right 0;padding-right:6px;} +.x-window-bc{background:transparent url(../images/silverCherry/window/top-bottom.png) repeat-x 0 bottom;zoom:1;} +.x-window-bc .x-window-footer{padding-bottom:6px;zoom:1;font-size:0;line-height:0;} +.x-window-bl{background:transparent url(../images/silverCherry/window/left-corners.png) no-repeat 0 bottom;padding-left:6px;zoom:1;} +.x-window-br{background:transparent url(../images/silverCherry/window/right-corners.png) no-repeat right bottom;padding-right:6px;zoom:1;} +.x-window-mc{border:1px solid #e8e8e8;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;background:#f5f5f5;} +.x-window-ml{background:transparent url(../images/silverCherry/window/left-right.png) repeat-y 0 0;padding-left:6px;zoom:1;} +.x-window-mr{background:transparent url(../images/silverCherry/window/left-right.png) repeat-y right 0;padding-right:6px;zoom:1;} +.x-panel-nofooter .x-window-bc{height:6px;} +.x-window-body{overflow:hidden;} +.x-window-bwrap{overflow:hidden;} +.x-window-maximized .x-window-bl,.x-window-maximized .x-window-br,.x-window-maximized .x-window-ml,.x-window-maximized .x-window-mr,.x-window-maximized .x-window-tl,.x-window-maximized .x-window-tr{padding:0;} +.x-window-maximized .x-window-footer{padding-bottom:0;} +.x-window-maximized .x-window-tc{padding-left:3px;padding-right:3px;background-color:white;} +.x-window-maximized .x-window-mc{border-left:0 none;border-right:0 none;} +.x-window-tbar .x-toolbar,.x-window-bbar .x-toolbar{border-left:0 none;border-right:0 none;} +.x-window-bbar .x-toolbar{border-top:1px solid #e8e8e8;border-bottom:0 none;} +.x-window-draggable,.x-window-draggable .x-window-header-text{cursor:move;} +.x-window-maximized .x-window-draggable,.x-window-maximized .x-window-draggable .x-window-header-text{cursor:default;} +.x-window-body{background:transparent;} +.x-panel-ghost .x-window-tl{border-bottom:1px solid #e8e8e8;} +.x-panel-collapsed .x-window-tl{border-bottom:1px solid #c4c4c4;} +.x-window-maximized-ct{overflow:hidden;} +.x-window-maximized .x-resizable-handle{display:none;} +.x-window-sizing-ghost ul{border:0 none!important;} +.x-dlg-focus{-moz-outline:0 none;outline:0 none;width:0;height:0;overflow:hidden;position:absolute;top:0;left:0;} +.x-dlg-mask{z-index:10000;display:none;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;} +body.ext-ie6.x-body-masked select{visibility:hidden;} +body.ext-ie6.x-body-masked .x-window select{visibility:visible;} +.x-window-plain .x-window-mc{background:#ededed;border-right:1px solid #f5f5f5;border-bottom:1px solid #f5f5f5;border-top:1px solid #e8e8e8;border-left:1px solid #e8e8e8;} +.x-window-plain .x-window-body{border-left:1px solid #f5f5f5;border-top:1px solid #f5f5f5;border-bottom:1px solid #e8e8e8;border-right:1px solid #e8e8e8;background:transparent!important;} +body.x-body-masked .x-window-plain .x-window-mc{background:#e8e8e8;} + +.x-html-editor-wrap{border:1px solid #d4d4d4;background:white;} +.x-html-editor-tb .x-btn-text{background:transparent url(../images/silverCherry/editor_tb-sprite.gif) no-repeat;} +.x-html-editor-tb .x-edit-bold .x-btn-text{background-position:0 0;} +.x-html-editor-tb .x-edit-italic .x-btn-text{background-position:-16px 0;} +.x-html-editor-tb .x-edit-underline .x-btn-text{background-position:-32px 0;} +.x-html-editor-tb .x-edit-forecolor .x-btn-text{background-position:-160px 0;} +.x-html-editor-tb .x-edit-backcolor .x-btn-text{background-position:-176px 0;} +.x-html-editor-tb .x-edit-justifyleft .x-btn-text{background-position:-112px 0;} +.x-html-editor-tb .x-edit-justifycenter .x-btn-text{background-position:-128px 0;} +.x-html-editor-tb .x-edit-justifyright .x-btn-text{background-position:-144px 0;} +.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text{background-position:-80px 0;} +.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text{background-position:-96px 0;} +.x-html-editor-tb .x-edit-increasefontsize .x-btn-text{background-position:-48px 0;} +.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text{background-position:-64px 0;} +.x-html-editor-tb .x-edit-sourceedit .x-btn-text{background-position:-192px 0;} +.x-html-editor-tb .x-edit-createlink .x-btn-text{background-position:-208px 0;} +.x-html-editor-tip .x-tip-bd .x-tip-bd-inner{padding:5px;padding-bottom:1px;} +.x-html-editor-tb .x-toolbar{position:static!important;} + +.x-panel-noborder .x-panel-body-noborder{border-width:0;} +.x-panel-noborder .x-panel-header-noborder{border-width:0;border-bottom:1px solid #e8e8e8;} +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #e8e8e8;} +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #e8e8e8;} +.x-window-noborder .x-window-mc{border-width:0;} +.x-window-plain .x-window-body-noborder{border-width:0;} +.x-tab-panel-noborder .x-tab-panel-body-noborder{border-width:0;} +.x-tab-panel-noborder .x-tab-panel-header-noborder{border-top-width:0;border-left-width:0;border-right-width:0;} +.x-tab-panel-noborder .x-tab-panel-footer-noborder{border-bottom-width:0;border-left-width:0;border-right-width:0;} +.x-tab-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #e8e8e8;} +.x-tab-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #e8e8e8;} + +.x-border-layout-ct{background:#f5f5f5;} +.x-border-panel{position:absolute;left:0;top:0;} +.x-tool-collapse-south{background-position:0 -195px;} +.x-tool-collapse-south-over{background-position:-15px -195px;} +.x-tool-collapse-north{background-position:0 -210px;} +.x-tool-collapse-north-over{background-position:-15px -210px;} +.x-tool-collapse-west{background-position:0 -180px;} +.x-tool-collapse-west-over{background-position:-15px -180px;} +.x-tool-collapse-east{background-position:0 -165px;} +.x-tool-collapse-east-over{background-position:-15px -165px;} +.x-tool-expand-south{background-position:0 -210px;} +.x-tool-expand-south-over{background-position:-15px -210px;} +.x-tool-expand-north{background-position:0 -195px;} +.x-tool-expand-north-over{background-position:-15px -195px;} +.x-tool-expand-west{background-position:0 -165px;} +.x-tool-expand-west-over{background-position:-15px -165px;} +.x-tool-expand-east{background-position:0 -180px;} +.x-tool-expand-east-over{background-position:-15px -180px;} +.x-tool-expand-north,.x-tool-expand-south{float:right;margin:3px;} +.x-tool-expand-east,.x-tool-expand-west{float:none;margin:3px auto;} +.x-accordion-hd .x-tool-toggle{background-position:0 -255px;} +.x-accordion-hd .x-tool-toggle-over{background-position:-15px -255px;} +.x-panel-collapsed .x-accordion-hd .x-tool-toggle{background-position:0 -240px;} +.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over{background-position:-15px -240px;} +.x-accordion-hd{color:#222;padding-top:4px;padding-bottom:3px;border-top:0 none;font-weight:normal;background:transparent url(../images/silverCherry/panel_light-hd.gif) repeat-x 0 -9px;} +.x-layout-collapsed{position:absolute;left:-10000px;top:-10000px;visibility:hidden;background-color:#f2f2f2;width:20px;height:20px;overflow:hidden;border:1px solid #f5f5f5;z-index:20;} +.ext-border-box .x-layout-collapsed{width:22px;height:22px;} +.x-layout-collapsed-over{cursor:pointer;background-color:#fafafa;} +.x-layout-collapsed-west .x-layout-collapsed-tools,.x-layout-collapsed-east .x-layout-collapsed-tools{position:absolute;top:0;left:0;width:20px;height:20px;} +.x-layout-split{position:absolute;height:5px;width:5px;line-height:1px;font-size:1px;z-index:3;background-color:transparent;} +.x-layout-split-h{background-image:url(../images/silverCherry/s.gif);background-position:left;} +.x-layout-split-v{background-image:url(../images/silverCherry/s.gif);background-position:top;} +.x-column-layout-ct{overflow:hidden;zoom:1;} +.x-column{float:left;padding:0;margin:0;overflow:hidden;zoom:1;} +.x-layout-mini{position:absolute;top:0;left:0;display:block;width:5px;height:35px;cursor:pointer;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);} +.x-layout-mini-over,.x-layout-collapsed-over .x-layout-mini{opacity:1;-moz-opacity:1;filter:none;} +.x-layout-split-west .x-layout-mini{top:48%;background-image:url(../images/silverCherry/layout_mini-left.gif);} +.x-layout-split-east .x-layout-mini{top:48%;background-image:url(../images/silverCherry/layout_mini-right.gif);} +.x-layout-split-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/silverCherry/layout_mini-top.gif);} +.x-layout-split-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/silverCherry/layout_mini-bottom.gif);} +.x-layout-cmini-west .x-layout-mini{top:48%;background-image:url(../images/silverCherry/layout_mini-right.gif);} +.x-layout-cmini-east .x-layout-mini{top:48%;background-image:url(../images/silverCherry/layout_mini-left.gif);} +.x-layout-cmini-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/silverCherry/layout_mini-bottom.gif);} +.x-layout-cmini-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/silverCherry/layout_mini-top.gif);} +.x-layout-cmini-west,.x-layout-cmini-east{border:0 none;width:5px!important;padding:0;background:transparent;} +.x-layout-cmini-north,.x-layout-cmini-south{border:0 none;height:5px!important;padding:0;background:transparent;} +.x-viewport,.x-viewport body{margin:0;padding:0;border:0 none;overflow:hidden;height:100%;} +.x-abs-layout-item{position:absolute;left:0;top:0;} + +.x-progress-wrap{border:1px solid #cfcfcf;overflow:hidden;} +.x-progress-inner{height:18px;background:#f2f2f2 url(../images/silverCherry/qtip_bg.gif) repeat-x;position:relative;} +.x-progress-bar{height:18px;float:left;width:0;background:#ededed url( ../images/silverCherry/progress_progress-bg.gif ) repeat-x left center;border-top:1px solid #fcfcfc;border-bottom:1px solid #e3e3e3;border-right:1px solid #e3e3e3;} +.x-progress-text{font-size:11px;font-weight:bold;color:#fff;padding:1px 5px;overflow:hidden;position:absolute;left:0;text-align:center;} +.x-progress-text-back{color:#949494;line-height:16px;} +.ext-ie .x-progress-text-back{line-height:15px;} + +.x-window-dlg .x-window-body{border:0 none!important;padding:5px 10px;overflow:hidden!important;} +.x-window-dlg .x-window-mc{border:0 none!important;} +.x-window-dlg .ext-mb-text,.x-window-dlg .x-window-header-text{font-size:12px;} +.x-window-dlg .ext-mb-input{margin-top:4px;width:95%;} +.x-window-dlg .ext-mb-textarea{margin-top:4px;font:normal 12px tahoma,arial,helvetica,sans-serif;} +.x-window-dlg .x-progress-wrap{margin-top:4px;} +.ext-ie .x-window-dlg .x-progress-wrap{margin-top:6px;} +.x-window-dlg .x-msg-box-wait{background:transparent url(../images/silverCherry/grid_loading.gif) no-repeat left;display:block;width:300px;padding-left:18px;line-height:18px;} +.x-window-dlg .ext-mb-icon{float:left;width:47px;height:32px;} +.ext-ie .x-window-dlg .ext-mb-icon{width:44px;} +.x-window-dlg .ext-mb-info{background:transparent url(../images/silverCherry/window/icon-info.gif) no-repeat top left;} +.x-window-dlg .ext-mb-warning{background:transparent url(../images/silverCherry/window/icon-warning.gif) no-repeat top left;} +.x-window-dlg .ext-mb-question{background:transparent url(../images/silverCherry/window/icon-question.gif) no-repeat top left;} +.x-window-dlg .ext-mb-error{background:transparent url(../images/silverCherry/window/icon-error.gif) no-repeat top left;} + + + +.x-panel { + border-style: solid; + border-color: #d0d0d0; +} +.x-panel-header { + color:#fff; + border:1px solid #d0d0d0; + background-image:url(../images/silverCherry/panel_white-top-bottom.gif); +} + +.x-panel-body { + border-color:#d0d0d0; +} + +.x-panel-bbar .x-toolbar { + border-color:#d0d0d0; +} + +.x-panel-tbar .x-toolbar { + border-color:#d0d0d0; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#d0d0d0; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#d0d0d0; +} +.x-panel-tl .x-panel-header { + color:#333; +} +.x-panel-tc { + background-image:url(../images/silverCherry/panel_top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/silverCherry/panel_corners-sprite.gif); + border-color:#d0d0d0; +} +.x-panel-tr { + background-image:url(../images/silverCherry/panel_corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/silverCherry/panel_top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/silverCherry/panel_corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/silverCherry/panel_corners-sprite.gif); +} +.x-panel-mc { + background:#f1f1f1; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/silverCherry/panel_left-right.gif); +} +.x-panel-mr { + background-image:url(../images/silverCherry/panel_left-right.gif); +} + +/* Tools */ +.x-tool { + background-image:url(../images/silverCherry/panel_tool-sprites.gif); +} +.x-panel-body .x-tool{ background-image:url(../images/silverCherry/panel_tool-sprites-silver.gif) !important;} + +/* Ghosting */ +.x-panel-ghost { + background:#e0e0e0; +} + +.x-panel-ghost ul { + border-color:#b0b0b0; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #d0d0d0; +} + +/* Buttons */ + +.x-btn-left{ + background-image:url(../images/silverCherry/button_btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/silverCherry/button_btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/silverCherry/button_btn-sprite.gif); +} + +/* Layout classes */ + +.x-border-layout-ct { + background:#f0f0f0; +} + +.x-accordion-hd { + background-image:url(../images/silverCherry/panel_light-hd.gif); + color:#333; +} + +.x-layout-collapsed{ + background-color:#eee; + border-color:#e0e0e0; +} +.x-layout-collapsed-over{ + background-color:#fbfbfb; +} + + +/* qtips */ +.x-tip .x-tip-top { + background-image:url(../images/silverCherry/qtip_tip-sprite.gif); +} +.x-tip .x-tip-top-left { + background-image:url(../images/silverCherry/qtip_tip-sprite.gif); +} +.x-tip .x-tip-top-right { + background-image:url(../images/silverCherry/qtip_tip-sprite.gif); +} +.x-tip .x-tip-ft { + background-image:url(../images/silverCherry/qtip_tip-sprite.gif); +} +.x-tip .x-tip-ft-left { + background-image:url(../images/silverCherry/qtip_tip-sprite.gif); +} +.x-tip .x-tip-ft-right { + background-image:url(../images/silverCherry/qtip_tip-sprite.gif); +} +.x-tip .x-tip-bd-left { + background-image:url(../images/silverCherry/qtip_tip-sprite.gif); +} +.x-tip .x-tip-bd-right { + background-image:url(../images/silverCherry/qtip_tip-sprite.gif); +} + +/* Toolbars */ + +.x-toolbar{ + border-color:#d0d0d0; + background:#f0f4f5 url(../images/silverCherry/toolbar_bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#444; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/silverCherry/toolbar_btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/silverCherry/toolbar_btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/silverCherry/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/silverCherry/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/silverCherry/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#111; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/silverCherry/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/silverCherry/toolbar_tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/silverCherry/toolbar_tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/default/grid_grid-split.gif); +} + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + background: #EAEAEA; + border-color:#d0d0d0; +} + + +.x-tab-panel-header { + border-color:#d0d0d0; +} + +.x-tab-panel-footer { + border-color:#d0d0d0; +} + +ul.x-tab-strip-top{ + background:#dbdbdb url(../images/silverCherry/tabs_tab-strip-bg.gif) repeat-x left top; + border-color:#d0d0d0; + padding-top: 2px; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/silverCherry/tabs_tab-strip-btm-bg.gif); + border-color:#d0d0d0; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#111; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#333; +} + +.x-tab-strip-disabled .x-tabs-text { + color:#aaaaaa; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/silverCherry/tabs_tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/silverCherry/tabs_tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/silverCherry/tabs_tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/silverCherry/tabs_tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/silverCherry/tabs_tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/silverCherry/tabs_tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/silverCherry/tabs_tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/silverCherry/tabs_tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/silverCherry/tabs_tab-close.gif); +} + +.x-tab-panel-body { + border-color:#d0d0d0; + background:#fff; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #d0d0d0; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #d0d0d0; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#d0d0d0; + background: #eaeaea; +} + +.x-tab-scroller-left { + background-image: url(../images/silverCherry/tabs_scroll-left.gif); + border-color:#aeaeae; +} +.x-tab-scroller-right { + background-image: url(../images/silverCherry/tabs_scroll-right.gif); + border-color:#aeaeae; +} + +/* Window */ + +.x-window-proxy { + background:#e0e0e0; + border-color:#b0b0b0; +} + +.x-window-tl .x-window-header { + color:#555; +} +.x-window-tc { + background-image:url(../images/silverCherry/window_top-bottom.png); +} +.x-window-tl { + background-image:url(../images/silverCherry/window_left-corners.png); +} +.x-window-tr { + background-image:url(../images/silverCherry/window_right-corners.png); +} +.x-window-bc { + background-image:url(../images/silverCherry/window_top-bottom.png); +} +.x-window-bl { + background-image:url(../images/silverCherry/window_left-corners.png); +} +.x-window-br { + background-image:url(../images/silverCherry/window_right-corners.png); +} +.x-window-mc { + border:1px solid #d0d0d0; + background:#e8e8e8; +} + +.x-window-ml { + background-image:url(../images/silverCherry/window_left-right.png); +} +.x-window-mr { + background-image:url(../images/silverCherry/window_left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#d0d0d0; +} +.x-panel-collapsed .x-window-tl { + border-color:#d0d0d0; +} + +.x-window-plain .x-window-mc { + background: #e8e8e8; + border-right:1px solid #eee; + border-bottom:1px solid #eee; + border-top:1px solid #d0d0d0; + border-left:1px solid #d0d0d0; +} + +.x-window-plain .x-window-body { + border-left:1px solid #eee; + border-top:1px solid #eee; + border-bottom:1px solid #d0d0d0; + border-right:1px solid #d0d0d0; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #e4e4e4; +} + + +/* misc */ +.x-html-editor-wrap { + border-color:#d0d0d0; +} + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #d0d0d0; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #d0d0d0; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #d0d0d0; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #d0d0d0; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #d0d0d0; +} +.x-panel-tc .x-panel-header{background-image:url(../images/silverCherry/panel_top-bottom.gif)!important;} + +/*-------------- grid ------------------*/ +.mso .x-toolbar,.x-grid-mso .x-toolbar{border:0 none;background:url(../images/silverCherry/grid_mso-hd.gif);} +.x-toolbar .ytb-sep{background-image:url(../images/silverCherry/grid_grid-blue-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px 0;border:0;} +.x-tbar-page-number{width:24px;height:14px;} +.x-tbar-page-first{background-image:url(../images/silverCherry/grid_page-first.gif)!important;} +.x-tbar-loading{background-image:url(../images/silverCherry/grid_done.gif)!important;} +.x-tbar-page-last{background-image:url(../images/silverCherry/grid_page-last.gif)!important;} +.x-tbar-page-next{background-image:url(../images/silverCherry/grid_page-next.gif)!important;} +.x-tbar-page-prev{background-image:url(../images/silverCherry/grid_page-prev.gif)!important;} +.x-item-disabled .x-tbar-loading{background-image:url(../images/silverCherry/grid_loading.gif)!important;} +.x-item-disabled .x-tbar-page-first{background-image:url(../images/silverCherry/grid_page-first-disabled.gif)!important;} +.x-item-disabled .x-tbar-page-last{background-image:url(../images/silverCherry/grid_page-last-disabled.gif)!important;} +.x-item-disabled .x-tbar-page-next{background-image:url(../images/silverCherry/grid_page-next-disabled.gif)!important;} +.x-item-disabled .x-tbar-page-prev{background-image:url(../images/silverCherry/grid_page-prev-disabled.gif)!important;} +.x-grid3-row-over{border:1px solid #ddd;background:#efefef url(../images/silverCherry/grid_row-over.gif) repeat-x left top;} +.x-mask-loading div{padding:5px 10px 5px 25px;background:#fbfbfb url( '../images/silverCherry/grid_loading.gif' ) no-repeat 5px 5px;line-height:16px;} +.loading-indicator{font-size:11px;background-image:url(../images/silverCherry/grid_loading.gif);background-repeat:no-repeat;background-position:left;padding-left:20px;line-height:16px;margin:3px;} +.x-form-invalid,textarea.x-form-invalid{background:#fff url(../images/silverCherry/grid_invalid_line.gif) repeat-x bottom;border:1px solid #dd7870;} + .x-grid3{position:relative;overflow:hidden;background-color:#fff;} +.x-grid-panel .x-panel-body{overflow:hidden!important;} +.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #e8e8e8;} +.ext-ie .x-grid3 table,.ext-safari .x-grid3 table{table-layout:fixed;} +.x-grid3-viewport{overflow:hidden;} +.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 11px arial,tahoma,helvetica,sans-serif;-moz-outline:none;-moz-user-focus:normal;} +.x-grid3-row td,.x-grid3-summary-row td{line-height:13px;vertical-align:top;padding-left:1px;padding-right:1px;-moz-user-select:none;} +.x-grid3-hd-row td{line-height:15px;vertical-align:middle;border-left:1px solid #eee;border-right:1px solid #d0d0d0;} +.x-grid3-hd-row .x-grid3-marker-hd{padding:3px;} +.x-grid3-row .x-grid3-marker{padding:3px;} +.x-grid3-cell-inner,.x-grid3-hd-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:3px 3px 3px 5px;white-space:nowrap;} +.x-grid3-hd-inner{position:relative;cursor:inherit;padding:4px 3px 4px 5px;} +.x-grid3-row-body{white-space:normal;} +.x-grid3-body-cell{-moz-outline:0 none;outline:0 none;} +.ext-ie .x-grid3-cell-inner,.ext-ie .x-grid3-hd-inner{width:100%;} +.ext-strict .x-grid3-cell-inner,.ext-strict .x-grid3-hd-inner{width:auto;} +.x-grid-row-loading{background:#fff url(../images/images/silverCherryloading-balls.gif) no-repeat center center;} +.x-grid-page{overflow:hidden;} +.x-grid3-row{cursor:default;border:1px solid #ededed;border-top-color:#fff;width:100%;} +.x-grid3-row-alt{background-color:#fafafa;} +.x-grid3-row-over{border:1px solid #ddd;background:#efefef url(../images/silverCherry/grid_row-over.gif) repeat-x left top;} +.x-grid3-resize-proxy{width:1px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;} +.x-grid3-resize-marker{width:1px;left:0;background-color:#777;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;} +.x-grid3-focus{position:absolute;top:0;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;} +.x-grid3-header{background:#f9f9f9 url(../images/silverCherry/grid_grid3-hrow.gif) repeat-x 0 bottom;cursor:default;zoom:1;padding:1px 0 0 0;} +.x-grid3-header-pop{border-left:1px solid #d0d0d0;float:right;clear:none;} +.x-grid3-header-pop-inner{border-left:1px solid #eee;width:14px;height:19px;background:transparent url(../images/silverCherry/grid_hd-pop.gif) no-repeat center center;} +.ext-ie .x-grid3-header-pop-inner{width:15px;} +.ext-strict .x-grid3-header-pop-inner{width:14px;} +.x-grid3-header-inner{overflow:hidden;zoom:1;float:left;} +.x-grid3-header-offset{padding-left:1px;width:10000px;} +td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #ccc;border-right:1px solid #ccc;} +td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{background:#ebebeb url(../images/silverCherry/grid_grid3-hrow-over.gif) repeat-x left bottom;} +.x-grid3-sort-icon{background-repeat:no-repeat;display:none;height:4px;width:13px;margin-left:3px;vertical-align:middle;} +.sort-asc .x-grid3-sort-icon{background-image:url(../images/silverCherry/grid_sort_asc.gif);display:inline;} +.sort-desc .x-grid3-sort-icon{background-image:url(../images/silverCherry/grid_sort_desc.gif);display:inline;} +.ext-strict .ext-ie .x-grid3-header-inner{position:relative;} +.ext-strict .ext-ie6 .x-grid3-hd{position:relative;} +.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;} +.x-grid3-body{zoom:1;} +.x-grid3-scroller{overflow:auto;zoom:1;position:relative;} +.x-grid3-cell-text,.x-grid3-hd-text{display:block;padding:3px 5px 3px 5px;-moz-user-select:none;-khtml-user-select:none;color:black;} +.x-grid3-split{background-image:url(../images/silverCherry/grid_grid-split.gif);background-position:center;background-repeat:no-repeat;cursor:e-resize;cursor:col-resize;display:block;font-size:1px;height:16px;overflow:hidden;position:absolute;top:2px;width:6px;z-index:3;} +.x-grid3-hd-text{color:#990000;} +.x-dd-drag-proxy .x-grid3-hd-inner{background:#ebebeb url(../images/silverCherry/grid_grid3-hrow-over.gif) repeat-x left bottom;width:120px;padding:3px;border:1px solid #e8e8e8;overflow:hidden;} +.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:1px;font-size:1px;overflow:hidden;visibility:hidden;z-index:20000;} +.col-move-top{background:transparent url(../images/silverCherry/grid_col-move-top.gif) no-repeat left top;} +.col-move-bottom{background:transparent url(../images/silverCherry/grid_col-move-bottom.gif) no-repeat left top;} +.x-grid3-row-selected{background:#DFE8F6!important;border:1px dotted #a3bae9;} +.x-grid3-cell-selected{background-color:#B8CFEE!important;color:black;} +.x-grid3-cell-selected span{color:black!important;} +.x-grid3-cell-selected .x-grid3-cell-text{color:black;} +.x-grid3-locked td.x-grid3-row-marker,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{background:#ebeadb url(../images/silverCherry/grid_grid-hrow.gif) repeat-x 0 bottom!important;vertical-align:middle!important;color:black;padding:0;border-top:1px solid white;border-bottom:none!important;border-right:1px solid #6fa0df!important;text-align:center;} +.x-grid3-locked td.x-grid3-row-marker div,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{padding:0 4px;color:#8c8c8c!important;text-align:center;} +.x-grid3-dirty-cell{background:transparent url(../images/silverCherry/grid_dirty.gif) no-repeat 0 0;} +.x-grid3-topbar,.x-grid3-bottombar{font:normal 11px arial,tahoma,helvetica,sans-serif;overflow:hidden;display:none;zoom:1;position:relative;} +.x-grid3-topbar .x-toolbar{border-right:0 none;} +.x-grid3-bottombar .x-toolbar{border-right:0 none;border-bottom:0 none;border-top:1px solid #a9bfd3;} +.x-props-grid .x-grid3-cell{padding:1px;} +.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background:transparent url(../images/silverCherry/grid_grid3-special-col-bg.gif) repeat-y -16px!important;padding-left:12px;color:black!important;} +.x-props-grid .x-grid3-body .x-grid3-td-name{padding:1px;padding-right:0;background:white!important;border:0 none;border-right:1px solid #eee;} +.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../images/silverCherry/grid_hmenu-asc.gif);} +.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../images/silverCherry/grid_hmenu-desc.gif);} +.xg-hmenu-lock .x-menu-item-icon{background-image:url(../images/silverCherry/grid_hmenu-lock.gif);} +.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../images/silverCherry/grid_hmenu-unlock.gif);} +.x-grid3-col-dd{border:0 none;padding:0;background:transparent;} +.x-dd-drag-ghost .x-grid3-dd-wrap{padding:1px 3px 3px 1px;} +.x-grid3-hd{-moz-user-select:none;} +.x-grid3-hd-btn{display:none;position:absolute;width:14px;background:#c3daf9 url(../images/silverCherry/grid_grid3-hd-btn.gif) no-repeat left center;right:0;top:0;z-index:2;cursor:pointer;} +.x-grid3-hd-over .x-grid3-hd-btn,.x-grid3-hd-menu-open .x-grid3-hd-btn{display:block;} +a.x-grid3-hd-btn:hover{background-position:-14px center;} +.x-grid3-body .x-grid3-td-expander{background:transparent url(../images/silverCherry/grid_grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner{padding:0!important;height:100%;} +.x-grid3-row-expander{width:100%;height:18px;background-position:4px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/silverCherry/grid_row-expand-sprite.gif);} +.x-grid3-row-collapsed .x-grid3-row-expander{background-position:4px 2px;} +.x-grid3-row-expanded .x-grid3-row-expander{background-position:-21px 2px;} +.x-grid3-row-collapsed .x-grid3-row-body{display:none!important;} +.x-grid3-row-expanded .x-grid3-row-body{display:block!important;} +.x-grid3-body .x-grid3-td-checker{background:transparent url(../images/silverCherry/grid_grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner,.x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner{padding:0!important;height:100%;} +.x-grid3-row-checker,.x-grid3-hd-checker{width:100%;height:18px;background-position:2px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/silverCherry/grid_row-check-sprite.gif);} +.x-grid3-row .x-grid3-row-checker{background-position:2px 2px;} +.x-grid3-row-selected .x-grid3-row-checker,.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 2px;} +.x-grid3-hd-checker{background-position:2px 3px;} +.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 3px;} +.x-grid3-body .x-grid3-td-numberer{background:transparent url(../images/silverCherry/grid_grid3-special-col-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{padding:3px 5px 0 0!important;text-align:right;color:#444;} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{background:transparent url(../images/silverCherry/grid_grid3-special-col-sel-bg.gif) repeat-y right;} +.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner{padding:1px 0 0 0!important;} +.x-grid3-check-col{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/menu/unchecked.gif);} +.x-grid3-check-col-on{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/menu/checked.gif);} +.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1;} +.x-grid-group-hd{border-bottom:2px solid #d21313;color: #d21313 !important;cursor:pointer;padding-top:6px;} +.x-grid-group-hd div{background:transparent url(../images/silverCherry/grid_group-expand-sprite.gif) no-repeat 3px -47px;padding:4px 4px 4px 17px;color:#990000;font:bold 11px tahoma,arial,helvetica,sans-serif;} +.x-grid-group-collapsed .x-grid-group-hd div{background-position:3px 3px;} +.x-grid-group-collapsed .x-grid-group-body{display:none;} +.x-group-by-icon{background-image:url(../images/silverCherry/grid_group-by.gif);} +.x-cols-icon{background-image:url(../images/silverCherry/grid_columns.gif);} +.x-show-groups-icon{background-image:url(../images/silverCherry/grid_group-by.gif);} +.ext-ie .x-grid3 .x-editor .x-form-text{position:relative;top:-1px;} +.x-grid-editor{position:relative!important;float:left;} +.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif;} +.ytb-text{color:#666 !important;} + +.x-date-picker{border:1px solid #6b6b6b;border-top:0 none;background:#fff;position:relative;} +.x-date-picker a{-moz-outline:0 none;outline:0 none;} +.x-date-inner,.x-date-inner td,.x-date-inner th{border-collapse:separate;} +.x-date-middle,.x-date-left,.x-date-right{background:url(../images/silverCherry/shared_hd-sprite.gif) repeat-x 0 -83px;color:#FFF;font:bold 11px "sans serif",tahoma,verdana,helvetica;overflow:hidden;} +.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{background:transparent!important;vertical-align:middle;} +.x-date-middle .x-btn .x-btn-text{color:#fff;} +.x-date-middle .x-btn-with-menu .x-btn-center em{background:transparent url(../images/default/toolbar/btn-arrow-light.gif) no-repeat right 0;} +.x-date-right,.x-date-left{width:18px;} +.x-date-right{text-align:right;} +.x-date-middle{padding-top:2px;padding-bottom:2px;} +.x-date-right a,.x-date-left a{display:block;width:16px;height:16px;background-position:center;background-repeat:no-repeat;cursor:pointer;-moz-opacity:0.6;opacity:.6;filter:alpha(opacity=60);} +.x-date-right a:hover,.x-date-left a:hover{-moz-opacity:1;opacity:1;filter:alpha(opacity=100);} +.x-date-right a{background-image:url(../images/silverCherry/shared_right-btn.gif);margin-right:2px;text-decoration:none!important;} +.x-date-left a{background-image:url(../images/silverCherry/shared_left-btn.gif);margin-left:2px;text-decoration:none!important;} +table.x-date-inner{width:100%;table-layout:fixed;} +.x-date-inner th{width:25px;} +.x-date-inner th{background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;text-align:right!important;border-bottom:1px solid #d9d9d9;font:normal 10px arial,helvetica,tahoma,sans-serif;color:#6e6e6e;cursor:default;padding:0;border-collapse:separate;} +.x-date-inner th span{display:block;padding:2px;padding-right:7px;} +.x-date-inner td{border:1px solid #fff;text-align:right;padding:0;} +.x-date-inner a{padding:2px 5px;display:block;font:normal 11px arial,helvetica,tahoma,sans-serif;text-decoration:none;color:black;text-align:right;zoom:1;} +.x-date-inner .x-date-active{cursor:pointer;color:black;} +.x-date-inner .x-date-selected a{background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;border:1px solid #e3e3e3;padding:1px 4px;} +.x-date-inner .x-date-today a{border:1px solid darkred;padding:1px 4px;} +.x-date-inner .x-date-selected span{font-weight:bold;} +.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a{color:#aaa;text-decoration:none!important;} +.x-date-bottom{padding:4px;border-top:1px solid #d9d9d9;background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;} +.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{text-decoration:none!important;color:black;background:#fcfcfc;} +.x-date-inner .x-date-disabled a{cursor:default;background:#eee;color:#bbb;} +.x-date-mmenu, .x-date-menu{background:#eee!important;border:1px solid #aaa !important} +.x-date-mmenu .x-menu-item{font-size:10px;padding:1px 24px 1px 4px;white-space:nowrap;color:#000;} +.x-date-mmenu .x-menu-item .x-menu-item-icon{width:10px;height:10px;margin-right:5px;background-position:center -4px!important;} +.x-date-mp{position:absolute;left:0;top:0;background:white;display:none;} +.x-date-mp td{padding:2px;font:normal 11px arial,helvetica,tahoma,sans-serif;} +td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn{border:0 none;text-align:center;vertical-align:middle;width:25%;} +.x-date-mp-ok{margin-right:3px;} +.x-date-mp-btns button{text-decoration:none;text-align:center;text-decoration:none!important;background:#737373;color:white;border:1px solid;border-color:#cccccc #005 #005 #ccc;padding:1px 3px 1px;font:normal 11px arial,helvetica,tahoma,sans-serif;cursor:pointer;} +.x-date-mp-btns{background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;} +.x-date-mp-btns td{border-top:1px solid #dedede;text-align:center;} +td.x-date-mp-month a,td.x-date-mp-year a{display:block;padding:2px 4px;text-decoration:none;text-align:center;color:#8c8c8c;} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{color:#8c8c8c;text-decoration:none;cursor:pointer;background:#fcfcfc;} +td.x-date-mp-sel a{padding:1px 3px;background:#fafafa url(../images/silverCherry/shared_glass-bg.gif) repeat-x left top;border:1px solid #e3e3e3;} +.x-date-mp-ybtn a{overflow:hidden;width:15px;height:15px;cursor:pointer;background:transparent url(../images/silverCherry/panel_tool-sprites-silver.gif) no-repeat;display:block;margin:0 auto;} +.x-date-mp-ybtn a.x-date-mp-next{background-position:0 -120px;} +.x-date-mp-ybtn a.x-date-mp-next:hover{background-position:-15px -120px;} +.x-date-mp-ybtn a.x-date-mp-prev{background-position:0 -105px;} +.x-date-mp-ybtn a.x-date-mp-prev:hover{background-position:-15px -105px;} +.x-date-mp-ybtn{text-align:center;} +td.x-date-mp-sep{border-right:1px solid #dedede;} + +.x-form-field{margin:0;font:normal 12px tahoma,arial,helvetica,sans-serif;} +.x-form-text,textarea.x-form-field{padding:1px 3px;background:#fff url(../images/silverCherry/form_text-bg.gif) repeat-x 0 0;border:1px solid #c7c7c7;} +textarea.x-form-field{padding:2px 3px;} +.x-form-text{height:22px;line-height:18px;vertical-align:middle;} +.ext-ie .x-form-text{margin:-1px 0;height:22px;line-height:18px;} +.ext-ie textarea.x-form-field{margin:-1px 0;} +.ext-strict .x-form-text{height:18px;} +.ext-safari .x-form-text{height:20px;padding:0 3px;} +.ext-safari.ext-mac textarea.x-form-field{margin-bottom:-2px;} +.ext-gecko .x-form-text{padding-top:2px;padding-bottom:0;} +textarea{resize:none;} +.x-form-select-one{height:20px;line-height:18px;vertical-align:middle;background-color:#fff;border:1px solid #c7c7c7;} +.x-form-field-wrap{position:relative;zoom:1;white-space:nowrap;} +.x-editor .x-form-check-wrap{background:#fff;} +.x-form-field-wrap .x-form-trigger{width:17px;height:21px;border:0;background:transparent url(../images/silverCherry/form_trigger.gif) no-repeat 0 0;cursor:pointer;border-bottom:1px solid #c7c7c7;position:absolute;top:0;} +.ext-safari .x-form-field-wrap .x-form-trigger{height:21px;} +.x-form-field-wrap .x-form-date-trigger{background-image:url(../images/silverCherry/form_date-trigger.gif);cursor:pointer;} +.x-form-field-wrap .x-form-clear-trigger{background-image:url(../images/silverCherry/form_clear-trigger.gif);cursor:pointer;} +.x-form-field-wrap .x-form-search-trigger{background-image:url(../images/silverCherry/form_search-trigger.gif);cursor:pointer;} +.ext-safari .x-form-field-wrap .x-form-trigger{right:0;} +.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{position:static;top:auto;vertical-align:top;} +.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;} +.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;} +.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;} +.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;} +.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;} +.x-trigger-wrap-focus .x-form-trigger{border-bottom:1px solid #d9d9d9;} +.x-item-disabled .x-form-trigger-over{background-position:0 0!important;border-bottom:1px solid #c7c7c7;} +.x-item-disabled .x-form-trigger-click{background-position:0 0!important;border-bottom:1px solid #c7c7c7;} +.x-form-focus,textarea.x-form-focus{border:1px solid #d9d9d9;} +.x-form-invalid,textarea.x-form-invalid{background:#fff url(../images/default/grid/invalid_line.gif) repeat-x bottom;border:1px solid #dd7870;} +.ext-safari .x-form-invalid{background-color:#fee;border:1px solid #ff7870;} +.x-editor{visibility:hidden;padding:0;margin:0;} +.x-form-check-wrap{line-height:18px;} +.ext-ie .x-form-check-wrap input{width:15px;height:15px;} +.x-editor .x-form-check-wrap{padding:3px;} +.x-editor .x-form-checkbox{height:13px;} +.x-form-grow-sizer{font:normal 12px tahoma,arial,helvetica,sans-serif;left:-10000px;padding:8px 3px;position:absolute;visibility:hidden;top:-10000px;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;zoom:1;} +.x-form-grow-sizer p{margin:0!important;border:0 none!important;padding:0!important;} +.x-form-item{font:normal 12px tahoma,arial,helvetica,sans-serif;display:block;margin-bottom:4px;} +.x-form-item label{display:block;float:left;width:100px;padding:3px;padding-left:0;clear:left;z-index:2;position:relative;} +.x-form-element{padding-left:105px;position:relative;} +.x-form-invalid-msg{color:#e00;padding:2px;padding-left:18px;font:normal 11px tahoma,arial,helvetica,sans-serif;background:transparent url(../images/default/shared/warning.gif) no-repeat 0 2px;line-height:16px;width:200px;} +.x-form-label-right label{text-align:right;} +.x-form-label-top .x-form-item label{width:auto;float:none;clear:none;display:inline;margin-bottom:4px;position:static;} +.x-form-label-top .x-form-element{padding-left:0;padding-top:4px;} +.x-form-label-top .x-form-item{padding-bottom:4px;} +.x-form-empty-field{color:gray;} +.x-small-editor .x-form-field{font:normal 11px arial,tahoma,helvetica,sans-serif;} +.x-small-editor .x-form-text{height:20px;line-height:16px;vertical-align:middle;} +.ext-ie .x-small-editor .x-form-text{margin-top:-1px!important;margin-bottom:-1px!important;height:20px!important;line-height:16px!important;} +.ext-strict .x-small-editor .x-form-text{height:16px!important;} +.ext-safari .x-small-editor .x-form-field{font:normal 12px arial,tahoma,helvetica,sans-serif;} +.ext-ie .x-small-editor .x-form-text{height:20px;line-height:16px;} +.ext-border-box .x-small-editor .x-form-text{height:20px;} +.x-small-editor .x-form-select-one{height:20px;line-height:16px;vertical-align:middle;} +.x-small-editor .x-form-num-field{text-align:right;} +.x-small-editor .x-form-field-wrap .x-form-trigger{height:19px;} +.x-form-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;} +.x-form-clear-left{clear:left;height:0;overflow:hidden;line-height:0;font-size:0;} +.x-form-cb-label{width:'auto'!important;float:none!important;clear:none!important;display:inline!important;margin-left:4px;} +.x-form-column{float:left;padding:0;margin:0;width:48%;overflow:hidden;zoom:1;} +.x-form .x-form-btns-ct .x-btn{float:right;clear:none;} +.x-form .x-form-btns-ct .x-form-btns td{border:0;padding:0;} +.x-form .x-form-btns-ct .x-form-btns-right table{float:right;clear:none;} +.x-form .x-form-btns-ct .x-form-btns-left table{float:left;clear:none;} +.x-form .x-form-btns-ct .x-form-btns-center{text-align:center;} +.x-form .x-form-btns-ct .x-form-btns-center table{margin:0 auto;} +.x-form .x-form-btns-ct table td.x-form-btn-td{padding:3px;} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;} +.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;} +.x-form .x-form-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;} +.x-form .x-form-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;} +.x-form .x-form-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;} +.x-form-invalid-icon{width:16px;height:18px;visibility:hidden;position:absolute;left:0;top:0;display:block;background:transparent url(../images/silverCherry/form_exclamation.gif) no-repeat 0 2px;} +.x-fieldset{border:1px solid #c7c7c7;padding:10px;margin-bottom:10px;} +.x-fieldset legend{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#8c8c8c;} +.ext-ie .x-fieldset legend{margin-bottom:10px;} +.ext-ie .x-fieldset{padding-top:0;padding-bottom:5px;} +.x-fieldset legend .x-tool-toggle{margin-right:3px;margin-left:0;float:left!important;} +.x-fieldset legend input{margin-right:3px;float:left!important;height:13px;width:13px;} +fieldset.x-panel-collapsed{padding-bottom:0!important;border-width:1px 0 0 0!important;} +fieldset.x-panel-collapsed .x-fieldset-bwrap{visibility:hidden;position:absolute;left:-1000px;top:-1000px;} +.ext-ie .x-fieldset-bwrap{zoom:1;} +.ext-ie td .x-form-text{position:relative;top:-1px;} +.x-fieldset-noborder{border:0 none transparent;} +.x-fieldset-noborder legend{margin-left:-3px;} +.ext-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px;} +.ext-ie .x-fieldset-noborder legend span{position:absolute;left:-5px;} +.ext-gecko .x-window-body .x-form-item{-moz-outline:none;} +.ext-gecko .x-form-item{-moz-outline:none;} +.x-hide-label label.x-form-item-label{display:none;} +.x-hide-label .x-form-element{padding-left:0!important;} + +a{color:#ca000000;} + diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-slate.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-slate.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,664 @@ +.x-panel { + border-style: solid; + border-color: #ccaacc; +} +.x-panel-header { + color:#fafafa; + border:1px solid #ccaacc; + background-image:url(../images/slate/panel/white-top-bottom.gif); +} + +.x-panel-body { + border-color:#ccaacc; +} + +.x-panel-bbar .x-toolbar { + border-color:#ccaacc; +} + +.x-panel-tbar .x-toolbar { + border-color:#ccaacc; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color:#ccaacc; +} +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color:#ccaacc; +} +.x-panel-tl .x-panel-header { + color:#f4f4f4; +} +.x-panel-tc { + background-image:url(../images/slate/panel/top-bottom.gif); +} +.x-panel-tl { + background-image:url(../images/slate/panel/corners-sprite.gif); + border-color:#ccaacc; +} +.x-panel-tr { + background-image:url(../images/slate/panel/corners-sprite.gif); +} +.x-panel-bc { + background-image:url(../images/slate/panel/top-bottom.gif); +} +.x-panel-bl { + background-image:url(../images/slate/panel/corners-sprite.gif); +} +.x-panel-br { + background-image:url(../images/slate/panel/corners-sprite.gif); +} +.x-panel-mc { + background:#f7eef8; +} +.x-panel-mc .x-panel-body { + background:transparent; + border: 0 none; +} +.x-panel-ml { + background-image:url(../images/slate/panel/left-right.gif); +} +.x-panel-mr { + background-image:url(../images/slate/panel/left-right.gif); +} + +.x-panel-dd-spacer{ + border:2px dashed #aa88aa; +} + + +/* Tools */ +.x-tool { + background-image:url(../images/slate/panel/tool-sprites.gif); +} + +/* Ghosting */ +.x-panel-ghost { + background:#e0e0e0; +} + +.x-panel-ghost ul { + border-color:#b0b0b0; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border:1px solid #ccaacc; +} + +/* Buttons */ + +.x-btn-left{ + background-image:url(../images/slate/button/btn-sprite.gif); +} +.x-btn-right{ + background-image:url(../images/slate/button/btn-sprite.gif); +} +.x-btn-center{ + background-image:url(../images/slate/button/btn-sprite.gif); +} +.x-btn-over button{ + color:#ffffff; +} +.x-btn-focus button{ + color:#ffffff; +} +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background:transparent url(../images/slate/toolbar/btn-arrow.gif) no-repeat scroll right 3px; +} +.x-btn-with-menu .x-btn-center em { + background:transparent url(../images/slate/toolbar/btn-arrow.gif) no-repeat scroll right 0pt; +} +.x-btn-menu-arrow-wrap .x-btn-center button{ + background:transparent url(../images/slate/button/btn-arrow.gif) no-repeat left 3px; +} + + +/* Layout classes */ + +.x-border-layout-ct { + background:#f0f0f0; +} + +.x-accordion-hd { + background-image:url(../images/slate/panel/light-hd.gif); +} + +.x-layout-collapsed{ + background-color:#775577; + border-color:#e0e0e0; +} +.x-layout-collapsed-over{ + background-color:#997799; +} + + + +/* Toolbars */ + +.x-toolbar{ + border-color:#ccaacc; + background:#f3f0f5 url(../images/slate/toolbar/bg.gif) repeat-x top left; +} +.x-toolbar button { + color:#f4f4f4; +} +.x-toolbar .ytb-text { + color:white; +} +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/slate/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image:url(../images/slate/toolbar/btn-arrow.gif); +} +.x-toolbar .x-btn-over .x-btn-left{ + background-image:url(../images/slate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-right{ + background-image:url(../images/slate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over .x-btn-center{ + background-image:url(../images/slate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-over button { + color:#ffffff; +} +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ + background-image:url(../images/slate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ + background-image:url(../images/slate/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ + background-image:url(../images/slate/toolbar/tb-btn-sprite.gif); +} +.x-toolbar .ytb-sep { + background-image: url(../images/slate/grid/grid-split.gif); +} + +/* Menus */ + +.x-menu{ + border:1px solid #aaaaaa; + background:#f0f0f0 url(../images/slate/menu/menu.gif) repeat-y; +} +.x-menu-item-active{ + background:#fdebfb url(../images/slate/menu/item-over.gif) repeat-x left bottom; + border:1px solid #d1c2d2; +} +.x-menu-item-arrow{ + background:transparent url(../images/slate/menu/menu-parent.gif) no-repeat right; +} + + +/* Tabs */ + +.x-tab-panel-header, .x-tab-panel-footer { + + background: #9d6a9f; + border-color:#7b4f7b; +} + + +.x-tab-panel-header { + border-color:#ccaacc; +} + +.x-tab-panel-footer { + border-color:#ccaacc; +} + +ul.x-tab-strip-top{ + background:#dbdbdb url(../images/slate/tabs/tab-strip-bg.gif) repeat-x left top; + border-color:#7e4c7c; + padding-top: 2px; +} + +ul.x-tab-strip-bottom{ + background-image:url(../images/slate/tabs/tab-strip-btm-bg.gif); + border-color:#825682; +} + +.x-tab-strip span.x-tab-strip-text { + color:#333333; +} +.x-tab-strip-over span.x-tab-strip-text { + color:#111111; +} + +.x-tab-strip-active span.x-tab-strip-text { + color:#ffffff; +} + +.x-tab-strip-disabled .x-tabs-text { + color:#aaaaaa; +} + +.x-tab-strip-top .x-tab-right { + background-image:url(../images/slate/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image:url(../images/slate/tabs/tabs-sprite.gif); +} +.x-tab-strip-top .x-tab-strip-inner { + background-image:url(../images/slate/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image:url(../images/slate/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image:url(../images/slate/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image:url(../images/slate/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image:url(../images/slate/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image:url(../images/slate/tabs/tab-close.gif); +} +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ + background-image:url(../images/slate/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color:#ccaacc; + background:#ffffff; +} +.x-tab-panel-bbar .x-toolbar { + border-color: #ccaacc; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #ccaacc; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color:#ccaacc; + background: #9d6a9f; +} + +.x-tab-scroller-left { + background-image: url(../images/slate/tabs/scroll-left.gif); + border-color:#aeaeae; +} +.x-tab-scroller-right { + background-image: url(../images/slate/tabs/scroll-right.gif); + border-color:#aeaeae; +} + +/* Window */ + +.x-window-proxy { + background:#ece4eb; + border-color:#ccaacc; +} + +.x-window-tl .x-window-header { + color:#fafafa; +} +.x-window-tc { + background-image:url(../images/slate/window/top-bottom.png); +} +.x-window-tl { + background-image:url(../images/slate/window/left-corners.png); +} +.x-window-tr { + background-image:url(../images/slate/window/right-corners.png); +} +.x-window-bc { + background-image:url(../images/slate/window/top-bottom.png); +} +.x-window-bl { + background-image:url(../images/slate/window/left-corners.png); +} +.x-window-br { + background-image:url(../images/slate/window/right-corners.png); +} +.x-window-mc { + border:1px solid #ccaacc; + background:#e8e8e8; +} + +.x-window-ml { + background-image:url(../images/slate/window/left-right.png); +} +.x-window-mr { + background-image:url(../images/slate/window/left-right.png); +} +.x-panel-ghost .x-window-tl { + border-color:#ccaacc; +} +.x-panel-collapsed .x-window-tl { + border-color:#ccaacc; +} + +.x-window-plain .x-window-mc { + background: #e8e8e8; + border-right:1px solid #eeeeee; + border-bottom:1px solid #eeeeee; + border-top:1px solid #ccaacc; + border-left:1px solid #ccaacc; +} + +.x-window-plain .x-window-body { + border-left:1px solid #dddddd; + border-top:1px solid #dddddd; + border-bottom:1px solid #ccaacc; + border-right:1px solid #ccaacc; + background:transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + background-color: #f0ecf0; +} + + +/* HTML Editor */ +.x-html-editor-wrap { + border-color:#ccaacc; +} +.x-html-editor-tb .x-btn-text { + background:transparent url(../images/slate/editor/tb-sprite.gif) no-repeat scroll 0%; +} + + +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width:0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width:0; + border-bottom:1px solid #ccaacc; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #ccaacc; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #ccaacc; +} + +.x-window-noborder .x-window-mc { + border-width:0; +} +.x-window-plain .x-window-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width:0; + border-left-width:0; + border-right-width:0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width:0; + border-left-width:0; + border-right-width:0; +} + + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width:0; + border-top:1px solid #ccaacc; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width:0; + border-bottom:1px solid #ccaacc; +} + +/* Forms */ +.x-form-text, textarea.x-form-field { + border:1px solid #bb99bb; +} +.x-trigger-wrap-focus .x-form-trigger { + border-bottom:1px solid #8e4a92; +} +.x-form-focus,textarea.x-form-focus { + border:1px solid #8e4a92; +} + +.x-form-field-wrap .x-form-trigger { + background:transparent url(../images/slate/form/trigger.gif) no-repeat 0 0; +} +.x-form-field-wrap .x-form-date-trigger { + background-image:url(../images/slate/form/date-trigger.gif); +} +.x-form-field-wrap .x-form-clear-trigger { + background-image:url(../images/slate/form/clear-trigger.gif); +} +.x-form-field-wrap .x-form-search-trigger { + background-image:url(../images/slate/form/search-trigger.gif); +} + +.x-form-field-wrap .x-form-trigger { + border-bottom:1px solid #997799; +} + +.x-form fieldset legend { + color:#333333; +} + +/* the following need to be duplicated from ext-all.js, + otherwise hover effects are broken */ +.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;} +.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;} +.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;} +.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;} +.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;} + + +/* Grid */ + +.x-grid3-row-selected { + background:#d2fbdb; + border:1px dotted #cccccc; +} +.x-grid3-hd-btn{ + background:#a9f2b5 url(../images/slate/grid/grid3-hd-btn.gif) no-repeat left center; +} +.x-grid3-header{ + background:#f9f9f9 url(../images/slate/grid/grid3-hrow.gif) repeat-x 0 bottom; +} +td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{ + background:#fdebfb url(../images/slate/grid/grid3-hrow-over.gif) repeat-x left bottom; +} +.sort-asc .x-grid3-sort-icon{ + background-image:url(../images/slate/grid/sort_asc.gif); +} +.sort-desc .x-grid3-sort-icon{ + background-image:url(../images/slate/grid/sort_desc.gif); +} +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left:1px solid #ffffff; + border-right:1px solid #cccccc; +} +.x-grid3-cell-selected{ + background-color:#ebe0ee!important; +} +.x-grid3-body .x-grid3-td-expander{ + background:transparent url(../images/slate/grid/grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-td-checker{ + background:transparent url(../images/slate/grid/grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-td-numberer{ + background:transparent url(../images/slate/grid/grid3-special-col-bg.gif) repeat-y right; +} +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{ + background:transparent url(../images/slate/grid/grid3-special-col-sel-bg.gif) repeat-y right; +} +.x-grid-group-hd { + border-bottom:2px solid #b2aabb; +} +.x-grid-group-hd div { + color: #664466; +} +.x-dd-drag-proxy .x-grid3-hd-inner{ + background:#fdebfb url(../images/slate/grid/grid3-hrow-over.gif) repeat-x left bottom; + border:1px solid #ccaacc; +} +.x-tbar-page-first{ + background-image:url(../images/slate/grid/page-first.gif)!important; +} +.x-tbar-page-last{ + background-image:url(../images/slate/grid/page-last.gif)!important; +} +.x-tbar-page-next{ + background-image:url(../images/slate/grid/page-next.gif)!important; +} +.x-tbar-page-prev{ + background-image:url(../images/slate/grid/page-prev.gif)!important; +} +.x-paging-info { + color:#ffffff; +} + + +/* Progress Bar */ + +.x-progress-bar{ + background:#ee9ce8 url( ../../resources/images/slate/progress/progress-bg.gif ) repeat-x left center; + border-top:1px solid #dddddd; + border-bottom:1px solid #dddddd; +} + + +/* Combos */ +.x-combo-list{ + border:1px solid #aa88aa; +} +.x-combo-list .x-combo-selected{ + border:1px dotted #cccccc!important; + background:#d2fbdb; +} + + +/* Calendars */ + +.x-date-middle,.x-date-left,.x-date-right{ + background:url(../images/slate/shared/hd-sprite.gif) repeat-x 0 -83px; +} +.x-date-bottom { + background:#fbdffa url(../images/slate/shared/glass-bg.gif) repeat-x scroll left top; + border-top:1px solid #ccaacc; +} +.x-date-right a{ + background-image:url(../images/slate/shared/right-btn.gif); +} +.x-date-left a{ + background-image:url(../images/slate/shared/left-btn.gif); +} +.x-date-inner th{ + background:#fbdffa url(../images/slate/shared/glass-bg.gif) repeat-x left top; + border-bottom:1px solid #ccaacc; + color:#553355; +} +.x-date-inner .x-date-selected a { + background:#fbdffa url(../images/slate/shared/glass-bg.gif) repeat-x scroll left top; + border:1px solid #aa88aa; +} +.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{ + background:#dccfe1; +} +td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{ + color:#331033; + background:#dccfe1; +} +.x-date-mp-ybtn a{ + background:transparent url(../images/slate/panel/tool-sprites.gif) no-repeat; +} +.x-date-mp-btns { + background:#fbdffa url(../images/slate/shared/glass-bg.gif) repeat-x scroll left top; +} +td.x-date-mp-sel a{ + background:#fbdffa url(../images/slate/shared/glass-bg.gif) repeat-x left top; + border:1px solid #ccaacc; +} +.x-date-mp-btns button{ + background:#74406f; + border:1px solid; + border-color:#ccaacc #2a0055 #2a0055 #ccaacc; +} + +/* Resizable Handle */ +.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{ + background:url(../images/slate/sizer/e-handle.gif);background-position:left; +} +.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{ + background:url(../images/slate/sizer/e-handle.gif);background-position:left; +} +.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{ + background:url(../images/slate/sizer/s-handle.gif);background-position:top; +} +.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{ + background:url(../images/slate/sizer/s-handle.gif);background-position:top; +} +.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{ + background:url(../images/slate/sizer/se-handle.gif);background-position:top left; +} +.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{ + background:url(../images/slate/sizer/nw-handle.gif);background-position:bottom right; +} +.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{ + background:url(../images/slate/sizer/ne-handle.gif);background-position:bottom left; +} +.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{ + background:url(../images/slate/sizer/sw-handle.gif);background-position:top right; +} + +/* Tips */ +.x-tip .x-tip-close{ + background-image:url(../images/slate/qtip/close.gif); +} +.x-tip .x-tip-tc{ + background:transparent url(../images/slate/qtip/tip-sprite.gif) no-repeat 0 -62px; +} +.x-tip .x-tip-tl{ + background:transparent url(../images/slate/qtip/tip-sprite.gif) no-repeat 0 0; +} +.x-tip .x-tip-tr{ + background:transparent url(../images/slate/qtip/tip-sprite.gif) no-repeat right 0; +} +.x-tip .x-tip-bc{ + background:transparent url(../images/slate/qtip/tip-sprite.gif) no-repeat 0 -121px; +} +.x-tip .x-tip-bl{ + background:transparent url(../images/slate/qtip/tip-sprite.gif) no-repeat 0 -59px; +} +.x-tip .x-tip-br{ + background:transparent url(../images/slate/qtip/tip-sprite.gif) no-repeat right -59px; +} +.x-tip .x-tip-ml{ + background:#ffffff url(../images/slate/qtip/tip-sprite.gif) no-repeat 0 -124px; +} +.x-tip .x-tip-mr{ + background:transparent url(../images/slate/qtip/tip-sprite.gif) no-repeat right -124px; +} + + + + +/* Miscellaneous */ + +.x-item-disabled * { + color:#333333 !important; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/css/xtheme-slickness.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/theme/css/xtheme-slickness.css Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,1170 @@ +/* + * Ext JS Library 2.0 Alpha 1 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * @license GPL + * @author Kemal Tunador + */ +.ext-el-mask { + background-color: #000000; +} + +.ext-el-mask-msg { + border: 1px solid #444444; + background: #666666; +} + +.ext-el-mask-msg div { + border: 1px solid #888888; +} + +.x-panel { + border-style: solid; + border-color: #000000; +} + +.x-panel-header { + color: #eeeef0; + border: 1px solid #000000; + background-image: url(../images/slickness/panel/white-top-bottom.gif); +} + +.x-panel-body { + border-color: #000000; + color: #111; +} + +.x-panel-bbar .x-toolbar { + border-color: #000000; +} + +.x-panel-tbar .x-toolbar { + border-color: #000000; +} + +.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { + border-color: #000000; +} + +.x-panel-body-noheader, .x-panel-mc .x-panel-body { + border-color: #000000; +} + +.x-panel-tl .x-panel-header { + color: #eeeef0; +} + +.x-panel-tc { + background-image: url(../images/slickness/panel/top-bottom.gif); +} + +.x-panel-tl { + background-image: url(../images/slickness/panel/corners-sprite.gif); + border-color: #000000; +} + +.x-panel-tr { + background-image: url(../images/slickness/panel/corners-sprite.gif); +} + +.x-panel-bc { + background-image: url(../images/slickness/panel/top-bottom.gif); +} + +.x-panel-bl { + background-image: url(../images/slickness/panel/corners-sprite.gif); +} + +.x-panel-br { + background-image: url(../images/slickness/panel/corners-sprite.gif); +} + +.x-panel-mc { + background: #171717; +} + +.x-panel-mc .x-panel-body { + background: transparent; + border: 0 none; + color: #eee !important; +} + +.x-panel-ml { + background-image: url(../images/slickness/panel/left-right.gif); +} + +.x-panel-mr { + background-image: url(../images/slickness/panel/left-right.gif); +} +/* Ghosting */ +.x-panel-ghost { + background: #161616; +} + +.x-panel-ghost ul { + border-color: #000000; +} + +.x-grid-panel .x-panel-mc .x-panel-body { + border: 1px solid #000000; +} +/* Grid */ +.x-grid3-row { + color: #000000; + border: 1px solid #666; + border-bottom: 1px solid #000; +} + +.x-grid3-row-over { + border: 1px solid #292929; + border-left: 1px solid #666; + background-image: url(../images/slickness/grid/row-over.gif); +} + +.x-grid3-header { + background-image: url(../images/slickness/grid/grid3-hrow.gif); + background-color: #747474; +} + +.x-grid3-hd-inner { + color: #EEEEEE; +} + +.x-grid3-header-pop-inner { + border-left: 1px solid #000000; + background-image: url(../images/slickness/grid/hd-pop.gif); +} + +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { + border-left: 1px solid #000000; + border-right: 1px solid #000000; +} + +.sort-desc .x-grid3-sort-icon { + background-image: url(../images/slickness/grid/sort_desc.gif); +} + +.sort-asc .x-grid3-sort-icon { + background-image: url(../images/slickness/grid/sort_asc.gif); +} + +td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { + background-image: url(../images/slickness/grid/grid3-hrow-over.gif); + background-color: #333; +} + +.x-dd-drag-proxy .x-grid3-hd-inner { + background-image: url(../images/slickness/grid/grid3-hrow-over.gif); +} + +.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker { + background-image: url(../images/slickness/grid/grid-hrow.gif); + color: #666; + border-top: 1px solid #666 !important; + border-right: 1px solid #000 !important; +} + +.x-grid3-hd-btn { + background-image: url(../images/slickness/grid/grid3-hd-btn.gif); +} + +.x-grid3-body .x-grid3-td-expander { + background-image: url(../images/slickness/grid/grid3-special-col-bg.gif); +} + +.x-grid3-body .x-grid3-td-checker { + background-image: url(../images/slickness/grid/grid3-special-col-bg.gif); +} + +.x-grid3-body .x-grid3-td-numberer { + background-image: url(../images/slickness/grid/grid3-special-col-bg.gif); +} + +.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, .x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, .x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { + background-image: url(../images/slickness/grid/grid3-special-col-sel-bg.gif); +} + +.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner { + color: #eee; +} + +.x-grid3-hd-row td { + border-left: 1px solid #555; + border-right: 1px solid #333; +} + +.x-grid3-row-selected .x-grid3-cell, .x-grid3-row-selected .x-grid3-body-cell{ + color: #fff !important; +} + +.x-grid3-row-selected { + background: #333 !important; + border: 1px solid #fff; +} + +.x-grid-group-hd div { + color: #223355; +} + +.x-grid-group-hd { + border: 1px solid #000; + border-bottom: 2px solid #333; +} + +.x-grid3-row-checker, .x-grid3-hd-checker { + background-image: url(../images/slickness/grid/row-check-sprite.gif); +} +/* Menu */ +.x-menu { + border: 1px solid #000000; + background-color: #393939; + background-image: url(../images/slickness/menu/menu.gif); +} + +.x-menu-sep { + background-color: #4d4d4d; + border-bottom: 1px solid #272727; +} + +.x-menu-plain { + background: #393939 !important; +} + +.x-menu-item-active { + background-image: url(../images/slickness/menu/item-over.gif); + background-color: #3f3f3f; + border: 1px solid #222222; +} + +.x-menu a.x-menu-item { + color: #eeeeee; +} + +.x-cycle-menu .x-menu-item-checked { + border: 1px solid #222 !important; + background: #414140 url(../images/slickness/menu/item-selected.gif) repeat-x left bottom; + padding: 0; + /*margin : 1px 0px;*/ +} + +.x-menu-item-active a.x-menu-item { + color: #ffffff; +} + +.xg-hmenu-sort-asc .x-menu-item-icon { + background-image: url(../images/slickness/grid/hmenu-asc.gif); +} + +.xg-hmenu-sort-desc .x-menu-item-icon { + background-image: url(../images/slickness/grid/hmenu-desc.gif); +} + +.x-menu-item-icon { + height: 14px; + width: 14px; +} + +.x-menu-check-item .x-menu-item-icon { + background-image: url(../images/slickness/menu/unchecked.gif); +} + +.x-menu-item-checked .x-menu-item-icon { + background-image: url(../images/slickness/menu/checked.gif); +} + +.x-menu-list-item .x-menu-group-item .x-menu-item-icon { + background-image: url(../images/slickness/menu/group-unchecked.gif); +} + +.x-menu-item-checked .x-menu-group-item .x-menu-item-icon { + background-image: url(../images/slickness/menu/group-checked.gif); +} +/* Panel Tools */ +.x-tool { + background-image: url(../images/slickness/panel/header-sprites.gif); + width: 27px; + height: 15px; + margin-top: -4px; + margin-left: 0px; +} + +legend .x-tool { + margin-top: 0px; +} + +.x-tool-close { + background-position: 0 -0; +} + +.x-tool-close-over { + background-position: -27px 0; +} + +.x-tool-minimize { + background-position: 0 -15px; +} + +.x-tool-minimize-over { + background-position: -27px -15px; +} + +.x-tool-maximize { + background-position: 0 -30px; +} + +.x-tool-maximize-over { + background-position: -27px -30px; +} + +.x-tool-restore { + background-position: 0 -45px; +} + +.x-tool-restore-over { + background-position: -27px -45px; +} + +.x-tool-toggle { + background-position: 0 -60px; +} + +.x-tool-toggle-over { + background-position: -27px -60px; +} + +.x-panel-collapsed .x-tool-toggle { + background-position: 0 -75px; +} + +.x-panel-collapsed .x-tool-toggle-over { + background-position: -27px -75px; +} + +.x-tool-gear { + background-position: 0 -90px; +} + +.x-tool-gear-over { + background-position: -27px -90px; +} + +.x-tool-pin { + background-position: 0 -135px; +} + +.x-tool-pin-over { + background-position: -27px -135px; +} + +.x-tool-unpin { + background-position: 0 -150px; +} + +.x-tool-unpin-over { + background-position: -27px -150px; +} + +.x-tool-right { + background-position: 0 -165px; +} + +.x-tool-right-over { + background-position: -27px -165px; +} + +.x-tool-left { + background-position: 0 -180px; +} + +.x-tool-left-over { + background-position: -27px -180px; +} + +.x-tool-up { + background-position: 0 -210px; +} + +.x-tool-up-over { + background-position: -27px -210px; +} + +.x-tool-down { + background-position: 0 -195px; +} + +.x-tool-down-over { + background-position: -27px -195px; +} + +.x-tool-refresh { + background-position: 0 -225px; +} + +.x-tool-refresh-over { + background-position: -27px -225px; +} + +.x-tool-minus { + background-position: 0 -255px; +} + +.x-tool-minus-over { + background-position: -27px -255px; +} + +.x-tool-plus { + background-position: 0 -240px; +} + +.x-tool-plus-over { + background-position: -27px -240px; +} + +.x-tool-search { + background-position: 0 -270px; +} + +.x-tool-search-over { + background-position: -27px -270px; +} + +.x-tool-save { + background-position: 0 -285px; +} + +.x-tool-save-over { + background-position: -27px -285px; +} + +.x-tool-help { + background-position: 0 -300px; +} + +.x-tool-help-over { + background-position: -27px -300px; +} + +.x-tool-print { + background-position: 0 -315px; +} + +.x-tool-print-over { + background-position: -27px -315px; +} + +.x-tool-wrench { + background-position: 0 -330px; +} + +.x-tool-wrench-over { + background-position: -27px -330px; +} +/* Layout Tools */ +.x-tool-collapse-south { + background-position: 0 -195px; +} + +.x-tool-collapse-south-over { + background-position: -27px -195px; +} + +.x-tool-collapse-north { + background-position: 0 -210px; +} + +.x-tool-collapse-north-over { + background-position: -27px -210px; +} + +.x-tool-collapse-west { + background-position: 0 -180px; +} + +.x-tool-collapse-west-over { + background-position: -27px -180px; +} + +.x-tool-collapse-east { + background-position: 0 -165px; +} + +.x-tool-collapse-east-over { + background-position: -27px -165px; +} + +.x-tool-expand-south { + background-position: 0 -210px; +} + +.x-tool-expand-south-over { + background-position: -27px -210px; +} + +.x-tool-expand-north { + background-position: 0 -195px; +} + +.x-tool-expand-north-over { + background-position: -27px -195px; +} + +.x-tool-expand-west { + background-position: 0 -165px; +} + +.x-tool-expand-west-over { + background-position: -27px -165px; +} + +.x-tool-expand-east { + background-position: 0 -180px; +} + +.x-tool-expand-east-over { + background-position: -27px -180px; +} + +.x-tool-expand-north, .x-tool-expand-south { + float: right; + margin: 0px 3px; +} + +.x-tool-expand-east, .x-tool-expand-west { + float: none; + margin: 0px -4px; +} + +.x-accordion-hd .x-tool-toggle-over { + background-position: -27px -255px; +} + +.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over { + background-position: -27px -240px; +} +/* Buttons */ +.x-btn-text { + color: #eeeef0; + font-weight: bold !important; +} + +.x-btn-left { + background-image: url(../images/slickness/button/btn-sprite.gif); +} + +.x-btn-right { + background-image: url(../images/slickness/button/btn-sprite.gif); +} + +.x-btn-center { + background-image: url(../images/slickness/button/btn-sprite.gif); +} + +.x-btn-menu-arrow-wrap .x-btn-center button { + background-image: url(../images/slickness/button/btn-arrow-light.gif); +} + +.x-btn-with-menu .x-btn-center em { + background-image: url(../images/slickness/toolbar/btn-arrow-light.gif); +} + +.x-btn-text-icon .x-btn-with-menu .x-btn-center em { + background-image: url(../images/slickness/toolbar/btn-arrow-light.gif); +} +/* Layout classes */ +.x-border-layout-ct { + background: #ddd; /* f1f2f4 */ +} + +.x-accordion-hd { + background-image: url(../images/slickness/panel/light-hd.gif); +} + +.x-layout-collapsed { + background-color: #222222; + border-color: #000000; +} + +.x-layout-collapsed-over { + background-color: #444444; +} +/* qtips */ +.x-tip .x-tip-close { + background-image: url(../images/slickness/qtip/close.gif); +} + +.x-tip .x-tip-tc { + background-image: url(../images/slickness/qtip/tip-sprite.gif); +} + +.x-tip .x-tip-tl { + background-image: url(../images/slickness/qtip/tip-sprite.gif); +} + +.x-tip .x-tip-tr { + background-image: url(../images/slickness/qtip/tip-sprite.gif); +} + +.x-tip .x-tip-bc { + background-image: url(../images/slickness/qtip/tip-sprite.gif); +} + +.x-tip .x-tip-bl { + background-image: url(../images/slickness/qtip/tip-sprite.gif); +} + +.x-tip .x-tip-br { + background-image: url(../images/slickness/qtip/tip-sprite.gif); +} + +.x-tip .x-tip-ml { + background-image: url(../images/slickness/qtip/tip-sprite.gif); +} + +.x-tip .x-tip-mr { + background-image: url(../images/slickness/qtip/tip-sprite.gif); +} + +.x-tip .x-tip-header-text { + color: #ffffff; +} + +.x-tip .x-tip-body { + color: #eeeeee; +} + +.x-form-invalid-icon { + background-image: url(../images/slickness/form/exclamation.gif); +} + +.x-form-invalid-tip .x-tip-tc { + background-image: url(../images/slickness/form/error-tip-corners.gif); +} + +.x-form-invalid-tip .x-tip-tl { + background-image: url(../images/slickness/form/error-tip-corners.gif); +} + +.x-form-invalid-tip .x-tip-tr { + background-image: url(../images/slickness/form/error-tip-corners.gif); +} + +.x-form-invalid-tip .x-tip-bc { + background-image: url(../images/slickness/form/error-tip-corners.gif); +} + +.x-form-invalid-tip .x-tip-bl { + background-image: url(../images/slickness/form/error-tip-corners.gif); +} + +.x-form-invalid-tip .x-tip-br { + background-image: url(../images/slickness/form/error-tip-corners.gif); +} + +.x-form-invalid-tip .x-tip-ml { + background-image: url(../images/slickness/form/error-tip-corners.gif); +} + +.x-form-invalid-tip .x-tip-mr { + background-image: url(../images/slickness/form/error-tip-corners.gif); +} + +.x-form-invalid-tip .x-tip-body { + background-image: url(../images/slickness/form/exclamation.gif); +} +/* Toolbars */ +.x-toolbar { + border-color: #444444; + background: #282828 url(../images/slickness/toolbar/bg.gif) repeat-x top left; +} + +.x-toolbar button { + color: #eeeef0; +} + +.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { + background-image: url(../images/slickness/toolbar/btn-arrow-light.gif); +} + +.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { + background-image: url(../images/slickness/toolbar/btn-arrow-light.gif); +} + +.x-toolbar .x-btn-over .x-btn-left { + background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-over .x-btn-right { + background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-over .x-btn-center { + background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-over button { + color: #ffffff; +} + +.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left { + background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right { + background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center { + background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif); +} + +.x-toolbar .ytb-sep { + background-image: url(../images/slickness/grid/grid-split.gif); +} + +.x-paging-info, .ytb-text { + color: #eeeef0; +} +/* Form */ +.x-form-field-wrap .x-form-trigger { + background-image: url(../images/slickness/form/trigger.gif); + border-bottom: 1px solid #a3a3a3; +} + +.x-form-field-wrap .x-form-date-trigger { + background-image: url(../images/slickness/form/date-trigger.gif); +} + +.x-form-field-wrap .x-form-clear-trigger { + background-image: url(../images/slickness/form/clear-trigger.gif); +} + +.x-form-field-wrap .x-form-search-trigger { + background-image: url(../images/slickness/form/search-trigger.gif); +} + +.x-form-text, textarea.x-form-field { + border: 1px solid #a3a3a3; +} + +.x-form-select-one { + border: 1px solid #a3a3a3; +} + +.x-item-disabled .x-form-trigger-over { + border-bottom: 1px solid #a3a3a3; +} + +.x-item-disabled .x-form-trigger-click { + border-bottom: 1px solid #a3a3a3; +} + +.x-form fieldset { + border: 1px solid #a3a3a3; +} + +.x-form-item-label { + color: #eee; +} + +.x-panel-noborder .x-form-item-label { + color: #111; +} + +.x-trigger-wrap-focus .x-form-trigger { + border-bottom: 1px solid #eee !important; +} + +.x-form-focus, textarea.x-form-focus { + border: 1px solid #eee !important; +} + +.x-panel-noborder .x-form-focus, textarea.x-form-focus { + border: 1px solid #000; +} +/* Tabs */ +.x-tab-panel-header, .x-tab-panel-footer { + background: #000000; + border-color: #4a4a4a; +} + +.x-tab-panel-header { + border-color: transparent; +} + +.x-tab-panel-footer { + border-color: #4a4a4a; +} + +ul.x-tab-strip-top { + background: #000000 url(../images/slickness/tabs/tab-strip-bg.gif) repeat-x left top; + border-color: #4a4a4a; +} + +ul.x-tab-strip-bottom { + background-image: url(../images/slickness/tabs/tab-strip-btm-bg.gif); + border-color: #4a4a4a; +} + +.x-tab-strip span.x-tab-strip-text { + color: #cccccc; +} + +.x-tab-strip-over span.x-tab-strip-text { + color: #ffffff; +} + +.x-tab-strip-active span.x-tab-strip-text { + color: #eeeef0; +} + +.x-tab-strip-top .x-tab-right { + background-image: url(../images/slickness/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-left { + background-image: url(../images/slickness/tabs/tabs-sprite.gif); +} + +.x-tab-strip-top .x-tab-strip-inner { + background-image: url(../images/slickness/tabs/tabs-sprite.gif); +} + +.x-tab-strip-bottom .x-tab-right { + background-image: url(../images/slickness/tabs/tab-btm-inactive-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-left { + background-image: url(../images/slickness/tabs/tab-btm-inactive-left-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { + background-image: url(../images/slickness/tabs/tab-btm-right-bg.gif); +} + +.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { + background-image: url(../images/slickness/tabs/tab-btm-left-bg.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { + background-image: url(../images/slickness/tabs/tab-close.gif); +} + +.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover { + background-image: url(../images/slickness/tabs/tab-close.gif); +} + +.x-tab-panel-body { + border-color: #4a4a4a; + background: #eeeeee; +} + +.x-tab-panel-bbar .x-toolbar { + border-color: #000000; +} + +.x-tab-panel-tbar .x-toolbar { + border-color: #000000; +} + +.x-tab-panel-header-plain .x-tab-strip-spacer { + border-color: #000000; + background: #353535; +} + +.x-tab-scroller-left { + background-image: url(../images/slickness/tabs/scroll-left.gif); + border-color: #000000; +} + +.x-tab-scroller-right { + background-image: url(../images/slickness/tabs/scroll-right.gif); + border-color: #000000; +} +/* Window */ +.x-window-proxy { + background: #161616; + border-color: #000000; +} + +.x-window-tl .x-window-header { + color: #eeeef0; +} + +.x-window-tc { + background-image: url(../images/slickness/window/top-bottom.png); +} + +.x-window-tl { + background-image: url(../images/slickness/window/left-corners.png); +} + +.x-window-tr { + background-image: url(../images/slickness/window/right-corners.png); +} + +.x-window-bc { + background-image: url(../images/slickness/window/top-bottom.png); +} + +.x-window-bl { + background-image: url(../images/slickness/window/left-corners.png); +} + +.x-window-br { + background-image: url(../images/slickness/window/right-corners.png); +} + +.x-window-mc { + border: 1px solid #333333; + background: #222; + color: #eeeeee; +} + +.x-window-ml { + background-image: url(../images/slickness/window/left-right.png); +} + +.x-window-mr { + background-image: url(../images/slickness/window/left-right.png); +} + +.x-panel-ghost .x-window-tl { + border-color: #000000; +} + +.x-panel-collapsed .x-window-tl { + border-color: #000000; +} + +.x-window-plain .x-window-mc { + color: #eeeeee; + background: #161616; + border-left: 1px solid #111111; + border-top: 1px solid #111111; + border-bottom: 1px solid #222222; + border-right: 1px solid #222222; +} + +.x-window-plain .x-window-body { + border-left: 1px solid #555555; + border-top: 1px solid #555555; + border-bottom: 1px solid #333333; + border-right: 1px solid #333333; + background: transparent !important; +} + +body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { + color: #eeeeee; + background-color: #0e0e0e; +} +/* Date Picker */ +.x-date-picker { + border: 1px solid #000000; + background: #ffffff; +} + +.x-date-middle, .x-date-left, .x-date-right { + background-image: url(../images/slickness/shared/hd-sprite.gif); +} + +.x-date-middle .x-btn-with-menu .x-btn-center em { + background-image: url(../images/slickness/toolbar/btn-arrow-light.gif); +} + +.x-date-right a { + background-image: url(../images/slickness/shared/right-btn.gif); +} + +.x-date-left a { + background-image: url(../images/slickness/shared/left-btn.gif); +} + +.x-date-inner th { + background-image: url(../images/slickness/shared/glass-bg.gif); + border-bottom: 1px solid #000000; + color: #eeeef0; +} + +.x-date-inner .x-date-selected a { + background-image: url(../images/slickness/shared/glass-bg.gif); + border: 1px solid #000000; + color: #eeeef0; +} + +.x-date-bottom { + border-top: 1px solid #000000; + background-image: url(../images/slickness/shared/glass-bg.gif); +} + +.x-date-mp-btns { + background-image: url(../images/slickness/shared/glass-bg.gif); +} + +td.x-date-mp-sel a { + background-image: url(../images/slickness/shared/glass-bg.gif); + border: 1px solid #000000; + color: #eeeef0 !important; +} + +.x-date-mp-ybtn a { + background-image: url(../images/slickness/panel/tool-sprites.gif); +} + +.x-date-mp-btns button { + background-image: url(../images/slickness/shared/glass-bg.gif); + border-color: #eeeeee #bbbbbb #bbbbbb #eeeeee; + color: #eeeef0; +} + +.x-date-inner a { + color: #000000; +} + +.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover { + color: #eeeef0; + background: #353535; +} + +td.x-date-mp-month a, td.x-date-mp-year a { + color: #000000; +} + +td.x-date-mp-month a:hover, td.x-date-mp-year a:hover { + color: #eeeef0; + background: #353535; +} +/* misc */ +.x-html-editor-wrap { + border-color: #000000; +} +/* Editor */ +.x-html-editor-tb .x-btn-text { + background: transparent url(../images/slickness/editor/tb-sprite.gif) no-repeat; +} +/* FieldSet*/ +.x-fieldset-header-text { + color: #eeeeee; +} +/* Borders go last for specificity */ +.x-panel-noborder .x-panel-body-noborder { + border-width: 0; +} + +.x-panel-noborder .x-panel-header-noborder { + border-width: 0; + border-bottom: 1px solid #000000; +} + +.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { + border-width: 0; + border-bottom: 1px solid #000000; +} + +.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { + border-width: 0; + border-top: 1px solid #000000; +} + +.x-window-noborder .x-window-mc { + border-width: 0; +} + +.x-window-plain .x-window-body-noborder { + border-width: 0; +} + +.x-tab-panel-noborder .x-tab-panel-body-noborder { + border-width: 0; +} + +.x-tab-panel-noborder .x-tab-panel-header-noborder { + border-top-width: 0; + border-left-width: 0; + border-right-width: 0; +} + +.x-tab-panel-noborder .x-tab-panel-footer-noborder { + border-bottom-width: 0; + border-left-width: 0; + border-right-width: 0; +} + +.x-tab-panel-bbar-noborder .x-toolbar { + border-width: 0; + border-top: 1px solid #000000; +} + +.x-tab-panel-tbar-noborder .x-toolbar { + border-width: 0; + border-bottom: 1px solid #000000; +} +/* Progress Bar*/ +.x-progress-wrap { + border: 1px solid #4c4c4c; +} + +.x-progress-inner { + background: #2d2d2d url(../images/slickness/progress/progress-bg.gif) repeat-x; +} + +.x-progress-bar { + height: 18px; + background: transparent url( ../images/slickness/progress/progress-ind.gif ) repeat-x left center; + border: none; +} + +.x-progress-text { + color: #000; +} + +.x-progress-text-back { + color: #eee; +} +/* Dialog */ +.x-window-dlg .ext-mb-icon { + float: left; + width: 58px; + height: 48px; +} + +.ext-ie .x-window-dlg .ext-mb-icon { + width: 55px; /* 3px IE margin issue */ +} + +.x-window-dlg .ext-mb-info { + background: transparent url(../images/slickness/window/icon-info.gif) no-repeat top left; +} + +.x-window-dlg .ext-mb-warning { + background: transparent url(../images/slickness/window/icon-warning.gif) no-repeat top left; +} + +.x-window-dlg .ext-mb-question { + background: transparent url(../images/slickness/window/icon-question.gif) no-repeat top left; +} + +.x-window-dlg .ext-mb-error { + background: transparent url(../images/slickness/window/icon-error.gif) no-repeat top left; +} +/* Combo */ +.x-combo-list { + border: 1px solid #333; + background: #ddd; +} + +.x-resizable-pinned .x-combo-list-inner { + /*border-bottom:1px solid #333;*/ +} + +.x-combo-list .x-combo-selected { + border: 1px dotted #888 !important; + background: #ccc; +} + +.x-combo-noedit { + cursor: pointer; +} + +.x-combo-list .x-toolbar { + border-top: 1px solid #333; +} diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/Thumbs.db Binary file onlypaths/theme/images/default/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/box/Thumbs.db Binary file onlypaths/theme/images/default/box/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/box/corners-blue.gif Binary file onlypaths/theme/images/default/box/corners-blue.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/box/corners.gif Binary file onlypaths/theme/images/default/box/corners.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/box/l-blue.gif Binary file onlypaths/theme/images/default/box/l-blue.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/box/l.gif Binary file onlypaths/theme/images/default/box/l.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/box/r-blue.gif Binary file onlypaths/theme/images/default/box/r-blue.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/box/r.gif Binary file onlypaths/theme/images/default/box/r.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/box/tb-blue.gif Binary file onlypaths/theme/images/default/box/tb-blue.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/box/tb.gif Binary file onlypaths/theme/images/default/box/tb.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/button/Thumbs.db Binary file onlypaths/theme/images/default/button/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/button/btn-arrow.gif Binary file onlypaths/theme/images/default/button/btn-arrow.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/button/btn-sprite.gif Binary file onlypaths/theme/images/default/button/btn-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/dd/Thumbs.db Binary file onlypaths/theme/images/default/dd/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/dd/drop-add.gif Binary file onlypaths/theme/images/default/dd/drop-add.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/dd/drop-no.gif Binary file onlypaths/theme/images/default/dd/drop-no.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/dd/drop-yes.gif Binary file onlypaths/theme/images/default/dd/drop-yes.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/editor/Thumbs.db Binary file onlypaths/theme/images/default/editor/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/editor/tb-sprite.gif Binary file onlypaths/theme/images/default/editor/tb-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/Thumbs.db Binary file onlypaths/theme/images/default/form/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/clear-trigger.gif Binary file onlypaths/theme/images/default/form/clear-trigger.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/clear-trigger.psd Binary file onlypaths/theme/images/default/form/clear-trigger.psd has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/date-trigger.gif Binary file onlypaths/theme/images/default/form/date-trigger.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/date-trigger.psd Binary file onlypaths/theme/images/default/form/date-trigger.psd has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/error-tip-corners.gif Binary file onlypaths/theme/images/default/form/error-tip-corners.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/exclamation.gif Binary file onlypaths/theme/images/default/form/exclamation.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/search-trigger.gif Binary file onlypaths/theme/images/default/form/search-trigger.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/search-trigger.psd Binary file onlypaths/theme/images/default/form/search-trigger.psd has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/text-bg.gif Binary file onlypaths/theme/images/default/form/text-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/trigger-tpl.gif Binary file onlypaths/theme/images/default/form/trigger-tpl.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/trigger.gif Binary file onlypaths/theme/images/default/form/trigger.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/form/trigger.psd Binary file onlypaths/theme/images/default/form/trigger.psd has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/gradient-bg.gif Binary file onlypaths/theme/images/default/gradient-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/Thumbs.db Binary file onlypaths/theme/images/default/grid/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/arrow-left-white.gif Binary file onlypaths/theme/images/default/grid/arrow-left-white.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/arrow-right-white.gif Binary file onlypaths/theme/images/default/grid/arrow-right-white.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/col-move-bottom.gif Binary file onlypaths/theme/images/default/grid/col-move-bottom.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/col-move-top.gif Binary file onlypaths/theme/images/default/grid/col-move-top.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/columns.gif Binary file onlypaths/theme/images/default/grid/columns.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/dirty.gif Binary file onlypaths/theme/images/default/grid/dirty.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/done.gif Binary file onlypaths/theme/images/default/grid/done.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/drop-no.gif Binary file onlypaths/theme/images/default/grid/drop-no.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/drop-yes.gif Binary file onlypaths/theme/images/default/grid/drop-yes.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/footer-bg.gif Binary file onlypaths/theme/images/default/grid/footer-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid-blue-hd.gif Binary file onlypaths/theme/images/default/grid/grid-blue-hd.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid-blue-split.gif Binary file onlypaths/theme/images/default/grid/grid-blue-split.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid-hrow.gif Binary file onlypaths/theme/images/default/grid/grid-hrow.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid-loading.gif Binary file onlypaths/theme/images/default/grid/grid-loading.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid-split.gif Binary file onlypaths/theme/images/default/grid/grid-split.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid-vista-hd.gif Binary file onlypaths/theme/images/default/grid/grid-vista-hd.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid3-hd-btn.gif Binary file onlypaths/theme/images/default/grid/grid3-hd-btn.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid3-hrow-over.gif Binary file onlypaths/theme/images/default/grid/grid3-hrow-over.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid3-hrow.gif Binary file onlypaths/theme/images/default/grid/grid3-hrow.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid3-special-col-bg.gif Binary file onlypaths/theme/images/default/grid/grid3-special-col-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/grid3-special-col-sel-bg.gif Binary file onlypaths/theme/images/default/grid/grid3-special-col-sel-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/group-by.gif Binary file onlypaths/theme/images/default/grid/group-by.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/group-expand-sprite.gif Binary file onlypaths/theme/images/default/grid/group-expand-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/hd-pop.gif Binary file onlypaths/theme/images/default/grid/hd-pop.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/hmenu-asc.gif Binary file onlypaths/theme/images/default/grid/hmenu-asc.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/hmenu-desc.gif Binary file onlypaths/theme/images/default/grid/hmenu-desc.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/hmenu-lock.gif Binary file onlypaths/theme/images/default/grid/hmenu-lock.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/hmenu-lock.png Binary file onlypaths/theme/images/default/grid/hmenu-lock.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/hmenu-unlock.gif Binary file onlypaths/theme/images/default/grid/hmenu-unlock.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/hmenu-unlock.png Binary file onlypaths/theme/images/default/grid/hmenu-unlock.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/invalid_line.gif Binary file onlypaths/theme/images/default/grid/invalid_line.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/loading.gif Binary file onlypaths/theme/images/default/grid/loading.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/mso-hd.gif Binary file onlypaths/theme/images/default/grid/mso-hd.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/nowait.gif Binary file onlypaths/theme/images/default/grid/nowait.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/page-first-disabled.gif Binary file onlypaths/theme/images/default/grid/page-first-disabled.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/page-first.gif Binary file onlypaths/theme/images/default/grid/page-first.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/page-last-disabled.gif Binary file onlypaths/theme/images/default/grid/page-last-disabled.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/page-last.gif Binary file onlypaths/theme/images/default/grid/page-last.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/page-next-disabled.gif Binary file onlypaths/theme/images/default/grid/page-next-disabled.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/page-next.gif Binary file onlypaths/theme/images/default/grid/page-next.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/page-prev-disabled.gif Binary file onlypaths/theme/images/default/grid/page-prev-disabled.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/page-prev.gif Binary file onlypaths/theme/images/default/grid/page-prev.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/pick-button.gif Binary file onlypaths/theme/images/default/grid/pick-button.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/refresh.gif Binary file onlypaths/theme/images/default/grid/refresh.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/row-check-sprite.gif Binary file onlypaths/theme/images/default/grid/row-check-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/row-expand-sprite.gif Binary file onlypaths/theme/images/default/grid/row-expand-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/row-over.gif Binary file onlypaths/theme/images/default/grid/row-over.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/row-sel.gif Binary file onlypaths/theme/images/default/grid/row-sel.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/sort_asc.gif Binary file onlypaths/theme/images/default/grid/sort_asc.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/sort_desc.gif Binary file onlypaths/theme/images/default/grid/sort_desc.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/grid/wait.gif Binary file onlypaths/theme/images/default/grid/wait.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/Thumbs.db Binary file onlypaths/theme/images/default/layout/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/collapse.gif Binary file onlypaths/theme/images/default/layout/collapse.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/expand.gif Binary file onlypaths/theme/images/default/layout/expand.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/gradient-bg.gif Binary file onlypaths/theme/images/default/layout/gradient-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/mini-bottom.gif Binary file onlypaths/theme/images/default/layout/mini-bottom.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/mini-left.gif Binary file onlypaths/theme/images/default/layout/mini-left.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/mini-right.gif Binary file onlypaths/theme/images/default/layout/mini-right.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/mini-top.gif Binary file onlypaths/theme/images/default/layout/mini-top.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/ns-collapse.gif Binary file onlypaths/theme/images/default/layout/ns-collapse.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/ns-expand.gif Binary file onlypaths/theme/images/default/layout/ns-expand.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/panel-close.gif Binary file onlypaths/theme/images/default/layout/panel-close.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/panel-title-bg.gif Binary file onlypaths/theme/images/default/layout/panel-title-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/panel-title-light-bg.gif Binary file onlypaths/theme/images/default/layout/panel-title-light-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/stick.gif Binary file onlypaths/theme/images/default/layout/stick.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/stuck.gif Binary file onlypaths/theme/images/default/layout/stuck.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/tab-close-on.gif Binary file onlypaths/theme/images/default/layout/tab-close-on.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/layout/tab-close.gif Binary file onlypaths/theme/images/default/layout/tab-close.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/menu/Thumbs.db Binary file onlypaths/theme/images/default/menu/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/menu/checked.gif Binary file onlypaths/theme/images/default/menu/checked.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/menu/group-checked.gif Binary file onlypaths/theme/images/default/menu/group-checked.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/menu/item-over.gif Binary file onlypaths/theme/images/default/menu/item-over.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/menu/menu-parent.gif Binary file onlypaths/theme/images/default/menu/menu-parent.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/menu/menu.gif Binary file onlypaths/theme/images/default/menu/menu.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/menu/unchecked.gif Binary file onlypaths/theme/images/default/menu/unchecked.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/Thumbs.db Binary file onlypaths/theme/images/default/panel/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/corners-sprite.gif Binary file onlypaths/theme/images/default/panel/corners-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/left-right.gif Binary file onlypaths/theme/images/default/panel/left-right.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/light-hd.gif Binary file onlypaths/theme/images/default/panel/light-hd.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/tool-sprite-tpl.gif Binary file onlypaths/theme/images/default/panel/tool-sprite-tpl.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/tool-sprites.gif Binary file onlypaths/theme/images/default/panel/tool-sprites.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/tools-sprites-trans.gif Binary file onlypaths/theme/images/default/panel/tools-sprites-trans.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/top-bottom.gif Binary file onlypaths/theme/images/default/panel/top-bottom.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/top-bottom.png Binary file onlypaths/theme/images/default/panel/top-bottom.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/white-corners-sprite.gif Binary file onlypaths/theme/images/default/panel/white-corners-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/white-left-right.gif Binary file onlypaths/theme/images/default/panel/white-left-right.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/panel/white-top-bottom.gif Binary file onlypaths/theme/images/default/panel/white-top-bottom.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/progress/progress-bg.gif Binary file onlypaths/theme/images/default/progress/progress-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/qtip/Thumbs.db Binary file onlypaths/theme/images/default/qtip/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/qtip/bg.gif Binary file onlypaths/theme/images/default/qtip/bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/qtip/close.gif Binary file onlypaths/theme/images/default/qtip/close.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/qtip/tip-sprite.gif Binary file onlypaths/theme/images/default/qtip/tip-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/s.gif Binary file onlypaths/theme/images/default/s.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shadow-c.png Binary file onlypaths/theme/images/default/shadow-c.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shadow-lr.png Binary file onlypaths/theme/images/default/shadow-lr.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shadow.png Binary file onlypaths/theme/images/default/shadow.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/Thumbs.db Binary file onlypaths/theme/images/default/shared/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/blue-loading.gif Binary file onlypaths/theme/images/default/shared/blue-loading.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/calendar.gif Binary file onlypaths/theme/images/default/shared/calendar.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/glass-bg.gif Binary file onlypaths/theme/images/default/shared/glass-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/hd-sprite.gif Binary file onlypaths/theme/images/default/shared/hd-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/large-loading.gif Binary file onlypaths/theme/images/default/shared/large-loading.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/left-btn.gif Binary file onlypaths/theme/images/default/shared/left-btn.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/loading-balls.gif Binary file onlypaths/theme/images/default/shared/loading-balls.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/right-btn.gif Binary file onlypaths/theme/images/default/shared/right-btn.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/shared/warning.gif Binary file onlypaths/theme/images/default/shared/warning.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/Thumbs.db Binary file onlypaths/theme/images/default/sizer/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/e-handle-dark.gif Binary file onlypaths/theme/images/default/sizer/e-handle-dark.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/e-handle.gif Binary file onlypaths/theme/images/default/sizer/e-handle.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/ne-handle-dark.gif Binary file onlypaths/theme/images/default/sizer/ne-handle-dark.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/ne-handle.gif Binary file onlypaths/theme/images/default/sizer/ne-handle.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/nw-handle-dark.gif Binary file onlypaths/theme/images/default/sizer/nw-handle-dark.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/nw-handle.gif Binary file onlypaths/theme/images/default/sizer/nw-handle.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/s-handle-dark.gif Binary file onlypaths/theme/images/default/sizer/s-handle-dark.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/s-handle.gif Binary file onlypaths/theme/images/default/sizer/s-handle.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/se-handle-dark.gif Binary file onlypaths/theme/images/default/sizer/se-handle-dark.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/se-handle.gif Binary file onlypaths/theme/images/default/sizer/se-handle.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/square.gif Binary file onlypaths/theme/images/default/sizer/square.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/sw-handle-dark.gif Binary file onlypaths/theme/images/default/sizer/sw-handle-dark.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/sizer/sw-handle.gif Binary file onlypaths/theme/images/default/sizer/sw-handle.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/slider/Thumbs.db Binary file onlypaths/theme/images/default/slider/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/slider/slider-bg.png Binary file onlypaths/theme/images/default/slider/slider-bg.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/slider/slider-thumb.png Binary file onlypaths/theme/images/default/slider/slider-thumb.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/slider/slider-v-bg.png Binary file onlypaths/theme/images/default/slider/slider-v-bg.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/slider/slider-v-thumb.png Binary file onlypaths/theme/images/default/slider/slider-v-thumb.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/Thumbs.db Binary file onlypaths/theme/images/default/tabs/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/scroll-left.gif Binary file onlypaths/theme/images/default/tabs/scroll-left.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/scroll-right.gif Binary file onlypaths/theme/images/default/tabs/scroll-right.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/scroller-bg.gif Binary file onlypaths/theme/images/default/tabs/scroller-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/tab-btm-inactive-left-bg.gif Binary file onlypaths/theme/images/default/tabs/tab-btm-inactive-left-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/tab-btm-inactive-right-bg.gif Binary file onlypaths/theme/images/default/tabs/tab-btm-inactive-right-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/tab-btm-left-bg.gif Binary file onlypaths/theme/images/default/tabs/tab-btm-left-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/tab-btm-right-bg.gif Binary file onlypaths/theme/images/default/tabs/tab-btm-right-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/tab-close.gif Binary file onlypaths/theme/images/default/tabs/tab-close.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/tab-strip-bg.gif Binary file onlypaths/theme/images/default/tabs/tab-strip-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/tab-strip-bg.png Binary file onlypaths/theme/images/default/tabs/tab-strip-bg.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/tab-strip-btm-bg.gif Binary file onlypaths/theme/images/default/tabs/tab-strip-btm-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tabs/tabs-sprite.gif Binary file onlypaths/theme/images/default/tabs/tabs-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/toolbar/Thumbs.db Binary file onlypaths/theme/images/default/toolbar/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/toolbar/bg.gif Binary file onlypaths/theme/images/default/toolbar/bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/toolbar/btn-arrow-light.gif Binary file onlypaths/theme/images/default/toolbar/btn-arrow-light.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/toolbar/btn-arrow.gif Binary file onlypaths/theme/images/default/toolbar/btn-arrow.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/toolbar/btn-over-bg.gif Binary file onlypaths/theme/images/default/toolbar/btn-over-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/toolbar/gray-bg.gif Binary file onlypaths/theme/images/default/toolbar/gray-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/toolbar/tb-bg.gif Binary file onlypaths/theme/images/default/toolbar/tb-bg.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/toolbar/tb-btn-sprite.gif Binary file onlypaths/theme/images/default/toolbar/tb-btn-sprite.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/Thumbs.db Binary file onlypaths/theme/images/default/tree/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/arrows.gif Binary file onlypaths/theme/images/default/tree/arrows.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/drop-add.gif Binary file onlypaths/theme/images/default/tree/drop-add.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/drop-between.gif Binary file onlypaths/theme/images/default/tree/drop-between.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/drop-no.gif Binary file onlypaths/theme/images/default/tree/drop-no.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/drop-over.gif Binary file onlypaths/theme/images/default/tree/drop-over.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/drop-under.gif Binary file onlypaths/theme/images/default/tree/drop-under.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/drop-yes.gif Binary file onlypaths/theme/images/default/tree/drop-yes.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-end-minus-nl.gif Binary file onlypaths/theme/images/default/tree/elbow-end-minus-nl.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-end-minus.gif Binary file onlypaths/theme/images/default/tree/elbow-end-minus.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-end-plus-nl.gif Binary file onlypaths/theme/images/default/tree/elbow-end-plus-nl.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-end-plus.gif Binary file onlypaths/theme/images/default/tree/elbow-end-plus.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-end.gif Binary file onlypaths/theme/images/default/tree/elbow-end.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-line.gif Binary file onlypaths/theme/images/default/tree/elbow-line.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-minus-nl.gif Binary file onlypaths/theme/images/default/tree/elbow-minus-nl.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-minus.gif Binary file onlypaths/theme/images/default/tree/elbow-minus.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-plus-nl.gif Binary file onlypaths/theme/images/default/tree/elbow-plus-nl.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow-plus.gif Binary file onlypaths/theme/images/default/tree/elbow-plus.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/elbow.gif Binary file onlypaths/theme/images/default/tree/elbow.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/folder-open.gif Binary file onlypaths/theme/images/default/tree/folder-open.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/folder.gif Binary file onlypaths/theme/images/default/tree/folder.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/leaf.gif Binary file onlypaths/theme/images/default/tree/leaf.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/loading.gif Binary file onlypaths/theme/images/default/tree/loading.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/tree/s.gif Binary file onlypaths/theme/images/default/tree/s.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/Thumbs.db Binary file onlypaths/theme/images/default/window/Thumbs.db has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/icon-error.gif Binary file onlypaths/theme/images/default/window/icon-error.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/icon-info.gif Binary file onlypaths/theme/images/default/window/icon-info.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/icon-question.gif Binary file onlypaths/theme/images/default/window/icon-question.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/icon-warning.gif Binary file onlypaths/theme/images/default/window/icon-warning.gif has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/left-corners.png Binary file onlypaths/theme/images/default/window/left-corners.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/left-corners.psd Binary file onlypaths/theme/images/default/window/left-corners.psd has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/left-right.png Binary file onlypaths/theme/images/default/window/left-right.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/left-right.psd Binary file onlypaths/theme/images/default/window/left-right.psd has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/right-corners.png Binary file onlypaths/theme/images/default/window/right-corners.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/right-corners.psd Binary file onlypaths/theme/images/default/window/right-corners.psd has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/top-bottom.png Binary file onlypaths/theme/images/default/window/top-bottom.png has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/theme/images/default/window/top-bottom.psd Binary file onlypaths/theme/images/default/window/top-bottom.psd has changed diff -r bff96abdddfa -r 26c2b3ad21c7 onlypaths/vmlpaths.htm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/onlypaths/vmlpaths.htm Sun Jan 31 12:33:33 2010 -0500 @@ -0,0 +1,55 @@ + + + + + + + SVG + + + + + + + + \ No newline at end of file diff -r bff96abdddfa -r 26c2b3ad21c7 paypal/basic_acrylic_clear.paylist --- a/paypal/basic_acrylic_clear.paylist Thu Jan 28 15:06:52 2010 -0500 +++ b/paypal/basic_acrylic_clear.paylist Sun Jan 31 12:33:33 2010 -0500 @@ -104,7 +104,7 @@
    -Name:   +Name:  


    -Company:   +Company:  


    -Occupation:   +Occupation:  


    -Email:   +Email:  

    -Line 1:   +Line 1:  


    -Line 2:   +Line 2:  


    -Line 3:   +Line 3:  


    -Line 4:   +Line 4:  

    -Name:   +Name:  


    -Email:   +Email:  

    -Line 1:   +Line 1:  


    -Line 2:   +Line 2:  

    -Email:   +Email:  


    -Phone:   +Phone:  


    -Name:   +Name:  


    -Company:   +Company:  


    -Occupation:   +Occupation:  


    -Website:   +Website:  

    -Line 1:   +Line 1:  


    -Line 2:   +Line 2:  


    -Line 3:   +Line 3:  


    -Line 4:   +Line 4:  


    -Line 5:   +Line 5:  


    -Side:   +Side:  
    -PERL::OPT:   +PERL::OPT:  

    -Name:   +Name:  


    -Occupation:   +Occupation:  


    -Company:   +Company:  


    -Phone:   +Phone:  


    -Email:   +Email:  


    -Website:   +Website:  

    -Line 1:   +Line 1:  


    -Line 2:   +Line 2:  


    -Line 3:   +Line 3:  


    -Line 4:   +Line 4:  


    -Line 5:   +Line 5:  


    -Line 6:   +Line 6: