=20
Differences between the original ST-70 and my VTA ST-70 ?
RockyAM
Posts : 24Join date : =
2008-12-14
by RockyAM =20
on Wed Dec 12, 2012 8:33 am
Hey Bob, I built your ST-70 kit like about 2 years ago. I run it =
every day=20
for a few hours. My wife, my son and I are constantly amazed at the =
great sound=20
from this amp. I did replace all the tubes early this year and I kept =
the old=20
ones for spares. Last week my friend brought his original Dynaco =
ST-70=20
over here and we put the two amps side by side. Of course my amp looks =
newer and=20
the green driver board on my amp is not the same as the one on his amp. =
The=20
power transformer is thicker on my amp also. We played both amps one =
after the=20
other and even he agreed that my amp just sounded stronger and cleaner =
than his=20
amp. Now it probably wasn't a fair comparison cuz his amp is probably =
like from=20
the 1960's and he says that its all original. We both wondered what the=20
differences were inside the amps from his amp to mine besides what we =
could see=20
on the outside? RockyAM
<=
BR>Bob=20
Latino
Admin
Posts : 2043Join date : 2008-11-26Location : =
Massachusetts
by Bob Latino =
on Wed Dec=20
12, 2012 11:48 am
If =
you place=20
the two amps side by side - yes you can see some but not all of the =
differences=20
between the original Dynaco ST-70 and the VTA ST-70. The design concept =
behind=20
the VTA ST-70 was to make the amp LOOK LIKE an original Dynaco ST-70 yet =
take=20
advantages of 50+ years of advances in electronics and have the VTA =
ST-70 SOUND=20
LIKE a modern tube amp. Efforts were also made to make the amp more =
reliable=20
than the original amp. Some things were not changed like the chassis =
layout. The=20
size and shape of the chassis and the parts layout of the VTA ST-70 is =
identical=20
to that of the original Dynaco ST-70. An original or aftermarket Dynaco =
tube=20
cage will fit this chassis perfectly. The silk screening of the Dynaco =
markings=20
on the front and rear face of the amp are also the same as on the =
original amp.=20
The OUTPUT transformers are the same size and shape and more =
importantly, are=20
wound the same way (interleaved/layer) as the original Dynaco A-470 =
output=20
transformers. The assembly manual for the VTA ST-70 is written in detail =
for the=20
beginner just like the original Dynaco ST-70 assembly manual. The =
many=20
improvements over the original amp include .. A. Chassis - The =
original=20
ST-70 chassis was made of 18 gauge nickel plated regular steel. =
Eventually most=20
of these chassis will develop rust spots. The chassis on the VTA ST-70 =
is made=20
of 16 gauge (.015 inch thicker metal) polished stainless steel and will =
never=20
rust. All the screws on the VTA amp are also made of stainless =
steel. B.=20
Driver board and driver circuit - The driver circuit on the original amp =
with=20
the two 7199 tubes was done to "save a tube". In light of circuits =
available=20
today, the driver circuit can easily be improved upon. The original =
driver board=20
was made of an inexpensive phenolic material with open solder traces on =
the=20
bottom of the board. This phenolic material was not very heat resistant =
and the=20
board would many times turn black from heat under the 7199 tube sockets. =
The=20
open solder traces sometimes lifted from the board. The carbon =
composition=20
resistors found on the board would, after many years, stray from their =
original=20
values. The VTA board is made of epoxy/fiberglass and has no open solder =
traces.=20
It has plated through holes so that parts may be placed on either the =
top or=20
bottom of the board. It has an "on board" power supply using Nichicon =
low ESR=20
caps and an on board bias system that allows individual biasing of each =
output=20
tube. The new board also uses 1% metal film resistors that will not =
stray from=20
their original value over the years. C. Power transformer - The =
original=20
ST-70 used an undersized PA-060 power transformer with a 1 1/2 inch =
stack that=20
usually runs pretty warm. The upgraded power transformer on the VTA =
ST-70 has a=20
2 1/8 inch stack, runs cooler, and has a much better power transfer=20
capability. D. Choke - The original ST-70 C-354 choke was rated =
at 200=20
milliamps and would run very hot. Sometimes a "brown goo" would melt out =
of the=20
choke and deposit like candle wax on the bottom cover below. The C-24X =
choke in=20
the VTA ST-70 is rated at 240 milliamps and runs cooler. E. Quad =
cap -=20
The 30, 20, 20, 20 uF quad cap on the original ST-70 has been replaced =
with an=20
80, 40, 30, 20 uF cap on the VTA ST-70. The total capacitance on the =
original=20
amp was 90 uF. On the VTA ST-70 the total capacitance is 464 =
uF. F. RCA=20
input and output binding posts - The original ST-70 had aluminum RCA =
input jacks=20
narrowly spaced at 3/8". The VTA ST-70 has gold plated input jacks =
spaced at=20
9/16" and will accept modern thicker interconnects without the =
interconnects=20
touching. The output binding posts on the original amp were simple screw =
terminals. The VTA ST-70 has modern gold plated binding posts which may =
be set=20
up for 4, 8 or 16 ohm speakers. G. Wire - The original amp kit =
was=20
supplied with 22 gauge solid core PVC hook up wire. The VTA ST-70 amp =
kit is=20
supplied with 20 gauge (one size thicker wire) tin coated solid core =
irradiated=20
PVC wire. The tin coating makes for easier soldering and the irradiated =
PVC=20
insulation is a better insulator than the insulation on the wire in the =
original=20
Dynaco kit. H. Triode/ultralinear operation - The original ST-70 =
ran in=20
ultralinear mode only. The VTA ST-70 runs in either ultralinear mode or =
triode=20
mode. The change for each channel can be made at the flick of a switch =
while the=20
amp is running. I. Other optional items - The original amp had no =
options=20
like the VTA stepped attenuator to allow you to use the amp directly =
with high=20
level signal sources or VTA TDR (Time Delay Relay) which is a good =
addition if=20
you use solid state rectifiers. Bob
<=
BR>Tube Nube
Posts : 358Join date : 2008-12-06Age : 51Location : Calgary, =
AB
by Tube=20
Nube on Wed Dec 12, 2012 2:07 pm
Bob, you might consider this thread for. Stick-post! A =
couple things=20
I think Bob elected to leave out warrant attention. Bob offers some =
upgrade=20
options, such as the Russian paper-in-oil capacitors, as well as a few =
tube=20
upgrade options. You wouldn't expect Bob to emphasize this one, =
but=20
customer service is stellar and consistent, which is vital for anyone =
who is the=20
slightest bit squeamish about rolling their own from a kit. Bottom line: =
Don't=20
worry, be happy--and save thousands while doing so! Wandering a =
bit=20
further a field, but still relevant for mentioning, this forum is a =
source of on=20
going support, education and cammeraderie. Spelled that wrong I think. =
Doubt=20
I'll get flamed for it here, though!
<=
BR>PeterCapo
Posts : 216Join date : =
2008-12-05
by PeterCapo =20
on Thu Dec 13, 2012 12:14 am
Bob, When you sell the amp fully assembled, do you still =
include a=20
copy of the complete assembly manual along with other documentation like =
the=20
schematic, voltage chart and so forth? Do you accommodate special =
requests, for example, to build one with a particular brand of resistor =
or=20
capacitor, etc? Thanks. Peter
<=
BR>Bob=20
Latino
Admin
Posts : 2043Join date : 2008-11-26Location : =
Massachusetts
by Bob Latino =
on Thu Dec=20
13, 2012 4:15 am
Hi=20
Peter, A copy of the VTA ST-70 assembly manual is not included =
with a=20
wired amp. Those getting a wired VTA ST-70 receive a smaller 6 page =
users=20
manual. A schematic and voltage check chart is included with the users=20
manual. I don't accomodate special requests for resistors, =
capacitors=20
etc. on a wired amp. If the customer wants special parts in their amp =
they will=20
have to build the amp themselves from a kit and make their own part=20
substitutions as the kit is being =
built. Bob
=20
=20
=20
=20
=20
=20
=20
=20
=20
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/empty.gif
R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/punbb/eggplant/post.gif
R0lGODlhSAAOALMPAOjm7mxZkWBNiI6AqruzzHdmmd3Z5pmMs9LM3ca/1fTy96SZu7CmxIJzolVA
gP///yH5BAEAAA8ALAAAAABIAA4AAAT/8MlJq704632d/wfAYY3TjCjqnUDgCEpKladsd6bEeIQu
rIgJouQIMADEj4hyKCZcgaAkkWQ8FJ6FpOAYbHMrCcFjHTgKD4Mn8UB4goBBkIZpCgwPc2B6Vihc
ViVoWC8SP1ZhDzsOCGoObHlnih5LE3QXTXuTDiKHEgtFm5M/Bo54YS1dD2OcEk0Oqx9nPQ+XFpli
lACysmkeBmY7DDtoD7wOVrGtD69iLh89thW4ygC7yBeAAgW7BWZaxjkVjpBmxROOZeK3odUPPwcU
Xg+gP1pcP5CJFea+j8wMYjgKsgMGpnasRLCyoqCBpgQf8IAqJGFfBQY/TEhJgBGIBAVmHChNQyiy
TUgTyRT8EMBH1Y2XMGPKnEmzps2XEQAAOw==
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/punbb/eggplant/reply.gif
R0lGODlhTwAOALMPANLM3WxZkd3Z5o6AqmBNiJmMs3dmmaSZu4JzovTy98a/1bCmxLuzzOjm7lVA
gP///yH5BAEAAA8ALAAAAABPAA4AAAT/8MlJq704682ca9rijQGzZaJzrln3hR7wpAtbpXY+uSAa
SwRHQCIYjGqSRuEISI1MFJfC4JAJlp5C4tHIUh1InksgOTgIs98jcH4IPIqH0fBIBJGHGu7iGgEa
BARkRghcWW4eJjx2DgcSbI4pMg9BhXNEcACJNx4YLpNyDgMSCh4NXQ5QVHQ8D0tobw5kkmmyaw4F
SR4LqB4ESHsWrY8jxX+bDwhCD62aVWZ0tSMIk2y5hmAPAMojucEVw7ejFahQykPD1kFQtBWXiA5x
Ewlshd9RphNGQxMHp8hURg1zQmBLLVATYsW5xKAAGXrZnCHckY9IkHFm/qVi5oHMsF7XOA5eKHKE
yIIvJSY4gULxxYQGZjwEWJAAlREhk8Jxm6ijZ89yK875HDoU6IZYSIgqZWFUQ0yDDyIAADs=
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/invision/pp-blank-thumb.png
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
8rqifwGxrf2jg4LvyAAAAABJRU5ErkJggg==
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/prosilver_grey/icon_user_profile.png
iVBORw0KGgoAAAANSUhEUgAAABwAAAAUCAMAAACpgK3LAAAARVBMVEXPz8/a2tbe3tri4dzLy8vQ
z8vk49/NzcjPzsnV1dHl5ODj4t7U0s6oqKh3d3ePj49DQ0NdZGj39/fl5eG2tra+vrv39/dc1No1
AAAAF3RSTlP/////////////////////////////AOZA5l4AAACnSURBVHjafdJBEsIgDEBRiGmx
tkkIVe9/VINNhUXxL5iBR2ZYEN5hmFGcH9dF83mY4doiZeq2hrdfwkgs8Nv3SFIKIsvcIXirprIj
ksIxC9AhKJpV9CpGD4jBkCW6xYbW90EMl0iZItbFq7ic5VAKmi5uS4ciZhZTh5uX9wIVSf3+1pB4
x6Oc/MhwOnqpENmccD6PGoYns+asLGlqeB9WJ9OgKfz9Jh+QKA1AHg7pywAAAABJRU5ErkJggg==
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/prosilver_grey/icon_contact_pm.png
iVBORw0KGgoAAAANSUhEUgAAABwAAAAUCAMAAACpgK3LAAAAYFBMVEXcrrbhu8Phip7MOV7baob2
1d1dZGj39/dDQ0N3d3fLy8uoqKiPj4/Nzcjl5eHe3tra2tbV1dG+vrvPzsni4dzQz8u5uLS3trLl
5ODk49/j4t7GxcLU0s7Pz8+2trYAAAAoILJvAAAAIHRSTlP/////////////////////////////
////////////AFxcG+0AAADTSURBVHjafdLBboQwDEVRVuY5NjihIA2UMP//l7XDosy0zI2UzZEl
R0r3rLc9u5rXx//l2tX1NsctEmLZ3nOcPeUkrDa/dqJo36fEuv5Bs42GfkxJyK6zZg2NklvDCdAZ
PCumhjmbsDmyZjtQ8A1kwmE50GsLsZ04AIJfFEhOceUDUAORT+bAUgpqbCsojmYGhTqWhqpuHkue
YGXD4WdquO8YewsUikfv5pfNVvZA4TGdYdgvBS4TqYjPKaMu1wLrwUwAsQ7LO37dFpPDTUv9+E1+
ANsgKat1CGwWAAAAAElFTkSuQmCC
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/subsilver/icon_search.gif
R0lGODlhOwASANU/APOpPOLi4niUz7Hy/Li4uDlUc1ppqvLy8meTrN3d3QFci1OOugppmenp6aa6
w7tAA4Wltf///77Y5O30983U6sDAwDyHrW6guPj4+LfN2JO5zJHT/UV7mdzj5padzP7UlMX+/9r/
/6vF0tPT0/z8/IqxxcXR1/T//5++3qC0vzZ8o97n7x12orjS3lWFnau/yLbAzMbM0Ier1HqrxeTq
7djY2OHs8v/31od4iqyt3NLX2Z+ts5/i/tDe546z1wAAACH5BAEAAD8ALAAAAAA7ABIAAAb/wJ9w
SCwaj8ikcjn0eAxQGHNKpRpQodBAYKh6p4qwmCPoRECbTUjgEbvf8LgcPmRobJF8hCID8XgDgTwG
eoWGh4iJhTYaDD8KGocUPn4gIFkhBiSJFhKbioUSFhgkpaYYqBglYRiSMn+XJyeZihYZpIqmJKIH
B6m/qDphiAcCG5YhETYoCCQTEhN5NtEWLRI9m8+lEyQrGBPeLRYdt74tNAfoPSPDhzcCCzwgJxIs
Kio9LAyjMwwM4hb80Wihz0IJCwtmtPA3I4M/Ox0CMnB4MEa7Qh8A4MAhQIaPfgpKXJihQUGPiSlM
WChggoEIBBpmKHA40wIEGClEMIDg4oIG/wsmFDhgoQBChYt5Mj7AAWMFhacLXDRAqICDCBUNGhyw
ICIAVxYWqiZgsSMBAx0BAlxNcKGtCgYKYiBwMeKoAowAHhTI0crUjAtTXUAIkIGF1q0vpoqwIDiB
VwcBWJgI0OBqjbYXVCCIcRlBDbt6lO4l9etvgxkLDjZggHpxYgsvECRE8DjAAgtt115AMDSFhRi7
P4cxlReHB1/ATHdwoSBF5QIcTCCAEWC6Dg7NA6hIkcAEhwIpYtcoAaEGAgWeg9ud8C1FgeOoesnP
Sj+AYxodEjhOy99+Dcf7JaDDf/rZp18NCOpXVxglHCbfg/PRlxVlE/LXQH8YZqghf5+d9yMIBARU
IOKIIoZoIgEopqjiiiy26CKKO3goxBw01mjjjUIEAQA7
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/prosilver/icon_post_quote_en.png
iVBORw0KGgoAAAANSUhEUgAAADYAAAAUCAMAAADx/z7SAAAAwFBMVEX78fPYk6PkucPy1Nvdw8m8
Kk2/NlfAOFnERWTEUGzIWHPNY3zTe5DTi53fnKzkq7ncprPtxtDjxs315Ojs3ODf3t/t7vHj5enz
9Pbp6+6oqapejbeKsNIAasUAZbwAWKQHUZIiY5wziNEvcapRldFmns9wqNiyzubM3Ord6vXy8/PU
1NPJycj////+/v79/f36+vr4+Pj19fXw8PDt7e3q6urm5ubj4+Pg4OCbm5uPj4+FhYVmZmZSUlJF
RUUAAAD13yGgAAAAQHRSTlP/////////////////////////////////////////////////////
//////////////////////////////8AwnuxRAAAAUpJREFUeNqd0VFygjAQgGHDsEEl2AwV1Byh
GiDEAEqA+9+qm6i0T636DbtDwvxPLKa3YNbl+900HdThpWynRb+f8swed69kX9dRHE/ZYNtL/xyB
WS7Gy0nKYTzLZ2G3UHYQhTyN1pTVc7CbFuVg7UmJwfZF9aRHdqkEbqNUEkG8VQq4n20MUaI4OApQ
pDyX5cLao2qsvZY1iT6CeFnXQPws4/AjIp+cAQ9qYBy357JOl4XUqpBVrSOmdQqBBqJxOKRas0hr
Atqd9YPL8Cf08nwDxC/34BDAk1v+BVB89ubM3FBmggA2BojB2UBoDKPGEDB4TsJ0ezDOnDU3CeVr
WDbNasUZhM1yHXCa4DXgN2AbEjTenLV3jMKKZl24Apq0bboGyvCWAC5AtGudOet+4d1/5kxmP7ou
+5u8ZwK7V/QCM9+9AivM3vB29g3xSsRdjRlw3QAAAABJRU5ErkJggg==
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://r14.imgfast.net/users/1411/22/46/81/avatars/1-80.jpg
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
1c//2Q==
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/prosilver_grey/icon_contact_email.gif
R0lGODlhFAAUAMQfAG5uboeHh7a2ts3NzeDg4O7u7jc3N5qamszMyMHBvezs6v78zvjvr/vqjNDP
ys/OydXU0NHQzLm4tLe2suTj3+Pi3uHg3NrZ1fHObnNqUK6UUdu7aY14Rs/Pz7a2tgAAACH5BAEA
AB8ALAAAAAAUABQAAAWv4NeNZGmS4kWtbOtS1/jO7ljdeK7jo0UdgKBwGDxYLD0LwEMoOJ8EwgBg
OPYqAMKhGZUOpp4qsmO5AAqEwHcNDhPGF6VzoPYuPeFLrKM/F+hqU2p4BgR7FxBZaQMeQXh3Bnoj
EGZ0ax6XSwYDexARAHVsX48GEBCTiXOMeKweB5unHaYBBrW2t7UApiMRvb6/wL4jDsTFxsfFIw/L
zM3OzMoI0tPU1QgPHSIn2yUfIQA7
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/prosilver_grey/icon_contact_www.gif
R0lGODlhFAAUAMQfAGJlZzU1NW5ubk9PT35+fru7u8fHx9bW1oeHh6GhoYyMjJeXl19fX62trZCQ
kO3t7aysrG9vb39/f7y8vNHR0aOjo8HCwM3Nyebm49vb2NXU0Lu6tuLh3s/Pz7a2tgAAACH5BAEA
AB8ALAAAAAAUABQAAAXY4NeNZGmSYsZh2NqybpyN3FofBrVIVFKoNlqNU6A8jo9BYLCwDIWcHDK5
VCo8NeGhYTxQFBHJYOyQaDgjVSHReBAkEoViKUlIHLNOJtNIKBIUEhERAgxhcAxoegYNCIIRChQ6
AgMRhgx5GQYJCQsKCICSDQqCDAwaIxoWDX2eCQYFDbGlmKkdnZ1yCROsYKanqRoOC8SeCn2+pmbB
FnBycGWWvxcaF8HRgrS/FdQl1A6W0r8M3NUj1hfpGxK/AwwSFunW5/LyGxX48fXz+/39IyJOoENn
4kMIADs=
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://illiweb.com/fa/prosilver_grey/icon_contact_aim.gif
R0lGODlhFAAUAMQfAA4QEzo6Oq6urnJycrCwsMzMzJubm1ZWVoeHh2dnZ8DAvNnZ1f7wNs/OydW0
I9LRzcjHw+Tj3+Pi3uHg3N/e2t3c2NbV0ayNKX9pIGxUELm3skk5Fu3s6s/Pz7a2tgAAACH5BAEA
AB8ALAAAAAAUABQAAAW24NeNZGmS4hKtbOtGy/jO7ijd+D0EQ5Xfo4lwOEEMCIYDURhcFgmFQm85
olivE8MgerheR5WweIEIHM4KcRisrmgJB15PPVrY7R0EIgodGO4xHYAWBEdSA0YBgCMWjY0CB1Bl
AR4IC46MjhAHW1EFBwiOjSMPFg8ePFydZo2lpKUIUJ9JB1EBD7gPrx0BBnChDTxxubodDQ0dBgEB
CMcdDwHGx87S1BDTDQ/Y1Nvd3h0iJ+IlHyEAOw==
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://r14.imgfast.net/users/1411/22/46/81/avatars/8-20.jpg
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
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://r14.imgfast.net/users/1411/22/46/81/avatars/6-97.jpg
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
Y/F2dYntGij4PboikEqBYBXQGs//2Q==
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: text/css;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://dynacotubeaudio.forumotion.com/13-ltr.css
* {
margin: 0px; padding: 0px;
}
.clearfix::after {
height: 0px; clear: both !important; display: block; visibility: =
hidden; content: ".";
}
.ipbform2 dl::after {
height: 0px; clear: both !important; display: block; visibility: =
hidden; content: ".";
}
.maintitle::after {
height: 0px; clear: both !important; display: block; visibility: =
hidden; content: ".";
}
* + html .clearfix {
clear: both; min-height: 1px;
}
* html .clearfix {
height: 1%; clear: both;
}
* + html .empty-clear {
height: 1px; line-height: 1px;
}
* html .empty-clear {
height: 1px; line-height: 1px;
}
.clear {
clear: both;
}
body {
margin: 0px auto; color: rgb(51, 51, 51); line-height: 135%; =
font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12px; =
background-image: url("http://illiweb.com/fa/empty.gif"); =
background-attachment: scroll; background-color: rgb(230, 225, 207);
}
* html {
=09
}
* + html {
=09
}
#sceditor_smilies {
background-color: rgb(244, 244, 244);
}
#sce_smilies_body {
min-width: 1px !important; background-image: none; background-color: =
rgb(251, 251, 251);
}
.sceditor-container iframe {
background-color: transparent !important;
}
.sceditor-container textarea {
background-color: transparent !important;
}
.sceditor-container {
background-color: rgb(255, 255, 255) !important;
}
.sceditor-toolbar {
background-color: rgb(247, 247, 247) !important;
}
img {
border: currentColor; border-image: none; vertical-align: middle;
}
a:link {
color: rgb(109, 128, 64); text-decoration: underline;
}
a:visited {
color: rgb(102, 102, 102); text-decoration: underline;
}
a:hover {
color: rgb(180, 32, 0);
}
a:active {
color: rgb(180, 32, 0); text-decoration: underline;
}
a:focus {
color: rgb(109, 128, 64);
}
* + html body {
-ms-overflow-x: hidden !important; min-width: 800px;
}
* html .minwidth_IE {
padding-left: 900px;
}
* html .container_IE {
margin-left: -900px; position: relative;
}
* html .container_IE {
height: 1px;
}
* html .layout_IE {
height: 1px;
}
* html .minwidth_IE {
height: 1px;
}
div#logostrip {
text-align: left; color: rgb(255, 255, 255); min-height: 68px; =
background-image: url("http://illiweb.com/fa/empty.gif"); =
background-repeat: repeat-x; background-color: rgb(92, 69, 138);
}
* + html div#logostrip {
min-height: 70px;
}
div#logostrip #logo {
margin: 0px 10px; float: left; display: block;
}
div#logostrip #main-title {
padding-top: 25px; font-family: Verdana,Arial,Helvetica,sans-serif; =
font-size: 24px; font-weight: 700;
}
div#logostrip #main-title h1 {
padding-top: 25px; font-family: Verdana,Arial,Helvetica,sans-serif; =
font-size: 24px; font-weight: 700;
}
div#logostrip #main-title h1 {
padding-top: 0px;
}
#site-desc {
margin: 8px;
}
#submenu {
background: rgb(222, 207, 230); padding: 0.5em 0px 0.65em; text-align: =
right; color: rgb(85, 64, 128);
}
* + html #submenu {
padding: 0px;
}
* html #submenu {
padding: 0px;
}
#submenu ul {
list-style: none; text-align: center;
}
#submenu ul li a {
margin: 0.5em 1em 0.65em 0px; padding: 0.5em 1em 0.65em 0px; color: =
rgb(0, 0, 0); text-decoration: none;
}
* + html #submenu ul li a {
display: inline-block;
}
* html #submenu ul li a {
display: inline-block;
}
#userlinks {
padding: 0.5em; font-size: 0.9em; border-bottom-color: rgb(220, 230, =
207); border-bottom-width: 1px; border-bottom-style: solid; =
background-color: rgb(251, 251, 251);
}
.not-connected#userlinks {
text-align: center; border-bottom-color: rgb(220, 230, 207); =
border-bottom-width: 1px; border-bottom-style: solid;
}
.not-connected#userlinks span {
margin: 0px 0.25em;
}
.not-connected#userlinks .guest {
font-weight: 700;
}
#userlinks p.home {
margin-left: 0.5em; float: left;
}
#userlinks p.home a {
font-weight: 700;
}
#userlinks ul {
list-style: none; float: right;
}
#userlinks ul li {
margin: 0px 0.25em; float: left;
}
#userlinks ul li::after {
content: " .";
}
#userlinks ul li a {
text-decoration: underline; margin-right: 0.25em;
}
#userlinks ul li.last::after {
content: normal;
}
#ipbwrapper {
margin: 0px auto; padding: 5px; width: 95%; text-align: left; =
min-width: 768px;
}
#navstrip {
list-style: none; margin: 0px 0px 1em; color: rgb(222, 207, 230); =
font-weight: 700;
}
#navstrip li {
background: url("http://illiweb.com/fa/invision/breadcrumb-arrow.gif") =
no-repeat left 50%; margin: 0px 5px; padding-left: 13px; float: left;
}
#navstrip li.begin {
background: url("http://illiweb.com/fa/invision/nav.gif") no-repeat =
left 50%; padding-left: 15px;
}
#navstrip li a {
font-weight: 700; text-decoration: none;
}
div.newslink {
margin: 0.8em 0px; padding: 0.5em; font-size: 11px; background-color: =
rgb(222, 207, 230);
}
div.newslink p.date {
margin: 0px 0px 5px; font-size: 10px;
}
div.newslink .h3 {
font-weight: 700;
}
#content-container div#container {
width: 100%; margin-right: 0px; float: left;
}
#content-container div#content {
margin-right: 0px;
}
#content-container div#main {
overflow: hidden; margin-bottom: 1em;
}
* + html #content-container div#main {
margin-left: 0px;
}
#content-container div#left {
width: 0px; overflow: hidden; margin-right: 0px; float: left;
}
#content-container div#right {
width: 0px; overflow: hidden; float: right;
}
* html #content-container #main-content {
overflow: visible; margin-right: 0px;
}
* html #content-container div#main {
width: 100%; margin-right: -99%; float: left;
}
.borderwrapm {
padding: 1px; border: 1px solid rgb(222, 207, 230); border-image: none; =
background-color: rgb(128, 64, 119);
}
div.borderwrap {
padding: 1px; border: 1px solid rgb(222, 207, 230); border-image: none; =
background-color: rgb(128, 64, 119);
}
* html .borderwrapm {
-ms-zoom: 1;
}
* html div.borderwrap {
-ms-zoom: 1;
}
div.maintitle {
padding: 8px 8px 8px 15px; color: rgb(51, 51, 51); vertical-align: =
middle; -ms-zoom: 1; background-image: =
url("http://illiweb.com/fa/empty.gif"); background-repeat: repeat-x; =
background-color: rgb(85, 64, 128);
}
div.maintitle div.toggle {
font-size: 13px;
}
div.maintitle h1 {
font-size: 13px;
}
div.maintitle h2 {
font-size: 13px;
}
div.maintitle h3 {
font-size: 13px;
}
.floated.maintitle div.toggle {
float: left;
}
.floated.maintitle h1 {
float: left;
}
.floated.maintitle h2 {
float: left;
}
.floated.maintitle h3 {
float: left;
}
.maintitle div.toggle {
font-weight: 700;
}
div.maintitle .contract {
background: url("http://illiweb.com/fa/invision/exp_minus.gif") =
no-repeat 50% 50%; width: 10px; height: 10px; float: right; cursor: =
pointer;
}
div.maintitle .expand {
background: url("http://illiweb.com/fa/invision/exp_minus.gif") =
no-repeat 50% 50%; width: 10px; height: 10px; float: right; cursor: =
pointer;
}
div.maintitle .expand {
background: url("http://illiweb.com/fa/invision/exp_plus.gif") =
no-repeat 50% 50%;
}
* html div.maintitle .contract {
line-height: 0.1em;
}
* html div.maintitle .expand {
line-height: 0.1em;
}
* + html div.maintitle .contract {
=09
}
* + html div.maintitle .expand {
=09
}
div.maintitle .contract a {
text-decoration: none;
}
div.maintitle .expand a {
text-decoration: none;
}
.borderwrap .subtitle {
padding: 5px; color: rgb(180, 32, 0); font-size: 12px; font-weight: =
700; background-color: rgb(244, 244, 244);
}
.borderwrap .cleared.subtitle {
clear: both;
}
.borderwrap p.subtitled {
padding: 5px;
}
.borderwrap .msg {
padding: 0.5em;
}
.borderwrap .msg ol {
padding-left: 40px;
}
.borderwrap .msg ul {
padding-left: 40px;
}
.posting-code.subtitle {
margin: -0.5em;
}
.title-options {
float: right;
}
.box-content div.agreement {
padding: 0.5em;
}
* + html .agreement {
border: currentColor; border-image: none;
}
.agreement h2.u {
margin: 0.5em 0px 1em;
}
.box-content fieldset.submit {
padding: 0.5em !important;
}
div.error.box-content {
border-bottom-color: currentColor; border-bottom-width: medium; =
border-bottom-style: none; background-color: rgb(242, 221, 221);
}
div.error.box-content p {
padding: 5px;
}
.dropped.floated.maintitle {
position: relative;
}
.popmenubutton {
height: 22px; float: right;
}
.popmenubutton a {
background-position: 98% 50%; padding: 2px 16px 2px 8px; border: 1px =
solid rgb(244, 244, 244); border-image: none; text-align: center; color: =
rgb(180, 32, 0); font-size: 11px; font-weight: 700; text-decoration: =
none; white-space: nowrap; background-image: =
url("http://illiweb.com/fa/invision/menu_action_down.gif"); =
background-repeat: no-repeat; background-color: rgb(251, 251, 251);
}
.popmenubutton a.addthis_button {
margin: 0px 5px;
}
* html .popmenubutton a {
text-decoration: none !important;
}
* + html .popmenubutton#topicmenu-options a {
background-position: 90% 50%;
}
* html .popmenubutton#topicmenu-options a {
background-position: 90% 50%; margin-top: -3px; margin-bottom: -13px;
}
.popmenubutton p.left-overview a {
background: none !important; padding: 0px !important; border: =
currentColor !important; border-image: none !important; display: inline =
!important;
}
.popupmenu {
list-style: none; border: 1px solid rgb(208, 208, 208); border-image: =
none; width: 220px; font-size: 11px; min-width: 200px; background-color: =
rgb(255, 255, 255);
}
.post .popupmenu {
top: 29px; position: absolute; z-index: 10000;
}
* html .post .popupmenu {
left: 1.5em;
}
.popupmenu#forummenu-options_menu {
top: 30px; right: 8px; position: absolute; z-index: 10000;
}
.member .popupmenu {
position: absolute; z-index: 10000;
}
.popupmenu .avatar {
background: =
url("http://illiweb.com/fa/invision/pp-blank-thumb-50px.png") no-repeat =
rgb(230, 225, 207); margin: 5px; border: 1px solid rgb(102, 102, 102); =
border-image: none; width: 50px; height: 50px; float: right;
}
.popupmenu .avatar img {
width: 50px; height: 50px; display: block;
}
.popupmenu ul {
list-style: none; padding: 0.5em;
}
.popupmenu li a.profile-icon {
margin: 0px 0.5em 0px 0px; width: 30px; text-align: center; float: =
left; display: block;
}
.popupmenu li {
background-position: 2px 50%; padding: 0.5em; text-decoration: none; =
border-bottom-color: rgb(208, 208, 208); border-bottom-width: 1px; =
border-bottom-style: solid; display: block; white-space: nowrap; =
background-image: url("http://illiweb.com/fa/invision/menu_item.gif"); =
background-repeat: no-repeat; background-color: rgb(255, 255, 255);
}
.popupmenu li a {
text-decoration: none;
}
ul.popupmenu li.popupmenu-category {
padding: 0.5em; text-align: center; color: rgb(180, 32, 0); =
letter-spacing: 1px; font-weight: 700; background-image: none; =
background-color: rgb(222, 207, 230);
}
.popupmenu .last {
border-bottom-color: currentColor; border-bottom-width: medium; =
border-bottom-style: none;
}
.popup {
margin: 0.5em;
}
.popup .popup-msg {
margin: 0.5em;
}
table.ipbtable {
width: 100%; empty-cells: show;
}
* + html table.ipbtable {
border-collapse: collapse;
}
* html table.ipbtable {
border-collapse: collapse;
}
table.index-box.ipbtable {
width: 100%; table-layout: fixed;
}
table.index-box td {
height: 0px;
}
table.ipbtable th {
padding: 5px; text-align: center; border-right-color: rgb(255, 255, =
255); border-right-width: 1px; border-right-style: dotted; =
background-image: url("http://illiweb.com/fa/empty.gif"); =
background-repeat: repeat-x; background-color: rgb(244, 244, 244);
}
.formsubtitle {
border: currentColor; border-image: none; text-align: left; =
background-color: rgb(222, 207, 230);
}
table.ipbtable th.formsubtitle {
border: currentColor; border-image: none; text-align: left; =
background-color: rgb(222, 207, 230);
}
table.ipbtable th.icon {
width: 1%; text-align: center; empty-cells: show;
}
table.search.ipbtable th.forum {
width: 14%;
}
table.ipbtable th.forum {
width: 60%; text-align: left;
}
table.ipbtable th.forum2 {
width: 50%; text-align: left;
}
table.ipbtable th.replies {
width: 8%;
}
table.ipbtable th.topics {
width: 8%;
}
table.ipbtable th.views {
width: 8%;
}
table.ipbtable th.last-post {
width: 35%;
}
table.ipbtable th.last-post2 {
width: 22%;
}
table.ipbtable th.starter {
width: 14%;
}
table.ipbtable .last {
border-right-color: currentColor; border-right-width: medium; =
border-right-style: none;
}
table.ipbtable tfoot td {
height: 10px; font-size: 3px; background-color: rgb(102, 102, 102);
}
table.ipbtable td {
padding: 5px; vertical-align: top;
}
table.ipbtable td.icon {
height: 38px; vertical-align: top;
}
* html table.ipbtable td.icon {
position: static;
}
table.ipbtable img.icon {
float: left;
}
table.ipbtable span.status {
position: absolute;
}
table.ipbtable .forum-name h3 {
font-size: 12px;
}
table.ipbtable td .par {
text-align: left;
}
.hierarchy {
font-size: inherit; font-weight: inherit; display: inline;
}
* + html .hierarchy {
font-size: 12px; font-weight: 700;
}
* html .hierarchy {
font-size: 12px; font-weight: 700;
}
table.ipbtable .forum-name a {
font-weight: 700;
}
table.ipbtable .forumdesc {
color: rgb(102, 102, 102); font-size: 11px;
}
table.ipbtable .mods {
text-align: left;
}
.centered {
text-align: center;
}
.thin {
margin: 2px 0px; padding: 6px 0px; line-height: 150%; border-top-color: =
rgb(222, 207, 230); border-bottom-color: rgb(222, 207, 230); =
border-top-width: 1px; border-bottom-width: 1px; border-top-style: =
solid; border-bottom-style: solid;
}
.view-online th {
text-align: left;
}
.view-online th.name {
width: 50%;
}
.online-explain {
margin: 5px; font-size: 0.8em;
}
.author.centered.row1 b {
font-weight: 400;
}
.ipbtable .date {
font-size: 80%;
}
.last-post-icon {
margin: 0px 0.25em;
}
table.posting-table td {
padding: 3px; border: 1px solid rgb(204, 204, 204); border-image: none; =
border-collapse: collapse;
}
.ipbform fieldset {
margin: 0.5em; padding: 0px 1em 1em; border: 1px solid rgb(0, 0, 0); =
border-image: none;
}
.ipbform fieldset legend {
margin: 0px; padding: 0px 0.5em; color: rgb(51, 51, 51); font-weight: =
700;
}
.ipbform fieldset label {
display: block;
}
div.errorwrap {
margin: 0px 5px 5px; border: 1px solid rgb(153, 42, 42); border-image: =
none; background-color: rgb(242, 221, 221);
}
div.infowrap {
margin: 0px 5px 5px; border: 1px solid rgb(153, 42, 42); border-image: =
none; background-color: rgb(242, 221, 221);
}
div.errorwrap h4 {
padding: 5px; color: rgb(153, 42, 42); font-size: 12px; font-weight: =
700; border-bottom-color: rgb(153, 42, 42); border-bottom-width: 1px; =
border-bottom-style: solid; background-color: rgb(227, 192, 192);
}
div.infowrap h4 {
padding: 5px; color: rgb(153, 42, 42); font-size: 12px; font-weight: =
700; border-bottom-color: rgb(153, 42, 42); border-bottom-width: 1px; =
border-bottom-style: solid; background-color: rgb(227, 192, 192);
}
div.errorwrap p {
padding: 8px; color: rgb(153, 42, 42);
}
div.infowrap p {
padding: 8px; color: rgb(153, 42, 42);
}
div.input-warn-content {
margin: 4px; padding: 4px; border: 1px solid rgb(204, 0, 0); =
border-image: none; display: none; background-color: rgb(255, 204, 204);
}
fieldset {
border: currentColor; border-image: none;
}
.button {
padding: 0px 5px; border: 1px solid rgb(102, 102, 102); border-image: =
none; font-size: 10px; cursor: pointer; background-color: rgb(255, 255, =
225);
}
.mainoption {
padding: 0px 5px; border: 1px solid rgb(102, 102, 102); border-image: =
none; font-size: 10px; cursor: pointer; background-color: rgb(255, 255, =
225);
}
a.button {
padding: 1px 5px 0px; line-height: 1em; font-size: 11px; =
text-decoration: none;
}
.formbuttonrow {
margin: 0px; padding: 5px; border: currentColor !important; =
border-image: none !important; color: rgb(180, 32, 0); background-color: =
rgb(220, 230, 207);
}
.columned fieldset.formcolumn1 {
width: 45%; float: left;
}
.columned fieldset.formcolumn2 {
width: 45%; float: left;
}
.ipbform fieldset.signature {
margin: 1.5em; padding: 1em; border: 1px solid rgb(222, 207, 230); =
border-image: none; background-color: rgb(222, 207, 230);
}
.ipbform2 .box-content {
padding: 0px;
}
.ipbform2 dl {
width: 100%; clear: left; border-bottom-color: rgb(222, 207, 230); =
border-bottom-width: 1px; border-bottom-style: solid; float: left; =
background-color: rgb(251, 251, 251);
}
.ipbform2 dl dt {
width: 230px; float: left; display: block;
}
.ipbform2 dl dt label {
padding: 12px 10px 0px; width: 210px; font-weight: 700; display: block;
}
.ipbform2 dl dd {
padding: 10px; margin-left: 250px; display: block; background-color: =
rgb(244, 244, 244);
}
* + html .ipbform2 dl dd {
min-height: 1px;
}
* + html .ipbform2 dl dt {
min-height: 1px;
}
* + html .ipbform2 dl dd {
margin-left: 0px;
}
* + html .dd-options {
margin-left: 230px !important;
}
* html .dd-options {
margin-left: 233px !important;
}
* html .ipbform2 dl dd {
height: 1%;
}
* html .ipbform2 dl dt {
height: 1%;
}
* html .ipbform2 dl dd {
margin-left: 0px;
}
.ipbform2 dl dd label {
margin: 0px 1em 0px 0px;
}
.ipbform2 dl dd input {
margin: 0px 0.5em 0px 0px;
}
.separator {
height: 1px; line-height: 1px; border-bottom-color: rgb(222, 207, 230); =
border-bottom-width: 1px; border-bottom-style: solid;
}
.ipbform2 fieldset.captcha {
margin: 0.5em; padding: 0px 1em 1em; border: 1px solid rgb(0, 0, 0); =
border-image: none;
}
.ipbform2 fieldset.captcha legend {
padding: 0px 0.5em;
}
.ipbform2 fieldset.captcha label {
display: block;
}
.ipbform2 fieldset.captcha .desc {
font-size: 0.8em;
}
.ipbform2 fieldset.captcha .captcha-field {
padding: 1em 0px; width: 30%; float: left;
}
.ipbform2 fieldset.captcha .captcha-images {
padding: 2em; float: left;
}
.ipbform .desc {
font-size: 0.9em; font-weight: 400;
}
.ipbform2 .desc {
font-size: 0.9em; font-weight: 400;
}
.borderwrap .padded {
margin: 0.25em;
}
.borderwrap fieldset.in-padding {
padding: 0px;
}
.posting-subject {
width: 65%;
}
.messaging-box {
padding: 10px; border: 1px solid rgb(222, 207, 230); border-image: =
none; overflow: hidden; margin-top: 10px; background-color: rgb(222, =
207, 230);
}
* html .messaging-box {
float: left;
}
* html .simple .posting-block {
width: 99%;
}
* + html .messaging-box textarea {
width: 97% !important;
}
.messaging-box fieldset dd {
background-color: transparent;
}
.messaging-box fieldset dl {
background-color: transparent;
}
.messaging-box fieldset dd {
margin: 0px !important;
}
.messaging-box fieldset dt {
width: auto;
}
#preview .content {
padding: 4px;
}
#smiley-box {
margin: 0px 10px 10px; padding: 10px; border: 1px solid rgb(222, 207, =
230); border-image: none; width: 220px; float: left; min-width: 220px; =
background-color: rgb(222, 207, 230);
}
#smiley-box .smiley-container object {
width: 220px;
}
* + html #smiley-box {
margin-top: 10px;
}
* html #smiley-box {
margin-top: 10px; display: inline;
}
.smile-status-box {
margin: 0px 10px 10px; padding: 10px; width: 220px; float: left; =
min-width: 220px;
}
.smile-status-box .smiley-container object {
width: 220px;
}
* + html .smile-status-box {
margin-top: 10px;
}
* html .smile-status-box {
margin-top: 10px; display: inline;
}
.helpline {
height: 1.2em; display: block;
}
.textarea-info {
padding: 0.5em 0px; font-size: 0.8em; float: left;
}
.exthelp {
background-position: 2% 50%; margin: 0.5em; padding: 3px 5px 3px 25px; =
border: 1px solid rgb(102, 102, 102); border-image: none; height: 16px; =
font-size: 10px; text-decoration: none !important; float: right; =
background-image: =
url("http://illiweb.com/fa/invision/rte-bbcode-help-sm.png"); =
background-repeat: no-repeat; background-color: rgb(255, 255, 255);
}
.rte-menu-button {
background-position: 2% 50%; margin: 0.5em; padding: 3px 5px 3px 25px; =
border: 1px solid rgb(102, 102, 102); border-image: none; height: 16px; =
font-size: 10px; text-decoration: none !important; float: right; =
background-image: =
url("http://illiweb.com/fa/invision/rte-bbcode-help-sm.png"); =
background-repeat: no-repeat; background-color: rgb(255, 255, 255);
}
.rte-menu-button {
float: left; background-image: =
url("http://illiweb.com/fa/invision/rte-toggle-options.png");
}
.p-box {
padding: 5px; background-color: rgb(244, 244, 244);
}
.smiley-selector {
padding: 0.35em; text-align: center;
}
.smiley-element {
margin: 10px; -ms-overflow-x: auto;
}
.smiley-element img {
margin: 0px 15px 10px 0px;
}
.poll {
font-size: 11px;
}
.polls h4 {
font-size: 11px;
}
.borderwrapm {
margin: 5px;
}
.poll .poll-choice {
margin: 0.5em 0px; clear: both;
}
.poll fieldset {
margin: 1em;
}
.polls {
margin: 4px; font-family: Verdana,Arial,Helvetica,sans-serif; =
font-size: 0.9em; background-color: rgb(244, 244, 244);
}
.polls .row1 {
padding: 4px; font-weight: 700;
}
.polls dl {
margin: 1em; padding: 5px 0px 0px; color: rgb(51, 51, 51); line-height: =
120%;
}
.polls dt {
margin: 0px; padding: 0px; width: 30%; text-align: left; font-size: =
1.1em; border-right-color: currentColor; border-right-width: medium; =
border-right-style: none; float: left; display: block;
}
.polls dd {
float: left;
}
.polls dd em {
font-style: normal; font-weight: 700;
}
.polls dd.number-votes {
margin: 0px 0.5em; width: 4em; text-align: center;
}
div.login fieldset label {
margin: 0.5em 0px; width: 11em; float: left;
}
div.login fieldset input {
margin: 0.5em 0px;
}
div.login fieldset.formcolumn2 label {
float: none; display: inline;
}
div.login fieldset.formcolumn2 input {
margin: 0px 0.5em 0px 0px;
}
div.resend-pwd.box-content {
border-bottom-color: currentColor; border-bottom-width: medium; =
border-bottom-style: none;
}
.login .errorwrap {
margin: 5px;
}
.login fieldset.formbuttonrow {
margin: 0px; padding: 5px;
}
.tfooter {
padding: 0.5em;
}
.search-footer-box {
width: 45%; float: left;
}
.search-footer-box input {
margin: 0px; font-size: 0.8em;
}
.mod-forum-toolbox {
width: 45%; text-align: right; float: right;
}
.captcha-img {
margin: 5px; vertical-align: middle;
}
.captcha {
margin: 10px 5px;
}
#search_menu {
padding: 5px; border: 1px solid rgb(222, 207, 230); border-image: none; =
font-size: 11px; background-color: rgb(244, 244, 244);
}
#search_menu hr {
display: none;
}
#search_menu table .thHead {
display: none;
}
#search_menu table td.row2 {
border: currentColor; border-image: none; background-color: =
transparent;
}
#search_menu input.post {
border: 1px solid rgb(102, 102, 102); border-image: none; margin-top: =
0px !important;
}
#search_menu table tr td input.button {
margin: 5px 0px 0px;
}
#search_menu span.genmed {
padding: 5px; display: block;
}
div.advanced-search.module .box-content {
padding: 0px;
}
.search-padding {
padding: 5px;
}
.advanced-search .search-footer {
padding: 3px; text-align: center; font-size: 0.8em; background-color: =
rgb(220, 230, 207);
}
.memberlist fieldset {
padding: 1em;
}
.member-list.borderwrap {
margin-bottom: 4em;
}
div.centerer {
margin: 0px auto; text-align: center; display: table; white-space: =
nowrap !important;
}
.member {
padding: 5px; border: 1px solid rgb(222, 207, 230); border-image: none; =
width: 22%; margin-right: 10px; margin-bottom: 10px; float: left; =
background-color: rgb(255, 255, 255);
}
.member-list .popmenubutton {
width: 100%; height: auto;
}
* html .member span.membername {
float: left; -ms-word-wrap: break-word !important;
}
* + html .member span.membername {
float: left; white-space: normal; -ms-word-wrap: break-word !important;
}
.member-list .popmenubutton .mini-avatar {
background: =
url("http://illiweb.com/fa/invision/pp-blank-thumb-38px.png") no-repeat =
rgb(255, 255, 255); margin: 5px; border: 1px solid rgb(51, 51, 51); =
border-image: none; width: 38px; height: 38px; float: right; display: =
block;
}
.member .popupmenu li {
background-image: none;
}
.member-list .popmenubutton .mini-avatar img {
width: 38px; height: 38px;
}
.member p {
height: 7em; color: gray; overflow: auto; font-size: 10px;
}
.search-filter {
margin: 5px; font-size: 11px; float: left;
}
.search-filter dd {
margin: 3px 3px 0px; vertical-align: middle; float: left;
}
.search-filter dt {
margin: 3px 3px 0px; vertical-align: middle; float: left;
}
.search-filter select {
font-size: 10px;
}
.centerer del {
text-decoration: none; display: inline-block;
}
div.borderwrap .member-list {
padding: 5px; border: currentColor; border-image: none; =
background-color: rgb(222, 207, 230);
}
dl.faq dd {
margin: 5px 5px 0px;
}
dl.faq dd p {
margin: 5px; padding: 5px; border: 1px solid rgb(222, 207, 230); =
border-image: none;
}
dl.faq .question {
padding: 5px 0px 8px; font-weight: 700; border-bottom-color: rgb(222, =
207, 230); border-bottom-width: 1px; border-bottom-style: solid;
}
dl.answers.faq {
padding: 10px;
}
div.calmonths {
margin: 5px 0px; padding: 8px; text-align: center; font-size: 18px; =
font-weight: 700; background-color: rgb(222, 207, 230);
}
a.calarrow {
text-decoration: none !important;
}
table.calendar.ipbtable {
border: currentColor; border-image: none; border-collapse: collapse; =
background-color: rgb(222, 207, 230);
}
table.calendar.ipbtable th {
border-right-color: currentColor; border-right-width: medium; =
border-right-style: none;
}
.calendar.ipbtable .view-week {
width: 2%;
}
.calendar.ipbtable td.view-week {
text-align: center; vertical-align: middle;
}
.calendar.ipbtable td {
padding: 5px; overflow: hidden; empty-cells: show;
}
.calendar.ipbtable .celldate {
padding: 0.25em; background-color: rgb(244, 244, 244);
}
.calendar.ipbtable .calday {
padding: 4px; text-align: right; color: rgb(180, 32, 0); font-size: =
11px; font-weight: 700; background-color: rgb(251, 251, 251);
}
.calendar.ipbtable ul {
height: 10em; list-style-type: none;
}
.calendar.ipbtable ul li {
margin: 0.25em;
}
.calendar.ipbtable p.right-event {
padding: 0.25em; text-align: right;
}
.overview .title-overview {
padding: 4px;
}
.overview .center-overview {
padding: 4px;
}
.overview .left-overview {
padding: 4px;
}
.overview hr.dashed {
border-width: 1px 1px medium; border-style: dashed dashed none; =
border-color: rgb(222, 207, 230) rgb(222, 207, 230) currentColor; =
border-image: none;
}
#mini-calendar {
margin: 1em; width: 270px; float: left;
}
#mini-calendar .table {
margin-bottom: 1em; border-right-color: rgb(222, 207, 230); =
border-bottom-color: rgb(222, 207, 230); border-left-color: rgb(222, =
207, 230); border-right-width: 1px; border-bottom-width: 1px; =
border-left-width: 1px; border-right-style: solid; border-bottom-style: =
solid; border-left-style: solid;
}
#calendar-result {
margin: 1em 0px; width: 68%; float: left;
}
.bday td {
text-align: center;
}
.bday .name {
width: 20%; text-align: left;
}
.bday .www {
width: 10%; text-align: center; overflow: hidden;
}
ul.privmsg {
list-style: none; margin-bottom: -2px; margin-left: 2px; float: left;
}
* + html ul.privmsg {
margin-bottom: -11px; margin-left: 2px;
}
ul.privmsg li {
color: rgb(255, 255, 255); margin-right: 2px; float: left; display: =
block; background-color: rgb(85, 64, 128);
}
ul.privmsg li div.tabitem {
padding: 5px 10px;
}
ul.privmsg li a {
margin: -5px -10px; padding: 5px 10px; display: block; =
background-color: rgb(255, 255, 255);
}
.maintitle .options {
float: right;
}
th.subject {
text-align: left !important;
}
th.select-items {
width: 2%;
}
.borderwrap#ucpmenu {
width: 25%; float: left;
}
* + html .borderwrap#ucpmenu {
margin-right: 1em;
}
.ucp.borderwrap {
overflow: hidden; margin-left: 1em;
}
* html .ucp.borderwrap {
width: 73%;
}
.profile-tabs.box-content {
padding-top: 0px; border-bottom-color: currentColor; =
border-bottom-width: medium; border-bottom-style: none; =
background-color: rgb(244, 244, 244);
}
#ucpmenu ul {
list-style: none;
}
* html #ucpmenu ul li {
margin: 0px; border: 1px solid rgb(244, 244, 244); border-image: none;
}
#ucpmenu ul li a {
padding: 8px; color: rgb(180, 32, 0); font-size: 12px; font-weight: =
700; text-decoration: none; display: block; background-color: rgb(244, =
244, 244);
}
#ucpmenu .profile-tabs ul li.activetab a {
text-indent: 1em; background-color: rgb(244, 244, 244);
}
.posting-options {
margin: 0.5em 0px;
}
.topic-options.posting-options {
width: 49%; float: right;
}
.posting-options .posting-buttons {
list-style: none;
}
.posting-options .posting-buttons li {
float: right;
}
.formsubtitle {
padding: 5px;
}
* html .formsubtitle {
-ms-zoom: 1;
}
.formsubtitle h4 {
font-size: 11px;
}
.activeusers-box p {
padding: 5px;
}
.activeusers {
padding: 5px; border: 3px solid rgb(222, 207, 230); border-image: none; =
text-align: center; background-color: rgb(244, 244, 244);
}
.ul-icons-home {
list-style: none; margin: auto; width: 100%; float: left;
}
.ul-icons-home li {
font-size: 11px; display: inline;
}
.ul-icons-home li img {
vertical-align: middle;
}
.ul-icons {
list-style: none; margin: 0px 1em 0px 0px; text-align: left; float: =
left;
}
.ul-icons li {
font-size: 11px;
}
.ul-icons li img {
vertical-align: middle;
}
* html .profile-view .maintitle {
position: relative;
}
.profile-view .avatar {
width: 215px; text-align: center; float: left;
}
.profile-view .avatar img {
margin: 5px auto; display: block;
}
.avatar img {
width: 50px;
}
.profile-view .avatar img#i_icon_pm {
display: inline;
}
.profile-view p {
margin: 0px 5px; padding: 5px;
}
.profile-view .popmenubutton {
margin: 10px auto;
}
.profile-view .popmenubutton a {
font-weight: 400; background-color: rgb(255, 255, 255);
}
.profile-view .profile-view-list ul {
list-style: none;
}
.profile-view .profile-view-list ul li {
padding: 8px 10px; border-bottom-color: rgb(222, 207, 230); =
border-bottom-width: 1px; border-bottom-style: solid;
}
.profile-view .profile-view-list ul li.last {
border-bottom-color: currentColor; border-bottom-width: medium; =
border-bottom-style: none;
}
.profile-view-list dl {
margin: 6px 0px 0px; padding: 6px 10px; width: 98%;
}
.profile-view-list dl dt {
width: 10em; float: left; display: block;
}
.profile-view-list dl dd {
padding-left: 12px; margin-left: 10em;
}
.profile-view-list div.separator {
width: 98%; line-height: 1px; padding-top: 6px; clear: both; font-size: =
1px; border-bottom-color: rgb(220, 220, 220); border-bottom-width: 1px; =
border-bottom-style: solid;
}
blockquote {
border-width: 1px 1px 1px 5px; border-style: dotted dotted dotted =
solid; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(255, =
255, 255); margin: 8px; padding: 8px; background-color: rgb(255, 255, =
225);
}
blockquote cite {
background-position: right top; margin: -8px -8px 8px; padding: 3px; =
color: rgb(0, 0, 0); font-size: 11px; font-style: normal; display: =
block; background-image: =
url("http://illiweb.com/fa/invision/css_img_quote.gif"); =
background-repeat: no-repeat; background-color: rgb(228, 234, 242);
}
dl.codebox {
margin: 8px;
}
.codebox dt {
background-position: right top; padding: 3px; text-transform: =
uppercase; font-weight: 700; display: block; background-image: =
url("http://illiweb.com/fa/invision/css_img_code.gif"); =
background-repeat: no-repeat; background-color: rgb(253, 219, 204);
}
* html .codebox dt {
-ms-zoom: 1;
}
.codebox dd {
padding: 5px; border: 1px dotted rgb(0, 0, 0); border-image: none; =
overflow: auto; font-family: Courier,CourierNew,sans-serif; white-space: =
pre; max-height: 200px; background-color: rgb(255, 255, 255);
}
* html .codebox dd {
height: 200px;
}
.spoiler {
border-width: 1px 1px 1px 5px; border-style: dotted dotted dotted =
solid; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(255, =
255, 255); margin: 8px; padding: 8px; display: block; background-color: =
rgb(244, 244, 244);
}
.spoiler dt {
margin: -8px -8px 8px; padding: 3px; color: rgb(0, 0, 0); =
text-transform: uppercase; font-size: 11px; font-weight: 700; display: =
block; background-color: rgb(228, 234, 242);
}
.spoiler dd {
padding: 8px;
}
.hidecode dt {
display: none;
}
.hidecode dd {
white-space: normal;
}
.drafts th.subject {
width: 40%;
}
.post-container {
margin-left: 18em; background-color: rgb(244, 244, 244);
}
.postbody {
width: 100%; background-color: transparent;
}
* + html .postbody {
-ms-word-wrap: break-word;
}
* html .postbody {
-ms-word-wrap: break-word;
}
.post-entry {
margin: 0.5em; overflow: hidden;
}
* html .post-entry {
width: 96.9%; float: left;
}
.postprofile {
width: 18em; margin-left: -18em; float: left;
}
* html .postprofile {
position: relative;
}
.post-footer {
clear: both; background-color: rgb(220, 230, 207);
}
.post-footer img {
cursor: pointer;
}
.post .post-header {
padding: 2px 8px 0px; min-height: 33px; background-color: rgb(220, 230, =
207);
}
* html .post .post-header {
height: 30px;
}
.module .postbody .postbody-head {
padding: 5px; height: auto; margin-left: 0px;
}
.postprofile-head .popmenubutton-new-out {
margin: 0px auto; padding: 0.3em 0px; float: none;
}
.postbody-head .post-info {
list-style: none; float: right;
}
.postbody-head .post-info li {
margin-left: 0.5em; float: left;
}
.postdetails {
line-height: 140%; font-size: 11px;
}
.postdetails h3 {
font-size: 11px; margin-right: 15%;
}
.postprofile-details {
margin: 1em; -ms-word-wrap: break-word;
}
.postprofile-details dt {
font-weight: 400;
}
.postprofile-details dt a {
text-decoration: none;
}
.post-footer ul.misc-icons {
list-style: none; margin: 5px; float: right;
}
.post-footer ul.posting-icons {
list-style: none; margin: 5px; float: right;
}
.post-footer ul.misc-icons {
float: left;
}
.post-footer ul.misc-icons li {
float: left;
}
.post-footer ul.posting-icons li {
float: left;
}
.popmenubutton-new-out {
width: 15em; float: none;
}
.popmenubutton-new-out a {
text-align: left; background-color: rgb(251, 251, 251);
}
* + html .postprofile-head {
min-height: 1%;
}
.postprofile-head .avatar {
text-align: center;
}
.postprofile-head .avatar img {
width: 50px; height: 50px;
}
.postprofile-head ul li {
background-image: none;
}
.signature {
padding: 1em; border-top-color: rgb(222, 207, 230); border-top-width: =
1px; border-top-style: dotted;
}
* html .signature {
-ms-zoom: 1;
}
.topic-footer {
padding: 5px; background-color: rgb(255, 255, 225);
}
.next-prev {
float: right;
}
.bar {
padding: 5px;
}
.postreview .box-content {
padding-top: 0px;
}
.postreview .post {
margin: 0px; border-bottom-color: currentColor; border-bottom-width: =
medium; border-bottom-style: none;
}
.postreview .postbody .postbody-head h3 {
color: rgb(180, 32, 0); font-size: 11px; font-weight: 400;
}
.postreview .postprofile-head h3 {
font-size: 12px;
}
.lastaction {
font-size: 0.9em;
}
.postprofile .post-options {
list-style: none; padding: 8px; line-height: 1.8em; font-size: 11px;
}
.search-results-posts .postbody-head h3 {
font-size: 12px;
}
.search-results-posts .postbody-head h3 a {
text-decoration: none;
}
.search-results-posts .postprofile-head .username a {
text-decoration: none;
}
.postprofile .post-options .label {
font-weight: 700;
}
.post-entry ol {
margin-left: 1.5em;
}
.post-entry ul {
margin-left: 1.5em;
}
.vote {
width: 9px; margin-left: 4px; float: right;
}
.vote .vote-button {
text-align: center; font-weight: 700; margin-left: -1px;
}
.vote .vote-button a {
text-decoration: none !important;
}
.vote .vote-bar {
margin: 0px auto; border: 1px solid rgb(51, 51, 51); border-image: =
none; width: 3px; height: 50px; font-size: 0px;
}
.vote .vote-no-bar {
letter-spacing: -2px; margin-left: -2px; white-space: nowrap;
}
.vote .vote-bar-plus {
background-color: rgb(0, 255, 0);
}
.vote .vote-bar-minus {
background-color: red;
}
.qreply {
margin: 1em auto; padding: 6px; border: 1px solid rgb(222, 207, 230); =
border-image: none; width: 90%; background-color: rgb(222, 207, 230);
}
.dd-textarea {
margin: 6px; width: 98%;
}
button.button2 {
background-position: top; margin: 0px 0.25em; padding: 2px 3px; width: =
auto !important; color: rgb(0, 0, 0); overflow: visible; font-family: =
Verdana,Arial,Helvetica,sans-serif; font-size: 0.9em; vertical-align: =
middle; background-image: =
url("http://illiweb.com/fa/prosilver/bg_button.gif"); background-repeat: =
repeat-x; background-color: rgb(244, 244, 244);
}
input.button2 {
background-position: top; margin: 0px 0.25em; padding: 2px 3px; width: =
auto !important; color: rgb(0, 0, 0); overflow: visible; font-family: =
Verdana,Arial,Helvetica,sans-serif; font-size: 0.9em; vertical-align: =
middle; background-image: =
url("http://illiweb.com/fa/prosilver/bg_button.gif"); background-repeat: =
repeat-x; background-color: rgb(244, 244, 244);
}
a.button2 {
padding: 1px 0px;
}
body:last-child a.button1 {
padding: 1px 0px;
}
button.button2 {
padding: 1px 0px;
}
input.button1 {
padding: 1px 0px;
}
input.button2 {
padding: 1px 0px;
}
button.button2:hover {
background-position: 0px 100%; border: 1px solid rgb(180, 32, 0); =
border-image: none; color: rgb(180, 32, 0);
}
input.button2:hover {
background-position: 0px 100%; border: 1px solid rgb(180, 32, 0); =
border-image: none; color: rgb(180, 32, 0);
}
* html button.button2 {
margin: 0px 0.25em; height: 22px; padding-right: 3px; padding-bottom: =
0px; padding-left: 3px;
}
* html input.button2 {
margin: 0px 0.25em; height: 22px; padding-right: 3px; padding-bottom: =
0px; padding-left: 3px;
}
* + html button.button2 {
height: 24px; padding-right: 3px; padding-left: 3px;
}
* + html input.button2 {
height: 24px; padding-right: 3px; padding-left: 3px;
}
* + html button.button2 img {
vertical-align: middle;
}
* html button.button2 img {
vertical-align: middle;
}
.select {
left: 0px; top: 0px; width: 0px; overflow: hidden; position: absolute; =
z-index: 100; background-color: rgb(255, 255, 255);
}
* html .select {
margin-top: -9px;
}
.select p {
margin: 0px; padding: 4px 6px; font-size: 0.9em;
}
.select button {
margin: 0px; padding: 4px; border: currentColor; border-image: none; =
text-align: left; font-size: 0.9em; background-color: rgb(255, 255, =
255);
}
.select button.button2 {
padding: 0px;
}
* + html .select button.button2 {
padding-right: 3px; padding-left: 3px;
}
* html .select button.button2 {
padding-right: 3px; padding-left: 3px;
}
.select button.button2:hover {
background-position: 0px 100%; border: 1px solid rgb(180, 32, 0); =
border-image: none; color: rgb(180, 32, 0);
}
.select button:hover {
cursor: pointer;
}
.selectHover {
cursor: pointer;
}
button.bbcode {
border: 1px solid rgb(227, 173, 173); border-image: none; =
background-image: url("http://illiweb.com/fa/wysiwyg/bg_button.png");
}
#text_editor_controls {
white-space: pre-wrap; -ms-word-wrap: break-word;
}
#text_editor_textarea {
width: 99%; background-color: rgb(255, 255, 255);
}
#textarea_content iframe#text_editor_iframe {
width: 99%; background-color: rgb(255, 255, 255);
}
* + html #text_editor_textarea {
width: 99%;
}
* + html #textarea_content iframe#text_editor_iframe {
width: 99%;
}
* html #text_editor_textarea {
width: 99%;
}
* html #textarea_content iframe#text_editor_iframe {
width: 99%;
}
* + html .quick_reply_textarea#text_editor_textarea {
width: 99% !important;
}
* html .quick_reply_textarea#text_editor_textarea {
width: 90% !important;
}
.vBulletin_editor {
border: currentColor !important; border-image: none !important;
}
.vBulletin_editor table.text-style {
width: 450px;
}
div.pagination {
margin-top: 8px; margin-bottom: 0.5em; float: left;
}
div.topic-options.pagination {
width: 49%;
}
.gen .forumline .thHead {
padding: 5px; color: rgb(180, 32, 0); background-color: rgb(222, 207, =
230) !important;
}
.gen table.forumline td {
padding: 5px;
}
.pagination table td {
padding: 5px; text-align: center;
}
div.pagination a {
padding: 2px 4px; text-decoration: none; background-color: rgb(222, =
207, 230);
}
* html div.pagination a {
padding: 5px;
}
div.pagination b {
padding: 2px 4px; color: rgb(255, 255, 255); font-weight: 400; =
background-color: rgb(102, 102, 102) !important;
}
.topic-paging a {
margin: 0px 1px 0px 0px; padding: 2px 4px; border: 1px solid rgb(244, =
244, 244); border-image: none; font-size: 10px; text-decoration: none; =
background-color: rgb(222, 207, 230);
}
strong.pagination a {
margin: 0px 1px 0px 0px; padding: 2px 4px; border: 1px solid rgb(244, =
244, 244); border-image: none; font-size: 10px; text-decoration: none; =
background-color: rgb(222, 207, 230);
}
strong.pagination .page-sep {
visibility: hidden;
}
.module ol {
padding-left: 40px;
}
.module ul {
padding-left: 40px;
}
.module .maintitle {
padding: 5px;
}
.module .maintitle h3 {
font-size: 1em; float: none;
}
.module .box-content {
padding: 5px; line-height: normal; border-bottom-color: currentColor; =
border-bottom-width: medium; border-bottom-style: none;
}
.module .postbody {
padding: 0px;
}
.module .postbody .post-footer {
padding: 3px 5px; font-size: 0.8em;
}
.module .postbody .post-read-full {
font-size: 0.8em;
}
.module .ipbform.box-content {
padding: 0px; border: currentColor; border-image: none;
}
.module .ipbform.box-content fieldset {
margin: 0px; padding: 0px; border: currentColor; border-image: none;
}
.module .ipbform.box-content fieldset dl {
padding: 5px;
}
.module .ipbform.box-content fieldset.formbuttonrow {
padding: 5px !important; text-align: center;
}
.module .box-content .forgot-pwd {
font-size: 0.8em;
}
.module .mod-login dt {
margin-right: 0.5em; float: left;
}
* + html .social-book.module .bookmark-img {
width: 80%;
}
.module .social-bookmark {
font-size: 0.9em;
}
.module .poll.box-content {
padding: 0px;
}
.module .poll.box-content dl {
margin-top: 1em;
}
.module .poll.box-content dt {
width: 40%; float: left;
}
.module .poll.box-content dd {
margin-left: 41%;
}
.module .poll.box-content dd.pstats {
float: right;
}
.module table.mod-top-posters {
table-layout: fixed;
}
#gfooter {
margin: 8px 0px; padding: 0.5em; text-align: right; color: rgb(255, =
255, 255); font-size: 0.8em; background-color: rgb(180, 32, 0);
}
#gfooter form {
float: left;
}
#gfooter ul {
list-style: none; margin: 0px auto; display: table;
}
#gfooter ul li {
display: inline;
}
* html #qjump {
width: 15%; text-align: left; float: left;
}
.current-time {
float: right;
}
#gfooter a {
color: rgb(255, 255, 255) !important;
}
#gfooter .footer-links {
width: 65%; float: left; white-space: normal !important;
}
.statlinks ul li a {
color: rgb(180, 32, 0); text-decoration: none !important; =
border-bottom-color: rgb(180, 32, 0); border-bottom-width: 1px; =
border-bottom-style: dotted;
}
.statlinks ul li a:hover {
border-bottom-color: rgb(180, 32, 0); border-bottom-width: 1px; =
border-bottom-style: solid;
}
.toplinks {
margin: 0px 0px 0.25em;
}
.linklist ul {
list-style: none; float: right;
}
.linklist ul li {
margin: 0px 0.25em; float: left;
}
.linklist ul li::after {
content: " .";
}
.linklist ul li a {
font-size: 11px; font-weight: 700; text-decoration: underline; =
margin-right: 0.25em;
}
.linklist ul li.last::after {
content: normal;
}
.stat-show-details {
list-style: none; margin-right: 0.5em; display: inline;
}
.stat-show-details li {
margin-left: 0.5em; display: inline;
}
.viewonline {
float: right;
}
.gallery .column.borderwrap {
margin: 0px 0.5em; float: left; max-height: 400px;
}
.gallery .column.borderwrap h3 a {
color: rgb(255, 255, 255); text-decoration: none; border-bottom-color: =
rgb(255, 255, 255); border-bottom-width: 1px; border-bottom-style: =
dotted;
}
.gallery .cat-img {
padding: 1em; height: 150px; text-align: center;
}
.gallery .cat-img .img-container {
margin: 0px auto; border: 1px solid rgb(222, 207, 230); border-image: =
none; width: 125px; height: 100px; text-align: center; overflow: hidden; =
background-color: rgb(255, 255, 255);
}
.gallery .cat-img img {
margin: 0px auto; display: block;
}
.gallery .gallery-desc {
padding: 5px; height: 100px; color: rgb(102, 102, 102); font-size: =
11px; vertical-align: top; -ms-overflow-y: auto;
}
.gallery .cat-info {
padding: 8px; text-align: right; color: rgb(180, 32, 0); =
background-color: rgb(220, 230, 207);
}
.gallery-footer .icon {
padding: 3px; overflow: hidden; margin-right: 5px; float: left; =
min-width: 3%;
}
.gallery-footer dd {
padding: 5px;
}
.thumbnails.borderwrap {
margin: 0px 5px 5px; float: left;
}
.thumbnails.borderwrap .thumb {
min-height: 130px;
}
.thumbnails.borderwrap .thumbnail img {
margin: 0.5em auto; padding: 2px 2px 12px; border: 1px solid rgb(180, =
32, 0) !important; border-image: none !important; height: 75px; =
text-align: center; display: block; background-color: rgb(255, 255, =
255);
}
.thumbnails.borderwrap .gal_caption {
margin: 0px auto 1em; text-align: center; font-size: 14px; font-weight: =
700;
}
.thumbnails.borderwrap .gal_caption a {
text-decoration: none;
}
.sort-gal {
margin: 0.5em 0px; padding: 5px;
}
.photostrip .maintitle a {
color: rgb(255, 255, 255);
}
.view-photo .maintitle a {
color: rgb(255, 255, 255);
}
.photostrip .maintitle h3 {
text-align: center; float: none;
}
.view-photo .maintitle h3 {
text-align: center; float: none;
}
.photostrip .box-content {
border-collapse: collapse;
}
.photostrip .photo {
padding-top: 20px; border-right-color: rgb(222, 207, 230); =
border-bottom-color: currentColor; border-left-color: rgb(222, 207, =
230); border-right-width: 1px; border-bottom-width: medium; =
border-left-width: 1px; border-right-style: solid; border-bottom-style: =
none; border-left-style: solid; float: left;
}
.img-effects {
margin: 1em auto; width: 90%; display: table;
}
fieldset.effects dl {
margin: 0px 0.5em 0.5em 0px; border: 1px solid rgb(222, 207, 230); =
border-image: none; width: 19%; clear: none; float: left; min-height: =
10em; background-color: transparent;
}
fieldset.effects dt {
padding: 0.25em; width: auto; font-weight: 700; float: left;
}
fieldset.effects dd {
padding: 0.25em; text-align: center; margin-left: 0px; =
border-top-color: rgb(222, 207, 230); border-top-width: 1px; =
border-top-style: solid; background-color: transparent;
}
fieldset.effects dd.check {
margin: 0.15em; border: currentColor; border-image: none; width: 1em; =
clear: right; float: right;
}
fieldset.effects .clearing {
font-size: 1px;
}
.avatar-gallery div.gal-content {
margin: 1em;
}
.avatar-gallery p.select-avatar {
padding: 0.25em; left: 0px; text-align: center; right: 0px; bottom: =
0px; position: absolute; background-color: rgb(222, 207, 230);
}
* html .avatar-gallery div p.select-avatar {
width: 114px;
}
.avatar-gallery div div.avatar-box {
margin: 0.5em 0.25em; border: 1px solid rgb(222, 207, 230); =
border-image: none; width: 113px; height: 260px; text-align: center; =
overflow: hidden; float: left; position: relative; background-color: =
rgb(220, 230, 207);
}
.avatar-gallery div div img {
margin: 0.5em; border: 1px solid rgb(222, 207, 230); border-image: =
none;
}
.rpg-table table {
padding: 0px; border: currentColor; border-image: none; width: 80%; =
border-collapse: collapse; background-color: rgb(255, 255, 255);
}
.rpg-table table td {
margin: 0px; padding: 5px; border: 1px solid rgb(222, 207, 230); =
border-image: none;
}
div.groupcp .ipbform2 dd ul {
margin-left: 1.8em;
}
.report-abuse-textarea {
width: 80%;
}
td.stat-bar {
padding: 8px 10px 0px !important;
}
td.stat-bar div {
white-space: nowrap;
}
table.status-bar td {
margin: 0px; padding: 0px;
}
.donate-form p {
padding: 1em;
}
.center {
margin: 0px auto; text-align: center;
}
.left {
text-align: left; float: left;
}
.right {
text-align: right; float: right;
}
.delspace {
line-height: 0; font-size: 0px; visibility: hidden;
}
#submenu ul li a:hover {
background-color: rgb(246, 244, 208);
}
#navstrip li a:hover {
color: rgb(90, 124, 183);
}
div.newslink ol {
padding-left: 40px;
}
div.newslink ul {
padding-left: 40px;
}
.maintitle .right {
color: rgb(255, 255, 255);
}
.maintitle .right a {
color: rgb(255, 255, 255);
}
.maintitle .titletext {
color: rgb(255, 255, 255);
}
.maintitle .titletext a {
color: rgb(255, 255, 255);
}
#plus_menu .title-overview {
color: rgb(51, 51, 51);
}
.box-content {
border-bottom-color: rgb(102, 102, 102); border-bottom-width: 10px; =
border-bottom-style: solid; background-color: rgb(244, 244, 244);
}
div.agreement.box-content {
background-color: rgb(251, 251, 251);
}
.box-content .rules {
background-color: rgb(244, 244, 244);
}
.box-content .rules ol {
padding-left: 40px;
}
.box-content .rules ul {
padding-left: 40px;
}
.row1 {
border-bottom-color: rgb(222, 207, 230) !important; =
border-bottom-width: 1px !important; border-bottom-style: solid =
!important;
}
.row2 {
border-bottom-color: rgb(222, 207, 230) !important; =
border-bottom-width: 1px !important; border-bottom-style: solid =
!important;
}
.row1 {
background-color: rgb(251, 251, 251);
}
.row2 {
background-color: rgb(244, 244, 244);
}
.darkrow {
color: rgb(180, 32, 0); background-color: rgb(220, 230, 207);
}
.sticky-separator {
=09
}
div.infowrap {
border: 1px solid rgb(0, 0, 0); border-image: none; background-color: =
rgb(222, 207, 230);
}
div.infowrap h4 {
color: rgb(0, 0, 0); border-bottom-color: rgb(0, 0, 0); =
border-bottom-width: 1px; border-bottom-style: solid; background-color: =
rgb(221, 221, 221);
}
.ipbform fieldset.signature textarea {
border: 2px inset rgb(102, 102, 102); border-image: none;
}
.ipbform2 dl dd textarea.inputbox {
border: 2px inset rgb(102, 102, 102); border-image: none; =
background-color: rgb(255, 255, 255);
}
.messaging-box textarea {
border: 2px inset rgb(102, 102, 102); border-image: none;
}
.smiley-container {
border: 1px solid currentColor; border-image: none;
}
.calendar.ipbtable .celldate:hover {
background-color: rgb(251, 251, 251);
}
div.overview {
border: 1px solid rgb(222, 207, 230) !important; border-image: none =
!important; background-color: rgb(220, 230, 207);
}
.bday {
border: 1px solid rgb(222, 207, 230); border-image: none;
}
.profile.box-content {
background-color: rgb(244, 244, 244);
}
#ucpmenu ul li a:hover {
background-color: rgb(244, 244, 244);
}
#profile-advanced-layout {
width: 100%; margin-right: -304px; float: left;
}
#profile-advanced-left {
margin-right: 304px;
}
#profile-advanced-avatar {
width: 30%; float: left;
}
#profile-advanced-points {
float: left;
}
#profile-advanced-reputation {
float: left;
}
#profile-advanced-avatar .module {
margin-right: 4px;
}
#profile-advanced-details {
margin-right: 4px;
}
#profile-advanced-points .module {
margin-right: 4px;
}
#profile-advanced-reputation .module {
margin-right: 4px;
}
* + html #profile-advanced-avatar .module {
margin-top: 11px;
}
* + html #profile-advanced-details {
margin-top: 11px;
}
* + html #profile-advanced-points .module {
margin-top: 11px;
}
* + html #profile-advanced-reputation .module {
margin-top: 11px;
}
#profile-advanced-avatar .module {
margin-bottom: 4px;
}
#profile-advanced-points .module {
margin-bottom: 4px;
}
#profile-advanced-reputation .module {
margin-bottom: 4px;
}
#profile-advanced-right .module {
margin-bottom: 4px;
}
#profile-advanced-details ol {
list-style: none;
}
#profile-advanced-details ol li {
margin-bottom: 4px; display: block;
}
#profile-advanced-details .avatar {
float: left;
}
.avatar {
border: 1px solid rgb(85, 64, 128); border-image: none; width: 50px; =
background-color: rgb(255, 255, 255);
}
.avatar span.real_avatar img {
width: 50px;
}
.friend-block .avatar {
margin: 0px auto; cursor: pointer;
}
.friend-block {
margin: 1px; width: 70px; text-align: center; overflow: hidden; float: =
left;
}
.friend_list_online_status {
line-height: 11px; font-size: 0.8em;
}
.friend_list_online_status img {
vertical-align: middle;
}
.friends-foes-list {
width: 200px; height: 2em; float: left;
}
#profile-advanced-details .message-block {
margin-left: 57px; -ms-zoom: 1;
}
#profile-advanced-details .message-header {
background: rgb(244, 244, 244); padding: 4px; margin-bottom: 4px;
}
#profile-advanced-details .message-date {
float: right;
}
#profile-advanced-details .message-body {
margin-bottom: 4px;
}
#profile-advanced-details .message-footer {
text-align: right;
}
#profile-advanced-details .message-footer li {
margin: 0px 0.25em; display: inline;
}
#profile-advanced-details .message-footer li::after {
content: " .";
}
#profile-advanced-details .message-footer li a {
text-decoration: underline; margin-right: 0.25em;
}
#profile-advanced-details .message-footer li.last::after {
content: normal;
}
#profile-advanced-layout #new-message {
padding-top: 10px; position: relative;
}
#profile-advanced-layout #new-message-link {
top: 0px; right: 4px; position: absolute;
}
#profile-advanced-details .top {
margin-bottom: 16px;
}
#profile-advanced-details .bottom {
margin-top: 16px;
}
#profile-advanced-right {
width: 304px; float: right;
}
#profile-advanced-add {
padding: 4px 0px; text-align: right; margin-right: 4px;
}
#profile-advanced-details .stats-field {
margin: 4px 0px 10px 4px; padding: 0px 10px 6px;
}
#profile-advanced-details .stats-field legend {
font-weight: 700;
}
#profile-advanced-details .stats-field ul {
padding: 0px; text-indent: 10px; list-style-type: none;
}
#profile-advanced-details .stats-field li {
margin: 4px 0px;
}
.post {
border-bottom-color: rgb(102, 102, 102); border-bottom-width: 10px; =
border-bottom-style: solid; background-color: rgb(251, 251, 251);
}
.member .popmenubutton-new-out a {
border: 1px solid rgb(220, 230, 207); border-image: none;
}
.dd-textarea textarea {
border: 2px inset rgb(102, 102, 102); border-image: none;
}
.selectHover {
background-color: rgb(222, 207, 230);
}
.gen table.forumline {
background-color: rgb(255, 255, 255);
}
.gen table.forumline td.row1 {
background-color: rgb(255, 255, 255);
}
.gallery-footer dl {
background-color: rgb(244, 244, 244);
}
.thumbnails.borderwrap .thumbwrap {
border: 1px solid rgb(222, 207, 230); border-image: none;
}
.thumbnails.borderwrap .thumbwrap .thumb p {
border-top-color: rgb(222, 207, 230); border-top-width: 1px; =
border-top-style: solid; background-color: rgb(251, 251, 251);
}
.thumbnails.borderwrap .thumbwrap .thumb p.alt {
border-top-color: rgb(222, 207, 230); border-top-width: 1px; =
border-top-style: solid; background-color: rgb(244, 244, 244);
}
fieldset.effects dl:hover {
background-color: rgb(220, 230, 207);
}
body.chatbox {
background-image: none;
}
.chatbox {
background-color: rgb(251, 251, 251);
}
#chatbox_header {
height: 30px; background-color: rgb(85, 64, 128);
}
.chatbox-title {
color: rgb(51, 51, 51) !important;
}
.chatbox-title a.chat-title {
color: rgb(51, 51, 51) !important;
}
.chatbox-title {
margin: 0px; padding: 6px 5px 0px; width: 15em; float: left;
}
.chatbox-options {
list-style: none; margin: 0.7em 0.5em 0.5em; font-size: 11px; float: =
right;
}
.chatbox-options li {
display: inline;
}
.chatbox-options li {
color: rgb(51, 51, 51);
}
.chatbox-options li a {
color: rgb(51, 51, 51);
}
.chatbox-options li label {
color: rgb(51, 51, 51);
}
#chatbox_members {
top: 30px; width: 180px; bottom: 30px; color: rgb(51, 51, 51); =
overflow: auto; border-right-color: currentColor; border-right-width: =
1px; border-right-style: solid; position: absolute;
}
#chatbox_members .member-title {
padding: 0.5em 0.25em; text-align: center; color: rgb(109, 128, 64); =
font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12px; =
background-image: none; background-color: rgb(220, 230, 207);
}
#chatbox_members ul {
list-style: none; margin: 0px 0px 0px 1em;
}
#chatbox_members ul li {
margin: 0.5em 0.5em 0.5em 0px;
}
#chatbox {
left: 181px; top: 30px; right: 0px; bottom: 30px; line-height: 10px; =
overflow: auto; position: absolute;
}
.chatbox_row_1 {
padding: 4px; background-color: rgb(251, 251, 251);
}
.chatbox_row_2 {
padding: 4px; background-color: rgb(244, 244, 244);
}
.chatbox_row_3 {
padding: 4px; background-color: rgb(220, 230, 207);
}
.memberlist_row_1 {
background-color: rgb(251, 251, 251);
}
#chatbox_footer {
padding: 5px; left: 0px; right: 0px; bottom: 0px; position: absolute; =
background-color: rgb(85, 64, 128);
}
#chatbox_footer label {
color: rgb(51, 51, 51);
}
#message {
border-width: 1px;
}
#submit_button {
border-width: 1px;
}
.fontbutton {
background: 0px rgb(225, 225, 226); padding: 1px; border: currentColor; =
border-image: none; text-align: left; color: rgb(0, 0, 0); margin-right: =
10px; float: left; cursor: pointer;
}
.fontbutton_normal {
background: rgb(225, 225, 226);
}
.fontbutton_selected {
background: rgb(187, 199, 206); border: 1px solid rgb(34, 34, 156); =
border-image: none;
}
.fontbutton_clicked {
background: rgb(149, 149, 149); border: 1px solid rgb(34, 34, 156); =
border-image: none;
}
.fontbutton_hover {
background: rgb(225, 225, 226); border: 1px solid rgb(34, 34, 156); =
border-image: none;
}
#chatbox_contextmenu {
border: 2px solid rgb(0, 0, 0); border-image: none; background-color: =
rgb(220, 230, 207);
}
#chatbox_contextmenu p {
background: rgb(251, 251, 251); margin: 0px; padding: 1px 4px; =
font-family: verdana, arial, sans-serif; border-bottom-color: rgb(119, =
119, 119); border-bottom-width: 1px; border-bottom-style: solid;
}
#chatbox_contextmenu p.hover {
background: rgb(244, 244, 244);
}
#chatbox_contextmenu p.close {
background: none; padding: 1px; color: rgb(255, 255, 255); font-size: =
95%;
}
#chatbox_contextmenu p.close img {
padding-left: 20px; vertical-align: middle;
}
#chatbox_contextmenu a {
color: rgb(109, 128, 64); font-size: 95%; text-decoration: none;
}
#chatbox .user {
font-weight: 700;
}
* html #chatbox-members {
=09
}
* html #chatbox {
=09
}
* html #chatbox-footer {
=09
}
* html div#logostrip #logo img {
display: none !important;
}
* html div#logostrip #logo {
width: 274px; height: 45px;
}
div.pagination a.goto {
background-position: 97% 50%; padding: 2px 15px 2px 4px; =
background-image: =
url("http://illiweb.com/fa/invision/menu_action_down.gif"); =
background-repeat: no-repeat; background-color: rgb(222, 207, 230);
}
#login_popup {
display: none; position: absolute; z-index: 10000;
}
#login_iframe_body {
padding: 0px;
}
#login_popup_content {
display: none;
}
#login_popup_title {
padding-left: 8px;
}
#login_popup_background .box-content {
padding: 6px; border-bottom-color: currentColor; border-bottom-width: =
0px; border-bottom-style: none;
}
#login_popup_buttons {
right: 6px; bottom: 5px; position: absolute;
}
#login_popup_buttons input {
margin-left: 6px;
}
ul.profile_field_list {
padding: 0px;
}
html ul.profile_field_list li {
list-style-type: none;
}
ul.profile_field_list > li {
list-style-type: none;
}
.inputURL {
letter-spacing: -1px; font-family: "Courier New", "Times New roman"; =
font-size: 10px;
}
.middleline {
line-height: 2em;
}
.invisible {
display: none; visibility: hidden;
}
.visible {
display: block; visibility: visible;
}
.ajax-profil_hover {
background: none;
}
.ajax-profil_parent {
position: relative; -ms-zoom: 1;
}
.ajax-profil_edit {
left: -18px; top: 0px; position: absolute; cursor: pointer;
}
.ajax-profil_edit img {
margin-left: 4px;
}
.ajax-profil_valid {
margin-left: 4px; vertical-align: middle; cursor: pointer;
}
#profile-advanced-details dl {
margin: 10px 0px 0px; padding: 8px 10px 8px 0px; width: 98%;
}
#profile-advanced-details dl dt {
width: 10em; float: left; display: block;
}
#profile-advanced-details dl dd {
padding-left: 12px; margin-left: 10em;
}
#profile-advanced-details div.separator {
line-height: 1px; padding-top: 10px; clear: both; font-size: 1px; =
border-bottom-color: rgb(220, 220, 220); border-bottom-width: 1px; =
border-bottom-style: solid;
}
#profile-advanced-details .ajax-profil_edit {
left: -4px;
}
.jqmWindow {
border: 1px solid rgb(222, 207, 230); border-image: none; left: 50%; =
top: 50%; width: 450px; margin-top: -125px; margin-left: -225px; =
display: none; position: fixed; background-color: rgb(238, 238, 238);
}
.jqmOverlay {
background-color: rgb(0, 0, 0);
}
#search_form {
padding: 1em;
}
#jqmHide {
margin: 0px 0.5em 0.5em;
}
.jqDrag {
cursor: move;
}
#first-post-br {
border-width: 1px 0px 0px; border-style: solid none none; border-color: =
rgb(222, 207, 230) currentColor currentColor; margin: 20px auto; =
border-image: none; width: 80%;
}
.blog_cal-border {
background: rgb(251, 251, 251); padding: 1px; border: 1px solid rgb(85, =
64, 128); border-image: none; font-size: 1.2em; margin-right: 1em; =
float: left; display: inline;
}
.blog_cal-content {
background: rgb(85, 64, 128); padding: 1px; width: 2.9em; text-align: =
center; color: rgb(51, 51, 51); line-height: 1.4em; font-family: "Lucida =
Grande","Lucida Sans Unicode",Arial,Sans-Serif;
}
.blog_cal-content span {
display: block;
}
.blog_cal-day {
letter-spacing: 0.2em; padding-left: 0.2em; font-size: 1.6em;
}
.blog_cal-month {
line-height: 0.7em; font-size: 2em; font-weight: 700;
}
.blog_cal-year {
line-height: 1.2em; font-size: 0.8em;
}
.blog_icon img {
margin-top: 1.5em;
}
.blog_title {
padding-top: 1.3em; font-size: 1.2em;
}
.blog_title .topic-title {
font-size: 1.1em; display: inline;
}
.blog_title .topictitle {
font-size: 1.1em; text-decoration: none;
}
.blog_message {
margin-top: 0.5em;
}
.blog_comments {
text-align: right; font-size: 0.9em;
}
.blog_comments img {
vertical-align: middle;
}
#blog_comments {
margin: 0px auto; width: 90%;
}
#blog_comments .post-header {
padding-left: 2px;
}
.blog_comment-avatar {
float: left;
}
.blog_comment-avatar img {
margin: 2px 2px 4px; border: 1px solid rgb(85, 64, 128); border-image: =
none; width: 38px; vertical-align: middle; background-color: rgb(255, =
255, 255);
}
#blog_comments .h3 {
padding: 0px; overflow: hidden; margin-top: 0px; margin-left: 45px; =
min-height: 22px;
}
.blog_comment-title {
margin-top: 7px; float: left;
}
.no_comment {
padding: 10px 0px;
}
#bookmarks {
float: right;
}
#bookmarks a img {
background: =
url("http://illiweb.com/fa/social_bookmarking/social_bookmarking.png") =
no-repeat; width: 20px; height: 20px; vertical-align: middle;
}
#bookmarks a img.twitter {
background: url("http://illiweb.com/fa/social_bookmarking/twitter.png") =
no-repeat; margin: 2px; width: 16px; height: 16px;
}
#bookmarks img.delicious {
background-position: -10px -10px;
}
#bookmarks img.digg {
background-position: -10px -50px;
}
#bookmarks img.excite {
background-position: -9px -90px;
}
#bookmarks img.facebook {
background-position: -9px -128px;
}
#bookmarks img.furl {
background-position: -10px -166px;
}
#bookmarks img.google {
background-position: -10px -206px;
}
#bookmarks img.live {
background-position: -9px -246px;
}
#bookmarks img.netscape {
background-position: -9px -284px;
}
#bookmarks img.newsvine {
background-position: -9px -322px;
}
#bookmarks img.reddit {
background-position: -10px -360px;
}
#bookmarks img.slashdot {
background-position: -10px -400px;
}
#bookmarks img.smarking {
background-position: -9px -440px;
}
#bookmarks img.stumbleupon {
background-position: -10px -478px;
}
#bookmarks img.technorati {
background-position: -10px -518px;
}
#bookmarks img.yahoo {
background-position: -10px -558px;
}
.mceContentBody {
background: rgb(244, 244, 244); color: rgb(51, 51, 51);
}
.resize_process .resizebox {
display: none;
}
.resize_process img.resize_img {
display: none;
}
.resizebox a.enlarge {
display: inline; -ms-zoom: 1;
}
.enlarged.resizebox a.resize {
display: inline; -ms-zoom: 1;
}
.showfull.resizebox a.fullsize {
display: inline; -ms-zoom: 1;
}
.resizebox a.fullsize {
display: none;
}
.resizebox a.resize {
display: none;
}
.enlarged.resizebox a.enlarge {
display: none;
}
.resizebox {
margin: 0px; text-align: left; line-height: 1.1em; font-size: 11px; =
font-style: normal; font-weight: 400; display: inline-block; cursor: =
default; max-width: 100%; background-color: rgb(255, 255, 225);
}
.resizebox div {
margin: 0px; font-style: normal; font-weight: 400;
}
.resizebox .resize_border {
border: 1px solid rgb(255, 255, 255); border-image: none; display: =
block;
}
.resizebox .resize_content {
padding: 5px 10px; display: inline; -ms-zoom: 1;
}
.resizebox .resize_filler {
padding: 0px; border: currentColor; border-image: none; width: 40px; =
display: inline; -ms-zoom: 1;
}
.attachbox {
margin: 5px 5px 5px 0px; padding: 6px; border: 1px dashed rgb(220, 230, =
207); border-image: none; width: auto; color: rgb(51, 51, 51); clear: =
left; float: left; background-color: rgb(255, 255, 225);
}
.attachbox dt {
text-transform: uppercase; font-family: Arial,Helvetica,sans-serif;
}
.attachbox dd {
padding: 0px; clear: left; font-size: 0.9em; margin-left: 10px; =
border-top-color: rgb(220, 230, 207); border-top-width: 1px; =
border-top-style: solid;
}
dl.file {
font-family: Verdana,Arial,Helvetica,sans-serif; margin-bottom: 10px; =
display: block;
}
dl.file dt {
margin: 0px; padding: 0px; text-transform: none; font-family: =
Verdana,Arial,Helvetica,sans-serif; font-weight: 700;
}
dl.file dt img {
vertical-align: middle;
}
.info {
font-size: 10px; font-style: italic;
}
.spoiler_content {
display: none;
}
.hidden.spoiler_content {
display: block;
}
.user_login_form {
margin-bottom: 5px;
}
.fb_or {
margin: 0px 30px; padding: 5px; border: 2px solid rgb(222, 207, 230); =
border-image: none; width: 26px; height: 16px; text-align: center; =
line-height: 16px; font-weight: 700; background-color: rgb(220, 230, =
207);
}
.fb_or_widget {
padding: 5px; border: 2px solid rgb(222, 207, 230); border-image: none; =
width: 26px; height: 16px; text-align: center; line-height: 16px; =
font-weight: 700; margin-right: auto; margin-bottom: 15px; margin-left: =
auto; background-color: rgb(220, 230, 207);
}
.fb_login {
margin: 18px 0px 0px; width: 330px; height: 30px;
}
.fb_login .fb_or {
margin: 0px 30px;
}
.fb_login_widget {
margin: 10px 0px 0px;
}
.fb_login_widget .fb_or {
margin: 0px 70px 0px 60px;
}
.fb-like {
margin: 0px 2px; overflow: hidden;
}
.margTop4 {
margin: 4px 0px 0px;
}
.margLeft20 {
margin: 0px 0px 0px 20px;
}
.fb_explain {
padding: 5px 0px 5px 5px; width: 100%; float: left;
}
#fb_explain {
padding: 5px 0px 0px 5px; float: left;
}
.input_field {
width: 180px !important;
}
.invitfb_connect {
padding: 10px 0px; text-align: center;
}
#cont_pwd {
padding: 0px 0px 0px 20px; width: 150px; height: 21px; float: left;
}
.pwd_img {
padding: 4px 0px 3px; width: 150px; height: 14px; text-align: center; =
color: rgb(0, 0, 0); line-height: 14px; font-size: 11px; font-weight: =
700; display: none;
}
#pwd_good {
background: url("http://illiweb.com/fa/p_strength/pwd_good.png");
}
#pwd_middle {
background: url("http://illiweb.com/fa/p_strength/pwd_middle.png");
}
#pwd_bad {
background: url("http://illiweb.com/fa/p_strength/pwd_bad.png");
}
#cont_fb_invit iframe {
width: 760px !important;
}
fieldset.connexion.formcolumn1 {
width: 646px !important;
}
.mod_bookmarks a img {
background: =
url("http://illiweb.com/fa/social_bookmarking/social_bookmarking_fa.png")=
no-repeat; width: 20px; height: 20px; vertical-align: middle;
}
.mod_bookmarks img.digg {
background-position: -10px -47px;
}
.mod_bookmarks img.delicious {
background-position: -10px -8px;
}
.mod_bookmarks img.reddit {
background-position: -10px -359px;
}
.mod_bookmarks img.slashdot {
background-position: -10px -398px;
}
.mod_bookmarks img.stumbleupon {
background-position: -10px -476px;
}
.mod_bookmarks img.furl {
background-position: -10px -163px;
}
.mod_bookmarks img.yahoo {
background-position: -10px -554px;
}
.mod_bookmarks img.google {
background-position: -10px -204px;
}
.mod_bookmarks img.blinklist {
background-position: -10px -665px;
}
.mod_bookmarks img.blogmarks {
background-position: -10px -630px;
}
.mod_bookmarks img.technorati {
background-position: -10px -516px;
}
.mod_rss_feeds a img {
background: url("http://illiweb.com/fa/rss_mod/sprite_rss_feeds.png") =
no-repeat; width: 91px; height: 17px; padding-bottom: 2px; =
vertical-align: middle;
}
.mod_rss_feeds img.yahoo {
background-position: 0px 0px;
}
.mod_rss_feeds img.google-reader {
background-position: -100px 0px;
}
.mod_rss_feeds img.msn {
background-position: -199px 0px;
}
.mod_rss_feeds img.aol {
background-position: -299px 0px;
}
.mod_rss_feeds img.newsgator {
background-position: -399px 0px;
}
.mod_rss_feeds img.netvibes {
background-position: -498px 0px;
}
.mod_rss_feeds img.bloglines {
background-position: -598px 0px;
}
.sprite-arrow_prosilver_down {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat 0px =
0px; width: 6px; height: 6px;
}
.sprite-arrow_prosilver_left {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-56px 0px; width: 4px; height: 6px;
}
.sprite-arrow_prosilver_right {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-110px 0px; width: 4px; height: 6px;
}
.sprite-arrow_prosilver_up {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-164px 0px; width: 6px; height: 6px;
}
.sprite-arrow_subsilver_down {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-220px 0px; width: 9px; height: 9px;
}
.sprite-arrow_subsilver_left {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-279px 0px; width: 9px; height: 9px;
}
.sprite-arrow_subsilver_right {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-338px 0px; width: 9px; height: 9px;
}
.sprite-arrow_subsilver_up {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-397px 0px; width: 9px; height: 9px;
}
.sprite-icon_minipost {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-456px 0px; width: 12px; height: 9px;
}
.sprite-icon_minipost_new {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-518px 0px; width: 12px; height: 9px;
}
.sprite-icon_minipost_participate {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-580px 0px; width: 12px; height: 9px;
}
.sprite-icon_miniposted {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-642px 0px; width: 12px; height: 9px;
}
.sprite-icon_pages {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-704px 0px; width: 11px; height: 12px;
}
.sprite-icon_post_target {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-765px 0px; width: 11px; height: 9px;
}
.sprite-icon_post_target_unread {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-826px 0px; width: 11px; height: 9px;
}
.sprite-icon_reply {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-887px 0px; width: 18px; height: 9px;
}
.sprite-icon_reply_new {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-955px 0px; width: 18px; height: 9px;
}
.sprite-icon_tiny_topic {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-1023px 0px; width: 10px; height: 11px;
}
.sprite-icon_topic_latest {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-1083px 0px; width: 11px; height: 9px;
}
.sprite-icon_topic_newest {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-1144px 0px; width: 11px; height: 9px;
}
.sprite-subforum_read {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-1205px 0px; width: 11px; height: 9px;
}
.sprite-subforum_unread {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-1266px 0px; width: 11px; height: 9px;
}
.sprite-tabs_less {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-1327px 0px; width: 9px; height: 9px;
}
.sprite-tabs_more {
background: url("http://illiweb.com/fa/sprite_icons.png") no-repeat =
-1386px 0px; width: 9px; height: 9px;
}
.sprite-icon_calendar {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px 0px; width: 14px; height: 13px;
}
.sprite-icon_faq {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -63px; width: 16px; height: 14px;
}
.sprite-icon_gallery {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -127px; width: 14px; height: 14px;
}
.sprite-icon_groups {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -191px; width: 16px; height: 14px;
}
.sprite-icon_home {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -255px; width: 13px; height: 12px;
}
.sprite-icon_logout {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -317px; width: 16px; height: 14px;
}
.sprite-icon_members {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -381px; width: 16px; height: 14px;
}
.sprite-icon_message {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -445px; width: 16px; height: 14px;
}
.sprite-icon_portal {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -509px; width: 14px; height: 14px;
}
.sprite-icon_register {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -573px; width: 16px; height: 14px;
}
.sprite-icon_search {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -637px; width: 16px; height: 14px;
}
.sprite-icon_textbox_search {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -701px; width: 16px; height: 14px;
}
.sprite-icon_ucp {
background: url("http://illiweb.com/fa/sprite_prosilver_navbar.png") =
no-repeat 0px -765px; width: 16px; height: 14px;
}
.sprite-icon_mini_calendar {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat 0px 0px; width: 12px; height: 13px;
}
.sprite-icon_mini_faq {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -62px 0px; width: 12px; height: 13px;
}
.sprite-icon_mini_gallery {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -124px 0px; width: 12px; height: 13px;
}
.sprite-icon_mini_groups {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -186px 0px; width: 12px; height: 13px;
}
.sprite-icon_mini_index {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -248px 0px; width: 13px; height: 13px;
}
.sprite-icon_mini_login {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -311px 0px; width: 12px; height: 13px;
}
.sprite-icon_mini_members {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -373px 0px; width: 12px; height: 13px;
}
.sprite-icon_mini_message {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -435px 0px; width: 12px; height: 13px;
}
.sprite-icon_mini_portal {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -497px 0px; width: 13px; height: 13px;
}
.sprite-icon_mini_profile {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -560px 0px; width: 12px; height: 13px;
}
.sprite-icon_mini_register {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -622px 0px; width: 12px; height: 13px;
}
.sprite-icon_mini_search {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -684px 0px; width: 12px; height: 13px;
}
#search_menu a img {
background: url("http://illiweb.com/fa/sprite_subsilver_menu.png") =
no-repeat -684px 0px; width: 12px; height: 13px;
}
#at16lb {
left: 0px; top: 0px; width: 100%; height: 100%; display: none; =
position: absolute; z-index: 1001; opacity: 0.001; background-color: =
rgb(0, 0, 0);
}
#at16pc {
position: static !important;
}
#at16pi {
position: static !important;
}
#at16pib {
position: static !important;
}
#at20mc {
position: static !important;
}
#at_complete {
position: static !important;
}
#at_email {
position: static !important;
}
#at_error {
position: static !important;
}
#at_share {
position: static !important;
}
#at_success {
position: static !important;
}
#at20mc {
left: 0px; top: 0px; position: absolute;
}
#at20mc a {
color: rgb(51, 102, 187);
}
.at15a {
margin: 0px; padding: 0px; border: 0px currentColor; border-image: =
none; width: 230px; height: 0px;
}
.atnt {
padding: 6px 0px 0px !important; height: 24px !important; text-align: =
center !important;
}
.atnt a {
color: rgb(51, 102, 187); text-decoration: none;
}
.atnt a:hover {
text-decoration: underline;
}
#at15s {
line-height: 1em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif !important; font-size: 12px =
!important; outline-width: 0px; outline-style: none;
}
#at16nms {
line-height: 1em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif !important; font-size: 12px =
!important; outline-width: 0px; outline-style: none;
}
#at16p {
line-height: 1em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif !important; font-size: 12px =
!important; outline-width: 0px; outline-style: none;
}
#at16p form input {
line-height: 1em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif !important; font-size: 12px =
!important; outline-width: 0px; outline-style: none;
}
#at16p form textarea {
line-height: 1em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif !important; font-size: 12px =
!important; outline-width: 0px; outline-style: none;
}
#at16p label {
line-height: 1em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif !important; font-size: 12px =
!important; outline-width: 0px; outline-style: none;
}
#at_msg {
line-height: 1em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif !important; font-size: 12px =
!important; outline-width: 0px; outline-style: none;
}
#at_share .at_item {
line-height: 1em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif !important; font-size: 12px =
!important; outline-width: 0px; outline-style: none;
}
* html .mmborder#at15s {
position: absolute !important;
}
.mmborder#at15s {
border: 10px solid rgb(127, 127, 127) !important; border-image: none =
!important; width: 240px !important; position: fixed !important;
}
#at15s {
padding: 0px !important; border-radius: 4px; border: 1px solid rgb(229, =
229, 229); border-image: none; top: 1px; width: 160px !important; right: =
8px; color: rgb(76, 76, 76) !important; background-image: none =
!important; background-color: rgb(255, 255, 255) !important; =
-moz-border-radius: 4px; -moz-box-shadow: 0 0 10px #000; =
-webkit-border-radius: 4px; -webkit-box-shadow: 0 0 10px #000;
}
#at15s_head {
background: rgb(242, 242, 242); padding: 4px; border-bottom-color: =
rgb(229, 229, 229); border-bottom-width: 1px; border-bottom-style: =
solid; position: relative; cursor: default;
}
#at15s_brand {
position: absolute;
}
#at16_brand {
position: absolute;
}
#at15s_brand {
top: 4px; right: 4px;
}
#at16_brand {
top: 5px; right: 30px; cursor: default;
}
#at_hover {
padding: 4px;
}
#at_hover .at_item {
background: rgb(255, 255, 255) !important; color: rgb(76, 76, 76) =
!important; float: left !important;
}
#at_share .at_item {
background: rgb(255, 255, 255) !important; color: rgb(76, 76, 76) =
!important; float: left !important;
}
#at16nms {
padding: 4px 5px;
}
#at_hover .at_item {
margin: 1px; padding: 2px 3px !important; width: 102px !important;
}
#at_hover .atiemode2.at_item {
width: 104px !important;
}
#at_hover .athov.at_item {
margin: 0px !important;
}
#at_hover .at_item:hover {
margin: 0px !important;
}
#at_hover .athov.at_item {
background: rgb(242, 242, 242) !important; border: 1px solid rgb(229, =
229, 229); border-image: none; color: rgb(0, 0, 0) !important;
}
#at_hover .at_item:hover {
background: rgb(242, 242, 242) !important; border: 1px solid rgb(229, =
229, 229); border-image: none; color: rgb(0, 0, 0) !important;
}
#at_share .athov.at_item {
background: rgb(242, 242, 242) !important; border: 1px solid rgb(229, =
229, 229); border-image: none; color: rgb(0, 0, 0) !important;
}
#at_share .at_item:hover {
background: rgb(242, 242, 242) !important; border: 1px solid rgb(229, =
229, 229); border-image: none; color: rgb(0, 0, 0) !important;
}
* html #at_hover .at_item {
border: 1px solid rgb(255, 255, 255); border-image: none;
}
* html #at_hover .athov.at_item {
margin: 1px !important; border: 1px solid rgb(229, 229, 229) =
!important; border-image: none !important;
}
#at_email15 {
padding-top: 5px;
}
.at15e_row {
height: 28px;
}
.at15e_row label {
width: 60px !important; padding-left: 10px !important; float: left =
!important; display: block !important;
}
.at15e_row span {
width: 60px !important; padding-left: 10px !important; float: left =
!important; display: block !important;
}
.at15e_row input {
background: rgb(255, 255, 255) !important; padding: 0px !important; =
border: 1px solid rgb(204, 204, 204) !important; border-image: none =
!important; width: 150px !important; color: rgb(51, 51, 51) !important; =
font-size: 11px !important; font-weight: 400 !important; float: left =
!important; display: block !important;
}
.at15e_row textarea {
background: rgb(255, 255, 255) !important; padding: 0px !important; =
border: 1px solid rgb(204, 204, 204) !important; border-image: none =
!important; width: 150px !important; color: rgb(51, 51, 51) !important; =
font-size: 11px !important; font-weight: 400 !important; float: left =
!important; display: block !important;
}
#at_email input {
font-size: 11px !important;
}
#at_email label {
font-size: 11px !important;
}
#at_email textarea {
font-size: 11px !important;
}
.at15t {
background: url("http://illiweb.com/fa/addthis/widget04.png") no-repeat =
left; height: 16px !important; line-height: 16px !important; =
padding-left: 20px !important; display: block !important; cursor: =
pointer;
}
.addthis_button {
cursor: pointer;
}
.addthis_default_style.addthis_toolbox span {
line-height: 16px;
}
.addthis_default_style .addthis_separator {
margin: 0px 5px; display: inline;
}
div.atclear {
clear: both;
}
.addthis_default_style .addthis_separator {
float: left;
}
.addthis_default_style .at300b {
float: left;
}
.addthis_default_style .at300bs {
float: left;
}
.addthis_default_style .at300m {
float: left;
}
.at300b img {
border: 0px currentColor; border-image: none;
}
.addthis_default_style .at300b {
padding: 0px 2px;
}
.addthis_default_style .at300m {
padding: 0px 2px;
}
.at300b {
cursor: pointer;
}
.at300bs {
cursor: pointer;
}
.at300m {
cursor: pointer;
}
.at300bs {
background: url("http://illiweb.com/fa/addthis/widget04.png") no-repeat =
left; width: 16px; height: 16px; line-height: 16px !important; overflow: =
hidden; display: block;
}
.at15t_compact.at300bs {
background: url("http://illiweb.com/fa/addthis/logo1414.gif") no-repeat =
left; margin-right: 4px;
}
.at15t_expanded.at300bs {
background: url("http://illiweb.com/fa/addthis/logo1414.gif") no-repeat =
left; margin-right: 4px;
}
.at15t_more {
background: url("http://illiweb.com/fa/addthis/logo1414.gif") no-repeat =
left !important;
}
.at15t_000 {
background-position: 0px 0px;
}
.at15t_aim {
background-position: 0px -16px !important;
}
.at15t_amazonwishlist {
background-position: 0px -32px !important;
}
.at15t_ask {
background-position: 0px -48px !important;
}
.at15t_backflip {
background-position: 0px -64px !important;
}
.at15t_ballhype {
background-position: 0px -80px !important;
}
.at15t_bebo {
background-position: 0px -96px !important;
}
.at15t_blogger {
background-position: 0px -112px !important;
}
.at15t_blogmarks {
background-position: 0px -128px !important;
}
.at15t_buzz {
background-position: 0px -144px !important;
}
.at15t_delicious {
background-position: 0px -160px !important;
}
.at15t_digg {
background-position: 0px -176px !important;
}
.at15t_diigo {
background-position: 0px -192px !important;
}
.at15t_email {
background-position: 0px -208px !important;
}
.at15t_facebook {
background-position: 0px -224px !important;
}
.at15t_fark {
background-position: 0px -240px !important;
}
.at15t_faves {
background-position: 0px -256px !important;
}
.at15t_favorites {
background-position: 0px -272px !important;
}
.at15t_friendfeed {
background-position: 0px -288px !important;
}
.at15t_friendster {
background-position: 0px -304px !important;
}
.at15t_google {
background-position: 0px -320px !important;
}
.at15t_hatena {
background-position: 0px -336px !important;
}
.at15t_hi5 {
background-position: 0px -352px !important;
}
.at15t_kaboodle {
background-position: 0px -368px !important;
}
.at15t_kirtsy {
background-position: 0px -384px !important;
}
.at15t_linkagogo {
background-position: 0px -400px !important;
}
.at15t_linkedin {
background-position: 0px -416px !important;
}
.at15t_live {
background-position: 0px -432px !important;
}
.at15t_meneame {
background-position: 0px -448px !important;
}
.at15t_misterwong {
background-position: 0px -464px !important;
}
.at15t_mixx {
background-position: 0px -480px !important;
}
.at15t_multiply {
background-position: 0px -496px !important;
}
.at15t_myaol {
background-position: 0px -512px !important;
}
.at15t_myspace {
background-position: 0px -528px !important;
}
.at15t_netvibes {
background-position: 0px -544px !important;
}
.at15t_netvouz {
background-position: 0px -560px !important;
}
.at15t_newsvine {
background-position: 0px -576px !important;
}
.at15t_nujij {
background-position: 0px -592px !important;
}
.at15t_orkut {
background-position: 0px -608px !important;
}
.at15t_plaxo {
background-position: 0px -624px !important;
}
.at15t_print {
background-position: 0px -640px !important;
}
.at15t_propeller {
background-position: 0px -656px !important;
}
.at15t_reddit {
background-position: 0px -672px !important;
}
.at15t_segnalo {
background-position: 0px -688px !important;
}
.at15t_simpy {
background-position: 0px -704px !important;
}
.at15t_slashdot {
background-position: 0px -720px !important;
}
.at15t_spurl {
background-position: 0px -736px !important;
}
.at15t_stumbleupon {
background-position: 0px -752px !important;
}
.at15t_stylehive {
background-position: 0px -768px !important;
}
.at15t_tailrank {
background-position: 0px -784px !important;
}
.at15t_technorati {
background-position: 0px -800px !important;
}
.at15t_thisnext {
background-position: 0px -816px !important;
}
.at15t_tipd {
background-position: 0px -832px !important;
}
.at15t_tumblr {
background-position: 0px -848px !important;
}
.at15t_twitter {
background-position: 0px -864px !important;
}
.at15t_typepad {
background-position: 0px -880px !important;
}
.at15t_wordpress {
background-position: 0px -896px !important;
}
.at15t_yahoobkm {
background-position: 0px -912px !important;
}
.at15t_yardbarker {
background-position: 0px -928px !important;
}
.at15t_netscape {
background-position: 0px -656px !important;
}
#at16clb {
font-family: "verdana bold", verdana, arial, sans-serif; font-size: =
16pt;
}
#at_share .at_item {
padding: 4px; border: 1px solid rgb(255, 255, 255); border-image: none; =
width: 123px !important; margin-right: 2px;
}
#at16pm {
background: rgb(255, 255, 255); width: 298px; height: 360px; =
text-align: left; border-right-color: rgb(204, 204, 204); =
border-right-width: 1px; border-right-style: solid; position: static;
}
#at16pcc {
margin: 0px auto; padding: 0px; left: 0px; top: 0px; width: 100%; =
color: rgb(76, 76, 76); overflow: visible; font-size: 10px !important; =
position: fixed; z-index: 10000001;
}
* html #at16pcc {
position: absolute;
}
#at16abifc {
margin: 0px; border: 0px currentColor; border-image: none; left: 10px; =
top: 10px; width: 492px; height: 335px; overflow: hidden; position: =
absolute;
}
#at16abifc iframe {
border: 0px currentColor; border-image: none; left: -10px; top: -10px; =
width: 516px; height: 360px; position: absolute;
}
* html div.atiemode2#at16abifc {
width: 482px; height: 354px;
}
* html #at16abifc iframe {
left: -10px; top: -10px; height: 348px; overflow: hidden;
}
#at16p {
background: url("http://illiweb.com/fa/addthis/atbkg.png");
}
#at16p {
margin: -185px auto 0px -155px; padding: 10px; left: 50%; top: 50%; =
width: 300px; color: rgb(94, 94, 94); font-family: =
arial,helvetica,tahoma,verdana,sans-serif; font-size: 12px; position: =
absolute; z-index: 10000001;
}
#atie6ifh {
margin: -185px auto 0px -155px; padding: 10px; left: 50%; top: 50%; =
width: 300px; color: rgb(94, 94, 94); font-family: =
arial,helvetica,tahoma,verdana,sans-serif; font-size: 12px; position: =
absolute; z-index: 10000001;
}
#atie6ifh {
padding: 0px; width: 322px; height: 381px; margin-left: -165px;
}
#at_share {
margin: 0px; padding: 0px;
}
#at16ps {
padding: 5px; height: 284px; -ms-overflow-y: scroll;
}
a#at16pit {
background: url("http://illiweb.com/fa/addthis/tab00.gif") no-repeat; =
top: 37px; width: 16px; height: 20px; text-align: center; right: 10px; =
color: rgb(51, 102, 187); line-height: 19px; overflow: hidden; =
margin-right: -17px; display: block; position: absolute;
}
#at16pi {
background: rgb(229, 229, 229); border-width: 1px 1px 0px; =
border-style: solid solid none; border-color: rgb(204, 204, 204) =
rgb(204, 204, 204) currentColor; border-image: none; text-align: left;
}
#at16pi a {
color: rgb(51, 102, 187); text-decoration: none;
}
#at16pi a:hover {
text-decoration: underline;
}
#at16pt {
background: rgb(242, 242, 242); padding: 5px 10px; height: 13px; =
position: relative;
}
#at16pt a {
font-weight: 700;
}
#at16pt h4 {
font-weight: 700;
}
#at16pt h4 {
margin: 0px; padding: 0px; color: rgb(76, 76, 76); font-size: 12px; =
display: inline; cursor: default;
}
#at16pt a {
top: 5px; right: 10px; color: rgb(76, 76, 76); text-decoration: none; =
position: absolute;
}
#at16pc form {
margin: 0px;
}
#at16pc form label {
text-align: left; padding-bottom: 4px; font-size: 11px; font-weight: =
700; float: none; display: block;
}
#at16pc form label span {
color: rgb(76, 76, 76); font-weight: 400; display: inline;
}
#at_email form .abif {
width: 272px !important;
}
#at_email textarea {
height: 55px !important; -ms-word-wrap: break-word;
}
* html #at_email textarea {
height: 42px !important;
}
:first-child + html #at_email textarea {
height: 42px !important;
}
#at_email form input {
background: rgb(255, 255, 255); margin: 0px 0px 8px; padding: 3px; =
border: 1px solid rgb(187, 187, 187); border-image: none; width: 272px; =
color: rgb(51, 51, 51); line-height: 1.4em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif; font-size: 11px; font-weight: =
400;
}
#at_email form textarea {
background: rgb(255, 255, 255); margin: 0px 0px 8px; padding: 3px; =
border: 1px solid rgb(187, 187, 187); border-image: none; width: 272px; =
color: rgb(51, 51, 51); line-height: 1.4em; font-family: =
arial,helvetica,tahoma,verdana,sans-serif; font-size: 11px; font-weight: =
400;
}
#at_email form .atfxmode2 {
width: 279px;
}
#at16pc form .at_ent {
color: rgb(51, 51, 51) !important;
}
#at16pc form textarea {
height: 48px;
}
#at16pc form input:focus {
background: rgb(255, 255, 240); color: rgb(51, 51, 51);
}
#at16pc form textarea:focus {
background: rgb(255, 255, 240); color: rgb(51, 51, 51);
}
#at16p .atbtn {
background: rgb(255, 255, 255); margin: 0px 2px !important; padding: =
2px 4px; border: 1px solid rgb(181, 181, 181); border-image: none; =
width: 60px; color: rgb(51, 51, 51); font-size: 11px !important; =
font-weight: 700; cursor: pointer;
}
#at16p .atbtn:hover {
border-color: rgb(68, 68, 68); color: rgb(0, 102, 204);
}
#at_email #ateml {
text-align: right; color: rgb(153, 153, 153); font-size: 10px;
}
#at16pc {
height: 323px; text-align: left; color: rgb(76, 76, 76); font-size: =
11px;
}
#at_email {
padding: 5px 10px;
}
#at16pc .tmsg {
padding: 4px 2px; text-align: right;
}
#at16psf {
background: url("http://illiweb.com/fa/addthis/atf02.png") no-repeat =
center rgb(242, 242, 242); padding: 4px 10px; height: 20px; text-align: =
center; border-bottom-color: rgb(204, 204, 204); border-bottom-width: =
1px; border-bottom-style: solid; position: relative;
}
* html #at16psf input {
padding: 0px;
}
#at16psf input {
background: rgb(255, 255, 255); margin: 2px 0px 0px; padding: 2px 0px =
0px; border: currentColor; border-image: none; width: 220px; color: =
rgb(102, 102, 102); font-family: =
arial,helvetica,tahoma,verdana,sans-serif; font-size: 12px; =
outline-width: 0px; outline-style: none;
}
#at16pcc .at_error {
background: rgb(242, 109, 125); padding: 5px 10px; color: rgb(255, 255, =
255); border-bottom-color: rgb(223, 86, 102); border-bottom-width: 1px; =
border-bottom-style: solid;
}
#at16pcc #at_success {
background: rgb(208, 251, 218); padding: 5px 10px; color: rgb(76, 76, =
76); border-bottom-color: rgb(168, 231, 183); border-bottom-width: 1px; =
border-bottom-style: solid;
}
#at16pf {
background: rgb(242, 242, 242); border-top-color: rgb(229, 229, 229); =
border-top-width: 1px; border-top-style: solid; position: relative; ht: =
12px;
}
#at16pf a {
margin: 0px; padding: 0px; color: rgb(76, 76, 76); overflow: hidden; =
font-family: Arial, Helvetica, Sans-Serif; font-size: 10px; =
text-decoration: none; position: absolute;
}
#at16pf a:hover {
text-decoration: underline;
}
#at16pf a#at-whatsthis {
left: 10px; width: 60px;
}
#at16pf a#at-privacy {
left: 90px; width: 39px;
}
#at_complete {
width: 472px; height: 208px !important; text-align: center; color: =
rgb(71, 115, 29); padding-top: 130px; font-size: 13pt;
}
#at_s_msg {
margin-bottom: 10px;
}
#at16pf a#at-logo {
background: url("http://illiweb.com/fa/addthis/logo88.gif") no-repeat =
left; right: 10px; padding-left: 10px;
}
.at_baa {
overflow: hidden; display: block;
}
#at15s #at16pf a {
top: 1px;
}
#at16pc form #at_send {
width: 80px !important;
}
#at_feed {
padding: 10px; height: 300px; display: none;
}
#at_feed span {
font-size: 12px; margin-bottom: 10px;
}
#at_feed div {
width: 102px !important; height: 26px !important; line-height: 26px =
!important; margin-right: 68px; float: left !important;
}
#at_feed div.at_litem {
margin-right: 0px;
}
#at_feed a {
margin: 10px 0px; height: 17px; line-height: 17px;
}
.fbtn {
background: url("http://illiweb.com/fa/addthis/feed00.png") no-repeat; =
width: 102px; text-indent: -9000px; float: left; cursor: pointer;
}
.bloglines.fbtn {
background-position: 0px 0px; width: 94px; height: 20px !important; =
line-height: 20px !important; margin-top: 8px !important;
}
.yahoo.fbtn {
background-position: 0px -20px;
}
.newsgator.fbtn {
background-position: 0px -37px;
}
.newsgator-on.fbtn {
background-position: 0px -37px;
}
.technorati.fbtn {
background-position: 0px -71px;
}
.netvibes.fbtn {
background-position: 0px -88px;
}
.pageflakes.fbtn {
background-position: 0px -141px;
}
.feedreader.fbtn {
background-position: 0px -172px;
}
.newsisfree.fbtn {
background-position: 0px -207px;
}
.google.fbtn {
background-position: 0px -54px; width: 104px;
}
.winlive.fbtn {
background-position: 0px -105px; width: 100px; height: 19px !important; =
line-height: 19px; margin-top: 9px !important;
}
.mymsn.fbtn {
background-position: 0px -158px; width: 71px; height: 14px !important; =
line-height: 14px !important; margin-top: 12px !important;
}
.aol.fbtn {
background-position: 0px -189px; width: 92px; height: 18px !important; =
line-height: 18px !important;
}
#at16pp {
top: 12px; right: 12px; color: rgb(76, 76, 76); font-size: 11px; =
position: absolute;
}
#at16pp label {
font-size: 11px !important;
}
#at16ppc {
padding: 10px; width: 179px;
}
#at16pph {
padding: 5px 0px 10px;
}
#at16pph select {
margin: 5px 0px 8px;
}
#at16pp .atinp {
width: 156px;
}
html > body #at16pp .atinp {
width: 176px;
}
#at16ppb {
background: rgb(255, 255, 255); border: 1px solid rgb(204, 204, 204); =
border-image: none; height: 274px;
}
#at16ep {
padding: 8px; height: 16px;
}
#at16ep a {
height: 16px; line-height: 16px; padding-left: 22px; font-size: 12px; =
margin-bottom: 8px; display: block;
}
#at16ep a.at_gmail {
background: url("http://illiweb.com/fa/addthis/gmail.gif") no-repeat =
left;
}
#at16ep a.at_hotmail {
background: url("http://illiweb.com/fa/addthis/hotmail.gif") no-repeat =
left;
}
#at16ep a.at_yahoo {
background: url("http://illiweb.com/fa/addthis/yahoo.gif") no-repeat =
left;
}
#at16ppf p#atsb {
padding-top: 20px; font-size: 10px;
}
#at16abr {
margin-top: 10px;
}
#at16abr input {
margin: 0px 5px 0px 0px; padding: 0px;
}
#at16ppso {
text-align: right; margin-top: 2px; display: none;
}
#at16ppa {
background: rgb(255, 255, 255); border: 1px solid rgb(204, 204, 204); =
border-image: none; width: 178px; height: 228px; overflow: auto;
}
#at16ppa a {
padding: 4px 8px; font-size: 12px !important; display: block; =
white-space: nowrap;
}
#at16eatdr {
background: rgb(255, 255, 255); left: 21px; top: 129px; width: 277px; =
overflow: auto; border-top-color: currentColor; border-top-width: 0px; =
border-top-style: none; position: absolute; z-index: 500; max-height: =
110px;
}
* html #at_email #at16eatdr {
top: 115px !important; width: 272px !important;
}
:first-child + html #at_email #at16eatdr {
top: 115px !important; width: 272px !important;
}
html > body #at_email form .abif#at16eatdr {
top: 137px; width: 278px !important;
}
#at16eatdr a {
padding: 4px 8px; overflow: hidden; border-bottom-color: rgb(238, 238, =
238); border-bottom-width: 1px; border-bottom-style: dotted; display: =
block;
}
#at16eatdr a.hover {
background: rgb(224, 238, 250); color: rgb(51, 51, 51); =
text-decoration: none;
}
#at16eatdr a:hover {
background: rgb(224, 238, 250); color: rgb(51, 51, 51); =
text-decoration: none;
}
#at_promo {
font-size: 12px; display: none;
}
#at_promo button {
background: rgb(238, 106, 68); border-width: 1px; border-style: solid; =
border-color: rgb(255, 163, 137) rgb(212, 82, 44) rgb(212, 82, 44) =
rgb(255, 163, 137); color: rgb(255, 255, 255);
}
#at_promo .at-promo-content {
margin-top: 12px;
}
#at_promo .at-promo-btn {
padding-top: 10px;
}
#at_promo .at-promo-top {
background: url("http://illiweb.com/fa/addthis/60x60_atn_logo.jpg") =
no-repeat 0px 0px; padding: 10px 0px 5px 70px;
}
#at_promo h4 {
margin: 0px 0px 4px; font-size: 14px; font-weight: 700;
}
#at_promo h4 sup {
color: rgb(238, 106, 68); font-size: 11px;
}
#at_promo span {
display: block;
}
#at_promo .at-promo-btm-ffx {
background: =
url("http://illiweb.com/fa/addthis/60x60_at_firefox_toolbar.jpg") =
no-repeat 0px 0px; padding: 6px 0px 0px 70px;
}
#at_promo .at-promo-btm-ie {
background: =
url("http://illiweb.com/fa/addthis/60x60_at_ie_toolbar.png") no-repeat =
0px 0px; padding: 6px 0px 0px 70px;
}
#left div.module-advert {
padding: 1px; border: 0px currentColor; border-image: none; =
background-color: rgb(244, 244, 244);
}
#main div.module-advert {
padding: 1px; border: 1px solid rgb(222, 207, 230); border-image: none; =
background-color: rgb(244, 244, 244);
}
#forum_rules table {
width: 100%; border-collapse: separate; table-layout: fixed; =
border-spacing: 5px 5px;
}
#forum_rules .logo {
width: 100px; overflow: hidden; vertical-align: top;
}
#forum_rules .logo img {
max-width: 100px;
}
table.portal {
table-layout: fixed;
}
.hiddenMsgTitle {
font-size: 0.9em;
}
.hiddenMsgBody {
padding-top: 2em; display: none;
}
.signature_div ol {
padding-left: 40px;
}
.signature_div ul {
padding-left: 40px;
}
.lastpost-avatar {
padding: 2px; float: left;
}
.lastpost-avatar img {
border-radius: 5px; width: 38px; height: 38px; -moz-border-radius: 5px; =
-webkit-border-radius: 5px;
}
.post-content {
font-weight: 700 !important;
}
h1.post-content {
line-height: 2.4em; font-size: 2em;
}
h2.post-content {
line-height: 1.8em; font-size: 1.5em;
}
h3.post-content {
line-height: 1.3em; font-size: 1.2em;
}
h4.post-content {
line-height: 1.3em; font-size: 1em;
}
h5.post-content {
line-height: 0.7em; font-size: 0.8em;
}
h6.post-content {
line-height: 0.6em; font-size: 0.7em;
}
.fade {
display: inline-block;
}
.blur {
color: rgb(221, 221, 221); display: inline-block; text-shadow: 0px 0px =
6px #aaaaaa;
}
.flipH {
display: inline-block; transform: scale(-1, 1); -moz-transform: =
scale(-1, 1); -o-transform: scale(-1, 1); -webkit-transform: scale(-1, =
1);
}
.flipV {
display: inline-block; transform: scale(1, -1); -moz-transform: =
scale(1, -1); -o-transform: scale(1, -1); -webkit-transform: scale(1, =
-1);
}
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: text/css;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illiweb.com/rsc/97/frm/SCEditor/src/themes/fa.default.min.css
.sceditor-button div {
width: 16px; height: 16px; background-image: url("famfamfam.png"); =
background-repeat: no-repeat;
}
div.sceditor-grip {
width: 16px; height: 16px; background-image: url("famfamfam.png"); =
background-repeat: no-repeat;
}
.sceditor-button-youtube div {
background-position: 0px 0px;
}
.sceditor-button-link div {
background-position: 0px -16px;
}
.sceditor-button-unlink div {
background-position: 0px -32px;
}
.sceditor-button-underline div {
background-position: 0px -48px;
}
.sceditor-button-time div {
background-position: 0px -64px;
}
.sceditor-button-table div {
background-position: 0px -80px;
}
.sceditor-button-superscript div {
background-position: 0px -96px;
}
.sceditor-button-subscript div {
background-position: 0px -112px;
}
.sceditor-button-strike div {
background-position: 0px -128px;
}
.sceditor-button-source div {
background-position: 0px -144px;
}
.sceditor-button-size div {
background-position: 0px -160px;
}
.sceditor-button-rtl div {
background-position: 0px -176px;
}
.sceditor-button-right div {
background-position: 0px -192px;
}
.sceditor-button-removeformat div {
background-position: 0px -208px;
}
.sceditor-button-quote div {
background-position: 0px -224px;
}
.sceditor-button-print div {
background-position: 0px -240px;
}
.sceditor-button-pastetext div {
background-position: 0px -256px;
}
.sceditor-button-paste div {
background-position: 0px -272px;
}
.sceditor-button-orderedlist div {
background-position: 0px -288px;
}
.sceditor-button-maximize div {
background-position: 0px -304px;
}
.sceditor-button-ltr div {
background-position: 0px -320px;
}
.sceditor-button-left div {
background-position: 0px -336px;
}
.sceditor-button-justify div {
background-position: 0px -352px;
}
.sceditor-button-italic div {
background-position: 0px -368px;
}
.sceditor-button-image div {
background-position: 0px -384px;
}
.sceditor-button-horizontalrule div {
background-position: 0px -400px;
}
.sceditor-button-format div {
background-position: 0px -416px;
}
.sceditor-button-font div {
background-position: 0px -432px;
}
.sceditor-button-emoticon div {
background-position: 0px -448px;
}
.sceditor-button-email div {
background-position: 0px -464px;
}
.sceditor-button-date div {
background-position: 0px -480px;
}
.sceditor-button-cut div {
background-position: 0px -496px;
}
.sceditor-button-copy div {
background-position: 0px -512px;
}
.sceditor-button-color div {
background-position: 0px -528px;
}
.sceditor-button-code div {
background-position: 0px -544px;
}
.sceditor-button-center div {
background-position: 0px -560px;
}
.sceditor-button-bulletlist div {
background-position: 0px -576px;
}
.sceditor-button-bold div {
background-position: 0px -592px;
}
div.sceditor-grip {
background-position: 0px -608px; width: 10px; height: 10px; right: 0px; =
bottom: 0px; overflow: hidden; position: absolute; z-index: 3; cursor: =
se-resize;
}
.rtl div.sceditor-grip {
background-position: 0px -618px; left: 0px; width: 10px; height: 10px; =
right: auto;
}
.sceditor-container {
background: padding-box rgb(255, 255, 255); border-radius: 4px; border: =
1px solid rgb(217, 217, 217); border-image: none; color: rgb(34, 34, =
34); line-height: 1; font-family: Arial,"Helvetica =
Neue",Helvetica,sans-serif; font-size: 13px; font-weight: 700; position: =
relative; -moz-border-radius: 4px; -webkit-border-radius: 4px; =
-moz-background-clip: padding; -webkit-background-clip: padding-box;
}
.sceditor-container {
margin: 0px; padding: 0px; z-index: 3;
}
.sceditor-container div {
margin: 0px; padding: 0px; z-index: 3;
}
div.sceditor-dropdown {
margin: 0px; padding: 0px; z-index: 3;
}
div.sceditor-dropdown div {
margin: 0px; padding: 0px; z-index: 3;
}
.sceditor-container iframe {
background: rgb(255, 255, 255); margin: 5px; padding: 0px; outline: =
0px; border: 0px currentColor; border-image: none; color: rgb(17, 17, =
17); font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 13px; =
resize: none;
}
.sceditor-container textarea {
background: rgb(255, 255, 255); margin: 5px; padding: 0px; outline: =
0px; border: 0px currentColor; border-image: none; color: rgb(17, 17, =
17); font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 13px; =
resize: none;
}
div.sceditor-resize-cover {
background: rgb(0, 0, 0); left: 0px; top: 0px; width: 100%; height: =
100%; position: absolute; z-index: 10; opacity: 0.3;
}
.ie6 div.sceditor-resize-cover {
background: rgb(239, 239, 239);
}
.ie7 div.sceditor-resize-cover {
background: rgb(239, 239, 239);
}
.ie8 div.sceditor-resize-cover {
background: rgb(239, 239, 239);
}
.ie6.sceditor-container {
overflow: hidden;
}
.sceditor-maximize {
border-radius: 0px; left: 0px; top: 0px; width: 100% !important; =
height: 100% !important; position: fixed; z-index: 2000; =
background-clip: padding-box; -moz-border-radius: 0; =
-webkit-border-radius: 0; -moz-background-clip: padding; =
-webkit-background-clip: padding-box;
}
body.sceditor-maximize {
margin: 0px; padding: 0px; width: 100%; height: 100%; overflow: hidden;
}
html.sceditor-maximize {
margin: 0px; padding: 0px; width: 100%; height: 100%; overflow: hidden;
}
.sceditor-maximize.ie6 {
position: absolute;
}
.sceditor-maximize div.sceditor-grip {
display: none;
}
.sceditor-maximize div.sceditor-toolbar {
border-radius: 0px; background-clip: padding-box; -moz-border-radius: =
0; -webkit-border-radius: 0; -moz-background-clip: padding; =
-webkit-background-clip: padding-box;
}
div.sceditor-dropdown {
background: padding-box rgb(255, 255, 255); padding: 10px; =
border-radius: 2px; border: 1px solid rgb(204, 204, 204); border-image: =
none; color: rgb(51, 51, 51); line-height: 1; position: absolute; =
z-index: 4000; box-shadow: 1px 2px 4px rgba(0,0,0,0.2); =
-moz-border-radius: 2px; -moz-box-shadow: 1px 2px 4px rgba(0, 0, 0, =
0.2); -webkit-border-radius: 2px; -webkit-box-shadow: 1px 2px 4px =
rgba(0, 0, 0, 0.2); -moz-background-clip: padding; =
-webkit-background-clip: padding-box;
}
div.sceditor-dropdown a {
color: rgb(51, 51, 51);
}
div.sceditor-dropdown a:link {
color: rgb(51, 51, 51);
}
div.sceditor-dropdown form {
margin: 0px;
}
div.sceditor-dropdown label {
padding: 4px 0px; color: rgb(60, 60, 60); font-weight: 700; display: =
block;
}
div.sceditor-dropdown input {
border-width: 1px; border-style: solid; border-color: rgb(136, 136, =
136) rgb(204, 204, 204) rgb(204, 204, 204); margin: 0px 0px 0.75em; =
padding: 4px; outline: 0px; border-radius: 1px; border-image: none; =
font-family: Arial,"Helvetica Neue",Helvetica,sans-serif; =
background-clip: padding-box; -moz-border-radius: 1px; =
-webkit-border-radius: 1px; -moz-background-clip: padding; =
-webkit-background-clip: padding-box;
}
div.sceditor-dropdown textarea {
border-width: 1px; border-style: solid; border-color: rgb(136, 136, =
136) rgb(204, 204, 204) rgb(204, 204, 204); margin: 0px 0px 0.75em; =
padding: 4px; outline: 0px; border-radius: 1px; border-image: none; =
font-family: Arial,"Helvetica Neue",Helvetica,sans-serif; =
background-clip: padding-box; -moz-border-radius: 1px; =
-webkit-border-radius: 1px; -moz-background-clip: padding; =
-webkit-background-clip: padding-box;
}
div.sceditor-dropdown textarea {
padding: 6px;
}
div.sceditor-dropdown input:focus {
border-color: rgb(102, 102, 102) rgb(170, 170, 170) rgb(170, 170, 170); =
box-shadow: inset 0px 1px 5px rgba(0,0,0,0.1); -moz-box-shadow: inset 0 =
1px 5px rgba(0, 0, 0, 0.1); -webkit-box-shadow: inset 0 1px 5px rgba(0, =
0, 0, 0.1);
}
div.sceditor-dropdown textarea:focus {
border-color: rgb(102, 102, 102) rgb(170, 170, 170) rgb(170, 170, 170); =
box-shadow: inset 0px 1px 5px rgba(0,0,0,0.1); -moz-box-shadow: inset 0 =
1px 5px rgba(0, 0, 0, 0.1); -webkit-box-shadow: inset 0 1px 5px rgba(0, =
0, 0, 0.1);
}
div.sceditor-dropdown .button {
background: padding-box rgb(236, 236, 236); margin: 0.3em 0px 0px; =
padding: 6px 12px; border-radius: 2px; border: 1px solid rgb(204, 204, =
204); border-image: none; color: rgb(68, 68, 68); font-weight: 700; =
cursor: pointer; -moz-border-radius: 2px; -webkit-border-radius: 2px; =
-moz-background-clip: padding; -webkit-background-clip: padding-box;
}
div.sceditor-dropdown .button:hover {
background: rgb(243, 243, 243); box-shadow: 0px 1px 1px =
rgba(0,0,0,0.15); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15); =
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
}
div.sceditor-font-picker {
padding: 6px 0px;
}
div.sceditor-fontsize-picker {
padding: 6px 0px;
}
div.sceditor-format {
padding: 6px 0px;
}
div.sceditor-color-picker {
padding: 0px;
}
div.sceditor-emoticons {
padding: 0px;
}
div.sceditor-more-emoticons {
padding: 0px;
}
.sceditor-pastetext textarea {
border: 1px solid rgb(187, 187, 187); border-image: none; width: 20em;
}
.sceditor-emoticons img {
margin: 7px; padding: 0px; cursor: pointer;
}
.sceditor-more-emoticons img {
margin: 7px; padding: 0px; cursor: pointer;
}
.sceditor-more {
padding: 6px 0px; text-align: center; font-weight: 700; =
border-top-color: rgb(187, 187, 187); border-top-width: 1px; =
border-top-style: solid; display: block; cursor: pointer;
}
.sceditor-dropdown a:hover {
background: rgb(238, 238, 238);
}
.sceditor-font-option {
padding: 7px 10px; color: rgb(34, 34, 34); text-decoration: none; =
display: block; cursor: pointer;
}
.sceditor-fontsize-option {
padding: 7px 10px; color: rgb(34, 34, 34); text-decoration: none; =
display: block; cursor: pointer;
}
.sceditor-format a {
padding: 7px 10px; color: rgb(34, 34, 34); text-decoration: none; =
display: block; cursor: pointer;
}
.sceditor-fontsize-option {
padding: 7px 13px;
}
.sceditor-color-column {
float: left;
}
.sceditor-color-option {
border: 1px solid rgb(255, 255, 255); border-image: none; width: 10px; =
height: 10px; overflow: hidden; display: block;
}
.sceditor-color-option:hover {
border: 1px solid rgb(51, 51, 51); border-image: none;
}
div.sceditor-toolbar {
background: padding-box rgb(247, 247, 247); padding: 3px 5px 2px; =
border-radius: 3px 3px 0px 0px; line-height: 0; overflow: hidden; =
border-bottom-color: silver; border-bottom-width: 1px; =
border-bottom-style: solid; -ms-user-select: none; -moz-border-radius: =
3px 3px 0 0; -webkit-border-radius: 3px 3px 0 0; -moz-background-clip: =
padding; -webkit-background-clip: padding-box; -moz-user-select: none; =
-webkit-user-select: none; user-select: none;
}
div.sceditor-group {
background: padding-box rgb(221, 221, 221); margin: 1px 5px 1px 0px; =
padding: 1px; border-radius: 3px; border-bottom-color: rgb(170, 170, =
170); border-bottom-width: 1px; border-bottom-style: solid; display: =
inline-block; -moz-border-radius: 3px; -webkit-border-radius: 3px; =
-moz-background-clip: padding; -webkit-background-clip: padding-box;
}
.ie6 div.sceditor-group {
display: inline; -ms-zoom: 1;
}
.ie7 div.sceditor-group {
display: inline; -ms-zoom: 1;
}
.sceditor-button {
padding: 3px 5px; border-radius: 3px; width: 16px; height: 20px; =
text-indent: -9999px; float: left; cursor: pointer; background-clip: =
padding-box; -moz-border-radius: 3px; -webkit-border-radius: 3px; =
-moz-background-clip: padding; -webkit-background-clip: padding-box;
}
.ie .sceditor-button {
text-indent: 0px;
}
.ie6 .sceditor-button {
float: none !important; display: inline; -ms-zoom: 1;
}
.ie7 .sceditor-button {
float: none !important; display: inline; -ms-zoom: 1;
}
.ie6 .sceditor-button {
padding: 0px;
}
.ie6 .sceditor-button div {
margin: 5px;
}
.ie7 .sceditor-button div {
margin: 5px 0px;
}
.active.sceditor-button {
background: rgb(255, 255, 255); box-shadow: inset 1px 1px 0px =
rgba(0,0,0,0.3), inset -1px 0px rgba(0,0,0,0.3), inset 0px -1px 0px =
rgba(0,0,0,0.2); -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.3), =
inset -1px 0 rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2); =
-webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.3), inset -1px 0 =
rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2);
}
.sceditor-button:active {
background: rgb(255, 255, 255); box-shadow: inset 1px 1px 0px =
rgba(0,0,0,0.3), inset -1px 0px rgba(0,0,0,0.3), inset 0px -1px 0px =
rgba(0,0,0,0.2); -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.3), =
inset -1px 0 rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2); =
-webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.3), inset -1px 0 =
rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2);
}
.sceditor-button:hover {
background: rgb(255, 255, 255); box-shadow: inset 1px 1px 0px =
rgba(0,0,0,0.3), inset -1px 0px rgba(0,0,0,0.3), inset 0px -1px 0px =
rgba(0,0,0,0.2); -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.3), =
inset -1px 0 rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2); =
-webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.3), inset -1px 0 =
rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2);
}
.sceditor-button:active {
background: rgb(255, 255, 255); box-shadow: inset 1px 1px 0px =
rgba(0,0,0,0.3), inset -1px 0px rgba(0,0,0,0.3), inset 0px -1px 0px =
rgba(0,0,0,0.2), inset 0px 0px 8px rgba(0,0,0,0.3); -moz-box-shadow: =
inset 1px 1px 0 rgba(0, 0, 0, 0.3), inset -1px 0 rgba(0, 0, 0, 0.3), =
inset 0 -1px 0 rgba(0, 0, 0, 0.2), inset 0 0 8px rgba(0, 0, 0, 0.3); =
-webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.3), inset -1px 0 =
rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2), inset 0 0 8px =
rgba(0, 0, 0, 0.3);
}
.disabled.sceditor-button:hover {
background: inherit; cursor: default; box-shadow: none; =
-moz-box-shadow: none; -webkit-box-shadow: none;
}
.sceditor-button {
display: block;
}
.sceditor-button div {
display: block;
}
.sceditor-button div {
margin: 2px 0px; padding: 0px; color: transparent; line-height: 0; =
overflow: hidden; font-size: 0px;
}
.disabled.sceditor-button div {
opacity: 0.3;
}
.text.sceditor-button {
width: auto; color: inherit; line-height: 16px; text-indent: 0px; =
overflow: visible; font-size: 1em;
}
.text.sceditor-button div {
width: auto; color: inherit; line-height: 16px; text-indent: 0px; =
overflow: visible; font-size: 1em;
}
.text-icon.sceditor-button {
width: auto; color: inherit; line-height: 16px; text-indent: 0px; =
overflow: visible; font-size: 1em;
}
.text-icon.sceditor-button div {
width: auto; color: inherit; line-height: 16px; text-indent: 0px; =
overflow: visible; font-size: 1em;
}
.text .sceditor-button {
width: auto; color: inherit; line-height: 16px; text-indent: 0px; =
overflow: visible; font-size: 1em;
}
.text .sceditor-button div {
width: auto; color: inherit; line-height: 16px; text-indent: 0px; =
overflow: visible; font-size: 1em;
}
.text-icon .sceditor-button {
width: auto; color: inherit; line-height: 16px; text-indent: 0px; =
overflow: visible; font-size: 1em;
}
.text-icon .sceditor-button div {
width: auto; color: inherit; line-height: 16px; text-indent: 0px; =
overflow: visible; font-size: 1em;
}
.text.sceditor-button div {
background: 0px; padding: 0px 2px;
}
.text .sceditor-button div {
background: 0px; padding: 0px 2px;
}
.text-icon.sceditor-button div {
padding: 0px 2px 0px 20px;
}
.text-icon .sceditor-button div {
padding: 0px 2px 0px 20px;
}
.rtl .sceditor-button {
float: right;
}
.hover {
background: rgb(255, 255, 255); box-shadow: inset 1px 1px 0px =
rgba(0,0,0,0.3), inset -1px 0px rgba(0,0,0,0.3), inset 0px -1px 0px =
rgba(0,0,0,0.2); -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.3), =
inset -1px 0 rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2); =
-webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.3), inset -1px 0 =
rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2);
}
div.sceditor-emoticons div div {
text-align: center;
}
img.smiley {
width: 15px; height: 15px; background-repeat: no-repeat; =
divsceditor-gripsceditor-buttondivbackground-image: url(famfamfam.png);
}
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
/*! jQuery v1.7.2 jquery.com | jquery.org/license */=0A=
(function(a,b){function cy(a){return =
f.isWindow(a)?a:a.nodeType=3D=3D=3D9?a.defaultView||a.parentWindow:!1}fun=
ction cu(a){if(!cj[a]){var =
b=3Dc.body,d=3Df("<"+a+">").appendTo(b),e=3Dd.css("display");d.remove();i=
f(e=3D=3D=3D"none"||e=3D=3D=3D""){ck||(ck=3Dc.createElement("iframe"),ck.=
frameBorder=3Dck.width=3Dck.height=3D0),b.appendChild(ck);if(!cl||!ck.cre=
ateElement)cl=3D(ck.contentWindow||ck.contentDocument).document,cl.write(=
(f.support.boxModel?"":"")+""),cl.close();d=3Dcl.createElement(a),cl.body.app=
endChild(d),e=3Df.css(d,"display"),b.removeChild(ck)}cj[a]=3De}return =
cj[a]}function ct(a,b){var =
c=3D{};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=3Da});=
return c}function cs(){cq=3Db}function cr(){setTimeout(cs,0);return =
cq=3Df.now()}function ci(){try{return new =
a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return =
new a.XMLHttpRequest}catch(b){}}function =
cb(a,c){a.dataFilter&&(c=3Da.dataFilter(c,a.dataType));var =
d=3Da.dataTypes,e=3D{},g,h,i=3Dd.length,j,k=3Dd[0],l,m,n,o,p;for(g=3D1;g<=
i;g++){if(g=3D=3D=3D1)for(h in a.converters)typeof =
h=3D=3D"string"&&(e[h.toLowerCase()]=3Da.converters[h]);l=3Dk,k=3Dd[g];if=
(k=3D=3D=3D"*")k=3Dl;else if(l!=3D=3D"*"&&l!=3D=3Dk){m=3Dl+" =
"+k,n=3De[m]||e["* "+k];if(!n){p=3Db;for(o in e){j=3Do.split(" =
");if(j[0]=3D=3D=3Dl||j[0]=3D=3D=3D"*"){p=3De[j[1]+" =
"+k];if(p){o=3De[o],o=3D=3D=3D!0?n=3Dp:p=3D=3D=3D!0&&(n=3Do);break}}}}!n&=
&!p&&f.error("No conversion from "+m.replace(" "," to =
")),n!=3D=3D!0&&(c=3Dn?n(c):p(o(c)))}}return c}function ca(a,c,d){var =
e=3Da.contents,f=3Da.dataTypes,g=3Da.responseFields,h,i,j,k;for(i in g)i =
in =
d&&(c[g[i]]=3Dd[i]);while(f[0]=3D=3D=3D"*")f.shift(),h=3D=3D=3Db&&(h=3Da.=
mimeType||c.getResponseHeader("content-type"));if(h)for(i in =
e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in =
d)j=3Df[0];else{for(i in d){if(!f[0]||a.converters[i+" =
"+f[0]]){j=3Di;break}k||(k=3Di)}j=3Dj||k}if(j){j!=3D=3Df[0]&&f.unshift(j)=
;return d[j]}}function =
b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b=
_(a+"["+(typeof e=3D=3D"object"?b:"")+"]",e,c,d)});else =
if(!c&&f.type(b)=3D=3D=3D"object")for(var e in =
b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var =
d,e,g=3Df.ajaxSettings.flatOptions||{};for(d in =
c)c[d]!=3D=3Db&&((g[d]?a:e||(e=3D{}))[d]=3Dc[d]);e&&f.extend(!0,a,e)}func=
tion bZ(a,c,d,e,f,g){f=3Df||c.dataTypes[0],g=3Dg||{},g[f]=3D!0;var =
h=3Da[f],i=3D0,j=3Dh?h.length:0,k=3Da=3D=3D=3DbS,l;for(;i
0){if(c!=3D=3D"border")for(;e=3D0=3D=3D=3Dc})}function =
S(a){return!a||!a.parentNode||a.parentNode.nodeType=3D=3D=3D11}function =
K(){return!0}function J(){return!1}function n(a,b,c){var =
d=3Db+"defer",e=3Db+"queue",g=3Db+"mark",h=3Df._data(a,d);h&&(c=3D=3D=3D"=
queue"||!f._data(a,e))&&(c=3D=3D=3D"mark"||!f._data(a,g))&&setTimeout(fun=
ction(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)=
}function m(a){for(var b in =
a){if(b=3D=3D=3D"data"&&f.isEmptyObject(a[b]))continue;if(b!=3D=3D"toJSON=
")return!1}return!0}function =
l(a,c,d){if(d=3D=3D=3Db&&a.nodeType=3D=3D=3D1){var =
e=3D"data-"+c.replace(k,"-$1").toLowerCase();d=3Da.getAttribute(e);if(typ=
eof =
d=3D=3D"string"){try{d=3Dd=3D=3D=3D"true"?!0:d=3D=3D=3D"false"?!1:d=3D=3D=
=3D"null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.d=
ata(a,c,d)}else d=3Db}return d}function h(a){var =
b=3Dg[a]=3D{},c,d;a=3Da.split(/\s+/);for(c=3D0,d=3Da.length;c)[^>]*$=
|#([\w\-]*)$)/,j=3D/\S/,k=3D/^\s+/,l=3D/\s+$/,m=3D/^<(\w+)\s*\/?>(?:<\/\1=
>)?$/,n=3D/^[\],:{}\s]*$/,o=3D/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=3D/=
"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=3D/(?=
:^|:|,)(?:\s*\[)+/g,r=3D/(webkit)[ =
\/]([\w.]+)/,s=3D/(opera)(?:.*version)?[ \/]([\w.]+)/,t=3D/(msie) =
([\w.]+)/,u=3D/(mozilla)(?:.*? =
rv:([\w.]+))?/,v=3D/-([a-z]|[0-9])/ig,w=3D/^-ms-/,x=3Dfunction(a,b){retur=
n(b+"").toUpperCase()},y=3Dd.userAgent,z,A,B,C=3DObject.prototype.toStrin=
g,D=3DObject.prototype.hasOwnProperty,E=3DArray.prototype.push,F=3DArray.=
prototype.slice,G=3DString.prototype.trim,H=3DArray.prototype.indexOf,I=3D=
{};e.fn=3De.prototype=3D{constructor:e,init:function(a,d,f){var =
g,h,j,k;if(!a)return =
this;if(a.nodeType){this.context=3Dthis[0]=3Da,this.length=3D1;return =
this}if(a=3D=3D=3D"body"&&!d&&c.body){this.context=3Dc,this[0]=3Dc.body,t=
his.selector=3Da,this.length=3D1;return this}if(typeof =
a=3D=3D"string"){a.charAt(0)!=3D=3D"<"||a.charAt(a.length-1)!=3D=3D">"||a=
.length<3?g=3Di.exec(a):g=3D[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=3D=
d instanceof =
e?d[0]:d,k=3Dd?d.ownerDocument||d:c,j=3Dm.exec(a),j?e.isPlainObject(d)?(a=
=3D[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=3D[k.createElement(j=
[1])]:(j=3De.buildFragment([g[1]],[k]),a=3D(j.cacheable?e.clone(j.fragmen=
t):j.fragment).childNodes);return =
e.merge(this,a)}h=3Dc.getElementById(g[2]);if(h&&h.parentNode){if(h.id!=3D=
=3Dg[2])return =
f.find(a);this.length=3D1,this[0]=3Dh}this.context=3Dc,this.selector=3Da;=
return =
this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.i=
sFunction(a))return =
f.ready(a);a.selector!=3D=3Db&&(this.selector=3Da.selector,this.context=3D=
a.context);return =
e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){=
return this.length},toArray:function(){return =
F.call(this,0)},get:function(a){return =
a=3D=3Dnull?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:fun=
ction(a,b,c){var =
d=3Dthis.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObjec=
t=3Dthis,d.context=3Dthis.context,b=3D=3D=3D"find"?d.selector=3Dthis.sele=
ctor+(this.selector?" =
":"")+c:b&&(d.selector=3Dthis.selector+"."+b+"("+c+")");return =
d},each:function(a,b){return =
e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return =
this},eq:function(a){a=3D+a;return =
a=3D=3D=3D-1?this.slice(a):this.slice(a,a+1)},first:function(){return =
this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return =
this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","=
))},map:function(a){return =
this.pushStack(e.map(this,function(b,c){return =
a.call(b,c,b)}))},end:function(){return =
this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].sp=
lice},e.fn.init.prototype=3De.fn,e.extend=3De.fn.extend=3Dfunction(){var =
a,c,d,f,g,h,i=3Darguments[0]||{},j=3D1,k=3Darguments.length,l=3D!1;typeof=
i=3D=3D"boolean"&&(l=3Di,i=3Darguments[1]||{},j=3D2),typeof =
i!=3D"object"&&!e.isFunction(i)&&(i=3D{}),k=3D=3D=3Dj&&(i=3Dthis,--j);for=
(;j0)retur=
n;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bi=
ndReady:function(){if(!A){A=3De.Callbacks("once =
memory");if(c.readyState=3D=3D=3D"complete")return =
setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMConten=
tLoaded",B,!1),a.addEventListener("load",e.ready,!1);else =
if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("on=
load",e.ready);var =
b=3D!1;try{b=3Da.frameElement=3D=3Dnull}catch(d){}c.documentElement.doScr=
oll&&b&&J()}}},isFunction:function(a){return =
e.type(a)=3D=3D=3D"function"},isArray:Array.isArray||function(a){return =
e.type(a)=3D=3D=3D"array"},isWindow:function(a){return =
a!=3Dnull&&a=3D=3Da.window},isNumeric:function(a){return!isNaN(parseFloat=
(a))&&isFinite(a)},type:function(a){return =
a=3D=3Dnull?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){i=
f(!a||e.type(a)!=3D=3D"object"||a.nodeType||e.isWindow(a))return!1;try{if=
(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype=
,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return =
d=3D=3D=3Db||D.call(a,d)},isEmptyObject:function(a){for(var b in =
a)return!1;return!0},error:function(a){throw new =
Error(a)},parseJSON:function(b){if(typeof b!=3D"string"||!b)return =
null;b=3De.trim(b);if(a.JSON&&a.JSON.parse)return =
a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))=
return(new Function("return "+b))();e.error("Invalid JSON: =
"+b)},parseXML:function(c){if(typeof c!=3D"string"||!c)return null;var =
d,f;try{a.DOMParser?(f=3Dnew =
DOMParser,d=3Df.parseFromString(c,"text/xml")):(d=3Dnew =
ActiveXObject("Microsoft.XMLDOM"),d.async=3D"false",d.loadXML(c))}catch(g=
){d=3Db}(!d||!d.documentElement||d.getElementsByTagName("parsererror").le=
ngth)&&e.error("Invalid XML: "+c);return =
d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||=
function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return =
a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return =
a.nodeName&&a.nodeName.toUpperCase()=3D=3D=3Db.toUpperCase()},each:functi=
on(a,c,d){var =
f,g=3D0,h=3Da.length,i=3Dh=3D=3D=3Db||e.isFunction(a);if(d){if(i){for(f =
in a)if(c.apply(a[f],d)=3D=3D=3D!1)break}else =
for(;g0&&a[0]&&a[j-1]||j=3D=3D=3D0||e.isArray(a));if(k)for(=
;i1?i.call(arguments,0):b,j.notifyWith(=
k,e)}}function l(a){return =
function(c){b[a]=3Darguments.length>1?i.call(arguments,0):c,--g||j.resolv=
eWith(j,b)}}var =
b=3Di.call(arguments,0),c=3D0,d=3Db.length,e=3DArray(d),g=3Dd,h=3Dd,j=3Dd=
<=3D1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=3Dj.promise();if(d>1){=
for(;ca ",d=3Dp.getElementsByTagName("*"),e=3Dp.getElementsByT=
agName("a")[0];if(!d||!d.length||!e)return{};g=3Dc.createElement("select"=
),h=3Dg.appendChild(c.createElement("option")),i=3Dp.getElementsByTagName=
("input")[0],b=3D{leadingWhitespace:p.firstChild.nodeType=3D=3D=3D3,tbody=
:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByT=
agName("link").length,style:/top/.test(e.getAttribute("style")),hrefNorma=
lized:e.getAttribute("href")=3D=3D=3D"/a",opacity:/^0.55/.test(e.style.op=
acity),cssFloat:!!e.style.cssFloat,checkOn:i.value=3D=3D=3D"on",optSelect=
ed:h.selected,getSetAttribute:p.className!=3D=3D"t",enctype:!!c.createEle=
ment("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).oute=
rHTML!=3D=3D"<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubb=
les:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkW=
rapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=3Db.boxMod=
el=3Dc.compatMode=3D=3D=3D"CSS1Compat",i.checked=3D!0,b.noCloneChecked=3D=
i.cloneNode(!0).checked,g.disabled=3D!0,b.optDisabled=3D!h.disabled;try{d=
elete =
p.test}catch(r){b.deleteExpando=3D!1}!p.addEventListener&&p.attachEvent&&=
p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=3D!1}),p.=
cloneNode(!0).fireEvent("onclick")),i=3Dc.createElement("input"),i.value=3D=
"t",i.setAttribute("type","radio"),b.radioValue=3Di.value=3D=3D=3D"t",i.s=
etAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild=
(i),j=3Dc.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClon=
e=3Dj.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=3Di.c=
hecked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n =
in{submit:1,change:1,focusin:1})m=3D"on"+n,o=3Dm in =
p,o||(p.setAttribute(m,"return;"),o=3Dtypeof =
p[m]=3D=3D"function"),b[n+"Bubbles"]=3Do;j.removeChild(p),j=3Dg=3Dh=3Dp=3D=
i=3Dnull,f(function(){var =
d,e,g,h,i,j,l,m,n,q,r,s,t,u=3Dc.getElementsByTagName("body")[0];!u||(m=3D=
1,t=3D"padding:0;margin:0;border:",r=3D"position:absolute;top:0;left:0;wi=
dth:1px;height:1px;",s=3Dt+"0;visibility:hidden;",n=3D"style=3D'"+r+t+"5p=
x solid #000;",q=3D""+"",d=3Dc.createElement("div=
"),d.style.cssText=3Ds+"width:0;height:0;position:static;top:0;margin-top=
:"+m+"px",u.insertBefore(d,u.firstChild),p=3Dc.createElement("div"),d.app=
endChild(p),p.innerHTML=3D"",k=3Dp.getElem=
entsByTagName("td"),o=3Dk[0].offsetHeight=3D=3D=3D0,k[0].style.display=3D=
"",k[1].style.display=3D"none",b.reliableHiddenOffsets=3Do&&k[0].offsetHe=
ight=3D=3D=3D0,a.getComputedStyle&&(p.innerHTML=3D"",l=3Dc.createElement(=
"div"),l.style.width=3D"0",l.style.marginRight=3D"0",p.style.width=3D"2px=
",p.appendChild(l),b.reliableMarginRight=3D(parseInt((a.getComputedStyle(=
l,null)||{marginRight:0}).marginRight,10)||0)=3D=3D=3D0),typeof =
p.style.zoom!=3D"undefined"&&(p.innerHTML=3D"",p.style.width=3Dp.style.pa=
dding=3D"1px",p.style.border=3D0,p.style.overflow=3D"hidden",p.style.disp=
lay=3D"inline",p.style.zoom=3D1,b.inlineBlockNeedsLayout=3Dp.offsetWidth=3D=
=3D=3D3,p.style.display=3D"block",p.style.overflow=3D"visible",p.innerHTM=
L=3D"
",b.shrinkWrapBlocks=3Dp.offsetWidth!=3D=3D3),=
p.style.cssText=3Dr+s,p.innerHTML=3Dq,e=3Dp.firstChild,g=3De.firstChild,i=
=3De.nextSibling.firstChild.firstChild,j=3D{doesNotAddBorder:g.offsetTop!=
=3D=3D5,doesAddBorderForTableAndCells:i.offsetTop=3D=3D=3D5},g.style.posi=
tion=3D"fixed",g.style.top=3D"20px",j.fixedPosition=3Dg.offsetTop=3D=3D=3D=
20||g.offsetTop=3D=3D=3D15,g.style.position=3Dg.style.top=3D"",e.style.ov=
erflow=3D"hidden",e.style.position=3D"relative",j.subtractsBorderForOverf=
lowNotVisible=3Dg.offsetTop=3D=3D=3D-5,j.doesNotIncludeMarginInBodyOffset=
=3Du.offsetTop!=3D=3Dm,a.getComputedStyle&&(p.style.marginTop=3D"1%",b.pi=
xelMargin=3D(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=3D=3D"=
1%"),typeof =
d.style.zoom!=3D"undefined"&&(d.style.zoom=3D1),u.removeChild(d),l=3Dp=3D=
d=3Dnull,f.extend(b,j))});return b}();var =
j=3D/^(?:\{.*\}|\[.*\])$/,k=3D/([A-Z])/g;f.extend({cache:{},uuid:0,expand=
o:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0=
,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:f=
unction(a){a=3Da.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!=
m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var =
g,h,i,j=3Df.expando,k=3Dtypeof =
c=3D=3D"string",l=3Da.nodeType,m=3Dl?f.cache:a,n=3Dl?a[j]:a[j]&&j,o=3Dc=3D=
=3D=3D"events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d=3D=3D=3Db)return;=
n||(l?a[j]=3Dn=3D++f.uuid:n=3Dj),m[n]||(m[n]=3D{},l||(m[n].toJSON=3Df.noo=
p));if(typeof c=3D=3D"object"||typeof =
c=3D=3D"function")e?m[n]=3Df.extend(m[n],c):m[n].data=3Df.extend(m[n].dat=
a,c);g=3Dh=3Dm[n],e||(h.data||(h.data=3D{}),h=3Dh.data),d!=3D=3Db&&(h[f.c=
amelCase(c)]=3Dd);if(o&&!h[c])return =
g.events;k?(i=3Dh[c],i=3D=3Dnull&&(i=3Dh[f.camelCase(c)])):i=3Dh;return =
i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var =
d,e,g,h=3Df.expando,i=3Da.nodeType,j=3Di?f.cache:a,k=3Di?a[h]:h;if(!j[k])=
return;if(b){d=3Dc?j[k]:j[k].data;if(d){f.isArray(b)||(b in =
d?b=3D[b]:(b=3Df.camelCase(b),b in d?b=3D[b]:b=3Db.split(" =
")));for(e=3D0,g=3Db.length;e1,null,!1)},removeData:=
function(a){return =
this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a=
,b){a&&(b=3D(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:f=
unction(a,b,c){a!=3D=3D!0&&(c=3Db,b=3Da,a=3D!1);if(b){c=3Dc||"fx";var =
d=3Dc+"mark",e=3Da?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b=
,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var =
d;if(a){b=3D(b||"fx")+"queue",d=3Df._data(a,b),c&&(!d||f.isArray(c)?d=3Df=
._data(a,b,f.makeArray(c)):d.push(c));return =
d||[]}},dequeue:function(a,b){b=3Db||"fx";var =
c=3Df.queue(a,b),d=3Dc.shift(),e=3D{};d=3D=3D=3D"inprogress"&&(d=3Dc.shif=
t()),d&&(b=3D=3D=3D"fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.=
call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue =
"+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var =
d=3D2;typeof =
a!=3D"string"&&(c=3Da,a=3D"fx",d--);if(arguments.length1)},removeAttr:function(a){retu=
rn =
this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return =
f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=3D=
f.propFix[a]||a;return this.each(function(){try{this[a]=3Db,delete =
this[a]}catch(c){}})},addClass:function(a){var =
b,c,d,e,g,h,i;if(f.isFunction(a))return =
this.each(function(b){f(this).addClass(a.call(this,b,this.className))});i=
f(a&&typeof =
a=3D=3D"string"){b=3Da.split(p);for(c=3D0,d=3Dthis.length;c-1)return!0;return!1},val:function(a){var =
c,d,e,g=3Dthis[0];{if(!!arguments.length){e=3Df.isFunction(a);return =
this.each(function(d){var =
g=3Df(this),h;if(this.nodeType=3D=3D=3D1){e?h=3Da.call(this,d,g.val()):h=3D=
a,h=3D=3Dnull?h=3D"":typeof =
h=3D=3D"number"?h+=3D"":f.isArray(h)&&(h=3Df.map(h,function(a){return =
a=3D=3Dnull?"":a+""})),c=3Df.valHooks[this.type]||f.valHooks[this.nodeNam=
e.toLowerCase()];if(!c||!("set"in =
c)||c.set(this,h,"value")=3D=3D=3Db)this.value=3Dh}})}if(g){c=3Df.valHook=
s[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in =
c&&(d=3Dc.get(g,"value"))!=3D=3Db)return d;d=3Dg.value;return typeof =
d=3D=3D"string"?d.replace(q,""):d=3D=3Dnull?"":d}}}}),f.extend({valHooks:=
{option:{get:function(a){var =
b=3Da.attributes.value;return!b||b.specified?a.value:a.text}},select:{get=
:function(a){var =
b,c,d,e,g=3Da.selectedIndex,h=3D[],i=3Da.options,j=3Da.type=3D=3D=3D"sele=
ct-one";if(g<0)return =
null;c=3Dj?g:0,d=3Dj?g+1:i.length;for(;c=3D0}),c.length||(a.selectedIndex=3D-1);return =
c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,off=
set:!0},attr:function(a,c,d,e){var =
g,h,i,j=3Da.nodeType;if(!!a&&j!=3D=3D3&&j!=3D=3D8&&j!=3D=3D2){if(e&&c in =
f.attrFn)return f(a)[c](d);if(typeof =
a.getAttribute=3D=3D"undefined")return =
f.prop(a,c,d);i=3Dj!=3D=3D1||!f.isXMLDoc(a),i&&(c=3Dc.toLowerCase(),h=3Df=
.attrHooks[c]||(u.test(c)?x:w));if(d!=3D=3Db){if(d=3D=3D=3Dnull){f.remove=
Attr(a,c);return}if(h&&"set"in h&&i&&(g=3Dh.set(a,d,c))!=3D=3Db)return =
g;a.setAttribute(c,""+d);return d}if(h&&"get"in =
h&&i&&(g=3Dh.get(a,c))!=3D=3Dnull)return g;g=3Da.getAttribute(c);return =
g=3D=3D=3Dnull?b:g}},removeAttr:function(a,b){var =
c,d,e,g,h,i=3D0;if(b&&a.nodeType=3D=3D=3D1){d=3Db.toLowerCase().split(p),=
g=3Dd.length;for(;i=3D0}})});var =
z=3D/^(?:textarea|input|select)$/i,A=3D/^([^\.]*)?(?:\.(.+))?$/,B=3D/(?:^=
|\s)hover(\.\S+)?\b/,C=3D/^key/,D=3D/^(?:mouse|contextmenu)|click/,E=3D/^=
(?:focusinfocus|focusoutblur)$/,F=3D/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))=
?$/,G=3Dfunction(=0A=
a){var =
b=3DF.exec(a);b&&(b[1]=3D(b[1]||"").toLowerCase(),b[3]=3Db[3]&&new =
RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=3Dfunction(a,b){var =
c=3Da.attributes||{};return(!b[1]||a.nodeName.toLowerCase()=3D=3D=3Db[1])=
&&(!b[2]||(c.id||{}).value=3D=3D=3Db[2])&&(!b[3]||b[3].test((c["class"]||=
{}).value))},I=3Dfunction(a){return =
f.event.special.hover?a:a.replace(B,"mouseenter$1 =
mouseleave$1")};f.event=3D{add:function(a,c,d,e,g){var =
h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType=3D=3D=3D3||a.nodeType=3D=3D=3D8||=
!c||!d||!(h=3Df._data(a)))){d.handler&&(p=3Dd,d=3Dp.handler,g=3Dp.selecto=
r),d.guid||(d.guid=3Df.guid++),j=3Dh.events,j||(h.events=3Dj=3D{}),i=3Dh.=
handle,i||(h.handle=3Di=3Dfunction(a){return typeof =
f!=3D"undefined"&&(!a||f.event.triggered!=3D=3Da.type)?f.event.dispatch.a=
pply(i.elem,arguments):b},i.elem=3Da),c=3Df.trim(I(c)).split(" =
");for(k=3D0;k=3D0&&(h=3Dh.slice(0,-1),k=3D!0),h.indexOf(".")>=3D0=
&&(i=3Dh.split("."),h=3Di.shift(),i.sort());if((!e||f.event.customEvent[h=
])&&!f.event.global[h])return;c=3Dtypeof =
c=3D=3D"object"?c[f.expando]?c:new f.Event(h,c):new =
f.Event(h),c.type=3Dh,c.isTrigger=3D!0,c.exclusive=3Dk,c.namespace=3Di.jo=
in("."),c.namespace_re=3Dc.namespace?new =
RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=3Dh.indexOf(":=
")<0?"on"+h:"";if(!e){j=3Df.cache;for(l in =
j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);r=
eturn}c.result=3Db,c.target||(c.target=3De),d=3Dd!=3Dnull?f.makeArray(d):=
[],d.unshift(c),p=3Df.event.special[h]||{};if(p.trigger&&p.trigger.apply(=
e,d)=3D=3D=3D!1)return;r=3D[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isW=
indow(e)){s=3Dp.delegateType||h,m=3DE.test(s+h)?e:e.parentNode,n=3Dnull;f=
or(;m;m=3Dm.parentNode)r.push([m,s]),n=3Dm;n&&n=3D=3D=3De.ownerDocument&&=
r.push([n.defaultView||n.parentWindow||a,s])}for(l=3D0;le&&j.push({elem:this,matches:d.slice=
(e)});for(k=3D0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attr=
Fn[b]=3D!0),C.test(b)&&(f.event.fixHooks[b]=3Df.event.keyHooks),D.test(b)=
&&(f.event.fixHooks[b]=3Df.event.mouseHooks)}),function(){function =
x(a,b,c,e,f,g){for(var h=3D0,i=3De.length;h0){k=3Dj;break}}j=3Dj[a]}e[h]=3Dk}}}function =
w(a,b,c,e,f,g){for(var h=3D0,i=3De.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=3D"sizcache"+(Math.rando=
m()+"").replace(".",""),e=3D0,g=3DObject.prototype.toString,h=3D!1,i=3D!0=
,j=3D/\\/g,k=3D/\r\n/g,l=3D/\W/;[0,0].sort(function(){i=3D!1;return =
0});var m=3Dfunction(b,d,e,f){e=3De||[],d=3Dd||c;var =
h=3Dd;if(d.nodeType!=3D=3D1&&d.nodeType!=3D=3D9)return[];if(!b||typeof =
b!=3D"string")return e;var =
i,j,k,l,n,q,r,t,u=3D!0,v=3Dm.isXML(d),w=3D[],x=3Db;do{a.exec(""),i=3Da.ex=
ec(x);if(i){x=3Di[3],w.push(i[1]);if(i[2]){l=3Di[3];break}}}while(i);if(w=
.length>1&&p.exec(b))if(w.length=3D=3D=3D2&&o.relative[w[0]])j=3Dy(w[0]+w=
[1],d,f);else{j=3Do.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=3D=
w.shift(),o.relative[b]&&(b+=3Dw.shift()),j=3Dy(b,j,f)}else{!f&&w.length>=
1&&d.nodeType=3D=3D=3D9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.=
length-1])&&(n=3Dm.find(w.shift(),d,v),d=3Dn.expr?m.filter(n.expr,n.set)[=
0]:n.set[0]);if(d){n=3Df?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length=3D=
=3D=3D1&&(w[0]=3D=3D=3D"~"||w[0]=3D=3D=3D"+")&&d.parentNode?d.parentNode:=
d,v),j=3Dn.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=3Ds(j):u=3D!1;w=
hile(w.length)q=3Dw.pop(),r=3Dq,o.relative[q]?r=3Dw.pop():q=3D"",r=3D=3Dn=
ull&&(r=3Dd),o.relative[q](k,r,v)}else =
k=3Dw=3D[]}k||(k=3Dj),k||m.error(q||b);if(g.call(k)=3D=3D=3D"[object =
Array]")if(!u)e.push.apply(e,k);else =
if(d&&d.nodeType=3D=3D=3D1)for(t=3D0;k[t]!=3Dnull;t++)k[t]&&(k[t]=3D=3D=3D=
!0||k[t].nodeType=3D=3D=3D1&&m.contains(d,k[t]))&&e.push(j[t]);else =
for(t=3D0;k[t]!=3Dnull;t++)k[t]&&k[t].nodeType=3D=3D=3D1&&e.push(j[t]);el=
se s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return =
e};m.uniqueSort=3Dfunction(a){if(u){h=3Di,a.sort(u);if(h)for(var =
b=3D1;b0},m.find=3Dfunction(a,b,c){var =
d,e,f,g,h,i;if(!a)return[];for(e=3D0,f=3Do.order.length;e":function(a,b){var c,d=3Dtypeof =
b=3D=3D"string",e=3D0,f=3Da.length;if(d&&!l.test(b)){b=3Db.toLowerCase();=
for(;e=3D0)?c||d.push(h):c&&(b[g]=3D!1));return!1},ID:function(a)=
{return a[1].replace(j,"")},TAG:function(a,b){return =
a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]=3D=3D=3D"nth"=
){a[2]||m.error(a[0]),a[2]=3Da[2].replace(/^\+|\s*/g,"");var =
b=3D/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]=3D=3D=3D"even"&&"2n"||a[2]=3D=3D=
=3D"odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=3Db[1]+(b[2]||=
1)-0,a[3]=3Db[3]-0}else a[2]&&m.error(a[0]);a[0]=3De++;return =
a},ATTR:function(a,b,c,d,e,f){var =
g=3Da[1]=3Da[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=3Do.attrMap[g]),a[4=
]=3D(a[4]||a[5]||"").replace(j,""),a[2]=3D=3D=3D"~=3D"&&(a[4]=3D" =
"+a[4]+" ");return =
a},PSEUDO:function(b,c,d,e,f){if(b[1]=3D=3D=3D"not")if((a.exec(b[3])||"")=
.length>1||/^\w/.test(b[3]))b[3]=3Dm(b[3],null,null,c);else{var =
g=3Dm.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else =
if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return =
b},POS:function(a){a.unshift(!0);return =
a}},filters:{enabled:function(a){return =
a.disabled=3D=3D=3D!1&&a.type!=3D=3D"hidden"},disabled:function(a){return=
a.disabled=3D=3D=3D!0},checked:function(a){return =
a.checked=3D=3D=3D!0},selected:function(a){a.parentNode&&a.parentNode.sel=
ectedIndex;return =
a.selected=3D=3D=3D!0},parent:function(a){return!!a.firstChild},empty:fun=
ction(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).lengt=
h},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var=
b=3Da.getAttribute("type"),c=3Da.type;return =
a.nodeName.toLowerCase()=3D=3D=3D"input"&&"text"=3D=3D=3Dc&&(b=3D=3D=3Dc|=
|b=3D=3D=3Dnull)},radio:function(a){return =
a.nodeName.toLowerCase()=3D=3D=3D"input"&&"radio"=3D=3D=3Da.type},checkbo=
x:function(a){return =
a.nodeName.toLowerCase()=3D=3D=3D"input"&&"checkbox"=3D=3D=3Da.type},file=
:function(a){return =
a.nodeName.toLowerCase()=3D=3D=3D"input"&&"file"=3D=3D=3Da.type},password=
:function(a){return =
a.nodeName.toLowerCase()=3D=3D=3D"input"&&"password"=3D=3D=3Da.type},subm=
it:function(a){var =
b=3Da.nodeName.toLowerCase();return(b=3D=3D=3D"input"||b=3D=3D=3D"button"=
)&&"submit"=3D=3D=3Da.type},image:function(a){return =
a.nodeName.toLowerCase()=3D=3D=3D"input"&&"image"=3D=3D=3Da.type},reset:f=
unction(a){var =
b=3Da.nodeName.toLowerCase();return(b=3D=3D=3D"input"||b=3D=3D=3D"button"=
)&&"reset"=3D=3D=3Da.type},button:function(a){var =
b=3Da.nodeName.toLowerCase();return =
b=3D=3D=3D"input"&&"button"=3D=3D=3Da.type||b=3D=3D=3D"button"},input:fun=
ction(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:fu=
nction(a){return =
a=3D=3D=3Da.ownerDocument.activeElement}},setFilters:{first:function(a,b)=
{return b=3D=3D=3D0},last:function(a,b,c,d){return =
b=3D=3D=3Dd.length-1},even:function(a,b){return =
b%2=3D=3D=3D0},odd:function(a,b){return =
b%2=3D=3D=3D1},lt:function(a,b,c){return =
bc[3]-0},nth:function(a,b,c){return =
c[3]-0=3D=3D=3Db},eq:function(a,b,c){return =
c[3]-0=3D=3D=3Db}},filter:{PSEUDO:function(a,b,c,d){var =
e=3Db[1],f=3Do.filters[e];if(f)return =
f(a,c,b,d);if(e=3D=3D=3D"contains")return(a.textContent||a.innerText||n([=
a])||"").indexOf(b[3])>=3D0;if(e=3D=3D=3D"not"){var g=3Db[3];for(var =
h=3D0,i=3Dg.length;h=3D0}},ID:function(a,b){return=
=
a.nodeType=3D=3D=3D1&&a.getAttribute("id")=3D=3D=3Db},TAG:function(a,b){r=
eturn =
b=3D=3D=3D"*"&&a.nodeType=3D=3D=3D1||!!a.nodeName&&a.nodeName.toLowerCase=
()=3D=3D=3Db},CLASS:function(a,b){return(" =
"+(a.className||a.getAttribute("class"))+" =
").indexOf(b)>-1},ATTR:function(a,b){var =
c=3Db[1],d=3Dm.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=3D=
null?a[c]:a.getAttribute(c),e=3Dd+"",f=3Db[2],g=3Db[4];return =
d=3D=3Dnull?f=3D=3D=3D"!=3D":!f&&m.attr?d!=3Dnull:f=3D=3D=3D"=3D"?e=3D=3D=
=3Dg:f=3D=3D=3D"*=3D"?e.indexOf(g)>=3D0:f=3D=3D=3D"~=3D"?(" "+e+" =
").indexOf(g)>=3D0:g?f=3D=3D=3D"!=3D"?e!=3D=3Dg:f=3D=3D=3D"^=3D"?e.indexO=
f(g)=3D=3D=3D0:f=3D=3D=3D"$=3D"?e.substr(e.length-g.length)=3D=3D=3Dg:f=3D=
=3D=3D"|=3D"?e=3D=3D=3Dg||e.substr(0,g.length+1)=3D=3D=3Dg+"-":!1:e&&d!=3D=
=3D!1},POS:function(a,b,c,d){var =
e=3Db[2],f=3Do.setFilters[e];if(f)return =
f(a,c,b,d)}}},p=3Do.match.POS,q=3Dfunction(a,b){return"\\"+(b-0+1)};for(v=
ar r in o.match)o.match[r]=3Dnew =
RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r=
]=3Dnew =
RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q))=
;o.match.globalPOS=3Dp;var =
s=3Dfunction(a,b){a=3DArray.prototype.slice.call(a,0);if(b){b.push.apply(=
b,a);return b}return =
a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].node=
Type}catch(t){s=3Dfunction(a,b){var =
c=3D0,d=3Db||[];if(g.call(a)=3D=3D=3D"[object =
Array]")Array.prototype.push.apply(d,a);else if(typeof =
a.length=3D=3D"number")for(var e=3Da.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.=
find.ID=3Dfunction(a,c,d){if(typeof =
c.getElementById!=3D"undefined"&&!d){var =
e=3Dc.getElementById(a[1]);return e?e.id=3D=3D=3Da[1]||typeof =
e.getAttributeNode!=3D"undefined"&&e.getAttributeNode("id").nodeValue=3D=3D=
=3Da[1]?[e]:b:[]}},o.filter.ID=3Dfunction(a,b){var c=3Dtypeof =
a.getAttributeNode!=3D"undefined"&&a.getAttributeNode("id");return =
a.nodeType=3D=3D=3D1&&c&&c.nodeValue=3D=3D=3Db}),e.removeChild(a),e=3Da=3D=
null}(),function(){var =
a=3Dc.createElement("div");a.appendChild(c.createComment("")),a.getElemen=
tsByTagName("*").length>0&&(o.find.TAG=3Dfunction(a,b){var =
c=3Db.getElementsByTagName(a[1]);if(a[1]=3D=3D=3D"*"){var d=3D[];for(var =
e=3D0;c[e];e++)c[e].nodeType=3D=3D=3D1&&d.push(c[e]);c=3Dd}return =
c}),a.innerHTML=3D" ",a.firstChild&&typeof =
a.firstChild.getAttribute!=3D"undefined"&&a.firstChild.getAttribute("href=
")!=3D=3D"#"&&(o.attrHandle.href=3Dfunction(a){return =
a.getAttribute("href",2)}),a=3Dnull}(),c.querySelectorAll&&function(){var=
a=3Dm,b=3Dc.createElement("div"),d=3D"__sizzle__";b.innerHTML=3D"
";if(!b.querySelectorAll||b.querySelectorAll(".TEST").=
length!=3D=3D0){m=3Dfunction(b,e,f,g){e=3De||c;if(!g&&!m.isXML(e)){var =
h=3D/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType=3D=3D=3D=
1||e.nodeType=3D=3D=3D9)){if(h[1])return =
s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClas=
sName)return =
s(e.getElementsByClassName(h[2]),f)}if(e.nodeType=3D=3D=3D9){if(b=3D=3D=3D=
"body"&&e.body)return s([e.body],f);if(h&&h[3]){var =
i=3De.getElementById(h[3]);if(!i||!i.parentNode)return =
s([],f);if(i.id=3D=3D=3Dh[3])return s([i],f)}try{return =
s(e.querySelectorAll(b),f)}catch(j){}}else =
if(e.nodeType=3D=3D=3D1&&e.nodeName.toLowerCase()!=3D=3D"object"){var =
k=3De,l=3De.getAttribute("id"),n=3Dl||d,p=3De.parentNode,q=3D/^\s*[+~]/.t=
est(b);l?n=3Dn.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=3De.p=
arentNode);try{if(!q||p)return s(e.querySelectorAll("[id=3D'"+n+"'] =
"+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return =
a(b,e,f,g)};for(var e in a)m[e]=3Da[e];b=3Dnull}}(),function(){var =
a=3Dc.documentElement,b=3Da.matchesSelector||a.mozMatchesSelector||a.webk=
itMatchesSelector||a.msMatchesSelector;if(b){var =
d=3D!b.call(c.createElement("div"),"div"),e=3D!1;try{b.call(c.documentEle=
ment,"[test!=3D'']:sizzle")}catch(f){e=3D!0}m.matchesSelector=3Dfunction(=
a,c){c=3Dc.replace(/\=3D\s*([^'"\]]*)\s*\]/g,"=3D'$1']");if(!m.isXML(a))t=
ry{if(e||!o.match.PSEUDO.test(c)&&!/!=3D/.test(c)){var =
f=3Db.call(a,c);if(f||!d||a.document&&a.document.nodeType!=3D=3D11)return=
f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var =
a=3Dc.createElement("div");a.innerHTML=3D"
";if(!!a.getElementsByClassName&&a.getElementsByClas=
sName("e").length!=3D=3D0){a.lastChild.className=3D"e";if(a.getElementsBy=
ClassName("e").length=3D=3D=3D1)return;o.order.splice(1,0,"CLASS"),o.find=
.CLASS=3Dfunction(a,b,c){if(typeof =
b.getElementsByClassName!=3D"undefined"&&!c)return =
b.getElementsByClassName(a[1])},a=3Dnull}}(),c.documentElement.contains?m=
.contains=3Dfunction(a,b){return =
a!=3D=3Db&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocume=
ntPosition?m.contains=3Dfunction(a,b){return!!(a.compareDocumentPosition(=
b)&16)}:m.contains=3Dfunction(){return!1},m.isXML=3Dfunction(a){var =
b=3D(a?a.ownerDocument||a:0).documentElement;return =
b?b.nodeName!=3D=3D"HTML":!1};var y=3Dfunction(a,b,c){var =
d,e=3D[],f=3D"",g=3Db.nodeType?[b]:b;while(d=3Do.match.PSEUDO.exec(a))f+=3D=
d[0],a=3Da.replace(o.match.PSEUDO,"");a=3Do.relative[a]?a+"*":a;for(var =
h=3D0,i=3Dg.length;h0)for(h=3Dg;h=3D0:f.filter(=
a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var =
c=3D[],d,e,g=3Dthis[0];if(f.isArray(a)){var =
h=3D1;while(g&&g.ownerDocument&&g!=3D=3Db){for(d=3D0;d-1:f.find.matchesSelector(g,a)){c.pus=
h(g);break}g=3Dg.parentNode;if(!g||!g.ownerDocument||g=3D=3D=3Db||g.nodeT=
ype=3D=3D=3D11)break}}c=3Dc.length>1?f.unique(c):c;return =
this.pushStack(c,"closest",a)},index:function(a){if(!a)return =
this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof =
a=3D=3D"string")return f.inArray(this[0],f(a));return =
f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=3Dtypeof =
a=3D=3D"string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=3Df.merge(this.=
get(),c);return =
this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return=
this.add(this.prevObject)}}),f.each({parent:function(a){var =
b=3Da.parentNode;return =
b&&b.nodeType!=3D=3D11?b:null},parents:function(a){return =
f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return =
f.dir(a,"parentNode",c)},next:function(a){return =
f.nth(a,2,"nextSibling")},prev:function(a){return =
f.nth(a,2,"previousSibling")},nextAll:function(a){return =
f.dir(a,"nextSibling")},prevAll:function(a){return =
f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return =
f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return =
f.dir(a,"previousSibling",c)},siblings:function(a){return =
f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return =
f.sibling(a.firstChild)},contents:function(a){return =
f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.make=
Array(a.childNodes)}},function(a,b){f.fn[a]=3Dfunction(c,d){var =
e=3Df.map(this,b,c);L.test(a)||(d=3Dc),d&&typeof =
d=3D=3D"string"&&(e=3Df.filter(d,e)),e=3Dthis.length>1&&!R[a]?f.unique(e)=
:e,(this.length>1||N.test(d))&&M.test(a)&&(e=3De.reverse());return =
this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:funct=
ion(a,b,c){c&&(a=3D":not("+a+")");return =
b.length=3D=3D=3D1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matche=
s(a,b)},dir:function(a,c,d){var =
e=3D[],g=3Da[c];while(g&&g.nodeType!=3D=3D9&&(d=3D=3D=3Db||g.nodeType!=3D=
=3D1||!f(g).is(d)))g.nodeType=3D=3D=3D1&&e.push(g),g=3Dg[c];return =
e},nth:function(a,b,c,d){b=3Db||1;var =
e=3D0;for(;a;a=3Da[c])if(a.nodeType=3D=3D=3D1&&++e=3D=3D=3Db)break;return=
a},sibling:function(a,b){var =
c=3D[];for(;a;a=3Da.nextSibling)a.nodeType=3D=3D=3D1&&a!=3D=3Db&&c.push(a=
);return c}});var =
V=3D"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption=
|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summa=
ry|time|video",W=3D/ =
jQuery\d+=3D"(?:\d+|null)"/g,X=3D/^\s+/,Y=3D/<(?!area|br|col|embed|hr|img=
|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=3D/<([\w:]+)/,$=3D/ ]","i"),bd=3D/checked\s*(?:[^=3D]|=3D\s*.checked.=
)/i,be=3D/\/(java|ecma)script/i,bf=3D/^\s*",""],legend:[1,""," "=
],thead:[1,""],tr:[2,"=
"],td:[3,""],col:[2,""],area:[1,""," "],=
_default:[0,"",""]},bh=3DU(c);bg.optgroup=3Dbg.option,bg.tbody=3Dbg.tfoot=
=3Dbg.colgroup=3Dbg.caption=3Dbg.thead,bg.th=3Dbg.td,f.support.htmlSerial=
ize||(bg._default=3D[1,"div","
"]),f.fn.extend({text:function(a=
){return f.access(this,function(a){return =
a=3D=3D=3Db?f.text(this):this.empty().append((this[0]&&this[0].ownerDocum=
ent||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a)=
{if(f.isFunction(a))return =
this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var =
b=3Df(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.inse=
rtBefore(this[0]),b.map(function(){var =
a=3Dthis;while(a.firstChild&&a.firstChild.nodeType=3D=3D=3D1)a=3Da.firstC=
hild;return a}).append(this)}return =
this},wrapInner:function(a){if(f.isFunction(a))return =
this.each(function(b){f(this).wrapInner(a.call(this,b))});return =
this.each(function(){var =
b=3Df(this),c=3Db.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:fu=
nction(a){var b=3Df.isFunction(a);return =
this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:funct=
ion(){return =
this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWit=
h(this.childNodes)}).end()},append:function(){return =
this.domManip(arguments,!0,function(a){this.nodeType=3D=3D=3D1&&this.appe=
ndChild(a)})},prepend:function(){return =
this.domManip(arguments,!0,function(a){this.nodeType=3D=3D=3D1&&this.inse=
rtBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].pare=
ntNode)return =
this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,thi=
s)});if(arguments.length){var a=3Df=0A=
.clean(arguments);a.push.apply(a,this.toArray());return =
this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[=
0].parentNode)return =
this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,thi=
s.nextSibling)});if(arguments.length){var =
a=3Dthis.pushStack(this,"after",arguments);a.push.apply(a,f.clean(argumen=
ts));return a}},remove:function(a,b){for(var =
c=3D0,d;(d=3Dthis[c])!=3Dnull;c++)if(!a||f.filter(a,[d]).length)!b&&d.nod=
eType=3D=3D=3D1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d=
])),d.parentNode&&d.parentNode.removeChild(d);return =
this},empty:function(){for(var =
a=3D0,b;(b=3Dthis[a])!=3Dnull;a++){b.nodeType=3D=3D=3D1&&f.cleanData(b.ge=
tElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}r=
eturn =
this},clone:function(a,b){a=3Da=3D=3Dnull?!1:a,b=3Db=3D=3Dnull?a:b;return=
this.map(function(){return f.clone(this,a,b)})},html:function(a){return =
f.access(this,function(a){var =
c=3Dthis[0]||{},d=3D0,e=3Dthis.length;if(a=3D=3D=3Db)return =
c.nodeType=3D=3D=3D1?c.innerHTML.replace(W,""):null;if(typeof =
a=3D=3D"string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&=
!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=3Da.replace(Y,"<$1>$2>");=
try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=3Dd.concat(j)}return =
this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var =
d,e,g,h=3Df.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">=
")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneC=
hecked)&&(a.nodeType=3D=3D=3D1||a.nodeType=3D=3D=3D11)&&!f.isXMLDoc(a)){b=
k(a,h),d=3Dbl(a),e=3Dbl(h);for(g=3D0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){b=
j(a,h);if(c){d=3Dbl(a),e=3Dbl(h);for(g=3D0;d[g];++g)bj(d[g],e[g])}}d=3De=3D=
null;return h},clean:function(a,b,d,e){var g,h,i,j=3D[];b=3Db||c,typeof =
b.createElement=3D=3D"undefined"&&(b=3Db.ownerDocument||b[0]&&b[0].ownerD=
ocument||c);for(var k=3D0,l;(l=3Da[k])!=3Dnull;k++){typeof =
l=3D=3D"number"&&(l+=3D"");if(!l)continue;if(typeof =
l=3D=3D"string")if(!_.test(l))l=3Db.createTextNode(l);else{l=3Dl.replace(=
Y,"<$1>$2>");var =
m=3D(Z.exec(l)||["",""])[1].toLowerCase(),n=3Dbg[m]||bg._default,o=3Dn[0]=
,p=3Db.createElement("div"),q=3Dbh.childNodes,r;b=3D=3D=3Dc?bh.appendChil=
d(p):U(b).appendChild(p),p.innerHTML=3Dn[1]+l+n[2];while(o--)p=3Dp.lastCh=
ild;if(!f.support.tbody){var =
s=3D$.test(l),t=3Dm=3D=3D=3D"table"&&!s?p.firstChild&&p.firstChild.childN=
odes:n[1]=3D=3D=3D""&&!s?p.childNodes:[];for(i=3Dt.length-1;i>=3D0=
;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.r=
emoveChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(=
b.createTextNode(X.exec(l)[0]),p.firstChild),l=3Dp.childNodes,p&&(p.paren=
tNode.removeChild(p),q.length>0&&(r=3Dq[q.length-1],r&&r.parentNode&&r.pa=
rentNode.removeChild(r)))}var =
u;if(!f.support.appendChecked)if(l[0]&&typeof =
(u=3Dl.length)=3D=3D"number")for(i=3D0;i1)},f.extend({c=
ssHooks:{opacity:{get:function(a,b){if(b){var c=3Dby(a,"opacity");return =
c=3D=3D=3D""?"1":c}return =
a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,=
opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.su=
pport.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a=
.nodeType!=3D=3D3&&a.nodeType!=3D=3D8&&!!a.style){var =
g,h,i=3Df.camelCase(c),j=3Da.style,k=3Df.cssHooks[i];c=3Df.cssProps[i]||i=
;if(d=3D=3D=3Db){if(k&&"get"in k&&(g=3Dk.get(a,!1,e))!=3D=3Db)return =
g;return j[c]}h=3Dtypeof =
d,h=3D=3D=3D"string"&&(g=3Dbu.exec(d))&&(d=3D+(g[1]+1)*+g[2]+parseFloat(f=
.css(a,c)),h=3D"number");if(d=3D=3Dnull||h=3D=3D=3D"number"&&isNaN(d))ret=
urn;h=3D=3D=3D"number"&&!f.cssNumber[i]&&(d+=3D"px");if(!k||!("set"in =
k)||(d=3Dk.set(a,d))!=3D=3Db)try{j[c]=3Dd}catch(l){}}},css:function(a,c,d=
){var =
e,g;c=3Df.camelCase(c),g=3Df.cssHooks[c],c=3Df.cssProps[c]||c,c=3D=3D=3D"=
cssFloat"&&(c=3D"float");if(g&&"get"in =
g&&(e=3Dg.get(a,!0,d))!=3D=3Db)return e;if(by)return =
by(a,c)},swap:function(a,b,c){var d=3D{},e,f;for(f in =
b)d[f]=3Da.style[f],a.style[f]=3Db[f];e=3Dc.call(a);for(f in =
b)a.style[f]=3Dd[f];return =
e}}),f.curCSS=3Df.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=3D=
function(a,b){var =
c,d,e,g,h=3Da.style;b=3Db.replace(br,"-$1").toLowerCase(),(d=3Da.ownerDoc=
ument.defaultView)&&(e=3Dd.getComputedStyle(a,null))&&(c=3De.getPropertyV=
alue(b),c=3D=3D=3D""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=3D=
f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=3Dh.=
width,h.width=3Dc,c=3De.width,h.width=3Dg);return =
c}),c.documentElement.currentStyle&&(bA=3Dfunction(a,b){var =
c,d,e,f=3Da.currentStyle&&a.currentStyle[b],g=3Da.style;f=3D=3Dnull&&g&&(=
e=3Dg[b])&&(f=3De),bt.test(f)&&(c=3Dg.left,d=3Da.runtimeStyle&&a.runtimeS=
tyle.left,d&&(a.runtimeStyle.left=3Da.currentStyle.left),g.left=3Db=3D=3D=
=3D"fontSize"?"1em":f,f=3Dg.pixelLeft+"px",g.left=3Dc,d&&(a.runtimeStyle.=
left=3Dd));return =
f=3D=3D=3D""?"auto":f}),by=3Dbz||bA,f.each(["height","width"],function(a,=
b){f.cssHooks[b]=3D{get:function(a,c,d){if(c)return =
a.offsetWidth!=3D=3D0?bB(a,b,d):f.swap(a,bw,function(){return =
bB(a,b,d)})},set:function(a,b){return =
bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity=3D{get:fun=
ction(a,b){return =
bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?par=
seFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var =
c=3Da.style,d=3Da.currentStyle,e=3Df.isNumeric(b)?"alpha(opacity=3D"+b*10=
0+")":"",g=3Dd&&d.filter||c.filter||"";c.zoom=3D1;if(b>=3D1&&f.trim(g.rep=
lace(bp,""))=3D=3D=3D""){c.removeAttribute("filter");if(d&&!d.filter)retu=
rn}c.filter=3Dbp.test(g)?g.replace(bp,e):g+" =
"+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRigh=
t=3D{get:function(a,b){return =
f.swap(a,{display:"inline-block"},function(){return =
b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&=
&(f.expr.filters.hidden=3Dfunction(a){var =
b=3Da.offsetWidth,c=3Da.offsetHeight;return =
b=3D=3D=3D0&&c=3D=3D=3D0||!f.support.reliableHiddenOffsets&&(a.style&&a.s=
tyle.display||f.css(a,"display"))=3D=3D=3D"none"},f.expr.filters.visible=3D=
function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"=
",border:"Width"},function(a,b){f.cssHooks[a+b]=3D{expand:function(c){var=
d,e=3Dtypeof c=3D=3D"string"?c.split(" =
"):[c],f=3D{};for(d=3D0;d<4;d++)f[a+bx[d]+b]=3De[d]||e[d-2]||e[0];return =
f}}});var =
bC=3D/%20/g,bD=3D/\[\]$/,bE=3D/\r?\n/g,bF=3D/#.*$/,bG=3D/^(.*?):[ =
\t]*([^\r\n]*)\r?$/mg,bH=3D/^(?:color|date|datetime|datetime-local|email|=
hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=3D=
/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=3D/^(?:G=
ET|HEAD)$/,bK=3D/^\/\//,bL=3D/\?/,bM=3D/',0)!=3D-1){clearInterval(parent.=
frames['ekran'].Interval);parent.frames['ekran'].refreshing=3Dfalse;var =
title_params=3D(params=3D=3D'')?'?page=3Dfront':params+'&page=3Dfront';pa=
rent.frames['title'].location.href=3D'/chatbox/chatbox_title.forum'+title=
_params;parent.frames['sender'].location.href=3D'/chatbox/messenger_send.=
forum'+title_params}else{if(parent.frames['ekran'].refreshing=3D=3Dfalse)=
{parent.frames['ekran'].Interval=3DsetInterval('parent.frames[\'ekran\'].=
refresh_chatbox()',8000);parent.frames['ekran'].refreshing=3Dtrue}}}};htt=
p_request.open('GET','/chatbox/generate_messages.forum'+params,true);http=
_request.send(null)}function ajax_submit_chatbox(params){var =
data=3D'&nick=3D'+js_urlencode(document.post.nick.value);data+=3D'&sent=3D=
'+js_urlencode(document.post.sent.value);data+=3D'&sbold=3D'+document.pos=
t.sbold.value;data+=3D'&sitalic=3D'+document.post.sitalic.value;data+=3D'=
&sunderline=3D'+document.post.sunderline.value;data+=3D'&sstrike=3D'+docu=
ment.post.sstrike.value;data+=3D'&scolor=3D'+document.post.scolor.value;i=
f(document.post.sent.value=3D=3D'/banlist'){window.open('/chatbox/chatbox=
_banlist.forum'+params,'color','toolbar=3Dno,menubar=3Dno,personalbar=3Dn=
o,width=3D450,height=3D300,scrollbars=3Dauto,resizable=3Dyes');return =
false}if(window.XMLHttpRequest){var http_request_submit=3Dnew =
XMLHttpRequest()}else if(window.ActiveXObject){var =
http_request_submit=3Dnew =
ActiveXObject("Microsoft.XMLHTTP")}http_request_submit.onreadystatechange=
=3Dfunction(){if(http_request_submit.readyState=3D=3D4&&http_request_subm=
it.status=3D=3D200){ajax_refresh_chatbox(params);ajax_refresh_chatterlist=
(params)}};http_request_submit.open('POST','/chatbox/generate_messages.fo=
rum'+params,true);http_request_submit.setRequestHeader('Content-Type','ap=
plication/x-www-form-urlencoded;');http_request_submit.send(data)}functio=
n ajax_refresh_chatterlist(params){if(window.XMLHttpRequest){var =
http_request_list=3Dnew XMLHttpRequest()}else =
if(window.ActiveXObject){var http_request_list=3Dnew =
ActiveXObject("Microsoft.XMLHTTP")}http_request_list.onreadystatechange=3D=
function(){if(http_request_list.readyState=3D=3D4&&http_request_list.stat=
us=3D=3D200){var =
parsed_text=3Dhttp_request_list.responseText;if(parent.frames['who'].docu=
ment.getElementById('chatter_rows')){parent.frames['who'].document.getEle=
mentById('chatter_rows').innerHTML=3Dparsed_text}}};http_request_list.ope=
n('GET','/chatbox/generate_chatterlist.forum'+params,true);http_request_l=
ist.send(null)}function =
insert_chatboxsmilie(smilie_code){opener.document.getElementById('message=
').value=3Dopener.document.getElementById('message').value+smilie_code;op=
ener.document.post.message.focus();window.close()}function =
change_display_by_icon(element,element_id,content_more,content_less,displ=
ay_special){element.className=3D(element.className=3D=3D"icon_less")?"ico=
n_more":"icon_less";element.style.background=3D'url(\''+((element.classNa=
me=3D=3D"icon_less")?'http://illiweb.com/fa/i/tabs_less.gif':'http://illi=
web.com/fa/i/tabs_more.gif')+'\') =
no-repeat';if(content_more||content_less){element.innerHTML=3D(element.cl=
assName=3D=3D"icon_less")?content_less:content_more}if(!display_special){=
display_special=3D'block'}document.getElementById(element_id).style.displ=
ay=3D((element.className=3D=3D"icon_more")?'none':display_special);my_set=
cookie('display_sql_info',element.className)}function =
switchuploadaddress(file){if(file){document.getElementById('upfile').styl=
e.display=3D'inline';document.getElementById('upurl').style.display=3D'no=
ne'}else{document.getElementById('upfile').style.display=3D'none';documen=
t.getElementById('upurl').style.display=3D'inline'}}function =
do_mark(mode,type){if(type=3D=3D2){if(mode=3D=3D7){for(i=3D0;i =
',false)}else{parent.vB_Editor['vB_Editor_001'].insert_text(smilie_code+'=
',false)}}function =
unban_user(user,id){opener.fetch_object('message').value=3D'/unban =
'+user;opener.submitmsg();document.getElementById(id).style.display=3D'no=
ne'}function =
checkmodcp(action){field=3Ddocument.modcp.elements.length;switch(action){=
case"select":for(i=3D0;i1){for(var =
i=3D0;i'+''+google_ads[i].line1+' '+''+google_ads[i].line2+' '+''+google_ads[i].line3+' '+''+google_ads[i].visible_url+'
'}}else =
if(google_num_ads=3D=3D1){var i=3D0;narrowAds+=3D''}if(google=
_num_ads>0){if(narrowAds!=3D""){narrowAds=3DnarrowAds+''+' '}}if(document.getElementById("narrow_ad_unit")){document=
.getElementById("narrow_ad_unit").innerHTML=3DnarrowAds}}function =
set_solved(input,str){if(input){var title=3Dinput.value;var reg=3Dnew =
RegExp("\\"+str,"g");input.value=3D(reg.test(title))?title.replace(reg,''=
):str+title}}function bbstyle_table(){var =
nb_row=3Ddocument.getElementById('table_gui_lines').value;var =
nb_cols=3Ddocument.getElementById('table_gui_cols').value;if(nb_row>0&&nb=
_cols>0){var =
txtarea=3Ddocument.post.message;if(nb_row>100){nb_row=3D100}if(nb_cols>10=
0){nb_cols=3D100}var content=3D"[table border=3D\"1\"]\n";for(var =
i=3D0;i=3D4)&&=
is_ie&&is_win){theSelection=3Ddocument.selection.createRange().text;if(th=
eSelection){document.selection.createRange().text=3Dcontent;txtarea.focus=
();theSelection=3D'';return}else{txtarea.value+=3Dcontent}}else{var =
selLength=3Dtxtarea.textLength;var selStart=3Dtxtarea.selectionStart;var =
selEnd=3Dtxtarea.selectionEnd;if(selEnd=3D=3D1||selEnd=3D=3D2)selEnd=3Dse=
lLength;var s1=3D(txtarea.value).substring(0,selStart);var =
s2=3D(txtarea.value).substring(selStart,selEnd);var =
s3=3D(txtarea.value).substring(selEnd,selLength);txtarea.value=3Ds1+conte=
nt+s3}txtarea.focus();document.getElementById('table_gui_lines').value=3D=
'';document.getElementById('table_gui_cols').value=3D'';return}}function =
display_upload_servimg(button,account,id,f){var =
container=3Ddocument.getElementById('servimg_upload_gui');if(!document.ge=
tElementById('obj_servimg')){container.innerHTML=3D'
'}var =
div=3Ddocument.getElementById('servimg_upload_gui');var =
visible=3Ddiv.style.visibility;if(visible=3D=3D'hidden'){var =
window_w=3D(document.body)?document.body.clientWidth:window.innerWidth;va=
r cd=3DFindXY(button);var h=3Dbutton.offsetHeight;var =
i=3D0;while(i'}var =
div=3Ddocument.getElementById('servimg_upload_gui');var =
visible=3Ddiv.style.visibility;if(visible=3D=3D'hidden'){var =
window_w=3D(document.body)?document.body.clientWidth:window.innerWidth;va=
r cd=3DFindXY(button);var h=3Dbutton.offsetHeight;var =
i=3D0;while(igw_window.offsetHeight){gw_window.style.top=3DcurY-10-gw_window=
.offsetHeight+"px"}else{gw_window.style.top=3DcurY+offsety+distY-gw_windo=
w.offsetHeight+"px"}}else{gw_window.style.top=3DcurY+offsety+"px"}}var =
elem;var divHeight;var mouseX;var mouseY;function returnNumber(str){var =
result=3D'';for(i=3D0;i=3D0&&(str.c=
harAt(i)*1)<=3D9)result+=3Dstr.charAt(i);else return result*1}return =
result*1}function resizeElement(event,id){var el;var =
x,y;elem=3Ddocument.getElementById(id);if(document.all){mouseX=3Dwindow.e=
vent.clientX+document.body.scrollLeft;mouseY=3Dwindow.event.clientY+docum=
ent.body.scrollTop}else{mouseX=3Devent.clientX+window.scrollX;mouseY=3Dev=
ent.clientY+window.scrollY}divHeight=3Delem.style.height;if(isNaN(divHeig=
ht))divHeight=3DreturnNumber(divHeight);if(document.all){document.attachE=
vent("onmousemove",resize);document.attachEvent("onmouseup",stopResize);w=
indow.event.cancelBubble=3Dtrue;window.event.returnValue=3Dfalse}else{doc=
ument.addEventListener("mousemove",resize,true);document.addEventListener=
("mouseup",stopResize,true);event.preventDefault()}}function =
resize(event){var x,y;var =
minHeight=3D100;if(document.all){x=3Dwindow.event.clientX+document.body.s=
crollLeft;y=3Dwindow.event.clientY+document.body.scrollTop}else{x=3Devent=
.clientX+window.scrollX;y=3Devent.clientY+window.scrollY}if(divHeight+y-m=
ouseY'+html+'')}function =
togglePostMultiQuote(obj){var =
toggle=3Dobj.src=3D=3Dmultiquote_img_on;obj.src=3Dtoggle?multiquote_img_o=
ff:multiquote_img_on;my_setcookie(obj.id,toggle?'':'1',true);return =
false}function initPostMultiQuote(){var cookie;var =
obj;cookies=3Ddocument.cookie.split('; =
');for(i=3D0,j=3Dcookies.length;i0){logInPopUpLeft=3DMath.round(($(wi=
ndow).width()-logInPopUpWidth-16)/2);logInPopUpTop=3DMath.round(($(window=
).height()-logInPopUpHeight-16)/2);$('#login_popup').css({left:logInPopUp=
Left+'px',top:logInPopUpTop+'px',width:logInPopUpWidth+'px',height:logInP=
opUpHeight+'px'});if(logInBackgroundClass){$('#login_popup_background').a=
ddClass(logInBackgroundClass).css('padding',0)}var =
logInBackgroundPadding=3DparseInt($('#login_popup_background').css('paddi=
ng-top')||$('#login_popup').css('padding-top'))*2;$('#login_popup_backgro=
und').css({width:(logInPopUpWidth-logInBackgroundPadding)+'px',height:(lo=
gInPopUpHeight-logInBackgroundPadding)+'px'});$('#login_popup_iframe').cs=
s('display','none');$('#login_popup_content').css('display','block');$('#=
login_popup_close').click(function(){my_setcookie('login_popup_closed','1=
',true);$('#login_popup').fadeOut('normal');return =
false});$('#login_popup').fadeIn('slow');runLogInPopUp()}});function =
resize_images(o){if($(document.body).data('image_resize')){o.delayed=3Dtr=
ue;$(document.body).one('resized',o,function(e){resize_images(e.data)})}e=
lse{instance=3D$(document.body).data('current_resize_instance')||0;$(docu=
ment.body).data('current_resize_instance',++instance);$(document.body).da=
ta('image_resize',true);$(document.body).addClass('resize_process');var =
imgs=3D$(o.selector?o.selector+' img':'.postbody =
img').not('.signature_div img').not('.attachbox =
img').addClass('resize_img');resize_div=3Ddocument.createElement('span');=
resize_border_div=3Ddocument.createElement('span');resize_content_div=3Dd=
ocument.createElement('span');enlarge_a=3Ddocument.createElement('a');res=
ize_a=3Ddocument.createElement('a');fullsize_a=3Ddocument.createElement('=
a');resize_filler_div=3Ddocument.createElement('span');$(resize_div).clic=
k(function(e){if(!$(e.target).hasClass('enlarge')&&!$(e.target).hasClass(=
'resize')&&!$(e.target).hasClass('fullsize')&&!$(e.target).hasClass('resi=
zebox'))return false}).addClass('resizebox gensmall =
clearfix');$(resize_border_div).addClass('resize_border =
clearfix');$(resize_div).append(resize_border_div);$(resize_content_div).=
addClass('resize_content =
clearfix');$(resize_border_div).append(resize_content_div);enlarge_a.href=
=3D'#';resize_a.href=3D'#';fullsize_a.href=3D'#';$(enlarge_a).addClass('e=
nlarge').text("Enlarge this =
image");$(resize_a).addClass('resize').text("Reduce this =
image");$(fullsize_a).addClass('fullsize').text("Click to see =
fullsize");$(resize_filler_div).addClass('resize_filler').text(' =
');$(resize_content_div).append(enlarge_a);$(resize_content_div).append(r=
esize_a);$(resize_content_div).append(resize_filler_div);$(resize_content=
_div).append(fullsize_a);tmp=3DjQuery.makeArray(imgs);refs=3D{'imgs':tmp,=
'resize_div':resize_div,'max_width':o.max_width,'max_height':o.max_height=
};delete(resize_div);$(document.body).data('refs_'+instance,refs);if(inst=
ance=3D=3D1){fn=3Dfunction(e,instance){current_instance=3Dinstance||$(doc=
ument.body).data('current_resize_instance');skip_post=3Dfalse;var =
refs=3D$(document.body).data('refs_'+current_instance);index=3DjQuery.inA=
rray(e.target,refs.imgs);img_el=3De.target;var =
img=3D$(img_el);if(index!=3D-1&&!$(document.body).data('img_'+current_ins=
tance+'_'+index)&&!img.data('data')){img_style=3Dimg_el.style&&(img_el.st=
yle.width||img_el.style.height)?{width:parseInt(img_el.style.width)||fals=
e,height:parseInt(img_el.style.height)||false}:false;if(!img_style){img.a=
ttr('style','display:inline')}img_width=3Dimg_style.width||img_el.width;i=
mg_height=3Dimg_style.height||img_el.height;if((img_width=3D=3D0||img_hei=
ght=3D=3D0)&&($(document.body).data('img_'+current_instance+'_'+index+'_c=
ount')||0)<10){$(document.body).data('img_'+current_instance+'_'+index+'_=
count',($(document.body).data('img_'+current_instance+'_'+index+'_count')=
||0)+1);window.setTimeout("$($(document.body).data('refs_"+current_instan=
ce+"').imgs["+index+"]).trigger('load',["+current_instance+"]);",100);ski=
p_post=3Dtrue}if((img_width>refs.max_width&&refs.max_width!=3D0)||(img_he=
ight>refs.max_height&&refs.max_height!=3D0)){img.removeAttr('style');$(do=
cument.body).data('img_'+current_instance+'_'+index,true);var =
resize_div=3D$(refs.resize_div).clone(true);img_el.parentNode.insertBefor=
e(document.createElement('br'),img_el);img_el.parentNode.insertBefore($(r=
esize_div).get(0),img_el);img_el.parentNode.insertBefore(document.createE=
lement('br'),img_el);resize_div.data('img_ref',img);resize_div.attr('styl=
e','display:block');max_width=3Ddocument.defaultView?parseInt(document.de=
faultView.getComputedStyle(resize_div.get(0),"").getPropertyValue("width"=
)):resize_div.get(0).offsetWidth;resize_div.removeAttr('style');if(img_wi=
dth>max_width){resize_div.addClass('showfull')}new_width=3Dimg_width*((re=
fs.max_width!=3D0&&(refs.max_height=3D=3D0||img_width/img_height>refs.max=
_width/ refs.max_height ) ) ? =
refs.max_width/img_width:refs.max_height/img_height);img_el.width=3Dnew_w=
idth;data=3D{'width':img_width,'resize_width':new_width,'max_sized':(img_=
width>max_width)};if(img_style){data.height=3Dimg_height;data.resize_heig=
ht=3Dnew_width*img_height/img_width;img_el.height=3Ddata.resize_height}im=
g.data('data',data);delete(data);resize_div.attr('style','width:'+new_wid=
th+'px');delete(max_width);delete(new_width)}else =
if(!skip_post){$(document.body).data('img_'+current_instance+'_'+index,tr=
ue);img.removeClass('resize_img')}delete(img_width);delete(img_height);de=
lete(img_style)}delete(img_el);delete(index)};$(document.body).bind('clic=
k',function(e){switch(true){case =
$(e.target).hasClass('enlarge'):resize_div=3D$(e.target).parents('span.re=
sizebox');if(resize_div.length){var =
img=3D$(resize_div.data('img_ref'));var =
img_data=3Dimg.data('data');resize_div.attr('style','display:block');resi=
ze_width=3Dresize_div.width();img.removeAttr('width');img_width=3Dimg_dat=
a.width;if(resize_width';content+=3D' ';content+=3D'=
';$("#FM_widget_share").append(conten=
t)}$(function(){$('.blank =
a').attr('target','_blank');if(document.getElementById("FM_widget_partner=
s")!=3Dnull){var =
content=3D'';content+=3D"";if(content!=3D''){$("#FM_widget_partners").app=
end(content)}}if(document.getElementById("FM_widget_share")!=3Dnull){FM_w=
idget_share()}});var =
FA=3D(function(FA){FA.Lang=3D{'Image_enlarge':"Enlarge this =
image",'Click_to_resize':"Reduce this =
image",'Click_to_see_fullsize':"Click to see fullsize"};return =
FA}(FA||{}));
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illiweb.com/rsc/97/frm/invision.js
function initCategories(){var id;cookies=3Ddocument.cookie.split('; =
');for(var =
i=3D0;i\x3c/script>');this.e=3D!0;window.GA_jstiming&&window.GA_js=
timing.Timer&&=0A=
(window.GA_jstiming.load.name=3D"load",window.GA_jstiming.load.tick("star=
t"))}};window.GS_googleServiceIds_||(window.GS_googleServiceIds_=3D{});})=
()=0A=
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illiweb.com/rsc/97/frm/jquery/cookie/jquery.cookie.js
jQuery.cookie=3Dfunction(name,value,options){if(typeof =
value!=3D'undefined'){options=3Doptions||{};if(value=3D=3D=3Dnull){value=3D=
'';options=3D$.extend({},options);options.expires=3D-1}var =
expires=3D'';if(options.expires&&(typeof =
options.expires=3D=3D'number'||options.expires.toUTCString)){var =
date;if(typeof options.expires=3D=3D'number'){date=3Dnew =
Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000))}else{=
date=3Doptions.expires}expires=3D'; expires=3D'+date.toUTCString()}var =
path=3Doptions.path?'; path=3D'+(options.path):'';var =
domain=3Doptions.domain?'; domain=3D'+(options.domain):'';var =
secure=3Doptions.secure?'; =
secure':'';document.cookie=3D[name,'=3D',encodeURIComponent(value),expire=
s,path,domain,secure].join('')}else{var =
cookieValue=3Dnull;if(document.cookie&&document.cookie!=3D''){var =
cookies=3Ddocument.cookie.split(';');for(var =
i=3D0;i' +=0A=
'' +=0A=
'' +=0A=
'' +=0A=
' ' +=0A=
' ' +=0A=
'' +=0A=
'' +=0A=
'',=0A=
=0A=
toolbarButton: '{dispName}
',=0A=
=0A=
emoticon: ' ',=0A=
=0A=
fontOpt: '{font} ',=0A=
=0A=
sizeOpt: '{size} ',=0A=
=0A=
pastetext: '{label} ' +=0A=
'
' +=0A=
'
',=0A=
=0A=
table: '{rows}
' +=0A=
'{cols}
' +=0A=
'
',=0A=
=0A=
image: '{url}
' +=0A=
'{width}
' +=0A=
'{height}
' +=0A=
'
',=0A=
=0A=
email: '{label}
' +=0A=
'
',=0A=
=0A=
link: '{url}
' +=0A=
'{desc}
' +=0A=
'
',=0A=
=0A=
youtubeMenu: '{label}
',=0A=
=0A=
youtube: ''=0A=
};=0A=
=0A=
/**=0A=
* Replaces any params in a template with the passed params.
=0A=
*=0A=
* If createHTML is passed it will use jQuery to create the HTML. The=0A=
* same as doing: $(editor.tmpl("html", {params...}));
=0A=
*=0A=
* @param {string} templateName=0A=
* @param {Object} params=0A=
* @param {Boolean} createHTML=0A=
* @private=0A=
*/=0A=
var _tmpl =3D function(name, params, createHTML) {=0A=
var template =3D _templates[name];=0A=
=0A=
$.each(params, function(name, val) {=0A=
template =3D template.replace(new RegExp('\\{' + name + '\\}', 'g'), =
val);=0A=
});=0A=
=0A=
if(createHTML)=0A=
template =3D $(template);=0A=
=0A=
return template;=0A=
};=0A=
=0A=
/**=0A=
* SCEditor - A lightweight WYSIWYG editor=0A=
*=0A=
* @param {Element} el The textarea to be converted=0A=
* @return {Object} options=0A=
* @class sceditor=0A=
* @name jQuery.sceditor=0A=
*/=0A=
$.sceditor =3D function (el, options) {=0A=
/**=0A=
* Alias of this=0A=
* @private=0A=
*/=0A=
var base =3D this;=0A=
=0A=
/**=0A=
* The textarea element being replaced=0A=
* @private=0A=
*/=0A=
var original =3D el.get ? el.get(0) : el;=0A=
var $original =3D $(original);=0A=
=0A=
/**=0A=
* The div which contains the editor and toolbar=0A=
* @private=0A=
*/=0A=
var $editorContainer;=0A=
=0A=
/**=0A=
* The editors toolbar=0A=
* @private=0A=
*/=0A=
var $toolbar;=0A=
=0A=
/**=0A=
* The editors iframe which should be in design mode=0A=
* @private=0A=
*/=0A=
var $wysiwygEditor;=0A=
var wysiwygEditor;=0A=
=0A=
/**=0A=
* The WYSIWYG editors body element=0A=
* @private=0A=
*/=0A=
var $wysiwygBody;=0A=
=0A=
/**=0A=
* The WYSIWYG editors document=0A=
* @private=0A=
*/=0A=
var $wysiwygDoc;=0A=
=0A=
/**=0A=
* The editors textarea for viewing source=0A=
* @private=0A=
*/=0A=
var $sourceEditor;=0A=
var sourceEditor;=0A=
=0A=
/**=0A=
* The current dropdown=0A=
* @private=0A=
*/=0A=
var $dropdown;=0A=
=0A=
/**=0A=
* Array of all the commands key press functions=0A=
* @private=0A=
* @type {Array}=0A=
*/=0A=
var keyPressFuncs =3D [];=0A=
=0A=
/**=0A=
* Store the last cursor position. Needed for IE because it forgets=0A=
* @private=0A=
*/=0A=
var lastRange;=0A=
=0A=
/**=0A=
* The editors locale=0A=
* @private=0A=
*/=0A=
var locale;=0A=
=0A=
/**=0A=
* Stores a cache of preloaded images=0A=
* @private=0A=
* @type {Array}=0A=
*/=0A=
var preLoadCache =3D [];=0A=
=0A=
/**=0A=
* The editors rangeHelper instance=0A=
* @type {jQuery.sceditor.rangeHelper}=0A=
* @private=0A=
*/=0A=
var rangeHelper;=0A=
=0A=
/**=0A=
* Tags which require the new line fix=0A=
* @type {Array}=0A=
* @private=0A=
*/=0A=
var requireNewLineFix =3D [];=0A=
=0A=
/**=0A=
* An array of button state handlers=0A=
* @type {Array}=0A=
* @private=0A=
*/=0A=
var btnStateHandlers =3D [];=0A=
=0A=
/**=0A=
* Element which gets focused to blur the editor.=0A=
*=0A=
* This will be null until blur() is called.=0A=
* @type {HTMLElement}=0A=
* @private=0A=
*/=0A=
var $blurElm;=0A=
=0A=
/**=0A=
* Plugin manager instance=0A=
* @type {jQuery.sceditor.PluginManager}=0A=
* @private=0A=
*/=0A=
var pluginManager;=0A=
=0A=
/**=0A=
* The current node containing the selection/caret=0A=
* @type {Node}=0A=
* @private=0A=
*/=0A=
var currentNode;=0A=
=0A=
/**=0A=
* The current node selection/caret=0A=
* @type {Object}=0A=
* @private=0A=
*/=0A=
var currentSelection;=0A=
=0A=
/**=0A=
* Used to make sure only 1 selection changed check is called every =
100ms.=0A=
* Helps improve performance as it is checked a lot.=0A=
* @type {Boolean}=0A=
* @private=0A=
*/=0A=
var isSelectionCheckPending;=0A=
=0A=
/**=0A=
* If content is required (equivalent to the HTML5 required attribute)=0A=
* @type {Boolean}=0A=
* @private=0A=
*/=0A=
var isRequired;=0A=
=0A=
/**=0A=
* The inline CSS style element. Will be undefined until css() is =
called=0A=
* for the first time.=0A=
* @type {HTMLElement}=0A=
* @private=0A=
*/=0A=
var inlineCss;=0A=
=0A=
/**=0A=
* Object containing a list of shortcut handlers=0A=
* @type {Object}=0A=
* @private=0A=
*/=0A=
var shortcutHandlers =3D {};=0A=
=0A=
/**=0A=
* Private functions=0A=
* @private=0A=
*/=0A=
var init,=0A=
replaceEmoticons,=0A=
handleCommand,=0A=
saveRange,=0A=
initEditor,=0A=
initPlugins,=0A=
initLocale,=0A=
initToolBar,=0A=
initOptions,=0A=
initEvents,=0A=
initCommands,=0A=
initResize,=0A=
initEmoticons,=0A=
getWysiwygDoc,=0A=
handlePasteEvt,=0A=
handlePasteData,=0A=
handleKeyDown,=0A=
handleKeyPress,=0A=
handleFormReset,=0A=
handleMouseDown,=0A=
handleEvent,=0A=
handleDocumentClick,=0A=
handleWindowResize,=0A=
updateToolBar,=0A=
updateActiveButtons,=0A=
sourceEditorSelectedText,=0A=
appendNewLine,=0A=
checkSelectionChanged,=0A=
checkNodeChanged,=0A=
autofocus,=0A=
emoticonsKeyPress;=0A=
=0A=
/**=0A=
* All the commands supported by the editor=0A=
* @name commands=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.commands =3D $.extend(true, {}, (options.commands || =
$.sceditor.commands));=0A=
=0A=
/**=0A=
* Options for this editor instance=0A=
* @name opts=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.opts =3D options =3D $.extend({}, $.sceditor.defaultOptions, =
options);=0A=
=0A=
=0A=
/**=0A=
* Creates the editor iframe and textarea=0A=
* @private=0A=
*/=0A=
init =3D function () {=0A=
$original.data("sceditor", base);=0A=
=0A=
// Clone any objects in options=0A=
$.each(options, function(key, val) {=0A=
if($.isPlainObject(val))=0A=
options[key] =3D $.extend(true, {}, val);=0A=
});=0A=
=0A=
// Load locale=0A=
if(options.locale && options.locale !=3D=3D "en")=0A=
initLocale();=0A=
=0A=
$editorContainer =3D $('
')=0A=
.insertAfter($original)=0A=
.css('z-index', options.zIndex);=0A=
=0A=
// Add IE version to the container to allow IE specific CSS=0A=
// fixes without using CSS hacks or conditional comments=0A=
if($.sceditor.ie)=0A=
$editorContainer.addClass('ie ie' + $.sceditor.ie);=0A=
=0A=
isRequired =3D !!$original.attr('required');=0A=
$original.removeAttr('required');=0A=
=0A=
// create the editor=0A=
initPlugins();=0A=
initEmoticons();=0A=
=0A=
initToolBar();=0A=
initEditor();=0A=
initCommands();=0A=
initOptions();=0A=
initEvents();=0A=
=0A=
// force into source mode if is a browser that can't handle=0A=
// full editing=0A=
if(!$.sceditor.isWysiwygSupported)=0A=
base.toggleSourceMode();=0A=
=0A=
var loaded =3D function() {=0A=
$(window).unbind('load', loaded);=0A=
=0A=
if(options.autofocus)=0A=
autofocus();=0A=
=0A=
if(options.autoExpand)=0A=
base.expandToContent();=0A=
=0A=
// Page width might have changed after CSS is loaded so=0A=
// call handleWindowResize to update any % based dimensions=0A=
handleWindowResize();=0A=
};=0A=
$(window).load(loaded);=0A=
if(document.readyState && document.readyState =3D=3D=3D 'complete')=0A=
loaded();=0A=
=0A=
updateActiveButtons();=0A=
pluginManager.call('ready');=0A=
};=0A=
=0A=
initPlugins =3D function() {=0A=
var plugins =3D options.plugins;=0A=
plugins =3D plugins ? plugins.toString().split(',') : [];=0A=
pluginManager =3D new $.sceditor.PluginManager(base);=0A=
=0A=
$.each(plugins, function(idx, plugin) {=0A=
pluginManager.register($.trim(plugin));=0A=
});=0A=
};=0A=
=0A=
/**=0A=
* Init the locale variable with the specified locale if possible=0A=
* @private=0A=
* @return void=0A=
*/=0A=
initLocale =3D function() {=0A=
var lang;=0A=
=0A=
if($.sceditor.locale[options.locale])=0A=
locale =3D $.sceditor.locale[options.locale];=0A=
else=0A=
{=0A=
lang =3D options.locale.split("-");=0A=
=0A=
if($.sceditor.locale[lang[0]])=0A=
locale =3D $.sceditor.locale[lang[0]];=0A=
}=0A=
=0A=
if(locale && locale.dateFormat)=0A=
options.dateFormat =3D locale.dateFormat;=0A=
};=0A=
=0A=
/**=0A=
* Creates the editor iframe and textarea=0A=
* @private=0A=
*/=0A=
initEditor =3D function () {=0A=
var doc, tabIndex;=0A=
=0A=
$sourceEditor =3D $(' ').hide();=0A=
$wysiwygEditor =3D $('');=0A=
=0A=
if(window.location.protocol =3D=3D=3D "https:")=0A=
$wysiwygEditor.attr("src", "javascript:false");=0A=
=0A=
// add the editor to the HTML and store the editors element=0A=
$editorContainer.append($wysiwygEditor).append($sourceEditor);=0A=
wysiwygEditor =3D $wysiwygEditor[0];=0A=
sourceEditor =3D $sourceEditor[0];=0A=
=0A=
base.width(options.width || $original.width());=0A=
base.height(options.height || $original.height());=0A=
=0A=
doc =3D getWysiwygDoc();=0A=
=0A=
doc.open();=0A=
doc.write(_tmpl("html", { charset: options.charset, style: =
options.style }));=0A=
doc.close();=0A=
=0A=
$wysiwygDoc =3D $(doc);=0A=
$wysiwygBody =3D $(doc.body);=0A=
=0A=
base.readOnly(!!options.readOnly);=0A=
=0A=
// Add IE version class to the HTML element so can apply=0A=
// conditional styling without CSS hacks=0A=
if($.sceditor.ie)=0A=
$wysiwygDoc.find("html").addClass("ie ie" + $.sceditor.ie);=0A=
=0A=
// iframe overflow fix for iOS, also fixes an IE issue with the=0A=
// editor not getting focus when clicking inside=0A=
if(/iPhone|iPod|iPad| wosbrowser\//i.test(navigator.userAgent) || =
$.sceditor.ie)=0A=
{=0A=
$wysiwygBody.height("100%");=0A=
=0A=
if(!$.sceditor.ie)=0A=
$wysiwygBody.bind('touchend', base.focus);=0A=
}=0A=
=0A=
rangeHelper =3D new =
$.sceditor.rangeHelper(wysiwygEditor.contentWindow);=0A=
=0A=
// load any textarea value into the editor=0A=
base.val($original.hide().val());=0A=
=0A=
tabIndex =3D $original.attr("tabindex");=0A=
$sourceEditor.attr('tabindex', tabIndex);=0A=
$wysiwygEditor.attr('tabindex', tabIndex);=0A=
};=0A=
=0A=
/**=0A=
* Initialises options=0A=
* @private=0A=
*/=0A=
initOptions =3D function() {=0A=
// auto-update original textbox on blur if option set to true=0A=
if(options.autoUpdate)=0A=
{=0A=
$wysiwygBody.bind("blur", base.updateOriginal);=0A=
$sourceEditor.bind("blur", base.updateOriginal);=0A=
}=0A=
=0A=
if(options.rtl =3D=3D=3D null)=0A=
options.rtl =3D $sourceEditor.css('direction') =3D=3D=3D 'rtl';=0A=
=0A=
base.rtl(!!options.rtl);=0A=
=0A=
if(options.autoExpand)=0A=
$wysiwygDoc.bind("keyup", base.expandToContent);=0A=
=0A=
if(options.resizeEnabled)=0A=
initResize();=0A=
=0A=
$editorContainer.attr('id', options.id);=0A=
base.emoticons(options.emoticonsEnabled);=0A=
};=0A=
=0A=
/**=0A=
* Initialises events=0A=
* @private=0A=
*/=0A=
initEvents =3D function() {=0A=
$(document).click(handleDocumentClick);=0A=
=0A=
$(original.form)=0A=
.bind("reset", handleFormReset)=0A=
.submit(base.updateOriginal);=0A=
=0A=
$(window).bind('resize orientationChanged', handleWindowResize);=0A=
=0A=
$wysiwygBody=0A=
.keypress(handleKeyPress)=0A=
.keydown(handleKeyDown)=0A=
.keyup(appendNewLine)=0A=
.bind("paste", handlePasteEvt)=0A=
.bind($.sceditor.ie ? "selectionchange" : "keyup focus blur =
contextmenu mouseup touchend click", checkSelectionChanged)=0A=
.bind("keydown keyup keypress focus blur contextmenu", handleEvent);=0A=
=0A=
$sourceEditor.bind("keydown keyup keypress focus blur contextmenu", =
handleEvent).keydown(handleKeyDown);=0A=
=0A=
$wysiwygDoc=0A=
.keypress(handleKeyPress)=0A=
.mousedown(handleMouseDown)=0A=
.bind($.sceditor.ie ? "selectionchange" : "focus blur contextmenu =
mouseup click", checkSelectionChanged)=0A=
.bind("beforedeactivate keyup", saveRange)=0A=
.keyup(appendNewLine)=0A=
.focus(function() {=0A=
lastRange =3D null;=0A=
});=0A=
=0A=
$editorContainer=0A=
.bind('selectionchanged', updateActiveButtons)=0A=
.bind('selectionchanged', checkNodeChanged)=0A=
.bind('selectionchanged', handleEvent)=0A=
.bind('nodechanged', handleEvent);=0A=
};=0A=
=0A=
/**=0A=
* Creates the toolbar and appends it to the container=0A=
* @private=0A=
*/=0A=
initToolBar =3D function () {=0A=
var $group, $button,=0A=
exclude =3D (options.toolbarExclude || '').split(","),=0A=
groups =3D options.toolbar.split("|");=0A=
=0A=
$toolbar =3D $('
');=0A=
$.each(groups, function(idx, group) {=0A=
$group =3D $('
');=0A=
=0A=
$.each(group.split(","), function(idx, button) {=0A=
// The button must be a valid command and not excluded=0A=
if(!base.commands[button] || $.inArray(button, exclude) > -1)=0A=
return;=0A=
=0A=
$button =3D _tmpl("toolbarButton", {=0A=
name: button,=0A=
dispName: base._(base.commands[button].tooltip || button)=0A=
}, true);=0A=
=0A=
$button.data('sceditor-txtmode', !!base.commands[button].txtExec);=0A=
$button.data('sceditor-wysiwygmode', !!base.commands[button].exec);=0A=
$button.click(function() {=0A=
var $this =3D $(this);=0A=
if(!$this.hasClass('disabled'))=0A=
handleCommand($this, base.commands[button]);=0A=
=0A=
updateActiveButtons();=0A=
return false;=0A=
});=0A=
=0A=
if(base.commands[button].tooltip)=0A=
$button.attr('title', base._(base.commands[button].tooltip));=0A=
=0A=
if(!base.commands[button].exec)=0A=
$button.addClass('disabled');=0A=
=0A=
if(base.commands[button].shortcut)=0A=
base.addShortcut(base.commands[button].shortcut, button);=0A=
=0A=
$group.append($button);=0A=
});=0A=
=0A=
// Exclude empty groups=0A=
if($group[0].firstChild)=0A=
$toolbar.append($group);=0A=
});=0A=
=0A=
// append the toolbar to the toolbarContainer option if given=0A=
$(options.toolbarContainer || $editorContainer).append($toolbar);=0A=
};=0A=
=0A=
/**=0A=
* Creates an array of all the key press functions=0A=
* like emoticons, ect.=0A=
* @private=0A=
*/=0A=
initCommands =3D function () {=0A=
$.each(base.commands, function (name, cmd) {=0A=
if(cmd.keyPress)=0A=
keyPressFuncs.push(cmd.keyPress);=0A=
=0A=
if(cmd.forceNewLineAfter && $.isArray(cmd.forceNewLineAfter))=0A=
requireNewLineFix =3D $.merge(requireNewLineFix, =
cmd.forceNewLineAfter);=0A=
=0A=
if(cmd.state)=0A=
btnStateHandlers.push({ name: name, state: cmd.state });=0A=
// exec string commands can be passed to queryCommandState=0A=
else if(typeof cmd.exec =3D=3D=3D "string")=0A=
btnStateHandlers.push({ name: name, state: cmd.exec });=0A=
});=0A=
};=0A=
=0A=
/**=0A=
* Creates the resizer.=0A=
* @private=0A=
*/=0A=
initResize =3D function () {=0A=
var minHeight, maxHeight, minWidth, maxWidth, mouseMoveFunc, =
mouseUpFunc,=0A=
$grip =3D $('
'),=0A=
// cover is used to cover the editor iframe so document still gets =
mouse move events=0A=
$cover =3D $('
'),=0A=
startX =3D 0,=0A=
startY =3D 0,=0A=
startWidth =3D 0,=0A=
startHeight =3D 0,=0A=
origWidth =3D $editorContainer.width(),=0A=
origHeight =3D $editorContainer.height(),=0A=
dragging =3D false,=0A=
rtl =3D base.rtl();=0A=
=0A=
minHeight =3D options.resizeMinHeight || origHeight / 1.5;=0A=
maxHeight =3D options.resizeMaxHeight || origHeight * 2.5;=0A=
minWidth =3D options.resizeMinWidth || origWidth / 1.25;=0A=
maxWidth =3D options.resizeMaxWidth || origWidth * 1.25;=0A=
=0A=
mouseMoveFunc =3D function (e) {=0A=
// iOS must use window.event=0A=
if(e.type =3D=3D=3D 'touchmove')=0A=
e =3D window.event;=0A=
=0A=
var newHeight =3D startHeight + (e.pageY - startY),=0A=
newWidth =3D rtl ? startWidth - (e.pageX - startX) : startWidth + =
(e.pageX - startX);=0A=
=0A=
if(maxWidth > 0 && newWidth > maxWidth)=0A=
newWidth =3D maxWidth;=0A=
=0A=
if(maxHeight > 0 && newHeight > maxHeight)=0A=
newHeight =3D maxHeight;=0A=
=0A=
if(!options.resizeWidth || newWidth < minWidth || (maxWidth > 0 && =
newWidth > maxWidth))=0A=
newWidth =3D false;=0A=
=0A=
if(!options.resizeHeight || newHeight < minHeight || (maxHeight > 0 =
&& newHeight > maxHeight))=0A=
newHeight =3D false;=0A=
=0A=
if(newWidth || newHeight)=0A=
{=0A=
base.dimensions(newWidth, newHeight);=0A=
=0A=
// The resize cover will not fill the container in IE6 unless a =
height is specified.=0A=
if($.sceditor.ie < 7)=0A=
$editorContainer.height(newHeight);=0A=
}=0A=
=0A=
e.preventDefault();=0A=
};=0A=
=0A=
mouseUpFunc =3D function (e) {=0A=
if(!dragging)=0A=
return;=0A=
=0A=
dragging =3D false;=0A=
=0A=
$cover.hide();=0A=
$editorContainer.removeClass('resizing').height('auto');=0A=
$(document).unbind('touchmove mousemove', mouseMoveFunc);=0A=
$(document).unbind('touchend mouseup', mouseUpFunc);=0A=
=0A=
e.preventDefault();=0A=
};=0A=
=0A=
$editorContainer.append($grip);=0A=
$editorContainer.append($cover.hide());=0A=
=0A=
$grip.bind('touchstart mousedown', function (e) {=0A=
// iOS must use window.event=0A=
if(e.type =3D=3D=3D 'touchstart')=0A=
e =3D window.event;=0A=
=0A=
startX =3D e.pageX;=0A=
startY =3D e.pageY;=0A=
startWidth =3D $editorContainer.width();=0A=
startHeight =3D $editorContainer.height();=0A=
dragging =3D true;=0A=
=0A=
$editorContainer.addClass('resizing');=0A=
$cover.show();=0A=
$(document).bind('touchmove mousemove', mouseMoveFunc);=0A=
$(document).bind('touchend mouseup', mouseUpFunc);=0A=
=0A=
// The resize cover will not fill the container in IE6 unless a =
height is specified.=0A=
if($.sceditor.ie < 7)=0A=
$editorContainer.height(startHeight);=0A=
=0A=
e.preventDefault();=0A=
});=0A=
};=0A=
=0A=
/**=0A=
* Prefixes and preloads the emoticon images=0A=
* @private=0A=
*/=0A=
initEmoticons =3D function () {=0A=
var emoticon,=0A=
emoticons =3D options.emoticons,=0A=
root =3D options.emoticonsRoot;=0A=
=0A=
if(!$.isPlainObject(emoticons) || !options.emoticonsEnabled)=0A=
return;=0A=
=0A=
$.each(emoticons, function (idx, val) {=0A=
$.each(val, function (key, url) {=0A=
// Prefix emoticon root to emoticon urls=0A=
if(root)=0A=
{=0A=
url =3D.html {=0A=
url: root + (url.url || url),=0A=
tooltip: url.tooltip || key=0A=
};=0A=
=0A=
emoticons[idx][key] =3D url;=0A=
}=0A=
=0A=
// Preload the emoticon=0A=
// Idea from: =
http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascri=
pt=0A=
emoticon =3D document.createElement('img');=0A=
emoticon.src =3D url.url || url;=0A=
preLoadCache.push(emoticon);=0A=
});=0A=
});=0A=
};=0A=
=0A=
/**=0A=
* Autofocus the editor=0A=
* @private=0A=
*/=0A=
autofocus =3D function() {=0A=
var rng, elm, txtPos,=0A=
doc =3D $wysiwygDoc[0],=0A=
body =3D $wysiwygBody[0],=0A=
focusEnd =3D !!options.autofocusEnd;=0A=
=0A=
// Can't focus invislible elements=0A=
if(!$editorContainer.is(':visible'))=0A=
return;=0A=
=0A=
if(base.sourceMode())=0A=
{=0A=
txtPos =3D sourceEditor.value.length;=0A=
=0A=
if(sourceEditor.setSelectionRange)=0A=
sourceEditor.setSelectionRange(txtPos, txtPos);=0A=
else if (sourceEditor.createTextRange)=0A=
{=0A=
rng =3D sourceEditor.createTextRange();=0A=
rng.moveEnd('character', txtPos);=0A=
rng.moveStart('character', txtPos);=0A=
rangeHelper.selectRange(rng);=0A=
}=0A=
}=0A=
else // WYSIWYG mode=0A=
{=0A=
if(focusEnd)=0A=
$wysiwygBody.append((elm =3D doc.createElement('div')));=0A=
else=0A=
elm =3D body.firstChild;=0A=
=0A=
if(doc.createRange)=0A=
{=0A=
rng =3D doc.createRange();=0A=
rng.setStart(elm, 0);=0A=
rng.setEnd(elm, 0);=0A=
}=0A=
else=0A=
{=0A=
rng =3D body.createTextRange();=0A=
rng.moveToElementText(elm);=0A=
rng.collapse(false);=0A=
}=0A=
rangeHelper.selectRange(rng);=0A=
=0A=
if(focusEnd)=0A=
{=0A=
$wysiwygDoc.scrollTop(body.scrollHeight);=0A=
$wysiwygBody.scrollTop(body.scrollHeight);=0A=
}=0A=
}=0A=
=0A=
base.focus();=0A=
};=0A=
=0A=
/**=0A=
* Gets if the editor is read only=0A=
*=0A=
* @since 1.3.5=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name readOnly=0A=
* @return {Boolean}=0A=
*/=0A=
/**=0A=
* Sets if the editor is read only=0A=
*=0A=
* @param {boolean} readOnly=0A=
* @since 1.3.5=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name readOnly^2=0A=
* @return {this}=0A=
*/=0A=
base.readOnly =3D function(readOnly) {=0A=
if(typeof readOnly !=3D=3D 'boolean')=0A=
return $sourceEditor.attr('readonly') =3D=3D=3D 'readonly';=0A=
=0A=
$wysiwygBody[0].contentEditable =3D !readOnly;=0A=
=0A=
if(!readOnly)=0A=
$sourceEditor.removeAttr('readonly');=0A=
else=0A=
$sourceEditor.attr('readonly', 'readonly');=0A=
=0A=
updateToolBar(readOnly);=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Gets if the editor is in RTL mode=0A=
*=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name rtl=0A=
* @return {Boolean}=0A=
*/=0A=
/**=0A=
* Sets if the editor is in RTL mode=0A=
*=0A=
* @param {boolean} rtl=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name rtl^2=0A=
* @return {this}=0A=
*/=0A=
base.rtl =3D function(rtl) {=0A=
var dir =3D rtl ? 'rtl' : 'ltr';=0A=
=0A=
if(typeof rtl !=3D=3D 'boolean')=0A=
return $sourceEditor.attr('dir') =3D=3D=3D 'rtl';=0A=
=0A=
$wysiwygBody.attr('dir', dir);=0A=
$sourceEditor.attr('dir', dir);=0A=
=0A=
$editorContainer=0A=
.removeClass('rtl')=0A=
.removeClass('ltr')=0A=
.addClass(dir);=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Updates the toolbar to disable/enable the appropriate buttons=0A=
* @private=0A=
*/=0A=
updateToolBar =3D function(disable) {=0A=
var inSourceMode =3D base.inSourceMode();=0A=
=0A=
=
$toolbar.find('.sceditor-button').removeClass('disabled').each(function =
() {=0A=
var button =3D $(this);=0A=
=0A=
if(disable =3D=3D=3D true || (inSourceMode && =
!button.data('sceditor-txtmode')))=0A=
button.addClass('disabled');=0A=
else if (!inSourceMode && !button.data('sceditor-wysiwygmode'))=0A=
button.addClass('disabled');=0A=
});=0A=
};=0A=
=0A=
/**=0A=
* Gets the width of the editor in pixels=0A=
*=0A=
* @since 1.3.5=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name width=0A=
* @return {int}=0A=
*/=0A=
/**=0A=
* Sets the width of the editor=0A=
*=0A=
* @param {int} width Width in pixels=0A=
* @since 1.3.5=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name width^2=0A=
* @return {this}=0A=
*/=0A=
/**=0A=
* Sets the width of the editor=0A=
*=0A=
* The saveWidth specifies if to save the width. The stored width can =
be=0A=
* used for things like restoring from maximized state.=0A=
*=0A=
* @param {int} height Width in pixels=0A=
* @param {boolean} [saveWidth=3Dtrue] If to store the width=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name width^3=0A=
* @return {this}=0A=
*/=0A=
base.width =3D function (width, saveWidth) {=0A=
if(!width && width !=3D=3D 0)=0A=
return $editorContainer.width();=0A=
=0A=
base.dimensions(width, null, saveWidth);=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Returns an object with the properties width and height=0A=
* which are the width and height of the editor in px.=0A=
*=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name dimensions=0A=
* @return {object}=0A=
*/=0A=
/**=0A=
* Sets the width and/or height of the editor.
=0A=
*=0A=
* If width or height is not numeric it is ignored.
=0A=
*=0A=
* @param {int} width Width in px=0A=
* @param {int} height Height in px=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name dimensions^2=0A=
* @return {this}=0A=
*/=0A=
/**=0A=
* Sets the width and/or height of the editor.
=0A=
*=0A=
* If width or height is not numeric it is ignored.
=0A=
*=0A=
* The save argument specifies if to save the new sizes.=0A=
* The saved sizes can be used for things like restoring from=0A=
* maximized state. This should normally be left as true.
=0A=
*=0A=
* @param {int} width Width in px=0A=
* @param {int} height Height in px=0A=
* @param {boolean} [save=3Dtrue] If to store the new sizes=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name dimensions^3=0A=
* @return {this}=0A=
*/=0A=
base.dimensions =3D function(width, height, save) {=0A=
// set undefined width/height to boolean false=0A=
width =3D (!width && width !=3D=3D 0) ? false : width;=0A=
height =3D (!height && height !=3D=3D 0) ? false : height;=0A=
=0A=
if(width =3D=3D=3D false && height =3D=3D=3D false)=0A=
return { width: base.width(), height: base.height() };=0A=
=0A=
if(typeof $wysiwygEditor.data('outerWidthOffset') =3D=3D=3D =
"undefined")=0A=
base.updateStyleCache();=0A=
=0A=
if(width !=3D=3D false)=0A=
{=0A=
if(save !=3D=3D false)=0A=
options.width =3D width;=0A=
=0A=
if(width && width.toString().indexOf('%'))=0A=
width =3D $editorContainer.width(width).width();=0A=
=0A=
$wysiwygEditor.width(width - =
$wysiwygEditor.data('outerWidthOffset'));=0A=
$sourceEditor.width(width - $sourceEditor.data('outerWidthOffset'));=0A=
=0A=
if(height =3D=3D=3D false)=0A=
{=0A=
height =3D $editorContainer.height();=0A=
save =3D false;=0A=
}=0A=
}=0A=
=0A=
if(height !=3D=3D false)=0A=
{=0A=
if(save !=3D=3D false)=0A=
options.height =3D height;=0A=
=0A=
// Convert % based heights to px=0A=
if(height && height.toString().indexOf('%'))=0A=
{=0A=
height =3D $editorContainer.height(height).height();=0A=
$editorContainer.height('auto');=0A=
}=0A=
=0A=
height -=3D !options.toolbarContainer ? $toolbar.outerHeight(true) : =
0;=0A=
$wysiwygEditor.height(height - =
$wysiwygEditor.data('outerHeightOffset'));=0A=
$sourceEditor.height(height - =
$sourceEditor.data('outerHeightOffset'));=0A=
}=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Updates the CSS styles cache. Shouldn't be needed unless changing =
the editors theme.=0A=
*=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name updateStyleCache=0A=
* @return {int}=0A=
*/=0A=
base.updateStyleCache =3D function() {=0A=
// caching these improves FF resize performance=0A=
$wysiwygEditor.data('outerWidthOffset', =
$wysiwygEditor.outerWidth(true) - $wysiwygEditor.width());=0A=
$sourceEditor.data('outerWidthOffset', $sourceEditor.outerWidth(true) =
- $sourceEditor.width());=0A=
=0A=
$wysiwygEditor.data('outerHeightOffset', =
$wysiwygEditor.outerHeight(true) - $wysiwygEditor.height());=0A=
$sourceEditor.data('outerHeightOffset', =
$sourceEditor.outerHeight(true) - $sourceEditor.height());=0A=
};=0A=
=0A=
/**=0A=
* Gets the height of the editor in px=0A=
*=0A=
* @since 1.3.5=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name height=0A=
* @return {int}=0A=
*/=0A=
/**=0A=
* Sets the height of the editor=0A=
*=0A=
* @param {int} height Height in px=0A=
* @since 1.3.5=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name height^2=0A=
* @return {this}=0A=
*/=0A=
/**=0A=
* Sets the height of the editor=0A=
*=0A=
* The saveHeight specifies if to save the height. The stored height =
can be=0A=
* used for things like restoring from maximized state.=0A=
*=0A=
* @param {int} height Height in px=0A=
* @param {boolean} [saveHeight=3Dtrue] If to store the height=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name height^3=0A=
* @return {this}=0A=
*/=0A=
base.height =3D function (height, saveHeight) {=0A=
if(!height && height !=3D=3D 0)=0A=
return $editorContainer.height();=0A=
=0A=
base.dimensions(null, height, saveHeight);=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Gets if the editor is maximised or not=0A=
*=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name maximize=0A=
* @return {boolean}=0A=
*/=0A=
/**=0A=
* Sets if the editor is maximised or not=0A=
*=0A=
* @param {boolean} maximize If to maximise the editor=0A=
* @since 1.4.1=0A=
* @function=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @name maximize^2=0A=
* @return {this}=0A=
*/=0A=
base.maximize =3D function(maximize) {=0A=
if(typeof maximize =3D=3D=3D 'undefined')=0A=
return $editorContainer.is('.sceditor-maximize');=0A=
=0A=
maximize =3D !!maximize;=0A=
=0A=
// IE 6 fix=0A=
if($.sceditor.ie < 7)=0A=
$('html, body').toggleClass('sceditor-maximize', maximize);=0A=
=0A=
$editorContainer.toggleClass('sceditor-maximize', maximize);=0A=
base.width(maximize ? '100%' : options.width, false);=0A=
base.height(maximize ? '100%' : options.height, false);=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Expands the editors height to the height of it's content=0A=
*=0A=
* Unless ignoreMaxHeight is set to true it will not expand=0A=
* higher than the maxHeight option.=0A=
*=0A=
* @since 1.3.5=0A=
* @param {Boolean} [ignoreMaxHeight=3Dfalse]=0A=
* @function=0A=
* @name expandToContent=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @see #resizeToContent=0A=
*/=0A=
base.expandToContent =3D function(ignoreMaxHeight) {=0A=
var currentHeight =3D $editorContainer.height(),=0A=
height =3D $wysiwygBody[0].scrollHeight || =
$wysiwygDoc[0].documentElement.scrollHeight,=0A=
padding =3D (currentHeight - $wysiwygEditor.height()),=0A=
maxHeight =3D options.resizeMaxHeight || ((options.height || =
$original.height()) * 2);=0A=
=0A=
height +=3D padding;=0A=
=0A=
if(ignoreMaxHeight !=3D=3D true && height > maxHeight)=0A=
height =3D maxHeight;=0A=
=0A=
if(height > currentHeight)=0A=
base.height(height);=0A=
};=0A=
=0A=
/**=0A=
* Destroys the editor, removing all elements and=0A=
* event handlers.=0A=
*=0A=
* Leaves only the original textarea.=0A=
*=0A=
* @function=0A=
* @name destroy=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.destroy =3D function () {=0A=
pluginManager.destroy();=0A=
=0A=
rangeHelper =3D null;=0A=
lastRange =3D null;=0A=
pluginManager =3D null;=0A=
=0A=
$(document).unbind('click', handleDocumentClick);=0A=
$(window).unbind('resize orientationChanged', handleWindowResize);=0A=
=0A=
$(original.form)=0A=
.unbind('reset', handleFormReset)=0A=
.unbind('submit', base.updateOriginal);=0A=
=0A=
$wysiwygBody.unbind();=0A=
$wysiwygDoc.unbind().find('*').remove();=0A=
=0A=
$sourceEditor.unbind().remove();=0A=
$editorContainer.unbind().find('*').unbind().remove();=0A=
$editorContainer.remove();=0A=
=0A=
$original=0A=
.removeData('sceditor')=0A=
.removeData('sceditorbbcode')=0A=
.show();=0A=
=0A=
if(isRequired)=0A=
$original.attr('required', 'required');=0A=
};=0A=
=0A=
/**=0A=
* Creates a menu item drop down=0A=
*=0A=
* @param {HTMLElement} menuItem The button to align the drop down =
with=0A=
* @param {string} dropDownName Used for styling the dropown, will be =
a class sceditor-dropDownName=0A=
* @param {HTMLElement} content The HTML content of the dropdown=0A=
* @param {bool} [ieUnselectable=3Dtrue] If to add the unselectable =
attribute to all the contents elements. Stops IE from deselecting the =
text in the editor=0A=
* @function=0A=
* @name createDropDown=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.createDropDown =3D function (menuItem, dropDownName, content, =
ieUnselectable) {=0A=
// first click for create second click for close=0A=
var onlyclose =3D $dropdown && $dropdown.is('.sceditor-' + =
dropDownName);=0A=
=0A=
base.closeDropDown();=0A=
=0A=
if(onlyclose) return;=0A=
=0A=
// IE needs unselectable attr to stop it from unselecting the text in =
the editor.=0A=
// The editor can cope if IE does unselect the text it's just not =
nice.=0A=
if(ieUnselectable !=3D=3D false)=0A=
{=0A=
$(content)=0A=
.find(':not(input,textarea)')=0A=
.filter(function() {=0A=
return this.nodeType=3D=3D=3D1;=0A=
})=0A=
.attr('unselectable', 'on');=0A=
}=0A=
=0A=
var css =3D {=0A=
top: menuItem.offset().top,=0A=
left: menuItem.offset().left,=0A=
marginTop: menuItem.outerHeight()=0A=
};=0A=
=0A=
$.extend(css, options.dropDownCss);=0A=
=0A=
$dropdown =3D $('
')=0A=
.css(css)=0A=
.append(content)=0A=
.appendTo($('body'))=0A=
.click(function (e) {=0A=
// stop clicks within the dropdown from being handled=0A=
e.stopPropagation();=0A=
});=0A=
};=0A=
=0A=
/**=0A=
* Handles any document click and closes the dropdown if open=0A=
* @private=0A=
*/=0A=
handleDocumentClick =3D function (e) {=0A=
// ignore right clicks=0A=
if(e.which !=3D=3D 3)=0A=
base.closeDropDown();=0A=
};=0A=
=0A=
/**=0A=
* Handles the WYSIWYG editors paste event=0A=
* @private=0A=
*/=0A=
handlePasteEvt =3D function(e) {=0A=
var html,=0A=
elm =3D $wysiwygBody[0],=0A=
checkCount =3D 0,=0A=
pastearea =3D elm.ownerDocument.createElement('div'),=0A=
prePasteContent =3D elm.ownerDocument.createDocumentFragment();=0A=
=0A=
if(options.disablePasting)=0A=
return false;=0A=
=0A=
if(!options.enablePasteFiltering)=0A=
return;=0A=
=0A=
rangeHelper.saveRange();=0A=
document.body.appendChild(pastearea);=0A=
=0A=
if (e && e.clipboardData && e.clipboardData.getData)=0A=
{=0A=
if ((html =3D e.clipboardData.getData('text/html')) || (html =3D =
e.clipboardData.getData('text/plain')))=0A=
{=0A=
pastearea.innerHTML =3D html;=0A=
=0A=
handlePasteData(elm, pastearea);=0A=
=0A=
e.stopPropagation();=0A=
e.preventDefault();=0A=
return false;=0A=
}=0A=
}=0A=
=0A=
while(elm.firstChild)=0A=
prePasteContent.appendChild(elm.firstChild);=0A=
=0A=
function handlePaste(elm, pastearea) {=0A=
if (elm.childNodes.length > 0)=0A=
{=0A=
while(elm.firstChild)=0A=
pastearea.appendChild(elm.firstChild);=0A=
=0A=
while(prePasteContent.firstChild)=0A=
elm.appendChild(prePasteContent.firstChild);=0A=
=0A=
handlePasteData(elm, pastearea);=0A=
}=0A=
else=0A=
{=0A=
// Allow max 25 checks before giving up.=0A=
// Needed inscase empty input is pasted or=0A=
// something goes wrong.=0A=
if(checkCount > 25)=0A=
{=0A=
while(prePasteContent.firstChild)=0A=
elm.appendChild(prePasteContent.firstChild);=0A=
=0A=
rangeHelper.restoreRange();=0A=
return;=0A=
}=0A=
=0A=
++checkCount;=0A=
setTimeout(function () {=0A=
handlePaste(elm, pastearea);=0A=
}, 20);=0A=
}=0A=
}=0A=
handlePaste(elm, pastearea);=0A=
=0A=
base.focus();=0A=
return true;=0A=
};=0A=
=0A=
/**=0A=
* Gets the pasted data, filters it and then inserts it.=0A=
* @param {Element} elm=0A=
* @param {Element} pastearea=0A=
* @private=0A=
*/=0A=
handlePasteData =3D function(elm, pastearea) {=0A=
// fix any invalid nesting=0A=
$.sceditor.dom.fixNesting(pastearea);=0A=
=0A=
var pasteddata =3D pastearea.innerHTML;=0A=
=0A=
if(pluginManager.hasHandler("toSource"))=0A=
pasteddata =3D pluginManager.callOnlyFirst("toSource", pasteddata, =
$(pastearea));=0A=
=0A=
pastearea.parentNode.removeChild(pastearea);=0A=
=0A=
if(pluginManager.hasHandler("toWysiwyg"))=0A=
pasteddata =3D pluginManager.callOnlyFirst("toWysiwyg", pasteddata, =
true);=0A=
=0A=
rangeHelper.restoreRange();=0A=
rangeHelper.insertHTML(replaceEmoticons(pasteddata));=0A=
};=0A=
=0A=
/**=0A=
* Closes any currently open drop down=0A=
*=0A=
* @param {bool} [focus=3Dfalse] If to focus the editor after closing =
the drop down=0A=
* @function=0A=
* @name closeDropDown=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.closeDropDown =3D function (focus) {=0A=
;;=0A=
var uploadFrame,=0A=
emoticonFrame;=0A=
if($('.sceditor-tinypic').length =3D=3D=3D 1)=0A=
uploadFrame =3D $('.sceditor-tinypic');=0A=
else if($('.sceditor-servimg').length =3D=3D=3D 1)=0A=
uploadFrame =3D $('.sceditor-servimg');=0A=
if($('.sceditor-emoticon').length =3D=3D=3D 1)=0A=
emoticonFrame =3D $('.sceditor-emoticon');=0A=
=0A=
if(uploadFrame) {=0A=
uploadFrame.css('display', 'none');=0A=
}=0A=
if(emoticonFrame) {=0A=
emoticonFrame.css('display', 'none');=0A=
}=0A=
=0A=
if($dropdown) {=0A=
$dropdown.unbind().remove();=0A=
$dropdown =3D null;=0A=
}=0A=
=0A=
if(focus =3D=3D=3D true)=0A=
base.focus();=0A=
};=0A=
=0A=
/**=0A=
* Gets the WYSIWYG editors document=0A=
* @private=0A=
*/=0A=
getWysiwygDoc =3D function () {=0A=
if (wysiwygEditor.contentDocument)=0A=
return wysiwygEditor.contentDocument;=0A=
=0A=
if (wysiwygEditor.contentWindow && =
wysiwygEditor.contentWindow.document)=0A=
return wysiwygEditor.contentWindow.document;=0A=
=0A=
if (wysiwygEditor.document)=0A=
return wysiwygEditor.document;=0A=
=0A=
return null;=0A=
};=0A=
=0A=
=0A=
/**=0A=
* Inserts HTML into WYSIWYG editor.
=0A=
*=0A=
* If endHtml is specified, any selected text will be placed =
between html=0A=
* and endHtml. If there is no selected text html and endHtml will =
just be=0A=
* concated together.
=0A=
*=0A=
* @param {string} html=0A=
* @param {string} [endHtml=3Dnull]=0A=
* @param {boolean} [overrideCodeBlocking=3Dfalse] If to insert the =
html into code tags, by default code tags only support text.=0A=
* @function=0A=
* @name wysiwygEditorInsertHtml=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.wysiwygEditorInsertHtml =3D function (html, endHtml, =
overrideCodeBlocking) {=0A=
base.focus();=0A=
=0A=
// don't apply to code elements=0A=
if(!overrideCodeBlocking && ($(rangeHelper.parentNode()).is('code') ||=0A=
$(rangeHelper.parentNode()).parents('code').length !=3D=3D 0))=0A=
return;=0A=
// TODO: This code tag should be configurable=0A=
rangeHelper.insertHTML(html, endHtml);=0A=
=0A=
appendNewLine();=0A=
};=0A=
=0A=
/**=0A=
* Like wysiwygEditorInsertHtml except it will convert any HTML into =
text=0A=
* before inserting it.=0A=
*=0A=
* @param {String} text=0A=
* @param {String} [endText=3Dnull]=0A=
* @function=0A=
* @name wysiwygEditorInsertText=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.wysiwygEditorInsertText =3D function (text, endText) {=0A=
base.wysiwygEditorInsertHtml($.sceditor.escapeEntities(text), =
$.sceditor.escapeEntities(endText));=0A=
};=0A=
=0A=
/**=0A=
* Inserts text into the WYSIWYG or source editor depending on which=0A=
* mode the editor is in.
=0A=
*=0A=
* If endText is specified any selected text will be placed between=0A=
* text and endText. If no text is selected text and endText will=0A=
* just be concated together.
=0A=
*=0A=
* @param {String} text=0A=
* @param {String} [endText=3Dnull]=0A=
* @since 1.3.5=0A=
* @function=0A=
* @name insertText=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.insertText =3D function (text, endText) {=0A=
if(base.inSourceMode())=0A=
base.sourceEditorInsertText(text, endText);=0A=
else=0A=
base.wysiwygEditorInsertText(text, endText);=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Like wysiwygEditorInsertHtml but inserts text into the=0A=
* source mode editor instead.
=0A=
*=0A=
* If endText is specified any selected text will be placed between=0A=
* text and endText. If no text is selected text and endText will=0A=
* just be concated together.
=0A=
*=0A=
* The cursor will be placed after the text param. If endText is=0A=
* specified the cursor will be placed before endText, so passing: =0A=
*=0A=
* '[b]', '[/b]'
=0A=
*=0A=
* Would cause the cursor to be placed: =0A=
*=0A=
* [b]Selected text|[/b]
=0A=
*=0A=
* @param {String} text=0A=
* @param {String} [endText=3Dnull]=0A=
* @since 1.4.0=0A=
* @function=0A=
* @name sourceEditorInsertText=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.sourceEditorInsertText =3D function (text, endText) {=0A=
var range, start, end, txtLen, scrollTop;=0A=
=0A=
scrollTop =3D sourceEditor.scrollTop;=0A=
sourceEditor.focus();=0A=
=0A=
if(typeof sourceEditor.selectionStart !=3D=3D "undefined")=0A=
{=0A=
start =3D sourceEditor.selectionStart;=0A=
end =3D sourceEditor.selectionEnd;=0A=
txtLen =3D text.length;=0A=
=0A=
if(endText)=0A=
text +=3D sourceEditor.value.substring(start, end) + endText;=0A=
=0A=
sourceEditor.value =3D sourceEditor.value.substring(0, start) + text =
+ sourceEditor.value.substring(end, sourceEditor.value.length);=0A=
=0A=
sourceEditor.selectionStart =3D (start + text.length) - (endText ? =
endText.length : 0);=0A=
sourceEditor.selectionEnd =3D sourceEditor.selectionStart;=0A=
}=0A=
else if(typeof document.selection.createRange !=3D=3D "undefined")=0A=
{=0A=
range =3D document.selection.createRange();=0A=
=0A=
if(endText)=0A=
text +=3D range.text + endText;=0A=
=0A=
range.text =3D text;=0A=
=0A=
if(endText)=0A=
range.moveEnd('character', 0-endText.length);=0A=
=0A=
range.moveStart('character', range.End - range.Start);=0A=
range.select();=0A=
}=0A=
else=0A=
sourceEditor.value +=3D text + endText;=0A=
=0A=
sourceEditor.scrollTop =3D scrollTop;=0A=
sourceEditor.focus();=0A=
};=0A=
=0A=
/**=0A=
* Gets the current instance of the rangeHelper class=0A=
* for the editor.=0A=
*=0A=
* @return jQuery.sceditor.rangeHelper=0A=
* @function=0A=
* @name getRangeHelper=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.getRangeHelper =3D function () {=0A=
return rangeHelper;=0A=
};=0A=
=0A=
/**=0A=
* Gets the value of the editor.
=0A=
*=0A=
* If the editor is in WYSIWYG mode it will return the filtered=0A=
* HTML from it (converted to BBCode if using the BBCode plugin).=0A=
* It it's in Source Mode it will return the unfiltered contents=0A=
* of the source editor (if using the BBCode plugin this will be=0A=
* BBCode again).
=0A=
*=0A=
* @since 1.3.5=0A=
* @return {string}=0A=
* @function=0A=
* @name val=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
/**=0A=
* Sets the value of the editor.
=0A=
*=0A=
* If filter set true the val will be passed through the filter=0A=
* function. If using the BBCode plugin it will pass the val to=0A=
* the BBCode filter to convert any BBCode into HTML.
=0A=
*=0A=
* @param {String} val=0A=
* @param {Boolean} [filter=3Dtrue]=0A=
* @return {this}=0A=
* @since 1.3.5=0A=
* @function=0A=
* @name val^2=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.val =3D function (val, filter) {=0A=
if(typeof val =3D=3D=3D "string")=0A=
{=0A=
if(base.inSourceMode())=0A=
base.setSourceEditorValue(val);=0A=
else=0A=
{=0A=
if(filter !=3D=3D false && pluginManager.hasHandler("toWysiwyg"))=0A=
val =3D pluginManager.callOnlyFirst("toWysiwyg", val);=0A=
=0A=
base.setWysiwygEditorValue(val);=0A=
}=0A=
=0A=
return this;=0A=
}=0A=
=0A=
return base.inSourceMode() ?=0A=
base.getSourceEditorValue(false) :=0A=
base.getWysiwygEditorValue();=0A=
};=0A=
=0A=
/**=0A=
* Inserts HTML/BBCode into the editor
=0A=
*=0A=
* If end is supplied any slected text will be placed between=0A=
* start and end. If there is no selected text start and end=0A=
* will be concated together.
=0A=
*=0A=
* If the filter param is set to true, the HTML/BBCode will be=0A=
* passed through any plugin filters. If using the BBCode plugin=0A=
* this will convert any BBCode into HTML.
=0A=
*=0A=
* @param {String} start=0A=
* @param {String} [end=3Dnull]=0A=
* @param {Boolean} [filter=3Dtrue]=0A=
* @param {Boolean} [convertEmoticons=3Dtrue] If to convert emoticons=0A=
* @return {this}=0A=
* @since 1.3.5=0A=
* @function=0A=
* @name insert=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
/**=0A=
* Inserts HTML/BBCode into the editor
=0A=
*=0A=
* If end is supplied any slected text will be placed between=0A=
* start and end. If there is no selected text start and end=0A=
* will be concated together.
=0A=
*=0A=
* If the filter param is set to true, the HTML/BBCode will be=0A=
* passed through any plugin filters. If using the BBCode plugin=0A=
* this will convert any BBCode into HTML.
=0A=
*=0A=
* If the allowMixed param is set to true, HTML any will not be =
escaped
=0A=
*=0A=
* @param {String} start=0A=
* @param {String} [end=3Dnull]=0A=
* @param {Boolean} [filter=3Dtrue]=0A=
* @param {Boolean} [convertEmoticons=3Dtrue] If to convert emoticons=0A=
* @param {Boolean} [allowMixed=3Dfalse]=0A=
* @return {this}=0A=
* @since 1.4.3=0A=
* @function=0A=
* @name insert^2=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.insert =3D function (start, end, filter, convertEmoticons, =
allowMixed) {=0A=
if(base.inSourceMode())=0A=
base.sourceEditorInsertText(start, end);=0A=
else=0A=
{=0A=
// Add the selection between start and end=0A=
if(end)=0A=
{=0A=
var html =3D base.getRangeHelper().selectedHtml(),=0A=
frag =3D $('').appendTo($('body')).hide().html(html);=0A=
=0A=
if(filter !=3D=3D false && pluginManager.hasHandler("toSource"))=0A=
html =3D pluginManager.callOnlyFirst("toSource", html, frag);=0A=
=0A=
frag.remove();=0A=
=0A=
start +=3D html + end;=0A=
}=0A=
=0A=
if(filter !=3D=3D false && pluginManager.hasHandler("toWysiwyg"))=0A=
start =3D pluginManager.callOnlyFirst("toWysiwyg", start, true);=0A=
=0A=
// Convert any escaped HTML back into HTML if mixed is allowed=0A=
if(filter !=3D=3D false && allowMixed =3D=3D=3D true)=0A=
{=0A=
start =3D start.replace(/</g, "<")=0A=
.replace(/>/g, ">")=0A=
.replace(/&/g, "&");=0A=
}=0A=
=0A=
if(convertEmoticons !=3D=3D false)=0A=
start =3D replaceEmoticons(start);=0A=
=0A=
base.wysiwygEditorInsertHtml(start);=0A=
}=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Gets the WYSIWYG editors HTML value.=0A=
*=0A=
* If using a plugin that filters the HTMl like the BBCode plugin=0A=
* it will return the result of the filtering (BBCode) unless the=0A=
* filter param is set to false.=0A=
*=0A=
* @param {bool} [filter=3Dtrue]=0A=
* @return {string}=0A=
* @function=0A=
* @name getWysiwygEditorValue=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.getWysiwygEditorValue =3D function (filter) {=0A=
var html;=0A=
=0A=
// Must focus the editor for IE before saving the range=0A=
if($.sceditor.ie)=0A=
base.focus();=0A=
=0A=
rangeHelper.saveRange();=0A=
=0A=
$.sceditor.dom.fixNesting($wysiwygBody[0]);=0A=
=0A=
// filter the HTML and DOM through any plugins=0A=
html =3D $wysiwygBody.html();=0A=
if(filter !=3D=3D false && pluginManager.hasHandler("toSource"))=0A=
html =3D pluginManager.callOnlyFirst("toSource", html, $wysiwygBody);=0A=
=0A=
// remove the last stored range for IE as it no longer applies=0A=
rangeHelper.restoreRange();=0A=
lastRange =3D null;=0A=
return html;=0A=
};=0A=
=0A=
/**=0A=
* Gets the WYSIWYG editor's iFrame Body.=0A=
*=0A=
* @return {jQuery}=0A=
* @function=0A=
* @since 1.4.3=0A=
* @name getBody=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.getBody =3D function () {=0A=
return $wysiwygBody;=0A=
};=0A=
=0A=
/**=0A=
* Gets the WYSIWYG editors container area (whole iFrame).=0A=
*=0A=
* @return {Node}=0A=
* @function=0A=
* @since 1.4.3=0A=
* @name getContentAreaContainer=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.getContentAreaContainer =3D function () {=0A=
return $wysiwygEditor;=0A=
};=0A=
=0A=
/**=0A=
* Gets the text editor value=0A=
*=0A=
* If using a plugin that filters the text like the BBCode plugin=0A=
* it will return the result of the filtering which is BBCode to=0A=
* HTML so it will return HTML. If filter is set to false it will=0A=
* just return the contents of the source editor (BBCode).=0A=
*=0A=
* @param {bool} [filter=3Dtrue]=0A=
* @return {string}=0A=
* @function=0A=
* @since 1.4.0=0A=
* @name getSourceEditorValue=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.getSourceEditorValue =3D function (filter) {=0A=
var val =3D $sourceEditor.val();=0A=
=0A=
if(filter !=3D=3D false && pluginManager.hasHandler("toWysiwyg"))=0A=
val =3D pluginManager.callOnlyFirst("toWysiwyg", val);=0A=
=0A=
return val;=0A=
};=0A=
=0A=
/**=0A=
* Sets the WYSIWYG HTML editor value. Should only be the HTML=0A=
* contained within the body tags=0A=
*=0A=
* @param {string} value=0A=
* @function=0A=
* @name setWysiwygEditorValue=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.setWysiwygEditorValue =3D function (value) {=0A=
if(!value)=0A=
value =3D '
' + ($.sceditor.ie ? '' : ' ') + '
';=0A=
=0A=
$wysiwygBody[0].innerHTML =3D replaceEmoticons(value);=0A=
=0A=
appendNewLine();=0A=
};=0A=
=0A=
/**=0A=
* Sets the text editor value=0A=
*=0A=
* @param {string} value=0A=
* @function=0A=
* @name setSourceEditorValue=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.setSourceEditorValue =3D function (value) {=0A=
$sourceEditor.val(value);=0A=
};=0A=
=0A=
/**=0A=
* Updates the textarea that the editor is replacing=0A=
* with the value currently inside the editor.=0A=
*=0A=
* @function=0A=
* @name updateOriginal=0A=
* @since 1.4.0=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.updateOriginal =3D function () {=0A=
$original.val(base.val());=0A=
};=0A=
=0A=
/**=0A=
* Replaces any emoticon codes in the passed HTML with their emoticon =
images=0A=
* @private=0A=
*/=0A=
replaceEmoticons =3D function (html) {=0A=
if(!options.emoticonsEnabled)=0A=
return html;=0A=
=0A=
var emoticons =3D $.extend({}, options.emoticons.more, =
options.emoticons.dropdown, options.emoticons.hidden);=0A=
=0A=
$.each(emoticons, function (key, url) {=0A=
// escape the key before using it as a regex=0A=
// and append the regex to only find emoticons outside=0A=
// of HTML tags=0A=
var reg =3D $.sceditor.regexEscape(key) + =
"(?=3D([^\\<\\>]*?<(?!/code)|[^\\<\\>]*?$))",=0A=
group =3D '';=0A=
=0A=
// Make sure the emoticon is surrounded by whitespace or is at the =
start/end of a string or html tag=0A=
if(options.emoticonsCompat)=0A=
{=0A=
reg =3D "((>|^|\\s|\xA0|\u2002|\u2003|\u2009| ))" + reg + =
"(?=3D(\\s|$|<|\xA0|\u2002|\u2003|\u2009| ))";=0A=
group =3D '$1';=0A=
}=0A=
=0A=
html =3D html.replace(=0A=
new RegExp(reg, 'gm'),=0A=
group + _tmpl('emoticon', {=0A=
key: key,=0A=
url: url.url || url,=0A=
tooltip: url.tooltip || key=0A=
})=0A=
);=0A=
});=0A=
=0A=
return html;=0A=
};=0A=
=0A=
/**=0A=
* If the editor is in source code mode=0A=
*=0A=
* @return {bool}=0A=
* @function=0A=
* @name inSourceMode=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.inSourceMode =3D function () {=0A=
return $editorContainer.hasClass('sourceMode');=0A=
};=0A=
=0A=
/**=0A=
* Gets if the editor is in sourceMode=0A=
*=0A=
* @return boolean=0A=
* @function=0A=
* @name sourceMode=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
/**=0A=
* Sets if the editor is in sourceMode=0A=
*=0A=
* @param {bool} enable=0A=
* @return {this}=0A=
* @function=0A=
* @name sourceMode^2=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.sourceMode =3D function (enable) {=0A=
if(typeof enable !=3D=3D 'boolean')=0A=
return base.inSourceMode();=0A=
=0A=
if((base.inSourceMode() && !enable) || (!base.inSourceMode() && =
enable))=0A=
base.toggleSourceMode();=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Switches between the WYSIWYG and source modes=0A=
*=0A=
* @function=0A=
* @name toggleSourceMode=0A=
* @since 1.4.0=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.toggleSourceMode =3D function () {=0A=
// don't allow switching to WYSIWYG if doesn't support it=0A=
if(!$.sceditor.isWysiwygSupported && base.inSourceMode())=0A=
return;=0A=
=0A=
if(base.inSourceMode())=0A=
base.setWysiwygEditorValue(base.getSourceEditorValue());=0A=
else=0A=
base.setSourceEditorValue(base.getWysiwygEditorValue());=0A=
=0A=
lastRange =3D null;=0A=
$sourceEditor.toggle();=0A=
$wysiwygEditor.toggle();=0A=
=0A=
if(!base.inSourceMode())=0A=
$editorContainer.removeClass('wysiwygMode').addClass('sourceMode');=0A=
else=0A=
$editorContainer.removeClass('sourceMode').addClass('wysiwygMode');=0A=
=0A=
updateToolBar();=0A=
updateActiveButtons();=0A=
};=0A=
=0A=
/**=0A=
* Gets the selected text of the source editor=0A=
* @return {String}=0A=
* @private=0A=
*/=0A=
sourceEditorSelectedText =3D function () {=0A=
sourceEditor.focus();=0A=
=0A=
if(sourceEditor.selectionStart !=3D null)=0A=
return sourceEditor.value.substring(sourceEditor.selectionStart, =
sourceEditor.selectionEnd);=0A=
else if(document.selection.createRange)=0A=
return document.selection.createRange().text;=0A=
};=0A=
=0A=
/**=0A=
* Handles the passed command=0A=
* @private=0A=
*/=0A=
handleCommand =3D function (caller, command) {=0A=
// check if in text mode and handle text commands=0A=
if(base.inSourceMode())=0A=
{=0A=
if(command.txtExec)=0A=
{=0A=
if($.isArray(command.txtExec))=0A=
base.sourceEditorInsertText.apply(base, command.txtExec);=0A=
else=0A=
command.txtExec.call(base, caller, sourceEditorSelectedText());=0A=
}=0A=
=0A=
return;=0A=
}=0A=
=0A=
if(!command.exec)=0A=
return;=0A=
=0A=
if($.isFunction(command.exec))=0A=
command.exec.call(base, caller);=0A=
else=0A=
base.execCommand(command.exec, command.hasOwnProperty("execParam") ? =
command.execParam : null);=0A=
};=0A=
=0A=
/**=0A=
* Saves the current range. Needed for IE because it forgets=0A=
* where the cursor was and what was selected=0A=
* @private=0A=
*/=0A=
saveRange =3D function () {=0A=
/* this is only needed for IE */=0A=
if($.sceditor.ie)=0A=
lastRange =3D rangeHelper.selectedRange();=0A=
};=0A=
=0A=
/**=0A=
* Executes a command on the WYSIWYG editor=0A=
*=0A=
* @param {String} command=0A=
* @param {String|Boolean} [param]=0A=
* @function=0A=
* @name execCommand=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.execCommand =3D function (command, param) {=0A=
var executed =3D false,=0A=
$parentNode =3D $(rangeHelper.parentNode());=0A=
=0A=
base.focus();=0A=
=0A=
// don't apply any comannds to code elements=0A=
if($parentNode.is('code') || $parentNode.parents('code').length =
!=3D=3D 0)=0A=
return;=0A=
=0A=
try=0A=
{=0A=
executed =3D $wysiwygDoc[0].execCommand(command, false, =
param);=0A=
}=0A=
catch (e) {}=0A=
=0A=
// show error if execution failed and an error message exists=0A=
if(!executed && base.commands[command] && =
base.commands[command].errorMessage)=0A=
alert(base._(base.commands[command].errorMessage));=0A=
};=0A=
=0A=
/**=0A=
* Checks if the current selection has changed and tirggers=0A=
* the selectionchanged event if it has.=0A=
*=0A=
* In browsers other than IE, it will check at most once every 100ms.=0A=
* This is because only IE has a selection changed event.=0A=
* @private=0A=
*/=0A=
checkSelectionChanged =3D function() {=0A=
var check =3D function() {=0A=
// rangeHelper could be null if editor was destoryed=0A=
// before the timeout had finished=0A=
if(rangeHelper && !rangeHelper.compare(currentSelection))=0A=
{=0A=
currentSelection =3D rangeHelper.cloneSelected();=0A=
$editorContainer.trigger($.Event('selectionchanged'));=0A=
}=0A=
=0A=
isSelectionCheckPending =3D false;=0A=
};=0A=
=0A=
if(isSelectionCheckPending)=0A=
return;=0A=
=0A=
isSelectionCheckPending =3D true;=0A=
=0A=
// In IE, this is only called on the selectionchanged event so no =
need to=0A=
// limit checking as it should always be valid to do.=0A=
if($.sceditor.ie)=0A=
check();=0A=
else=0A=
setTimeout(check, 100);=0A=
};=0A=
=0A=
/**=0A=
* Checks if the current node has changed and tirggers=0A=
* the nodechanged event if it has=0A=
* @private=0A=
*/=0A=
checkNodeChanged =3D function() {=0A=
// check if node has chnaged=0A=
var node =3D rangeHelper.parentNode();=0A=
=0A=
if(currentNode !=3D=3D node)=0A=
{=0A=
$editorContainer.trigger($.Event('nodechanged', { oldNode: =
currentNode, newNode: node }));=0A=
currentNode =3D node;=0A=
}=0A=
};=0A=
=0A=
/**=0A=
*
Gets the current node that contains the selection/caret in =
WYSIWYG mode.
=0A=
*=0A=
*
Will be null in sourceMode or if there is no selection.
=0A=
* @return {Node}=0A=
* @function=0A=
* @name currentNode=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base.currentNode =3D function() {=0A=
return currentNode;=0A=
};=0A=
=0A=
/**=0A=
* Updates if buttons are active or not=0A=
* @private=0A=
*/=0A=
updateActiveButtons =3D function(e) {=0A=
var state, stateHandler, firstBlock, $button, parent,=0A=
doc =3D $wysiwygDoc[0],=0A=
i =3D btnStateHandlers.length,=0A=
inSourceMode =3D base.sourceMode();=0A=
=0A=
if(!base.sourceMode() && !base.readOnly())=0A=
{=0A=
parent =3D e ? e.newNode : rangeHelper.parentNode();=0A=
firstBlock =3D rangeHelper.getFirstBlockParent(parent);=0A=
=0A=
while(i--)=0A=
{=0A=
state =3D 0;=0A=
stateHandler =3D btnStateHandlers[i];=0A=
$button =3D $toolbar.find('.sceditor-button-' + =
stateHandler.name);=0A=
=0A=
if(inSourceMode && !$button.data('sceditor-txtmode'))=0A=
$button.addClass('disabled');=0A=
else if (!inSourceMode && !$button.data('sceditor-wysiwygmode'))=0A=
$button.addClass('disabled');=0A=
else=0A=
{=0A=
if(typeof stateHandler.state =3D=3D=3D 'string')=0A=
{=0A=
try=0A=
{=0A=
state =3D doc.queryCommandEnabled(stateHandler.state) ? 0 : -1;=0A=
=0A=
if(state > -1)=0A=
state =3D doc.queryCommandState(stateHandler.state) ? 1 : 0;=0A=
}=0A=
catch(ex) {}=0A=
}=0A=
else=0A=
state =3D stateHandler.state.call(base, parent, firstBlock);=0A=
=0A=
if(state < 0)=0A=
$button.addClass('disabled');=0A=
else=0A=
$button.removeClass('disabled');=0A=
=0A=
if(state > 0)=0A=
$button.addClass('active');=0A=
else=0A=
$button.removeClass('active');=0A=
}=0A=
}=0A=
}=0A=
else=0A=
$toolbar.find('.sceditor-button').removeClass('active');=0A=
};=0A=
=0A=
/**=0A=
* Handles any key press in the WYSIWYG editor=0A=
*=0A=
* @private=0A=
*/=0A=
handleKeyPress =3D function(e) {=0A=
var $parentNode,=0A=
i =3D keyPressFuncs.length;=0A=
=0A=
base.closeDropDown();=0A=
=0A=
$parentNode =3D $(rangeHelper.parentNode());=0A=
// "Fix" (ok it's a cludge) for blocklevel elements being duplicated =
in some browsers when=0A=
// enter is pressed instead of inserting a newline=0A=
if(e.which =3D=3D=3D 13)=0A=
{=0A=
if($parentNode.is('code,blockquote,pre') || =
$parentNode.parents('code,blockquote,pre').length !=3D=3D 0)=0A=
{=0A=
lastRange =3D null;=0A=
base.wysiwygEditorInsertHtml('
', null, true);=0A=
return false;=0A=
}=0A=
}=0A=
=0A=
// don't apply to code elements=0A=
if($parentNode.is('code') || $parentNode.parents('code').length =
!=3D=3D 0)=0A=
return;=0A=
=0A=
while(i--)=0A=
keyPressFuncs[i].call(base, e, wysiwygEditor, $sourceEditor);=0A=
};=0A=
=0A=
/**=0A=
* Makes sure that if there is a code or quote tag at the=0A=
* end of the editor, that there is a new line after it.=0A=
*=0A=
* If there wasn't a new line at the end you wouldn't be able=0A=
* to enter any text after a code/quote tag=0A=
* @return {void}=0A=
* @private=0A=
*/=0A=
appendNewLine =3D function() {=0A=
var name, inBlock;=0A=
=0A=
$.sceditor.dom.rTraverse($wysiwygBody, function(node) {=0A=
name =3D node.nodeName.toLowerCase();=0A=
=0A=
if($.inArray(name, requireNewLineFix) > -1)=0A=
inBlock =3D true;=0A=
=0A=
// find the last non-empty text node or line break.=0A=
if((node.nodeType =3D=3D=3D 3 && !/^\s*$/.test(node.nodeValue)) ||=0A=
node.nodeName.toLowerCase() =3D=3D=3D 'br' ||=0A=
($.sceditor.ie && !node.firstChild && =
!$.sceditor.dom.isInline(node, false)))=0A=
{=0A=
// this is the last text or br node, if its in a code or quote tag=0A=
// then add a newline to the end of the editor=0A=
if(inBlock)=0A=
$($wysiwygBody).append($('
' + (!$.sceditor.ie ? ' ' : =
'') + '
\n'));=0A=
=0A=
return false;=0A=
}=0A=
});=0A=
=0A=
var lastNode =3D $wysiwygBody.children().last();=0A=
var blockingNodes =3D {blockquote : 1, code : 1};=0A=
if(lastNode.length){=0A=
var lastNodeName =3D lastNode[0].nodeName.toLowerCase();=0A=
if(lastNodeName =3D=3D 'p'){=0A=
var lastChild =3D lastNode.children().last();=0A=
if(lastChild.length && =
lastChild[0].nodeName.toLowerCase() in blockingNodes)=0A=
lastNode.append("
");=0A=
}=0A=
else if(lastNodeName in blockingNodes){=0A=
$wysiwygBody.append("
");=0A=
}=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Handles form reset event=0A=
* @private=0A=
*/=0A=
handleFormReset =3D function() {=0A=
base.val($original.val());=0A=
};=0A=
=0A=
/**=0A=
* Handles any mousedown press in the WYSIWYG editor=0A=
* @private=0A=
*/=0A=
handleMouseDown =3D function() {=0A=
base.closeDropDown();=0A=
lastRange =3D null;=0A=
};=0A=
=0A=
/**=0A=
* Handles the window resize event. Needed to resize then editor=0A=
* when the window size changes in fluid designs.=0A=
* @ignore=0A=
*/=0A=
handleWindowResize =3D function() {=0A=
var height =3D options.height,=0A=
width =3D options.width;=0A=
=0A=
if(!base.maximize())=0A=
{=0A=
if(height && height.toString().indexOf("%") > -1)=0A=
base.height(height);=0A=
=0A=
if(width && width.toString().indexOf("%") > -1)=0A=
base.width(width);=0A=
}=0A=
else=0A=
base.height('100%', false).width('100%', false);=0A=
};=0A=
=0A=
/**=0A=
* Translates the string into the locale language.=0A=
*=0A=
* Replaces any {0}, {1}, {2}, ect. with the params provided.=0A=
*=0A=
* @param {string} str=0A=
* @param {...String} args=0A=
* @return {string}=0A=
* @function=0A=
* @name _=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
base._ =3D function() {=0A=
var args =3D arguments;=0A=
=0A=
if(locale && locale[args[0]])=0A=
args[0] =3D locale[args[0]];=0A=
=0A=
return args[0].replace(/\{(\d+)\}/g, function(str, p1) {=0A=
return typeof args[p1-0+1] !=3D=3D "undefined" ?=0A=
args[p1-0+1] :=0A=
'{' + p1 + '}';=0A=
});=0A=
};=0A=
=0A=
/**=0A=
* Passes events on to any handlers=0A=
* @private=0A=
* @return void=0A=
*/=0A=
handleEvent =3D function(e) {=0A=
var customEvent,=0A=
clone =3D $.extend({}, e);=0A=
=0A=
// Send event to all plugins=0A=
pluginManager.call(clone.type + 'Event', e, base);=0A=
=0A=
// convert the event into a custom event to send=0A=
delete clone.type;=0A=
customEvent =3D $.Event((e.target =3D=3D=3D sourceEditor ? 'scesrc' : =
'scewys') + e.type, clone);=0A=
=0A=
$editorContainer.trigger.apply($editorContainer, [customEvent, base]);=0A=
=0A=
if(customEvent.isDefaultPrevented())=0A=
e.preventDefault();=0A=
=0A=
if(customEvent.isImmediatePropagationStopped())=0A=
customEvent.stopImmediatePropagation();=0A=
=0A=
if(customEvent.isPropagationStopped())=0A=
customEvent.stopPropagation();=0A=
};=0A=
=0A=
/**=0A=
*
Binds a handler to the specified events
=0A=
*=0A=
*
This function only binds to a limited list of supported =
events. =0A=
* The supported events are:=0A=
*
=0A=
* keyup =0A=
* keydown =0A=
* Keypress =0A=
* blur =0A=
* focus =0A=
* nodechanged =0A=
* When the current node containing the selection changes in =
WYSIWYG mode =0A=
* contextmenu =0A=
* =0A=
* =0A=
*=0A=
*
The events param should be a string containing the event(s)=0A=
* to bind this handler to. If multiple, they should be seperated=0A=
* by spaces.
=0A=
*=0A=
* @param {String} events=0A=
* @param {Function} handler=0A=
* @param {Boolean} excludeWysiwyg If to exclude adding this handler =
to the WYSIWYG editor=0A=
* @param {Boolean} excludeSource if to exclude adding this handler =
to the source editor=0A=
* @return {this}=0A=
* @function=0A=
* @name bind=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.1=0A=
*/=0A=
base.bind =3D function(events, handler, excludeWysiwyg, excludeSource) =
{=0A=
var i =3D events.length;=0A=
events =3D events.split(" ");=0A=
=0A=
while(i--)=0A=
{=0A=
if($.isFunction(handler))=0A=
{=0A=
// Use custom events to allow passing the instance as the 2nd =
argument.=0A=
// Also allows unbinding without unbinding the editors own event =
handlers.=0A=
if(!excludeWysiwyg)=0A=
$editorContainer.bind('scewys' + events[i], handler);=0A=
=0A=
if(!excludeSource)=0A=
$editorContainer.bind('scesrc' + events[i], handler);=0A=
}=0A=
}=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Unbinds an event that was bound using bind().=0A=
*=0A=
* @param {String} events=0A=
* @param {Function} handler=0A=
* @param {Boolean} excludeWysiwyg If to exclude unbinding this =
handler from the WYSIWYG editor=0A=
* @param {Boolean} excludeSource if to exclude unbinding this =
handler from the source editor=0A=
* @return {this}=0A=
* @function=0A=
* @name unbind=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.1=0A=
* @see bind=0A=
*/=0A=
base.unbind =3D function(events, handler, excludeWysiwyg, =
excludeSource) {=0A=
var i =3D events.length;=0A=
events =3D events.split(" ");=0A=
=0A=
while(i--)=0A=
{=0A=
if($.isFunction(handler))=0A=
{=0A=
if(!excludeWysiwyg)=0A=
$editorContainer.unbind('scewys' + events[i], handler);=0A=
=0A=
if(!excludeSource)=0A=
$editorContainer.unbind('scesrc' + events[i], handler);=0A=
}=0A=
}=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Blurs the editors input area=0A=
*=0A=
* @return {this}=0A=
* @function=0A=
* @name blur=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.3.6=0A=
*/=0A=
/**=0A=
* Adds a handler to the editors blur event=0A=
*=0A=
* @param {Function} handler=0A=
* @param {Boolean} excludeWysiwyg If to exclude adding this handler =
to the WYSIWYG editor=0A=
* @param {Boolean} excludeSource if to exclude adding this handler =
to the source editor=0A=
* @return {this}=0A=
* @function=0A=
* @name blur^2=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.1=0A=
*/=0A=
base.blur =3D function(handler, excludeWysiwyg, excludeSource) {=0A=
if($.isFunction(handler))=0A=
base.bind('blur', handler, excludeWysiwyg, excludeSource);=0A=
else if(!base.sourceMode())=0A=
{=0A=
// Must use an element that isn't display:hidden or =
visibility:hidden for iOS=0A=
// so create a special blur element to use=0A=
if(!$blurElm)=0A=
$blurElm =3D $('
').appendTo($editorContainer);=0A=
=0A=
=
$blurElm.removeAttr("disabled").show().focus().blur().hide().attr("disabl=
ed", "disabled");=0A=
}=0A=
else=0A=
$sourceEditor.blur();=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Fucuses the editors input area=0A=
*=0A=
* @return {this}=0A=
* @function=0A=
* @name focus=0A=
* @memberOf jQuery.sceditor.prototype=0A=
*/=0A=
/**=0A=
* Adds an event handler to the focus event=0A=
*=0A=
* @param {Function} handler=0A=
* @param {Boolean} excludeWysiwyg If to exclude adding this handler =
to the WYSIWYG editor=0A=
* @param {Boolean} excludeSource if to exclude adding this handler =
to the source editor=0A=
* @return {this}=0A=
* @function=0A=
* @name focus^2=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.1=0A=
*/=0A=
base.focus =3D function (handler, excludeWysiwyg, excludeSource) {=0A=
if($.isFunction(handler))=0A=
base.bind('focus', handler, excludeWysiwyg, excludeSource);=0A=
else=0A=
{=0A=
if(!base.inSourceMode())=0A=
{=0A=
wysiwygEditor.contentWindow.focus();=0A=
$wysiwygBody[0].focus();=0A=
=0A=
// Needed for IE < 9=0A=
if(lastRange)=0A=
{=0A=
rangeHelper.selectRange(lastRange);=0A=
=0A=
// remove the stored range after being set.=0A=
// If the editor loses focus it should be=0A=
// saved again.=0A=
lastRange =3D null;=0A=
}=0A=
}=0A=
else=0A=
sourceEditor.focus();=0A=
}=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Adds a handler to the key down event=0A=
*=0A=
* @param {Function} handler=0A=
* @param {Boolean} excludeWysiwyg If to exclude adding this handler =
to the WYSIWYG editor=0A=
* @param {Boolean} excludeSource if to exclude adding this handler =
to the source editor=0A=
* @return {this}=0A=
* @function=0A=
* @name keyDown=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.1=0A=
*/=0A=
base.keyDown =3D function(handler, excludeWysiwyg, excludeSource) {=0A=
return base.bind('keydown', handler, excludeWysiwyg, excludeSource);=0A=
};=0A=
=0A=
/**=0A=
* Adds a handler to the key press event=0A=
*=0A=
* @param {Function} handler=0A=
* @param {Boolean} excludeWysiwyg If to exclude adding this handler =
to the WYSIWYG editor=0A=
* @param {Boolean} excludeSource if to exclude adding this handler =
to the source editor=0A=
* @return {this}=0A=
* @function=0A=
* @name keyPress=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.1=0A=
*/=0A=
base.keyPress =3D function(handler, excludeWysiwyg, excludeSource) {=0A=
return base.bind('keypress', handler, excludeWysiwyg, excludeSource);=0A=
};=0A=
=0A=
/**=0A=
* Adds a handler to the key up event=0A=
*=0A=
* @param {Function} handler=0A=
* @param {Boolean} excludeWysiwyg If to exclude adding this handler =
to the WYSIWYG editor=0A=
* @param {Boolean} excludeSource if to exclude adding this handler =
to the source editor=0A=
* @return {this}=0A=
* @function=0A=
* @name keyUp=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.1=0A=
*/=0A=
base.keyUp =3D function(handler, excludeWysiwyg, excludeSource) {=0A=
return base.bind('keyup', handler, excludeWysiwyg, excludeSource);=0A=
};=0A=
=0A=
/**=0A=
*
Adds a handler to the node changed event.
=0A=
*=0A=
*
Happends whenever the node containing the selection/caret =
changes in WYSIWYG mode.
=0A=
*=0A=
* @param {Function} handler=0A=
* @return {this}=0A=
* @function=0A=
* @name nodeChanged=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.1=0A=
*/=0A=
base.nodeChanged =3D function(handler) {=0A=
return base.bind('nodechanged', handler, false, true);=0A=
};=0A=
=0A=
/**=0A=
*
Adds a handler to the selection changed event
=0A=
*=0A=
*
Happends whenever the selection changes in WYSIWYG mode.
=0A=
*=0A=
* @param {Function} handler=0A=
* @return {this}=0A=
* @function=0A=
* @name selectionChanged=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.1=0A=
*/=0A=
base.selectionChanged =3D function(handler) {=0A=
return base.bind('selectionchanged', handler, false, true);=0A=
};=0A=
=0A=
/**=0A=
* Emoticons keypress handler=0A=
* @private=0A=
*/=0A=
emoticonsKeyPress =3D function (e) {=0A=
var pos =3D 0,=0A=
curChar =3D String.fromCharCode(e.which);=0A=
=0A=
if(!base.emoticonsCache) {=0A=
base.emoticonsCache =3D [];=0A=
=0A=
$.each($.extend({}, options.emoticons.more, =
options.emoticons.dropdown, options.emoticons.hidden), function(key, =
url) {=0A=
base.emoticonsCache[pos++] =3D [=0A=
key,=0A=
_tmpl("emoticon", {=0A=
key: key,=0A=
url: url.url || url,=0A=
tooltip: url.tooltip || key=0A=
})=0A=
];=0A=
});=0A=
=0A=
base.emoticonsCache.sort(function(a, b){=0A=
return a[0].length - b[0].length;=0A=
});=0A=
}=0A=
=0A=
if(!base.longestEmoticonCode)=0A=
base.longestEmoticonCode =3D =
base.emoticonsCache[base.emoticonsCache.length - 1][0].length;=0A=
=0A=
if(base.getRangeHelper().raplaceKeyword(base.emoticonsCache, true, =
true, base.longestEmoticonCode, options.emoticonsCompat, curChar))=0A=
{=0A=
if(/^\s$/.test(curChar) && options.emoticonsCompat)=0A=
return true;=0A=
=0A=
e.preventDefault();=0A=
e.stopPropagation();=0A=
return false;=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Gets if emoticons are currently enabled=0A=
* @return {boolean}=0A=
* @function=0A=
* @name emoticons=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.2=0A=
*/=0A=
/**=0A=
* Enables/disables emoticons=0A=
*=0A=
* @param {boolean} enable=0A=
* @return {this}=0A=
* @function=0A=
* @name emoticons^2=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.2=0A=
*/=0A=
base.emoticons =3D function(enable) {=0A=
if(!enable && enable !=3D=3D false)=0A=
return options.emoticonsEnabled;=0A=
=0A=
options.emoticonsEnabled =3D enable;=0A=
=0A=
if(enable)=0A=
{=0A=
$wysiwygBody.keypress(emoticonsKeyPress);=0A=
=0A=
if(!base.sourceMode())=0A=
{=0A=
rangeHelper.saveRange();=0A=
=0A=
$wysiwygBody.html(replaceEmoticons($wysiwygBody.html()));=0A=
=0A=
rangeHelper.restoreRange();=0A=
}=0A=
}=0A=
else=0A=
{=0A=
=
$wysiwygBody.find('img[data-sceditor-emoticon]').replaceWith(function() {=0A=
return $(this).data('sceditor-emoticon');=0A=
});=0A=
=0A=
$wysiwygBody.unbind('keypress', emoticonsKeyPress);=0A=
}=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Gets the current WYSIWYG editors inline CSS=0A=
*=0A=
* @return {string}=0A=
* @function=0A=
* @name css=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.3=0A=
*/=0A=
/**=0A=
* Sets inline CSS for the WYSIWYG editor=0A=
*=0A=
* @param {string} css=0A=
* @return {this}=0A=
* @function=0A=
* @name css^2=0A=
* @memberOf jQuery.sceditor.prototype=0A=
* @since 1.4.3=0A=
*/=0A=
base.css =3D function(css) {=0A=
if(!inlineCss)=0A=
inlineCss =3D $('').appendTo($wysiwygDoc.find('head'))[0];=0A=
=0A=
if(typeof css !=3D 'string')=0A=
return inlineCss.styleSheet ? inlineCss.styleSheet.cssText : =
inlineCss.innerHTML;=0A=
=0A=
if(inlineCss.styleSheet)=0A=
inlineCss.styleSheet.cssText =3D css;=0A=
else=0A=
inlineCss.innerHTML =3D css;=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Handles the keydown event, used for shortcuts=0A=
* @private=0A=
*/=0A=
handleKeyDown =3D function(e) {=0A=
var shortcut =3D [],=0A=
shift_keys =3D {=0A=
'`':'~', '1':'!', '2':'@', '3':'#', '4':'$', '5':'%', '6':'^',=0A=
'7':'&', '8':'*', '9':'(', '0':')', '-':'_', '=3D':'+', ';':':',=0A=
'\'':'"', ',':'<', '.':'>', '/':'?', '\\':'|', '[':'{', ']':'}'=0A=
},=0A=
special_keys =3D {=0A=
8:'backspace', 9:'tab', 13:'enter', 19:'pause', 20:'capslock', =
27:'esc',=0A=
32:'space', 33:'pageup', 34:'pagedown', 35:'end', 36:'home', =
37:'left',=0A=
38:'up', 39:'right', 40:'down', 45:'insert', 46:'del', 91: 'win', =
92: 'win',=0A=
93:'select', 96:'0', 97:'1', 98:'2', 99:'3', 100:'4', 101:'5', =
102:'6',=0A=
103:'7', 104:'8', 105:'9', 106:'*', 107:'+', 109:'-', 110:'.', =
111:'/',=0A=
112:'f1', 113:'f2', 114:'f3', 115:'f4', 116:'f5', 117:'f6', =
118:'f7',=0A=
119:'f8', 120:'f9', 121:'f10', 122:'f11', 123:'f12', 144:'numlock',=0A=
145:'scrolllock', 186:';', 187:'=3D', 188:',', 189:'-', 190:'.', =
191:'/',=0A=
192:'`', 219:'[', 220:'\\', 221:']', 222:'\''=0A=
},=0A=
numpad_shift_keys =3D {=0A=
109:'-', 110:'del', 111:'/', 96:'0', 97:'1', 98:'2', 99:'3',=0A=
100:'4', 101:'5', 102:'6', 103:'7', 104:'8', 105:'9'=0A=
},=0A=
which =3D e.which,=0A=
character =3D special_keys[which] || =
String.fromCharCode(which).toLowerCase();=0A=
=0A=
if(e.ctrlKey)=0A=
shortcut.push('ctrl');=0A=
=0A=
if(e.altKey)=0A=
shortcut.push('alt');=0A=
=0A=
if(e.shiftKey)=0A=
{=0A=
shortcut.push('shift');=0A=
=0A=
if(numpad_shift_keys[which])=0A=
character =3D numpad_shift_keys[which];=0A=
else if(shift_keys[character])=0A=
character =3D shift_keys[character];=0A=
}=0A=
=0A=
// Shift is 16, ctrl is 17 and alt is 18=0A=
if(character && (which < 16 || which > 18))=0A=
shortcut.push(character);=0A=
=0A=
shortcut =3D shortcut.join('+');=0A=
if(shortcutHandlers[shortcut])=0A=
return shortcutHandlers[shortcut].call(base);=0A=
};=0A=
=0A=
/**=0A=
* Adds a shortcut handler to the editor=0A=
* @param {String} shortcut=0A=
* @param {String|Function} cmd=0A=
* @return {jQuery.sceditor}=0A=
*/=0A=
base.addShortcut =3D function(shortcut, cmd) {=0A=
shortcut =3D shortcut.toLowerCase();=0A=
=0A=
if(typeof cmd =3D=3D=3D "string")=0A=
{=0A=
shortcutHandlers[shortcut] =3D function() {=0A=
handleCommand($toolbar.find('.sceditor-button-' + cmd), =
base.commands[cmd]);=0A=
=0A=
return false;=0A=
};=0A=
}=0A=
else=0A=
shortcutHandlers[shortcut] =3D cmd;=0A=
=0A=
return this;=0A=
};=0A=
=0A=
/**=0A=
* Removes a shortcut handler=0A=
* @param {String} shortcut=0A=
* @return {jQuery.sceditor}=0A=
*/=0A=
base.removeShortcut =3D function(shortcut) {=0A=
delete shortcutHandlers[shortcut.toLowerCase()];=0A=
=0A=
return this;=0A=
};=0A=
=0A=
// run the initializer=0A=
init();=0A=
};=0A=
=0A=
/**=0A=
*
Detects the version of IE is being used if any.
=0A=
*=0A=
*
Returns the IE version number or undefined if not IE.
=0A=
*=0A=
*
Source: https://gist.github.com/527683 with extra code for IE 10 =
detection
=0A=
* @function=0A=
* @name ie=0A=
* @memberOf jQuery.sceditor=0A=
* @type {int}=0A=
*/=0A=
$.sceditor.ie =3D (function(){=0A=
var undef,=0A=
v =3D 3,=0A=
div =3D document.createElement('div'),=0A=
all =3D div.getElementsByTagName('i');=0A=
=0A=
do {=0A=
div.innerHTML =3D '';=0A=
} while (all[0]);=0A=
=0A=
// Detect IE 10 as it doesn't support conditional comments.=0A=
if((document.all && window.atob))=0A=
v =3D 10;=0A=
=0A=
return v > 4 ? v : undef;=0A=
}());=0A=
=0A=
/**=0A=
* If the browser supports WYSIWYG editing (e.g. older mobile browsers).=0A=
* @function=0A=
* @name isWysiwygSupported=0A=
* @memberOf jQuery.sceditor=0A=
* @return {Boolean}=0A=
*/=0A=
$.sceditor.isWysiwygSupported =3D (function() {=0A=
var match,=0A=
contentEditable =3D $('
')[0].contentEditable,=0A=
contentEditableSupported =3D typeof contentEditable !=3D=3D =
'undefined' && contentEditable !=3D=3D 'inherit',=0A=
userAgent =3D navigator.userAgent;=0A=
=0A=
if(!contentEditableSupported)=0A=
return false;=0A=
=0A=
// I think blackberry supports it or will at least=0A=
// give a valid value for the contentEditable detection above=0A=
// so it's not included here.=0A=
=0A=
=0A=
// The latest WebOS does support contentEditable.=0A=
// Still till need to check if all supported=0A=
// versions of WebOS support contentEditable=0A=
=0A=
=0A=
// I hate having to use UA sniffing but some mobile browsers say they =
support=0A=
// contentediable/design mode when it isn't usable (i.e. you can't =
enter text, ect.).=0A=
// This is the only way I can think of to detect them which is also =
how every other=0A=
// editor I've seen deals with this=0A=
var isUnsupported =3D /Opera Mobi|Opera Mini/i.test(userAgent);=0A=
=0A=
if(/Android/i.test(userAgent))=0A=
{=0A=
=0A=
isUnsupported =3D true;=0A=
if(/Safari/.test(userAgent))=0A=
{=0A=
// Android browser 534+ supports content editable=0A=
// This also matches Chrome which supports content editable too=0A=
match =3D /Safari\/(\d+)/.exec(userAgent);=0A=
isUnsupported =3D (!match || !match[1] ? true : match[1] < 534);=0A=
}=0A=
}=0A=
=0A=
// Amazon Silk doesn't but as it uses webkit like android=0A=
// it might in a later version if it uses version >=3D 534=0A=
if(/ Silk\//i.test(userAgent))=0A=
{=0A=
match =3D /AppleWebKit\/(\d+)/.exec(userAgent);=0A=
isUnsupported =3D (!match || !match[1] ? true : match[1] < 534);=0A=
}=0A=
=0A=
// iOS 5+ supports content editable=0A=
if(/iPhone|iPod|iPad/i.test(userAgent))=0A=
isUnsupported =3D !/OS [5-9](_\d)+ like Mac OS X/i.test(userAgent);=0A=
=0A=
// FireFox does support WYSIWYG on mobiles so override=0A=
// any previous value if using FF=0A=
if(/fennec/i.test(userAgent))=0A=
isUnsupported =3D false;=0A=
=0A=
return !isUnsupported;=0A=
}());=0A=
=0A=
/**=0A=
* Escapes a string so it's safe to use in regex=0A=
*=0A=
* @param {String} str=0A=
* @return {String}=0A=
* @name regexEscape=0A=
* @memberOf jQuery.sceditor=0A=
*/=0A=
$.sceditor.regexEscape =3D function (str) {=0A=
return str.replace(/[\$\?\[\]\.\*\(\)\|\\]/g, "\\$&")=0A=
.replace("<", "<")=0A=
.replace(">", ">");=0A=
};=0A=
=0A=
/**=0A=
* Escapes all HTML entites in a string=0A=
*=0A=
* @param {String} str=0A=
* @return {String}=0A=
* @name escapeEntities=0A=
* @memberOf jQuery.sceditor=0A=
* @since 1.4.1=0A=
*/=0A=
$.sceditor.escapeEntities =3D function(str) {=0A=
if(!str)=0A=
return str;=0A=
=0A=
return str.replace(/&/g, "&")=0A=
.replace(//g, ">")=0A=
.replace(/ {2}/g, " ")=0A=
.replace(/\r\n|\r/g, "\n")=0A=
.replace(/\n/g, "
");=0A=
};=0A=
=0A=
/**=0A=
* Map containing the loaded SCEditor locales=0A=
* @type {Object}=0A=
* @name locale=0A=
* @memberOf jQuery.sceditor=0A=
*/=0A=
$.sceditor.locale =3D {};=0A=
=0A=
/**=0A=
* Map of all the commands for SCEditor=0A=
* @type {Object}=0A=
* @name commands=0A=
* @memberOf jQuery.sceditor=0A=
*/=0A=
$.sceditor.commands =3D {=0A=
// START_COMMAND: Bold=0A=
bold: {=0A=
exec: "bold",=0A=
tooltip: "Bold",=0A=
shortcut: "ctrl+b"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Italic=0A=
italic: {=0A=
exec: "italic",=0A=
tooltip: "Italic",=0A=
shortcut: "ctrl+i"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Underline=0A=
underline: {=0A=
exec: "underline",=0A=
tooltip: "Underline",=0A=
shortcut: "ctrl+u"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Strikethrough=0A=
strike: {=0A=
exec: "strikethrough",=0A=
tooltip: "Strikethrough"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Subscript=0A=
subscript: {=0A=
exec: "subscript",=0A=
tooltip: "Subscript"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Superscript=0A=
superscript: {=0A=
exec: "superscript",=0A=
tooltip: "Superscript"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Left=0A=
left: {=0A=
exec: "justifyleft",=0A=
tooltip: "Align left"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Centre=0A=
center: {=0A=
exec: "justifycenter",=0A=
tooltip: "Center"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Right=0A=
right: {=0A=
exec: "justifyright",=0A=
tooltip: "Align right"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Justify=0A=
justify: {=0A=
exec: "justifyfull",=0A=
tooltip: "Justify"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Font=0A=
font: {=0A=
_dropDown: function(editor, caller, callback) {=0A=
var fonts =3D editor.opts.fonts.split(","),=0A=
content =3D $("
"),=0A=
/** @private */=0A=
clickFunc =3D function () {=0A=
callback($(this).data('font'));=0A=
editor.closeDropDown(true);=0A=
return false;=0A=
};=0A=
=0A=
for (var i=3D0; i < fonts.length; i++)=0A=
content.append(_tmpl('fontOpt', {font: fonts[i]}, =
true).click(clickFunc));=0A=
=0A=
editor.createDropDown(caller, "font-picker", content);=0A=
},=0A=
exec: function (caller) {=0A=
var editor =3D this;=0A=
=0A=
$.sceditor.command.get('font')._dropDown(=0A=
editor,=0A=
caller,=0A=
function(fontName) {=0A=
editor.execCommand("fontname", fontName);=0A=
}=0A=
);=0A=
},=0A=
tooltip: "Font Name"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Size=0A=
size: {=0A=
_dropDown: function(editor, caller, callback) {=0A=
var content =3D $("
"),=0A=
/** @private */=0A=
clickFunc =3D function (e) {=0A=
callback($(this).data('size'));=0A=
editor.closeDropDown(true);=0A=
e.preventDefault();=0A=
};=0A=
=0A=
for (var i=3D1; i<=3D 7; i++)=0A=
content.append(_tmpl('sizeOpt', {size: i}, true).click(clickFunc));=0A=
=0A=
editor.createDropDown(caller, "fontsize-picker", content);=0A=
},=0A=
exec: function (caller) {=0A=
var editor =3D this;=0A=
=0A=
$.sceditor.command.get('size')._dropDown(=0A=
editor,=0A=
caller,=0A=
function(fontSize) {=0A=
editor.execCommand("fontsize", fontSize);=0A=
}=0A=
);=0A=
},=0A=
tooltip: "Font Size"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Colour=0A=
color: {=0A=
_dropDown: function(editor, caller, callback) {=0A=
var i, x, color, colors,=0A=
genColor =3D {r: 255, g: 255, b: 255},=0A=
content =3D $("
"),=0A=
colorColumns =3D =
editor.opts.colors?editor.opts.colors.split("|"):new Array(21),=0A=
// IE is slow at string concation so use an array=0A=
html =3D [],=0A=
cmd =3D $.sceditor.command.get('color');=0A=
=0A=
if(!cmd._htmlCache)=0A=
{=0A=
for (i=3D0; i < colorColumns.length; ++i)=0A=
{=0A=
colors =3D colorColumns[i]?colorColumns[i].split(","):new =
Array(21);=0A=
=0A=
html.push('
');=0A=
for (x=3D0; x < colors.length; ++x)=0A=
{=0A=
// use pre defined colour if can otherwise use the generated color=0A=
color =3D colors[x] || "#" + genColor.r.toString(16) + =
genColor.g.toString(16) + genColor.b.toString(16);=0A=
=0A=
html.push('
');=0A=
=0A=
// calculate the next generated color=0A=
if(x%5=3D=3D=3D0)=0A=
{=0A=
genColor.g -=3D 51;=0A=
genColor.b =3D 255;=0A=
}=0A=
else=0A=
genColor.b -=3D 51;=0A=
}=0A=
html.push('
');=0A=
=0A=
// calculate the next generated color=0A=
if(i%5=3D=3D=3D0)=0A=
{=0A=
genColor.r -=3D 51;=0A=
genColor.g =3D 255;=0A=
genColor.b =3D 255;=0A=
}=0A=
else=0A=
{=0A=
genColor.g =3D 255;=0A=
genColor.b =3D 255;=0A=
}=0A=
}=0A=
=0A=
cmd._htmlCache =3D html.join('');=0A=
}=0A=
=0A=
content.append(cmd._htmlCache)=0A=
.find('a')=0A=
.click(function (e) {=0A=
callback($(this).attr('data-color'));=0A=
editor.closeDropDown(true);=0A=
e.preventDefault();=0A=
});=0A=
=0A=
editor.createDropDown(caller, "color-picker", content);=0A=
},=0A=
exec: function (caller) {=0A=
var editor =3D this;=0A=
=0A=
$.sceditor.command.get('color')._dropDown(=0A=
editor,=0A=
caller,=0A=
function(color) {=0A=
editor.execCommand("forecolor", color);=0A=
}=0A=
);=0A=
},=0A=
tooltip: "Font Color"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Remove Format=0A=
removeformat: {=0A=
exec: "removeformat",=0A=
tooltip: "Remove Formatting"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Cut=0A=
cut: {=0A=
exec: "cut",=0A=
tooltip: "Cut",=0A=
errorMessage: "Your browser does not allow the cut command. Please =
use the keyboard shortcut Ctrl/Cmd-X"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Copy=0A=
copy: {=0A=
exec: "copy",=0A=
tooltip: "Copy",=0A=
errorMessage: "Your browser does not allow the copy command. Please =
use the keyboard shortcut Ctrl/Cmd-C"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Paste=0A=
paste: {=0A=
exec: "paste",=0A=
tooltip: "Paste",=0A=
errorMessage: "Your browser does not allow the paste command. Please =
use the keyboard shortcut Ctrl/Cmd-V"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Paste Text=0A=
pastetext: {=0A=
exec: function (caller) {=0A=
var val,=0A=
editor =3D this,=0A=
content =3D _tmpl("pastetext", {=0A=
label: editor._("Paste your text inside the following box:"),=0A=
insert: editor._("Insert")=0A=
}, true);=0A=
=0A=
content.find('.button').click(function (e) {=0A=
val =3D content.find("#txt").val();=0A=
=0A=
if(val)=0A=
editor.wysiwygEditorInsertText(val);=0A=
=0A=
editor.closeDropDown(true);=0A=
e.preventDefault();=0A=
});=0A=
=0A=
editor.createDropDown(caller, "pastetext", content);=0A=
},=0A=
tooltip: "Paste Text"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Bullet List=0A=
bulletlist: {=0A=
exec: "insertunorderedlist",=0A=
tooltip: "Bullet list"=0A=
},=0A=
// END_COMMAND=0A=
// START_COMMAND: Ordered List=0A=
orderedlist: {=0A=
exec: "insertorderedlist",=0A=
tooltip: "Numbered list"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Table=0A=
table: {=0A=
exec: function (caller) {=0A=
var editor =3D this,=0A=
content =3D _tmpl("table", {=0A=
rows: editor._("Rows:"),=0A=
cols: editor._("Cols:"),=0A=
insert: editor._("Insert")=0A=
}, true);=0A=
=0A=
content.find('.button').click(function (e) {=0A=
var rows =3D content.find("#rows").val() - 0,=0A=
cols =3D content.find("#cols").val() - 0,=0A=
html =3D '
';=0A=
=0A=
if(rows < 1 || cols < 1)=0A=
return;=0A=
=0A=
for (var row=3D0; row < rows; row++) {=0A=
html +=3D '';=0A=
=0A=
for (var col=3D0; col < cols; col++)=0A=
html +=3D '' + ($.sceditor.ie ? '' : ' ') + ' ';=0A=
=0A=
html +=3D ' ';=0A=
}=0A=
=0A=
html +=3D '
';=0A=
=0A=
editor.wysiwygEditorInsertHtml(html);=0A=
editor.closeDropDown(true);=0A=
e.preventDefault();=0A=
});=0A=
=0A=
editor.createDropDown(caller, "inserttable", content);=0A=
},=0A=
tooltip: "Insert a table"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Horizontal Rule=0A=
horizontalrule: {=0A=
exec: "inserthorizontalrule",=0A=
tooltip: "Insert a horizontal rule"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Code=0A=
code: {=0A=
forceNewLineAfter: ['code'],=0A=
exec: function () {=0A=
this.wysiwygEditorInsertHtml('
', '
');=0A=
},=0A=
tooltip: "Code"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Image=0A=
image: {=0A=
exec: function (caller) {=0A=
var editor =3D this,=0A=
content =3D _tmpl("image", {=0A=
url: editor._("URL:"),=0A=
width: editor._("Width (optional):"),=0A=
height: editor._("Height (optional):"),=0A=
insert: editor._("Insert")=0A=
}, true);=0A=
=0A=
content.find('.button').click(function (e) {=0A=
var val =3D content.find("#image").val(),=0A=
width =3D content.find("#width").val(),=0A=
height =3D content.find("#height").val(),=0A=
attrs =3D '';=0A=
=0A=
if(width)=0A=
attrs +=3D ' width=3D"' + width + '"';=0A=
if(height)=0A=
attrs +=3D ' height=3D"' + height + '"';=0A=
=0A=
if(val && val !=3D=3D "http://")=0A=
editor.wysiwygEditorInsertHtml('
');=0A=
=0A=
editor.closeDropDown(true);=0A=
e.preventDefault();=0A=
});=0A=
=0A=
editor.createDropDown(caller, "insertimage", content);=0A=
},=0A=
tooltip: "Insert an image"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: E-mail=0A=
email: {=0A=
exec: function (caller) {=0A=
var editor =3D this,=0A=
content =3D _tmpl("email", {=0A=
label: editor._("E-mail:"),=0A=
insert: editor._("Insert")=0A=
}, true);=0A=
=0A=
content.find('.button').click(function (e) {=0A=
var val =3D content.find("#email").val();=0A=
=0A=
if(val)=0A=
{=0A=
// needed for IE to reset the last range=0A=
editor.focus();=0A=
=0A=
if(!editor.getRangeHelper().selectedHtml())=0A=
editor.wysiwygEditorInsertHtml('
' + val + ' ');=0A=
else=0A=
editor.execCommand("createlink", 'mailto:' + val);=0A=
}=0A=
=0A=
editor.closeDropDown(true);=0A=
e.preventDefault();=0A=
});=0A=
=0A=
editor.createDropDown(caller, "insertemail", content);=0A=
},=0A=
tooltip: "Insert an email"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Link=0A=
link: {=0A=
exec: function (caller) {=0A=
var editor =3D this,=0A=
content =3D _tmpl("link", {=0A=
url: editor._("URL:"),=0A=
desc: editor._("Description (optional):"),=0A=
ins: editor._("Insert")=0A=
}, true);=0A=
=0A=
content.find('.button').click(function (e) {=0A=
var val =3D content.find("#link").val(),=0A=
description =3D content.find("#des").val();=0A=
=0A=
if(val && val !=3D=3D "http://") {=0A=
// needed for IE to reset the last range=0A=
editor.focus();=0A=
=0A=
if(!editor.getRangeHelper().selectedHtml() || description)=0A=
{=0A=
if(!description)=0A=
description =3D val;=0A=
=0A=
editor.wysiwygEditorInsertHtml('
' + =
description + ' ');=0A=
}=0A=
else=0A=
editor.execCommand("createlink", val);=0A=
}=0A=
=0A=
editor.closeDropDown(true);=0A=
e.preventDefault();=0A=
});=0A=
=0A=
editor.createDropDown(caller, "insertlink", content);=0A=
},=0A=
tooltip: "Insert a link"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Unlink=0A=
unlink: {=0A=
exec: "unlink",=0A=
tooltip: "Unlink"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
=0A=
// START_COMMAND: Quote=0A=
quote: {=0A=
forceNewLineAfter: ['blockquote'],=0A=
exec: function (caller, html, author) {=0A=
var before =3D '
',=0A=
end =3D ' ';=0A=
=0A=
// if there is HTML passed set end to null so any selected=0A=
// text is replaced=0A=
if(html)=0A=
{=0A=
author =3D (author ? '
' + author + ' ' : '');=0A=
before =3D before + author + html + end + '
';=0A=
end =3D null;=0A=
}=0A=
// if not add a newline to the end of the inserted quote=0A=
else if(this.getRangeHelper().selectedHtml() =3D=3D=3D "")=0A=
end =3D '
' + end;=0A=
=0A=
this.wysiwygEditorInsertHtml(before, end);=0A=
},=0A=
tooltip: "Insert a Quote"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Emoticons=0A=
emoticon: {=0A=
exec: function (caller) {=0A=
var editor =3D this;=0A=
=0A=
var createContent =3D function(includeMore) {=0A=
var endSpace =3D (editor.opts.emoticonsCompat ? ' ' : ''),=0A=
$content =3D $('
'),=0A=
$line =3D $('
').appendTo($content),=0A=
emoticons =3D $.extend({}, editor.opts.emoticons.dropdown, =
includeMore ? editor.opts.emoticons.more : {}),=0A=
perLine =3D 0;=0A=
=0A=
for(var prop in emoticons)=0A=
{=0A=
if(emoticons.hasOwnProperty(prop))=0A=
perLine++;=0A=
}=0A=
=0A=
perLine =3D Math.sqrt(perLine);=0A=
=0A=
$.each(emoticons, function(code, emoticon) {=0A=
$line.append($('
')=0A=
.attr({=0A=
src: emoticon.url || emoticon,=0A=
alt: code,=0A=
title: emoticon.tooltip || code=0A=
})=0A=
.click(function() {=0A=
editor.insert($(this).attr('alt') + =
endSpace).closeDropDown(true);=0A=
=0A=
return false;=0A=
})=0A=
);=0A=
=0A=
if($line.children().length >=3D perLine)=0A=
$line =3D $('
').appendTo($content);=0A=
});=0A=
=0A=
if(!includeMore)=0A=
{=0A=
$content.append($(=0A=
editor._('
{0} ', editor._("More"))=0A=
).click(function () {=0A=
editor.createDropDown(caller, "more-emoticons", =
createContent(true));=0A=
return false;=0A=
}));=0A=
}=0A=
=0A=
return $content;=0A=
};=0A=
=0A=
editor.createDropDown(caller, "emoticons", createContent(false));=0A=
},=0A=
txtExec: function(caller) {=0A=
$.sceditor.command.get('emoticon').exec.call(this, caller);=0A=
},=0A=
tooltip: "Insert an emoticon"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: YouTube=0A=
youtube: {=0A=
_dropDown: function (editor, caller, handleIdFunc) {=0A=
var matches,=0A=
content =3D _tmpl("youtubeMenu", {=0A=
label: editor._("Video URL:"),=0A=
insert: editor._("Insert")=0A=
}, true);=0A=
=0A=
content.find('.button').click(function (e) {=0A=
var val =3D content.find("#link").val().replace("http://", "");=0A=
=0A=
if (val !=3D=3D "") {=0A=
matches =3D val.match(/(?:v=3D|v\/|embed\/|youtu.be\/)(.{11})/);=0A=
=0A=
if (matches)=0A=
val =3D matches[1];=0A=
=0A=
if (/^[a-zA-Z0-9_\-]{11}$/.test(val))=0A=
handleIdFunc(val);=0A=
else=0A=
alert('Invalid YouTube video');=0A=
}=0A=
=0A=
editor.closeDropDown(true);=0A=
e.preventDefault();=0A=
});=0A=
=0A=
editor.createDropDown(caller, "insertlink", content);=0A=
},=0A=
exec: function (caller) {=0A=
var editor =3D this;=0A=
=0A=
$.sceditor.command.get('youtube')._dropDown(=0A=
editor,=0A=
caller,=0A=
function(id) {=0A=
editor.wysiwygEditorInsertHtml(_tmpl("youtube", { id: id }));=0A=
}=0A=
);=0A=
},=0A=
tooltip: "Insert a YouTube video"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Date=0A=
date: {=0A=
_date: function (editor) {=0A=
var now =3D new Date(),=0A=
year =3D now.getYear(),=0A=
month =3D now.getMonth()+1,=0A=
day =3D now.getDate();=0A=
=0A=
if(year < 2000)=0A=
year =3D 1900 + year;=0A=
if(month < 10)=0A=
month =3D "0" + month;=0A=
if(day < 10)=0A=
day =3D "0" + day;=0A=
=0A=
return editor.opts.dateFormat.replace(/year/i, =
year).replace(/month/i, month).replace(/day/i, day);=0A=
},=0A=
exec: function () {=0A=
this.insertText($.sceditor.command.get('date')._date(this));=0A=
},=0A=
txtExec: function () {=0A=
this.insertText($.sceditor.command.get('date')._date(this));=0A=
},=0A=
tooltip: "Insert current date"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Time=0A=
time: {=0A=
_time: function () {=0A=
var now =3D new Date(),=0A=
hours =3D now.getHours(),=0A=
mins =3D now.getMinutes(),=0A=
secs =3D now.getSeconds();=0A=
=0A=
if(hours < 10)=0A=
hours =3D "0" + hours;=0A=
if(mins < 10)=0A=
mins =3D "0" + mins;=0A=
if(secs < 10)=0A=
secs =3D "0" + secs;=0A=
=0A=
return hours + ':' + mins + ':' + secs;=0A=
},=0A=
exec: function () {=0A=
this.insertText($.sceditor.command.get('time')._time());=0A=
},=0A=
txtExec: function () {=0A=
this.insertText($.sceditor.command.get('time')._time());=0A=
},=0A=
tooltip: "Insert current time"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
=0A=
// START_COMMAND: Ltr=0A=
ltr: {=0A=
state: function(parents, firstBlock) {=0A=
return firstBlock && firstBlock.style.direction =3D=3D=3D 'ltr';=0A=
},=0A=
exec: function() {=0A=
var editor =3D this,=0A=
elm =3D editor.getRangeHelper().getFirstBlockParent(),=0A=
$elm =3D $(elm);=0A=
=0A=
editor.focus();=0A=
=0A=
if(!elm || $elm.is('body'))=0A=
{=0A=
editor.execCommand("formatBlock", "p");=0A=
=0A=
elm =3D editor.getRangeHelper().getFirstBlockParent();=0A=
$elm =3D $(elm);=0A=
=0A=
if(!elm || $elm.is('body'))=0A=
return;=0A=
}=0A=
=0A=
if($elm.css('direction') =3D=3D=3D 'ltr')=0A=
$elm.css('direction', '');=0A=
else=0A=
$elm.css('direction', 'ltr');=0A=
},=0A=
tooltip: "Left-to-Right"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Rtl=0A=
rtl: {=0A=
state: function(parents, firstBlock) {=0A=
return firstBlock && firstBlock.style.direction =3D=3D=3D 'rtl';=0A=
},=0A=
exec: function() {=0A=
var editor =3D this,=0A=
elm =3D editor.getRangeHelper().getFirstBlockParent(),=0A=
$elm =3D $(elm);=0A=
=0A=
editor.focus();=0A=
=0A=
if(!elm || $elm.is('body'))=0A=
{=0A=
editor.execCommand("formatBlock", "p");=0A=
=0A=
elm =3D editor.getRangeHelper().getFirstBlockParent();=0A=
$elm =3D $(elm);=0A=
=0A=
if(!elm || $elm.is('body'))=0A=
return;=0A=
}=0A=
=0A=
if($elm.css('direction') =3D=3D=3D 'rtl')=0A=
$elm.css('direction', '');=0A=
else=0A=
$elm.css('direction', 'rtl');=0A=
},=0A=
tooltip: "Right-to-Left"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
=0A=
// START_COMMAND: Print=0A=
print: {=0A=
exec: "print",=0A=
tooltip: "Print"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Maximize=0A=
maximize: {=0A=
state: function() {=0A=
return this.maximize();=0A=
},=0A=
exec: function () {=0A=
this.maximize(!this.maximize());=0A=
},=0A=
txtExec: function () {=0A=
this.maximize(!this.maximize());=0A=
},=0A=
tooltip: "Maximize",=0A=
shortcut: "ctrl+shift+m"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Source=0A=
source: {=0A=
exec: function () {=0A=
this.toggleSourceMode();=0A=
this.blur();=0A=
},=0A=
txtExec: function () {=0A=
this.toggleSourceMode();=0A=
this.blur();=0A=
},=0A=
tooltip: "View source",=0A=
shortcut: "ctrl+shift+s"=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// this is here so that commands above can be removed=0A=
// without having to remove the , after the last one.=0A=
// Needed for IE.=0A=
ignore: {}=0A=
};=0A=
=0A=
/**=0A=
* Range helper class=0A=
* @class rangeHelper=0A=
* @name jQuery.sceditor.rangeHelper=0A=
*/=0A=
$.sceditor.rangeHelper =3D function(w, d) {=0A=
var win, doc, init, _createMarker,=0A=
isW3C =3D true,=0A=
startMarker =3D "sceditor-start-marker",=0A=
endMarker =3D "sceditor-end-marker",=0A=
characterStr =3D 'character', // Used to improve minification=0A=
base =3D this;=0A=
=0A=
/**=0A=
* @constructor=0A=
* @param Window window=0A=
* @param Document document=0A=
* @private=0A=
*/=0A=
init =3D function (window, document) {=0A=
doc =3D document || window.contentDocument || window.document;=0A=
win =3D window;=0A=
isW3C =3D !!window.getSelection;=0A=
}(w, d);=0A=
=0A=
/**=0A=
*
Inserts HTML into the current range replacing any selected=0A=
* text.
=0A=
*=0A=
*
If endHTML is specified the selected contents will be put between=0A=
* html and endHTML. If there is nothing selected html and endHTML are=0A=
* just concated together.
=0A=
*=0A=
* @param {string} html=0A=
* @param {string} endHTML=0A=
* @return False on fail=0A=
* @function=0A=
* @name insertHTML=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.insertHTML =3D function(html, endHTML) {=0A=
var node, div,=0A=
range =3D base.selectedRange();=0A=
=0A=
if(endHTML)=0A=
html +=3D base.selectedHtml() + endHTML;=0A=
=0A=
if(isW3C)=0A=
{=0A=
div =3D doc.createElement('div');=0A=
node =3D doc.createDocumentFragment();=0A=
div.innerHTML =3D html;=0A=
=0A=
while(div.firstChild)=0A=
node.appendChild(div.firstChild);=0A=
=0A=
base.insertNode(node);=0A=
}=0A=
else=0A=
{=0A=
if(!range)=0A=
return false;=0A=
=0A=
range.pasteHTML(html);=0A=
}=0A=
};=0A=
=0A=
/**=0A=
*
The same as insertHTML except with DOM nodes instead
=0A=
*=0A=
*
Warning: the nodes must belong to the=0A=
* document they are being inserted into. Some browsers=0A=
* will throw exceptions if they don't.
=0A=
*=0A=
* @param {Node} node=0A=
* @param {Node} endNode=0A=
* @return False on fail=0A=
* @function=0A=
* @name insertNode=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.insertNode =3D function(node, endNode) {=0A=
if(isW3C)=0A=
{=0A=
var selection, selectAfter,=0A=
toInsert =3D doc.createDocumentFragment(),=0A=
range =3D base.selectedRange();=0A=
=0A=
if(!range)=0A=
return false;=0A=
=0A=
toInsert.appendChild(node);=0A=
=0A=
if(endNode)=0A=
{=0A=
toInsert.appendChild(range.extractContents());=0A=
toInsert.appendChild(endNode);=0A=
}=0A=
=0A=
selectAfter =3D toInsert.lastChild;=0A=
=0A=
// If the last child is undefined then there is nothing to insert so =
return=0A=
if(!selectAfter)=0A=
return;=0A=
=0A=
range.deleteContents();=0A=
range.insertNode(toInsert);=0A=
=0A=
selection =3D doc.createRange();=0A=
selection.setStartAfter(selectAfter);=0A=
base.selectRange(selection);=0A=
}=0A=
else=0A=
base.insertHTML(node.outerHTML, endNode?endNode.outerHTML:null);=0A=
};=0A=
=0A=
/**=0A=
*
Clones the selected Range
=0A=
*=0A=
*
IE <=3D 8 will return a TextRange, all other browsers=0A=
* will return a Range object.
=0A=
*=0A=
* @return {Range|TextRange}=0A=
* @function=0A=
* @name cloneSelected=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.cloneSelected =3D function() {=0A=
var range =3D base.selectedRange();=0A=
=0A=
if(range)=0A=
return isW3C ? range.cloneRange() : range.duplicate();=0A=
};=0A=
=0A=
/**=0A=
*
Gets the selected Range
=0A=
*=0A=
*
IE <=3D 8 will return a TextRange, all other browsers=0A=
* will return a Range object.
=0A=
*=0A=
* @return {Range|TextRange}=0A=
* @function=0A=
* @name selectedRange=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.selectedRange =3D function() {=0A=
var range, parent,=0A=
sel =3D isW3C ? win.getSelection() : doc.selection;=0A=
=0A=
if(!sel)=0A=
return;=0A=
=0A=
// When creating a new range, set the start to the body=0A=
// element to avoid errors in FF.=0A=
if(sel.getRangeAt && sel.rangeCount <=3D 0)=0A=
{=0A=
range =3D doc.createRange();=0A=
range.setStart(doc.body, 0);=0A=
sel.addRange(range);=0A=
}=0A=
=0A=
range =3D isW3C ? sel.getRangeAt(0) : sel.createRange();=0A=
=0A=
// IE fix to make sure only return selections that are part of the =
WYSIWYG iframe=0A=
if(range.parentElement && (parent =3D range.parentElement()))=0A=
if(parent.ownerDocument !=3D=3D doc)=0A=
return;=0A=
=0A=
return range;=0A=
};=0A=
=0A=
/**=0A=
* Gets the currently selected HTML=0A=
*=0A=
* @return {string}=0A=
* @function=0A=
* @name selectedHtml=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.selectedHtml =3D function() {=0A=
var div,=0A=
range =3D base.selectedRange();=0A=
=0A=
if(!range)=0A=
return '';=0A=
=0A=
// IE < 9=0A=
if(!isW3C && range.text !=3D=3D '' && range.htmlText)=0A=
return range.htmlText;=0A=
=0A=
=0A=
// IE9+ and all other browsers=0A=
if(isW3C)=0A=
{=0A=
div =3D doc.createElement('div');=0A=
div.appendChild(range.cloneContents());=0A=
=0A=
return div.innerHTML;=0A=
}=0A=
=0A=
return '';=0A=
};=0A=
=0A=
/**=0A=
* Gets the parent node of the selected contents in the range=0A=
*=0A=
* @return {HTMLElement}=0A=
* @function=0A=
* @name parentNode=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.parentNode =3D function() {=0A=
var range =3D base.selectedRange();=0A=
=0A=
if(range)=0A=
{=0A=
if(isW3C)=0A=
return range.commonAncestorContainer;=0A=
=0A=
if(range.parentElement)=0A=
return range.parentElement();=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Gets the first block level parent of the selected=0A=
* contents of the range.=0A=
*=0A=
* @return {HTMLElement}=0A=
* @function=0A=
* @name getFirstBlockParent=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
/**=0A=
* Gets the first block level parent of the selected=0A=
* contents of the range.=0A=
*=0A=
* @param {Node} n The element to get the first block level parent frmo=0A=
* @return {HTMLElement}=0A=
* @function=0A=
* @name getFirstBlockParent^2=0A=
* @since 1.4.1=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.getFirstBlockParent =3D function(n) {=0A=
var func =3D function(node) {=0A=
if(!$.sceditor.dom.isInline(node))=0A=
return node;=0A=
=0A=
var p =3D node ? node.parentNode : null;=0A=
=0A=
return p ? func(p) : null;=0A=
};=0A=
=0A=
return func(n || base.parentNode());=0A=
};=0A=
=0A=
/**=0A=
* Inserts a node at either the start or end of the current selection=0A=
*=0A=
* @param {Bool} start=0A=
* @param {Node} node=0A=
* @function=0A=
* @name insertNodeAt=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.insertNodeAt =3D function(start, node) {=0A=
var currentRange =3D base.selectedRange(),=0A=
range =3D base.cloneSelected();=0A=
=0A=
if(!range)=0A=
return false;=0A=
=0A=
range.collapse(start);=0A=
=0A=
if(range.insertNode)=0A=
range.insertNode(node);=0A=
else=0A=
range.pasteHTML(node.outerHTML);=0A=
=0A=
// Reselect the current range.=0A=
// Fixes issue with Chrome losing the selection. Issue#82=0A=
base.selectRange(currentRange);=0A=
};=0A=
=0A=
/**=0A=
* Creates a marker node=0A=
*=0A=
* @param {String} id=0A=
* @return {Node}=0A=
* @private=0A=
*/=0A=
_createMarker =3D function(id) {=0A=
base.removeMarker(id);=0A=
=0A=
var marker =3D doc.createElement("span");=0A=
marker.id =3D id;=0A=
marker.style.lineHeight =3D "0";=0A=
marker.style.display =3D "none";=0A=
marker.className =3D "sceditor-selection sceditor-ignore";=0A=
=0A=
return marker;=0A=
};=0A=
=0A=
/**=0A=
* Inserts start/end markers for the current selection=0A=
* which can be used by restoreRange to re-select the=0A=
* range.=0A=
*=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
* @function=0A=
* @name insertMarkers=0A=
*/=0A=
base.insertMarkers =3D function() {=0A=
base.insertNodeAt(true, _createMarker(startMarker));=0A=
base.insertNodeAt(false, _createMarker(endMarker));=0A=
};=0A=
=0A=
/**=0A=
* Gets the marker with the specified ID=0A=
*=0A=
* @param {String} id=0A=
* @return {Node}=0A=
* @function=0A=
* @name getMarker=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.getMarker =3D function(id) {=0A=
return doc.getElementById(id);=0A=
};=0A=
=0A=
/**=0A=
* Removes the marker with the specified ID=0A=
*=0A=
* @param {String} id=0A=
* @function=0A=
* @name removeMarker=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.removeMarker =3D function(id) {=0A=
var marker =3D base.getMarker(id);=0A=
=0A=
if(marker)=0A=
marker.parentNode.removeChild(marker);=0A=
};=0A=
=0A=
/**=0A=
* Removes the start/end markers=0A=
*=0A=
* @function=0A=
* @name removeMarkers=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.removeMarkers =3D function() {=0A=
base.removeMarker(startMarker);=0A=
base.removeMarker(endMarker);=0A=
};=0A=
=0A=
/**=0A=
* Saves the current range location. Alias of insertMarkers()=0A=
*=0A=
* @function=0A=
* @name saveRage=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.saveRange =3D function() {=0A=
base.insertMarkers();=0A=
};=0A=
=0A=
/**=0A=
* Select the specified range=0A=
*=0A=
* @param {Range|TextRange} range=0A=
* @function=0A=
* @name selectRange=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.selectRange =3D function(range) {=0A=
if(!isW3C)=0A=
range.select();=0A=
else=0A=
{=0A=
win.getSelection().removeAllRanges();=0A=
win.getSelection().addRange(range);=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Restores the last range saved by saveRange() or insertMarkers()=0A=
*=0A=
* @function=0A=
* @name restoreRange=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.restoreRange =3D function() {=0A=
var marker,=0A=
range =3D base.selectedRange(),=0A=
start =3D base.getMarker(startMarker),=0A=
end =3D base.getMarker(endMarker);=0A=
=0A=
if(!start || !end || !range)=0A=
return false;=0A=
=0A=
if(!isW3C)=0A=
{=0A=
range =3D doc.body.createTextRange();=0A=
marker =3D doc.body.createTextRange();=0A=
=0A=
marker.moveToElementText(start);=0A=
range.setEndPoint('StartToStart', marker);=0A=
range.moveStart(characterStr, 0);=0A=
=0A=
marker.moveToElementText(end);=0A=
range.setEndPoint('EndToStart', marker);=0A=
range.moveEnd(characterStr, 0);=0A=
=0A=
base.selectRange(range);=0A=
}=0A=
else=0A=
{=0A=
range =3D doc.createRange();=0A=
=0A=
range.setStartBefore(start);=0A=
range.setEndAfter(end);=0A=
=0A=
base.selectRange(range);=0A=
}=0A=
=0A=
base.removeMarkers();=0A=
};=0A=
=0A=
/**=0A=
* Selects the text left and right of the current selection=0A=
* @param {int} left=0A=
* @param {int} right=0A=
* @since 1.4.3=0A=
* @function=0A=
* @name selectOuterText=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.selectOuterText =3D function(left, right) {=0A=
var range =3D base.cloneSelected();=0A=
=0A=
if(!range)=0A=
return false;=0A=
=0A=
range.collapse(false);=0A=
=0A=
if(!isW3C)=0A=
{=0A=
range.moveStart(characterStr, 0-left);=0A=
range.moveEnd(characterStr, right);=0A=
}=0A=
else=0A=
{=0A=
range.setStart(range.startContainer, range.startOffset-left);=0A=
range.setEnd(range.endContainer, range.endOffset+right);=0A=
}=0A=
=0A=
base.selectRange(range);=0A=
};=0A=
=0A=
/**=0A=
* Gets the text left or right of the current selection=0A=
* @param {Boolean} before=0A=
* @param {Int} length=0A=
* @since 1.4.3=0A=
* @function=0A=
* @name selectOuterText=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.getOuterText =3D function(before, length) {=0A=
var ret =3D "",=0A=
range =3D base.cloneSelected();=0A=
=0A=
if(!range)=0A=
return '';=0A=
=0A=
range.collapse(false);=0A=
=0A=
if(before)=0A=
{=0A=
if(!isW3C)=0A=
{=0A=
range.moveStart(characterStr, 0-length);=0A=
ret =3D range.text;=0A=
}=0A=
else=0A=
{=0A=
ret =3D range.startContainer.textContent.substr(0, =
range.startOffset);=0A=
ret =3D ret.substr(Math.max(0, ret.length - length));=0A=
}=0A=
}=0A=
else=0A=
{=0A=
if(!isW3C)=0A=
{=0A=
range.moveEnd(characterStr, length);=0A=
ret =3D range.text;=0A=
}=0A=
else=0A=
ret =3D range.startContainer.textContent.substr(range.startOffset, =
length);=0A=
}=0A=
=0A=
return ret;=0A=
};=0A=
=0A=
/**=0A=
* Replaces keys with values based on the current range=0A=
*=0A=
* @param {Array} rep=0A=
* @param {Bool} includePrev If to include text before or just text =
after=0A=
* @param {Bool} repSorted If the keys array is pre sorted=0A=
* @param {Int} longestKey Length of the longest key=0A=
* @param {Bool} requireWhiteSpace If the key must be surrounded by =
whitespace=0A=
* @function=0A=
* @name raplaceKeyword=0A=
* @memberOf jQuery.sceditor.rangeHelper.prototype=0A=
*/=0A=
base.raplaceKeyword =3D function(rep, includeAfter, repSorted, =
longestKey, requireWhiteSpace, curChar) {=0A=
if(!repSorted)=0A=
rep.sort(function(a, b){=0A=
return a.length - b.length;=0A=
});=0A=
=0A=
var before, after, str, i, start, left, pat, lookStart,=0A=
maxKeyLen =3D longestKey || rep[rep.length-1][0].length;=0A=
=0A=
before =3D after =3D str =3D "";=0A=
=0A=
if(requireWhiteSpace)=0A=
{=0A=
// forcing spaces around doesn't work with textRanges as they will =
select text=0A=
// on the other side of an image causing space-img-key to be =
returned as=0A=
// space-key which would be valid when it's not.=0A=
if(!isW3C)=0A=
return false;=0A=
=0A=
++maxKeyLen;=0A=
}=0A=
=0A=
before =3D base.getOuterText(true, maxKeyLen);=0A=
=0A=
if(includeAfter)=0A=
after =3D base.getOuterText(false, maxKeyLen);=0A=
=0A=
str =3D before + (curChar!=3Dnull?curChar:"") + after;=0A=
i =3D rep.length;=0A=
while(i--)=0A=
{=0A=
pat =3D new RegExp("(?:[\\s\xA0\u2002\u2003\u2009])" + =
$.sceditor.regexEscape(rep[i][0]) + "(?=3D[\\s\xA0\u2002\u2003\u2009])");=0A=
lookStart =3D before.length - 1 - rep[i][0].length;=0A=
=0A=
if(requireWhiteSpace)=0A=
--lookStart;=0A=
=0A=
lookStart =3D Math.max(0, lookStart);=0A=
=0A=
if((!requireWhiteSpace && (start =3D str.indexOf(rep[i][0], =
lookStart)) > -1) ||=0A=
(requireWhiteSpace && (start =3D str.substr(lookStart).search(pat)) =
> -1))=0A=
{=0A=
if(requireWhiteSpace)=0A=
start +=3D lookStart + 1;=0A=
=0A=
// make sure the substr is between before and after not entierly in =
one=0A=
// or the other=0A=
if(start > before.length || start+rep[i][0].length + =
(requireWhiteSpace?1:0) < before.length)=0A=
continue;=0A=
=0A=
left =3D before.length - start;=0A=
base.selectOuterText(left, =
rep[i][0].length-left-(curChar!=3Dnull&&/^\S/.test(curChar)?1:0));=0A=
base.insertHTML(rep[i][1]);=0A=
return true;=0A=
}=0A=
}=0A=
=0A=
return false;=0A=
};=0A=
=0A=
/**=0A=
* Compares two ranges.=0A=
* @param {Range|TextRange} rangeA=0A=
* @param {Range|TextRange} rangeB If undefined it will be set to the =
current selected range=0A=
* @return {Boolean}=0A=
*/=0A=
base.compare =3D function(rangeA, rangeB) {=0A=
if(!rangeB)=0A=
rangeB =3D base.selectedRange();=0A=
=0A=
if(!rangeA || !rangeB)=0A=
return !rangeA && !rangeB;=0A=
=0A=
if(!isW3C)=0A=
{=0A=
return rangeA.compareEndPoints('EndToEnd', rangeB) =3D=3D=3D 0 &&=0A=
rangeA.compareEndPoints('StartToStart', rangeB) =3D=3D=3D 0;=0A=
}=0A=
=0A=
return rangeA.compareBoundaryPoints(Range.END_TO_END, rangeB) =
=3D=3D=3D 0 &&=0A=
rangeA.compareBoundaryPoints(Range.START_TO_START, rangeB) =3D=3D=3D =
0;=0A=
};=0A=
=0A=
};=0A=
=0A=
/**=0A=
* Static DOM helper class=0A=
* @class dom=0A=
* @name jQuery.sceditor.dom=0A=
*/=0A=
$.sceditor.dom =3D=0A=
/** @lends jQuery.sceditor.dom */=0A=
{=0A=
/**=0A=
* Loop all child nodes of the passed node=0A=
*=0A=
* The function should accept 1 parameter being the node.=0A=
* If the function returns false the loop will be exited.=0A=
*=0A=
* @param {HTMLElement} node=0A=
* @param {function} func Function that is called for every node, =
should accept 1 param for the node=0A=
* @param {bool} innermostFirst If the innermost node should be passed =
to the function before it's parents=0A=
* @param {bool} siblingsOnly If to only traverse the nodes siblings=0A=
* @param {bool} reverse If to traverse the nodes in reverse=0A=
*/=0A=
traverse: function(node, func, innermostFirst, siblingsOnly, reverse) {=0A=
if(node)=0A=
{=0A=
node =3D reverse ? node.lastChild : node.firstChild;=0A=
=0A=
while(node !=3D null)=0A=
{=0A=
var next =3D reverse ? node.previousSibling : node.nextSibling;=0A=
=0A=
if(!innermostFirst && func(node) =3D=3D=3D false)=0A=
return false;=0A=
=0A=
// traverse all children=0A=
if(!siblingsOnly && this.traverse(node, func, innermostFirst, =
siblingsOnly, reverse) =3D=3D=3D false)=0A=
return false;=0A=
=0A=
if(innermostFirst && func(node) =3D=3D=3D false)=0A=
return false;=0A=
=0A=
// move to next child=0A=
node =3D next;=0A=
}=0A=
}=0A=
},=0A=
=0A=
/**=0A=
* Like traverse but loops in reverse=0A=
* @see traverse=0A=
*/=0A=
rTraverse: function(node, func, innermostFirst, siblingsOnly) {=0A=
this.traverse(node, func, innermostFirst, siblingsOnly, true);=0A=
},=0A=
=0A=
/**=0A=
* List of block level elements separated by bars (|)=0A=
* @type {string}=0A=
*/=0A=
blockLevelList: =
"|body|hr|p|div|h1|h2|h3|h4|h5|h6|address|pre|form|table|tbody|thead|tfoo=
t|th|tr|td|li|ol|ul|blockquote|center|marquee|button|",=0A=
=0A=
/**=0A=
* Checks if an element is inline=0A=
*=0A=
* @return {bool}=0A=
*/=0A=
isInline: function(elm, includeCodeAsBlock) {=0A=
if(!elm || elm.nodeType !=3D=3D 1)=0A=
return true;=0A=
=0A=
elm =3D elm.tagName.toLowerCase();=0A=
=0A=
if(elm =3D=3D=3D 'code')=0A=
return !includeCodeAsBlock;=0A=
=0A=
return $.sceditor.dom.blockLevelList.indexOf("|" + elm + "|") < 0;=0A=
},=0A=
=0A=
/**=0A=
*
Copys the CSS from 1 node to another.
=0A=
*=0A=
*
Only copies CSS defined on the element e.g. style attr.
=0A=
*=0A=
* @param {HTMLElement} from=0A=
* @param {HTMLElement} to=0A=
*/=0A=
copyCSS: function(from, to) {=0A=
to.style.cssText =3D from.style.cssText + to.style.cssText;=0A=
},=0A=
=0A=
/**=0A=
* Fixes block level elements inside in inline elements.=0A=
*=0A=
* @param {HTMLElement} node=0A=
*/=0A=
fixNesting: function(node) {=0A=
var base =3D this,=0A=
getLastInlineParent =3D function(node) {=0A=
while(base.isInline(node.parentNode, true))=0A=
node =3D node.parentNode;=0A=
=0A=
return node;=0A=
};=0A=
=0A=
base.traverse(node, function(node) {=0A=
// if node is an element, and it is blocklevel and the parent isn't =
block level=0A=
// then it needs fixing=0A=
if(node.nodeType =3D=3D=3D 1 && !base.isInline(node, true) && =
base.isInline(node.parentNode, true))=0A=
{=0A=
var parent =3D getLastInlineParent(node),=0A=
rParent =3D parent.parentNode,=0A=
before =3D base.extractContents(parent, node),=0A=
middle =3D node;=0A=
=0A=
// copy current styling so when moved out of the parent=0A=
// it still has the same styling=0A=
base.copyCSS(parent, middle);=0A=
=0A=
rParent.insertBefore(before, parent);=0A=
rParent.insertBefore(middle, parent);=0A=
}=0A=
});=0A=
},=0A=
=0A=
/**=0A=
* Finds the common parent of two nodes=0A=
*=0A=
* @param {HTMLElement} node1=0A=
* @param {HTMLElement} node2=0A=
* @return {HTMLElement}=0A=
*/=0A=
findCommonAncestor: function(node1, node2) {=0A=
// not as fast as making two arrays of parents and comparing=0A=
// but is a lot smaller and as it's currently only used with=0A=
// fixing invalid nesting so it doesn't need to be very fast=0A=
return $(node1).parents().has($(node2)).first();=0A=
},=0A=
=0A=
getSibling: function(node, previous) {=0A=
var sibling;=0A=
=0A=
if(!node)=0A=
return null;=0A=
=0A=
if((sibling =3D node[previous ? 'previousSibling' : 'nextSibling']))=0A=
return sibling;=0A=
=0A=
return $.sceditor.dom.getSibling(node.parentNode, previous);=0A=
},=0A=
=0A=
/**=0A=
* Removes unused whitespace from the root and all it's children=0A=
*=0A=
* @name removeWhiteSpace^1=0A=
* @param HTMLElement root=0A=
* @return void=0A=
*/=0A=
/**=0A=
* Removes unused whitespace from the root and all it's children.=0A=
*=0A=
* If preserveNewLines is true, new line characters will not be removed=0A=
*=0A=
* @name removeWhiteSpace^2=0A=
* @param HTMLElement root=0A=
* @param Boolean preserveNewLines=0A=
* @return void=0A=
* @since 1.4.3=0A=
*/=0A=
removeWhiteSpace: function(root, preserveNewLines) {=0A=
var nodeValue, nodeType, next, previous, cssWS, nextNode, trimStart, =
sibling,=0A=
getSibling =3D $.sceditor.dom.getSibling,=0A=
isInline =3D $.sceditor.dom.isInline,=0A=
node =3D root.firstChild,=0A=
whitespace =3D /[\t ]+/g,=0A=
witespaceAndLines =3D /[\t\n\r ]+/g;=0A=
=0A=
while(node)=0A=
{=0A=
nextNode =3D node.nextSibling;=0A=
nodeValue =3D node.nodeValue;=0A=
nodeType =3D node.nodeType;=0A=
=0A=
// 1 =3D element=0A=
if(nodeType =3D=3D=3D 1 && node.firstChild)=0A=
{=0A=
cssWS =3D $(node).css('whiteSpace');=0A=
=0A=
// pre || pre-wrap with any vendor prefix=0A=
if(!/pre(?:\-wrap)?$/i.test(cssWS))=0A=
$.sceditor.dom.removeWhiteSpace(node, /line$/i.test(cssWS));=0A=
}=0A=
=0A=
// 3 =3D textnode=0A=
if(nodeType =3D=3D=3D 3 && nodeValue)=0A=
{=0A=
next =3D getSibling(node);=0A=
previous =3D getSibling(node, true);=0A=
sibling =3D node;=0A=
trimStart =3D false;=0A=
=0A=
// If last sibling is not inline is a textnode ending in whitespace,=0A=
// the start whitespace should be stripped=0A=
if(isInline(node))=0A=
{=0A=
while((sibling =3D getSibling(sibling, true)))=0A=
{=0A=
while(sibling.lastChild)=0A=
sibling =3D sibling.lastChild;=0A=
=0A=
if(!isInline(sibling) || sibling.nodeType =3D=3D=3D 3)=0A=
{=0A=
// Patch FA : remove space in the regex because we need it.=0A=
// trimStart =3D sibling.nodeType =3D=3D=3D 3 ? /[\t\n\r =
]$/.test(sibling.nodeValue) : true;=0A=
trimStart =3D sibling.nodeType =3D=3D=3D 3 ? =
/[\t\n\r]$/.test(sibling.nodeValue) : true;=0A=
break;=0A=
}=0A=
}=0A=
}=0A=
=0A=
if(!isInline(node) || !previous || !isInline(previous) || trimStart)=0A=
nodeValue =3D nodeValue.replace(/^[\t\n\r ]+/, "");=0A=
=0A=
if(!isInline(node) || !next || !isInline(next))=0A=
nodeValue =3D nodeValue.replace(/[\t\n\r ]+$/, "");=0A=
=0A=
// Remove empty text nodes=0A=
if(!nodeValue.length)=0A=
root.removeChild(node);=0A=
else=0A=
node.nodeValue =3D nodeValue.replace(preserveNewLines ? whitespace =
: witespaceAndLines, " ");=0A=
}=0A=
=0A=
node =3D nextNode;=0A=
}=0A=
},=0A=
=0A=
/**=0A=
* Extracts all the nodes between the start and end nodes=0A=
*=0A=
* @param {HTMLElement} startNode The node to start extracting at=0A=
* @param {HTMLElement} endNode The node to stop extracting at=0A=
* @return {DocumentFragment}=0A=
*/=0A=
extractContents: function(startNode, endNode) {=0A=
var base =3D this,=0A=
$commonAncestor =3D base.findCommonAncestor(startNode, endNode),=0A=
commonAncestor =3D !$commonAncestor ? null : $commonAncestor[0],=0A=
startReached =3D false,=0A=
endReached =3D false;=0A=
=0A=
return (function extract(root) {=0A=
var df =3D startNode.ownerDocument.createDocumentFragment();=0A=
=0A=
base.traverse(root, function(node) {=0A=
// if end has been reached exit loop=0A=
if(endReached || (node =3D=3D=3D endNode && startReached))=0A=
{=0A=
endReached =3D true;=0A=
return false;=0A=
}=0A=
=0A=
if(node =3D=3D=3D startNode)=0A=
startReached =3D true;=0A=
=0A=
var c, n;=0A=
if(startReached)=0A=
{=0A=
// if the start has been reached and this elm contains=0A=
// the end node then clone it=0A=
if(jQuery.contains(node, endNode) && node.nodeType =3D=3D=3D 1)=0A=
{=0A=
c =3D extract(node);=0A=
n =3D node.cloneNode(false);=0A=
=0A=
n.appendChild(c);=0A=
df.appendChild(n);=0A=
}=0A=
// otherwise just move it=0A=
else=0A=
df.appendChild(node);=0A=
}=0A=
// if this node contains the start node then add it=0A=
else if(jQuery.contains(node, startNode) && node.nodeType =3D=3D=3D =
1)=0A=
{=0A=
c =3D extract(node);=0A=
n =3D node.cloneNode(false);=0A=
=0A=
n.appendChild(c);=0A=
df.appendChild(n);=0A=
}=0A=
}, false);=0A=
=0A=
return df;=0A=
}(commonAncestor));=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Object containing SCEditor plugins=0A=
* @type {Object}=0A=
* @name plugins=0A=
* @memberOf jQuery.sceditor=0A=
*/=0A=
$.sceditor.plugins =3D {};=0A=
=0A=
/**=0A=
* Plugin Manager class=0A=
* @class PluginManager=0A=
* @name jQuery.sceditor.PluginManager=0A=
*/=0A=
$.sceditor.PluginManager =3D function(owner) {=0A=
/**=0A=
* Alias of this=0A=
* @private=0A=
* @type {Object}=0A=
*/=0A=
var base =3D this;=0A=
=0A=
/**=0A=
* Array of all currently registered plugins=0A=
* @type {Array}=0A=
* @private=0A=
*/=0A=
var plugins =3D [];=0A=
=0A=
/**=0A=
* Editor instance this plugin manager belongs to=0A=
* @type {jQuery.sceditor}=0A=
* @private=0A=
*/=0A=
var editorInstance =3D owner;=0A=
=0A=
=0A=
/**=0A=
* Changes a signals name from "name" into "signalName".=0A=
* @param {String} signal=0A=
* @return {String}=0A=
* @private=0A=
*/=0A=
var formatSignalName =3D function(signal) {=0A=
return 'signal' + signal.charAt(0).toUpperCase() + signal.slice(1);=0A=
};=0A=
=0A=
/**=0A=
* Calls handlers for a signal=0A=
* @see call()=0A=
* @see callOnlyFirst()=0A=
* @param {Array} args=0A=
* @param {Boolean} returnAtFirst=0A=
* @return {Mixed}=0A=
* @private=0A=
*/=0A=
var callHandlers =3D function(args, returnAtFirst) {=0A=
args =3D [].slice.call(args);=0A=
=0A=
var i =3D plugins.length,=0A=
signal =3D formatSignalName(args.shift());=0A=
=0A=
while(i--)=0A=
{=0A=
if(signal in plugins[i])=0A=
{=0A=
if(returnAtFirst)=0A=
return plugins[i][signal].apply(editorInstance, args);=0A=
=0A=
plugins[i][signal].apply(editorInstance, args);=0A=
}=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Calls all handlers for the passed signal=0A=
* @param {String} signal=0A=
* @param {...String} args=0A=
* @return {Void}=0A=
* @function=0A=
* @name call=0A=
* @memberOf jQuery.sceditor.PluginManager.prototype=0A=
*/=0A=
base.call =3D function() {=0A=
callHandlers(arguments, false);=0A=
};=0A=
=0A=
/**=0A=
* Calls the first handler for a signal, and returns the result=0A=
* @param {String} signal=0A=
* @param {...String} args=0A=
* @return {Mixed} The result of calling the handler=0A=
* @function=0A=
* @name callOnlyFirst=0A=
* @memberOf jQuery.sceditor.PluginManager.prototype=0A=
*/=0A=
base.callOnlyFirst =3D function() {=0A=
return callHandlers(arguments, true);=0A=
};=0A=
=0A=
/**=0A=
*
Returns an object which has callNext and hasNext methods.
=0A=
*=0A=
*
callNext takes arguments to pass to the handler and returns the=0A=
* result of calling the handler
=0A=
*=0A=
*
hasNext checks if there is another handler
=0A=
*=0A=
* @param {String} signal=0A=
* @return {Object} Object with hasNext and callNext methods=0A=
* @function=0A=
* @name iter=0A=
* @memberOf jQuery.sceditor.PluginManager.prototype=0A=
*/=0A=
base.iter =3D function(signal) {=0A=
signal =3D formatSignalName(signal);=0A=
=0A=
return (function () {=0A=
var i =3D plugins.length;=0A=
=0A=
return {=0A=
callNext: function(args) {=0A=
while(i--)=0A=
if(plugins[i] && signal in plugins[i])=0A=
return plugins[i].apply(editorInstance, args);=0A=
},=0A=
hasNext: function() {=0A=
var j =3D i;=0A=
=0A=
while(j--)=0A=
if(plugins[j] && signal in plugins[j])=0A=
return true;=0A=
=0A=
return false;=0A=
}=0A=
};=0A=
}());=0A=
};=0A=
=0A=
/**=0A=
* Checks if a signal has a handler=0A=
* @param {String} signal=0A=
* @return {Boolean}=0A=
* @function=0A=
* @name hasHandler=0A=
* @memberOf jQuery.sceditor.PluginManager.prototype=0A=
*/=0A=
base.hasHandler =3D function(signal) {=0A=
var i =3D plugins.length;=0A=
signal =3D formatSignalName(signal);=0A=
=0A=
while(i--)=0A=
if(signal in plugins[i])=0A=
return true;=0A=
=0A=
return false;=0A=
};=0A=
=0A=
/**=0A=
* Checks if the plugin exists in jQuery.sceditor.plugins=0A=
* @param {String} plugin=0A=
* @return {Boolean}=0A=
* @function=0A=
* @name exsists=0A=
* @memberOf jQuery.sceditor.PluginManager.prototype=0A=
*/=0A=
base.exsists =3D function(plugin) {=0A=
if(plugin in $.sceditor.plugins)=0A=
{=0A=
plugin =3D $.sceditor.plugins[plugin];=0A=
=0A=
return typeof plugin =3D=3D=3D "function" && typeof plugin.prototype =
=3D=3D=3D "object";=0A=
}=0A=
=0A=
return false;=0A=
};=0A=
=0A=
/**=0A=
* Checks if the passed plugin is currrently registered.=0A=
* @param {String} plugin=0A=
* @return {Boolean}=0A=
* @function=0A=
* @name isRegistered=0A=
* @memberOf jQuery.sceditor.PluginManager.prototype=0A=
*/=0A=
base.isRegistered =3D function(plugin) {=0A=
var i =3D plugins.length;=0A=
=0A=
if(!base.exsists(plugin))=0A=
return false;=0A=
=0A=
while(i--)=0A=
if(plugins[i] instanceof $.sceditor.plugins[plugin])=0A=
return true;=0A=
=0A=
return false;=0A=
};=0A=
=0A=
/**=0A=
* Registers a plugin to receive signals=0A=
* @param {String} plugin=0A=
* @return {Boolean}=0A=
* @function=0A=
* @name register=0A=
* @memberOf jQuery.sceditor.PluginManager.prototype=0A=
*/=0A=
base.register =3D function(plugin) {=0A=
if(!base.exsists(plugin))=0A=
return false;=0A=
=0A=
plugin =3D new $.sceditor.plugins[plugin]();=0A=
plugins.push(plugin);=0A=
=0A=
if('init' in plugin)=0A=
plugin.init.apply(editorInstance);=0A=
=0A=
return true;=0A=
};=0A=
=0A=
/**=0A=
* Deregisters a plugin.=0A=
* @param {String} plugin=0A=
* @return {Boolean}=0A=
* @function=0A=
* @name deregister=0A=
* @memberOf jQuery.sceditor.PluginManager.prototype=0A=
*/=0A=
base.deregister =3D function(plugin) {=0A=
var removedPlugin,=0A=
i =3D plugins.length,=0A=
ret =3D false;=0A=
=0A=
if(!base.isRegistered(plugin))=0A=
return false;=0A=
=0A=
while(i--)=0A=
{=0A=
if(plugins[i] instanceof $.sceditor.plugins[plugin])=0A=
{=0A=
removedPlugin =3D plugins.splice(i, 1)[0];=0A=
ret =3D true;=0A=
=0A=
if('destroy' in removedPlugin)=0A=
removedPlugin.destroy.apply(editorInstance);=0A=
}=0A=
}=0A=
=0A=
return ret;=0A=
};=0A=
=0A=
/**=0A=
*
Clears all plugins and removes the owner refrence.
=0A=
*=0A=
*
Calling any functions on this object after calling destroy will =
cause a JS error.
=0A=
* @return {Void}=0A=
* @function=0A=
* @name destroy=0A=
* @memberOf jQuery.sceditor.PluginManager.prototype=0A=
*/=0A=
base.destroy =3D function() {=0A=
var i =3D plugins.length;=0A=
=0A=
while(i--)=0A=
if('destroy' in plugins[i])=0A=
plugins[i].destroy.apply(editorInstance);=0A=
=0A=
plugins =3D null;=0A=
editorInstance =3D null;=0A=
};=0A=
};=0A=
=0A=
/**=0A=
* Static command helper class=0A=
* @class command=0A=
* @name jQuery.sceditor.command=0A=
*/=0A=
$.sceditor.command =3D=0A=
/** @lends jQuery.sceditor.command */=0A=
{=0A=
/**=0A=
* Gets a command=0A=
*=0A=
* @param {String} name=0A=
* @return {Object|null}=0A=
* @since v1.3.5=0A=
*/=0A=
get: function(name) {=0A=
return $.sceditor.commands[name] || null;=0A=
},=0A=
=0A=
/**=0A=
*
Adds a command to the editor or updates an exisiting=0A=
* command if a command with the specified name already exists.
=0A=
*=0A=
*
Once a command is add it can be included in the toolbar by=0A=
* adding it's name to the toolbar option in the constructor. It=0A=
* can also be executed manually by calling {@link =
jQuery.sceditor.execCommand}
=0A=
*=0A=
* @example=0A=
* $.sceditor.command.set("hello",=0A=
* {=0A=
* exec: function() {=0A=
* alert("Hello World!");=0A=
* }=0A=
* });=0A=
*=0A=
* @param {String} name=0A=
* @param {Object} cmd=0A=
* @return {this|false} Returns false if name or cmd is false=0A=
* @since v1.3.5=0A=
*/=0A=
set: function(name, cmd) {=0A=
if(!name || !cmd)=0A=
return false;=0A=
=0A=
// merge any existing command properties=0A=
cmd =3D $.extend($.sceditor.commands[name] || {}, cmd);=0A=
=0A=
cmd.remove =3D function() { $.sceditor.command.remove(name); };=0A=
=0A=
$.sceditor.commands[name] =3D cmd;=0A=
return this;=0A=
},=0A=
=0A=
/**=0A=
* Removes a command=0A=
*=0A=
* @param {String} name=0A=
* @return {this}=0A=
* @since v1.3.5=0A=
*/=0A=
remove: function(name) {=0A=
if($.sceditor.commands[name])=0A=
delete $.sceditor.commands[name];=0A=
=0A=
return this;=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Default options for SCEditor=0A=
* @type {Object}=0A=
* @class defaultOptions=0A=
* @name jQuery.sceditor.defaultOptions=0A=
*/=0A=
$.sceditor.defaultOptions =3D {=0A=
/** @lends jQuery.sceditor.defaultOptions */=0A=
/**=0A=
* Toolbar buttons order and groups. Should be comma separated and =
have a bar | to separate groups=0A=
* @type {String}=0A=
*/=0A=
toolbar: =
"bold,italic,underline,strike,subscript,superscript|left,center,right,jus=
tify|" +=0A=
=
"font,size,color,removeformat|cut,copy,paste,pastetext|bulletlist,ordered=
list|" +=0A=
=
"table|code,quote|horizontalrule,image,email,link,unlink|emoticon,youtube=
,date,time|" +=0A=
"ltr,rtl|print,maximize,source",=0A=
=0A=
/**=0A=
* Comma seperated list of commands to excludes from the toolbar=0A=
* @type {String}=0A=
*/=0A=
toolbarExclude: null,=0A=
=0A=
/**=0A=
* Stylesheet to include in the WYSIWYG editor. Will style the WYSIWYG =
elements=0A=
* @type {String}=0A=
*/=0A=
style: "jquery.sceditor.default.css",=0A=
=0A=
/**=0A=
* Comma separated list of fonts for the font selector=0A=
* @type {String}=0A=
*/=0A=
fonts: "Arial,Arial Black,Comic Sans MS,Courier =
New,Georgia,Impact,Sans-serif,Serif,Times New Roman,Trebuchet =
MS,Verdana",=0A=
=0A=
/**=0A=
* Colors should be comma separated and have a bar | to signal a new =
column.=0A=
*=0A=
* If null the colors will be auto generated.=0A=
* @type {string}=0A=
*/=0A=
colors: null,=0A=
=0A=
/**=0A=
* The locale to use.=0A=
* @type {String}=0A=
*/=0A=
locale: "en",=0A=
=0A=
/**=0A=
* The Charset to use=0A=
* @type {String}=0A=
*/=0A=
charset: "utf-8",=0A=
=0A=
/**=0A=
* Compatibility mode for emoticons.=0A=
*=0A=
* Helps if you have emoticons such as :/ which would put an emoticon =
inside http://=0A=
*=0A=
* This mode requires emoticons to be surrounded by whitespace or end =
of line chars.=0A=
* This mode has limited As You Type emoticon conversion support. It =
will not replace=0A=
* AYT for end of line chars, only emoticons surrounded by whitespace. =
They will still=0A=
* be replaced correctly when loaded just not AYT.=0A=
* @type {Boolean}=0A=
*/=0A=
emoticonsCompat: false,=0A=
=0A=
/**=0A=
* If to enable emoticons. Can be changes at runtime using the =
emoticons() method.=0A=
* @type {Boolean}=0A=
* @since 1.4.2=0A=
*/=0A=
emoticonsEnabled: true,=0A=
=0A=
/**=0A=
* Emoticon root URL=0A=
* @type {String}=0A=
*/=0A=
emoticonsRoot: '',=0A=
emoticons: {=0A=
dropdown: {=0A=
":)": "emoticons/smile.png",=0A=
":angel:": "emoticons/angel.png",=0A=
":angry:": "emoticons/angry.png",=0A=
"8-)": "emoticons/cool.png",=0A=
":'(": "emoticons/cwy.png",=0A=
":ermm:": "emoticons/ermm.png",=0A=
":D": "emoticons/grin.png",=0A=
"<3": "emoticons/heart.png",=0A=
":(": "emoticons/sad.png",=0A=
":O": "emoticons/shocked.png",=0A=
":P": "emoticons/tongue.png",=0A=
";)": "emoticons/wink.png"=0A=
},=0A=
more: {=0A=
":alien:": "emoticons/alien.png",=0A=
":blink:": "emoticons/blink.png",=0A=
":blush:": "emoticons/blush.png",=0A=
":cheerful:": "emoticons/cheerful.png",=0A=
":devil:": "emoticons/devil.png",=0A=
":dizzy:": "emoticons/dizzy.png",=0A=
":getlost:": "emoticons/getlost.png",=0A=
":happy:": "emoticons/happy.png",=0A=
":kissing:": "emoticons/kissing.png",=0A=
":ninja:": "emoticons/ninja.png",=0A=
":pinch:": "emoticons/pinch.png",=0A=
":pouty:": "emoticons/pouty.png",=0A=
":sick:": "emoticons/sick.png",=0A=
":sideways:": "emoticons/sideways.png",=0A=
":silly:": "emoticons/silly.png",=0A=
":sleeping:": "emoticons/sleeping.png",=0A=
":unsure:": "emoticons/unsure.png",=0A=
":woot:": "emoticons/w00t.png",=0A=
":wassat:": "emoticons/wassat.png"=0A=
},=0A=
hidden: {=0A=
":whistling:": "emoticons/whistling.png",=0A=
":love:": "emoticons/wub.png"=0A=
}=0A=
},=0A=
=0A=
/**=0A=
* Width of the editor. Set to null for automatic with=0A=
* @type {int}=0A=
*/=0A=
width: null,=0A=
=0A=
/**=0A=
* Height of the editor including toolbar. Set to null for automatic =
height=0A=
* @type {int}=0A=
*/=0A=
height: null,=0A=
=0A=
/**=0A=
* If to allow the editor to be resized=0A=
* @type {Boolean}=0A=
*/=0A=
resizeEnabled: true,=0A=
=0A=
/**=0A=
* Min resize to width, set to null for half textarea width or -1 for =
unlimited=0A=
* @type {int}=0A=
*/=0A=
resizeMinWidth: null,=0A=
/**=0A=
* Min resize to height, set to null for half textarea height or -1 =
for unlimited=0A=
* @type {int}=0A=
*/=0A=
resizeMinHeight: null,=0A=
/**=0A=
* Max resize to height, set to null for double textarea height or -1 =
for unlimited=0A=
* @type {int}=0A=
*/=0A=
resizeMaxHeight: null,=0A=
/**=0A=
* Max resize to width, set to null for double textarea width or -1 =
for unlimited=0A=
* @type {int}=0A=
*/=0A=
resizeMaxWidth: null,=0A=
/**=0A=
* If resizing by height is enabled=0A=
* @type {Boolean}=0A=
*/=0A=
resizeHeight: true,=0A=
/**=0A=
* If resizing by width is enabled=0A=
* @type {Boolean}=0A=
*/=0A=
resizeWidth: true,=0A=
=0A=
getHtmlHandler: null,=0A=
getTextHandler: null,=0A=
=0A=
/**=0A=
* Date format, will be overridden if locale specifies one.=0A=
*=0A=
* The words year, month and day will be replaced with the users =
current year, month and day.=0A=
* @type {String}=0A=
*/=0A=
dateFormat: "year-month-day",=0A=
=0A=
/**=0A=
* Element to inset the toobar into.=0A=
* @type {HTMLElement}=0A=
*/=0A=
toolbarContainer: null,=0A=
=0A=
/**=0A=
* If to enable paste filtering. This is currently experimental, =
please report any issues.=0A=
* @type {Boolean}=0A=
*/=0A=
enablePasteFiltering: false,=0A=
=0A=
/**=0A=
* If to completely disable pasting into the editor=0A=
* @type {Boolean}=0A=
*/=0A=
disablePasting: false,=0A=
=0A=
/**=0A=
* If the editor is read only.=0A=
* @type {Boolean}=0A=
*/=0A=
readOnly: false,=0A=
=0A=
/**=0A=
* If to set the editor to right-to-left mode.=0A=
*=0A=
* If set to null the direction will be automatically detected.=0A=
* @type {Boolean}=0A=
*/=0A=
rtl: false,=0A=
=0A=
/**=0A=
* If to auto focus the editor on page load=0A=
* @type {Boolean}=0A=
*/=0A=
autofocus: false,=0A=
=0A=
/**=0A=
* If to auto focus the editor to the end of the content=0A=
* @type {Boolean}=0A=
*/=0A=
autofocusEnd: true,=0A=
=0A=
/**=0A=
* If to auto expand the editor to fix the content=0A=
* @type {Boolean}=0A=
*/=0A=
autoExpand: false,=0A=
=0A=
/**=0A=
* If to auto update original textbox on blur=0A=
* @type {Boolean}=0A=
*/=0A=
autoUpdate: false,=0A=
=0A=
/**=0A=
* If to run the source editor when there is no WYSIWYG support. Only =
really applies to mobile OS's.=0A=
* @type {Boolean}=0A=
*/=0A=
runWithoutWysiwygSupport: false,=0A=
=0A=
/**=0A=
* Optional ID to give the editor.=0A=
* @type {String}=0A=
*/=0A=
id: null,=0A=
=0A=
/**=0A=
* Comma seperated list of plugins=0A=
* @type {String}=0A=
*/=0A=
plugins: '',=0A=
=0A=
/**=0A=
* z-index to set the editor container to. Needed for jQuery UI dialog.=0A=
* @type {Int}=0A=
*/=0A=
zIndex: null,=0A=
=0A=
/**=0A=
* BBCode parser options, only applies if using the editor in BBCode =
mode.=0A=
*=0A=
* See $.sceditor.BBCodeParser.defaults for list of valid options=0A=
* @type {Object}=0A=
*/=0A=
parserOptions: { },=0A=
=0A=
/**=0A=
* CSS that will be added to the to dropdown menu (eg. z-index)=0A=
* @type {Object}=0A=
*/=0A=
dropDownCss: { }=0A=
};=0A=
=0A=
/**=0A=
* Creates an instance of sceditor on all textareas=0A=
* matched by the jQuery selector.=0A=
*=0A=
* If options is set to "state" it will return bool value=0A=
* indicating if the editor has been initilised on the=0A=
* matched textarea(s). If there is only one textarea=0A=
* it will return the bool value for that textarea.=0A=
* If more than one textarea is matched it will=0A=
* return an array of bool values for each textarea.=0A=
*=0A=
* If options is set to "instance" it will return the=0A=
* current editor instance for the textarea(s). Like the=0A=
* state option, if only one textarea is matched this will=0A=
* return just the instace for that textarea. If more than=0A=
* one textarea is matched it will return an array of=0A=
* instances each textarea.=0A=
*=0A=
* @param {Object|String} options Should either be an Object of =
options or the strings "state" or "instance"=0A=
* @return {this|Array|jQuery.sceditor|Bool}=0A=
*/=0A=
$.fn.sceditor =3D function (options) {=0A=
var $this,=0A=
ret =3D [];=0A=
=0A=
options =3D options || {};=0A=
=0A=
if(!options.runWithoutWysiwygSupport && !$.sceditor.isWysiwygSupported)=0A=
return;=0A=
=0A=
this.each(function () {=0A=
=0A=
$this =3D this.jquery ? this : $(this);=0A=
// Don't allow the editor to be initilised on it's own source editor=0A=
if($this.parents('.sceditor-container').length > 0)=0A=
return;=0A=
=0A=
// Add state of instance to ret if that is what options is set to=0A=
if(options =3D=3D=3D "state")=0A=
ret.push(!!$this.data('sceditor'));=0A=
else if(options =3D=3D=3D "instance")=0A=
ret.push($this.data('sceditor'));=0A=
else if(!$this.data('sceditor'))=0A=
(new $.sceditor(this, options));=0A=
});=0A=
=0A=
// If nothing in the ret array then must be init so return this=0A=
if(!ret.length)=0A=
return this;=0A=
=0A=
return ret.length =3D=3D=3D 1 ? ret[0] : $(ret);=0A=
};=0A=
})(jQuery, window, document);=0A=
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illiweb.com/rsc/97/frm/SCEditor/src/plugins/bbcode.js
/*!pl SCEditor | (C) 2011-2013, Sam Clarke | sceditor.com/license */=0A=
/**=0A=
* SCEditor BBCode Plugin=0A=
* http://www.sceditor.com/=0A=
*=0A=
* Copyright (C) 2011-2013, Sam Clarke (samclarke.com)=0A=
*=0A=
* SCEditor is licensed under the MIT license:=0A=
* http://www.opensource.org/licenses/mit-license.php=0A=
*=0A=
* @fileoverview SCEditor BBCode Plugin=0A=
* @author Sam Clarke=0A=
* @version 1.4.2=0A=
* @requires jQuery=0A=
*/=0A=
=0A=
// =3D=3DClosureCompiler=3D=3D=0A=
// @output_file_name bbcode.min.js=0A=
// @compilation_level SIMPLE_OPTIMIZATIONS=0A=
// =3D=3D/ClosureCompiler=3D=3D=0A=
=0A=
/*jshint smarttabs: true, jquery: true, eqnull:true, curly: false */=0A=
/*global prompt: true*/=0A=
=0A=
(function($, window, document) {=0A=
'use strict';=0A=
=0A=
/**=0A=
* SCEditor BBCode parser class=0A=
*=0A=
* @param {Object} options=0A=
* @class BBCodeParser=0A=
* @name jQuery.sceditor.BBCodeParser=0A=
* @since v1.4.0=0A=
*/=0A=
$.sceditor.BBCodeParser =3D function(options) {=0A=
// make sure this is not being called as a function=0A=
if(!(this instanceof $.sceditor.BBCodeParser))=0A=
return new $.sceditor.BBCodeParser(options);=0A=
=0A=
var base =3D this;=0A=
=0A=
// Private methods=0A=
var init,=0A=
tokenizeTag,=0A=
tokenizeAttrs,=0A=
parseTokens,=0A=
normaliseNewLines,=0A=
fixNesting,=0A=
isChildAllowed,=0A=
removeEmpty,=0A=
fixChildren,=0A=
convertToHTML,=0A=
convertToBBCode,=0A=
hasTag,=0A=
quote,=0A=
lower,=0A=
last;=0A=
=0A=
/**=0A=
* Enum of valid token types=0A=
* @type {Object}=0A=
* @private=0A=
*/=0A=
var tokenType =3D {=0A=
open: 'open',=0A=
content: 'content',=0A=
newline: 'newline',=0A=
close: 'close'=0A=
};=0A=
=0A=
// Make tokenType enum read-only in browsers that support it.=0A=
if(Object.freeze)=0A=
Object.freeze(tokenType);=0A=
=0A=
/**=0A=
* Tokenize token class=0A=
*=0A=
* @param {String} type The type of token this is, should be one of =
tokenType=0A=
* @param {String} name The name of this token=0A=
* @param {String} val The originaly matched string=0A=
* @param {Array} attrs Any attributes. Only set on tokenType.open =
tokens=0A=
* @param {Array} children Any children of this token=0A=
* @param {TokenizeToken} closing This tokens closing tag. Only set =
on tokenType.open tokens=0A=
* @class TokenizeToken=0A=
* @name TokenizeToken=0A=
* @memberOf jQuery.sceditor.BBCodeParser.prototype=0A=
*/=0A=
var TokenizeToken =3D function(type, name, val, attrs, children, =
closing) {=0A=
var base =3D this;=0A=
base.type =3D type;=0A=
base.name =3D name;=0A=
base.val =3D val;=0A=
base.attrs =3D attrs || {};=0A=
base.children =3D children || [];=0A=
base.closing =3D closing || null;=0A=
};=0A=
=0A=
// Declaring mthods via prototype instead of in the constructor=0A=
// to reduce memory usage as there could be a lot or these=0A=
// objects created.=0A=
TokenizeToken.prototype =3D {=0A=
/** @lends jQuery.sceditor.BBCodeParser.prototype.TokenizeToken */=0A=
/**=0A=
* Clones this token=0A=
* @param {Bool} includeChildren If to include the children in the =
clone. Defaults to false.=0A=
* @return {TokenizeToken}=0A=
*/=0A=
clone: function(includeChildren) {=0A=
var base =3D this;=0A=
return new TokenizeToken(=0A=
base.type,=0A=
base.name,=0A=
base.val,=0A=
base.attrs,=0A=
includeChildren ? base.children : [],=0A=
base.closing ? base.closing.clone() : null=0A=
);=0A=
},=0A=
/**=0A=
* Splits this token at the specified child=0A=
* @param {TokenizeToken|Int} splitAt The child to split at or the =
index of the child=0A=
* @return {TokenizeToken} The right half of the split token or null =
if failed=0A=
*/=0A=
splitAt: function(splitAt) {=0A=
var clone,=0A=
base =3D this,=0A=
splitAtLength =3D 0,=0A=
childrenLen =3D base.children.length;=0A=
=0A=
if(typeof object !=3D=3D "number")=0A=
splitAt =3D $.inArray(splitAt, base.children);=0A=
=0A=
if(splitAt < 0 || splitAt > childrenLen)=0A=
return null;=0A=
=0A=
// Work out how many items are on the right side of the split=0A=
// to pass to splice()=0A=
while(childrenLen--)=0A=
{=0A=
if(childrenLen >=3D splitAt)=0A=
splitAtLength++;=0A=
else=0A=
childrenLen =3D 0;=0A=
}=0A=
=0A=
clone =3D base.clone();=0A=
clone.children =3D base.children.splice(splitAt, splitAtLength);=0A=
return clone;=0A=
}=0A=
};=0A=
=0A=
=0A=
init =3D function() {=0A=
base.opts =3D $.extend({}, $.sceditor.BBCodeParser.defaults, =
options);=0A=
base.bbcodes =3D $.sceditor.plugins.bbcode.bbcodes;=0A=
};=0A=
=0A=
/**=0A=
* Takes a BBCode string and splits it into open, content and close =
tags.=0A=
*=0A=
* It does no checking to verify a tag has a matching open or closing =
tag=0A=
* or if the tag is valid child of any tag before it. For that the =
tokens=0A=
* should be passed to the parse function.=0A=
*=0A=
* @param {String} str=0A=
* @return {Array}=0A=
* @memberOf jQuery.sceditor.BBCodeParser.prototype=0A=
*/=0A=
base.tokenize =3D function(str) {=0A=
var matches, type, i,=0A=
toks =3D [],=0A=
tokens =3D [=0A=
// Close must come before open as they are=0A=
// the same except close has a / at the start.=0A=
{=0A=
type: 'close',=0A=
regex: /^\[\/[^\[\]]+\]/=0A=
},=0A=
{=0A=
type: 'open',=0A=
regex: /^\[[^\[\]]+\]/=0A=
},=0A=
{=0A=
type: 'newline',=0A=
regex: /^(\r\n|\r|\n)/=0A=
},=0A=
{=0A=
type: 'content',=0A=
regex: /^([^\[\r\n]+|\[)/=0A=
}=0A=
];=0A=
=0A=
tokens.reverse();=0A=
=0A=
strloop:=0A=
while(str.length)=0A=
{=0A=
i =3D tokens.length;=0A=
while(i--)=0A=
{=0A=
type =3D tokens[i].type;=0A=
=0A=
// Check if the string matches any of the tokens=0A=
if(!(matches =3D str.match(tokens[i].regex)) || !matches[0])=0A=
continue;=0A=
=0A=
// Add the match to the tokens list=0A=
toks.push(tokenizeTag(type, matches[0]));=0A=
=0A=
// Remove the match from the string=0A=
str =3D str.substr(matches[0].length);=0A=
=0A=
// The token has been added so start again=0A=
continue strloop;=0A=
}=0A=
=0A=
// If there is anything left in the string which doesn't match=0A=
// any of the tokens then just assume it's content and add it.=0A=
if(str.length)=0A=
toks.push(tokenizeTag(tokenType.content, str));=0A=
=0A=
str =3D "";=0A=
}=0A=
=0A=
return toks;=0A=
};=0A=
=0A=
/**=0A=
* Extracts the name an params from a tag=0A=
*=0A=
* @param {Object} token=0A=
* @return {Object}=0A=
* @private=0A=
*/=0A=
tokenizeTag =3D function(type, val) {=0A=
var matches, attrs, name;=0A=
=0A=
// Extract the name and attributes from opening tags and=0A=
// just the name from closing tags.=0A=
if(type =3D=3D=3D "open" && (matches =3D =
val.match(/\[([^\]\s=3D\(]+)(?:([^\]]+))?\]/))) // Ajout de la =
parenthese suivant le token=0A=
{=0A=
name =3D lower(matches[1]);=0A=
=0A=
if(matches[2] && (matches[2] =3D $.trim(matches[2])))=0A=
attrs =3D tokenizeAttrs(matches[2]);=0A=
}=0A=
else if(type =3D=3D=3D "close" && (matches =3D =
val.match(/\[\/([^\[\]]+)\]/)))=0A=
name =3D lower(matches[1]);=0A=
else if(type =3D=3D=3D "newline")=0A=
name =3D '#newline';=0A=
=0A=
// Treat all tokens without a name and all unknown BBCodes as content=0A=
if(!name || (type =3D=3D=3D "open" || type =3D=3D=3D "close") && =
!$.sceditor.plugins.bbcode.bbcodes[name])=0A=
{=0A=
type =3D 'content';=0A=
name =3D '#';=0A=
}=0A=
=0A=
return new TokenizeToken(type, name, val, attrs);=0A=
};=0A=
=0A=
/**=0A=
* Extracts the individual attributes from a string containing=0A=
* all the attributes.=0A=
*=0A=
* @param {String} attrs=0A=
* @return {Array} Assoc array of attributes=0A=
* @private=0A=
*/=0A=
tokenizeAttrs =3D function(attrs) {=0A=
var matches,=0A=
/*=0A=
([^\s=3D]+) Anything that's not a space or equals=0A=
=3D Equals =3D=0A=
(?:=0A=
(?:=0A=
(["']) The opening quote=0A=
(=0A=
(?:\\\2|[^\2])*? Anything that isn't the unescaped opening quote=0A=
)=0A=
\2 The opening quote again which will now close the string=0A=
)=0A=
| If not a quoted string then match=0A=
(=0A=
(?:.(?!\s\S+=3D))*.? Anything that isn't part of =
[space][non-space][=3D] which would be a new attribute=0A=
)=0A=
)=0A=
*/=0A=
atribsRegex =3D =
/([^\s=3D]+)=3D(?:(?:(["'])((?:\\\2|[^\2])*?)\2)|((?:.(?!\s\S+=3D))*.))/g=
,=0A=
unquote =3D $.sceditor.plugins.bbcode.stripQuotes,=0A=
ret =3D {};=0A=
=0A=
// if only one attribute then remove the =3D from the start and strip =
any quotes=0A=
if(attrs.charAt(0) =3D=3D=3D "=3D" && attrs.indexOf('=3D', 1) < 0)=0A=
{=0A=
ret.defaultattr =3D unquote(attrs.substr(1));=0A=
}=0A=
else if(attrs.charAt(0) =3D=3D=3D "(" && attrs.charAt(attrs.length-1) =
=3D=3D=3D ")")=0A=
{=0A=
ret.defaultattr =3D attrs;=0A=
}=0A=
else=0A=
{=0A=
if(attrs.charAt(0) =3D=3D=3D "=3D")=0A=
attrs =3D "defaultattr" + attrs;=0A=
=0A=
// No need to strip quotes here, the regex will do that.=0A=
while((matches =3D atribsRegex.exec(attrs)))=0A=
ret[lower(matches[1])] =3D unquote(matches[3]) || matches[4];=0A=
}=0A=
=0A=
return ret;=0A=
};=0A=
=0A=
/**=0A=
* Parses a string into an array of BBCodes=0A=
*=0A=
* @param {String} str=0A=
* @param {Bool} preserveNewLines If to preserve all new lines, not =
strip any based on the passed formatting options=0A=
* @return {Array} Array of BBCode objects=0A=
* @memberOf jQuery.sceditor.BBCodeParser.prototype=0A=
*/=0A=
base.parse =3D function(str, preserveNewLines) { =0A=
var ret =3D parseTokens(base.tokenize(str));=0A=
=0A=
if(base.opts.fixInvalidChildren)=0A=
fixChildren(ret);=0A=
=0A=
if(base.opts.removeEmptyTags)=0A=
removeEmpty(ret);=0A=
=0A=
if(base.opts.fixInvalidNesting)=0A=
fixNesting(ret);=0A=
=0A=
normaliseNewLines(ret, null, preserveNewLines);=0A=
=0A=
if(base.opts.removeEmptyTags)=0A=
removeEmpty(ret);=0A=
=0A=
return ret;=0A=
};=0A=
=0A=
/**=0A=
* Checks if an array of TokenizeToken's contains the=0A=
* specified token.=0A=
*=0A=
* Checks the tokens name and type match another tokens=0A=
* name and type in the array.=0A=
*=0A=
* @param {string} name=0A=
* @param {tokenType} type=0A=
* @param {Array} arr=0A=
* @return {Boolean}=0A=
* @private=0A=
*/=0A=
hasTag =3D function(name, type, arr) {=0A=
var i =3D arr.length;=0A=
=0A=
while(i--)=0A=
if(arr[i].type =3D=3D=3D type && arr[i].name =3D=3D=3D name)=0A=
return true;=0A=
=0A=
return false;=0A=
};=0A=
=0A=
/**=0A=
* Checks if the child tag is allowed as one=0A=
* of the parent tags children.=0A=
*=0A=
* @param {TokenizeToken} parent=0A=
* @param {TokenizeToken} child=0A=
* @return {Boolean}=0A=
* @private=0A=
*/=0A=
isChildAllowed =3D function(parent, child) {=0A=
var bbcode =3D parent ? base.bbcodes[parent.name] : null,=0A=
allowedChildren =3D bbcode ? bbcode.allowedChildren : null;=0A=
=0A=
if(!base.opts.fixInvalidChildren || !allowedChildren)=0A=
return true;=0A=
=0A=
if(allowedChildren && $.inArray(child.name || '#', allowedChildren) < =
0)=0A=
return false;=0A=
=0A=
return true;=0A=
};=0A=
=0A=
// TODO: Tidy this parseTokens() function up a bit.=0A=
/**=0A=
* Parses an array of tokens created by tokenize()=0A=
*=0A=
* @param {Array} toks=0A=
* @return {Array} Parsed tokens=0A=
* @see tokenize()=0A=
* @private=0A=
*/=0A=
parseTokens =3D function(toks) {=0A=
var token, bbcode, curTok, clone, i, previous, next,=0A=
cloned =3D [],=0A=
output =3D [],=0A=
openTags =3D [],=0A=
/**=0A=
* Returns the currently open tag or undefined=0A=
* @return {TokenizeToken}=0A=
*/=0A=
currentOpenTag =3D function() {=0A=
return last(openTags);=0A=
},=0A=
/**=0A=
* Adds a tag to either the current tags children=0A=
* or to the output array.=0A=
* @param {TokenizeToken} token=0A=
* @private=0A=
*/=0A=
addTag =3D function(token) {=0A=
if(currentOpenTag())=0A=
currentOpenTag().children.push(token);=0A=
else=0A=
output.push(token);=0A=
},=0A=
/**=0A=
* Checks if this tag closes the current tag=0A=
* @param {String} name=0A=
* @return {Void}=0A=
*/=0A=
closesCurrentTag =3D function(name) {=0A=
return currentOpenTag() &&=0A=
(bbcode =3D base.bbcodes[currentOpenTag().name]) &&=0A=
bbcode.closedBy &&=0A=
$.inArray(name, bbcode.closedBy) > -1;=0A=
};=0A=
=0A=
while((token =3D toks.shift()))=0A=
{=0A=
next =3D toks[0];=0A=
=0A=
switch(token.type)=0A=
{=0A=
case tokenType.open:=0A=
// Check it this closes a parent, i.e. for lists [*]one [*]two=0A=
if(closesCurrentTag(token.name))=0A=
openTags.pop();=0A=
=0A=
addTag(token);=0A=
bbcode =3D base.bbcodes[token.name];=0A=
=0A=
// If this tag is not self closing and it has a closing tag then =
it is open and has children so=0A=
// add it to the list of open tags. If has the closedBy property =
then it is closed by other tags=0A=
// so include everything as it's children until one of those tags =
is reached.=0A=
if((!bbcode || !bbcode.isSelfClosing) && (bbcode.closedBy || =
hasTag(token.name, tokenType.close, toks)))=0A=
openTags.push(token);=0A=
else if(!bbcode || !bbcode.isSelfClosing)=0A=
token.type =3D tokenType.content;=0A=
break;=0A=
=0A=
case tokenType.close:=0A=
// check if this closes the current tag, e.g. [/list] would close =
an open [*]=0A=
if(currentOpenTag() && token.name !=3D=3D currentOpenTag().name && =
closesCurrentTag('/' + token.name))=0A=
openTags.pop();=0A=
=0A=
// If this is closing the currently open tag just pop the close=0A=
// tag off the open tags array=0A=
if(currentOpenTag() && token.name =3D=3D=3D currentOpenTag().name)=0A=
{=0A=
currentOpenTag().closing =3D token;=0A=
openTags.pop();=0A=
}=0A=
// If this is closing an open tag that is the parent of the current=0A=
// tag then clone all the tags including the current one until=0A=
// reaching the parent that is being closed. Close the parent and =
then=0A=
// add the clones back in.=0A=
else if(hasTag(token.name, tokenType.open, openTags))=0A=
{=0A=
// Remove the tag from the open tags=0A=
while((curTok =3D openTags.pop()))=0A=
{=0A=
// If it's the tag that is being closed then=0A=
// discard it and break the loop.=0A=
if(curTok.name =3D=3D=3D token.name)=0A=
{=0A=
curTok.closing =3D token;=0A=
break;=0A=
}=0A=
=0A=
// Otherwise clone this tag and then add any=0A=
// previously cloned tags as it's children=0A=
clone =3D curTok.clone();=0A=
=0A=
if(cloned.length > 1)=0A=
clone.children.push(last(cloned));=0A=
=0A=
cloned.push(clone);=0A=
}=0A=
=0A=
// Add the last cloned child to the now current tag=0A=
// (the parent of the tag which was being closed)=0A=
addTag(last(cloned));=0A=
=0A=
// Add all the cloned tags to the open tags list=0A=
i =3D cloned.length;=0A=
while(i--)=0A=
openTags.push(cloned[i]);=0A=
=0A=
cloned.length =3D 0;=0A=
}=0A=
// This tag is closing nothing so treat it as content=0A=
else=0A=
{=0A=
token.type =3D tokenType.content;=0A=
addTag(token);=0A=
}=0A=
break;=0A=
=0A=
case tokenType.newline:=0A=
// handle things like=0A=
// [*]list\nitem\n[*]list1=0A=
// where it should come out as=0A=
// [*]list\nitem[/*]\n[*]list1[/*]=0A=
// instead of=0A=
// [*]list\nitem\n[/*][*]list1[/*]=0A=
if(currentOpenTag() && next && closesCurrentTag((next.type =
=3D=3D=3D tokenType.close ? '/' : '') + next.name))=0A=
{=0A=
// skip if the next tag is the closing tag for the option tag, =
i.e. [/*]=0A=
if(!(next.type =3D=3D=3D tokenType.close && next.name =3D=3D=3D =
currentOpenTag().name))=0A=
{=0A=
bbcode =3D base.bbcodes[currentOpenTag().name];=0A=
=0A=
if(bbcode && bbcode.breakAfter)=0A=
openTags.pop();=0A=
else if(bbcode && bbcode.isInline =3D=3D=3D false && =
base.opts.breakAfterBlock && bbcode.breakAfter !=3D=3D false)=0A=
openTags.pop();=0A=
}=0A=
}=0A=
=0A=
addTag(token);=0A=
break;=0A=
=0A=
default: // content=0A=
addTag(token);=0A=
break;=0A=
}=0A=
=0A=
previous =3D token;=0A=
}=0A=
=0A=
return output;=0A=
};=0A=
=0A=
/**=0A=
* Normalise all new lines=0A=
*=0A=
* Removes any formatting new lines from the BBCode=0A=
* leaving only content ones. I.e. for a list:=0A=
*=0A=
* [list]=0A=
* [*] list item one=0A=
* with a line break=0A=
* [*] list item two=0A=
* [/list]=0A=
*=0A=
* would become=0A=
*=0A=
* [list] [*] list item one=0A=
* with a line break [*] list item two [/list]=0A=
*=0A=
* Which makes it easier to convert to HTML or add=0A=
* the formmating new lines back in when converting=0A=
* back to BBCode=0A=
*=0A=
* @param {Array} children=0A=
* @param {TokenizeToken} parent=0A=
* @param {Bool} onlyRemoveBreakAfter=0A=
* @return {void}=0A=
*/=0A=
normaliseNewLines =3D function(children, parent, onlyRemoveBreakAfter) =
{=0A=
var token, left, right, parentBBCode, bbcode,=0A=
removedBreakEnd, removedBreakBefore, remove,=0A=
childrenLength =3D children.length,=0A=
i =3D childrenLength;=0A=
=0A=
if(parent)=0A=
parentBBCode =3D base.bbcodes[parent.name];=0A=
=0A=
while(i--)=0A=
{=0A=
if(!(token =3D children[i]))=0A=
continue;=0A=
=0A=
if(token.type =3D=3D=3D tokenType.newline)=0A=
{=0A=
left =3D i > 0 ? children[i - 1] : null;=0A=
right =3D i < childrenLength - 1 ? children[i+1] : null;=0A=
remove =3D false;=0A=
=0A=
// Handle the start and end new lines e.g. [tag]\n and \n[/tag]=0A=
if(!onlyRemoveBreakAfter && parentBBCode && =
parentBBCode.isSelfClosing !=3D=3D true)=0A=
{=0A=
// First child of parent so must be opening line break =
(breakStartBlock, breakStart) e.g. [tag]\n=0A=
if(!left)=0A=
{=0A=
if(parentBBCode.isInline =3D=3D=3D false && =
base.opts.breakStartBlock && parentBBCode.breakStart !=3D=3D false)=0A=
remove =3D true;=0A=
=0A=
if(parentBBCode.breakStart)=0A=
remove =3D true;=0A=
}=0A=
// Last child of parent so must be end line break (breakEndBlock, =
breakEnd) e.g. \n[/tag]=0A=
// remove last line break (breakEndBlock, breakEnd)=0A=
else if (!removedBreakEnd && !right)=0A=
{=0A=
if(parentBBCode.isInline =3D=3D=3D false && =
base.opts.breakEndBlock && parentBBCode.breakEnd !=3D=3D false)=0A=
remove =3D true;=0A=
=0A=
if(parentBBCode.breakEnd)=0A=
remove =3D true;=0A=
=0A=
removedBreakEnd =3D remove;=0A=
}=0A=
}=0A=
=0A=
if(left && left.type =3D=3D=3D tokenType.open)=0A=
{=0A=
if((bbcode =3D base.bbcodes[left.name]))=0A=
{=0A=
if(!onlyRemoveBreakAfter)=0A=
{=0A=
if(bbcode.isInline =3D=3D=3D false && base.opts.breakAfterBlock =
&& bbcode.breakAfter !=3D=3D false)=0A=
remove =3D true;=0A=
=0A=
if(bbcode.breakAfter)=0A=
remove =3D true;=0A=
}=0A=
else if(bbcode.isInline =3D=3D=3D false)=0A=
remove =3D true;=0A=
}=0A=
}=0A=
=0A=
if(!onlyRemoveBreakAfter && !removedBreakBefore && right && =
right.type =3D=3D=3D tokenType.open)=0A=
{=0A=
if((bbcode =3D base.bbcodes[right.name]))=0A=
{=0A=
if(bbcode.isInline =3D=3D=3D false && base.opts.breakBeforeBlock =
&& bbcode.breakBefore !=3D=3D false)=0A=
remove =3D true;=0A=
=0A=
if(bbcode.breakBefore)=0A=
remove =3D true;=0A=
=0A=
removedBreakBefore =3D remove;=0A=
=0A=
if(remove)=0A=
{=0A=
children.splice(i, 1);=0A=
continue;=0A=
}=0A=
}=0A=
}=0A=
=0A=
if(remove)=0A=
children.splice(i, 1);=0A=
=0A=
// reset double removedBreakBefore removal protection.=0A=
// This is needed for cases like \n\n[\tag] where=0A=
// only 1 \n should be removed but without this they both=0A=
// would be.=0A=
removedBreakBefore =3D false;=0A=
}=0A=
else if(token.type =3D=3D=3D tokenType.open)=0A=
normaliseNewLines(token.children, token, onlyRemoveBreakAfter);=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Fixes any invalid nesting.=0A=
*=0A=
* If it is a block level element inside 1 or more inline elements=0A=
* then those inline elements will be split at the point where the=0A=
* block level is and the block level element placed between the split=0A=
* parts. i.e.=0A=
* [inline]textA[blocklevel]textB[/blocklevel]textC[/inline]=0A=
* Will become:=0A=
* =
[inline]textA[/inline][blocklevel]textB[/blocklevel][inline]textC[/inline=
]=0A=
*=0A=
* @param {Array} children=0A=
* @param {Array} [parents] Null if there is no parents=0A=
* @param {Array} [insideInline] Boolean, if insdie an inline element=0A=
* @param {Array} [rootArr] Root array if there is one=0A=
* @return {Array}=0A=
* @private=0A=
*/=0A=
fixNesting =3D function(children, parents, insideInline, rootArr) {=0A=
var token, i, parent, parentIndex, parentParentChildren, right,=0A=
isInline =3D function(token) {=0A=
var bbcode =3D base.bbcodes[token.name];=0A=
=0A=
return !bbcode || bbcode.isInline !=3D=3D false;=0A=
};=0A=
=0A=
parents =3D parents || [];=0A=
rootArr =3D rootArr || children;=0A=
=0A=
// this must check length each time as the length=0A=
// can change as tokens are moved around to fix the nesting.=0A=
for(i=3D0; i
1 ? =
parents[parents.length - 2].children : rootArr;=0A=
=0A=
if((parentIndex =3D $.inArray(parent, parentParentChildren)) > -1)=0A=
{=0A=
// remove the block level token from the right side of the split=0A=
// inlnie element=0A=
right.children.splice($.inArray(token, right.children), 1);=0A=
=0A=
// insert the block level token and the right side after the left=0A=
// side of the inline token=0A=
parentParentChildren.splice(parentIndex+1, 0, token, right);=0A=
=0A=
// return to parents loop as the children have now increased=0A=
return;=0A=
}=0A=
=0A=
}=0A=
=0A=
parents.push(token);=0A=
fixNesting(token.children, parents, insideInline || isInline(token), =
rootArr);=0A=
parents.pop(token);=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Fixes any invalid children.=0A=
*=0A=
* If it is an element which isn't allowed as a child of it's parent=0A=
* then it will be converted to content of the parent element. i.e.=0A=
* [code]Code [b]only[/b] allows text.[/code]=0A=
* Will become:=0A=
* Code [b]only[/b] allows text.
=0A=
* Instead of:=0A=
* Code only allows text.
=0A=
*=0A=
* @param {Array} children=0A=
* @param {Array} [parent] Null if there is no parents=0A=
* @private=0A=
*/=0A=
fixChildren =3D function(children, parent) {=0A=
var token, args,=0A=
i =3D children.length;=0A=
=0A=
while(i--)=0A=
{=0A=
if(!(token =3D children[i]))=0A=
continue;=0A=
=0A=
if(!isChildAllowed(parent, token))=0A=
{=0A=
// if it is not then convert it to text and see if it=0A=
// is allowed=0A=
token.name =3D null;=0A=
token.type =3D tokenType.content;=0A=
=0A=
if(isChildAllowed(parent, token))=0A=
{=0A=
args =3D [i+1, 0].concat(token.children);=0A=
=0A=
if(token.closing)=0A=
{=0A=
token.closing.name =3D null;=0A=
token.closing.type =3D tokenType.content;=0A=
args.push(token.closing);=0A=
}=0A=
=0A=
i +=3D args.length - 1;=0A=
Array.prototype.splice.apply(children, args);=0A=
}=0A=
else=0A=
parent.children.splice(i, 1);=0A=
}=0A=
=0A=
if(token.type =3D=3D=3D tokenType.open)=0A=
fixChildren(token.children, token);=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Removes any empty BBCodes which are not allowed to be empty.=0A=
*=0A=
* @param {Array} tokens=0A=
* @private=0A=
*/=0A=
removeEmpty =3D function(tokens) {=0A=
var token, bbcode, allWhiteSpace,=0A=
i =3D tokens.length;=0A=
=0A=
/**=0A=
* Checks if all children are whitespace or not=0A=
* @private=0A=
*/=0A=
allWhiteSpace =3D function(children) {=0A=
var j =3D children.length;=0A=
=0A=
while(j--)=0A=
{=0A=
if(children[j].type =3D=3D=3D tokenType.open)=0A=
return false;=0A=
=0A=
if(children[j].type =3D=3D=3D tokenType.close)=0A=
return false;=0A=
=0A=
if(children[j].type =3D=3D=3D tokenType.content && children[j].val =
&& /\S| /.test(children[j].val))=0A=
return false;=0A=
}=0A=
=0A=
return true;=0A=
};=0A=
=0A=
while(i--)=0A=
{=0A=
// only tags can be empty, content can't be empty. So skip anything =
that isn't a tag.=0A=
if(!(token =3D tokens[i]) || token.type !=3D=3D tokenType.open)=0A=
continue;=0A=
=0A=
bbcode =3D base.bbcodes[token.name];=0A=
=0A=
// remove any empty children of this tag first so that if they are =
all=0A=
// removed this one doesn't think it's not empty.=0A=
removeEmpty(token.children);=0A=
=0A=
if(allWhiteSpace(token.children) && bbcode && !bbcode.isSelfClosing =
&& !bbcode.allowsEmpty)=0A=
tokens.splice.apply(tokens, $.merge([i, 1], token.children));=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Converts a BBCode string to HTML=0A=
* @param {String} str=0A=
* @param {Bool} preserveNewLines If to preserve all new lines, not =
strip any based on the passed formatting options=0A=
* @return {String}=0A=
* @memberOf jQuery.sceditor.BBCodeParser.prototype=0A=
*/=0A=
base.toHTML =3D function(str, preserveNewLines) {=0A=
return convertToHTML(base.parse(str, preserveNewLines), true);=0A=
};=0A=
=0A=
/**=0A=
* @private=0A=
*/=0A=
convertToHTML =3D function(tokens, isRoot) {=0A=
var token, bbcode, content, html, needsBlockWrap, blockWrapOpen,=0A=
isInline, lastChild,=0A=
ret =3D [];=0A=
=0A=
isInline =3D function(bbcode) {=0A=
return (!bbcode || (typeof bbcode.isHtmlInline !=3D=3D "undefined" ? =
bbcode.isHtmlInline : bbcode.isInline)) !=3D=3D false;=0A=
};=0A=
=0A=
while(tokens.length > 0)=0A=
{=0A=
if(!(token =3D tokens.shift()))=0A=
continue;=0A=
=0A=
if(token.type =3D=3D=3D tokenType.open)=0A=
{=0A=
lastChild =3D token.children[token.children.length - 1] || {};=0A=
bbcode =3D base.bbcodes[token.name];=0A=
needsBlockWrap =3D isRoot && isInline(bbcode);=0A=
content =3D convertToHTML(token.children, false);=0A=
=0A=
if(bbcode && bbcode.html)=0A=
{=0A=
// Only add a line break to the end if this is blocklevel and the =
last child wasn't block-level=0A=
if(!isInline(bbcode) && isInline(base.bbcodes[lastChild.name]) && =
!bbcode.isPreFormatted && !bbcode.skipLastLineBreak)=0A=
{=0A=
// Add placeholder br to end of block level elements in all =
browsers apart from IE < 9 which=0A=
// handle new lines diffrently and doesn't need one.=0A=
if(!$.sceditor.ie)=0A=
content +=3D " ";=0A=
}=0A=
=0A=
if($.isFunction(bbcode.html))=0A=
html =3D bbcode.html.call(base, token, token.attrs, content);=0A=
else=0A=
html =3D $.sceditor.plugins.bbcode.formatString(bbcode.html, =
content);=0A=
}=0A=
else=0A=
html =3D token.val + content + (token.closing ? token.closing.val =
: '');=0A=
}=0A=
else if(token.type =3D=3D=3D tokenType.newline)=0A=
{=0A=
if(!isRoot)=0A=
{=0A=
ret.push(' ');=0A=
continue;=0A=
}=0A=
=0A=
// if already in a block wrap then just closing it=0A=
// will act as a line-break.=0A=
if(blockWrapOpen)=0A=
{=0A=
ret.push(' \n');=0A=
blockWrapOpen =3D false;=0A=
continue;=0A=
}=0A=
=0A=
ret.push('
');=0A=
=0A=
// Putting BR in a div in IE9 causes it to do a double line break.=0A=
if(!$.sceditor.ie)=0A=
ret.push(' ');=0A=
=0A=
// If it's an empty DIV and compatibility mode is below IE8 then=0A=
// we must add a non-breaking space to the div otherwise the div=0A=
// will be collapsed. Adding a BR works but when you press enter=0A=
// to make a newline it suddenly goes back to the normal IE div=0A=
// behaviour and creates two lines, one for the newline and one=0A=
// for the BR. I'm sure there must be a better fix but I've yet to=0A=
// find one.=0A=
// Cannot do zoom: 1; or set a height on the div to fix it as that=0A=
// causes resize handles to be added to the div when it's clicked =
on/=0A=
if((document.documentMode && document.documentMode < 8) || =
$.sceditor.ie < 8)=0A=
ret.push(' ');=0A=
=0A=
ret.push('
\n');=0A=
continue;=0A=
}=0A=
else // content=0A=
{=0A=
needsBlockWrap =3D isRoot;=0A=
html =3D $.sceditor.escapeEntities(token.val);=0A=
}=0A=
=0A=
if(needsBlockWrap && !blockWrapOpen)=0A=
{=0A=
ret.push('
');=0A=
blockWrapOpen =3D true;=0A=
}=0A=
else if(!needsBlockWrap && blockWrapOpen)=0A=
{=0A=
ret.push('
\n');=0A=
blockWrapOpen =3D false;=0A=
}=0A=
=0A=
ret.push(html);=0A=
}=0A=
=0A=
if(blockWrapOpen)=0A=
ret.push('
\n');=0A=
=0A=
return ret.join('');=0A=
};=0A=
=0A=
/**=0A=
* Takes a BBCode string, parses it then converts it back to BBCode.=0A=
*=0A=
* This will auto fix the BBCode and format it with the specified =
options.=0A=
*=0A=
* @param {String} str=0A=
* @param {Bool} preserveNewLines If to preserve all new lines, not =
strip any based on the passed formatting options=0A=
* @return {String}=0A=
* @memberOf jQuery.sceditor.BBCodeParser.prototype=0A=
*/=0A=
base.toBBCode =3D function(str, preserveNewLines) {=0A=
return convertToBBCode(base.parse(str, preserveNewLines));=0A=
};=0A=
=0A=
/**=0A=
* Converts parsed tokens back into BBCode with the=0A=
* formatting specified in the options and with any=0A=
* fixes specified.=0A=
*=0A=
* @param {Array} toks Array of parsed tokens from base.parse()=0A=
* @return {String}=0A=
* @private=0A=
*/=0A=
convertToBBCode =3D function(toks) {=0A=
var token, attr, bbcode, isBlock, isSelfClosing, quoteType,=0A=
breakBefore, breakStart, breakEnd, breakAfter,=0A=
// Create an array of strings which are joined together=0A=
// before being returned as this is faster in slow browsers.=0A=
// (Old versions of IE).=0A=
ret =3D [];=0A=
=0A=
while(toks.length > 0)=0A=
{=0A=
if(!(token =3D toks.shift()))=0A=
continue;=0A=
=0A=
bbcode =3D base.bbcodes[token.name];=0A=
isBlock =3D !(!bbcode || bbcode.isInline !=3D=3D false);=0A=
isSelfClosing =3D bbcode && bbcode.isSelfClosing;=0A=
breakBefore =3D ((isBlock && base.opts.breakBeforeBlock && =
bbcode.breakBefore !=3D=3D false) || (bbcode && bbcode.breakBefore));=0A=
breakStart =3D ((isBlock && !isSelfClosing && =
base.opts.breakStartBlock && bbcode.breakStart !=3D=3D false) || (bbcode =
&& bbcode.breakStart));=0A=
breakEnd =3D ((isBlock && base.opts.breakEndBlock && =
bbcode.breakEnd !=3D=3D false) || (bbcode && bbcode.breakEnd));=0A=
breakAfter =3D ((isBlock && base.opts.breakAfterBlock && =
bbcode.breakAfter !=3D=3D false) || (bbcode && bbcode.breakAfter));=0A=
quoteType =3D (bbcode ? bbcode.quoteType : null) || =
base.opts.quoteType || $.sceditor.BBCodeParser.QuoteType.auto;=0A=
=0A=
if(!bbcode && token.type =3D=3D=3D tokenType.open)=0A=
{=0A=
ret.push(token.val);=0A=
=0A=
if(token.children)=0A=
ret.push(convertToBBCode(token.children));=0A=
=0A=
if(token.closing)=0A=
ret.push(token.closing.val);=0A=
}=0A=
else if(token.type =3D=3D=3D tokenType.open)=0A=
{=0A=
if(breakBefore)=0A=
ret.push('\n');=0A=
=0A=
// Convert the tag and it's attributes to BBCode=0A=
ret.push('[' + token.name);=0A=
if(token.attrs)=0A=
{=0A=
if(token.attrs.defaultattr)=0A=
{=0A=
if(token.attrs.defaultattr.charAt(0) =3D=3D=3D "(" && =
token.attrs.defaultattr.charAt(token.attrs.defaultattr.length-1) =
=3D=3D=3D ")") // Adaptation FA=0A=
ret.push(quote(token.attrs.defaultattr, quoteType, =
'defaultattr'));=0A=
else=0A=
ret.push('=3D' + quote(token.attrs.defaultattr, quoteType, =
'defaultattr'));=0A=
delete token.attrs.defaultattr;=0A=
}=0A=
=0A=
for(attr in token.attrs)=0A=
if(token.attrs.hasOwnProperty(attr))=0A=
ret.push(' ' + attr + '=3D' + quote(token.attrs[attr], =
quoteType, attr));=0A=
}=0A=
ret.push(']');=0A=
=0A=
if(breakStart)=0A=
ret.push('\n');=0A=
=0A=
// Convert the tags children to BBCode=0A=
if(token.children)=0A=
ret.push(convertToBBCode(token.children));=0A=
=0A=
// add closing tag if not self closing=0A=
if(!isSelfClosing && !bbcode.excludeClosing)=0A=
{=0A=
if(breakEnd)=0A=
ret.push('\n');=0A=
=0A=
ret.push('[/' + token.name + ']');=0A=
}=0A=
=0A=
if(breakAfter)=0A=
ret.push('\n');=0A=
=0A=
// preserve whatever was recognised as the closing tag if=0A=
// it is a self closing tag=0A=
if(token.closing && isSelfClosing)=0A=
ret.push(token.closing.val);=0A=
}=0A=
else=0A=
ret.push(token.val);=0A=
}=0A=
=0A=
return ret.join('');=0A=
};=0A=
=0A=
/**=0A=
* Quotes an attribute=0A=
*=0A=
* @param {String} str=0A=
* @param {$.sceditor.BBCodeParser.QuoteType} quoteType=0A=
* @param {String} name=0A=
* @return {String}=0A=
* @private=0A=
*/=0A=
quote =3D function(str, quoteType, name) {=0A=
var QuoteTypes =3D $.sceditor.BBCodeParser.QuoteType,=0A=
needsQuotes =3D /\s|=3D/.test(str);=0A=
=0A=
if (typeof str =3D=3D=3D "undefined") {=0A=
FA.SCEditor.sourceMode =3D true;=0A=
console.error("Quote Error!");=0A=
return '';=0A=
}=0A=
else {=0A=
if($.isFunction(quoteType))=0A=
return quoteType(str, name);=0A=
=0A=
if(quoteType =3D=3D=3D QuoteTypes.never || (quoteType =3D=3D=3D =
QuoteTypes.auto && !needsQuotes))=0A=
return str;=0A=
=0A=
return '"' + str.replace('\\', '\\\\').replace('"', '\\"') + '"';=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Returns the last element of an array or null=0A=
*=0A=
* @param {Array} arr=0A=
* @return {Object} Last element=0A=
* @private=0A=
*/=0A=
last =3D function(arr) {=0A=
if(arr.length)=0A=
return arr[arr.length - 1];=0A=
=0A=
return null;=0A=
};=0A=
=0A=
/**=0A=
* Converts a string to lowercase.=0A=
*=0A=
* @param {String} str=0A=
* @return {String} Lowercase version of str=0A=
* @private=0A=
*/=0A=
lower =3D function(str) {=0A=
return str.toLowerCase();=0A=
};=0A=
=0A=
init();=0A=
};=0A=
=0A=
/**=0A=
* Quote type=0A=
* @type {Object}=0A=
* @class QuoteType=0A=
* @name jQuery.sceditor.BBCodeParser.QuoteType=0A=
* @since v1.4.0=0A=
*/=0A=
$.sceditor.BBCodeParser.QuoteType =3D {=0A=
/** @lends jQuery.sceditor.BBCodeParser.QuoteType */=0A=
/**=0A=
* Always quote the attribute value=0A=
* @type {Number}=0A=
*/=0A=
always: 1,=0A=
=0A=
/**=0A=
* Never quote the attributes value=0A=
* @type {Number}=0A=
*/=0A=
never: 2,=0A=
=0A=
/**=0A=
* Only quote the attributes value when it contains spaces ot equals=0A=
* @type {Number}=0A=
*/=0A=
auto: 3=0A=
};=0A=
=0A=
// Make AttributeQuoteType enum read-only in browsers that support it.=0A=
if(Object.freeze)=0A=
Object.freeze($.sceditor.BBCodeParser.QuoteType);=0A=
=0A=
/**=0A=
* Default BBCode parser options=0A=
* @type {Object}=0A=
*/=0A=
$.sceditor.BBCodeParser.defaults =3D {=0A=
/**=0A=
* If to add a new line before block level elements=0A=
* @type {Boolean}=0A=
*/=0A=
breakBeforeBlock: false,=0A=
=0A=
/**=0A=
* If to add a new line after the start of block level elements=0A=
* @type {Boolean}=0A=
*/=0A=
breakStartBlock: false,=0A=
=0A=
/**=0A=
* If to add a new line before the end of block level elements=0A=
* @type {Boolean}=0A=
*/=0A=
breakEndBlock: false,=0A=
=0A=
/**=0A=
* If to add a new line after block level elements=0A=
* @type {Boolean}=0A=
*/=0A=
breakAfterBlock: true,=0A=
=0A=
/**=0A=
* If to remove empty tags=0A=
* @type {Boolean}=0A=
*/=0A=
removeEmptyTags: true,=0A=
=0A=
/**=0A=
* If to fix invalid nesting, i.e. block level elements inside inline =
elements.=0A=
* @type {Boolean}=0A=
*/=0A=
fixInvalidNesting: true,=0A=
=0A=
/**=0A=
* If to fix invalid children. i.e. A tag which is inside a parent =
that doesn't allow that type of tag.=0A=
* @type {Boolean}=0A=
*/=0A=
fixInvalidChildren: true,=0A=
=0A=
/**=0A=
* Attribute quote type=0A=
* @type {$.sceditor.BBCodeParser.QuoteType}=0A=
* @since 1.4.1=0A=
*/=0A=
quoteType: $.sceditor.BBCodeParser.QuoteType.auto=0A=
};=0A=
=0A=
/**=0A=
* Deprecated, use $.sceditor.plugins.bbcode=0A=
*=0A=
* @class sceditorBBCodePlugin=0A=
* @name jQuery.sceditor.sceditorBBCodePlugin=0A=
* @deprecated=0A=
*/=0A=
$.sceditorBBCodePlugin =3D=0A=
/**=0A=
* BBCode plugin for SCEditor=0A=
*=0A=
* @class bbcode=0A=
* @name jQuery.sceditor.plugins.bbcode=0A=
* @since 1.4.1=0A=
*/=0A=
$.sceditor.plugins.bbcode =3D function() {=0A=
var base =3D this;=0A=
=0A=
/**=0A=
* Private methods=0A=
* @private=0A=
*/=0A=
var buildBbcodeCache,=0A=
handleStyles,=0A=
handleTags,=0A=
formatString,=0A=
getStyle,=0A=
mergeSourceModeCommands,=0A=
removeFirstLastDiv;=0A=
=0A=
formatString =3D $.sceditor.plugins.bbcode.formatString;=0A=
base.bbcodes =3D $.sceditor.plugins.bbcode.bbcodes;=0A=
base.stripQuotes =3D $.sceditor.plugins.bbcode.stripQuotes;=0A=
=0A=
/**=0A=
* cache of all the tags pointing to their bbcodes to enable=0A=
* faster lookup of which bbcode a tag should have=0A=
* @private=0A=
*/=0A=
var tagsToBbcodes =3D {};=0A=
=0A=
/**=0A=
* Same as tagsToBbcodes but instead of HTML tags it's styles=0A=
* @private=0A=
*/=0A=
var stylesToBbcodes =3D {};=0A=
=0A=
/**=0A=
* Allowed children of specific HTML tags. Empty array if no=0A=
* children other than text nodes are allowed=0A=
* @private=0A=
*/=0A=
var validChildren =3D {=0A=
ul: ['li', 'ol', 'ul'],=0A=
ol: ['li', 'ol', 'ul'],=0A=
table: ['tr'],=0A=
tr: ['td', 'th'],=0A=
code: ['br', 'p', 'div']=0A=
};=0A=
=0A=
/**=0A=
* Cache of CamelCase versions of CSS properties=0A=
* @type {Object}=0A=
*/=0A=
var propertyCache =3D {};=0A=
=0A=
=0A=
/**=0A=
* Initializer=0A=
* @private=0A=
*/=0A=
base.init =3D function() {=0A=
base.opts =3D this.opts;=0A=
=0A=
// build the BBCode cache=0A=
buildBbcodeCache();=0A=
mergeSourceModeCommands(this);=0A=
=0A=
// Add BBCode helper methods=0A=
this.toBBCode =3D base.signalToSource;=0A=
this.fromBBCode =3D base.signalToWysiwyg;=0A=
};=0A=
=0A=
mergeSourceModeCommands =3D function(editor) {=0A=
var merge =3D {=0A=
bold: { txtExec: ["[b]", "[/b]"] },=0A=
italic: { txtExec: ["[i]", "[/i]"] },=0A=
underline: { txtExec: ["[u]", "[/u]"] },=0A=
strike: { txtExec: ["[s]", "[/s]"] },=0A=
subscript: { txtExec: ["[sub]", "[/sub]"] },=0A=
superscript: { txtExec: ["[sup]", "[/sup]"] },=0A=
left: { txtExec: ["[left]", "[/left]"] },=0A=
center: { txtExec: ["[center]", "[/center]"] },=0A=
right: { txtExec: ["[right]", "[/right]"] },=0A=
justify: { txtExec: ["[justify]", "[/justify]"] },=0A=
font: { txtExec: function(caller) {=0A=
var editor =3D this;=0A=
=0A=
$.sceditor.command.get('font')._dropDown(=0A=
editor,=0A=
caller,=0A=
function(fontName) {=0A=
editor.insertText("[font=3D"+fontName+"]", "[/font]");=0A=
}=0A=
);=0A=
} },=0A=
size: { txtExec: function(caller) {=0A=
var editor =3D this;=0A=
=0A=
$.sceditor.command.get('size')._dropDown(=0A=
editor,=0A=
caller,=0A=
function(fontSize) {=0A=
editor.insertText("[size=3D"+fontSize+"]", "[/size]");=0A=
}=0A=
);=0A=
} },=0A=
color: { txtExec: function(caller) {=0A=
var editor =3D this;=0A=
=0A=
$.sceditor.command.get('color')._dropDown(=0A=
editor,=0A=
caller,=0A=
function(color) {=0A=
editor.insertText("[color=3D"+color+"]", "[/color]");=0A=
}=0A=
);=0A=
} },=0A=
bulletlist: { txtExec: ["[ul][li]", "[/li][/ul]"] },=0A=
orderedlist: { txtExec: ["[ol][li]", "[/li][/ol]"] },=0A=
table: { txtExec: ["[table][tr][td]", "[/td][/tr][/table]"] },=0A=
horizontalrule: { txtExec: ["[hr]"] },=0A=
code: { txtExec: ["[code]", "[/code]"] },=0A=
image: { txtExec: function(caller, selected) {=0A=
var url =3D prompt(this._("Enter the image URL:"), selected);=0A=
=0A=
if(url)=0A=
this.insertText("[img]" + url + "[/img]");=0A=
} },=0A=
email: { txtExec: function(caller, selected) {=0A=
var display =3D selected && selected.indexOf('@') > -1 ? null : =
selected,=0A=
email =3D prompt(this._("Enter the e-mail address:"), (display ? =
'' : selected)),=0A=
text =3D prompt(this._("Enter the displayed text:"), display || =
email) || email;=0A=
=0A=
if(email)=0A=
this.insertText("[email=3D" + email + "]" + text + "[/email]");=0A=
} },=0A=
link: { txtExec: function(caller, selected) {=0A=
var display =3D selected && selected.indexOf('http://') > -1 ? null =
: selected,=0A=
url =3D prompt(this._("Enter URL:"), (display ? 'http://' : =
selected)),=0A=
text =3D prompt(this._("Enter the displayed text:"), display || =
url) || url;=0A=
=0A=
if(url)=0A=
this.insertText("[url=3D" + url + "]" + text + "[/url]");=0A=
} },=0A=
quote: { txtExec: ["[quote]", "[/quote]"] },=0A=
youtube: { txtExec: function(caller) {=0A=
var editor =3D this;=0A=
=0A=
$.sceditor.command.get('youtube')._dropDown(=0A=
editor,=0A=
caller,=0A=
function(id) {=0A=
editor.insertText("[youtube]" + id + "[/youtube]");=0A=
}=0A=
);=0A=
} },=0A=
rtl: { txtExec: ["[rtl]", "[/rtl]"] },=0A=
ltr: { txtExec: ["[ltr]", "[/ltr]"] }=0A=
};=0A=
=0A=
editor.commands =3D $.extend(true, {}, merge, editor.commands);=0A=
};=0A=
=0A=
/**=0A=
* Populates tagsToBbcodes and stylesToBbcodes to enable faster lookups=0A=
*=0A=
* @private=0A=
*/=0A=
buildBbcodeCache =3D function() {=0A=
$.each(base.bbcodes, function(bbcode) {=0A=
if(base.bbcodes[bbcode].tags)=0A=
$.each(base.bbcodes[bbcode].tags, function(tag, values) {=0A=
var isBlock =3D base.bbcodes[bbcode].isInline =3D=3D=3D false;=0A=
tagsToBbcodes[tag] =3D (tagsToBbcodes[tag] || {});=0A=
tagsToBbcodes[tag][isBlock] =3D (tagsToBbcodes[tag][isBlock] || =
{});=0A=
tagsToBbcodes[tag][isBlock][bbcode] =3D values;=0A=
});=0A=
=0A=
if(base.bbcodes[bbcode].styles)=0A=
$.each(base.bbcodes[bbcode].styles, function(style, values) {=0A=
var isBlock =3D base.bbcodes[bbcode].isInline =3D=3D=3D false;=0A=
stylesToBbcodes[isBlock] =3D (stylesToBbcodes[isBlock] || {});=0A=
stylesToBbcodes[isBlock][style] =3D =
(stylesToBbcodes[isBlock][style] || {});=0A=
stylesToBbcodes[isBlock][style][bbcode] =3D values;=0A=
});=0A=
});=0A=
};=0A=
=0A=
/**=0A=
* Gets the value of a style property on the passed element=0A=
* @private=0A=
*/=0A=
getStyle =3D function(element, property) {=0A=
var $elm, ret, dir, textAlign, name,=0A=
style =3D element.style;=0A=
=0A=
if(!style)=0A=
return null;=0A=
=0A=
if(!propertyCache[property])=0A=
propertyCache[property] =3D $.camelCase(property);=0A=
=0A=
name =3D propertyCache[property];=0A=
=0A=
// add exception for align=0A=
if("text-align" =3D=3D=3D property)=0A=
{=0A=
$elm =3D $(element);=0A=
dir =3D style.direction;=0A=
textAlign =3D style[name] || $elm.css(property);=0A=
=0A=
if($elm.parent().css(property) !=3D=3D textAlign &&=0A=
$elm.css('display') =3D=3D=3D "block" && !$elm.is('hr') && =
!$elm.is('th'))=0A=
ret =3D textAlign;=0A=
=0A=
// IE changes text-align to the same as the current direction so =
skip unless overridden by user=0A=
if(dir && ret && ((/right/i.test(ret) && dir =3D=3D=3D 'rtl') || =
(/left/i.test(ret) && dir =3D=3D=3D 'ltr')))=0A=
return null;=0A=
=0A=
return ret;=0A=
}=0A=
=0A=
return style[name];=0A=
};=0A=
=0A=
/**=0A=
* Checks if any bbcode styles match the elements styles=0A=
*=0A=
* @private=0A=
* @return string Content with any matching bbcode tags wrapped around =
it.=0A=
* @Private=0A=
*/=0A=
handleStyles =3D function(element, content, blockLevel) {=0A=
var elementPropVal;=0A=
=0A=
// convert blockLevel to boolean=0A=
blockLevel =3D !!blockLevel;=0A=
=0A=
if(!stylesToBbcodes[blockLevel])=0A=
return content;=0A=
=0A=
$.each(stylesToBbcodes[blockLevel], function(property, bbcodes) {=0A=
elementPropVal =3D getStyle(element[0], property);=0A=
=0A=
// if the parent has the same style use that instead of this one=0A=
// so you don't end up with [i]parent[i]child[/i][/i]=0A=
if(!elementPropVal || getStyle(element.parent()[0], property) =
=3D=3D=3D elementPropVal)=0A=
return;=0A=
=0A=
$.each(bbcodes, function(bbcode, values) {=0A=
if(!values || $.inArray(elementPropVal.toString(), values) > -1)=0A=
{=0A=
if($.isFunction(base.bbcodes[bbcode].format))=0A=
content =3D base.bbcodes[bbcode].format.call(base, element, =
content);=0A=
else=0A=
content =3D formatString(base.bbcodes[bbcode].format, content);=0A=
}=0A=
});=0A=
});=0A=
=0A=
return content;=0A=
};=0A=
=0A=
/**=0A=
* Handles a HTML tag and finds any matching bbcodes=0A=
*=0A=
* @private=0A=
* @param {jQuery} element The element to convert=0A=
* @param {String} content The Tags text content=0A=
* @param {Bool} blockLevel If to convert block level tags=0A=
* @return {String} Content with any matching bbcode tags wrapped =
around it.=0A=
* @Private=0A=
*/=0A=
handleTags =3D function($element, content, blockLevel) {=0A=
var tag =3D $element[0].nodeName.toLowerCase();=0A=
=0A=
// convert blockLevel to boolean=0A=
blockLevel =3D !!blockLevel;=0A=
=0A=
if(tagsToBbcodes[tag] && tagsToBbcodes[tag][blockLevel]) {=0A=
// loop all bbcodes for this tag=0A=
$.each(tagsToBbcodes[tag][blockLevel], function(bbcode, =
bbcodeAttribs) {=0A=
// if the bbcode requires any attributes then check this has=0A=
// all needed=0A=
if(bbcodeAttribs) {=0A=
var runBbcode =3D false;=0A=
=0A=
// loop all the bbcode attribs=0A=
$.each(bbcodeAttribs, function(attrib, values) {=0A=
// if the $element has the bbcodes attribute and the bbcode =
attribute=0A=
// has values check one of the values matches=0A=
if(!$element.attr(attrib) || (values && =
$.inArray($element.attr(attrib), values) < 0))=0A=
return;=0A=
=0A=
// break this loop as we have matched this bbcode=0A=
runBbcode =3D true;=0A=
return false;=0A=
});=0A=
=0A=
if(!runBbcode)=0A=
return;=0A=
}=0A=
=0A=
if($.isFunction(base.bbcodes[bbcode].format))=0A=
content =3D base.bbcodes[bbcode].format.call(base, $element, =
content);=0A=
else=0A=
content =3D formatString(base.bbcodes[bbcode].format, content);=0A=
});=0A=
}=0A=
=0A=
if(blockLevel && (!$.sceditor.dom.isInline($element[0], true) || tag =
=3D=3D=3D "br"))=0A=
{=0A=
var parent =3D $element[0].parentNode,=0A=
previousSibling =3D $element[0].previousSibling,=0A=
parentIsInline =3D $.sceditor.dom.isInline(parent, true) || =
parent.nodeName.toLowerCase() =3D=3D=3D "body";=0A=
=0A=
// skips selection makers and other ignored items=0A=
while(previousSibling && =
$(previousSibling).hasClass('sceditor-ignore'))=0A=
previousSibling =3D previousSibling.previousSibling;=0A=
=0A=
// If this br/block element inside an inline element.=0A=
// If this is not the last block level as the last block level is =
collapsed.=0A=
// If this is an li element.=0A=
// If IE and the tag is BR. IE never collapses BR's=0A=
if(parentIsInline || parent.lastChild !=3D=3D $element[0] || tag =
=3D=3D=3D "li" || (tag =3D=3D=3D "br" && $.sceditor.ie))=0A=
content +=3D "\n";=0A=
=0A=
// Check for text
This needs a newline prepended
=0A=
if("br" !=3D=3D tag && previousSibling && =
previousSibling.nodeName.toLowerCase() !=3D 'br' && =
$.sceditor.dom.isInline(previousSibling, true))=0A=
content =3D "\n" + content;=0A=
}=0A=
=0A=
return content;=0A=
};=0A=
=0A=
/**=0A=
* Converts HTML to BBCode=0A=
* @param string html Html string, this function ignores this, it =
works off domBody=0A=
* @param HtmlElement $body Editors dom body object to convert=0A=
* @return string BBCode which has been converted from HTML=0A=
* @memberOf jQuery.plugins.bbcode.prototype=0A=
*/=0A=
base.signalToSource =3D function(html, $body) {=0A=
var $tmpContainer, bbcode,=0A=
parser =3D new $.sceditor.BBCodeParser(base.opts.parserOptions);=0A=
=0A=
if(!$body)=0A=
{=0A=
if(typeof html =3D=3D=3D "string")=0A=
{=0A=
$tmpContainer =3D $('
').css('visibility', =
'hidden').appendTo(document.body).html(html);=0A=
$body =3D $tmpContainer;=0A=
}=0A=
else=0A=
$body =3D $(html);=0A=
}=0A=
=0A=
if(!$body || !$body.jquery)=0A=
return '';=0A=
=0A=
$.sceditor.dom.removeWhiteSpace($body[0]);=0A=
bbcode =3D base.elementToBbcode($body);=0A=
=0A=
if($tmpContainer)=0A=
$tmpContainer.remove();=0A=
=0A=
return $.trim(parser.toBBCode(bbcode, true));=0A=
};=0A=
=0A=
/**=0A=
* Converts a HTML dom element to BBCode starting from=0A=
* the innermost element and working backwards=0A=
*=0A=
* @private=0A=
* @param HtmlElement element The element to convert to BBCode=0A=
* @param array vChildren Valid child tags allowed=0A=
* @return string BBCode=0A=
* @memberOf jQuery.plugins.bbcode.prototype=0A=
*/=0A=
base.elementToBbcode =3D function($element) {=0A=
return (function toBBCode(node, vChildren) {=0A=
var ret =3D '';=0A=
// TODO: Move to BBCode class?=0A=
$.sceditor.dom.traverse(node, function(node) {=0A=
var $node =3D $(node),=0A=
curTag =3D '',=0A=
nodeType =3D node.nodeType,=0A=
tag =3D node.nodeName.toLowerCase(),=0A=
vChild =3D validChildren[tag],=0A=
isValidChild =3D true;=0A=
=0A=
if(typeof vChildren =3D=3D=3D 'object')=0A=
{=0A=
isValidChild =3D $.inArray(tag, vChildren) > -1;=0A=
=0A=
// if this tag is one of the parents allowed children=0A=
// then set this tags allowed children to whatever it allows,=0A=
// otherwise set to what the parent allows=0A=
if(!isValidChild)=0A=
vChild =3D vChildren;=0A=
}=0A=
=0A=
// 3 =3D text=0A=
// 1 =3D element=0A=
if(nodeType !=3D=3D 3 && nodeType !=3D=3D 1)=0A=
return;=0A=
=0A=
if(nodeType =3D=3D=3D 1)=0A=
{=0A=
// skip ignored elments=0A=
if($node.hasClass("sceditor-ignore"))=0A=
return;=0A=
=0A=
// don't loop inside iframes=0A=
if(tag !=3D=3D 'iframe')=0A=
curTag =3D toBBCode(node, vChild);=0A=
// TODO: isValidChild is no longer needed. Should use valid children =
bbcodes instead=0A=
if(isValidChild)=0A=
{=0A=
// code tags should skip most styles=0A=
if(tag !=3D=3D "code")=0A=
{=0A=
// handle inline bbcodes=0A=
curTag =3D handleStyles($node, curTag);=0A=
curTag =3D handleTags($node, curTag);=0A=
=0A=
// handle blocklevel bbcodes=0A=
curTag =3D handleStyles($node, curTag, true);=0A=
}=0A=
=0A=
ret +=3D handleTags($node, curTag, true);=0A=
}=0A=
else=0A=
ret +=3D curTag;=0A=
}=0A=
else if(node.wholeText && (!node.previousSibling || =
node.previousSibling.nodeType !=3D=3D 3))=0A=
{=0A=
// TODO:This should check for CSS white-space, should pass it in the =
function to reduce css lookups which are SLOW!=0A=
if($node.parents('code').length =3D=3D=3D 0)=0A=
ret +=3D node.wholeText.replace(/ +/g, " ");=0A=
else=0A=
ret +=3D node.wholeText;=0A=
}=0A=
else if(!node.wholeText)=0A=
ret +=3D node.nodeValue;=0A=
}, false, true);=0A=
=0A=
return ret;=0A=
}($element.get(0)));=0A=
};=0A=
=0A=
/**=0A=
* Converts BBCode to HTML=0A=
*=0A=
* @param {String} text=0A=
* @param {Bool} asFragment=0A=
* @return {String} HTML=0A=
* @memberOf jQuery.plugins.bbcode.prototype=0A=
*/=0A=
base.signalToWysiwyg =3D function(text, asFragment) {=0A=
var parser =3D new $.sceditor.BBCodeParser(base.opts.parserOptions),=0A=
html =3D parser.toHTML($.trim(text));=0A=
=0A=
return asFragment ? removeFirstLastDiv(html) : html;=0A=
};=0A=
=0A=
/**=0A=
* Removes the first and last divs from the HTML.=0A=
*=0A=
* This is needed for pasting=0A=
* @param {String} html=0A=
* @return {String}=0A=
* @private=0A=
*/=0A=
removeFirstLastDiv =3D function(html) {=0A=
var node, next, removeDiv,=0A=
$output =3D $('
').hide().appendTo(document.body),=0A=
output =3D $output[0];=0A=
=0A=
removeDiv =3D function(node, isFirst) {=0A=
// Don't remove divs that have styleing=0A=
if(node.className || $(node).attr('style') || =
!$.isEmptyObject($(node).data()))=0A=
return;=0A=
=0A=
while((next =3D node.firstChild))=0A=
output.insertBefore(next, node);=0A=
=0A=
if(isFirst)=0A=
{=0A=
var lastChild =3D output.lastChild;=0A=
=0A=
if(node !=3D=3D lastChild && $(lastChild).is("div") && =
node.nextSibling =3D=3D=3D lastChild)=0A=
output.insertBefore(document.createElement('br'), node);=0A=
}=0A=
=0A=
output.removeChild(node);=0A=
};=0A=
=0A=
output.innerHTML =3D html.replace(/<\/div>\n/g, '');=0A=
=0A=
if((node =3D output.firstChild) && $(node).is("div"))=0A=
removeDiv(node, true);=0A=
=0A=
if((node =3D output.lastChild) && $(node).is("div"))=0A=
removeDiv(node);=0A=
=0A=
output =3D output.innerHTML;=0A=
$output.remove();=0A=
=0A=
return output;=0A=
};=0A=
};=0A=
=0A=
/**=0A=
* Removes any leading or trailing quotes ('")=0A=
*=0A=
* @return string=0A=
* @since v1.4.0=0A=
*/=0A=
$.sceditor.plugins.bbcode.stripQuotes =3D function(str) {=0A=
return str ? str.replace(/\\(["'])/g, "$1").replace(/^(["'])(.*?)\1$/, =
"$2") : str; =0A=
};=0A=
=0A=
/**=0A=
* Formats a string replacing {0}, {1}, {2}, ect. with=0A=
* the params provided=0A=
*=0A=
* @param {String} str The string to format=0A=
* @param {string} args... The strings to replace=0A=
* @return {String}=0A=
* @since v1.4.0=0A=
*/=0A=
$.sceditor.plugins.bbcode.formatString =3D function() {=0A=
var args =3D arguments;=0A=
return args[0].replace(/\{(\d+)\}/g, function(str, p1) {=0A=
return typeof args[p1-0+1] !=3D=3D "undefined" ?=0A=
args[p1-0+1] :=0A=
'{' + p1 + '}';=0A=
});=0A=
};=0A=
=0A=
/**=0A=
* Converts CSS RGB and hex shorthand into hex=0A=
*=0A=
* @since v1.4.0=0A=
* @param {String} color=0A=
* @return {String}=0A=
*/=0A=
$.sceditor.plugins.bbcode.normaliseColour =3D function(color) {=0A=
var m;=0A=
=0A=
function toHex(n) {=0A=
n =3D parseInt(n, 10);=0A=
=0A=
if(isNaN(n))=0A=
return "00";=0A=
=0A=
n =3D Math.max(0,Math.min(n,255)).toString(16);=0A=
=0A=
return n.length<2 ? '0'+n : n;=0A=
}=0A=
=0A=
// rgb(n,n,n);=0A=
if((m =3D =
color.match(/rgb\((\d{1,3}),\s*?(\d{1,3}),\s*?(\d{1,3})\)/i)))=0A=
return '#' + toHex(m[1]) + toHex(m[2]-0) + toHex(m[3]-0);=0A=
=0A=
// expand shorthand=0A=
if((m =3D color.match(/#([0-f])([0-f])([0-f])\s*?$/i)))=0A=
return '#' + m[1] + m[1] + m[2] + m[2] + m[3] + m[3];=0A=
=0A=
return color;=0A=
};=0A=
=0A=
$.sceditor.plugins.bbcode.bbcodes =3D {=0A=
// START_COMMAND: Bold=0A=
b: {=0A=
tags: {=0A=
b: null,=0A=
strong: null=0A=
},=0A=
styles: {=0A=
// 401 is for FF 3.5=0A=
"font-weight": ["bold", "bolder", "401", "700", "800", "900"]=0A=
},=0A=
format: "[b]{0}[/b]",=0A=
html: '{0} '=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Italic=0A=
i: {=0A=
tags: {=0A=
i: null,=0A=
em: null=0A=
},=0A=
styles: {=0A=
"font-style": ["italic", "oblique"]=0A=
},=0A=
format: "[i]{0}[/i]",=0A=
html: '{0} '=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Underline=0A=
u: {=0A=
tags: {=0A=
u: null=0A=
},=0A=
styles: {=0A=
"text-decoration": ["underline"]=0A=
},=0A=
format: "[u]{0}[/u]",=0A=
html: '{0} '=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Strikethrough=0A=
s: {=0A=
tags: {=0A=
s: null,=0A=
strike: null=0A=
},=0A=
styles: {=0A=
"text-decoration": ["line-through"]=0A=
},=0A=
format: "[s]{0}[/s]",=0A=
html: '{0} '=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Subscript=0A=
sub: {=0A=
tags: {=0A=
sub: null=0A=
},=0A=
format: "[sub]{0}[/sub]",=0A=
html: '{0} '=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Superscript=0A=
sup: {=0A=
tags: {=0A=
sup: null=0A=
},=0A=
format: "[sup]{0}[/sup]",=0A=
html: '{0} '=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Font=0A=
font: {=0A=
tags: {=0A=
font: {=0A=
face: null=0A=
}=0A=
},=0A=
// styles: {=0A=
// "font-family": null=0A=
// },=0A=
quoteType: $.sceditor.BBCodeParser.QuoteType.never,=0A=
format: function(element, content) {=0A=
var font;=0A=
=0A=
if(element[0].nodeName.toLowerCase() !=3D=3D "font" || !(font =3D =
element.attr('face')))=0A=
font =3D element.css('font-family');=0A=
=0A=
return '[font=3D' + this.stripQuotes(font) + ']' + content + =
'[/font]';=0A=
},=0A=
html: function(token, attrs, content) {=0A=
return '' + content + =
' ';=0A=
}=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Size=0A=
// size: {=0A=
// tags: {=0A=
// font: {=0A=
// size: null=0A=
// }=0A=
// },=0A=
// styles: {=0A=
// "font-size": null=0A=
// },=0A=
// format: function(element, content) {=0A=
// var fontSize =3D element.attr('size'),=0A=
// size =3D 1;=0A=
=0A=
// if(!fontSize)=0A=
// fontSize =3D element.css('fontSize');=0A=
=0A=
// // Most browsers return px value but IE returns 1-7=0A=
// if(fontSize.indexOf("px") > -1) {=0A=
// // convert size to an int=0A=
// fontSize =3D fontSize.replace("px", "") - 0;=0A=
=0A=
// if(fontSize > 12)=0A=
// size =3D 2;=0A=
// if(fontSize > 15)=0A=
// size =3D 3;=0A=
// if(fontSize > 17)=0A=
// size =3D 4;=0A=
// if(fontSize > 23)=0A=
// size =3D 5;=0A=
// if(fontSize > 31)=0A=
// size =3D 6;=0A=
// if(fontSize > 47)=0A=
// size =3D 7;=0A=
// }=0A=
// else=0A=
// size =3D fontSize;=0A=
=0A=
// return '[size=3D' + size + ']' + content + '[/size]';=0A=
// },=0A=
// html: function(token, attrs, content) {=0A=
// return '' + content + =
' ';=0A=
// }=0A=
// },=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Color=0A=
color: {=0A=
tags: {=0A=
font: {=0A=
color: null=0A=
}=0A=
},=0A=
// styles: {=0A=
// color: null=0A=
// },=0A=
quoteType: $.sceditor.BBCodeParser.QuoteType.never,=0A=
format: function($element, content) {=0A=
var color,=0A=
element =3D $element[0];=0A=
=0A=
if(element.nodeName.toLowerCase() !=3D=3D "font" || !(color =3D =
$element.attr('color')))=0A=
color =3D element.style.color || $element.css('color');=0A=
=0A=
return '[color=3D' + =
$.sceditor.plugins.bbcode.normaliseColour(color) + ']' + content + =
'[/color]';=0A=
},=0A=
html: function(token, attrs, content) {=0A=
return '' + content + =
' ';=0A=
}=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Lists=0A=
ul: {=0A=
tags: {=0A=
ul: null=0A=
},=0A=
breakStart: true,=0A=
isInline: false,=0A=
skipLastLineBreak: true,=0A=
format: "[ul]{0}[/ul]",=0A=
html: ''=0A=
},=0A=
list: {=0A=
breakStart: true,=0A=
isInline: false,=0A=
skipLastLineBreak: true,=0A=
html: ''=0A=
},=0A=
ol: {=0A=
tags: {=0A=
ol: null=0A=
},=0A=
breakStart: true,=0A=
isInline: false,=0A=
skipLastLineBreak: true,=0A=
format: "[ol]{0}[/ol]",=0A=
html: '{0} '=0A=
},=0A=
li: {=0A=
tags: {=0A=
li: null=0A=
},=0A=
isInline: false,=0A=
closedBy: ['/ul', '/ol', '/list', '*', 'li'],=0A=
format: "[li]{0}[/li]",=0A=
html: '{0} '=0A=
},=0A=
"*": {=0A=
isInline: false,=0A=
closedBy: ['/ul', '/ol', '/list', '*', 'li'],=0A=
html: '{0} '=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Table=0A=
table: {=0A=
tags: {=0A=
table: null=0A=
},=0A=
isInline: false,=0A=
isHtmlInline: true,=0A=
skipLastLineBreak: true,=0A=
format: "[table]{0}[/table]",=0A=
html: ''=0A=
},=0A=
tr: {=0A=
tags: {=0A=
tr: null=0A=
},=0A=
isInline: false,=0A=
skipLastLineBreak: true,=0A=
format: "[tr]{0}[/tr]",=0A=
html: '{0} '=0A=
},=0A=
th: {=0A=
tags: {=0A=
th: null=0A=
},=0A=
allowsEmpty: true,=0A=
isInline: false,=0A=
format: "[th]{0}[/th]",=0A=
html: '{0} '=0A=
},=0A=
td: {=0A=
tags: {=0A=
td: null=0A=
},=0A=
allowsEmpty: true,=0A=
isInline: false,=0A=
format: "[td]{0}[/td]",=0A=
html: '{0} '=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Emoticons=0A=
emoticon: {=0A=
allowsEmpty: true,=0A=
tags: {=0A=
img: {=0A=
src: null,=0A=
"data-sceditor-emoticon": null=0A=
}=0A=
},=0A=
format: function(element, content) {=0A=
return element.attr('data-sceditor-emoticon') + content;=0A=
},=0A=
html: '{0}'=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Horizontal Rule=0A=
hr: {=0A=
tags: {=0A=
hr: null=0A=
},=0A=
allowsEmpty: true,=0A=
isSelfClosing: true,=0A=
isInline: false,=0A=
format: "[hr]{0}",=0A=
html: " "=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Image=0A=
img: {=0A=
allowsEmpty: true,=0A=
tags: {=0A=
img: {=0A=
src: null=0A=
}=0A=
},=0A=
quoteType: $.sceditor.BBCodeParser.QuoteType.never,=0A=
format: function($element, content) {=0A=
var w, h,=0A=
attribs =3D '',=0A=
element =3D $element[0],=0A=
style =3D function(name) {=0A=
return element.style ? element.style[name] : null;=0A=
};=0A=
=0A=
// check if this is an emoticon image=0A=
if(typeof $element.attr('data-sceditor-emoticon') !=3D=3D =
"undefined")=0A=
return content;=0A=
=0A=
w =3D $element.attr('width') || style('width');=0A=
h =3D $element.attr('height') || style('height');=0A=
=0A=
// only add width and height if one is specified=0A=
if((element.complete && (w || h)) || (w && h))=0A=
attribs =3D "=3D" + $element.width() + "x" + $element.height();=0A=
=0A=
return '[img' + attribs + ']' + $element.attr('src') + '[/img]';=0A=
},=0A=
html: function(token, attrs, content) {=0A=
var parts,=0A=
attribs =3D '';=0A=
=0A=
// handle [img width=3D340 height=3D240]url[/img]=0A=
if(typeof attrs.width !=3D=3D "undefined")=0A=
attribs +=3D ' width=3D"' + attrs.width + '"';=0A=
if(typeof attrs.height !=3D=3D "undefined")=0A=
attribs +=3D ' height=3D"' + attrs.height + '"';=0A=
=0A=
// handle [img=3D340x240]url[/img]=0A=
if(attrs.defaultattr) {=0A=
parts =3D attrs.defaultattr.split(/x/i);=0A=
=0A=
attribs =3D ' width=3D"' + parts[0] + '"' +=0A=
' height=3D"' + (parts.length =3D=3D=3D 2 ? parts[1] : parts[0]) + =
'"';=0A=
}=0A=
=0A=
return ' ';=0A=
}=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: URL=0A=
url: {=0A=
allowsEmpty: true,=0A=
tags: {=0A=
a: {=0A=
href: null=0A=
}=0A=
},=0A=
quoteType: $.sceditor.BBCodeParser.QuoteType.never,=0A=
format: function(element, content) {=0A=
var url =3D element.attr('href');=0A=
=0A=
// make sure this link is not an e-mail, if it is return e-mail =
BBCode=0A=
if(url.substr(0, 7) =3D=3D=3D 'mailto:')=0A=
return '[email=3D"' + url.substr(7) + '"]' + content + '[/email]';=0A=
=0A=
return '[url=3D' + decodeURI(url) + ']' + content + '[/url]';=0A=
},=0A=
html: function(token, attrs, content) {=0A=
if(typeof attrs.defaultattr =3D=3D=3D "undefined" || =
attrs.defaultattr.length =3D=3D=3D 0)=0A=
attrs.defaultattr =3D content;=0A=
=0A=
return '' + content =
+ ' ';=0A=
}=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: E-mail=0A=
email: {=0A=
quoteType: $.sceditor.BBCodeParser.QuoteType.never,=0A=
html: function(token, attrs, content) {=0A=
if(typeof attrs.defaultattr =3D=3D=3D "undefined")=0A=
attrs.defaultattr =3D content;=0A=
=0A=
return '' + content + =
' ';=0A=
}=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Quote=0A=
quote: {=0A=
tags: {=0A=
blockquote: null=0A=
},=0A=
isInline: false,=0A=
quoteType: $.sceditor.BBCodeParser.QuoteType.never,=0A=
format: function(element, content) {=0A=
var author =3D '',=0A=
$elm =3D $(element),=0A=
$cite =3D $elm.children("cite").first();=0A=
=0A=
if($cite.length =3D=3D=3D 1 || $elm.data("author")) {=0A=
author =3D $cite.text() || $elm.data("author");=0A=
=0A=
$elm.data("author", author);=0A=
$cite.remove();=0A=
=0A=
$elm.children("cite").replaceWith(function() {=0A=
return $(this).text();=0A=
});=0A=
=0A=
content =3D this.elementToBbcode($(element));=0A=
author =3D '=3D' + author;=0A=
}=0A=
=0A=
return '[quote' + author + ']' + content + '[/quote]';=0A=
},=0A=
html: function(token, attrs, content) {=0A=
if(typeof attrs.defaultattr !=3D=3D "undefined")=0A=
content =3D '' + attrs.defaultattr + ' ' + content;=0A=
=0A=
return '' + content + ' ';=0A=
}=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Code=0A=
code: {=0A=
tags: {=0A=
code: null=0A=
},=0A=
isInline: false,=0A=
allowedChildren: ['#', '#newline'],=0A=
format: "[code]{0}[/code]",=0A=
html: '{0}
'=0A=
},=0A=
// END_COMMAND=0A=
=0A=
=0A=
// START_COMMAND: Left=0A=
left: {=0A=
styles: {=0A=
"text-align": ["left", "-webkit-left", "-moz-left", "-khtml-left"]=0A=
},=0A=
isInline: false,=0A=
format: "[left]{0}[/left]",=0A=
html: '{0}
'=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Centre=0A=
center: {=0A=
styles: {=0A=
"text-align": ["center", "-webkit-center", "-moz-center", =
"-khtml-center"]=0A=
},=0A=
isInline: false,=0A=
format: "[center]{0}[/center]",=0A=
html: '{0}
'=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Right=0A=
right: {=0A=
styles: {=0A=
"text-align": ["right", "-webkit-right", "-moz-right", =
"-khtml-right"]=0A=
},=0A=
isInline: false,=0A=
format: "[right]{0}[/right]",=0A=
html: '{0}
'=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Justify=0A=
justify: {=0A=
styles: {=0A=
"text-align": ["justify", "-webkit-justify", "-moz-justify", =
"-khtml-justify"]=0A=
},=0A=
isInline: false,=0A=
format: "[justify]{0}[/justify]",=0A=
html: '{0}
'=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: YouTube=0A=
youtube: {=0A=
allowsEmpty: true,=0A=
tags: {=0A=
iframe: {=0A=
'data-youtube-id': null=0A=
}=0A=
},=0A=
format: function(element, content) {=0A=
if(!(element =3D element.attr('data-youtube-id')))=0A=
return content;=0A=
=0A=
return '[youtube]' + element + '[/youtube]';=0A=
},=0A=
html: 'VIDEO '=0A=
},=0A=
// END_COMMAND=0A=
=0A=
=0A=
// START_COMMAND: Rtl=0A=
rtl: {=0A=
styles: {=0A=
"direction": ["rtl"]=0A=
},=0A=
format: "[rtl]{0}[/rtl]",=0A=
html: '{0}
'=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// START_COMMAND: Ltr=0A=
ltr: {=0A=
styles: {=0A=
"direction": ["ltr"]=0A=
},=0A=
format: "[ltr]{0}[/ltr]",=0A=
html: '{0}
'=0A=
},=0A=
// END_COMMAND=0A=
=0A=
// this is here so that commands above can be removed=0A=
// without having to remove the , after the last one.=0A=
// Needed for IE.=0A=
ignore: {}=0A=
};=0A=
=0A=
/**=0A=
* Static BBCode helper class=0A=
* @class command=0A=
* @name jQuery.plugins.bbcode.bbcode=0A=
*/=0A=
$.sceditor.plugins.bbcode.bbcode =3D=0A=
/** @lends jQuery.plugins.bbcode.bbcode */=0A=
{=0A=
/**=0A=
* Gets a BBCode=0A=
*=0A=
* @param {String} name=0A=
* @return {Object|null}=0A=
* @since v1.3.5=0A=
*/=0A=
get: function(name) {=0A=
return $.sceditor.plugins.bbcode.bbcodes[name] || null;=0A=
},=0A=
=0A=
/**=0A=
* Adds a BBCode to the parser or updates an existing=0A=
* BBCode if a BBCode with the specified name already exists.
=0A=
*=0A=
* @param {String} name=0A=
* @param {Object} bbcode=0A=
* @return {this|false} Returns false if name or bbcode is false=0A=
* @since v1.3.5=0A=
*/=0A=
set: function(name, bbcode) {=0A=
if(!name || !bbcode)=0A=
return false;=0A=
=0A=
// merge any existing command properties=0A=
bbcode =3D $.extend($.sceditor.plugins.bbcode.bbcodes[name] || =
{}, bbcode);=0A=
bbcode.remove =3D function() { =
$.sceditor.plugins.bbcode.bbcode.remove(name); };=0A=
=0A=
$.sceditor.plugins.bbcode.bbcodes[name] =3D bbcode;=0A=
=0A=
return this;=0A=
},=0A=
=0A=
/**=0A=
* Renames a BBCode=0A=
*=0A=
* This does not change the format or HTML handling, those must be=0A=
* changed manually.=0A=
*=0A=
* @param {String} name [description]=0A=
* @param {String} newName [description]=0A=
* @return {this|false}=0A=
* @since v1.4.0=0A=
*/=0A=
rename: function(name, newName) {=0A=
if (this.hasOwnProperty(name))=0A=
{=0A=
this[newName] =3D this[name];=0A=
this.remove(name);=0A=
}=0A=
else=0A=
return false;=0A=
=0A=
return this;=0A=
},=0A=
=0A=
/**=0A=
* Removes a BBCode=0A=
*=0A=
* @param {String} name=0A=
* @return {this}=0A=
* @since v1.3.5=0A=
*/=0A=
remove: function(name) {=0A=
if($.sceditor.plugins.bbcode.bbcodes[name])=0A=
delete $.sceditor.plugins.bbcode.bbcodes[name];=0A=
=0A=
return this;=0A=
}=0A=
};=0A=
=0A=
/**=0A=
* Deprecated, use plugins: option instead. I.e.:=0A=
*=0A=
* $('textarea').sceditor({=0A=
* plugins: 'bbcode'=0A=
* });=0A=
*=0A=
* @deprecated=0A=
*/=0A=
$.fn.sceditorBBCodePlugin =3D function (options) {=0A=
options =3D options || {};=0A=
=0A=
if($.isPlainObject(options))=0A=
options.plugins =3D (options.plugins ? options.plugins : '') + =
'bbcode' ;=0A=
=0A=
return this.sceditor(options);=0A=
};=0A=
})(jQuery, window, document);=0A=
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illiweb.com/rsc/97/frm/SCEditor/src/sceditor-commands.js
$.sceditor.ie=3D(function(){var =
undef,v=3D3,div=3Ddocument.createElement('div'),all=3Ddiv.getElementsByTa=
gName('i');do{div.innerHTML=3D''}while(all[0]);if((document.all&&window.at=
ob)){v=3D10}else if(((!!window.MSStream)&&("ActiveXObject"in =
window))){v=3D11}return v>4?v:undef}());var =
FA_SCEditor=3D{characters:{FASpecialCharacters:[";"," =
","\"","<",">","%","|","\\","^","~","[","]","`"],FAEncodedCharacters:["%3=
B","%20","%22","%3C","%3E","%25","%7C","%5C","%5E","%7E","%5B","%5D","%60=
"]},functions:{FAdecodeURI:function(url){for(var =
i=3D0;i ';if(editor.inSourceMode())editor.setSourceEditorValue(editor.getWysiwy=
gEditorValue());else =
editor.setWysiwygEditorValue(editor.getSourceEditorValue())}}};$.sceditor=
.regexEscape=3Dfunction(str){return =
str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&").replace("<","&l=
t;").replace(">",">")};$.sceditor.command.set("source",{exec:function(=
caller){this.toggleSourceMode();this.blur();$.cookie('WYSIWYG_STATE','0',=
{expires:365});caller.addClass('hover')},txtExec:function(caller){this.to=
ggleSourceMode();this.blur();$.cookie('WYSIWYG_STATE','1',{expires:365});=
caller.removeClass('hover')},tooltip:"Switch Editor =
Mode",shortcut:"ctrl+shift+s"});$.sceditor.command.set('',{});$.sceditor.=
command.set("font",{_dropDown:function(editor,caller,callback){var =
fonts=3Deditor.opts.fonts.split(","),content=3D$('
'),clickFunc=3Dfunction(){callback($(this).data('font'));editor.closeDr=
opDown(true);return false};for(var =
i=3D0;i'+fonts[i]+' ').click(clickFunc));editor.=
createDropDown(caller,"font-picker",content)},exec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('font')._dropDown(editor,caller,func=
tion(fontName){editor.execCommand("fontname",fontName)})},tooltip:"Font =
Name"});$.sceditor.command.set("size",{_dropDown:function(editor,caller,c=
allback){var sizeAssoc=3D{1:10,2:13,3:16,4:18,5:24},content=3D$("
"),clickFunc=3Dfunction(e){callback($(this).data('size'));editor.closeD=
ropDown(true);e.preventDefault()};for(var =
i=3D1;i<=3D5;i++)content.append($(''+sizeAssoc[i]+' ').click(clickFunc));edit=
or.createDropDown(caller,"fontsize-picker",content)},exec:function(caller=
){var =
editor=3Dthis;$.sceditor.command.get('size')._dropDown(editor,caller,func=
tion(fontSize){var sizeAssoc=3D{10:1,13:2,16:3,18:4,24:5};var =
sel=3Deditor.getContentAreaContainer()[0].contentDocument.getSelection();=
if($(sel.anchorNode.parentNode).text()=3D=3Dsel.anchorNode.nodeValue)$(se=
l.anchorNode.parentNode).css("font-size","");editor.execCommand('fontsize=
',sizeAssoc[fontSize])})},tooltip:"Font =
Size"});$.sceditor.command.set("quote",{forceNewLineAfter:['blockquote'],=
_dropDown:function(editor,caller,handleIdFunc){var =
content=3D$(''+editor._("Author =
(optional)")+'
');content.find('.button').click(function(e){var =
val=3Dcontent.find("#authorlabel").val();handleIdFunc(val);editor.closeDr=
opDown(true);e.preventDefault()});editor.createDropDown(caller,"insertquo=
te",content)},exec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('quote')._dropDown(editor,caller,fun=
ction(author){var before=3D'',end=3D' ';if(author!=3D=3D''){before=3Dbefore+''+author+' '}if(edit=
or.getRangeHelper().selectedHtml()=3D=3D=3D""){end=3D' '+end}editor.wysiwygEditorInsertHtml(before,end)})},txtExec:function(ca=
ller){var =
editor=3Dthis;$.sceditor.command.get('quote')._dropDown(editor,caller,fun=
ction(author){var before=3D'',end=3D' ';if(author!=3D=3D''){before=3Dbefore+''+author+' '}if(edit=
or.getRangeHelper().selectedHtml()=3D=3D=3D""){end=3D' '+end}editor.insertText(before,end)})},tooltip:"Insert a =
Quote"});$.sceditor.command.set("code",{forceNewLineAfter:['code'],exec:f=
unction(caller){var end=3D' ';if(this.getRangeHelper().selectedHtml()=3D=3D=3D""){end=3D' '+end}this.wysiwygEditorInsertHtml('',end)},tooltip:"Code"});$.sc=
editor.command.set("link",{_dropDown:function(editor,caller,handler){var =
content=3D$(''+editor._("URL:")+' =
'+editor._("Description (optional):")+'
');content.find('.button').click(function(e){var values=3Dnew =
Array(),src=3Dcontent.find("#linksrc").val(),description=3Dcontent.find("=
#linktitle").val();if(!description){description=3Dsrc}values['src']=3Dsrc=
;values['desc']=3Ddescription;handler(values);editor.closeDropDown(true);=
e.preventDefault()});editor.createDropDown(caller,"insertlink",content)},=
exec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('link')._dropDown(editor,caller,func=
tion(values){if(values['src']){editor.wysiwygEditorInsertHtml(''+values['desc']+' ')}})},tooltip:"Insert =
a =
link"});$.sceditor.command.set("unlink",{exec:"unlink",tooltip:"Unlink"})=
;$.sceditor.command.set("servimg",{_menu:function(editor,caller){var =
uploadFrame=3Dnull;if($('.sceditor-tinypic').length=3D=3D=3D1)uploadFrame=
=3D$('.sceditor-tinypic');else =
if($('.sceditor-servimg').length=3D=3D=3D1)uploadFrame=3D$('.sceditor-ser=
vimg');if(uploadFrame=3D=3D=3Dnull){var =
menu,name,content,css=3D{top:caller.offset().top,left:caller.offset().lef=
t,marginTop:caller.outerHeight()};if(servImgAccount=3D=3D=3D''&&servImgId=
=3D=3D=3D''&&servImgF=3D=3D=3D''){name=3D'tinypic';content=3D$('Update your browser for =
tinypic.com
')}else{name=3D'servimg';content=3D$('
')}menu=3D$('
').css(css).append(content).appendTo($('body')).click(function(e){e.sto=
pPropagation()})}else{if(uploadFrame.css('display')=3D=3D=3D'none'){edito=
r.closeDropDown();uploadFrame.css('display','')}else{editor.closeDropDown=
()}}},exec:function(caller){$.sceditor.command.get('servimg')._menu(this,=
caller)},txtExec:function(caller){$.sceditor.command.get('servimg')._menu=
(this,caller)},tooltip:"Host an =
image"});$.sceditor.command.set("image",{_dropDown:function(editor,caller=
,handler){var url=3Deditor._("URL:");var width=3Deditor._("Width =
(optional):");var height=3Deditor._("Height (optional):");var =
insert=3Deditor._("Insert");var image=3D''+url+'
'+''+width+'
'+''+height+' =
'+'
';var =
content=3D$(image);content.find('.button').click(function(e){var =
values=3Dnew =
Array(),width=3Dcontent.find("#width").val(),height=3Dcontent.find("#heig=
ht").val();values['src']=3Dcontent.find("#image").val();values['attrs']=3D=
'';if(width){values['attrs']+=3D' =
width=3D\"'+width+'\"';values['width']=3Dwidth}if(height){values['attrs']=
+=3D' =
height=3D"'+height+'"';values['height']=3Dheight}handler(values);editor.c=
loseDropDown(true);e.preventDefault()});editor.createDropDown(caller,"ins=
ertimage",content)},exec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('image')._dropDown(editor,caller,fun=
ction(values){if(values['src'])editor.wysiwygEditorInsertHtml(' ')})},txtExec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('image')._dropDown(editor,caller,fun=
ction(values){if(values['src'])editor.insertText(' ')})},tooltip:"Insert an =
image"});$.sceditor.command.set("table",{exec:function(caller){var =
editor=3Dthis,border=3Deditor._("Border:"),rows=3Deditor._("Rows:"),cols=3D=
editor._("Cols:"),insert=3Deditor._("Insert"),table=3D''+border+'
'+''+rows+'
'+''+cols+'
'+'
',content=3D$(table);content.find('.button').click(function(e){va=
r =
border=3Dcontent.find("#border").val()-0,rows=3Dcontent.find("#rows").val=
()-0,cols=3Dcontent.find("#cols").val()-0,html=3D'';if(rows<1||col=
s<1)return;if(border>0)html=3D'';for(var =
row=3D0;row';for(var =
col=3D0;col'+($.sceditor.ie?'':' ')+'';html+=3D''}html+=3D'
';editor.wysiwygEditorInser=
tHtml(html);editor.closeDropDown(true);e.preventDefault()});editor.create=
DropDown(caller,"inserttable",content)},tooltip:"Insert a =
table"});$.sceditor.command.set('color',{_dropDown:function(editor,caller=
,callback){var =
i,x,color,colors,genColor=3D{r:255,g:255,b:255},content=3D$("
"),colorColumns=3Deditor.opts.colors?editor.opts.colors.split("|"):new =
Array(6),html=3D[],cmd=3D$.sceditor.command.get('color');if(!cmd._htmlCac=
he){for(i=3D0;i');for(x=3D1;x');if(x%6=3D=3D=3D0){genColor.g-=3D51;genColor.b=3D=
255;if(genColor.g<51){genColor.g=3D"00"}}else =
genColor.b-=3D51;if(genColor.b<51){genColor.b=3D"00"}}html.push('')=
;if(i%1=3D=3D=3D0){genColor.r-=3D51;genColor.g=3D255;genColor.b=3D255;if(=
genColor.r<51){genColor.r=3D"00"}}else{genColor.g=3D255;genColor.b=3D255}=
}cmd._htmlCache=3Dhtml.join('')}content.append(cmd._htmlCache).find('a').=
click(function(e){callback($(this).attr('data-color'));editor.closeDropDo=
wn(true);e.preventDefault()});editor.createDropDown(caller,"color-picker"=
,content)},_menu:function(editor,caller,callback){var =
colors=3D{},html=3D$('
');colors[editor._('color_dark_red')]=3D'#660000';colors[editor._('colo=
r_red')]=3D'#FF0000';colors[editor._('color_orange')]=3D'#FF9933';colors[=
editor._('color_brown')]=3D'#663300';colors[editor._('color_yellow')]=3D'=
#FFFF00';colors[editor._('color_green')]=3D'#006600';colors[editor._('col=
or_olive')]=3D'#666633';colors[editor._('color_cyan')]=3D'#00FFFF';colors=
[editor._('color_blue')]=3D'#0000FF';colors[editor._('color_dark_blue')]=3D=
'#000099';colors[editor._('color_indigo')]=3D'#6600FF';colors[editor._('c=
olor_violet')]=3D'#990099';colors[editor._('color_grey')]=3D'#999999';col=
ors[editor._('color_white')]=3D'#EEEEEE';colors[editor._('color_black')]=3D=
'#000000';for(var k in colors)html.append('');html.find('font').click(=
function(e){callback($(this).attr('color'));editor.closeDropDown(true);e.=
preventDefault()});editor.createDropDown(caller,"color-picker",html)},exe=
c:function(caller){var =
editor=3Dthis;if(palette=3D=3D=3D1){$.sceditor.command.get('color')._drop=
Down(editor,caller,function(color){editor.execCommand("forecolor",color)}=
)}else{$.sceditor.command.get('color')._menu(editor,caller,function(color=
){editor.execCommand("forecolor",color)})}},tooltip:"Font =
Color"});$.sceditor.command.set('emoticon',{_menu:function(editor,caller)=
{var =
uploadFrame=3Dnull;if($('.sceditor-emoticon').length=3D=3D=3D1)uploadFram=
e=3D$('.sceditor-emoticon');if(uploadFrame){if(uploadFrame.css('display')=
=3D=3D=3D'none'){editor.closeDropDown();uploadFrame.css('display','')}els=
e{editor.closeDropDown()}}else{var =
menu,iframeSrc=3D((typeof(editor.opts.emoticonsURL)=3D=3D=3D'undefined'||=
editor.opts.emoticonsURL=3D=3D=3D""||editor.opts.emoticonsURL=3D=3D=3Dnul=
l)?'/smilies.forum?mode=3Dsmilies_frame&t=3D'+(new =
Date().getTime())+'&timeinfo=3Dnull':editor.opts.emoticonsURL),content=3D=
$('').attr({"class":"row1","height":"250","id":"quickEmojInternal","margin=
height":"0","marginwidth":"0","name":"smilies","scrolling":"auto","src":i=
frameSrc,"width":"220"}).css({"border":"none","visibility":"hidden"}).loa=
d(function(){$(this).css("visibility","visible").parent().css("background=
-image","none")}),css=3D{top:caller.offset().top,left:caller.offset().lef=
t,marginTop:caller.outerHeight(),background:"#FFFFFF =
url('http://"+illiwebDomain+"/fa/i/loader.gif') no-repeat center =
center"};menu=3D$('
').css(css).append(content).appendTo($('body')).click(function(e){e.sto=
pPropagation()})}},exec:function(caller){$.sceditor.command.get('emoticon=
')._menu(this,caller)},txtExec:function(caller){$.sceditor.command.get('e=
moticon')._menu(this,caller)},tooltip:"Insert an =
emoticon"});$.sceditor.command.set("more",{exec:function(){FA_SCEditor.fu=
nctions.showHideToolbarElements()},txtExec:function(){FA_SCEditor.functio=
ns.showHideToolbarElements()},tooltip:"More"});$.sceditor.command.set("he=
aders",{_dropDown:function(editor,caller,callback){var =
$content=3D$("
");for(var i=3D2;i<=3D4;i++){$('').data('headersize',i).click(function(e){ca=
llback($(this).data('headersize'));editor.closeDropDown(true);e.preventDe=
fault()}).css({'margin':0,'border':0,'color':'#333','cursor':'pointer','t=
ext-transform':'none'}).hover(function(){$(this).css('background-color','=
#EEE')},function(){$(this).css('background-color','#FFF')}).appendTo($con=
tent)}editor.createDropDown(caller,"header-picker",$content)},exec:functi=
on(caller){var =
editor=3Dthis;$.sceditor.command.get('headers')._dropDown(editor,caller,f=
unction(lvl){editor.execCommand("formatblock","")})},tooltip:"F=
ormat Headers"});
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illiweb.com/rsc/97/frm/SCEditor/src/sceditor-commands-bbcode.js
$.sceditor.command.set('strike',{txtExec:["[strike]","[/strike]"]}).set('=
bulletlist',{txtExec:["[list][*]","[/list]"]}).set('orderedlist',{txtExec=
:["[list=3D1][*]","[/list]"]}).set('quote',{txtExec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('quote')._dropDown(editor,caller,fun=
ction(author){if(author)editor.insertText('[quote=3D"'+author+'"]','[/quo=
te]');else =
editor.insertText('[quote]','[/quote]')})}}).set('link',{txtExec:function=
(caller){var =
editor=3Dthis;$.sceditor.command.get('link')._dropDown(editor,caller,func=
tion(values){if(values['src']&&values['src']!=3D=3D"http://")editor.inser=
tText('[url=3D'+values['src']+']'+values['desc']+'[/url]')})}}).set('imag=
e',{txtExec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('image')._dropDown(editor,caller,fun=
ction(values){if(values['src']&&values['src']!=3D=3D"http://"){var =
dim=3D'';if(values['width']&&!values['height'])dim=3D'('+values['width']+=
'px,'+values['width']+'px)';if(!values['width']&&values['height'])dim=3D'=
('+values['height']+'px,'+values['height']+'px)';if(values['width']&&valu=
es['height'])dim=3D'('+values['width']+'px,'+values['height']+'px)';edito=
r.insertText('[img'+dim+']'+values['src']+'[/img]')}})}}).set('color',{tx=
tExec:function(caller){var =
editor=3Dthis;if(palette){$.sceditor.command.get('color')._dropDown(edito=
r,caller,function(color){editor.insertText("[color=3D"+color+"]","[/color=
]")})}else{$.sceditor.command.get('color')._menu(editor,caller,function(c=
olor){editor.insertText("[color=3D"+color+"]","[/color]")})}}}).set('size=
',{txtExec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('size')._dropDown(editor,caller,func=
tion(fontSize){editor.insertText('[size=3D'+fontSize+']','[/size]')})}});=
$.sceditor.command.set("fahide",{exec:function(caller){this.wysiwygEditor=
InsertText("[hide]","[/hide]")},txtExec:["[hide]","[/hide]"],tooltip:"Hid=
den"});$.sceditor.command.set("fascroll",{exec:function(caller){this.wysi=
wygEditorInsertText("[scroll]","[/scroll]")},txtExec:["[scroll]","[/scrol=
l]"],tooltip:"Horizontal =
scrolling"});$.sceditor.command.set("faupdown",{exec:function(caller){thi=
s.wysiwygEditorInsertText("[updown]","[/updown]")},txtExec:["[updown]","[=
/updown]"],tooltip:"Vertical =
scrolling"});$.sceditor.command.set("fawow",{exec:function(caller){this.w=
ysiwygEditorInsertText("[wow]","[/wow]")},txtExec:["[wow]","[/wow]"],tool=
tip:"WoW"});$.sceditor.command.set("farand",{exec:function(caller){this.w=
ysiwygEditorInsertText("[rand]","[/rand]")},txtExec:["[rand]","[/rand]"],=
tooltip:"Random"});$.sceditor.command.set("faspoiler",{_dropDown:function=
(editor,caller,handleIdFunc){var content=3D$('');content.find('.button').click(function(e){var =
val=3Dcontent.find("#spoilerlabel").val();handleIdFunc(val);editor.closeD=
ropDown(true);e.preventDefault()});editor.createDropDown(caller,"insertsp=
oiler",content)},exec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('faspoiler')._dropDown(editor,caller=
,function(title){var =
before=3D'[spoiler]',end=3D'[/spoiler]';if(title!=3D=3D'')before=3D'[spoi=
ler=3D"'+title+'"]';editor.wysiwygEditorInsertHtml(before,end)})},txtExec=
:function(caller){var =
editor=3Dthis;$.sceditor.command.get('faspoiler')._dropDown(editor,caller=
,function(title){if(title)editor.insertText('[spoiler=3D"'+title+'"]','[/=
spoiler]');else =
editor.insertText('[spoiler]','[/spoiler]')})},tooltip:"Spoiler"});$.sced=
itor.command.set("faroll",{_dropDown:function(editor,caller,callback){var=
content=3D$("
");var =
clickFunc=3Dfunction(e){callback($(this).data('roll'));editor.closeDropDo=
wn(true);e.preventDefault()};for(var =
i=3D0;i'+dice[i]+'').click(clickFunc))}editor.createDropDown(call=
er,"faroll-picker",content)},exec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('faroll')._dropDown(editor,caller,fu=
nction(dice){editor.wysiwygEditorInsertText('[roll=3D"'+dice+'"][/roll]')=
})},txtExec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('faroll')._dropDown(editor,caller,fu=
nction(dice){editor.insertText('[roll=3D"'+dice+'"][/roll]')})},tooltip:"=
Dices =
roll"});$.sceditor.command.set("dailymotion",{_dropDown:function(editor,c=
aller,handleIdFunc){var matches,content=3D$('');content.find('.button').click(function(e){var =
link=3Dcontent.find("#dailymotionurl").val(),val=3D'';if(link!=3D""&&link=
!=3Dnull){matches=3Dlink.match(/(http:\/\/)?([a-z]+\.)?(dailymotion\.com\=
/)([a-zA-Z0-9]+\/)*([a-zA-Z0-9]+)_(.*)/);if(matches){val=3Dmatches[5]}els=
e{matches=3Dlink.match(/(http:\/\/)?([a-z]+\.)?(dailymotion\.com\/)([a-zA=
-Z0-9\+]+\/)*(.*=3D)([a-zA-Z0-9]+)/);if(matches){val=3Dmatches[6]}}if(/^[=
a-zA-Z0-9]+$/.test(val)){handleIdFunc(val)}else{alert('Invalid =
Dailymotion =
video')}}editor.closeDropDown(true);e.preventDefault()});editor.createDro=
pDown(caller,"insertlink",content)},exec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('dailymotion')._dropDown(editor,call=
er,function(id){editor.wysiwygEditorInsertHtml('')})},txtExec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('dailymotion')._dropDown(editor,call=
er,function(link){editor.insertText('[dailymotion]'+link+'[/dailymotion]'=
)})},tooltip:"Insert a Dailymotion =
Video"});$.sceditor.command.set("youtube",{_dropDown:function(editor,call=
er,handleIdFunc){var matches,content=3D$(''+editor._("URL:")+'
');content.find('.button').click(function(e){var =
val=3Dcontent.find("#youtubeurl").val().replace("http://","");if(val!=3D=3D=
""){matches=3Dval.match(/(?:v=3D|v\/|embed\/|youtu.be\/)(.{11})/);if(matc=
hes){val=3Dmatches[1]}if(/^[a-zA-Z0-9_\-]{11}$/.test(val)){handleIdFunc(v=
al)}else{alert(editor._('Invalid YouTube =
video'))}}editor.closeDropDown(true);e.preventDefault()});editor.createDr=
opDown(caller,"insertlink",content)},exec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('youtube')._dropDown(editor,caller,f=
unction(id){editor.wysiwygEditorInsertHtml('
VIDEO ')})},tooltip:"Insert a YouTube =
video"});$.sceditor.command.set("flash",{_dropDown:function(editor,caller=
,handleIdFunc){var content=3D$('
'+editor._("Width (optional):")+'
'+editor._("Height (optional):")+'
'+editor._("URL:")+'
');content.find('.button').click(function(e){var =
values=3D{};values['source']=3Dcontent.find("#flashsource").val();values[=
'width']=3Dcontent.find("#flashwidth").val();values['height']=3Dcontent.f=
ind("#flashheight").val();if(values['width']=3D=3D=3D""){values['width']=3D=
"500"}if(values['height']=3D=3D=3D""){values['height']=3D"500"}if(values[=
'source']!=3D=3D""){handleIdFunc(values)}editor.closeDropDown(true);e.pre=
ventDefault()});editor.createDropDown(caller,"flash",content)},exec:funct=
ion(caller){var =
editor=3Dthis;$.sceditor.command.get('flash')._dropDown(editor,caller,fun=
ction(values){editor.wysiwygEditorInsertHtml('
')})},txtExec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('flash')._dropDown(editor,caller,fun=
ction(values){editor.insertText("[flash("+values['width']+","+values['hei=
ght']+")]"+values['source']+"[/flash]")})},tooltip:"Flash"}).set('size',{=
txtExec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('size')._dropDown(editor,caller,func=
tion(fontSize){editor.insertText('[size=3D'+fontSize+']','[/size]')})}});=
$.sceditor.command.set("headers",{txtExec:function(caller){var =
editor=3Dthis;$.sceditor.command.get('headers')._dropDown(editor,caller,f=
unction(lvl){editor.insertText('[h'+lvl+']','[/h'+lvl+']')})}});
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illiweb.com/rsc/97/frm/SCEditor/src/sceditor-custom-bbcode.js
$.sceditor.plugins.bbcode.bbcode.set('s',{tags:{},style:{},format:'',html=
:''}).set('strike',{tags:{s:null,strike:null},styles:{"text-decoration":[=
"line-through"]},format:"[strike]{0}[/strike]",html:'
{0} '});$.sced=
itor.plugins.bbcode.bbcode.set('ul',{tags:{ul:null},breakStart:true,isInl=
ine:false,skipLastLineBreak:false,format:"[list]{0}[/list]",html:'
'}).set('list',{breakStart:true,isInline:false,skipLastLineBreak:fal=
se,html:function(token,attrs,content){if(typeof =
attrs.defaultattr=3D=3D=3D'undefined'){return'
'}else =
if(/[1aAiI]/.test(attrs.defaultattr)){return'
'+content+' '}}}).set('ol',{tags:{ol:n=
ull},breakStart:true,isInline:false,skipLastLineBreak:false,format:functi=
on(elem,content){var attr=3D1;try{var =
attr=3Delem.context.attributes[0].value}catch(e){var =
attr=3D1}return'[list=3D'+attr+']'+content+'[/list]'},html:'
{0} '=
}).set('li',{tags:{li:null},skipLastLineBreak:false,isInline:false,isSelf=
Closing:true,closedBy:['/ul','/ol','/list','*','li'],format:"[*]{0}",html=
:'
{0} '}).set('*',{skipLastLineBreak:false,excludeClosing:true,cl=
osedBy:['/ul','/ol','/list','*','li'],html:'
{0} '});$.sceditor.pl=
ugins.bbcode.bbcode.set('table',{tags:{table:null},isInline:false,isHtmlI=
nline:true,skipLastLineBreak:true,quoteType:$.sceditor.BBCodeParser.Quote=
Type.always,format:function(element,content){var validAttributes=3Dnew =
Array('id','class','style','align','bgcolor','border','cellpadding','cell=
spacing','frame','rules','summary','width');var attributes=3D'';for(var =
i=3D0;i
'+content+'
':''}}).set('tr',{tags:{tr:null},isInline:false,skipLastLineBreak:tr=
ue,quoteType:$.sceditor.BBCodeParser.QuoteType.always,format:function(ele=
ment,content){var validAttributes=3Dnew =
Array('id','class','style','align','bgcolor','char','charoff','valign');v=
ar attributes=3D'';for(var =
i=3D0;i'+content+'':''+content+' '}})=
.set('th',{tags:{th:null},allowsEmpty:true,isInline:false,quoteType:$.sce=
ditor.BBCodeParser.QuoteType.always,format:"[th]{0}[/th]",html:'{0}=
th>'}).set('td',{tags:{td:null},allowsEmpty:true,isInline:false,quoteType=
:$.sceditor.BBCodeParser.QuoteType.always,format:function(element,content=
){var validAttributes=3Dnew =
Array('id','class','style','abbr','align','axis','bgcolor','char','charof=
f','colspan','headers','height','nowrap','rowspan','scope','valign','widt=
h');var attributes=3D'';for(var =
i=3D0;i'+content+'':''+content+' '}})=
;$.sceditor.plugins.bbcode.bbcode.set('img',{allowsEmpty:true,tags:{img:{=
src:null}},quoteType:$.sceditor.BBCodeParser.QuoteType.never,format:funct=
ion($element,content){var =
w,h,attribs=3D'',element=3D$element[0],style=3Dfunction(name){return =
element.style?element.style[name]:null};if(typeof =
$element.attr('data-sceditor-emoticon')!=3D=3D"undefined")return =
content;w=3D$element.attr('width')||style('width');h=3D$element.attr('hei=
ght')||style('height');if((element.complete&&(w||h))||(w&&h))attribs=3D"(=
"+$(element).width()+"px,"+$(element).height()+"px)";return'[img'+attribs=
+']'+$element.attr('src')+'[/img]'},html:function(token,attrs,content){va=
r parts,attribs=3D'';if(typeof =
attrs.width!=3D=3D"undefined")attribs+=3D' =
width=3D"'+attrs.width+'"';if(typeof =
attrs.height!=3D=3D"undefined")attribs+=3D' =
height=3D"'+attrs.height+'"';if(typeof =
attrs.defaultattr!=3D=3D"undefined"){parts=3Dattrs.defaultattr.split(/,/i=
);attribs=3D' width=3D"'+parts[0].substr(1)+'"'+' =
height=3D"'+(parts.length=3D=3D=3D2?parts[1].substr(0,parts[1].length-1):=
parts[0].substr(1))+'"'}return' '}});$.sceditor.plugins.bbcode.bbcode.set('flash',{allowsEmpty:true,tag=
s:{flash:{src:null},embed:{src:null}},quoteType:$.sceditor.BBCodeParser.Q=
uoteType.never,format:function($element,content){var =
w,h,attribs=3D'',element=3D$element[0],style=3Dfunction(name){return =
element.style?element.style[name]:null};w=3D$element.attr('width')||style=
('width');h=3D$element.attr('height')||style('height');if((element.comple=
te&&(w||h))||(w&&h))attribs=3D"("+$(element).width()+","+$(element).heigh=
t()+")";return'[flash'+attribs+']'+$element.attr('src')+'[/flash]'},html:=
function(token,attrs,content){var parts,attribs=3D'';if(typeof =
attrs.width!=3D=3D"undefined")attribs+=3D' =
width=3D"'+attrs.width+'"';if(typeof =
attrs.height!=3D=3D"undefined")attribs+=3D' =
height=3D"'+attrs.height+'"';if(typeof =
attrs.defaultattr!=3D=3D"undefined"){parts=3Dattrs.defaultattr.split(/,/i=
);attribs=3D' width=3D"'+parts[0].substr(1)+'"'+' =
height=3D"'+(parts.length=3D=3D=3D2?parts[1].substr(0,parts[1].length-1):=
parts[0].substr(1))+'"'}return' '}});$.sceditor.plugins.bbcode.bbcode.set('url=
',{allowsEmpty:true,tags:{a:{href:null}},quoteType:$.sceditor.BBCodeParse=
r.QuoteType.never,format:function(element,content){var =
url=3Delement.attr('href');if(url.substr(0,7)=3D=3D=3D'mailto:')return'[e=
mail=3D"'+url.substr(7)+'"]'+content+'[/email]';return'[url=3D'+FA_SCEdit=
or.functions.FAdecodeURI(url)+']'+content+'[/url]'},html:function(token,a=
ttrs,content){if(typeof =
attrs.defaultattr=3D=3D=3D"undefined"||attrs.defaultattr.length=3D=3D=3D0=
)attrs.defaultattr=3Dcontent;return''+content+' '}});$.sceditor.=
plugins.bbcode.bbcode.set('quote',{tags:{blockquote:null},isInline:false,=
quoteType:$.sceditor.BBCodeParser.QuoteType.always,format:function(elemen=
t,content){var =
author=3D'',$elm=3D$(element),$cite=3D$elm.children("cite").first();if(($=
cite&&$cite.text())||$elm.data("author")){author=3D$cite.text()||$elm.dat=
a("author");$elm.data("author",author);$cite.remove();$elm.children("cite=
").replaceWith(function(){return =
$(this).text()});content=3Dthis.elementToBbcode($(element));author=3D'=3D=
'+author}return'[quote'+author+']'+content+'[/quote]'},html:function(toke=
n,attrs,content){if(typeof =
attrs.defaultattr!=3D=3D"undefined"&&attrs.defaultattr!=3D=3D'')content=3D=
''+attrs.defaultattr+' '+content;return''+content=
+' '}});$.sceditor.plugins.bbcode.bbcode.set('dailymotion',{t=
ags:{iframe:{'data-dailymotion-id':null}},format:function(element,content=
){if(!(element=3Delement.attr('data-dailymotion-id')))return =
content;return'[dailymotion]'+element+'[/dailymotion]'},html:''});$.sceditor.plugins.bbcode.bbcode.set('size',=
{tags:{font:{size:null}},styles:{"font-size":null},format:function(elemen=
t,content){var =
fontSize=3Delement.attr('size');if(!fontSize)fontSize=3Delement.css('font=
Size');if(fontSize.indexOf("px")>-1){fontSize=3DfontSize.replace("px","")=
-0}else{var =
sizeAssoc=3D{1:10,2:13,3:16,4:18,5:24,6:32,7:48};fontSize=3DsizeAssoc[fon=
tSize]}if(!isNaN(parseFloat(fontSize))&&isFinite(fontSize)){fontSize=3DMa=
th.round(fontSize)}return'[size=3D'+fontSize+']'+content+'[/size]'},html:=
function(token,attrs,content){var =
sizes=3D{10:1,13:2,16:3,18:4,24:5,32:6,48:7};var =
fontSize=3Dattrs.defaultattr;var =
size=3Dsizes[fontSize];if(size=3D=3D=3Dundefined){return''+content+' '}else{return''+content+' '}}});$.sceditor.plugins.bbcode.bbcode.set("h2",{tags:=
{h2:null},format:"[h2]{0}[/h2]",html:"{0} "}).set("h3",{tags:{h3:=
null},format:"[h3]{0}[/h3]",html:"{0} "}).set("h4",{tags:{h4:null=
},format:"[h4]{0}[/h4]",html:"{0} "});
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illiweb.com/rsc/97/frm/SCEditor/src/instance-sceditor.js
$(document).ready(function(){try{FA.SCEditor=3D{sourceMode:bSourceMode};$=
("#text_editor_textarea").sceditor({locale:locale,width:($.sceditor.ie<=3D=
9)?'':'100%',height:height,plugins:plugin,toolbar:toolbar,style:cssFile,r=
tl:(isRtl=3D=3Dtrue),emoticonsEnabled:emoticonsEnabled,emoticonsCompat:tr=
ue,emoticonsRoot:"",emoticons:{dropdown:smileys},emoticonsURL:iframeSrc})=
;var =
editor=3D$("#text_editor_textarea").sceditor("instance");editor.toggleSou=
rceMode();editor.sourceMode(FA.SCEditor.sourceMode);if(FA.SCEditor.source=
Mode)$("a.sceditor-button-source").addClass("hover");if(plugin=3D=3D=3D'b=
bcode'){FA_SCEditor.functions.showHideToolbarElements();if(!bSourceMode&&=
editor.getSourceEditorValue().length)editor.setWysiwygEditorValue(editor.=
getSourceEditorValue()+' ')}}catch(e){if(typeof(console)!=3D'undefined'){console.error(e)}}try{i=
f(typeof(addSmileyPane)!=3D'undefined'){addSmileyPane()}}catch(e){if(type=
of(console)!=3D'undefined'){console.error(e)}}});function =
insertIntoEditor(text){try{var =
editor=3D$("#text_editor_textarea").sceditor("instance");var =
editorContent=3Deditor.val();if((text=3D=3Dnull)||(typeof(text)=3D=3D'und=
efined')){text=3D""}if(editor&&(text.length>0)){if(editor.inSourceMode())=
{if(editorContent.slice(-1)=3D=3D=3D' =
'||editorContent.length=3D=3D0)editor.insert(text+' ');else =
if(editorContent.length>0)editor.insert(' '+text+' =
')}else{if(editorContent.slice(-1)=3D=3D=3D' =
'||editorContent.length=3D=3D0){editor.insert(text);editor.wysiwygEditorI=
nsertHtml(' ')}else =
if(editorContent.length>0){editor.wysiwygEditorInsertHtml(' =
');editor.insert(text);editor.wysiwygEditorInsertHtml(' =
')}}}}catch(e){if(console){console.error(e)}}}
------=_NextPart_000_0000_01D05FF6.00C5F030
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illiweb.com/rsc/97/frm/addthis/addthis_widget.js
if(!window._ate){var =
_atd=3D"www.addthis.com/",_euc=3DencodeURIComponent,_duc=3DdecodeURICompo=
nent,_atu=3D"undefined",_atc=3D{dr:0,ver:250,loc:0,enote:"",cwait:500,tam=
p:1,samp:0.01,camp:0.5,vamp:1,addr:-1,addt:1,xfl:!!window.addthis_disable=
_flash,abf:!!window.addthis_do_ab};(function(){try{var =
l=3Dwindow.location;if(l.protocol.indexOf("file")=3D=3D=3D0){_atr=3D"http=
:"+_atr}if(l.hostname.indexOf("localhost")!=3D-1){_atc.loc=3D1}}catch(e){=
}var =
ua=3Dnavigator.userAgent.toLowerCase(),d=3Ddocument,w=3Dwindow,wa=3Dw.add=
EventListener,we=3Dw.attachEvent,dl=3Dd.location,b=3D{win:/windows/.test(=
ua),chr:/chrome/.test(ua),iph:/iphone/.test(ua),saf:(/webkit/.test(ua))&&=
!(/chrome/.test(ua)),opr:/opera/.test(ua),msi:(/msie/.test(ua))&&!(/opera=
/.test(ua)),ffx:/firefox/.test(ua),ie6:/msie =
6.0/.test(ua),mod:-1},_9=3D{isBound:false,isReady:false,readyList:window.=
addthis_onload||[],onReady:function(){if(!_9.isReady){_9.isReady=3Dtrue;v=
ar l=3D_9.readyList;for(var =
fn=3D0;fn-1){r.onReady();return=
}if(b.msi&&window=3D=3Dtop){(function(){if(r.isReady){return}try{d.docume=
ntElement.doScroll("left")}catch(error){setTimeout(arguments.callee,0);re=
turn}r.onReady()})()}if(b.opr){d.addEventListener("DOMContentLoaded",func=
tion(){if(r.isReady){return}for(var =
i=3D0;i25){dr=3Ddr.substr(0,25)}}new =
Image().src=3D_ati+i+".gif"}},cuid:function(){return(_17.sttm&_17.max).to=
String(16)+(Math.floor(Math.random()*_17.max)).toString(16)},ssid:functio=
n(){if(_17.sid=3D=3D=3D0){_17.sid=3D_17.cuid()}return =
_17.sid},sev:function(id,_1e){_17.pix=3D"sev-"+(typeof(id)!=3D=3D"number"=
?_euc(id):id);_17.svt.push(id+";"+_17.off());if(_1e=3D=3D=3D1){_17.xmi(tr=
ue)}else{_17.sxm(true)}},cev:function(k,v){_17.pix=3D"cev-"+_euc(k);_17.c=
vt.push(_euc(k)+"=3D"+_euc(v)+";"+_17.off());_17.sxm(true)},sxm:function(=
b){if(_17.tmo!=3D=3Dnull){clearTimeout(_17.tmo)}if(b){_17.tmo=3D_17.sto("=
_ate.xmi(false)",_17.wait)}},sto:function(c,t){return =
setTimeout(c,t)},sta:function(){var =
a=3D_17;return"AT-"+(a.pub()?a.pub():"unknown")+"/-/"+a.ab+"/"+a.ssid()+"=
/"+(a.seq++)+(a.uid!=3D=3Dnull?"/"+a.uid:"")},xmi:function(_25){var =
a=3D_17,h=3Da.dl?a.dl.hostname:"";if(!a.uid){a.dck("X"+a.cuid())}else{a.c=
oo()}if(a.cvt.length+a.svt.length>0){a.sxm(false);if(a.seq=3D=3D=3D1){a.c=
ev("pin",a.inst)}if(_atc.xtr){return}if(h.indexOf(".gov")>-1||h.indexOf("=
.mil")>-1){_atc.xck=3D1}var =
urp=3Da.pix+"-"+a.ran()+".png?ev=3D"+_17.sta()+"&se=3D"+a.svt.join(",")+"=
&ce=3D"+a.cvt.join(",")+(_atc.xck?"&xck=3D1":""),url=3Da.evu+urp;a.cvt=3D=
[];a.svt=3D[];if(_25){var =
d=3Ddocument,i=3Dd.ce("iframe");i.id=3D"_atf";i.src=3Durl;_17.opp(i.style=
);d.body.appendChild(i);i=3Dd.getElementById("_atf")}else{(new =
Image()).src=3Durl}}},loc:function(){return =
_atc.loc},opp:function(st){st.width=3D"1px";st.height=3D"1px";st.position=
=3D"absolute";st.zIndex=3D100000},pub:function(){return =
window.addthis_config&&addthis_config.username?_euc(addthis_config.userna=
me):(window.addthis_pub||"")},plo:[],lad:function(x){_17.plo.push(x)},lng=
:function(al){var =
d=3Ddocument;if(al&&(al.toLowerCase()).indexOf("en")!=3D=3D0&&!_17.pll){v=
ar =
o=3Dd.ce("script");o.src=3D_atr+"lang00.js";d.gn("head")[0].appendChild(o=
);_17.pll=3Do}},jlo:function(){try{var =
d=3Ddocument,al=3D(window.addthis_language||addthis_config.ui_language||(=
_17.bro.msi?navigator.userLanguage:navigator.language));_17.lng(al);if(!_=
17.pld){var =
m=3Dd.ce("script");m.src=3D_atr+"menu25.js";d.gn("head")[0].appendChild(m=
);_17.pld=3Dm}}catch(e){}},igv:function(u,t){if(!w.addthis_share){w.addth=
is_share=3D{url:w.addthis_url||u,title:w.addthis_title||t}}if(!w.addthis_=
config){w.addthis_config=3D{username:w.addthis_pub}}else{if(addthis_confi=
g.data_use_flash=3D=3D=3Dfalse){_atc.xfl=3D1}if(addthis_config.data_use_c=
ookies=3D=3D=3Dfalse){_atc.xck=3D1}}},lod:function(arg){try{var =
w=3Dwindow,a=3D_17,hp=3D0,f=3D((arg=3D=3D=3D1||w.addthis_load_flash)&&!_a=
tc.abf),dr=3Dd.referer||d.referrer||"",du=3Ddl?dl.href:null,si=3Ddu?du.in=
dexOf("sms_ss"):-1,al=3D(w.addthis_language||(w.addthis_config?w.addthis_=
config.ui_language:null)||(_17.bro.msi?navigator.userLanguage:navigator.l=
anguage)),_3f=3D"email,favorites,print,delicious,digg,google,myspace,live=
,facebook,stumbleupon,twitter,more",_40=3D{en:4,es:3,it:4,nl:2,ja:2,fr:2,=
pt:2,tr:2,de:3},_41=3D_40[al]||0,lks=3Dd.getElementsByTagName("link");for=
(var i=3D0;i=3D0&&!a.sub){a.sev("20");a.cev("plo",Math.=
round(1/_atc.samp));if(a.dr){a.cev("pre",a.dr);hp=3D1}}if(a.camp>=3D0&&du=
&&dl&&dl.protocol&&(dr.indexOf("com/search")>-1)&&(dl.protocol.indexOf("h=
ttps")=3D=3D-1)){dr=3Ddr.split("?").pop();var =
t=3Ddr.split("&"),fnd=3D0,quo=3D-1,ts=3D"";for(var =
i=3D0;i-1){var =
sm=3Ddu.substr(si),am=3Dsm.indexOf("&");if(am>-1){sm=3Dsm.substr(0,am)}sm=
=3D(sm.split("=3D"))[1];if(a.vamp>=3D0&&!a.sub&&sm.length){a.cev("plv",Ma=
th.round(1/_atc.vamp));a.cev("rsc",sm)}}new =
Image().src=3D"http://illiweb.com/fa/empty.gif"}if(a.plo.length>0){a.jlo(=
)}if(a.swf&&!_atc.xfl&&!(a.loc())&&!_atc.abf&&(f||a.uid=3D=3D=3Dnull||(a.=
uid!=3D=3D"anonymous"&&a.oot&&((new =
Date()).getTime()-a.oot>60480000)))){a.uoo();var =
_4b=3Dfunction(o,n,v){var =
c=3Dd.createElement("param");c.name=3Dn;c.value=3Dv;o.appendChild(c)};var=
=
o=3Dd.createElement("object");a.opp(o.style);o.id=3D"atff";if(b.msi){o.cl=
assid=3D"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";_4b(o,"movie",a.swf)=
}else{o.data=3Da.swf;o.quality=3D"high";o.type=3D"application/x-shockwave=
-flash"}_4b(o,"wmode","transparent");_4b(o,"allowScriptAccess","always");=
d.body.insertBefore(o,d.body.firstChild);if(b.msi){o.outerHTML+=3D" =
"}}}catch(e){}},unl:function(){var =
a=3D_17;if(a.samp>=3D0&&!a.sub&&!_atc.abf){a.sev("21",1);a.cev("pun",1/_a=
tc.samp)}return true},kck:function(k){var =
d=3Ddocument;if(d.cookie){d.cookie=3Dk+"=3D ; expires=3DTue, 31 Mar 2009 =
05:47:11 UTC; path=3D/"}},rck:function(k){var =
d=3Ddocument;if(d.cookie){var ck=3Dd.cookie.split(";");for(var =
i=3D0;i=3D0){return =
c.substring(x+(k.length+1))}}}return},uoo:function(){_17.sck("_csoot",(ne=
w =
Date().getTime()))},coo:function(f){if(_17.uid=3D=3D"anonymous"&&!_17.oot=
){_17.xck=3D1;_17.uoo()}},dck:function(c){_17.uid=3Dc;_17.sck("_csuid",c)=
;_17.coo()},gov:function(){var =
h=3D_17.dl?_17.dl.hostname:"";if(h.indexOf(".gov")>-1||h.indexOf(".mil")>=
-1){_atc.xck=3D1;_atc.xfl=3D1}var =
p=3D_17.pub(),x=3D["usarmymedia","gobiernousa","govdelivery"];for(i in =
x){if(p=3D=3Dx[i]){_atc.xck=3D1;_atc.xfl=3D1;break}}},sck:function(u,v,s)=
{_17.gov();if(!_atc.xck){d.cookie=3Du+"=3D"+v+(!s?"; expires=3DWed, 04 =
Oct 2028 03:19:53 GMT":"")+"; =
path=3D/"}},fcl:null,asetup:function(x){var =
a=3D_17;try{if(x!=3D=3Dnull&&x!=3D=3D_atu){a.dck(x)}if(a.fcl){a.fcl()}}ca=
tch(e){}return =
x},ao:function(elt,_66,_67,_68,_69,_6a){_17.lad(["open",elt,_66,_67,_68,_=
69,_6a]);_17.jlo();return =
false},ac:function(){},as:function(s,cf,sh){_17.lad(["send",s,cf,sh]);_17=
.jlo()}},a=3D_17;w._ate=3Da;w._adr=3Dr;d.ce=3Dd.createElement;d.gn=3Dd.ge=
tElementsByTagName;r.bindReady();if(wa){wa("unload",a.unl,false)}else{if(=
we){we("onunload",a.unl)}else{w.onunload=3Da.unl}}if(!_atc.ost){if(!w.add=
this_conf){w.addthis_conf=3D{}}for(var i in =
addthis_conf){_atc[i]=3Daddthis_conf[i]}_atc.ost=3D1}r.append(a.lod);if(d=
.cookie){var ck=3Dd.cookie.split(";");for(var i=3D0;i=3D0=
){_17.uid=3Dc.substring(x+7)}else{if(y>=3D0){_17.oot=3Dc.substring(y+7)}}=
}}var =
ss=3Dd.gn("script"),s=3Dss[ss.length-1],q=3Ds.src.replace(/^[^\?]+\??/,""=
),pq=3Dfunction(q){var p=3D{};if(!q){return p}var =
ps=3Dq.split(/[;&]/);for(var i=3D0;i");w._ate.igv();w._ate.lad(["span",rc,addthis_shar=
e.url||"[url]",addthis_share.title||"[title]"])}if(w.addthis_clickout){_1=
7.lad(["cout"])}}catch(e){}})();function =
addthis_open(elt,_81,_82,_83,_84,_85){if(typeof =
_84=3D=3D"string"){_84=3Dnull}return =
_ate.ao(elt,_81,_82,_83,_84,_85)}function =
addthis_close(){_ate.ac()}function =
addthis_sendto(s,cf,sh){_ate.as(s,cf,sh);return =
false}if(_atc.dr){_adr.onReady()}}else{_ate.inst++}if(_atc.abf){addthis_o=
pen(document.getElementById("ab"),"emailab",window.addthis_url||"[URL]",w=
indow.addthis_title||"[TITLE]")}if(!window.addthis||window.addthis.nodeTy=
pe!=3D=3Dundefined){window.addthis=3D{ost:0,cache:{},plo:[],links:[],ems:=
[],button:function(){this.plo.push({call:"button",args:arguments})},toolb=
ox:function(){this.plo.push({call:"toolbox",args:arguments})},update:func=
tion(){this.plo.push({call:"update",args:arguments})}}}_adr.append((funct=
ion(){if(!window.addthis.ost){var =
d=3Ddocument,u=3Dundefined,w=3Dwindow,_4=3Dw.addthis_config,_5=3Dw.addthi=
s_share,_6=3D{},_7=3D{},_8=3Dd.gn("body").item(0),_9=3Dfunction(o,n){if(n=
&&o!=3D=3Dn){for(var k in =
n){if(o[k]=3D=3D=3Du){o[k]=3Dn[k]}}}},_d=3Dfunction(o,n){var =
r=3D{};for(var k in o){if(n[k]){r[k]=3Dn[k]}else{r[k]=3Do[k]}}return =
r},_12=3Dwindow.addthis,_13=3Dfunction(_14){return"mailto:?subject=3D"+(_=
14.title?_14.title:"%20")+"&body=3D"+(_14.title?_14.title+"%0D%0A":"")+(_=
14.url)+"%0D%0A%0D%0AShared via =
AddThis.com"},_15=3Dfunction(_16,tag,_18,_19){tag=3Dtag.toUpperCase();var=
=
els=3D(_16=3D=3D_8&&_12.cache[tag]?_12.cache[tag]:(_16||_8).getElementsBy=
TagName(tag)),rv=3D[],o;if(_16=3D=3D_8){_12.cache[tag]=3Dels}_18=3D_18.re=
place(/\-/g,"\\-");var rx=3Dnew =
RegExp("(^|\\s)"+_18+(_19?"\\w*":"")+"(\\s|$)");for(var =
i=3D0;i