From: "Saved by Windows Internet Explorer 8"
Subject: Careers in criminal justice
Date: Thu, 2 Sep 2010 23:24:59 +0530
MIME-Version: 1.0
Content-Type: multipart/related;
	type="multipart/alternative";
	boundary="----=_NextPart_000_0000_01CB4AF6.0F920870"
X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7600.16543

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/images/rss_image.jpg

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4AJkFkb2JlAGTAAAAAAQMA
FQQDBgoNAAACBgAAAu8AAANxAAAD2P/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgADAAMAwERAAIR
AQMRAf/EAL4AAAMBAAAAAAAAAAAAAAAAAAUGBwgBAQEBAAAAAAAAAAAAAAAAAAUGCBAAAQQBBQAA
AAAAAAAAAAAABBMUBRUkARIDJRYRAAAEBQIDCQAAAAAAAAAAAAESEwQRAgMUFQAhIwUWIjJikoMk
NEVlEgAAAwUCDAcAAAAAAAAAAAABAhMAESESIjIVMVFhgZGhgrIjMwQUQXFCUmJDYxMAAQMEAQUB
AQAAAAAAAAAAAQARMfAhQVFhEIGRobFxwf/aAAwDAQACEQMRAAAB35l/TaDMUx5kqcMI/wD/2gAI
AQEAAQUChoiMOiW516R6lp3D/wD/2gAIAQIAAQUCHHEPDrj1+Cx25Sv/2gAIAQMAAQUCMLLEMciM
dKpTDR//2gAIAQICBj8Cn6jm1CY4GMoWq0Yo0nKEJhKLwDK10TVK46X+7RHyYnaT3fxknyWYqP14
dlvG9Jfg5NLel1ZW/9oACAEDAgY/Ak+m5VIFIIFkNTZKYKiGGMoGgI5Gvh1KeH1YbGmDsbH7yXve
Co6e1BN2fFtN9dxv/R6q26pmzN//2gAIAQEBBj8CuX4Si5C6rvuZUnL3JUPdVBF27aOYtH7aQKko
1J6IhNJIO+8ddLx4l+kkpPbHTjfF7sLXtHgZPTTFL4tPnmMUx3w062RuVOGohExtjRT19h1oX8W1
wPTnkvcX6hfHr//aAAgBAQMBPyGOLoWWbOhKISWaVR6dnIsvYAtW2srdNr9//9oACAECAwE/IbUs
To7dsQI4PJZtodFjrMzpTgvw915qiaDyn//aAAgBAwMBPyG/4an5q0AEhFoBYRLYLNm9xvdcv/0c
G7WNo0VSv2/Sv//aAAwDAQACEQMRAAAQES//2gAIAQEDAT8Qe59lJvd7FGchTAzx625kiTWxOy//
2gAIAQIDAT8QNXIBiiCRednCQJVncVfWwuW33os80eIVefOlf//aAAgBAwMBPxAXMfdlSqDDxVLk
Ud3kv7ySgBg+YvM9IcN//9k=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com//images/New_DH_Logo.gif

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
ADs=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/Openads/adlog.php?bannerid=679&clientid=10&zoneid=0&source=&block=0&capping=0&cb=f826e6aaeba1874010b82a0f56853b90

R0lGODlhAQABAIAAAAQCBAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/images/Generally%20cloudy.jpg

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

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/images/editor_images/August%202010/August%2019%202010/dheducation-criminaljustice.jpg

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
y//Z

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/Openads/adlog.php?bannerid=625&clientid=16&zoneid=0&source=&block=0&capping=0&cb=aafb4036eef94fae35fa11e81f8c79f2

R0lGODlhAQABAIAAAAQCBAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://ads.adohana.com/cgi-bin/ads/ad19872a.cgi/ns/v=2.3S/sz=468x60A/

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

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/Openads/adlog.php?bannerid=630&clientid=18&zoneid=0&source=&block=0&capping=0&cb=a2d03bf1e22621ebee678b2b9285745f

R0lGODlhAQABAIAAAAQCBAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/images/mail.gif

R0lGODlhZQAVAPcAAAQCBISChMTCxOzq7LSytMzOzJSWlPz6/NTW1GRmZISGhNTSzPz+/ADn6AAS
EgAAAACIFwAG0AATtQAAdwBoeADn8gASFQAAAADbAACAAAD7AAB3wA7QAQCYBAD4AAB3AAD/yAD/
eQD/WwD/AAh4iObnhBISFAAAAADsCACcAAD8AAB3AJjoGJgG3PgTTncAAAB4AwDyABMVAAAAAMB4
AGPyABMVAAAAAAABDgAAAAAAAAAAAOR4AuXyABIVAAAAAIjNAwarABO6AADcAJgUh+bnwhIS6QAA
d9sb34BZd/vh+Hd3d9CskJjK0fi1/Hd3d/9AxP8Dd/8o+P8Ad6gPQOYAWhIAEwAAAOwAIJwAWvwA
E3cAAMgAnBoAhBMAFAAAAMg8AGPnABMSAAAAADRdAABZAADhAMB3AEHIXJx56PxbMHcAMAAPjwEA
CwAAAAAAAAEATgEACwEAAAEAAKBtCuZZABLhAAB3ANsAAIAAAPsAAHcAAIgACK4AAPgAHXcAAP8A
CP8AAP8AHf8AAHQACOYAABIAHQAAAO+UsGfnPugS4XcAdwCDAAD7ABP5HQB3AAAAAAAAAAATAAAA
AIgCB5oAABUAAAAAABYAGAB56QBbEsAAAMgPAGMAABMAAAAAAACIAADnAAASAAAAAH6QAABzAADo
AMB3AAAAAAAAAAAAAAAAAP8AoP8A6P8AEv8AAP/IFv9jAP8TAP8AAAB0/wCV/wDo/wB3/wDMFgBz
AADoAAB3AACo+ADn8gASEgAAAABzAACVABPoAAB3AGwAsAAA6AAAEgAAAAAI/mMAWBMdSwAAAOR1
kMRr6OjoEnd3ABb/WwD/YgD/TsD/AAGsxOfo6BISEgAAAACedQFrawDo6AB3dxhsQuZv6RJOEgAA
AJwo6PmW/xJO/wAAf5xzLPmV6RLoEgB3ANuoCIDnAPsSHXcAAIgAda4Aa/gA6HcAd//ACP/cAP9P
Hf8AAFQAAecwABIAAAAAAIQBACkBAOkBAHcBAACcbgD5/RMSRgAAACwAAAAAZQAVAEAI/wAZCBxI
sKDBgwgTKlzIsKFDBgoGJJhI8UABAAkxPsxIUCMDjww9gtyoUEEBBQMPDAhwkaTLlw4ByHSooGbN
ADYVjITJs2dPBQcoJlAggMGAAQgQEBi5c6DGpx+dRgUpUqpIqgWravXJtavXr2DDimUQ4ECAswfS
WmwKli3bsQbLCp1I1GhTmTOzCoTacWrfvVajGqzadyvguGoPoIyYlICBiFTxMj38FK/fjhi3Wv6L
Oa/kvXkXsixAujTpt3BTq17NurXr1EAHMFA7YO3r2wuBqkxb+4CAt5JRc8R6WCrCz111J04b4Pfx
jDNDb87c+eN00MQFb7buOXTBssvrHkRFsJNpdMrYqWfXXH77Z63Iv/NWjHK80sfZB6PXzNlwccHG
XSbgXZIFwMBJOR0oHG4vLRgXSiodhVQADjK4WnAYWthaQAA7

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/images/print.gif

R0lGODlhYAAVAPcAAAQCBISChMzOzOzq7LSytNze3Pz6/FxeXISGhNTSzPz+/AAA/2WoOADn6AAS
EgAAAACIFwAG0AATtQAAdwBoaADnNgASEwAAAADbAACAAAD7AAB3wA7QAQCYBAD4AAB3AAD/yAD/
eQD/WwD/AAh4SObnShISFQAAAADsCACcAAD8AAB3AJjoGJgG3PgTTncAAABoAwA2ABMTAAAAAMBo
AGM2ABMTAAAAAAABDgAAAAAAAAAAAORoAuU2ABITAAAAAIjNAwarABO6AADcAJgUh+bnwhIS6QAA
d9sb34BZd/vh+Hd3d9CskJjK0fi1/Hd3d/9AxP8Dd/8o+P8Ad6gP4OYAUxIAEwAAAOwAwJwAU/wA
E3cAAMgAXBoAShMAFQAAAMg8AGPnABMSAAAAADRdAABZAADhAMB3AEHIXJx56PxbMncAMgAPjwEA
CwAAAAAAAAEATgEACwEAAAEAAKBtCuZZABLhAAB3ANsAAIAAAPsAAHcAAIgACK4AAPgAHXcAAP8A
CP8AAP8AHf8AAHQACOYAABIAHQAAAO+UsGfnPugS4XcAdwCDAAD7ABP5HQB3AAAAAAAAAAATAAAA
AIgCB5oAABUAAAAAABYAGAB56QBbEsAAAMgPAGMAABMAAAAAAACIAADnAAASAAAAAH6QAABzAADo
AMB3AAAAAAAAAAAAAAAAAP8AoP8A6P8AEv8AAP/IF/9jAP8TAP8AAAB0/wCV/wDo/wB3/wDMFwBz
AADoAAB3AACo+ADn8gASEgAAAABzAACVABPoAAB3AGwAsAAA6AAAEgAAAAAI/mMAWBMdSwAAAOR1
kMRr6OjoEnd3ABb/WwD/YgD/TsD/AAGsxOfo6BISEgAAAACedQFrawDo6AB3dxhsQ+Zv6RJOEgAA
AJwo5/mW/xJO/wAAf5xzLPmV6RLoEgB3ANuoCIDnAPsSHXcAAIgAda4Aa/gA6HcAd//ACP/cAP9P
Hf8AAFQAAecwABIAAAAAAIQBACkBAOkBAHcBAACcbgD5/RMSRgAAACwAAAAAYAAVAEAI/wAVCBxI
sKDBgwgTKlzIsGHDAAIMSJwoAABCiwIxLtQ4UCPHjR0dbgRAsqRJkgc+ilzJcqTKljBjypxJEMHE
AQMKFBDAEwACnx+DhvSoQCXRjEU7chSKlOhLmlCjSp1KtWpLBBENDKD4lGpXqwghThwL9GdBpxgt
OjV4NKnag22bDg1pMIDEnDwD6O1p9qxfuUiLBn0rt+RfgiYzGhb89aRjsJAjS55MubJlggEQaNac
OcDlzwftdkZg92niw4jZ0l3NdvFU0aMNnE5d2O1i14wZp1W8lK7r07gLZt68eTjQwSQDu517eG3y
s78Now0usLPe69d/ama6mvDy5syVJyCl/b38S7t4eeIc0PM5aKhfEWvNuVMAAQIAUr7fz59/QAA7

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/images/bookmark.gif

R0lGODlhRAAVALMAAN7e3oWFhd/f34SGhISEhLm5uYaGhgAAALi4uNLU0gQCBP///wAAAAAAAAAA
AAAAACH5BAAAAAAALAAAAABEABUAAATOcMlJq7046827/6A0jGQ5KGGqSkHivm8AHGvtEXAuA6jt
Y7hcDCDo/Y4TgzAmKCKfi9YyERDwKIps1mNUdSfS5a5L7nxD5+g0QbCWJz0tfLuI1+tySR7F11PC
QjJOc1p9fkZ9cYaGd3SMLGsGTW+HcHeHiH6XhZd4FkFLBABXlpaZp5uajKudkFNjWLGolXapip2P
alNtpHqcvoiOlamerK0ByAbIBAEEzpNQSAqjBQWjRE0HvdE2WQDV2NdFadwpCtWF6eVHCAXr7+3v
5REAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/Openads/adlog.php?bannerid=627&clientid=59&zoneid=0&source=&block=0&capping=0&cb=927c2826cb184f55173ea862ae663c25

R0lGODlhAQABAIAAAAQCBAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://ads.adohana.com/cgi-bin/ads/ad19872a.cgi/ns/v=2.3S/sz=120x600A/

R0lGODlheABYAvcAAHqTSNjXYX6fOYSnPKvGc4SZVKK7bKiwloerPoGiOneWNeHqz9TTXdDcuJa9
RZy7XqK2eNfX1661VdXkuMvUt+Xq29Xbw+Ps0LnSh/H07LHMefv7+5Sma32eOGJ9Jfj687ayv4Z4
Vpy5Ytnkwqi3hv7+/urx28DQnc3drHaVM7LIhp3JRa6urrTSdsfdmMXKXPz8/KHAX5i5VGONOnhq
S2hXTLvJo5msc+ru4tvaX2GLM/f58+3x52eBK8ncoUUtOqS/bnOLPczMy/z9+rjLkdngy5CKesHN
qvD05+Li4rjCV2qRPvLy8oifXPf396TCZpS0VcbZoDsiMePjYo6iYsLUnl6ILo2uSZGzS7XCmeju
2myEMbLAld7j0JmMj3tsaJa5Tvr7+VtKRqGZVsDVlfX38tjWXomoR9znw/f4ysXXn7nFnsHZjczg
o/7+/LzQk+Pi2svJYLC9kqHGU5KvVFA7P8jXqa7OauHn1pGoS8XRsKjLX52xedPlr8zRXWeOOtji
wo6wSsG/W/78/N/bYsXPsOzq59DSYd7fZYOfRoisPomtP3ycOH+gOXmZNpnAR5rBR3ubN5zHRpvD
SJC1QpW8RZO5RJi/RnqaN42yQYquP5vESI+0QoyxQJe+RnmYNnubOJS6RIOmPJK4RJvCSI6zQYKk
O4ChOZG3Q5W7RZK4Q4uwQJi/R4qvP4KjO5vER5G2Q4OkO5nBR3eXNZS7RHiYNpC2Qo2xQYuvQIOl
O4WoPIWpPYChOpe+RYywQJK3Q32dOIapPZrCSIWoPZC4P+vr67u5wnOSMpG1R8LBw5vGRK+usenp
6cfHx4WqPJW/QISoPIaqPebw0d/ozoapPouvP6nAeODsxqHIU5q0YKjDb5e2VvL36KCwe6bIXf39
/W2HNcPYl/r6/vz9++fk4vj41a/Dlqiend3eX+/zy9bRz/T178zHxLavraCxUM/PYNnhmK2rmq69
j4WjTIilRr+4r/Hu8MO6ve/wrP3+/nmbQubnYs3KfJvFR5zGR////ywAAAAAeABYAgAI/wCFCBxI
sKDBgwgTKlzIsKHDh0L+SZxIsaLFixgzatzIsaPHjgI/ihxJsqRJkBFPqlzJsqXEkC5jypx5ESbN
mzhX2szJsydKn0CD1kwptCjQnUaT3kSqtKlLpk6jnoQqtapIqlazbsSqtatFrl7D/gMrtivZslnP
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

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/Openads/adlog.php?bannerid=635&clientid=61&zoneid=0&source=&block=0&capping=0&cb=9f89345a944ff4ecc1799211b37b2c29

R0lGODlhAQABAIAAAAQCBAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com//images/submenu_arrow.jpg

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4AJkFkb2JlAGTAAAAAAQMA
FQQDBgoNAAAB0QAAAjsAAAKIAAACzf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgACQAFAwERAAIR
AQMRAf/EAKUAAQEAAAAAAAAAAAAAAAAAAAcIAQADAQAAAAAAAAAAAAAAAAAEBQYHEAAABAcAAAAA
AAAAAAAAAAARAhMEFEQFBhZGSBEAAgICAQUAAAAAAAAAAAAAAgQBAwUGABESFrZ3EgAAAwYEBwAA
AAAAAAAAAAABERIA8CExAiKxQmITwkODwwQUhBMBAQABBAIDAAAAAAAAAAAAAREAECExcWGxQZHx
/9oADAMBAAIRAxEAAAGjpvamotD/AP/aAAgBAQABBQItUubE+f8A/9oACAECAAEFAhOnKf/aAAgB
AwABBQJFpGbH/9oACAECAgY/Ak5DcJPIuWHT4W//2gAIAQMCBj8C3oe0g8LzXAdShML9ykg82v7O
63//2gAIAQEBBj8CtxHZf45GVXxY9a7QmCmGVz12tQdduhnGE1A1mmaawUMwKYIslaepKz8lH0gu
f//aAAgBAQMBPyGlM15j7BiAjTTGf//aAAgBAgMBPyH62/Hw8QjyXQn/2gAIAQMDAT8hYb3HM8qh
s1AtWOkb/9oADAMBAAIRAxEAABBT/9oACAEBAwE/EF6GBqg3MriQABf/2gAIAQIDAT8QLodjj2RS
1BZQLrI59fbP/9oACAEDAwE/EIdSsEoRZJa7ecg8O3rn/9k=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/videos/images//thumb/2010/08/23/1282542036_front.jpg

/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP
FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc
ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA
3AEsAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC
BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn
KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY
mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5
+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB
AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD
REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip
qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR
AD8Ag/Zz/wBZ4g/3YP8A2avfcj1FeA/s7EeZr3I48o/h81e75HqKZJYJGDyPzpjEbTUeR6ilyPUU
xCHpSUEjHUU0kEdaYDgRnqKXI9RUYxmloESoRzyKepHPI/Oq/FOTGD9aTBbkrEbjyKYSM009aTIF
IoeCMUoIxUeR7UoI29RQA/tTu1R5GOop3HtQMXtSdxSjk4HJPSmB1LlMjI6jNAIkpV+9TCQCASAT
TgRnqKBkoI3UjkcfWmqV3dR0ocggYINIQ1jnFMPWnDrS4JPAJqkyRgpcikYHPQ9PSkpgOzUikbRy
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

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/Openads/adlog.php?bannerid=671&clientid=51&zoneid=0&source=&block=0&capping=0&cb=d9e2fea6b2ceea6b9a504a85838d1a34

R0lGODlhAQABAIAAAAQCBAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/photos/home_small/Housefull_______20100901230611.jpg

/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
SlBFRyB2NjIpLCBxdWFsaXR5ID0gNzUK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0a
Hx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAYACR
AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF
BQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkq
NDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqi
o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/E
AB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMR
BAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVG
R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz
tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A
4vR9J8yC0i3rhQASR2xz/KuW1Czhtb6azEoLwTNGQEPGDjJz9O1dNZ3Vw2l6gkW6Ke3DNGw64HI/
QfrWTFHLrUZvWaM3TZWcsMFugBAH50gS1udR8HbgR6rq1n/fiWQZ/wBlsf8As1dz4ttvONhJ33vE
Pqw3f+yGvPPAqHSviBbxM2ftMDxkgYHTP/sor1HxREH0TzO8UyMPqTt/9mrRfCS9zD8OeXDqjiWd
ERoypLNjnIx+NWEkjgi1G3jlD+XdvPGVPfhsD15NZkDhXQ45UhgR6itm01C7gvBOmPvtI2APmJz1
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
Af/Z

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/photos/home_small/Joyful_moment___20100902004706.jpg

/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
SlBFRyB2NjIpLCBxdWFsaXR5ID0gNzUK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0a
Hx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAkACR
AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF
BQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkq
NDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqi
o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/E
AB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMR
BAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVG
R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz
tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A
9N+Hc2dEeBlA2SnbsPykEA8fiTWN46tFi16GUtsE8Yy/UAqcZxn6VsaZa22kJepNM6Y8l5JgxCnq
Vxz7YP61e1KysNbuI7O4kbzFi85fLIyoyMHp9PyrKOsUZzgnHlE0yYTrBIcg5AYY6Eda09TwfK69
6zZbSwMEUTGXZcgyblYqXZcH+nStGew8yK2jaV4/IU4EZwGAGMH2rplO7TREKVouMijgUYrDtNU1
Ce5muVtw2meYEV5CE2chTg9+fX6DNW7WSWS6RnkIyxXDtxtJ4OBxnpVOrFGXsJdTRwKMD0pq211C
6q86SxopEhIw5JPB44A60y5XzYCIp3jdGDfu13FsHJX8RVOolHmJVKTlykhwASeAO9ZEmvRJK0a2
0rsP7uCPT1rRbTrxVlEOoI7yyfujIMhOckDHt9aoPB5ZWDEYbAz5a4Hynt6DNcWJxypJWOzD4B1H
7zKd14llt87bQK4zy7DbkehHWmQ+NpvKJa2XeRxluB71l3+lz+Tel2BjCl8+2Qc49fvGuehuZPtT
wSyLvOWK+np+mOKI13UjeLM6mHlSep1r+MtSXljAqkHonTj61SbxNrEkQf7UNjH72F6U+/8ADGp2
9xAs6iaF8hZQ2052kjjg5yMdaqW2jLf6XFdSyG3JLHbt3KAO/JB96LyW5yz5k9WRv4u1J0dTIxTg
eYFUZ+lZplkupAXwzseS5wcVlJcLuUdD1KbTgc9s1Zify7J5dpAjUtwMc4z/AFrKdeUTNpGlbRqJ
XFxOq7BjCnGeh681qXkMUUjI5XnLZHc9axRIFZomG7eNucZzx71Q1RL6bU5GS6KjCFF2H5htGQTn
jkUo1+Zb2NYuKWhf+0xf3JP++f8A69FYu1v7sv8A30f/AIqitfavuRddj186Nftog09XG2R0d2Zc
FSD82OTxwMcVm6ld6lpk+nTO3l3EMb28kgAVHAK469eP59qlbVb06VGv7xPOsxiVpTmJxuXce5zt
BxUsOmXd9aWvn2omVVXa82SXOMsSCTjP0/nW1JRU0pbf1/W534jndNuGkv673/IZqs1zpkFvM8yT
wW05NuUjJdQQcgjvx+tdAdW3yO4Wdra4gV432j92x42YHJJ6+2K5y4TXLmONBp8FpdJMmZ1UFYyS
SSR6cD1z171FJ/b0tybYTG5njjilR1jQIWZiS3QcjGMeh6jrWHNKJ1OEXFcq9StpGojTryXS7tQ1
pLIEYySf6ltzf1HbpkVfOkWlldWljc3053qCnzncuSQMHvyR16fSmXXg28v5J1muYoBIgO6MnezH
G4kdsfXBq1bx29pZi31mKe/KZME5HzmIFQoJGOeQfxqUnJ6A5KOrLV5oZmFpb2t7LFHBlWG7HmH7
wzxyBz/Ks3XdLm+xQGO5knuY5Ak6KoUMSCd+AOvAqndstgI5bXzEjM8y4BJJQEYBP44/H3rqNFaL
VY7rzxMJoZnRnxsDKHO0qe424/OqjzN8vQm6SUkchYzXd1A9kt5JbiN/3eeBkNyOR7nmpryx1XS4
7cn97G0RIeIkkE5xx6AkEnPpXReINLhmsmEFuqOBuDKoBPPP9azrG6vNPtYk2yXJjXamMhirMny8
+xJ56bazlRjJuMlextHEtK8dCSxeW6maMbA2AqktkHgEH9a0r7TrW4uIUug8oiH+rAzg45IwOp4r
F/tDTY7M3cFtMLlijM4jYvgkD+Z6exxSQvdWurPfx6te3sMyr9nXYiLuJ+YYPXC4PNKjQUOZLuv+
GFWqOpys1vFV/IvlW0Iy6MjMFGSfmHH5VzF2twmq2WnoqrbyxNNNHIPmCHOBwcdcfga3rg2eq60Z
J/tNtcW4TeN2FcAEjoemWOemcVxGtrYXGtTTwa9aR7VSCCSWYllAAJYkAg85rofvPQ82th3PXqXd
c022h0xpIxHGEj2hc8sp4x9fl/SuXMD2drLFeRygOqjYRg4K4Dcj0A/HNdBe6PNc6fbATpeSoT5c
sE4kDhgOTnGORn8xWTdlbh/9L8syqgSUH53UqCMkY4GSvTP86ylSTuzBUay3iMgaC6h+1RuSWwuS
RjIA6H8aivYtQkANvcSFnMSoqKSQBH047nOa2hp0NlD9ohubSSFyD5IDDvgnkY6nnNT3mpXt3o8u
mw2EMI3qRIDtZ1B6gcAdBTo4VtXvoDi1LVWscf8A2Xef3P8AyHLRWr9oP/PkP/Ah/wD4qiur6sv5
n+BPJPsamo+IrDUEto7WfLygo0KKcIMk8gjOSc/zroF8Qy22mCyQXInteUlLGMbAON2RjGP5VyPh
7xd4R1DUDBqamGZ22RSSwBUK8AZIJKnOfb3rsdU8Hwi2lu7eadrlOUBkJV1x0I78Viq16nLNWueh
Omox5oO9v68ynceK9Y1WS1e1srW1nO9JLhwxR14KgAgHnB4P9ay5/Fesx2a6ZO8WnHDZkRSCc/wr
6Ac8itPwtqS3GrQ6VdxxNZzbn8tlyN4Gd2TznjHWvIPiT4ul8TeLLpbWSVrVW8mKMHA2qfTvk88+
ta1MNOE7VLBDEU5x/dp7nqkGvafdaYIl1JvtcMT/AGaaWcszE4zyeenTn+VIfEF1qTx2l7epc+Wj
7isXlhsnK54IPToP7teD22l6jeEGSRoo1w3mStgc9Ofxrq9K1q68MXVok6Fo92HlC9Rn9ahwaXus
pyjL4kdpN4kSOSV3EgS42hLaQFWgACnft75PI5HbIrovDPjaG4uPs8F4sEcB8ySAw4kkVVA4znOQ
o6YPPtXkd3qM0k+oX6uZJnfeolGS2TjA5GeSp9MHp6v07VrqxkgvJYgtxbykSBFC5ZCD+oP04qki
b9T2fXPEOoPcQTG3WOFYzlVfcxJPJzj0x+JqpptwUd5YLs/OP3bZJDZ9vWtC3jttXsGurdQVSzM0
BwBjIU4/QVn6NZQrPJbMh+zuPMUKeV5HQ+1QsTKi7T2e4quHjVXNDdD54ZJbX7dbJJvZdk0kG1ck
/KN4PJGePbJNWG8KTrpTvLeRpDJCAilyoG4cjAwM9hXP+PNXvPDLSQabcCKH5vPaVQ5YE5447Zrz
9/jHqtxYW+m3UMcltA3EqjbIQAQPboauT57yg9NQptwilLexZ8Xa9qEF/NoUNy0yWqBbiSP5N5xk
kn2/nWYZbK+tY4xG4DLjzQmAD70/SbOz8SeKNT1aSY29rNceam9sYB5IPbjOK9d0fSvD+jQ+e15C
RImAXKsGPr0z39awdZU7RtqdMKDqLmb0PJPDd3f6BqkdyqO6K3zIw4dPTP8A9b3r3q1t9IQ297a2
qxJHCWhccgq2D8w9ffnqa4LxxYm7trW/sg0irKI3VFwWBOB/QV1Y0+8k8PQWsSyKfs6JIrEAHGDx
z6ZFONXninsOVNUpNPYq+GVj8Ta3f3byPsUhGUxgAD7ygc/ia5PVNavJb270U+SlzYzTW8U7HDuT
wOpAxkKRz2rs9EkPhvT3s3UPLIMAAhdvXnjrySa47UtE1PUvGcmpeasdtPIJZAnBU447+vr1Ga6F
DaSOSdSMm4vYx9/i7/oF2X/gXD/8VRXa+Tef9BN/+/CUV0Xl3Oa0O39fecjfeACYY5b+4iMpbPlw
EknGe/HB47V3lprs9h8NLa63w/booQipM/BYNgA984qrPo8UskcV/cy3CRuQCXweg5wuAeh6ipL3
w3D4i8Eahp1vGqzPuFu5GSCpyo/EjB9jXiOrztKfc9qtRjCN4nCap4rvl1Zrq00qCCKQEmR3L7M5
BKkEDJ59cVwfguEX/i2GNiAzNnpnv0r0nwt4bh03RGtdZ85r24kNuEmHyQ5YrwP7xzUHgTwWNM1r
U3ntibm3uGW2Mj87R0J7c8V2VMTeL8tDCnhnzLs9Tv8ATfBemtbbDAh2LgKc4HGP5VxXjPwdNpWm
XF5bss2ZA7IwzjnPFd3a63q0F75J0gqhHzO0yj9Oc/pVLXrnVLyb7FBYxNbs2ySR3yRx2Xj881xK
rJNa6nY6MXfTQ47wBpukajbpNPCp8s7CWc4JyDjn6A10nifwRpN/G81tKbZ8kyLEQd5x71zckWmX
PgiZcGO5tJPJkTGMjJHTpg4zmsjw/a6c+u2DI/mt5YXakmQQAeDj6ZrojCU5Nxepk5whBKSVrHov
w/dLHw6trdiZJUgbA2FmMbMSpwM9RU9jOYGgusEmBtsmOu09f1zXV+FpY10p8RBniIX5Rzt7f1rl
kZYdVuoXA2eYykdtuarGwa36HLhZKSutmcj8cbqOTThJafNHKY97p07n+grxTTLSOScPcoTDjjnG
a94+IdlBa+FrjzW3xOVCjHv3NeZ6Z4cg1COOGZ1iWTmMFcnbjORyP8mrw0rwFWiovQ77wTb6FNbR
j7Jb+UYs8gcOvBPPfGOtddo/2SfSgj2hWIyO7BgqgZPbnn8K8M1b+1dCbZYX832VTgbVC8dOg7cd
63vCPxCh0/yrbXoRcWcpO2You6I8fewPmHP1HvWdahJtyR04fERSUWey30sSPDFBH+7DbjhfQZzT
BewudpukJA+6HGfyrndZ1m6sLBtWAaNUYCFExl8n+ornC17qFyLz7cwaXaWtdgeJ1OMOqk5Xrk8g
CqwNPnT7mWYz5GuxreKbyVrJ7zTZWMoH7uRRn26evtXnF/Y+I7jRbzWL97po4kXHmNgnnGSuTtHI
44rq2tbmyWWFZLaQPIJGWQFAylj0OTx17VNqPir7Hp+o6Iunub3ywAykvFIpwSQcemQOOtdNf2kH
FJaHPh1RnGTb16Hi/wDaN7/z9S/99miu1/tPQv8AoCSf+Af/ANeip532NPZruet3M9tDbSx3UUpl
c5w8Tv8AkRxjmuo8ILI2igiUI7k7lUZMROMA+ucHn39qzNJ12w8WWcUttEEvtge6sgclPUr6g1Ys
kmh0+8VfliZhnaSDwHOD+XSvPScJ8rR21GqlLnT2OI8eyxWrW+nyal52pufNm8thkyBcZAGMdzV/
wnrx1mSO+MSxTbBFIAu3cwHJrgLy7s/FniOaKCxlS5clGmRQEiVenA6dP1r1HwzoHkab5UzAvtDC
ROzeorbERUYLzIwzlKTk9jp5boPF8wA4GF4Bb8aqm8SSSX7MpPmFV+ZSOo/+sTVddW+wE2+p20wC
/dmhjLo35ZIPsfzNR38VjMbS6uZGjtzmRFbI3ZG0MQRnucVyqLlqdbajocF8RdOs9JhuWRPLjvcG
QcgCRSDnj1AI/WvP/Dt9aWXi61njcMi5UlckcjH8zXaX/gjVLG11K7n1IXVm8CPFGGbklwd2DwOM
9K4OTS5LcNcBMQxkGVgPU4Fehh2ls7nnYlN6tWufSPhnU49PmkW5dI45By7NhVI9TWPqN1b3Wt3F
zaSpNE8pKSRtkN64P1zXFeC5Y7q4u7jVZmutkKNbm4O9UPsD0Pv7V0UNwJFSZCHQnDY7HPr9MVOM
rqpOyRGHw7pU7yZU+IcsMvhK6DybT5RK7u7DkAflXhunaxqFtfK8M8vmyMFJQZc9sD/CvcPGyfa9
BMSkfMpzjBO3Bz+leRaHpy2sa6ncXBhKllUZ298df6U6C5KdwqNznZ9D0aPw7rHi/QIwbSaG42gr
Lcfuwfcjr78ZrC1T4YHStHzcXoWSMhpXbhQMjJGM8AA8n8hVvTNc/wBJt/Iv3eTeD/rcgfXngVu+
PfEmm39o2lQTmW4uIyjFVICD1P8ASs51KvMkjojRpKDbLOoy2l58M9Lu1mQQwbNxY4wApAz+GK4K
48bWFnbRR2LyGdQEd4k4ZR0yWxyOQOCOT1rkb7XtUl09dIlvZGs4gqeUG+U7OBn1xWVgg100E6Tb
XU5cRKNaKi+h6NaePLKeOSOVpIp5CD5kifLkYC9D/COe3NaF35lva2Gr20gCSvJaJh8lmVcqw+pz
+Yryv7qkbOfWui0DWJpbFtEmePyFZri3d8AxOACcH0O0ce3vXTKq6keWRyQoqnLnidpt0j/n6vf+
+ForK36V/eg/IUVz8jO3n8jpvA2piy8TWtxEFVPMCyojrt2n5c59gentXtWp39hZ2Ek1zCpln6RI
2S2M4Oe3B5P86+OdN1Ca0vUkjfbg+uK9g8HatcassxnkkkYAEs8hOPQYP4801SU5aiox5nynqvhT
w/oMel3CQRQPJdMXnwuCCTnA78etRTaPqWhys1qpurQ84AywH09fcVjWd1JaXCywOUZTx716Lp2o
R31lFOOCw5X0PerqRsrPVGz5qLutjiH1SNZHkMUhG3AHo3v6V1NvYRan4etoblNrGJdrd0OOorRl
EchBaBCM4y4BIqRtyW77BuZQSBWEKcafwqxFXEOpbyODWxaHS9V0iZR5qQMqL2K4JBH4n+VePLBd
6g7WEEO+3k3BxjGc8bs+3Fe46vb/AG7TDKZG+3iIgsh5K9/0JP6V5jqBfQpbO9QHyUPkzKP4lPQn
3FdVCiudscm61O63RS0HQLzT4JLN0ScZ2tEwySAcgjP3h+orqrO8t7QG3e0aPa5BOPLI4B6EfN1P
WuksbHTtU0GS5mcoYB5iTRjJwf59K56axk89Sbh7i5kY5jUfdXov54yT/wDWNceKoxUnIqlWU6ai
txniP7NPaQrGr7Cd8owASgycficD061wN9b2OxoXjVolJIBXA9/1yPwr07UtOe309rq5kWNIoixj
ZssccnFeH6le3k+qtMQTDKCGHYegrSjySw9k9bnPKNSFfma0sdJ4WjsrbWYXtlEUfmLnc2CRnr/O
ucvtZiv9VmmZFSfczsynIJ7Y9q7DwnceHraRZZ7qEXHl8NKwDKe4OVP4HNeT39wtxqVzJbgpHI52
jPRc8D8qyppObZ0VnamkaOj29kyM9wjyyNwu1S2CeM49s5ru/D3g+LXMXaaXcwxvF8qMnB2nofqK
wfC2q3mj+TJaxweSsm5nZWLDGM9M/wAq9a0XxjqWtWAezjtYLxwSYpi3IBx8p/XpRVqTjstCaNGM
/XsY978ObdLKfz9OWNUjUKQ4OTznGPc5rypfD62vjCLT2O+JWBkIP3R7nt2r6L+0arDo9zd6j5Ba
OMsAmTuPbsMdvWvG4tNe71iRt5Zrufc2B1z1/nSoTnJu5dWEIcrsd7/wpjQv+mf/AIEmitv+xB/0
HdT/AO/bf/FUV3ezZy+1j/MvuPloEZ611nhfWJdKeKaJxuLGMo3TnpXKxjPPPvirNrKBcIM4QsN/
Pas07O5KbTuj2TR/GC3M5h1ALEW+644GfevTfCeswB3s3njwQZEO4cnvXzg8zfaZDtwN5JGegPPW
tvQNSSy1i2naUbA2HOegPBru9nCrHTQ6alTnpvTU+hpPEkU8GqxQSQpdW3mLHGZAWfam7cF9Oa0t
F1D+1dKhlO+OZolLArg5Pcex5xXmFnaPf+Jg+nw2xtrqSKbzurxbQMhT0IOO5716HpWhDSrpporm
coVCLC77hGoJIUewzXLVjCKstzgpSlLVlqK2MBdWVS78k+orxbxxfrBC2neUBJK+Tg8IAen6V6F4
n8URjUDY205G1cNt6Nnrj6d68j1eL+0NWnZmcqJMlieeQDgfnVw/dpTkbYeuuaUYm94d1q7Tw7Bb
R3SxIsv70vzuVSSF/UD6V1Xhu7QXJEbK/m5y/UmvPP7Hv5EEcFnKFVcqAh4FaeiWGsW4hubZxIUY
5id9oU9evTtXl42r7R3T+R6OFp8l7x36nbeIruxisLxJhDJcCByI5n6jFeMC33afLIqSMQ6n5Qcb
ec57enX/ABrX1LU764vJ7q6hYSscMmQFC56EHlh2rqL3ULAeFJ7pWeOUw4SNVGFLDA/nXRgaNoNS
Zz4yvqopHlklvBqEn2eM85yQT8qZOMn296yLuwitZpIoW8xVOA4/i9x7V6X4R023WxnuxEgad8DA
/hA/xzVTW/CKSbprDCuTlojwD9PSuxYaXJdHBPERVRxkcjZNc2eim44ELyGP6cDn+f5Vv6ZrMc3k
QRI0e0BQxbH4jjmjWIYtO8Pm2ZQ2xAMerdc/zrktNvba2vIrh5T8jBwDGCMjtUYmgqbS8isLiXNO
XROx9MX0fmeFZ4HuMp5BLO3PQZ5/KvEBr1xYLJPYzCK9hUvFLtB2kdufUcV1Xi/x/ZyeDo4tOP8A
pF8gBjAIKr/EcenavJ45nkGxjlpOD9O9cOFjJXbO/FTUmkj0r/hb3ib1tP8Avx/9eiuG+X2orvsj
lsjEiilikKsgVhxgjnmpIdOlnlMakbicFTx+FbNnbm3kM8zOCn3dy5JFQRWmp3t0Wt7WV2kkyu1T
1rFu24km3ZEul211qniAWqRebIg4j+g9+9drd6TPZBFvbXyy4yNwHNL4b0C603Whqk0F204BEjkf
Ivb0z2rtPFdxDc+GxKzKHjYEev0rjniP3qitj0YYVqk5SWpa+G1sjgBTlYCzfO3CkngAV6Brd0un
6Pc3bsG2RkqGOBnHGB35rwHTtYFhOQZCFkGcA9xWleeLLu9tY7V2ea3jIIWVsjI5BxXouzSm38jy
VF8zilv1HzyxWcJYvvuJss/qfp6CrHhWCO/1vfdRLJHGhYgj5R6Vy11fDe8rkb2Oa3dFvRDoLNbM
fPuGPmPjGAOMCuXGV3KB2YHDxjKy6G94g8Qi7muNL05mRI0zNKnGf9lT/OuSt/E9+gTTLOeO0jC7
RHs2GQjnLEnk+9PlubWzmcXE8KGaHlWcAg/T8q4prku0m2QlDzhZVI/8e5rCjTVrWOivUcXdPU0b
i6GqXBYSFpQ+1iUxg9+c4rf8Qzu3h8JbIXBdOFGeBz/SsTT382e1BYCaOM+Zt24YHpyp611EDAIM
cCvWwtO8WkeTiatpJ9R+hsIdGtEOVYpu59zn+tXnmeW4FtDG0suMnaMgCs64kMcG4dVJBpngvxAt
r4pla4yUC9B14/8A1/pXa37OKSPPS9rJtmL4yjaM20ZBCtuZvc8D/P1rh49OaSAhRh0YjNewfFS5
0vU7e1vdPDCRXxINmM5HX9K8+02GadZlijUnIKknGD3+vb6VxVoyqT21Z30XCnS30RjNa3cih5XZ
mAC/Mew9KelqIJVdhhmXIq1JdPLcrYeQ8VyZREc9Bzg1utoCyxqCzBwAu7PXFTQw86l7dCq2Jp0b
cz3MLcvtRWx/wjc//PYflRXR9Wrfymf17D/zfmei3ukwxKCI4wgPO2McZrX0aMLfrDHEFLAAELx6
Z+uKjd9qNGx3ZXPPep9FklnuWhQkYUfOOq4OetfK06zlFpvU+mqUVGaaWhd8TXB03QNSuVK7kt2w
ccZxx/OvErzxWdZsLWB1aOeJj5gH3W9xXtHjXR9S1Lw1Lp+lxGaWZhvA6hRya8Ov/Ceq6PLm7sp7
ds8GRCAfoe9ehh6KceZrqcOLxDT5E+g+JmLgnnFTS3RiTk4qbQ9NuNVvo7NPkdh94LnP4V1MvgiL
S7dLq+kM0shby0PAULxk+vP8q64rmlydTik+WHO9jjbS1kvJVkuX8uDPAJwX9hU154zj08TWcNhJ
HLFmNFZhtUjj0rsdL8PHULS/uIpcvAok8ogZK98H0HWvM/GNtImrte4+SfGT/tAAf/Xq62HjbXoR
QxMk7xe5jPcXF/NNcXG6eQkZJ5rXsoUxFE9o6mZCrKAAxX1w306is3TNThsBKXh3s+Me1Wr7WLe+
gKldpCgLt4IP1qLIq7udR4e0wLowvkY4SdkAYYLIeh/MVvxH5R7VX8C3aP4fht7pY5UkDAKSQR83
H8qsTjyJnQgrtPQ12YZ20OPFaq4y6k/dMP7wwa4k37WWtlo2wyMCfxxxXXXEoKGvPtaYxau7DuAc
/wCfpW+LdopruYYJXk79T0yaOHUtPEMpbY6qcg8joafFBb2sAiiiCqOgFYNhetdadauH2HbsIz6c
f0q8jtDD5jyHA7E53cV1xldqSW/U4ZxtFxctnsc/qBMHjND/AAGaNiO3Qf8A166sSAMR6VxXiKRo
9Vgm5JZFdseoJ/wro5bnEre/NRhtJ1I+ZeMvKnTku3+RpecvpRXP/wBqN6UVt7an3Mfqdbsf/9k=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com//images/desksb2.jpg

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
qTtWNF/NDQ2Vs6STSJ4J5TNLlnhH/9k=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/images/front_page_images/91758_thump.jpg

/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
SlBFRyB2NjIpLCBxdWFsaXR5ID0gNzUK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0a
Hx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAZQCC
AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF
BQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkq
NDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqi
o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/E
AB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMR
BAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVG
R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz
tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A
8UtJvIOZFdUYbQy8Ypby2SJQ8IV4ic+YoJ/nVt7q2dRbEgRbThh14z/Oq4P2WURyN5sZG4gdBXou
K5eVu679jK+tzORFaQbshRyfpVhSRGSiYweD1IFTywxSbVhJ3kklccf5FbljoEs0igoQgAycdTWU
aMr2RaaZzLBmU/KcA9cd6iaJ1OWUjvyK9Lg8MbAztGDGpwoYZJYdTWXqOnR4bCDIHPFE8O47mijc
42GNp2JZhgDJyccVDIioxAYEevNac8JjyqjA6cd6qTIrKuBggc+9ZSS5fMizTKhwKljIK+4qJwQc
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
iaVvmc8Z9BRRXetymYLT/Mfl7+tFFFAj/9k=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/Openads/adlog.php?bannerid=256&clientid=63&zoneid=0&source=&block=0&capping=0&cb=aa0d4709d631dbf95dda695c6b010fe7

R0lGODlhAQABAIAAAAQCBAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/Openads/adlog.php?bannerid=187&clientid=65&zoneid=0&source=&block=0&capping=0&cb=3ca214703cc8267b7e87630127f6aab5

R0lGODlhAQABAIAAAAQCBAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.deccanherald.com/Openads/adlog.php?bannerid=489&clientid=77&zoneid=0&source=&block=0&capping=0&cb=7c539a881eeea5cded326b12490b9d59

R0lGODlhAQABAIAAAAQCBAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/css/style.css

TITLE .yuimenubar {
	POSITION: static; VISIBILITY: visible
}
.yuimenu {
	POSITION: absolute; VISIBILITY: hidden; TOP: -10000px; LEFT: -10000px
}
.yuimenubar {
	POSITION: absolute; VISIBILITY: hidden; TOP: -10000px; LEFT: -10000px
}
.yuimenu LI {
	LIST-STYLE-TYPE: none
}
.yuimenubar LI {
	LIST-STYLE-TYPE: none
}
.yuimenubar UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.yuimenu UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.yuimenubar LI {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.yuimenu LI {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.yuimenuitemlabel {
	TEXT-ALIGN: left; WHITE-SPACE: nowrap
}
.yuimenubaritemlabel {
	TEXT-ALIGN: left; WHITE-SPACE: nowrap
}
.yuimenu UL {
	ZOOM: normal
}
.yuimenu LI {
	BORDER-BOTTOM: #ffffff 0px solid; BORDER-LEFT: #ffffff 0px solid; =
BACKGROUND: url(../images/bullet_white.jpg) no-repeat 5px 8px; =
BORDER-TOP: #ffffff 0px solid; BORDER-RIGHT: #ffffff 0px solid
}
.yuimenubar UL {
	ZOOM: 1
}
.yuimenubar > .bd > UL:after {
	LINE-HEIGHT: 0; DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: =
both
}
.yuimenubaritem {
	FLOAT: left
}
.yuimenubaritemlabel {
	DISPLAY: block
}
.yuimenuitemlabel {
	DISPLAY: block
}
.yuimenu {
	LINE-HEIGHT: 1.45; WIDTH: 150px; FONT-SIZE: 93%
}
.yuimenubar {
	BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; =
LINE-HEIGHT: 1.9; FONT-SIZE: 93%; BORDER-TOP: #808080 1px solid; =
BORDER-RIGHT: #808080 1px solid
}
.yuimenu {
	FONT-SIZE: 100%
}
.yuimenubar {
	FONT-SIZE: 100%
}
.yuimenu .bd {
	BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; =
BACKGROUND-COLOR: #547fb2; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: =
#808080 1px solid; opacity: 0.9
}
.yuimenubarnav .yuimenubaritem {
	BORDER-RIGHT: #000000 0px solid
}
.yuimenuitem {
	BORDER-BOTTOM: #fff 0px solid
}
.yuimenubaritem {
	BORDER-BOTTOM: #fff 0px solid
}
.yuimenuitemlabel {
	BORDER-BOTTOM: #fff 1px solid; PADDING-BOTTOM: 0px; PADDING-LEFT: 15px; =
PADDING-RIGHT: 0px; COLOR: #000; BORDER-TOP: #fff 0px solid; CURSOR: =
pointer; TEXT-DECORATION: none; PADDING-TOP: 0px
}
.yuimenubaritemlabel {
	BORDER-BOTTOM: #de8d00 0px solid; POSITION: relative; BORDER-LEFT: =
#de8d00 0px solid; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 8px; =
PADDING-RIGHT: 8px; COLOR: #000; BORDER-TOP: #de8d00 0px solid; CURSOR: =
default; BORDER-RIGHT: #de8d00 0px solid; TEXT-DECORATION: none; =
PADDING-TOP: 0px
}
.yuimenubarnav .yuimenubaritemlabel {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; DISPLAY: =
inline-block; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND: =
url(../images/seperator.jpg) no-repeat right center; HEIGHT: 18px; =
COLOR: #ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; BORDER-RIGHT: #fff =
0px solid; PADDING-TOP: 5px
}
.yuimenubarnav .yuimenubaritemlabel A:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: 18px; COLOR: =
#ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.yuimenubarnav .yuimenubaritemlabel A:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: 18px; COLOR: =
#ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.yuimenubarnav .yuimenubaritemlabel A:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: 18px; COLOR: =
#ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.yuimenubarnav .yuimenubaritemlabel A:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: 18px; COLOR: red; =
FONT-SIZE: 14px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.yuimenubarnav .yuimenubaritemlabel-hassubmenu {
	BACKGROUND: url(menubaritem_submenuindicator.png) no-repeat right =
center
}
.yuimenubaritem-selected {
=09
}
.yuimenubaritemlabel-selected {
	BORDER-BOTTOM-COLOR: #6c8ebe; BORDER-TOP-COLOR: #6c8ebe; =
BORDER-RIGHT-COLOR: #6c8ebe; BORDER-LEFT-COLOR: #6c8ebe; opacity: 1
}
.yuimenubarnav .yuimenubaritemlabel-selected {
	MARGIN-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; LEFT: 0px
}
.yuimenuitem-selected {
	BACKGROUND-COLOR: #5c7a9e
}
.yuimenuitem-hassubmenu {
	BACKGROUND-IMAGE: url(../images/v_arrow.gif); BACKGROUND-REPEAT: =
no-repeat; BACKGROUND-POSITION: right center
}
A.yuimenuitemlabel:link {
	COLOR: #ffffff
}
A.yuimenuitemlabel:visited {
	COLOR: #ffffff
}
A.yuimenuitemlabel:active {
	COLOR: #ffffff
}
A.yuimenuitemlabel:hover {
	BACKGROUND: url(../images/bullet_white.jpg) #6c8ebe no-repeat 5px 8px; =
COLOR: #000000
}
A.yuimenubaritemlabel:link {
	BACKGROUND: url(../images/seperator.jpg) no-repeat right center; COLOR: =
#ffffff; FONT-SIZE: 14px
}
A.yuimenubaritemlabel:visited {
	BACKGROUND: url(../images/seperator.jpg) no-repeat right center; COLOR: =
#ffffff; FONT-SIZE: 14px
}
A.yuimenubaritemlabel:active {
	BACKGROUND: url(../images/seperator.jpg) no-repeat right center; COLOR: =
#ffffff; FONT-SIZE: 14px
}
A.yuimenubaritemlabel:hover {
	BACKGROUND: url(../images/seperator.jpg) #07192d no-repeat right =
center; COLOR: #ffffff; FONT-SIZE: 14px
}
BODY {
	BACKGROUND-COLOR: #ffffff; MARGIN: 1px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; COLOR: #000000; FONT-SIZE: 11px; FONT-WEIGHT: normal
}
A:link {
	COLOR: #003389; FONT-SIZE: 12px; TEXT-DECORATION: none
}
A:visited {
	COLOR: #003389; FONT-SIZE: 12px; TEXT-DECORATION: none
}
A:active {
	COLOR: #003389; FONT-SIZE: 12px; TEXT-DECORATION: none
}
A:hover {
	COLOR: red; TEXT-DECORATION: underline
}
IMG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px
}
DIV {
	BORDER-BOTTOM: #cccccc 0px solid; BORDER-LEFT: #cccccc 0px solid; =
PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: =
#cccccc 0px solid; BORDER-RIGHT: #cccccc 0px solid; PADDING-TOP: 0px
}
TD {
	FONT-FAMILY: Arial, sans-serif; COLOR: #000000; FONT-SIZE: 13px; =
FONT-WEIGHT: normal
}
FORM {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
LI {
	LINE-HEIGHT: 20px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#000; FONT-SIZE: 12px
}
H1 {
	MARGIN: 0px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #0a58ba; =
FONT-SIZE: 14px; FONT-WEIGHT: bold
}
.gotop {
	TEXT-ALIGN: right; PADDING-BOTTOM: 5px; PADDING-RIGHT: 10px; =
PADDING-TOP: 5px
}
A.gototop {
	COLOR: #003389; FONT-SIZE: 13px; TEXT-DECORATION: none
}
A.gototop:hover {
	COLOR: #003389; FONT-SIZE: 13px; TEXT-DECORATION: underline
}
.TextBox {
	BORDER-BOTTOM: #2d6ab3 1px solid; BORDER-LEFT: #2d6ab3 1px solid; =
BACKGROUND-COLOR: #fff; MARGIN: 0px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; COLOR: #000; FONT-SIZE: 11px; BORDER-TOP: #2d6ab3 1px solid; =
FONT-WEIGHT: normal; BORDER-RIGHT: #2d6ab3 1px solid
}
.Button {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
BACKGROUND-COLOR: #c7dffa; MARGIN: 0px; PADDING-LEFT: 3px; =
PADDING-RIGHT: 3px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#000000; FONT-SIZE: 10px; BORDER-TOP: #000000 1px solid; CURSOR: =
pointer; FONT-WEIGHT: bold; BORDER-RIGHT: #000000 1px solid
}
.Hide {
	DISPLAY: none
}
.Show {
	DISPLAY: block
}
.OrangeTextBox {
	BORDER-BOTTOM: #2d6ab3 1px solid; BORDER-LEFT: #2d6ab3 1px solid; =
BACKGROUND-COLOR: #fff; MARGIN: 0px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; HEIGHT: 20px; COLOR: #000; FONT-SIZE: 12px; VERTICAL-ALIGN: =
middle; BORDER-TOP: #2d6ab3 1px solid; FONT-WEIGHT: bold; BORDER-RIGHT: =
#2d6ab3 1px solid
}
.WeatherTextBox {
	BORDER-BOTTOM: #dddddd 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#dddddd 1px solid; BACKGROUND-COLOR: #fff; MARGIN: 0px; FONT-FAMILY: =
Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: 10px; BORDER-TOP: =
#dddddd 1px solid; FONT-WEIGHT: normal; BORDER-RIGHT: #dddddd 1px solid
}
.WeatherTextBoxRO {
	BORDER-BOTTOM: #ffffff 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#ffffff 1px solid; BACKGROUND-COLOR: #fff; MARGIN: 0px; FONT-FAMILY: =
Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: 10px; BORDER-TOP: =
#ffffff 1px solid; FONT-WEIGHT: normal; BORDER-RIGHT: #ffffff 1px solid
}
.Container {
	BACKGROUND-COLOR: #ffffff; WIDTH: 900px
}
.LeftContainer {
	BACKGROUND-COLOR: #ffffff; WIDTH: 166px
}
.LeftContainer1 {
	BACKGROUND-COLOR: #ead5b6
}
.RightContainer {
	BORDER-LEFT: #5a79a5 1px solid; BACKGROUND-COLOR: #ffffff; WIDTH: 150px
}
.VerticalSeparator {
	PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; WIDTH: 5px; PADDING-RIGHT: 1px; =
PADDING-TOP: 1px
}
.FullContainer {
	BORDER-BOTTOM: #000000 0px solid; BORDER-LEFT: #000000 0px solid; =
PADDING-LEFT: 10px; WIDTH: 985px; CLEAR: both; BORDER-TOP: #000000 0px =
solid; BORDER-RIGHT: #000000 0px solid
}
.FullSpacer {
	BACKGROUND-COLOR: #ffffff; WIDTH: 985px; HEIGHT: 2px; CLEAR: both; =
FONT-SIZE: 1px
}
.Spacer {
	HEIGHT: 2px; CLEAR: both; FONT-SIZE: 1px
}
.DivLeft {
	FLOAT: left
}
.DivRight {
	FLOAT: right
}
.Footer {
	LINE-HEIGHT: 24px; BACKGROUND-COLOR: #ffffff; HEIGHT: 24px
}
.Copyright {
	TEXT-ALIGN: center; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; COLOR: #969696; CLEAR: both; PADDING-TOP: 5px
}
.ToolTipBox {
	BORDER-BOTTOM: #d0babc 2px solid; POSITION: absolute; BORDER-LEFT: =
#d0babc 2px solid; BACKGROUND-COLOR: #fefefe; WIDTH: 200px; DISPLAY: =
none; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; =
FONT-SIZE: 11px; BORDER-TOP: #d0babc 2px solid; BORDER-RIGHT: #d0babc =
2px solid
}
A.BoldUnderlined:link {
	FONT-FAMILY: Arial; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: underline
}
A.BoldUnderlined:visited {
	FONT-FAMILY: Arial; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: underline
}
A.BoldUnderlined:active {
	FONT-FAMILY: Arial; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: underline
}
A.BoldUnderlined:hover {
	FONT-FAMILY: Arial; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: underline
}
.LoginBox {
	BORDER-BOTTOM: #2d6ab3 1px solid; BORDER-LEFT: #2d6ab3 1px solid; =
PADDING-BOTTOM: 15px; PADDING-LEFT: 15px; WIDTH: 340px; PADDING-RIGHT: =
15px; BORDER-TOP: #2d6ab3 1px solid; BORDER-RIGHT: #2d6ab3 1px solid; =
PADDING-TOP: 15px
}
.MenuTable {
	PADDING-BOTTOM: 0px; MARGIN-TOP: 10px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT-FAMILY: verdana; FONT-SIZE: 10pt; FONT-WEIGHT: =
normal; PADDING-TOP: 0px
}
A.MenuHeading:link {
	COLOR: #000000; TEXT-DECORATION: none
}
A.MenuHeading:visited {
	COLOR: #000000; TEXT-DECORATION: none
}
A.MenuHeading:active {
	COLOR: #000000; TEXT-DECORATION: none
}
A.MenuHeading:hover {
	COLOR: #000000; TEXT-DECORATION: none
}
A.Logout:link {
	COLOR: #ffffff; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
A.Logout:visited {
	COLOR: #ffffff; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
A.Logout:active {
	COLOR: #ffffff; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
A.Logout:hover {
	COLOR: #000000; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
TD.MenuBar {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #6793c1; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; HEIGHT: 26px; COLOR: #ffffff; =
FONT-WEIGHT: bold; PADDING-TOP: 0px
}
TD.adminMenuBar {
	PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #ffcc66; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; HEIGHT: 25px; COLOR: #ffffff; FONT-WEIGHT: bold; =
PADDING-TOP: 5px
}
.MenuTable {
	MARGIN-TOP: 10px
}
.MenuHeading {
	MARGIN-LEFT: 10px; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
.AdminMenuHeading {
	COLOR: #ff9900; MARGIN-LEFT: 10px; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.MenuTD {
	FONT-SIZE: 10pt; FONT-WEIGHT: normal
}
.BrownLine {
	BACKGROUND-COLOR: #df8b04
}
.BlueLine {
	BACKGROUND-COLOR: #6793c1
}
.PageTitle {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: =
15px; FONT-WEIGHT: bold; PADDING-TOP: 5px
}
.headingTitle {
	FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.FormLabel {
	FONT-SIZE: 12px
}
.RedArrow {
	MARGIN-LEFT: 5px
}
.FormAlign {
	PADDING-TOP: 20px
}
.MessageBlock {
	BACKGROUND-COLOR: #ffff80; WIDTH: 50%; HEIGHT: 17px; COLOR: #000000; =
VERTICAL-ALIGN: bottom; FONT-WEIGHT: bold
}
.OrangeButton {
	BORDER-BOTTOM: green 1px solid; BORDER-LEFT: green 1px solid; =
BACKGROUND-COLOR: #e99719; MARGIN: 0px; PADDING-LEFT: 3px; =
PADDING-RIGHT: 3px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#ffffff; FONT-SIZE: 10px; BORDER-TOP: green 1px solid; CURSOR: pointer; =
FONT-WEIGHT: bold; BORDER-RIGHT: green 1px solid
}
TABLE {
	BORDER-COLLAPSE: collapse
}
.ShowRowFireFox {
	DISPLAY: table-row
}
DIV.ErrorBlock {
	FONT-FAMILY: verdana; COLOR: red; FONT-SIZE: 10pt; FONT-WEIGHT: normal
}
#ErrorMessage {
	TEXT-ALIGN: center; PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; =
PADDING-RIGHT: 2px; HEIGHT: 20px; PADDING-TOP: 2px
}
.ErrorMessage {
	BACKGROUND-COLOR: #ffffff; COLOR: #ff3300; FONT-SIZE: 11px; =
FONT-WEIGHT: normal
}
.Message {
	PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; COLOR: #ff3300; FONT-SIZE: 11px; FONT-WEIGHT: =
normal; PADDING-TOP: 3px
}
.homeheadlineslargefont {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #b02926; FONT-SIZE: =
14px
}
.PageTitleBar123 {
	BACKGROUND-IMAGE: url(../images/greenish1.JPG); BORDER-BOTTOM: #cccccc =
0px solid; PADDING-BOTTOM: 2px; BORDER-TOP-COLOR: #cccccc; PADDING-LEFT: =
5px; PADDING-RIGHT: 2px; BORDER-COLLAPSE: collapse; FONT-FAMILY: arial; =
COLOR: #000000; BORDER-RIGHT-COLOR: #cccccc; FONT-SIZE: 16px; =
BORDER-LEFT-COLOR: #cccccc; FONT-WEIGHT: bold; PADDING-TOP: 2px
}
.PageTitleBar {
	BORDER-BOTTOM: #cccccc 0px solid; PADDING-BOTTOM: 2px; =
BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: #cccccc; PADDING-LEFT: 5px; =
PADDING-RIGHT: 2px; BORDER-COLLAPSE: collapse; FONT-FAMILY: arial; =
COLOR: #000000; BORDER-RIGHT-COLOR: #cccccc; FONT-SIZE: 16px; =
BORDER-LEFT-COLOR: #cccccc; FONT-WEIGHT: bold; PADDING-TOP: 2px
}
.PageContent {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; =
PADDING-TOP: 5px
}
.PageDescription {
	BORDER-BOTTOM: #2d6ab3 1px solid; BORDER-LEFT: #2d6ab3 1px solid; =
PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT-FAMILY: =
Arial,sans-serif; COLOR: #000000; FONT-SIZE: 12px; BORDER-TOP: #2d6ab3 =
1px solid; BORDER-RIGHT: #2d6ab3 1px solid; PADDING-TOP: 5px
}
.ListHeader {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #9ab6e6; PADDING-LEFT: 2px; =
PADDING-RIGHT: 2px; COLOR: #ffffff; BORDER-TOP: #2f6bb3 1px solid; =
FONT-WEIGHT: bold; PADDING-TOP: 2px
}
.MenuHeader {
	BORDER-BOTTOM: #ffffff 1px solid; PADDING-BOTTOM: 5px; =
BACKGROUND-COLOR: #6793c1; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: =
#ffffff; BORDER-TOP: #ffffff 1px solid; FONT-WEIGHT: bold; PADDING-TOP: =
5px
}
.ListHeaderSeparator {
	PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #fff5e1; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; COLOR: #886746; BORDER-TOP: #ead5b6 1px solid; =
PADDING-TOP: 5px
}
.MenuHeaderSeparator {
	BORDER-BOTTOM: #ffffff 1px solid; PADDING-BOTTOM: 5px; =
BACKGROUND-COLOR: #6793c1; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: =
#ffffff; BORDER-TOP: #ffffff 1px solid; PADDING-TOP: 5px
}
.ListAltRow {
	BACKGROUND-COLOR: #f5f5f5
}
.ResultCounts {
	BORDER-BOTTOM: #ead5b6 1px solid; BORDER-LEFT: #ead5b6 1px solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #fff5e1; PADDING-LEFT: 3px; =
PADDING-RIGHT: 3px; COLOR: #886746; BORDER-TOP: #ead5b6 1px solid; =
BORDER-RIGHT: #ead5b6 1px solid; PADDING-TOP: 3px
}
.Mandatory {
	COLOR: #ff0033; FONT-SIZE: 11px
}
.SubHeader {
	PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; =
FONT-WEIGHT: bold; PADDING-TOP: 3px
}
.BreadCrumb {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 5px
}
.BreadCrumb A:link {
	COLOR: #0066cc; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
.BreadCrumb A:visited {
	COLOR: #0066cc; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
.BreadCrumb A:active {
	COLOR: #0066cc; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
.BreadCrumb A:hover {
	COLOR: red; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
.OrangeBar {
	BACKGROUND-COLOR: #de8d00; FONT-FAMILY: Arial; HEIGHT: 30px; COLOR: =
#ffffff; FONT-WEIGHT: bold
}
.OrangeBar:hover {
	COLOR: blue; TEXT-DECORATION: none
}
.LeftMenu {
	BORDER-BOTTOM: #2f6bb3 1px solid; TEXT-ALIGN: left; BORDER-LEFT: 0px; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #b9dce7; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; BORDER-COLLAPSE: collapse; FONT-FAMILY: Arial; =
COLOR: #182b03; FONT-SIZE: 12px; BORDER-TOP: #2f6bb3 1px solid; =
BORDER-RIGHT: 0px; PADDING-TOP: 5px
}
.IndexHeader {
	BORDER-BOTTOM: #cccccc 1px solid; PADDING-BOTTOM: 5px
}
.SmallImageHolder {
	BORDER-BOTTOM: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; =
WIDTH: 150px; HEIGHT: 120px; BORDER-TOP: #c0c0c0 1px solid; =
BORDER-RIGHT: #c0c0c0 1px solid
}
.BigImageHolder {
	BORDER-BOTTOM: #ead5b6 1px solid; BORDER-LEFT: #ead5b6 1px solid; =
WIDTH: 300px; HEIGHT: 300px; BORDER-TOP: #ead5b6 1px solid; =
BORDER-RIGHT: #ead5b6 1px solid
}
.TodayHistoryImageHolder {
	BORDER-BOTTOM: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; =
WIDTH: 400px; HEIGHT: 250px; BORDER-TOP: #c0c0c0 1px solid; =
BORDER-RIGHT: #c0c0c0 1px solid
}
.higLeftMenu {
	BORDER-BOTTOM: #c0c0c0 0px solid; BORDER-LEFT: 0px; PADDING-BOTTOM: =
3px; BACKGROUND-COLOR: #fff5e1; BORDER-COLLAPSE: collapse; FONT-FAMILY: =
Arial; HEIGHT: 20px; COLOR: #ff9900; FONT-SIZE: 12px; BORDER-TOP: =
#c0c0c0 0px solid; BORDER-RIGHT: 0px; PADDING-TOP: 3px
}
.normalLeftMenu {
	BORDER-BOTTOM: #c0c0c0 1px solid; BORDER-LEFT: 0px; PADDING-BOTTOM: =
2px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; BORDER-COLLAPSE: collapse; =
FONT-FAMILY: Arial; COLOR: #182b03; FONT-SIZE: 12px; BORDER-TOP: #c0c0c0 =
1px solid; BORDER-RIGHT: 0px; PADDING-TOP: 2px
}
.GreenBar {
	BACKGROUND-COLOR: #348035; HEIGHT: 26px; COLOR: #ffffff; FONT-WEIGHT: =
bold
}
.FooterBar {
	TEXT-ALIGN: center; BACKGROUND-COLOR: #e99719; WIDTH: 950px; =
BORDER-COLLAPSE: collapse; FONT-FAMILY: Arial; HEIGHT: 76px; COLOR: =
#ffffff; FONT-SIZE: 12px
}
A.HeaderBar:link {
	COLOR: #ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
A.HeaderBar:visited {
	COLOR: #ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
A.HeaderBar:active {
	COLOR: #ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
A.HeaderBar:hover {
	COLOR: #ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; TEXT-DECORATION: =
underline
}
.HeaderBarText {
	COLOR: #ffffff; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.HeaderLink:hover {
	COLOR: white; TEXT-DECORATION: none
}
.HeaderLink:active {
	COLOR: white; TEXT-DECORATION: none
}
.HeaderLink:link {
	COLOR: white; TEXT-DECORATION: none
}
.HeaderLink:visited {
	COLOR: white; TEXT-DECORATION: none
}
.GreenBlock {
	BORDER-BOTTOM: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; =
PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #effbef; PADDING-LEFT: 10px; =
WIDTH: 70%; PADDING-RIGHT: 10px; BORDER-COLLAPSE: collapse; FONT-FAMILY: =
Arial; COLOR: #182b03; FONT-SIZE: 12px; BORDER-TOP: #c0c0c0 1px solid; =
BORDER-RIGHT: #c0c0c0 1px solid; PADDING-TOP: 10px
}
.TableBox {
	BORDER-BOTTOM: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; =
BORDER-TOP: #c0c0c0 1px solid; BORDER-RIGHT: #c0c0c0 1px solid
}
.LeftLink:hover {
	COLOR: black; TEXT-DECORATION: none
}
.LeftLink:active {
	COLOR: black; TEXT-DECORATION: none
}
.LeftLink:link {
	COLOR: black; TEXT-DECORATION: none
}
.LeftLink:visited {
	COLOR: black; TEXT-DECORATION: none
}
.HistoryLink:hover {
	COLOR: #c96600; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.HistoryLink:active {
	COLOR: #c96600; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.HistoryLink:link {
	COLOR: #c96600; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.HistoryLink:visited {
	COLOR: #c96600; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.GreenMenuBar {
	BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; =
BACKGROUND-COLOR: #348035; PADDING-LEFT: 0px; HEIGHT: 25px; COLOR: =
#ffffff; FONT-SIZE: 11px; BORDER-TOP: #ffffff 1px solid; FONT-WEIGHT: =
bold; BORDER-RIGHT: #ffffff 1px solid
}
.AdminGreenMenuBar {
	BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #348035; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; HEIGHT: 25px; COLOR: #ffffff; FONT-SIZE: 11px; =
BORDER-TOP: #ffffff 1px solid; FONT-WEIGHT: bold; BORDER-RIGHT: #ffffff =
1px solid; PADDING-TOP: 5px
}
.SearchBox {
	BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; =
BACKGROUND-COLOR: #fff; MARGIN: 0px; HEIGHT: 18px; COLOR: #000; =
BORDER-TOP: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid
}
.SearchBoxHeader {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
MARGIN: 0px; BACKGROUND: =
url(http://www.ripple.org/images/google-logo-small.gif) no-repeat center =
50%; HEIGHT: 20px; COLOR: #000; BORDER-TOP: #000000 1px solid; =
BORDER-RIGHT: #000000 1px solid
}
.SearchButton {
	BORDER-BOTTOM: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; =
BACKGROUND-COLOR: #ffffff; MARGIN: 0px; WIDTH: 2em; FONT-FAMILY: Arial, =
Helvetica, sans-serif; COLOR: #937c48; FONT-SIZE: 11px; BORDER-TOP: =
#c0c0c0 1px solid; CURSOR: pointer; FONT-WEIGHT: bold; BORDER-RIGHT: =
#c0c0c0 1px solid
}
.AlignSearchLink {
	PADDING-LEFT: 20px
}
.BrownBar {
	PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #f8f1e9; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; FONT-FAMILY: Arial; COLOR: #94742b; FONT-SIZE: =
12px; FONT-WEIGHT: bold; PADDING-TOP: 10px
}
.BrownBar_one {
	PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 4px; =
PADDING-RIGHT: 4px; FONT-FAMILY: Arial; COLOR: #94742b; FONT-SIZE: 12px; =
FONT-WEIGHT: bold; PADDING-TOP: 4px
}
.BrownLink:hover {
	COLOR: #886746; TEXT-DECORATION: none
}
.BrownLink:active {
	COLOR: #886746; TEXT-DECORATION: none
}
.BrownLink:visited {
	COLOR: #886746; TEXT-DECORATION: none
}
.BrownLink:link {
	COLOR: #886746; TEXT-DECORATION: none
}
.BoxLink:hover {
	PADDING-LEFT: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#886746; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.BoxLink:active {
	PADDING-LEFT: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#886746; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.BoxLink:visited {
	PADDING-LEFT: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#886746; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.BoxLink:link {
	PADDING-LEFT: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#886746; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.Entity_Link:active {
	PADDING-LEFT: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#ffffff; FONT-SIZE: 11px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.Entity_Link:visited {
	PADDING-LEFT: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#ffffff; FONT-SIZE: 11px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.Entity_Link:link {
	PADDING-LEFT: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#ffffff; FONT-SIZE: 11px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.Entity_Link:hover {
	PADDING-LEFT: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
red; FONT-SIZE: 11px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.BrownLine {
	BACKGROUND-COLOR: #f8f1e9; COLOR: #886746
}
.SubHeading {
	PADDING-BOTTOM: 3px; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.Heading {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: =
#8e6e45; FONT-SIZE: 12px; FONT-WEIGHT: bold; PADDING-TOP: 0px
}
.SaffronBox {
	BORDER-BOTTOM: #efeedc 1px solid; BORDER-LEFT: #efeedc 1px solid; =
PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; =
BORDER-TOP: #efeedc 1px solid; BORDER-RIGHT: #efeedc 1px solid; =
PADDING-TOP: 10px
}
.SaffronBar {
	BACKGROUND-COLOR: #fff5e1; HEIGHT: 25px
}
.SubHeadingContent {
	FONT-FAMILY: Arial,sans-serif; COLOR: #000000; FONT-SIZE: 13px; =
FONT-WEIGHT: normal
}
.RecreationAreaTitle {
	FONT-FAMILY: Arial,sans-serif; COLOR: #000000; FONT-SIZE: 18px; =
FONT-WEIGHT: normal
}
.subtitle {
	FONT-FAMILY: Arial,sans-serif; COLOR: #000000; FONT-SIZE: 14px; =
FONT-WEIGHT: normal
}
.RecreationAreaLink:hover {
	FONT-FAMILY: Arial; COLOR: blue; FONT-SIZE: 12px; TEXT-DECORATION: none
}
.RecreationAreaLink:active {
	FONT-FAMILY: Arial; COLOR: blue; FONT-SIZE: 12px; TEXT-DECORATION: none
}
.RecreationAreaLink:link {
	FONT-FAMILY: Arial; COLOR: blue; FONT-SIZE: 12px; TEXT-DECORATION: none
}
.RecreationAreaLink:visited {
	FONT-FAMILY: Arial; COLOR: blue; FONT-SIZE: 12px; TEXT-DECORATION: none
}
.BrownBoxPaginationLink:hover {
	BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; FONT-FAMILY: Arial; =
COLOR: #cb6300; FONT-SIZE: 11px; BORDER-TOP: 1px solid; FONT-WEIGHT: =
bold; BORDER-RIGHT: 1px solid; TEXT-DECORATION: none
}
.BrownBoxPaginationLink:active {
	BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; FONT-FAMILY: Arial; =
COLOR: #cb6300; FONT-SIZE: 11px; BORDER-TOP: 1px solid; FONT-WEIGHT: =
bold; BORDER-RIGHT: 1px solid; TEXT-DECORATION: none
}
.BrownBoxPaginationLink:link {
	BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; FONT-FAMILY: Arial; =
COLOR: #cb6300; FONT-SIZE: 11px; BORDER-TOP: 1px solid; FONT-WEIGHT: =
bold; BORDER-RIGHT: 1px solid; TEXT-DECORATION: none
}
.BrownBoxPaginationLink:visited {
	BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; FONT-FAMILY: Arial; =
COLOR: #cb6300; FONT-SIZE: 11px; BORDER-TOP: 1px solid; FONT-WEIGHT: =
bold; BORDER-RIGHT: 1px solid; TEXT-DECORATION: none
}
.BrownPaginationLinkNormal:hover {
	FONT-FAMILY: Arial; COLOR: #cb6300; FONT-SIZE: 11px; TEXT-DECORATION: =
none
}
.BrownPaginationLinkNormal:active {
	FONT-FAMILY: Arial; COLOR: #cb6300; FONT-SIZE: 11px; TEXT-DECORATION: =
none
}
.BrownPaginationLinkNormal:link {
	FONT-FAMILY: Arial; COLOR: #cb6300; FONT-SIZE: 11px; TEXT-DECORATION: =
none
}
.BrownPaginationLinkNormal:visited {
	FONT-FAMILY: Arial; COLOR: #cb6300; FONT-SIZE: 11px; TEXT-DECORATION: =
none
}
.ImageBox {
	BORDER-BOTTOM: #ead5b6 0px solid; BORDER-LEFT: #ead5b6 0px solid; =
PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; BORDER-TOP: =
#ead5b6 0px solid; BORDER-RIGHT: #ead5b6 0px solid; PADDING-TOP: 2px
}
.ImageBoxSmall {
	BORDER-BOTTOM: #ead5b6 0px solid; BORDER-LEFT: #ead5b6 0px solid; =
WIDTH: 202px; HEIGHT: 152px; BORDER-TOP: #ead5b6 0px solid; =
BORDER-RIGHT: #ead5b6 0px solid
}
.BlankImageBoxSmall {
	BORDER-BOTTOM: #ead5b6 1px solid; BORDER-LEFT: #ead5b6 1px solid; =
WIDTH: 202px; HEIGHT: 152px; BORDER-TOP: #ead5b6 1px solid; =
BORDER-RIGHT: #ead5b6 1px solid
}
.but {
	BACKGROUND-IMAGE: url(../images/btn_plain_yellow.jpg); BORDER-BOTTOM: =
0px; TEXT-ALIGN: center; BORDER-LEFT: 0px; WIDTH: 93px; =
BACKGROUND-REPEAT: no-repeat; FONT-FAMILY: "Trebuchet MS", Arial; =
BACKGROUND-POSITION: left top; HEIGHT: 18px; FONT-SIZE: 11px; =
BORDER-TOP: 0px; CURSOR: pointer; FONT-WEIGHT: bold; BORDER-RIGHT: 0px
}
.WhiteButton {
	BORDER-BOTTOM: #8479d9 1px solid; BORDER-LEFT: #8479d9 1px solid; =
BACKGROUND-COLOR: #ffffff; MARGIN: 0px; PADDING-LEFT: 3px; =
PADDING-RIGHT: 3px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#000000; FONT-SIZE: 11px; BORDER-TOP: #8479d9 1px solid; CURSOR: =
pointer; FONT-WEIGHT: bold; BORDER-RIGHT: #8479d9 1px solid
}
.LeftMenu_Head {
	BORDER-BOTTOM: #cccccc 0px solid; PADDING-BOTTOM: 4px; =
BACKGROUND-COLOR: #df8b04; BORDER-TOP-COLOR: #cccccc; PADDING-LEFT: 4px; =
WIDTH: 70%; PADDING-RIGHT: 4px; BORDER-COLLAPSE: collapse; FONT-FAMILY: =
verdana; COLOR: #ffffff; BORDER-RIGHT-COLOR: #cccccc; FONT-SIZE: 14px; =
BORDER-LEFT-COLOR: #cccccc; FONT-WEIGHT: bold; PADDING-TOP: 4px
}
.RecreationAreaSearchHeading {
	BORDER-BOTTOM: #ead5b6 1px solid; BORDER-LEFT: #ead5b6 1px solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 3px; =
PADDING-RIGHT: 3px; FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: 12px; =
BORDER-TOP: #ead5b6 1px solid; FONT-WEIGHT: normal; BORDER-RIGHT: =
#ead5b6 1px solid; PADDING-TOP: 3px
}
.SearchLabel {
	FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: 12px; FONT-WEIGHT: =
normal
}
.BlockHeading {
	FONT-FAMILY: Arial; COLOR: #009299; FONT-SIZE: 13px; FONT-WEIGHT: bold
}
.OrangeLink:hover {
	FONT-FAMILY: Arial; COLOR: #cb6300; FONT-SIZE: 11px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.OrangeLink:active {
	FONT-FAMILY: Arial; COLOR: #cb6300; FONT-SIZE: 11px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.OrangeLink:link {
	FONT-FAMILY: Arial; COLOR: #cb6300; FONT-SIZE: 11px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.OrangeLink:visited {
	FONT-FAMILY: Arial; COLOR: #cb6300; FONT-SIZE: 11px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.BoldOrange {
	FONT-FAMILY: Arial; COLOR: #ff9900; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.OrganizationText {
	FONT-FAMILY: verdana; FONT-SIZE: 12px
}
.BlackTextBox {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fff; MARGIN: 0px; PADDING-LEFT: =
10px; PADDING-RIGHT: 10px; FONT-FAMILY: Arial, Helvetica, sans-serif; =
HEIGHT: 20px; COLOR: #000; BORDER-TOP: #000000 1px solid; FONT-WEIGHT: =
bold; BORDER-RIGHT: #000000 1px solid; PADDING-TOP: 10px
}
.TextAreaBox {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
BACKGROUND-COLOR: #fff; MARGIN: 0px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px =
solid
}
.TopBox {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eecc88; MARGIN: 0px; =
PADDING-LEFT: 5px; PADDING-RIGHT: 10px; FONT-FAMILY: verdana; FONT-SIZE: =
12px; BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid; =
PADDING-TOP: 10px
}
.TopLink:hover {
	COLOR: #000000; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.TopLink:active {
	COLOR: #000000; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.TopLink:visited {
	COLOR: #000000; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.TopLink:link {
	COLOR: #000000; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.TableBorder {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid
}
.Para {
	FONT-FAMILY: Arial; MARGIN-LEFT: 20px; FONT-SIZE: 12px; FONT-WEIGHT: =
bold
}
.ActivitySearchRadio {
	FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: 14px; FONT-WEIGHT: =
normal
}
.FeatureStoryHeading {
	FONT-FAMILY: Arial; COLOR: #4b7414; FONT-SIZE: 14px; FONT-WEIGHT: bold
}
.HomePagePara {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.HomePagePara A:active {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.HomePagePara A:hover {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.HomePagePara A:visited {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.HomePagePara A:link {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.BlogPara FONT {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.BlogHeading {
	FONT-FAMILY: Arial; COLOR: #b14008; FONT-SIZE: 14px; FONT-WEIGHT: bold
}
.TravelTipHeading {
	FONT-FAMILY: Arial; COLOR: #4b7414; FONT-SIZE: 14px; FONT-WEIGHT: bold
}
.IndexBox {
	BORDER-BOTTOM: #c8d4c0 1px solid; BORDER-LEFT: #c8d4c0 1px solid; =
BORDER-TOP: #c8d4c0 1px solid; BORDER-RIGHT: #c8d4c0 1px solid
}
.BlueHeading {
	FONT-FAMILY: Arial; COLOR: #029197; FONT-SIZE: 15px; FONT-WEIGHT: bold
}
.FeatureStateLink:active {
	FONT-FAMILY: Arial; COLOR: #1466e4; FONT-SIZE: 13px; TEXT-DECORATION: =
none
}
.FeatureStateLink:hover {
	FONT-FAMILY: Arial; COLOR: #1466e4; FONT-SIZE: 13px; TEXT-DECORATION: =
none
}
.FeatureStateLink:visited {
	FONT-FAMILY: Arial; COLOR: #1466e4; FONT-SIZE: 13px; TEXT-DECORATION: =
none
}
.FeatureStateLink:link {
	FONT-FAMILY: Arial; COLOR: #1466e4; FONT-SIZE: 13px; TEXT-DECORATION: =
none
}
.ActivitySearchRadio {
	FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: 14px; FONT-WEIGHT: =
normal
}
TABLE.MenuDesc {
	BORDER-BOTTOM: #a6a6a6 1px solid; BORDER-LEFT: #a6a6a6 1px solid; =
BACKGROUND-COLOR: #ffffff; BORDER-TOP: #a6a6a6 1px solid; BORDER-RIGHT: =
#a6a6a6 1px solid
}
.text {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: =
11px; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
.ForumBar {
	PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #df8b04; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; HEIGHT: 25px; COLOR: #ffffff; FONT-WEIGHT: bold; =
PADDING-TOP: 5px
}
.TrHeader {
	TEXT-ALIGN: center; BACKGROUND-COLOR: #df8b04; HEIGHT: 25px; COLOR: =
#ffffff; FONT-WEIGHT: bold
}
.ErrorMsg {
	COLOR: #ff3300; FONT-SIZE: 11px; FONT-WEIGHT: normal
}
.BreadCrumbClient {
	PADDING-BOTTOM: 5px
}
.EntityLinks {
	TEXT-ALIGN: center; PADDING-LEFT: 5px
}
.GreenTableBox {
	BORDER-BOTTOM: #cad3c0 1px solid; BORDER-LEFT: #cad3c0 1px solid; =
BORDER-TOP: #cad3c0 1px solid; BORDER-RIGHT: #cad3c0 1px solid
}
.BrownButton:hover {
	COLOR: #000000; TEXT-DECORATION: none
}
.BrownButton:active {
	COLOR: #000000; TEXT-DECORATION: none
}
.BrownButton:visited {
	COLOR: #000000; TEXT-DECORATION: none
}
.BrownButton:link {
	COLOR: #000000; TEXT-DECORATION: none
}
.BrownButton {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #eacd91; MARGIN: 0px; =
PADDING-LEFT: 3px; PADDING-RIGHT: 3px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; HEIGHT: 10px; COLOR: #000; BORDER-TOP: #000000 1px solid; =
FONT-WEIGHT: bold; BORDER-RIGHT: #000000 1px solid; PADDING-TOP: 3px
}
.IndexPara FONT {
	BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; =
FONT-FAMILY: Arial; FONT-SIZE: 13px; BORDER-TOP: black 1px solid; =
BORDER-RIGHT: black 1px solid
}
.TellAFriendBox {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; =
PADDING-TOP: 5px
}
.BlackButton {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
BACKGROUND-COLOR: #eacd91; MARGIN: 0px; PADDING-LEFT: 3px; =
PADDING-RIGHT: 3px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#000000; FONT-SIZE: 10px; BORDER-TOP: #000000 1px solid; CURSOR: =
pointer; FONT-WEIGHT: bold; BORDER-RIGHT: #000000 1px solid
}
.DateColor {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: red; FONT-SIZE: 12px; =
FONT-WEIGHT: bold
}
.TextFont {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
MARGIN: 0px; FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 12px; =
BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid
}
.TripText {
	PADDING-LEFT: 15px; FONT-FAMILY: Arial; FONT-SIZE: 12px
}
.ActivityListHeader {
	PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #fff5e1; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; COLOR: #000000; BORDER-TOP: #ead5b6 1px solid; =
FONT-WEIGHT: bold; PADDING-TOP: 5px
}
.RecreationSize {
	PADDING-RIGHT: 26px
}
.TravelTipsSection {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.TravelTipsSection A:active {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.TravelTipsSection A:hover {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.TravelTipsSection A:visited {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.TravelTipsSection A:link {
	FONT-FAMILY: Arial; FONT-SIZE: 13px
}
.StockBox {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: blue; FONT-SIZE: 11px
}
.StockText {
	FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 11px
}
.StockMarket {
	PADDING-LEFT: 5px
}
.Stock {
	PADDING-LEFT: 10px; PADDING-RIGHT: 10px
}
.DailyHoroscopeTitle {
	COLOR: #800000; FONT-WEIGHT: bold
}
#sidebar {
	FLOAT: right
}
.content {
	BORDER-BOTTOM: black 0px solid; BORDER-LEFT: black 0px solid; =
PADDING-LEFT: 10px; WIDTH: 820px; BORDER-TOP: black 0px solid; =
BORDER-RIGHT: black 0px solid
}
.rightmenu {
	PADDING-RIGHT: 30px; FLOAT: right; PADDING-TOP: 0px
}
.rightmenu H2 {
	FONT-FAMILY: 'Lucida Grande',  Sans-Serif; FONT-SIZE: 1.2em
}
.rightmenu {
	PADDING-LEFT: 10px; FONT: 1em 'Lucida Grande',  Arial, Sans-Serif
}
.rightmenu P {
	WIDTH: 220px
}
.rightmenu UL UL LI {
	COLOR: #777
}
.rightmenu UL OL LI {
	COLOR: #777
}
.rightmenu UL UL LI:before {
=09
}
.rightmenu UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.rightmenu UL OL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.rightmenu UL LI {
	LIST-STYLE-TYPE: none; MARGIN-BOTTOM: 15px; LIST-STYLE-IMAGE: none
}
.rightmenu UL P {
	MARGIN: 5px 0px 8px
}
.rightmenu UL SELECT {
	MARGIN: 5px 0px 8px
}
.rightmenu UL UL {
	MARGIN: 5px 0px 0px 10px
}
.rightmenu UL OL {
	MARGIN: 5px 0px 0px 10px
}
.rightmenu UL UL UL {
	MARGIN: 0px 0px 0px 10px
}
.rightmenu UL OL {
	MARGIN: 0px 0px 0px 10px
}
OL LI {
	LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: decimal
}
.rightmenu UL OL LI {
	LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: decimal
}
.rightmenu UL UL LI {
	PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.rightmenu UL OL LI {
	PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.text {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: =
11px; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
.entry P {
	FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: 12px
}
#lheader {
	FONT-SIZE: 12px
}
.LegendsPadding {
	PADDING-RIGHT: 10px
}
.entry FONT {
	FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: 11px
}
A.leftmenu_link:link {
	COLOR: #105289; FONT-SIZE: 12px; TEXT-DECORATION: none
}
A.leftmenu_link:visited {
	COLOR: #105289; FONT-SIZE: 12px; TEXT-DECORATION: none
}
A.leftmenu_link:active {
	COLOR: #105289; FONT-SIZE: 12px; TEXT-DECORATION: none
}
A.leftmenu_link:hover {
	COLOR: red; FONT-SIZE: 12px; TEXT-DECORATION: underline
}
.boxcolor {
	BACKGROUND-COLOR: #9ab6e6
}
.blue_bar {
	BACKGROUND-COLOR: #830908; WIDTH: 60%; HEIGHT: 25px; COLOR: #ffffff
}
.blue_bar_text {
	TEXT-ALIGN: left; TEXT-INDENT: 6px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; COLOR: #ffffff; FONT-SIZE: 12px; VERTICAL-ALIGN: middle
}
.grey_bar {
	BACKGROUND-COLOR: #666666
}
.grey_bar_text {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: =
10px; VERTICAL-ALIGN: text-top
}
.grey_bar_small_text {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: blue; FONT-SIZE: =
12px; VERTICAL-ALIGN: text-top
}
.SearchBox {
	BORDER-BOTTOM: #cacaca; BORDER-LEFT: #cacaca; BORDER-TOP: #cacaca; =
BORDER-RIGHT: #cacaca
}
A.BlueBarLink:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #fff; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BlueBarLink:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #fff; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BlueBarLink:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #fff; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BlueBarLink:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #fff; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.HeaderBar:link {
	LINE-HEIGHT: 26px; FONT-FAMILY: Arial, Helvetica, sans-serif; FLOAT: =
left; COLOR: #ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.HeaderBar:visited {
	LINE-HEIGHT: 26px; FONT-FAMILY: Arial, Helvetica, sans-serif; FLOAT: =
left; COLOR: #ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.HeaderBar:active {
	LINE-HEIGHT: 26px; FONT-FAMILY: Arial, Helvetica, sans-serif; FLOAT: =
left; COLOR: #ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.HeaderBar:hover {
	LINE-HEIGHT: 26px; BACKGROUND-COLOR: #000000; FONT-FAMILY: Arial, =
Helvetica, sans-serif; FLOAT: left; COLOR: #ffffff; FONT-SIZE: 14px; =
FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.HeaderBarSmall:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #1a59a9; FONT-WEIGHT: =
bold; TEXT-DECORATION: none
}
A.HeaderBarSmall:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #1a59a9; FONT-WEIGHT: =
bold; TEXT-DECORATION: none
}
A.HeaderBarSmall:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #1a59a9; FONT-WEIGHT: =
bold; TEXT-DECORATION: none
}
A.HeaderBarSmall:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #1a59a9; FONT-WEIGHT: =
bold; TEXT-DECORATION: underline
}
TD.MenuCell {
	PADDING-LEFT: 3px; PADDING-RIGHT: 3px; COLOR: #ffffff; BORDER-RIGHT: =
#c0c0c0 1px solid
}
A.leftmenu_link:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.leftmenu_link:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.leftmenu_link:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.leftmenu_link:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: red; FONT-SIZE: 12px; =
FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.relatednews_link:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 12px; =
TEXT-DECORATION: none
}
A.relatednews_link:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 12px; =
TEXT-DECORATION: none
}
A.relatednews_link:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 12px; =
TEXT-DECORATION: none
}
A.relatednews_link:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: red; FONT-SIZE: 12px; =
TEXT-DECORATION: underline
}
.SimpleLeftMenu {
	TEXT-ALIGN: right; BORDER-LEFT: 0px; PADDING-BOTTOM: 3px; PADDING-LEFT: =
5px; PADDING-RIGHT: 10px; BORDER-COLLAPSE: collapse; FONT-FAMILY: Arial, =
Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: 12px; FONT-WEIGHT: =
bold; PADDING-TOP: 5px
}
.line_menu {
	BACKGROUND-COLOR: #ccd5e3; WIDTH: 169px; HEIGHT: 1px
}
.boxleft_title {
	BACKGROUND-COLOR: #5a79a5; WIDTH: 169px; HEIGHT: 19px; BORDER-RIGHT: =
#5a79a5
}
.text_title {
	TEXT-ALIGN: right; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#ffffff; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.boxleft_submenu {
	BACKGROUND-COLOR: #dde2eb; WIDTH: 169px; BORDER-TOP: #ffffff thin =
solid; BORDER-RIGHT: #5a79a5 thin solid
}
.line_submenu {
	BACKGROUND-COLOR: #ffffff; WIDTH: 169px; HEIGHT: 1px
}
.newslettertext {
	TEXT-ALIGN: right; PADDING-RIGHT: 10px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; COLOR: #151515; FONT-SIZE: 11px
}
.ColoredLeft_submenu {
	TEXT-ALIGN: right; BORDER-LEFT: 0px; PADDING-BOTTOM: 3px; =
BACKGROUND-COLOR: #dde2eb; PADDING-LEFT: 5px; PADDING-RIGHT: 10px; =
BORDER-COLLAPSE: collapse; FONT-WEIGHT: bold; PADDING-TOP: 5px
}
.newsletterbox {
	BORDER-BOTTOM: #d1d1d1 1px solid; BORDER-LEFT: #d1d1d1 1px solid; =
PADDING-LEFT: 3px; FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: =
18px; COLOR: #666666; FONT-SIZE: 11px; BORDER-TOP: #d1d1d1 1px solid; =
BORDER-RIGHT: #d1d1d1 1px solid
}
TD.FrontEndMenuBar {
	TEXT-ALIGN: right; BACKGROUND-COLOR: #5a79a5; PADDING-RIGHT: 10px; =
HEIGHT: 20px; COLOR: #ffffff; FONT-WEIGHT: bold
}
.UpdateText {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; =
FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #545c5e; FONT-SIZE: =
11px; FONT-WEIGHT: bold; PADDING-TOP: 0px
}
.boxright_title {
	BACKGROUND-COLOR: #5a79a5; WIDTH: 169px; HEIGHT: 19px; BORDER-RIGHT: =
#5a79a5
}
.boxright_bg {
	BORDER-LEFT: #5a79a5 0px solid; BACKGROUND-COLOR: #ffffff
}
.text_boxcontent {
	PADDING-LEFT: 10px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#666666; FONT-SIZE: 11px; PADDING-TOP: 3px
}
.text_boxlink {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #3084b6; FONT-SIZE: =
12px; FONT-WEIGHT: bold
}
.RightTextTitle {
	TEXT-ALIGN: left; PADDING-LEFT: 0px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; COLOR: #ffffff; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
TD.RightMenuBar {
	TEXT-ALIGN: left; BACKGROUND-COLOR: #5a79a5; PADDING-LEFT: 10px; =
HEIGHT: 20px; COLOR: #ffffff; FONT-WEIGHT: bold
}
UL.HoroscopeList {
	MARGIN-TOP: 0px; PADDING-LEFT: 15px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; MARGIN-BOTTOM: 0px; COLOR: #5879a4; MARGIN-LEFT: 0px; =
FONT-SIZE: 11px; FONT-WEIGHT: bold; LIST-STYLE-IMAGE: =
url(../images/bullet_right.jpg)
}
A.HoroscopeNewLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #5879a4; FONT-SIZE: =
11px; FONT-WEIGHT: bold
}
A.HoroscopeNewLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #5879a4; FONT-SIZE: =
11px; FONT-WEIGHT: bold
}
A.HoroscopeNewLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #5879a4; FONT-SIZE: =
11px; FONT-WEIGHT: bold
}
.Heading {
	FONT-FAMILY: arial, helvetica, sans-serif; COLOR: #a8a8a8; FONT-SIZE: =
20px; FONT-WEIGHT: normal
}
.TopContent {
	TEXT-ALIGN: left; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#000000; FONT-SIZE: 12px
}
.TopBrownTitle {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
12px; FONT-WEIGHT: bold
}
A.TopBrownLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.TopBrownLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.TopBrownLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.TopBrownLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: red; FONT-SIZE: 12px; =
FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.contentbold {
	TEXT-ALIGN: left; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: =
#000000; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.links {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #003399; FONT-SIZE: =
11px; FONT-WEIGHT: bold
}
A.BodyLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BodyLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BodyLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BodyLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.SubCategoryLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #b02926; FONT-SIZE: =
13px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.SubCategoryLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #b02926; FONT-SIZE: =
13px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.SubCategoryLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #b02926; FONT-SIZE: =
13px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.SubCategoryLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #b02926; FONT-SIZE: =
13px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.BodyBrownLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BodyBrownLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BodyBrownLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BodyBrownLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: red; FONT-SIZE: 11px; =
FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.BodyBrownLinksBig:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
14px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.BodyBrownLinksBig:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
14px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.BodyBrownLinksBig:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #a33131; FONT-SIZE: =
14px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.BodyBrownLinksBig:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: red; FONT-SIZE: 14px; =
FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.BodyBlackLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BodyBlackLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BodyBlackLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.BodyBlackLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.InnerBodyHeadlinesLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
15px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.InnerBodyHeadlinesLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
15px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.InnerBodyHeadlinesLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
15px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.InnerBodyHeadlinesLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
15px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.HeadlinesBlackLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
24px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.HeadlinesBlackLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
24px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.HeadlinesBlackLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
24px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.HeadlinesBlackLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
24px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.HeadlinesBlackLinks1:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
15px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.HeadlinesBlackLinks1:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
15px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.HeadlinesBlackLinks1:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
15px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.HeadlinesBlackLinks1:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
15px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.Heading {
	FONT-FAMILY: arial, helvetica, sans-serif; COLOR: #a8a8a8; FONT-SIZE: =
20px; FONT-WEIGHT: normal
}
A.BodySmallBlackLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: =
12px; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
A.BodySmallBlackLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: =
12px; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
A.BodySmallBlackLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: =
12px; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
A.BodySmallBlackLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: =
12px; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
UL.SubmenuList {
	MARGIN-TOP: 0px; PADDING-LEFT: 15px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: =
0px; LIST-STYLE-IMAGE: url(../images/submenu_arrow.jpg)
}
UL.SubmenuSmallList {
	MARGIN-TOP: 0px; PADDING-LEFT: 15px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 0px; FONT-SIZE: 11px; =
FONT-WEIGHT: normal; LIST-STYLE-IMAGE: url(../images/submenu_arrow.jpg)
}
A.UnderlinedBodyLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #003398; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.UnderlinedBodyLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #003398; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.UnderlinedBodyLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #003398; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.UnderlinedBodyLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: red; FONT-SIZE: 11px; =
FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.BlueHeading {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #003399; FONT-SIZE: =
12px; FONT-WEIGHT: bold
}
.SmallText {
	FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 10px
}
.heading2 {
	TEXT-ALIGN: left; FONT-FAMILY: arial, helvetica, sans-serif; COLOR: =
#000000; FONT-SIZE: 14px
}
.link2 {
	TEXT-ALIGN: left; FONT-FAMILY: arial, helvetica, sans-serif; COLOR: =
#003399; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
A.BottomLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #fff; FONT-SIZE: =
11px; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
A.BottomLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #fff; FONT-SIZE: =
11px; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
A.BottomLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #fff; FONT-SIZE: =
11px; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
A.BottomLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: red; FONT-SIZE: 11px; =
FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
.BottomText {
	TEXT-ALIGN: center; LINE-HEIGHT: 20px; FONT-FAMILY: arial, helvetica, =
sans-serif; COLOR: #fff; FONT-SIZE: 11px
}
.outerx {
	BORDER-BOTTOM: #000 0px solid; BORDER-LEFT: #000 0px solid; WIDTH: =
100%; BACKGROUND: url(../images/Bg_left.jpg) #fff repeat-y left top; =
BORDER-TOP: #000 0px solid; BORDER-RIGHT: #000 0px solid
}
.innerx {
	PADDING-BOTTOM: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: =
0px; BACKGROUND: url(../images/bg_right.jpg) repeat-y right top; =
PADDING-TOP: 0em
}
.outerx P {
	PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0em; PADDING-LEFT: 20px; =
PADDING-RIGHT: 20px; PADDING-TOP: 0px
}
.SubmenuList1 {
	MARGIN-TOP: 0px; PADDING-LEFT: 15px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: =
0px; LIST-STYLE-IMAGE: url(../images/submenu_arrow.jpg)
}
.SubmenuList2 {
	PADDING-BOTTOM: 5px; MARGIN-TOP: 0px; PADDING-LEFT: 15px; =
MARGIN-BOTTOM: 0px; BACKGROUND: url(../images/dotted.jpg) repeat-x left =
bottom; MARGIN-LEFT: 0px; LIST-STYLE-IMAGE: =
url(../images/submenu_arrow.jpg)
}
.HoroscopeDate {
	COLOR: #800000; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.m3 {
	MARGIN: 3px
}
.b3sfuschia {
	BORDER-BOTTOM: #9966ff 3px solid; BORDER-LEFT: #9966ff 3px solid; =
BORDER-TOP: #9966ff 3px solid; BORDER-RIGHT: #9966ff 3px solid
}
.b3sfff {
	BORDER-BOTTOM: #ffffff 3px solid; BORDER-LEFT: #ffffff 3px solid; =
BORDER-TOP: #ffffff 3px solid; BORDER-RIGHT: #ffffff 3px solid
}
.b1s000 {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid
}
.black1 {
	BACKGROUND: #000
}
.black2 {
	BORDER-BOTTOM: #000000 3px solid; BORDER-LEFT: #000000 3px solid; =
BORDER-TOP: #000000 3px solid; BORDER-RIGHT: #000000 3px solid
}
.framedimg {
	DISPLAY: block
}
.fl {
	FLOAT: left; CLEAR: left
}
.searchbtnHeader {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #224a7b; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; HEIGHT: 20px; COLOR: #ffffff; =
FONT-SIZE: 10px; BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 =
1px solid; PADDING-TOP: 0px
}
.marron_text {
	PADDING-LEFT: 0px; COLOR: #b02926; FONT-SIZE: 13px; FONT-WEIGHT: bold
}
.BreakingNews_text {
	PADDING-LEFT: 0px; COLOR: #ffffff; FONT-SIZE: 13px; FONT-WEIGHT: bold
}
TD.StockSmallText {
	FONT-FAMILY: Arial,Helvetica,sans-serif; COLOR: #000000; FONT-SIZE: =
10px; FONT-WEIGHT: bold
}
TD.StockSmallColorText {
	FONT-FAMILY: Arial,Helvetica,sans-serif; COLOR: #224a7b; FONT-SIZE: =
11px; FONT-WEIGHT: bold
}
.StockMarronText {
	COLOR: #723e40; FONT-SIZE: 11px; FONT-WEIGHT: normal
}
.epaper {
	BORDER-BOTTOM: #a2adbf 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#a2adbf 1px solid; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; =
BACKGROUND: #5e7d9c; COLOR: #fff; FONT-SIZE: 11px; BORDER-TOP: #a2adbf =
1px solid; FONT-WEIGHT: bold; BORDER-RIGHT: #a2adbf 1px solid; =
PADDING-TOP: 5px
}
.epaper_image {
	BORDER-BOTTOM: #a2adbf 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#a2adbf 1px solid; HEIGHT: 200px; BORDER-TOP: #a2adbf 1px solid; =
BORDER-RIGHT: #a2adbf 1px solid
}
.epaper A:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND: #5e7d9c; COLOR: =
#fff; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.epaper A:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND: #5e7d9c; COLOR: =
#fff; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.epaper A:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND: #5e7d9c; COLOR: =
#fff; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.SearchOptions {
	LINE-HEIGHT: 19px; MARGIN-TOP: 0px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; HEIGHT: 20px; COLOR: #313398; FONT-SIZE: 12px; =
VERTICAL-ALIGN: text-top; FONT-WEIGHT: bold
}
A.SmallMoreLink:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
10px; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
A.SmallMoreLink:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
10px; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
A.SmallMoreLink:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
10px; FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
A.SmallMoreLink:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
10px; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
A.MoreLink:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.MoreLink:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.MoreLink:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.MoreLink:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #830908; FONT-SIZE: =
11px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.YouMightLinks:link {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.YouMightLinks:visited {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.YouMightLinks:active {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
A.YouMightLinks:hover {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #224a7b; FONT-SIZE: =
12px; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.RssStyle {
	COLOR: #234b7b; FONT-SIZE: 14px; FONT-WEIGHT: bold
}
.PageTitle {
	TEXT-ALIGN: left; FONT-FAMILY: arial, helvetica, sans-serif; COLOR: =
#000000; FONT-SIZE: 22px
}
.StrapTitle {
	TEXT-ALIGN: left; FONT-FAMILY: arial, helvetica, sans-serif; COLOR: =
#000000; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.SummaryStyle {
	TEXT-ALIGN: left; FONT-FAMILY: arial, helvetica, sans-serif; COLOR: =
#000000; FONT-SIZE: 14px; FONT-WEIGHT: bold
}
.weather_small_title:link {
	TEXT-ALIGN: left; FONT-FAMILY: arial, helvetica, sans-serif; COLOR: =
#28457d; FONT-SIZE: 11px; FONT-WEIGHT: bold
}
.weather_small_title:visited {
	TEXT-ALIGN: left; FONT-FAMILY: arial, helvetica, sans-serif; COLOR: =
#28457d; FONT-SIZE: 11px; FONT-WEIGHT: bold
}
.weather_small_title:hover {
	TEXT-ALIGN: left; FONT-FAMILY: arial, helvetica, sans-serif; COLOR: =
#28457d; FONT-SIZE: 11px; FONT-WEIGHT: bold
}
.PageTitleBar H2 A:link {
	COLOR: #003389; FONT-SIZE: 13px; TEXT-DECORATION: none
}
A:visited {
	COLOR: #003389; FONT-SIZE: 13px; TEXT-DECORATION: none
}
A:active {
	COLOR: #003389; FONT-SIZE: 13px; TEXT-DECORATION: none
}
.PageTitleBar H2 A:hover {
	COLOR: red; FONT-SIZE: 13px; TEXT-DECORATION: underline
}
#footer {
	TEXT-ALIGN: center; FONT-FAMILY: Arial, Helvetica, sans-serif; =
BACKGROUND: #8e8e8e; HEIGHT: 50px; COLOR: #ffffff; FONT-SIZE: 11px
}
#footer A {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: =
#ffffff; TEXT-DECORATION: none; PADDING-TOP: 0px
}
#footer A:hover {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: =
#ffffff; TEXT-DECORATION: underline; PADDING-TOP: 0px
}
#footer DIV {
	PADDING-BOTTOM: 3px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 3px
}

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/css/comments_style.css

BODY {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: black; MARGIN-LEFT: =
0px; FONT-SIZE: 11px; FONT-WEIGHT: normal; PADDING-TOP: 0px
}
.comment_content {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px
}
.title {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #000000; =
FONT-SIZE: 9px; FONT-WEIGHT: bold
}
.header {
	COLOR: #ed6c11; FONT-SIZE: 18px; FONT-WEIGHT: bold
}
.headerlink1 {
	COLOR: #182b03 !important; FONT-SIZE: 12px; FONT-WEIGHT: normal; =
TEXT-DECORATION: none
}
.headercollink {
	COLOR: #cd3333; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
.boxheader {
	COLOR: #ffffff; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.SmallText {
	FONT-SIZE: 9px
}
.mediumtext {
	FONT-SIZE: 11px
}
.smalllinktext {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.smalllinktext:link {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.smalllinktext:visited {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.smalllinktext:hover {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.vncattext {
	FONT-FAMILY: arial; COLOR: #000000; FONT-SIZE: 12px; FONT-WEIGHT: =
normal; TEXT-DECORATION: none
}
.childcattext {
	FONT-FAMILY: arial; COLOR: #4a76f8; FONT-SIZE: 12px; FONT-WEIGHT: =
normal; TEXT-DECORATION: none
}
.smalllink {
	COLOR: #ed6c11; FONT-SIZE: 12px; TEXT-DECORATION: none
}
.myfavtext {
	FONT-FAMILY: normal Arial, Helvetica, sans-serif; COLOR: silver; =
FONT-SIZE: 12px
}
HR {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: =
0px; BACKGROUND-COLOR: #9ab6e6; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; HEIGHT: 1px; COLOR: #9ab6e6; CLEAR: left; =
BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0px
}
.telugulinks {
	LINE-HEIGHT: 20px; FONT-FAMILY: Gautami, Pothana2000; FONT-SIZE: 14px
}
.telugutitle {
	FONT-FAMILY: Gautami, Pothana2000; MARGIN-BOTTOM: 0px; FONT-SIZE: 11px; =
FONT-WEIGHT: bold
}
.kannadalinks {
	LINE-HEIGHT: 20px; FONT-FAMILY: Lohit Kannada, Tunga; FONT-SIZE: 13px
}
.kannadatitle {
	FONT-FAMILY: Lohit Kannada, Tunga; FONT-SIZE: 11px; FONT-WEIGHT: bold
}
.tamillinks {
	LINE-HEIGHT: 20px; FONT-FAMILY: latha, TSCu_paranar; FONT-SIZE: 11px
}
.tamiltitle {
	FONT-FAMILY: latha, TSCu_paranar; FONT-SIZE: 11px; FONT-WEIGHT: bold
}
.malayalamlinks {
	LINE-HEIGHT: 20px; FONT-FAMILY: Kartika, AnjaliOldLipi; FONT-SIZE: 16px
}
.malayalamtitle {
	FONT-FAMILY: Kartika, AnjaliOldLipi; FONT-SIZE: 15px; FONT-WEIGHT: bold
}
.TableBorder {
	BORDER-BOTTOM: #ffc299 1px solid; BORDER-LEFT: #ffc299 1px solid; =
BORDER-TOP: #ffc299 1px solid; BORDER-RIGHT: #ffc299 1px solid
}
.tagline {
	FONT: 12px arial, verdana, helvetica, sans-serif
}
A.tagline:link {
	COLOR: #cb6733; TEXT-DECORATION: none
}
A.tagline:visited {
	COLOR: #cb6733; TEXT-DECORATION: none
}
A.tagline:hover {
	BACKGROUND-COLOR: #cb6733; COLOR: #ffffff; TEXT-DECORATION: none
}
.error {
	COLOR: red; FONT-SIZE: 11px; FONT-WEIGHT: bold
}
.success {
	COLOR: green; FONT-SIZE: 11px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.mylink {
	COLOR: #006dff; FONT-SIZE: 11px; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
.arrow {
	COLOR: #ff6601; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
.rightlink {
	TEXT-ALIGN: left; COLOR: #669acc !important; FONT-SIZE: 11px; =
FONT-WEIGHT: bold; TEXT-DECORATION: none
}
.rightlink1 {
	COLOR: #4a76f8 !important; FONT-SIZE: 12px; TEXT-DECORATION: none
}
.rightlink2 {
	COLOR: #669acc !important; FONT-SIZE: 11px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.rightlink3 {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #669acc =
!important; FONT-SIZE: 11px; TEXT-DECORATION: none
}
A.rightlink3:link {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #669acc =
!important; FONT-SIZE: 11px; TEXT-DECORATION: none
}
A.rightlink3:visited {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #669acc =
!important; FONT-SIZE: 11px; TEXT-DECORATION: none
}
A.rightlink3:hover {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #669acc =
!important; FONT-SIZE: 11px; TEXT-DECORATION: none
}
.vhead {
	COLOR: #313398 !important; FONT-SIZE: 11px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.titlehead {
	FONT: bold 12px arial, verdana; COLOR: #000000; TEXT-DECORATION: none
}
.tablecontent {
	COLOR: #000000; FONT-SIZE: 11px; TEXT-DECORATION: none
}
.backimage {
	BACKGROUND-IMAGE: url(/videos/images/head_bg.jpg); BORDER-BOTTOM: =
#ffc299 1px solid; BORDER-LEFT: #ffc299 1px solid; BACKGROUND-REPEAT: =
repeat; BORDER-TOP: #ffc299 1px solid; BORDER-RIGHT: #ffc299 1px solid
}
.favbackimage {
	BACKGROUND-IMAGE: url(/videos/images/top_band.jpg); BACKGROUND-REPEAT: =
repeat
}
.favline {
	BACKGROUND-IMAGE: url(/videos/images/line.jpg); COLOR: #ffcc33
}
.backimage1 {
	BACKGROUND-IMAGE: none; BACKGROUND-REPEAT: repeat
}
.commentsHead {
	COLOR: #2370da; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
.righttitle {
	COLOR: #f89410; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
A.righttitle:link {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.righttitle:visited {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.righttitle:hover {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.mytext {
	FONT: 12px arial,verdana,helvetica,sans-serif; COLOR: #000000; =
TEXT-DECORATION: none
}
.views {
	COLOR: green; FONT-SIZE: 10px
}
.numbox {
	BORDER-BOTTOM-STYLE: solid; PADDING-BOTTOM: 0em; BORDER-RIGHT-STYLE: =
solid; PADDING-LEFT: 0.3em; PADDING-RIGHT: 0.3em; BORDER-TOP-STYLE: =
solid; FONT-SIZE: 11px; BORDER-LEFT-STYLE: solid; FONT-WEIGHT: bold; =
PADDING-TOP: 0em
}
.playerbox {
	BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; COLOR: #dadada; =
FONT-SIZE: 11px; BORDER-TOP: 1px solid; FONT-WEIGHT: bold; BORDER-RIGHT: =
1px solid
}
.chkimage {
	PADDING-LEFT: 3px; BACKGROUND: url(/videos/images/check_box.jpg) =
no-repeat center center
}
.my_textbox {
	BACKGROUND-IMAGE: url(/videos/images/textbox.gif); BORDER-BOTTOM: 0px; =
BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 10px; =
WIDTH: 150px; PADDING-RIGHT: 10px; BACKGROUND-REPEAT: no-repeat; HEIGHT: =
21px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 5px
}
.fotfont {
	FONT-FAMILY: arial; FONT-SIZE: 12px
}
.fotbg {
	BACKGROUND-COLOR: #cccccc; COLOR: #000000
}
.fotbord {
	BORDER-BOTTOM: #c0c0c0 1px; BORDER-LEFT: #c0c0c0 1px; BACKGROUND-COLOR: =
#f0f0f0; BORDER-TOP: #c0c0c0 1px; BORDER-RIGHT: #c0c0c0 1px
}
.ii9 {
	FONT-FAMILY: Arial; COLOR: #0064cc !important; FONT-SIZE: 12px; =
TEXT-DECORATION: none !important
}
A.ii9:hover {
	COLOR: #0064cc !important; TEXT-DECORATION: underline !important
}
.gr1 {
	FONT-FAMILY: Arial; COLOR: #0064cc !important; FONT-SIZE: 11px; =
TEXT-DECORATION: none !important
}
A.gr1:hover {
	COLOR: #0064cc !important; TEXT-DECORATION: underline !important
}
.fotf1 {
	FONT-FAMILY: arial; COLOR: #4064b8; FONT-SIZE: 11px
}
.FreezePaneOff {
	POSITION: absolute; VISIBILITY: hidden; TOP: -100px; LEFT: -100px
}
.FreezePaneOn {
	Z-INDEX: 999; POSITION: absolute; FILTER: alpha(opacity=3D85); =
BACKGROUND-COLOR: #000000; WIDTH: 100%; DISPLAY: block; HEIGHT: 1300px; =
VISIBILITY: visible; TOP: 0px; PADDING-TOP: 20%; LEFT: 0px; =
-moz-opacity: 0.85
}
BUTTON {
	BACKGROUND-IMAGE: url(..//videos/images/bt_bg.gif); FONT-FAMILY: Sans =
serif; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.register {
	MARGIN-TOP: 8px; TEXT-DECORATION: none
}
.bg0 {
	BACKGROUND-COLOR: #f89410; FONT-FAMILY: arial; COLOR: white; FONT-SIZE: =
12px; FONT-WEIGHT: bold
}
.f0 {
	BACKGROUND-COLOR: white; FONT-FAMILY: arial; COLOR: black; FONT-SIZE: =
12px
}
.bg1 {
	BACKGROUND-COLOR: #fcd59e; FONT-FAMILY: arial; COLOR: black; FONT-SIZE: =
12px
}
.input {
	WIDTH: 150px; FONT-FAMILY: arial; HEIGHT: 20px; FONT-SIZE: 12px
}
.textarea {
	WIDTH: 233px; FONT-FAMILY: arial; HEIGHT: 70px; FONT-SIZE: 12px
}
.input1 {
	WIDTH: 233px; FONT-FAMILY: arial; HEIGHT: 20px; FONT-SIZE: 12px
}
.select {
	FONT-FAMILY: arial; HEIGHT: 20px; FONT-SIZE: 12px
}
.select1 {
	WIDTH: 233px; FONT-FAMILY: arial; HEIGHT: 20px; FONT-SIZE: 12px
}
.smallstar {
	FONT-FAMILY: arial; COLOR: red; FONT-SIZE: 11px; FONT-WEIGHT: bold
}
A:link {
	COLOR: #0066cc; TEXT-DECORATION: none
}
A:visited {
	COLOR: #0066cc; TEXT-DECORATION: none
}
A:active {
	TEXT-DECORATION: none
}
A:hover {
	COLOR: #0066cc; TEXT-DECORATION: none
}
.newchannel {
	FONT-FAMILY: arial; COLOR: #4064b8; FONT-SIZE: 12px; TEXT-DECORATION: =
none
}
.oi2 {
	FONT-FAMILY: arial; COLOR: black; FONT-SIZE: 12px; TEXT-DECORATION: =
none
}
.mail {
	FONT-FAMILY: arial; COLOR: black; FONT-SIZE: 9px; TEXT-DECORATION: none
}
.catHead {
	FONT-FAMILY: Arial; COLOR: #cd3333; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.catHeadLink:link {
	FONT-FAMILY: Arial; COLOR: #cd3333; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.catHeadLink:visited {
	FONT-FAMILY: Arial; COLOR: #cd3333; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
A.catHeadLink:hover {
	FONT-FAMILY: Arial; COLOR: #cd3333; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.left-divider {
	BACKGROUND-IMAGE: url(..//videos/images/left_panel_divider.jpg); WIDTH: =
1px; BACKGROUND-REPEAT: repeat-y
}
.black {
	FONT-FAMILY: arial; COLOR: black; FONT-SIZE: 12px; TEXT-DECORATION: =
none
}
.black1 {
	FONT-FAMILY: arial; COLOR: #110000; FONT-SIZE: 12px; TEXT-DECORATION: =
none
}
A.rightCatLink:link {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; TEXT-DECORATION: =
none
}
A.rightCatLink:visited {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; TEXT-DECORATION: =
none
}
A.rightCatLink:hover {
	FONT-FAMILY: Arial; COLOR: #4a76f8; FONT-SIZE: 12px; TEXT-DECORATION: =
none
}
.playlistTable {
	BORDER-BOTTOM: #ffb482 1px solid; BORDER-LEFT: #ffb482 1px solid; =
PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; MARGIN-BOTTOM: 10px; BORDER-TOP: #ffb482 1px solid; =
BORDER-RIGHT: #ffb482 1px solid; PADDING-TOP: 10px
}
.playlistBackImage {
	BACKGROUND-IMAGE: url(/videos/images/top_band.jpg); BACKGROUND-REPEAT: =
repeat
}
.tBox {
	BORDER-BOTTOM: #9fbad2 1px solid; BORDER-LEFT: #9fbad2 1px solid; =
PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; WIDTH: 25px; PADDING-RIGHT: 1px; =
FONT-FAMILY: arial; FONT-SIZE: 10px; BORDER-TOP: #9fbad2 1px solid; =
BORDER-RIGHT: #9fbad2 1px solid; PADDING-TOP: 1px
}
.tBox1 {
	BORDER-BOTTOM: #9fbad2 1px solid; BORDER-LEFT: #9fbad2 1px solid; =
PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; WIDTH: 140px; PADDING-RIGHT: =
1px; FONT-FAMILY: arial; FONT-SIZE: 12px; BORDER-TOP: #9fbad2 1px solid; =
BORDER-RIGHT: #9fbad2 1px solid; PADDING-TOP: 1px
}
.select2 {
	WIDTH: 150px; FONT-FAMILY: arial; HEIGHT: 20px; FONT-SIZE: 11px
}
.sb2 {
	FONT-FAMILY: arial; FONT-SIZE: 12px; TEXT-DECORATION: none
}
A.cmntLink:link {
	FONT-FAMILY: Arial; COLOR: #0064cc !important; FONT-SIZE: 12px; =
TEXT-DECORATION: none !important
}
A.cmntLink:visited {
	FONT-FAMILY: Arial; COLOR: #0064cc !important; FONT-SIZE: 12px; =
TEXT-DECORATION: none !important
}
A.cmntLink:hover {
	FONT-FAMILY: Arial; COLOR: #0064cc !important; FONT-SIZE: 12px; =
TEXT-DECORATION: none !important
}
.smallBr {
	LINE-HEIGHT: 5px; FONT-SIZE: 1px
}

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/css/tabber.css

.tabberlive .tabbertabhide {
	DISPLAY: none
}
.tabber {
=09
}
.tabberlive {
	MARGIN-TOP: 0px; WIDTH: 180px
}
UL.tabbernav {
	BORDER-BOTTOM: #778 0px solid; PADDING-BOTTOM: 3px; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: bold 11px Arial, Helvetica, =
sans-serif; PADDING-TOP: 3px
}
UL.tabbernav LI {
	LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-RIGHT: 5px; DISPLAY: inline
}
UL.tabbernav LI A {
	BORDER-BOTTOM: medium none; BORDER-LEFT: #778 0px solid; =
PADDING-BOTTOM: 5px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; FONT-FAMILY: =
Arial, Helvetica, sans-serif; BACKGROUND: url(../images/bg_tab.jpg) =
#000000 repeat-x; MARGIN-LEFT: 0px; FONT-SIZE: 11px; BORDER-TOP: #778 =
0px solid; FONT-WEIGHT: bold; BORDER-RIGHT: #778 0px solid; =
TEXT-DECORATION: none; PADDING-TOP: 4px
}
UL.tabbernav LI A:link {
	BORDER-BOTTOM: #a2adbf 1px solid; BORDER-LEFT: #a2adbf 1px solid; =
LINE-HEIGHT: 15px; BACKGROUND: #fff; COLOR: #8a3435; BORDER-TOP: #a2adbf =
1px solid; BORDER-RIGHT: #a2adbf 1px solid
}
UL.tabbernav LI A:visited {
	BORDER-BOTTOM: #a2adbf 1px solid; BORDER-LEFT: #a2adbf 1px solid; =
COLOR: #8a3435; BORDER-TOP: #a2adbf 1px solid; BORDER-RIGHT: #a2adbf 1px =
solid
}
UL.tabbernav LI A:hover {
	BORDER-BOTTOM: #a2adbf 1px solid; BORDER-LEFT: #a2adbf 1px solid; =
BACKGROUND: #5e7d9c; COLOR: #000; BORDER-TOP: #a2adbf 1px solid; =
BORDER-RIGHT: #a2adbf 1px solid
}
UL.tabbernav LI.tabberactive A {
	BORDER-BOTTOM: #a2adbf 1px solid; BORDER-LEFT: #a2adbf 1px solid; =
BACKGROUND: #5e7d9c; COLOR: #fff; BORDER-TOP: #a2adbf 1px solid; =
BORDER-RIGHT: #a2adbf 1px solid
}
UL.tabbernav LI.tabberactive A:hover {
	BORDER-BOTTOM: #a2adbf 1px solid; BORDER-LEFT: #a2adbf 1px solid; =
BORDER-TOP: #a2adbf 1px solid; BORDER-RIGHT: #a2adbf 1px solid
}
.tabberlive .tabbertab {
	BORDER-BOTTOM: #aaa 0px solid; BORDER-LEFT: #aaa 0px solid; =
PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 180px; PADDING-RIGHT: =
0px; HEIGHT: 200px; BORDER-TOP: 0px solid; BORDER-RIGHT: #aaa 0px solid; =
PADDING-TOP: 0px
}
.tabberlive .tabbertab H2 {
	DISPLAY: none
}
.tabberlive .tabbertab H3 {
	DISPLAY: none
}
.tabberlive#tab1 {
=09
}
.tabberlive#tab2 {
=09
}
.tabberlive#tab2 .tabbertab {
	HEIGHT: 180px; OVERFLOW: auto
}

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/css/js_color_picker_v2.css

#dhtmlgoodies_colorPicker {
	BORDER-BOTTOM: #317082 1px solid; POSITION: absolute; BORDER-LEFT: =
#317082 1px solid; PADDING-BOTTOM: 1px; BACKGROUND-COLOR: #fff; WIDTH: =
250px; BORDER-TOP: #317082 1px solid; BORDER-RIGHT: #317082 1px solid
}
#dhtmlgoodies_colorPicker .colorPicker_topRow {
	BORDER-BOTTOM: #317082 3px double; PADDING-BOTTOM: 1px; =
BACKGROUND-COLOR: #e2ebed; PADDING-LEFT: 2px; WIDTH: 248px; HEIGHT: 16px
}
#dhtmlgoodies_colorPicker .colorPicker_statusBar {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #e2ebed; PADDING-LEFT: 2px; =
WIDTH: 248px; HEIGHT: 13px; CLEAR: both; BORDER-TOP: #317082 3px double
}
#dhtmlgoodies_colorPicker .colorSquare {
	BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; WIDTH: =
10px; MARGIN-BOTTOM: 1px; FLOAT: left; HEIGHT: 10px; MARGIN-LEFT: 1px; =
BORDER-TOP: #000 1px solid; CURSOR: pointer; BORDER-RIGHT: #000 1px =
solid
}
.colorPickerTab_inactive {
	PADDING-LEFT: 4px; HEIGHT: 17px; CURSOR: pointer
}
.colorPickerTab_active {
	PADDING-LEFT: 4px; HEIGHT: 17px; CURSOR: pointer
}
.colorPickerTab_inactive SPAN {
	BACKGROUND-IMAGE: url(images/tab_left_inactive.gif)
}
.colorPickerTab_active SPAN {
	BACKGROUND-IMAGE: url(images/tab_left_active.gif)
}
.colorPickerTab_inactive SPAN {
	LINE-HEIGHT: 16px; PADDING-LEFT: 6px; BACKGROUND-REPEAT: no-repeat; =
FONT-FAMILY: arial; BACKGROUND-POSITION: left top; FLOAT: left; =
FONT-SIZE: 11px; VERTICAL-ALIGN: middle; FONT-WEIGHT: bold; PADDING-TOP: =
1px; -moz-user-select: no
}
.colorPickerTab_active SPAN {
	LINE-HEIGHT: 16px; PADDING-LEFT: 6px; BACKGROUND-REPEAT: no-repeat; =
FONT-FAMILY: arial; BACKGROUND-POSITION: left top; FLOAT: left; =
FONT-SIZE: 11px; VERTICAL-ALIGN: middle; FONT-WEIGHT: bold; PADDING-TOP: =
1px; -moz-user-select: no
}
.colorPickerTab_inactive IMG {
	FLOAT: left
}
.colorPickerTab_active IMG {
	FLOAT: left
}
.colorPickerCloseButton {
	BORDER-BOTTOM: #317082 1px solid; POSITION: absolute; TEXT-ALIGN: =
center; BORDER-LEFT: #317082 1px solid; PADDING-BOTTOM: 1px; =
LINE-HEIGHT: 10px; PADDING-LEFT: 1px; WIDTH: 11px; PADDING-RIGHT: 1px; =
HEIGHT: 11px; FONT-SIZE: 12px; BORDER-TOP: #317082 1px solid; TOP: 1px; =
CURSOR: pointer; RIGHT: 1px; FONT-WEIGHT: bold; BORDER-RIGHT: #317082 =
1px solid; PADDING-TOP: 1px
}
#colorPicker_statusBarTxt {
	LINE-HEIGHT: 13px; FONT-FAMILY: arial; FONT-SIZE: 11px; VERTICAL-ALIGN: =
top
}
FORM {
	PADDING-LEFT: 5px
}
.form_widget_amount_slider {
	BORDER-BOTTOM: #eee 1px solid; POSITION: absolute; BORDER-LEFT: #9d9c99 =
1px solid; BACKGROUND-COLOR: #f0ede0; WIDTH: 3px; BOTTOM: 0px; HEIGHT: =
3px; BORDER-TOP: #9d9c99 1px solid; BORDER-RIGHT: #eee 1px solid
}
.colorSliderLabel {
	WIDTH: 15px; FLOAT: left; HEIGHT: 20px; FONT-SIZE: 11px; FONT-WEIGHT: =
bold
}
.colorSlider {
	WIDTH: 175px; FLOAT: left; HEIGHT: 20px
}
.colorInput {
	WIDTH: 45px; FLOAT: left; HEIGHT: 20px
}
.colorPreviewDiv {
	BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; MARGIN-TOP: =
1px; WIDTH: 186px; FLOAT: left; HEIGHT: 20px; BORDER-TOP: #ccc 1px =
solid; CURSOR: pointer; MARGIN-RIGHT: 2px; BORDER-RIGHT: #ccc 1px solid
}
.colorCodeDiv {
	WIDTH: 50px; FLOAT: left; HEIGHT: 20px
}

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://spe.atdmt.com/ds/ZHZH1ZH1AIN8/728x90_INSP_14R_37900_Aug10_Dell_16_Aug_10.jpg?ver=1

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
IB6WgUHvO3YVv6GNTWxwe6jfJeRh7Lti5ViRBLgY6OQP1f2dm/IaySl8LLmwsyHLgOmbHdZEI8qm
9FTL5LtjA+GZRk1KuH6VuPqJ0P7PbX9yx/N0eonQ/s9tf3LH83U5RRfMqD9ROh/Z7a/uWP5uj1E6
H9ntr+5Y/m6nKKIoP1E6H9ntr+5Y/m6PUTof2e2v7lj+bqcooig/UTof2e2v7lj+bo9ROh/Z7a/u
WP5upyiiKD9ROh/Z7a/uWP5uj1E6H9ntr+5Y/m6nKKIoP1E6H9ntr+5Y/m6PUTof2e2v7lj+bqco
oig/UTof2e2v7lj+bo9ROh/Z7a/uWP5upyiiKD9ROh/Z7a/uWP5uj1E6H9ntr+5Y/m6nKKIoP1E6
H9ntr+5Y/m6PUTof2e2v7lj+bqcry9qIoT1E6H9ntr+5Y/m6PUTof2e2v7lj+bpjm+9HoLCmeCbd
4mliJV1iDy2I7fFGrD+mmMnvn6BQeHMll+RIJP8A9yiocLSOHLLuwkfQFN+onRHs7tf3LH83R6i9
D+z21/csfzdVqX339GqP2ceZMfIsIH/zSLTSX37bCB+x27LfyauUv9TtS4c1rHY7qWmKXuVw9Reh
/Z3bPuWP5uj1F6H9ntr+5Y/m6okvv4x7Hk7NIT3a51A/oQ0zl9+25E/stoiUf7czH+pRUXxWo8r3
p/7bekx/mtH9Reh/Z7a/uWP5ukMnpL3eYovkbHtMfeAcPHufmXl3NVPp33jdTb4ssz4+Nh4kZ0Bk
Du7Pa/h1tYWv5KkIIZc6SZnctMArBmN7s0kcXE/+OtYQuDmgXk73PLbZTgAEske8HpHi3pT07b7s
geGwbcflG3wf/rHXHoHu09nMD7hjfVptJt0sacxpI+V3OCSC12GkWHb4D8ldSbXMJdERDA303Nid
IW//AM9XsguE7zdfpHVzS/oHu09nMD+X431aPQPdp7OYH8vxvq0n/B5WC8uRH8JLtc6QdbIFBt8l
Jx7e3pGPFKwC5FuK8bA27yNN+PcaWQT5vdBqCvRzTj0D3aezmB/L8b6tHoHu09nMD+X431aSl2qS
7mA60VFcX7TcXIDJqQ2t5a8j2t3WYB1MkFtdidKga9eo27tHdSyCfN7p2YdSW9A92ns5gfy/G+rR
6B7tPZzA/l+N9WkP4Tka1TUhLGxsWOk6Q/isvkNEW1ytMIZGCysshWMHxEorkfJYslu2lkE+b3Ts
w1bTil/QPdp7OYH8vxvq0pFtXuzkdUGwbcpYgC+3wdp+aM1FTRNDK8TEFoyVYjsuOBrrF/7mL/fX
+sVPhx6VUb/Pcxt1bRWn1E6H9ntr+5Y/m6PUTof2e2v7lj+bqcorBewoP1E6H9ntr+5Y/m6PUTof
2e2v7lj+bqcqK3zf4dqWKJYnzNwyiVxcOL6chHaT26VHeatCEpyEYhyVWc4wiZTLAJD1E6H9ntr+
5Y/m6PUTof2e2v7lj+bpou09X7mvN3HdP4UrcVw8JASo7tU5NyfLa4o9U95TxRdR5okH0S4Drf5U
J41r4OMUOaL9AkR1gLDx8prHbzI6TGJ6ifenfqJ0P7PbX9yx/N0eonQ/s9tf3LH83TH+Ob7sMoj6
ijXL25mCru2MttNzYekQj6P5P6atCOkiK6MGRwGVgbgg8QQapkxSgxLEHSUagrTFmjkcB4yj3oyD
SH45hUzrLo3pDF6Q3zKxdj27HycfbsuWGaLEgSRJEgkZHR1jBVlIuCKKmeu/9D9Q/wCV5v8Ah5KK
zWqadNCX8NdnMUr48q7PiOksenUpXGjbhrVh3eSnuBusGBtG2ybnlSSPnIjHJlW6h3USaXeJFRBx
8OqmHTs0UHux2mSVtCDZsUE/K2LGo7PlNcy+j5/TWwqv7aIZGAkgtwvGVDqwI7iLGi6cMBLGBIG0
5GJAr3eamMfqHbsjMjw150cs+owGbHmiSXQNbct5UVW8PGucnqXa8ad4nMrLE4jnyEhkeCJybaZJ
lXQCCRfjw76bdSyJDnbHPIdMUeadb2JA1QSqt7eUmordd0w9unzJNpzuXmmYtPsuRGzDIlvpPIVg
HUyfrJdT22or49vCdpEZdqPOl1zVkBTqVgzOotswstsOdpBl2DRwrDK7Sg/3IRDzLd+nsr2LfcHJ
xMqaLnK2ILTwmGRZ0uNSnkMuviOI4VF7puOJt/VuJk5o5eOcGVGnYXEJaVCC5F9INtN/LXeJLHuW
9525YJ5mAMFcXnKDomm1PJ+zP6WhTa/y2oo8CFglbIAxErn7Lu1uieQ75tuJt+BJk5jTQ5cd4s6S
NlR9K69UjBQsZZeNmt30v/H9rG3puMkrRYsraIjJG6O7E6VCRMuttXdZeNVrFigz+lumoGHMSPKx
UnSx4NEjllYH5RY1MdQczH3LadykQybfhPN6UVUuYzLHoim0rc2U3B8l70Uzw477e1cZTeoD2OwA
bWWieYe/7dl5XoamWDKKl0hyYZMd3UdrRrMqagO+1J+s21ESBOfLNE7RSY8ePM8ysukktEsZYLZx
4uzj21HZ+dib5uO1R7RIMtsPKGVkZUXGOKJUdWRpBw1Sarafy082GBF3HfJ9NpJM0KWt2qmPAV/p
Y0VZYscYmUoyBtusJqDdbWnHVSO37hi7jiJl4rF4XLAalZGDIxR1ZXAIIYEcaZdSz7vDtsrbZoiZ
Y5ZJslzcxrGhf9nHbxM1rC/AU36TkS26wXtLHuWWzoQQQskzMh4+UUv1PuOFibTlQ5MojlysedIF
IJLtotYWB72FFUY7dyIRjcBKgIen8U/wZWfAx5pWuzRI7seHEqCTUDBvW4ZnUmAYn0bNmR5Xo8dh
qm5Aj/8AMEnjpYv4B5BfvrsCPqHp+PA23PWAokKZZ5bSXTT4oWGuIjXaxsey476aZeDv8fUezoc7
HJWLLETphsqIoEGpSnpBvqFrcRb5aLXFjgJZBMxEiJ9mQPZAiSDonsuNuGR1HlYibrl48CY0OSiR
8iytJJNGV8cDeG0Y/tp5smVlNNnYOVP6XJgTKgydKoXWSNZQHWMBdS6rcAOFqZZW04e49VZHpcbO
iYGPoKu8diZsm/GNlvXXSbRYcU+xOojzcCR9R02M0bENHklrWYsrAN8tFGS04izEiECwiAz6yuFT
0+lWCiiii40V8/8AUjMnU26Opsy52QVI7iJnr6ArAOo0eTqfdI41Lu+dkKqjiSTMwAFF7XkX9zL/
AKR71zkdQbhmbzDu+cwyMmF4nPAIGERBC+AWHZ5KeHqyU5GJN6OP/J5OVlBdZ8RyipK/R4abdtMI
tkzjvMOz5KHFy5pY4Ssg4rzStmI+Zr1Iz7Vt+askWzYWUZYJo8c5MsyMjGRxCC8XLVk1Owt4j20X
sTG37ItDCNCKRjGXZHEavRGD1c+KMUnG1Pj4j4EkiSmNngMnOTQQp0Ord/G/kpvuXULZ0GRC0T2m
minikkmaSRDFHyrFyq6rj5rU6yOhd5x5kjlaJA8c0vMfmxqBjANKDzYkPAG4NtJ7jTLO6dysOCXI
58E8ESQyiSFnIdMguqFNaKeBQ3vairD5QyEokEnQuf1fzTHFzcnFzYc2Jz6Tjussbtx8SEFb37ey
pdepcHHzItx2/a0xdxSXmvIZpJIze+tY4vDoDXtxY2HZSzdF5wWTGvD6XBk5ELzGVhGRjwJkMoUx
C3A8GLfkHbSUHRe55E4jxpociIwJkjIhE0iFHdoVsiQmW+pDfwUUzybWdZS4NqQDE8C2r8AV7F1T
DiKkG3YRx8RBkkxvMZGMmVEIC/M0L9BQLC1cRdUyrsa7W0cgMUUkEckU5jQpKzMebCFIcjWe8cO2
9J4mwn+I7jtWYCudiQTtCqHg00A5hHZ4gyK1qkN16UxNvx5sku7xY+GnMNxwzzN6PJF2fRUhm+ai
rL5USjEgkyIlEuS/Iu/+Yqramta5sbX/ACdlPdt3N8D0shOaczGkxTc20iS3i772tUzP0VlNnyxR
zY2JH6YcCFJpncmYLG6oGWBS2rmcDpHy24XS2zpYSY0+RnTxxsMLJy4MVXPPPJVwjkaCujWn616L
SW4wShUuC1ONfR6ElN1MI8CLD2rHfb9Ey5LSc95WEqKyAw6gOWLMfKflrjbeohj57bluEMm4bhqS
SLJOQ8bBo7aQ9g2tfCOHClPU/cA5ibIxlyYzEMrHLtrxxMyxq01kK2BcX0lrd9ceqO6iBJ5DHHE6
5TszFvAuHcSa7KbaiLJ5aKj7S0hx2qEubi9e9rVkRdRQRY+UVwh/Es1JoZcrmty+XOzFwMe1gRq4
eL8lOX6wBKyrgqmVLNizZ8okNpvRLFAqabR6iLt215F0/ibbniLeJoZbxGRYUaRFJ8BAMjiFWurX
Uq9jbt8rCRNrj3l4lgfMxG0qkGPNpPMZVuqSlJdQVyQOBv5aII7eZLQlKlzuWI5Bz/gnY6x3Jtcc
4EuMyZcYi4KbZYcHU4F20azpppt/UGdt225GFhSSY8mTLHKciGRo3AjDro8FuDa/L3VJfwTZ5uss
fZYBIuKXSHK/aB2Eum8qpJoW4VvDfT3VyvR2adqRwiyblPmx40CRTwyoUaKWRixidgpBTvPZRRdt
QADERExGbGmpJBbo4pri9UZWKNsKRhn2w5Bu7EiUZJPMDWsR4SRe9OI+qcaCAYGPgFNpaOaObHac
tK5nMbM4mEa6SDEtvBby3pKPpDNns+Ll4uTjFZicqORxEpx1WSRWMkakEK1+ItXuZ0hm4uO8wysX
I0RwziOF3LtFkMkcUiho14FnHbY/JRSflDIAkOTzkKkn2uSldv6si2+GXFxsWWHEMongWLKZJFfQ
sbcyUR+MNpB7Ft3V5j9VQxY2FCcSV5MNw/pHpFpRZXUrA/K1RqxfUVJZfkptvnSm6bJAk+YFMbyN
CSokGmRQGt+1jTUCOxkup8tSu79L7XjbRJlQGSPIghw5dRnjlVzkhNeuBE5kIXVwLcD+WiqflDaQ
8vELOCde7z6U1bqzEmkYZG2q2NHkDLxIYpeVy5AiRtrKx2cPoDNZV43tao7dt9n3THx4p0AeCTIm
Zwfptkyc1vD3WNP26H3RZIFM0PLyIpp0lInA0wFRJ+zaASsfGPooeHHspNemJpsXHlieGNCuTJPl
vK/K0Y8qw69PJDLxYWtqJ+TsorQO0iYyidDQuaFiOPrUDRSuTCsEzRLKmQq2tLFq0MCL8Naq35xS
VF1guHRRRRRSvpSiiozqKaWLbDy5zic2WCF8lbAxpLMkbuCwIB0sQD3dtF8GpOioWXHTbNx24Y08
7+mTPBNBNkS5AZBDLLrAnd9JRkXiLcDbvFNsTeN4nxcPIy0gjg3PGkdI4g3MjYRc1G5hchgwBNtI
K8OJoisdFVsbtmY2Kpx4lnyRi7SF5rsAxy8h8dtRuQNI43Av8/Cvcnft0w9WLLHFkZrZceJDJDGw
QiTHOSWMTy3uuhhbmC/DiL0RWOime1ZGdkYmvOg9HyAzKVtpDKD4XC6n06h3ajUPidQbodvw8/KG
MybjhPlxRQh7xyJCs4VmLsJFIJuQFt8t70RWSiq9k75l4UEObmwJzjg5OVykdgFKtihIma5Xtk8T
6eHdwvdfcNy3bbMDm5IhycmaaGDHWBHVQ0zhCGDyHVpBuOK6jw4URTVFMdoydwyIJDnwciWOQoh0
6OYmlWEnL1yaOJK21Hsp9REUUUURFFFFERXLoHUoexgQfy11RRF8ldSbK+x9QZ21yD/tpmWM+VCd
SN+Y00jrUffzsPJ3HD32JbLkryJyP10+gT86/wBVZbGazIZfRbWQnCMx+YP6+PtS6gUoKSWlVqhX
p412B8le2NArpEZ2CICzHsA7aqStwKLRehZI22FUX6ccjrIPlJ1D+girRiLkvIVxiRIQOAYKTYhh
2kX4gVlez526bHK2VGgmxTYZMaOri3dq0FipHca0HYer8Gch8KdYsh7AwyhQ9wQ3AN28R3V24coM
RGjijFfn/nnlWfFvMm5iJZMGWRmZ4+1YZVIlyU0kO7Ki6dYSQC3iFrMrSgnjw4XNz8tLRQbhJPLi
ekONCK7Aamvq5agWW57x+ama5+St7MLMEDAgEERoYVB/8LEULnTiV5fCzSqEcFVKlRpIGki36IrV
j0LxBPGGrPXnwTmRN0DxlZWkeUBAVbvMrxqvHyshNcpj7m3KcsUESGSFmcDSFUPw48CR2Xrhd1zV
cPqVmDawWRT4tbSX7P1mJrk7jlkICwIRdAuoN1K6LHy+GjHoS7HzmlmXeGBDO5EgOq7iwAW518fD
4T312MbdX8TykP4/CX8V4+2/H/b7abfxLKIsSpDfTGlbPw03fhxrx9wynVlZgQ2q/hHAMApA4cBZ
Rwox6Evx85n1pzfdJpJyZGSXGX/pgn5FIW3yLf8AJRkY+6xvJFzGkWO5YhuB1pzHC3N28Lm9qaDN
yQ7OrlXcqSy8DdRYWIrobhlBdOoGwspKglfCI/CbcDpAFGPQl8CKmbvq/wCOhDYebI7s6kvdtbMw
HFNOq7E/7Yr2PFnhmx3kQqruuk8PKDxt2cD310N1zA6yAqHQswIRfpNp1MeHEnSK8XLnyJ8dZW1C
N0ANgDwIHH81K9Cj9p6GRL0dX+iiiuZfQJDNy4cLDnzJjaLHjaV/LZRq4fLUH0jhSzxP1DnjVuO6
DWl+PKxybxRJ5BbifLXXX7unSO4FO0iIfkaaNW/oNVjqUY56o2jCnzpNu247emqaKTlhdInMZv8A
R4lVFdu3w34iAbTMycs5txgSZul1527z+HniTG4QEbQTaL8sjESJ6G9q0iisafqfen22LBzpZp9q
DSLHKt42ydJFo5J246B32493ks5z+odxkg2+KXIaSDHyVL5UQKQKBp/8vG/0pAijizH8/adPpmRw
LhUnTkP49Cy+s4iCRCVANTxP8OlazNDFPE8MyCSKQFXRhcMp4EEVWumnk2nd8vpiVy8ESjL2xmNz
yHNmjv8A7Ddn5aid36gwH6z2bLhzl/hnKfmyBysVwZR4r2HbapPcJoZutunsnGcSR5MGSC6EENGI
2dDcd16zjhlCBjJ2yYzOoa2UHPXT2rWW4hPIJwa7FljjoXvhkYdXa9if9d/6H6h/yvN/w8lFHXf+
h+of8rzf8PJRXEvRTHYMqfD9122ZmOypNi7JjTIzjUt48RH8QuOBt5ae4m/ooy3myodxxMZYdGVh
qTqlmdoxj6UeRWe+i2k/pC4HAlHpLETN93WzYchKplbPiwsy9oEmKiEi/wA9SOZskWTNPKs8kDZA
iYiPT4Z4GDRZC6lPiAAU34EAAiiLwb/ihJedFNj5EBiVsWRBzSZ20QaNDMja2BFw1hY3tY0hL1AI
cmA5StgYzLOJo8pQJNcQjdTG0bsrghv0dV+ztBFKNsJlEkuRlyPnyGJkykVEMfILNEEjsVteR9Wq
99RHZa3s+wjNjC7lkNlOqyqrqqxaeaEF49IurIU1K173/JREZBhgyIt+nEkachMZ4WUaoxNKh1ye
LhoP0vIONKZG+YsM0mOscs88cqwLHEoJeVo+eUW7ADTHZmLEAXHGlMyKQbVJjyxPuZeIwyxgxo8o
YaGvqaNBe/GmGB0/kQ7XhJJluu7Y5aaXMGly80oJnDhgAyMT2cOwWtaikyJZ+AYJ5jb1i5EkMapK
kkzyRMsi6THLEodo5ATe5U3BFwR38Rfg7/h+kQYwjlaTKeeOHSoIZsaXkTDg3h0nxXPC3y8K4bYn
CxyRZbrnpM2S+Uyq3Md4vRyGjGldISwUDs0jt4362zYY9vaJ/SJcl4PStLzaSx9MlTIlLFVHHWnD
56KE5zdwjxHiiEUmRkz6jFBCF1sEF3a8jIoAuOJYcSB2mm2Tv8GNFDNNjZCQTKjPI6rGIuYdIWRZ
XViw71QMf6KXz9vfImgyoJ2xcrGDojgB1ZJNOuN0btBKKeFjw7e2mGf0wc5y8ua+uWBIJpOXEXPL
Z5FaNtNkuzeIAWIA+eiLubqjEhkmVsbJMeNOMSeZIw6rM5URLZGLtzNa20qbahqtXQ6kx/oti5C5
AyThNjkRl1n5IyUQ6ZCvjjIIbVbykU4O0QmKWMu37bJizHbhfXE8UgHZ2HlCmWbsM7ZoyMTIeJp8
5c2ZhoPLKYTYY0hh4lbSgZfn7KInmNvWPkSxw8qWKWR5IWRwt45YlEhR9LsOKm4K3Hy0nJ1BirLF
FHDNPLM2SAkarcLiS8id7M66rMeAW7Ed1cHYZAEmjzGXcFnfJfJKBg7vF6OVMV7aQlgov+iO3jdu
/Smrbht5zpXh5k0rPKkTy6p3aVpI5NKlJFZ20uOy/Z2URT9FFFERRRRREV8/9Ssy9Tbqykqy5uQQ
RwIImevoCsD33Gny+rdxxcdeZPPuE8cSXAuzzMqi5sO00Xs+RkDJlJ0sHvTCXcc6bNGfLO8maGVx
OzEvqS2g6j5LCpKTq7c2jcRxY2PNMUebJhgSOV3jkWdXZl79aA8BTGXZ9yi3T+EvARuGsRcgEMdb
WsLqSO/y1Ycno7GgmwUYzrCIcmbcJmQrqOLqZxArAfSC2W/d4vkovZyz2wsuETR4sH7ID9VKKHl6
jy3lkljgxsZ5opoJjDEE1rkLpkLfLbs7hXuJ1PuGMnL5cE8fJjgCTxCRQIWZ42sf0lLGpDb9l2rd
Nw23kYeVi7fmZDY8skk6Sg8CV0FY0KtwN7g0z6j2nCwI8GfFDIMxHd4jNHkohR9ACZECqj3Hd2jv
ooEtvKQxGDE8CxZn1YnkV4/V28u8zs0eqeSaaTwD6WREMeS3/gHCkcfqLOhjSFkhnx0gGMYJow6M
iyPOuocDqDObEGprqbpbB27Eklxo5YXjlhhgaSaOUZJlTW+mNFV0KcO29dZnRcOPvGz4Y5pgzJVx
c1iLHnRlTkGM6folW8J40VI5toYBogCQJAb9Au4elVzF3XKxNzXc8cRxZCOXVVQCMagQVEY4abG1
qVyuoNzysGXBnkDQZGS2bJw4mVwdXHycb28tTOd0hjYm1brnc1n5LJJtduyTGZobytw/UyE/Leov
bel953HBmzcXFlkijAMRSMsJTrEbKpH6tyT81FpHLtpjxOy0SIiUqV1DdaJuqd2myEyHZOZHmfxF
bILc+yLf5v2Y4V6nVG4piHH0QsxhlxvSGjBmEM2rXEHv2eM2pTp3bNvzBlDNs+RGYo8bFbJjxGkd
2YNZ5Ve+nT5KfYHTe3NycTMjnTcdwfMSALIuiA4oKqHGg8wl1INmHCirOW2g8TAdhtAOV1OgBRWV
1LuOVjPBIIlknCLk5KIFmmERBjEj/JpHZa9uNKZfVu9ZaZiTSJp3BY1n0oBwjOrw27NR4t5aex7B
trbeYQJjun8P/iYm1qIQNYtFy9F/+n+lr7e6udw2bbIHzdtxsXKyNw22NmyMtZUWPVGLyNyGj1aA
L9j3ogltnYYxQ8hQBu1XhoovdN6ytyix4ZY4oYcQPyooE0KDIQXa1z26RwHD5Kb4GbNgZkWZj6ef
AdUZcagGtwax717R8tWXeemNrxdmly4OYmRjwYct+fFKJDkhC+uBFEkIXVwZjY/lprhdLnN2va8y
Arqyp5osvmTwxeBGiCctZWQk2Zr2vRTDPt/Cp2YEmNdHIuPWobA3HKwM+LcIGByYX5is41eLym/b
SuFve44MCwYsnKEeQmWjAAsJUVo1PHus5uKnM3ZendvST0tMllbcsvCSWKRAY48dkCsUaNtZs3Hi
K8y+n9l2jFn/AImJ8iSPcJcETY8ippjjjikD8t0fUfHxGofPRDnwzZ4GV1AGHaEf5Oo2TqjcCpjh
jgxYDHPEYII9Cf8AmVEcz2uTqKgC9+FISb/uLoyllGrHgxCQtiI8ZkeKx8oMY41zvu2fwrdsnbxJ
zlx3sslralIDKSO42PGmFFrDHhMYyjEMQCC3Oqf7nvE25ENNBjxyli8s0MQR5HPazkeX5LU8PV+7
6ECCCKRFhQzpCgkZMco0SO5BJAKL+aoSiik4cRABgCI6A8FPP1huEmRFO+PikQNLJFHyvCrzMjyO
PFq1akBvf+ikR1Vu2sM5jlU+kCSN0BSQZT86ZXUW4FwCLdlQ9FFA2+EfkHV+OaWy8n0rIaflRwar
WihXQigAL4V/JSNFFFqAAABwRRRRRSvpSuZI45Y2ilQSRyAq6MAVYHgQQe0Guq5eRI0LyMEReLMx
sB85NF8Gm2JtW34bmTGgWORhp18SQt76FLE6Vv8AojhSqYmKiwokSquMNMAAFkGnRZfJ4eFdQ5EE
4LQyJKo7SjBh/RSlEIbVNk27ARFRIEVFESqAosFgYyQj/wADG6+SvZ8DCnWRZoUcSsryXHEsltDX
8q2Fj3VH9SP1KIsZOn442lklC5Es2nTHH+vZmBP5AT8lV/YN66y3DK3ILJj52NgRypFNEmiObKC/
s443bTcau09n56Lox7WU8ZyCcABqCairV5OrnjYsGLEIYE0Ri5txJJPaSTck/KaY7X07tm24cWNH
CjskAx3kI+ktgJPCSQvMIuwHaaqO77v1/s+3Q5ebk4az5LrFFhJGXlMjfoDTdTbv41do558balnz
yDkQQCTKKfR1omqTT8lwaJl20scYyuhMTJiLC9RqlnxMWS2uJHtG0IDKCOW+nWnH9FtIuPkptDsm
1QwywR4yCGfSJEI1AhDdB4r2Cn6IHZ3VTD1T1udqTqYQ4jbPfU2Gmoy8sOYyzMR/SD+SpTe+qNym
l2nA6cEZzd3i9KEk4uscOnULgX4nj+aiudjlEgHgayBIl2YGFZCR4MrJBt2FAqLFEBynMqE3ZhIV
MZfUxJJ0sVue6u4cTFgKmKJUKJyk0i1kBvpHyXqt9PdQ7su57hs3UPKGZgxDKSeAEI8PDUeNuy47
qhh1P1zk7XN1Jix4q7PG7MmM4JlaJH0MbjyW4m4+aiDY5TIxugALWkT2ZX9209K0Oiql1L1q+DsE
G4YWPKWz4UlgyNAeKN20sI5eI4ldVTPT28neMBco482OvAI06BOaNIPNQAnwk3tRZy22WOLxZBo3
GOtXClKKKKLBFFFFEVV95OxDeuj87GVdU8K+kQW7dcfi/pFfMkbEfPX2GyBlKsLqwsR8hr5U632Z
ti6r3HbrERpKZIfljk8a/wBdVkF6fl+ZomB/KXHoKj1alVYU0R6WV6zIXtYsoTkNS+LNHHOrScYm
BVrdulhbhTMMa6D1DLpvBBB0NFapp8FEvhbZi40I4enJlPIdNwW8LvfiOGnTeq05XU2gWW5038l6
S1UFqMogBB6kvzJPvJThNxz4l0xZMsa+RZGA/oNeNu26/vk/2r/WpsWrhmqXPNY5IYjUwi/oCcNv
G68f/O5H2r/WrU/cl1LHnHL2DcyMjJS+ThyTWdynASx6nufCbEfPWPs1Oth3vJ2LesPd8a/Mw5Fc
rf6S9jofkZbirAl3Xnbvb4p45REIg6ig1X1h6Dg/u8X/AAL/AGUeg4P7vF/wL/ZXO37hi7jg4+fi
tzMbKjWWJvKrjUP66c1o5Xz9kf0jqSHoOD+7xf8AAv8AZR6Dg/u8X/Av9lL0UcpZH9I6kh6Dg/u8
X/Av9lerh4iMGSCNWHYQig/1UtRRylkeQ6kUUUUVkx3zbhue0ZeB2NkRMqE9gftQ/kYCoTpzH2jf
9px33LDim3HAQYWSJkDSI0PCxvx4/S/LVpqu7ts24Yme++bBp9MkAGZgvYR5Kjvv+jIPL/8AB6MM
+ycd1hJuhJ2aWhBPIrl3GNpjLZ4gAtnBnJjqCBxMVLZG0bXk4H8OmxY2wrWEAUKq2/V020n5q5l2
PZ5saLElw4ZMbH/6MTICq/7oqKxOu9kdhBuBk2rNH/Ux8tGTSf8Aftpt89qdTdY9LwxmRtygIHcj
a2/4Uuajw9zEtbk1cM+p4hkGbZyBldi0YuwLDgX5ckq3S/TrKqNt2OVjuEBjWwBNzb8tQu0Rw7j1
dNlYihNs2OD0HG0cEMrG76PkUXX81ey73u/Uh9E2CGTD2+Twz7tOpXwHtGOvaSR3/wBXbVh2jacT
aMCLBxFtFEOLH6TsfpOx8prQynihIZJEzkGESXtB7xPSeSzjHHmyROKAGOBuMwGvlHuiPMDV1H9d
/wCh+of8rzf8PJRR13/ofqH/ACvN/wAPJRXIu5c9CsfUnp4f/i8H/Dx1M8+MfSZR+WoDo9dXQOxD
/wDFYXlHZjRnuqqx7p1lm7p1BjY+eIP4c4GBEYo2DswMixEkXPgFHZa4cByiRjIRt1uWlLPGzaVd
WPkBF/666DfNas2i3Hf/AFvm2afNGftwwo8lJRGiFmlZFRlaMD9K4FPOt+t9z2PqLb8HDCHFdVkz
NS6iFkk0CxBFqi4CL9K1x7LJkyjFjIJlC8Hg2qvuo15qP5O6qDhddbjke8CTZTyxtIMkUbabMWjQ
MTrvbt+SrHgdY7BuG5ttmHlCbJTVwVWKXXiyh7abi3loJCqrl2efGzxoYCbitJaP0qb1H89BYjtr
Otl683fK6jjjyxEuxZsuTDhyBTrvj+Vibcfko2T3gHP3/csjK3CPH2XCDGHH5RBeNWVBI0hH0rn6
Py/JS4LSXl24i9Py3P3tS1vpWjgm1AqCxOs+n8rEyMtMoLDhWOQZVaMoD2MVdQbHurvbOrtj3PUM
OfW6FVdGR1ca/oNoZQdJ8tSCCuc4MwcmBAGtNFN0UCiizRRRRREUUUURFFFFERXz/wBSMydTbo6E
q652QVYGxBEz2INfQFYB1DGZeqdziBCmTPnUMxsovMwux7hRe15F/cyv+ke9RxyMgznIMrmcnUZS
x138urtvT9Oo94jbEZcglsHWIS3juJb6w4e4YEEjj3VxuO1/wjd2wM91mWBk574rBgUYK55bOo42
PeO2p3I6Zxp+pcqHDx2G24UOPkPjq95H5kEUgiV3N7u7cT3C57rUXs5MuBomQBiYGYLC22gb13KO
HVu4o8DY0GLiDGmGTGkEKopkClNTW7eBpjuW8ZW4JBFKkUMGNr5MMEaxopkILtZe9tIqU36HbNo3
HddtOBeTmuMOQyN+yjP/AE+BJLcCTxPkr3C2HCy9hwsszQYuRJlzRSvkSOvMRViKogUMOGo+Ttoq
xlgiIZfDtEmtkwJqCXp6009ad0ORJkPy5GlmhySroColxxpjdV7uHA+WucfqjeYXLmbnPzhkqZvG
VkCumpb9lxIf6Kmtz27Ytsi3GRtuGSIt0fCiXnSoyRBNYCEOQTfvYGmr7Hg4XVuThWM+HhRS5axS
/SYR4xy1icLa5DWVuzvoqRybeUT+0wsMqgVjACg6woePedxSGSAzGWKTH9E0SEsFi1rLpQH6PiUU
3hypYYZ4UtoyVVJLjjZXWQW/KtTGdj7Rj7Psm4QYxd55MhcwTO1pTFyeH7IroW7tbTxtUyen9inz
48kRQwbLDgvltLFLO0c8kbLFIPEZZUVHcCwF7fPwK5z4oB7JASMtAKyxlm11pRVba92l213eODHn
ZtJU5ESyFGW+lkJ4g8fmp1D1Vu8UMkZaOWSRpnXIlRWlibI4TmJz9HX31NYvTu2pJnZm4JixRKcZ
MCHm5PorHKTmJJzFDT6Sq8L243va1Rs/S8kODl7lNIkMeFLJBkY1mJTIVwqQLdrsrK19d+wH8pR4
u2nI3RqbQ5DuSKAddUz9Y9x/hv8AD/2ZTlej8/QOfyNXM5HN7dGru/J2Uu3Vm5PFIskWM+RNE+PL
mmFfSHjdDEQ0g79PC/bUvjbTsm4NtONLhR7bkZxly5jFLMxGHCjsqkTSSeKUoxBA7AK5h2TbZNwf
LbGxhtAwnyMaRZckYrMJeQpnkkKzKdXhIW3G3C16Khy7ar4iDWWgqXbnV7VDZXU+5ZOG2K6woskU
cEsqRKsrxQ6dCNJ228A/NTT+KZfo+Hj3Xl7fI82Pw4hpCjNq8v0BUzv+1YOMu6R40IhGDk4xiNy1
0yYWLork+JdShkP6tMtxwMSHH2R449LZsHMyDdjqbnyR34nh4VA4UWuOWG2NsGEi4oNTB3/2rtOr
d0XWSmPI7ZMmaryQo5SaUhnePXcDiorjH6o3OGF42EOSXyGzOZkxLK4ncKGkBe/HwirBk7RsK9WJ
taYWM2LGcsskM+S0hEMMjok+uTwnUoPhqD3LC26bYoN4w4GwXfJfFkx9bSRtpQSCSJn8XC9jcmiz
hPbztHhEXgFyB+Z249BURlZORl5EmTkuZZ5mLySN2lj2mkquUmz7HPnDaUwzjy/w9ctc2OSRrSej
LkEzJIWXSTccLUzyel42M7pMkTY+Njz+jwo8jsJIOc0hVpC2kH6TC9iewCi0ju8VAQYdkEAj8poN
HVZoq0R9IQRZixtlpkvjPhtm42h4/wBjlPEq6XvxP7UXtSMPSoyos/JSY46YhyZI42jJV48Y3fRI
zjUQPID8porfNYdbqUqx46Ku0VM7x05JtUDTTTq6tPysWykc6LlrNz1ueC2kT8p+Soai1hkjON0C
45oooooroooooi+lKj+oI0k2LcVkUOpxpjpYXHBGI4H5akK8dEdGR1DIwIZSLgg8CCDRfCwlbKMu
RB6lm2wCfBmgnSPF2nJOyc3FbUBHmMVVhLOxCKGTTqYdvG97VZult9kyEyItzzA2XFJFEYplhjKy
SKSEjkgcxyhyDptx+ep5sLDZY1aCNlgUpCCikIpXQVTh4QV4cO6k4Nr2zGQR4+JBBGHEoSOJEAkH
APZQPF8tF15t1jyiV0GJZjQkMeZqmnUG9bPtmOkW7SmGDPLQagG4AqdV2j4r89VHpmXDxOsI9v6a
ypMvY5MdpMyNmLxxONVmQsO86fz/AJr9k4uNlRGHKiTIhb6Ucqh1PzqwIrjE2/AwozFh40WNG3Fk
hjWNT84QCipiz48eGcLZEzBBBI8PokzahVTbf/8AT9XS7q3i2jYiYMEfoyZB+nL+T6tWh9w26TOb
aXkD5bRGV8exP7InRdja1u7tpbHxsbGj5WNEkEd76I1CLc99lApvj7TiQbll7kupsrNWNJGY3CpG
NKqgtwHefloq5MsMh0MYwgI44jmOfpqSsz3mPBwdtk2jZN9mz0zJDFj7TCA1i78Q8vaBfuFtR/LU
tkwJ031J01l7g3LxIcAYMs/EosqK97nyEyVd8bZ9pxZjPi4WPjzm95YokRzft8SqDS+ViYuXEYcu
GPIhJuY5UV1JH+ywIoumXmALRtkYkSvJtE5Xi16BqKj45i6i6v3fJ25xLhx7a2EMhQdDSy9lj39/
5qj9t6k2rC93WTtGRKI90ijycVsRwRJrmeS1l+TXx8lq0fFwsPDi5OHBHjQ3J5cKLGtz2nSgApF9
n2mTKGXJhY75YNxO0SGS479ZXVRQN5iLRlCRhAwMACLnxAjtU4uorZ+m8OXp7Z8bdccSy4MaSrG9
7LIVuQy9hte3Gpjbtuw9txEw8KPlY0V9CXLWudR4sSe005oouPJmyTd5FjIytfsua6etFFFFFmiv
LivaovvL2HqDMx4d02XLlD4SsJ8BHISWMnUXVBwLjv8Akoiuz5ECfTkVP95gP66xH3+7diNlbdve
LIkhkDYuTy2DWK+ONm0/lFMNu6hgyIW0MjZq3CxyuURmHdzCGt+aojqvf90zMB9rzNvjxlks6tdm
fUnEMjfRYfNehFFrhkYTfnRUxH+WlVkNMElINjw7qWWUeWqMvQw7vgU+EldiT5aZCT5a7WQ+Qn5h
eoZdo3kBrIdad66C9NGmC9pt85A/rrg5aDvH9f8AVelpUHzHCPzp4XrgvTM5d/ogn8l/7K5M0zdi
2+e39lBArCfmeLgJH1Jyz/lpN28vC9IkZDcC1vz0ejx6NbyX42I4CrWrkyb8y0j1lfQHuD3vIzem
svbZm1ptc4XHPaRHMDIF+YMDatRr5z9xsGfN1jH6G8w27GjklzCpYRk6THGkncTduFfRlWC4ZSuk
To9UUUUUUIooooiKKKKIiiiiiJDKwcHMUJl48WSg7FmRXH5nBpvH0/sMTh49txEdexlgjBHzELT+
irCcgGEiBydUOOBLmMSeZCAABYcAKKKKqrqD67/0P1D/AJXm/wCHkoo67/0P1D/leb/h5KKIuehl
B6H6eB7DteDf7vHVa636W6gaQ7j05OMfLDrJkRXVVl0o0SScxlNnVXKn5Ks3Qn+iOnv8rwv8PHU0
yIQQw1A9oPEUZ1phzTxTuhU9KpHQnTGZg48U24THLykVVM1gFsmoxwQ8BdELFtXeaR37o7dN13re
MsrHyMjAXGwHLXPMUiS7D9Hxdhq+qiqAFFgLWA7LDuqjdY5O6bb1Fj7juORm4/SaRxJz9vkCLBkG
TSz5qW1PEwIFx2VBAZmWkN1kjllkj3j+GUZgdA9QQQbLLIEObFPkSbm+viFnGgFTbxlRTvZNk6z2
bZ8rYocPGliCTejZ4kCszyA2LIQbE37acR+8XIn6ibb8bAEu3xZpwHlTmtMpX6eSQkTRiIHhbXq+
alF643j+A+sTYGOu15M0UWBGZ257LLkLjq8o5YReBLWDVAiFtPzLPMEZLJAm5iOP4KhR7td7wts2
mbEymn3Hb5op3w5JByE4lpli8I7TS8/QG85eDv0DaIJs/Mjy8Il7qdFzpfTfT2nuqZ3vrbNwcrcc
PCwUysjDysDEhDyMgkbPW4LtobRoqK6g6j3/AAl6gbDWKPctvhwGyHlmkkx15oOsY8LRkA8fy9tT
aEl5puTUmJJL6dN3vTc9CbtuG27imRjHA3DJiiRMiXKOQJDEbhWAVdI4cKmOjundww9ylz9xw2xs
rkLBz2yufzApvYLpFgO69K7l1tnbTk5O3Z2HF/EhBiyYKxykx5EuTL6O6BmRWHLe36PZSG1Q7j1N
uO65eVuuVgR7bnPhY+BgyiJEGPp/aT8CZTKTfxcNNLQFXJ5hnlCWMs0leFtbh2UE2+bvqh7X7ysj
cN49Gh28vtz5GRiJKgmMkZx9Q50x5XJEbstuD3HfXuz9cdR7km3SPt2NjjfMaebbrTs5SSDjbJtG
dKupuNN+PA1K41fB2UVmO3e8be8XpvYvTYoJ913mOaWOcmZohDCfpyLFEX1HUAFF/lNTm3dab5uu
47Xh4e1LjemYfp2cMx3jfHUS8lowgjuzcDa9vLRFcqK8BuAfLXtERRRRREV8/dTf6k3b/wC9yf8A
+16+gawDqqN4+pt1VxpJy52APkaRmU/lBova8i/u5f8ASPeo6CeXHmSeI6ZYiGQkBgCOzgwINONy
3fcN0lWbPl50iDSraUU28ngVb1xts8GPuGNPkRrNjxSo00TAMGQEa1IPlFWnNi6TxNvyUx3gyMrA
ikhjcEN6S+UyGOVbjjyFLD81F7WXJGGSP7ZlI0EgHZ+nhwVZzYt1nzpXzIpTmzS6ZQ8ZVzM3HTps
PEb9lq5fJz1jjwHLKuNKzpAVsUlbSr8LXv4ALGrpk7ptAefHxJsVMbH3iDJX6AvjnQNcLW46WHG3
YvyVCdSZ23ZsE00MePHkpuE4RoBZ3xyAyO5uS12/Sos8WeUzGJxMOFO7SlEPldc4EWRkywZePFLI
cjImlxbLzGsvM1SRWU/NaofH3PMgz/4hr5uSS5kaW7a+YCkgfjc6lYg1M+nYsuD05BPOrpFNL6bG
zXARp0P7UHuK+Wn0UWxbjPKQ234MOFuMdg7LHzMJNYJXVcylu/8AsoqiYgJX4hVwTGLdkG0P6VAn
qXejBBjnI/Y4pVoFEcY0lbWIIS/dx8vfS7bx1S27RuTKNxjQpHAsCj9m68wr6MsYUqynUfDx7amZ
PVj+FZhgixZZS2YHLTRxSKeY5xWhV1LsAmnTyzY9hr3Ij2yXqmDdJ8zEl26SOJHTmqWBTDEfjTus
6UVfFxdr9gBoz1iKkNRv8yg49/6kxppN1Erqc4hWmeJGikMVrBVdDH+z7tI8NeR5PVGTgSCJcmfA
k5iyssReNmlcSOXbSQWLKDc8eFWDH3HZsv8Ah2NlnGk9G2oCBHMcaLlmc61d3UorcsXs403+U1E5
W84uBuWVHh4sYxXy8TLEcUodAcYOzIjqukh2kPZ2UVoyuJEcERIVqAzRLBtNAo2XO3mLNi3GVpYs
qMhIpiuixgAj0KLBfALAj89Kt1PvjZhzDk3mMfJK8uPlGO+rQYdHLtfjbT28a93rqLK3mDGTKjjS
TGaVuZGNOvm8ssWX9YurMT3lqiaLohjEog5McBJjFmEmi9A/JPsveM7MimTJcStkzLkTSkeNnRDH
GDbhpRWNgB312N/3YYSYHPBxY10ohjjJVdWuwcrq7T5ajqKK/hY2AtiwLimhUtJ1Vv0mVHlvk3yY
SzJKI4g15FMb3sniurEcaaZ+67huJQ5kxlEQIjSwVFubnSiAKL9/CmlFFEcWOJBjCIIoCAAyk5+p
N7nxfRZMpuQY1hZVVVJjUABGZFDFbAcCaE6k3lBIFyBeVFiZzHGXCKnJUI5TUng4XUioyiieDiZr
It6Apzdurdzz5LRN6LjgQFYkCFtWOiqpaUIrt4l1AHspE9U760MkD5JMM3NEg0Rhis9+cofRqCve
5A4X41E0UUDb4QBEY4sNKOpHeN3O4nFjRGixMGEQY0UknNYKCSSz6UBJv3KOAAqOooorxhGERGIY
BFFFFFZFFFdRxvLIsaDU7kKqjvJNgKKF9JUUUUXwiKKKKIiiik58iDHQPPIsSMyoGcgAs5CqvHvJ
NESlFNcvddswpooMzLhxpsg6YIpZFRnNwvgViCeJAp1REUUjk5eLihTkSrEJCyoXNrlUeVgPmRGb
5hQmZiu6xpKju+rSqsCfBbX2eTUL0RLUUUURFFFJmeFZ0xy4E8itIkd/EUjKK7AeRS63+eiJSiii
iIpvmRSyR6Yzw/SA7TTiiiLKer/dph7lJJnbYRgbn2tYHlS//wAiDsPyis1y8veNjlfbN7xdUQ7c
ecGSNwO+Jvl8qm9fTORiRzC54P5f7arm/wDTG3brjtibljrPE30S3aD5UYcRRSF8v7pNjy5TGKBY
o08MalmZtIPAO3DVbuPkpqpNyBpBAuABf+utc3L3JwPkE425PHD3I8YdgP8Af1C9GN7mdojt6Rlz
zHvC6YwfzXqHSqyQNL3OV+YAf1V4dJPjct85rcsT3W9KQkE4RmYd8rs39lTOJ0fseNbkbfBFbvEa
k/8ANejoy+e4MKec2gxpJT/sIzf1A1K4vR/U2Rbk7XMAe91EY/5iK+g4ttjQAIiqB+qAP6qXXAH6
t6OjBYXje7Lqyb/qJBjA97yaj/yg1K43ue3B7HJ3FE8oiiJP52IrZk24/q0sm2N3i1HUssqxfc5t
C29IyciY/OqD/lFTGJ7rOloCD6EJT5ZWZz/Sa0RNtHzfkpZMBRUKWUd0ntcO1K2JiRrDikX5SKFU
MO+rLSOPAsScBx8tLVZUKKzxveFvbnVHBjRo3FUZZHIHkLCVL/mrQ6xfGzBiyRTq6LJEVZdViLjs
uG4UXo+XYYZPEugJEWs/S6sn4gb/AP3eJ9nL5+j8QN//ALvE+zl8/RkZz50m24MsqyxZmGMmZAVV
mMbTOXDBHPYnHSOIrr0Db4HycMTnGxM3FxZxJMrEIXyI4+BMaHta3EDt42ouqzbhhLCATyrR2XP4
gb//AHeJ9nL5+j8QN/8A7vE+zl8/Sf8AC9ljSV8hcpCZ5cZIkR5HiMYBXmLHE9y+oN3C3Zeojpo4
W6STNLDI0EJiRmDFSDKxVbLHHMzHh8g8porjDtjCUxhpFnpzpRTf4gb/AP3eJ9nL5+j8QN//ALvE
+zl8/UVtOScXrR9oEJKxy5GPd+JdFWTSSun9IAGkMLGy48CfP3Hb8iRo2jWLBivHKyyF15zlkchA
U0/R4misdttwa4o1ETHR5XuB7lOfiBv/APd4n2cvn6PxA3/+7xPs5fP1HzbZDjZEwMU+4J6YuGsO
MVV4Q8ccuqY6JLtd9NuAup413kYHM25kOScqTbPT1gx4ABLOsUqRo2rRbSmrUwHHyUVfB2vZ/bi0
uLcw/wCHT38QN/8A7vE+zl8/R+IG/wD93ifZy+frO8fOzWyYrMZWLraJiQrm/wBE6SvA/PTrqVMX
H3eeHBmLwLbUocuschF5Ikk/TVGuA1F1fTsF4gYRcgnSlFo2477k7x7veppMmNElh27NUmO4U3xp
D9FixH56KrXTX/tt1l/9ll/4SSii8n5bH9S8Bhbdpw7rrQOhP9EdPf5Xhf4eOp2sA2P/ANF2/wD9
xP8Atof/AE7/ALL/AKa/9p/9H+7/ANm1PvidReatxqD3no/Zt6zYsvcOdKItN8YTOuPJoOpDLCDp
bSePGsq+J1HxOoi1ZOkdpj3ht2hbIgmkk58sEc8i48kunRzZIAdBYgAE02Hu/wCmxBnYoilGDuIt
JhiZxBGdfN1QRqQI21+K699Zl8TqPidRFp+F0H09iBiqTTSyZEGbLNPM8kj5GP8A9ORnck38vdTr
M6T2TNbcmyYS7bxHHDmnURrWEER2t2ab3rJvidR8TqiicelaHL0Y8vUWzZUjo+29PRucNpGeXLkm
kGi80jniq3uO+/G9Pdw6G2LO3M7qefiZ0hQzyYc8kAm5Z8HOWMhXt5SL91Zf8TqPidSiLVcfo7Z8
Xcpc/GM8HOLtJiJM64xeQEPJ6ODo1G5N/LSuJ0ts2Gm2xwQlU2dJY8IFidKzLok1X+lceWsl+J1H
xOqUWlj3edOJhx4kIyIExpnnxJIp5ElxzJ9OOCQHUkZ/U7KlMPp/bsTKizIw75UOKuCssrtIxhVu
YFbVe51cb1kHxOo+J1EW40Vh3xOo+J1EW40Vh3xOo+J1EW41TOsvd5HvuSdwwZlxs5gFlWQHlyaR
ZWJW5U24dhqg/E6j4nUXVsfmfHHy3fb1W8XfgpX8IupP3nC+0l8zR+EXUn7zhfaS+ZqK+J1HxOov
b+7/AA/YpX8IupP3nC+0l8zR+EXUn7zhfaS+ZqK+J1HxOon3f4fsUr+EXUn7zhfaS+Zo/CLqT95w
vtJfM1FfE6j4nUT7v8P2KV/CLqT95wvtJfM0fhF1J+84X2kvmaividR8TqJ93+H7FK/hF1J+84X2
kvmaPwi6k/ecL7SXzNRXxOo+J1E+7/D9ilfwi6k/ecL7SXzNH4RdSfvOF9pL5mor4nUfE6ifd/h+
xSv4RdSfvOF9pL5mj8IupP3nC+0l8zUV8TqPidRPu/w/YpX8IupP3nC+0l8zR+EXUn7zhfaS+ZqK
+J1HxOon3f4fsUr+EXUn7zhfaS+Zo/CLqT95wvtJfM1FfE6j4nUT7v8AD9ilfwi6k/ecL7SXzNH4
RdSfvOF9pL5mor4nUfE6ifd/h+xSv4RdSfvOF9pL5mj8IupP3nC+0l8zUV8TqPidRPu/w/YpX8Iu
pP3nC+0l8zR+EXUn7zhfaS+ZqK+J1HxOon3f4fsUr+EXUn7zhfaS+Zqd6V92B23Oi3DdZ48iXHYP
DBCCUDj6LszhSbdoFu2qb8TqPidRY7n6t4MrrbW7VjXNxW40Vh3xOo+J1F4C3GisO+J1HxOoi3Gm
e57Rt26wpBuEAyIonEqKSws630t4SOy9Y18TqPidRFrM217jFvM+44LwMubFDDNHkBiUMLOQ0ZTu
YSG6nvF71FRdG5xmX0jM1QCRWnCPMGyQsryl5jr4NpbTZeHb3WAzv4nUfE6iK/eo+5aoyc1ZDCJR
FM7Sl41fDmwkiQaraVaXmavpXvS7dHZw9KEGWsIyDO5ZNYZ2n5BKyaWHC8bC4N7N5azr4nUfE6iL
RB0ZmsXkky9DDU2LDG8ojx2MyzDR4vEAFPb5TbhTmLpzdI9nz8BcpDJlZAmid7uVjLIzqzuvEnS1
iyt8uqsy+J1HxOoiuU3R3UvouagyDJNDi8nElWV1kmcbe2LoUawiq0rAkvY3W/kIeT9L7tiwSZkM
hmy0XIOPjwMzFJJjhPGY3yJB4RLia3BPEOw+eg/E6j4nURbLtGC+BtuPiSSGaaJBzpiSS8jeKR+P
6zkmnlYd8TqPidRFuNFYd8TqPidRFuNcvGkilXFwaxD4nUfE6iLXZ9tJY6ASPmpL+Ft+rWT/ABOo
+J1FZayu1EdxpVdtA/RrIfidR8Tqr1qepbIuEo/R/opRcYDutWL/ABOo+J1KKe0trWG3dXoiHkrE
/idR8TqUUG5bcEFehR21iHxOo+J1TRVqtxorDvidR8TqlQtxrF5Pdj1arsq48cigkBxKgBHlszA0
2+J1HxOovV8p+a/d+X8P8t3iP0szJ2nu864SSORItMkItE4yEDIB+qQ/Dtr2T3fddS35sZk1Czas
hDcX1cbv5eNM/idR8TqL1PuT/wDrP/1J8vQfXy8zSGXnC0tslRrAFrN4+PDy1xD7vOuMfUYIuTzB
pfl5CLqU/onS/EU0+J1HxOoo+4sf+M1H73qTv8O+t+dz+T+37eb6Qmvst9LXelF6D6/WYTqGWcDS
JRlKHC/q6td7Uw+J1HxOoh+o8fltON2iew9AddwO7wIYnk4SMmSilr/rFX41wnu662j06IQmi+jT
kILavpWs/C9NfidR8TqKfuVf+N095L/hn1f+6p9tH9aj8M+r/wB1T7aP61IfE6j4nUVvun/z/wBS
tGN05uexe7jquPcVWOXIwcxlRWD2VcWQXJW440VSd8/9F3D/ANxP+2m/9R/7L/pt/wB3/wDR/vP9
m9FF43/k/UvyeNd02d3r0X//2Q==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: 7bit
Content-Location: http://rmd.atdmt.com/tl/DocumentDotWrite.js

function DocumentDotWrite(s){document.write(s);}

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_003D_01CB4AF6.0F993460"


------=_NextPart_001_003D_01CB4AF6.0F993460
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/content/89652/careers-criminal-justice.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Careers in criminal justice</TITLE>
<META content=3D"text/html; charset=3DISO-8859-1" =
http-equiv=3DContent-Type>
<META name=3Dkeywords=20
content=3D"Pathfinder, dh education, Pallavi Deshpande, criminal, =
defence lawyer, Careers,criminal, justice">
<META name=3Ddescription=20
content=3D"Pallavi Deshpande offers an inside look at the life of a =
criminal defence lawyer and tips for breaking into the field"><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.deccanherald.com/css/style.css"><LINK =
rel=3Dstylesheet=20
type=3Dtext/css =
href=3D"http://www.deccanherald.com/css/comments_style.css"><LINK=20
rel=3Dstylesheet type=3Dtext/css =
href=3D"http://www.deccanherald.com/css/tabber.css"=20
media=3Dscreen><LINK rel=3Dstylesheet=20
href=3D"http://www.deccanherald.com/css/js_color_picker_v2.css"=20
media=3Dscreen><NOSCRIPT>
<META content=3D"1; =
URL=3Dhttp://www.deccanherald.com/enable_javascript.html"=20
http-equiv=3DRefresh></NOSCRIPT>
<SCRIPT language=3Djavascript=20
src=3D"http://www.deccanherald.com/js/script.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.deccanherald.com/js/ajax_request.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.deccanherald.com/js/comments.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.deccanherald.com/js/color_functions.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.deccanherald.com/js/js_color_picker_v2.js"></SCRIPT>
<!--
	 added for tabber
-->
<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.deccanherald.com/js/tabber.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript>

		/* Optional: Temporarily hide the "tabber" class so it does not =
"flash"
		   on the page as plain HTML. After tabber runs, the class is changed
		   to "tabberlive" and it will appear. */

			document.write('<style =
type=3D"text/css">.tabber{display:none;}<\/style>');
		</SCRIPT>
<!--
	//ends tabber
-->
<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.deccanherald.com/js/tiny_mce/tiny_mce_src.js"></SCRIPT>=


<SCRIPT type=3Dtext/javascript>
		function CheckMeta()
		{
		   for (var i=3D0; i < document.search_form.restrict.length; i++){
			  if (document.search_form.restrict[i].checked){
				  var status =3D document.search_form.restrict[i].value;
				}
		   }

		   if(status =3D=3D 'yes'){
				document.search_form.meta.value=3D'web*vs%3Ddeccanherald.com';
		   }
		   if(status =3D=3D 'no'){
				document.search_form.meta.value=3D'';
		   }
		}

	</SCRIPT>

<STYLE type=3Dtext/css>#vert_productsandservices {
	POSITION: static
}
#horiz_productsandservices {
	MARGIN: 0px 0px 10px
}
#productsandservices .yuimenuitemlabel {
	ZOOM: 1
}
#productsandservices .yuimenu .yuimenuitemlabel {
	ZOOM: normal
}
</STYLE>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.deccanherald.com/js/yahoo-dom-event.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.deccanherald.com/js/container_core.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.deccanherald.com/js/vertical_menu.js"></SCRIPT>
<!--
<script type=3D"text/javascript" src=3D"js/vertical_menu.js"></script>
-->
<SCRIPT type=3Dtext/javascript>

		/*
			 Initialize and render the Menu when its elements are ready
			 to be scripted.
		*/

		YAHOO.util.Event.onContentReady("vert_productsandservices", function =
() {

			/*
				 Instantiate a Menu:  The first argument passed to the
				 constructor is the id of the element in the page
				 representing the Menu; the second is an object literal
				 of configuration properties.
			*/

			var oMenu =3D new YAHOO.widget.Menu("vert_productsandservices", {
													position: "static",
													hidedelay:  750,
													lazyload: true });

			/*
				 Call the "render" method with no arguments since the
				 markup for this Menu instance is already exists in the page.
			*/

			oMenu.render();

		});


		/*
			 Initialize and render the MenuBar when its elements are ready
			 to be scripted.
		*/

		YAHOO.util.Event.onContentReady("horiz_productsandservices", function =
() {

			/*
				 Instantiate a MenuBar:  The first argument passed to the
				 constructor is the id of the element in the page
				 representing the MenuBar; the second is an object literal
				 of configuration properties.
			*/

			var oMenuBar =3D new =
YAHOO.widget.MenuBar("horiz_productsandservices", {
														autosubmenudisplay: true,
														hidedelay: 750,
														lazyload: true });

			/*
				 Call the "render" method with no arguments since the
				 markup for this MenuBar instance is already exists in
				 the page.
			*/

			oMenuBar.render();

		});

	</SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 8.00.7600.16625"></HEAD>
<BODY style=3D"MARGIN: 0px"><!-- <div class=3D"outerx" =
style=3D"width:995px;">
	<div class=3D"innerx"> -->
<TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 width=3D960 =
align=3Dcenter>
  <TBODY>
  <TR>
    <TD vAlign=3Dtop>
      <STYLE type=3Dtext/css>#vert_productsandservices {
	POSITION: static
}
#horiz_productsandservices {
	MARGIN: 0px 0px 10px
}
#productsandservices .yuimenuitemlabel {
	ZOOM: 1
}
#productsandservices .yuimenu .yuimenuitemlabel {
	ZOOM: normal
}
</STYLE>

      <SCRIPT type=3Dtext/javascript=20
      =
src=3D"http://www.deccanherald.com/js/yahoo-dom-event.js"></SCRIPT>

      <SCRIPT type=3Dtext/javascript=20
      src=3D"http://www.deccanherald.com/js/container_core.js"></SCRIPT>

      <SCRIPT type=3Dtext/javascript=20
      src=3D"http://www.deccanherald.com/js/vertical_menu.js"></SCRIPT>
<!--
<script type=3D"text/javascript" src=3D"js/vertical_menu.js"></script>
-->
      <SCRIPT type=3Dtext/javascript>

		/*
			 Initialize and render the Menu when its elements are ready
			 to be scripted.
		*/

		YAHOO.util.Event.onContentReady("vert_productsandservices", function =
() {

			/*
				 Instantiate a Menu:  The first argument passed to the
				 constructor is the id of the element in the page
				 representing the Menu; the second is an object literal
				 of configuration properties.
			*/

			var oMenu =3D new YAHOO.widget.Menu("vert_productsandservices", {
													position: "static",
													hidedelay:  750,
													lazyload: true });

			/*
				 Call the "render" method with no arguments since the
				 markup for this Menu instance is already exists in the page.
			*/

			oMenu.render();

		});


		/*
			 Initialize and render the MenuBar when its elements are ready
			 to be scripted.
		*/

		YAHOO.util.Event.onContentReady("horiz_productsandservices", function =
() {

			/*
				 Instantiate a MenuBar:  The first argument passed to the
				 constructor is the id of the element in the page
				 representing the MenuBar; the second is an object literal
				 of configuration properties.
			*/

			var oMenuBar =3D new =
YAHOO.widget.MenuBar("horiz_productsandservices", {
														autosubmenudisplay: true,
														hidedelay: 750,
														lazyload: true });

			/*
				 Call the "render" method with no arguments since the
				 markup for this MenuBar instance is already exists in
				 the page.
			*/

			oMenuBar.render();

		});

	</SCRIPT>

      <SCRIPT type=3Dtext/javascript>

	   function YBg(showIt){
			if (showIt){
				document.getElementById('q').style.backgroundImage=3D"none";
			}
			else{
				if (document.getElementById('q').value.length<=3D0){
					=
document.getElementById('q').style.backgroundImage=3D"url(http://www.ripp=
le.org/images/google-logo-small.gif)";
				}
			}
		}

	</SCRIPT>

      <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 width=3D"100%">
        <TBODY>
        <TR>
          <TD>
            <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
              <TBODY>
              <TR>
                <TD style=3D"PADDING-LEFT: 5px" align=3Dleft><A=20
                  class=3DHeaderBarSmall=20
                  =
href=3D"http://www.deccanherald.com/login.php">Login</A> | <A=20
                  class=3DHeaderBarSmall=20
                  =
href=3D"http://www.deccanherald.com/register.php">Register</A></TD>
                <TD class=3DUpdateText align=3Dright>News updated at =
10:53 PM IST=20
                  &nbsp; <A =
href=3D"http://www.deccanherald.com/rss.html"=20
                  align=3D"center"><IMG border=3D0=20
                  =
src=3D"http://www.deccanherald.com/images/rss_image.jpg"><SPAN=20
                  class=3DRssStyle>&nbsp; RSS </SPAN></A></TD></TR>
              <TR>
                <TD=20
                style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/line.jpg) repeat-x; HEIGHT: 5px"=20
                colSpan=3D2></TD></TR>
              <TR>
                <TD=20
                style=3D"TEXT-ALIGN: center; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px"><A=20
                  title=3D"Deccan Herald" =
href=3D"http://www.deccanherald.com/"><IMG=20
                  border=3D0 alt=3D"Deccan Herald"=20
                  =
src=3D"http://www.deccanherald.com//images/New_DH_Logo.gif"></A>=20
                  <BR><BR><SPAN=20
                  style=3D"BORDER-BOTTOM: red 0px solid; BORDER-LEFT: =
red 0px solid; COLOR: #797979; FONT-SIZE: 11px; BORDER-TOP: red 0px =
solid; FONT-WEIGHT: bold; BORDER-RIGHT: red 0px solid">Thursday=20
                  2 September 2010 <!---Bangalore--></SPAN><BR></TD>
                <TD>
                  <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
                    <TBODY>
                    <TR>
                      <TD colSpan=3D2 align=3Dmiddle><!-- BEGIN STANDARD =
TAG - 728 x 90 - ROS: Yahoo msnger - DO NOT MODIFY --><IFRAME=20
                        height=3D90 marginHeight=3D0 src=3D"about:blank" =
frameBorder=3D0=20
                        width=3D728 marginWidth=3D0 =
scrolling=3Dno></IFRAME><!-- END TAG -->
                        <DIV=20
                        style=3D"POSITION: absolute; VISIBILITY: hidden; =
TOP: 0px; LEFT: 0px"=20
                        id=3Dbeacon_679><IMG style=3D"WIDTH: 0px; =
HEIGHT: 0px"=20
                        alt=3D""=20
                        =
src=3D"http://www.deccanherald.com/Openads/adlog.php?bannerid=3D679&amp;c=
lientid=3D10&amp;zoneid=3D0&amp;source=3D&amp;block=3D0&amp;capping=3D0&a=
mp;cb=3Df826e6aaeba1874010b82a0f56853b90"=20
                        width=3D0 height=3D0></DIV></TD></TR>
                    <TR>
                      <TD=20
                      style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/line.jpg) repeat-x center 50%; =
HEIGHT: 5px"=20
                      colSpan=3D2></TD></TR>
                    <TR>
                      <TD style=3D"PADDING-BOTTOM: 10px" width=3D"70%"=20
                        align=3Dmiddle><FORM id=3Dcse-search-box=20
                        action=3Dhttp://www.deccanherald.com/search.php>
                        <DIV align=3Dcenter>
                        <TABLE cellSpacing=3D2 cellPadding=3D2>
                          <TBODY>
                          <TR>
                            <TD><INPUT=20
                              =
value=3Dpartner-pub-6098511427863223:4rvf9i-8j92=20
                              type=3Dhidden name=3Dcx> <INPUT =
value=3DFORID:10=20
                              type=3Dhidden name=3Dcof> <INPUT =
value=3DISO-8859-1=20
                              type=3Dhidden name=3Die> <INPUT =
onblur=3DYBg(false);=20
                              style=3D"PADDING-BOTTOM: 0px; PADDING-TOP: =
0px" id=3Dq=20
                              class=3DSearchBoxHeader =
onfocus=3DYBg(true);=20
                              maxLength=3D100 name=3Dq> </TD>
                            <TD><INPUT class=3DsearchbtnHeader =
value=3DSEARCH type=3Dsubmit =
name=3Dsa></TD></TR></TBODY></TABLE></DIV></FORM></TD>
                      <TD style=3D"PADDING-RIGHT: 5px" align=3Dright>
                        <TABLE style=3D"TEXT-ALIGN: center" border=3D0 =
cellSpacing=3D0=20
                        cellPadding=3D0 width=3D"100%" height=3D"100%">
                          <TBODY>
                          <TR>
                            <TD=20
                            style=3D"PADDING-BOTTOM: 10px; PADDING-LEFT: =
2px; WIDTH: 195px; PADDING-RIGHT: 2px; PADDING-TOP: 10px"=20
                            colSpan=3D2 align=3Dmiddle>
                              <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                              width=3D"100%">
                                <TBODY>
                                <TR>
                                <TD vAlign=3Dtop align=3Dmiddle><A=20
                                class=3Dweather_small_title=20
                                =
href=3D"http://www.deccanherald.com/weather_details.php"><B>Weather</B></=
A><BR><FONT=20
                                style=3D"COLOR: #b02926; FONT-SIZE: =
10px; FONT-WEIGHT: bold">Max:=20
                                <SPAN=20
                                style=3D"COLOR: #b02926; FONT-SIZE: =
10px; FONT-WEIGHT: bold">28.2=B0C</SPAN></FONT><BR><FONT=20
                                style=3D"COLOR: #b02926; FONT-SIZE: =
10px; FONT-WEIGHT: bold">Min=20
                                : <SPAN=20
                                style=3D"COLOR: =
#c35150">18.7=B0C</SPAN></FONT>=20
</TD>
                                <TD=20
                                style=3D"PADDING-BOTTOM: 2px; =
PADDING-LEFT: 2px; PADDING-RIGHT: 2px; PADDING-TOP: 2px"=20
                                align=3Dmiddle><A=20
                                =
href=3D"http://www.deccanherald.com/weather_details.php"><IMG=20
                                =
src=3D"http://www.deccanherald.com/images/Generally%20cloudy.jpg"></A>=20
                                </TD>
                                <TD=20
                                style=3D"PADDING-BOTTOM: 2px; =
PADDING-LEFT: 2px; PADDING-RIGHT: 2px; PADDING-TOP: 2px"><FONT=20
                                style=3D"COLOR: #8e4a35; FONT-SIZE: =
11px; FONT-WEIGHT: bold">In=20
                                Bangalore </FONT><BR><FONT=20
                                style=3D"COLOR: #7488a3; FONT-SIZE: =
11px; FONT-WEIGHT: bold">Generally=20
                                cloudy</FONT>=20
                          =
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></T=
ABLE></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD=20
          style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/line.jpg) repeat-x center 50%; =
HEIGHT: 5px"=20
          colSpan=3D2></TD></TR>
        <TR>
          <TD>
            <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
              <TBODY>
              <TR>
                <TD=20
                style=3D"TEXT-ALIGN: center; PADDING-BOTTOM: 0px; =
BACKGROUND-COLOR: #244c7d; PADDING-TOP: 0px"=20
                width=3D"90%">
                  <DIV=20
                  style=3D"BORDER-BOTTOM: #000000 0px dotted; =
BORDER-LEFT: #000000 0px dotted; MARGIN-BOTTOM: 0px; BORDER-TOP: #000000 =
0px dotted; BORDER-RIGHT: #000000 0px dotted"=20
                  id=3Dhoriz_productsandservices class=3D"yuimenubar =
yuimenubarnav">
                  <DIV=20
                  style=3D"BORDER-BOTTOM: #000000 0px dotted; =
BORDER-LEFT: #000000 0px dotted; MARGIN: 0px; BORDER-TOP: #000000 0px =
dotted; BORDER-RIGHT: #000000 0px dotted"=20
                  class=3Dbd>
                  <UL class=3Dfirst-of-type>
                    <LI class=3D"yuimenubaritem first-of-type"><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenubaritemlabel=20
                    =
href=3D"http://www.deccanherald.com/">&nbsp;Home&nbsp;</A>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.deccanherald.com/content/89652/careers-criminal-justic=
e.html#">&nbsp;News&nbsp;</A>
                    <DIV class=3Dyuimenu>
                    <DIV class=3Dbd>
                    <UL>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/72/district.html">&nbsp;Dist=
rict&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/73/city.html">&nbsp;City&nbs=
p;</A>
                      <DIV class=3Dyuimenu>
                      <DIV class=3Dbd>
                      <UL>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/255/mysore-city-herald.html"=
>&nbsp;Mysore=20
                        City Herald&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/252/mangalore-city-herald.ht=
ml">&nbsp;Mangalore=20
                        City Herald&nbsp;</A></LI></UL></DIV></DIV>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/71/state.html">&nbsp;State&n=
bsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/70/national.html">&nbsp;Nati=
onal&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/158/international.html">&nbs=
p;International&nbsp;</A></LI></UL></DIV></DIV>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.deccanherald.com/contents/168/business.html">&nbsp;Bus=
iness&nbsp;</A>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.deccanherald.com/supplements.php">&nbsp;Supplements&nb=
sp;</A>
                    <DIV class=3Dyuimenu>
                    <DIV class=3Dbd>
                    <UL>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/127/sunday.html">&nbsp;Sunda=
y&nbsp;</A>
                      <DIV class=3Dyuimenu>
                      <DIV class=3Dbd>
                      <UL>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/140/sportscene.html">&nbsp;S=
portscene&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/148/sunday-herald.html">&nbs=
p;Sunday=20
                        Herald&nbsp;</A>
                        <DIV class=3Dyuimenu>
                        <DIV class=3Dbd>
                        <UL>
                          <LI class=3Dyuimenuitem><A=20
                          style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                          class=3Dyuimenuitemlabel=20
                          =
href=3D"http://www.deccanherald.com/contents/247/travel.html">&nbsp;Trave=
l&nbsp;</A>
                          <LI class=3Dyuimenuitem><A=20
                          style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                          class=3Dyuimenuitemlabel=20
                          =
href=3D"http://www.deccanherald.com/contents/149/articulations.html">&nbs=
p;Articulations&nbsp;</A>
                          <LI class=3Dyuimenuitem><A=20
                          style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                          class=3Dyuimenuitemlabel=20
                          =
href=3D"http://www.deccanherald.com/contents/152/books.html">&nbsp;Books&=
nbsp;</A>
                          <LI class=3Dyuimenuitem><A=20
                          style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                          class=3Dyuimenuitemlabel=20
                          =
href=3D"http://www.deccanherald.com/contents/151/art-culture.html">&nbsp;=
Art=20
                          &amp; Culture&nbsp;</A>
                          <LI class=3Dyuimenuitem><A=20
                          style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                          class=3Dyuimenuitemlabel=20
                          =
href=3D"http://www.deccanherald.com/contents/150/entertainment.html">&nbs=
p;Entertainment&nbsp;</A></LI></UL></DIV></DIV></LI></UL></DIV></DIV>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/121/monday.html">&nbsp;Monda=
y&nbsp;</A>
                      <DIV class=3Dyuimenu>
                      <DIV class=3Dbd>
                      <UL>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/129/economy-business.html">&=
nbsp;Economy=20
                        &amp; Business&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/130/art-review.html">&nbsp;A=
rt=20
                        Review&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/128/metrolife.html">&nbsp;Me=
trolife&nbsp;</A></LI></UL></DIV></DIV>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/122/tuesday.html">&nbsp;Tues=
day&nbsp;</A>
                      <DIV class=3Dyuimenu>
                      <DIV class=3Dbd>
                      <UL>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/132/spectrum.html">&nbsp;Spe=
ctrum&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/133/science-technology.html"=
>&nbsp;Science=20
                        &amp; Technology&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/134/environment.html">&nbsp;=
Environment&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/131/metrolife.html">&nbsp;Me=
trolife&nbsp;</A></LI></UL></DIV></DIV>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/123/wednesday.html">&nbsp;We=
dnesday&nbsp;</A>
                      <DIV class=3Dyuimenu>
                      <DIV class=3Dbd>
                      <UL>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/136/dh-avenues.html">&nbsp;D=
H=20
                        Avenues&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/137/cyber-space.html">&nbsp;=
Cyber=20
                        Space&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/135/metrolife.html">&nbsp;Me=
trolife&nbsp;</A></LI></UL></DIV></DIV>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/124/thursday.html">&nbsp;Thu=
rsday&nbsp;</A>
                      <DIV class=3Dyuimenu>
                      <DIV class=3Dbd>
                      <UL>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/138/metrolife.html">&nbsp;Me=
trolife&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/139/dh-education.html">&nbsp=
;DH=20
                        Education&nbsp;</A></LI></UL></DIV></DIV>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/125/friday.html">&nbsp;Frida=
y&nbsp;</A>
                      <DIV class=3Dyuimenu>
                      <DIV class=3Dbd>
                      <UL>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/143/open-sesame.html">&nbsp;=
Open=20
                        Sesame&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/142/dh-realty.html">&nbsp;DH=
=20
                        Realty&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/141/metrolife.html">&nbsp;Me=
trolife&nbsp;</A></LI></UL></DIV></DIV>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/126/saturday.html">&nbsp;Sat=
urday&nbsp;</A>
                      <DIV class=3Dyuimenu>
                      <DIV class=3Dbd>
                      <UL>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/126/movie-review.html">&nbsp=
;Movie=20
                        Review&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/146/she.html">&nbsp;She&nbsp=
;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/145/living.html">&nbsp;Livin=
g&nbsp;</A>
                        <LI class=3Dyuimenuitem><A=20
                        style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                        class=3Dyuimenuitemlabel=20
                        =
href=3D"http://www.deccanherald.com/contents/144/metrolife.html">&nbsp;Me=
trolife&nbsp;</A></LI></UL></DIV></DIV></LI></UL></DIV></DIV>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.deccanherald.com/contents/76/sports.html">&nbsp;Sports=
&nbsp;</A>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.deccanherald.com/contents/161/entertainment.html">&nbs=
p;Entertainment&nbsp;</A>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.deccanherald.com/contents/118/opinion.html">&nbsp;Opin=
ion&nbsp;</A>
                    <DIV class=3Dyuimenu>
                    <DIV class=3Dbd>
                    <UL>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/215/in-perspective.html">&nb=
sp;In=20
                      Perspective&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/216/right-middle.html">&nbsp=
;Right=20
                      in the Middle&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/content/93414/todays-letters.html">&n=
bsp;Net=20
                      mail&nbsp;</A></LI></UL></DIV></DIV>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.deccanherald.com/contents/206/columns.html">&nbsp;Colu=
mns&nbsp;</A>
                    <DIV class=3Dyuimenu>
                    <DIV class=3Dbd>
                    <UL>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/226/rajdeep-sardesai.html">&=
nbsp;Rajdeep=20
                      Sardesai&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/223/m-j-akbar.html">&nbsp;M =

                      J Akbar&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/220/khushwant-singh.html">&n=
bsp;Khushwant=20
                      Singh&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/213/kuldip-nayar.html">&nbsp=
;Kuldip=20
                      Nayar&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/207/oasis.html">&nbsp;Oasis&=
nbsp;</A></LI></UL></DIV></DIV>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.deccanherald.com/contents/119/analysis.html">&nbsp;Ana=
lysis&nbsp;</A>
                    <DIV class=3Dyuimenu>
                    <DIV class=3Dbd>
                    <UL>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/211/panorama.html">&nbsp;Pan=
orama&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/187/special-features.html">&=
nbsp;Special=20
                      Features&nbsp;</A>
                      <LI class=3Dyuimenuitem><A=20
                      style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                      class=3Dyuimenuitemlabel=20
                      =
href=3D"http://www.deccanherald.com/contents/188/sunday-spotlight.html">&=
nbsp;Sunday=20
                      Spotlight&nbsp;</A></LI></UL></DIV></DIV>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"mailto:dhfeedback@deccanherald.co.in">&nbsp;Feedback&nbsp;</A>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.deccanherald.com/archives.php">&nbsp;Archives&nbsp;</A=
>
                    <LI class=3Dyuimenuitem><A=20
                    style=3D"CURSOR: pointer; FONT-WEIGHT: bold; =
TEXT-DECORATION: none"=20
                    class=3Dyuimenuitemlabel=20
                    =
href=3D"http://www.careeravenues.in/JobSeeker/JSRegistration.aspx"=20
                    =
target=3D_blank>&nbsp;Jobs&nbsp;</A></LI></UL></DIV></DIV>
                  <DIV></DIV>
                  <DIV></DIV></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD=20
          style=3D"PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 0px; PADDING-TOP: 5px"=20
          class=3Dblue_bar align=3Dleft>
            <MARQUEE style=3D"PADDING-LEFT: 20px; PADDING-RIGHT: 20px"=20
            onmouseover=3Dthis.stop() onmouseout=3Dthis.start()=20
            scrollAmount=3D3>&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93516/bihar-police-decides-st=
ep-up.html">Bihar=20
            police decides to step up operations against=20
            Maoists</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93512/will-tough-dhoni-senior=
s-retire.html">Will=20
            be tough for Dhoni after seniors retire:=20
            Ganguly</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93508/two-injured-security-fo=
rces-open.html">Two=20
            injured as security forces open=20
            fire</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink =

            =
href=3D"http://www.deccanherald.com/content/93506/un-official-blackberry-=
data-requests.html">UN=20
            official: BlackBerry data requests=20
            legitimate</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93482/antony-visits-south-kor=
ea-amid.html">Antony=20
            visits South Korea amid row with=20
            China</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93481/women-get-equal-rights-=
become.html">Women=20
            get equal rights to become guardians, adopt=20
            children</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93480/vuvuzela-may-make-its-i=
ndia.html">Vuvuzela=20
            may make its India debut at =
CWG</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93478/commonwealth-express-ar=
rives-bangalore.html">Commonwealth=20
            Express arrives in =
Bangalore</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93477/sc-rap-govt-allot-25.ht=
ml">SC=20
            rap: Govt to allot 2.5 MT foodgrains for BPL=20
            families</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93474/india-pak-request-un-ot=
hers.html">India,=20
            Pak request UN, others to appoint Kishenganga=20
            umpires</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93473/red-cross-wants-work-ch=
hattisgarhs.html">Red=20
            Cross wants to work in Chhattisgarh's Naxal-hit=20
            areas</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93472/imran-should-take-over-=
pak.html">Imran=20
            should take over Pak cricket:=20
            Kapil</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93470/indian-cos-biggest-gain=
ers-among.html">Indian=20
            cos biggest gainers among Asia's 200 best 'under a=20
            billion'</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93468/we-ready-talks-maoists-=
nitish.html">We=20
            are ready for talks with Maoists:=20
            Nitish</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93467/no-tax-transaction-over=
seas-bank.html">No=20
            tax on transaction between overseas bank, India=20
            unit:CESTAT</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93466/moderate-quake-andaman-=
islands.html">Moderate=20
            quake in Andaman Islands</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =

            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93465/surge-pirate-attacks-so=
uth-china.html">Surge=20
            in pirate attacks in South China Sea:=20
            IMB</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93463/now-delhi-govt-silently=
-drops.html">Now,=20
            Delhi govt silently drops Games related=20
            projects</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93461/bumper-bumper-again-epi=
c-china.html">Bumper-to-bumper=20
            again as epic China traffic jam=20
            returns</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93460/madani-bail-plea-posted=
-sep.html">Madani=20
            bail plea posted to Sep 6 for final=20
            hearing</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93444/maoists-kill-one-four-a=
bducted.html">Maoists=20
            kill one of four abducted=20
            policemen</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93442/capgemini-buys-55-pc-st=
ake.html">Capgemini=20
            buys 55 pc stake in CPM Braxis for 233 mn=20
            euros</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93440/hpcl-plans-set-up-rs.ht=
ml">HPCL=20
            plans to set up Rs 15,000-cr refinery on west=20
            coast</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93439/rasna-plans-enter-europ=
e-west.html">Rasna=20
            plans to enter Europe, West=20
            Africa</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93438/fdi-dips-18-pc-during.h=
tml">FDI=20
            dips 18 pc during Jan-June =
2010</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93436/no-handcuffing-convenie=
nce-escorting-policemen.html">No=20
            handcuffing for convenience of escorting policemen:=20
            Court</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93434/indian-cos-hiring-activ=
ity-surges.html">Indian=20
            Cos' hiring activity surges 28% in Aug:=20
            naukri.com</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93433/sunil-mittals-son-joins=
-bhartis.html">Sunil=20
            Mittal's son joins Bharti's=20
            subsidiary</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93428/chances-us-recession-25=
-30.html">Chances=20
            of US recession 25-30 %:=20
            Greenspan</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93427/53-commonwealth-nations=
-71-teams.html">53=20
            Commonwealth nations, but 71 teams at Delhi=20
            Games</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93419/now-haryana-judge-decid=
es-148.html">Now=20
            Haryana judge decides 148 cases on single=20
            day</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93418/pakistan-frees-100-more=
-indian.html">Pakistan=20
            frees 100 more Indian =
fishermen</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93417/jud-collects-relief-mat=
erials-pak.html">JuD=20
            collects relief materials for Pak flood=20
            victims</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93415/god-didnt-create-univer=
se-stephen.html">God=20
            didn't create the universe: Stephen=20
            Hawking</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93413/30-days-games-delhi-rac=
es.html">30=20
            days to Games, Delhi races against time for spectacular=20
            show</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink =

            =
href=3D"http://www.deccanherald.com/content/93405/tainted-trio-opts-engla=
nd-series.html">Tainted=20
            trio 'opts out' of England=20
            series</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93404/relations-obama-bush-aw=
kward-report.html">Relations=20
            between Obama and Bush 'awkward':=20
            Report</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93403/bihar-govt-talking-maoi=
sts-kidnapped.html">Bihar=20
            Govt talking to Maoists on kidnapped policemen:=20
            Centre</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93402/nothing-has-been-proved=
-against.html">Nothing=20
            has been proved against Pak players as yet:=20
            Azhar</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93401/famous-hyderabadi-halee=
m-set-get.html">Famous=20
            Hyderabadi Haleem set to get GI=20
            tag</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93400/steep-decline-indian-st=
udent-enrolment.html">Steep=20
            decline in Indian student enrolment in=20
            Australia</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93399/curfew-continues-anantn=
ag.html">Curfew=20
            continues in Anantnag</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93398/advanced-economies-need=
-long-term.html">Advanced=20
            economies need long-term efforts to tame debt:=20
            IMF</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93397/equifax-launches-credit=
-information-service.html">Equifax=20
            launches credit information service in=20
            India</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93396/vedanta-taps-gujarat-ba=
uxite-orissa.html">Vedanta=20
            taps Gujarat for bauxite for Orissa=20
            refinery</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93393/secret-behind-footballs=
-free-kick.html">Secret=20
            behind football's best free kick=20
            revealed</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93392/maoists-kill-two-cpim-m=
en.html">Maoists=20
            kill two CPI(M) men during bandh in West=20
            Bengal</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93391/blair-explains-why-poli=
ticians-have.html">Blair=20
            explains why politicians have=20
            affairs</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93390/historic-town-us-could-=
disappear.html">Historic=20
            town in US could disappear due to climate=20
            change</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93389/gandhi-heritage-sites-p=
ortal-launched.html">Gandhi=20
            Heritage Sites portal to be launched=20
            soon</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink =

            =
href=3D"http://www.deccanherald.com/content/93388/kerala-priest-quits-chu=
rch-post.html">Kerala=20
            priest quits church post for acting in=20
            film</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink =

            =
href=3D"http://www.deccanherald.com/content/93365/veena-hands-over-proof-=
asifs.html">Veena=20
            hands over proof of Asif's links with bookies to=20
            ICC</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93387/sonia-congress-presiden=
t-record-fourth.html">Sonia=20
            to be Congress president for record fourth=20
            time</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink =

            =
href=3D"http://www.deccanherald.com/content/93335/us-blacklists-pakistani=
-taliban.html">US=20
            blacklists Pakistani =
Taliban</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93369/maoists-decide-fate-kid=
napped-bihar.html">Maoists=20
            to decide fate of kidnapped Bihar cops at 'people's=20
            court'</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93368/237-million-internet-us=
ers-india.html">237=20
            million internet users in India by 2015:=20
            Report</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93385/soon-indian-garments-ma=
de-bangladesh.html">Soon,=20
            Indian garments to be made in=20
            Bangladesh</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93382/typhoon-kompasu-hits-so=
uth-korea.html">Typhoon=20
            Kompasu hits South Korea</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =

            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93381/commission-probing-civi=
lian-deaths-kashmir.html">Commission=20
            probing civilian deaths in Kashmir starts=20
            inquiry</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93380/google-cleared-spying-z=
ealand.html">Google=20
            cleared of spying in New =
Zealand</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93378/vitamin-controversy-7-h=
aryana-students.html">Vitamin=20
            A controversy: 7 Haryana students hospitalised=20
            again</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93377/israel-concerted-effort=
-deal-terror.html">Israel=20
            for concerted effort to deal with=20
            terror</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93376/search-kidnapped-police=
men-bihar.html">Search=20
            on for kidnapped policemen in=20
            Bihar</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93372/australian-man-jailed-u=
pskirt-photography.html">Australian=20
            man jailed for upskirt=20
            photography</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93371/india-build-worlds-larg=
est-solar.html">India=20
            to build world's largest solar=20
            telescope</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93370/death-toll-lahore-suici=
de-bombings.html">Death=20
            toll in Lahore suicide bombings reaches=20
            37</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93366/five-drown-car-plunges-=
canal.html">Five=20
            drown as car plunges into canal near=20
            Bellary</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93363/homage-paid-ysr-first-d=
eath.html">Homage=20
            paid to YSR on first death=20
            anniversary</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93360/afridi-vows-put-aside-s=
pot.html">Afridi=20
            vows to put aside spot-fixing=20
            scandal</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93359/israeli-pm-seeks-histor=
ic-compromise.html">Israeli=20
            PM seeks historic compromise in Middle=20
            East</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink =

            =
href=3D"http://www.deccanherald.com/content/93357/us-hostage-taker-said-h=
e.html">US=20
            hostage taker said he had bombs strapped to=20
            body</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink =

            =
href=3D"http://www.deccanherald.com/content/93356/poonch-encounter-ends-m=
ilitants-escape.html">Poonch=20
            encounter ends, militants escape from=20
            cordon</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93355/india-suffer-second-def=
eat-womens.html">India=20
            suffer second defeat in women's hockey=20
            WC</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93353/jury-perjury-trial-kani=
shka-bombing.html">Jury=20
            for perjury trial in Kanishka bombing case=20
            selected</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93352/ban-fixers-life-warne-f=
letcher.html">Ban=20
            'fixers' for life: Warne,=20
            Fletcher</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93348/no-troops-pok-stapled-v=
isas.html">No=20
            troops in PoK, stapled visas to stay:=20
            China</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93346/sensex-ends-marginally-=
up-profit.html">Sensex=20
            ends marginally up, profit-selling erases early=20
            gains</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93345/families-abducted-bihar=
-policemen-pray.html">Families=20
            of abducted Bihar policemen pray for=20
            release</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93343/azarenka-collapses-cour=
t-us-open.html">Azarenka=20
            collapses on court at US =
Open</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93342/india-us-need-partner-b=
alance.html">India,=20
            US need to partner to balance China in Indian Ocean: US=20
            expert</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93341/chinese-girls-taught-sa=
y-no.html">Chinese=20
            girls taught to say no to =
sex</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93340/oldest-american-city-tu=
rns-445.html">Oldest=20
            American city turns 445</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A=20
            class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93338/russian-minister-asks-c=
itizens-smoke.html">Russian=20
            Minister asks citizens to smoke, drink=20
            more</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink =

            =
href=3D"http://www.deccanherald.com/content/93337/landslide-leaves-three-=
dead-57.html">Landslide=20
            leaves three dead, 57 missing in=20
            China</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A =
class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93336/us-cautions-its-citizen=
s-india.html">US=20
            cautions its citizens on India travel during=20
            CWG</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93334/air-india-operate-daily=
-mumbai.html">Air=20
            India to operate daily Mumbai-Abu Dhabi flights from Nov=20
            1</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A class=3DBlueBarLink=20
            =
href=3D"http://www.deccanherald.com/content/93333/us-hostage-crisis-over-=
gunman.html">US=20
            hostage crisis over as gunman shot dead at Discovery=20
            building,</A>&nbsp;&nbsp;&nbsp;&nbsp;</MARQUEE></TD></TR>
        <TR>
          <TD=20
          style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/line.jpg) repeat-x center 50%; =
HEIGHT: 5px"></TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD=20
    style=3D"PADDING-BOTTOM: 8px; PADDING-LEFT: 8px; PADDING-RIGHT: 0px; =
PADDING-TOP: 8px"=20
    class=3DPageContent vAlign=3Dtop align=3Dmiddle>
      <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
align=3Dcenter><!--
                    <tr><td></td></tr>
                    <tr><td></td></tr>
--><!--
					--><!--
										-->
        <TBODY>
        <TR>
          <TD vAlign=3Dtop><!-- Content Goes Here-->
            <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
              <TBODY>
              <TR>
                <TD vAlign=3Dtop>
                  <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
                    <TBODY>
                    <TR>
                      <TD class=3DBreadCrumbClient colSpan=3D2>You are =
here:=20
                        <SPAN><A =
href=3D"http://www.deccanherald.com/">Home</A> =BB=20
                        <A=20
                        =
href=3D"http://www.deccanherald.com/supplements.php">Supplements</A>=20
                        =BB <A=20
                        =
href=3D"http://www.deccanherald.com/contents/139/dh-education.html">DH=20
                        Education</A> =BB Careers in criminal =
justice</SPAN></TD></TR>
                    <TR>
                      <TD colSpan=3D2>
                        <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
width=3D"100%">
                          <TBODY>
                          <TR>
                            <TD=20
                            style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow_bg.jpg) repeat-x left =
center"=20
                            width=3D"95%">&nbsp;</TD>
                            <TD=20
                            style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow.jpg) no-repeat left =
center"=20
                            =
width=3D"5%"></TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD style=3D"PADDING-RIGHT: 4px" vAlign=3Dtop>
                        <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0 width=3D"100%"=20
                        valign=3D"top">
                          <TBODY>
                          <TR>
                            <TD vAlign=3Dtop>
                              <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                              width=3D"100%" valign=3D"top">
                                <TBODY>
                                <TR>
                                <TD class=3DStrapTitle=20
                                vAlign=3Dbottom>Pathfinder</TD></TR><!--
									-->
                                <TR>
                                <TD class=3DPageTitle>Careers in =
criminal=20
                                justice</TD></TR><!--
																		<tr>
										<td colspan=3D"2" class=3D"overviewfont">Wednesday, August 18, =
2010</td>
									</tr>
									--><!-- =
~~|ByLine|ArticleContentFont|height=3D"5px"|byline|520|10| ~~-->
                                <TR>
                                <TD class=3DSummaryStyle =
colSpan=3D2><BR><I>Pallavi=20
                                Deshpande offers an inside look at the =
life of a=20
                                criminal defence lawyer and tips for =
breaking=20
                                into the field</I> </TD></TR>
                                <TR height=3D1>
                                <TD><BR></TD></TR>
                                <TR>
                                <TD class=3Doverviewfont =
colSpan=3D2><IMG=20
                                title=3D"Skill-Building Exercise: An =
internship or part-time work with enforcement agencies, NGOs, forensic =
labs or investigative firms can add value to your resume."=20
                                alt=3D"" align=3Dleft=20
                                =
src=3D"http://www.deccanherald.com/images/editor_images/August%202010/Aug=
ust%2019%202010/dheducation-criminaljustice.jpg"=20
                                width=3D130 height=3D108>A criminal =
defence lawyer=20
                                represents an individual or a group of =
alleged=20
                                offenders as their defense counsel in =
various=20
                                courts including the Sessions Courts, =
the High=20
                                Court and the Supreme Court. Lawyers who =
are=20
                                part of the prosecution team defend the =
state=20
                                and their duty is to see that the guilty =
are=20
                                brought to book.<BR><BR>Anurag Kumar, a =
New=20
                                Delhi-based Supreme Court advocate, =
says:=20
                                =93Criminal Law practice is interesting =
because=20
                                each case is unique; the application of =
criminal=20
                                law is based on facts of the=20
                                case.=94<BR><BR><STRONG>Course=20
                                details</STRONG><BR><BR>Students who =
wish to=20
                                specialise in criminal law must have a=20
                                Bachelor=92s&nbsp; degree in law. They =
may then=20
                                follow this up with a Master=92s degree =
in=20
                                Criminology. An LLB course is typically =
a=20
                                three-year degree or a five-year =
integrated=20
                                Honors course in India.<BR><BR>Some of =
the=20
                                colleges that offer a Bachelor=92s =
degree in law=20
                                are:<BR><BR><STRONG>*</STRONG> National =
Law=20
                                School of India University,&nbsp; =
Bangalore=20
                                <BR><STRONG>*</STRONG> Symbiosis Law =
College,=20
                                Pune <BR><STRONG>*</STRONG> Faculty of =
Law,=20
                                Delhi University<BR><STRONG>*</STRONG> =
ILS Law=20
                                College, Pune<BR><STRONG>*</STRONG> =
NALSAR,=20
                                Hyderabad<BR><STRONG>*</STRONG> Mumbai=20
                                University Law College Colleges in India =
that=20
                                offer a Master=92s in Criminal Law =
include:=20
                                <BR><STRONG>*</STRONG> Tamil Nadu Dr =
Ambedkar=20
                                Law University, =
Chennai<BR><STRONG>*</STRONG>=20
                                National Law Institute, University =
Bhopal,=20
                                Madhya Pradesh<BR><STRONG>*</STRONG> =
Faculty of=20
                                Law, Delhi =
University<BR><STRONG>*</STRONG>=20
                                NALSAR, University of Law,=20
                                Hyderabad<BR><STRONG>*</STRONG> Faculty =
of Law,=20
                                Pune University<BR><BR>A Master=92s =
course in=20
                                Criminal Law covers specific topics such =
as=20
                                Criminal Law, Specific Crimes, Criminal =
Law=20
                                =97&nbsp; Practice &amp; Procedure, Code =
or=20
                                Criminal Procedure, Criminology, =
Criminal=20
                                Jurisprudence Concepts, Criminal =
Jurisprudence =97=20
                                Theory of Law, Human Rights Law (Part of =

                                Criminal Law) and Law of Evidence in =
India.=20
                                <BR><BR>To become a prosecution lawyer, =
one=20
                                needs to have at least seven to 10 years =
of=20
                                experience as a defence counsel. One is =
then=20
                                graded based on performance and chosen =
by the=20
                                state government to work as:&nbsp;=20
                                <BR><BR><STRONG>*</STRONG> Government=20
                                Advocate<BR><STRONG>*</STRONG> =
Government=20
                                Pleader<BR><STRONG>*</STRONG> Standing=20
                                Counsel<BR><STRONG>*</STRONG> Additional =
Public=20
                                Prosecutor. <BR><BR>To be chosen as =
Advocate=20
                                General of the State, one needs at least =
10=20
                                years of experience. Criminal Law =
graduates can=20
                                either join a legal firm after giving =
the Bar=20
                                exam or start their own practice. They =
work at=20
                                the Trial Court, Sessions Court or the =
High=20
                                Court. A good way to get ahead would be =
to work=20
                                for a reputed firm or lawyer.=20
                                <BR><BR>Remuneration: A law graduate who =
joins a=20
                                legal firm can expect a salary of Rs =
5,000 to=20
                                7,000 a month. One who opts to work =
under a=20
                                senior lawyer may not earn as much in =
the=20
                                beginning as payments are made on a =
case-by-case=20
                                basis.<BR><BR>Work is challenging and=20
                                interesting in equal measure, says =
Tripti=20
                                Shetty, a Mumbai-based criminal lawyer.=20
                                =93Criminal Law can be a tough career. =
One should=20
                                master the art of cross-examination, =
understand=20
                                the psyche and the emotional state of =
the=20
                                witness, and know not only what to ask =
but also=20
                                what not to ask,=94 she explains. =
<BR><BR>One must=20
                                also be skilled in negotiation and =
handling=20
                                litigation. Counselling skills are a =
must. A=20
                                sharp memory, legal acumen and an =
analytical=20
                                mind are definite plus points. <BR>Most =
students=20
                                choose to do internships while pursuing =
their=20
                                degrees. They enroll for part-time work=20
                                with&nbsp; enforcement agencies, NGOs, =
forensic=20
                                labs, investigative agencies or even a =
law firm.=20
                                <BR><BR>There are several =
specialisations that=20
                                postgraduates students of law can now =
pursue in=20
                                India: <BR><STRONG><BR>* =
</STRONG>Criminology=20
                                and Forensic Science<BR><STRONG>* =
</STRONG>Human=20
                                Rights &nbsp;<BR><STRONG>*</STRONG> =
Cyber=20
                                Crime<BR><STRONG>*</STRONG> Domestic=20
                                Violence<BR><STRONG>*</STRONG> Sexual=20
                                Abuse<BR><STRONG>*</STRONG> Murder, =
robbery,=20
                                theft and kidnapping =
<BR><STRONG>*</STRONG>=20
                                Crime against =
Women<BR><STRONG>*</STRONG>=20
                                Criminal Trial &amp; Criminal=20
                                Appeal<BR><STRONG>*</STRONG> Bail =
(Anticipatory=20
                                &amp; Regular), Criminal Revision, and =
Criminal=20
                                Quashing <BR><STRONG>*</STRONG> Anti =
Hijacking=20
                                Matters &amp; Anti Terrorist Matters =
</TD></TR>
                                <TR></TR>
                                <TR>
                                <TD vAlign=3Dtop width=3D"100%"=20
                                align=3Dmiddle></TD></TR>
                                <TR>
                                <TD class=3Dgotop align=3Dright><A=20
                                style=3D"PADDING-RIGHT: 25px" =
class=3Dgototop=20
                                =
href=3D"http://www.deccanherald.com/content/89652/careers-criminal-justic=
e.html#top">Go=20
                                to Top</A> </TD></TR>
                                <TR>
                                <TD height=3D5></TD></TR>
                                <TR style=3D"LINE-HEIGHT: 6px; HEIGHT: =
6px">
                                <TD=20
                                style=3D"PADDING-BOTTOM: 0px; =
LINE-HEIGHT: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: =
url(http://www.deccanherald.com/images/dotted.jpg) repeat-x left top; =
PADDING-TOP: 6px"></TD></TR>
                                <TR>
                                <TD style=3D"PADDING-TOP: 5px" =
align=3Dmiddle><!-- Javascript tag: --><!-- begin ZEDO for channel: =
deccanherald_Nri_banner , publisher: DECCANHERALD , Ad Dimension: Full =
Banner - 468 x 60 -->
                                <SCRIPT language=3DJavaScript>
var zflag_nid=3D"1185"; var zflag_cid=3D"1348"; var zflag_sid=3D"13"; =
var zflag_width=3D"468"; var zflag_height=3D"60"; var zflag_sz=3D"0";
</SCRIPT>

                                <SCRIPT language=3DJavaScript=20
                                =
src=3D"http://d8.zedo.com/jsc/d8/fo.js"></SCRIPT>
<!-- end ZEDO for channel: deccanherald_Nri_banner , publisher: =
DECCANHERALD , Ad Dimension: Full Banner - 468 x 60 -->
                                <DIV=20
                                style=3D"POSITION: absolute; VISIBILITY: =
hidden; TOP: 0px; LEFT: 0px"=20
                                id=3Dbeacon_625><IMG=20
                                style=3D"WIDTH: 0px; HEIGHT: 0px" =
alt=3D""=20
                                =
src=3D"http://www.deccanherald.com/Openads/adlog.php?bannerid=3D625&amp;c=
lientid=3D16&amp;zoneid=3D0&amp;source=3D&amp;block=3D0&amp;capping=3D0&a=
mp;cb=3Daafb4036eef94fae35fa11e81f8c79f2"=20
                                width=3D0 height=3D0></DIV></TD></TR>
                                <TR>
                                <TD style=3D"PADDING-TOP: 5px" =
align=3Dmiddle><!-- BEGIN RICH-MEDIA Ohana Media CODE -->
                                <SCRIPT language=3DJavaScript=20
type=3Dtext/javascript>
rnum=3DMath.round(Math.random() * 100000);
ts=3DString.fromCharCode(60);
if (window.self !=3D window.top) {nf=3D''} else {nf=3D'NF/'};
document.write(ts+'script =
src=3D"http://ads.adohana.com/cgi-bin/ads/ad19872a.cgi/v=3D2.3S/sz=3D468x=
60A/'+rnum+'/'+nf+'RETURN-CODE/JS/">'+ts+'/script>');
</SCRIPT>
                                <NOSCRIPT><A=20
                                =
href=3D"http://www.deccanherald.com/Openads/adclick.php?bannerid=3D630&am=
p;zoneid=3D0&amp;source=3D&amp;dest=3Dhttp%3A%2F%2Fads.adohana.com%2Fads%=
2Fad19872a-map.cgi%2Fns%2Fv%3D2.3S%2Fsz%3D468x60A%2F&amp;ismap=3D"=20
                                target=3D_blank><IMG border=3D0 =
alt=3D"Click Here"=20
                                =
src=3D"http://ads.adohana.com/cgi-bin/ads/ad19872a.cgi/ns/v=3D2.3S/sz=3D4=
68x60A/"></A>=20
                                </NOSCRIPT><!-- END Ohana Media CODE -->
                                <DIV=20
                                style=3D"POSITION: absolute; VISIBILITY: =
hidden; TOP: 0px; LEFT: 0px"=20
                                id=3Dbeacon_630><IMG=20
                                style=3D"WIDTH: 0px; HEIGHT: 0px" =
alt=3D""=20
                                =
src=3D"http://www.deccanherald.com/Openads/adlog.php?bannerid=3D630&amp;c=
lientid=3D18&amp;zoneid=3D0&amp;source=3D&amp;block=3D0&amp;capping=3D0&a=
mp;cb=3Da2d03bf1e22621ebee678b2b9285745f"=20
                                width=3D0 height=3D0></DIV></TD></TR>
                                <TR>
                                <TD style=3D"PADDING-TOP: 5px"=20
                                align=3Dmiddle></TD></TR>
                                <TR>
                                <TD height=3D1 background=3D"" =
width=3D510></TD></TR>
                                <TR>
                                <TD =
height=3D5></TD></TR></TBODY></TABLE></TD></TR>
                          <TR>
                            <TD><BR></TD></TR>
                          <TR>
                            <TD style=3D"PADDING-TOP: 10px"><!-- =
Comments Start -->
                              <TABLE class=3Dcomment_content border=3D0=20
                              cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
                                <TBODY>
                                <TR>
                                <TD class=3DRightMenuBar height=3D25=20
                                align=3Dleft><FONT =
class=3DRightTextTitle>&nbsp;User=20
                                Comments</FONT></TD></TR>
                                <TR>
                                <TD vAlign=3Dtop>
                                <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D5=20
                                width=3D"100%">
                                <TBODY>
                                <TR align=3Dleft>
                                <TD vAlign=3Dtop align=3Dleft>[ <A =
class=3Dsmalllink=20
                                =
onclick=3D"javascript:showCommentsForm(89652,0, =
'CommentForm_89652_0',0,1,1,'/content/89652/careers-criminal-justice.html=
');"=20
                                href=3D"javascript://">Post Comments</A> =
] <INPUT=20
                                id=3DpreDiv type=3Dhidden> </TD>
                                <TD class=3Dred align=3Dright><FONT=20
                                =
class=3Dvhead>&nbsp;</FONT></TD></TR></TBODY></TABLE>
                                <DIV style=3D"MARGIN-LEFT: 20px"=20
                                id=3DCommentForm_89652_0></DIV>
                                <DIV id=3DDisplayAllComments><INPUT =
id=3DprePage=20
                                value=3DComment1 type=3Dhidden>
                                <TABLE border=3D0 width=3D"100%">
                                <TBODY>
                                <TR>
                                <TD class=3Dmytext vAlign=3Dtop =
colSpan=3D2=20
                                align=3Dleft>Be the first to comment on =
this=20
                                Article. </TD></TR></TBODY></TABLE>
                                <SCRIPT type=3Dtext/javascript>=0A=
		showCommentsForm(89652,0, =
'CommentForm_89652_0',0,1,1,'/content/89652/careers-criminal-justice.html=
');=0A=
		</SCRIPT>
                                </DIV></TD></TR></TBODY></TABLE><!-- =
Comments End --></TD></TR></TBODY></TABLE></TD>
                      <TD vAlign=3Dtop>
                        <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
width=3D"100%">
                          <TBODY>
                          <TR>
                            <TD>
                              <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                              width=3D"100%">
                                <TBODY>
                                <TR>
                                <TD style=3D"PADDING-TOP: 10px" =
align=3Dleft><A=20
                                =
href=3D"http://www.deccanherald.com/tell_a_friend.php?id=3D89652"><IMG=20
                                border=3D0 align=3Dleft=20
                                =
src=3D"http://www.deccanherald.com/images/mail.gif"></A>=20
                                </TD></TR>
                                <TR style=3D"LINE-HEIGHT: 6px; HEIGHT: =
6px">
                                <TD=20
                                style=3D"PADDING-BOTTOM: 0px; =
LINE-HEIGHT: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: =
url(http://www.deccanherald.com/images/dotted.jpg) repeat-x left bottom; =
PADDING-TOP: 6px"></TD></TR>
                                <TR>
                                <TD style=3D"PADDING-TOP: 10px" =
align=3Dleft><IMG=20
                                style=3D"CURSOR: pointer"=20
                                onclick=3Djavascript:window.print(); =
border=3D0=20
                                align=3Dleft=20
                                =
src=3D"http://www.deccanherald.com/images/print.gif">=20
                                </TD></TR>
                                <TR style=3D"LINE-HEIGHT: 6px; HEIGHT: =
6px">
                                <TD=20
                                style=3D"PADDING-BOTTOM: 0px; =
LINE-HEIGHT: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: =
url(http://www.deccanherald.com/images/dotted.jpg) repeat-x left top; =
PADDING-TOP: 6px"></TD></TR>
                                <TR>
                                <TD style=3D"PADDING-TOP: 10px" =
align=3Dleft><A=20
                                =
href=3D"javascript:addToFavorites()"><IMG border=3D0=20
                                align=3Dleft=20
                                =
src=3D"http://www.deccanherald.com/images/bookmark.gif"></A>=20
                                </TD></TR>
                                <TR style=3D"LINE-HEIGHT: 6px; HEIGHT: =
6px">
                                <TD=20
                                style=3D"PADDING-BOTTOM: 0px; =
LINE-HEIGHT: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: =
url(http://www.deccanherald.com/images/dotted.jpg) repeat-x left top; =
PADDING-TOP: 6px"></TD></TR>
                                <TR>
                                <TD style=3D"PADDING-TOP: 10px" =
align=3Dleft>
                                <SCRIPT id=3Dshare_rediff =
type=3Dtext/javascript=20
                                =
src=3D"http://imshare.rediff.com/js/rediff_sharejs_v2.0.js?site=3Ddeccanh=
erald&amp;img=3D7"></SCRIPT>
                                </TD></TR>
                                <TR style=3D"LINE-HEIGHT: 6px; HEIGHT: =
6px">
                                <TD=20
                                style=3D"PADDING-BOTTOM: 0px; =
LINE-HEIGHT: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: =
url(http://www.deccanherald.com/images/dotted.jpg) repeat-x left top; =
PADDING-TOP: 6px"></TD></TR></TBODY></TABLE></TD></TR>
                          <TR>
                            <TD><!-- Javascript tag: --><!-- begin ZEDO =
for channel: deccanherald_RI_banner , publisher: DECCANHERALD , Ad =
Dimension: Skyscraper - 120 x 600 -->
                              <SCRIPT language=3DJavaScript>
var zflag_nid=3D"1185"; var zflag_cid=3D"857/368/121"; var =
zflag_sid=3D"13"; var zflag_width=3D"120"; var zflag_height=3D"600"; var =
zflag_sz=3D"8";
</SCRIPT>

                              <SCRIPT language=3DJavaScript=20
                              =
src=3D"http://d8.zedo.com/jsc/d8/fo.js"></SCRIPT>
<!-- end ZEDO for channel: deccanherald_RI_banner , publisher: =
DECCANHERALD , Ad Dimension: Skyscraper - 120 x 600 -->
                              <DIV=20
                              style=3D"POSITION: absolute; VISIBILITY: =
hidden; TOP: 0px; LEFT: 0px"=20
                              id=3Dbeacon_627><IMG style=3D"WIDTH: 0px; =
HEIGHT: 0px"=20
                              alt=3D""=20
                              =
src=3D"http://www.deccanherald.com/Openads/adlog.php?bannerid=3D627&amp;c=
lientid=3D59&amp;zoneid=3D0&amp;source=3D&amp;block=3D0&amp;capping=3D0&a=
mp;cb=3D927c2826cb184f55173ea862ae663c25"=20
                              width=3D0 height=3D0></DIV><BR><!-- BEGIN =
RICH-MEDIA Ohana Media CODE -->
                              <SCRIPT language=3DJavaScript =
type=3Dtext/javascript>
rnum=3DMath.round(Math.random() * 100000);
ts=3DString.fromCharCode(60);
if (window.self !=3D window.top) {nf=3D''} else {nf=3D'NF/'};
document.write(ts+'script =
src=3D"http://ads.adohana.com/cgi-bin/ads/ad19872a.cgi/v=3D2.3S/sz=3D120x=
600A/'+rnum+'/'+nf+'RETURN-CODE/JS/">'+ts+'/script>');
</SCRIPT>
                              <NOSCRIPT><A=20
                              =
href=3D"http://www.deccanherald.com/Openads/adclick.php?bannerid=3D635&am=
p;zoneid=3D0&amp;source=3D&amp;dest=3Dhttp%3A%2F%2Fads.adohana.com%2Fads%=
2Fad19872a-map.cgi%2Fns%2Fv%3D2.3S%2Fsz%3D120x600A%2F&amp;ismap=3D"=20
                              target=3D_blank><IMG border=3D0 =
alt=3D"Click Here"=20
                              =
src=3D"http://ads.adohana.com/cgi-bin/ads/ad19872a.cgi/ns/v=3D2.3S/sz=3D1=
20x600A/"></A>=20
                              </NOSCRIPT><!-- END Ohana Media CODE -->
                              <DIV=20
                              style=3D"POSITION: absolute; VISIBILITY: =
hidden; TOP: 0px; LEFT: 0px"=20
                              id=3Dbeacon_635><IMG style=3D"WIDTH: 0px; =
HEIGHT: 0px"=20
                              alt=3D""=20
                              =
src=3D"http://www.deccanherald.com/Openads/adlog.php?bannerid=3D635&amp;c=
lientid=3D61&amp;zoneid=3D0&amp;source=3D&amp;block=3D0&amp;capping=3D0&a=
mp;cb=3D9f89345a944ff4ecc1799211b37b2c29"=20
                              width=3D0=20
                    =
height=3D0></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD=
><!--
	        <td valign=3D"top">
	        		        </td>
--></TR></TBODY></TABLE><!-- End of Content--></TD>
          <TD vAlign=3Dtop width=3D310 align=3Dmiddle>
            <SCRIPT language=3DJavaScript type=3Dtext/javascript=20
            =
src=3D"http://174.133.94.26/Openads/adpopup.php?n=3Da2fceaf4&amp;clientid=
=3D71"></SCRIPT>

            <SCRIPT language=3DJavaScript type=3Dtext/javascript>
function showCricket(){
		window.open('http://www.deccanherald.com//cricket.php', 'scorecard', =
'toolbar=3Dno,location=3Dno,directories=3Dno,status=3Dyes,menubar=3Dno,sc=
rollbars=3Dno,status=3Dno,resizable=3Dno,copyhistory=3Dno,width=3D400,hei=
ght=3D300'); return false;
}
</SCRIPT>

            <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D170><!--<tr>
		<td class=3D"UpdateText" nowrap style=3D"border-left:0px;" =
align=3D"center">News updated at <br>10:53 PM IST</td>
	</tr>-->
              <TBODY>
              <TR>
                <TD style=3D"PADDING-BOTTOM: 5px">&nbsp;</TD></TR>
              <TR>
                <TD>
                  <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
                    <TBODY>
                    <TR>
                      <TD colSpan=3D2>
                        <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
width=3D"100%">
                          <TBODY>
                          <TR>
                            <TD class=3Dmarron_text width=3D95 =
noWrap>Related=20
                            News</TD>
                            <TD=20
                            style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow_bg.jpg) repeat-x left =
center"=20
                            width=3D200></TD>
                            <TD=20
                            style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow.jpg) no-repeat left =
center"=20
                            =
width=3D10></TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD width=3D"5%" align=3Dright><IMG=20
                        =
src=3D"http://www.deccanherald.com//images/submenu_arrow.jpg"></TD>
                      <TD style=3D"PADDING-LEFT: 10px" width=3D"95%"><A=20
                        class=3Drelatednews_link=20
                        =
href=3D"http://www.deccanherald.com/content/93528/hc-appoints-arbitrator.=
html">HC=20
                        appoints arbitrator</A></TD></TR>
                    <TR>
                      <TD width=3D"5%" align=3Dright><IMG=20
                        =
src=3D"http://www.deccanherald.com//images/submenu_arrow.jpg"></TD>
                      <TD style=3D"PADDING-LEFT: 10px" width=3D"95%"><A=20
                        class=3Drelatednews_link=20
                        =
href=3D"http://www.deccanherald.com/content/93132/cash-movie-mania.html">=
Cash=20
                        in on the movie mania</A></TD></TR>
                    <TR>
                      <TD width=3D"5%" align=3Dright><IMG=20
                        =
src=3D"http://www.deccanherald.com//images/submenu_arrow.jpg"></TD>
                      <TD style=3D"PADDING-LEFT: 10px" width=3D"95%"><A=20
                        class=3Drelatednews_link=20
                        =
href=3D"http://www.deccanherald.com/content/93303/asset-declaration-lokay=
ukta-may-act.html">Asset=20
                        declaration: Lokayukta may act</A></TD></TR>
                    <TR>
                      <TD width=3D"5%" align=3Dright><IMG=20
                        =
src=3D"http://www.deccanherald.com//images/submenu_arrow.jpg"></TD>
                      <TD style=3D"PADDING-LEFT: 10px" width=3D"95%"><A=20
                        class=3Drelatednews_link=20
                        =
href=3D"http://www.deccanherald.com/content/93232/special-cell-probe-bele=
keri-ore.html">Special=20
                        cell to probe Belekeri ore scam</A></TD></TR>
                    <TR>
                      <TD width=3D"5%" align=3Dright><IMG=20
                        =
src=3D"http://www.deccanherald.com//images/submenu_arrow.jpg"></TD>
                      <TD style=3D"PADDING-LEFT: 10px" width=3D"95%"><A=20
                        class=3Drelatednews_link=20
                        =
href=3D"http://www.deccanherald.com/content/93313/disability-law-drafting=
-process-non.html">=91Disability=20
                        law drafting process=20
                  =
non-consultative=92</A></TD></TR></TBODY></TABLE></TD></TR>
              <TR>
                <TD style=3D"PADDING-TOP: 2px"><!--
<table class=3D"boxright_bg" cellpadding=3D"0" border=3D"0" =
cellspacing=3D"0" border=3D"0" width=3D"100%">
	<tr>
			<td class=3D"RightMenuBar">
				<table border=3D"0" width=3D"100%" cellpadding=3D"0" =
cellspacing=3D"0" >
					<tr>
						<td class=3D"RightTextTitle">Videos</td>
						<td align=3D"right"><img =
src=3D"http://www.deccanherald.com/images/headingicon_image.jpg" =
style=3D"margin-right:5px;"></td>
					</tr>
				</table>
			</td>
		</tr>



						<tr>
				<td align=3D"center" class=3D"text_boxcontent" style=3D"padding:5px =
5px 10px 10px">  <a =
href=3D"/videos/watch/1486/indias-first-power-project-fuelled.html" =
class=3D"vhead" align=3D"center">
				<img src=3D"/videos/images//thumb/2010/08/23/1282542036_front.jpg" =
alt=3D"India's first power project fuelled with Bangladesh gas to go on =
stream Decembe" border=3D"0" class=3D"numbox"  /></a></td>
			</tr>

			</table>
-->
                  <TABLE class=3Dboxright_bg border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                  width=3D"100%">
                    <TBODY>
                    <TR>
                      <TD>
                        <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
width=3D"100%">
                          <TBODY>
                          <TR>
                            <TD class=3Dmarron_text width=3D39 =
noWrap>Videos</TD>
                            <TD=20
                            style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow_bg.jpg) repeat-x left =
center"=20
                            width=3D244></TD>
                            <TD=20
                            style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow.jpg) no-repeat left =
center"=20
                            =
width=3D5></TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD=20
                      style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; PADDING-TOP: 5px"=20
                      class=3Dtext_boxcontent align=3Dmiddle><A =
class=3Dvhead=20
                        =
href=3D"http://www.deccanherald.com//videos/watch/1486/indias-first-power=
-project-fuelled.html"=20
                        align=3D"center"><IMG class=3Dnumbox border=3D0=20
                        alt=3D"India's first power project fuelled with =
Bangladesh gas to go on stream Decembe"=20
                        =
src=3D"http://www.deccanherald.com/videos/images//thumb/2010/08/23/128254=
2036_front.jpg"></A></TD></TR>
                    <TR>
                      <TD align=3Dmiddle><A style=3D"FONT-SIZE: 13px" =
class=3Dvhead=20
                        =
href=3D"http://www.deccanherald.com//videos/watch/1486/indias-first-power=
-project-fuelled.html"=20
                        align=3D"center">India's first power project =
fuelled with=20
                        Bangladesh gas to go on stream =
Decembe</A></TD></TR>
                    <TR>
                      <TD>&nbsp;</TD></TR>
                    <TR>
                      <TD>Submit your Videos along with brief captions: =
To the=20
                        <A=20
                        =
href=3D"mailto:dhinternet@deccanherald.co.in">Webmaster.</A></TD></TR>
                    <TR>
                      <TD>&nbsp;</TD></TR></TBODY></TABLE></TD></TR>
              <TR>
                <TD align=3Dmiddle><!-- BEGIN STANDARD TAG - 300 x 250 - =
ROS: Idea - DO NOT MODIFY --><IFRAME=20
                  height=3D250 marginHeight=3D0=20
                  =
src=3D"http://view.atdmt.com/ZH1/iview/185966338/direct;wi.728;hi.90/01?c=
lick=3D"=20
                  frameBorder=3D0 width=3D300 marginWidth=3D0 =
scrolling=3Dno></IFRAME><!-- END TAG -->
                  <DIV=20
                  style=3D"POSITION: absolute; VISIBILITY: hidden; TOP: =
0px; LEFT: 0px"=20
                  id=3Dbeacon_671><IMG style=3D"WIDTH: 0px; HEIGHT: 0px" =
alt=3D""=20
                  =
src=3D"http://www.deccanherald.com/Openads/adlog.php?bannerid=3D671&amp;c=
lientid=3D51&amp;zoneid=3D0&amp;source=3D&amp;block=3D0&amp;capping=3D0&a=
mp;cb=3Dd9e2fea6b2ceea6b9a504a85838d1a34"=20
                  width=3D0 height=3D0></DIV></TD></TR>
              <TR>
                <TD style=3D"PADDING-TOP: 2px">
                  <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
                    <TBODY>
                    <TR>
                      <TD vAlign=3Dtop width=3D170><!--
<table class=3D"boxright_bg" cellpadding=3D"0" border=3D"0" =
cellspacing=3D"0" border=3D"0"  width=3D"100%">
	<tr>
			<td class=3D"RightMenuBar">
				<table border=3D"0" width=3D"100%" cellpadding=3D"0" =
cellspacing=3D"0" >
					<tr>
						<td class=3D"RightTextTitle">Photos</td>
						<td align=3D"right"><img =
src=3D"http://www.deccanherald.com/images/headingicon_image.jpg" =
style=3D"margin-right:5px;"></td>
					</tr>
				</table>
			</td>
		</tr>

				<tr>
		<td style=3D"padding:7px 3px 0px 7px" class=3D"text_boxcontent" =
align=3D"center"><a href=3D"/photo.php?id=3D5143"><img =
src=3D"http://www.deccanherald.com/photos/small/Housefull_______201009012=
30611.jpg" width=3D"130px" height=3D"120px"></a></td>
		</tr>
		<tr>
		<TD style=3D"padding-left:10px;padding-bottom:5px;" =
class=3D"text_boxcontent">&nbsp;A nurse cares for new born babies in a =
nursery at a maternity hospital...</TD>
		</tr>
				<tr>
	<td style=3D"padding-left:10px;" class=3D"text_boxcontent">
	<img src=3D"http://www.deccanherald.com/images/Photogallery_icon.jpg" =
align=3D"left">
	<a href=3D"http://www.deccanherald.com/photo.php?id=3D5147" =
class=3D"text_boxlink">Joyful moment  ...</a>
	</td>
	</tr>
	<tr><TD class=3D"text_boxcontent"></TD></tr>
		</table>
-->
                        <TABLE class=3Dboxright_bg border=3D0 =
cellSpacing=3D0=20
                        cellPadding=3D0 width=3D"100%">
                          <TBODY>
                          <TR>
                            <TD>
                              <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                              width=3D"100%">
                                <TBODY>
                                <TR>
                                <TD class=3Dmarron_text width=3D90 =
noWrap>Photo=20
                                Gallery</TD>
                                <TD=20
                                style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow_bg.jpg) repeat-x left =
center"=20
                                width=3D120></TD>
                                <TD=20
                                style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow.jpg) no-repeat left =
center"=20
                                =
width=3D20></TD></TR></TBODY></TABLE></TD></TR>
                          <TR>
                            <TD=20
                              style=3D"TEXT-ALIGN: center; FONT-SIZE: =
11px">Housefull=20
                              .</TD></TR>
                          <TR>
                            <TD=20
                            style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: =
5px; PADDING-RIGHT: 5px; PADDING-TOP: 5px"=20
                            class=3Dtext_boxcontent align=3Dmiddle><A=20
                              =
href=3D"http://www.deccanherald.com/photo.php?id=3D5143"><!--
		<img alt=3D"Housefull            ." title=3D"Housefull            ." =
id=3D"5143" onload=3D"resize(5143,145)" =
src=3D"http://www.deccanherald.com/photos/small/Housefull_______201009012=
30611.jpg"></a>
--><IMG id=3D5143 title=3D"Housefull            ."=20
                              alt=3D"Housefull            ."=20
                              =
src=3D"http://www.deccanherald.com/photos/home_small/Housefull_______2010=
0901230611.jpg"></A>=20
                            </TD></TR><!--<tr>
		<TD style=3D"padding-left:10px;padding-bottom:5px;" =
class=3D"text_boxcontent">&nbsp;A nurse cares for new born babies in a =
nursery at a maternity hospital...</TD>
		</tr>-->
                          <TR>
                            <TD=20
                              style=3D"TEXT-ALIGN: center; FONT-SIZE: =
11px">Joyful=20
                              moment ...</TD></TR>
                          <TR>
                            <TD=20
                            style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: =
5px; PADDING-RIGHT: 5px; PADDING-TOP: 5px"=20
                            class=3Dtext_boxcontent align=3Dmiddle><A=20
                              =
href=3D"http://www.deccanherald.com/photo.php?id=3D5147"><!--
		<img alt=3D"Joyful moment  ..." title=3D"Joyful moment  ..." =
id=3D"5147" onload=3D"resize(5147,145)" =
src=3D"http://www.deccanherald.com/photos/small/Joyful_moment___201009020=
04706.jpg"></a>
--><IMG id=3D5147 title=3D"Joyful moment  ..."=20
                              alt=3D"Joyful moment  ..."=20
                              =
src=3D"http://www.deccanherald.com/photos/home_small/Joyful_moment___2010=
0902004706.jpg"></A>=20
                            </TD></TR>
                          <TR>
                            <TD style=3D"TEXT-ALIGN: right; FONT-SIZE: =
11px"><A=20
                              style=3D"FONT-SIZE: 11px"=20
                              =
href=3D"http://www.deccanherald.com/photo_gallery.php">View=20
                              more photos</A></TD></TR><!--<tr>
		<TD style=3D"padding-left:10px;padding-bottom:5px;" =
class=3D"text_boxcontent">Tennis player Poojashree Venkatesh holds the =
Queen&rsquo;s Baton Relay at...</TD>
		</tr>--></TBODY></TABLE></TD>
                      <TD=20
                      style=3D"PADDING-BOTTOM: 10px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 5px; PADDING-TOP: 0px"=20
                      vAlign=3Dtop align=3Dmiddle>
                        <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
valign=3D"top">
                          <TBODY>
                          <TR>
                            <TD>
                              <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                              width=3D125>
                                <TBODY>
                                <TR>
                                <TD class=3Dmarron_text width=3D40=20
                                noWrap>Cricket</TD>
                                <TD=20
                                style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow_bg.jpg) repeat-x left =
center"=20
                                width=3D55></TD>
                                <TD=20
                                style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow.jpg) no-repeat left =
center"=20
                                =
width=3D5></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
                        <TABLE>
                          <TBODY>
                          <TR>
                            <TD><A onclick=3DshowCricket();=20
                              =
href=3D"http://www.deccanherald.com/content/89652/careers-criminal-justic=
e.html#"><IMG=20
                              =
src=3D"http://www.deccanherald.com//images/desksb2.jpg"></A></TD></TR></T=
BODY></TABLE>
                        <TABLE=20
                        style=3D"BORDER-BOTTOM: #0066cc 1px solid; =
BORDER-LEFT: #0066cc 1px solid; BORDER-TOP: #0066cc 1px solid; =
BORDER-RIGHT: #0066cc 1px solid; PADDING-TOP: 5px"=20
                        class=3Dboxright_bg border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                        width=3D"60%"><!--
							<tr>
								<td>
									<table width=3D"148px" border=3D"0" cellspacing=3D'0' =
cellpadding=3D'0'>
										<tr>
										<td nowrap class=3D"marron_text" width=3D"55px">Cricket</td>
										<td width=3D"85px" style=3D"background: =
url(http://www.deccanherald.com/images/Title_arrow_bg.jpg) =
repeat-x;background-position: left center;"></td>
										<td width=3D"5px" style=3D"background: =
url(http://www.deccanherald.com/images/Title_arrow.jpg) =
no-repeat;background-position: left center;"></td>
										</tr>
									</table>
								</td>
							</tr>
--><!--
							<tr><td style=3D"padding:2px;" align=3D"top" =
valign=3D"center"><img =
src=3D"http://www.deccanherald.com//images/score.jpg"></td></tr>
-->
                          <TBODY>
                          <TR>
                            <TD style=3D"PADDING-LEFT: 0px" =
vAlign=3Dcenter=20
                            align=3Dtop><!-- Begin Cricbuzz Code -->
                              <SCRIPT type=3Dtext/javascript>
									   crbz_sc_client =3D "31719180dhp05";
									   crbz_scag_width =3D 120;
									   crbz_scag_height =3D 125;
									   crbz_scag_dtlpage =3D "../../cricket.php";
									   crbz_scag_dtllinknm =3D "SCORE CARD ";
									   </SCRIPT>

                              <SCRIPT type=3Dtext/javascript=20
                              =
src=3D"http://www.cricbuzz.com/livescore/dh/lv_scag_ren.php">
									   </SCRIPT>
<!-- End Cricbuzz Code --></TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD style=3D"PADDING-LEFT: 5px; PADDING-RIGHT: =
5px"=20
                      vAlign=3Dtop width=3D148>
                        <TABLE class=3Dboxright_bg border=3D0 =
cellSpacing=3D0=20
                        cellPadding=3D0 width=3D"100%">
                          <TBODY>
                          <TR>
                            <TD width=3D148>
                              <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                              width=3D"100%">
                                <TBODY>
                                <TR>
                                <TD class=3Dmarron_text width=3D85 =
noWrap>Movie=20
                                Guide</TD>
                                <TD=20
                                style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow_bg.jpg) repeat-x left =
center"=20
                                width=3D55></TD>
                                <TD=20
                                style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow.jpg) no-repeat left =
center"=20
                                =
width=3D5></TD></TR></TBODY></TABLE></TD></TR>
                          <TR>
                            <TD>
                              <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                              width=3D"100%">
                                <TBODY>
                                <TR>
                                <TD=20
                                style=3D"PADDING-BOTTOM: 1px; =
PADDING-LEFT: 1px; PADDING-RIGHT: 1px; PADDING-TOP: 1px"=20
                                align=3Dmiddle><A=20
                                =
href=3D"http://www.deccanherald.com/content/91758/movie-guide.html"><IMG =

                                title=3D"" border=3D0 alt=3D""=20
                                =
src=3D"http://www.deccanherald.com/images/front_page_images/91758_thump.j=
pg"></A></TD></TR>
                                <TR>
                                <TD=20
                                style=3D"BORDER-BOTTOM: #5a79a5 thin =
solid">With=20
                                Vivek Raj, Shubha Poonja as actors =
Eknath, R=20
                                Pushpa have produced the movie 'Preethi=20
                                Hangama'. It is directed by Vivek=20
                                =
Raj.</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
                      <TD vAlign=3Dtop width=3D"50%">
                        <TABLE class=3Dboxright_bg border=3D0 =
cellSpacing=3D0=20
                        cellPadding=3D0 width=3D148>
                          <TBODY>
                          <TR>
                            <TD>
                              <TABLE border=3D0 cellSpacing=3D0 =
cellPadding=3D0=20
                              width=3D148>
                                <TBODY>
                                <TR>
                                <TD class=3Dmarron_text width=3D75=20
                                noWrap>Horoscope</TD>
                                <TD=20
                                style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow_bg.jpg) repeat-x left =
center"=20
                                width=3D65></TD>
                                <TD=20
                                style=3D"BACKGROUND: =
url(http://www.deccanherald.com/images/Title_arrow.jpg) no-repeat left =
center"=20
                                =
width=3D5></TD></TR></TBODY></TABLE></TD></TR>
                          <TR>
                            <TD=20
                            style=3D"BORDER-BOTTOM: #0066cc 1px solid; =
BORDER-LEFT: #0066cc 1px solid; PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; =
PADDING-RIGHT: 4px; BORDER-TOP: #0066cc 1px solid; BORDER-RIGHT: #0066cc =
1px solid; PADDING-TOP: 4px">
                              <UL=20
                              style=3D"PADDING-BOTTOM: 5px; =
PADDING-LEFT: 20px; PADDING-RIGHT: 0px; PADDING-TOP: 5px"=20
                              class=3DHoroscopeList>
                                <LI><A class=3DHoroscopeNewLinks=20
                                =
href=3D"http://www.deccanherald.com/horoscope.php?func=3DYearly">Year=20
                                2010</A>=20
                                <LI><A class=3DHoroscopeNewLinks=20
                                =
href=3D"http://www.deccanherald.com/horoscope.php?func=3DWeekly">Weekly</=
A>=20

                                <LI><A class=3DHoroscopeNewLinks=20
                                =
href=3D"http://www.deccanherald.com/horoscope.php?func=3DDaily">Daily=20
                                Astrospeak</A>=20
                                <LI><A class=3DHoroscopeNewLinks=20
                                =
href=3D"http://www.deccanherald.com/yearly_calender.php"=20
                                target=3D_blank>Calender 2010</A> =
</LI></UL></TD></TR>
                          <TR>
                            <TD style=3D"PADDING-TOP: 2px" =
align=3Dmiddle>
                              <SCRIPT language=3DJavaScript =
type=3Dtext/javascript=20
                              =
src=3D"http://www.deccanherald.com/Openads/adx.js"></SCRIPT>

                              <SCRIPT language=3DJavaScript =
type=3Dtext/javascript>=0A=
<!--=0A=
var phpads_activex =3D "<object =
classid=3D'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' =
codebase=3D'http://fpdownload.adobe.com/pub/shockwave/cabs/flash/swflash.=
cab#version=3D8,0,0,0' width=3D'120' height=3D'65'><param name=3D'movie' =
value=3D'http://www.deccanherald.com/Openads/adimage.php?filename=3Dratec=
ard.swf&amp;contenttype=3Dswf'><param name=3D'quality' =
value=3D'high'><param name=3D'allowScriptAccess' value=3D'always'><embed =
src=3D'http://www.deccanherald.com/Openads/adimage.php?filename=3Dratecar=
d.swf&amp;contenttype=3Dswf' quality=3Dhigh width=3D'120' height=3D'65' =
type=3D'application/x-shockwave-flash' =
pluginspace=3D'http://www.adobe.com/go/getflashplayer' =
allowScriptAccess=3D'always'><"+"/embed><"+"/object>";=0A=
phpads_deliverActiveX(phpads_activex);=0A=
//-->=0A=
</SCRIPT>

                              <DIV=20
                              style=3D"POSITION: absolute; VISIBILITY: =
hidden; TOP: 0px; LEFT: 0px"=20
                              id=3Dbeacon_256><IMG style=3D"WIDTH: 0px; =
HEIGHT: 0px"=20
                              alt=3D""=20
                              =
src=3D"http://www.deccanherald.com/Openads/adlog.php?bannerid=3D256&amp;c=
lientid=3D63&amp;zoneid=3D0&amp;source=3D&amp;block=3D0&amp;capping=3D0&a=
mp;cb=3Daa0d4709d631dbf95dda695c6b010fe7"=20
                              width=3D0 height=3D0></DIV><!--
									<img src=3D"http://www.deccanherald.com/images/airtel.jpg">
--></TD></TR>
                          <TR>
                            <TD=20
                            style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: =
5px; PADDING-RIGHT: 5px; PADDING-TOP: 5px"=20
                            width=3D170><IFRAME height=3D60 =
marginHeight=3D0=20
                              =
src=3D"http://googleads.g.doubleclick.net/pagead/ads?client=3Dca-pub-6098=
511427863223&amp;format=3D468x60_as&amp;output=3Dhtml&amp;h=3D60&amp;w=3D=
468&amp;lmt=3D1283450043&amp;channel=3D2353409498&amp;ad_type=3Dtext_imag=
e&amp;flash=3D10.0.45.2&amp;url=3Dhttp%3A%2F%2Fwww.deccanherald.com%2Fcon=
tent%2F89652%2Fcareers-criminal-justice.html&amp;dt=3D1283450043207&amp;s=
hv=3Dr20100818&amp;jsv=3Dr20100830&amp;correlator=3D1283450043223&amp;frm=
=3D0&amp;adk=3D1314508960&amp;ga_vid=3D2066901239.1283450044&amp;ga_sid=3D=
1283450044&amp;ga_hid=3D847900242&amp;ga_fc=3D0&amp;u_tz=3D330&amp;u_his=3D=
2&amp;u_java=3D1&amp;u_h=3D640&amp;u_w=3D1024&amp;u_ah=3D608&amp;u_aw=3D1=
024&amp;u_cd=3D32&amp;u_nplug=3D0&amp;u_nmime=3D0&amp;biw=3D1007&amp;bih=3D=
475&amp;ref=3Dhttp%3A%2F%2Fwww.google.co.in%2Furl%3Fsa%3Dt%26source%3Dweb=
%26cd%3D1%26ved%3D0CBUQFjAA%26url%3Dhttp%253A%252F%252Fwww.deccanherald.c=
om%252Fcontent%252F89652%252Fcareers-criminal-justice.html%26rct%3Dj%26q%=
3Danurag%2520kumar%2520deccan%2520herald%26ei%3DtuR_TJ6QA5CyceWu9YwL%26us=
g%3DAFQjCNFmU4A5aDAmy0lHbvQ1B5dH-8vBKA&amp;fu=3D0&amp;ifi=3D1&amp;dtd=3D5=
77&amp;xpc=3DMkKXJyefYZ&amp;p=3Dhttp%3A//www.deccanherald.com"=20
                              frameBorder=3D0 width=3D120 =
marginWidth=3D0=20
                              scrolling=3Dno> <ilayer =
src=3D"http://www.s2d6.com/x/?x=3Di&amp;z=3Di&amp;v=3D2100597&amp;r=3D[RA=
NDOM]&amp;k=3D[NETWORKID]" z-index=3D"0" width=3D"120" height=3D"60"> <a =
target=3D'_blank' =
href=3D"http://www.deccanherald.com/Openads/adclick.php?bannerid=3D187&am=
p;zoneid=3D0&amp;source=3D&amp;dest=3Dhttp%3A%2F%2Fwww.s2d6.com%2Fx%2F%3F=
x%3Dc%26z%3Ds%26v%3D2100597%26r%3D%5BRANDOM%5D%26k%3D%5BNETWORKID%5D&amp;=
ismap=3D" > <img =
src=3D"http://www.s2d6.com/x/?x=3Di&amp;z=3Ds&amp;v=3D2100597&amp;r=3D[RA=
NDOM]&amp;k=3D[NETWORKID]" border=3D"0" alt=3D"click here" /> </a> =
</ilayer> </IFRAME>
                              <DIV=20
                              style=3D"POSITION: absolute; VISIBILITY: =
hidden; TOP: 0px; LEFT: 0px"=20
                              id=3Dbeacon_187><IMG style=3D"WIDTH: 0px; =
HEIGHT: 0px"=20
                              alt=3D""=20
                              =
src=3D"http://www.deccanherald.com/Openads/adlog.php?bannerid=3D187&amp;c=
lientid=3D65&amp;zoneid=3D0&amp;source=3D&amp;block=3D0&amp;capping=3D0&a=
mp;cb=3D3ca214703cc8267b7e87630127f6aab5"=20
                              width=3D0=20
                    =
height=3D0></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD=
></TR>
              <TR>
                <TD align=3Dmiddle><SPAN>
                  <SCRIPT language=3DJavaScript =
type=3Dtext/javascript><!--=0A=
/* openads=3Dhttp://www.deccanherald.com/Openads bannerid=3D489 =
zoneid=3D0 source=3D */=0A=
if (typeof phpAds_adg =3D=3D 'undefined') {=0A=
	document.write('<scr'+'ipt language=3D"JavaScript" =
type=3D"text/javascript" =
src=3D"http://www.deccanherald.com/Openads/adg.js"></scr'+'ipt>');=0A=
}=0A=
//--></SCRIPT>

                  <SCRIPT type=3Dtext/javascript><!--

google_ad_client =3D "pub-6098511427863223";
google_ad_slot =3D "0179354348";
google_ad_width =3D 300;
google_ad_height =3D 250;

//-->

</SCRIPT>

                  <SCRIPT type=3Dtext/javascript=20
                  =
src=3D"http://pagead2.googlesyndication.com/pagead/show_ads.js">
</SCRIPT>
                  </SPAN>
                  <DIV=20
                  style=3D"POSITION: absolute; VISIBILITY: hidden; TOP: =
0px; LEFT: 0px"=20
                  id=3Dbeacon_489><IMG style=3D"WIDTH: 0px; HEIGHT: 0px" =
alt=3D""=20
                  =
src=3D"http://www.deccanherald.com/Openads/adlog.php?bannerid=3D489&amp;c=
lientid=3D77&amp;zoneid=3D0&amp;source=3D&amp;block=3D0&amp;capping=3D0&a=
mp;cb=3D7c539a881eeea5cded326b12490b9d59"=20
                  width=3D0=20
    =
height=3D0></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD=
><!--
           <td class=3D"VerticalSeparator" style=3D"padding:1px;" =
width=3D"2px"> </td>
--></TR>
  <TR><!--
 	     	<td style=3D"background-color:#8e8e8e;" =
width=3D'15px;'>&nbsp;&nbsp;&nbsp;</td>
-->
    <TD id=3Dfooter align=3Dmiddle><!--Footer--><!-- start Google =
analytics code -->
      <SCRIPT type=3Dtext/javascript>=0A=
=0A=
var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://ssl." : "http://www.");=0A=
=0A=
document.write(unescape("%3Cscript src=3D'" + gaJsHost + =
"google-analytics.com/ga.js' type=3D'text/javascript'%3E%3C/script%3E"));=0A=
=0A=
</SCRIPT>

      <SCRIPT type=3Dtext/javascript>=0A=
=0A=
try {=0A=
=0A=
var pageTracker =3D _gat._getTracker("UA-1165465-2");=0A=
=0A=
pageTracker._trackPageview();=0A=
=0A=
} catch(err) {}</SCRIPT>
<!-- end Google analytics code -->
      <TABLE style=3D"BACKGROUND-COLOR: #8e8e8e" border=3D0 =
cellSpacing=3D0=20
      cellPadding=3D0 width=3D"100%" align=3Dcenter>
        <TBODY>
        <TR><!--=0A=
        <td style=3D"background: =
url('http://www.deccanherald.com/images/bg_bottom.jpg') repeat-x;" >=0A=
-->
          <TD>
            <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
align=3Dcenter>
              <TBODY>
              <TR>
                <TD=20
                style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; BORDER-RIGHT: #c0c0c0 0px solid; PADDING-TOP: 5px"=20
                align=3Dmiddle><A class=3DBottomLinks=20
                  =
href=3D"http://www.deccanherald.com/content/130/about-us.html">About=20
                  Us </A></TD>
                <TD class=3DBottomText>| </TD>
                <TD=20
                style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; BORDER-RIGHT: #c0c0c0 0px solid; PADDING-TOP: 5px"=20
                align=3Dmiddle><A class=3DBottomLinks=20
                  =
href=3D"http://www.deccanherald.com/contents/69/news.html">News</A></TD>
                <TD class=3DBottomText>| </TD>
                <TD=20
                style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; BORDER-RIGHT: #c0c0c0 0px solid; PADDING-TOP: 5px"=20
                align=3Dmiddle><A class=3DBottomLinks=20
                  =
href=3D"http://www.deccanherald.com/contents/74/business.html">Business</=
A></TD>
                <TD class=3DBottomText>| </TD>
                <TD=20
                style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; BORDER-RIGHT: #c0c0c0 0px solid; PADDING-TOP: 5px"=20
                align=3Dmiddle><A class=3DBottomLinks=20
                  =
href=3D"http://www.deccanherald.com/contents/76/sports.html">Sports</A></=
TD>
                <TD class=3DBottomText>| </TD>
                <TD=20
                style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; BORDER-RIGHT: #c0c0c0 0px solid; PADDING-TOP: 5px"=20
                align=3Dmiddle><A class=3DBottomLinks=20
                  =
href=3D"http://www.deccanherald.com/supplements.php">Supplements</A></TD>=

                <TD class=3DBottomText>| </TD><!--=0A=
					<td style=3D"border-right:0px solid #C0C0C0; padding:5px;" =
align=3D"center"><a class=3D"BottomLinks"  =
href=3D"http://www.deccanherald.com/classifieds.php">Classifieds</a></td>=0A=
					<td class=3D"BottomText"> | </td>=0A=
-->
                <TD=20
                style=3D"PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; BORDER-RIGHT: #c0c0c0 0px solid; PADDING-TOP: 5px"=20
                align=3Dmiddle><A class=3DBottomLinks=20
                  =
href=3D"http://www.deccanherald.com/content/131/contact-us.html">Contact =

                  Us</A></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD class=3DBottomText>Copyright 2009, The Printers (Mysore) =
Private=20
            Ltd., 75, M.G Road, Post Box 5331, Bangalore - 560001 =
</TD></TR>
        <TR>
          <TD class=3DBottomText>Tel: +91 (80) 25880000 Fax No. +91 (80) =

            25880523 </TD></TR></TBODY></TABLE><!--End of =
Footer--></TD><!--
			<td style=3D"background-color:#8e8e8e;" =
width=3D'15px;'>&nbsp;&nbsp;&nbsp;</td>
--></TR></TBODY></TABLE><!-- </div>
</div> --></BODY></HTML>

------=_NextPart_001_003D_01CB4AF6.0F993460
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://view.atdmt.com/ZH1/iview/185966338/direct;wi.728;hi.90/01?click=

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>728x90_INSP_14R_37900_Aug10_Dell_16_Aug_10.tpl</TITLE>=

<META content=3D"text/html; charset=3Dwindows-1252" =
http-equiv=3DContent-Type>
<META content=3D0 http-equiv=3Dexpires>
<META content=3Dno-cache http-equiv=3DPragma>
<SCRIPT language=3DJavaScript type=3Dtext/javascript>
var nRequiredVersion =3D 7;=20
var bIsRightVersion =3D false;=09
var isIE =3D (navigator.appVersion.indexOf("MSIE") !=3D -1) ? true : =
false;
var isWin =3D (navigator.appVersion.toLowerCase().indexOf("win") !=3D =
-1) ? true : false;
var isOpera =3D (navigator.userAgent.indexOf("Opera") !=3D -1) ? true : =
false;
if(isIE && isWin){
document.writeln('<SCR' + 'IPT LANGUAGE=3DVBScript\>');
document.writeln('on error resume next');
document.writeln('Set oFlashPlayer =3D =
CreateObject("ShockwaveFlash.ShockwaveFlash." & nRequiredVersion)');
document.writeln('If IsObject(oFlashPlayer) Then');
document.writeln('bIsRightVersion =3D True');
document.writeln('End If');
document.writeln('If (Not bIsRightVersion) And (nRequiredVersion < 3) =
Then');
document.writeln('Set oFlashPlayer =3D =
CreateObject("ShockwaveFlash.ShockwaveFlash")');
document.writeln('If IsObject(oFlashPlayer) Then');
document.writeln('bIsRightVersion =3D True');
document.writeln('End If');
document.writeln('End If');
document.writeln('</SCR' + 'IPT\>');=20
}
function CheckSwfVer(){
if (navigator.plugins !=3D null && navigator.plugins.length > 0) {
if (navigator.plugins["Shockwave Flash 2.0"] || =
navigator.plugins["Shockwave Flash"]) {
var swVer2 =3D navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
var flashDescription =3D navigator.plugins["Shockwave Flash" + =
swVer2].description;
var descArray =3D flashDescription.split(" ");
var tempArrayMajor =3D descArray[2].split(".");=09
var versionMajor =3D tempArrayMajor[0];
bIsRightVersion =3D (versionMajor >=3D nRequiredVersion);
}
}
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") !=3D -1)
{
bIsRightVersion =3D (4 >=3D nRequiredVersion);
}
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") !=3D -1)
{
bIsRightVersion =3D (3 >=3D nRequiredVersion);
}
else if (navigator.userAgent.toLowerCase().indexOf("webtv") !=3D -1)=20
{
bIsRightVersion =3D (2 >=3D nRequiredVersion);
}
}
function detectFlashIN8634175246942232()=20
{=20
if (!bIsRightVersion) {
CheckSwfVer();
}
}
detectFlashIN8634175246942232();=20
</SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 8.00.7600.16625"></HEAD>
<BODY=20
style=3D"BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
bgColor=3Dwhite>
<SCRIPT language=3DJavaScript type=3Dtext/javascript>
var _strContentIN8634175246942232 =3D '';
if(bIsRightVersion)=20
{=20
	var strFQDN =3D "HTTP://spe.atdmt.com/ds/ZHZH1ZH1AIN8/";=20
var index =3D strFQDN.indexOf("/ds/");
strFQDN =3D strFQDN.substring(0, index);
_strContentIN8634175246942232 =3D '' + '<object =
classid=3D"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" =
codebase=3D"HTTP://download.macromedia.com/pub/shockwave/cabs/flash/swfla=
sh.cab" width=3D"728" height=3D"90"><param name=3D"movie" =
value=3D"HTTP://spe.atdmt.com/ds/ZHZH1ZH1AIN8/728x90_INSP_14R_37900_Aug10=
_Dell_16_Aug_10.swf?ver=3D1&clickTag1=3Dhttp://clk.atdmt.com/go/185966338=
/direct;wi.728;hi.90;ai.171387478.178325442;ct.1/01&clickTag=3Dhttp://clk=
.atdmt.com/go/185966338/direct;wi.728;hi.90;ai.171387478.178325442;ct.1/0=
1" /><param name=3D"base" =
value=3D"HTTP://spe.atdmt.com/ds/ZHZH1ZH1AIN8/" /><param =
name=3D"quality" value=3D"high" /><param name=3D"salign" value=3D"lt" =
/><param name=3D"loop" value=3D"true" /><param name=3D"wmode" =
value=3D"opaque" /><embed quality=3D"high" salign=3D"LT" loop=3D"true" =
type=3D"application/x-shockwave-flash" =
pluginspace=3D"HTTP://www.macromedia.com/shockwave/download/index.cgi?P1_=
Prod_Version=3DShockwaveFlash" =
base=3D"HTTP://spe.atdmt.com/ds/ZHZH1ZH1AIN8/" wmode=3D"opaque" =
src=3D"HTTP://spe.atdmt.com/ds/ZHZH1ZH1AIN8/728x90_INSP_14R_37900_Aug10_D=
ell_16_Aug_10.swf?ver=3D1&clickTag1=3Dhttp://clk.atdmt.com/go/185966338/d=
irect;wi.728;hi.90;ai.171387478.178325442;ct.1/01&clickTag=3Dhttp://clk.a=
tdmt.com/go/185966338/direct;wi.728;hi.90;ai.171387478.178325442;ct.1/01"=
 width=3D"728" height=3D"90" /></object>';
}=20
else=20
{=20
_strContentIN8634175246942232 =3D '<a target=3D"_blank" =
href=3D"http://clk.atdmt.com/go/185966338/direct;wi.728;hi.90;ai.17138747=
8.178325442;ct.1/01"><img border=3D"0" =
src=3D"HTTP://spe.atdmt.com/ds/ZHZH1ZH1AIN8/728x90_INSP_14R_37900_Aug10_D=
ell_16_Aug_10.jpg?ver=3D1" width=3D"728" height=3D"90" /></a>';
}
</SCRIPT>

<SCRIPT language=3DJavaScript type=3Dtext/javascript=20
src=3D"http://rmd.atdmt.com/tl/DocumentDotWrite.js"></SCRIPT>

<SCRIPT language=3DJavaScript =
type=3Dtext/javascript>DocumentDotWrite(_strContentIN8634175246942232);
</SCRIPT>
<NOSCRIPT><A=20
href=3D"http://clk.atdmt.com/go/185966338/direct;wi.728;hi.90;ai.17138747=
8.178325442;ct.1/01"=20
target=3D_blank><IMG border=3D0=20
src=3D"http://spe.atdmt.com/ds/ZHZH1ZH1AIN8/728x90_INSP_14R_37900_Aug10_D=
ell_16_Aug_10.jpg?ver=3D1"=20
width=3D728 height=3D90></A> </NOSCRIPT></BODY></HTML>

------=_NextPart_001_003D_01CB4AF6.0F993460--

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://pagead2.googlesyndication.com/pagead/abglogo/abg-en-100c-000000.png

iVBORw0KGgoAAAANSUhEUgAAAE4AAAAQCAYAAAC4LkmaAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAOASURBVFjD5ZhRSFRBFIa/0JRCcgt8SZAS
QfDpSj36sAXFlhQSvgZGIEhS4UtBDxkEViAJhUFUSlEERUUkomAIlb0IGkgYRd1CsQxrQ8iC4Pby
3zgOd3dvZLbQwLB35pw7c+abc87MXYIgIB9qhlINbALKbWcW/aUorcAMEACnMmrlIbhy4CYwDHQC
PcBrYFbt0r8MDmAMmM+qkWfg6oA5oCXC1E4BrAj1cwHM4c3ZynNgKq5yAkjmkHsxx4mj54IrUYic
y6DuAWUWWK6Qj5kOosob1VjjHFZcN2UYLKnwyVXi6rnGNGt+L857QAHQCzwCxrXQRqNWAPQBd2VP
H9Bg5MXAU3lXoDoGrAWmgffSKwTuAwPAE+ALUGnt8WXAuGPnBsFoMkDCvmQWcKFOIsKbE4DngOuR
8WUxmBcBI8AxoFb1tha8FVgJDGkzQvl5Ld4T1E9Am8Zr09ytak+rAgwC7WbuEeCrDYPA+UU7FAhE
+JsA0nr2I7wrKXlacl8Q02bHe4FeB9wtzVEdA9xZ5aBa01eh968BXcAPR74K+Cb5RemWG9k88EDt
j/K4IukdB44C/cq1a7AL0fM98zxsaHep7ZmQ9hTiLrhAsBCwJmeONJB0wJ3Ue20RoHbLe5oVjne0
0PWO3kudvoMaq9SRDyrsuiQ/YGRTJr9+ELgS6b0FbgjworBJmzgP1E7IWxoicle7ZIFAu+B80x4W
3KTxOj8ix9XIS+aAdeb9qlQqFaRSqdC2Q8Zj3Hz4TDnvquTbHPkwcFme5AOfgYMK+VEz74zAFcqm
VwrvRaVJC7IlbXJal+NxSQOrwfEu1+MSzgLD0G2PAAfQIf1RYKNjU71kLYIcAI8VjuuV2xakVwN8
ByaAncB24LQ2ZYcJzyPmcKhyvG9Wz9cl7xbw8OBZBMeGrm/C0nfymW/qeIYc55tciPHUX6AzHPF7
FYZpXYTb5GX9Wnij9LcoL75Q0p90bgSbFV6TwDt5zZ6INHBGNg0JyArNvQBcMQdNoBAeBS5hTr5M
d7qE0fGce1Uyyz0u6j7XbkFmuRsV6VMrzGv19tDIdo+L+XVSpU0Z1GExIDAjUSFpbFotkMtaemVc
w1J8tfxBKVAO6zZ9tcAF2VdJnhXP9cB/BK5OgPY7/fvUXxxrlHz5Vl1GcIXmT4NmheAu4CFwIvYo
/yG48B+YDuXbCV18635ngJ+og1hiEd8S4QAAAABJRU5ErkJggg==

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://pagead2.googlesyndication.com/pagead/sma8.js

(function(){=0A=
var c=3Dwindow,d=3Ddocument;function g(a,b){return a.cursor=3Db}function =
h(a,b){return a.onmouseover=3Db}function i(a,b){return a.display=3Db}var =
l=3D"appendChild",m=3D"length",o=3D"style",s;=0A=
function =
v(a){this.O=3Da.adsContainer;this.K=3Da.nextAdIndex||0;this.z=3Da.linksCo=
ntainer;this.b=3Da.previousLink;this.a=3Da.nextLink;this.v=3Da.linkArrowC=
olor;this.q=3Da.linkActiveBgColor;this.w=3Da.linkInactiveBgColor;this.G=3D=
a.linkActiveCursor;this.H=3Da.linkInactiveCursor;this.I=3Da.loading;this.=
j=3Da.requestToken;this.fa=3Da.renderAds;this.S=3Da.getNextAdRequestUrl;t=
his.ca=3Da.maxAds;this.U=3Da.handlerUrl;this.ha=3Da.requestUrl;this.R=3Da=
.formatParams;this.d=3Da.pages;this.c=3D0;this.i=3Dfalse;this.o=3D{};this=
.n=3D{};this.da=3Da.nextAdsMessage;=0A=
this.ea=3Da.previousAdsMessage;this.f=3Da.arrowHeight;this.g=3Da.arrowWid=
th;this.l=3Da.arrowSize;this.P=3Da.arrowGap;this.Y=3Da.isRtl;this.X();thi=
s.ja();i(this.z[o],"block")}s=3Dv.prototype;s.ba=3Dfunction(a){this.V();i=
f(a.ads[m]=3D=3D0){this.j=3Dnull;this.c=3D0;this.A()}else{this.j=3Da.toke=
n&&a.token[m]>0?a.token:null;for(var =
b=3D0;b<a.ads[m];++b){a.ads[b].id=3Dthis.K;++this.K}this.Z(a.ads)}this.p(=
);this.i=3Dfalse};s.F=3Dfunction(){for(var =
a=3D0;a<this.d[m];++a)i(this.d[a][o],"none")};s.ka=3Dfunction(){this.F();=
i(this.I[o],"")};=0A=
s.V=3Dfunction(){i(this.I[o],"none")};s.B=3Dfunction(a){if(a=3D=3D0&&this=
.c>0)this.aa();else =
if(a=3D=3D1&&(this.j||this.c<this.d[m]-1))this.$()};s.C=3Dfunction(a){i((=
a=3D=3D0?this.o:this.n)[2][o],"none");this.p()};s.D=3Dfunction(a){if(a=3D=
=3D0&&this.c>0||a=3D=3D1&&(this.j||this.c<this.d[m]-1))this.ia(a)};s.Z=3D=
function(a){var =
b=3Dthis.fa(this.c,a,this.R);this.d.push(b);this.O[l](b)};s.$=3Dfunction(=
){if(!this.i){this.i=3Dtrue;++this.c;if(this.c=3D=3Dthis.d[m]){this.ka();=
this.ga()}else{this.A();this.p();this.i=3Dfalse}}};=0A=
s.aa=3Dfunction(){if(!this.i){this.i=3Dtrue;--this.c;this.A();this.p();th=
is.i=3Dfalse}};s.A=3Dfunction(){this.F();i(this.d[this.c][o],"")};s.ga=3D=
function(){var =
a=3Dthis.Q();d.getElementsByTagName("head")[0][l](a)};s.Q=3Dfunction(){va=
r =
a=3Dthis.T(),b=3Dd.createElement("script");b.setAttribute("src",a);return=
 =
b};s.s=3Dfunction(a,b){this.u(a);i((a=3D=3D0?this.o:this.n)[b][o],"block"=
)};s.u=3Dfunction(a){for(var =
b=3Da=3D=3D0?this.o:this.n,f=3D0;f<=3D2;f++)i(b[f][o],"none")};=0A=
s.T=3Dfunction(){return =
this.S({handlerUrl:this.U,maxAds:this.ca,requestToken:this.j,requestUrl:t=
his.ha})};s.ia=3Dfunction(a){if(a=3D=3D0)g(this.b[o],this.b.r);else =
g(this.a[o],this.a.r);this.s(a,2)};s.M=3Dfunction(a){if(a=3D=3D0)g(this.b=
[o],this.b.m);else =
g(this.a[o],this.a.m);this.s(a,1)};s.L=3Dfunction(a){if(a=3D=3D0)g(this.b=
[o],this.b.m);else g(this.a[o],this.a.m);this.s(a,0)};=0A=
s.p=3Dfunction(){if(this.c>0){h(this.b,this.b.k);this.o[2][o].display=3D=3D=
"none"&&this.L(0)}else{h(this.b,null);this.M(0)}if(this.j||this.c<this.d[=
m]-1){h(this.a,this.a.k);this.n[2][o].display=3D=3D"none"&&this.L(1)}else=
{h(this.a,null);this.M(1)}};=0A=
s.ja=3Dfunction(){this.b.N=3Dthis.q;this.b.W=3Dthis.w;this.b.e=3Dthis;thi=
s.b.r=3Dthis.G;this.b.m=3Dthis.H;this.b.onmousedown=3Dfunction(){this.e.B=
(0)};this.b.k=3Dfunction(){this.e.D(0)};this.b.onmouseout=3Dfunction(){th=
is.e.C(0)};h(this.b,this.b.k);this.a.N=3Dthis.q;this.a.W=3Dthis.w;this.a.=
e=3Dthis;this.a.r=3Dthis.G;this.a.m=3Dthis.H;this.a.onmousedown=3Dfunctio=
n(){this.e.B(1)};this.a.k=3Dfunction(){this.e.D(1)};this.a.onmouseout=3Df=
unction(){this.e.C(1)};h(this.a,this.a.k);this.p()};=0A=
s.h=3Dfunction(a,b,f,j,p){var =
k=3Dd.createElement("div"),e=3D"position:absolute;overflow:hidden;left:";=
e+=3Da;e+=3D"px;top:";e+=3Db;e+=3D"px;width:";e+=3Df;e+=3D"px;height:";e+=
=3Dj;e+=3D"px;";e+=3D"background-color:";e+=3Dp;k[o].cssText=3De;return =
k};=0A=
s.t=3Dfunction(a,b,f,j){var =
p;p=3Df?this.h(0,0,this.g,this.f,a):this.h(0,0,this.g,this.f,b);var =
k=3Dthis.h(1,1,this.g-2,this.f-2,b);p[l](k);var =
e=3Dthis.f/2-1,q=3DMath.floor((this.g-3-this.l)/2),t,u,r;if(j=3D=3D0){k[l=
](this.h(q-1,e-1,2,2,a));t=3D-2;u=3D0;r=3D-1}else{k[l](this.h(q+this.l,e-=
1,2,2,a));t=3D-this.l-1;u=3Dthis.l-1;r=3D1}for(var =
n=3D0;n<this.l;n++){k[l](this.h(q+n,e+t+r*n,2,2,a));k[l](this.h(q+n,e+u-r=
*n,2,2,a))}return p};=0A=
s.J=3Dfunction(a,b,f){var =
j=3Dfalse;b[1]=3Dthis.t(this.v,this.w,j,f);a[l](b[1]);b[0]=3Dthis.t(this.=
v,this.q,j,f);a[l](b[0]);j=3Dtrue;b[2]=3Dthis.t(this.q,this.v,j,f);a[l](b=
[2])};s.X=3Dfunction(){var =
a=3D0,b=3D1;if(this.Y){a=3D1;b=3D0}this.J(this.b,this.o,a);this.J(this.a,=
this.n,b);this.a.title=3Dthis.da;this.b.title=3Dthis.ea;this.z[o].width=3D=
2*this.g+this.P+"px";this.z[o].height=3Dthis.f+"px";this.b[o].width=3Dthi=
s.g+"px";this.b[o].height=3Dthis.f+"px";this.a[o].width=3Dthis.g+"px";thi=
s.a[o].height=3Dthis.f+"px";this.u(0);this.u(1)};=0A=
if(!Array.prototype.indexOf)Array.prototype.indexOf=3Dfunction(a){for(var=
 b=3D0;b<this[m];b++)if(this[b]=3D=3Da)return =
b;return-1};if(c.sma){c.smaSlotManager=3Dnew =
v(c.sma);c.handleAdsRequestDone=3Dfunction(a){c.smaSlotManager.ba(a)}};=0A=
})();=0A=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-6098511427863223&format=468x60_as&output=html&h=60&w=468&lmt=1283450043&channel=2353409498&ad_type=text_image&flash=10.0.45.2&url=http%3A%2F%2Fwww.deccanherald.com%2Fcontent%2F89652%2Fcareers-criminal-justice.html&dt=1283450043207&shv=r20100818&jsv=r20100830&correlator=1283450043223&frm=0&adk=1314508960&ga_vid=2066901239.1283450044&ga_sid=1283450044&ga_hid=847900242&ga_fc=0&u_tz=330&u_his=2&u_java=1&u_h=640&u_w=1024&u_ah=608&u_aw=1024&u_cd=32&u_nplug=0&u_nmime=0&biw=1007&bih=475&ref=http%3A%2F%2Fwww.google.co.in%2Furl%3Fsa%3Dt%26source%3Dweb%26cd%3D1%26ved%3D0CBUQFjAA%26url%3Dhttp%253A%252F%252Fwww.deccanherald.com%252Fcontent%252F89652%252Fcareers-criminal-justice.html%26rct%3Dj%26q%3Danurag%2520kumar%2520deccan%2520herald%26ei%3DtuR_TJ6QA5CyceWu9YwL%26usg%3DAFQjCNFmU4A5aDAmy0lHbvQ1B5dH-8vBKA&fu=0&ifi=1&dtd=577&xpc=MkKXJyefYZ&p=http%3A//www.deccanherald.com

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dutf-8" http-equiv=3DContent-Type>
<STYLE>A:link {
	COLOR: #0000ff; CURSOR: hand
}
A:visited {
	COLOR: #0000ff; CURSOR: hand
}
A:hover {
	COLOR: #0000ff; CURSOR: hand
}
A:active {
	COLOR: #0000ff; CURSOR: hand
}
BODY {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 10px; PADDING-TOP: 0px
}
TABLE {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 10px; PADDING-TOP: 0px
}
DIV {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 10px; PADDING-TOP: 0px
}
UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 10px; PADDING-TOP: 0px
}
LI {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 10px; PADDING-TOP: 0px
}
BODY {
	BACKGROUND-COLOR: transparent; FONT-FAMILY: verdana, arial, sans-serif; =
HEIGHT: 100%
}
#aus {
	WIDTH: 468px; HEIGHT: 60px
}
#ads {
	POSITION: absolute; WIDTH: 468px; TOP: 0px; LEFT: 0px
}
#ads UL {
	LIST-STYLE-TYPE: none; WIDTH: 100%; LIST-STYLE-IMAGE: none
}
#ads UL LI {
	WIDTH: 468px; DISPLAY: inline; FLOAT: left; HEIGHT: 42px; OVERFLOW: =
hidden
}
.ad {
	MARGIN: 0px 2px
}
.adt {
	FONT-SIZE: 12px; FONT-WEIGHT: bold
}
.adb {
	DISPLAY: block; COLOR: #000000; FONT-SIZE: 12px
}
.adu {
	LINE-HEIGHT: 12px; WHITE-SPACE: nowrap; COLOR: #009900; FONT-SIZE: =
10px; OVERFLOW: hidden
}
.adus {
	CURSOR: hand
}
#abgi {
	POSITION: absolute; TOP: 43px; LEFT: 388px
}
#aubg {
	BORDER-BOTTOM: #ffffff 0px solid; BORDER-LEFT: #ffffff 0px solid; =
BACKGROUND-COLOR: #ffffff; WIDTH: 468px; HEIGHT: 60px; BORDER-TOP: =
#ffffff 0px solid; BORDER-RIGHT: #ffffff 0px solid
}
#load {
	HEIGHT: 42px
}
#load TABLE {
	WIDTH: 100%; HEIGHT: 100%
}
#load TD {
	TEXT-ALIGN: center; COLOR: #000000; FONT-SIZE: 12px; VERTICAL-ALIGN: =
middle
}
#ads UL.auma {
=09
}
#ads UL LI.adma {
	WIDTH: 234px; HEIGHT: 42px
}
.adma .adc {
	HEIGHT: 42px
}
.adma .adt {
	LINE-HEIGHT: 14px; FONT-SIZE: 11px
}
.adma .adb {
	LINE-HEIGHT: 13px; FONT-SIZE: 10px
}
#smac SPAN {
	POSITION: absolute; WIDTH: 15px; DISPLAY: inline-block; HEIGHT: 14px
}
#smac {
	POSITION: absolute; LIST-STYLE-TYPE: none; WIDTH: 34px; DISPLAY: none; =
OVERFLOW: hidden; TOP: 44px; LIST-STYLE-IMAGE: none; LEFT: 2px
}
#smac DIV {
	POSITION: relative; WIDTH: 15px; HEIGHT: 14px; OVERFLOW: hidden
}
#smap {
	FLOAT: left
}
#sman {
	FLOAT: right
}
</STYLE>

<SCRIPT>(function(){window.ss=3Dfunction(d,e){window.status=3Dd;var =
c=3Ddocument.getElementById(e);if(c){var a;a=3Dc.href;var =
b=3Da.match("^(.*)([?|&]nm=3D)([^&]*)(.*)$");if(b){b[3]=3D(Number(b[3])||=
0)+1;b[0]=3D"";a=3Db.join("")}else a=3Da+"&nm=3D1";c.href=3Da}return =
true};})();function st(id) {var a =3D document.getElementById(id);if (a) =
{a.myt =3D (new Date()).getTime();}}function su(id) {var a =3D =
document.getElementById(id);var b =3D (new Date()).getTime();if (a && =
a.myt && b) {var t =3D b - a.myt;var bi =3D =
a.href.indexOf("&clkt=3D");if (bi > 0) {var c =3D a.href.substring(0, =
bi+6); var d =3D a.href.substring(bi+6, a.href.length);var ei =3D =
d.indexOf("&");var r =3D '';if (ei >=3D 0)r =3D d.substring(ei, =
d.length);a.href =3D c + t + r; } else {a.href +=3D "&clkt=3D" + =
t;}}return true;}function cs(){window.status=3D'';} function jcc(a) =
{pha=3Ddocument.getElementById(a); nc=3Dpha.href.indexOf('&jca=3D'); =
if(nc>=3D1) return; jca=3D(2945)-(100)-(313); if (a=3D=3D'aw0') =
{jca+=3D(4086);} else {jca=3D0;} phb=3Dpha.href+'&jca=3D'+jca; =
pha.href=3Dphb;} function ha(a){  var =
pha=3Ddocument.getElementById(a);var =
nhi=3Dpha.href.indexOf("&nh=3D");if(nhi < 1) =
{pha.href+=3D"&nh=3D1";}su(a); jcc(a); }function ca(a) {  var =
pha=3Ddocument.getElementById(a);var =
nci=3Dpha.href.indexOf("&nc=3D");if(nci < 1) =
{pha.href+=3D"&nc=3D1";}su(a); jcc(a); =
top.location.href=3Ddocument.getElementById(a).href;}function ga(o,e) =
{if (document.getElementById) =
{a=3Do.id.substring(1);p=3D"";r=3D"";g=3De.target;if (g) =
{t=3Dg.id;f=3Dg.parentNode;if (f) {p=3Df.id;h=3Df.parentNode;if =
(h)r=3Dh.id;}} else {h=3De.srcElement;f=3Dh.parentNode;if =
(f)p=3Df.id;t=3Dh.id;}if (t=3D=3Da||p=3D=3Da||r=3D=3Da)return true;var =
pha=3Ddocument.getElementById(a);var =
nbi=3Dpha.href.indexOf("&nb=3D");if(nbi < 1) =
{pha.href+=3D"&nb=3D1";}su(a); jcc(a); =
top.location.href=3Ddocument.getElementById(a).href;}}</SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 8.00.7600.16625"></HEAD>
<BODY>
<DIV id=3Daus>
<DIV id=3Daubg></DIV>
<DIV id=3Dads>
<UL style=3D"DISPLAY: none" id=3Dload>
  <LI style=3D"WIDTH: 100%">
  <TABLE>
    <TBODY>
    <TR>
      <TD>Loading...</TD></TR></TBODY></TABLE></LI></UL>
<UL id=3Dads0>
  <LI id=3Dtaw0 onfocus=3D"ss('','aw0')" onmouseover=3D"ss('','aw0')">
  <DIV class=3Dad><A id=3Daw0 class=3Dadt onfocus=3D"ss('','aw0')"=20
  onmouseover=3D"return ss('','aw0')" onmousedown=3D"st('aw0')" =
onclick=3D"ha('aw0')"=20
  =
href=3D"http://googleads.g.doubleclick.net/aclk?sa=3Dl&amp;ai=3DB7enTx-R_=
TNOjIoWocOSGoZ4EkPCL2wH40OGAFcCNtwHQhgMQARgBINuC-AU4AFCMv-XUBWDlwuSDpA6gA=
ci3jt8DsgEUd3d3LmRlY2NhbmhlcmFsZC5jb226AQk0Njh4NjBfYXPIAQHaAUdodHRwOi8vd3=
d3LmRlY2NhbmhlcmFsZC5jb20vY29udGVudC84OTY1Mi9jYXJlZXJzLWNyaW1pbmFsLWp1c3R=
pY2UuaHRtbKkCvS0nTNDSuT7IAsj8mxWoAwHIAwfoAxPoA5AE6AOYBugDqAPoA9Un9QMAAABE=
&amp;num=3D1&amp;sig=3DAGiWqtwhSC-bVD7ppfp1Eb4zMSdi-5sTrg&amp;client=3Dca=
-pub-6098511427863223&amp;adurl=3Dhttp://www.lsbf.org.uk/llm%3Futm_source=
%3Dgoogle%26utm_medium%3Dcpc%26utm_campaign%3D183"=20
  target=3D_top><SPAN>LLM Law Degree</SPAN></A>
  <DIV class=3Dadb>LLM in International Business Law Full/Part-Time Law =
Masters=20
  Course </DIV>
  <DIV class=3Dadu><SPAN id=3Duaw0 class=3Dadus =
onmousedown=3Dst(this.id.substr(1))=20
  =
onclick=3Dga(this,event)>www.LSBF.org.uk/LLM</SPAN></DIV></DIV></LI></UL>=
</DIV>
<DIV id=3Dsmac>
<DIV id=3Dsmap></DIV>
<DIV id=3Dsman></DIV></DIV>
<DIV id=3Dabgi><A=20
href=3D"http://www.google.com/url?ct=3Dabg&amp;q=3Dhttps://www.google.com=
/adsense/support/bin/request.py%3Fcontact%3Dabg_afc%26url%3Dhttp://www.de=
ccanherald.com/content/89652/careers-criminal-justice.html%26hl%3Den%26cl=
ient%3Dca-pub-6098511427863223%26adU%3Dwww.LSBF.org.uk/LLM%26adT%3DLLM%2B=
Law%2BDegree%26gl%3DIN&amp;usg=3DAFQjCNEC-gWRvd-HJexDr5mTocJbdXyAvA"=20
target=3D_blank><SPAN=20
style=3D"FILTER: =
progid:DXImageTransform.Microsoft.AlphaImageLoader(src=3D'http://pagead2.=
googlesyndication.com/pagead/abglogo/abg-en-100c-000000.png'); WIDTH: =
78px; DISPLAY: inline-block; HEIGHT: 16px"><IMG=20
style=3D"FILTER: progid:DXImageTransform.Microsoft.Alpha(opacity=3D0)" =
border=3D0=20
alt=3D"Ads by Google"=20
src=3D"http://pagead2.googlesyndication.com/pagead/abglogo/abg-en-100c-00=
0000.png"=20
width=3D78 height=3D16></SPAN></A></DIV></DIV>
<SCRIPT>var formatParams =3D =
{badgeParams:{height:10,filename:'checkout_999999.gif',path:'/pagead/badg=
e/',style:'',tooltip:'This site accepts Google =
Checkout',width:19},isVerticalFormat:0,linkTarget:'_top',staticHost:'http=
://pagead2.googlesyndication.com'};(function(){var =
e=3D"push",h=3D"join";function j(b,c,d){for(var =
a=3D[],f=3D0;f<b.length;++f)a[e](k(b[f],c,d));return a[h]("")}function =
k(b,c,d){var a=3D[],f=3D'ss("","aw'+b.id+'")';a[e]("<li");d&&a[e](" =
class=3Dadma");b.isRtl&&a[e](" dir=3Drtl");a[e](" id=3Dtaw"+b.id+" =
onfocus=3D"+f+" onmouseover=3D"+f+">");a[e]("<div =
class=3Dad>");c.isVerticalFormat&&a[e]("<table border=3D0 =
cellpadding=3D0 cellspacing=3D0 class=3Dadc><tbody><tr><td =
valign=3Dmiddle>");a[e](l(b,c,f));c.isVerticalFormat&&a[e]("</td></tr></t=
body></table>");a[e]("</div></li>");b.viewUrl&&typeof =
vu=3D=3D"function"&&vu(b.viewUrl);return a[h]("")}function l(b,c,d){var =
a=3D[];a[e]('<a class=3Dadt href=3D"'+b.url+'" id=3Daw'+b.id+' =
onclick=3Dha("aw'+b.id+'") onfocus=3D'+d+' =
onmousedown=3Dst("aw'+b.id+'") onmouseover=3D'+d+" =
target=3D"+c.linkTarget+">");a[e]("<span>"+b.title+"</span></a>");d=3Dc.b=
adgeParams;b.hasCheckoutBadge&&d&&a[e](m(c.staticHost,d.path,d.filename,d=
.height,d.width,d.style,d.tooltip));a[e]("<div class=3Dadb> "+b.text+" =
</div>");a[e]("<div class=3Dadu><span class=3Dadus id=3Duaw"+b.id+" =
onclick=3Dga(this,event) =
onmousedown=3Dst(this.id.substr(1))>"+b.visibleUrl+"</span></div>");retur=
n a[h]("")}function m(b,c,d,a,f,g,n){var i=3D[];i[e]('&nbsp;<img =
alt=3D"" border=3D0 height=3D'+a+' src=3D"'+b+c+d+'" title=3D"'+n+'" =
width=3D'+f);g&&i[e](' style=3D"'+g+'"');i[e](">");return =
i[h]("")}window.renderAdsList=3Dj;window.smaGetNextAdRequestUrl=3Dfunctio=
n(b){for(var =
c=3D{},d=3D(b.requestUrl||document.location.href).split("?")[1].split("&"=
),a=3D0;a<d.length;++a){var =
f=3Dd[a].split("=3D");f.length<2||f[0]=3D=3D""||f[1]=3D=3D""||(c[f[0]]=3D=
f[1])}c.ad_type=3D"text";c.format=3D"sma-"+c.format;c.num_ads=3Db.maxAds;=
c.output=3D"smajs";c.targeting=3D"content";c.tok=3Db.requestToken;delete =
c.prev_fmts;delete c.prev_slotnames;delete c.deb;delete =
c.dfp_req;b=3Db.handlerUrl+"?";d=3D[];for(var g in =
c)g&&d[e](g+"=3D"+c[g]);return =
b+d[h]("&")};window.smaRenderAds=3Dfunction(b,c,d){var =
a=3Ddocument.createElement("ul");a.id=3D"ads"+b;a.setAttribute("class","a=
uma");a.innerHTML=3Dj(c,d,true);return a};})();var =
sma=3D{adsContainer:document.getElementById('ads'),arrowGap:4,arrowSize:4=
,arrowHeight:14,arrowWidth:15,nextAdIndex:1,linksContainer:document.getEl=
ementById('smac'),previousLink:document.getElementById('smap'),nextLink:d=
ocument.getElementById('sman'),pages:[document.getElementById('ads0')],li=
nkArrowColor:'#ffffff',linkActiveBgColor:'#0000ff',linkInactiveBgColor:'#=
a5a5ff',linkActiveCursor:'hand',linkInactiveCursor:'',nextAdsMessage:'Nex=
t ads',previousAdsMessage: 'Previous =
ads',loading:document.getElementById('load'),requestToken:'9uELCARnEssKEw=
iTo5iFqOmjAhUFFBwKHWRDyEMQARgCINjL1SEoADABQgwIABABGAEgASgBMAA',renderAds:=
smaRenderAds,getNextAdRequestUrl:smaGetNextAdRequestUrl,maxAds:2,handlerU=
rl:'http://googleads.g.doubleclick.net/pagead/ads',requestUrl:'http://goo=
gleads.g.doubleclick.net/pagead/ads?client\x3dca-pub-6098511427863223\x26=
format\x3d468x60_as\x26output\x3dhtml\x26h\x3d60\x26w\x3d468\x26lmt\x3d12=
83450043\x26channel\x3d2353409498\x26ad_type\x3dtext_image\x26flash\x3d10=
.0.45.2\x26url\x3dhttp%3A%2F%2Fwww.deccanherald.com%2Fcontent%2F89652%2Fc=
areers-criminal-justice.html\x26dt\x3d1283450043207\x26shv\x3dr20100818\x=
26jsv\x3dr20100830\x26correlator\x3d1283450043223\x26frm\x3d0\x26adk\x3d1=
314508960\x26ga_vid\x3d2066901239.1283450044\x26ga_sid\x3d1283450044\x26g=
a_hid\x3d847900242\x26ga_fc\x3d0\x26u_tz\x3d330\x26u_his\x3d2\x26u_java\x=
3d1\x26u_h\x3d640\x26u_w\x3d1024\x26u_ah\x3d608\x26u_aw\x3d1024\x26u_cd\x=
3d32\x26u_nplug\x3d0\x26u_nmime\x3d0\x26biw\x3d1007\x26bih\x3d475\x26ref\=
x3dhttp%3A%2F%2Fwww.google.co.in%2Furl%3Fsa%3Dt%26source%3Dweb%26cd%3D1%2=
6ved%3D0CBUQFjAA%26url%3Dhttp%253A%252F%252Fwww.deccanherald.com%252Fcont=
ent%252F89652%252Fcareers-criminal-justice.html%26rct%3Dj%26q%3Danurag%25=
20kumar%2520deccan%2520herald%26ei%3DtuR_TJ6QA5CyceWu9YwL%26usg%3DAFQjCNF=
mU4A5aDAmy0lHbvQ1B5dH-8vBKA\x26fu\x3d0\x26ifi\x3d1\x26dtd\x3d577\x26xpc\x=
3dMkKXJyefYZ\x26p\x3dhttp%3A//www.deccanherald.com',formatParams:formatPa=
rams,isRtl:false};</SCRIPT>

<SCRIPT =
src=3D"http://pagead2.googlesyndication.com/pagead/sma8.js"></SCRIPT>
</BODY></HTML>

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/script.js

//function for removing white spaces
function Trim(txt){
	  if(txt.split(" ").join("").length =3D=3D 0)
		return true;
	  else
		return false;
}

function trim_str(str) {
	return str.split(" ").join("");
}

//function to alert error messages for text fields
function retunMessage(message,fldId) {
	alert(message);
	document.getElementById(fldId).focus();
	return false;
}


//function to check empty text fields
function nullCheck(fldId,message) {
	var objValue =3D document.getElementById(fldId).value;
	if( (objValue =3D=3D "") || (Trim(objValue)))
		retunMessage(message,fldId);
	else
		return true;
}

//function to check length
function checkLen(len,fldId,message) {
	var objValue =3D document.getElementById(fldId).value;
	var length =3D objValue.length
	if(length < len)
		retunMessage(message,fldId);
	else
		return true;
}

//function to validate user name
function validateUserName(fldId) {
	var myRegxp =3D /^[a-zA-Z0-9_.\s]+$/;
	var str     =3D document.getElementById(fldId).value;
    if(! myRegxp.test(str)){
		alert("Please enter valid username");
		PageLoadFocus(fldId);
		return false;
	}else{
		return true;
	}
}

function validateName(fldId) {
	var myRegxp =3D /^[a-zA-Z0-9_. ]+$/;
	var str     =3D document.getElementById(fldId).value;
    if(! myRegxp.test(str)){
		alert("Please enter valid name");
		PageLoadFocus(fldId);
		return false;
	}else{
		return true;
	}
}

function validateWeatherFields(fldId) {
	var myRegxp =3D /^[\s a-zA-Z0-9_.]+$/;
	var str     =3D document.getElementById(fldId).value;
    if(! myRegxp.test(str)){
		if(fldId =3D=3D 'summary')
			alert("Please enter valid summary");
		if(fldId =3D=3D 'forecast')
			alert("Please enter valid forecast");
		PageLoadFocus(fldId);
		return false;
	}else{
		return true;
	}
}

//function to compare two strings
function equal(fldId1,fldId2,message) {
	var objValue1 =3D document.getElementById(fldId1).value;
	var objValue2 =3D document.getElementById(fldId2).value;
	if (objValue1 !=3D objValue2)
		retunMessage(message,fldId1);
	else
			return true;
}

function alphaSpaceOnly(fldId) {

	var myRegxp =3D /^[a-zA-Z ]+$/;
	var str     =3D document.getElementById(fldId).value;
    if( !myRegxp.test(str) ){
		if(fldId =3D=3D 'first_name')
			alert("First name allows only alphabets and spaces");
		if(fldId =3D=3D 'last_name')
			alert("Last name allows only alphabets and spaces");
		PageLoadFocus(fldId);
		return false;
	}else{
		return true;
	}
}

//function for email validation
function emailValidation(fldId) {
	var str =3D document.getElementById(fldId).value;
	var =
filter=3D/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6=
}(?:\.[a-z]{2})?)$/i
	if (filter.test(str)) {
		return true;
	}
	else {
		alert("Please Enter Valid Email");
		PageLoadFocus(fldId);
		return false;
	}
}

//function for onload event
function PageLoadFocus(fldId) {
	document.getElementById(fldId).focus();
}

function resetMessage(){
	if(document.getElementById('ErrorMessage')) =
document.getElementById('ErrorMessage').innerHTML =3D '';
}

//function loadFolderRecord(id, name, parent_id){
	//resetMessage();
	//document.getElementById('id').value =3D id;
	//document.getElementById('name').value =3D name;
	//document.getElementById('parent_id').value =3D parent_id;

//}

//function for validating names
function isValidName(fldId,msg){
	var obj =3D document.getElementById(fldId).value;
	var pattern=3D/[*/\\:"><|]@/;

	if(pattern.test(obj)){
		alert(msg);
	   	PageLoadFocus(fldId);
   		return false;
    }
    else return true;
}

//function for validating strings
function isValidString(fldId,msg)
{
	var result =3D true;
	var iChars =3D "*|,\":<>[]{}`\;()@$#%_^";
	var string =3D document.getElementById(fldId).value;
	var leng =3D string.length;

	for(i=3D0; i<leng; i++){
		if(iChars.indexOf(string.charAt(i)) !=3D -1){
			result =3D false;
		}
	}

	if(result =3D=3D false){
		alert(msg);
		result =3D false;
	}
	return result;
}

function Trimstr(str){
	return str.replace(/(^[\s\xA0]+|[\s\xA0]+$)/g, '');
}

//function for checking alphanumerics only
function alphanumeric(fldId) {
	var myRegxp =3D /^[-a-zA-Z0-9 ()]+$/;
	var str     =3D document.getElementById(fldId).value;
    if( !myRegxp.test(str) ){
    	alert("Please Enter alpha numeric Characters Only");
    	PageLoadFocus(fldId);
		return false;
	}else{
		return true;
	}
}

/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Cyanide_7 |  */
var isNN =3D (navigator.appName.indexOf("Netscape")!=3D-1);

function autoTab(input,len, e) {
  var keyCode =3D (isNN) ? e.which : e.keyCode;
  var filter =3D (isNN) ? [0,8,9,16] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >=3D len && !containsElement(filter,keyCode)) {
    input.value =3D input.value.slice(0, len);
	input.form[(getIndex(input)+1) % input.form.length].focus();
  }

  function containsElement(arr, ele) {
    var found =3D false, index =3D 0;
    while(!found && index < arr.length)
    if(arr[index] =3D=3D ele)
    found =3D true;
    else
    index++;
    return found;
  }

  function getIndex(input) {
    var index =3D -1, i =3D 0, found =3D false;
    while (i < input.form.length && index =3D=3D -1)
    if (input.form[i] =3D=3D input)index =3D i;
    else i++;
    return index;
  }
  return true;
}

//function for checking numbers only
function isInteger(fldId) {
	var s =3D document.getElementById(fldId).value;
	if (isNaN(s)) {
			alert("Please Enter Numbers Only");
			PageLoadFocus(fldId);
			return false;
    }
    // All characters are numbers.
    return true;
}

//US phone validation
function isPhoneValid(fldId) {

	if(!nullCheck(fldId,"Please Enter Phone Code") || !isInteger(fldId) || =
!checkLen(3,fldId,"Please Enter Valid Phone Code"))
		return false;
	else
		return true;
}

/************************************************************************=
*******
* To create popups
* @author Tony Thomas - Greynium Information Technologies Pvt. Ltd. | =
01-Feb-2008
*************************************************************************=
********/
function popitup(url,height,width) {
	tinyMCE.triggerSave();

	=
newwindow=3Dwindow.open(url,'name','height=3D'+height+',width=3D'+width+'=
,resizable=3D1,scrollbars=3D1');
}

/************************************************************************=
*******
* To create popups for checking url in left menu add page
* @author Alind Tiwari - Greynium Information Technologies Pvt. Ltd. | =
11-july-2008
*************************************************************************=
********/
function urlpopitup(url,height,width) {
	=
newwindow=3Dwindow.open(url,'name','height=3D'+height+',width=3D'+width+'=
,resizable=3D1,scrollbars=3D1');
}


/************************************************************************=
*******
* To validate the form fields of opinion polls
* @author Tony Thomas - Greynium Information Technologies Pvt. Ltd. | =
04-Feb-2008
*************************************************************************=
********/
function validateOpinionPolls(formname)
{
	var obj =3D eval('document.' + formname);

	if( !nullCheck('title','Enter the poll question')){
		return false;
	}

	var cnt=3D1;
	for (var i=3D0;i<obj.elements.length;i++ ){
		if(obj.elements[i].type =3D=3D 'text' && obj.elements[i].name =3D=3D =
'poll_option[]'){
			if( (cnt<=3D2) && (obj.elements[i].value =3D=3D '' || =
Trim(obj.elements[i].value) )  ){
				alert('Enter option'+cnt);
				alert(cnt);
				obj.elements[i].focus();
				return false;
			}

			cnt++;
		}

	}

	var options =3D document.getElementsByName('poll_option[]');
	var compare_counter=3D0;
	var temp_opt_value=3D0;
	for (var j=3D0;j<options.length;j++ ){
		temp_opt_value =3D trim_str(options[j].value);

		if(trim_str(options[j].value)!=3D''){
			for (var k=3D0;k<options.length;k++){
				if(temp_opt_value.toString() =3D=3D =
trim_str(options[k].value.toString())){
					compare_counter++;
					if(compare_counter>1){
						compare_counter=3D0;
						alert("options cannot be same");
						return false;

					}
				}
			}
		}

		compare_counter=3D0;

	}

	if( (obj.display_start_date.value !=3D '') || =
(obj.display_end_date.value !=3D '') )
	{
		if( (obj.display_start_date.value =3D=3D '') || =
(obj.display_end_date.value =3D=3D '') ){
			alert("Enter both display start and end dates");
			obj.display_start_date.focus();
			return false;
		}
		var today  =3D new Date();
		var month =3D today.getMonth() + 1;
		if (month < 10){
			month =3D "0" + month;
		}
		var day   =3D today.getDate();
		if (day < 10){
			day =3D "0" + day;
		}
		var year  =3D today.getFullYear();
		var today1 =3D year+'-'+month+'-'+day;

		//alind changing the condition from less than equal to less than only
		if (obj.display_start_date.value < today1){
			alert("Display start date should be greater than today");
			obj.display_start_date.focus();
			return false;
		}

		if (obj.display_end_date.value < obj.display_start_date.value){
			alert("Display end date should be greater than Display start date");
			obj.display_end_date.focus();
			return false;
		}
	}
	IGNORE_UNLOAD =3D true;
}

function validateForgotPassword() {
	var frm =3D document.fpw_form1;
	if(!nullCheck("fpw_email","Please enter email") || =
!emailValidation("fpw_email"))
			return false;
	IGNORE_UNLOAD =3D true;
	return true;
}

/************************************************************************=
*******
* To alert while moving away from forms
* @author Tony Thomas - Greynium Information Technologies Pvt. Ltd. | =
6/18/2008
*************************************************************************=
********/

function containsElements(arr, ele) {
    var found =3D false, index =3D 0;
    while(!found && index < arr.length)
    if(arr[index] =3D=3D ele)
    found =3D true;
    else
    index++;
    return found;
}

function checkKeycode(e) {
	var keycode;
	if (window.event) keycode =3D window.event.keyCode;
	else if (e) keycode =3D e.which;
	//alert("keycode: " + keycode);
	var filter =3D =
[18,91,17,16,20,9,27,112,113,114,115,116,117,118,119,120,121,122,123,145,=
19,36,33,34,35,38,39,40,37,144,13];
	if(!containsElements(filter,keycode))
	IGNORE_UNLOAD =3D false;
}

/************************************************************************=
*******
* To work with cancel button
* @author Tony Thomas - Greynium Information Technologies Pvt. Ltd. | =
6/18/2008
*************************************************************************=
********/
function cancelConfirm(str){

	IGNORE_UNLOAD =3D true;

	var msg1 =3D 'Are you sure want to cancel?';

	if (confirm(msg1)){
		document.location.href=3D'index.php?module=3D'+str;
		return true;
	}else{
		return false;
	}
}

/************************************************************************=
*******
* To work with confirm button
* @author Tony Thomas - Greynium Information Technologies Pvt. Ltd. | =
31-Jan-2008
*************************************************************************=
********/
function actionConfirm(str,msg,frmname){
	if (confirm(msg)){
		return true;
	}else{
		return false;
	}
}

/************************************************************************=
*******
* count the number of words
* @author TonyThomas - Greynium Information Technologies Pvt. Ltd. | =
7/30/2008
*************************************************************************=
********/
function countWords(y){
	//var y=3Dy;
	var r =3D 0;
	a=3Dy.replace(/\s/g,' ');
	a=3Da.split(' ');
	for (z=3D0; z<a.length; z++) {if (a[z].length > 0) r++;}
	return r;
}

/************************************************************************=
*******
* To validate users
* @author Tony Thomas - Greynium Information Technologies Pvt. Ltd. | =
6/18/2008
*************************************************************************=
********/
function validate_user(val) {

	if(val !=3D '1' && val !=3D '2')	{
		if(!nullCheck("username","Please enter user name") || =
!checkLen(4,"username","Username should contain minimum 4 characters") =
|| !validateUserName('username')) {
			return false;
		}
		if(!nullCheck("password","Please enter password") || =
!checkLen(6,"password","Password should contain minimum 6 characters") =
|| !nullCheck("cpassword","Please enter confirm password") || =
!equal("password","cpassword","Password did not Match"))
				return false;
	}

	if(val !=3D '2' && val !=3D '3') {
		if(document.getElementById('user_type') && =
document.getElementById('user_type').selectedIndex =3D=3D '0') {
				alert("Please select user type");
				return false;
		}
	}
	if(!nullCheck("first_name","Please enter first name") || =
!alphaSpaceOnly("first_name") || !validateName('first_name')) {
			return false;
	}

	if(!nullCheck("last_name","Please enter last name") || =
!alphaSpaceOnly("last_name") || !validateName('last_name')) {
			return false;
	}

	if(document.getElementById('last_name').value !=3D '') {
			if(!alphaSpaceOnly("last_name"))
				return false;
	}

	if(!nullCheck("email","Please enter email") || =
!emailValidation("email")) {
			return false;
	}

	/*if(document.getElementById('phone1_1').value !=3D '' || =
document.getElementById('phone1_2').value !=3D '' || =
document.getElementById('phone1_3').value !=3D ''){
		if(!isPhoneValid("phone1_1") || !isPhoneValid("phone1_2") || =
!isPhoneValid("phone1_3")){
			return false;
		}
		if(document.getElementById('phone1_3').value.length < 4){
			alert("Please enter valid phone code");
			return false;
		}
	}*/

	if(document.getElementById('phone1_1').value !=3D ''){
		if(!isPhoneValid("phone1_1")){
			return false;
		}
	}

	if (document.getElementById('boxchecked').value =3D=3D 0)
		{
			alert('Please Select Access Level');
			return false;
		}
	return true;
}

/************************************************************************=
*******
* To validate Pages
* @author Tony Thomas - Greynium Information Technologies Pvt. Ltd. | =
6/19/2008
*************************************************************************=
********/
function validatePage(formname){
	tinyMCE.triggerSave();
	var obj =3D eval('document.' + formname);

/*
	if(!nullCheck('meta_title','Please enter the meta Title')){
		return false;
	 }

	if(document.getElementById('meta_title').value !=3D ''){
		if (!isValidName('meta_title','Please enter valid meta title')){
			return false;
		}
	}

	var jdesc=3Dobj.meta_description;

 	if(jdesc.value=3D=3D''){
      		 alert("Please enter the meta description");
      		 obj.meta_description.focus();
      		 return false;
        }
    	if(jdesc.value!=3D''){
       		desc=3DTrimstr(jdesc.value)
       		if (desc.length=3D=3D0){
          		 alert("Please enter the meta description");
           		obj.meta_description.focus();
          		 return false;
       		}
       		if (desc.length>500){
                 	alert("Please enter meta descriptin upto 500 =
characters");
                	 obj.meta_description.focus();
                 	return false;
        	 }
        }
	var metakeywords=3Dobj.meta_keywords;

 	if(metakeywords.value=3D=3D''){
      		 alert("Please enter the meta keywords");
      		 obj.meta_keywords.focus();
      		 return false;
        }
    	if(metakeywords.value!=3D''){
       		desc=3DTrimstr(metakeywords.value)
       		if (desc.length=3D=3D0){
          		 alert("Please enter the meta keywords");
           		 obj.meta_keywords.focus();
          		 return false;
       		}
       		if (desc.length>500){
                 	alert("Please enter meta keywords upto 500 =
characters");
                	 obj.meta_keywords.focus();
                 	return false;
        	 }
        }

*/
	//if( !nullCheck('subject','Please enter the subject')){
		//return false;
	//}

	//if (!isValidName('subject','Please enter valid subject')){
		//return false;
	//}

	if(!nullCheck("subject","Please enter title") || =
!isValidName('subject')) {
		return false;
	}
	/*if(!alphanumeric('subject')) {
		alert("Please enter valid title")
		document.getElementById('subject').focus();
		//alert(document.getElementById('title').value);
		//val.title.select();
		return false;
	}*/

	/*if( (obj.author.value !=3D '')&&(!alphaSpaceOnly('author')) ) {
		alert("Please enter valid Author")
		document.getElementById('author').focus();
		return false;
	}*/

	if(countWords(obj.summary.value)>2000){
		alert('You can enter maximum of 2000 words into the summary');
		obj.summary.focus();
		return false;
	}

	if( (obj.image_type[1].checked) && (obj.image_file.value =3D=3D '') && =
(obj.img_path.value =3D=3D '')){
		alert('Please select photo');
		obj.image_file.focus();
		return false;
	}

	if(obj.image_file.value !=3D ''){
		imagePath =3D obj.image_file.value;

		var pathLength =3D imagePath.length;
		var lastDot =3D imagePath.lastIndexOf(".");
		var fileType =3D imagePath.substring(lastDot,pathLength);

		if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| (fileType =
=3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =3D=3D ".GIF") =
|| (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) {

		} else {
		alert("Upload only .JPG, .JPEG, and .GIF image formats. Your file-type =
is " + fileType);
		return false;
		}
	}

	var  s=3Dobj.content.value;
	if(s.indexOf('<img') =3D=3D '-1'){
		s=3Ds.replace(/<(.*?)>/g,"");
		s=3Ds.replace(/<(\/.*?)>/g,"");
		s=3Ds.replace(/[ ]/g,"");
	}

	s =3D s.replace(/&nbsp;/g,'');
	s=3DTrimstr(s);

	if(s.length=3D=3D0){
		alert("Please enter the content")
		//obj.content.focus();
		return false;
	}

	 if(s.length>35000){
	  	 alert("Please enter the content not more than 35000 characters")
	  	 //obj.content.focus();
	  	 return false;
	 }
	if (obj.category_id.value=3D=3D0){
		alert("Select the category");
		obj.category_id.focus();
		return false;
	}

	if( (obj.publish_date.value !=3D '') || (obj.publish_end_date.value =
!=3D '') )
	{
		var today  =3D new Date();
		var month =3D today.getMonth() + 1;
		if (month < 10){
			month =3D "0" + month;
		}
		var day   =3D today.getDate();
		if (day < 10){
			day =3D "0" + day;
		}
		var year  =3D today.getFullYear();
		var today1 =3D year+'-'+month+'-'+day;

		//alind changing the condition from less than equal to less than only
		/*if(obj.display_start_date.value < today1){
			alert("Display start date should be greater than today");
			obj.display_start_date.focus();
			return false;
		}*/

		if (obj.publish_end_date.value < obj.publish_date.value){
			alert("Display end date should be greater than or equal to Display =
start date");
			obj.publish_end_date.focus();
			return false;
		}
	}

	IGNORE_UNLOAD =3D true;
	obj.target=3D'';
	obj.action =3D '?module=3Dpages';

 }



//MouseOver Event for photos
function showPhoto(img, anc){
	document.getElementById('hover_image').src=3D'';
	document.getElementById('hover_image').src=3Dimg;
	document.getElementById('hover_image').style.left=3D(getX(anc) * =
1)+100;
	document.getElementById('hover_image').style.top=3DgetY(anc);
	document.getElementById('hover_image').style.display=3D'block';
}

//MouseOut Event for photos
function hidePhoto(){
	document.getElementById('hover_image').src=3D'';
	document.getElementById('hover_image').style.display=3D'none';
}

//get X Position value for any given object
function getX(obj){
	var o =3D obj;
	var x =3D o.offsetLeft;
	o =3D o.offsetParent;
	while(o !=3D null){
		x +=3D o.offsetLeft;
		o =3D o.offsetParent;
	}
	return x;
}

//get Y Position value for any given object
function getY(obj){
	var o =3D obj;
	var y =3D o.offsetTop + o.offsetHeight;
	o =3D o.offsetParent;
	while(o !=3D null){
		y +=3D o.offsetTop;
		o =3D o.offsetParent;
	}
	return y;
}


function loadAlbumRecord(id, name, parent_id){
	resetMessage();
	document.getElementById('id').value =3D id;
	document.getElementById('name').value =3D name;
	document.getElementById('parent_id').value =3D parent_id;
	//document.getElementById('parent_id').selectedIndex =3D parent_id;
	//document.formAdd.parent_id.selectedIndex =3D parent_id;
}

function loadFolderRecord(id, name, parent_id){
	resetMessage();
	document.getElementById('id').value =3D id;
	document.getElementById('name').value =3D name;
	document.getElementById('parent_id').value =3D parent_id;

	// this section is used to disable the parent category drop down list =
for categories
	// 120  -> supplements, 69 -> news , 105 -> movie guide
	if(id =3D=3D 120 || id =3D=3D 69 || id =3D=3D 105 || id =3D=3D 125 || =
id =3D=3D 121 || id =3D=3D 127 || id =3D=3D 126 || id =3D=3D 124 || id =
=3D=3D 122 || id =3D=3D 123){
		document.getElementById('parent_id').disabled =3D true;
	}else{
		document.getElementById('parent_id').disabled =3D false;
	}
	//document.getElementById('parent_id').selectedIndex =3D parent_id;
	//document.formAdd.parent_id.selectedIndex =3D parent_id;
}

function resetMessage(){
	if(document.getElementById('ErrorMessage')) =
document.getElementById('ErrorMessage').innerHTML =3D '';
}

function strpos( haystack, needle, offset){
	// http://kevin.vanzonneveld.net
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
	// *     returns 1: 14

	var i =3D haystack.indexOf( needle, offset ); // returns -1
	return i >=3D 0 ? i : -1;
}

function showHide(theid){

	var browser=3Dnavigator.appName;

	if (browser=3D=3D'Netscape'){
		if (document.getElementById){
			var switch_id =3D document.getElementById(theid);

			if (switch_id.className !=3D 'ShowRowFireFox'){
				document.getElementById(theid).className =3D 'ShowRowFireFox';
			}
			else{
				document.getElementById(theid).className =3D 'Hide';
			}
		}
	}

	else if (document.getElementById){
		var switch_id =3D document.getElementById(theid);

		if (switch_id.className !=3D 'Show'){
			document.getElementById(theid).className =3D 'Show';
		}
		else{
			document.getElementById(theid).className =3D 'Hide';
		}
	}
}


//Photo validation
function validatePhoto(formname){
	var obj =3D eval('document.' + formname);
	var id =3D obj.id.value;
	if(id > 0){
		if(obj.photo_file.value !=3D ''){
			imagePath =3D obj.photo_file.value;
			var pathLength =3D imagePath.length;
			var lastDot =3D imagePath.lastIndexOf(".");
			var fileType =3D imagePath.substring(lastDot,pathLength);
			if((fileType =3D=3D ".gif") || (fileType =3D=3D ".jpg") || (fileType =
=3D=3D ".jpeg") || (fileType =3D=3D ".GIF") || (fileType =3D=3D ".JPG") =
|| (fileType =3D=3D ".JPEG")) {

			} else {
			alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
			return false;
			}
		}
		if(obj.title.value =3D=3D ''){
			alert("Please enter photo title");
			obj.title.focus();
			return false;
		}
		if (!isValidString('title','Please enter valid title')){
			return false;
		}

		if(obj.copyright.value !=3D ''){
			if(obj.copyright.value.length>99)
			{
				alert("Copyright cannot exceed more than 100 characters");
				obj.copyright.focus();
				return false;
			}
		}

	}
	else{
		if(obj.photo_file.value =3D=3D ''){
			if(obj.photo_file.value =3D=3D ''){
				alert("Please select photo");
				return false;
			}
		}


		if(obj.photo_file.value !=3D ''){

			imagePath =3D obj.photo_file.value;

			var pathLength =3D imagePath.length;
			var lastDot =3D imagePath.lastIndexOf(".");
			var fileType =3D imagePath.substring(lastDot,pathLength);

			if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| (fileType =
=3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =3D=3D ".GIF") =
|| (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) {

			} else {
			alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
			return false;
			}

		}

		if(obj.title.value =3D=3D ''){
			alert("Please enter photo title");
			obj.title.focus();
			return false;
		}
		if (!isValidString('title','Please enter valid title')){
			return false;
		}

		if(obj.copyright.value !=3D ''){
			if(obj.copyright.value.length>99)
			{
				alert("Copyright cannot exceed more than 100 characters");
				obj.copyright.focus();
				return false;
			}
		}

	}

	IGNORE_UNLOAD =3D true;
	return true;
}

function validateWeather(formname){


    var obj =3D eval('document.' + formname);
    var id =3D obj.id.value;


    if(id =3D=3D"")
    {
        //if(obj.summary.value =3D=3D ''){
            //alert("Please enter summary");
            //obj.summary.focus();
            //return false;
        //}

       if(!nullCheck("summary","Please enter summary")) {
			return false;
		}
		if(obj.summary.value !=3D ''){
			if(obj.summary.value.length>9999)
			{
				alert("Summary cannot exceed more than 10000 characters");
				obj.summary.focus();
				return false;
			}
		}

		/*if(!nullCheck("temp_present","Please enter todays temperature")) {
			return false;
		}

		if(!isInteger("temp_present")){
			return false;
		}*/

		if(obj.temp_max.value !=3D '' && isNaN(obj.temp_max.value)){
			alert("please enter number only as maximum temperature");
			return false;
		}

		if(obj.temp_min.value !=3D '' && isNaN(obj.temp_min.value)){
			alert("please enter number only as minimum temperature");
			return false;
		}



		/*
        if(!nullCheck("forecast","Please enter forecast")) {
			return false;
		}

         if(obj.forecast.value !=3D ''){
			if(obj.forecast.value.length>9999)
			{
				alert("Forecast cannot exceed more than 10000 characters");
				obj.forecast.focus();
				return false;
			}
		}

        if(!nullCheck("outlook","Please enter outlook")) {
			return false;
		}

         if(obj.outlook.value !=3D ''){
			if(obj.outlook.value.length>9999)
			{
				alert("Outlook cannot exceed more than 10000 characters");
				obj.outlook.focus();
				return false;
			}
		}

        if(obj.image_small.value =3D=3D ''){

                alert("Please select home page image");
                return false;
            }



        if(obj.image_small.value !=3D ''){

            imagePath =3D obj.image_small.value;

            var pathLength =3D imagePath.length;
            var lastDot =3D imagePath.lastIndexOf(".");
            var fileType =3D imagePath.substring(lastDot,pathLength);

            if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            } else {
            alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
            return false;
            }

        }
*/
        if(obj.image_big.value =3D=3D ''){

                alert("Please select Detailed page image");
                return false;

        }

        if(obj.image_big.value !=3D ''){

            imagePath =3D obj.image_big.value;

            var pathLength =3D imagePath.length;
            var lastDot =3D imagePath.lastIndexOf(".");
            var fileType =3D imagePath.substring(lastDot,pathLength);

            if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            } else {
            alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
            return false;
            }

        }

       	if(obj.publish_date.value =3D=3D ''){
    		alert("Please select date");
		obj.publish_date.focus();
				return false;
	   }
    }
    else
    {

    	 if(obj.summary.value =3D=3D ''){
            alert("Please enter summary");
            obj.summary.focus();
            return false;
        }
        if(obj.summary.value !=3D ''){
			if(obj.summary.value.length>9999)
			{
				alert("Summary cannot exceed more than 10000 characters");
				obj.summary.focus();
				return false;
			}
		}

		/*if(!nullCheck("temp_present","Please enter todays temperature")) {
			return false;
		}

		if(!isInteger("temp_present")){
			return false;
		}*/

		if(obj.temp_max.value !=3D '' && isNaN(obj.temp_max.value)){
			alert("please enter number only as maximum temperature");
			return false;
		}

		if(obj.temp_min.value !=3D '' && isNaN(obj.temp_min.value)){
			alert("please enter number only as minimum temperature");
			return false;
		}

		/*
        if(obj.forecast.value =3D=3D ''){
            alert("Please enter forecast");
            obj.forecast.focus();
            return false;
        }

        if(obj.forecast.value !=3D ''){
			if(obj.forecast.value.length>9999)
			{
				alert("Forecast cannot exceed more than 10000 characters");
				obj.forecast.focus();
				return false;
			}
		}

        if(obj.outlook.value =3D=3D ''){
            alert("Please enter outlook");
            obj.outlook.focus();
            return false;
        }

     	 if(obj.outlook.value !=3D ''){
			if(obj.outlook.value.length>9999)
			{
				alert("Outlook cannot exceed more than 10000 characters");
				obj.outlook.focus();
				return false;
			}
		}


       if(obj.image_small.value !=3D ''){

            imagePath =3D obj.image_small.value;

            var pathLength =3D imagePath.length;
            var lastDot =3D imagePath.lastIndexOf(".");
            var fileType =3D imagePath.substring(lastDot,pathLength);

            if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            } else {
            alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
            return false;
            }

        }
*/
        if(obj.image_big.value !=3D ''){

            imagePath =3D obj.image_big.value;

            var pathLength =3D imagePath.length;
            var lastDot =3D imagePath.lastIndexOf(".");
            var fileType =3D imagePath.substring(lastDot,pathLength);

            if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            } else {
            alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
            return false;
            }

        }



    }
    //}
    IGNORE_UNLOAD =3D true;
    return true;

 }


 function validateCartoon(formname){


    var obj =3D eval('document.' + formname);
    var id =3D obj.id.value;


    if(id =3D=3D"")
    {

        if(obj.title.value =3D=3D ''){
            alert("Please enter title");
            obj.title.focus();
            return false;
        }


       //if(obj.description.value =3D=3D ''){
           //alert("Please enter description");
           //obj.description.focus();
           //return false;
        //}

        if(obj.description.value !=3D ''){
			if(obj.description.value.length>4999)
			{
				alert("Description cannot exceed more than 5000 characters");
				obj.description.focus();
				return false;
			}
		}

        //if(obj.outlook.value =3D=3D ''){
            //alert("Please enter outlook");
            //obj.outlook.focus();
            //return false;
        //}

        //if(obj.image_small.value =3D=3D ''){

                //alert("Please select Home page image");
                //return false;
            //}


        //if(obj.image_small.value !=3D ''){

            //imagePath =3D obj.image_small.value;

            //var pathLength =3D imagePath.length;
            //var lastDot =3D imagePath.lastIndexOf(".");
            //var fileType =3D imagePath.substring(lastDot,pathLength);

            //if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            //} else {
            //alert("Upload only .JPG, .JPEG, and .GIF image formats. =
Your file-type is " + fileType);
            //return false;
            //}

        //}

         if(obj.image_big.value =3D=3D ''){

                alert("Please select Detailed page image");
                return false;

        }


        if(obj.image_big.value !=3D ''){

            imagePath =3D obj.image_big.value;

            var pathLength =3D imagePath.length;
            var lastDot =3D imagePath.lastIndexOf(".");
            var fileType =3D imagePath.substring(lastDot,pathLength);

            if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            } else {
            alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
            return false;
            }

        }

       	if(obj.publish_date.value =3D=3D ''){
    		alert("Please enter date");
		obj.publish_date.focus();
				return false;
	   }
    }
    else
    {

    	 if(obj.title.value =3D=3D ''){
            alert("Please enter title");
            obj.title.focus();
            return false;
        }


        //if(obj.description.value =3D=3D ''){
           //alert("Please enter description");
            //obj.description.focus();
           //return false;
       //}

        //if(obj.outlook.value =3D=3D ''){
            //alert("Please enter outlook");
            //obj.outlook.focus();
            //return false;
        //}



       //if(obj.image_small.value !=3D ''){

            //imagePath =3D obj.image_small.value;

            //var pathLength =3D imagePath.length;
            //var lastDot =3D imagePath.lastIndexOf(".");
            //var fileType =3D imagePath.substring(lastDot,pathLength);

            //if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            //} else {
            //alert("Upload only .JPG, .JPEG, and .GIF image formats. =
Your file-type is " + fileType);
            //return false;
            //}

        //}

        if(obj.image_big.value !=3D ''){

            imagePath =3D obj.image_big.value;

            var pathLength =3D imagePath.length;
            var lastDot =3D imagePath.lastIndexOf(".");
            var fileType =3D imagePath.substring(lastDot,pathLength);

            if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            } else {
            alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
            return false;
            }

        }



    }
    //}
    IGNORE_UNLOAD =3D true;
    return true;

 }

 function checkStartDate(datestr){
	var orgdate=3Ddatestr.split(' ');
	var dte=3Dorgdate[0].split('-');
	var dt=3D new Date();
	dt.setFullYear(dte[0]);
	dt.setMonth(dte[1]-1);
	dt.setDate(dte[2]);
	var day=3Ddt.getDate();
	var dayofweek=3Ddt.getDay();
	if(dayofweek =3D=3D 0)return true;
	return false;
}
function checkEndDate(datestr){
	var orgdate=3Ddatestr.split(' ');
	var dte=3Dorgdate[0].split('-');
	var dt=3D new Date();
	dt.setFullYear(dte[0]);
	dt.setMonth(dte[1]-1);
	dt.setDate(dte[2]);
	var day=3Ddt.getDate();
	var dayofweek=3Ddt.getDay();
	if(dayofweek =3D=3D 6)return true;
	return false;
}


function validateDates(obj){
	var start_date=3Dobj.start_date.value;
	var end_date=3Dobj.end_date.value;
	var year=3Dobj.year.value;
	var day=3Dobj.day.value;
	if(!obj.func[0].checked && !obj.func[1].checked && !obj.func[2].checked =
){
		alert("Please select Yearly / Weekly / Daily");
		return false;
	}
	if(obj.func[0].checked){
		if(year=3D=3D''){
			alert('Please select the year');
			return false;
		}
	}
	if(obj.func[1].checked){
		if(start_date=3D=3D''){
			alert('Select start date (Sunday)');
			return false;
		}
		if(start_date!=3D''){
			if(!checkStartDate(start_date)){
				alert('Select valid start date of week(Sunday)');
				return false;
			}
		}


		if(end_date=3D=3D''){
			alert('Select end date (Saturday)');
			return false;
		}
		if(end_date!=3D''){
			if(!checkEndDate(end_date)){
				alert('Select valid end date of week(Saturday)');
				return false;
			}
		}

		var one_day =3D 1000 * 60 * 60 * 24 ;

		var start_dd =3D start_date.split(" ");

		var dat1 =3D start_dd[0].split("-");

		if(dat1[1]<10)
		{
			month1 =3D (dat1[1].substr(1))-1;
			//alert(month1+ 'month1')	;
		}
		else
		{
			month1 =3D dat1[1]-1;
		}

		if(dat1[2]<10)
		{
			day1 =3D dat1[2].substr(1);
			//alert(day1+ 'day1')	;
		}
		else
		{
			day1 =3D dat1[2];
		}
		var date1 =3D new Date(dat1[0], month1, day1);

		var end_dd =3D end_date.split(" ");

		var dat2 =3D end_dd[0].split("-");

		if(dat2[1]<10)
		{
			month2 =3D dat2[1].substr(1)-1;
		}
		else
		{
			month2 =3D dat2[1]-1;
		}

		if(dat2[2]<10)
		{
			day2 =3D dat2[2].substr(1);
		}
		else
		{
			day2 =3D dat2[2];
		}

		var date2 =3D new Date(dat2[0], month2, day2);


		var diff =3D (date2.getTime() - date1.getTime());

		//Calculate difference btw the two dates, and convert to days

		var days_diff =3D Math.ceil((diff/one_day)+1);

		if(days_diff>7 || days_diff =3D=3D 0 || days_diff < 0 )
		{
			alert('You have selected Invalid date');
			return false;
		}

	}

	if(obj.func[2].checked){
		if(day=3D=3D''){
			alert('Please select the date');
			return false;
		}
	}
	return true;
}


//function alphaSpaceOnly1(fldId,tag) {
	//var myRegxp =3D /^[a-zA-Z ]+$/;
	//var str     =3D document.getElementById(fldId).value;
    //if( !myRegxp.test(str) ){
		//alert(tag +" " + "name allows only alphabets and spaces");
		//PageLoadFocus(fldId);
		//return false;
	//}else{
		//return true;
	//}
//}


 function validateHoroscope(obj){

 	var horo=3Dnew =
Array('aries','taurus','gemini','cancer','leo','virgo','libra','scorpio',=
'sagittarius','capricorn','aquarius','pisces');
 	//alert(obj.start_date.value);return false;
 	for(var i=3D0;i<12;i++){
		tag=3Dhoro[i];

		//var names =3D 'name_'+tag;
		//alert(names);


		if(eval('obj.name_'+tag+'.value')=3D=3D''){ //|| =
!validateName('first_name')

			alert('Enter '+tag+' title');

			eval('obj.name_'+tag+'.focus()');
			return false;
		}

		if(Trim(eval('obj.name_'+tag+'.value'))){ //|| =
!validateName('first_name')

			alert('Enter '+tag+' valid title');

			eval('obj.name_'+tag+'.focus()');
			return false;
		}




		 /*if (!alphanumeric('name_'+tag)){
		 	return false;
		}*/



		if(eval('obj.description_'+tag+'.value')=3D=3D''){
			alert('Enter '+tag+' description');
			eval('obj.description_'+tag+'.focus()');
			return false;
		}
		if(Trim(eval('obj.description_'+tag+'.value'))){
			alert('Enter '+tag+' valid description');
			eval('obj.description_'+tag+'.focus()');
			return false;
		}


		if(eval('obj.description_'+tag+'.value')!=3D ''){
			if(eval('obj.description_'+tag+'.value').length>4999)
			{
				alert("Description cannot exceed more than 5000 characters");
				eval('obj.description_'+tag+'.focus()');
				return false;
			}
		}
		/*if(obj.year.value!=3D''){

			if(eval('obj.talisman_'+tag+'.value')=3D=3D''){
				alert('Enter '+tag+' talisman value');
				eval('obj.talisman_'+tag+'.focus()');
				return false;
			}
			if(Trim(eval('obj.talisman_'+tag+'.value'))){
				alert('Enter '+tag+' valid talisman value');
				eval('obj.talisman_'+tag+'.focus()');
				return false;
			}
			if (!alphanumeric('talisman_'+tag)){
		 		return false;
			}

			if(eval('obj.crystal_'+tag+'.value')=3D=3D''){
				alert('Enter '+tag+' crystal value');
				eval('obj.crystal_'+tag+'.focus()');
				return false;
			}
			if(Trim(eval('obj.crystal_'+tag+'.value'))){
				alert('Enter '+tag+' valid crystal value');
				eval('obj.crystal_'+tag+'.focus()');
				return false;
			}
			if (!alphanumeric('crystal_'+tag)){
		 		return false;
			}
		}*/
		if(obj.start_date.value!=3D''){


			if(eval('obj.gem_'+tag+'.value')=3D=3D''){
				alert('Enter '+tag+' gem value');
				eval('obj.gem_'+tag+'.focus()');
				return false;
			}
			if(Trim(eval('obj.gem_'+tag+'.value'))){
				alert('Enter '+tag+' valid gem value');
				eval('obj.gem_'+tag+'.focus()');
				return false;
			}
			if (!alphanumeric('gem_'+tag)){
		 		return false;
			}
		}

		if(eval('obj.oldimage_'+tag+'.value')=3D=3D''){
			/*if(eval('obj.image_'+tag+'.value')=3D=3D''){
				alert('Enter '+tag+' image');
				eval('obj.image_'+tag+'.focus()');
				return false;
			}*/
        	if(eval('obj.image_'+tag+'.value')!=3D''){
        		imagePath =3D eval('obj.image_'+tag+'.value');
    	        var pathLength =3D imagePath.length;
        	    var lastDot =3D imagePath.lastIndexOf(".");
            	var fileType =3D imagePath.substring(lastDot,pathLength);
                if((fileType =3D=3D ".gif") || (fileType =3D=3D =
".gif")|| (fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || =
(fileType =3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D =
".JPEG")) {
                } else {

           			alert("In"+" "+tag+" "+"Upload only .JPG, .JPEG, and .GIF =
image formats. Your file-type is " + fileType);
            		return false;
	            }
            }
		}

		//if(eval('obj.oldimage_'+tag+'.value')!=3D''){

        	if(eval('obj.image_'+tag+'.value')!=3D''){
        	    imagePath =3D eval('obj.image_'+tag+'.value');
    	        var pathLength =3D imagePath.length;
        	    var lastDot =3D imagePath.lastIndexOf(".");
            	var fileType =3D imagePath.substring(lastDot,pathLength);
                if((fileType =3D=3D ".gif") || (fileType =3D=3D =
".gif")|| (fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || =
(fileType =3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D =
".JPEG")) {
                } else {

           			alert("In"+" " +tag+" "+"Upload only .JPG, .JPEG, and .GIF =
image formats. Your file-type is " + fileType);
            		return false;
	            }
            }
		//}

		if(obj.day.value!=3D'' || obj.start_date.value!=3D'' ){

			if(eval('obj.color_'+tag+'.value')=3D=3D''){
				alert('Enter '+tag+' color value');
				eval('obj.color_'+tag+'.focus()');
				return false;
			}
			if(Trim(eval('obj.color_'+tag+'.value'))){
				alert('Enter '+tag+' valid color');
				eval('obj.color_'+tag+'.focus()');
				return false;
			}
			if (!alphanumeric('color_'+tag)){
		 		return false;
			}
			if(eval('obj.number_'+tag+'.value')=3D=3D''){
				alert('Enter '+tag+' number');
				eval('obj.number_'+tag+'.focus()');
				return false;
			}
			if(!isInteger('number_'+tag)){
				//alert('Enter '+tag+' number');
				//eval('obj.number_'+tag+'.focus()');
				return false;
			}


		}

 	}
 	if(obj.astro_image_id.value =3D=3D ''){
 		alert("please select a astrologer image");
 		return false;
 	}
 	return true;
 }


 function validateRegistration(val) {
	if(val !=3D '1' && val !=3D '2')	{
		if(!nullCheck("register_username","Please enter user name") || =
!checkLen(4,"register_username","Username should contain minimum 4 =
characters") || !validateUserName('register_username')) {
			return false;
		}
		if(!nullCheck("register_password","Please enter password") || =
!checkLen(6,"register_password","Password should contain minimum 6 =
characters") || !nullCheck("cpassword","Please enter confirm password") =
|| !equal("register_password","cpassword","Passwords do not Matched"))
				return false;
	}

	if(val !=3D '2' && val !=3D '3') {
		if(document.getElementById('user_type') && =
document.getElementById('user_type').selectedIndex =3D=3D '0') {
				alert("Please select user type");
				return false;
		}
	}
	if(!nullCheck("first_name","Please enter first name") || =
!alphaSpaceOnly("first_name")) {
			return false;
	}

	if(val =3D=3D '4'){

		if(!nullCheck("last_name","Please enter last name") || =
!alphaSpaceOnly("last_name")) {
				return false;
		}

		if(!nullCheck("email","Please enter email") || =
!emailValidation("email") ) {
				return false;
		}

		if(document.getElementById('zip').value !=3D ''){
			var s =3D document.getElementById('zip').value;
			if (isNaN(s)) {
				alert("Please Enter Numbers Only in Zipcode");
				return false;
			}
		}
	}

	/*if(document.getElementById('phone1_1').value !=3D '' || =
document.getElementById('phone1_2').value !=3D '' || =
document.getElementById('phone1_3').value !=3D ''){
		if(!isPhoneValid("phone1_1") || !isPhoneValid("phone1_2") || =
!isPhoneValid("phone1_3") ){
			return false;
		}
		if(document.getElementById('phone1_3').value.length < 4){
			alert("Please enter valid phone code");
			return false;
		}
	}*/

	if(document.getElementById('phone1_1').value !=3D ''){
		if(!isPhoneValid("phone1_1")){
			return false;
		}
	}

	if(document.getElementById('last_name').value !=3D '') {
			if(!alphaSpaceOnly("last_name"))
				return false;
	}

	if(val !=3D '4'){
		/*if(!nullCheck("email","Please enter email") || =
!emailValidation("email") || !isPhoneValid("phone1_1") || =
!isPhoneValid("phone1_2") || !isPhoneValid("phone1_3")) {
				return false;
		}*/

		if(!nullCheck("email","Please enter email") || =
!emailValidation("email") || !isPhoneValid("phone1_1")) {
				return false;
		}

		if(document.getElementById('address1').value =3D=3D '') {
				alert("Please enter address1");
				document.getElementById('address1').focus();
				return false;
		}

		if(document.getElementById('country_id').selectedIndex =3D=3D '0') {
				alert("Please select country");
				return false;
		}

		if(document.getElementById('state_id').selectedIndex =3D=3D '0') {
				alert("Please select state");
				return false;
		}

		if(document.getElementById('city_id').value =3D=3D '') {
				alert("Please enter city");
				document.getElementById('city_id').focus();
				return false;
		}

		if(!nullCheck("zip","Please enter zip")) {
				return false;
		}
	}
	//IGNORE_UNLOAD =3D true;
	return true;
}

function validateChangePassword(frm) {
	if(frm.current_password.value =3D=3D '') {
		alert('Please enter current password');
			return false;
	}
	if(frm.new_password.value =3D=3D '') {
		alert('Please enter new password');
			return false;
	}
	else if(frm.new_password.value.length < 6) {
		alert('New password should be greater than 6 digits');
			return false;
	}
	if(frm.retype_new_password.value =3D=3D '') {
		alert('Please enter retype new password');
			return false;
	}
	if(frm.new_password.value !=3D frm.retype_new_password.value) {
		alert('New password and Retype new password should be same');
		return false;
	}
		IGNORE_UNLOAD =3D true;

		return true;
}

function getStatesByCountryId(country_id) {

	var pageURL =3D =
"get_info.php?func=3Dget_states&country_id=3D"+country_id;
	var status =3D AjaxRequest.get(
		{
		'url':pageURL,
		'onSuccess':function(req){ =
document.getElementById('states_list').innerHTML =3D req.responseText; =
}, 'onError':function(req){ =
alert('Error!\nStatusText=3D'+req.statusText+'\nContents=3D'+req.response=
Text); }
		}
	);


}



function validateStock(formname){


    var obj =3D eval('document.' + formname);
    //var id =3D obj.id.value;


  //  if(id =3D=3D"")
  //  {
        //if(obj.bse_sensex.value =3D=3D ''){
            //alert("Please enter bse_sensex");
            //obj.bse_sensex.focus();
            //return false;
        //}

       if(!nullCheck("bse_sensex","Please enter bse sensex")) {
       	obj.bse_sensex.focus();
				return false;

		}

		if(obj.bse_sensex.value !=3D '' || Trim(obj.bse_sensex.value)){
			obj.bse_sensex.value =3D obj.bse_sensex.value.split(",").join("");
			if(!isNaN(obj.bse_sensex.value)){

				if(obj.bse_sensex.value.lastIndexOf(".") =3D=3D '-1'){
					if(obj.bse_sensex.value.length > 8){
						alert("please enter 8 digits only in bse sensex");
						obj.bse_sensex.focus();
						return false;
					}
				}
			}
		else{
			alert("please enter valid bse sensex");
			obj.bse_sensex.focus();
			return false;
			}

		}

        if(!nullCheck("bse_difference","Please enter bse difference")) {
               	obj.bse_difference.focus();
				return false;
		}

		if(obj.bse_difference.value !=3D '' || =
Trim(obj.bse_difference.value)){
			obj.bse_difference.value =3D =
obj.bse_difference.value.split(",").join("");
			if(!isNaN(obj.bse_difference.value)){

				if(obj.bse_difference.value.lastIndexOf(".") =3D=3D '-1'){
					if(obj.bse_difference.value.length > 8){
						alert("please enter 8 digits only in bse difference");
						obj.bse_difference.focus();
						return false;
					}
				}
			}
		else{
			alert("please enter valid bse difference");
			obj.bse_difference.focus();
			return false;
			}

		}

       if(!nullCheck("nse_sensex","Please enter nse sensex")) {
       			obj.nse_sensex.focus();
				return false;
		}


		if(obj.nse_sensex.value !=3D '' || Trim(obj.nse_sensex.value)){
			obj.nse_sensex.value =3D obj.nse_sensex.value.split(",").join("");
			if(!isNaN(obj.nse_sensex.value)){

				if(obj.nse_sensex.value.lastIndexOf(".") =3D=3D '-1'){
					if(obj.nse_sensex.value.length > 8){
						alert("please enter 8 digits only in nse sensex");
						obj.nse_sensex.focus();
						return false;
					}
				}
			}
		else{
			alert("please enter valid nse sensex");
			obj.nse_sensex.focus();
			return false;
			}

		}

          if(!nullCheck("nse_difference","Please enter nse difference")) =
{
          		obj.nse_difference.focus();
				return false;
		}

		if(obj.nse_difference.value !=3D '' || =
Trim(obj.nse_difference.value)){
			obj.nse_difference.value =3D =
obj.nse_difference.value.split(",").join("");
			if(!isNaN(obj.nse_difference.value)){

				if(obj.nse_difference.value.lastIndexOf(".") =3D=3D '-1'){
					if(obj.nse_difference.value.length > 8){
						alert("please enter 8 digits only in nse difference");
						obj.nse_difference.focus();
						return false;
					}
				}
			}
		else{
			alert("please enter valid nse difference");
			obj.nse_difference.focus();
			return false;
			}

		}



       var cnt=3D1;
		for (var i=3D0;i<obj.elements.length;i++ ){
			if(obj.elements[i].type =3D=3D 'text' && obj.elements[i].name =3D=3D =
'price[]'){
				if(obj.elements[i].value !=3D '' || Trim(obj.elements[i].value)){
					obj.elements[i].value =3D =
obj.elements[i].value.split(",").join("");
					if(!isNaN(obj.elements[i].value)){

						if(obj.elements[i].value.lastIndexOf(".") =3D=3D '-1'){
							if(obj.elements[i].value.length > 8){
								alert("please enter 8 digits only");
								return false;
							}
						}
					}
					else{
						alert("please enter valid price");
						return false;
					}

				}
				cnt++;
			}

		}


		   if(!nullCheck("publish_date","Please enter publish date")) {
				return false;
		}

       return true;
  //  }
}

//var floatRegExp =3D =
/^([+\-])?\d*([\.])?\d*([eE]([+\-])?)?\d*$/;([\w-]+(?:\.[\w-]+)*)


/************************************************************************=
*******
* To work with cancel button for yearly calender
* @author Smitha R- Greynium Information Technologies Pvt. Ltd. | =
10/07/2008
*************************************************************************=
********/
function cancelYearlyCalender(str){

	IGNORE_UNLOAD =3D true;

	var msg1 =3D 'Are you sure want to cancel?';

	if (confirm(msg1)){
		document.location.href=3D'index.php';
		return true;
	}else{
		return false;
	}
}

function isValidName(fldId,msg){
	var obj =3D document.getElementById(fldId).value;
	var pattern=3D/[*/\\:"><|]@/;

	if(pattern.test(obj)){
		alert(msg);
	   	PageLoadFocus(fldId);
   		return false;
    }
    else return true;
}

//function validateInteger(fldId) {
	//var myRegxp =3D /^([+\- 0-9 .])+$/;
	//var str     =3D document.getElementById(fldId).value;
    //if(! myRegxp.test(str)){
		//alert("Please Enter Valid price");
		//PageLoadFocus(fldId);
		//return false;
	//}else{
		//return true;
	//}
//}

//function isValidCurrency(theField) {
            //var val =3D theField.value;
            //val =3D val.replace(/\s/g, ""); //remove whitespace

            //if(val.search(/^\d{1,3}(,?\d{3})*\.?(\d{1,2})?$/) =3D=3D =
-1) {
                        //alert(" is not a valid amount.");
                        //return false;
            //}
            //else {
                        //return true;
            //}
      //}



function getFrontendStatesByCountryId(country_id,referer) {

	var actual_referer =3D referer;
	var pageURL =3D =
"get_info.php?func=3Dget_states&country_id=3D"+country_id;

	var status =3D AjaxRequest.get(
		{
		'url':pageURL,
		'onSuccess':function(req){ if(actual_referer =
!=3D''){setReferer(actual_referer)} =
document.getElementById('states_list').innerHTML =3D req.responseText; =
}, 'onError':function(req){ =
alert('Error!\nStatusText=3D'+req.statusText+'\nContents=3D'+req.response=
Text); }
		}
	);


}

function setReferer(temp_referer){

		var pageURL =3D temp_referer;
		var status =3D AjaxRequest.get(
			{
			'url':pageURL,
			'onSuccess':function(req){ return 1 ;}, 'onError':function(req){ =
alert('Error!\nStatusText=3D'+req.statusText+'\nContents=3D'+req.response=
Text); }
			}
		);

	}

function validateLogin() {
	var frm =3D document.login_form1;
	if(frm.username.value =3D=3D '') {
		alert("Username should not be empty");
		frm.username.focus();
		return false;
	}
	if(frm.password.value =3D=3D '') {
		alert("Password should not be empty");
		frm.password.focus();
		return false;
	}
	return true;
}




function reportAError() {

	var emailMatch =3D =
/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/;

	var  mail_from =3D document.getElementById('your_email').value;
	var mail_body =3D document.getElementById('message').value;
	var mail_subject =3D document.getElementById('subject').value;
	var captcha =3D document.getElementById('captcha').value;

	if( !nullCheck('name','Please enter the name') || =
!validateUserName('name')){
		return false;
	}

    if(frmEmail.your_email.value.length =3D=3D 0 || =
!emailMatch.test(frmEmail.your_email.value)) {
       alert('Please enter valid Mail ID');
       frmEmail.your_email.focus();
       frmEmail.your_email.select();
       return false;
	}
	if( !nullCheck('subject','Please enter subject')){
		return false;
	}

	if( !nullCheck('message','Please enter the message')){
		return false;
	}
   else if(frmEmail.message.value.length < 5 ) {
       alert('Message cannot be less than 5 characters');
       frmEmail.message.focus();
       frmEmail.message.select();
       return false;
   }
   else if(frmEmail.message.value.length > 3000 ) {
       alert('Message cannot exceed more than 3000 characters');
       frmEmail.message.focus();
       frmEmail.message.select();
       return false;
   }
	if( !nullCheck('captcha','Please enter the code')){
		return false;
	}


  	return true;
}





function validateCalender(formname){
	//alert("dfji");

    var obj =3D eval('document.' + formname);
    var id =3D obj.id.value;


    if(id =3D=3D"")
    {
        if(obj.year.value =3D=3D ''){
            alert("Please select year");
            obj.year.focus();
            return false;
        }




        if(obj.photo_file.value =3D=3D ''){

                alert("Please select photo");
                return false;
            }



        if(obj.photo_file.value !=3D ''){

            imagePath =3D obj.photo_file.value;

            var pathLength =3D imagePath.length;
            var lastDot =3D imagePath.lastIndexOf(".");
            var fileType =3D imagePath.substring(lastDot,pathLength);

            if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            } else {
            alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
            return false;
            }

        }


    }
    else
    {

    	 if(obj.year.value =3D=3D ''){
            alert("Please enter year");
            obj.year.focus();
            return false;
        }




        if(obj.photo_file.value =3D=3D ''){

                alert("Please select photo");
                return false;
            }



        if(obj.photo_file.value !=3D ''){

            imagePath =3D obj.photo_file.value;

            var pathLength =3D imagePath.length;
            var lastDot =3D imagePath.lastIndexOf(".");
            var fileType =3D imagePath.substring(lastDot,pathLength);

            if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            } else {
            alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
            return false;
            }

        }



    }
    //}
    IGNORE_UNLOAD =3D true;
    return true;

 }


 function tellAFriend() {

 	 var urlAddress =3D window.location.href;
	var emailMatch =3D =
/^(([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+(\;)=
*)+$/;
 	var mail_to=3D document.getElementById('friend_email').value;
	/*var temp =3D =
document.getElementById('friend_email').value.split(';');
 	alert(temp.length);*/
	var  mail_from =3D document.getElementById('your_email').value;
	var mail_body =3D document.getElementById('message').value;
	document.getElementById('addr').value =3D window.location.href;

    if(frmEmail.your_email.value.length =3D=3D 0 || =
!emailMatch.test(frmEmail.your_email.value)) {
       alert('Please Enter valid Mail ID');
       frmEmail.your_email.focus();
       frmEmail.your_email.select();
       return false;
	}
	else if(frmEmail.friend_email.value.length =3D=3D 0 || =
!emailMatch.test(frmEmail.friend_email.value))
	{
       alert('Please Enter valid friends mail id');
       frmEmail.friend_email.focus();
       frmEmail.friend_email.select();
       return false;
	}
   else if(frmEmail.message.value.length < 5 ) {
       alert('Message cannot be less than 5 characters');
       frmEmail.message.focus();
       frmEmail.message.select();
       return false;
   }
   else if(frmEmail.message.value.length > 3000 ) {
       alert('Message cannot exceed more than 3000 characters');
       frmEmail.message.focus();
       frmEmail.message.select();
       return false;
   }

   //var status =3D AjaxRequest.submit (
       //frmEmail
       //,{
           //'onSuccess':function(req) {
				//response =3D req.responseText;
				////alert(response);
   		   //}
           //,'onError':function(req) {
               //alert('There is a problem to send your message.');

           //}
       //}
   //);

	//frmEmail.reset();
	return true;
}



 /*------------------------------------------------------------------
          Poll front end Module
------------------------------------------------------------------*/

function viewPollResult(value, id){

	var url =3D "weekly_polls.php?q=3D"+value+"&id=3D"+id;
	AjaxRequest.get(
		{
		  'url':url
		  ,'onSuccess':function(req){ =
document.getElementById('show_poll').innerHTML=3Dreq.responseText; }
		}
	  );
}

function setPollOptionsFlag(){

	if(document.getElementById('options_flag').value=3D=3D0){
		document.getElementById('options_flag').value=3D1;
		return 0
	}
	else{
		document.getElementById('options_flag').value=3D1;
		return 0
	}
}

function setPollViewFlag(){

	if(document.getElementById('view_flag').value=3D=3D1){
		document.getElementById('view_flag').value=3D0;
		document.frmPolls.action=3D"index.php";
		document.frmPolls.submit();
		return false;

	}
	return false;
}

function validatePolls(url){


	if(document.getElementById('user_id').value=3D=3D''){
		document.location =3D url+'login.php';
		return false;
	}

	if(document.getElementById('options_flag').value=3D=3D0){
		alert("Please select an option");
		return false;
	}

	return votePoll(url)

}

function votePoll(base_url){
	var i;
	var options =3D '';
	var temp=3D'';
		for(i=3D0;i<document.frmPolls.options.length;i++)
			{
				if(document.frmPolls.options[i].checked)
					{
						options =3D document.frmPolls.options[i].value;
						if(temp=3D=3D''){
							temp =3D temp+options;
						}
						else{
							temp =3D temp+","+options;
						}
					}
			}


			var value =3D document.getElementById('vote_flag').value;
			var uid =3D document.getElementById('user_id').value;
			var pid =3D document.getElementById('poll_id').value;

			var url =3D =
base_url+"weekly_polls.php?q=3D"+value+"&options=3D"+temp+"&user_id=3D"+u=
id+"&poll_id=3D"+pid;

			//return false;
			AjaxRequest.get(
				{
				  'url':url
				  ,'onSuccess':function(req){ =
document.getElementById('show_poll').innerHTML=3Dreq.responseText; }
				}
			  );

	return false;
}
/*------------------------------------------------------------------
          End of Poll front end
------------------------------------------------------------------*/

/*------------------------------------------------------------------
       weekly Poll listing front end Module
------------------------------------------------------------------*/

function setOptionsFlag(){

	if(document.getElementById('options_flag').value=3D=3D0){
		document.getElementById('options_flag').value=3D1;
	}
	else{
		document.getElementById('options_flag').value=3D1;
	}
}

function setViewFlag(id){

	document.getElementById('set_flag').innerHTML =3D "<input type=3Dhidden =
name=3Df value=3D2>";
	if(document.getElementById('view_flag').value=3D=3D1){
		document.getElementById('poll_id').value=3Did;

		document.frmPollList.action=3D"weekly_polls_list.php";
		document.frmPollList.submit();
		return false;
	}
	return false;

}


/*------------------------------------------------------------------
         weekly Poll listing front end
------------------------------------------------------------------*/

function validatePollList(vote_id){

	if(document.getElementById('user_id').value=3D=3D''){
		document.location =3D 'login.php';
		return false;
	}

	document.getElementById('poll_id').value=3Dvote_id;

	if(document.getElementById('options_flag').value=3D=3D0){
		alert("Please select an option");
		return false;
	}

}

/*------------------------------------------------------------------
          End of weekly Poll listing front end
------------------------------------------------------------------*/

/* ---------- classified categories ---*/

function loadClassifiedCat(id, name){
	resetMessage();
	document.getElementById('id').value =3D id;
	document.getElementById('name').value =3D name;
}

/*--------ends classified categories -------*/


/*-----------classified upload validations------------*/

 function validateClassifedUpload(formname){

    var obj =3D eval('document.' + formname);

        if(obj.uploaded_date.value =3D=3D ''){
            alert("Please select a date");
            return false;
        }


        if(obj.pdf_file.value =3D=3D ''){
			alert("Please select a file");
			return false;
        }
    return true;
}

function cancelClassifiedUpload(str){

var msg1 =3D 'Are you sure want to cancel?';

	if (confirm(msg1)){
		document.location.href=3D'index.php';
		return true;
	}else{
		return false;
	}
}
   /*-----------ENDS classified upload validations------------*/

/************************************************************************=
*******
* To work with cancel button in front end
* @author Alind Tiwari - Greynium Information Technologies Pvt. Ltd. | =
27-july-2008
*************************************************************************=
********/
function cancelConfirmFrontEnd(str){

	var msg1 =3D 'Are you sure want to cancel?';
	if (confirm(msg1)){
		if(str=3D=3D''){
			document.location.href=3D'index.php';
		}
		else{
			document.location.href=3Dstr;
		}
	}
	else{
		return false;
	}
}

function addToFavorites(){
	var urlAddress =3D window.location.href;
	var pageName =3D document.title;
	if ((navigator.appName =3D=3D "Microsoft Internet Explorer") && =
(parseInt(navigator.appVersion) >=3D 4)) {
	  window.external.AddFavorite(urlAddress,pageName);
	}
	else if (navigator.appName =3D=3D "Firefox") {
		window.sidebar.addPanel(pageName,urlAddress,"");
	}
	else {
		alert("Press CTRL-D (Firefox) or CTRL-T (Opera) to bookmark");
	}
}

function validateEditProfile(){

	if(!nullCheck("first_name","Please enter first name") || =
!alphaSpaceOnly("first_name")) {
		return false;
	}

	if(!nullCheck("last_name","Please enter last name") || =
!alphaSpaceOnly("last_name")) {
			return false;
	}

	if(!nullCheck("email","Please enter email") || =
!emailValidation("email") ) {
			return false;
	}

	if(document.getElementById('zip').value !=3D ''){
		var s =3D document.getElementById('zip').value;
		if (isNaN(s)) {
			alert("Please Enter Numbers Only in Zipcode");
			return false;
    	}
	}
}

function validateHorizontalMenu(formname)
{
	var obj =3D eval('document.' + formname);

	if(document.getElementById('type_id').value =3D=3D '0'){
		alert('Please select type');
		return false;
	}


	if(document.getElementById('type_id').value =3D=3D '2'){
		if(obj.parent_id.value=3D=3D'0'){
			alert('Please select a different category');
			return false;
		}
	}

	if( !nullCheck('title','Please enter title')){
		return false;
	}

	if (!validateMenuTitle('title')){
		return false;
	}

	if(Trimstr(obj.url.value) !=3D ''){
		var myRegxp =3D /"/;
		var str     =3D obj.url.value;
    	if(myRegxp.test(str)){
			alert("please enter valid URL");
			PageLoadFocus('url');
			return false;
		}
	}
	/*if( !checkSelect('parent_id','Select Parent') ){
		return false;
	}*/
	var temp_id			=3D document.getElementById('id').value;
	var temp_parent_id	=3D document.getElementById('parent_menu').value;

	if(temp_id =3D=3D temp_parent_id){
		alert("A menu item cannot be parent of itself");
		return false;
	}

	IGNORE_UNLOAD =3D true;
	return true;
}

function validateMenuTitle(fldId) {
	var myRegxp =3D /^[a-zA-Z0-9\.\-\'& ]+$/;
	var str     =3D document.getElementById(fldId).value;
    if(! myRegxp.test(str)){
		alert('Please enter valid title');
		//PageLoadFocus(fldId);
		return false;
	}else{
		return true;
	}
}


function validateWisdom(formname){


    var obj =3D eval('document.' + formname);
    var id =3D obj.id.value;


    if(id =3D=3D"")
    {

       if(!nullCheck("quote","Please enter quote")) {
			return false;
		}


        if(!nullCheck("author","Please enter author")) {
			return false;
		}

         //if(obj.forecast.value !=3D ''){
			//if(obj.forecast.value.length>4999)
			//{
				//alert("Forecast cannot exceed more than 5000 characters");
				//obj.forecast.focus();
				//return false;
			//}
		//}


       	if(obj.wisdom_date.value =3D=3D ''){
    		alert("Please enter date");
		obj.wisdom_date.focus();
				return false;
	   }
    }
    else
    {

    	 if(!nullCheck("quote","Please enter quote")) {
			return false;
		}


        if(!nullCheck("author","Please enter author")) {
			return false;
		}




       	if(obj.wisdom_date.value =3D=3D ''){
    		alert("Please enter date");
		obj.wisdom_date.focus();
				return false;
	   }

   }
    //}
    IGNORE_UNLOAD =3D true;
    return true;

 }


function cancelThis()
{
	if(confirm("Are you sure you want to cancel?")){
		history.go(-1);
		return true;
	}else{
		return false;
	}


}

//for resize the images

function resize(which, max) {
  var elem =3D document.getElementById(which);
  if (elem =3D=3D undefined || elem =3D=3D null) return false;
  if (max =3D=3D undefined) max =3D 100;
  if (elem.width > elem.height) {
	if (elem.width > max) elem.width =3D max;
  } else {
	if (elem.height > max) elem.height =3D max;
  }
}

function validatehoro_images(formname){
	//alert("dfji");

    var obj =3D eval('document.' + formname);


    	if(obj.astro_name.value =3D=3D ''){
            alert("Please enter astro name");
            obj.astro_name.focus();
            return false;
        }





        if(obj.photo_file.value =3D=3D ''){

                alert("Please select photo");
                return false;
            }



        if(obj.photo_file.value !=3D ''){

            imagePath =3D obj.photo_file.value;

            var pathLength =3D imagePath.length;
            var lastDot =3D imagePath.lastIndexOf(".");
            var fileType =3D imagePath.substring(lastDot,pathLength);

            if((fileType =3D=3D ".gif") || (fileType =3D=3D ".gif")|| =
(fileType =3D=3D ".jpg") || (fileType =3D=3D ".jpeg") || (fileType =
=3D=3D ".GIF") || (fileType =3D=3D ".JPG") || (fileType =3D=3D ".JPEG")) =
{

            } else {
            alert("Upload only .JPG, .JPEG, and .GIF image formats. Your =
file-type is " + fileType);
            return false;
            }

        }

    IGNORE_UNLOAD =3D true;
    return true;

 }

 function loadBreakingNewsCategory(id, name){
	resetMessage();
	document.getElementById('id').value =3D id;
	document.getElementById('name').value =3D name;
	//document.getElementById('description').value =3D =
document.getElementById('faq_category_'+id).innerHTML;
}

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/ajax_request.js

// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
// Author: Matt Kruse <matt@ajaxtoolbox.com>
// WWW: http://www.AjaxToolbox.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download.=20
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

/**
 * The AjaxRequest class is a wrapper for the XMLHttpRequest objects =
which=20
 * are available in most modern browsers. It simplifies the interfaces =
for
 * making Ajax requests, adds commonly-used convenience methods, and =
makes=20
 * the process of handling state changes more intuitive.
 * An object may be instantiated and used, or the Class methods may be =
used=20
 * which internally create an AjaxRequest object.
 */
function AjaxRequest() {
	var req =3D new Object();
=09
	// -------------------
	// Instance properties
	// -------------------

	/**
	 * Timeout period (in ms) until an async request will be aborted, and
	 * the onTimeout function will be called
	 */
	req.timeout =3D null;
=09
	/**
	 *	Since some browsers cache GET requests via XMLHttpRequest, an
	 * additional parameter called AjaxRequestUniqueId will be added to
	 * the request URI with a unique numeric value appended so that the =
requested
	 * URL will not be cached.
	 */
	req.generateUniqueUrl =3D true;
=09
	/**
	 * The url that the request will be made to, which defaults to the =
current=20
	 * url of the window
	 */
	req.url =3D window.location.href;
=09
	/**
	 * The method of the request, either GET (default), POST, or HEAD
	 */
	req.method =3D "GET";
=09
	/**
	 * Whether or not the request will be asynchronous. In general, =
synchronous=20
	 * requests should not be used so this should rarely be changed from =
true
	 */
	req.async =3D true;
=09
	/**
	 * The username used to access the URL
	 */
	req.username =3D null;
=09
	/**
	 * The password used to access the URL
	 */
	req.password =3D null;
=09
	/**
	 * The parameters is an object holding name/value pairs which will be=20
	 * added to the url for a GET request or the request content for a POST =
request
	 */
	req.parameters =3D new Object();
=09
	/**
	 * The sequential index number of this request, updated internally
	 */
	req.requestIndex =3D AjaxRequest.numAjaxRequests++;
=09
	/**
	 * Indicates whether a response has been received yet from the server
	 */
	req.responseReceived =3D false;
=09
	/**
	 * The name of the group that this request belongs to, for activity=20
	 * monitoring purposes
	 */
	req.groupName =3D null;
=09
	/**
	 * The query string to be added to the end of a GET request, in proper=20
	 * URIEncoded format
	 */
	req.queryString =3D "";
=09
	/**
	 * After a response has been received, this will hold the text contents =
of=20
	 * the response - even in case of error
	 */
	req.responseText =3D null;
=09
	/**
	 * After a response has been received, this will hold the XML content
	 */
	req.responseXML =3D null;
=09
	/**
	 * After a response has been received, this will hold the status code =
of=20
	 * the response as returned by the server.
	 */
	req.status =3D null;
=09
	/**
	 * After a response has been received, this will hold the text =
description=20
	 * of the response code
	 */
	req.statusText =3D null;

	/**
	 * An internal flag to indicate whether the request has been aborted
	 */
	req.aborted =3D false;
=09
	/**
	 * The XMLHttpRequest object used internally
	 */
	req.xmlHttpRequest =3D null;

	// --------------
	// Event handlers
	// --------------
=09
	/**
	 * If a timeout period is set, and it is reached before a response is=20
	 * received, a function reference assigned to onTimeout will be called
	 */
	req.onTimeout =3D null;=20
=09
	/**
	 * A function reference assigned will be called when readyState=3D1
	 */
	req.onLoading =3D null;

	/**
	 * A function reference assigned will be called when readyState=3D2
	 */
	req.onLoaded =3D null;

	/**
	 * A function reference assigned will be called when readyState=3D3
	 */
	req.onInteractive =3D null;

	/**
	 * A function reference assigned will be called when readyState=3D4
	 */
	req.onComplete =3D null;

	/**
	 * A function reference assigned will be called after onComplete, if=20
	 * the statusCode=3D200
	 */
	req.onSuccess =3D null;

	/**
	 * A function reference assigned will be called after onComplete, if=20
	 * the statusCode !=3D 200
	 */
	req.onError =3D null;
=09
	/**
	 * If this request has a group name, this function reference will be =
called=20
	 * and passed the group name if this is the first request in the group =
to=20
	 * become active
	 */
	req.onGroupBegin =3D null;

	/**
	 * If this request has a group name, and this request is the last =
request=20
	 * in the group to complete, this function reference will be called
	 */
	req.onGroupEnd =3D null;

	// Get the XMLHttpRequest object itself
	req.xmlHttpRequest =3D AjaxRequest.getXmlHttpRequest();
	if (req.xmlHttpRequest=3D=3Dnull) { return null; }
=09
	// -------------------------------------------------------
	// Attach the event handlers for the XMLHttpRequest object
	// -------------------------------------------------------
	req.xmlHttpRequest.onreadystatechange =3D=20
	function() {
		if (req=3D=3Dnull || req.xmlHttpRequest=3D=3Dnull) { return; }
		if (req.xmlHttpRequest.readyState=3D=3D1) { =
req.onLoadingInternal(req); }
		if (req.xmlHttpRequest.readyState=3D=3D2) { req.onLoadedInternal(req); =
}
		if (req.xmlHttpRequest.readyState=3D=3D3) { =
req.onInteractiveInternal(req); }
		if (req.xmlHttpRequest.readyState=3D=3D4) { =
req.onCompleteInternal(req); }
	};
=09
	// =
-------------------------------------------------------------------------=
--
	// Internal event handlers that fire, and in turn fire the user event =
handlers
	// =
-------------------------------------------------------------------------=
--
	// Flags to keep track if each event has been handled, in case of=20
	// multiple calls (some browsers may call the onreadystatechange=20
	// multiple times for the same state)
	req.onLoadingInternalHandled =3D false;
	req.onLoadedInternalHandled =3D false;
	req.onInteractiveInternalHandled =3D false;
	req.onCompleteInternalHandled =3D false;
	req.onLoadingInternal =3D=20
		function() {
			if (req.onLoadingInternalHandled) { return; }
			AjaxRequest.numActiveAjaxRequests++;
			if (AjaxRequest.numActiveAjaxRequests=3D=3D1 && =
typeof(window['AjaxRequestBegin'])=3D=3D"function") {
				AjaxRequestBegin();
			}
			if (req.groupName!=3Dnull) {
				if =
(typeof(AjaxRequest.numActiveAjaxGroupRequests[req.groupName])=3D=3D"unde=
fined") {
					AjaxRequest.numActiveAjaxGroupRequests[req.groupName] =3D 0;
				}
				AjaxRequest.numActiveAjaxGroupRequests[req.groupName]++;
				if (AjaxRequest.numActiveAjaxGroupRequests[req.groupName]=3D=3D1 && =
typeof(req.onGroupBegin)=3D=3D"function") {
					req.onGroupBegin(req.groupName);
				}
			}
			if (typeof(req.onLoading)=3D=3D"function") {
				req.onLoading(req);
			}
			req.onLoadingInternalHandled =3D true;
		};
	req.onLoadedInternal =3D=20
		function() {
			if (req.onLoadedInternalHandled) { return; }
			if (typeof(req.onLoaded)=3D=3D"function") {
				req.onLoaded(req);
			}
			req.onLoadedInternalHandled =3D true;
		};
	req.onInteractiveInternal =3D=20
		function() {
			if (req.onInteractiveInternalHandled) { return; }
			if (typeof(req.onInteractive)=3D=3D"function") {
				req.onInteractive(req);
			}
			req.onInteractiveInternalHandled =3D true;
		};
	req.onCompleteInternal =3D=20
		function() {
			if (req.onCompleteInternalHandled || req.aborted) { return; }
			req.onCompleteInternalHandled =3D true;
			AjaxRequest.numActiveAjaxRequests--;
			if (AjaxRequest.numActiveAjaxRequests=3D=3D0 && =
typeof(window['AjaxRequestEnd'])=3D=3D"function") {
				AjaxRequestEnd(req.groupName);
			}
			if (req.groupName!=3Dnull) {
				AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--;
				if (AjaxRequest.numActiveAjaxGroupRequests[req.groupName]=3D=3D0 && =
typeof(req.onGroupEnd)=3D=3D"function") {
					req.onGroupEnd(req.groupName);
				}
			}
			req.responseReceived =3D true;
			req.status =3D req.xmlHttpRequest.status;
			req.statusText =3D req.xmlHttpRequest.statusText;
			req.responseText =3D req.xmlHttpRequest.responseText;
			req.responseXML =3D req.xmlHttpRequest.responseXML;
			if (typeof(req.onComplete)=3D=3D"function") {
				req.onComplete(req);
			}
			if (req.xmlHttpRequest.status=3D=3D200 && =
typeof(req.onSuccess)=3D=3D"function") {
				req.onSuccess(req);
			}
			else if (typeof(req.onError)=3D=3D"function") {
				req.onError(req);
			}

			// Clean up so IE doesn't leak memory
			delete req.xmlHttpRequest['onreadystatechange'];
			req.xmlHttpRequest =3D null;
		};
	req.onTimeoutInternal =3D=20
		function() {
			if (req!=3Dnull && req.xmlHttpRequest!=3Dnull && =
!req.onCompleteInternalHandled) {
				req.aborted =3D true;
				req.xmlHttpRequest.abort();
				AjaxRequest.numActiveAjaxRequests--;
				if (AjaxRequest.numActiveAjaxRequests=3D=3D0 && =
typeof(window['AjaxRequestEnd'])=3D=3D"function") {
					AjaxRequestEnd(req.groupName);
				}
				if (req.groupName!=3Dnull) {
					AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--;
					if (AjaxRequest.numActiveAjaxGroupRequests[req.groupName]=3D=3D0 && =
typeof(req.onGroupEnd)=3D=3D"function") {
						req.onGroupEnd(req.groupName);
					}
				}
				if (typeof(req.onTimeout)=3D=3D"function") {
					req.onTimeout(req);
				}
			// Opera won't fire onreadystatechange after abort, but other =
browsers do.=20
			// So we can't rely on the onreadystate function getting called. =
Clean up here!
			delete req.xmlHttpRequest['onreadystatechange'];
			req.xmlHttpRequest =3D null;
			}
		};

	// ----------------
	// Instance methods
	// ----------------
	/**
	 * The process method is called to actually make the request. It builds =
the
	 * querystring for GET requests (the content for POST requests), sets =
the
	 * appropriate headers if necessary, and calls the=20
	 * XMLHttpRequest.send() method
	*/
	req.process =3D=20
		function() {
			if (req.xmlHttpRequest!=3Dnull) {
				// Some logic to get the real request URL
				if (req.generateUniqueUrl && req.method=3D=3D"GET") {
					req.parameters["AjaxRequestUniqueId"] =3D new Date().getTime() + "" =
+ req.requestIndex;
				}
				var content =3D null; // For POST requests, to hold query string
				for (var i in req.parameters) {
					if (req.queryString.length>0) { req.queryString +=3D "&"; }
					req.queryString +=3D encodeURIComponent(i) + "=3D" + =
encodeURIComponent(req.parameters[i]);
				}
				if (req.method=3D=3D"GET") {
					if (req.queryString.length>0) {
						req.url +=3D ((req.url.indexOf("?")>-1)?"&":"?") + =
req.queryString;
					}
				}
				=
req.xmlHttpRequest.open(req.method,req.url,req.async,req.username,req.pas=
sword);
				if (req.method=3D=3D"POST") {
					if (typeof(req.xmlHttpRequest.setRequestHeader)!=3D"undefined") {
						req.xmlHttpRequest.setRequestHeader('Content-type', =
'application/x-www-form-urlencoded');
					}
					content =3D req.queryString;
				}
				if (req.timeout>0) {
					setTimeout(req.onTimeoutInternal,req.timeout);
				}
				req.xmlHttpRequest.send(content);
			}
		};

	/**
	 * An internal function to handle an Object argument, which may contain
	 * either AjaxRequest field values or parameter name/values
	 */
	req.handleArguments =3D=20
		function(args) {
			for (var i in args) {
				// If the AjaxRequest object doesn't have a property which was =
passed, treat it as a url parameter
				if (typeof(req[i])=3D=3D"undefined") {
					req.parameters[i] =3D args[i];
				}
				else {
					req[i] =3D args[i];
				}
			}
		};

	/**
	 * Returns the results of XMLHttpRequest.getAllResponseHeaders().
	 * Only available after a response has been returned
	 */
	req.getAllResponseHeaders =3D
		function() {
			if (req.xmlHttpRequest!=3Dnull) {
				if (req.responseReceived) {
					return req.xmlHttpRequest.getAllResponseHeaders();
				}
				alert("Cannot getAllResponseHeaders because a response has not yet =
been received");
			}
		};

	/**
	 * Returns the the value of a response header as returned by=20
	 * XMLHttpRequest,getResponseHeader().
	 * Only available after a response has been returned
	 */
	req.getResponseHeader =3D
		function(headerName) {
			if (req.xmlHttpRequest!=3Dnull) {
				if (req.responseReceived) {
					return req.xmlHttpRequest.getResponseHeader(headerName);
				}
				alert("Cannot getResponseHeader because a response has not yet been =
received");
			}
		};

	return req;
}

// ---------------------------------------
// Static methods of the AjaxRequest class
// ---------------------------------------

/**
 * Returns an XMLHttpRequest object, either as a core object or an =
ActiveX=20
 * implementation. If an object cannot be instantiated, it will return =
null;
 */
AjaxRequest.getXmlHttpRequest =3D function() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		// Based on http://jibbering.com/2002/4/httprequest.html
		/*@cc_on @*/
		/*@if (@_jscript_version >=3D 5)
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				return null;
			}
		}
		@end @*/
	}
	else {
		return null;
	}
};

/**
 * See if any request is active in the background
 */
AjaxRequest.isActive =3D function() {
	return (AjaxRequest.numActiveAjaxRequests>0);
};

/**
 * Make a GET request. Pass an object containing parameters and =
arguments as=20
 * the second argument.
 * These areguments may be either AjaxRequest properties to set on the =
request=20
 * object or name/values to set in the request querystring.
 */
AjaxRequest.get =3D function(args) {
	AjaxRequest.doRequest("GET",args);
};

/**
 * Make a POST request. Pass an object containing parameters and =
arguments as=20
 * the second argument.
 * These areguments may be either AjaxRequest properties to set on the =
request=20
 * object or name/values to set in the request querystring.
 */
AjaxRequest.post =3D function(args) {
	AjaxRequest.doRequest("POST",args);
};

/**
 * The internal method used by the .get() and .post() methods
 */
AjaxRequest.doRequest =3D function(method,args) {
	if (typeof(args)!=3D"undefined" && args!=3Dnull) {
		var myRequest =3D new AjaxRequest();
		myRequest.method =3D method;
		myRequest.handleArguments(args);
		myRequest.process();
	}
}	;

/**
 * Submit a form. The requested URL will be the form's ACTION, and the =
request=20
 * method will be the form's METHOD.
 * Returns true if the submittal was handled successfully, else false so =
it=20
 * can easily be used with an onSubmit event for a form, and fallback to =

 * submitting the form normally.
 */
AjaxRequest.submit =3D function(theform, args) {
	var myRequest =3D new AjaxRequest();
	if (myRequest=3D=3Dnull) { return false; }
	var serializedForm =3D AjaxRequest.serializeForm(theform);
	myRequest.method =3D theform.method.toUpperCase();
	myRequest.url =3D theform.action;
	myRequest.handleArguments(args);
	myRequest.queryString =3D serializedForm;
	myRequest.process();
	return true;
};

/**
 * Serialize a form into a format which can be sent as a GET string or a =
POST=20
 * content.It correctly ignores disabled fields, maintains order of the =
fields=20
 * as in the elements[] array. The 'file' input type is not supported, =
as=20
 * its content is not available to javascript. This method is used =
internally
 * by the submit class method.
 */
AjaxRequest.serializeForm =3D function(theform) {
	var els =3D theform.elements;
	var len =3D els.length;
	var queryString =3D "";
	this.addField =3D=20
		function(name,value) {=20
			if (queryString.length>0) {=20
				queryString +=3D "&";
			}
			queryString +=3D encodeURIComponent(name) + "=3D" + =
encodeURIComponent(value);
		};
	for (var i=3D0; i<len; i++) {
		var el =3D els[i];
		if (!el.disabled) {
			switch(el.type) {
				case 'text': case 'password': case 'hidden': case 'textarea':=20
					this.addField(el.name,el.value);
					break;
				case 'select-one':
					if (el.selectedIndex>=3D0) {
						this.addField(el.name,el.options[el.selectedIndex].value);
					}
					break;
				case 'select-multiple':
					for (var j=3D0; j<el.options.length; j++) {
						if (el.options[j].selected) {
							this.addField(el.name,el.options[j].value);
						}
					}
					break;
				case 'checkbox': case 'radio':
					if (el.checked) {
						this.addField(el.name,el.value);
					}
					break;
			}
		}
	}
	return queryString;
};

// -----------------------
// Static Class variables
// -----------------------

/**
 * The number of total AjaxRequest objects currently active and running
 */
AjaxRequest.numActiveAjaxRequests =3D 0;

/**
 * An object holding the number of active requests for each group
 */
AjaxRequest.numActiveAjaxGroupRequests =3D new Object();

/**
 * The total number of AjaxRequest objects instantiated
 */
AjaxRequest.numAjaxRequests =3D 0;


------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/comments.js

/**=0A=
* pages modeule - Client-Side Scripts - Comments=0A=
*=0A=
* LICENSE: This file belongs to Greynium Information Technologies Pvt.Ltd=0A=
*=0A=
* @category   JavaScript=0A=
* @package    script.js=0A=
* @author     Vikram Reddy N (vikram.reddy@greynium.com)=0A=
* @copyright  2007-2008 Greynium Information Technologies=0A=
* @version    1.0=0A=
* @see        comments.js=0A=
* @since      File available since Release 1.0.x=0A=
* @deprecated File Not yet deprecated=0A=
*/=0A=
function Ltrim(val)=0A=
{=0A=
return val.replace(/^\s+/,"");=0A=
}=0A=
function Rtrim(val)=0A=
{=0A=
return val.replace(/\s+$/,"");=0A=
}=0A=
function trim(val)=0A=
{=0A=
return Ltrim(Rtrim(val));=0A=
}=0A=
=0A=
function addComment(theForm){=0A=
	var err=3D'', response;=0A=
	var comment =3D theForm.description.value;=0A=
	if(trim(theForm.visitor_email.value)=3D=3D''){=0A=
		//err +=3D'Please enter valid Email Id.';=0A=
		alert('Email Id cannot be blank.');=0A=
		return false;=0A=
	}=0A=
=0A=
	if(trim(theForm.visitor_email.value)!=3D''){=0A=
		var =
filter=3D/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6=
}(?:\.[a-z]{2})?)$/i=0A=
		if (filter.test(theForm.visitor_email.value)) {=0A=
			//return true;=0A=
		}=0A=
		else {=0A=
			//err +=3D'Email Id cannot be blank.';=0A=
			alert('Please enter valid Email Id.');=0A=
			return false;=0A=
		}=0A=
	}=0A=
=0A=
	if(trim(comment)=3D=3D""){=0A=
		//err +=3D'Comment cannot be blank.\n';=0A=
		alert('Comment cannot be blank.\n');=0A=
		return false;=0A=
	}=0A=
	if(trim(theForm.scode.value)=3D=3D''){=0A=
		//err +=3D'Please enter Security Code.';=0A=
		alert('Please enter Security Code.');=0A=
		return false;=0A=
	}=0A=
=0A=
	/*if(err !=3D '')=0A=
	{=0A=
		alert(err);=0A=
		return false;=0A=
	}*/=0A=
	var theDiv =3D 'DisplayAllComments';=0A=
	var vid =3D theForm.vid.value;=0A=
	var pid =3D theForm.pid.value;=0A=
	var container_id =3D theForm.container_id.value;=0A=
	var status =3D AjaxRequest.submit(=0A=
		theForm=0A=
		,{=0A=
			'onSuccess':function(req)=0A=
			{=0A=
			  response =3D trim(req.responseText);=0A=
			  //alert("alind"+response);=0A=
			  if(response =3D=3D 'error')=0A=
			  {=0A=
				alert('Please enter valid security code.');=0A=
			  }=0A=
			  else if(response =3D=3D 'success')=0A=
			  {=0A=
				closeDiv(container_id);=0A=
				alert('Your comment has been added.');=0A=
				showComments(vid, pid);=0A=
			  }=0A=
			  else=0A=
			  {=0A=
				//alert(response);=0A=
				alert('Failed to post your comments.');=0A=
			  }=0A=
			}=0A=
			,'onError':function(req)=0A=
			{=0A=
			  =
alert('Error!\nStatusText=3D'+req.statusText+'\nContents=3D'+req.response=
Text);=0A=
			}=0A=
		}=0A=
	);=0A=
	return false;=0A=
}=0A=
=0A=
function reportAbuse(theForm){=0A=
	var err=3D'', response, checked =3D false;=0A=
	if((theForm.abusecheck1.checked =3D=3D true) || =
(theForm.abusecheck2.checked =3D=3D true) || =
(theForm.abusecheck3.checked =3D=3D true) || =
(theForm.abusecheck4.checked =3D=3D true) || =
(theForm.abusecheck5.checked =3D=3D true) || =
(theForm.abusecheck6.checked =3D=3D true))=0A=
	{=0A=
		checked=3D true;=0A=
	}=0A=
	if(!checked)=0A=
	{=0A=
		err +=3D 'Please select the reason(s) that best describe your =
complaint\n';=0A=
	}=0A=
	if(trim(theForm.scode.value)=3D=3D''){=0A=
		err +=3D'Please enter Security Code.';=0A=
	}=0A=
	if(err !=3D '')=0A=
	{=0A=
		alert(err);=0A=
		return false;=0A=
	}=0A=
=0A=
	var vid =3D theForm.vid.value;=0A=
	var container_id =3D theForm.container_id.value;=0A=
=0A=
	var status =3D AjaxRequest.submit(=0A=
		theForm=0A=
		,{=0A=
			'onSuccess':function(req)=0A=
			{=0A=
			  response =3D req.responseText;=0A=
			  //alert(response);=0A=
			  if(response =3D=3D 'error')=0A=
			  {=0A=
				alert('Please enter valid security code.');=0A=
			  }=0A=
			  else if(response =3D=3D 'success')=0A=
			  {=0A=
				closeDiv(container_id);=0A=
				alert('Your abuse report has been sent.');=0A=
			  }=0A=
			  else if(response =3D=3D 'failed1')=0A=
			  {=0A=
				alert('Failed to send your abuse report.');=0A=
			  }=0A=
			  else=0A=
			  {=0A=
				alert('Failed to send your abuse report.');=0A=
			  }=0A=
=0A=
			}=0A=
			,'onError':function(req)=0A=
			{=0A=
			  =
alert('Error!\nStatusText=3D'+req.statusText+'\nContents=3D'+req.response=
Text);=0A=
			}=0A=
		}=0A=
	);=0A=
	return false;=0A=
}=0A=
=0A=
function showComments(vid, pid){=0A=
	document.getElementById('preDiv').value =3D '';=0A=
	var pageURL =3D "/templates/comments/show_comments_"+vid+".html"; =
//"/show_comments.php?id=3D"+vid+"&page=3D"+pid;=0A=
	var status =3D AjaxRequest.get(=0A=
		{=0A=
			'url':pageURL=0A=
			,'onSuccess':function(req){=0A=
					//alert(pid);=0A=
					//alert("show comments"+req.responseText);=0A=
					var objDiv =3D document.getElementById('DisplayAllComments');=0A=
					if(objDiv.style.display=3D=3D'none')=0A=
						objDiv.style.display=3D'block';=0A=
					document.getElementById('DisplayAllComments').innerHTML =3D =
req.responseText;=0A=
					if(pid > 1)=0A=
					{=0A=
						var page =3D 'Comment'+pid;=0A=
						switchPage(page);=0A=
					}=0A=
=0A=
				}=0A=
			,'onError':function(req){ =
alert(req.statusText+'\nContents=3D'+req.responseText); }=0A=
		}=0A=
	);=0A=
	return false;=0A=
}=0A=
=0A=
function showCommentsForm(vid, parent_id, theDiv, level_id, pid, wid, =
referer)=0A=
{=0A=
	var actual_referer =3D referer;=0A=
	var preDiv =3D document.getElementById('preDiv').value;=0A=
	if(preDiv =3D=3D '')=0A=
	{=0A=
		document.getElementById('preDiv').value =3D theDiv;=0A=
	}=0A=
	else=0A=
	{=0A=
		closeDiv(preDiv);=0A=
		document.getElementById('preDiv').value =3D theDiv;=0A=
	}=0A=
=0A=
	var pageURL =3D =
"/post_comments.php?vid=3D"+vid+"&parent_id=3D"+parent_id+"&theDiv=3D"+th=
eDiv+"&level_id=3D"+level_id+"&page=3D"+pid+"&wid=3D"+wid;=0A=
	var status =3D AjaxRequest.get(=0A=
		{=0A=
			'url':pageURL=0A=
			,'onSuccess':function(req){=0A=
					if(actual_referer !=3D''){setReferer(actual_referer)}=0A=
					theFormTxt =3D req.responseText;=0A=
					//alert(theFormTxt);=0A=
					document.getElementById(theDiv).style.display =3D 'block';=0A=
					document.getElementById(theDiv).innerHTML =3D theFormTxt;=0A=
				}=0A=
			,'onError':function(req){ =
alert(req.statusText+'\nContents=3D'+req.responseText); }=0A=
		}=0A=
	);=0A=
	return false;=0A=
}=0A=
=0A=
function showReportAbuse(vid, comment_id, theDiv, wid)=0A=
{=0A=
	var preDiv =3D document.getElementById('preDiv').value;=0A=
	if(preDiv =3D=3D '')=0A=
	{=0A=
		document.getElementById('preDiv').value =3D theDiv;=0A=
	}=0A=
	else=0A=
	{=0A=
		closeDiv(preDiv);=0A=
		document.getElementById('preDiv').value =3D theDiv;=0A=
	}=0A=
=0A=
	var pageURL =3D =
"/abuse_comments.php?vid=3D"+vid+"&comment_id=3D"+comment_id+"&theDiv=3D"=
+theDiv+"&wid=3D"+wid;=0A=
	var status =3D AjaxRequest.get(=0A=
		{=0A=
			'url':pageURL=0A=
			,'onSuccess':function(req){=0A=
					theFormTxt =3D req.responseText;=0A=
					//alert(theFormTxt);=0A=
					document.getElementById(theDiv).style.display =3D 'block';=0A=
					document.getElementById(theDiv).innerHTML =3D theFormTxt;=0A=
				}=0A=
			,'onError':function(req){ =
alert(req.statusText+'\nContents=3D'+req.responseText); }=0A=
		}=0A=
	);=0A=
	return false;=0A=
}=0A=
=0A=
function hideComments(theDiv){=0A=
var objDiv =3D document.getElementById(theDiv);=0A=
=0A=
if(objDiv.style.display=3D=3D'block')=0A=
	objDiv.style.display=3D'none';=0A=
=0A=
}=0A=
=0A=
function switchPage(id) {=0A=
	//safe function to show an element with a specified id=0A=
	var prepage =3D document.getElementById('prePage').value;=0A=
	var preDiv =3D document.getElementById('preDiv').value;=0A=
	if(preDiv !=3D '')=0A=
	{=0A=
		closeDiv(preDiv);=0A=
	}=0A=
	if (document.getElementById) { // DOM3 =3D IE5, NS6=0A=
		document.getElementById(id).style.display =3D 'block';=0A=
		document.getElementById(prepage).style.display =3D 'none';=0A=
	}=0A=
	else {=0A=
		if (document.layers) { // Netscape 4=0A=
			document.id.display =3D 'block';=0A=
			document.prepage.display =3D 'none';=0A=
		}=0A=
		else { // IE 4=0A=
			document.all.id.style.display =3D 'block';=0A=
			document.all.prepage.style.display =3D 'none';=0A=
		}=0A=
	}=0A=
	document.getElementById('prePage').value =3D id;=0A=
	document.location.href=3D'#top';=0A=
}=0A=
=0A=
function closeDiv(id)=0A=
{=0A=
document.getElementById(id).innerHTML=3D'';=0A=
}=0A=
=0A=
=0A=
function textCounter(field, countfield, maxlimit) {=0A=
if (field.value.length > maxlimit){ // if too long...trim it!=0A=
		field.value =3D field.value.substring(0, maxlimit);// otherwise, =
update 'characters left' counter=0A=
		countfield.value =3D maxlimit - field.value.length;=0A=
		alert("Your text is trimmed because it is more than 1500 Characters");=0A=
	}else{=0A=
		countfield.value =3D maxlimit - field.value.length;=0A=
	}=0A=
}=0A=
=0A=
var clipped;=0A=
var lenUSig;=0A=
var maxLength=3D1500;=0A=
=0A=
function calcCharLeft() {=0A=
	clipped =3D false;=0A=
	lenUSig =3D 0;=0A=
	maxLength =3D 1500;=0A=
	var charleft;=0A=
	if (document.getElementById("description").value.length > maxLength) {=0A=
		charleft =3D 0;=0A=
		clipped =3D true;=0A=
	} else {=0A=
		charleft =3D maxLength - =
document.getElementById("description").value.length;=0A=
	}=0A=
alert(charleft);=0A=
	document.getElementById("msgCL").innerHTML =3D charleft;=0A=
	return clipped;=0A=
}=0A=
=0A=
function textKey() {=0A=
	supportsKeys =3D true;=0A=
	calcCharLeft();=0A=
}=0A=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/color_functions.js

function baseConverter (number,ob,nb) {
	number =3D number + "";
	number =3D number.toUpperCase();
	var list =3D "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var dec =3D 0;
	for (var i =3D 0; i <=3D  number.length; i++) {
		dec +=3D (list.indexOf(number.charAt(i))) * (Math.pow(ob , =
(number.length - i - 1)));
	}
	number =3D "";
	var magnitude =3D Math.floor((Math.log(dec))/(Math.log(nb)));
	for (var i =3D magnitude; i >=3D 0; i--) {
		var amount =3D Math.floor(dec/Math.pow(nb,i));
		number =3D number + list.charAt(amount);=20
		dec -=3D amount*(Math.pow(nb,i));
	}
	if(number.length=3D=3D0)number=3D0;
	return number;
}

// Converts a RGB color to HSV
function toHSV(rgbColor){
	rgbColor =3D rgbColor.replace('#','');	=09
=09
	red =3D baseConverter(rgbColor.substr(0,2),16,10);
	green =3D baseConverter(rgbColor.substr(2,2),16,10);
	blue =3D baseConverter(rgbColor.substr(4,2),16,10);
	if(red.length=3D=3D0)red=3D0;
	if(green.length=3D=3D0)green=3D0;
	if(blue.length=3D=3D0)blue=3D0;
	red =3D red/255;
	green =3D green/255;
	blue =3D blue/255;
=09
	maxValue =3D Math.max(red,green,blue);
	minValue =3D Math.min(red,green,blue);
=09
	var hue =3D 0;
=09
	if(maxValue=3D=3DminValue){
		hue =3D 0;
		saturation=3D0;
	}else{
		if(red =3D=3D maxValue){
			hue =3D (green - blue) / (maxValue-minValue)/1;=09
		}else if(green =3D=3D maxValue){
			hue =3D 2 + (blue - red)/1 / (maxValue-minValue)/1;=09
		}else if(blue =3D=3D maxValue){
			hue =3D 4 + (red - green) / (maxValue-minValue)/1;=09
		}
		saturation =3D (maxValue-minValue) / maxValue;
	}
	hue =3D hue * 60;=20
	valueBrightness =3D maxValue;
=09
	if(valueBrightness/1<0.5){
		//saturation =3D (maxValue - minValue) / (maxValue + minValue);
	}
	if(valueBrightness/1>=3D 0.5){
		//saturation =3D (maxValue - minValue) / (2 - maxValue - minValue);
	}=09
	=09
=09
	returnArray =3D [hue,saturation,valueBrightness];
	return returnArray;
}

function toRgb(hue,saturation,valueBrightness){
	Hi =3D Math.floor(hue / 60);
	if(hue=3D=3D360)Hi=3D0;
	f =3D hue/60 - Hi;
	p =3D (valueBrightness * (1- saturation)).toPrecision(2);
	q =3D (valueBrightness * (1 - (f * saturation))).toPrecision(2);
	t =3D (valueBrightness * (1 - ((1-f)*saturation))).toPrecision(2);

	switch(Hi){
		case 0:
			red =3D valueBrightness;
			green =3D t;
			blue =3D p;			=09
			break;
		case 1:=20
			red =3D q;
			green =3D valueBrightness;
			blue =3D p;
			break;
		case 2:=20
			red =3D q;
			green =3D valueBrightness;
			blue =3D t;
			break;
		case 3:=20
			red =3D p;
			green =3D q;;
			blue =3D valueBrightness;
			break;
		case 4:
			red =3D t;
			green =3D p;
			blue =3D valueBrightness;
			break;
		case 5:
			red =3D valueBrightness;
			green =3D p;
			blue =3D q;
			break;
	}
=09
	if(saturation=3D=3D0){
		red =3D valueBrightness;
		green =3D valueBrightness;
		blue =3D valueBrightness;	=09
	}
=09
	red*=3D255;
	green*=3D255;
	blue*=3D255;

	red =3D Math.round(red);
	green =3D Math.round(green);
	blue =3D Math.round(blue);=09
=09
	red =3D baseConverter(red,10,16);
	green =3D baseConverter(green,10,16);
	blue =3D baseConverter(blue,10,16);
=09
	red =3D red + "";
	green =3D green + "";
	blue =3D blue + "";

	while(red.length<2){
		red =3D "0" + red;
	}=09
	while(green.length<2){
		green =3D "0" + green;
	}=09
	while(blue.length<2){
		blue =3D "0" + "" + blue;
	}
	rgbColor =3D "#" + red + "" + green + "" + blue;
	return rgbColor.toUpperCase();
}

function findColorByDegrees(rgbColor,degrees){
	rgbColor =3D rgbColor.replace('#','');
	myArray =3D toHSV(rgbColor);
	myArray[0]+=3Ddegrees;
	if(myArray[0]>=3D360)myArray[0]-=3D360;
	if(myArray[0]<0)myArray[0]+=3D360;=09
	return toRgb(myArray[0],myArray[1],myArray[2]);
}

function findColorByBrightness(rgbColor,brightness){
=09
	rgbColor =3D rgbColor.replace('#','');
	myArray =3D toHSV(rgbColor);
=09
	myArray[2]+=3Dbrightness/100;
	if(myArray[2]>1)myArray[2]=3D1;
	if(myArray[2]<0)myArray[2]=3D0;=09
=09
	myArray[1]+=3Dbrightness/100;
	if(myArray[1]>1)myArray[1]=3D1;
	if(myArray[1]<0)myArray[1]=3D0;	=09
=09
	return toRgb(myArray[0],myArray[1],myArray[2]);=09
=09
}

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/js_color_picker_v2.js

/************************************************************************=
************************************
@fileoverview
JS Color picker
Copyright (C) October 2005,  DHTMLGoodies.com, Alf Magne Kalleland

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  =
02110-1301  USA

Dhtmlgoodies.com., hereby disclaims all copyright interest in this =
script
written by Alf Magne Kalleland.

Alf Magne Kalleland, 2007
Owner of DHTMLgoodies.com


*************************************************************************=
***********************************/=09

	var MSIE =3D navigator.userAgent.indexOf('MSIE')>=3D0?true:false;
	var navigatorVersion =3D navigator.appVersion.replace(/.*?MSIE =
(\d\.\d).*/g,'$1')/1;
=09
	var form_widget_amount_slider_handle =3D 'images/slider_handle.gif';
	var slider_handle_image_obj =3D false;
	var sliderObjectArray =3D new Array();
	var slider_counter =3D 0;
	var slideInProgress =3D false;
	var handle_start_x;
	var event_start_x;
	var currentSliderIndex;
=09
	function form_widget_cancel_event()
	{
		return false;	=09
	}
=09
	function getImageSliderHeight(){
		if(!slider_handle_image_obj){
			slider_handle_image_obj =3D new Image();
			slider_handle_image_obj.src =3D form_widget_amount_slider_handle;
		}
		if(slider_handle_image_obj.width>0){
			return;
		}else{
			setTimeout('getImageSliderHeight()',50);
		}
	}
=09
	function positionSliderImage(e,theIndex,inputObj)
	{
		if(this)inputObj =3D this;
		if(!theIndex)theIndex =3D inputObj.getAttribute('sliderIndex');
		var handleImg =3D document.getElementById('slider_handle' + theIndex);
		var ratio =3D sliderObjectArray[theIndex]['width'] / =
(sliderObjectArray[theIndex]['max']-sliderObjectArray[theIndex]['min']);
		var currentValue =3D =
sliderObjectArray[theIndex]['formTarget'].value-sliderObjectArray[theInde=
x]['min'];	=09
		handleImg.style.left =3D currentValue * ratio + 'px';		=09
		setColorByRGB();
	}
=09
	function adjustFormValue(theIndex)
	{
		var handleImg =3D document.getElementById('slider_handle' + theIndex);	=

		var ratio =3D sliderObjectArray[theIndex]['width'] / =
(sliderObjectArray[theIndex]['max']-sliderObjectArray[theIndex]['min']);
		var currentPos =3D handleImg.style.left.replace('px','');
		sliderObjectArray[theIndex]['formTarget'].value =3D =
Math.round(currentPos / ratio) + sliderObjectArray[theIndex]['min'];
	=09
	}
	=09
	function initMoveSlider(e)
	{
=09
		if(document.all)e =3D event;=09
		slideInProgress =3D true;
		event_start_x =3D e.clientX;
		handle_start_x =3D this.style.left.replace('px','');
		currentSliderIndex =3D this.id.replace(/[^\d]/g,'');
		return false;
	}
=09
	function startMoveSlider(e)
	{
		if(document.all)e =3D event;=09
		if(!slideInProgress)return;=09
		var leftPos =3D handle_start_x/1 + e.clientX/1 - event_start_x;
		if(leftPos<0)leftPos =3D 0;
		if(leftPos/1>sliderObjectArray[currentSliderIndex]['width'])leftPos =
=3D sliderObjectArray[currentSliderIndex]['width'];
		document.getElementById('slider_handle' + =
currentSliderIndex).style.left =3D leftPos + 'px';
		adjustFormValue(currentSliderIndex);
		if(sliderObjectArray[currentSliderIndex]['onchangeAction']){
			eval(sliderObjectArray[currentSliderIndex]['onchangeAction']);
		}
	}
=09
	function stopMoveSlider()
	{
		slideInProgress =3D false;
	}
=09
=09
	function =
form_widget_amount_slider(targetElId,formTarget,width,min,max,onchangeAct=
ion)
	{
		if(!slider_handle_image_obj){
			getImageSliderHeight();	=09
		}
			=09
		slider_counter =3D slider_counter +1;
		sliderObjectArray[slider_counter] =3D new Array();
		sliderObjectArray[slider_counter] =3D {"width":width - =
9,"min":min,"max":max,"formTarget":formTarget,"onchangeAction":onchangeAc=
tion};
	=09
		formTarget.setAttribute('sliderIndex',slider_counter);
		formTarget.onchange =3D positionSliderImage;
		var parentObj =3D document.createElement('DIV');
		parentObj.style.width =3D width + 'px';
		parentObj.style.height =3D '12px';	// The height of the image
		parentObj.style.position =3D 'relative';
		parentObj.id =3D 'slider_container' + slider_counter;
		document.getElementById(targetElId).appendChild(parentObj);
	=09
		var obj =3D document.createElement('DIV');
		obj.className =3D 'form_widget_amount_slider';
		obj.innerHTML =3D '<span></span>';
		obj.style.width =3D width + 'px';
		obj.id =3D 'slider_slider' + slider_counter;
		obj.style.position =3D 'absolute';
		obj.style.bottom =3D '0px';
		parentObj.appendChild(obj);
	=09
		var handleImg =3D document.createElement('IMG');
		handleImg.style.position =3D 'absolute';
		handleImg.style.left =3D '0px';
		handleImg.style.zIndex =3D 5;
		handleImg.src =3D slider_handle_image_obj.src;
		handleImg.id =3D 'slider_handle' + slider_counter;
		handleImg.onmousedown =3D initMoveSlider;
		if(document.body.onmouseup){
			=
if(document.body.onmouseup.toString().indexOf('stopMoveSlider')=3D=3D-1){=

				alert('You allready have an onmouseup event assigned to the body =
tag');
			}
		}else{
			document.body.onmouseup =3D stopMoveSlider;=09
			document.body.onmousemove =3D startMoveSlider;=09
		}
		handleImg.ondragstart =3D form_widget_cancel_event;
		parentObj.appendChild(handleImg);
		positionSliderImage(false,slider_counter);
	}
	=09

=09
	var namedColors =3D new =
Array('AliceBlue','AntiqueWhite','Aqua','Aquamarine','Azure','Beige','Bis=
que','Black','BlanchedAlmond','Blue','BlueViolet','Brown',
	=
'BurlyWood','CadetBlue','Chartreuse','Chocolate','Coral','CornflowerBlue'=
,'Cornsilk','Crimson','Cyan','DarkBlue','DarkCyan','DarkGoldenRod','DarkG=
ray',
	=
'DarkGreen','DarkKhaki','DarkMagenta','DarkOliveGreen','Darkorange','Dark=
Orchid','DarkRed','DarkSalmon','DarkSeaGreen','DarkSlateBlue','DarkSlateG=
ray',
	=
'DarkTurquoise','DarkViolet','DeepPink','DeepSkyBlue','DimGray','DodgerBl=
ue','Feldspar','FireBrick','FloralWhite','ForestGreen','Fuchsia','Gainsbo=
ro',
	=
'GhostWhite','Gold','GoldenRod','Gray','Green','GreenYellow','HoneyDew','=
HotPink','IndianRed','Indigo','Ivory','Khaki','Lavender','LavenderBlush',=

	=
'LawnGreen','LemonChiffon','LightBlue','LightCoral','LightCyan','LightGol=
denRodYellow','LightGrey','LightGreen','LightPink','LightSalmon','LightSe=
aGreen',
	=
'LightSkyBlue','LightSlateBlue','LightSlateGray','LightSteelBlue','LightY=
ellow','Lime','LimeGreen','Linen','Magenta','Maroon','MediumAquaMarine',
	=
'MediumBlue','MediumOrchid','MediumPurple','MediumSeaGreen','MediumSlateB=
lue','MediumSpringGreen','MediumTurquoise','MediumVioletRed','MidnightBlu=
e',
	=
'MintCream','MistyRose','Moccasin','NavajoWhite','Navy','OldLace','Olive'=
,'OliveDrab','Orange','OrangeRed','Orchid','PaleGoldenRod','PaleGreen',
	=
'PaleTurquoise','PaleVioletRed','PapayaWhip','PeachPuff','Peru','Pink','P=
lum','PowderBlue','Purple','Red','RosyBrown','RoyalBlue','SaddleBrown',
	=
'Salmon','SandyBrown','SeaGreen','SeaShell','Sienna','Silver','SkyBlue','=
SlateBlue','SlateGray','Snow','SpringGreen','SteelBlue','Tan','Teal','Thi=
stle',
	=
'Tomato','Turquoise','Violet','VioletRed','Wheat','White','WhiteSmoke','Y=
ellow','YellowGreen');
=09
	 var namedColorRGB =3D new =
Array('#F0F8FF','#FAEBD7','#00FFFF','#7FFFD4','#F0FFFF','#F5F5DC','#FFE4C=
4','#000000','#FFEBCD','#0000FF','#8A2BE2','#A52A2A','#DEB887',
	=
'#5F9EA0','#7FFF00','#D2691E','#FF7F50','#6495ED','#FFF8DC','#DC143C','#0=
0FFFF','#00008B','#008B8B','#B8860B','#A9A9A9','#006400','#BDB76B','#8B00=
8B',
	=
'#556B2F','#FF8C00','#9932CC','#8B0000','#E9967A','#8FBC8F','#483D8B','#2=
F4F4F','#00CED1','#9400D3','#FF1493','#00BFFF','#696969','#1E90FF','#D192=
75',
	=
'#B22222','#FFFAF0','#228B22','#FF00FF','#DCDCDC','#F8F8FF','#FFD700','#D=
AA520','#808080','#008000','#ADFF2F','#F0FFF0','#FF69B4','#CD5C5C','#4B00=
82',
	=
'#FFFFF0','#F0E68C','#E6E6FA','#FFF0F5','#7CFC00','#FFFACD','#ADD8E6','#F=
08080','#E0FFFF','#FAFAD2','#D3D3D3','#90EE90','#FFB6C1','#FFA07A','#20B2=
AA',
	=
'#87CEFA','#8470FF','#778899','#B0C4DE','#FFFFE0','#00FF00','#32CD32','#F=
AF0E6','#FF00FF','#800000','#66CDAA','#0000CD','#BA55D3','#9370D8','#3CB3=
71',
	=
'#7B68EE','#00FA9A','#48D1CC','#C71585','#191970','#F5FFFA','#FFE4E1','#F=
FE4B5','#FFDEAD','#000080','#FDF5E6','#808000','#6B8E23','#FFA500','#FF45=
00',
	=
'#DA70D6','#EEE8AA','#98FB98','#AFEEEE','#D87093','#FFEFD5','#FFDAB9','#C=
D853F','#FFC0CB','#DDA0DD','#B0E0E6','#800080','#FF0000','#BC8F8F','#4169=
E1',
	=
'#8B4513','#FA8072','#F4A460','#2E8B57','#FFF5EE','#A0522D','#C0C0C0','#8=
7CEEB','#6A5ACD','#708090','#FFFAFA','#00FF7F','#4682B4','#D2B48C','#0080=
80',
	=
'#D8BFD8','#FF6347','#40E0D0','#EE82EE','#D02090','#F5DEB3','#FFFFFF','#F=
5F5F5','#FFFF00','#9ACD32');=09
=09
=09
	var color_picker_div =3D false;
	var color_picker_active_tab =3D false;
	var color_picker_form_field =3D false;
	var color_picker_active_input =3D false;
	function baseConverter (number,ob,nb) {
		number =3D number + "";
		number =3D number.toUpperCase();
		var list =3D "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		var dec =3D 0;
		for (var i =3D 0; i <=3D  number.length; i++) {
			dec +=3D (list.indexOf(number.charAt(i))) * (Math.pow(ob , =
(number.length - i - 1)));
		}
		number =3D "";
		var magnitude =3D Math.floor((Math.log(dec))/(Math.log(nb)));
		for (var i =3D magnitude; i >=3D 0; i--) {
			var amount =3D Math.floor(dec/Math.pow(nb,i));
			number =3D number + list.charAt(amount);=20
			dec -=3D amount*(Math.pow(nb,i));
		}
		if(number.length=3D=3D0)number=3D0;
		return number;
	}
=09
	function colorPickerGetTopPos(inputObj)
	{
	=09
	  var returnValue =3D inputObj.offsetTop;
	  while((inputObj =3D inputObj.offsetParent) !=3D null){
	  	returnValue +=3D inputObj.offsetTop;
	  }
	  return returnValue;
	}
=09
	function colorPickerGetLeftPos(inputObj)
	{
	  var returnValue =3D inputObj.offsetLeft;
	  while((inputObj =3D inputObj.offsetParent) !=3D null)returnValue +=3D =
inputObj.offsetLeft;
	  return returnValue;
	}
=09
	function cancelColorPickerEvent(){
		return false;
	}
=09
	function showHideColorOptions(e,inputObj)
	{
	=09

		var thisObj =3D this;
		if(inputObj){
			var parentNode =3D inputObj.parentNode;=20
			thisObj =3D inputObj;
		}else var parentNode =3D this.parentNode;
		var activeColorDiv =3D false;
		var subDiv =3D parentNode.getElementsByTagName('DIV')[0];
		counter=3D0;=09
		var initZIndex =3D 10;=09
		var contentDiv =3D =
document.getElementById('color_picker_content').getElementsByTagName('DIV=
')[0];
		do{		=09
			if(subDiv.tagName=3D=3D'DIV' && =
subDiv.className!=3D'colorPickerCloseButton'){
				if(subDiv=3D=3DthisObj){
					thisObj.className=3D'colorPickerTab_active';
					thisObj.style.zIndex =3D 50;
					var img =3D thisObj.getElementsByTagName('IMG')[0];
					img.src =3D "images/tab_right_active.gif"
					img.src =3D img.src.replace(/inactive/,'active');						=09
					contentDiv.style.display=3D'block';
					activeColorDiv =3D contentDiv;
				}else{
					subDiv.className =3D 'colorPickerTab_inactive';=09
					var img =3D subDiv.getElementsByTagName('IMG')[0];
					img.src =3D "images/tab_right_inactive.gif";
					if(activeColorDiv)
						subDiv.style.zIndex =3D initZIndex - counter;
					else
						subDiv.style.zIndex =3D counter;
					contentDiv.style.display=3D'none';
				}
				counter++;
			}
			subDiv =3D subDiv.nextSibling;
			if(contentDiv.nextSibling)contentDiv =3D contentDiv.nextSibling;
		}while(subDiv);
	=09
	=09
		document.getElementById('colorPicker_statusBarTxt').innerHTML =3D =
'&nbsp;';


	}
=09
	function createColorPickerTopRow(inputObj){
		var tabs =3D ['RGB','Named colors','Color slider'];
		var tabWidths =3D [37,90,70];
		var div =3D document.createElement('DIV');
		div.className=3D'colorPicker_topRow';
=09
		inputObj.appendChild(div);=09
		var currentWidth =3D 0;
		for(var no=3D0;no<tabs.length;no++){		=09
		=09
			var tabDiv =3D document.createElement('DIV');
			tabDiv.onselectstart =3D cancelColorPickerEvent;
			tabDiv.ondragstart =3D cancelColorPickerEvent;
			if(no=3D=3D0){
				suffix =3D 'active';=20
				color_picker_active_tab =3D this;
			}else suffix =3D 'inactive';
		=09
			tabDiv.id =3D 'colorPickerTab' + no;
			tabDiv.onclick =3D showHideColorOptions;
			if(no=3D=3D0)tabDiv.style.zIndex =3D 50; else tabDiv.style.zIndex =3D =
1 + (tabs.length-no);
			tabDiv.style.left =3D currentWidth + 'px';
			tabDiv.style.position =3D 'absolute';
			tabDiv.className=3D'colorPickerTab_' + suffix;
			var tabSpan =3D document.createElement('SPAN');
			tabSpan.innerHTML =3D tabs[no];
			tabDiv.appendChild(tabSpan);
			var tabImg =3D document.createElement('IMG');
			tabImg.src =3D "images/tab_right_" + suffix + ".gif";
			tabDiv.appendChild(tabImg);
			div.appendChild(tabDiv);
			if(navigatorVersion<6 && MSIE){	/* Lower IE version fix */
				tabSpan.style.position =3D 'relative';
				tabImg.style.position =3D 'relative';
				tabImg.style.left =3D '-3px';	=09
				tabDiv.style.cursor =3D 'hand';=09
			}		=09
			currentWidth =3D currentWidth + tabWidths[no];
	=09
		}
	=09
		var closeButton =3D document.createElement('DIV');
		closeButton.className=3D'colorPickerCloseButton';
		closeButton.innerHTML =3D 'x';
		closeButton.onclick =3D closeColorPicker;
		closeButton.onmouseover =3D toggleCloseButton;
		closeButton.onmouseout =3D toggleOffCloseButton;
		div.appendChild(closeButton);
	=09
	}
=09
	function toggleCloseButton()
	{
		this.style.color=3D'#FFF';
		this.style.backgroundColor =3D '#317082';=09
	}
	function toggleOffCloseButton()
	{
		this.style.color=3D'';
		this.style.backgroundColor =3D '';		=09
	=09
	}
	function closeColorPicker()
	{
	=09
		color_picker_div.style.display=3D'none';
	}
	function createWebColors(inputObj){
		var webColorDiv =3D document.createElement('DIV');
		webColorDiv.style.paddingTop =3D '1px';
		inputObj.appendChild(webColorDiv);
		for(var r=3D15;r>=3D0;r-=3D3){
			for(var g=3D0;g<=3D15;g+=3D3){
				for(var b=3D0;b<=3D15;b+=3D3){
					var red =3D baseConverter(r,10,16) + '';
					var green =3D baseConverter(g,10,16) + '';
					var blue =3D baseConverter(b,10,16) + '';
				=09
					var color =3D '#' + red + red + green + green + blue + blue;
					var div =3D document.createElement('DIV');
					div.style.backgroundColor=3Dcolor;
					div.innerHTML =3D '<span></span>';
					div.className=3D'colorSquare';
					div.title =3D color;=09
					div.onclick =3D chooseColor;
					div.setAttribute('rgbColor',color);
					div.onmouseover =3D colorPickerShowStatusBarText;
					div.onmouseout =3D colorPickerHideStatusBarText;
					webColorDiv.appendChild(div);
				}
			}
		}
	}
	=09
	function createNamedColors(inputObj){
		var namedColorDiv =3D document.createElement('DIV');
		namedColorDiv.style.paddingTop =3D '1px';
		namedColorDiv.style.display=3D'none';
		inputObj.appendChild(namedColorDiv);
		for(var no=3D0;no<namedColors.length;no++){
			var color =3D namedColorRGB[no];
			var div =3D document.createElement('DIV');
			div.style.backgroundColor=3Dcolor;
			div.innerHTML =3D '<span></span>';
			div.className=3D'colorSquare';
			div.title =3D namedColors[no];=09
			div.onclick =3D chooseColor;
			div.onmouseover =3D colorPickerShowStatusBarText;
			div.onmouseout =3D colorPickerHideStatusBarText;
			div.setAttribute('rgbColor',color);
			namedColorDiv.appendChild(div);			=09
		}=09
=09
	}
=09
	function colorPickerHideStatusBarText()
	{
		document.getElementById('colorPicker_statusBarTxt').innerHTML =3D =
'&nbsp;';
	}
=09
	function colorPickerShowStatusBarText()
	{
		var txt =3D this.getAttribute('rgbColor');
		if(this.title.indexOf('#')<0)txt =3D txt + " (" + this.title + ")";
		document.getElementById('colorPicker_statusBarTxt').innerHTML =3D txt;	=

	}
=09
	function createAllColorDiv(inputObj){
		var allColorDiv =3D document.createElement('DIV');
		allColorDiv.style.display=3D'none';
		allColorDiv.className =3D 'js_color_picker_allColorDiv';
		allColorDiv.style.paddingLeft =3D '3px';
		allColorDiv.style.paddingTop =3D '5px';
		allColorDiv.style.paddingBottom =3D '5px';
		inputObj.appendChild(allColorDiv);=09
	=09
		var labelDiv =3D document.createElement('DIV');
		labelDiv.className=3D'colorSliderLabel';
		labelDiv.innerHTML =3D 'R';
		allColorDiv.appendChild(labelDiv);=09
	=09
		var innerDiv =3D document.createElement('DIV');
		innerDiv.className =3D 'colorSlider';
		innerDiv.id =3D 'sliderRedColor';	=09
		allColorDiv.appendChild(innerDiv);	=09
	=09
		var innerDivInput =3D document.createElement('DIV');
		innerDivInput.className=3D'colorInput';
	=09
		var input =3D document.createElement('INPUT');
		input.id =3D 'js_color_picker_red_color';
		input.maxlength =3D 3;
		input.style.width =3D '48px';
		input.style.fontSize =3D '11px';
		input.name =3D 'redColor';
		input.value =3D 0;
	=09
		innerDivInput.appendChild(input);
		allColorDiv.appendChild(innerDivInput);

		var labelDiv =3D document.createElement('DIV');
		labelDiv.className=3D'colorSliderLabel';
		labelDiv.innerHTML =3D 'G';
		allColorDiv.appendChild(labelDiv);=09
			=09
		var innerDiv =3D document.createElement('DIV');
		innerDiv.className =3D 'colorSlider';
		innerDiv.id =3D 'sliderGreenColor';	=09
		allColorDiv.appendChild(innerDiv);	=09
	=09
		var innerDivInput =3D document.createElement('DIV');
		innerDivInput.className=3D'colorInput';
	=09
		var input =3D document.createElement('INPUT');
		input.id =3D 'js_color_picker_green_color';
		input.maxlength =3D 3;
		input.style.width =3D '48px';
		input.style.fontSize =3D '11px';
		input.name =3D 'GreenColor';
		input.value =3D 0;
	=09
		innerDivInput.appendChild(input);
		allColorDiv.appendChild(innerDivInput);
	=09
		var labelDiv =3D document.createElement('DIV');
		labelDiv.className=3D'colorSliderLabel';
		labelDiv.innerHTML =3D 'B';
		allColorDiv.appendChild(labelDiv);		=09
		var innerDiv =3D document.createElement('DIV');
		innerDiv.className =3D 'colorSlider';
		innerDiv.id =3D 'sliderBlueColor';	=09
		allColorDiv.appendChild(innerDiv);	=09
	=09
		var innerDivInput =3D document.createElement('DIV');
		innerDivInput.className=3D'colorInput';
	=09
		var input =3D document.createElement('INPUT');
		input.id =3D 'js_color_picker_blue_color';
		input.maxlength =3D 3;
		input.style.width =3D '48px';
		input.style.fontSize =3D '11px';
		input.name =3D 'BlueColor';
		input.value =3D 0;
	=09
		innerDivInput.appendChild(input);
		allColorDiv.appendChild(innerDivInput);

=09
		var colorPreview =3D document.createElement('DIV');
		colorPreview.className=3D'colorPreviewDiv';
		colorPreview.id =3D 'colorPreview';
		colorPreview.style.backgroundColor =3D '#000000';
		colorPreview.innerHTML =3D '<span></span>';=09
		colorPreview.title =3D 'Click on me to assign color';=09
		allColorDiv.appendChild(colorPreview);
		colorPreview.onclick =3D chooseColorSlider;
	=09
		var colorCodeDiv =3D document.createElement('DIV');
		colorCodeDiv.className=3D'colorCodeDiv';	=09
		var input =3D document.createElement('INPUT');
		input.id =3D 'js_color_picker_color_code';
	=09
		colorCodeDiv.appendChild(input);
		input.maxLength =3D 7;
		input.style.fontSize =3D '11px';
		input.style.width =3D '48px';	=09
		input.value =3D '#000000';
		input.onchange =3D setPreviewColorFromTxt;
		input.onblur =3D setPreviewColorFromTxt;
		allColorDiv.appendChild(colorCodeDiv);
	=09
		var clearingDiv =3D document.createElement('DIV');
		clearingDiv.style.clear =3D 'both';
		allColorDiv.appendChild(clearingDiv);
	=09
	=09
		=
form_widget_amount_slider('sliderRedColor',document.getElementById('js_co=
lor_picker_red_color'),170,0,255,"setColorByRGB()");
		=
form_widget_amount_slider('sliderGreenColor',document.getElementById('js_=
color_picker_green_color'),170,0,255,"setColorByRGB()");
		=
form_widget_amount_slider('sliderBlueColor',document.getElementById('js_c=
olor_picker_blue_color'),170,0,255,"setColorByRGB()");
	}
=09
	function setPreviewColorFromTxt()
	{
		if(this.value.match(/\#[0-9A-F]{6}/g)){
			=
document.getElementById('colorPreview').style.backgroundColor=3Dthis.valu=
e;
			var r =3D this.value.substr(1,2);
			var g =3D this.value.substr(3,2);
			var b =3D this.value.substr(5,2);
			document.getElementById('js_color_picker_red_color').value =3D =
baseConverter(r,16,10);
			document.getElementById('js_color_picker_green_color').value =3D =
baseConverter(g,16,10);
			document.getElementById('js_color_picker_blue_color').value =3D =
baseConverter(b,16,10);
		=09
			=
positionSliderImage(false,1,document.getElementById('js_color_picker_red_=
color'));
			=
positionSliderImage(false,2,document.getElementById('js_color_picker_gree=
n_color'));
			=
positionSliderImage(false,3,document.getElementById('js_color_picker_blue=
_color'));
		}
	=09
	}
=09
	function chooseColor()
	{
		color_picker_form_field.value =3D this.getAttribute('rgbColor');
		color_picker_form_field.focus();
		color_picker_div.style.display=3D'none';
	}
=09
	function createStatusBar(inputObj)
	{
		var div =3D document.createElement('DIV');
		div.className=3D'colorPicker_statusBar';=09
		var innerSpan =3D document.createElement('SPAN');
		innerSpan.id =3D 'colorPicker_statusBarTxt';
		div.appendChild(innerSpan);
		inputObj.appendChild(div);
	}
=09
	function chooseColorSlider()
	{
		color_picker_form_field.value =3D =
document.getElementById('js_color_picker_color_code').value;
		color_picker_div.style.display=3D'none';	=09
	}
=09
=09
	function showColorPicker(inputObj,formField)
	{
		if(!color_picker_div){
			color_picker_div =3D document.createElement('DIV');
			color_picker_div.id =3D 'dhtmlgoodies_colorPicker';
			color_picker_div.style.display=3D'none';
			document.body.appendChild(color_picker_div);
			createColorPickerTopRow(color_picker_div);		=09
			var contentDiv =3D document.createElement('DIV');
			contentDiv.id =3D 'color_picker_content';
			color_picker_div.appendChild(contentDiv);		=09
			createWebColors(contentDiv);
			createNamedColors(contentDiv);
			createAllColorDiv(contentDiv);
			createStatusBar(color_picker_div);		=09
		}	=09
		if(color_picker_div.style.display=3D=3D'none' || =
color_picker_active_input!=3DinputObj)color_picker_div.style.display=3D'b=
lock'; else color_picker_div.style.display=3D'none';	=09
		color_picker_div.style.left =3D colorPickerGetLeftPos(inputObj) + =
'px';
		color_picker_div.style.top =3D colorPickerGetTopPos(inputObj) + =
inputObj.offsetHeight + 2 + 'px';
		color_picker_form_field =3D formField;
		color_picker_active_input =3D inputObj;	=09
	}

	function setColorByRGB()
	{
		var formObj =3D document.forms[0];=09
		var r =3D =
document.getElementById('js_color_picker_red_color').value.replace(/[^\d]=
/,'');
		var g =3D =
document.getElementById('js_color_picker_green_color').value.replace(/[^\=
d]/,'');
		var b =3D =
document.getElementById('js_color_picker_blue_color').value.replace(/[^\d=
]/,'');	=09
		if(r/1>255)r=3D255;
		if(g/1>255)g=3D255;
		if(b/1>255)b=3D255;
		r =3D baseConverter(r,10,16) + '';
		g =3D baseConverter(g,10,16) + '';
		b =3D baseConverter(b,10,16) + '';
		if(r.length=3D=3D1)r =3D '0' + r;
		if(g.length=3D=3D1)g =3D '0' + g;
		if(b.length=3D=3D1)b =3D '0' + b;

		document.getElementById('colorPreview').style.backgroundColor =3D '#' =
+ r + g + b;
		document.getElementById('js_color_picker_color_code').value =3D '#' + =
r + g + b;	=09
	}	
------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/tabber.js

/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=0A=
  $Id: tabber.js,v 1.9 2006/04/27 20:51:51 pat Exp $=0A=
  tabber.js by Patrick Fitzgerald pat@barelyfitz.com=0A=
=0A=
  Documentation can be found at the following URL:=0A=
  http://www.barelyfitz.com/projects/tabber/=0A=
=0A=
  License (http://www.opensource.org/licenses/mit-license.php)=0A=
=0A=
  Copyright (c) 2006 Patrick Fitzgerald=0A=
=0A=
  Permission is hereby granted, free of charge, to any person=0A=
  obtaining a copy of this software and associated documentation files=0A=
  (the "Software"), to deal in the Software without restriction,=0A=
  including without limitation the rights to use, copy, modify, merge,=0A=
  publish, distribute, sublicense, and/or sell copies of the Software,=0A=
  and to permit persons to whom the Software is furnished to do so,=0A=
  subject to the following conditions:=0A=
=0A=
  The above copyright notice and this permission notice shall be=0A=
  included in all copies or substantial portions of the Software.=0A=
=0A=
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,=0A=
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF=0A=
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND=0A=
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS=0A=
  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN=0A=
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN=0A=
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE=0A=
  SOFTWARE.=0A=
  =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
*/=0A=
=0A=
function tabberObj(argsObj)=0A=
{=0A=
  var arg; /* name of an argument to override */=0A=
=0A=
  /* Element for the main tabber div. If you supply this in argsObj,=0A=
     then the init() method will be called.=0A=
  */=0A=
  this.div =3D null;=0A=
=0A=
  /* Class of the main tabber div */=0A=
  this.classMain =3D "tabber";=0A=
=0A=
  /* Rename classMain to classMainLive after tabifying=0A=
     (so a different style can be applied)=0A=
  */=0A=
  this.classMainLive =3D "tabberlive";=0A=
=0A=
  /* Class of each DIV that contains a tab */=0A=
  this.classTab =3D "tabbertab";=0A=
=0A=
  /* Class to indicate which tab should be active on startup */=0A=
  this.classTabDefault =3D "tabbertabdefault";=0A=
=0A=
  /* Class for the navigation UL */=0A=
  this.classNav =3D "tabbernav";=0A=
=0A=
  /* When a tab is to be hidden, instead of setting display=3D'none', we=0A=
     set the class of the div to classTabHide. In your screen=0A=
     stylesheet you should set classTabHide to display:none.  In your=0A=
     print stylesheet you should set display:block to ensure that all=0A=
     the information is printed.=0A=
  */=0A=
  this.classTabHide =3D "tabbertabhide";=0A=
=0A=
  /* Class to set the navigation LI when the tab is active, so you can=0A=
     use a different style on the active tab.=0A=
  */=0A=
  this.classNavActive =3D "tabberactive";=0A=
=0A=
  /* Elements that might contain the title for the tab, only used if a=0A=
     title is not specified in the TITLE attribute of DIV classTab.=0A=
  */=0A=
  this.titleElements =3D ['h2','h3','h4','h5','h6'];=0A=
=0A=
  /* Should we strip out the HTML from the innerHTML of the title =
elements?=0A=
     This should usually be true.=0A=
  */=0A=
  this.titleElementsStripHTML =3D true;=0A=
=0A=
  /* If the user specified the tab names using a TITLE attribute on=0A=
     the DIV, then the browser will display a tooltip whenever the=0A=
     mouse is over the DIV. To prevent this tooltip, we can remove the=0A=
     TITLE attribute after getting the tab name.=0A=
  */=0A=
  this.removeTitle =3D true;=0A=
=0A=
  /* If you want to add an id to each link set this to true */=0A=
  this.addLinkId =3D false;=0A=
=0A=
  /* If addIds=3D=3Dtrue, then you can set a format for the ids.=0A=
     <tabberid> will be replaced with the id of the main tabber div.=0A=
     <tabnumberzero> will be replaced with the tab number=0A=
       (tab numbers starting at zero)=0A=
     <tabnumberone> will be replaced with the tab number=0A=
       (tab numbers starting at one)=0A=
     <tabtitle> will be replaced by the tab title=0A=
       (with all non-alphanumeric characters removed)=0A=
   */=0A=
  this.linkIdFormat =3D '<tabberid>nav<tabnumberone>';=0A=
=0A=
  /* You can override the defaults listed above by passing in an object:=0A=
     var mytab =3D new tabber({property:value,property:value});=0A=
  */=0A=
  for (arg in argsObj) { this[arg] =3D argsObj[arg]; }=0A=
=0A=
  /* Create regular expressions for the class names; Note: if you=0A=
     change the class names after a new object is created you must=0A=
     also change these regular expressions.=0A=
  */=0A=
  this.REclassMain =3D new RegExp('\\b' + this.classMain + '\\b', 'gi');=0A=
  this.REclassMainLive =3D new RegExp('\\b' + this.classMainLive + =
'\\b', 'gi');=0A=
  this.REclassTab =3D new RegExp('\\b' + this.classTab + '\\b', 'gi');=0A=
  this.REclassTabDefault =3D new RegExp('\\b' + this.classTabDefault + =
'\\b', 'gi');=0A=
  this.REclassTabHide =3D new RegExp('\\b' + this.classTabHide + '\\b', =
'gi');=0A=
=0A=
  /* Array of objects holding info about each tab */=0A=
  this.tabs =3D new Array();=0A=
=0A=
  /* If the main tabber div was specified, call init() now */=0A=
  if (this.div) {=0A=
=0A=
    this.init(this.div);=0A=
=0A=
    /* We don't need the main div anymore, and to prevent a memory leak=0A=
       in IE, we must remove the circular reference between the div=0A=
       and the tabber object. */=0A=
    this.div =3D null;=0A=
  }=0A=
}=0A=
=0A=
=0A=
/*--------------------------------------------------=0A=
  Methods for tabberObj=0A=
  --------------------------------------------------*/=0A=
=0A=
=0A=
tabberObj.prototype.init =3D function(e)=0A=
{=0A=
  /* Set up the tabber interface.=0A=
=0A=
     e =3D element (the main containing div)=0A=
=0A=
     Example:=0A=
     init(document.getElementById('mytabberdiv'))=0A=
   */=0A=
=0A=
  var=0A=
  childNodes, /* child nodes of the tabber div */=0A=
  i, i2, /* loop indices */=0A=
  t, /* object to store info about a single tab */=0A=
  defaultTab=3D0, /* which tab to select by default */=0A=
  DOM_ul, /* tabbernav list */=0A=
  DOM_li, /* tabbernav list item */=0A=
  DOM_a, /* tabbernav link */=0A=
  aId, /* A unique id for DOM_a */=0A=
  headingElement; /* searching for text to use in the tab */=0A=
=0A=
  /* Verify that the browser supports DOM scripting */=0A=
  if (!document.getElementsByTagName) { return false; }=0A=
=0A=
  /* If the main DIV has an ID then save it. */=0A=
  if (e.id) {=0A=
    this.id =3D e.id;=0A=
  }=0A=
=0A=
  /* Clear the tabs array (but it should normally be empty) */=0A=
  this.tabs.length =3D 0;=0A=
=0A=
  /* Loop through an array of all the child nodes within our tabber =
element. */=0A=
  childNodes =3D e.childNodes;=0A=
  for(i=3D0; i < childNodes.length; i++) {=0A=
=0A=
    /* Find the nodes where class=3D"tabbertab" */=0A=
    if(childNodes[i].className &&=0A=
       childNodes[i].className.match(this.REclassTab)) {=0A=
      =0A=
      /* Create a new object to save info about this tab */=0A=
      t =3D new Object();=0A=
      =0A=
      /* Save a pointer to the div for this tab */=0A=
      t.div =3D childNodes[i];=0A=
      =0A=
      /* Add the new object to the array of tabs */=0A=
      this.tabs[this.tabs.length] =3D t;=0A=
=0A=
      /* If the class name contains classTabDefault,=0A=
	 then select this tab by default.=0A=
      */=0A=
      if (childNodes[i].className.match(this.REclassTabDefault)) {=0A=
	defaultTab =3D this.tabs.length-1;=0A=
      }=0A=
    }=0A=
  }=0A=
=0A=
  /* Create a new UL list to hold the tab headings */=0A=
  DOM_ul =3D document.createElement("ul");=0A=
  DOM_ul.className =3D this.classNav;=0A=
  =0A=
  /* Loop through each tab we found */=0A=
  for (i=3D0; i < this.tabs.length; i++) {=0A=
=0A=
    t =3D this.tabs[i];=0A=
=0A=
    /* Get the label to use for this tab:=0A=
       From the title attribute on the DIV,=0A=
       Or from one of the this.titleElements[] elements,=0A=
       Or use an automatically generated number.=0A=
     */=0A=
    t.headingText =3D t.div.title;=0A=
=0A=
    /* Remove the title attribute to prevent a tooltip from appearing */=0A=
    if (this.removeTitle) { t.div.title =3D ''; }=0A=
=0A=
    if (!t.headingText) {=0A=
=0A=
      /* Title was not defined in the title of the DIV,=0A=
	 So try to get the title from an element within the DIV.=0A=
	 Go through the list of elements in this.titleElements=0A=
	 (typically heading elements ['h2','h3','h4'])=0A=
      */=0A=
      for (i2=3D0; i2<this.titleElements.length; i2++) {=0A=
	headingElement =3D =
t.div.getElementsByTagName(this.titleElements[i2])[0];=0A=
	if (headingElement) {=0A=
	  t.headingText =3D headingElement.innerHTML;=0A=
	  if (this.titleElementsStripHTML) {=0A=
	    t.headingText.replace(/<br>/gi," ");=0A=
	    t.headingText =3D t.headingText.replace(/<[^>]+>/g,"");=0A=
	  }=0A=
	  break;=0A=
	}=0A=
      }=0A=
    }=0A=
=0A=
    if (!t.headingText) {=0A=
      /* Title was not found (or is blank) so automatically generate a=0A=
         number for the tab.=0A=
      */=0A=
      t.headingText =3D i + 1;=0A=
    }=0A=
=0A=
    /* Create a list element for the tab */=0A=
    DOM_li =3D document.createElement("li");=0A=
=0A=
    /* Save a reference to this list item so we can later change it to=0A=
       the "active" class */=0A=
    t.li =3D DOM_li;=0A=
=0A=
    /* Create a link to activate the tab */=0A=
    DOM_a =3D document.createElement("a");=0A=
    DOM_a.appendChild(document.createTextNode(t.headingText));=0A=
    DOM_a.href =3D "javascript:void(null);";=0A=
    DOM_a.title =3D t.headingText;=0A=
    DOM_a.onclick =3D this.navClick;=0A=
=0A=
    /* Add some properties to the link so we can identify which tab=0A=
       was clicked. Later the navClick method will need this.=0A=
    */=0A=
    DOM_a.tabber =3D this;=0A=
    DOM_a.tabberIndex =3D i;=0A=
=0A=
    /* Do we need to add an id to DOM_a? */=0A=
    if (this.addLinkId && this.linkIdFormat) {=0A=
=0A=
      /* Determine the id name */=0A=
      aId =3D this.linkIdFormat;=0A=
      aId =3D aId.replace(/<tabberid>/gi, this.id);=0A=
      aId =3D aId.replace(/<tabnumberzero>/gi, i);=0A=
      aId =3D aId.replace(/<tabnumberone>/gi, i+1);=0A=
      aId =3D aId.replace(/<tabtitle>/gi, =
t.headingText.replace(/[^a-zA-Z0-9\-]/gi, ''));=0A=
=0A=
      DOM_a.id =3D aId;=0A=
    }=0A=
=0A=
    /* Add the link to the list element */=0A=
    DOM_li.appendChild(DOM_a);=0A=
=0A=
    /* Add the list element to the list */=0A=
    DOM_ul.appendChild(DOM_li);=0A=
  }=0A=
=0A=
  /* Add the UL list to the beginning of the tabber div */=0A=
  e.insertBefore(DOM_ul, e.firstChild);=0A=
=0A=
  /* Make the tabber div "live" so different CSS can be applied */=0A=
  e.className =3D e.className.replace(this.REclassMain, =
this.classMainLive);=0A=
=0A=
  /* Activate the default tab, and do not call the onclick handler */=0A=
  this.tabShow(defaultTab);=0A=
=0A=
  /* If the user specified an onLoad function, call it now. */=0A=
  if (typeof this.onLoad =3D=3D 'function') {=0A=
    this.onLoad({tabber:this});=0A=
  }=0A=
=0A=
  return this;=0A=
};=0A=
=0A=
=0A=
tabberObj.prototype.navClick =3D function(event)=0A=
{=0A=
  /* This method should only be called by the onClick event of an <A>=0A=
     element, in which case we will determine which tab was clicked by=0A=
     examining a property that we previously attached to the <A>=0A=
     element.=0A=
=0A=
     Since this was triggered from an onClick event, the variable=0A=
     "this" refers to the <A> element that triggered the onClick=0A=
     event (and not to the tabberObj).=0A=
=0A=
     When tabberObj was initialized, we added some extra properties=0A=
     to the <A> element, for the purpose of retrieving them now. Get=0A=
     the tabberObj object, plus the tab number that was clicked.=0A=
  */=0A=
=0A=
  var=0A=
  rVal, /* Return value from the user onclick function */=0A=
  a, /* element that triggered the onclick event */=0A=
  self, /* the tabber object */=0A=
  tabberIndex, /* index of the tab that triggered the event */=0A=
  onClickArgs; /* args to send the onclick function */=0A=
=0A=
  a =3D this;=0A=
  if (!a.tabber) { return false; }=0A=
=0A=
  self =3D a.tabber;=0A=
  tabberIndex =3D a.tabberIndex;=0A=
=0A=
  /* Remove focus from the link because it looks ugly.=0A=
     I don't know if this is a good idea...=0A=
  */=0A=
  a.blur();=0A=
=0A=
  /* If the user specified an onClick function, call it now.=0A=
     If the function returns false then do not continue.=0A=
  */=0A=
  if (typeof self.onClick =3D=3D 'function') {=0A=
=0A=
    onClickArgs =3D {'tabber':self, 'index':tabberIndex, 'event':event};=0A=
=0A=
    /* IE uses a different way to access the event object */=0A=
    if (!event) { onClickArgs.event =3D window.event; }=0A=
=0A=
    rVal =3D self.onClick(onClickArgs);=0A=
    if (rVal =3D=3D=3D false) { return false; }=0A=
  }=0A=
=0A=
  self.tabShow(tabberIndex);=0A=
=0A=
  return false;=0A=
};=0A=
=0A=
=0A=
tabberObj.prototype.tabHideAll =3D function()=0A=
{=0A=
  var i; /* counter */=0A=
=0A=
  /* Hide all tabs and make all navigation links inactive */=0A=
  for (i =3D 0; i < this.tabs.length; i++) {=0A=
    this.tabHide(i);=0A=
  }=0A=
};=0A=
=0A=
=0A=
tabberObj.prototype.tabHide =3D function(tabberIndex)=0A=
{=0A=
  var div;=0A=
=0A=
  if (!this.tabs[tabberIndex]) { return false; }=0A=
=0A=
  /* Hide a single tab and make its navigation link inactive */=0A=
  div =3D this.tabs[tabberIndex].div;=0A=
=0A=
  /* Hide the tab contents by adding classTabHide to the div */=0A=
  if (!div.className.match(this.REclassTabHide)) {=0A=
    div.className +=3D ' ' + this.classTabHide;=0A=
  }=0A=
  this.navClearActive(tabberIndex);=0A=
=0A=
  return this;=0A=
};=0A=
=0A=
=0A=
tabberObj.prototype.tabShow =3D function(tabberIndex)=0A=
{=0A=
  /* Show the tabberIndex tab and hide all the other tabs */=0A=
=0A=
  var div;=0A=
=0A=
  if (!this.tabs[tabberIndex]) { return false; }=0A=
=0A=
  /* Hide all the tabs first */=0A=
  this.tabHideAll();=0A=
=0A=
  /* Get the div that holds this tab */=0A=
  div =3D this.tabs[tabberIndex].div;=0A=
=0A=
  /* Remove classTabHide from the div */=0A=
  div.className =3D div.className.replace(this.REclassTabHide, '');=0A=
=0A=
  /* Mark this tab navigation link as "active" */=0A=
  this.navSetActive(tabberIndex);=0A=
=0A=
  /* If the user specified an onTabDisplay function, call it now. */=0A=
  if (typeof this.onTabDisplay =3D=3D 'function') {=0A=
    this.onTabDisplay({'tabber':this, 'index':tabberIndex});=0A=
  }=0A=
=0A=
  return this;=0A=
};=0A=
=0A=
tabberObj.prototype.navSetActive =3D function(tabberIndex)=0A=
{=0A=
  /* Note: this method does *not* enforce the rule=0A=
     that only one nav item can be active at a time.=0A=
  */=0A=
=0A=
  /* Set classNavActive for the navigation list item */=0A=
  this.tabs[tabberIndex].li.className =3D this.classNavActive;=0A=
=0A=
  return this;=0A=
};=0A=
=0A=
=0A=
tabberObj.prototype.navClearActive =3D function(tabberIndex)=0A=
{=0A=
  /* Note: this method does *not* enforce the rule=0A=
     that one nav should always be active.=0A=
  */=0A=
=0A=
  /* Remove classNavActive from the navigation list item */=0A=
  this.tabs[tabberIndex].li.className =3D '';=0A=
=0A=
  return this;=0A=
};=0A=
=0A=
=0A=
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D*/=0A=
=0A=
=0A=
function tabberAutomatic(tabberArgs)=0A=
{=0A=
  /* This function finds all DIV elements in the document where=0A=
     class=3Dtabber.classMain, then converts them to use the tabber=0A=
     interface.=0A=
=0A=
     tabberArgs =3D an object to send to "new tabber()"=0A=
  */=0A=
  var=0A=
    tempObj, /* Temporary tabber object */=0A=
    divs, /* Array of all divs on the page */=0A=
    i; /* Loop index */=0A=
=0A=
  if (!tabberArgs) { tabberArgs =3D {}; }=0A=
=0A=
  /* Create a tabber object so we can get the value of classMain */=0A=
  tempObj =3D new tabberObj(tabberArgs);=0A=
=0A=
  /* Find all DIV elements in the document that have class=3Dtabber */=0A=
=0A=
  /* First get an array of all DIV elements and loop through them */=0A=
  divs =3D document.getElementsByTagName("div");=0A=
  for (i=3D0; i < divs.length; i++) {=0A=
    =0A=
    /* Is this DIV the correct class? */=0A=
    if (divs[i].className &&=0A=
	divs[i].className.match(tempObj.REclassMain)) {=0A=
      =0A=
      /* Now tabify the DIV */=0A=
      tabberArgs.div =3D divs[i];=0A=
      divs[i].tabber =3D new tabberObj(tabberArgs);=0A=
    }=0A=
  }=0A=
  =0A=
  return this;=0A=
}=0A=
=0A=
=0A=
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D*/=0A=
=0A=
=0A=
function tabberAutomaticOnLoad(tabberArgs)=0A=
{=0A=
  /* This function adds tabberAutomatic to the window.onload event,=0A=
     so it will run after the document has finished loading.=0A=
  */=0A=
  var oldOnLoad;=0A=
=0A=
  if (!tabberArgs) { tabberArgs =3D {}; }=0A=
=0A=
  /* Taken from: =
http://simon.incutio.com/archive/2004/05/26/addLoadEvent */=0A=
=0A=
  oldOnLoad =3D window.onload;=0A=
  if (typeof window.onload !=3D 'function') {=0A=
    window.onload =3D function() {=0A=
      tabberAutomatic(tabberArgs);=0A=
    };=0A=
  } else {=0A=
    window.onload =3D function() {=0A=
      oldOnLoad();=0A=
      tabberAutomatic(tabberArgs);=0A=
    };=0A=
  }=0A=
}=0A=
=0A=
=0A=
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D*/=0A=
=0A=
=0A=
/* Run tabberAutomaticOnload() unless the "manualStartup" option was =
specified */=0A=
=0A=
if (typeof tabberOptions =3D=3D 'undefined') {=0A=
=0A=
    tabberAutomaticOnLoad();=0A=
=0A=
} else {=0A=
=0A=
  if (!tabberOptions['manualStartup']) {=0A=
    tabberAutomaticOnLoad(tabberOptions);=0A=
  }=0A=
=0A=
}=0A=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/tiny_mce/tiny_mce_src.js


/* file:jscripts/tiny_mce/classes/TinyMCE_Engine.class.js */

function TinyMCE_Engine() {
	var ua;

	this.majorVersion =3D "2";
	this.minorVersion =3D "1.2";
	this.releaseDate =3D "2007-08-21";

	this.instances =3D [];
	this.switchClassCache =3D [];
	this.windowArgs =3D [];
	this.loadedFiles =3D [];
	this.pendingFiles =3D [];
	this.loadingIndex =3D 0;
	this.configs =3D [];
	this.currentConfig =3D 0;
	this.eventHandlers =3D [];
	this.log =3D [];
	this.undoLevels =3D [];
	this.undoIndex =3D 0;
	this.typingUndoIndex =3D -1;
	this.settings =3D [];

	// Browser check
	ua =3D navigator.userAgent;
	this.isMSIE =3D (navigator.appName =3D=3D "Microsoft Internet =
Explorer");
	this.isMSIE5 =3D this.isMSIE && (ua.indexOf('MSIE 5') !=3D -1);
	this.isMSIE5_0 =3D this.isMSIE && (ua.indexOf('MSIE 5.0') !=3D -1);
	this.isMSIE7 =3D this.isMSIE && (ua.indexOf('MSIE 7') !=3D -1);
	this.isGecko =3D ua.indexOf('Gecko') !=3D -1; // Will also be true on =
Safari
	this.isSafari =3D ua.indexOf('Safari') !=3D -1;
	this.isOpera =3D window['opera'] && opera.buildNumber ? true : false;
	this.isMac =3D ua.indexOf('Mac') !=3D -1;
	this.isNS7 =3D ua.indexOf('Netscape/7') !=3D -1;
	this.isNS71 =3D ua.indexOf('Netscape/7.1') !=3D -1;
	this.dialogCounter =3D 0;
	this.plugins =3D [];
	this.themes =3D [];
	this.menus =3D [];
	this.loadedPlugins =3D [];
	this.buttonMap =3D [];
	this.isLoaded =3D false;

	// Fake MSIE on Opera and if Opera fakes IE, Gecko or Safari cancel =
those
	if (this.isOpera) {
		this.isMSIE =3D true;
		this.isGecko =3D false;
		this.isSafari =3D  false;
	}

	this.isIE =3D this.isMSIE;
	this.isRealIE =3D this.isMSIE && !this.isOpera;

	// TinyMCE editor id instance counter
	this.idCounter =3D 0;
};

TinyMCE_Engine.prototype =3D {
	init : function(settings) {
		var theme, nl, baseHREF =3D "", i, cssPath, entities, h, p, src, =
elements =3D [], head;

		// IE 5.0x is no longer supported since 5.5, 6.0 and 7.0 now exists. =
We can't support old browsers forever, sorry.
		if (this.isMSIE5_0)
			return;

		this.settings =3D settings;

		// Check if valid browser has execcommand support
		if (typeof(document.execCommand) =3D=3D 'undefined')
			return;

		// Get script base path
		if (!tinyMCE.baseURL) {
			// Search through head
			head =3D document.getElementsByTagName('head')[0];

			if (head) {
				for (i=3D0, nl =3D head.getElementsByTagName('script'); i<nl.length; =
i++)
					elements.push(nl[i]);
			}

			// Search through rest of document
			for (i=3D0, nl =3D document.getElementsByTagName('script'); =
i<nl.length; i++)
				elements.push(nl[i]);

			// If base element found, add that infront of baseURL
			nl =3D document.getElementsByTagName('base');
			for (i=3D0; i<nl.length; i++) {
				if (nl[i].href)
					baseHREF =3D nl[i].href;
			}

			for (i=3D0; i<elements.length; i++) {
				if (elements[i].src && (elements[i].src.indexOf("tiny_mce.js") !=3D =
-1 || elements[i].src.indexOf("tiny_mce_dev.js") !=3D -1 || =
elements[i].src.indexOf("tiny_mce_src.js") !=3D -1 || =
elements[i].src.indexOf("tiny_mce_gzip") !=3D -1)) {
					src =3D elements[i].src;

					tinyMCE.srcMode =3D (src.indexOf('_src') !=3D -1 || =
src.indexOf('_dev') !=3D -1) ? '_src' : '';
					tinyMCE.gzipMode =3D src.indexOf('_gzip') !=3D -1;
					src =3D src.substring(0, src.lastIndexOf('/'));

					if (settings.exec_mode =3D=3D "src" || settings.exec_mode =3D=3D =
"normal")
						tinyMCE.srcMode =3D settings.exec_mode =3D=3D "src" ? '_src' : '';

					// Force it absolute if page has a base href
					if (baseHREF !=3D=3D '' && src.indexOf('://') =3D=3D -1)
						tinyMCE.baseURL =3D baseHREF + src;
					else
						tinyMCE.baseURL =3D src;

					break;
				}
			}
		}

		// Get document base path
		this.documentBasePath =3D document.location.href;
		if (this.documentBasePath.indexOf('?') !=3D -1)
			this.documentBasePath =3D this.documentBasePath.substring(0, =
this.documentBasePath.indexOf('?'));
		this.documentURL =3D this.documentBasePath;
		this.documentBasePath =3D this.documentBasePath.substring(0, =
this.documentBasePath.lastIndexOf('/'));

		// If not HTTP absolute
		if (tinyMCE.baseURL.indexOf('://') =3D=3D -1 && =
tinyMCE.baseURL.charAt(0) !=3D '/') {
			// If site absolute
			tinyMCE.baseURL =3D this.documentBasePath + "/" + tinyMCE.baseURL;
		}

		// Set default values on settings
		this._def("mode", "none");
		this._def("theme", "advanced");
		this._def("plugins", "", true);
		this._def("language", "en");
		this._def("docs_language", this.settings.language);
		this._def("elements", "");
		this._def("textarea_trigger", "mce_editable");
		this._def("editor_selector", "");
		this._def("editor_deselector", "mceNoEditor");
		this._def("valid_elements", =
"+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|na=
me|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|=
onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup=
],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-u[cla=
ss|style],#p[id|style|dir|class|align],-ol[class|style],-ul[class|style],=
-li[class|style],br,img[id|dir|lang|longdesc|usemap|style|class|src|onmou=
seover|onmouseout|border|alt=3D|title|hspace|vspace|width|height|align],-=
sub[style|class],-sup[style|class],-blockquote[dir|style],-table[border=3D=
0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|l=
ang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|h=
eight|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],=
thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|wid=
th|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id=
|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],ca=
ption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[style=
|class|align],-pre[class|align|style],address[class|align|style],-h1[id|s=
tyle|dir|class|align],-h2[id|style|dir|class|align],-h3[id|style|dir|clas=
s|align],-h4[id|style|dir|class|align],-h5[id|style|dir|class|align],-h6[=
id|style|dir|class|align],hr[class|style],-font[face|size|style|id|class|=
dir|color],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|=
lang],dt[id|class|title|style|dir|lang],cite[title|id|class|style|dir|lan=
g],abbr[title|id|class|style|dir|lang],acronym[title|id|class|style|dir|l=
ang],del[title|id|class|style|dir|lang|datetime|cite],ins[title|id|class|=
style|dir|lang|datetime|cite]");
		this._def("extended_valid_elements", "");
		this._def("invalid_elements", "");
		this._def("encoding", "");
		this._def("urlconverter_callback", =
tinyMCE.getParam("urlconvertor_callback", =
"TinyMCE_Engine.prototype.convertURL"));
		this._def("save_callback", "");
		this._def("force_br_newlines", false);
		this._def("force_p_newlines", true);
		this._def("add_form_submit_trigger", true);
		this._def("relative_urls", true);
		this._def("remove_script_host", true);
		this._def("focus_alert", true);
		this._def("document_base_url", this.documentURL);
		this._def("visual", true);
		this._def("visual_table_class", "mceVisualAid");
		this._def("setupcontent_callback", "");
		this._def("fix_content_duplication", true);
		this._def("custom_undo_redo", true);
		this._def("custom_undo_redo_levels", -1);
		this._def("custom_undo_redo_keyboard_shortcuts", true);
		this._def("custom_undo_redo_restore_selection", true);
		this._def("custom_undo_redo_global", false);
		this._def("verify_html", true);
		this._def("apply_source_formatting", false);
		this._def("directionality", "ltr");
		this._def("cleanup_on_startup", false);
		this._def("inline_styles", false);
		this._def("convert_newlines_to_brs", false);
		this._def("auto_reset_designmode", true);
		this._def("entities", =
"39,#39,160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvb=
ar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,1=
75,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para=
,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,1=
90,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,=
197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,2=
04,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211=
,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218=
,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,=
aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,e=
grave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,i=
uml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,oum=
l,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacu=
te,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917=
,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,=
925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,93=
4,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,94=
9,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu=
,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,96=
5,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,pi=
v,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,=
weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8=
594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,865=
9,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8=
712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,873=
0,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,=
8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,880=
4,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8=
855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfl=
oor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,=
diams,34,quot,38,amp,60,lt,62,gt,338,OElig,339,oelig,352,Scaron,353,scaro=
n,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8=
205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,821=
8,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,per=
mil,8249,lsaquo,8250,rsaquo,8364,euro", true);
		this._def("entity_encoding", "named");
		this._def("cleanup_callback", "");
		this._def("add_unload_trigger", true);
		this._def("ask", false);
		this._def("nowrap", false);
		this._def("auto_resize", false);
		this._def("auto_focus", false);
		this._def("cleanup", true);
		this._def("remove_linebreaks", true);
		this._def("button_tile_map", false);
		this._def("submit_patch", true);
		this._def("browsers", "msie,safari,gecko,opera", true);
		this._def("dialog_type", "window");
		this._def("accessibility_warnings", true);
		this._def("accessibility_focus", true);
		this._def("merge_styles_invalid_parents", "");
		this._def("force_hex_style_colors", true);
		this._def("trim_span_elements", true);
		this._def("convert_fonts_to_spans", false);
		this._def("doctype", '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 =
Transitional//EN">');
		this._def("font_size_classes", '');
		this._def("font_size_style_values", =
'xx-small,x-small,small,medium,large,x-large,xx-large', true);
		this._def("event_elements", 'a,img', true);
		this._def("convert_urls", true);
		this._def("table_inline_editing", false);
		this._def("object_resizing", true);
		this._def("custom_shortcuts", true);
		this._def("convert_on_click", false);
		this._def("content_css", '');
		this._def("fix_list_elements", true);
		this._def("fix_table_elements", false);
		this._def("strict_loading_mode", document.contentType =3D=3D =
'application/xhtml+xml');
		this._def("hidden_tab_class", '');
		this._def("display_tab_class", '');
		this._def("gecko_spellcheck", false);
		this._def("hide_selects_on_submit", true);
		this._def("forced_root_block", false);
		this._def("remove_trailing_nbsp", false);
		this._def("save_on_tinymce_forms", false);

		// Force strict loading mode to false on non Gecko browsers
		if (this.isMSIE && !this.isOpera)
			this.settings.strict_loading_mode =3D false;

		// Browser check IE
		if (this.isMSIE && this.settings.browsers.indexOf('msie') =3D=3D -1)
			return;

		// Browser check Gecko
		if (this.isGecko && this.settings.browsers.indexOf('gecko') =3D=3D -1)
			return;

		// Browser check Safari
		if (this.isSafari && this.settings.browsers.indexOf('safari') =3D=3D =
-1)
			return;

		// Browser check Opera
		if (this.isOpera && this.settings.browsers.indexOf('opera') =3D=3D -1)
			return;

		// If not super absolute make it so
		baseHREF =3D tinyMCE.settings.document_base_url;
		h =3D document.location.href;
		p =3D h.indexOf('://');
		if (p > 0 && document.location.protocol !=3D "file:") {
			p =3D h.indexOf('/', p + 3);
			h =3D h.substring(0, p);

			if (baseHREF.indexOf('://') =3D=3D -1)
				baseHREF =3D h + baseHREF;

			tinyMCE.settings.document_base_url =3D baseHREF;
			tinyMCE.settings.document_base_prefix =3D h;
		}

		// Trim away query part
		if (baseHREF.indexOf('?') !=3D -1)
			baseHREF =3D baseHREF.substring(0, baseHREF.indexOf('?'));

		this.settings.base_href =3D baseHREF.substring(0, =
baseHREF.lastIndexOf('/')) + "/";

		theme =3D this.settings.theme;
		this.inlineStrict =3D =
'A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|=
KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';
		this.inlineTransitional =3D =
'A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|F=
ONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|=
INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';
		this.blockElms =3D =
'H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTE=
R|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';
		this.blockRegExp =3D new RegExp("^(" + this.blockElms + ")$", "i");
		this.posKeyCodes =3D [13,45,36,35,33,34,37,38,39,40];
		this.uniqueURL =3D 'javascript:void(091039730);'; // Make unique URL =
non real URL
		this.uniqueTag =3D '<div id=3D"mceTMPElement" style=3D"display: =
none">TMP</div>';
		this.callbacks =3D ['onInit', 'getInfo', 'getEditorTemplate', =
'setupContent', 'onChange', 'onPageLoad', 'handleNodeChange', =
'initInstance', 'execCommand', 'getControlHTML', 'handleEvent', =
'cleanup', 'removeInstance'];

		// Theme url
		this.settings.theme_href =3D tinyMCE.baseURL + "/themes/" + theme;

		if (!tinyMCE.isIE || tinyMCE.isOpera)
			this.settings.force_br_newlines =3D false;

		if (tinyMCE.getParam("popups_css", false)) {
			cssPath =3D tinyMCE.getParam("popups_css", "");

			// Is relative
			if (cssPath.indexOf('://') =3D=3D -1 && cssPath.charAt(0) !=3D '/')
				this.settings.popups_css =3D this.documentBasePath + "/" + cssPath;
			else
				this.settings.popups_css =3D cssPath;
		} else
			this.settings.popups_css =3D tinyMCE.baseURL + "/themes/" + theme + =
"/css/editor_popup.css";

		if (tinyMCE.getParam("editor_css", false)) {
			cssPath =3D tinyMCE.getParam("editor_css", "");

			// Is relative
			if (cssPath.indexOf('://') =3D=3D -1 && cssPath.charAt(0) !=3D '/')
				this.settings.editor_css =3D this.documentBasePath + "/" + cssPath;
			else
				this.settings.editor_css =3D cssPath;
		} else {
			if (this.settings.editor_css !=3D=3D '')
				this.settings.editor_css =3D tinyMCE.baseURL + "/themes/" + theme + =
"/css/editor_ui.css";
		}

		// Only do this once
		if (this.configs.length =3D=3D 0) {
			if (typeof(TinyMCECompressed) =3D=3D "undefined") {
				tinyMCE.addEvent(window, "DOMContentLoaded", =
TinyMCE_Engine.prototype.onLoad);

				if (tinyMCE.isRealIE) {
					if (document.body)
						tinyMCE.addEvent(document.body, "readystatechange", =
TinyMCE_Engine.prototype.onLoad);
					else
						tinyMCE.addEvent(document, "readystatechange", =
TinyMCE_Engine.prototype.onLoad);
				}

				tinyMCE.addEvent(window, "load", TinyMCE_Engine.prototype.onLoad);
				tinyMCE._addUnloadEvents();
			}
		}

		this.loadScript(tinyMCE.baseURL + '/themes/' + this.settings.theme + =
'/editor_template' + tinyMCE.srcMode + '.js');
		this.loadScript(tinyMCE.baseURL + '/langs/' + this.settings.language + =
 '.js');
		this.loadCSS(this.settings.editor_css);

		// Add plugins
		p =3D tinyMCE.getParam('plugins', '', true, ',');
		if (p.length > 0) {
			for (i=3D0; i<p.length; i++) {
				if (p[i].charAt(0) !=3D '-')
					this.loadScript(tinyMCE.baseURL + '/plugins/' + p[i] + =
'/editor_plugin' + tinyMCE.srcMode + '.js');
			}
		}

		// Setup entities
		if (tinyMCE.getParam('entity_encoding') =3D=3D 'named') {
			settings.cleanup_entities =3D [];
			entities =3D tinyMCE.getParam('entities', '', true, ',');
			for (i=3D0; i<entities.length; i+=3D2)
				settings.cleanup_entities['c' + entities[i]] =3D entities[i+1];
		}

		// Save away this config
		settings.index =3D this.configs.length;
		this.configs[this.configs.length] =3D settings;

		// Start loading first one in chain
		this.loadNextScript();

		// Force flicker free CSS backgrounds in IE
		if (this.isIE && !this.isOpera) {
			try {
				document.execCommand('BackgroundImageCache', false, true);
			} catch (e) {
				// Ignore
			}
		}

		// Setup XML encoding regexps
		this.xmlEncodeRe =3D new RegExp('[<>&"]', 'g');
	},

	_addUnloadEvents : function() {
		var st =3D tinyMCE.settings.add_unload_trigger;

		if (tinyMCE.isIE) {
			if (st) {
				tinyMCE.addEvent(window, "unload", =
TinyMCE_Engine.prototype.unloadHandler);
				tinyMCE.addEvent(window.document, "beforeunload", =
TinyMCE_Engine.prototype.unloadHandler);
			}
		} else {
			if (st)
				tinyMCE.addEvent(window, "unload", function () =
{tinyMCE.triggerSave(true, true);});
		}
	},

	_def : function(key, def_val, t) {
		var v =3D tinyMCE.getParam(key, def_val);

		v =3D t ? v.replace(/\s+/g, "") : v;

		this.settings[key] =3D v;
	},

	hasPlugin : function(n) {
		return typeof(this.plugins[n]) !=3D "undefined" && this.plugins[n] =
!=3D null;
	},

	addPlugin : function(n, p) {
		var op =3D this.plugins[n];

		// Use the previous plugin object base URL used when loading external =
plugins
		p.baseURL =3D op ? op.baseURL : tinyMCE.baseURL + "/plugins/" + n;
		this.plugins[n] =3D p;

		this.loadNextScript();
	},

	setPluginBaseURL : function(n, u) {
		var op =3D this.plugins[n];

		if (op)
			op.baseURL =3D u;
		else
			this.plugins[n] =3D {baseURL : u};
	},

	loadPlugin : function(n, u) {
		u =3D u.indexOf('.js') !=3D -1 ? u.substring(0, u.lastIndexOf('/')) : =
u;
		u =3D u.charAt(u.length-1) =3D=3D '/' ? u.substring(0, u.length-1) : =
u;
		this.plugins[n] =3D {baseURL : u};
		this.loadScript(u + "/editor_plugin" + (tinyMCE.srcMode ? '_src' : '') =
+ ".js");
	},

	hasTheme : function(n) {
		return typeof(this.themes[n]) !=3D "undefined" && this.themes[n] !=3D =
null;
	},

	addTheme : function(n, t) {
		this.themes[n] =3D t;

		this.loadNextScript();
	},

	addMenu : function(n, m) {
		this.menus[n] =3D m;
	},

	hasMenu : function(n) {
		return typeof(this.plugins[n]) !=3D "undefined" && this.plugins[n] =
!=3D null;
	},

	loadScript : function(url) {
		var i;

		for (i=3D0; i<this.loadedFiles.length; i++) {
			if (this.loadedFiles[i] =3D=3D url)
				return;
		}

		if (tinyMCE.settings.strict_loading_mode)
			this.pendingFiles[this.pendingFiles.length] =3D url;
		else
			document.write('<sc'+'ript language=3D"javascript" =
type=3D"text/javascript" src=3D"' + url + '"></script>');

		this.loadedFiles[this.loadedFiles.length] =3D url;
	},

	loadNextScript : function() {
		var d =3D document, se;

		if (!tinyMCE.settings.strict_loading_mode)
			return;

		if (this.loadingIndex < this.pendingFiles.length) {
			se =3D d.createElementNS('http://www.w3.org/1999/xhtml', 'script');
			se.setAttribute('language', 'javascript');
			se.setAttribute('type', 'text/javascript');
			se.setAttribute('src', this.pendingFiles[this.loadingIndex++]);

			d.getElementsByTagName("head")[0].appendChild(se);
		} else
			this.loadingIndex =3D -1; // Done with loading
	},

	loadCSS : function(url) {
		var ar =3D url.replace(/\s+/, '').split(',');
		var lflen =3D 0, csslen =3D 0, skip =3D false;
		var x =3D 0, i =3D 0, nl, le;

		for (x =3D 0,csslen =3D ar.length; x<csslen; x++) {
			if (ar[x] !=3D null && ar[x] !=3D 'null' && ar[x].length > 0) {
				/* Make sure it doesn't exist. */
				for (i=3D0, lflen=3Dthis.loadedFiles.length; i<lflen; i++) {
					if (this.loadedFiles[i] =3D=3D ar[x]) {
						skip =3D true;
						break;
					}
				}

				if (!skip) {
					if (tinyMCE.settings.strict_loading_mode) {
						nl =3D document.getElementsByTagName("head");

						le =3D document.createElement('link');
						le.setAttribute('href', ar[x]);
						le.setAttribute('rel', 'stylesheet');
						le.setAttribute('type', 'text/css');

						nl[0].appendChild(le);		=09
					} else
						document.write('<link href=3D"' + ar[x] + '" rel=3D"stylesheet" =
type=3D"text/css" />');

					this.loadedFiles[this.loadedFiles.length] =3D ar[x];
				}
			}
		}
	},

	importCSS : function(doc, css) {
		var css_ary =3D css.replace(/\s+/, '').split(',');
		var csslen, elm, headArr, x, css_file;

		for (x =3D 0, csslen =3D css_ary.length; x<csslen; x++) {
			css_file =3D css_ary[x];

			if (css_file !=3D null && css_file !=3D 'null' && css_file.length > =
0) {
				// Is relative, make absolute
				if (css_file.indexOf('://') =3D=3D -1 && css_file.charAt(0) !=3D =
'/')
					css_file =3D this.documentBasePath + "/" + css_file;

				if (typeof(doc.createStyleSheet) =3D=3D "undefined") {
					elm =3D doc.createElement("link");

					elm.rel =3D "stylesheet";
					elm.href =3D css_file;

					if ((headArr =3D doc.getElementsByTagName("head")) !=3D null && =
headArr.length > 0)
						headArr[0].appendChild(elm);
				} else
					doc.createStyleSheet(css_file);
			}
		}
	},

	confirmAdd : function(e, settings) {
		var elm =3D tinyMCE.isIE ? event.srcElement : e.target;
		var elementId =3D elm.name ? elm.name : elm.id;

		tinyMCE.settings =3D settings;

		if (tinyMCE.settings.convert_on_click || =
(!elm.getAttribute('mce_noask') && =
confirm(tinyMCELang.lang_edit_confirm)))
			tinyMCE.addMCEControl(elm, elementId);

		elm.setAttribute('mce_noask', 'true');
	},

	updateContent : function(form_element_name) {
		var formElement, n, inst, doc;

		// Find MCE instance linked to given form element and copy it's value
		formElement =3D document.getElementById(form_element_name);
		for (n in tinyMCE.instances) {
			inst =3D tinyMCE.instances[n];

			if (!tinyMCE.isInstance(inst))
				continue;

			inst.switchSettings();

			if (inst.formElement =3D=3D formElement) {
				doc =3D inst.getDoc();

				tinyMCE._setHTML(doc, inst.formElement.value);

				if (!tinyMCE.isIE)
					doc.body.innerHTML =3D tinyMCE._cleanupHTML(inst, doc, =
this.settings, doc.body, inst.visualAid);
			}
		}
	},

	addMCEControl : function(replace_element, form_element_name, =
target_document) {
		var id =3D "mce_editor_" + tinyMCE.idCounter++;
		var inst =3D new TinyMCE_Control(tinyMCE.settings);

		inst.editorId =3D id;
		this.instances[id] =3D inst;

		inst._onAdd(replace_element, form_element_name, target_document);
	},

	removeInstance : function(ti) {
		var t =3D [], n, i;

		// Remove from instances
		for (n in tinyMCE.instances) {
			i =3D tinyMCE.instances[n];

			if (tinyMCE.isInstance(i) && ti !=3D i)
					t[n] =3D i;
		}

		tinyMCE.instances =3D t;

		// Remove from global undo/redo
		n =3D [];
		t =3D tinyMCE.undoLevels;

		for (i=3D0; i<t.length; i++) {
			if (t[i] !=3D ti)
				n.push(t[i]);
		}

		tinyMCE.undoLevels =3D n;
		tinyMCE.undoIndex =3D n.length;

		// Dispatch remove instance call
		tinyMCE.dispatchCallback(ti, 'remove_instance_callback', =
'removeInstance', ti);

		return ti;
	},

	removeMCEControl : function(editor_id) {
		var inst =3D tinyMCE.getInstanceById(editor_id), h, re, ot, tn, n;

		if (inst) {
			inst.switchSettings();

			editor_id =3D inst.editorId;
			h =3D tinyMCE.getContent(editor_id);

			this.removeInstance(inst);

			tinyMCE.selectedElement =3D null;
			tinyMCE.selectedInstance =3D null;

			tinyMCE.selectedElement =3D null;
			tinyMCE.selectedInstance =3D null;

			// Try finding an instance
			for (n in tinyMCE.instances) {
				if (!tinyMCE.isInstance(tinyMCE.instances[n]))
					continue;

				tinyMCE.selectedInstance =3D tinyMCE.instances[n];
				break;
			}

			// Remove element
			re =3D document.getElementById(editor_id + "_parent");
			ot =3D inst.oldTargetElement;
			tn =3D ot.nodeName.toLowerCase();

			if (tn =3D=3D "textarea" || tn =3D=3D "input") {
				re.parentNode.removeChild(re);
				ot.style.display =3D "inline";
				ot.value =3D h;
			} else {
				ot.innerHTML =3D h;
				ot.style.display =3D 'block';
				re.parentNode.insertBefore(ot, re);
				re.parentNode.removeChild(re);
			}
		}
	},

	triggerSave : function(skip_cleanup, skip_callback) {
		var inst, n;

		// Default to false
		if (typeof(skip_cleanup) =3D=3D "undefined")
			skip_cleanup =3D false;

		// Default to false
		if (typeof(skip_callback) =3D=3D "undefined")
			skip_callback =3D false;

		// Cleanup and set all form fields
		for (n in tinyMCE.instances) {
			inst =3D tinyMCE.instances[n];

			if (!tinyMCE.isInstance(inst))
				continue;

			inst.triggerSave(skip_cleanup, skip_callback);
		}
	},

	resetForm : function(form_index) {
		var i, inst, n, formObj =3D document.forms[form_index];

		for (n in tinyMCE.instances) {
			inst =3D tinyMCE.instances[n];

			if (!tinyMCE.isInstance(inst))
				continue;

			inst.switchSettings();

			for (i=3D0; i<formObj.elements.length; i++) {
				if (inst.formTargetElementId =3D=3D formObj.elements[i].name)
					inst.getBody().innerHTML =3D inst.startContent;
			}
		}
	},

	execInstanceCommand : function(editor_id, command, user_interface, =
value, focus) {
		var inst =3D tinyMCE.getInstanceById(editor_id), r;

		if (inst) {
			r =3D inst.selection.getRng();

			if (typeof(focus) =3D=3D "undefined")
				focus =3D true;

			// IE bug lost focus on images in absolute divs Bug #1534575
			if (focus && (!r || !r.item))
				inst.contentWindow.focus();

			// Reset design mode if lost
			inst.autoResetDesignMode();

			this.selectedElement =3D inst.getFocusElement();
			inst.select();
			tinyMCE.execCommand(command, user_interface, value);

			// Cancel event so it doesn't call onbeforeonunlaod
			if (tinyMCE.isIE && window.event !=3D null)
				tinyMCE.cancelEvent(window.event);
		}
	},

	execCommand : function(command, user_interface, value) {
		var inst =3D tinyMCE.selectedInstance, n, pe, te;

		// Default input
		user_interface =3D user_interface ? user_interface : false;
		value =3D value ? value : null;

		if (inst)
			inst.switchSettings();

		switch (command) {
			case "Undo":
				if (this.getParam('custom_undo_redo_global')) {
					if (this.undoIndex > 0) {
						tinyMCE.nextUndoRedoAction =3D 'Undo';
						inst =3D this.undoLevels[--this.undoIndex];
						inst.select();

						if (!tinyMCE.nextUndoRedoInstanceId)
							inst.execCommand('Undo');
					}
				} else
					inst.execCommand('Undo');
				return true;

			case "Redo":
				if (this.getParam('custom_undo_redo_global')) {
					if (this.undoIndex <=3D this.undoLevels.length - 1) {
						tinyMCE.nextUndoRedoAction =3D 'Redo';
						inst =3D this.undoLevels[this.undoIndex++];
						inst.select();

						if (!tinyMCE.nextUndoRedoInstanceId)
							inst.execCommand('Redo');
					}
				} else
					inst.execCommand('Redo');

				return true;

			case 'mceFocus':
				inst =3D tinyMCE.getInstanceById(value);

				if (inst)
					inst.getWin().focus();
			return;

			case "mceAddControl":
			case "mceAddEditor":
				tinyMCE.addMCEControl(tinyMCE._getElementById(value), value);
				return;

			case "mceAddFrameControl":
				tinyMCE.addMCEControl(tinyMCE._getElementById(value.element, =
value.document), value.element, value.document);
				return;

			case "mceRemoveControl":
			case "mceRemoveEditor":
				tinyMCE.removeMCEControl(value);
				return;

			case "mceToggleEditor":
				inst =3D tinyMCE.getInstanceById(value);

				if (inst) {
					pe =3D document.getElementById(inst.editorId + '_parent');
					te =3D inst.oldTargetElement;

					if (typeof(inst.enabled) =3D=3D 'undefined')
						inst.enabled =3D true;

					inst.enabled =3D !inst.enabled;

					if (!inst.enabled) {
						pe.style.display =3D 'none';

						if (te.nodeName =3D=3D 'TEXTAREA' || te.nodeName =3D=3D 'INPUT')
							te.value =3D inst.getHTML();
						else
							te.innerHTML =3D inst.getHTML();

						te.style.display =3D inst.oldTargetDisplay;
						tinyMCE.dispatchCallback(inst, 'hide_instance_callback', =
'hideInstance', inst);
					} else {
						pe.style.display =3D 'block';
						te.style.display =3D 'none';

						if (te.nodeName =3D=3D 'TEXTAREA' || te.nodeName =3D=3D 'INPUT')
							inst.setHTML(te.value);
						else
							inst.setHTML(te.innerHTML);

						inst.useCSS =3D false;
						tinyMCE.dispatchCallback(inst, 'show_instance_callback', =
'showInstance', inst);
					}
				} else
					tinyMCE.addMCEControl(tinyMCE._getElementById(value), value);

				return;

			case "mceResetDesignMode":
				// Resets the designmode state of the editors in Gecko
				if (tinyMCE.isGecko) {
					for (n in tinyMCE.instances) {
						if (!tinyMCE.isInstance(tinyMCE.instances[n]))
							continue;

						try {
							tinyMCE.instances[n].getDoc().designMode =3D "off";
							tinyMCE.instances[n].getDoc().designMode =3D "on";
							tinyMCE.instances[n].useCSS =3D false;
						} catch (e) {
							// Ignore any errors
						}
					}
				}

				return;
		}

		if (inst) {
			inst.execCommand(command, user_interface, value);
		} else if (tinyMCE.settings.focus_alert)
			alert(tinyMCELang.lang_focus_alert);
	},

	_createIFrame : function(replace_element, doc, win) {
		var iframe, id =3D replace_element.getAttribute("id");
		var aw, ah;

		if (typeof(doc) =3D=3D "undefined")
			doc =3D document;

		if (typeof(win) =3D=3D "undefined")
			win =3D window;

		iframe =3D doc.createElement("iframe");

		aw =3D "" + tinyMCE.settings.area_width;
		ah =3D "" + tinyMCE.settings.area_height;

		if (aw.indexOf('%') =3D=3D -1) {
			aw =3D parseInt(aw);
			aw =3D (isNaN(aw) || aw < 0) ? 300 : aw;
			aw =3D aw + "px";
		}

		if (ah.indexOf('%') =3D=3D -1) {
			ah =3D parseInt(ah);
			ah =3D (isNaN(ah) || ah < 0) ? 240 : ah;
			ah =3D ah + "px";
		}

		iframe.setAttribute("id", id);
		iframe.setAttribute("name", id);
		iframe.setAttribute("class", "mceEditorIframe");
		iframe.setAttribute("border", "0");
		iframe.setAttribute("frameBorder", "0");
		iframe.setAttribute("marginWidth", "0");
		iframe.setAttribute("marginHeight", "0");
		iframe.setAttribute("leftMargin", "0");
		iframe.setAttribute("topMargin", "0");
		iframe.setAttribute("width", aw);
		iframe.setAttribute("height", ah);
		iframe.setAttribute("allowtransparency", "true");
		iframe.className =3D 'mceEditorIframe';

		if (tinyMCE.settings.auto_resize)
			iframe.setAttribute("scrolling", "no");

		// Must have a src element in MSIE HTTPs breaks aswell as absoute URLs
		if (tinyMCE.isRealIE)
			iframe.setAttribute("src", this.settings.default_document);

		iframe.style.width =3D aw;
		iframe.style.height =3D ah;

		// Ugly hack for Gecko problem in strict mode
		if (tinyMCE.settings.strict_loading_mode)
			iframe.style.marginBottom =3D '-5px';

		// MSIE 5.0 issue
		if (tinyMCE.isRealIE)
			replace_element.outerHTML =3D iframe.outerHTML;
		else
			replace_element.parentNode.replaceChild(iframe, replace_element);

		if (tinyMCE.isRealIE)
			return win.frames[id];
		else
			return iframe;
	},

	setupContent : function(editor_id) {
		var inst =3D tinyMCE.instances[editor_id], i, doc =3D inst.getDoc(), =
head =3D doc.getElementsByTagName('head').item(0);
		var content =3D inst.startContent, contentElement, body;

		// HTML values get XML encoded in strict mode
		if (tinyMCE.settings.strict_loading_mode) {
			content =3D content.replace(/&lt;/g, '<');
			content =3D content.replace(/&gt;/g, '>');
			content =3D content.replace(/&quot;/g, '"');
			content =3D content.replace(/&amp;/g, '&');
		}

		tinyMCE.selectedInstance =3D inst;
		inst.switchSettings();

		// Not loaded correctly hit it again, Mozilla bug #997860
		if (!tinyMCE.isIE && tinyMCE.getParam("setupcontent_reload", false) && =
doc.title !=3D "blank_page") {
			// This part will remove the designMode status
			// Failes first time in Firefox 1.5b2 on Mac
			try {doc.location.href =3D tinyMCE.baseURL + "/blank.htm";} catch =
(ex) {}
			window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", =
1000);
			return;
		}

		// Wait for it to load
		if (!head || !doc.body) {
			window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", 10);
			return;
		}

		// Import theme specific content CSS the user specific
		tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/themes/" + =
inst.settings.theme + "/css/editor_content.css");
		tinyMCE.importCSS(inst.getDoc(), inst.settings.content_css);
		tinyMCE.dispatchCallback(inst, 'init_instance_callback', =
'initInstance', inst);

		// Setup keyboard shortcuts
		if (tinyMCE.getParam('custom_undo_redo_keyboard_shortcuts')) {
			inst.addShortcut('ctrl', 'z', 'lang_undo_desc', 'Undo');
			inst.addShortcut('ctrl', 'y', 'lang_redo_desc', 'Redo');
		}

		// BlockFormat shortcuts keys
		for (i=3D1; i<=3D6; i++)
			inst.addShortcut('ctrl', '' + i, '', 'FormatBlock', false, '<h' + i + =
'>');

		inst.addShortcut('ctrl', '7', '', 'FormatBlock', false, '<p>');
		inst.addShortcut('ctrl', '8', '', 'FormatBlock', false, '<div>');
		inst.addShortcut('ctrl', '9', '', 'FormatBlock', false, '<address>');

		// Add default shortcuts for gecko
		if (tinyMCE.isGecko) {
			inst.addShortcut('ctrl', 'b', 'lang_bold_desc', 'Bold');
			inst.addShortcut('ctrl', 'i', 'lang_italic_desc', 'Italic');
			inst.addShortcut('ctrl', 'u', 'lang_underline_desc', 'Underline');
		}

		// Setup span styles
		if (tinyMCE.getParam("convert_fonts_to_spans"))
			inst.getBody().setAttribute('id', 'mceSpanFonts');

		if (tinyMCE.settings.nowrap)
			doc.body.style.whiteSpace =3D "nowrap";

		doc.body.dir =3D this.settings.directionality;
		doc.editorId =3D editor_id;

		// Add on document element in Mozilla
		if (!tinyMCE.isIE)
			doc.documentElement.editorId =3D editor_id;

		inst.setBaseHREF(tinyMCE.settings.base_href);

		// Replace new line characters to BRs
		if (tinyMCE.settings.convert_newlines_to_brs) {
			content =3D tinyMCE.regexpReplace(content, "\r\n", "<br />", "gi");
			content =3D tinyMCE.regexpReplace(content, "\r", "<br />", "gi");
			content =3D tinyMCE.regexpReplace(content, "\n", "<br />", "gi");
		}

		// Open closed anchors
	//	content =3D content.replace(new RegExp('<a(.*?)/>', 'gi'), =
'<a$1></a>');

		// Call custom cleanup code
		content =3D tinyMCE.storeAwayURLs(content);
		content =3D tinyMCE._customCleanup(inst, "insert_to_editor", content);

		if (tinyMCE.isIE) {
			// Ugly!!!
			window.setInterval('try{tinyMCE.getCSSClasses(tinyMCE.instances["' + =
editor_id + '"].getDoc(), "' + editor_id + '");}catch(e){}', 500);

			if (tinyMCE.settings.force_br_newlines)
				doc.styleSheets[0].addRule("p", "margin: 0;");

			body =3D inst.getBody();
			body.editorId =3D editor_id;
		}

		content =3D tinyMCE.cleanupHTMLCode(content);

		// Fix for bug #958637
		if (!tinyMCE.isIE) {
			contentElement =3D inst.getDoc().createElement("body");
			doc =3D inst.getDoc();

			contentElement.innerHTML =3D content;

			if (tinyMCE.settings.cleanup_on_startup)
				tinyMCE.setInnerHTML(inst.getBody(), tinyMCE._cleanupHTML(inst, doc, =
this.settings, contentElement));
			else
				tinyMCE.setInnerHTML(inst.getBody(), content);

			tinyMCE.convertAllRelativeURLs(inst.getBody());
		} else {
			if (tinyMCE.settings.cleanup_on_startup) {
				tinyMCE._setHTML(inst.getDoc(), content);

				// Produces permission denied error in MSIE 5.5
				try {
					tinyMCE.setInnerHTML(inst.getBody(), tinyMCE._cleanupHTML(inst, =
inst.contentDocument, this.settings, inst.getBody()));
				} catch(e) {
					// Ignore
				}
			} else
				tinyMCE._setHTML(inst.getDoc(), content);
		}

		// Fix for bug #957681
		//inst.getDoc().designMode =3D inst.getDoc().designMode;

		tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings.visual, =
inst);
		tinyMCE.dispatchCallback(inst, 'setupcontent_callback', =
'setupContent', editor_id, inst.getBody(), inst.getDoc());

		// Re-add design mode on mozilla
		if (!tinyMCE.isIE)
			tinyMCE.addEventHandlers(inst);

		// Add blur handler
		if (tinyMCE.isIE) {
			tinyMCE.addEvent(inst.getBody(), "blur", =
TinyMCE_Engine.prototype._eventPatch);
			tinyMCE.addEvent(inst.getBody(), "beforedeactivate", =
TinyMCE_Engine.prototype._eventPatch); // Bug #1439953

			// Workaround for drag drop/copy paste base href bug
			if (!tinyMCE.isOpera) {
				tinyMCE.addEvent(doc.body, "mousemove", =
TinyMCE_Engine.prototype.onMouseMove);
				tinyMCE.addEvent(doc.body, "beforepaste", =
TinyMCE_Engine.prototype._eventPatch);
				tinyMCE.addEvent(doc.body, "drop", =
TinyMCE_Engine.prototype._eventPatch);
			}
		}

		// Trigger node change, this call locks buttons for tables and so =
forth
		inst.select();
		tinyMCE.selectedElement =3D inst.contentWindow.document.body;

		// Call custom DOM cleanup
		tinyMCE._customCleanup(inst, "insert_to_editor_dom", inst.getBody());
		tinyMCE._customCleanup(inst, "setup_content_dom", inst.getBody());
		tinyMCE._setEventsEnabled(inst.getBody(), false);
		tinyMCE.cleanupAnchors(inst.getDoc());

		if (tinyMCE.getParam("convert_fonts_to_spans"))
			tinyMCE.convertSpansToFonts(inst.getDoc());

		inst.startContent =3D tinyMCE.trim(inst.getBody().innerHTML);
		inst.undoRedo.add({ content : inst.startContent });

		// Cleanup any mess left from storyAwayURLs
		if (tinyMCE.isGecko) {
			// Remove mce_src from textnodes and comments
			tinyMCE.selectNodes(inst.getBody(), function(n) {
				if (n.nodeType =3D=3D 3 || n.nodeType =3D=3D 8)
					n.nodeValue =3D n.nodeValue.replace(new =
RegExp('\\s(mce_src|mce_href)=3D\"[^\"]*\"', 'gi'), "");

				return false;
			});
		}

		// Remove Gecko spellchecking
		if (tinyMCE.isGecko)
			inst.getBody().spellcheck =3D tinyMCE.getParam("gecko_spellcheck");

		// Cleanup any mess left from storyAwayURLs
		tinyMCE._removeInternal(inst.getBody());

		inst.select();
		tinyMCE.triggerNodeChange(false, true);
	},

	storeAwayURLs : function(s) {
		// Remove all mce_src, mce_href and replace them with new ones
		// s =3D s.replace(new RegExp('mce_src\\s*=3D\\s*\"[^ >\"]*\"', 'gi'), =
'');
		// s =3D s.replace(new RegExp('mce_href\\s*=3D\\s*\"[^ >\"]*\"', =
'gi'), '');

		if (!s.match(/(mce_src|mce_href)/gi, s)) {
			s =3D s.replace(new RegExp('src\\s*=3D\\s*\"([^ >\"]*)\"', 'gi'), =
'src=3D"$1" mce_src=3D"$1"');
			s =3D s.replace(new RegExp('href\\s*=3D\\s*\"([^ >\"]*)\"', 'gi'), =
'href=3D"$1" mce_href=3D"$1"');
		}

		return s;
	},

	_removeInternal : function(n) {
		if (tinyMCE.isGecko) {
			// Remove mce_src from textnodes and comments
			tinyMCE.selectNodes(n, function(n) {
				if (n.nodeType =3D=3D 3 || n.nodeType =3D=3D 8)
					n.nodeValue =3D n.nodeValue.replace(new =
RegExp('\\s(mce_src|mce_href)=3D\"[^\"]*\"', 'gi'), "");

				return false;
			});
		}
	},

	removeTinyMCEFormElements : function(form_obj) {
		var i, elementId;

		// Skip form element removal
		if (!tinyMCE.getParam('hide_selects_on_submit'))
			return;

		// Check if form is valid
		if (typeof(form_obj) =3D=3D "undefined" || form_obj =3D=3D null)
			return;

		// If not a form, find the form
		if (form_obj.nodeName !=3D "FORM") {
			if (form_obj.form)
				form_obj =3D form_obj.form;
			else
				form_obj =3D tinyMCE.getParentElement(form_obj, "form");
		}

		// Still nothing
		if (form_obj =3D=3D null)
			return;

		// Disable all UI form elements that TinyMCE created
		for (i=3D0; i<form_obj.elements.length; i++) {
			elementId =3D form_obj.elements[i].name ? form_obj.elements[i].name : =
form_obj.elements[i].id;

			if (elementId.indexOf('mce_editor_') =3D=3D 0)
				form_obj.elements[i].disabled =3D true;
		}
	},

	handleEvent : function(e) {
		var inst =3D tinyMCE.selectedInstance, i, elm, keys;

		// Remove odd, error
		if (typeof(tinyMCE) =3D=3D "undefined")
			return true;

		//tinyMCE.debug(e.type + " " + e.target.nodeName + " " + =
(e.relatedTarget ? e.relatedTarget.nodeName : ""));

		if (tinyMCE.executeCallback(tinyMCE.selectedInstance, =
'handle_event_callback', 'handleEvent', e))
			return false;

		switch (e.type) {
			case "beforedeactivate": // Was added due to bug #1439953
			case "blur":
				if (tinyMCE.selectedInstance)
					tinyMCE.selectedInstance.execCommand('mceEndTyping');

				tinyMCE.hideMenus();

				return;

			// Workaround for drag drop/copy paste base href bug
			case "drop":
			case "beforepaste":
				if (tinyMCE.selectedInstance)
					tinyMCE.selectedInstance.setBaseHREF(null);

				// Fixes odd MSIE bug where drag/droping elements in a iframe with =
height 100% breaks
				// This logic forces the width/height to be in pixels while the user =
is drag/dropping
				if (tinyMCE.isRealIE) {
					var ife =3D tinyMCE.selectedInstance.iframeElement;

					/*if (ife.style.width.indexOf('%') !=3D -1) {
						ife._oldWidth =3D ife.width.height;
						ife.style.width =3D ife.clientWidth;
					}*/

					if (ife.style.height.indexOf('%') !=3D -1) {
						ife._oldHeight =3D ife.style.height;
						ife.style.height =3D ife.clientHeight;
					}
				}

				=
window.setTimeout("tinyMCE.selectedInstance.setBaseHREF(tinyMCE.settings.=
base_href);tinyMCE._resetIframeHeight();", 1);
				return;

			case "submit":
				tinyMCE.formSubmit(tinyMCE.isMSIE ? window.event.srcElement : =
e.target);
				return;

			case "reset":
				var formObj =3D tinyMCE.isIE ? window.event.srcElement : e.target;

				for (i=3D0; i<document.forms.length; i++) {
					if (document.forms[i] =3D=3D formObj)
						window.setTimeout('tinyMCE.resetForm(' + i + ');', 10);
				}

				return;

			case "keypress":
				if (inst && inst.handleShortcut(e))
					return false;

				if (e.target.editorId) {
					tinyMCE.instances[e.target.editorId].select();
				} else {
					if (e.target.ownerDocument.editorId)
						tinyMCE.instances[e.target.ownerDocument.editorId].select();
				}

				if (tinyMCE.selectedInstance)
					tinyMCE.selectedInstance.switchSettings();

				// Insert P element
				if ((tinyMCE.isGecko || tinyMCE.isOpera || tinyMCE.isSafari) && =
tinyMCE.settings.force_p_newlines && e.keyCode =3D=3D 13 && !e.shiftKey) =
{
					// Insert P element instead of BR
					if (TinyMCE_ForceParagraphs._insertPara(tinyMCE.selectedInstance, =
e)) {
						// Cancel event
						tinyMCE.execCommand("mceAddUndoLevel");
						return tinyMCE.cancelEvent(e);
					}
				}

				// Handle backspace
				if ((tinyMCE.isGecko && !tinyMCE.isSafari) && =
tinyMCE.settings.force_p_newlines && (e.keyCode =3D=3D 8 || e.keyCode =
=3D=3D 46) && !e.shiftKey) {
					// Insert P element instead of BR
					if =
(TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance, =
e.type)) {
						// Cancel event
						tinyMCE.execCommand("mceAddUndoLevel");
						return tinyMCE.cancelEvent(e);
					}
				}

				// Return key pressed
				if (tinyMCE.isIE && tinyMCE.settings.force_br_newlines && e.keyCode =
=3D=3D 13) {
					if (e.target.editorId)
						tinyMCE.instances[e.target.editorId].select();

					if (tinyMCE.selectedInstance) {
						var sel =3D tinyMCE.selectedInstance.getDoc().selection;
						var rng =3D sel.createRange();

						if (tinyMCE.getParentElement(rng.parentElement(), "li") !=3D null)
							return false;

						// Cancel event
						e.returnValue =3D false;
						e.cancelBubble =3D true;

						// Insert BR element
						rng.pasteHTML("<br />");
						rng.collapse(false);
						rng.select();

						tinyMCE.execCommand("mceAddUndoLevel");
						tinyMCE.triggerNodeChange(false);
						return false;
					}
				}

				// Backspace or delete
				if (e.keyCode =3D=3D 8 || e.keyCode =3D=3D 46) {
					tinyMCE.selectedElement =3D e.target;
					tinyMCE.linkElement =3D tinyMCE.getParentElement(e.target, "a");
					tinyMCE.imgElement =3D tinyMCE.getParentElement(e.target, "img");
					tinyMCE.triggerNodeChange(false);
				}

				return false;

			case "keyup":
			case "keydown":
				tinyMCE.hideMenus();
				tinyMCE.hasMouseMoved =3D false;

				if (inst && inst.handleShortcut(e))
					return false;

				inst._fixRootBlocks();

				if (inst.settings.remove_trailing_nbsp)
					inst._fixTrailingNbsp();

				if (e.target.editorId)
					tinyMCE.instances[e.target.editorId].select();

				if (tinyMCE.selectedInstance)
					tinyMCE.selectedInstance.switchSettings();

				inst =3D tinyMCE.selectedInstance;

				// Handle backspace
				if (tinyMCE.isGecko && tinyMCE.settings.force_p_newlines && =
(e.keyCode =3D=3D 8 || e.keyCode =3D=3D 46) && !e.shiftKey) {
					// Insert P element instead of BR
					if =
(TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance, =
e.type)) {
						// Cancel event
						tinyMCE.execCommand("mceAddUndoLevel");
						e.preventDefault();
						return false;
					}
				}

				tinyMCE.selectedElement =3D null;
				tinyMCE.selectedNode =3D null;
				elm =3D tinyMCE.selectedInstance.getFocusElement();
				tinyMCE.linkElement =3D tinyMCE.getParentElement(elm, "a");
				tinyMCE.imgElement =3D tinyMCE.getParentElement(elm, "img");
				tinyMCE.selectedElement =3D elm;

				// Update visualaids on tabs
				if (tinyMCE.isGecko && e.type =3D=3D "keyup" && e.keyCode =3D=3D 9)
					tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(), true, =
tinyMCE.settings.visual, tinyMCE.selectedInstance);

				// Fix empty elements on return/enter, check where enter occured
				if (tinyMCE.isIE && e.type =3D=3D "keydown" && e.keyCode =3D=3D 13)
					tinyMCE.enterKeyElement =3D =
tinyMCE.selectedInstance.getFocusElement();

				// Fix empty elements on return/enter
				if (tinyMCE.isIE && e.type =3D=3D "keyup" && e.keyCode =3D=3D 13) {
					elm =3D tinyMCE.enterKeyElement;
					if (elm) {
						var re =3D new RegExp('^HR|IMG|BR$','g'); // Skip these
						var dre =3D new RegExp('^H[1-6]$','g'); // Add double on these

						if (!elm.hasChildNodes() && !re.test(elm.nodeName)) {
							if (dre.test(elm.nodeName))
								elm.innerHTML =3D "&nbsp;&nbsp;";
							else
								elm.innerHTML =3D "&nbsp;";
						}
					}
				}

				// Check if it's a position key
				keys =3D tinyMCE.posKeyCodes;
				var posKey =3D false;
				for (i=3D0; i<keys.length; i++) {
					if (keys[i] =3D=3D e.keyCode) {
						posKey =3D true;
						break;
					}
				}

				// MSIE custom key handling
				if (tinyMCE.isIE && tinyMCE.settings.custom_undo_redo) {
					keys =3D [8, 46]; // Backspace,Delete

					for (i=3D0; i<keys.length; i++) {
						if (keys[i] =3D=3D e.keyCode) {
							if (e.type =3D=3D "keyup")
								tinyMCE.triggerNodeChange(false);
						}
					}
				}

				// If Ctrl key
				if (e.keyCode =3D=3D 17)
					return true;

				// Handle Undo/Redo when typing content

				if (tinyMCE.isGecko) {
					// Start typing (not a position key or ctrl key, but ctrl+x and =
ctrl+p is ok)
					if (!posKey && e.type =3D=3D "keyup" && !e.ctrlKey || (e.ctrlKey && =
(e.keyCode =3D=3D 86 || e.keyCode =3D=3D 88)))
						tinyMCE.execCommand("mceStartTyping");
				} else {
					// IE seems to be working better with this setting
					if (!posKey && e.type =3D=3D "keyup")
						tinyMCE.execCommand("mceStartTyping");
				}

				// Store undo bookmark
				if (e.type =3D=3D "keydown" && (posKey || e.ctrlKey) && inst)
					inst.undoBookmark =3D inst.selection.getBookmark();

				// End typing (position key) or some Ctrl event
				if (e.type =3D=3D "keyup" && (posKey || e.ctrlKey))
					tinyMCE.execCommand("mceEndTyping");

				if (posKey && e.type =3D=3D "keyup")
					tinyMCE.triggerNodeChange(false);

				if (tinyMCE.isIE && e.ctrlKey)
					window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
			break;

			case "mousedown":
			case "mouseup":
			case "click":
			case "dblclick":
			case "focus":
				tinyMCE.hideMenus();

				if (tinyMCE.selectedInstance) {
					tinyMCE.selectedInstance.switchSettings();
					tinyMCE.selectedInstance.isFocused =3D true;
				}

				// Check instance event trigged on
				var targetBody =3D tinyMCE.getParentElement(e.target, "html");
				for (var instanceName in tinyMCE.instances) {
					if (!tinyMCE.isInstance(tinyMCE.instances[instanceName]))
						continue;

					inst =3D tinyMCE.instances[instanceName];

					// Reset design mode if lost (on everything just in case)
					inst.autoResetDesignMode();

					// Use HTML element since users might click outside of body element
					if (inst.getBody().parentNode =3D=3D targetBody) {
						inst.select();
						tinyMCE.selectedElement =3D e.target;
						tinyMCE.linkElement =3D =
tinyMCE.getParentElement(tinyMCE.selectedElement, "a");
						tinyMCE.imgElement =3D =
tinyMCE.getParentElement(tinyMCE.selectedElement, "img");
						break;
					}
				}

				// Add first bookmark location
				if (!tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark && =
(e.type =3D=3D "mouseup" || e.type =3D=3D "dblclick"))
					tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark =3D =
tinyMCE.selectedInstance.selection.getBookmark();

				// Reset selected node
				if (e.type !=3D "focus")
					tinyMCE.selectedNode =3D null;

				tinyMCE.triggerNodeChange(false);
				tinyMCE.execCommand("mceEndTyping");

				if (e.type =3D=3D "mouseup")
					tinyMCE.execCommand("mceAddUndoLevel");

				// Just in case
				if (!tinyMCE.selectedInstance && e.target.editorId)
					tinyMCE.instances[e.target.editorId].select();

				return false;
		}
	},

	getButtonHTML : function(id, lang, img, cmd, ui, val) {
		var h =3D '', m, x, io =3D '';

		cmd =3D 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + =
'\'';

		if (typeof(ui) !=3D "undefined" && ui !=3D null)
			cmd +=3D ',' + ui;

		if (typeof(val) !=3D "undefined" && val !=3D null)
			cmd +=3D ",'" + val + "'";

		cmd +=3D ');';

		// Patch for IE7 bug with hover out not restoring correctly
		if (tinyMCE.isRealIE)
			io =3D 'onmouseover=3D"tinyMCE.lastHover =3D this;"';

		// Use tilemaps when enabled and found and never in MSIE since it =
loads the tile each time from cache if cahce is disabled
		if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isIE || =
tinyMCE.isOpera) && (m =3D this.buttonMap[id]) !=3D null && =
(tinyMCE.getParam("language") =3D=3D "en" || img.indexOf('$lang') =3D=3D =
-1)) {
			// Tiled button
			x =3D 0 - (m * 20) =3D=3D 0 ? '0' : 0 - (m * 20);
			h +=3D '<a id=3D"{$editor_id}_' + id + '" href=3D"javascript:' + cmd =
+ '" onclick=3D"' + cmd + 'return false;" onmousedown=3D"return false;" =
' + io + ' class=3D"mceTiledButton mceButtonNormal" target=3D"_self">';
			h +=3D '<img src=3D"{$themeurl}/images/spacer.gif" =
style=3D"background-position: ' + x + 'px 0" alt=3D"{$'+lang+'}" =
title=3D"{$' + lang + '}" />';
			h +=3D '</a>';
		} else {
			// Normal button
			h +=3D '<a id=3D"{$editor_id}_' + id + '" href=3D"javascript:' + cmd =
+ '" onclick=3D"' + cmd + 'return false;" onmousedown=3D"return false;" =
' + io + ' class=3D"mceButtonNormal" target=3D"_self">';
			h +=3D '<img src=3D"' + img + '" alt=3D"{$'+lang+'}" title=3D"{$' + =
lang + '}" />';
			h +=3D '</a>';
		}

		return h;
	},

	getMenuButtonHTML : function(id, lang, img, mcmd, cmd, ui, val) {
		var h =3D '', m, x;

		mcmd =3D 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + mcmd + =
'\');';
		cmd =3D 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + =
'\'';

		if (typeof(ui) !=3D "undefined" && ui !=3D null)
			cmd +=3D ',' + ui;

		if (typeof(val) !=3D "undefined" && val !=3D null)
			cmd +=3D ",'" + val + "'";

		cmd +=3D ');';

		// Use tilemaps when enabled and found and never in MSIE since it =
loads the tile each time from cache if cahce is disabled
		if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isIE || =
tinyMCE.isOpera) && (m =3D tinyMCE.buttonMap[id]) !=3D null && =
(tinyMCE.getParam("language") =3D=3D "en" || img.indexOf('$lang') =3D=3D =
-1)) {
			x =3D 0 - (m * 20) =3D=3D 0 ? '0' : 0 - (m * 20);

			if (tinyMCE.isRealIE)
				h +=3D '<span id=3D"{$editor_id}_' + id + '" class=3D"mceMenuButton" =
onmouseover=3D"tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover =
=3D this;" onmouseout=3D"tinyMCE._menuButtonEvent(\'out\',this);">';
			else
				h +=3D '<span id=3D"{$editor_id}_' + id + '" =
class=3D"mceMenuButton">';

			h +=3D '<a href=3D"javascript:' + cmd + '" onclick=3D"' + cmd + =
'return false;" onmousedown=3D"return false;" class=3D"mceTiledButton =
mceMenuButtonNormal" target=3D"_self">';
			h +=3D '<img src=3D"{$themeurl}/images/spacer.gif" style=3D"width: =
20px; height: 20px; background-position: ' + x + 'px 0" title=3D"{$' + =
lang + '}" /></a>';
			h +=3D '<a href=3D"javascript:' + mcmd + '" onclick=3D"' + mcmd + =
'return false;" onmousedown=3D"return false;"><img =
src=3D"{$themeurl}/images/button_menu.gif" title=3D"{$' + lang + '}" =
class=3D"mceMenuButton" />';
			h +=3D '</a></span>';
		} else {
			if (tinyMCE.isRealIE)
				h +=3D '<span id=3D"{$editor_id}_' + id + '" dir=3D"ltr" =
class=3D"mceMenuButton" =
onmouseover=3D"tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover =
=3D this;" onmouseout=3D"tinyMCE._menuButtonEvent(\'out\',this);">';
			else
				h +=3D '<span id=3D"{$editor_id}_' + id + '" dir=3D"ltr" =
class=3D"mceMenuButton">';

			h +=3D '<a href=3D"javascript:' + cmd + '" onclick=3D"' + cmd + =
'return false;" onmousedown=3D"return false;" =
class=3D"mceMenuButtonNormal" target=3D"_self">';
			h +=3D '<img src=3D"' + img + '" title=3D"{$' + lang + '}" /></a>';
			h +=3D '<a href=3D"javascript:' + mcmd + '" onclick=3D"' + mcmd + =
'return false;" onmousedown=3D"return false;"><img =
src=3D"{$themeurl}/images/button_menu.gif" title=3D"{$' + lang + '}" =
class=3D"mceMenuButton" />';
			h +=3D '</a></span>';
		}

		return h;
	},

	_menuButtonEvent : function(e, o) {
		if (o.className =3D=3D 'mceMenuButtonFocus')
			return;

		if (e =3D=3D 'over')
			o.className =3D o.className + ' mceMenuHover';
		else
			o.className =3D o.className.replace(/\s.*$/, '');
	},

	addButtonMap : function(m) {
		var i, a =3D m.replace(/\s+/, '').split(',');

		for (i=3D0; i<a.length; i++)
			this.buttonMap[a[i]] =3D i;
	},

	formSubmit : function(f, p) {
		var n, inst, found =3D false;

		if (f.form)
			f =3D f.form;

		// Is it a form that has a TinyMCE instance
		if (tinyMCE.getParam('save_on_tinymce_forms')) {
			for (n in tinyMCE.instances) {
				inst =3D tinyMCE.instances[n];

				if (!tinyMCE.isInstance(inst))
					continue;

				if (inst.formElement) {
					if (f =3D=3D inst.formElement.form) {
						found =3D true;
						inst.isNotDirty =3D true;
					}
				}
			}
		} else
			found  =3D true;

		// Is valid
		if (found) {
			tinyMCE.removeTinyMCEFormElements(f);
			tinyMCE.triggerSave();
		}

		// Is it patched
		if (f.mceOldSubmit && p)
			f.mceOldSubmit();
	},

	submitPatch : function() {
		tinyMCE.formSubmit(this, true);
	},

	onLoad : function() {
		var r, i, c, mode, trigger, elements, element, settings, elementId, =
elm;
		var selector, deselector, elementRefAr, form;

		// Wait for everything to be loaded first
		if (tinyMCE.settings.strict_loading_mode && this.loadingIndex !=3D -1) =
{
			window.setTimeout('tinyMCE.onLoad();', 1);
			return;
		}

		if (tinyMCE.isRealIE && window.event.type =3D=3D "readystatechange" && =
document.readyState !=3D "complete")
			return true;

		if (tinyMCE.isLoaded)
			return true;

		tinyMCE.isLoaded =3D true;

		// IE produces JS error if TinyMCE is placed in a frame
		// It seems to have something to do with the selection not beeing
		// correctly initialized in IE so this hack solves the problem
		if (tinyMCE.isRealIE && document.body && window.location.href !=3D =
window.top.location.href) {
			r =3D document.body.createTextRange();
			r.collapse(true);
			r.select();
		}

		tinyMCE.dispatchCallback(null, 'onpageload', 'onPageLoad');

		for (c=3D0; c<tinyMCE.configs.length; c++) {
			tinyMCE.settings =3D tinyMCE.configs[c];

			selector =3D tinyMCE.getParam("editor_selector");
			deselector =3D tinyMCE.getParam("editor_deselector");
			elementRefAr =3D [];

			// Add submit triggers
			if (document.forms && tinyMCE.settings.add_form_submit_trigger && =
!tinyMCE.submitTriggers) {
				for (i=3D0; i<document.forms.length; i++) {
					form =3D document.forms[i];

					tinyMCE.addEvent(form, "submit", =
TinyMCE_Engine.prototype.handleEvent);
					tinyMCE.addEvent(form, "reset", =
TinyMCE_Engine.prototype.handleEvent);
					tinyMCE.submitTriggers =3D true; // Do it only once

					// Patch the form.submit function
					if (tinyMCE.settings.submit_patch) {
						try {
							form.mceOldSubmit =3D form.submit;
							form.submit =3D TinyMCE_Engine.prototype.submitPatch;
						} catch (e) {
							// Do nothing
						}
					}
				}
			}

			// Add editor instances based on mode
			mode =3D tinyMCE.settings.mode;
			switch (mode) {
				case "exact":
					elements =3D tinyMCE.getParam('elements', '', true, ',');

					for (i=3D0; i<elements.length; i++) {
						element =3D tinyMCE._getElementById(elements[i]);
						trigger =3D element ? =
element.getAttribute(tinyMCE.settings.textarea_trigger) : "";

						if (new RegExp('\\b' + deselector + =
'\\b').test(tinyMCE.getAttrib(element, "class")))
							continue;

						if (trigger =3D=3D "false")
							continue;

						if ((tinyMCE.settings.ask || tinyMCE.settings.convert_on_click) && =
element) {
							elementRefAr[elementRefAr.length] =3D element;
							continue;
						}

						if (element)
							tinyMCE.addMCEControl(element, elements[i]);
					}
				break;

				case "specific_textareas":
				case "textareas":
					elements =3D document.getElementsByTagName("textarea");

					for (i=3D0; i<elements.length; i++) {
						elm =3D elements.item(i);
						trigger =3D elm.getAttribute(tinyMCE.settings.textarea_trigger);

						if (selector !=3D=3D '' && !new RegExp('\\b' + selector + =
'\\b').test(tinyMCE.getAttrib(elm, "class")))
							continue;

						if (selector !=3D=3D '')
							trigger =3D selector !=3D=3D '' ? "true" : "";

						if (new RegExp('\\b' + deselector + =
'\\b').test(tinyMCE.getAttrib(elm, "class")))
							continue;

						if ((mode =3D=3D "specific_textareas" && trigger =3D=3D "true") || =
(mode =3D=3D "textareas" && trigger !=3D "false"))
							elementRefAr[elementRefAr.length] =3D elm;
					}
				break;
			}

			for (i=3D0; i<elementRefAr.length; i++) {
				element =3D elementRefAr[i];
				elementId =3D element.name ? element.name : element.id;

				if (tinyMCE.settings.ask || tinyMCE.settings.convert_on_click) {
					// Focus breaks in Mozilla
					if (tinyMCE.isGecko) {
						settings =3D tinyMCE.settings;

						tinyMCE.addEvent(element, "focus", function (e) =
{window.setTimeout(function() {TinyMCE_Engine.prototype.confirmAdd(e, =
settings);}, 10);});

						if (element.nodeName !=3D "TEXTAREA" && element.nodeName !=3D =
"INPUT")
							tinyMCE.addEvent(element, "click", function (e) =
{window.setTimeout(function() {TinyMCE_Engine.prototype.confirmAdd(e, =
settings);}, 10);});
						// tinyMCE.addEvent(element, "mouseover", function (e) =
{window.setTimeout(function() {TinyMCE_Engine.prototype.confirmAdd(e, =
settings);}, 10);});
					} else {
						settings =3D tinyMCE.settings;

						tinyMCE.addEvent(element, "focus", function () { =
TinyMCE_Engine.prototype.confirmAdd(null, settings); });
						tinyMCE.addEvent(element, "click", function () { =
TinyMCE_Engine.prototype.confirmAdd(null, settings); });
						// tinyMCE.addEvent(element, "mouseenter", function () { =
TinyMCE_Engine.prototype.confirmAdd(null, settings); });
					}
				} else
					tinyMCE.addMCEControl(element, elementId);
			}

			// Handle auto focus
			if (tinyMCE.settings.auto_focus) {
				window.setTimeout(function () {
					var inst =3D tinyMCE.getInstanceById(tinyMCE.settings.auto_focus);
					inst.selection.selectNode(inst.getBody(), true, true);
					inst.contentWindow.focus();
				}, 100);
			}

			tinyMCE.dispatchCallback(null, 'oninit', 'onInit');
		}
	},

	isInstance : function(o) {
		return o !=3D null && typeof(o) =3D=3D "object" && =
o.isTinyMCE_Control;
	},

	getParam : function(name, default_value, strip_whitespace, split_chr) {
		var i, outArray, value =3D (typeof(this.settings[name]) =3D=3D =
"undefined") ? default_value : this.settings[name];

		// Fix bool values
		if (value =3D=3D "true" || value =3D=3D "false")
			return (value =3D=3D "true");

		if (strip_whitespace)
			value =3D tinyMCE.regexpReplace(value, "[ \t\r\n]", "");

		if (typeof(split_chr) !=3D "undefined" && split_chr !=3D null) {
			value =3D value.split(split_chr);
			outArray =3D [];

			for (i=3D0; i<value.length; i++) {
				if (value[i] && value[i] !=3D=3D '')
					outArray[outArray.length] =3D value[i];
			}

			value =3D outArray;
		}

		return value;
	},

	getLang : function(name, default_value, parse_entities, va) {
		var v =3D (typeof(tinyMCELang[name]) =3D=3D "undefined") ? =
default_value : tinyMCELang[name], n;

		if (parse_entities)
			v =3D tinyMCE.entityDecode(v);

		if (va) {
			for (n in va)
				v =3D this.replaceVar(v, n, va[n]);
		}

		return v;
	},

	entityDecode : function(s) {
		var e =3D document.createElement("div");

		e.innerHTML =3D s;

		return !e.firstChild ? s : e.firstChild.nodeValue;
	},

	addToLang : function(prefix, ar) {
		var k;

		for (k in ar) {
			if (typeof(ar[k]) =3D=3D 'function')
				continue;

			tinyMCELang[(k.indexOf('lang_') =3D=3D -1 ? 'lang_' : '') + (prefix =
!=3D=3D '' ? (prefix + "_") : '') + k] =3D ar[k];
		}

		this.loadNextScript();
	},

	triggerNodeChange : function(focus, setup_content) {
		var elm, inst, editorId, undoIndex =3D -1, undoLevels =3D -1, doc, =
anySelection =3D false, st;

		if (tinyMCE.selectedInstance) {
			inst =3D tinyMCE.selectedInstance;
			elm =3D (typeof(setup_content) !=3D "undefined" && setup_content) ? =
tinyMCE.selectedElement : inst.getFocusElement();

/*			if (elm =3D=3D inst.lastTriggerEl)
				return;

			inst.lastTriggerEl =3D elm;*/

			editorId =3D inst.editorId;
			st =3D inst.selection.getSelectedText();

			if (tinyMCE.settings.auto_resize)
				inst.resizeToContent();

			if (setup_content && tinyMCE.isGecko && inst.isHidden())
				elm =3D inst.getBody();

			inst.switchSettings();

			if (tinyMCE.selectedElement)
				anySelection =3D (tinyMCE.selectedElement.nodeName.toLowerCase() =
=3D=3D "img") || (st && st.length > 0);

			if (tinyMCE.settings.custom_undo_redo) {
				undoIndex =3D inst.undoRedo.undoIndex;
				undoLevels =3D inst.undoRedo.undoLevels.length;
			}

			tinyMCE.dispatchCallback(inst, 'handle_node_change_callback', =
'handleNodeChange', editorId, elm, undoIndex, undoLevels, =
inst.visualAid, anySelection, setup_content);
		}

		if (this.selectedInstance && (typeof(focus) =3D=3D "undefined" || =
focus))
			this.selectedInstance.contentWindow.focus();
	},

	_customCleanup : function(inst, type, content) {
		var pl, po, i, customCleanup;

		// Call custom cleanup
		customCleanup =3D tinyMCE.settings.cleanup_callback;
		if (customCleanup !=3D '')
			content =3D tinyMCE.resolveDots(tinyMCE.settings.cleanup_callback, =
window)(type, content, inst);

		// Trigger theme cleanup
		po =3D tinyMCE.themes[tinyMCE.settings.theme];
		if (po && po.cleanup)
			content =3D po.cleanup(type, content, inst);

		// Trigger plugin cleanups
		pl =3D inst.plugins;
		for (i=3D0; i<pl.length; i++) {
			po =3D tinyMCE.plugins[pl[i]];

			if (po && po.cleanup)
				content =3D po.cleanup(type, content, inst);
		}

		return content;
	},

	setContent : function(h) {
		if (tinyMCE.selectedInstance) {
			tinyMCE.selectedInstance.execCommand('mceSetContent', false, h);
			tinyMCE.selectedInstance.repaint();
		}
	},

	importThemeLanguagePack : function(name) {
		if (typeof(name) =3D=3D "undefined")
			name =3D tinyMCE.settings.theme;

		tinyMCE.loadScript(tinyMCE.baseURL + '/themes/' + name + '/langs/' + =
tinyMCE.settings.language + '.js');
	},

	importPluginLanguagePack : function(name) {
		var b =3D tinyMCE.baseURL + '/plugins/' + name;

		if (this.plugins[name])
			b =3D this.plugins[name].baseURL;

		tinyMCE.loadScript(b + '/langs/' + tinyMCE.settings.language +  =
'.js');
	},

	applyTemplate : function(h, ag) {
		return h.replace(new RegExp('\\{\\$([a-z0-9_]+)\\}', 'gi'), =
function(m, s) {
			if (s.indexOf('lang_') =3D=3D 0 && tinyMCELang[s])
				return tinyMCELang[s];

			if (ag && ag[s])
				return ag[s];

			if (tinyMCE.settings[s])
				return tinyMCE.settings[s];

			if (m =3D=3D 'themeurl')
				return tinyMCE.themeURL;

			return m;
		});
	},

	replaceVar : function(h, r, v) {
		return h.replace(new RegExp('{\\\$' + r + '}', 'g'), v);
	},

	openWindow : function(template, args) {
		var html, width, height, x, y, resizable, scrollbars, url, name, win, =
modal, features;

		args =3D !args ? {} : args;

		args.mce_template_file =3D template.file;
		args.mce_width =3D template.width;
		args.mce_height =3D template.height;
		tinyMCE.windowArgs =3D args;

		html =3D template.html;
		if (!(width =3D parseInt(template.width)))
			width =3D 320;

		if (!(height =3D parseInt(template.height)))
			height =3D 200;

		// Add to height in M$ due to SP2 WHY DON'T YOU GUYS IMPLEMENT =
innerWidth of windows!!
		if (tinyMCE.isIE)
			height +=3D 40;
		else
			height +=3D 20;

		x =3D parseInt(screen.width / 2.0) - (width / 2.0);
		y =3D parseInt(screen.height / 2.0) - (height / 2.0);

		resizable =3D (args && args.resizable) ? args.resizable : "no";
		scrollbars =3D (args && args.scrollbars) ? args.scrollbars : "no";

		if (template.file.charAt(0) !=3D '/' && template.file.indexOf('://') =
=3D=3D -1)
			url =3D tinyMCE.baseURL + "/themes/" + tinyMCE.getParam("theme") + =
"/" + template.file;
		else
			url =3D template.file;

		// Replace all args as variables in URL
		for (name in args) {
			if (typeof(args[name]) =3D=3D 'function')
				continue;

			url =3D tinyMCE.replaceVar(url, name, escape(args[name]));
		}

		if (html) {
			html =3D tinyMCE.replaceVar(html, "css", this.settings.popups_css);
			html =3D tinyMCE.applyTemplate(html, args);

			win =3D window.open("", "mcePopup" + new Date().getTime(), "top=3D" + =
y + ",left=3D" + x + ",scrollbars=3D" + scrollbars + =
",dialog=3Dyes,minimizable=3D" + resizable + ",modal=3Dyes,width=3D" + =
width + ",height=3D" + height + ",resizable=3D" + resizable);
			if (win =3D=3D null) {
				alert(tinyMCELang.lang_popup_blocked);
				return;
			}

			win.document.write(html);
			win.document.close();
			win.resizeTo(width, height);
			win.focus();
		} else {
			if ((tinyMCE.isRealIE) && resizable !=3D 'yes' && =
tinyMCE.settings.dialog_type =3D=3D "modal") {
				height +=3D 10;

				features =3D "resizable:" + resizable + ";scroll:" + scrollbars + =
";status:yes;center:yes;help:no;dialogWidth:" + width + =
"px;dialogHeight:" + height + "px;";

				window.showModalDialog(url, window, features);
			} else {
				modal =3D (resizable =3D=3D "yes") ? "no" : "yes";

				if (tinyMCE.isGecko && tinyMCE.isMac)
					modal =3D "no";

				if (template.close_previous !=3D "no")
					try {tinyMCE.lastWindow.close();} catch (ex) {}

				win =3D window.open(url, "mcePopup" + new Date().getTime(), "top=3D" =
+ y + ",left=3D" + x + ",scrollbars=3D" + scrollbars + ",dialog=3D" + =
modal + ",minimizable=3D" + resizable + ",modal=3D" + modal + =
",width=3D" + width + ",height=3D" + height + ",resizable=3D" + =
resizable);
				if (win =3D=3D null) {
					alert(tinyMCELang.lang_popup_blocked);
					return;
				}

				if (template.close_previous !=3D "no")
					tinyMCE.lastWindow =3D win;

				try {
					win.resizeTo(width, height);
				} catch(e) {
					// Ignore
				}

				// Make it bigger if statusbar is forced
				if (tinyMCE.isGecko) {
					if (win.document.defaultView.statusbar.visible)
						win.resizeBy(0, tinyMCE.isMac ? 10 : 24);
				}

				win.focus();
			}
		}
	},

	closeWindow : function(win) {
		win.close();
	},

	getVisualAidClass : function(class_name, state) {
		var i, classNames, ar, className, aidClass =3D =
tinyMCE.settings.visual_table_class;

		if (typeof(state) =3D=3D "undefined")
			state =3D tinyMCE.settings.visual;

		// Split
		classNames =3D [];
		ar =3D class_name.split(' ');
		for (i=3D0; i<ar.length; i++) {
			if (ar[i] =3D=3D aidClass)
				ar[i] =3D "";

			if (ar[i] !=3D=3D '')
				classNames[classNames.length] =3D ar[i];
		}

		if (state)
			classNames[classNames.length] =3D aidClass;

		// Glue
		className =3D "";
		for (i=3D0; i<classNames.length; i++) {
			if (i > 0)
				className +=3D " ";

			className +=3D classNames[i];
		}

		return className;
	},

	handleVisualAid : function(el, deep, state, inst, skip_dispatch) {
		var i, x, y, tableElement, anchorName, oldW, oldH, bo, cn;

		if (!el)
			return;

		if (!skip_dispatch)
			tinyMCE.dispatchCallback(inst, 'handle_visual_aid_callback', =
'handleVisualAid', el, deep, state, inst);

		tableElement =3D null;

		switch (el.nodeName) {
			case "TABLE":
				oldW =3D el.style.width;
				oldH =3D el.style.height;
				bo =3D tinyMCE.getAttrib(el, "border");

				bo =3D bo =3D=3D '' || bo =3D=3D "0" ? true : false;

				tinyMCE.setAttrib(el, "class", =
tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el, "class"), state && bo));

				el.style.width =3D oldW;
				el.style.height =3D oldH;

				for (y=3D0; y<el.rows.length; y++) {
					for (x=3D0; x<el.rows[y].cells.length; x++) {
						cn =3D =
tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el.rows[y].cells[x], =
"class"), state && bo);
						tinyMCE.setAttrib(el.rows[y].cells[x], "class", cn);
					}
				}

				break;

			case "A":
				anchorName =3D tinyMCE.getAttrib(el, "name");

				if (anchorName !=3D=3D '' && state) {
					el.title =3D anchorName;
					tinyMCE.addCSSClass(el, 'mceItemAnchor');
				} else if (anchorName !=3D=3D '' && !state)
					el.className =3D '';

				break;
		}

		if (deep && el.hasChildNodes()) {
			for (i=3D0; i<el.childNodes.length; i++)
				tinyMCE.handleVisualAid(el.childNodes[i], deep, state, inst, true);
		}
	},

	fixGeckoBaseHREFBug : function(m, e, h) {
		var xsrc, xhref;

		if (tinyMCE.isGecko) {
			if (m =3D=3D 1) {
				h =3D h.replace(/\ssrc=3D/gi, " mce_tsrc=3D");
				h =3D h.replace(/\shref=3D/gi, " mce_thref=3D");

				return h;
			} else {
				// Why bother if there is no src or href broken
				if (!new RegExp('(src|href)=3D', 'g').test(h))
					return h;

				// Restore src and href that gets messed up by Gecko
				tinyMCE.selectElements(e, =
'A,IMG,SELECT,AREA,IFRAME,BASE,INPUT,SCRIPT,EMBED,OBJECT,LINK', function =
(n) {
					xsrc =3D tinyMCE.getAttrib(n, "mce_tsrc");
					xhref =3D tinyMCE.getAttrib(n, "mce_thref");

					if (xsrc !=3D=3D '') {
						try {
							n.src =3D =
tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, xsrc);
						} catch (e) {
							// Ignore, Firefox cast exception if local file wasn't found
						}

						n.removeAttribute("mce_tsrc");
					}

					if (xhref !=3D=3D '') {
						try {
							n.href =3D =
tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, xhref);
						} catch (e) {
							// Ignore, Firefox cast exception if local file wasn't found
						}

						n.removeAttribute("mce_thref");
					}

					return false;
				});

				// Restore text/comment nodes
				tinyMCE.selectNodes(e, function(n) {
					if (n.nodeType =3D=3D 3 || n.nodeType =3D=3D 8) {
						n.nodeValue =3D n.nodeValue.replace(/\smce_tsrc=3D/gi, " src=3D");
						n.nodeValue =3D n.nodeValue.replace(/\smce_thref=3D/gi, " =
href=3D");
					}

					return false;
				});
			}
		}

		return h;
	},

	_setHTML : function(doc, html_content) {
		var i, html, paras, node;

		// Force closed anchors open
		//html_content =3D html_content.replace(new RegExp('<a(.*?)/>', 'gi'), =
'<a$1></a>');

		html_content =3D tinyMCE.cleanupHTMLCode(html_content);

		// Try innerHTML if it fails use pasteHTML in MSIE
		try {
			tinyMCE.setInnerHTML(doc.body, html_content);
		} catch (e) {
			if (this.isMSIE)
				doc.body.createTextRange().pasteHTML(html_content);
		}

		// Content duplication bug fix
		if (tinyMCE.isIE && tinyMCE.settings.fix_content_duplication) {
			// Remove P elements in P elements
			paras =3D doc.getElementsByTagName("P");
			for (i=3D0; i<paras.length; i++) {
				node =3D paras[i];

				while ((node =3D node.parentNode) !=3D null) {
					if (node.nodeName =3D=3D "P")
						node.outerHTML =3D node.innerHTML;
				}
			}

			// Content duplication bug fix (Seems to be word crap)
			html =3D doc.body.innerHTML;

			// Always set the htmlText output
			tinyMCE.setInnerHTML(doc.body, html);
		}

		tinyMCE.cleanupAnchors(doc);

		if (tinyMCE.getParam("convert_fonts_to_spans"))
			tinyMCE.convertSpansToFonts(doc);
	},

	getEditorId : function(form_element) {
		var inst =3D this.getInstanceById(form_element);

		if (!inst)
			return null;

		return inst.editorId;
	},

	getInstanceById : function(editor_id) {
		var inst =3D this.instances[editor_id], n;

		if (!inst) {
			for (n in tinyMCE.instances) {
				inst =3D tinyMCE.instances[n];

				if (!tinyMCE.isInstance(inst))
					continue;

				if (inst.formTargetElementId =3D=3D editor_id)
					return inst;
			}
		} else
			return inst;

		return null;
	},

	queryInstanceCommandValue : function(editor_id, command) {
		var inst =3D tinyMCE.getInstanceById(editor_id);

		if (inst)
			return inst.queryCommandValue(command);

		return false;
	},

	queryInstanceCommandState : function(editor_id, command) {
		var inst =3D tinyMCE.getInstanceById(editor_id);

		if (inst)
			return inst.queryCommandState(command);

		return null;
	},

	setWindowArg : function(n, v) {
		this.windowArgs[n] =3D v;
	},

	getWindowArg : function(n, d) {
		return (typeof(this.windowArgs[n]) =3D=3D "undefined") ? d : =
this.windowArgs[n];
	},

	getCSSClasses : function(editor_id, doc) {
		var i, c, x, rule, styles, rules, csses, selectorText, inst =3D =
tinyMCE.getInstanceById(editor_id);
		var cssClass, addClass, p;

		if (!inst)
			inst =3D tinyMCE.selectedInstance;

		if (!inst)
			return [];

		if (!doc)
			doc =3D inst.getDoc();

		// Is cached, use that
		if (inst && inst.cssClasses.length > 0)
			return inst.cssClasses;

		if (!doc)
			return;

		styles =3D doc.styleSheets;

		if (styles && styles.length > 0) {
			for (x=3D0; x<styles.length; x++) {
				csses =3D null;

				try {
					csses =3D tinyMCE.isIE ? doc.styleSheets(x).rules : =
styles[x].cssRules;
				} catch(e) {
					// Just ignore any errors I know this is ugly!!
				}
=09
				if (!csses)
					return [];

				for (i=3D0; i<csses.length; i++) {
					selectorText =3D csses[i].selectorText;

					// Can be multiple rules per selector
					if (selectorText) {
						rules =3D selectorText.split(',');
						for (c=3D0; c<rules.length; c++) {
							rule =3D rules[c];

							// Strip spaces between selectors
							while (rule.indexOf(' ') =3D=3D 0)
								rule =3D rule.substring(1);

							// Invalid rule
							if (rule.indexOf(' ') !=3D -1 || rule.indexOf(':') !=3D -1 || =
rule.indexOf('mceItem') !=3D -1)
								continue;

							if (rule.indexOf(tinyMCE.settings.visual_table_class) !=3D -1 || =
rule.indexOf('mceEditable') !=3D -1 || rule.indexOf('mceNonEditable') =
!=3D -1)
								continue;

							// Is class rule
							if (rule.indexOf('.') !=3D -1) {
								cssClass =3D rule.substring(rule.indexOf('.') + 1);
								addClass =3D true;

								for (p=3D0; p<inst.cssClasses.length && addClass; p++) {
									if (inst.cssClasses[p] =3D=3D cssClass)
										addClass =3D false;
								}

								if (addClass)
									inst.cssClasses[inst.cssClasses.length] =3D cssClass;
							}
						}
					}
				}
			}
		}

		return inst.cssClasses;
	},

	regexpReplace : function(in_str, reg_exp, replace_str, opts) {
		var re;

		if (in_str =3D=3D null)
			return in_str;

		if (typeof(opts) =3D=3D "undefined")
			opts =3D 'g';

		re =3D new RegExp(reg_exp, opts);

		return in_str.replace(re, replace_str);
	},

	trim : function(s) {
		return s.replace(/^\s*|\s*$/g, "");
	},

	cleanupEventStr : function(s) {
		s =3D "" + s;
		s =3D s.replace('function anonymous()\n{\n', '');
		s =3D s.replace('\n}', '');
		s =3D s.replace(/^return true;/gi, ''); // Remove event blocker

		return s;
	},

	getControlHTML : function(c) {
		var i, l, n, o, v, rtl =3D tinyMCE.getLang('lang_dir') =3D=3D 'rtl';

		l =3D tinyMCE.plugins;
		for (n in l) {
			o =3D l[n];

			if (o.getControlHTML && (v =3D o.getControlHTML(c)) !=3D=3D '') {
				if (rtl)
					return '<span dir=3D"rtl">' + tinyMCE.replaceVar(v, "pluginurl", =
o.baseURL) + '</span>';

				return tinyMCE.replaceVar(v, "pluginurl", o.baseURL);
			}
		}

		o =3D tinyMCE.themes[tinyMCE.settings.theme];
		if (o.getControlHTML && (v =3D o.getControlHTML(c)) !=3D=3D '') {
			if (rtl)
				return '<span dir=3D"rtl">' + v + '</span>';

			return v;
		}

		return '';
	},

	evalFunc : function(f, idx, a, o) {
		o =3D !o ? window : o;
		f =3D typeof(f) =3D=3D 'function' ? f : o[f];

		return f.apply(o, Array.prototype.slice.call(a, idx));
	},

	dispatchCallback : function(i, p, n) {
		return this.callFunc(i, p, n, 0, this.dispatchCallback.arguments);
	},

	executeCallback : function(i, p, n) {
		return this.callFunc(i, p, n, 1, this.executeCallback.arguments);
	},

	execCommandCallback : function(i, p, n) {
		return this.callFunc(i, p, n, 2, this.execCommandCallback.arguments);
	},

	callFunc : function(ins, p, n, m, a) {
		var l, i, on, o, s, v;

		s =3D m =3D=3D 2;

		l =3D tinyMCE.getParam(p, '');

		if (l !=3D=3D '' && (v =3D tinyMCE.evalFunc(l, 3, a)) =3D=3D s && m > =
0)
			return true;

		if (ins !=3D null) {
			for (i=3D0, l =3D ins.plugins; i<l.length; i++) {
				o =3D tinyMCE.plugins[l[i]];

				if (o[n] && (v =3D tinyMCE.evalFunc(n, 3, a, o)) =3D=3D s && m > 0)
					return true;
			}
		}

		l =3D tinyMCE.themes;
		for (on in l) {
			o =3D l[on];

			if (o[n] && (v =3D tinyMCE.evalFunc(n, 3, a, o)) =3D=3D s && m > 0)
				return true;
		}

		return false;
	},

	resolveDots : function(s, o) {
		var i;

		if (typeof(s) =3D=3D 'string') {
			for (i=3D0, s=3Ds.split('.'); i<s.length; i++)
				o =3D o[s[i]];
		} else
			o =3D s;

		return o;
	},

	xmlEncode : function(s) {
		return s ? ('' + s).replace(this.xmlEncodeRe, function (c, b) {
			switch (c) {
				case '&':
					return '&amp;';

				case '"':
					return '&quot;';

				case '<':
					return '&lt;';

				case '>':
					return '&gt;';
			}

			return c;
		}) : s;
	},

	add : function(c, m) {
		var n;

		for (n in m) {
			if (m.hasOwnProperty(n))
				c.prototype[n] =3D m[n];
		}
	},

	extend : function(p, np) {
		var o =3D {}, n;

		o.parent =3D p;

		for (n in p) {
			if (p.hasOwnProperty(n))
				o[n] =3D p[n];
		}

		for (n in np) {
			if (np.hasOwnProperty(n))
				o[n] =3D np[n];
		}

		return o;
	},

	hideMenus : function() {
		var e =3D tinyMCE.lastSelectedMenuBtn;

		if (tinyMCE.lastMenu) {
			tinyMCE.lastMenu.hide();
			tinyMCE.lastMenu =3D null;
		}

		if (e) {
			tinyMCE.switchClass(e, tinyMCE.lastMenuBtnClass);
			tinyMCE.lastSelectedMenuBtn =3D null;
		}
	}

	};

// Global instances
var TinyMCE =3D TinyMCE_Engine; // Compatiblity with gzip compressors
var tinyMCE =3D new TinyMCE_Engine();
var tinyMCELang =3D {};

/* file:jscripts/tiny_mce/classes/TinyMCE_Control.class.js */

function TinyMCE_Control(settings) {
	var t, i, tos, fu, p, x, fn, fu, pn, s =3D settings;

	this.undoRedoLevel =3D true;
	this.isTinyMCE_Control =3D true;

	// Default settings
	this.enabled =3D true;
	this.settings =3D s;
	this.settings.theme =3D tinyMCE.getParam("theme", "default");
	this.settings.width =3D tinyMCE.getParam("width", -1);
	this.settings.height =3D tinyMCE.getParam("height", -1);
	this.selection =3D new TinyMCE_Selection(this);
	this.undoRedo =3D new TinyMCE_UndoRedo(this);
	this.cleanup =3D new TinyMCE_Cleanup();
	this.shortcuts =3D [];
	this.hasMouseMoved =3D false;
	this.foreColor =3D this.backColor =3D "#999999";
	this.data =3D {};
	this.cssClasses =3D [];

	this.cleanup.init({
		valid_elements : s.valid_elements,
		extended_valid_elements : s.extended_valid_elements,
		valid_child_elements : s.valid_child_elements,
		entities : s.entities,
		entity_encoding : s.entity_encoding,
		debug : s.cleanup_debug,
		indent : s.apply_source_formatting,
		invalid_elements : s.invalid_elements,
		verify_html : s.verify_html,
		fix_content_duplication : s.fix_content_duplication,
		convert_fonts_to_spans : s.convert_fonts_to_spans
	});

	// Wrap old theme
	t =3D this.settings.theme;
	if (!tinyMCE.hasTheme(t)) {
		fn =3D tinyMCE.callbacks;
		tos =3D {};

		for (i=3D0; i<fn.length; i++) {
			if ((fu =3D window['TinyMCE_' + t + "_" + fn[i]]))
				tos[fn[i]] =3D fu;
		}

		tinyMCE.addTheme(t, tos);
	}

	// Wrap old plugins
	this.plugins =3D [];
	p =3D tinyMCE.getParam('plugins', '', true, ',');
	if (p.length > 0) {
		for (i=3D0; i<p.length; i++) {
			pn =3D p[i];

			if (pn.charAt(0) =3D=3D '-')
				pn =3D pn.substring(1);

			if (!tinyMCE.hasPlugin(pn)) {
				fn =3D tinyMCE.callbacks;
				tos =3D {};

				for (x=3D0; x<fn.length; x++) {
					if ((fu =3D window['TinyMCE_' + pn + "_" + fn[x]]))
						tos[fn[x]] =3D fu;
				}

				tinyMCE.addPlugin(pn, tos);
			}

			this.plugins[this.plugins.length] =3D pn;=20
		}
	}
};

TinyMCE_Control.prototype =3D {
	selection : null,

	settings : null,

	cleanup : null,

	getData : function(na) {
		var o =3D this.data[na];

		if (!o)
			o =3D this.data[na] =3D {};

		return o;
	},

	hasPlugin : function(n) {
		var i;

		for (i=3D0; i<this.plugins.length; i++) {
			if (this.plugins[i] =3D=3D n)
				return true;
		}

		return false;
	},

	addPlugin : function(n, p) {
		if (!this.hasPlugin(n)) {
			tinyMCE.addPlugin(n, p);
			this.plugins[this.plugins.length] =3D n;
		}
	},

	repaint : function() {
		var s, b, ex;

		if (tinyMCE.isRealIE)
			return;

		try {
			s =3D this.selection;
			b =3D s.getBookmark(true);
			this.getBody().style.display =3D 'none';
			this.getDoc().execCommand('selectall', false, null);
			this.getSel().collapseToStart();
			this.getBody().style.display =3D 'block';
			s.moveToBookmark(b);
		} catch (ex) {
			// Ignore
		}
	},

	switchSettings : function() {
		if (tinyMCE.configs.length > 1 && tinyMCE.currentConfig !=3D =
this.settings.index) {
			tinyMCE.settings =3D this.settings;
			tinyMCE.currentConfig =3D this.settings.index;
		}
	},

	select : function() {
		var oldInst =3D tinyMCE.selectedInstance;

		if (oldInst !=3D this) {
			if (oldInst)
				oldInst.execCommand('mceEndTyping');

			tinyMCE.dispatchCallback(this, 'select_instance_callback', =
'selectInstance', this, oldInst);
			tinyMCE.selectedInstance =3D this;
		}
	},

	getBody : function() {
		return this.contentBody ? this.contentBody : this.getDoc().body;
	},

	getDoc : function() {
//		return this.contentDocument ? this.contentDocument : =
this.contentWindow.document; // Removed due to IE 5.5 ?
		return this.contentWindow.document;
	},

	getWin : function() {
		return this.contentWindow;
	},

	getContainerWin : function() {
		return this.containerWindow ? this.containerWindow : window;
	},

	getViewPort : function() {
		return tinyMCE.getViewPort(this.getWin());
	},

	getParentNode : function(n, f) {
		return tinyMCE.getParentNode(n, f, this.getBody());
	},

	getParentElement : function(n, na, f) {
		return tinyMCE.getParentElement(n, na, f, this.getBody());
	},

	getParentBlockElement : function(n) {
		return tinyMCE.getParentBlockElement(n, this.getBody());
	},

	resizeToContent : function() {
		var d =3D this.getDoc(), b =3D d.body, de =3D d.documentElement;

		this.iframeElement.style.height =3D (tinyMCE.isRealIE) ? =
b.scrollHeight : de.offsetHeight + 'px';
	},

	addShortcut : function(m, k, d, cmd, ui, va) {
		var n =3D typeof(k) =3D=3D "number", ie =3D tinyMCE.isIE, c, sc, i, =
scl =3D this.shortcuts;

		if (!tinyMCE.getParam('custom_shortcuts'))
			return false;

		m =3D m.toLowerCase();
		k =3D ie && !n ? k.toUpperCase() : k;
		c =3D n ? null : k.charCodeAt(0);
		d =3D d && d.indexOf('lang_') =3D=3D 0 ? tinyMCE.getLang(d) : d;

		sc =3D {
			alt : m.indexOf('alt') !=3D -1,
			ctrl : m.indexOf('ctrl') !=3D -1,
			shift : m.indexOf('shift') !=3D -1,
			charCode : c,
			keyCode : n ? k : (ie ? c : null),
			desc : d,
			cmd : cmd,
			ui : ui,
			val : va
		};

		for (i=3D0; i<scl.length; i++) {
			if (sc.alt =3D=3D scl[i].alt && sc.ctrl =3D=3D scl[i].ctrl && =
sc.shift =3D=3D scl[i].shift
				&& sc.charCode =3D=3D scl[i].charCode && sc.keyCode =3D=3D =
scl[i].keyCode) {
				return false;
			}
		}

		scl[scl.length] =3D sc;

		return true;
	},

	handleShortcut : function(e) {
		var i, s, o;

		// Normal key press, then ignore it
		if (!e.altKey && !e.ctrlKey)
			return false;

		s =3D this.shortcuts;

		for (i=3D0; i<s.length; i++) {
			o =3D s[i];

			if (o.alt =3D=3D e.altKey && o.ctrl =3D=3D e.ctrlKey && (o.keyCode =
=3D=3D e.keyCode || o.charCode =3D=3D e.charCode)) {
				if (o.cmd && (e.type =3D=3D "keydown" || (e.type =3D=3D "keypress" =
&& !tinyMCE.isOpera)))
					tinyMCE.execCommand(o.cmd, o.ui, o.val);

				tinyMCE.cancelEvent(e);
				return true;
			}
		}

		return false;
	},

	autoResetDesignMode : function() {
		// Add fix for tab/style.display none/block problems in Gecko
		if (!tinyMCE.isIE && this.isHidden() && =
tinyMCE.getParam('auto_reset_designmode'))
			eval('try { this.getDoc().designMode =3D "On"; this.useCSS =3D false; =
} catch(e) {}');
	},

	isHidden : function() {
		var s;

		if (tinyMCE.isIE)
			return false;

		s =3D this.getSel();

		// Weird, wheres that cursor selection?
		return (!s || !s.rangeCount || s.rangeCount =3D=3D 0);
	},

	isDirty : function() {
		// Is content modified and not in a submit procedure
		return tinyMCE.trim(this.startContent) !=3D =
tinyMCE.trim(this.getBody().innerHTML) && !this.isNotDirty;
	},

	_mergeElements : function(scmd, pa, ch, override) {
		var st, stc, className, n;

		if (scmd =3D=3D "removeformat") {
			pa.className =3D "";
			pa.style.cssText =3D "";
			ch.className =3D "";
			ch.style.cssText =3D "";
			return;
		}

		st =3D tinyMCE.parseStyle(tinyMCE.getAttrib(pa, "style"));
		stc =3D tinyMCE.parseStyle(tinyMCE.getAttrib(ch, "style"));
		className =3D tinyMCE.getAttrib(pa, "class");

		// Removed class adding due to bug #1478272
		className =3D tinyMCE.getAttrib(ch, "class");

		if (override) {
			for (n in st) {
				if (typeof(st[n]) =3D=3D 'function')
					continue;

				stc[n] =3D st[n];
			}
		} else {
			for (n in stc) {
				if (typeof(stc[n]) =3D=3D 'function')
					continue;

				st[n] =3D stc[n];
			}
		}

		tinyMCE.setAttrib(pa, "style", tinyMCE.serializeStyle(st));
		tinyMCE.setAttrib(pa, "class", tinyMCE.trim(className));
		ch.className =3D "";
		ch.style.cssText =3D "";
		ch.removeAttribute("class");
		ch.removeAttribute("style");
	},

	_fixRootBlocks : function() {
		var rb, b, ne, be, nx, bm;

		rb =3D tinyMCE.getParam('forced_root_block');
		if (!rb)
			return;

		b =3D this.getBody();
		ne =3D b.firstChild;

		while (ne) {
			nx =3D ne.nextSibling;

			// If text node or inline element wrap it in a block element
			if ((ne.nodeType =3D=3D 3 && ne.nodeValue.replace(/\s+/g, '') !=3D =
'') || (ne.nodeType =3D=3D 1 && !tinyMCE.blockRegExp.test(ne.nodeName))) =
{
				if (!bm)
					bm =3D this.selection.getBookmark();

				if (!be) {
					be =3D this.getDoc().createElement(rb);
					be.appendChild(ne.cloneNode(true));
					b.replaceChild(be, ne);
				} else {
					be.appendChild(ne.cloneNode(true));
					b.removeChild(ne);
				}
			} else
				be =3D null;

			ne =3D nx;
		}

		if (bm)
			this.selection.moveToBookmark(bm);
	},

	_fixTrailingNbsp : function() {
		var s =3D this.selection, e =3D s.getFocusElement(), bm, v;

		if (e && tinyMCE.blockRegExp.test(e.nodeName) && e.firstChild) {
			v =3D e.firstChild.nodeValue;

			if (v && v.length > 1 && /(^\u00a0|\u00a0$)/.test(v)) {
				e.firstChild.nodeValue =3D v.replace(/(^\u00a0|\u00a0$)/, '');
				s.selectNode(e.firstChild, true, false, false); // Select and =
collapse
			}
		}
	},

	_setUseCSS : function(b) {
		var d =3D this.getDoc();

		try {d.execCommand("useCSS", false, !b);} catch (ex) {}
		try {d.execCommand("styleWithCSS", false, b);} catch (ex) {}

		if (!tinyMCE.getParam("table_inline_editing"))
			try {d.execCommand('enableInlineTableEditing', false, "false");} =
catch (ex) {}

		if (!tinyMCE.getParam("object_resizing"))
			try {d.execCommand('enableObjectResizing', false, "false");} catch =
(ex) {}
	},

	execCommand : function(command, user_interface, value) {
		var i, x, z, align, img, div, doc =3D this.getDoc(), win =3D =
this.getWin(), focusElm =3D this.getFocusElement();

		// Is not a undo specific command
		if (!new =
RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mce=
AddUndoLevel', 'gi').test(command))
			this.undoBookmark =3D null;

		// Mozilla issue
		if (!tinyMCE.isIE && !this.useCSS) {
			this._setUseCSS(false);
			this.useCSS =3D true;
		}

		//debug("command: " + command + ", user_interface: " + user_interface =
+ ", value: " + value);
		this.contentDocument =3D doc; // <-- Strange, unless this is applied =
Mozilla 1.3 breaks

		// Don't dispatch key commands
		if (!/mceStartTyping|mceEndTyping/.test(command)) {
			if (tinyMCE.execCommandCallback(this, 'execcommand_callback', =
'execCommand', this.editorId, this.getBody(), command, user_interface, =
value))
				return;
		}

		// Fix align on images
		if (focusElm && focusElm.nodeName =3D=3D "IMG") {
			align =3D focusElm.getAttribute('align');
			img =3D command =3D=3D "JustifyCenter" ? focusElm.cloneNode(false) : =
focusElm;

			switch (command) {
				case "JustifyLeft":
					if (align =3D=3D 'left') {
						img.setAttribute('align', ''); // Needed for IE
						img.removeAttribute('align');
					} else
						img.setAttribute('align', 'left');

					// Remove the div
					div =3D focusElm.parentNode;
					if (div && div.nodeName =3D=3D "DIV" && div.childNodes.length =
=3D=3D 1 && div.parentNode)
						div.parentNode.replaceChild(img, div);

					this.selection.selectNode(img);
					this.repaint();
					tinyMCE.triggerNodeChange();
					return;

				case "JustifyCenter":
					img.setAttribute('align', ''); // Needed for IE
					img.removeAttribute('align');

					// Is centered
					div =3D tinyMCE.getParentElement(focusElm, "div");
					if (div && div.style.textAlign =3D=3D "center") {
						// Remove div
						if (div.nodeName =3D=3D "DIV" && div.childNodes.length =3D=3D 1 && =
div.parentNode)
							div.parentNode.replaceChild(img, div);
					} else {
						// Add div
						div =3D this.getDoc().createElement("div");
						div.style.textAlign =3D 'center';
						div.appendChild(img);
						focusElm.parentNode.replaceChild(div, focusElm);
					}

					this.selection.selectNode(img);
					this.repaint();
					tinyMCE.triggerNodeChange();
					return;

				case "JustifyRight":
					if (align =3D=3D 'right') {
						img.setAttribute('align', ''); // Needed for IE
						img.removeAttribute('align');
					} else
						img.setAttribute('align', 'right');

					// Remove the div
					div =3D focusElm.parentNode;
					if (div && div.nodeName =3D=3D "DIV" && div.childNodes.length =
=3D=3D 1 && div.parentNode)
						div.parentNode.replaceChild(img, div);

					this.selection.selectNode(img);
					this.repaint();
					tinyMCE.triggerNodeChange();
					return;
			}
		}

		if (tinyMCE.settings.force_br_newlines) {
			var alignValue =3D "";

			if (doc.selection.type !=3D "Control") {
				switch (command) {
						case "JustifyLeft":
							alignValue =3D "left";
							break;

						case "JustifyCenter":
							alignValue =3D "center";
							break;

						case "JustifyFull":
							alignValue =3D "justify";
							break;

						case "JustifyRight":
							alignValue =3D "right";
							break;
				}

				if (alignValue !=3D=3D '') {
					var rng =3D doc.selection.createRange();

					if ((divElm =3D tinyMCE.getParentElement(rng.parentElement(), =
"div")) !=3D null)
						divElm.setAttribute("align", alignValue);
					else if (rng.pasteHTML && rng.htmlText.length > 0)
						rng.pasteHTML('<div align=3D"' + alignValue + '">' + rng.htmlText =
+ "</div>");

					tinyMCE.triggerNodeChange();
					return;
				}
			}
		}

		switch (command) {
			case "mceRepaint":
				this.repaint();
				return true;

			case "JustifyLeft":
			case "JustifyCenter":
			case "JustifyFull":
			case "JustifyRight":
				var el =3D tinyMCE.getParentNode(focusElm, function(n) {return =
tinyMCE.getAttrib(n, 'align');});

				if (el) {
					el.setAttribute('align', ''); // Needed for IE
					el.removeAttribute('align');
				} else
					this.getDoc().execCommand(command, user_interface, value);

				tinyMCE.triggerNodeChange();

				return true;

			case "unlink":
				// Unlink if caret is inside link
				if (tinyMCE.isGecko && this.getSel().isCollapsed) {
					focusElm =3D tinyMCE.getParentElement(focusElm, 'A');

					if (focusElm)
						this.selection.selectNode(focusElm, false);
				}

				this.getDoc().execCommand(command, user_interface, value);

				tinyMCE.isGecko && this.getSel().collapseToEnd();

				tinyMCE.triggerNodeChange();

				return true;

			case "InsertUnorderedList":
			case "InsertOrderedList":
				this.getDoc().execCommand(command, user_interface, value);
				tinyMCE.triggerNodeChange();
				break;

			case "Strikethrough":
				this.getDoc().execCommand(command, user_interface, value);
				tinyMCE.triggerNodeChange();
				break;

			case "mceSelectNode":
				this.selection.selectNode(value);
				tinyMCE.triggerNodeChange();
				tinyMCE.selectedNode =3D value;
				break;

			case "FormatBlock":
				if (value =3D=3D null || value =3D=3D '') {
					var elm =3D tinyMCE.getParentElement(this.getFocusElement(), =
"p,div,h1,h2,h3,h4,h5,h6,pre,address,blockquote,dt,dl,dd,samp");

					if (elm)
						this.execCommand("mceRemoveNode", false, elm);
				} else {
					if (!this.cleanup.isValid(value))
						return true;

					if (tinyMCE.isGecko && new =
RegExp('<(div|blockquote|code|dt|dd|dl|samp)>', 'gi').test(value))
						value =3D value.replace(/[^a-z]/gi, '');

					if (tinyMCE.isIE && new RegExp('blockquote|code|samp', =
'gi').test(value)) {
						var b =3D this.selection.getBookmark();
						this.getDoc().execCommand("FormatBlock", false, '<p>');
						=
tinyMCE.renameElement(tinyMCE.getParentBlockElement(this.getFocusElement(=
)), value);
						this.selection.moveToBookmark(b);
					} else
						this.getDoc().execCommand("FormatBlock", false, value);
				}

				tinyMCE.triggerNodeChange();

				break;

			case "mceRemoveNode":
				if (!value)
					value =3D tinyMCE.getParentElement(this.getFocusElement());

				if (tinyMCE.isIE) {
					value.outerHTML =3D value.innerHTML;
				} else {
					var rng =3D value.ownerDocument.createRange();
					rng.setStartBefore(value);
					rng.setEndAfter(value);
					rng.deleteContents();
					rng.insertNode(rng.createContextualFragment(value.innerHTML));
				}

				tinyMCE.triggerNodeChange();

				break;

			case "mceSelectNodeDepth":
				var parentNode =3D this.getFocusElement();
				for (i=3D0; parentNode; i++) {
					if (parentNode.nodeName.toLowerCase() =3D=3D "body")
						break;

					if (parentNode.nodeName.toLowerCase() =3D=3D "#text") {
						i--;
						parentNode =3D parentNode.parentNode;
						continue;
					}

					if (i =3D=3D value) {
						this.selection.selectNode(parentNode, false);
						tinyMCE.triggerNodeChange();
						tinyMCE.selectedNode =3D parentNode;
						return;
					}

					parentNode =3D parentNode.parentNode;
				}

				break;

			case "mceSetStyleInfo":
			case "SetStyleInfo":
				var rng =3D this.getRng();
				var sel =3D this.getSel();
				var scmd =3D value.command;
				var sname =3D value.name;
				var svalue =3D value.value =3D=3D null ? '' : value.value;
				//var svalue =3D value['value'] =3D=3D null ? '' : value['value'];
				var wrapper =3D value.wrapper ? value.wrapper : "span";
				var parentElm =3D null;
				var invalidRe =3D new RegExp("^BODY|HTML$", "g");
				var invalidParentsRe =3D =
tinyMCE.settings.merge_styles_invalid_parents !=3D=3D '' ? new =
RegExp(tinyMCE.settings.merge_styles_invalid_parents, "gi") : null;

				// Whole element selected check
				if (tinyMCE.isIE) {
					// Control range
					if (rng.item)
						parentElm =3D rng.item(0);
					else {
						var pelm =3D rng.parentElement();
						var prng =3D doc.selection.createRange();
						prng.moveToElementText(pelm);

						if (rng.htmlText =3D=3D prng.htmlText || rng.boundingWidth =3D=3D =
0) {
							if (invalidParentsRe =3D=3D null || =
!invalidParentsRe.test(pelm.nodeName))
								parentElm =3D pelm;
						}
					}
				} else {
					var felm =3D this.getFocusElement();
					if (sel.isCollapsed || (new RegExp('td|tr|tbody|table|img', =
'gi').test(felm.nodeName) && sel.anchorNode =3D=3D felm.parentNode))
						parentElm =3D felm;
				}

				// Whole element selected
				if (parentElm && !invalidRe.test(parentElm.nodeName)) {
					if (scmd =3D=3D "setstyle")
						tinyMCE.setStyleAttrib(parentElm, sname, svalue);

					if (scmd =3D=3D "setattrib")
						tinyMCE.setAttrib(parentElm, sname, svalue);

					if (scmd =3D=3D "removeformat") {
						parentElm.style.cssText =3D '';
						tinyMCE.setAttrib(parentElm, 'class', '');
					}

					// Remove style/attribs from all children
					var ch =3D tinyMCE.getNodeTree(parentElm, [], 1);
					for (z=3D0; z<ch.length; z++) {
						if (ch[z] =3D=3D parentElm)
							continue;

						if (scmd =3D=3D "setstyle")
							tinyMCE.setStyleAttrib(ch[z], sname, '');

						if (scmd =3D=3D "setattrib")
							tinyMCE.setAttrib(ch[z], sname, '');

						if (scmd =3D=3D "removeformat") {
							ch[z].style.cssText =3D '';
							tinyMCE.setAttrib(ch[z], 'class', '');
						}
					}
				} else {
					this._setUseCSS(false); // Bug in FF when running in fullscreen
					doc.execCommand("FontName", false, "#mce_temp_font#");
					var elementArray =3D =
tinyMCE.getElementsByAttributeValue(this.getBody(), "font", "face", =
"#mce_temp_font#");

					// Change them all
					for (x=3D0; x<elementArray.length; x++) {
						elm =3D elementArray[x];
						if (elm) {
							var spanElm =3D doc.createElement(wrapper);

							if (scmd =3D=3D "setstyle")
								tinyMCE.setStyleAttrib(spanElm, sname, svalue);

							if (scmd =3D=3D "setattrib")
								tinyMCE.setAttrib(spanElm, sname, svalue);

							if (scmd =3D=3D "removeformat") {
								spanElm.style.cssText =3D '';
								tinyMCE.setAttrib(spanElm, 'class', '');
							}

							if (elm.hasChildNodes()) {
								for (i=3D0; i<elm.childNodes.length; i++)
									spanElm.appendChild(elm.childNodes[i].cloneNode(true));
							}

							spanElm.setAttribute("mce_new", "true");
							elm.parentNode.replaceChild(spanElm, elm);

							// Remove style/attribs from all children
							var ch =3D tinyMCE.getNodeTree(spanElm, [], 1);
							for (z=3D0; z<ch.length; z++) {
								if (ch[z] =3D=3D spanElm)
									continue;

								if (scmd =3D=3D "setstyle")
									tinyMCE.setStyleAttrib(ch[z], sname, '');

								if (scmd =3D=3D "setattrib")
									tinyMCE.setAttrib(ch[z], sname, '');

								if (scmd =3D=3D "removeformat") {
									ch[z].style.cssText =3D '';
									tinyMCE.setAttrib(ch[z], 'class', '');
								}
							}
						}
					}
				}

				// Cleaup wrappers
				var nodes =3D doc.getElementsByTagName(wrapper);
				for (i=3Dnodes.length-1; i>=3D0; i--) {
					var elm =3D nodes[i];
					var isNew =3D tinyMCE.getAttrib(elm, "mce_new") =3D=3D "true";

					elm.removeAttribute("mce_new");

					// Is only child a element
					if (elm.childNodes && elm.childNodes.length =3D=3D 1 && =
elm.childNodes[0].nodeType =3D=3D 1) {
						//tinyMCE.debug("merge1" + isNew);
						this._mergeElements(scmd, elm, elm.childNodes[0], isNew);
						continue;
					}

					// Is I the only child
					if (elm.parentNode.childNodes.length =3D=3D 1 && =
!invalidRe.test(elm.nodeName) && =
!invalidRe.test(elm.parentNode.nodeName)) {
						//tinyMCE.debug("merge2" + isNew + "," + elm.nodeName + "," + =
elm.parentNode.nodeName);
						if (invalidParentsRe =3D=3D null || =
!invalidParentsRe.test(elm.parentNode.nodeName))
							this._mergeElements(scmd, elm.parentNode, elm, false);
					}
				}

				// Remove empty wrappers
				var nodes =3D doc.getElementsByTagName(wrapper);
				for (i=3Dnodes.length-1; i>=3D0; i--) {
					var elm =3D nodes[i], isEmpty =3D true;

					// Check if it has any attribs
					var tmp =3D doc.createElement("body");
					tmp.appendChild(elm.cloneNode(false));

					// Is empty span, remove it
					tmp.innerHTML =3D tmp.innerHTML.replace(new =
RegExp('style=3D""|class=3D""', 'gi'), '');
					//tinyMCE.debug(tmp.innerHTML);
					if (new RegExp('<span>', 'gi').test(tmp.innerHTML)) {
						for (x=3D0; x<elm.childNodes.length; x++) {
							if (elm.parentNode !=3D null)
								elm.parentNode.insertBefore(elm.childNodes[x].cloneNode(true), =
elm);
						}

						elm.parentNode.removeChild(elm);
					}
				}

				// Re add the visual aids
				if (scmd =3D=3D "removeformat")
					tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, =
this);

				tinyMCE.triggerNodeChange();

				break;

			case "FontName":
				if (value =3D=3D null) {
					var s =3D this.getSel();

					// Find font and select it
					if (tinyMCE.isGecko && s.isCollapsed) {
						var f =3D tinyMCE.getParentElement(this.getFocusElement(), =
"font");

						if (f !=3D null)
							this.selection.selectNode(f, false);
					}

					// Remove format
					this.getDoc().execCommand("RemoveFormat", false, null);

					// Collapse range if font was found
					if (f !=3D null && tinyMCE.isGecko) {
						var r =3D this.getRng().cloneRange();
						r.collapse(true);
						s.removeAllRanges();
						s.addRange(r);
					}
				} else
					this.getDoc().execCommand('FontName', false, value);

				if (tinyMCE.isGecko)
					window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);

				return;

			case "FontSize":
				this.getDoc().execCommand('FontSize', false, value);

				if (tinyMCE.isGecko)
					window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);

				return;

			case "forecolor":
				value =3D value =3D=3D null ? this.foreColor : value;
				value =3D tinyMCE.trim(value);
				value =3D value.charAt(0) !=3D '#' ? (isNaN('0x' + value) ? value : =
'#' + value) : value;

				this.foreColor =3D value;
				this.getDoc().execCommand('forecolor', false, value);
				break;

			case "HiliteColor":
				value =3D value =3D=3D null ? this.backColor : value;
				value =3D tinyMCE.trim(value);
				value =3D value.charAt(0) !=3D '#' ? (isNaN('0x' + value) ? value : =
'#' + value) : value;
				this.backColor =3D value;

				if (tinyMCE.isGecko || tinyMCE.isOpera) {
					this._setUseCSS(true);
					this.getDoc().execCommand('hilitecolor', false, value);
					this._setUseCSS(false);
				} else
					this.getDoc().execCommand('BackColor', false, value);
				break;

			case "Cut":
			case "Copy":
			case "Paste":
				var cmdFailed =3D false;

				// Try executing command
				eval('try {this.getDoc().execCommand(command, user_interface, =
value);} catch (e) {cmdFailed =3D true;}');

				if (tinyMCE.isOpera && cmdFailed)
					alert('Currently not supported by your browser, use keyboard =
shortcuts instead.');

				// Alert error in gecko if command failed
				if (tinyMCE.isGecko && cmdFailed) {
					// Confirm more info
					if =
(confirm(tinyMCE.entityDecode(tinyMCE.getLang('lang_clipboard_msg'))))
						=
window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html',=
 'mceExternal');

					return;
				} else
					tinyMCE.triggerNodeChange();
			break;

			case "mceSetContent":
				if (!value)
					value =3D "";

				// Call custom cleanup code
				value =3D tinyMCE.storeAwayURLs(value);
				value =3D tinyMCE._customCleanup(this, "insert_to_editor", value);

				if (this.getBody().nodeName =3D=3D 'BODY')
					tinyMCE._setHTML(doc, value);
				else
					this.getBody().innerHTML =3D value;

				tinyMCE.setInnerHTML(this.getBody(), tinyMCE._cleanupHTML(this, doc, =
this.settings, this.getBody(), false, false, false, true));
				tinyMCE.convertAllRelativeURLs(this.getBody());

				// Cleanup any mess left from storyAwayURLs
				tinyMCE._removeInternal(this.getBody());

				// When editing always use fonts internaly
				if (tinyMCE.getParam("convert_fonts_to_spans"))
					tinyMCE.convertSpansToFonts(doc);

				tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
				tinyMCE._setEventsEnabled(this.getBody(), false);
				this._addBogusBR();

				return true;

			case "mceCleanup":
				var b =3D this.selection.getBookmark();
				tinyMCE._setHTML(this.contentDocument, this.getBody().innerHTML);
				tinyMCE.setInnerHTML(this.getBody(), tinyMCE._cleanupHTML(this, =
this.contentDocument, this.settings, this.getBody(), this.visualAid));
				tinyMCE.convertAllRelativeURLs(doc.body);

				// When editing always use fonts internaly
				if (tinyMCE.getParam("convert_fonts_to_spans"))
					tinyMCE.convertSpansToFonts(doc);

				tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
				tinyMCE._setEventsEnabled(this.getBody(), false);
				this._addBogusBR();
				this.repaint();
				this.selection.moveToBookmark(b);
				tinyMCE.triggerNodeChange();
			break;

			case "mceReplaceContent":
				// Force empty string
				if (!value)
					value =3D '';

				this.getWin().focus();

				var selectedText =3D "";

				if (tinyMCE.isIE) {
					var rng =3D doc.selection.createRange();
					selectedText =3D rng.text;
				} else
					selectedText =3D this.getSel().toString();

				if (selectedText.length > 0) {
					value =3D tinyMCE.replaceVar(value, "selection", selectedText);
					tinyMCE.execCommand('mceInsertContent', false, value);
				}

				this._addBogusBR();
				tinyMCE.triggerNodeChange();
			break;

			case "mceSetAttribute":
				if (typeof(value) =3D=3D 'object') {
					var targetElms =3D (typeof(value.targets) =3D=3D "undefined") ? =
"p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address" : value.targets;
					var targetNode =3D tinyMCE.getParentElement(this.getFocusElement(), =
targetElms);

					if (targetNode) {
						targetNode.setAttribute(value.name, value.value);
						tinyMCE.triggerNodeChange();
					}
				}
			break;

			case "mceSetCSSClass":
				this.execCommand("mceSetStyleInfo", false, {command : "setattrib", =
name : "class", value : value});
			break;

			case "mceInsertRawHTML":
				var key =3D 'tiny_mce_marker';

				this.execCommand('mceBeginUndoLevel');

				// Insert marker key
				this.execCommand('mceInsertContent', false, key);

				// Store away scroll pos
				var scrollX =3D this.getBody().scrollLeft + =
this.getDoc().documentElement.scrollLeft;
				var scrollY =3D this.getBody().scrollTop + =
this.getDoc().documentElement.scrollTop;

				// Find marker and replace with RAW HTML
				var html =3D this.getBody().innerHTML;
				if ((pos =3D html.indexOf(key)) !=3D -1)
					tinyMCE.setInnerHTML(this.getBody(), html.substring(0, pos) + value =
+ html.substring(pos + key.length));

				// Restore scoll pos
				this.contentWindow.scrollTo(scrollX, scrollY);

				this.execCommand('mceEndUndoLevel');

				break;

			case "mceInsertContent":
				// Force empty string
				if (!value)
					value =3D '';

				var insertHTMLFailed =3D false;

				// Removed since it produced problems in IE
				// this.getWin().focus();

				if (tinyMCE.isGecko || tinyMCE.isOpera) {
					try {
						// Is plain text or HTML, &amp;, &nbsp; etc will be encoded wrong =
in FF
						if (value.indexOf('<') =3D=3D -1 && =
!value.match(/(&#38;|&#160;|&#60;|&#62;)/g)) {
							var r =3D this.getRng();
							var n =3D =
this.getDoc().createTextNode(tinyMCE.entityDecode(value));
							var s =3D this.getSel();
							var r2 =3D r.cloneRange();

							// Insert text at cursor position
							s.removeAllRanges();
							r.deleteContents();
							r.insertNode(n);

							// Move the cursor to the end of text
							r2.selectNode(n);
							r2.collapse(false);
							s.removeAllRanges();
							s.addRange(r2);
						} else {
							value =3D tinyMCE.fixGeckoBaseHREFBug(1, this.getDoc(), value);
							this.getDoc().execCommand('inserthtml', false, value);
							tinyMCE.fixGeckoBaseHREFBug(2, this.getDoc(), value);
						}
					} catch (ex) {
						insertHTMLFailed =3D true;
					}

					if (!insertHTMLFailed) {
						tinyMCE.triggerNodeChange();
						return;
					}
				}

				if (!tinyMCE.isIE) {
					var isHTML =3D value.indexOf('<') !=3D -1;
					var sel =3D this.getSel();
					var rng =3D this.getRng();

					if (isHTML) {
						if (tinyMCE.isSafari) {
							var tmpRng =3D this.getDoc().createRange();

							tmpRng.setStart(this.getBody(), 0);
							tmpRng.setEnd(this.getBody(), 0);

							value =3D tmpRng.createContextualFragment(value);
						} else
							value =3D rng.createContextualFragment(value);
					} else {
						// Setup text node
						value =3D doc.createTextNode(tinyMCE.entityDecode(value));
					}

					// Insert plain text in Safari
					if (tinyMCE.isSafari && !isHTML) {
						this.execCommand('InsertText', false, value.nodeValue);
						tinyMCE.triggerNodeChange();
						return true;
					} else if (tinyMCE.isSafari && isHTML) {
						rng.deleteContents();
						rng.insertNode(value);
						tinyMCE.triggerNodeChange();
						return true;
					}

					rng.deleteContents();

					// If target node is text do special treatment, (Mozilla 1.3 fix)
					if (rng.startContainer.nodeType =3D=3D 3) {
						var node =3D rng.startContainer.splitText(rng.startOffset);
						node.parentNode.insertBefore(value, node);=20
					} else
						rng.insertNode(value);

					if (!isHTML) {
						// Removes weird selection trails
						sel.selectAllChildren(doc.body);
						sel.removeAllRanges();

						// Move cursor to end of content
						var rng =3D doc.createRange();

						rng.selectNode(value);
						rng.collapse(false);

						sel.addRange(rng);
					} else
						rng.collapse(false);

					tinyMCE.fixGeckoBaseHREFBug(2, this.getDoc(), value);
				} else {
					var rng =3D doc.selection.createRange(), tmpRng =3D null;
					var c =3D value.indexOf('<!--') !=3D -1;

					// Fix comment bug, add tag before comments
					if (c)
						value =3D tinyMCE.uniqueTag + value;

					//	tmpRng =3D rng.duplicate(); // Store away range (Fixes Undo =
bookmark bug in IE)

					if (rng.item)
						rng.item(0).outerHTML =3D value;
					else
						rng.pasteHTML(value);

					//if (tmpRng)
					//	tmpRng.select(); // Restore range  (Fixes Undo bookmark bug in =
IE)

					// Remove unique tag
					if (c) {
						var e =3D this.getDoc().getElementById('mceTMPElement');
						e.parentNode.removeChild(e);
					}
				}

				tinyMCE.execCommand("mceAddUndoLevel");
				tinyMCE.triggerNodeChange();
			break;

			case "mceStartTyping":
				if (tinyMCE.settings.custom_undo_redo && =
this.undoRedo.typingUndoIndex =3D=3D -1) {
					this.undoRedo.typingUndoIndex =3D this.undoRedo.undoIndex;
					tinyMCE.typingUndoIndex =3D tinyMCE.undoIndex;
					this.execCommand('mceAddUndoLevel');
				}
				break;

			case "mceEndTyping":
				if (tinyMCE.settings.custom_undo_redo && =
this.undoRedo.typingUndoIndex !=3D -1) {
					this.execCommand('mceAddUndoLevel');
					this.undoRedo.typingUndoIndex =3D -1;
				}

				tinyMCE.typingUndoIndex =3D -1;
				break;

			case "mceBeginUndoLevel":
				this.undoRedoLevel =3D false;
				break;

			case "mceEndUndoLevel":
				this.undoRedoLevel =3D true;
				this.execCommand('mceAddUndoLevel');
				break;

			case "mceAddUndoLevel":
				if (tinyMCE.settings.custom_undo_redo && this.undoRedoLevel) {
					if (this.undoRedo.add())
						tinyMCE.triggerNodeChange(false);
				}
				break;

			case "Undo":
				if (tinyMCE.settings.custom_undo_redo) {
					tinyMCE.execCommand("mceEndTyping");
					this.undoRedo.undo();
					tinyMCE.triggerNodeChange();
				} else
					this.getDoc().execCommand(command, user_interface, value);
				break;

			case "Redo":
				if (tinyMCE.settings.custom_undo_redo) {
					tinyMCE.execCommand("mceEndTyping");
					this.undoRedo.redo();
					tinyMCE.triggerNodeChange();
				} else
					this.getDoc().execCommand(command, user_interface, value);
				break;

			case "mceToggleVisualAid":
				this.visualAid =3D !this.visualAid;
				tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
				tinyMCE.triggerNodeChange();
				break;

			case "Indent":
				this.getDoc().execCommand(command, user_interface, value);
				tinyMCE.triggerNodeChange();

				if (tinyMCE.isIE) {
					var n =3D tinyMCE.getParentElement(this.getFocusElement(), =
"blockquote");
					do {
						if (n && n.nodeName =3D=3D "BLOCKQUOTE") {
							n.removeAttribute("dir");
							n.removeAttribute("style");
						}
					} while (n !=3D null && (n =3D n.parentNode) !=3D null);
				}
				break;

			case "RemoveFormat":
			case "removeformat":
				var text =3D this.selection.getSelectedText();

				if (tinyMCE.isOpera) {
					this.getDoc().execCommand("RemoveFormat", false, null);
					return;
				}

				if (tinyMCE.isIE) {
					try {
						var rng =3D doc.selection.createRange();
						rng.execCommand("RemoveFormat", false, null);
					} catch (e) {
						// Do nothing
					}

					this.execCommand("mceSetStyleInfo", false, {command : =
"removeformat"});
				} else {
					this.getDoc().execCommand(command, user_interface, value);

					this.execCommand("mceSetStyleInfo", false, {command : =
"removeformat"});
				}

				// Remove class
				if (text.length =3D=3D 0)
					this.execCommand("mceSetCSSClass", false, "");

				tinyMCE.triggerNodeChange();
				break;

			default:
				this.getDoc().execCommand(command, user_interface, value);

				if (tinyMCE.isGecko)
					window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
				else
					tinyMCE.triggerNodeChange();
		}

		// Add undo level after modification
		if (command !=3D "mceAddUndoLevel" && command !=3D "Undo" && command =
!=3D "Redo" && command !=3D "mceStartTyping" && command !=3D =
"mceEndTyping")
			tinyMCE.execCommand("mceAddUndoLevel");
	},

	queryCommandValue : function(c) {
		try {
			return this.getDoc().queryCommandValue(c);
		} catch (e) {
			return null;
		}
	},

	queryCommandState : function(c) {
		return this.getDoc().queryCommandState(c);
	},

	_addBogusBR : function() {
		var b =3D this.getBody();

		if (tinyMCE.isGecko && !b.hasChildNodes())
			b.innerHTML =3D '<br _moz_editor_bogus_node=3D"TRUE" />';
	},

	_onAdd : function(replace_element, form_element_name, target_document) =
{
		var hc, th, tos, editorTemplate, targetDoc, deltaWidth, deltaHeight, =
html, rng, fragment;
		var dynamicIFrame, tElm, doc, parentElm;

		th =3D this.settings.theme;
		tos =3D tinyMCE.themes[th];

		targetDoc =3D target_document ? target_document : document;

		this.targetDoc =3D targetDoc;

		tinyMCE.themeURL =3D tinyMCE.baseURL + "/themes/" + =
this.settings.theme;
		this.settings.themeurl =3D tinyMCE.themeURL;

		if (!replace_element) {
			alert("Error: Could not find the target element.");
			return false;
		}

		if (tos.getEditorTemplate)
			editorTemplate =3D tos.getEditorTemplate(this.settings, =
this.editorId);

		deltaWidth =3D editorTemplate.delta_width ? editorTemplate.delta_width =
: 0;
		deltaHeight =3D editorTemplate.delta_height ? =
editorTemplate.delta_height : 0;
		html =3D '<span id=3D"' + this.editorId + '_parent" =
class=3D"mceEditorContainer">' + editorTemplate.html;

		html =3D tinyMCE.replaceVar(html, "editor_id", this.editorId);

		if (!this.settings.default_document)
			this.settings.default_document =3D tinyMCE.baseURL + "/blank.htm";

		this.settings.old_width =3D this.settings.width;
		this.settings.old_height =3D this.settings.height;

		// Set default width, height
		if (this.settings.width =3D=3D -1)
			this.settings.width =3D replace_element.offsetWidth;

		if (this.settings.height =3D=3D -1)
			this.settings.height =3D replace_element.offsetHeight;

		// Try the style width
		if (this.settings.width =3D=3D 0)
			this.settings.width =3D replace_element.style.width;

		// Try the style height
		if (this.settings.height =3D=3D 0)
			this.settings.height =3D replace_element.style.height;=20

		// If no width/height then default to 320x240, better than nothing
		if (this.settings.width =3D=3D 0)
			this.settings.width =3D 320;

		if (this.settings.height =3D=3D 0)
			this.settings.height =3D 240;

		this.settings.area_width =3D parseInt(this.settings.width);
		this.settings.area_height =3D parseInt(this.settings.height);
		this.settings.area_width +=3D deltaWidth;
		this.settings.area_height +=3D deltaHeight;
		this.settings.width_style =3D "" + this.settings.width;
		this.settings.height_style =3D "" + this.settings.height;

		// Special % handling
		if (("" + this.settings.width).indexOf('%') !=3D -1)
			this.settings.area_width =3D "100%";
		else
			this.settings.width_style +=3D 'px';

		if (("" + this.settings.height).indexOf('%') !=3D -1)
			this.settings.area_height =3D "100%";
		else
			this.settings.height_style +=3D 'px';

		if (("" + replace_element.style.width).indexOf('%') !=3D -1) {
			this.settings.width =3D replace_element.style.width;
			this.settings.area_width =3D "100%";
			this.settings.width_style =3D "100%";
		}

		if (("" + replace_element.style.height).indexOf('%') !=3D -1) {
			this.settings.height =3D replace_element.style.height;
			this.settings.area_height =3D "100%";
			this.settings.height_style =3D "100%";
		}

		html =3D tinyMCE.applyTemplate(html);

		this.settings.width =3D this.settings.old_width;
		this.settings.height =3D this.settings.old_height;

		this.visualAid =3D this.settings.visual;
		this.formTargetElementId =3D form_element_name;

		// Get replace_element contents
		if (replace_element.nodeName =3D=3D "TEXTAREA" || =
replace_element.nodeName =3D=3D "INPUT")
			this.startContent =3D replace_element.value;
		else
			this.startContent =3D replace_element.innerHTML;

		// If not text area or input
		if (replace_element.nodeName !=3D "TEXTAREA" && =
replace_element.nodeName !=3D "INPUT") {
			this.oldTargetElement =3D replace_element;

			// Debug mode
			hc =3D '<input type=3D"hidden" id=3D"' + form_element_name + '" =
name=3D"' + form_element_name + '" />';
			this.oldTargetDisplay =3D tinyMCE.getStyle(this.oldTargetElement, =
'display', 'inline');
			this.oldTargetElement.style.display =3D "none";

			html +=3D '</span>';

			if (tinyMCE.isGecko)
				html =3D hc + html;
			else
				html +=3D hc;

			// Output HTML and set editable
			if (tinyMCE.isGecko) {
				rng =3D replace_element.ownerDocument.createRange();
				rng.setStartBefore(replace_element);

				fragment =3D rng.createContextualFragment(html);
				tinyMCE.insertAfter(fragment, replace_element);
			} else
				replace_element.insertAdjacentHTML("beforeBegin", html);
		} else {
			html +=3D '</span>';

			// Just hide the textarea element
			this.oldTargetElement =3D replace_element;

			this.oldTargetDisplay =3D tinyMCE.getStyle(this.oldTargetElement, =
'display', 'inline');
			this.oldTargetElement.style.display =3D "none";

			// Output HTML and set editable
			if (tinyMCE.isGecko) {
				rng =3D replace_element.ownerDocument.createRange();
				rng.setStartBefore(replace_element);

				fragment =3D rng.createContextualFragment(html);
				tinyMCE.insertAfter(fragment, replace_element);
			} else
				replace_element.insertAdjacentHTML("beforeBegin", html);
		}

		// Setup iframe
		dynamicIFrame =3D false;
		tElm =3D targetDoc.getElementById(this.editorId);

		if (!tinyMCE.isIE) {
			// Node case is preserved in XML strict mode
			if (tElm && (tElm.nodeName =3D=3D "SPAN" || tElm.nodeName =3D=3D =
"span")) {
				tElm =3D tinyMCE._createIFrame(tElm, targetDoc);
				dynamicIFrame =3D true;
			}

			this.targetElement =3D tElm;
			this.iframeElement =3D tElm;
			this.contentDocument =3D tElm.contentDocument;
			this.contentWindow =3D tElm.contentWindow;

			//this.getDoc().designMode =3D "on";
		} else {
			if (tElm && tElm.nodeName =3D=3D "SPAN")
				tElm =3D tinyMCE._createIFrame(tElm, targetDoc, =
targetDoc.parentWindow);
			else
				tElm =3D targetDoc.frames[this.editorId];

			this.targetElement =3D tElm;
			this.iframeElement =3D targetDoc.getElementById(this.editorId);

			if (tinyMCE.isOpera) {
				this.contentDocument =3D this.iframeElement.contentDocument;
				this.contentWindow =3D this.iframeElement.contentWindow;
				dynamicIFrame =3D true;
			} else {
				this.contentDocument =3D tElm.window.document;
				this.contentWindow =3D tElm.window;
			}

			this.getDoc().designMode =3D "on";
		}

		// Setup base HTML
		doc =3D this.contentDocument;
		if (dynamicIFrame) {
			html =3D tinyMCE.getParam('doctype') + '<html><head =
xmlns=3D"http://www.w3.org/1999/xhtml"><base href=3D"' + =
tinyMCE.settings.base_href + '" /><title>blank_page</title><meta =
http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3DUTF-8"></head><body class=3D"mceContentBody"></body></html>';

			try {
				if (!this.isHidden())
					this.getDoc().designMode =3D "on";

				doc.open();
				doc.write(html);
				doc.close();
			} catch (e) {
				// Failed Mozilla 1.3
				this.getDoc().location.href =3D tinyMCE.baseURL + "/blank.htm";
			}
		}

		// This timeout is needed in MSIE 5.5 for some odd reason
		// it seems that the document.frames isn't initialized yet?
		if (tinyMCE.isIE)
			window.setTimeout("tinyMCE.addEventHandlers(tinyMCE.instances[\"" + =
this.editorId + "\"]);", 1);

		// Setup element references
		parentElm =3D this.targetDoc.getElementById(this.editorId + =
'_parent');
		this.formElement =3D tinyMCE.isGecko ? parentElm.previousSibling : =
parentElm.nextSibling;

		tinyMCE.setupContent(this.editorId, true);

		return true;
	},

	setBaseHREF : function(u) {
		var h, b, d, nl;

		d =3D this.getDoc();
		nl =3D d.getElementsByTagName("base");
		b =3D nl.length > 0 ? nl[0] : null;

		if (!b) {
			nl =3D d.getElementsByTagName("head");
			h =3D nl.length > 0 ? nl[0] : null;

			b =3D d.createElement("base");
			b.setAttribute('href', u);
			h.appendChild(b);
		} else {
			if (u =3D=3D '' || u =3D=3D null)
				b.parentNode.removeChild(b);
			else
				b.setAttribute('href', u);
		}
	},

	getHTML : function(r) {
		var h, d =3D this.getDoc(), b =3D this.getBody();

		if (r)
			return b.innerHTML;

		h =3D tinyMCE._cleanupHTML(this, d, this.settings, b, false, true, =
false, true);

		if (tinyMCE.getParam("convert_fonts_to_spans"))
			tinyMCE.convertSpansToFonts(d);

		return h;
	},

	setHTML : function(h) {
		this.execCommand('mceSetContent', false, h);
		this.repaint();
	},

	getFocusElement : function() {
		return this.selection.getFocusElement();
	},

	getSel : function() {
		return this.selection.getSel();
	},

	getRng : function() {
		return this.selection.getRng();
	},

	triggerSave : function(skip_cleanup, skip_callback) {
		var e, nl =3D [], i, s, content, htm;

		if (!this.enabled)
			return;

		this.switchSettings();
		s =3D tinyMCE.settings;

		// Force hidden tabs visible while serializing
		if (tinyMCE.isRealIE) {
			e =3D this.iframeElement;

			do {
				if (e.style && e.style.display =3D=3D 'none') {
					e.style.display =3D 'block';
					nl[nl.length] =3D {elm : e, type : 'style'};
				}

				if (e.style && s.hidden_tab_class.length > 0 && =
e.className.indexOf(s.hidden_tab_class) !=3D -1) {
					e.className =3D s.display_tab_class;
					nl[nl.length] =3D {elm : e, type : 'class'};
				}
			} while ((e =3D e.parentNode) !=3D null)
		}

		tinyMCE.settings.preformatted =3D false;

		// Default to false
		if (typeof(skip_cleanup) =3D=3D "undefined")
			skip_cleanup =3D false;

		// Default to false
		if (typeof(skip_callback) =3D=3D "undefined")
			skip_callback =3D false;

		tinyMCE._setHTML(this.getDoc(), this.getBody().innerHTML);

		// Remove visual aids when cleanup is disabled
		if (this.settings.cleanup =3D=3D false) {
			tinyMCE.handleVisualAid(this.getBody(), true, false, this);
			tinyMCE._setEventsEnabled(this.getBody(), true);
		}

		tinyMCE._customCleanup(this, "submit_content_dom", =
this.contentWindow.document.body);
		htm =3D skip_cleanup ? this.getBody().innerHTML : =
tinyMCE._cleanupHTML(this, this.getDoc(), this.settings, this.getBody(), =
tinyMCE.visualAid, true, true);
		htm =3D tinyMCE._customCleanup(this, "submit_content", htm);

		if (!skip_callback && tinyMCE.settings.save_callback !=3D=3D '')
			content =3D tinyMCE.resolveDots(tinyMCE.settings.save_callback, =
window)(this.formTargetElementId,htm,this.getBody());

		// Use callback content if available
		if ((typeof(content) !=3D "undefined") && content !=3D null)
			htm =3D content;

		// Replace some weird entities (Bug: #1056343)
		htm =3D tinyMCE.regexpReplace(htm, "&#40;", "(", "gi");
		htm =3D tinyMCE.regexpReplace(htm, "&#41;", ")", "gi");
		htm =3D tinyMCE.regexpReplace(htm, "&#59;", ";", "gi");
		htm =3D tinyMCE.regexpReplace(htm, "&#34;", "&quot;", "gi");
		htm =3D tinyMCE.regexpReplace(htm, "&#94;", "^", "gi");

		if (this.formElement)
			this.formElement.value =3D htm;

		if (tinyMCE.isSafari && this.formElement)
			this.formElement.innerText =3D htm;

		// Hide them again (tabs in MSIE)
		for (i=3D0; i<nl.length; i++) {
			if (nl[i].type =3D=3D 'style')
				nl[i].elm.style.display =3D 'none';
			else
				nl[i].elm.className =3D s.hidden_tab_class;
		}
	}

	};

/* file:jscripts/tiny_mce/classes/TinyMCE_Cleanup.class.js */

tinyMCE.add(TinyMCE_Engine, {
	cleanupHTMLCode : function(s) {
		s =3D s.replace(new RegExp('<p \\/>', 'gi'), '<p>&nbsp;</p>');
		s =3D s.replace(new RegExp('<p>\\s*<\\/p>', 'gi'), '<p>&nbsp;</p>');

		// Fix close BR elements
		s =3D s.replace(new RegExp('<br>\\s*<\\/br>', 'gi'), '<br />');

		// Open closed tags like <b/> to <b></b>
		s =3D s.replace(new =
RegExp('<(h[1-6]|p|div|address|pre|form|table|li|ol|ul|td|b|font|em|stron=
g|i|strike|u|span|a|ul|ol|li|blockquote)([a-z]*)([^\\\\|>]*)\\/>', =
'gi'), '<$1$2$3></$1$2>');

		// Remove trailing space <b > to <b>
		s =3D s.replace(new RegExp('\\s+></', 'gi'), '></');

		// Close tags <img></img> to <img/>
		s =3D s.replace(new RegExp('<(img|br|hr)([^>]*)><\\/(img|br|hr)>', =
'gi'), '<$1$2 />');

		// Weird MSIE bug, <p><hr /></p> breaks runtime?
		if (tinyMCE.isIE)
			s =3D s.replace(new RegExp('<p><hr \\/><\\/p>', 'gi'), "<hr>");

		// Weird tags will make IE error #bug: 1538495
		if (tinyMCE.isIE)
			s =3D s.replace(/<!(\s*)\/>/g, '');

		// Convert relative anchors to absolute URLs ex: #something to =
file.htm#something
		// Removed: Since local document anchors should never be forced =
absolute example edit.php?id=3Dsomething
		//if (tinyMCE.getParam('convert_urls'))
		//	s =3D s.replace(new RegExp('(href=3D\"{0,1})(\\s*#)', 'gi'), '$1' + =
tinyMCE.settings.document_base_url + "#");

		return s;
	},

	parseStyle : function(str) {
		var ar =3D [], st, i, re, pa;

		if (str =3D=3D null)
			return ar;

		st =3D str.split(';');

		tinyMCE.clearArray(ar);

		for (i=3D0; i<st.length; i++) {
			if (st[i] =3D=3D '')
				continue;

			re =3D new RegExp('^\\s*([^:]*):\\s*(.*)\\s*$');
			pa =3D st[i].replace(re, '$1||$2').split('||');
	//tinyMCE.debug(str, pa[0] + "=3D" + pa[1], st[i].replace(re, =
'$1||$2'));
			if (pa.length =3D=3D 2)
				ar[pa[0].toLowerCase()] =3D pa[1];
		}

		return ar;
	},

	compressStyle : function(ar, pr, sf, res) {
		var box =3D [], i, a;

		box[0] =3D ar[pr + '-top' + sf];
		box[1] =3D ar[pr + '-left' + sf];
		box[2] =3D ar[pr + '-right' + sf];
		box[3] =3D ar[pr + '-bottom' + sf];

		for (i=3D0; i<box.length; i++) {
			if (box[i] =3D=3D null)
				return;

			if (i && box[i] !=3D box[i-1])
				return;
		}

		// They are all the same
		ar[res] =3D box[0];
		ar[pr + '-top' + sf] =3D null;
		ar[pr + '-left' + sf] =3D null;
		ar[pr + '-right' + sf] =3D null;
		ar[pr + '-bottom' + sf] =3D null;
	},

	serializeStyle : function(ar) {
		var str =3D "", key, val, m;

		// Compress box
		tinyMCE.compressStyle(ar, "border", "", "border");
		tinyMCE.compressStyle(ar, "border", "-width", "border-width");
		tinyMCE.compressStyle(ar, "border", "-color", "border-color");
		tinyMCE.compressStyle(ar, "border", "-style", "border-style");
		tinyMCE.compressStyle(ar, "padding", "", "padding");
		tinyMCE.compressStyle(ar, "margin", "", "margin");

		for (key in ar) {
			val =3D ar[key];

			if (typeof(val) =3D=3D 'function')
				continue;

			if (key.indexOf('mso-') =3D=3D 0)
				continue;

			if (val !=3D null && val !=3D=3D '') {
				val =3D '' + val; // Force string

				// Fix style URL
				val =3D val.replace(new RegExp("url\\(\\'?([^\\']*)\\'?\\)", 'gi'), =
"url('$1')");

				// Convert URL
				if (val.indexOf('url(') !=3D -1 && tinyMCE.getParam('convert_urls')) =
{
					m =3D new RegExp("url\\('(.*?)'\\)").exec(val);

					if (m.length > 1)
						val =3D "url('" + eval(tinyMCE.getParam('urlconverter_callback') + =
"(m[1], null, true);") + "')";
				}

				// Force HEX colors
				if (tinyMCE.getParam("force_hex_style_colors"))
					val =3D tinyMCE.convertRGBToHex(val, true);

				val =3D val.replace(/\"/g, '\'');

				if (val !=3D "url('')")
					str +=3D key.toLowerCase() + ": " + val + "; ";
			}
		}

		if (new RegExp('; $').test(str))
			str =3D str.substring(0, str.length - 2);

		return str;
	},

	convertRGBToHex : function(s, k) {
		var re, rgb;

		if (s.toLowerCase().indexOf('rgb') !=3D -1) {
			re =3D new =
RegExp("(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*=
?\\)(.*?)", "gi");
			rgb =3D s.replace(re, "$1,$2,$3,$4,$5").split(',');

			if (rgb.length =3D=3D 5) {
				r =3D parseInt(rgb[1]).toString(16);
				g =3D parseInt(rgb[2]).toString(16);
				b =3D parseInt(rgb[3]).toString(16);

				r =3D r.length =3D=3D 1 ? '0' + r : r;
				g =3D g.length =3D=3D 1 ? '0' + g : g;
				b =3D b.length =3D=3D 1 ? '0' + b : b;

				s =3D "#" + r + g + b;

				if (k)
					s =3D rgb[0] + s + rgb[4];
			}
		}

		return s;
	},

	convertHexToRGB : function(s) {
		if (s.indexOf('#') !=3D -1) {
			s =3D s.replace(new RegExp('[^0-9A-F]', 'gi'), '');
			return "rgb(" + parseInt(s.substring(0, 2), 16) + "," + =
parseInt(s.substring(2, 4), 16) + "," + parseInt(s.substring(4, 6), 16) =
+ ")";
		}

		return s;
	},

	convertSpansToFonts : function(doc) {
		var s, i, size, fSize, x, fFace, fColor, sizes =3D =
tinyMCE.getParam('font_size_style_values').replace(/\s+/, =
'').split(',');

		s =3D tinyMCE.selectElements(doc, 'span,font');
		for (i=3D0; i<s.length; i++) {
			size =3D tinyMCE.trim(s[i].style.fontSize).toLowerCase();
			fSize =3D 0;

			for (x=3D0; x<sizes.length; x++) {
				if (sizes[x] =3D=3D size) {
					fSize =3D x + 1;
					break;
				}
			}

			if (fSize > 0) {
				tinyMCE.setAttrib(s[i], 'size', fSize);
				s[i].style.fontSize =3D '';
			}

			fFace =3D s[i].style.fontFamily;
			if (fFace !=3D null && fFace !=3D=3D '') {
				tinyMCE.setAttrib(s[i], 'face', fFace);
				s[i].style.fontFamily =3D '';
			}

			fColor =3D s[i].style.color;
			if (fColor !=3D null && fColor !=3D=3D '') {
				tinyMCE.setAttrib(s[i], 'color', tinyMCE.convertRGBToHex(fColor));
				s[i].style.color =3D '';
			}
		}
	},

	convertFontsToSpans : function(doc) {
		var fsClasses, s, i, fSize, fFace, fColor, sizes =3D =
tinyMCE.getParam('font_size_style_values').replace(/\s+/, =
'').split(',');

		fsClasses =3D tinyMCE.getParam('font_size_classes');
		if (fsClasses !=3D=3D '')
			fsClasses =3D fsClasses.replace(/\s+/, '').split(',');
		else
			fsClasses =3D null;

		s =3D tinyMCE.selectElements(doc, 'span,font');
		for (i=3D0; i<s.length; i++) {
			fSize =3D tinyMCE.getAttrib(s[i], 'size');
			fFace =3D tinyMCE.getAttrib(s[i], 'face');
			fColor =3D tinyMCE.getAttrib(s[i], 'color');

			if (fSize !=3D=3D '') {
				fSize =3D parseInt(fSize);

				if (fSize > 0 && fSize < 8) {
					if (fsClasses !=3D null)
						tinyMCE.setAttrib(s[i], 'class', fsClasses[fSize-1]);
					else
						s[i].style.fontSize =3D sizes[fSize-1];
				}

				s[i].removeAttribute('size');
			}

			if (fFace !=3D=3D '') {
				s[i].style.fontFamily =3D fFace;
				s[i].removeAttribute('face');
			}

			if (fColor !=3D=3D '') {
				s[i].style.color =3D fColor;
				s[i].removeAttribute('color');
			}
		}
	},

	cleanupAnchors : function(doc) {
		var i, cn, x, an =3D doc.getElementsByTagName("a");

		// Loops backwards due to bug #1467987
		for (i=3Dan.length-1; i>=3D0; i--) {
			if (tinyMCE.getAttrib(an[i], "name") !=3D=3D '' && =
tinyMCE.getAttrib(an[i], "href") =3D=3D '') {
				cn =3D an[i].childNodes;

				for (x=3Dcn.length-1; x>=3D0; x--)
					tinyMCE.insertAfter(cn[x], an[i]);
			}
		}
	},

	getContent : function(editor_id) {
		if (typeof(editor_id) !=3D "undefined")
			 tinyMCE.getInstanceById(editor_id).select();

		if (tinyMCE.selectedInstance)
			return tinyMCE.selectedInstance.getHTML();

		return null;
	},

	_fixListElements : function(d) {
		var nl, x, a =3D ['ol', 'ul'], i, n, p, r =3D new RegExp('^(OL|UL)$'), =
np;

		for (x=3D0; x<a.length; x++) {
			nl =3D d.getElementsByTagName(a[x]);

			for (i=3D0; i<nl.length; i++) {
				n =3D nl[i];
				p =3D n.parentNode;

				if (r.test(p.nodeName)) {
					np =3D tinyMCE.prevNode(n, 'LI');

					if (!np) {
						np =3D d.createElement('li');
						np.innerHTML =3D '&nbsp;';
						np.appendChild(n);
						p.insertBefore(np, p.firstChild);
					} else
						np.appendChild(n);
				}
			}
		}
	},

	_fixTables : function(d) {
		var nl, i, n, p, np, x, t;

		nl =3D d.getElementsByTagName('table');
		for (i=3D0; i<nl.length; i++) {
			n =3D nl[i];

			if ((p =3D tinyMCE.getParentElement(n, 'p,h1,h2,h3,h4,h5,h6')) !=3D =
null) {
				np =3D p.cloneNode(false);
				np.removeAttribute('id');

				t =3D n;

				while ((n =3D n.nextSibling))
					np.appendChild(n);

				tinyMCE.insertAfter(np, p);
				tinyMCE.insertAfter(t, p);
			}
		}
	},

	_cleanupHTML : function(inst, doc, config, elm, visual, on_save, =
on_submit, inn) {
		var h, d, t1, t2, t3, t4, t5, c, s, nb;

		if (!tinyMCE.getParam('cleanup'))
			return elm.innerHTML;

		on_save =3D typeof(on_save) =3D=3D 'undefined' ? false : on_save;

		c =3D inst.cleanup;
		s =3D inst.settings;
		d =3D c.settings.debug;

		if (d)
			t1 =3D new Date().getTime();

		inst._fixRootBlocks();

		if (tinyMCE.getParam("convert_fonts_to_spans"))
			tinyMCE.convertFontsToSpans(doc);

		if (tinyMCE.getParam("fix_list_elements"))
			tinyMCE._fixListElements(doc);

		if (tinyMCE.getParam("fix_table_elements"))
			tinyMCE._fixTables(doc);

		// Call custom cleanup code
		tinyMCE._customCleanup(inst, on_save ? "get_from_editor_dom" : =
"insert_to_editor_dom", doc.body);

		if (d)
			t2 =3D new Date().getTime();

		c.settings.on_save =3D on_save;

		c.idCount =3D 0;
		c.serializationId++; // Unique ID needed for the content duplication =
bug
		c.serializedNodes =3D [];
		c.sourceIndex =3D -1;

		if (s.cleanup_serializer =3D=3D "xml")
			h =3D c.serializeNodeAsXML(elm, inn);
		else
			h =3D c.serializeNodeAsHTML(elm, inn);

		if (d)
			t3 =3D new Date().getTime();

		// Post processing
		nb =3D tinyMCE.getParam('entity_encoding') =3D=3D 'numeric' ? '&#160;' =
: '&nbsp;';
		h =3D h.replace(/<\/?(body|head|html)[^>]*>/gi, '');
		h =3D h.replace(new RegExp(' (rowspan=3D"1"|colspan=3D"1")', 'g'), =
'');
		h =3D h.replace(/<p><hr \/><\/p>/g, '<hr />');
		h =3D h.replace(/<p>(&nbsp;|&#160;)<\/p><hr =
\/><p>(&nbsp;|&#160;)<\/p>/g, '<hr />');
		h =3D h.replace(/<td>\s*<br \/>\s*<\/td>/g, '<td>' + nb + '</td>');
		h =3D h.replace(/<p>\s*<br \/>\s*<\/p>/g, '<p>' + nb + '</p>');
		h =3D h.replace(/<br \/>$/, ''); // Remove last BR for Gecko
		h =3D h.replace(/<br \/><\/p>/g, '</p>'); // Remove last BR in P tags =
for Gecko
		h =3D h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br =
\/>\s*(&nbsp;|&#160;)\s*<\/p>/g, '<p>' + nb + '</p>');
		h =3D h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*<\/p>/g, '<p>' + nb =
+ '</p>');
		h =3D h.replace(/<p>\s*<br \/>\s*&nbsp;\s*<\/p>/g, '<p>' + nb + =
'</p>');
		h =3D h.replace(new RegExp('<a>(.*?)<\\/a>', 'g'), '$1');
		h =3D h.replace(/<p([^>]*)>\s*<\/p>/g, '<p$1>' + nb + '</p>');

		// Clean body
		if (/^\s*(<br =
\/>|<p>&nbsp;<\/p>|<p>&#160;<\/p>|<p><\/p>)\s*$/.test(h))
			h =3D '';

		// If preformatted
		if (s.preformatted) {
			h =3D h.replace(/^<pre>/, '');
			h =3D h.replace(/<\/pre>$/, '');
			h =3D '<pre>' + h + '</pre>';
		}

		// Gecko specific processing
		if (tinyMCE.isGecko) {
			// Makes no sence but FF generates it!!
			h =3D h.replace(/<br \/>\s*<\/li>/g, '</li>');
			h =3D h.replace(/&nbsp;\s*<\/(dd|dt)>/g, '</$1>');
			h =3D h.replace(/<o:p _moz-userdefined=3D"" \/>/g, '');
			h =3D h.replace(/<td([^>]*)>\s*<br \/>\s*<\/td>/g, '<td$1>' + nb + =
'</td>');
		}

		if (s.force_br_newlines)
			h =3D h.replace(/<p>(&nbsp;|&#160;)<\/p>/g, '<br />');

		// Call custom cleanup code
		h =3D tinyMCE._customCleanup(inst, on_save ? "get_from_editor" : =
"insert_to_editor", h);

		// Remove internal classes
		if (on_save) {
			h =3D h.replace(new RegExp(' ?(mceItem[a-zA-Z0-9]*|' + =
s.visual_table_class + ')', 'g'), '');
			h =3D h.replace(new RegExp(' ?class=3D""', 'g'), '');
		}

		if (s.remove_linebreaks && !c.settings.indent)
			h =3D h.replace(/\n|\r/g, ' ');

		if (d)
			t4 =3D new Date().getTime();

		if (on_save && c.settings.indent)
			h =3D c.formatHTML(h);

		// If encoding (not recommended option)
		if (on_submit && (s.encoding =3D=3D "xml" || s.encoding =3D=3D =
"html"))
			h =3D c.xmlEncode(h);

		if (d)
			t5 =3D new Date().getTime();

		if (c.settings.debug)
			tinyMCE.debug("Cleanup in ms: Pre=3D" + (t2-t1) + ", Serialize: " + =
(t3-t2) + ", Post: " + (t4-t3) + ", Format: " + (t5-t4) + ", Sum: " + =
(t5-t1) + ".");

		return h;
	}
});

function TinyMCE_Cleanup() {
	this.isIE =3D (navigator.appName =3D=3D "Microsoft Internet Explorer");
	this.rules =3D tinyMCE.clearArray([]);

	// Default config
	this.settings =3D {
		indent_elements : =
'head,table,tbody,thead,tfoot,form,tr,ul,ol,blockquote,object',
		newline_before_elements : =
'h1,h2,h3,h4,h5,h6,pre,address,div,ul,ol,li,meta,option,area,title,link,b=
ase,script,td',
		newline_after_elements : =
'br,hr,p,pre,address,div,ul,ol,meta,option,area,link,base,script',
		newline_before_after_elements : =
'html,head,body,table,thead,tbody,tfoot,tr,form,ul,ol,blockquote,p,object=
,param,hr,div',
		indent_char : '\t',
		indent_levels : 1,
		entity_encoding : 'raw',
		valid_elements : '*[*]',
		entities : '',
		url_converter : '',
		invalid_elements : '',
		verify_html : false
	};

	this.vElements =3D tinyMCE.clearArray([]);
	this.vElementsRe =3D '';
	this.closeElementsRe =3D /^(IMG|BR|HR|LINK|META|BASE|INPUT|AREA)$/;
	this.codeElementsRe =3D /^(SCRIPT|STYLE)$/;
	this.serializationId =3D 0;
	this.mceAttribs =3D {
		href : 'mce_href',
		src : 'mce_src',
		type : 'mce_type'
	};
}

TinyMCE_Cleanup.prototype =3D {
	init : function(s) {
		var n, a, i, ir, or, st;

		for (n in s)
			this.settings[n] =3D s[n];

		// Setup code formating
		s =3D this.settings;

		// Setup regexps
		this.inRe =3D this._arrayToRe(s.indent_elements.split(','), '', '^<(', =
')[^>]*');
		this.ouRe =3D this._arrayToRe(s.indent_elements.split(','), '', =
'^<\\/(', ')[^>]*');
		this.nlBeforeRe =3D =
this._arrayToRe(s.newline_before_elements.split(','), 'gi', '<(',  =
')([^>]*)>');
		this.nlAfterRe =3D =
this._arrayToRe(s.newline_after_elements.split(','), 'gi', '<(',  =
')([^>]*)>');
		this.nlBeforeAfterRe =3D =
this._arrayToRe(s.newline_before_after_elements.split(','), 'gi', =
'<(\\/?)(', ')([^>]*)>');
		this.serializedNodes =3D [];
		this.serializationId =3D 0;

		if (s.invalid_elements !=3D=3D '')
			this.iveRe =3D =
this._arrayToRe(s.invalid_elements.toUpperCase().split(','), 'g', '^(', =
')$');
		else
			this.iveRe =3D null;

		// Setup separator
		st =3D '';
		for (i=3D0; i<s.indent_levels; i++)
			st +=3D s.indent_char;

		this.inStr =3D st;

		// If verify_html if false force *[*]
		if (!s.verify_html) {
			s.valid_elements =3D '*[*]';
			s.extended_valid_elements =3D '';
		}

		this.fillStr =3D s.entity_encoding =3D=3D "named" ? "&nbsp;" : =
"&#160;";
		this.idCount =3D 0;
		this.xmlEncodeRe =3D new RegExp('[\u007F-\uFFFF<>&"]', 'g');
	},

	addRuleStr : function(s) {
		var r =3D this.parseRuleStr(s), n;

		for (n in r) {
			if (r[n])
				this.rules[n] =3D r[n];
		}

		this.vElements =3D tinyMCE.clearArray([]);

		for (n in this.rules) {
			if (this.rules[n])
				this.vElements[this.vElements.length] =3D this.rules[n].tag;
		}

		this.vElementsRe =3D this._arrayToRe(this.vElements, '');
	},

	isValid : function(n) {
		if (!this.rulesDone)
			this._setupRules(); // Will initialize cleanup rules

		// Empty is true since it removes formatting
		if (!n)
			return true;

		// Clean the name up a bit
		n =3D n.replace(/[^a-z0-9]+/gi, '').toUpperCase();

		return !tinyMCE.getParam('cleanup') || this.vElementsRe.test(n);
	},

	addChildRemoveRuleStr : function(s) {
		var x, y, p, i, t, tn, ta, cl, r;

		if (!s)
			return;

		ta =3D s.split(',');
		for (x=3D0; x<ta.length; x++) {
			s =3D ta[x];

			// Split tag/children
			p =3D this.split(/\[|\]/, s);
			if (p =3D=3D null || p.length < 1)
				t =3D s.toUpperCase();
			else
				t =3D p[0].toUpperCase();

			// Handle all tag names
			tn =3D this.split('/', t);
			for (y=3D0; y<tn.length; y++) {
				r =3D "^(";

				// Build regex
				cl =3D this.split(/\|/, p[1]);
				for (i=3D0; i<cl.length; i++) {
					if (cl[i] =3D=3D '%istrict')
						r +=3D tinyMCE.inlineStrict;
					else if (cl[i] =3D=3D '%itrans')
						r +=3D tinyMCE.inlineTransitional;
					else if (cl[i] =3D=3D '%istrict_na')
						r +=3D tinyMCE.inlineStrict.substring(2);
					else if (cl[i] =3D=3D '%itrans_na')
						r +=3D tinyMCE.inlineTransitional.substring(2);
					else if (cl[i] =3D=3D '%btrans')
						r +=3D tinyMCE.blockElms;
					else if (cl[i] =3D=3D '%strict')
						r +=3D tinyMCE.blockStrict;
					else
						r +=3D (cl[i].charAt(0) !=3D '#' ? cl[i].toUpperCase() : cl[i]);

					r +=3D (i !=3D cl.length - 1 ? '|' : '');
				}

				r +=3D ')$';

				if (this.childRules =3D=3D null)
					this.childRules =3D tinyMCE.clearArray([]);

				this.childRules[tn[y]] =3D new RegExp(r);

				if (p.length > 1)
					this.childRules[tn[y]].wrapTag =3D p[2];
			}
		}
	},

	parseRuleStr : function(s) {
		var ta, p, r, a, i, x, px, t, tn, y, av, or =3D =
tinyMCE.clearArray([]), dv;

		if (s =3D=3D null || s.length =3D=3D 0)
			return or;

		ta =3D s.split(',');
		for (x=3D0; x<ta.length; x++) {
			s =3D ta[x];
			if (s.length =3D=3D 0)
				continue;

			// Split tag/attrs
			p =3D this.split(/\[|\]/, s);
			if (p =3D=3D null || p.length < 1)
				t =3D s.toUpperCase();
			else
				t =3D p[0].toUpperCase();

			// Handle all tag names
			tn =3D this.split('/', t);
			for (y=3D0; y<tn.length; y++) {
				r =3D {};

				r.tag =3D tn[y];
				r.forceAttribs =3D null;
				r.defaultAttribs =3D null;
				r.validAttribValues =3D null;

				// Handle prefixes
				px =3D r.tag.charAt(0);
				r.forceOpen =3D px =3D=3D '+';
				r.removeEmpty =3D px =3D=3D '-';
				r.fill =3D px =3D=3D '#';
				r.tag =3D r.tag.replace(/\+|-|#/g, '');
				r.oTagName =3D tn[0].replace(/\+|-|#/g, '').toLowerCase();
				r.isWild =3D new RegExp('\\*|\\?|\\+', 'g').test(r.tag);
				r.validRe =3D new RegExp(this._wildcardToRe('^' + r.tag + '$'));

				// Setup valid attributes
				if (p.length > 1) {
					r.vAttribsRe =3D '^(';
					a =3D this.split(/\|/, p[1]);

					for (i=3D0; i<a.length; i++) {
						t =3D a[i];

						if (t.charAt(0) =3D=3D '!') {
							a[i] =3D t =3D t.substring(1);

							if (!r.reqAttribsRe)
								r.reqAttribsRe =3D '\\s+(' + t;
							else
								r.reqAttribsRe +=3D '|' + t;
						}

						av =3D new RegExp('(=3D|:|<)(.*?)$').exec(t);
						t =3D t.replace(new RegExp('(=3D|:|<).*?$'), '');
						if (av && av.length > 0) {
							if (av[0].charAt(0) =3D=3D ':') {
								if (!r.forceAttribs)
									r.forceAttribs =3D tinyMCE.clearArray([]);

								r.forceAttribs[t.toLowerCase()] =3D av[0].substring(1);
							} else if (av[0].charAt(0) =3D=3D '=3D') {
								if (!r.defaultAttribs)
									r.defaultAttribs =3D tinyMCE.clearArray([]);

								dv =3D av[0].substring(1);

								r.defaultAttribs[t.toLowerCase()] =3D dv =3D=3D '' ? "mce_empty" =
: dv;
							} else if (av[0].charAt(0) =3D=3D '<') {
								if (!r.validAttribValues)
									r.validAttribValues =3D tinyMCE.clearArray([]);

								r.validAttribValues[t.toLowerCase()] =3D =
this._arrayToRe(this.split('?', av[0].substring(1)), 'i');
							}
						}

						r.vAttribsRe +=3D '' + t.toLowerCase() + (i !=3D a.length - 1 ? =
'|' : '');

						a[i] =3D t.toLowerCase();
					}

					if (r.reqAttribsRe)
						r.reqAttribsRe =3D new RegExp(r.reqAttribsRe + ')=3D\"', 'g');

					r.vAttribsRe +=3D ')$';
					r.vAttribsRe =3D this._wildcardToRe(r.vAttribsRe);
					r.vAttribsReIsWild =3D new RegExp('\\*|\\?|\\+', =
'g').test(r.vAttribsRe);
					r.vAttribsRe =3D new RegExp(r.vAttribsRe);
					r.vAttribs =3D a.reverse();

					//tinyMCE.debug(r.tag, r.oTagName, r.vAttribsRe, r.vAttribsReWC);
				} else {
					r.vAttribsRe =3D '';
					r.vAttribs =3D tinyMCE.clearArray([]);
					r.vAttribsReIsWild =3D false;
				}

				or[r.tag] =3D r;
			}
		}

		return or;
	},

	serializeNodeAsXML : function(n) {
		var s, b;

		if (!this.xmlDoc) {
			if (this.isIE) {
				try {this.xmlDoc =3D new ActiveXObject('MSXML2.DOMDocument');} catch =
(e) {}

				if (!this.xmlDoc)
					try {this.xmlDoc =3D new ActiveXObject('Microsoft.XmlDom');} catch =
(e) {}
			} else
				this.xmlDoc =3D document.implementation.createDocument('', '', =
null);

			if (!this.xmlDoc)
				alert("Error XML Parser could not be found.");
		}

		if (this.xmlDoc.firstChild)
			this.xmlDoc.removeChild(this.xmlDoc.firstChild);

		b =3D this.xmlDoc.createElement("html");
		b =3D this.xmlDoc.appendChild(b);

		this._convertToXML(n, b);

		if (this.isIE)
			return this.xmlDoc.xml;
		else
			return new XMLSerializer().serializeToString(this.xmlDoc);
	},

	_convertToXML : function(n, xn) {
		var xd, el, i, l, cn, at, no, hc =3D false;

		if (tinyMCE.isRealIE && this._isDuplicate(n))
			return;

		xd =3D this.xmlDoc;

		switch (n.nodeType) {
			case 1: // Element
				hc =3D n.hasChildNodes();

				el =3D xd.createElement(n.nodeName.toLowerCase());

				at =3D n.attributes;
				for (i=3Dat.length-1; i>-1; i--) {
					no =3D at[i];

					if (no.specified && no.nodeValue)
						el.setAttribute(no.nodeName.toLowerCase(), no.nodeValue);
				}

				if (!hc && !this.closeElementsRe.test(n.nodeName))
					el.appendChild(xd.createTextNode(""));

				xn =3D xn.appendChild(el);
				break;

			case 3: // Text
				xn.appendChild(xd.createTextNode(n.nodeValue));
				return;

			case 8: // Comment
				xn.appendChild(xd.createComment(n.nodeValue));
				return;
		}

		if (hc) {
			cn =3D n.childNodes;

			for (i=3D0, l=3Dcn.length; i<l; i++)
				this._convertToXML(cn[i], xn);
		}
	},

	serializeNodeAsHTML : function(n, inn) {
		var en, no, h =3D '', i, l, t, st, r, cn, va =3D false, f =3D false, =
at, hc, cr, nn;

		if (!this.rulesDone)
			this._setupRules(); // Will initialize cleanup rules

		if (tinyMCE.isRealIE && this._isDuplicate(n))
			return '';

		// Skip non valid child elements
		if (n.parentNode && this.childRules !=3D null) {
			cr =3D this.childRules[n.parentNode.nodeName];

			if (typeof(cr) !=3D "undefined" && !cr.test(n.nodeName)) {
				st =3D true;
				t =3D null;
			}
		}

		switch (n.nodeType) {
			case 1: // Element
				hc =3D n.hasChildNodes();

				if (st)
					break;

				nn =3D n.nodeName;

				if (tinyMCE.isRealIE) {
					// MSIE sometimes produces <//tag>
					if (n.nodeName.indexOf('/') !=3D -1)
						break;

					// MSIE has it's NS in a separate attrib
					if (n.scopeName && n.scopeName !=3D 'HTML')
						nn =3D n.scopeName.toUpperCase() + ':' + nn.toUpperCase();
				} else if (tinyMCE.isOpera && nn.indexOf(':') > 0)
					nn =3D nn.toUpperCase();

				// Convert fonts to spans
				if (this.settings.convert_fonts_to_spans) {
					// On get content FONT -> SPAN
					if (this.settings.on_save && nn =3D=3D 'FONT')
						nn =3D 'SPAN';

					// On insert content SPAN -> FONT
					if (!this.settings.on_save && nn =3D=3D 'SPAN')
						nn =3D 'FONT';
				}

				if (this.vElementsRe.test(nn) && (!this.iveRe || =
!this.iveRe.test(nn)) && !inn) {
					va =3D true;

					r =3D this.rules[nn];
					if (!r) {
						at =3D this.rules;
						for (no in at) {
							if (at[no] && at[no].validRe.test(nn)) {
								r =3D at[no];
								break;
							}
						}
					}

					en =3D r.isWild ? nn.toLowerCase() : r.oTagName;
					f =3D r.fill;

					if (r.removeEmpty && !hc)
						return "";

					t =3D '<' + en;

					if (r.vAttribsReIsWild) {
						// Serialize wildcard attributes
						at =3D n.attributes;
						for (i=3Dat.length-1; i>-1; i--) {
							no =3D at[i];
							if (no.specified && r.vAttribsRe.test(no.nodeName))
								t +=3D this._serializeAttribute(n, r, no.nodeName);
						}
					} else {
						// Serialize specific attributes
						for (i=3Dr.vAttribs.length-1; i>-1; i--)
							t +=3D this._serializeAttribute(n, r, r.vAttribs[i]);
					}

					// Serialize mce_ atts
					if (!this.settings.on_save) {
						at =3D this.mceAttribs;

						for (no in at) {
							if (at[no])
								t +=3D this._serializeAttribute(n, r, at[no]);
						}
					}

					// Check for required attribs
					if (r.reqAttribsRe && !t.match(r.reqAttribsRe))
						t =3D null;

					// Close these
					if (t !=3D null && this.closeElementsRe.test(nn))
						return t + ' />';

					if (t !=3D null)
						h +=3D t + '>';

					if (this.isIE && this.codeElementsRe.test(nn))
						h +=3D n.innerHTML;
				}
			break;

			case 3: // Text
				if (st)
					break;

				if (n.parentNode && this.codeElementsRe.test(n.parentNode.nodeName))
					return this.isIE ? '' : n.nodeValue;

				return this.xmlEncode(n.nodeValue);

			case 8: // Comment
				if (st)
					break;

				return "<!--" + this._trimComment(n.nodeValue) + "-->";
		}

		if (hc) {
			cn =3D n.childNodes;

			for (i=3D0, l=3Dcn.length; i<l; i++)
				h +=3D this.serializeNodeAsHTML(cn[i]);
		}

		// Fill empty nodes
		if (f && !hc)
			h +=3D this.fillStr;

		// End element
		if (t !=3D null && va)
			h +=3D '</' + en + '>';

		return h;
	},

	_serializeAttribute : function(n, r, an) {
		var av =3D '', t, os =3D this.settings.on_save;

		if (os && (an.indexOf('mce_') =3D=3D 0 || an.indexOf('_moz') =3D=3D =
0))
			return '';

		if (os && this.mceAttribs[an])
			av =3D this._getAttrib(n, this.mceAttribs[an]);

		if (av.length =3D=3D 0)
			av =3D this._getAttrib(n, an);

		if (av.length =3D=3D 0 && r.defaultAttribs && (t =3D =
r.defaultAttribs[an])) {
			av =3D t;

			if (av =3D=3D "mce_empty")
				return " " + an + '=3D""';
		}

		if (r.forceAttribs && (t =3D r.forceAttribs[an]))
			av =3D t;

		if (os && av.length !=3D 0 && /^(src|href|longdesc)$/.test(an))
			av =3D this._urlConverter(this, n, av);

		if (av.length !=3D 0 && r.validAttribValues && r.validAttribValues[an] =
&& !r.validAttribValues[an].test(av))
			return "";

		if (av.length !=3D 0 && av =3D=3D "{$uid}")
			av =3D "uid_" + (this.idCount++);

		if (av.length !=3D 0) {
			if (an.indexOf('on') !=3D 0)
				av =3D this.xmlEncode(av, 1);

			return " " + an + "=3D" + '"' + av + '"';
		}

		return "";
	},

	formatHTML : function(h) {
		var s =3D this.settings, p =3D '', i =3D 0, li =3D 0, o =3D '', l;

		// Replace BR in pre elements to \n
		h =3D h.replace(/<pre([^>]*)>(.*?)<\/pre>/gi, function (a, b, c) {
			c =3D c.replace(/<br\s*\/>/gi, '\n');
			return '<pre' + b + '>' + c + '</pre>';
		});

		h =3D h.replace(/\r/g, ''); // Windows sux, isn't carriage return a =
thing of the past :)
		h =3D '\n' + h;
		h =3D h.replace(new RegExp('\\n\\s+', 'gi'), '\n'); // Remove previous =
formatting
		h =3D h.replace(this.nlBeforeRe, '\n<$1$2>');
		h =3D h.replace(this.nlAfterRe, '<$1$2>\n');
		h =3D h.replace(this.nlBeforeAfterRe, '\n<$1$2$3>\n');
		h +=3D '\n';

		//tinyMCE.debug(h);

		while ((i =3D h.indexOf('\n', i + 1)) !=3D -1) {
			if ((l =3D h.substring(li + 1, i)).length !=3D 0) {
				if (this.ouRe.test(l) && p.length >=3D s.indent_levels)
					p =3D p.substring(s.indent_levels);

				o +=3D p + l + '\n';
=09
				if (this.inRe.test(l))
					p +=3D this.inStr;
			}

			li =3D i;
		}

		//tinyMCE.debug(h);

		return o;
	},

	xmlEncode : function(s) {
		var cl =3D this, re =3D this.xmlEncodeRe;

		if (!this.entitiesDone)
			this._setupEntities(); // Will intialize lookup table

		switch (this.settings.entity_encoding) {
			case "raw":
				return tinyMCE.xmlEncode(s);

			case "named":
				return s.replace(re, function (c) {
					var b =3D cl.entities[c.charCodeAt(0)];

					return b ? '&' + b + ';' : c;
				});

			case "numeric":
				return s.replace(re, function (c) {
					return '&#' + c.charCodeAt(0) + ';';
				});
		}

		return s;
	},

	split : function(re, s) {
		var i, l, o =3D [], c =3D s.split(re);

		for (i=3D0, l=3Dc.length; i<l; i++) {
			if (c[i] !=3D=3D '')
				o[i] =3D c[i];
		}

		return o;
	},

	_trimComment : function(s) {
		// Remove mce_src, mce_href
		s =3D s.replace(new RegExp('\\smce_src=3D\"[^\"]*\"', 'gi'), "");
		s =3D s.replace(new RegExp('\\smce_href=3D\"[^\"]*\"', 'gi'), "");

		return s;
	},

	_getAttrib : function(e, n, d) {
		var v, ex, nn;

		if (typeof(d) =3D=3D "undefined")
			d =3D "";

		if (!e || e.nodeType !=3D 1)
			return d;

		try {
			v =3D e.getAttribute(n, 0);
		} catch (ex) {
			// IE 7 may cast exception on invalid attributes
			v =3D e.getAttribute(n, 2);
		}

		if (n =3D=3D "class" && !v)
			v =3D e.className;

		if (this.isIE) {
			if (n =3D=3D "http-equiv")
				v =3D e.httpEquiv;

			nn =3D e.nodeName;

			// Skip the default values that IE returns
			if (nn =3D=3D "FORM" && n =3D=3D "enctype" && v =3D=3D =
"application/x-www-form-urlencoded")
				v =3D "";

			if (nn =3D=3D "INPUT" && n =3D=3D "size" && v =3D=3D "20")
				v =3D "";

			if (nn =3D=3D "INPUT" && n =3D=3D "maxlength" && v =3D=3D =
"2147483647")
				v =3D "";

			// Images
			if (n =3D=3D "width" || n =3D=3D "height")
				v =3D e.getAttribute(n, 2);
		}

		if (n =3D=3D 'style' && v) {
			if (!tinyMCE.isOpera)
				v =3D e.style.cssText;

			v =3D tinyMCE.serializeStyle(tinyMCE.parseStyle(v));
		}

		if (this.settings.on_save && n.indexOf('on') !=3D -1 && =
this.settings.on_save && v && v !=3D=3D '')
			v =3D tinyMCE.cleanupEventStr(v);

		return (v && v !=3D=3D '') ? '' + v : d;
	},

	_urlConverter : function(c, n, v) {
		if (!c.settings.on_save)
			return =
tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, v);
		else if (tinyMCE.getParam('convert_urls')) {
			if (!this.urlConverter)
				this.urlConverter =3D eval(tinyMCE.settings.urlconverter_callback);

			return this.urlConverter(v, n, true);
		}

		return v;
	},

	_arrayToRe : function(a, op, be, af) {
		var i, r;

		op =3D typeof(op) =3D=3D "undefined" ? "gi" : op;
		be =3D typeof(be) =3D=3D "undefined" ? "^(" : be;
		af =3D typeof(af) =3D=3D "undefined" ? ")$" : af;

		r =3D be;

		for (i=3D0; i<a.length; i++)
			r +=3D this._wildcardToRe(a[i]) + (i !=3D a.length-1 ? "|" : "");

		r +=3D af;

		return new RegExp(r, op);
	},

	_wildcardToRe : function(s) {
		s =3D s.replace(/\?/g, '(\\S?)');
		s =3D s.replace(/\+/g, '(\\S+)');
		s =3D s.replace(/\*/g, '(\\S*)');

		return s;
	},

	_setupEntities : function() {
		var n, a, i, s =3D this.settings;

		// Setup entities
		if (s.entity_encoding =3D=3D "named") {
			n =3D tinyMCE.clearArray([]);
			a =3D this.split(',', s.entities);
			for (i=3D0; i<a.length; i+=3D2)
				n[a[i]] =3D a[i+1];

			this.entities =3D n;
		}

		this.entitiesDone =3D true;
	},

	_setupRules : function() {
		var s =3D this.settings;

		// Setup default rule
		this.addRuleStr(s.valid_elements);
		this.addRuleStr(s.extended_valid_elements);
		this.addChildRemoveRuleStr(s.valid_child_elements);

		this.rulesDone =3D true;
	},

	_isDuplicate : function(n) {
		var i, l, sn;

		if (!this.settings.fix_content_duplication)
			return false;

		if (tinyMCE.isRealIE && n.nodeType =3D=3D 1) {
			// Mark elements
			if (n.mce_serialized =3D=3D this.serializationId)
				return true;

			n.setAttribute('mce_serialized', this.serializationId);
		} else {
			sn =3D this.serializedNodes;

			// Search lookup table for text nodes  and comments
			for (i=3D0, l =3D sn.length; i<l; i++) {
				if (sn[i] =3D=3D n)
					return true;
			}

			sn.push(n);
		}

		return false;
	}

	};

/* file:jscripts/tiny_mce/classes/TinyMCE_DOMUtils.class.js */

tinyMCE.add(TinyMCE_Engine, {
	createTagHTML : function(tn, a, h) {
		var o =3D '', f =3D tinyMCE.xmlEncode, n;

		o =3D '<' + tn;

		if (a) {
			for (n in a) {
				if (typeof(a[n]) !=3D 'function' && a[n] !=3D null)
					o +=3D ' ' + f(n) + '=3D"' + f('' + a[n]) + '"';
			}
		}

		o +=3D !h ? ' />' : '>' + h + '</' + tn + '>';

		return o;
	},

	createTag : function(d, tn, a, h) {
		var o =3D d.createElement(tn), n;

		if (a) {
			for (n in a) {
				if (typeof(a[n]) !=3D 'function' && a[n] !=3D null)
					tinyMCE.setAttrib(o, n, a[n]);
			}
		}

		if (h)
			o.innerHTML =3D h;

		return o;
	},

	getElementByAttributeValue : function(n, e, a, v) {
		return (n =3D this.getElementsByAttributeValue(n, e, a, v)).length =
=3D=3D 0 ? null : n[0];
	},

	getElementsByAttributeValue : function(n, e, a, v) {
		var i, nl =3D n.getElementsByTagName(e), o =3D [];

		for (i=3D0; i<nl.length; i++) {
			if (tinyMCE.getAttrib(nl[i], a).indexOf(v) !=3D -1)
				o[o.length] =3D nl[i];
		}

		return o;
	},

	isBlockElement : function(n) {
		return n !=3D null && n.nodeType =3D=3D 1 && =
this.blockRegExp.test(n.nodeName);
	},

	getParentBlockElement : function(n, r) {
		return this.getParentNode(n, function(n) {
			return tinyMCE.isBlockElement(n);
		}, r);

		return null;
	},

	insertAfter : function(n, r){
		if (r.nextSibling)
			r.parentNode.insertBefore(n, r.nextSibling);
		else
			r.parentNode.appendChild(n);
	},

	setInnerHTML : function(e, h) {
		var i, nl, n;

		// Convert all strong/em to b/i in Gecko
		if (tinyMCE.isGecko) {
			h =3D h.replace(/<embed([^>]*)>/gi, '<tmpembed$1>');
			h =3D h.replace(/<em([^>]*)>/gi, '<i$1>');
			h =3D h.replace(/<tmpembed([^>]*)>/gi, '<embed$1>');
			h =3D h.replace(/<strong([^>]*)>/gi, '<b$1>');
			h =3D h.replace(/<\/strong>/gi, '</b>');
			h =3D h.replace(/<\/em>/gi, '</i>');
		}

		if (tinyMCE.isRealIE) {
			// Since MSIE handles invalid HTML better that valid XHTML we
			// need to make some things invalid. <hr /> gets converted to <hr>.
			h =3D h.replace(/\s\/>/g, '>');

			// Since MSIE auto generated emtpy P tags some times we must tell it =
to keep the real ones
			h =3D h.replace(/<p([^>]*)>\u00A0?<\/p>/gi, '<p$1 =
mce_keep=3D"true">&nbsp;</p>'); // Keep empty paragraphs
			h =3D h.replace(/<p([^>]*)>\s*&nbsp;\s*<\/p>/gi, '<p$1 =
mce_keep=3D"true">&nbsp;</p>'); // Keep empty paragraphs
			h =3D h.replace(/<p([^>]*)>\s+<\/p>/gi, '<p$1 =
mce_keep=3D"true">&nbsp;</p>'); // Keep empty paragraphs

			// Remove first comment
			e.innerHTML =3D tinyMCE.uniqueTag + h;
			e.firstChild.removeNode(true);

			// Remove weird auto generated empty paragraphs unless it's supposed =
to be there
			nl =3D e.getElementsByTagName("p");
			for (i=3Dnl.length-1; i>=3D0; i--) {
				n =3D nl[i];

				if (n.nodeName =3D=3D 'P' && !n.hasChildNodes() && !n.mce_keep)
					n.parentNode.removeChild(n);
			}
		} else {
			h =3D this.fixGeckoBaseHREFBug(1, e, h);
			e.innerHTML =3D h;
			this.fixGeckoBaseHREFBug(2, e, h);
		}
	},

	getOuterHTML : function(e) {
		var d;

		if (tinyMCE.isIE)
			return e.outerHTML;

		d =3D e.ownerDocument.createElement("body");
		d.appendChild(e.cloneNode(true));

		return d.innerHTML;
	},

	setOuterHTML : function(e, h, d) {
		var d =3D typeof(d) =3D=3D "undefined" ? e.ownerDocument : d, i, nl, =
t;

		if (tinyMCE.isIE && e.nodeType =3D=3D 1)
			e.outerHTML =3D h;
		else {
			t =3D d.createElement("body");
			t.innerHTML =3D h;

			for (i=3D0, nl=3Dt.childNodes; i<nl.length; i++)
				e.parentNode.insertBefore(nl[i].cloneNode(true), e);

			e.parentNode.removeChild(e);
		}
	},

	_getElementById : function(id, d) {
		var e, i, j, f;

		if (typeof(d) =3D=3D "undefined")
			d =3D document;

		e =3D d.getElementById(id);
		if (!e) {
			f =3D d.forms;

			for (i=3D0; i<f.length; i++) {
				for (j=3D0; j<f[i].elements.length; j++) {
					if (f[i].elements[j].name =3D=3D id) {
						e =3D f[i].elements[j];
						break;
					}
				}
			}
		}

		return e;
	},

	getNodeTree : function(n, na, t, nn) {
		return this.selectNodes(n, function(n) {
			return (!t || n.nodeType =3D=3D t) && (!nn || n.nodeName =3D=3D nn);
		}, na ? na : []);
	},

	getParentElement : function(n, na, f, r) {
		var re =3D na ? new RegExp('^(' + na.toUpperCase().replace(/,/g, '|') =
+ ')$') : 0, v;

		// Compatiblity with old scripts where f param was a attribute string
		if (f && typeof(f) =3D=3D 'string')
			return this.getParentElement(n, na, function(no) {return =
tinyMCE.getAttrib(no, f) !=3D=3D '';});

		return this.getParentNode(n, function(n) {
			return ((n.nodeType =3D=3D 1 && !re) || (re && re.test(n.nodeName))) =
&& (!f || f(n));
		}, r);
	},

	getParentNode : function(n, f, r) {
		while (n) {
			if (n =3D=3D r)
				return null;

			if (f(n))
				return n;

			n =3D n.parentNode;
		}

		return null;
	},

	getAttrib : function(elm, name, dv) {
		var v;

		if (typeof(dv) =3D=3D "undefined")
			dv =3D "";

		// Not a element
		if (!elm || elm.nodeType !=3D 1)
			return dv;

		try {
			v =3D elm.getAttribute(name, 0);
		} catch (ex) {
			// IE 7 may cast exception on invalid attributes
			v =3D elm.getAttribute(name, 2);
		}

		// Try className for class attrib
		if (name =3D=3D "class" && !v)
			v =3D elm.className;

		// Workaround for a issue with Firefox 1.5rc2+
		if (tinyMCE.isGecko) {
			if (name =3D=3D "src" && elm.src !=3D null && elm.src !=3D=3D '')
				v =3D elm.src;

			// Workaround for a issue with Firefox 1.5rc2+
			if (name =3D=3D "href" && elm.href !=3D null && elm.href !=3D=3D '')
				v =3D elm.href;
		} else if (tinyMCE.isIE) {
			switch (name) {
				case "http-equiv":
					v =3D elm.httpEquiv;
					break;

				case "width":
				case "height":
					v =3D elm.getAttribute(name, 2);
					break;
			}
		}

		if (name =3D=3D "style" && !tinyMCE.isOpera)
			v =3D elm.style.cssText;

		return (v && v !=3D=3D '') ? v : dv;
	},

	setAttrib : function(el, name, va, fix) {
		if (typeof(va) =3D=3D "number" && va !=3D null)
			va =3D "" + va;

		if (fix) {
			if (va =3D=3D null)
				va =3D "";

			va =3D va.replace(/[^0-9%]/g, '');
		}

		if (name =3D=3D "style")
			el.style.cssText =3D va;

		if (name =3D=3D "class")
			el.className =3D va;

		if (va !=3D null && va !=3D=3D '' && va !=3D -1)
			el.setAttribute(name, va);
		else
			el.removeAttribute(name);
	},

	setStyleAttrib : function(e, n, v) {
		e.style[n] =3D v;

		// Style attrib deleted in IE
		if (tinyMCE.isIE && v =3D=3D null || v =3D=3D '') {
			v =3D tinyMCE.serializeStyle(tinyMCE.parseStyle(e.style.cssText));
			e.style.cssText =3D v;
			e.setAttribute("style", v);
		}
	},

	switchClass : function(ei, c) {
		var e;

		if (tinyMCE.switchClassCache[ei])
			e =3D tinyMCE.switchClassCache[ei];
		else
			e =3D tinyMCE.switchClassCache[ei] =3D document.getElementById(ei);

		if (e) {
			// Keep tile mode
			if (tinyMCE.settings.button_tile_map && e.className && =
e.className.indexOf('mceTiledButton') =3D=3D 0)
				c =3D 'mceTiledButton ' + c;

			e.className =3D c;
		}
	},

	getAbsPosition : function(n, cn) {
		var l =3D 0, t =3D 0;

		while (n && n !=3D cn) {
			l +=3D n.offsetLeft;
			t +=3D n.offsetTop;
			n =3D n.offsetParent;
		}

		return {absLeft : l, absTop : t};
	},

	prevNode : function(e, n) {
		var a =3D n.split(','), i;

		while ((e =3D e.previousSibling) !=3D null) {
			for (i=3D0; i<a.length; i++) {
				if (e.nodeName =3D=3D a[i])
					return e;
			}
		}

		return null;
	},

	nextNode : function(e, n) {
		var a =3D n.split(','), i;

		while ((e =3D e.nextSibling) !=3D null) {
			for (i=3D0; i<a.length; i++) {
				if (e.nodeName =3D=3D a[i])
					return e;
			}
		}

		return null;
	},

	selectElements : function(n, na, f) {
		var i, a =3D [], nl, x;

		for (x=3D0, na =3D na.split(','); x<na.length; x++)
			for (i=3D0, nl =3D n.getElementsByTagName(na[x]); i<nl.length; i++)
				(!f || f(nl[i])) && a.push(nl[i]);

		return a;
	},

	selectNodes : function(n, f, a) {
		var i;

		if (!a)
			a =3D [];

		if (f(n))
			a[a.length] =3D n;

		if (n.hasChildNodes()) {
			for (i=3D0; i<n.childNodes.length; i++)
				tinyMCE.selectNodes(n.childNodes[i], f, a);
		}

		return a;
	},

	addCSSClass : function(e, c, b) {
		var o =3D this.removeCSSClass(e, c);
		return e.className =3D b ? c + (o !=3D=3D '' ? (' ' + o) : '') : (o =
!=3D=3D '' ? (o + ' ') : '') + c;
	},

	removeCSSClass : function(e, c) {
		c =3D e.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' =
');
		return e.className =3D c !=3D ' ' ? c : '';
	},

	hasCSSClass : function(n, c) {
		return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
	},

	renameElement : function(e, n, d) {
		var ne, i, ar;

		d =3D typeof(d) =3D=3D "undefined" ? tinyMCE.selectedInstance.getDoc() =
: d;

		if (e) {
			ne =3D d.createElement(n);

			ar =3D e.attributes;
			for (i=3Dar.length-1; i>-1; i--) {
				if (ar[i].specified && ar[i].nodeValue)
					ne.setAttribute(ar[i].nodeName.toLowerCase(), ar[i].nodeValue);
			}

			ar =3D e.childNodes;
			for (i=3D0; i<ar.length; i++)
				ne.appendChild(ar[i].cloneNode(true));

			e.parentNode.replaceChild(ne, e);
		}
	},

	getViewPort : function(w) {
		var d =3D w.document, m =3D d.compatMode =3D=3D 'CSS1Compat', b =3D =
d.body, de =3D d.documentElement;

		return {
			left : w.pageXOffset || (m ? de.scrollLeft : b.scrollLeft),
			top : w.pageYOffset || (m ? de.scrollTop : b.scrollTop),
			width : w.innerWidth || (m ? de.clientWidth : b.clientWidth),
			height : w.innerHeight || (m ? de.clientHeight : b.clientHeight)
		};
	},

	getStyle : function(n, na, d) {
		if (!n)
			return false;

		// Gecko
		if (tinyMCE.isGecko && n.ownerDocument.defaultView) {
			try {
				return n.ownerDocument.defaultView.getComputedStyle(n, =
null).getPropertyValue(na);
			} catch (n) {
				// Old safari might fail
				return null;
			}
		}

		// Camelcase it, if needed
		na =3D na.replace(/-(\D)/g, function(a, b){
			return b.toUpperCase();
		});

		// IE & Opera
		if (n.currentStyle)
			return n.currentStyle[na];

		return false;
	}

	});

/* file:jscripts/tiny_mce/classes/TinyMCE_URL.class.js */

tinyMCE.add(TinyMCE_Engine, {
	parseURL : function(url_str) {
		var urlParts =3D [], i, pos, lastPos, chr;

		if (url_str) {
			// Parse protocol part
			pos =3D url_str.indexOf('://');
			if (pos !=3D -1) {
				urlParts.protocol =3D url_str.substring(0, pos);
				lastPos =3D pos + 3;
			}

			// Find port or path start
			for (i=3DlastPos; i<url_str.length; i++) {
				chr =3D url_str.charAt(i);

				if (chr =3D=3D ':')
					break;

				if (chr =3D=3D '/')
					break;
			}
			pos =3D i;

			// Get host
			urlParts.host =3D url_str.substring(lastPos, pos);

			// Get port
			urlParts.port =3D "";
			lastPos =3D pos;
			if (url_str.charAt(pos) =3D=3D ':') {
				pos =3D url_str.indexOf('/', lastPos);
				urlParts.port =3D url_str.substring(lastPos+1, pos);
			}

			// Get path
			lastPos =3D pos;
			pos =3D url_str.indexOf('?', lastPos);

			if (pos =3D=3D -1)
				pos =3D url_str.indexOf('#', lastPos);

			if (pos =3D=3D -1)
				pos =3D url_str.length;

			urlParts.path =3D url_str.substring(lastPos, pos);

			// Get query
			lastPos =3D pos;
			if (url_str.charAt(pos) =3D=3D '?') {
				pos =3D url_str.indexOf('#');
				pos =3D (pos =3D=3D -1) ? url_str.length : pos;
				urlParts.query =3D url_str.substring(lastPos+1, pos);
			}

			// Get anchor
			lastPos =3D pos;
			if (url_str.charAt(pos) =3D=3D '#') {
				pos =3D url_str.length;
				urlParts.anchor =3D url_str.substring(lastPos+1, pos);
			}
		}

		return urlParts;
	},

	serializeURL : function(up) {
		var o =3D "";

		if (up.protocol)
			o +=3D up.protocol + "://";

		if (up.host)
			o +=3D up.host;

		if (up.port)
			o +=3D ":" + up.port;

		if (up.path)
			o +=3D up.path;

		if (up.query)
			o +=3D "?" + up.query;

		if (up.anchor)
			o +=3D "#" + up.anchor;

		return o;
	},

	convertAbsoluteURLToRelativeURL : function(base_url, url_to_relative) {
		var baseURL =3D this.parseURL(base_url), targetURL =3D =
this.parseURL(url_to_relative);
		var i, strTok1, strTok2, breakPoint =3D 0, outPath =3D "", forceSlash =
=3D false;
		var fileName, pos;

		if (targetURL.path =3D=3D '')
			targetURL.path =3D "/";
		else
			forceSlash =3D true;

		// Crop away last path part
		base_url =3D baseURL.path.substring(0, baseURL.path.lastIndexOf('/'));
		strTok1 =3D base_url.split('/');
		strTok2 =3D targetURL.path.split('/');

		if (strTok1.length >=3D strTok2.length) {
			for (i=3D0; i<strTok1.length; i++) {
				if (i >=3D strTok2.length || strTok1[i] !=3D strTok2[i]) {
					breakPoint =3D i + 1;
					break;
				}
			}
		}

		if (strTok1.length < strTok2.length) {
			for (i=3D0; i<strTok2.length; i++) {
				if (i >=3D strTok1.length || strTok1[i] !=3D strTok2[i]) {
					breakPoint =3D i + 1;
					break;
				}
			}
		}

		if (breakPoint =3D=3D 1)
			return targetURL.path;

		for (i=3D0; i<(strTok1.length-(breakPoint-1)); i++)
			outPath +=3D "../";

		for (i=3DbreakPoint-1; i<strTok2.length; i++) {
			if (i !=3D (breakPoint-1))
				outPath +=3D "/" + strTok2[i];
			else
				outPath +=3D strTok2[i];
		}

		targetURL.protocol =3D null;
		targetURL.host =3D null;
		targetURL.port =3D null;
		targetURL.path =3D outPath =3D=3D '' && forceSlash ? "/" : outPath;

		// Remove document prefix from local anchors
		fileName =3D baseURL.path;

		if ((pos =3D fileName.lastIndexOf('/')) !=3D -1)
			fileName =3D fileName.substring(pos + 1);

		// Is local anchor
		if (fileName =3D=3D targetURL.path && targetURL.anchor !=3D=3D '')
			targetURL.path =3D "";

		// If empty and not local anchor force filename or slash
		if (targetURL.path =3D=3D '' && !targetURL.anchor)
			targetURL.path =3D fileName !=3D=3D '' ? fileName : "/";

		return this.serializeURL(targetURL);
	},

	convertRelativeToAbsoluteURL : function(base_url, relative_url) {
		var baseURL =3D this.parseURL(base_url), baseURLParts, relURLParts, =
newRelURLParts, numBack, relURL =3D this.parseURL(relative_url), i;
		var len, absPath, start, end, newBaseURLParts;

		if (relative_url =3D=3D '' || relative_url.indexOf('://') !=3D -1 || =
/^(mailto:|javascript:|#|\/)/.test(relative_url))
			return relative_url;

		// Split parts
		baseURLParts =3D baseURL.path.split('/');
		relURLParts =3D relURL.path.split('/');

		// Remove empty chunks
		newBaseURLParts =3D [];
		for (i=3DbaseURLParts.length-1; i>=3D0; i--) {
			if (baseURLParts[i].length =3D=3D 0)
				continue;

			newBaseURLParts[newBaseURLParts.length] =3D baseURLParts[i];
		}
		baseURLParts =3D newBaseURLParts.reverse();

		// Merge relURLParts chunks
		newRelURLParts =3D [];
		numBack =3D 0;
		for (i=3DrelURLParts.length-1; i>=3D0; i--) {
			if (relURLParts[i].length =3D=3D 0 || relURLParts[i] =3D=3D ".")
				continue;

			if (relURLParts[i] =3D=3D '..') {
				numBack++;
				continue;
			}

			if (numBack > 0) {
				numBack--;
				continue;
			}

			newRelURLParts[newRelURLParts.length] =3D relURLParts[i];
		}

		relURLParts =3D newRelURLParts.reverse();

		// Remove end from absolute path
		len =3D baseURLParts.length-numBack;
		absPath =3D (len <=3D 0 ? "" : "/") + baseURLParts.slice(0, =
len).join('/') + "/" + relURLParts.join('/');
		start =3D "";
		end =3D "";

		// Build output URL
		relURL.protocol =3D baseURL.protocol;
		relURL.host =3D baseURL.host;
		relURL.port =3D baseURL.port;

		// Re-add trailing slash if it's removed
		if (relURL.path.charAt(relURL.path.length-1) =3D=3D "/")
			absPath +=3D "/";

		relURL.path =3D absPath;

		return this.serializeURL(relURL);
	},

	convertURL : function(url, node, on_save) {
		var dl =3D document.location, start, portPart, urlParts, baseUrlParts, =
tmpUrlParts, curl;
		var prot =3D dl.protocol, host =3D dl.hostname, port =3D dl.port;

		// Pass through file protocol
		if (prot =3D=3D "file:")
			return url;

		// Something is wrong, remove weirdness
		url =3D tinyMCE.regexpReplace(url, '(http|https):///', '/');

		// Mailto link or anchor (Pass through)
		if (url.indexOf('mailto:') !=3D -1 || url.indexOf('javascript:') !=3D =
-1 || /^[ \t\r\n\+]*[#\?]/.test(url))
			return url;

		// Fix relative/Mozilla
		if (!tinyMCE.isIE && !on_save && url.indexOf("://") =3D=3D -1 && =
url.charAt(0) !=3D '/')
			return tinyMCE.settings.base_href + url;

		// Handle relative URLs
		if (on_save && tinyMCE.getParam('relative_urls')) {
			curl =3D =
tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, url);
			if (curl.charAt(0) =3D=3D '/')
				curl =3D tinyMCE.settings.document_base_prefix + curl;

			urlParts =3D tinyMCE.parseURL(curl);
			tmpUrlParts =3D tinyMCE.parseURL(tinyMCE.settings.document_base_url);

			// Force relative
			if (urlParts.host =3D=3D tmpUrlParts.host && (urlParts.port =3D=3D =
tmpUrlParts.port))
				return =
tinyMCE.convertAbsoluteURLToRelativeURL(tinyMCE.settings.document_base_ur=
l, curl);
		}

		// Handle absolute URLs
		if (!tinyMCE.getParam('relative_urls')) {
			urlParts =3D tinyMCE.parseURL(url);
			baseUrlParts =3D tinyMCE.parseURL(tinyMCE.settings.base_href);

			// Force absolute URLs from relative URLs
			url =3D =
tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, url);

			// If anchor and path is the same page
			if (urlParts.anchor && urlParts.path =3D=3D baseUrlParts.path)
				return "#" + urlParts.anchor;
		}

		// Remove current domain
		if (tinyMCE.getParam('remove_script_host')) {
			start =3D "";
			portPart =3D "";

			if (port !=3D=3D '')
				portPart =3D ":" + port;

			start =3D prot + "//" + host + portPart + "/";

			if (url.indexOf(start) =3D=3D 0)
				url =3D url.substring(start.length-1);
		}

		return url;
	},

	convertAllRelativeURLs : function(body) {
		var i, elms, src, href, mhref, msrc;

		// Convert all image URL:s to absolute URL
		elms =3D body.getElementsByTagName("img");
		for (i=3D0; i<elms.length; i++) {
			src =3D tinyMCE.getAttrib(elms[i], 'src');

			msrc =3D tinyMCE.getAttrib(elms[i], 'mce_src');
			if (msrc !=3D=3D '')
				src =3D msrc;

			if (src !=3D=3D '') {
				src =3D =
tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, src);
				elms[i].setAttribute("src", src);
			}
		}

		// Convert all link URL:s to absolute URL
		elms =3D body.getElementsByTagName("a");
		for (i=3D0; i<elms.length; i++) {
			href =3D tinyMCE.getAttrib(elms[i], 'href');

			mhref =3D tinyMCE.getAttrib(elms[i], 'mce_href');
			if (mhref !=3D=3D '')
				href =3D mhref;

			if (href && href !=3D=3D '') {
				href =3D =
tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, href);
				elms[i].setAttribute("href", href);
			}
		}
	}

	});

/* file:jscripts/tiny_mce/classes/TinyMCE_Array.class.js */

tinyMCE.add(TinyMCE_Engine, {
	clearArray : function(a) {
		var n;

		for (n in a)
			a[n] =3D null;

		return a;
	},

	explode : function(d, s) {
		var ar =3D s.split(d), oar =3D [], i;

		for (i =3D 0; i<ar.length; i++) {
			if (ar[i] !=3D=3D '')
				oar[oar.length] =3D ar[i];
		}

		return oar;
	}
});

/* file:jscripts/tiny_mce/classes/TinyMCE_Event.class.js */

tinyMCE.add(TinyMCE_Engine, {
	_setEventsEnabled : function(node, state) {
		var evs, x, y, elms, i, event;
		var events =3D ['onfocus','onblur','onclick','ondblclick',
					'onmousedown','onmouseup','onmouseover','onmousemove',
					'onmouseout','onkeypress','onkeydown','onkeydown','onkeyup'];

		evs =3D tinyMCE.settings.event_elements.split(',');
		for (y=3D0; y<evs.length; y++){
			elms =3D node.getElementsByTagName(evs[y]);
			for (i=3D0; i<elms.length; i++) {
				event =3D "";

				for (x=3D0; x<events.length; x++) {
					if ((event =3D tinyMCE.getAttrib(elms[i], events[x])) !=3D=3D '') {
						event =3D tinyMCE.cleanupEventStr("" + event);

						if (!state)
							event =3D "return true;" + event;
						else
							event =3D event.replace(/^return true;/gi, '');

						elms[i].removeAttribute(events[x]);
						elms[i].setAttribute(events[x], event);
					}
				}
			}
		}
	},

	_eventPatch : function(editor_id) {
		var n, inst, win, e;

		// Remove odd, error
		if (typeof(tinyMCE) =3D=3D "undefined")
			return true;

		try {
			// Try selected instance first
			if (tinyMCE.selectedInstance) {
				win =3D tinyMCE.selectedInstance.getWin();

				if (win && win.event) {
					e =3D win.event;

					if (!e.target)
						e.target =3D e.srcElement;

					TinyMCE_Engine.prototype.handleEvent(e);
					return;
				}
			}

			// Search for it
			for (n in tinyMCE.instances) {
				inst =3D tinyMCE.instances[n];

				if (!tinyMCE.isInstance(inst))
					continue;

				inst.select();
				win =3D inst.getWin();

				if (win && win.event) {
					e =3D win.event;

					if (!e.target)
						e.target =3D e.srcElement;

					TinyMCE_Engine.prototype.handleEvent(e);
					return;
				}
			}
		} catch (ex) {
			// Ignore error if iframe is pointing to external URL
		}
	},

	findEvent : function(e) {
		var n, inst;

		if (e)
			return e;

		for (n in tinyMCE.instances) {
			inst =3D tinyMCE.instances[n];

			if (tinyMCE.isInstance(inst) && inst.getWin().event)
				return inst.getWin().event;
		}

		return null;
	},

	unloadHandler : function() {
		tinyMCE.triggerSave(true, true);
	},

	addEventHandlers : function(inst) {
		this.setEventHandlers(inst, 1);
	},

	setEventHandlers : function(inst, s) {
		var doc =3D inst.getDoc(), ie, ot, i, f =3D s ? tinyMCE.addEvent : =
tinyMCE.removeEvent;

		ie =3D ['keypress', 'keyup', 'keydown', 'click', 'mouseup', =
'mousedown', 'controlselect', 'dblclick'];
		ot =3D ['keypress', 'keyup', 'keydown', 'click', 'mouseup', =
'mousedown', 'focus', 'blur', 'dragdrop'];

		inst.switchSettings();

		if (tinyMCE.isIE) {
			for (i=3D0; i<ie.length; i++)
				f(doc, ie[i], TinyMCE_Engine.prototype._eventPatch);
		} else {
			for (i=3D0; i<ot.length; i++)
				f(doc, ot[i], tinyMCE.handleEvent);

			// Force designmode
			try {
				doc.designMode =3D "On";
			} catch (e) {
				// Ignore
			}
		}
	},

	onMouseMove : function() {
		var inst, lh;

		// Fix for IE7 bug where it's not restoring hover on anchors correctly
		if (tinyMCE.lastHover) {
			lh =3D tinyMCE.lastHover;

			// Call out on menus and refresh class on normal buttons
			if (lh.className.indexOf('mceMenu') !=3D -1)
				tinyMCE._menuButtonEvent('out', lh);
			else
				lh.className =3D lh.className;

			tinyMCE.lastHover =3D null;
		}

		if (!tinyMCE.hasMouseMoved) {
			inst =3D tinyMCE.selectedInstance;

			// Workaround for bug #1437457 (Odd MSIE bug)
			if (inst.isFocused) {
				inst.undoBookmark =3D inst.selection.getBookmark();
				tinyMCE.hasMouseMoved =3D true;
			}
		}

	//	tinyMCE.cancelEvent(inst.getWin().event);
	//	return false;
	},

	cancelEvent : function(e) {
		if (!e)
			return false;

		if (tinyMCE.isIE) {
			e.returnValue =3D false;
			e.cancelBubble =3D true;
		} else {
			e.preventDefault();
			e.stopPropagation && e.stopPropagation();
		}

		return false;
	},

	addEvent : function(o, n, h) {
		// Add cleanup for all non unload events
		if (n !=3D 'unload') {
			function clean() {
				var ex;

				try {
					tinyMCE.removeEvent(o, n, h);
					tinyMCE.removeEvent(window, 'unload', clean);
					o =3D n =3D h =3D null;
				} catch (ex) {
					// IE may produce access denied exception on unload
				}
			}

			// Add memory cleaner
			tinyMCE.addEvent(window, 'unload', clean);
		}

		if (o.attachEvent)
			o.attachEvent("on" + n, h);
		else
			o.addEventListener(n, h, false);
	},

	removeEvent : function(o, n, h) {
		if (o.detachEvent)
			o.detachEvent("on" + n, h);
		else
			o.removeEventListener(n, h, false);
	},

	addSelectAccessibility : function(e, s, w) {
		// Add event handlers=20
		if (!s._isAccessible) {
			s.onkeydown =3D tinyMCE.accessibleEventHandler;
			s.onblur =3D tinyMCE.accessibleEventHandler;
			s._isAccessible =3D true;
			s._win =3D w;
		}

		return false;
	},

	accessibleEventHandler : function(e) {
		var elm, win =3D this._win;

		e =3D tinyMCE.isIE ? win.event : e;
		elm =3D tinyMCE.isIE ? e.srcElement : e.target;

		// Unpiggyback onchange on blur
		if (e.type =3D=3D "blur") {
			if (elm.oldonchange) {
				elm.onchange =3D elm.oldonchange;
				elm.oldonchange =3D null;
			}

			return true;
		}

		// Piggyback onchange
		if (elm.nodeName =3D=3D "SELECT" && !elm.oldonchange) {
			elm.oldonchange =3D elm.onchange;
			elm.onchange =3D null;
		}

		// Execute onchange and remove piggyback
		if (e.keyCode =3D=3D 13 || e.keyCode =3D=3D 32) {
			elm.onchange =3D elm.oldonchange;
			elm.onchange();
			elm.oldonchange =3D null;

			tinyMCE.cancelEvent(e);
			return false;
		}

		return true;
	},

	_resetIframeHeight : function() {
		var ife;

		if (tinyMCE.isRealIE) {
			ife =3D tinyMCE.selectedInstance.iframeElement;

	/*		if (ife._oldWidth) {
				ife.style.width =3D ife._oldWidth;
				ife.width =3D ife._oldWidth;
			}*/

			if (ife._oldHeight) {
				ife.style.height =3D ife._oldHeight;
				ife.height =3D ife._oldHeight;
			}
		}
	}

	});

/* file:jscripts/tiny_mce/classes/TinyMCE_Selection.class.js */

function TinyMCE_Selection(inst) {
	this.instance =3D inst;
};

TinyMCE_Selection.prototype =3D {
	getSelectedHTML : function() {
		var inst =3D this.instance, e, r =3D this.getRng(), h;

		if (!r)
			return null;

		e =3D document.createElement("body");

		if (r.cloneContents)
			e.appendChild(r.cloneContents());
		else if (typeof(r.item) !=3D 'undefined' || typeof(r.htmlText) !=3D =
'undefined')
			e.innerHTML =3D r.item ? r.item(0).outerHTML : r.htmlText;
		else
			e.innerHTML =3D r.toString(); // Failed, use text for now

		h =3D tinyMCE._cleanupHTML(inst, inst.contentDocument, inst.settings, =
e, e, false, true, false);

		// When editing always use fonts internaly
		//if (tinyMCE.getParam("convert_fonts_to_spans"))
		//	tinyMCE.convertSpansToFonts(inst.getDoc());

		return h;
	},

	getSelectedText : function() {
		var inst =3D this.instance, d, r, s, t;

		if (tinyMCE.isIE) {
			d =3D inst.getDoc();

			if (d.selection.type =3D=3D "Text") {
				r =3D d.selection.createRange();
				t =3D r.text;
			} else
				t =3D '';
		} else {
			s =3D this.getSel();

			if (s && s.toString)
				t =3D s.toString();
			else
				t =3D '';
		}

		return t;
	},

	getBookmark : function(simple) {
		var inst =3D this.instance, rng =3D this.getRng(), doc =3D =
inst.getDoc(), b =3D inst.getBody();
		var trng, sx, sy, xx =3D -999999999, vp =3D inst.getViewPort();
		var sp, le, s, e, nl, i, si, ei, w;

		sx =3D vp.left;
		sy =3D vp.top;

		if (simple)
			return {rng : rng, scrollX : sx, scrollY : sy};

		if (tinyMCE.isRealIE) {
			if (rng.item) {
				e =3D rng.item(0);

				nl =3D b.getElementsByTagName(e.nodeName);
				for (i=3D0; i<nl.length; i++) {
					if (e =3D=3D nl[i]) {
						sp =3D i;
						break;
					}
				}

				return {
					tag : e.nodeName,
					index : sp,
					scrollX : sx,
					scrollY : sy
				};
			} else {
				trng =3D doc.body.createTextRange();
				trng.moveToElementText(inst.getBody());
				trng.collapse(true);
				bp =3D Math.abs(trng.move('character', xx));

				trng =3D rng.duplicate();
				trng.collapse(true);
				sp =3D Math.abs(trng.move('character', xx));

				trng =3D rng.duplicate();
				trng.collapse(false);
				le =3D Math.abs(trng.move('character', xx)) - sp;

				return {
					start : sp - bp,
					length : le,
					scrollX : sx,
					scrollY : sy
				};
			}
		} else {
			s =3D this.getSel();
			e =3D this.getFocusElement();

			if (!s)
				return null;

			if (e && e.nodeName =3D=3D 'IMG') {
				/*nl =3D b.getElementsByTagName('IMG');
				for (i=3D0; i<nl.length; i++) {
					if (e =3D=3D nl[i]) {
						sp =3D i;
						break;
					}
				}*/

				return {
					start : -1,
					end : -1,
					index : sp,
					scrollX : sx,
					scrollY : sy
				};
			}

			// Caret or selection
			if (s.anchorNode =3D=3D s.focusNode && s.anchorOffset =3D=3D =
s.focusOffset) {
				e =3D this._getPosText(b, s.anchorNode, s.focusNode);

				if (!e)
					return {scrollX : sx, scrollY : sy};

				return {
					start : e.start + s.anchorOffset,
					end : e.end + s.focusOffset,
					scrollX : sx,
					scrollY : sy
				};
			} else {
				e =3D this._getPosText(b, rng.startContainer, rng.endContainer);

				if (!e)
					return {scrollX : sx, scrollY : sy};

				return {
					start : e.start + rng.startOffset,
					end : e.end + rng.endOffset,
					scrollX : sx,
					scrollY : sy
				};
			}
		}

		return null;
	},

	moveToBookmark : function(bookmark) {
		var inst =3D this.instance, rng, nl, i, ex, b =3D inst.getBody(), sd;
		var doc =3D inst.getDoc(), win =3D inst.getWin(), sel =3D =
this.getSel();

		if (!bookmark)
			return false;

		if (tinyMCE.isSafari && bookmark.rng) {
			sel.setBaseAndExtent(bookmark.rng.startContainer, =
bookmark.rng.startOffset, bookmark.rng.endContainer, =
bookmark.rng.endOffset);
			return true;
		}

		if (tinyMCE.isRealIE) {
			if (bookmark.rng) {
				try {
					bookmark.rng.select();
				} catch (ex) {
					// Ignore
				}

				return true;
			}

			win.focus();

			if (bookmark.tag) {
				rng =3D b.createControlRange();

				nl =3D b.getElementsByTagName(bookmark.tag);

				if (nl.length > bookmark.index) {
					try {
						rng.addElement(nl[bookmark.index]);
					} catch (ex) {
						// Might be thrown if the node no longer exists
					}
				}
			} else {
				// Try/catch needed since this operation breaks when TinyMCE is =
placed in hidden divs/tabs
				try {
					// Incorrect bookmark
					if (bookmark.start < 0)
						return true;

					rng =3D inst.getSel().createRange();
					rng.moveToElementText(inst.getBody());
					rng.collapse(true);
					rng.moveStart('character', bookmark.start);
					rng.moveEnd('character', bookmark.length);
				} catch (ex) {
					return true;
				}
			}

			rng.select();

			win.scrollTo(bookmark.scrollX, bookmark.scrollY);
			return true;
		}

		if (tinyMCE.isGecko || tinyMCE.isOpera) {
			if (!sel)
				return false;

			if (bookmark.rng) {
				sel.removeAllRanges();
				sel.addRange(bookmark.rng);
			}

			if (bookmark.start !=3D -1 && bookmark.end !=3D -1) {
				try {
					sd =3D this._getTextPos(b, bookmark.start, bookmark.end);
					rng =3D doc.createRange();
					rng.setStart(sd.startNode, sd.startOffset);
					rng.setEnd(sd.endNode, sd.endOffset);
					sel.removeAllRanges();
					sel.addRange(rng);

					if (!tinyMCE.isOpera)
						win.focus();
				} catch (ex) {
					// Ignore
				}
			}

			/*
			if (typeof(bookmark.index) !=3D 'undefined') {
				tinyMCE.selectElements(b, 'IMG', function (n) {
					if (bookmark.index-- =3D=3D 0) {
						// Select image in Gecko here
					}

					return false;
				});
			}
			*/

			win.scrollTo(bookmark.scrollX, bookmark.scrollY);
			return true;
		}

		return false;
	},

	_getPosText : function(r, sn, en) {
		var w =3D document.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, =
false), n, p =3D 0, d =3D {};

		while ((n =3D w.nextNode()) !=3D null) {
			if (n =3D=3D sn)
				d.start =3D p;

			if (n =3D=3D en) {
				d.end =3D p;
				return d;
			}

			p +=3D n.nodeValue ? n.nodeValue.length : 0;
		}

		return null;
	},

	_getTextPos : function(r, sp, ep) {
		var w =3D document.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, =
false), n, p =3D 0, d =3D {};

		while ((n =3D w.nextNode()) !=3D null) {
			p +=3D n.nodeValue ? n.nodeValue.length : 0;

			if (p >=3D sp && !d.startNode) {
				d.startNode =3D n;
				d.startOffset =3D sp - (p - n.nodeValue.length);
			}

			if (p >=3D ep) {
				d.endNode =3D n;
				d.endOffset =3D ep - (p - n.nodeValue.length);

				return d;
			}
		}

		return null;
	},

	selectNode : function(node, collapse, select_text_node, to_start) {
		var inst =3D this.instance, sel, rng, nodes;

		if (!node)
			return;

		if (typeof(collapse) =3D=3D "undefined")
			collapse =3D true;

		if (typeof(select_text_node) =3D=3D "undefined")
			select_text_node =3D false;

		if (typeof(to_start) =3D=3D "undefined")
			to_start =3D true;

		if (inst.settings.auto_resize)
			inst.resizeToContent();

		if (tinyMCE.isRealIE) {
			rng =3D inst.getDoc().body.createTextRange();

			try {
				rng.moveToElementText(node);

				if (collapse)
					rng.collapse(to_start);

				rng.select();
			} catch (e) {
				// Throws illigal agrument in MSIE some times
			}
		} else {
			sel =3D this.getSel();

			if (!sel)
				return;

			if (tinyMCE.isSafari) {
				sel.setBaseAndExtent(node, 0, node, node.innerText.length);

				if (collapse) {
					if (to_start)
						sel.collapseToStart();
					else
						sel.collapseToEnd();
				}

				this.scrollToNode(node);

				return;
			}

			rng =3D inst.getDoc().createRange();

			if (select_text_node) {
				// Find first textnode in tree
				nodes =3D tinyMCE.getNodeTree(node, [], 3);
				if (nodes.length > 0)
					rng.selectNodeContents(nodes[0]);
				else
					rng.selectNodeContents(node);
			} else
				rng.selectNode(node);

			if (collapse) {
				// Special treatment of textnode collapse
				if (!to_start && node.nodeType =3D=3D 3) {
					rng.setStart(node, node.nodeValue.length);
					rng.setEnd(node, node.nodeValue.length);
				} else
					rng.collapse(to_start);
			}

			sel.removeAllRanges();
			sel.addRange(rng);
		}

		this.scrollToNode(node);

		// Set selected element
		tinyMCE.selectedElement =3D null;
		if (node.nodeType =3D=3D 1)
			tinyMCE.selectedElement =3D node;
	},

	scrollToNode : function(node) {
		var inst =3D this.instance, w =3D inst.getWin(), vp =3D =
inst.getViewPort(), pos =3D tinyMCE.getAbsPosition(node), cvp, p, cwin;

		// Only scroll if out of visible area
		if (pos.absLeft < vp.left || pos.absLeft > vp.left + vp.width || =
pos.absTop < vp.top || pos.absTop > vp.top + (vp.height-25))
			w.scrollTo(pos.absLeft, pos.absTop - vp.height + 25);

		// Scroll container window
		if (inst.settings.auto_resize) {
			cwin =3D inst.getContainerWin();
			cvp =3D tinyMCE.getViewPort(cwin);
			p =3D this.getAbsPosition(node);

			if (p.absLeft < cvp.left || p.absLeft > cvp.left + cvp.width || =
p.absTop < cvp.top || p.absTop > cvp.top + cvp.height)
				cwin.scrollTo(p.absLeft, p.absTop - cvp.height + 25);
		}
	},

	getAbsPosition : function(n) {
		var pos =3D tinyMCE.getAbsPosition(n), ipos =3D =
tinyMCE.getAbsPosition(this.instance.iframeElement);

		return {
			absLeft : ipos.absLeft + pos.absLeft,
			absTop : ipos.absTop + pos.absTop
		};
	},

	getSel : function() {
		var inst =3D this.instance;

		if (tinyMCE.isRealIE)
			return inst.getDoc().selection;

		return inst.contentWindow.getSelection();
	},

	getRng : function() {
		var s =3D this.getSel();

		if (s =3D=3D null)
			return null;

		if (tinyMCE.isRealIE)
			return s.createRange();

		if (tinyMCE.isSafari && !s.getRangeAt)
			return '' + window.getSelection();

		if (s.rangeCount > 0)
			return s.getRangeAt(0);

		return null;
	},

	isCollapsed : function() {
		var r =3D this.getRng();

		if (r.item)
			return false;

		return r.boundingWidth =3D=3D 0 || this.getSel().isCollapsed;
	},

	collapse : function(b) {
		var r =3D this.getRng(), s =3D this.getSel();

		if (r.select) {
			r.collapse(b);
			r.select();
		} else {
			if (b)
				s.collapseToStart();
			else
				s.collapseToEnd();
		}
	},

	getFocusElement : function() {
		var inst =3D this.instance, doc, rng, sel, elm;

		if (tinyMCE.isRealIE) {
			doc =3D inst.getDoc();
			rng =3D doc.selection.createRange();

	//		if (rng.collapse)
	//			rng.collapse(true);

			elm =3D rng.item ? rng.item(0) : rng.parentElement();
		} else {
			if (!tinyMCE.isSafari && inst.isHidden())
				return inst.getBody();

			sel =3D this.getSel();
			rng =3D this.getRng();

			if (!sel || !rng)
				return null;

			elm =3D rng.commonAncestorContainer;
			//elm =3D (sel && sel.anchorNode) ? sel.anchorNode : null;

			// Handle selection a image or other control like element such as =
anchors
			if (!rng.collapsed) {
				// Is selection small
				if (rng.startContainer =3D=3D rng.endContainer) {
					if (rng.startOffset - rng.endOffset < 2) {
						if (rng.startContainer.hasChildNodes())
							elm =3D rng.startContainer.childNodes[rng.startOffset];
					}
				}
			}

			// Get the element parent of the node
			elm =3D tinyMCE.getParentElement(elm);

			//if (tinyMCE.selectedElement !=3D null && =
tinyMCE.selectedElement.nodeName.toLowerCase() =3D=3D "img")
			//	elm =3D tinyMCE.selectedElement;
		}

		return elm;
	}

	};

/* file:jscripts/tiny_mce/classes/TinyMCE_UndoRedo.class.js */

function TinyMCE_UndoRedo(inst) {
	this.instance =3D inst;
	this.undoLevels =3D [];
	this.undoIndex =3D 0;
	this.typingUndoIndex =3D -1;
	this.undoRedo =3D true;
};

TinyMCE_UndoRedo.prototype =3D {
	add : function(l) {
		var b, customUndoLevels, newHTML, inst =3D this.instance, i, ul, ur;

		if (l) {
			this.undoLevels[this.undoLevels.length] =3D l;
			return true;
		}

		if (this.typingUndoIndex !=3D -1) {
			this.undoIndex =3D this.typingUndoIndex;

			if (tinyMCE.typingUndoIndex !=3D -1)
				tinyMCE.undoIndex =3D tinyMCE.typingUndoIndex;
		}

		newHTML =3D tinyMCE.trim(inst.getBody().innerHTML);
		if (this.undoLevels[this.undoIndex] && newHTML !=3D =
this.undoLevels[this.undoIndex].content) {
			//tinyMCE.debug(newHTML, this.undoLevels[this.undoIndex].content);

			// Is dirty again
			inst.isNotDirty =3D false;

			tinyMCE.dispatchCallback(inst, 'onchange_callback', 'onChange', =
inst);

			// Time to compress
			customUndoLevels =3D tinyMCE.settings.custom_undo_redo_levels;
			if (customUndoLevels !=3D -1 && this.undoLevels.length > =
customUndoLevels) {
				for (i=3D0; i<this.undoLevels.length-1; i++)
					this.undoLevels[i] =3D this.undoLevels[i+1];

				this.undoLevels.length--;
				this.undoIndex--;

				// Todo: Implement global undo/redo logic here
			}

			b =3D inst.undoBookmark;

			if (!b)
				b =3D inst.selection.getBookmark();

			this.undoIndex++;
			this.undoLevels[this.undoIndex] =3D {
				content : newHTML,
				bookmark : b
			};

			// Remove all above from global undo/redo
			ul =3D tinyMCE.undoLevels;
			for (i=3DtinyMCE.undoIndex + 1; i<ul.length; i++) {
				ur =3D ul[i].undoRedo;

				if (ur.undoIndex =3D=3D ur.undoLevels.length -1)
					ur.undoIndex--;

				ur.undoLevels.length--;
			}

			// Add global undo level
			tinyMCE.undoLevels[tinyMCE.undoIndex++] =3D inst;
			tinyMCE.undoLevels.length =3D tinyMCE.undoIndex;

			this.undoLevels.length =3D this.undoIndex + 1;

			return true;
		}

		return false;
	},

	undo : function() {
		var inst =3D this.instance;

		// Do undo
		if (this.undoIndex > 0) {
			this.undoIndex--;

			tinyMCE.setInnerHTML(inst.getBody(), =
this.undoLevels[this.undoIndex].content);
			inst.repaint();

			if (inst.settings.custom_undo_redo_restore_selection)
				=
inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark);
		}
	},

	redo : function() {
		var inst =3D this.instance;

		tinyMCE.execCommand("mceEndTyping");

		if (this.undoIndex < (this.undoLevels.length-1)) {
			this.undoIndex++;

			tinyMCE.setInnerHTML(inst.getBody(), =
this.undoLevels[this.undoIndex].content);
			inst.repaint();

			if (inst.settings.custom_undo_redo_restore_selection)
				=
inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark);
		}

		tinyMCE.triggerNodeChange();
	}

	};

/* file:jscripts/tiny_mce/classes/TinyMCE_ForceParagraphs.class.js */

var TinyMCE_ForceParagraphs =3D {
	_insertPara : function(inst, e) {
		var doc =3D inst.getDoc(), sel =3D inst.getSel(), body =3D =
inst.getBody(), win =3D inst.contentWindow, rng =3D sel.getRangeAt(0);
		var rootElm =3D doc.documentElement, blockName =3D "P", startNode, =
endNode, startBlock, endBlock;
		var rngBefore, rngAfter, direct, startNode, startOffset, endNode, =
endOffset, b =3D tinyMCE.isOpera ? inst.selection.getBookmark() : null;
		var paraBefore, paraAfter, startChop, endChop, contents, i;

		function isEmpty(para) {
			var nodes;

			function isEmptyHTML(html) {
				return html.replace(new RegExp('[ \t\r\n]+', 'g'), '').toLowerCase() =
=3D=3D '';
			}

			// Check for images
			if (para.getElementsByTagName("img").length > 0)
				return false;

			// Check for tables
			if (para.getElementsByTagName("table").length > 0)
				return false;

			// Check for HRs
			if (para.getElementsByTagName("hr").length > 0)
				return false;

			// Check all textnodes
			nodes =3D tinyMCE.getNodeTree(para, [], 3);
			for (i=3D0; i<nodes.length; i++) {
				if (!isEmptyHTML(nodes[i].nodeValue))
					return false;
			}

			// No images, no tables, no hrs, no text content then it's empty
			return true;
		}

	//	tinyMCE.debug(body.innerHTML);

	//	debug(e.target, sel.anchorNode.nodeName, sel.focusNode.nodeName, =
rng.startContainer, rng.endContainer, rng.commonAncestorContainer, =
sel.anchorOffset, sel.focusOffset, rng.toString());

		// Setup before range
		rngBefore =3D doc.createRange();
		rngBefore.setStart(sel.anchorNode, sel.anchorOffset);
		rngBefore.collapse(true);

		// Setup after range
		rngAfter =3D doc.createRange();
		rngAfter.setStart(sel.focusNode, sel.focusOffset);
		rngAfter.collapse(true);

		// Setup start/end points
		direct =3D rngBefore.compareBoundaryPoints(rngBefore.START_TO_END, =
rngAfter) < 0;
		startNode =3D direct ? sel.anchorNode : sel.focusNode;
		startOffset =3D direct ? sel.anchorOffset : sel.focusOffset;
		endNode =3D direct ? sel.focusNode : sel.anchorNode;
		endOffset =3D direct ? sel.focusOffset : sel.anchorOffset;

		startNode =3D startNode.nodeName =3D=3D "HTML" ? doc.body : startNode; =
// Fix for Opera bug: =
https://bugs.opera.com/show_bug.cgi?id=3D273224&comments=3Dyes
		startNode =3D startNode.nodeName =3D=3D "BODY" ? startNode.firstChild =
: startNode;
		endNode =3D endNode.nodeName =3D=3D "BODY" ? endNode.firstChild : =
endNode;

		// Get block elements
		startBlock =3D inst.getParentBlockElement(startNode);
		endBlock =3D inst.getParentBlockElement(endNode);

		// If absolute force paragraph generation within
		if (startBlock && (startBlock.nodeName =3D=3D 'CAPTION' || =
/absolute|relative|static/gi.test(startBlock.style.position)))
			startBlock =3D null;

		if (endBlock && (endBlock.nodeName =3D=3D 'CAPTION' || =
/absolute|relative|static/gi.test(endBlock.style.position)))
			endBlock =3D null;

		// Use current block name
		if (startBlock !=3D null) {
			blockName =3D startBlock.nodeName;

			// Use P instead
			if (/(TD|TABLE|TH|CAPTION)/.test(blockName) || (blockName =3D=3D =
"DIV" && /left|right/gi.test(startBlock.style.cssFloat)))
				blockName =3D "P";
		}

		// Within a list use normal behaviour
		if (tinyMCE.getParentElement(startBlock, "OL,UL", null, body) !=3D =
null)
			return false;

		// Within a table create new paragraphs
		if ((startBlock !=3D null && startBlock.nodeName =3D=3D "TABLE") || =
(endBlock !=3D null && endBlock.nodeName =3D=3D "TABLE"))
			startBlock =3D endBlock =3D null;

		// Setup new paragraphs
		paraBefore =3D (startBlock !=3D null && startBlock.nodeName =3D=3D =
blockName) ? startBlock.cloneNode(false) : doc.createElement(blockName);
		paraAfter =3D (endBlock !=3D null && endBlock.nodeName =3D=3D =
blockName) ? endBlock.cloneNode(false) : doc.createElement(blockName);

		// Is header, then force paragraph under
		if (/^(H[1-6])$/.test(blockName))
			paraAfter =3D doc.createElement("p");

		// Setup chop nodes
		startChop =3D startNode;
		endChop =3D endNode;

		// Get startChop node
		node =3D startChop;
		do {
			if (node =3D=3D body || node.nodeType =3D=3D 9 || =
tinyMCE.isBlockElement(node))
				break;

			startChop =3D node;
		} while ((node =3D node.previousSibling ? node.previousSibling : =
node.parentNode));

		// Get endChop node
		node =3D endChop;
		do {
			if (node =3D=3D body || node.nodeType =3D=3D 9 || =
tinyMCE.isBlockElement(node))
				break;

			endChop =3D node;
		} while ((node =3D node.nextSibling ? node.nextSibling : =
node.parentNode));

		// Fix when only a image is within the TD
		if (startChop.nodeName =3D=3D "TD")
			startChop =3D startChop.firstChild;

		if (endChop.nodeName =3D=3D "TD")
			endChop =3D endChop.lastChild;

		// If not in a block element
		if (startBlock =3D=3D null) {
			// Delete selection
			rng.deleteContents();

			if (!tinyMCE.isSafari)
				sel.removeAllRanges();

			if (startChop !=3D rootElm && endChop !=3D rootElm) {
				// Insert paragraph before
				rngBefore =3D rng.cloneRange();

				if (startChop =3D=3D body)
					rngBefore.setStart(startChop, 0);
				else
					rngBefore.setStartBefore(startChop);

				paraBefore.appendChild(rngBefore.cloneContents());

				// Insert paragraph after
				if (endChop.parentNode.nodeName =3D=3D blockName)
					endChop =3D endChop.parentNode;

				// If not after image
				//if (rng.startContainer.nodeName !=3D "BODY" && =
rng.endContainer.nodeName !=3D "BODY")
					rng.setEndAfter(endChop);

				if (endChop.nodeName !=3D "#text" && endChop.nodeName !=3D "BODY")
					rngBefore.setEndAfter(endChop);

				contents =3D rng.cloneContents();
				if (contents.firstChild && (contents.firstChild.nodeName =3D=3D =
blockName || contents.firstChild.nodeName =3D=3D "BODY"))
					paraAfter.innerHTML =3D contents.firstChild.innerHTML;
				else
					paraAfter.appendChild(contents);

				// Check if it's a empty paragraph
				if (isEmpty(paraBefore))
					paraBefore.innerHTML =3D "&nbsp;";

				// Check if it's a empty paragraph
				if (isEmpty(paraAfter))
					paraAfter.innerHTML =3D "&nbsp;";

				// Delete old contents
				rng.deleteContents();
				rngAfter.deleteContents();
				rngBefore.deleteContents();

				// Insert new paragraphs
				if (tinyMCE.isOpera) {
					paraBefore.normalize();
					rngBefore.insertNode(paraBefore);
					paraAfter.normalize();
					rngBefore.insertNode(paraAfter);
				} else {
					paraAfter.normalize();
					rngBefore.insertNode(paraAfter);
					paraBefore.normalize();
					rngBefore.insertNode(paraBefore);
				}

				//tinyMCE.debug("1: ", paraBefore.innerHTML, paraAfter.innerHTML);
			} else {
				body.innerHTML =3D "<" + blockName + ">&nbsp;</" + blockName + "><" =
+ blockName + ">&nbsp;</" + blockName + ">";
				paraAfter =3D body.childNodes[1];
			}

			inst.selection.moveToBookmark(b);
			inst.selection.selectNode(paraAfter, true, true);

			return true;
		}

		// Place first part within new paragraph
		if (startChop.nodeName =3D=3D blockName)
			rngBefore.setStart(startChop, 0);
		else
			rngBefore.setStartBefore(startChop);

		rngBefore.setEnd(startNode, startOffset);
		paraBefore.appendChild(rngBefore.cloneContents());

		// Place secound part within new paragraph
		rngAfter.setEndAfter(endChop);
		rngAfter.setStart(endNode, endOffset);
		contents =3D rngAfter.cloneContents();

		if (contents.firstChild && contents.firstChild.nodeName =3D=3D =
blockName) {
	/*		var nodes =3D contents.firstChild.childNodes;
			for (i=3D0; i<nodes.length; i++) {
				//tinyMCE.debug(nodes[i].nodeName);
				if (nodes[i].nodeName !=3D "BODY")
					paraAfter.appendChild(nodes[i]);
			}
	*/
			paraAfter.innerHTML =3D contents.firstChild.innerHTML;
		} else
			paraAfter.appendChild(contents);

		// Check if it's a empty paragraph
		if (isEmpty(paraBefore))
			paraBefore.innerHTML =3D "&nbsp;";

		// Check if it's a empty paragraph
		if (isEmpty(paraAfter))
			paraAfter.innerHTML =3D "&nbsp;";

		// Create a range around everything
		rng =3D doc.createRange();

		if (!startChop.previousSibling && =
startChop.parentNode.nodeName.toUpperCase() =3D=3D blockName) {
			rng.setStartBefore(startChop.parentNode);
		} else {
			if (rngBefore.startContainer.nodeName.toUpperCase() =3D=3D blockName =
&& rngBefore.startOffset =3D=3D 0)
				rng.setStartBefore(rngBefore.startContainer);
			else
				rng.setStart(rngBefore.startContainer, rngBefore.startOffset);
		}

		if (!endChop.nextSibling && endChop.parentNode.nodeName.toUpperCase() =
=3D=3D blockName)
			rng.setEndAfter(endChop.parentNode);
		else
			rng.setEnd(rngAfter.endContainer, rngAfter.endOffset);

		// Delete all contents and insert new paragraphs
		rng.deleteContents();

		if (tinyMCE.isOpera) {
			rng.insertNode(paraBefore);
			rng.insertNode(paraAfter);
		} else {
			rng.insertNode(paraAfter);
			rng.insertNode(paraBefore);
		}

		//tinyMCE.debug("2", paraBefore.innerHTML, paraAfter.innerHTML);

		// Normalize
		paraAfter.normalize();
		paraBefore.normalize();

		inst.selection.moveToBookmark(b);
		inst.selection.selectNode(paraAfter, true, true);

		return true;
	},

	_handleBackSpace : function(inst) {
		var r =3D inst.getRng(), sn =3D r.startContainer, nv, s =3D false;

		// Added body check for bug #1527787
		if (sn && sn.nextSibling && sn.nextSibling.nodeName =3D=3D "BR" && =
sn.parentNode.nodeName !=3D "BODY") {
			nv =3D sn.nodeValue;

			// Handle if a backspace is pressed after a space character #bug =
1466054 removed since fix for #1527787
			/*if (nv !=3D null && nv.length >=3D r.startOffset && =
nv.charAt(r.startOffset - 1) =3D=3D ' ')
				s =3D true;*/

			// Only remove BRs if we are at the end of line #bug 1464152
			if (nv !=3D null && r.startOffset =3D=3D nv.length)
				sn.nextSibling.parentNode.removeChild(sn.nextSibling);
		}

		if (inst.settings.auto_resize)
			inst.resizeToContent();

		return s;
	}

	};

/* file:jscripts/tiny_mce/classes/TinyMCE_Layer.class.js */

function TinyMCE_Layer(id, bm) {
	this.id =3D id;
	this.blockerElement =3D null;
	this.events =3D false;
	this.element =3D null;
	this.blockMode =3D typeof(bm) !=3D 'undefined' ? bm : true;
	this.doc =3D document;
};

TinyMCE_Layer.prototype =3D {
	moveRelativeTo : function(re, p) {
		var rep =3D this.getAbsPosition(re), e =3D this.getElement(), x, y;
		var w =3D parseInt(re.offsetWidth), h =3D parseInt(re.offsetHeight);
		var ew =3D parseInt(e.offsetWidth), eh =3D parseInt(e.offsetHeight);

		switch (p) {
			case "tl":
				x =3D rep.absLeft;
				y =3D rep.absTop;
				break;

			case "tr":
				x =3D rep.absLeft + w;
				y =3D rep.absTop;
				break;

			case "bl":
				x =3D rep.absLeft;
				y =3D rep.absTop + h;
				break;

			case "br":
				x =3D rep.absLeft + w;
				y =3D rep.absTop + h;
				break;

			case "cc":
				x =3D rep.absLeft + (w / 2) - (ew / 2);
				y =3D rep.absTop + (h / 2) - (eh / 2);
				break;
		}

		this.moveTo(x, y);
	},

	moveBy : function(x, y) {
		var e =3D this.getElement();
		this.moveTo(parseInt(e.style.left) + x, parseInt(e.style.top) + y);
	},

	moveTo : function(x, y) {
		var e =3D this.getElement();

		e.style.left =3D x + "px";
		e.style.top =3D y + "px";

		this.updateBlocker();
	},

	resizeBy : function(w, h) {
		var e =3D this.getElement();
		this.resizeTo(parseInt(e.style.width) + w, parseInt(e.style.height) + =
h);
	},

	resizeTo : function(w, h) {
		var e =3D this.getElement();

		if (w !=3D null)
			e.style.width =3D w + "px";

		if (h !=3D null)
			e.style.height =3D h + "px";

		this.updateBlocker();
	},

	show : function() {
		var el =3D this.getElement();

		if (el) {
			el.style.display =3D 'block';
			this.updateBlocker();
		}
	},

	hide : function() {
		var el =3D this.getElement();

		if (el) {
			el.style.display =3D 'none';
			this.updateBlocker();
		}
	},

	isVisible : function() {
		return this.getElement().style.display =3D=3D 'block';
	},

	getElement : function() {
		if (!this.element)
			this.element =3D this.doc.getElementById(this.id);

		return this.element;
	},

	setBlockMode : function(s) {
		this.blockMode =3D s;
	},

	updateBlocker : function() {
		var e, b, x, y, w, h;

		b =3D this.getBlocker();
		if (b) {
			if (this.blockMode) {
				e =3D this.getElement();
				x =3D this.parseInt(e.style.left);
				y =3D this.parseInt(e.style.top);
				w =3D this.parseInt(e.offsetWidth);
				h =3D this.parseInt(e.offsetHeight);

				b.style.left =3D x + 'px';
				b.style.top =3D y + 'px';
				b.style.width =3D w + 'px';
				b.style.height =3D h + 'px';
				b.style.display =3D e.style.display;
			} else
				b.style.display =3D 'none';
		}
	},

	getBlocker : function() {
		var d, b;

		if (!this.blockerElement && this.blockMode) {
			d =3D this.doc;
			b =3D d.getElementById(this.id + "_blocker");

			if (!b) {
				b =3D d.createElement("iframe");

				b.setAttribute('id', this.id + "_blocker");
				b.style.cssText =3D 'display: none; position: absolute; left: 0; =
top: 0';
				b.src =3D 'javascript:false;';
				b.frameBorder =3D '0';
				b.scrolling =3D 'no';
=09
				d.body.appendChild(b);
			}

			this.blockerElement =3D b;
		}

		return this.blockerElement;
	},

	getAbsPosition : function(n) {
		var p =3D {absLeft : 0, absTop : 0};

		while (n) {
			p.absLeft +=3D n.offsetLeft;
			p.absTop +=3D n.offsetTop;
			n =3D n.offsetParent;
		}

		return p;
	},

	create : function(n, c, p, h) {
		var d =3D this.doc, e =3D d.createElement(n);

		e.setAttribute('id', this.id);

		if (c)
			e.className =3D c;

		if (!p)
			p =3D d.body;

		if (h)
			e.innerHTML =3D h;

		p.appendChild(e);

		return this.element =3D e;
	},

	exists : function() {
		return this.doc.getElementById(this.id) !=3D null;
	},

	parseInt : function(s) {
		if (s =3D=3D null || s =3D=3D '')
			return 0;

		return parseInt(s);
	},

	remove : function() {
		var e =3D this.getElement(), b =3D this.getBlocker();

		if (e)
			e.parentNode.removeChild(e);

		if (b)
			b.parentNode.removeChild(b);
	}

	};

/* file:jscripts/tiny_mce/classes/TinyMCE_Menu.class.js */

function TinyMCE_Menu() {
	var id;

	if (typeof(tinyMCE.menuCounter) =3D=3D "undefined")
		tinyMCE.menuCounter =3D 0;

	id =3D "mc_menu_" + tinyMCE.menuCounter++;

	TinyMCE_Layer.call(this, id, true);

	this.id =3D id;
	this.items =3D [];
	this.needsUpdate =3D true;
};

TinyMCE_Menu.prototype =3D tinyMCE.extend(TinyMCE_Layer.prototype, {
	init : function(s) {
		var n;

		// Default params
		this.settings =3D {
			separator_class : 'mceMenuSeparator',
			title_class : 'mceMenuTitle',
			disabled_class : 'mceMenuDisabled',
			menu_class : 'mceMenu',
			drop_menu : true
		};

		for (n in s)
			this.settings[n] =3D s[n];

		this.create('div', this.settings.menu_class);
	},

	clear : function() {
		this.items =3D [];
	},

	addTitle : function(t) {
		this.add({type : 'title', text : t});
	},

	addDisabled : function(t) {
		this.add({type : 'disabled', text : t});
	},

	addSeparator : function() {
		this.add({type : 'separator'});
	},

	addItem : function(t, js) {
		this.add({text : t, js : js});
	},

	add : function(mi) {
		this.items[this.items.length] =3D mi;
		this.needsUpdate =3D true;
	},

	update : function() {
		var e =3D this.getElement(), h =3D '', i, t, m =3D this.items, s =3D =
this.settings;

		if (this.settings.drop_menu)
			h +=3D '<span class=3D"mceMenuLine"></span>';

		h +=3D '<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0">';

		for (i=3D0; i<m.length; i++) {
			t =3D tinyMCE.xmlEncode(m[i].text);
			c =3D m[i].class_name ? ' class=3D"' + m[i].class_name + '"' : '';

			switch (m[i].type) {
				case 'separator':
					h +=3D '<tr class=3D"' + s.separator_class + '"><td>';
					break;

				case 'title':
					h +=3D '<tr class=3D"' + s.title_class + '"><td><span' + c +'>' + t =
+ '</span>';
					break;

				case 'disabled':
					h +=3D '<tr class=3D"' + s.disabled_class + '"><td><span' + c +'>' =
+ t + '</span>';
					break;

				default:
					h +=3D '<tr><td><a href=3D"' + tinyMCE.xmlEncode(m[i].js) + '" =
onmousedown=3D"' + tinyMCE.xmlEncode(m[i].js) + ';return =
tinyMCE.cancelEvent(event);" onclick=3D"return =
tinyMCE.cancelEvent(event);" onmouseup=3D"return =
tinyMCE.cancelEvent(event);"><span' + c +'>' + t + '</span></a>';
			}

			h +=3D '</td></tr>';
		}

		h +=3D '</table>';

		e.innerHTML =3D h;

		this.needsUpdate =3D false;
		this.updateBlocker();
	},

	show : function() {
		var nl, i;

		if (tinyMCE.lastMenu =3D=3D this)
			return;

		if (this.needsUpdate)
			this.update();

		if (tinyMCE.lastMenu && tinyMCE.lastMenu !=3D this)
			tinyMCE.lastMenu.hide();

		TinyMCE_Layer.prototype.show.call(this);

		if (!tinyMCE.isOpera) {
			// Accessibility stuff
/*			nl =3D this.getElement().getElementsByTagName("a");
			if (nl.length > 0)
				nl[0].focus();*/
		}

		tinyMCE.lastMenu =3D this;
	}

	});

/* file:jscripts/tiny_mce/classes/TinyMCE_Debug.class.js */

tinyMCE.add(TinyMCE_Engine, {
	debug : function() {
		var m =3D "", a, i, l =3D tinyMCE.log.length;

		for (i=3D0, a =3D this.debug.arguments; i<a.length; i++) {
			m +=3D a[i];

			if (i<a.length-1)
				m +=3D ', ';
		}

		if (l < 1000)
			tinyMCE.log[l] =3D "[debug] " + m;
	}

	});


------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/yahoo-dom-event.js

/*=0A=
Copyright (c) 2008, Yahoo! Inc. All rights reserved.=0A=
Code licensed under the BSD License:=0A=
http://developer.yahoo.net/yui/license.txt=0A=
version: 2.5.2=0A=
*/=0A=
if(typeof YAHOO=3D=3D"undefined"||!YAHOO){var =
YAHOO=3D{};}YAHOO.namespace=3Dfunction(){var =
A=3Darguments,E=3Dnull,C,B,D;for(C=3D0;C<A.length;C=3DC+1){D=3DA[C].split=
(".");E=3DYAHOO;for(B=3D(D[0]=3D=3D"YAHOO")?1:0;B<D.length;B=3DB+1){E[D[B=
]]=3DE[D[B]]||{};E=3DE[D[B]];}}return =
E;};YAHOO.log=3Dfunction(D,A,C){var =
B=3DYAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return =
false;}};YAHOO.register=3Dfunction(A,E,D){var =
I=3DYAHOO.env.modules;if(!I[A]){I[A]=3D{versions:[],builds:[]};}var =
B=3DI[A],H=3DD.version,G=3DD.build,F=3DYAHOO.env.listeners;B.name=3DA;B.v=
ersion=3DH;B.build=3DG;B.versions.push(H);B.builds.push(G);B.mainClass=3D=
E;for(var =
C=3D0;C<F.length;C=3DC+1){F[C](B);}if(E){E.VERSION=3DH;E.BUILD=3DG;}else{=
YAHOO.log("mainClass is undefined for module =
"+A,"warn");}};YAHOO.env=3DYAHOO.env||{modules:[],listeners:[]};YAHOO.env=
.getVersion=3Dfunction(A){return =
YAHOO.env.modules[A]||null;};YAHOO.env.ua=3Dfunction(){var =
C=3D{ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0};var =
B=3Dnavigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=3D1;}A=3DB.match=
(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=3DparseFloat(A[1]);if(/ =
Mobile\//.test(B)){C.mobile=3D"Apple";}else{A=3DB.match(/NokiaN[^\/]*/);i=
f(A){C.mobile=3DA[0];}}A=3DB.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=3DA[=
0];}}if(!C.webkit){A=3DB.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=
=3DparseFloat(A[1]);A=3DB.match(/Opera =
Mini[^;]*/);if(A){C.mobile=3DA[0];}}else{A=3DB.match(/MSIE\s([^;]*)/);if(=
A&&A[1]){C.ie=3DparseFloat(A[1]);}else{A=3DB.match(/Gecko\/([^\s]*)/);if(=
A){C.gecko=3D1;A=3DB.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=3DparseFl=
oat(A[1]);}}}}}return =
C;}();(function(){YAHOO.namespace("util","widget","example");if("undefine=
d"!=3D=3Dtypeof YAHOO_config){var =
B=3DYAHOO_config.listener,A=3DYAHOO.env.listeners,D=3Dtrue,C;if(B){for(C=3D=
0;C<A.length;C=3DC+1){if(A[C]=3D=3DB){D=3Dfalse;break;}}if(D){A.push(B);}=
}}})();YAHOO.lang=3DYAHOO.lang||{};(function(){var =
A=3DYAHOO.lang,C=3D["toString","valueOf"],B=3D{isArray:function(D){if(D){=
return A.isNumber(D.length)&&A.isFunction(D.splice);}return =
false;},isBoolean:function(D){return typeof =
D=3D=3D=3D"boolean";},isFunction:function(D){return typeof =
D=3D=3D=3D"function";},isNull:function(D){return =
D=3D=3D=3Dnull;},isNumber:function(D){return typeof =
D=3D=3D=3D"number"&&isFinite(D);},isObject:function(D){return(D&&(typeof =
D=3D=3D=3D"object"||A.isFunction(D)))||false;},isString:function(D){retur=
n typeof D=3D=3D=3D"string";},isUndefined:function(D){return typeof =
D=3D=3D=3D"undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(F,E){for(va=
r D=3D0;D<C.length;D=3DD+1){var =
H=3DC[D],G=3DE[H];if(A.isFunction(G)&&G!=3DObject.prototype[H]){F[H]=3DG;=
}}}:function(){},extend:function(H,I,G){if(!I||!H){throw new =
Error("extend failed, please check that "+"all dependencies are =
included.");}var =
E=3Dfunction(){};E.prototype=3DI.prototype;H.prototype=3Dnew =
E();H.prototype.constructor=3DH;H.superclass=3DI.prototype;if(I.prototype=
.constructor=3D=3DObject.prototype.constructor){I.prototype.constructor=3D=
I;}if(G){for(var D in =
G){if(A.hasOwnProperty(G,D)){H.prototype[D]=3DG[D];}}A._IEEnumFix(H.proto=
type,G);}},augmentObject:function(H,G){if(!G||!H){throw new =
Error("Absorb failed, verify dependencies.");}var =
D=3Darguments,F,I,E=3DD[2];if(E&&E!=3D=3Dtrue){for(F=3D2;F<D.length;F=3DF=
+1){H[D[F]]=3DG[D[F]];}}else{for(I in G){if(E||!(I in =
H)){H[I]=3DG[I];}}A._IEEnumFix(H,G);}},augmentProto:function(G,F){if(!F||=
!G){throw new Error("Augment failed, verify dependencies.");}var =
D=3D[G.prototype,F.prototype];for(var =
E=3D2;E<arguments.length;E=3DE+1){D.push(arguments[E]);}A.augmentObject.a=
pply(this,D);},dump:function(D,I){var =
F,H,K=3D[],L=3D"{...}",E=3D"f(){...}",J=3D", ",G=3D" =3D> =
";if(!A.isObject(D)){return D+"";}else{if(D instanceof Date||("nodeType" =
in D&&"tagName" in D)){return D;}else{if(A.isFunction(D)){return =
E;}}}I=3D(A.isNumber(I))?I:3;if(A.isArray(D)){K.push("[");for(F=3D0,H=3DD=
.length;F<H;F=3DF+1){if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L=
);}else{K.push(D[F]);}K.push(J);}if(K.length>1){K.pop();}K.push("]");}els=
e{K.push("{");for(F in =
D){if(A.hasOwnProperty(D,F)){K.push(F+G);if(A.isObject(D[F])){K.push((I>0=
)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}}if(K.length>1){K.po=
p();}K.push("}");}return K.join("");},substitute:function(S,E,L){var =
I,H,G,O,P,R,N=3D[],F,J=3D"dump",M=3D" =
",D=3D"{",Q=3D"}";for(;;){I=3DS.lastIndexOf(D);if(I<0){break;}H=3DS.index=
Of(Q,I);if(I+1>=3DH){break;}F=3DS.substring(I+1,H);O=3DF;R=3Dnull;G=3DO.i=
ndexOf(M);if(G>-1){R=3DO.substring(G+1);O=3DO.substring(0,G);}P=3DE[O];if=
(L){P=3DL(O,P,R);}if(A.isObject(P)){if(A.isArray(P)){P=3DA.dump(P,parseIn=
t(R,10));}else{R=3DR||"";var =
K=3DR.indexOf(J);if(K>-1){R=3DR.substring(4);}if(P.toString=3D=3D=3DObjec=
t.prototype.toString||K>-1){P=3DA.dump(P,parseInt(R,10));}else{P=3DP.toSt=
ring();}}}else{if(!A.isString(P)&&!A.isNumber(P)){P=3D"~-"+N.length+"-~";=
N[N.length]=3DF;}}S=3DS.substring(0,I)+P+S.substring(H+1);}for(I=3DN.leng=
th-1;I>=3D0;I=3DI-1){S=3DS.replace(new =
RegExp("~-"+I+"-~"),"{"+N[I]+"}","g");}return =
S;},trim:function(D){try{return =
D.replace(/^\s+|\s+$/g,"");}catch(E){return D;}},merge:function(){var =
G=3D{},E=3Darguments;for(var =
F=3D0,D=3DE.length;F<D;F=3DF+1){A.augmentObject(G,E[F],true);}return =
G;},later:function(K,E,L,G,H){K=3DK||0;E=3DE||{};var =
F=3DL,J=3DG,I,D;if(A.isString(L)){F=3DE[L];}if(!F){throw new =
TypeError("method =
undefined");}if(!A.isArray(J)){J=3D[G];}I=3Dfunction(){F.apply(E,J);};D=3D=
(H)?setInterval(I,K):setTimeout(I,K);return{interval:H,cancel:function(){=
if(this.interval){clearInterval(D);}else{clearTimeout(D);}}};},isValue:fu=
nction(D){return(A.isObject(D)||A.isString(D)||A.isNumber(D)||A.isBoolean=
(D));}};A.hasOwnProperty=3D(Object.prototype.hasOwnProperty)?function(D,E=
){return D&&D.hasOwnProperty(E);}:function(D,E){return =
!A.isUndefined(D[E])&&D.constructor.prototype[E]!=3D=3DD[E];};B.augmentOb=
ject(A,B,true);YAHOO.util.Lang=3DA;A.augment=3DA.augmentProto;YAHOO.augme=
nt=3DA.augmentProto;YAHOO.extend=3DA.extend;})();YAHOO.register("yahoo",Y=
AHOO,{version:"2.5.2",build:"1076"});(function(){var =
B=3DYAHOO.util,K,I,J=3D{},F=3D{},M=3Dwindow.document;YAHOO.env._id_counte=
r=3DYAHOO.env._id_counter||0;var =
C=3DYAHOO.env.ua.opera,L=3DYAHOO.env.ua.webkit,A=3DYAHOO.env.ua.gecko,G=3D=
YAHOO.env.ua.ie;var =
E=3D{HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i,OP_SCROLL:/^(?:inline|tab=
le-row)$/i};var N=3Dfunction(P){if(!E.HYPHEN.test(P)){return =
P;}if(J[P]){return J[P];}var =
Q=3DP;while(E.HYPHEN.exec(Q)){Q=3DQ.replace(RegExp.$1,RegExp.$1.substr(1)=
.toUpperCase());}J[P]=3DQ;return Q;};var O=3Dfunction(Q){var =
P=3DF[Q];if(!P){P=3Dnew =
RegExp("(?:^|\\s+)"+Q+"(?:\\s+|$)");F[Q]=3DP;}return =
P;};if(M.defaultView&&M.defaultView.getComputedStyle){K=3Dfunction(P,S){v=
ar R=3Dnull;if(S=3D=3D"float"){S=3D"cssFloat";}var =
Q=3DP.ownerDocument.defaultView.getComputedStyle(P,"");if(Q){R=3DQ[N(S)];=
}return =
P.style[S]||R;};}else{if(M.documentElement.currentStyle&&G){K=3Dfunction(=
P,R){switch(N(R)){case"opacity":var =
T=3D100;try{T=3DP.filters["DXImageTransform.Microsoft.Alpha"].opacity;}ca=
tch(S){try{T=3DP.filters("alpha").opacity;}catch(S){}}return =
T/100;case"float":R=3D"styleFloat";default:var =
Q=3DP.currentStyle?P.currentStyle[R]:null;return(P.style[R]||Q);}};}else{=
K=3Dfunction(P,Q){return =
P.style[Q];};}}if(G){I=3Dfunction(P,Q,R){switch(Q){case"opacity":if(YAHOO=
.lang.isString(P.style.filter)){P.style.filter=3D"alpha(opacity=3D"+R*100=
+")";if(!P.currentStyle||!P.currentStyle.hasLayout){P.style.zoom=3D1;}}br=
eak;case"float":Q=3D"styleFloat";default:P.style[Q]=3DR;}};}else{I=3Dfunc=
tion(P,Q,R){if(Q=3D=3D"float"){Q=3D"cssFloat";}P.style[Q]=3DR;};}var =
D=3Dfunction(P,Q){return =
P&&P.nodeType=3D=3D1&&(!Q||Q(P));};YAHOO.util.Dom=3D{get:function(R){if(R=
&&(R.nodeType||R.item)){return R;}if(YAHOO.lang.isString(R)||!R){return =
M.getElementById(R);}if(R.length!=3D=3Dundefined){var S=3D[];for(var =
Q=3D0,P=3DR.length;Q<P;++Q){S[S.length]=3DB.Dom.get(R[Q]);}return =
S;}return R;},getStyle:function(P,R){R=3DN(R);var Q=3Dfunction(S){return =
K(S,R);};return =
B.Dom.batch(P,Q,B.Dom,true);},setStyle:function(P,R,S){R=3DN(R);var =
Q=3Dfunction(T){I(T,R,S);};B.Dom.batch(P,Q,B.Dom,true);},getXY:function(P=
){var =
Q=3Dfunction(R){if((R.parentNode=3D=3D=3Dnull||R.offsetParent=3D=3D=3Dnul=
l||this.getStyle(R,"display")=3D=3D"none")&&R!=3DR.ownerDocument.body){re=
turn false;}return H(R);};return =
B.Dom.batch(P,Q,B.Dom,true);},getX:function(P){var =
Q=3Dfunction(R){return B.Dom.getXY(R)[0];};return =
B.Dom.batch(P,Q,B.Dom,true);},getY:function(P){var =
Q=3Dfunction(R){return B.Dom.getXY(R)[1];};return =
B.Dom.batch(P,Q,B.Dom,true);},setXY:function(P,S,R){var =
Q=3Dfunction(V){var =
U=3Dthis.getStyle(V,"position");if(U=3D=3D"static"){this.setStyle(V,"posi=
tion","relative");U=3D"relative";}var =
X=3Dthis.getXY(V);if(X=3D=3D=3Dfalse){return false;}var =
W=3D[parseInt(this.getStyle(V,"left"),10),parseInt(this.getStyle(V,"top")=
,10)];if(isNaN(W[0])){W[0]=3D(U=3D=3D"relative")?0:V.offsetLeft;}if(isNaN=
(W[1])){W[1]=3D(U=3D=3D"relative")?0:V.offsetTop;}if(S[0]!=3D=3Dnull){V.s=
tyle.left=3DS[0]-X[0]+W[0]+"px";}if(S[1]!=3D=3Dnull){V.style.top=3DS[1]-X=
[1]+W[1]+"px";}if(!R){var =
T=3Dthis.getXY(V);if((S[0]!=3D=3Dnull&&T[0]!=3DS[0])||(S[1]!=3D=3Dnull&&T=
[1]!=3DS[1])){this.setXY(V,S,true);}}};B.Dom.batch(P,Q,B.Dom,true);},setX=
:function(Q,P){B.Dom.setXY(Q,[P,null]);},setY:function(P,Q){B.Dom.setXY(P=
,[null,Q]);},getRegion:function(P){var =
Q=3Dfunction(R){if((R.parentNode=3D=3D=3Dnull||R.offsetParent=3D=3D=3Dnul=
l||this.getStyle(R,"display")=3D=3D"none")&&R!=3DR.ownerDocument.body){re=
turn false;}var S=3DB.Region.getRegion(R);return S;};return =
B.Dom.batch(P,Q,B.Dom,true);},getClientWidth:function(){return =
B.Dom.getViewportWidth();},getClientHeight:function(){return =
B.Dom.getViewportHeight();},getElementsByClassName:function(T,X,U,V){X=3D=
X||"*";U=3D(U)?B.Dom.get(U):null||M;if(!U){return[];}var =
Q=3D[],P=3DU.getElementsByTagName(X),W=3DO(T);for(var =
R=3D0,S=3DP.length;R<S;++R){if(W.test(P[R].className)){Q[Q.length]=3DP[R]=
;if(V){V.call(P[R],P[R]);}}}return Q;},hasClass:function(R,Q){var =
P=3DO(Q);var S=3Dfunction(T){return P.test(T.className);};return =
B.Dom.batch(R,S,B.Dom,true);},addClass:function(Q,P){var =
R=3Dfunction(S){if(this.hasClass(S,P)){return =
false;}S.className=3DYAHOO.lang.trim([S.className,P].join(" "));return =
true;};return =
B.Dom.batch(Q,R,B.Dom,true);},removeClass:function(R,Q){var P=3DO(Q);var =
S=3Dfunction(T){if(!Q||!this.hasClass(T,Q)){return false;}var =
U=3DT.className;T.className=3DU.replace(P," =
");if(this.hasClass(T,Q)){this.removeClass(T,Q);}T.className=3DYAHOO.lang=
.trim(T.className);return true;};return =
B.Dom.batch(R,S,B.Dom,true);},replaceClass:function(S,Q,P){if(!P||Q=3D=3D=
=3DP){return false;}var R=3DO(Q);var =
T=3Dfunction(U){if(!this.hasClass(U,Q)){this.addClass(U,P);return =
true;}U.className=3DU.className.replace(R," "+P+" =
");if(this.hasClass(U,Q)){this.replaceClass(U,Q,P);}U.className=3DYAHOO.l=
ang.trim(U.className);return true;};return =
B.Dom.batch(S,T,B.Dom,true);},generateId:function(P,R){R=3DR||"yui-gen";v=
ar Q=3Dfunction(S){if(S&&S.id){return S.id;}var =
T=3DR+YAHOO.env._id_counter++;if(S){S.id=3DT;}return T;};return =
B.Dom.batch(P,Q,B.Dom,true)||Q.apply(B.Dom,arguments);},isAncestor:functi=
on(P,Q){P=3DB.Dom.get(P);Q=3DB.Dom.get(Q);if(!P||!Q){return =
false;}if(P.contains&&Q.nodeType&&!L){return =
P.contains(Q);}else{if(P.compareDocumentPosition&&Q.nodeType){return =
!!(P.compareDocumentPosition(Q)&16);}else{if(Q.nodeType){return =
!!this.getAncestorBy(Q,function(R){return R=3D=3DP;});}}}return =
false;},inDocument:function(P){return =
this.isAncestor(M.documentElement,P);},getElementsBy:function(W,Q,R,T){Q=3D=
Q||"*";R=3D(R)?B.Dom.get(R):null||M;if(!R){return[];}var =
S=3D[],V=3DR.getElementsByTagName(Q);for(var =
U=3D0,P=3DV.length;U<P;++U){if(W(V[U])){S[S.length]=3DV[U];if(T){T(V[U]);=
}}}return =
S;},batch:function(T,W,V,R){T=3D(T&&(T.tagName||T.item))?T:B.Dom.get(T);i=
f(!T||!W){return false;}var =
S=3D(R)?V:window;if(T.tagName||T.length=3D=3D=3Dundefined){return =
W.call(S,T,V);}var U=3D[];for(var =
Q=3D0,P=3DT.length;Q<P;++Q){U[U.length]=3DW.call(S,T[Q],V);}return =
U;},getDocumentHeight:function(){var =
Q=3D(M.compatMode!=3D"CSS1Compat")?M.body.scrollHeight:M.documentElement.=
scrollHeight;var P=3DMath.max(Q,B.Dom.getViewportHeight());return =
P;},getDocumentWidth:function(){var =
Q=3D(M.compatMode!=3D"CSS1Compat")?M.body.scrollWidth:M.documentElement.s=
crollWidth;var P=3DMath.max(Q,B.Dom.getViewportWidth());return =
P;},getViewportHeight:function(){var P=3Dself.innerHeight;=0A=
var =
Q=3DM.compatMode;if((Q||G)&&!C){P=3D(Q=3D=3D"CSS1Compat")?M.documentEleme=
nt.clientHeight:M.body.clientHeight;}return =
P;},getViewportWidth:function(){var P=3Dself.innerWidth;var =
Q=3DM.compatMode;if(Q||G){P=3D(Q=3D=3D"CSS1Compat")?M.documentElement.cli=
entWidth:M.body.clientWidth;}return =
P;},getAncestorBy:function(P,Q){while(P=3DP.parentNode){if(D(P,Q)){return=
 P;}}return =
null;},getAncestorByClassName:function(Q,P){Q=3DB.Dom.get(Q);if(!Q){retur=
n null;}var R=3Dfunction(S){return B.Dom.hasClass(S,P);};return =
B.Dom.getAncestorBy(Q,R);},getAncestorByTagName:function(Q,P){Q=3DB.Dom.g=
et(Q);if(!Q){return null;}var R=3Dfunction(S){return =
S.tagName&&S.tagName.toUpperCase()=3D=3DP.toUpperCase();};return =
B.Dom.getAncestorBy(Q,R);},getPreviousSiblingBy:function(P,Q){while(P){P=3D=
P.previousSibling;if(D(P,Q)){return P;}}return =
null;},getPreviousSibling:function(P){P=3DB.Dom.get(P);if(!P){return =
null;}return =
B.Dom.getPreviousSiblingBy(P);},getNextSiblingBy:function(P,Q){while(P){P=
=3DP.nextSibling;if(D(P,Q)){return P;}}return =
null;},getNextSibling:function(P){P=3DB.Dom.get(P);if(!P){return =
null;}return =
B.Dom.getNextSiblingBy(P);},getFirstChildBy:function(P,R){var =
Q=3D(D(P.firstChild,R))?P.firstChild:null;return =
Q||B.Dom.getNextSiblingBy(P.firstChild,R);},getFirstChild:function(P,Q){P=
=3DB.Dom.get(P);if(!P){return null;}return =
B.Dom.getFirstChildBy(P);},getLastChildBy:function(P,R){if(!P){return =
null;}var Q=3D(D(P.lastChild,R))?P.lastChild:null;return =
Q||B.Dom.getPreviousSiblingBy(P.lastChild,R);},getLastChild:function(P){P=
=3DB.Dom.get(P);return =
B.Dom.getLastChildBy(P);},getChildrenBy:function(Q,S){var =
R=3DB.Dom.getFirstChildBy(Q,S);var =
P=3DR?[R]:[];B.Dom.getNextSiblingBy(R,function(T){if(!S||S(T)){P[P.length=
]=3DT;}return false;});return =
P;},getChildren:function(P){P=3DB.Dom.get(P);if(!P){}return =
B.Dom.getChildrenBy(P);},getDocumentScrollLeft:function(P){P=3DP||M;retur=
n =
Math.max(P.documentElement.scrollLeft,P.body.scrollLeft);},getDocumentScr=
ollTop:function(P){P=3DP||M;return =
Math.max(P.documentElement.scrollTop,P.body.scrollTop);},insertBefore:fun=
ction(Q,P){Q=3DB.Dom.get(Q);P=3DB.Dom.get(P);if(!Q||!P||!P.parentNode){re=
turn null;}return =
P.parentNode.insertBefore(Q,P);},insertAfter:function(Q,P){Q=3DB.Dom.get(=
Q);P=3DB.Dom.get(P);if(!Q||!P||!P.parentNode){return =
null;}if(P.nextSibling){return =
P.parentNode.insertBefore(Q,P.nextSibling);}else{return =
P.parentNode.appendChild(Q);}},getClientRegion:function(){var =
R=3DB.Dom.getDocumentScrollTop(),Q=3DB.Dom.getDocumentScrollLeft(),S=3DB.=
Dom.getViewportWidth()+Q,P=3DB.Dom.getViewportHeight()+R;return new =
B.Region(R,S,P,Q);}};var =
H=3Dfunction(){if(M.documentElement.getBoundingClientRect){return =
function(Q){var R=3DQ.getBoundingClientRect();var =
P=3DQ.ownerDocument;return[R.left+B.Dom.getDocumentScrollLeft(P),R.top+B.=
Dom.getDocumentScrollTop(P)];};}else{return function(R){var =
S=3D[R.offsetLeft,R.offsetTop];var Q=3DR.offsetParent;var =
P=3D(L&&B.Dom.getStyle(R,"position")=3D=3D"absolute"&&R.offsetParent=3D=3D=
R.ownerDocument.body);if(Q!=3DR){while(Q){S[0]+=3DQ.offsetLeft;S[1]+=3DQ.=
offsetTop;if(!P&&L&&B.Dom.getStyle(Q,"position")=3D=3D"absolute"){P=3Dtru=
e;}Q=3DQ.offsetParent;}}if(P){S[0]-=3DR.ownerDocument.body.offsetLeft;S[1=
]-=3DR.ownerDocument.body.offsetTop;}Q=3DR.parentNode;while(Q.tagName&&!E=
.ROOT_TAG.test(Q.tagName)){if(Q.scrollTop||Q.scrollLeft){if(!E.OP_SCROLL.=
test(B.Dom.getStyle(Q,"display"))){if(!C||B.Dom.getStyle(Q,"overflow")!=3D=
=3D"visible"){S[0]-=3DQ.scrollLeft;S[1]-=3DQ.scrollTop;}}}Q=3DQ.parentNod=
e;}return =
S;};}}();})();YAHOO.util.Region=3Dfunction(C,D,A,B){this.top=3DC;this[1]=3D=
C;this.right=3DD;this.bottom=3DA;this.left=3DB;this[0]=3DB;};YAHOO.util.R=
egion.prototype.contains=3Dfunction(A){return(A.left>=3Dthis.left&&A.righ=
t<=3Dthis.right&&A.top>=3Dthis.top&&A.bottom<=3Dthis.bottom);};YAHOO.util=
.Region.prototype.getArea=3Dfunction(){return((this.bottom-this.top)*(thi=
s.right-this.left));};YAHOO.util.Region.prototype.intersect=3Dfunction(E)=
{var C=3DMath.max(this.top,E.top);var =
D=3DMath.min(this.right,E.right);var =
A=3DMath.min(this.bottom,E.bottom);var =
B=3DMath.max(this.left,E.left);if(A>=3DC&&D>=3DB){return new =
YAHOO.util.Region(C,D,A,B);}else{return =
null;}};YAHOO.util.Region.prototype.union=3Dfunction(E){var =
C=3DMath.min(this.top,E.top);var D=3DMath.max(this.right,E.right);var =
A=3DMath.max(this.bottom,E.bottom);var =
B=3DMath.min(this.left,E.left);return new =
YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=3Dfunct=
ion(){return("Region {"+"top: "+this.top+", right: "+this.right+", =
bottom: "+this.bottom+", left: =
"+this.left+"}");};YAHOO.util.Region.getRegion=3Dfunction(D){var =
F=3DYAHOO.util.Dom.getXY(D);var C=3DF[1];var E=3DF[0]+D.offsetWidth;var =
A=3DF[1]+D.offsetHeight;var B=3DF[0];return new =
YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=3Dfunction(A,B){if(YAHOO.la=
ng.isArray(A)){B=3DA[1];A=3DA[0];}this.x=3Dthis.right=3Dthis.left=3Dthis[=
0]=3DA;this.y=3Dthis.top=3Dthis.bottom=3Dthis[1]=3DB;};YAHOO.util.Point.p=
rototype=3Dnew =
YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.5.2",=
build:"1076"});YAHOO.util.CustomEvent=3Dfunction(D,B,C,A){this.type=3DD;t=
his.scope=3DB||window;this.silent=3DC;this.signature=3DA||YAHOO.util.Cust=
omEvent.LIST;this.subscribers=3D[];if(!this.silent){}var =
E=3D"_YUICEOnSubscribe";if(D!=3D=3DE){this.subscribeEvent=3Dnew =
YAHOO.util.CustomEvent(E,this,true);}this.lastError=3Dnull;};YAHOO.util.C=
ustomEvent.LIST=3D0;YAHOO.util.CustomEvent.FLAT=3D1;YAHOO.util.CustomEven=
t.prototype=3D{subscribe:function(B,C,A){if(!B){throw new Error("Invalid =
callback for subscriber to =
'"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A=
);}this.subscribers.push(new =
YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return =
this.unsubscribeAll();}var E=3Dfalse;for(var =
B=3D0,A=3Dthis.subscribers.length;B<A;++B){var =
C=3Dthis.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=3Dtrue;}=
}return E;},fire:function(){this.lastError=3Dnull;var =
K=3D[],E=3Dthis.subscribers.length;if(!E&&this.silent){return true;}var =
I=3D[].slice.call(arguments,0),G=3Dtrue,D,J=3Dfalse;if(!this.silent){}var=
 =
C=3Dthis.subscribers.slice(),A=3DYAHOO.util.Event.throwErrors;for(D=3D0;D=
<E;++D){var M=3DC[D];if(!M){J=3Dtrue;}else{if(!this.silent){}var =
L=3DM.getScope(this.scope);if(this.signature=3D=3DYAHOO.util.CustomEvent.=
FLAT){var =
B=3Dnull;if(I.length>0){B=3DI[0];}try{G=3DM.fn.call(L,B,M.obj);}catch(F){=
this.lastError=3DF;if(A){throw =
F;}}}else{try{G=3DM.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=
=3DH;if(A){throw =
H;}}}if(false=3D=3D=3DG){if(!this.silent){}break;}}}return(G!=3D=3Dfalse)=
;},unsubscribeAll:function(){for(var =
A=3Dthis.subscribers.length-1;A>-1;A--){this._delete(A);}this.subscribers=
=3D[];return A;},_delete:function(A){var =
B=3Dthis.subscribers[A];if(B){delete B.fn;delete =
B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEv=
ent: "+"'"+this.type+"', "+"scope: =
"+this.scope;}};YAHOO.util.Subscriber=3Dfunction(B,C,A){this.fn=3DB;this.=
obj=3DYAHOO.lang.isUndefined(C)?null:C;this.override=3DA;};YAHOO.util.Sub=
scriber.prototype.getScope=3Dfunction(A){if(this.override){if(this.overri=
de=3D=3D=3Dtrue){return this.obj;}else{return this.override;}}return =
A;};YAHOO.util.Subscriber.prototype.contains=3Dfunction(A,B){if(B){return=
(this.fn=3D=3DA&&this.obj=3D=3DB);}else{return(this.fn=3D=3DA);}};YAHOO.u=
til.Subscriber.prototype.toString=3Dfunction(){return"Subscriber { obj: =
"+this.obj+", override: "+(this.override||"no")+" =
}";};if(!YAHOO.util.Event){YAHOO.util.Event=3Dfunction(){var =
H=3Dfalse;var I=3D[];var J=3D[];var G=3D[];var E=3D[];var C=3D0;var =
F=3D[];var B=3D[];var A=3D0;var =
D=3D{63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{P=
OLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_=
SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webk=
it:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMR=
eady:false,throwErrors:false,startInterval:function(){if(!this._interval)=
{var K=3Dthis;var =
L=3Dfunction(){K._tryPreloadAttach();};this._interval=3DsetInterval(L,thi=
s.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var =
K=3D(YAHOO.lang.isString(P))?[P]:P;for(var =
L=3D0;L<K.length;L=3DL+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkRead=
y:N});}C=3Dthis.POLL_RETRYS;this.startInterval();},onContentReady:functio=
n(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if=
(this.DOMReady){setTimeout(function(){var =
N=3Dwindow;if(L){if(L=3D=3D=3Dtrue){N=3DM;}else{N=3DL;}}K.call(N,"DOMRead=
y",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:fu=
nction(M,K,V,Q,L){if(!V||!V.call){return =
false;}if(this._isValidCollection(M)){var W=3Dtrue;for(var =
R=3D0,T=3DM.length;R<T;++R){W=3Dthis.on(M[R],K,V,Q,L)&&W;}return =
W;}else{if(YAHOO.lang.isString(M)){var =
P=3Dthis.getEl(M);if(P){M=3DP;}else{this.onAvailable(M,function(){YAHOO.u=
til.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return =
false;}if("unload"=3D=3DK&&Q!=3D=3Dthis){J[J.length]=3D[M,K,V,Q,L];return=
 true;}var Y=3DM;if(L){if(L=3D=3D=3Dtrue){Y=3DQ;}else{Y=3DL;}}var =
N=3Dfunction(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var =
X=3D[M,K,V,N,Y,Q,L];var =
S=3DI.length;I[S]=3DX;if(this.useLegacyEvent(M,K)){var =
O=3Dthis.getLegacyIndex(M,K);if(O=3D=3D-1||M!=3DG[O][0]){O=3DG.length;B[M=
.id+K]=3DO;G[O]=3D[M,K,M["on"+K]];E[O]=3D[];M["on"+K]=3Dfunction(Z){YAHOO=
.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(=
X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=3DU;th=
is.removeListener(M,K,V);return false;}}return =
true;},fireLegacyEvent:function(O,M){var =
Q=3Dtrue,K,S,R,T,P;S=3DE[M].slice();for(var =
L=3D0,N=3DS.length;L<N;++L){R=3DS[L];if(R&&R[this.WFN]){T=3DR[this.ADJ_SC=
OPE];P=3DR[this.WFN].call(T,O);Q=3D(Q&&P);}}K=3DG[M];if(K&&K[2]){K[2](O);=
}return Q;},getLegacyIndex:function(L,M){var =
K=3Dthis.generateId(L)+M;if(typeof B[K]=3D=3D"undefined"){return =
-1;}else{return =
B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"=3D=3DM||"db=
lclick"=3D=3DM)){var =
K=3DparseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return =
false;},removeListener:function(L,K,T){var O,R,V;if(typeof =
L=3D=3D"string"){L=3Dthis.getEl(L);}else{if(this._isValidCollection(L)){v=
ar =
U=3Dtrue;for(O=3DL.length-1;O>-1;O--){U=3D(this.removeListener(L[O],K,T)&=
&U);}return U;}}if(!T||!T.call){return =
this.purgeElement(L,false,K);}if("unload"=3D=3DK){for(O=3DJ.length-1;O>-1=
;O--){V=3DJ[O];if(V&&V[0]=3D=3DL&&V[1]=3D=3DK&&V[2]=3D=3DT){J.splice(O,1)=
;return true;}}return false;}var P=3Dnull;var =
Q=3Darguments[3];if("undefined"=3D=3D=3Dtypeof =
Q){Q=3Dthis._getCacheIndex(L,K,T);}if(Q>=3D0){P=3DI[Q];}if(!L||!P){return=
 false;}if(this.useLegacyEvent(L,K)){var =
N=3Dthis.getLegacyIndex(L,K);var =
M=3DE[N];if(M){for(O=3D0,R=3DM.length;O<R;++O){V=3DM[O];if(V&&V[this.EL]=3D=
=3DL&&V[this.TYPE]=3D=3DK&&V[this.FN]=3D=3DT){M.splice(O,1);break;}}}}els=
e{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=3D=
S;return false;}}delete I[Q][this.WFN];delete =
I[Q][this.FN];I.splice(Q,1);return true;},getTarget:function(M,L){var =
K=3DM.target||M.srcElement;return =
this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3=3D=3DL.=
nodeType){return L.parentNode;}}catch(K){}return =
L;},getPageX:function(L){var =
K=3DL.pageX;if(!K&&0!=3D=3DK){K=3DL.clientX||0;if(this.isIE){K+=3Dthis._g=
etScrollLeft();}}return K;},getPageY:function(K){var =
L=3DK.pageY;if(!L&&0!=3D=3DL){L=3DK.clientY||0;if(this.isIE){L+=3Dthis._g=
etScrollTop();}}return L;=0A=
},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelate=
dTarget:function(L){var =
K=3DL.relatedTarget;if(!K){if(L.type=3D=3D"mouseout"){K=3DL.toElement;}el=
se{if(L.type=3D=3D"mouseover"){K=3DL.fromElement;}}}return =
this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=3Dnew =
Date().getTime();try{M.time=3DL;}catch(K){this.lastError=3DK;return =
L;}}return =
M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefaul=
t(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagatio=
n();}else{K.cancelBubble=3Dtrue;}},preventDefault:function(K){if(K.preven=
tDefault){K.preventDefault();}else{K.returnValue=3Dfalse;}},getEvent:func=
tion(M,K){var L=3DM||window.event;if(!L){var =
N=3Dthis.getEvent.caller;while(N){L=3DN.arguments[0];if(L&&Event=3D=3DL.c=
onstructor){break;}N=3DN.caller;}}return L;},getCharCode:function(L){var =
K=3DL.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in =
D)){K=3DD[K];}return K;},_getCacheIndex:function(O,P,N){for(var =
M=3D0,L=3DI.length;M<L;M=3DM+1){var =
K=3DI[M];if(K&&K[this.FN]=3D=3DN&&K[this.EL]=3D=3DO&&K[this.TYPE]=3D=3DP)=
{return M;}}return -1;},generateId:function(K){var =
L=3DK.id;if(!L){L=3D"yuievtautoid-"+A;++A;K.id=3DL;}return =
L;},_isValidCollection:function(L){try{return(L&&typeof =
L!=3D=3D"string"&&L.length&&!L.tagName&&!L.alert&&typeof =
L[0]!=3D=3D"undefined");}catch(K){return =
false;}},elCache:{},getEl:function(K){return(typeof =
K=3D=3D=3D"string")?document.getElementById(K):K;},clearCache:function(){=
},DOMReadyEvent:new =
YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=3Dtrue=
;var =
K=3DYAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(=
L){var =
K=3DYAHOO.util.Event;if(!K.DOMReady){K.DOMReady=3Dtrue;K.DOMReadyEvent.fi=
re();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreload=
Attach:function(){if(F.length=3D=3D=3D0){C=3D0;clearInterval(this._interv=
al);this._interval=3Dnull;return ;}if(this.locked){return =
;}if(this.isIE){if(!this.DOMReady){this.startInterval();return =
;}}this.locked=3Dtrue;var Q=3D!H;if(!Q){Q=3D(C>0&&F.length>0);}var =
P=3D[];var R=3Dfunction(T,U){var =
S=3DT;if(U.override){if(U.override=3D=3D=3Dtrue){S=3DU.obj;}else{S=3DU.ov=
erride;}}U.fn.call(S,U.obj);};var =
L,K,O,N,M=3D[];for(L=3D0,K=3DF.length;L<K;L=3DL+1){O=3DF[L];if(O){N=3Dthi=
s.getEl(O.id);if(N){if(O.checkReady){if(H||N.nextSibling||!Q){M.push(O);F=
[L]=3Dnull;}}else{R(N,O);F[L]=3Dnull;}}else{P.push(O);}}}for(L=3D0,K=3DM.=
length;L<K;L=3DL+1){O=3DM[L];R(this.getEl(O.id),O);}C--;if(Q){for(L=3DF.l=
ength-1;L>-1;L--){O=3DF[L];if(!O||!O.id){F.splice(L,1);}}this.startInterv=
al();}else{clearInterval(this._interval);this._interval=3Dnull;}this.lock=
ed=3Dfalse;},purgeElement:function(O,P,R){var =
M=3D(YAHOO.lang.isString(O))?this.getEl(O):O;var =
Q=3Dthis.getListeners(M,R),N,K;if(Q){for(N=3DQ.length-1;N>-1;N--){var =
L=3DQ[N];this.removeListener(M,L.type,L.fn);}}if(P&&M&&M.childNodes){for(=
N=3D0,K=3DM.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],=
P,R);}}},getListeners:function(M,K){var =
P=3D[],L;if(!K){L=3D[I,J];}else{if(K=3D=3D=3D"unload"){L=3D[J];}else{L=3D=
[I];}}var R=3D(YAHOO.lang.isString(M))?this.getEl(M):M;for(var =
O=3D0;O<L.length;O=3DO+1){var T=3DL[O];if(T){for(var =
Q=3D0,S=3DT.length;Q<S;++Q){var =
N=3DT[Q];if(N&&N[this.EL]=3D=3D=3DR&&(!K||K=3D=3D=3DN[this.TYPE])){P.push=
({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE]=
,scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:=
function(Q){var =
K=3DYAHOO.util.Event,N,M,L,P,O,R=3DJ.slice();for(N=3D0,P=3DJ.length;N<P;+=
+N){L=3DR[N];if(L){var =
S=3Dwindow;if(L[K.ADJ_SCOPE]){if(L[K.ADJ_SCOPE]=3D=3D=3Dtrue){S=3DL[K.UNL=
OAD_OBJ];}else{S=3DL[K.ADJ_SCOPE];}}L[K.FN].call(S,K.getEvent(Q,L[K.EL]),=
L[K.UNLOAD_OBJ]);R[N]=3Dnull;L=3Dnull;S=3Dnull;}}J=3Dnull;if(I){for(M=3DI=
.length-1;M>-1;M--){L=3DI[M];if(L){K.removeListener(L[K.EL],L[K.TYPE],L[K=
.FN],M);}}L=3Dnull;}G=3Dnull;K._simpleRemove(window,"unload",K._unload);}=
,_getScrollLeft:function(){return =
this._getScroll()[1];},_getScrollTop:function(){return =
this._getScroll()[0];},_getScroll:function(){var =
K=3Ddocument.documentElement,L=3Ddocument.body;if(K&&(K.scrollTop||K.scro=
llLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,=
L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:functio=
n(){if(window.addEventListener){return =
function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEve=
nt){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return =
function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener=
){return =
function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detach=
Event){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return =
function(){};}}}()};}();(function(){var =
EU=3DYAHOO.util.Event;EU.on=3DEU.addListener;=0A=
/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */=0A=
if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttac=
h,YAHOO.util.Event,true);var =
n=3Ddocument.createElement("p");EU._dri=3DsetInterval(function(){try{n.do=
Scroll("left");clearInterval(EU._dri);EU._dri=3Dnull;EU._ready();n=3Dnull=
;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._d=
ri=3DsetInterval(function(){var =
rs=3Ddocument.readyState;if("loaded"=3D=3Drs||"complete"=3D=3Drs){clearIn=
terval(EU._dri);EU._dri=3Dnull;EU._ready();}},EU.POLL_INTERVAL);}else{EU.=
_simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,=
"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreload=
Attach();})();}YAHOO.util.EventProvider=3Dfunction(){};YAHOO.util.EventPr=
ovider.prototype=3D{__yui_events:null,__yui_subscribers:null,subscribe:fu=
nction(A,C,F,E){this.__yui_events=3Dthis.__yui_events||{};var =
D=3Dthis.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscr=
ibers=3Dthis.__yui_subscribers||{};var =
B=3Dthis.__yui_subscribers;if(!B[A]){B[A]=3D[];}B[A].push({fn:C,obj:F,ove=
rride:E});}},unsubscribe:function(C,E,G){this.__yui_events=3Dthis.__yui_e=
vents||{};var A=3Dthis.__yui_events;if(C){var F=3DA[C];if(F){return =
F.unsubscribe(E,G);}}else{var B=3Dtrue;for(var D in =
A){if(YAHOO.lang.hasOwnProperty(A,D)){B=3DB&&A[D].unsubscribe(E,G);}}retu=
rn B;}return false;},unsubscribeAll:function(A){return =
this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=3Dthis.=
__yui_events||{};var A=3DD||{};var I=3Dthis.__yui_events;=0A=
if(I[G]){}else{var H=3DA.scope||this;var E=3D(A.silent);var B=3Dnew =
YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=3DB;if(A.o=
nSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}th=
is.__yui_subscribers=3Dthis.__yui_subscribers||{};var =
F=3Dthis.__yui_subscribers[G];if(F){for(var =
C=3D0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}retu=
rn =
I[G];},fireEvent:function(E,D,A,C){this.__yui_events=3Dthis.__yui_events|=
|{};var G=3Dthis.__yui_events[E];if(!G){return null;}var B=3D[];for(var =
F=3D1;F<arguments.length;++F){B.push(arguments[F]);}return =
G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__=
yui_events[A]){return true;}}return =
false;}};YAHOO.util.KeyListener=3Dfunction(A,F,B,C){if(!A){}else{if(!F){}=
else{if(!B){}}}if(!C){C=3DYAHOO.util.KeyListener.KEYDOWN;}var D=3Dnew =
YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=3Dnew =
YAHOO.util.CustomEvent("enabled");this.disabledEvent=3Dnew =
YAHOO.util.CustomEvent("disabled");if(typeof =
A=3D=3D"string"){A=3Ddocument.getElementById(A);}if(typeof =
B=3D=3D"function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correc=
tScope);}function =
E(J,I){if(!F.shift){F.shift=3Dfalse;}if(!F.alt){F.alt=3Dfalse;}if(!F.ctrl=
){F.ctrl=3Dfalse;}if(J.shiftKey=3D=3DF.shift&&J.altKey=3D=3DF.alt&&J.ctrl=
Key=3D=3DF.ctrl){var G;if(F.keys instanceof Array){for(var =
H=3D0;H<F.keys.length;H++){G=3DF.keys[H];if(G=3D=3DJ.charCode){D.fire(J.c=
harCode,J);break;}else{if(G=3D=3DJ.keyCode){D.fire(J.keyCode,J);break;}}}=
}else{G=3DF.keys;if(G=3D=3DJ.charCode){D.fire(J.charCode,J);}else{if(G=3D=
=3DJ.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=3Dfunction(){if(!this.=
enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}t=
his.enabled=3Dtrue;};this.disable=3Dfunction(){if(this.enabled){YAHOO.uti=
l.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=3D=
false;};this.toString=3Dfunction(){return"KeyListener ["+F.keys+"] =
"+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN=3D"=
keydown";YAHOO.util.KeyListener.KEYUP=3D"keyup";YAHOO.util.KeyListener.KE=
Y=3D{ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35=
,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PA=
GE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:=
32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.5.2",=
build:"1076"});YAHOO.register("yahoo-dom-event", YAHOO, {version: =
"2.5.2", build: "1076"});=0A=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/container_core.js

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.1
*/
(function () {

    /**
    * Config is a utility used within an Object to allow the implementer =
to
    * maintain a list of local configuration properties and listen for =
changes=20
    * to those properties dynamically using CustomEvent. The initial =
values are=20
    * also maintained so that the configuration can be reset at any =
given point=20
    * to its initial state.
    * @namespace YAHOO.util
    * @class Config
    * @constructor
    * @param {Object} owner The owner Object to which this Config Object =
belongs
    */
    YAHOO.util.Config =3D function (owner) {

        if (owner) {
            this.init(owner);
        }


    };


    var Lang =3D YAHOO.lang,
        CustomEvent =3D YAHOO.util.CustomEvent,
        Config =3D YAHOO.util.Config;


    /**
     * Constant representing the CustomEvent type for the config changed =
event.
     * @property YAHOO.util.Config.CONFIG_CHANGED_EVENT
     * @private
     * @static
     * @final
     */
    Config.CONFIG_CHANGED_EVENT =3D "configChanged";
   =20
    /**
     * Constant representing the boolean type string
     * @property YAHOO.util.Config.BOOLEAN_TYPE
     * @private
     * @static
     * @final
     */
    Config.BOOLEAN_TYPE =3D "boolean";
   =20
    Config.prototype =3D {
    =20
        /**
        * Object reference to the owner of this Config Object
        * @property owner
        * @type Object
        */
        owner: null,
       =20
        /**
        * Boolean flag that specifies whether a queue is currently=20
        * being executed
        * @property queueInProgress
        * @type Boolean
        */
        queueInProgress: false,
       =20
        /**
        * Maintains the local collection of configuration property =
objects and=20
        * their specified values
        * @property config
        * @private
        * @type Object
        */=20
        config: null,
       =20
        /**
        * Maintains the local collection of configuration property =
objects as=20
        * they were initially applied.
        * This object is used when resetting a property.
        * @property initialConfig
        * @private
        * @type Object
        */=20
        initialConfig: null,
       =20
        /**
        * Maintains the local, normalized CustomEvent queue
        * @property eventQueue
        * @private
        * @type Object
        */=20
        eventQueue: null,
       =20
        /**
        * Custom Event, notifying subscribers when Config properties are =
set=20
        * (setProperty is called without the silent flag
        * @event configChangedEvent
        */
        configChangedEvent: null,
   =20
        /**
        * Initializes the configuration Object and all of its local =
members.
        * @method init
        * @param {Object} owner The owner Object to which this Config=20
        * Object belongs
        */
        init: function (owner) {
   =20
            this.owner =3D owner;
   =20
            this.configChangedEvent =3D=20
                this.createEvent(Config.CONFIG_CHANGED_EVENT);
   =20
            this.configChangedEvent.signature =3D CustomEvent.LIST;
            this.queueInProgress =3D false;
            this.config =3D {};
            this.initialConfig =3D {};
            this.eventQueue =3D [];
       =20
        },
       =20
        /**
        * Validates that the value passed in is a Boolean.
        * @method checkBoolean
        * @param {Object} val The value to validate
        * @return {Boolean} true, if the value is valid
        */=20
        checkBoolean: function (val) {
            return (typeof val =3D=3D Config.BOOLEAN_TYPE);
        },
       =20
        /**
        * Validates that the value passed in is a number.
        * @method checkNumber
        * @param {Object} val The value to validate
        * @return {Boolean} true, if the value is valid
        */
        checkNumber: function (val) {
            return (!isNaN(val));
        },
       =20
        /**
        * Fires a configuration property event using the specified =
value.=20
        * @method fireEvent
        * @private
        * @param {String} key The configuration property's name
        * @param {value} Object The value of the correct type for the =
property
        */=20
        fireEvent: function ( key, value ) {
            var property =3D this.config[key];
       =20
            if (property && property.event) {
                property.event.fire(value);
            }=20
        },
       =20
        /**
        * Adds a property to the Config Object's private config hash.
        * @method addProperty
        * @param {String} key The configuration property's name
        * @param {Object} propertyObject The Object containing all of =
this=20
        * property's arguments
        */
        addProperty: function ( key, propertyObject ) {
            key =3D key.toLowerCase();
       =20
            this.config[key] =3D propertyObject;
       =20
            propertyObject.event =3D this.createEvent(key, { scope: =
this.owner });
            propertyObject.event.signature =3D CustomEvent.LIST;
           =20
           =20
            propertyObject.key =3D key;
       =20
            if (propertyObject.handler) {
                propertyObject.event.subscribe(propertyObject.handler,=20
                    this.owner);
            }
       =20
            this.setProperty(key, propertyObject.value, true);
           =20
            if (! propertyObject.suppressEvent) {
                this.queueProperty(key, propertyObject.value);
            }
           =20
        },
       =20
        /**
        * Returns a key-value configuration map of the values currently =
set in =20
        * the Config Object.
        * @method getConfig
        * @return {Object} The current config, represented in a =
key-value map
        */
        getConfig: function () {
       =20
            var cfg =3D {},
                prop,
                property;
               =20
            for (prop in this.config) {
                property =3D this.config[prop];
                if (property && property.event) {
                    cfg[prop] =3D property.value;
                }
            }
           =20
            return cfg;
        },
       =20
        /**
        * Returns the value of specified property.
        * @method getProperty
        * @param {String} key The name of the property
        * @return {Object}  The value of the specified property
        */
        getProperty: function (key) {
            var property =3D this.config[key.toLowerCase()];
            if (property && property.event) {
                return property.value;
            } else {
                return undefined;
            }
        },
       =20
        /**
        * Resets the specified property's value to its initial value.
        * @method resetProperty
        * @param {String} key The name of the property
        * @return {Boolean} True is the property was reset, false if not
        */
        resetProperty: function (key) {
   =20
            key =3D key.toLowerCase();
       =20
            var property =3D this.config[key];
   =20
            if (property && property.event) {
   =20
                if (this.initialConfig[key] &&=20
                    !Lang.isUndefined(this.initialConfig[key])) {
   =20
                    this.setProperty(key, this.initialConfig[key]);

                    return true;
   =20
                }
   =20
            } else {
   =20
                return false;
            }
   =20
        },
       =20
        /**
        * Sets the value of a property. If the silent property is passed =
as=20
        * true, the property's event will not be fired.
        * @method setProperty
        * @param {String} key The name of the property
        * @param {String} value The value to set the property to
        * @param {Boolean} silent Whether the value should be set =
silently,=20
        * without firing the property event.
        * @return {Boolean} True, if the set was successful, false if it =
failed.
        */
        setProperty: function (key, value, silent) {
       =20
            var property;
       =20
            key =3D key.toLowerCase();
       =20
            if (this.queueInProgress && ! silent) {
                // Currently running through a queue...=20
                this.queueProperty(key,value);
                return true;
   =20
            } else {
                property =3D this.config[key];
                if (property && property.event) {
                    if (property.validator && =
!property.validator(value)) {
                        return false;
                    } else {
                        property.value =3D value;
                        if (! silent) {
                            this.fireEvent(key, value);
                            this.configChangedEvent.fire([key, value]);
                        }
                        return true;
                    }
                } else {
                    return false;
                }
            }
        },
       =20
        /**
        * Sets the value of a property and queues its event to execute. =
If the=20
        * event is already scheduled to execute, it is
        * moved from its current position to the end of the queue.
        * @method queueProperty
        * @param {String} key The name of the property
        * @param {String} value The value to set the property to
        * @return {Boolean}  true, if the set was successful, false if=20
        * it failed.
        */=20
        queueProperty: function (key, value) {
       =20
            key =3D key.toLowerCase();
       =20
            var property =3D this.config[key],
                foundDuplicate =3D false,
                iLen,
                queueItem,
                queueItemKey,
                queueItemValue,
                sLen,
                supercedesCheck,
                qLen,
                queueItemCheck,
                queueItemCheckKey,
                queueItemCheckValue,
                i,
                s,
                q;
                               =20
            if (property && property.event) {
   =20
                if (!Lang.isUndefined(value) && property.validator &&=20
                    !property.validator(value)) { // validator
                    return false;
                } else {
       =20
                    if (!Lang.isUndefined(value)) {
                        property.value =3D value;
                    } else {
                        value =3D property.value;
                    }
       =20
                    foundDuplicate =3D false;
                    iLen =3D this.eventQueue.length;
       =20
                    for (i =3D 0; i < iLen; i++) {
                        queueItem =3D this.eventQueue[i];
       =20
                        if (queueItem) {
                            queueItemKey =3D queueItem[0];
                            queueItemValue =3D queueItem[1];

                            if (queueItemKey =3D=3D key) {
   =20
                                /*
                                    found a dupe... push to end of =
queue, null=20
                                    current item, and break
                                */
   =20
                                this.eventQueue[i] =3D null;
   =20
                                this.eventQueue.push(
                                    [key, (!Lang.isUndefined(value) ?=20
                                    value : queueItemValue)]);
   =20
                                foundDuplicate =3D true;
                                break;
                            }
                        }
                    }
                   =20
                    // this is a refire, or a new property in the queue
   =20
                    if (! foundDuplicate && !Lang.isUndefined(value)) {=20
                        this.eventQueue.push([key, value]);
                    }
                }
       =20
                if (property.supercedes) {

                    sLen =3D property.supercedes.length;

                    for (s =3D 0; s < sLen; s++) {

                        supercedesCheck =3D property.supercedes[s];
                        qLen =3D this.eventQueue.length;

                        for (q =3D 0; q < qLen; q++) {
                            queueItemCheck =3D this.eventQueue[q];

                            if (queueItemCheck) {
                                queueItemCheckKey =3D queueItemCheck[0];
                                queueItemCheckValue =3D =
queueItemCheck[1];

                                if (queueItemCheckKey =3D=3D=20
                                    supercedesCheck.toLowerCase() ) {

                                    =
this.eventQueue.push([queueItemCheckKey,=20
                                        queueItemCheckValue]);

                                    this.eventQueue[q] =3D null;
                                    break;

                                }
                            }
                        }
                    }
                }


                return true;
            } else {
                return false;
            }
        },
       =20
        /**
        * Fires the event for a property using the property's current =
value.
        * @method refireEvent
        * @param {String} key The name of the property
        */
        refireEvent: function (key) {
   =20
            key =3D key.toLowerCase();
       =20
            var property =3D this.config[key];
   =20
            if (property && property.event &&=20
   =20
                !Lang.isUndefined(property.value)) {
   =20
                if (this.queueInProgress) {
   =20
                    this.queueProperty(key);
   =20
                } else {
   =20
                    this.fireEvent(key, property.value);
   =20
                }
   =20
            }
        },
       =20
        /**
        * Applies a key-value Object literal to the configuration, =
replacing =20
        * any existing values, and queueing the property events.
        * Although the values will be set, fireQueue() must be called =
for their=20
        * associated events to execute.
        * @method applyConfig
        * @param {Object} userConfig The configuration Object literal
        * @param {Boolean} init  When set to true, the initialConfig =
will=20
        * be set to the userConfig passed in, so that calling a reset =
will=20
        * reset the properties to the passed values.
        */
        applyConfig: function (userConfig, init) {
       =20
            var sKey,
                oConfig;

            if (init) {
                oConfig =3D {};
                for (sKey in userConfig) {
                    if (Lang.hasOwnProperty(userConfig, sKey)) {
                        oConfig[sKey.toLowerCase()] =3D =
userConfig[sKey];
                    }
                }
                this.initialConfig =3D oConfig;
            }

            for (sKey in userConfig) {
                if (Lang.hasOwnProperty(userConfig, sKey)) {
                    this.queueProperty(sKey, userConfig[sKey]);
                }
            }
        },
       =20
        /**
        * Refires the events for all configuration properties using =
their=20
        * current values.
        * @method refresh
        */
        refresh: function () {
       =20
            var prop;
       =20
            for (prop in this.config) {
                this.refireEvent(prop);
            }
        },
       =20
        /**
        * Fires the normalized list of queued property change events
        * @method fireQueue
        */
        fireQueue: function () {
       =20
            var i,=20
                queueItem,
                key,
                value,
                property;
       =20
            this.queueInProgress =3D true;
            for (i =3D 0;i < this.eventQueue.length; i++) {
                queueItem =3D this.eventQueue[i];
                if (queueItem) {
       =20
                    key =3D queueItem[0];
                    value =3D queueItem[1];
                    property =3D this.config[key];
       =20
                    property.value =3D value;
       =20
                    this.fireEvent(key,value);
                }
            }
           =20
            this.queueInProgress =3D false;
            this.eventQueue =3D [];
        },
       =20
        /**
        * Subscribes an external handler to the change event for any=20
        * given property.=20
        * @method subscribeToConfigEvent
        * @param {String} key The property name
        * @param {Function} handler The handler function to use =
subscribe to=20
        * the property's event
        * @param {Object} obj The Object to use for scoping the event =
handler=20
        * (see CustomEvent documentation)
        * @param {Boolean} override Optional. If true, will override =
"this" =20
        * within the handler to map to the scope Object passed into the =
method.
        * @return {Boolean} True, if the subscription was successful,=20
        * otherwise false.
        */=20
        subscribeToConfigEvent: function (key, handler, obj, override) {
   =20
            var property =3D this.config[key.toLowerCase()];
   =20
            if (property && property.event) {
                if (!Config.alreadySubscribed(property.event, handler, =
obj)) {
                    property.event.subscribe(handler, obj, override);
                }
                return true;
            } else {
                return false;
            }
   =20
        },
       =20
        /**
        * Unsubscribes an external handler from the change event for any =

        * given property.=20
        * @method unsubscribeFromConfigEvent
        * @param {String} key The property name
        * @param {Function} handler The handler function to use =
subscribe to=20
        * the property's event
        * @param {Object} obj The Object to use for scoping the event=20
        * handler (see CustomEvent documentation)
        * @return {Boolean} True, if the unsubscription was successful,=20
        * otherwise false.
        */
        unsubscribeFromConfigEvent: function (key, handler, obj) {
            var property =3D this.config[key.toLowerCase()];
            if (property && property.event) {
                return property.event.unsubscribe(handler, obj);
            } else {
                return false;
            }
        },
       =20
        /**
        * Returns a string representation of the Config object
        * @method toString
        * @return {String} The Config object in string format.
        */
        toString: function () {
            var output =3D "Config";
            if (this.owner) {
                output +=3D " [" + this.owner.toString() + "]";
            }
            return output;
        },
       =20
        /**
        * Returns a string representation of the Config object's current =

        * CustomEvent queue
        * @method outputEventQueue
        * @return {String} The string list of CustomEvents currently =
queued=20
        * for execution
        */
        outputEventQueue: function () {

            var output =3D "",
                queueItem,
                q,
                nQueue =3D this.eventQueue.length;
             =20
            for (q =3D 0; q < nQueue; q++) {
                queueItem =3D this.eventQueue[q];
                if (queueItem) {
                    output +=3D queueItem[0] + "=3D" + queueItem[1] + ", =
";
                }
            }
            return output;
        },

        /**
        * Sets all properties to null, unsubscribes all listeners from =
each=20
        * property's change event and all listeners from the =
configChangedEvent.
        * @method destroy
        */
        destroy: function () {

            var oConfig =3D this.config,
                sProperty,
                oProperty;


            for (sProperty in oConfig) {
           =20
                if (Lang.hasOwnProperty(oConfig, sProperty)) {

                    oProperty =3D oConfig[sProperty];

                    oProperty.event.unsubscribeAll();
                    oProperty.event =3D null;

                }
           =20
            }
           =20
            this.configChangedEvent.unsubscribeAll();
           =20
            this.configChangedEvent =3D null;
            this.owner =3D null;
            this.config =3D null;
            this.initialConfig =3D null;
            this.eventQueue =3D null;
       =20
        }

    };
   =20
   =20
   =20
    /**
    * Checks to determine if a particular function/Object pair are =
already=20
    * subscribed to the specified CustomEvent
    * @method YAHOO.util.Config.alreadySubscribed
    * @static
    * @param {YAHOO.util.CustomEvent} evt The CustomEvent for which to =
check=20
    * the subscriptions
    * @param {Function} fn The function to look for in the subscribers =
list
    * @param {Object} obj The execution scope Object for the =
subscription
    * @return {Boolean} true, if the function/Object pair is already =
subscribed=20
    * to the CustomEvent passed in
    */
    Config.alreadySubscribed =3D function (evt, fn, obj) {
   =20
        var nSubscribers =3D evt.subscribers.length,
            subsc,
            i;

        if (nSubscribers > 0) {
            i =3D nSubscribers - 1;
            do {
                subsc =3D evt.subscribers[i];
                if (subsc && subsc.obj =3D=3D obj && subsc.fn =3D=3D fn) =
{
                    return true;
                }
            }
            while (i--);
        }

        return false;

    };

    YAHOO.lang.augmentProto(Config, YAHOO.util.EventProvider);

}());

(function () {

    /**
    * The Container family of components is designed to enable =
developers to=20
    * create different kinds of content-containing modules on the web. =
Module=20
    * and Overlay are the most basic containers, and they can be used =
directly=20
    * or extended to build custom containers. Also part of the Container =
family=20
    * are four UI controls that extend Module and Overlay: Tooltip, =
Panel,=20
    * Dialog, and SimpleDialog.
    * @module container
    * @title Container
    * @requires yahoo, dom, event=20
    * @optional dragdrop, animation, button
    */
   =20
    /**
    * Module is a JavaScript representation of the Standard Module =
Format.=20
    * Standard Module Format is a simple standard for markup containers =
where=20
    * child nodes representing the header, body, and footer of the =
content are=20
    * denoted using the CSS classes "hd", "bd", and "ft" respectively.=20
    * Module is the base class for all other classes in the YUI=20
    * Container package.
    * @namespace YAHOO.widget
    * @class Module
    * @constructor
    * @param {String} el The element ID representing the Module =
<em>OR</em>
    * @param {HTMLElement} el The element representing the Module
    * @param {Object} userConfig The configuration Object literal =
containing=20
    * the configuration that should be set for this module. See =
configuration=20
    * documentation for more details.
    */
    YAHOO.widget.Module =3D function (el, userConfig) {
        if (el) {
            this.init(el, userConfig);
        } else {
        }
    };

    var Dom =3D YAHOO.util.Dom,
        Config =3D YAHOO.util.Config,
        Event =3D YAHOO.util.Event,
        CustomEvent =3D YAHOO.util.CustomEvent,
        Module =3D YAHOO.widget.Module,

        m_oModuleTemplate,
        m_oHeaderTemplate,
        m_oBodyTemplate,
        m_oFooterTemplate,

        /**
        * Constant representing the name of the Module's events
        * @property EVENT_TYPES
        * @private
        * @final
        * @type Object
        */
        EVENT_TYPES =3D {
            "BEFORE_INIT": "beforeInit",
            "INIT": "init",
            "APPEND": "append",
            "BEFORE_RENDER": "beforeRender",
            "RENDER": "render",
            "CHANGE_HEADER": "changeHeader",
            "CHANGE_BODY": "changeBody",
            "CHANGE_FOOTER": "changeFooter",
            "CHANGE_CONTENT": "changeContent",
            "DESTORY": "destroy",
            "BEFORE_SHOW": "beforeShow",
            "SHOW": "show",
            "BEFORE_HIDE": "beforeHide",
            "HIDE": "hide"
        },
           =20
        /**
        * Constant representing the Module's configuration properties
        * @property DEFAULT_CONFIG
        * @private
        * @final
        * @type Object
        */
        DEFAULT_CONFIG =3D {
       =20
            "VISIBLE": {=20
                key: "visible",=20
                value: true,=20
                validator: YAHOO.lang.isBoolean=20
            },
       =20
            "EFFECT": {=20
                key: "effect",=20
                suppressEvent: true,=20
                supercedes: ["visible"]=20
            },

            "MONITOR_RESIZE": {=20
                key: "monitorresize",=20
                value: true =20
            },

            "APPEND_TO_DOCUMENT_BODY": {=20
                key: "appendtodocumentbody",=20
                value: false
            }
        };
   =20
    /**
    * Constant representing the prefix path to use for non-secure images
    * @property YAHOO.widget.Module.IMG_ROOT
    * @static
    * @final
    * @type String
    */
    Module.IMG_ROOT =3D null;
   =20
    /**
    * Constant representing the prefix path to use for securely served =
images
    * @property YAHOO.widget.Module.IMG_ROOT_SSL
    * @static
    * @final
    * @type String
    */
    Module.IMG_ROOT_SSL =3D null;
   =20
    /**
    * Constant for the default CSS class name that represents a Module
    * @property YAHOO.widget.Module.CSS_MODULE
    * @static
    * @final
    * @type String
    */
    Module.CSS_MODULE =3D "yui-module";
   =20
    /**
    * Constant representing the module header
    * @property YAHOO.widget.Module.CSS_HEADER
    * @static
    * @final
    * @type String
    */
    Module.CSS_HEADER =3D "hd";

    /**
    * Constant representing the module body
    * @property YAHOO.widget.Module.CSS_BODY
    * @static
    * @final
    * @type String
    */
    Module.CSS_BODY =3D "bd";
   =20
    /**
    * Constant representing the module footer
    * @property YAHOO.widget.Module.CSS_FOOTER
    * @static
    * @final
    * @type String
    */
    Module.CSS_FOOTER =3D "ft";
   =20
    /**
    * Constant representing the url for the "src" attribute of the =
iframe=20
    * used to monitor changes to the browser's base font size
    * @property YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL
    * @static
    * @final
    * @type String
    */
    Module.RESIZE_MONITOR_SECURE_URL =3D "javascript:false;";
   =20
    /**
    * Singleton CustomEvent fired when the font size is changed in the =
browser.
    * Opera's "zoom" functionality currently does not support text=20
    * size detection.
    * @event YAHOO.widget.Module.textResizeEvent
    */
    Module.textResizeEvent =3D new CustomEvent("textResize");

    function createModuleTemplate() {

        if (!m_oModuleTemplate) {
            m_oModuleTemplate =3D document.createElement("div");
           =20
            m_oModuleTemplate.innerHTML =3D ("<div class=3D\"" +=20
                Module.CSS_HEADER + "\"></div>" + "<div class=3D\"" +=20
                Module.CSS_BODY + "\"></div><div class=3D\"" +=20
                Module.CSS_FOOTER + "\"></div>");

            m_oHeaderTemplate =3D m_oModuleTemplate.firstChild;
            m_oBodyTemplate =3D m_oHeaderTemplate.nextSibling;
            m_oFooterTemplate =3D m_oBodyTemplate.nextSibling;
        }

        return m_oModuleTemplate;
    }

    function createHeader() {
        if (!m_oHeaderTemplate) {
            createModuleTemplate();
        }
        return (m_oHeaderTemplate.cloneNode(false));
    }

    function createBody() {
        if (!m_oBodyTemplate) {
            createModuleTemplate();
        }
        return (m_oBodyTemplate.cloneNode(false));
    }

    function createFooter() {
        if (!m_oFooterTemplate) {
            createModuleTemplate();
        }
        return (m_oFooterTemplate.cloneNode(false));
    }

    Module.prototype =3D {

        /**
        * The class's constructor function
        * @property contructor
        * @type Function
        */
        constructor: Module,
       =20
        /**
        * The main module element that contains the header, body, and =
footer
        * @property element
        * @type HTMLElement
        */
        element: null,

        /**
        * The header element, denoted with CSS class "hd"
        * @property header
        * @type HTMLElement
        */
        header: null,

        /**
        * The body element, denoted with CSS class "bd"
        * @property body
        * @type HTMLElement
        */
        body: null,

        /**
        * The footer element, denoted with CSS class "ft"
        * @property footer
        * @type HTMLElement
        */
        footer: null,

        /**
        * The id of the element
        * @property id
        * @type String
        */
        id: null,

        /**
        * A string representing the root path for all images created by
        * a Module instance.
        * @deprecated It is recommend that any images for a Module be =
applied
        * via CSS using the "background-image" property.
        * @property imageRoot
        * @type String
        */
        imageRoot: Module.IMG_ROOT,

        /**
        * Initializes the custom events for Module which are fired=20
        * automatically at appropriate times by the Module class.
        * @method initEvents
        */
        initEvents: function () {

            var SIGNATURE =3D CustomEvent.LIST;

            /**
            * CustomEvent fired prior to class initalization.
            * @event beforeInitEvent
            * @param {class} classRef class reference of the =
initializing=20
            * class, such as this.beforeInitEvent.fire(Module)
            */
            this.beforeInitEvent =3D =
this.createEvent(EVENT_TYPES.BEFORE_INIT);
            this.beforeInitEvent.signature =3D SIGNATURE;

            /**
            * CustomEvent fired after class initalization.
            * @event initEvent
            * @param {class} classRef class reference of the =
initializing=20
            * class, such as this.beforeInitEvent.fire(Module)
            */ =20
            this.initEvent =3D this.createEvent(EVENT_TYPES.INIT);
            this.initEvent.signature =3D SIGNATURE;

            /**
            * CustomEvent fired when the Module is appended to the DOM
            * @event appendEvent
            */
            this.appendEvent =3D this.createEvent(EVENT_TYPES.APPEND);
            this.appendEvent.signature =3D SIGNATURE;

            /**
            * CustomEvent fired before the Module is rendered
            * @event beforeRenderEvent
            */
            this.beforeRenderEvent =3D =
this.createEvent(EVENT_TYPES.BEFORE_RENDER);
            this.beforeRenderEvent.signature =3D SIGNATURE;
       =20
            /**
            * CustomEvent fired after the Module is rendered
            * @event renderEvent
            */
            this.renderEvent =3D this.createEvent(EVENT_TYPES.RENDER);
            this.renderEvent.signature =3D SIGNATURE;
       =20
            /**
            * CustomEvent fired when the header content of the Module=20
            * is modified
            * @event changeHeaderEvent
            * @param {String/HTMLElement} content String/element =
representing=20
            * the new header content
            */
            this.changeHeaderEvent =3D =
this.createEvent(EVENT_TYPES.CHANGE_HEADER);
            this.changeHeaderEvent.signature =3D SIGNATURE;
           =20
            /**
            * CustomEvent fired when the body content of the Module is =
modified
            * @event changeBodyEvent
            * @param {String/HTMLElement} content String/element =
representing=20
            * the new body content
            */ =20
            this.changeBodyEvent =3D =
this.createEvent(EVENT_TYPES.CHANGE_BODY);
            this.changeBodyEvent.signature =3D SIGNATURE;
           =20
            /**
            * CustomEvent fired when the footer content of the Module=20
            * is modified
            * @event changeFooterEvent
            * @param {String/HTMLElement} content String/element =
representing=20
            * the new footer content
            */
            this.changeFooterEvent =3D =
this.createEvent(EVENT_TYPES.CHANGE_FOOTER);
            this.changeFooterEvent.signature =3D SIGNATURE;
       =20
            /**
            * CustomEvent fired when the content of the Module is =
modified
            * @event changeContentEvent
            */
            this.changeContentEvent =3D =
this.createEvent(EVENT_TYPES.CHANGE_CONTENT);
            this.changeContentEvent.signature =3D SIGNATURE;

            /**
            * CustomEvent fired when the Module is destroyed
            * @event destroyEvent
            */
            this.destroyEvent =3D this.createEvent(EVENT_TYPES.DESTORY);
            this.destroyEvent.signature =3D SIGNATURE;

            /**
            * CustomEvent fired before the Module is shown
            * @event beforeShowEvent
            */
            this.beforeShowEvent =3D =
this.createEvent(EVENT_TYPES.BEFORE_SHOW);
            this.beforeShowEvent.signature =3D SIGNATURE;

            /**
            * CustomEvent fired after the Module is shown
            * @event showEvent
            */
            this.showEvent =3D this.createEvent(EVENT_TYPES.SHOW);
            this.showEvent.signature =3D SIGNATURE;

            /**
            * CustomEvent fired before the Module is hidden
            * @event beforeHideEvent
            */
            this.beforeHideEvent =3D =
this.createEvent(EVENT_TYPES.BEFORE_HIDE);
            this.beforeHideEvent.signature =3D SIGNATURE;

            /**
            * CustomEvent fired after the Module is hidden
            * @event hideEvent
            */
            this.hideEvent =3D this.createEvent(EVENT_TYPES.HIDE);
            this.hideEvent.signature =3D SIGNATURE;
        },=20

        /**
        * String representing the current user-agent platform
        * @property platform
        * @type String
        */
        platform: function () {
            var ua =3D navigator.userAgent.toLowerCase();

            if (ua.indexOf("windows") !=3D -1 || ua.indexOf("win32") =
!=3D -1) {
                return "windows";
            } else if (ua.indexOf("macintosh") !=3D -1) {
                return "mac";
            } else {
                return false;
            }
        }(),
       =20
        /**
        * String representing the user-agent of the browser
        * @deprecated Use YAHOO.env.ua
        * @property browser
        * @type String
        */
        browser: function () {
            var ua =3D navigator.userAgent.toLowerCase();
            /*
                 Check Opera first in case of spoof and check Safari =
before
                 Gecko since Safari's user agent string includes "like =
Gecko"
            */
            if (ua.indexOf('opera') !=3D -1) {=20
                return 'opera';
            } else if (ua.indexOf('msie 7') !=3D -1) {
                return 'ie7';
            } else if (ua.indexOf('msie') !=3D -1) {
                return 'ie';
            } else if (ua.indexOf('safari') !=3D -1) {=20
                return 'safari';
            } else if (ua.indexOf('gecko') !=3D -1) {
                return 'gecko';
            } else {
                return false;
            }
        }(),
       =20
        /**
        * Boolean representing whether or not the current browsing =
context is=20
        * secure (https)
        * @property isSecure
        * @type Boolean
        */
        isSecure: function () {
            if (window.location.href.toLowerCase().indexOf("https") =
=3D=3D=3D 0) {
                return true;
            } else {
                return false;
            }
        }(),
       =20
        /**
        * Initializes the custom events for Module which are fired=20
        * automatically at appropriate times by the Module class.
        */
        initDefaultConfig: function () {
            // Add properties //
            /**
            * Specifies whether the Module is visible on the page.
            * @config visible
            * @type Boolean
            * @default true
            */
            this.cfg.addProperty(DEFAULT_CONFIG.VISIBLE.key, {
                handler: this.configVisible,=20
                value: DEFAULT_CONFIG.VISIBLE.value,=20
                validator: DEFAULT_CONFIG.VISIBLE.validator
            });

            /**
            * Object or array of objects representing the =
ContainerEffect=20
            * classes that are active for animating the container.
            * @config effect
            * @type Object
            * @default null
            */
            this.cfg.addProperty(DEFAULT_CONFIG.EFFECT.key, {
                suppressEvent: DEFAULT_CONFIG.EFFECT.suppressEvent,=20
                supercedes: DEFAULT_CONFIG.EFFECT.supercedes
            });

            /**
            * Specifies whether to create a special proxy iframe to =
monitor=20
            * for user font resizing in the document
            * @config monitorresize
            * @type Boolean
            * @default true
            */
            this.cfg.addProperty(DEFAULT_CONFIG.MONITOR_RESIZE.key, {
                handler: this.configMonitorResize,
                value: DEFAULT_CONFIG.MONITOR_RESIZE.value
            });

            /**
            * Specifies if the module should be rendered as the first =
child=20
            * of document.body or appended as the last child when render =
is called
            * with document.body as the "appendToNode".
            * <p>
            * Appending to the body while the DOM is still being =
constructed can=20
            * lead to Operation Aborted errors in IE hence this flag is =
set to=20
            * false by default.
            * </p>
            *=20
            * @config appendtodocumentbody
            * @type Boolean
            * @default false
            */
            =
this.cfg.addProperty(DEFAULT_CONFIG.APPEND_TO_DOCUMENT_BODY.key, {
                value: DEFAULT_CONFIG.APPEND_TO_DOCUMENT_BODY.value
            });
        },

        /**
        * The Module class's initialization method, which is executed =
for
        * Module and all of its subclasses. This method is automatically =

        * called by the constructor, and  sets up all DOM references for =

        * pre-existing markup, and creates required markup if it is not=20
        * already present.
        * @method init
        * @param {String} el The element ID representing the Module =
<em>OR</em>
        * @param {HTMLElement} el The element representing the Module
        * @param {Object} userConfig The configuration Object literal=20
        * containing the configuration that should be set for this =
module.=20
        * See configuration documentation for more details.
        */
        init: function (el, userConfig) {

            var elId, child;

            this.initEvents();
            this.beforeInitEvent.fire(Module);

            /**
            * The Module's Config object used for monitoring=20
            * configuration properties.
            * @property cfg
            * @type YAHOO.util.Config
            */
            this.cfg =3D new Config(this);

            if (this.isSecure) {
                this.imageRoot =3D Module.IMG_ROOT_SSL;
            }

            if (typeof el =3D=3D "string") {
                elId =3D el;
                el =3D document.getElementById(el);
                if (! el) {
                    el =3D (createModuleTemplate()).cloneNode(false);
                    el.id =3D elId;
                }
            }

            this.element =3D el;

            if (el.id) {
                this.id =3D el.id;
            }

            child =3D this.element.firstChild;

            if (child) {
                var fndHd =3D false, fndBd =3D false, fndFt =3D false;
                do {
                    // We're looking for elements
                    if (1 =3D=3D child.nodeType) {
                        if (!fndHd && Dom.hasClass(child, =
Module.CSS_HEADER)) {
                            this.header =3D child;
                            fndHd =3D true;
                        } else if (!fndBd && Dom.hasClass(child, =
Module.CSS_BODY)) {
                            this.body =3D child;
                            fndBd =3D true;
                        } else if (!fndFt && Dom.hasClass(child, =
Module.CSS_FOOTER)){
                            this.footer =3D child;
                            fndFt =3D true;
                        }
                    }
                } while ((child =3D child.nextSibling));
            }

            this.initDefaultConfig();

            Dom.addClass(this.element, Module.CSS_MODULE);

            if (userConfig) {
                this.cfg.applyConfig(userConfig, true);
            }

            /*
                Subscribe to the fireQueue() method of Config so that =
any=20
                queued configuration changes are excecuted upon render =
of=20
                the Module
            */=20

            if (!Config.alreadySubscribed(this.renderEvent, =
this.cfg.fireQueue, this.cfg)) {
                this.renderEvent.subscribe(this.cfg.fireQueue, this.cfg, =
true);
            }

            this.initEvent.fire(Module);
        },

        /**
        * Initialize an empty IFRAME that is placed out of the visible =
area=20
        * that can be used to detect text resize.
        * @method initResizeMonitor
        */
        initResizeMonitor: function () {

            var isGeckoWin =3D (YAHOO.env.ua.gecko && this.platform =
=3D=3D "windows");
            if (isGeckoWin) {
                // Help prevent spinning loading icon which=20
                // started with FireFox 2.0.0.8/Win
                var self =3D this;
                setTimeout(function(){self._initResizeMonitor();}, 0);
            } else {
                this._initResizeMonitor();
            }
        },

        /**
         * Create and initialize the text resize monitoring iframe.
         *=20
         * @protected
         * @method _initResizeMonitor
         */
        _initResizeMonitor : function() {

            var oDoc,=20
                oIFrame,=20
                sHTML;

            function fireTextResize() {
                Module.textResizeEvent.fire();
            }

            if (!YAHOO.env.ua.opera) {
                oIFrame =3D Dom.get("_yuiResizeMonitor");

                var supportsCWResize =3D this._supportsCWResize();

                if (!oIFrame) {
                    oIFrame =3D document.createElement("iframe");

                    if (this.isSecure && =
Module.RESIZE_MONITOR_SECURE_URL && YAHOO.env.ua.ie) {
                        oIFrame.src =3D =
Module.RESIZE_MONITOR_SECURE_URL;
                    }

                    if (!supportsCWResize) {
                        // Can't monitor on contentWindow, so fire from =
inside iframe
                        sHTML =3D ["<html><head><script ",
                                 "type=3D\"text/javascript\">",
                                 =
"window.onresize=3Dfunction(){window.parent.",
                                 "YAHOO.widget.Module.textResizeEvent.",
                                 "fire();};<",
                                 "\/script></head>",
                                 "<body></body></html>"].join('');

                        oIFrame.src =3D =
"data:text/html;charset=3Dutf-8," + encodeURIComponent(sHTML);
                    }

                    oIFrame.id =3D "_yuiResizeMonitor";
                    /*
                        Need to set "position" property before inserting =
the=20
                        iframe into the document or Safari's status bar =
will=20
                        forever indicate the iframe is loading=20
                        (See SourceForge bug #1723064)
                    */
                    oIFrame.style.position =3D "absolute";
                    oIFrame.style.visibility =3D "hidden";

                    var db =3D document.body,
                        fc =3D db.firstChild;
                    if (fc) {
                        db.insertBefore(oIFrame, fc);
                    } else {
                        db.appendChild(oIFrame);
                    }

                    oIFrame.style.width =3D "10em";
                    oIFrame.style.height =3D "10em";
                    oIFrame.style.top =3D (-1 * oIFrame.offsetHeight) + =
"px";
                    oIFrame.style.left =3D (-1 * oIFrame.offsetWidth) + =
"px";
                    oIFrame.style.borderWidth =3D "0";
                    oIFrame.style.visibility =3D "visible";

                    /*
                       Don't open/close the document for Gecko like we =
used to, since it
                       leads to duplicate cookies. (See SourceForge bug =
#1721755)
                    */
                    if (YAHOO.env.ua.webkit) {
                        oDoc =3D oIFrame.contentWindow.document;
                        oDoc.open();
                        oDoc.close();
                    }
                }

                if (oIFrame && oIFrame.contentWindow) {
                    Module.textResizeEvent.subscribe(this.onDomResize, =
this, true);

                    if (!Module.textResizeInitialized) {
                        if (supportsCWResize) {
                            if (!Event.on(oIFrame.contentWindow, =
"resize", fireTextResize)) {
                                /*
                                     This will fail in IE if =
document.domain has=20
                                     changed, so we must change the =
listener to=20
                                     use the oIFrame element instead
                                */
                                Event.on(oIFrame, "resize", =
fireTextResize);
                            }
                        }
                        Module.textResizeInitialized =3D true;
                    }
                    this.resizeMonitor =3D oIFrame;
                }
            }
        },

        /**
         * Text resize monitor helper method.
         * Determines if the browser supports resize events on iframe =
content windows.
         *=20
         * @private
         * @method _supportsCWResize
         */
        _supportsCWResize : function() {
            /*
                Gecko 1.8.0 (FF1.5), 1.8.1.0-5 (FF2) won't fire resize =
on contentWindow.
                Gecko 1.8.1.6+ (FF2.0.0.6+) and all other browsers will =
fire resize on contentWindow.

                We don't want to start sniffing for patch versions, so =
fire textResize the same
                way on all FF, until 1.9 (3.x) is out
             */
            var bSupported =3D true;
            if (YAHOO.env.ua.gecko && YAHOO.env.ua.gecko <=3D 1.8) {
                bSupported =3D false;
                /*
                var v =3D navigator.userAgent.match(/rv:([^\s\)]*)/); // =
From YAHOO.env.ua
                if (v && v[0]) {
                    var sv =3D v[0].match(/\d\.\d\.(\d)/);
                    if (sv && sv[1]) {
                        if (parseInt(sv[1], 10) > 0) {
                            bSupported =3D true;
                        }
                    }
                }
                */
            }
            return bSupported;
        },

        /**
        * Event handler fired when the resize monitor element is =
resized.
        * @method onDomResize
        * @param {DOMEvent} e The DOM resize event
        * @param {Object} obj The scope object passed to the handler
        */
        onDomResize: function (e, obj) {

            var nLeft =3D -1 * this.resizeMonitor.offsetWidth,
                nTop =3D -1 * this.resizeMonitor.offsetHeight;
       =20
            this.resizeMonitor.style.top =3D nTop + "px";
            this.resizeMonitor.style.left =3D  nLeft + "px";

        },

        /**
        * Sets the Module's header content to the string specified, or =
appends=20
        * the passed element to the header. If no header is present, one =
will=20
        * be automatically created. An empty string can be passed to the =
method
        * to clear the contents of the header.
        *=20
        * @method setHeader
        * @param {String} headerContent The string used to set the =
header.
        * As a convenience, non HTMLElement objects can also be passed =
into=20
        * the method, and will be treated as strings, with the header =
innerHTML
        * set to their default toString implementations.
        * <em>OR</em>
        * @param {HTMLElement} headerContent The HTMLElement to append =
to=20
        * <em>OR</em>
        * @param {DocumentFragment} headerContent The document fragment=20
        * containing elements which are to be added to the header
        */
        setHeader: function (headerContent) {
            var oHeader =3D this.header || (this.header =3D =
createHeader());

            if (headerContent.nodeName) {
                oHeader.innerHTML =3D "";
                oHeader.appendChild(headerContent);
            } else {
                oHeader.innerHTML =3D headerContent;
            }

            this.changeHeaderEvent.fire(headerContent);
            this.changeContentEvent.fire();

        },

        /**
        * Appends the passed element to the header. If no header is =
present,=20
        * one will be automatically created.
        * @method appendToHeader
        * @param {HTMLElement | DocumentFragment} element The element to =

        * append to the header. In the case of a document fragment, the
        * children of the fragment will be appended to the header.
        */
        appendToHeader: function (element) {
            var oHeader =3D this.header || (this.header =3D =
createHeader());

            oHeader.appendChild(element);

            this.changeHeaderEvent.fire(element);
            this.changeContentEvent.fire();

        },

        /**
        * Sets the Module's body content to the HTML specified, or =
appends the
        * passed element to the body. If no body is present, one will be =

        * automatically created. An empty string can be passed to the =
method
        * to clear the contents of the body.
        * @method setBody
        * @param {String} bodyContent The HTML used to set the body.=20
        * As a convenience, non HTMLElement objects can also be passed =
into=20
        * the method, and will be treated as strings, with the body =
innerHTML
        * set to their default toString implementations.
        * <em>OR</em>
        * @param {HTMLElement} bodyContent The HTMLElement to append to =
the body
        * <em>OR</em>
        * @param {DocumentFragment} bodyContent The document fragment=20
        * containing elements which are to be added to the body
        */
        setBody: function (bodyContent) {
            var oBody =3D this.body || (this.body =3D createBody());

            if (bodyContent.nodeName) {
                oBody.innerHTML =3D "";
                oBody.appendChild(bodyContent);
            } else {
                oBody.innerHTML =3D bodyContent;
            }

            this.changeBodyEvent.fire(bodyContent);
            this.changeContentEvent.fire();
        },

        /**
        * Appends the passed element to the body. If no body is present, =
one=20
        * will be automatically created.
        * @method appendToBody
        * @param {HTMLElement | DocumentFragment} element The element to =

        * append to the body. In the case of a document fragment, the
        * children of the fragment will be appended to the body.
        *=20
        */
        appendToBody: function (element) {
            var oBody =3D this.body || (this.body =3D createBody());
       =20
            oBody.appendChild(element);

            this.changeBodyEvent.fire(element);
            this.changeContentEvent.fire();

        },
       =20
        /**
        * Sets the Module's footer content to the HTML specified, or =
appends=20
        * the passed element to the footer. If no footer is present, one =
will=20
        * be automatically created. An empty string can be passed to the =
method
        * to clear the contents of the footer.
        * @method setFooter
        * @param {String} footerContent The HTML used to set the footer=20
        * As a convenience, non HTMLElement objects can also be passed =
into=20
        * the method, and will be treated as strings, with the footer =
innerHTML
        * set to their default toString implementations.
        * <em>OR</em>
        * @param {HTMLElement} footerContent The HTMLElement to append =
to=20
        * the footer
        * <em>OR</em>
        * @param {DocumentFragment} footerContent The document fragment =
containing=20
        * elements which are to be added to the footer
        */
        setFooter: function (footerContent) {

            var oFooter =3D this.footer || (this.footer =3D =
createFooter());

            if (footerContent.nodeName) {
                oFooter.innerHTML =3D "";
                oFooter.appendChild(footerContent);
            } else {
                oFooter.innerHTML =3D footerContent;
            }

            this.changeFooterEvent.fire(footerContent);
            this.changeContentEvent.fire();
        },

        /**
        * Appends the passed element to the footer. If no footer is =
present,=20
        * one will be automatically created.
        * @method appendToFooter
        * @param {HTMLElement | DocumentFragment} element The element to =

        * append to the footer. In the case of a document fragment, the
        * children of the fragment will be appended to the footer
        */
        appendToFooter: function (element) {

            var oFooter =3D this.footer || (this.footer =3D =
createFooter());

            oFooter.appendChild(element);

            this.changeFooterEvent.fire(element);
            this.changeContentEvent.fire();

        },

        /**
        * Renders the Module by inserting the elements that are not =
already=20
        * in the main Module into their correct places. Optionally =
appends=20
        * the Module to the specified node prior to the render's =
execution.=20
        * <p>
        * For Modules without existing markup, the appendToNode argument =

        * is REQUIRED. If this argument is ommitted and the current =
element is=20
        * not present in the document, the function will return false,=20
        * indicating that the render was a failure.
        * </p>
        * <p>
        * NOTE: As of 2.3.1, if the appendToNode is the document's body =
element
        * then the module is rendered as the first child of the body =
element,=20
        * and not appended to it, to avoid Operation Aborted errors in =
IE when=20
        * rendering the module before window's load event is fired. You =
can=20
        * use the appendtodocumentbody configuration property to change =
this=20
        * to append to document.body if required.
        * </p>
        * @method render
        * @param {String} appendToNode The element id to which the =
Module=20
        * should be appended to prior to rendering <em>OR</em>
        * @param {HTMLElement} appendToNode The element to which the =
Module=20
        * should be appended to prior to rendering
        * @param {HTMLElement} moduleElement OPTIONAL. The element that=20
        * represents the actual Standard Module container.
        * @return {Boolean} Success or failure of the render
        */
        render: function (appendToNode, moduleElement) {

            var me =3D this,
                firstChild;

            function appendTo(parentNode) {
                if (typeof parentNode =3D=3D "string") {
                    parentNode =3D document.getElementById(parentNode);
                }

                if (parentNode) {
                    me._addToParent(parentNode, me.element);
                    me.appendEvent.fire();
                }
            }

            this.beforeRenderEvent.fire();

            if (! moduleElement) {
                moduleElement =3D this.element;
            }

            if (appendToNode) {
                appendTo(appendToNode);
            } else {=20
                // No node was passed in. If the element is not already =
in the Dom, this fails
                if (! Dom.inDocument(this.element)) {
                    return false;
                }
            }

            // Need to get everything into the DOM if it isn't already
            if (this.header && ! Dom.inDocument(this.header)) {
                // There is a header, but it's not in the DOM yet. Need =
to add it.
                firstChild =3D moduleElement.firstChild;
                if (firstChild) {
                    moduleElement.insertBefore(this.header, firstChild);
                } else {
                    moduleElement.appendChild(this.header);
                }
            }

            if (this.body && ! Dom.inDocument(this.body)) {
                // There is a body, but it's not in the DOM yet. Need to =
add it.	=09
                if (this.footer && Dom.isAncestor(this.moduleElement, =
this.footer)) {
                    moduleElement.insertBefore(this.body, this.footer);
                } else {
                    moduleElement.appendChild(this.body);
                }
            }

            if (this.footer && ! Dom.inDocument(this.footer)) {
                // There is a footer, but it's not in the DOM yet. Need =
to add it.
                moduleElement.appendChild(this.footer);
            }

            this.renderEvent.fire();
            return true;
        },

        /**
        * Removes the Module element from the DOM and sets all child =
elements=20
        * to null.
        * @method destroy
        */
        destroy: function () {

            var parent,
                e;

            if (this.element) {
                Event.purgeElement(this.element, true);
                parent =3D this.element.parentNode;
            }

            if (parent) {
                parent.removeChild(this.element);
            }
       =20
            this.element =3D null;
            this.header =3D null;
            this.body =3D null;
            this.footer =3D null;

            Module.textResizeEvent.unsubscribe(this.onDomResize, this);

            this.cfg.destroy();
            this.cfg =3D null;

            this.destroyEvent.fire();
       =20
            for (e in this) {
                if (e instanceof CustomEvent) {
                    e.unsubscribeAll();
                }
            }

        },

        /**
        * Shows the Module element by setting the visible configuration=20
        * property to true. Also fires two events: beforeShowEvent prior =
to=20
        * the visibility change, and showEvent after.
        * @method show
        */
        show: function () {
            this.cfg.setProperty("visible", true);
        },

        /**
        * Hides the Module element by setting the visible configuration=20
        * property to false. Also fires two events: beforeHideEvent =
prior to=20
        * the visibility change, and hideEvent after.
        * @method hide
        */
        hide: function () {
            this.cfg.setProperty("visible", false);
        },
       =20
        // BUILT-IN EVENT HANDLERS FOR MODULE //
        /**
        * Default event handler for changing the visibility property of =
a=20
        * Module. By default, this is achieved by switching the =
"display" style=20
        * between "block" and "none".
        * This method is responsible for firing showEvent and hideEvent.
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        * @method configVisible
        */
        configVisible: function (type, args, obj) {
            var visible =3D args[0];
            if (visible) {
                this.beforeShowEvent.fire();
                Dom.setStyle(this.element, "display", "block");
                this.showEvent.fire();
            } else {
                this.beforeHideEvent.fire();
                Dom.setStyle(this.element, "display", "none");
                this.hideEvent.fire();
            }
        },
       =20
        /**
        * Default event handler for the "monitorresize" configuration =
property
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        * @method configMonitorResize
        */
        configMonitorResize: function (type, args, obj) {
            var monitor =3D args[0];
            if (monitor) {
                this.initResizeMonitor();
            } else {
                Module.textResizeEvent.unsubscribe(this.onDomResize, =
this, true);
                this.resizeMonitor =3D null;
            }
        },

        /**
         * This method is a protected helper, used when constructing the =
DOM structure for the module=20
         * to account for situations which may cause Operation Aborted =
errors in IE. It should not=20
         * be used for general DOM construction.
         * <p>
         * If the parentNode is not document.body, the element is =
appended as the last element.
         * </p>
         * <p>
         * If the parentNode is document.body the element is added as =
the first child to help
         * prevent Operation Aborted errors in IE.
         * </p>
         *
         * @param {parentNode} The HTML element to which the element =
will be added
         * @param {element} The HTML element to be added to parentNode's =
children
         * @method _addToParent
         * @protected
         */
        _addToParent: function(parentNode, element) {
            if (!this.cfg.getProperty("appendtodocumentbody") && =
parentNode =3D=3D=3D document.body && parentNode.firstChild) {
                parentNode.insertBefore(element, parentNode.firstChild);
            } else {
                parentNode.appendChild(element);
            }
        },

        /**
        * Returns a String representation of the Object.
        * @method toString
        * @return {String} The string representation of the Module
        */
        toString: function () {
            return "Module " + this.id;
        }
    };

    YAHOO.lang.augmentProto(Module, YAHOO.util.EventProvider);

}());

(function () {

    /**
    * Overlay is a Module that is absolutely positioned above the page =
flow. It=20
    * has convenience methods for positioning and sizing, as well as =
options for=20
    * controlling zIndex and constraining the Overlay's position to the =
current=20
    * visible viewport. Overlay also contains a dynamicly generated =
IFRAME which=20
    * is placed beneath it for Internet Explorer 6 and 5.x so that it =
will be=20
    * properly rendered above SELECT elements.
    * @namespace YAHOO.widget
    * @class Overlay
    * @extends YAHOO.widget.Module
    * @param {String} el The element ID representing the Overlay =
<em>OR</em>
    * @param {HTMLElement} el The element representing the Overlay
    * @param {Object} userConfig The configuration object literal =
containing=20
    * the configuration that should be set for this Overlay. See =
configuration=20
    * documentation for more details.
    * @constructor
    */
    YAHOO.widget.Overlay =3D function (el, userConfig) {
        YAHOO.widget.Overlay.superclass.constructor.call(this, el, =
userConfig);
    };

    var Lang =3D YAHOO.lang,
        CustomEvent =3D YAHOO.util.CustomEvent,
        Module =3D YAHOO.widget.Module,
        Event =3D YAHOO.util.Event,
        Dom =3D YAHOO.util.Dom,
        Config =3D YAHOO.util.Config,
        Overlay =3D YAHOO.widget.Overlay,

        m_oIFrameTemplate,

        /**
        * Constant representing the name of the Overlay's events
        * @property EVENT_TYPES
        * @private
        * @final
        * @type Object
        */
        EVENT_TYPES =3D {
            "BEFORE_MOVE": "beforeMove",
            "MOVE": "move"
        },

        /**
        * Constant representing the Overlay's configuration properties
        * @property DEFAULT_CONFIG
        * @private
        * @final
        * @type Object
        */
        DEFAULT_CONFIG =3D {

            "X": {=20
                key: "x",=20
                validator: Lang.isNumber,=20
                suppressEvent: true,=20
                supercedes: ["iframe"]
            },

            "Y": {=20
                key: "y",=20
                validator: Lang.isNumber,=20
                suppressEvent: true,=20
                supercedes: ["iframe"]
            },

            "XY": {=20
                key: "xy",=20
                suppressEvent: true,=20
                supercedes: ["iframe"]=20
            },

            "CONTEXT": {=20
                key: "context",=20
                suppressEvent: true,=20
                supercedes: ["iframe"]=20
            },

            "FIXED_CENTER": {=20
                key: "fixedcenter",=20
                value: false,=20
                validator: Lang.isBoolean,=20
                supercedes: ["iframe", "visible"]=20
            },

            "WIDTH": {=20
                key: "width",=20
                suppressEvent: true,=20
                supercedes: ["context", "fixedcenter", "iframe"]=20
            },=20

            "HEIGHT": {=20
                key: "height",=20
                suppressEvent: true,=20
                supercedes: ["context", "fixedcenter", "iframe"]=20
            },

            "ZINDEX": {=20
                key: "zindex",=20
                value: null=20
            },

            "CONSTRAIN_TO_VIEWPORT": {=20
                key: "constraintoviewport",=20
                value: false,=20
                validator: Lang.isBoolean,=20
                supercedes: ["iframe", "x", "y", "xy"]
            },=20

            "IFRAME": {=20
                key: "iframe",=20
                value: (YAHOO.env.ua.ie =3D=3D 6 ? true : false),=20
                validator: Lang.isBoolean,=20
                supercedes: ["zindex"]=20
            }
        };

    /**
    * The URL that will be placed in the iframe
    * @property YAHOO.widget.Overlay.IFRAME_SRC
    * @static
    * @final
    * @type String
    */
    Overlay.IFRAME_SRC =3D "javascript:false;";

    /**
    * Number representing how much the iframe shim should be offset from =
each=20
    * side of an Overlay instance, in pixels.
    * @property YAHOO.widget.Overlay.IFRAME_SRC
    * @default 3
    * @static
    * @final
    * @type Number
    */
    Overlay.IFRAME_OFFSET =3D 3;

    /**
    * Number representing the minimum distance an Overlay instance =
should be=20
    * positioned relative to the boundaries of the browser's viewport, =
in pixels.
    * @property YAHOO.widget.Overlay.VIEWPORT_OFFSET
    * @default 10
    * @static
    * @final
    * @type Number
    */
    Overlay.VIEWPORT_OFFSET =3D 10;

    /**
    * Constant representing the top left corner of an element, used for=20
    * configuring the context element alignment
    * @property YAHOO.widget.Overlay.TOP_LEFT
    * @static
    * @final
    * @type String
    */
    Overlay.TOP_LEFT =3D "tl";

    /**
    * Constant representing the top right corner of an element, used for =

    * configuring the context element alignment
    * @property YAHOO.widget.Overlay.TOP_RIGHT
    * @static
    * @final
    * @type String
    */
    Overlay.TOP_RIGHT =3D "tr";

    /**
    * Constant representing the top bottom left corner of an element, =
used for=20
    * configuring the context element alignment
    * @property YAHOO.widget.Overlay.BOTTOM_LEFT
    * @static
    * @final
    * @type String
    */
    Overlay.BOTTOM_LEFT =3D "bl";

    /**
    * Constant representing the bottom right corner of an element, used =
for=20
    * configuring the context element alignment
    * @property YAHOO.widget.Overlay.BOTTOM_RIGHT
    * @static
    * @final
    * @type String
    */
    Overlay.BOTTOM_RIGHT =3D "br";

    /**
    * Constant representing the default CSS class used for an Overlay
    * @property YAHOO.widget.Overlay.CSS_OVERLAY
    * @static
    * @final
    * @type String
    */
    Overlay.CSS_OVERLAY =3D "yui-overlay";

    /**
    * A singleton CustomEvent used for reacting to the DOM event for=20
    * window scroll
    * @event YAHOO.widget.Overlay.windowScrollEvent
    */
    Overlay.windowScrollEvent =3D new CustomEvent("windowScroll");

    /**
    * A singleton CustomEvent used for reacting to the DOM event for
    * window resize
    * @event YAHOO.widget.Overlay.windowResizeEvent
    */
    Overlay.windowResizeEvent =3D new CustomEvent("windowResize");

    /**
    * The DOM event handler used to fire the CustomEvent for window =
scroll
    * @method YAHOO.widget.Overlay.windowScrollHandler
    * @static
    * @param {DOMEvent} e The DOM scroll event
    */
    Overlay.windowScrollHandler =3D function (e) {

        if (YAHOO.env.ua.ie) {

            if (! window.scrollEnd) {
                window.scrollEnd =3D -1;
            }

            clearTimeout(window.scrollEnd);
   =20
            window.scrollEnd =3D setTimeout(function () {=20
                Overlay.windowScrollEvent.fire();=20
            }, 1);
   =20
        } else {
            Overlay.windowScrollEvent.fire();
        }
    };

    /**
    * The DOM event handler used to fire the CustomEvent for window =
resize
    * @method YAHOO.widget.Overlay.windowResizeHandler
    * @static
    * @param {DOMEvent} e The DOM resize event
    */
    Overlay.windowResizeHandler =3D function (e) {

        if (YAHOO.env.ua.ie) {
            if (! window.resizeEnd) {
                window.resizeEnd =3D -1;
            }

            clearTimeout(window.resizeEnd);

            window.resizeEnd =3D setTimeout(function () {
                Overlay.windowResizeEvent.fire();=20
            }, 100);
        } else {
            Overlay.windowResizeEvent.fire();
        }
    };

    /**
    * A boolean that indicated whether the window resize and scroll =
events have=20
    * already been subscribed to.
    * @property YAHOO.widget.Overlay._initialized
    * @private
    * @type Boolean
    */
    Overlay._initialized =3D null;

    if (Overlay._initialized =3D=3D=3D null) {
        Event.on(window, "scroll", Overlay.windowScrollHandler);
        Event.on(window, "resize", Overlay.windowResizeHandler);
   =20
        Overlay._initialized =3D true;
    }

    YAHOO.extend(Overlay, Module, {

        /**
        * The Overlay initialization method, which is executed for =
Overlay and =20
        * all of its subclasses. This method is automatically called by =
the=20
        * constructor, and  sets up all DOM references for pre-existing =
markup,=20
        * and creates required markup if it is not already present.
        * @method init
        * @param {String} el The element ID representing the Overlay =
<em>OR</em>
        * @param {HTMLElement} el The element representing the Overlay
        * @param {Object} userConfig The configuration object literal=20
        * containing the configuration that should be set for this =
Overlay.=20
        * See configuration documentation for more details.
        */
        init: function (el, userConfig) {
   =20
            /*
                 Note that we don't pass the user config in here yet =
because we
                 only want it executed once, at the lowest subclass =
level
            */
   =20
            Overlay.superclass.init.call(this, el/*, userConfig*/); =20

            this.beforeInitEvent.fire(Overlay);
           =20
            Dom.addClass(this.element, Overlay.CSS_OVERLAY);
           =20
            if (userConfig) {
                this.cfg.applyConfig(userConfig, true);
            }

            if (this.platform =3D=3D "mac" && YAHOO.env.ua.gecko) {

                if (! Config.alreadySubscribed(this.showEvent,
                    this.showMacGeckoScrollbars, this)) {

                    =
this.showEvent.subscribe(this.showMacGeckoScrollbars,=20
                        this, true);

                }

                if (! Config.alreadySubscribed(this.hideEvent,=20
                    this.hideMacGeckoScrollbars, this)) {

                    =
this.hideEvent.subscribe(this.hideMacGeckoScrollbars,=20
                        this, true);

                }
            }

            this.initEvent.fire(Overlay);
        },
       =20
        /**
        * Initializes the custom events for Overlay which are fired =20
        * automatically at appropriate times by the Overlay class.
        * @method initEvents
        */
        initEvents: function () {
   =20
            Overlay.superclass.initEvents.call(this);
           =20
            var SIGNATURE =3D CustomEvent.LIST;
           =20
            /**
            * CustomEvent fired before the Overlay is moved.
            * @event beforeMoveEvent
            * @param {Number} x x coordinate
            * @param {Number} y y coordinate
            */
            this.beforeMoveEvent =3D =
this.createEvent(EVENT_TYPES.BEFORE_MOVE);
            this.beforeMoveEvent.signature =3D SIGNATURE;
           =20
            /**
            * CustomEvent fired after the Overlay is moved.
            * @event moveEvent
            * @param {Number} x x coordinate
            * @param {Number} y y coordinate
            */
            this.moveEvent =3D this.createEvent(EVENT_TYPES.MOVE);
            this.moveEvent.signature =3D SIGNATURE;
       =20
        },
       =20
        /**
        * Initializes the class's configurable properties which can be =
changed=20
        * using the Overlay's Config object (cfg).
        * @method initDefaultConfig
        */
        initDefaultConfig: function () {
   =20
            Overlay.superclass.initDefaultConfig.call(this);
           =20
           =20
            // Add overlay config properties //
           =20
            /**
            * The absolute x-coordinate position of the Overlay
            * @config x
            * @type Number
            * @default null
            */
            this.cfg.addProperty(DEFAULT_CONFIG.X.key, {=20
   =20
                handler: this.configX,=20
                validator: DEFAULT_CONFIG.X.validator,=20
                suppressEvent: DEFAULT_CONFIG.X.suppressEvent,=20
                supercedes: DEFAULT_CONFIG.X.supercedes
   =20
            });

            /**
            * The absolute y-coordinate position of the Overlay
            * @config y
            * @type Number
            * @default null
            */
            this.cfg.addProperty(DEFAULT_CONFIG.Y.key, {

                handler: this.configY,=20
                validator: DEFAULT_CONFIG.Y.validator,=20
                suppressEvent: DEFAULT_CONFIG.Y.suppressEvent,=20
                supercedes: DEFAULT_CONFIG.Y.supercedes

            });
   =20
            /**
            * An array with the absolute x and y positions of the =
Overlay
            * @config xy
            * @type Number[]
            * @default null
            */
            this.cfg.addProperty(DEFAULT_CONFIG.XY.key, {
           =20
                handler: this.configXY,=20
                suppressEvent: DEFAULT_CONFIG.XY.suppressEvent,=20
                supercedes: DEFAULT_CONFIG.XY.supercedes
           =20
            });
   =20
            /**
            * The array of context arguments for context-sensitive =
positioning. =20
            * The format is: [id or element, element corner, context =
corner].=20
            * For example, setting this property to ["img1", "tl", "bl"] =
would=20
            * align the Overlay's top left corner to the context =
element's=20
            * bottom left corner.
            * @config context
            * @type Array
            * @default null
            */
            this.cfg.addProperty(DEFAULT_CONFIG.CONTEXT.key, {
           =20
                handler: this.configContext,=20
                suppressEvent: DEFAULT_CONFIG.CONTEXT.suppressEvent,=20
                supercedes: DEFAULT_CONFIG.CONTEXT.supercedes
           =20
            });

            /**
            * True if the Overlay should be anchored to the center of=20
            * the viewport.
            * @config fixedcenter
            * @type Boolean
            * @default false
            */
            this.cfg.addProperty(DEFAULT_CONFIG.FIXED_CENTER.key, {
           =20
                handler: this.configFixedCenter,
                value: DEFAULT_CONFIG.FIXED_CENTER.value,=20
                validator: DEFAULT_CONFIG.FIXED_CENTER.validator,=20
                supercedes: DEFAULT_CONFIG.FIXED_CENTER.supercedes
           =20
            });
   =20
            /**
            * CSS width of the Overlay.
            * @config width
            * @type String
            * @default null
            */
            this.cfg.addProperty(DEFAULT_CONFIG.WIDTH.key, {

                handler: this.configWidth,=20
                suppressEvent: DEFAULT_CONFIG.WIDTH.suppressEvent,=20
                supercedes: DEFAULT_CONFIG.WIDTH.supercedes

            });

            /**
            * CSS height of the Overlay.
            * @config height
            * @type String
            * @default null
            */
            this.cfg.addProperty(DEFAULT_CONFIG.HEIGHT.key, {

                handler: this.configHeight,=20
                suppressEvent: DEFAULT_CONFIG.HEIGHT.suppressEvent,=20
                supercedes: DEFAULT_CONFIG.HEIGHT.supercedes
           =20
            });
           =20
            /**
            * CSS z-index of the Overlay.
            * @config zIndex
            * @type Number
            * @default null
            */
            this.cfg.addProperty(DEFAULT_CONFIG.ZINDEX.key, {

                handler: this.configzIndex,
                value: DEFAULT_CONFIG.ZINDEX.value

            });

            /**
            * True if the Overlay should be prevented from being =
positioned=20
            * out of the viewport.
            * @config constraintoviewport
            * @type Boolean
            * @default false
            */
            =
this.cfg.addProperty(DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.key, {

                handler: this.configConstrainToViewport,=20
                value: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.value,=20
                validator: =
DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.validator,=20
                supercedes: =
DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercedes

            });

            /**
            * @config iframe
            * @description Boolean indicating whether or not the Overlay =
should=20
            * have an IFRAME shim; used to prevent SELECT elements from=20
            * poking through an Overlay instance in IE6.  When set to =
"true",=20
            * the iframe shim is created when the Overlay instance is =
intially
            * made visible.
            * @type Boolean
            * @default true for IE6 and below, false for all other =
browsers.
            */
            this.cfg.addProperty(DEFAULT_CONFIG.IFRAME.key, {

                handler: this.configIframe,=20
                value: DEFAULT_CONFIG.IFRAME.value,=20
                validator: DEFAULT_CONFIG.IFRAME.validator,=20
                supercedes: DEFAULT_CONFIG.IFRAME.supercedes

            });
        },

        /**
        * Moves the Overlay to the specified position. This function is  =

        * identical to calling this.cfg.setProperty("xy", [x,y]);
        * @method moveTo
        * @param {Number} x The Overlay's new x position
        * @param {Number} y The Overlay's new y position
        */
        moveTo: function (x, y) {
            this.cfg.setProperty("xy", [x, y]);
        },

        /**
        * Adds a CSS class ("hide-scrollbars") and removes a CSS class=20
        * ("show-scrollbars") to the Overlay to fix a bug in Gecko on =
Mac OS X=20
        * (https://bugzilla.mozilla.org/show_bug.cgi?id=3D187435)
        * @method hideMacGeckoScrollbars
        */
        hideMacGeckoScrollbars: function () {
   =20
            Dom.removeClass(this.element, "show-scrollbars");
            Dom.addClass(this.element, "hide-scrollbars");
   =20
        },

        /**
        * Adds a CSS class ("show-scrollbars") and removes a CSS class=20
        * ("hide-scrollbars") to the Overlay to fix a bug in Gecko on =
Mac OS X=20
        * (https://bugzilla.mozilla.org/show_bug.cgi?id=3D187435)
        * @method showMacGeckoScrollbars
        */
        showMacGeckoScrollbars: function () {
   =20
            Dom.removeClass(this.element, "hide-scrollbars");
            Dom.addClass(this.element, "show-scrollbars");
   =20
        },

        // BEGIN BUILT-IN PROPERTY EVENT HANDLERS //
        /**
        * The default event handler fired when the "visible" property is =

        * changed.  This method is responsible for firing showEvent
        * and hideEvent.
        * @method configVisible
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configVisible: function (type, args, obj) {

            var visible =3D args[0],
                currentVis =3D Dom.getStyle(this.element, "visibility"),
                effect =3D this.cfg.getProperty("effect"),
                effectInstances =3D [],
                isMacGecko =3D (this.platform =3D=3D "mac" && =
YAHOO.env.ua.gecko),
                alreadySubscribed =3D Config.alreadySubscribed,
                eff, ei, e, i, j, k, h,
                nEffects,
                nEffectInstances;

            if (currentVis =3D=3D "inherit") {
                e =3D this.element.parentNode;

                while (e.nodeType !=3D 9 && e.nodeType !=3D 11) {
                    currentVis =3D Dom.getStyle(e, "visibility");

                    if (currentVis !=3D "inherit") {=20
                        break;=20
                    }

                    e =3D e.parentNode;
                }

                if (currentVis =3D=3D "inherit") {
                    currentVis =3D "visible";
                }
            }

            if (effect) {
                if (effect instanceof Array) {
                    nEffects =3D effect.length;

                    for (i =3D 0; i < nEffects; i++) {
                        eff =3D effect[i];
                        effectInstances[effectInstances.length] =3D=20
                            eff.effect(this, eff.duration);

                    }
                } else {
                    effectInstances[effectInstances.length] =3D=20
                        effect.effect(this, effect.duration);
                }
            }


            if (visible) { // Show
                if (isMacGecko) {
                    this.showMacGeckoScrollbars();
                }

                if (effect) { // Animate in
                    if (visible) { // Animate in if not showing
                        if (currentVis !=3D "visible" || currentVis =
=3D=3D=3D "") {
                            this.beforeShowEvent.fire();
                            nEffectInstances =3D effectInstances.length;

                            for (j =3D 0; j < nEffectInstances; j++) {
                                ei =3D effectInstances[j];
                                if (j =3D=3D=3D 0 && !alreadySubscribed(
                                        ei.animateInCompleteEvent,=20
                                        this.showEvent.fire, =
this.showEvent)) {

                                    /*
                                         Delegate showEvent until end=20
                                         of animateInComplete
                                    */

                                    ei.animateInCompleteEvent.subscribe(
                                     this.showEvent.fire, =
this.showEvent, true);
                                }
                                ei.animateIn();
                            }
                        }
                    }
                } else { // Show
                    if (currentVis !=3D "visible" || currentVis =
=3D=3D=3D "") {
                        this.beforeShowEvent.fire();

                        Dom.setStyle(this.element, "visibility", =
"visible");

                        this.cfg.refireEvent("iframe");
                        this.showEvent.fire();
                    }
                }
            } else { // Hide

                if (isMacGecko) {
                    this.hideMacGeckoScrollbars();
                }
                   =20
                if (effect) { // Animate out if showing
                    if (currentVis =3D=3D "visible") {
                        this.beforeHideEvent.fire();

                        nEffectInstances =3D effectInstances.length;
                        for (k =3D 0; k < nEffectInstances; k++) {
                            h =3D effectInstances[k];
   =20
                            if (k =3D=3D=3D 0 && !alreadySubscribed(
                                h.animateOutCompleteEvent, =
this.hideEvent.fire,=20
                                this.hideEvent)) {
   =20
                                /*
                                     Delegate hideEvent until end=20
                                     of animateOutComplete
                                */
   =20
                                h.animateOutCompleteEvent.subscribe(
                                    this.hideEvent.fire, this.hideEvent, =
true);
   =20
                            }
                            h.animateOut();
                        }

                    } else if (currentVis =3D=3D=3D "") {
                        Dom.setStyle(this.element, "visibility", =
"hidden");
                    }

                } else { // Simple hide

                    if (currentVis =3D=3D "visible" || currentVis =
=3D=3D=3D "") {
                        this.beforeHideEvent.fire();
                        Dom.setStyle(this.element, "visibility", =
"hidden");
                        this.hideEvent.fire();
                    }
                }
            }
        },

        /**
        * Center event handler used for centering on scroll/resize, but =
only if=20
        * the Overlay is visible
        * @method doCenterOnDOMEvent
        */
        doCenterOnDOMEvent: function () {
            if (this.cfg.getProperty("visible")) {
                this.center();
            }
        },

        /**
        * The default event handler fired when the "fixedcenter" =
property=20
        * is changed.
        * @method configFixedCenter
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configFixedCenter: function (type, args, obj) {

            var val =3D args[0],
                alreadySubscribed =3D Config.alreadySubscribed,
                windowResizeEvent =3D Overlay.windowResizeEvent,
                windowScrollEvent =3D Overlay.windowScrollEvent;

            if (val) {
                this.center();

                if (!alreadySubscribed(this.beforeShowEvent, =
this.center, this)) {
                    this.beforeShowEvent.subscribe(this.center);
                }

                if (!alreadySubscribed(windowResizeEvent, =
this.doCenterOnDOMEvent, this)) {
                    windowResizeEvent.subscribe(this.doCenterOnDOMEvent, =
this, true);
                }

                if (!alreadySubscribed(windowScrollEvent, =
this.doCenterOnDOMEvent, this)) {
                    windowScrollEvent.subscribe(this.doCenterOnDOMEvent, =
this, true);
                }

            } else {
                this.beforeShowEvent.unsubscribe(this.center);

                windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent, =
this);
                windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent, =
this);
            }
        },
       =20
        /**
        * The default event handler fired when the "height" property is =
changed.
        * @method configHeight
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configHeight: function (type, args, obj) {

            var height =3D args[0],
                el =3D this.element;

            Dom.setStyle(el, "height", height);
            this.cfg.refireEvent("iframe");
        },

        /**
        * The default event handler fired when the "width" property is =
changed.
        * @method configWidth
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configWidth: function (type, args, obj) {

            var width =3D args[0],
                el =3D this.element;
   =20
            Dom.setStyle(el, "width", width);
            this.cfg.refireEvent("iframe");
        },
       =20
        /**
        * The default event handler fired when the "zIndex" property is =
changed.
        * @method configzIndex
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configzIndex: function (type, args, obj) {

            var zIndex =3D args[0],
                el =3D this.element;

            if (! zIndex) {
                zIndex =3D Dom.getStyle(el, "zIndex");
                if (! zIndex || isNaN(zIndex)) {
                    zIndex =3D 0;
                }
            }

            if (this.iframe || this.cfg.getProperty("iframe") =3D=3D=3D =
true) {
                if (zIndex <=3D 0) {
                    zIndex =3D 1;
                }
            }

            Dom.setStyle(el, "zIndex", zIndex);
            this.cfg.setProperty("zIndex", zIndex, true);

            if (this.iframe) {
                this.stackIframe();
            }
        },

        /**
        * The default event handler fired when the "xy" property is =
changed.
        * @method configXY
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configXY: function (type, args, obj) {

            var pos =3D args[0],
                x =3D pos[0],
                y =3D pos[1];

            this.cfg.setProperty("x", x);
            this.cfg.setProperty("y", y);

            this.beforeMoveEvent.fire([x, y]);

            x =3D this.cfg.getProperty("x");
            y =3D this.cfg.getProperty("y");


            this.cfg.refireEvent("iframe");
            this.moveEvent.fire([x, y]);
        },

        /**
        * The default event handler fired when the "x" property is =
changed.
        * @method configX
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configX: function (type, args, obj) {

            var x =3D args[0],
                y =3D this.cfg.getProperty("y");

            this.cfg.setProperty("x", x, true);
            this.cfg.setProperty("y", y, true);

            this.beforeMoveEvent.fire([x, y]);

            x =3D this.cfg.getProperty("x");
            y =3D this.cfg.getProperty("y");
           =20
            Dom.setX(this.element, x, true);

            this.cfg.setProperty("xy", [x, y], true);

            this.cfg.refireEvent("iframe");
            this.moveEvent.fire([x, y]);
        },

        /**
        * The default event handler fired when the "y" property is =
changed.
        * @method configY
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configY: function (type, args, obj) {

            var x =3D this.cfg.getProperty("x"),
                y =3D args[0];

            this.cfg.setProperty("x", x, true);
            this.cfg.setProperty("y", y, true);

            this.beforeMoveEvent.fire([x, y]);

            x =3D this.cfg.getProperty("x");
            y =3D this.cfg.getProperty("y");

            Dom.setY(this.element, y, true);

            this.cfg.setProperty("xy", [x, y], true);

            this.cfg.refireEvent("iframe");
            this.moveEvent.fire([x, y]);
        },
       =20
        /**
        * Shows the iframe shim, if it has been enabled.
        * @method showIframe
        */
        showIframe: function () {

            var oIFrame =3D this.iframe,
                oParentNode;

            if (oIFrame) {
                oParentNode =3D this.element.parentNode;

                if (oParentNode !=3D oIFrame.parentNode) {
                    this._addToParent(oParentNode, oIFrame);
                }
                oIFrame.style.display =3D "block";
            }
        },

        /**
        * Hides the iframe shim, if it has been enabled.
        * @method hideIframe
        */
        hideIframe: function () {
            if (this.iframe) {
                this.iframe.style.display =3D "none";
            }
        },

        /**
        * Syncronizes the size and position of iframe shim to that of =
its=20
        * corresponding Overlay instance.
        * @method syncIframe
        */
        syncIframe: function () {

            var oIFrame =3D this.iframe,
                oElement =3D this.element,
                nOffset =3D Overlay.IFRAME_OFFSET,
                nDimensionOffset =3D (nOffset * 2),
                aXY;

            if (oIFrame) {
                // Size <iframe>
                oIFrame.style.width =3D (oElement.offsetWidth + =
nDimensionOffset + "px");
                oIFrame.style.height =3D (oElement.offsetHeight + =
nDimensionOffset + "px");

                // Position <iframe>
                aXY =3D this.cfg.getProperty("xy");

                if (!Lang.isArray(aXY) || (isNaN(aXY[0]) || =
isNaN(aXY[1]))) {
                    this.syncPosition();
                    aXY =3D this.cfg.getProperty("xy");
                }
                Dom.setXY(oIFrame, [(aXY[0] - nOffset), (aXY[1] - =
nOffset)]);
            }
        },

        /**
         * Sets the zindex of the iframe shim, if it exists, based on =
the zindex of
         * the Overlay element. The zindex of the iframe is set to be =
one less=20
         * than the Overlay element's zindex.
         *=20
         * <p>NOTE: This method will not bump up the zindex of the =
Overlay element
         * to ensure that the iframe shim has a non-negative zindex.
         * If you require the iframe zindex to be 0 or higher, the =
zindex of=20
         * the Overlay element should be set to a value greater than 0, =
before=20
         * this method is called.
         * </p>
         * @method stackIframe
         */
        stackIframe: function () {
            if (this.iframe) {
                var overlayZ =3D Dom.getStyle(this.element, "zIndex");
                if (!YAHOO.lang.isUndefined(overlayZ) && =
!isNaN(overlayZ)) {
                    Dom.setStyle(this.iframe, "zIndex", (overlayZ - 1));
                }
            }
        },

        /**
        * The default event handler fired when the "iframe" property is =
changed.
        * @method configIframe
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configIframe: function (type, args, obj) {

            var bIFrame =3D args[0];

            function createIFrame() {

                var oIFrame =3D this.iframe,
                    oElement =3D this.element,
                    oParent;

                if (!oIFrame) {
                    if (!m_oIFrameTemplate) {
                        m_oIFrameTemplate =3D =
document.createElement("iframe");

                        if (this.isSecure) {
                            m_oIFrameTemplate.src =3D =
Overlay.IFRAME_SRC;
                        }

                        /*
                            Set the opacity of the <iframe> to 0 so that =
it=20
                            doesn't modify the opacity of any =
transparent=20
                            elements that may be on top of it (like a =
shadow).
                        */

                        if (YAHOO.env.ua.ie) {
                            m_oIFrameTemplate.style.filter =3D =
"alpha(opacity=3D0)";
                            /*
                                 Need to set the "frameBorder" property =
to 0=20
                                 supress the default <iframe> border in =
IE. =20
                                 Setting the CSS "border" property alone =

                                 doesn't supress it.
                            */
                            m_oIFrameTemplate.frameBorder =3D 0;
                        }
                        else {
                            m_oIFrameTemplate.style.opacity =3D "0";
                        }

                        m_oIFrameTemplate.style.position =3D "absolute";
                        m_oIFrameTemplate.style.border =3D "none";
                        m_oIFrameTemplate.style.margin =3D "0";
                        m_oIFrameTemplate.style.padding =3D "0";
                        m_oIFrameTemplate.style.display =3D "none";
                    }

                    oIFrame =3D m_oIFrameTemplate.cloneNode(false);
                    oParent =3D oElement.parentNode;

                    var parentNode =3D oParent || document.body;

                    this._addToParent(parentNode, oIFrame);
                    this.iframe =3D oIFrame;
                }

                /*
                     Show the <iframe> before positioning it since the =
"setXY"=20
                     method of DOM requires the element be in the =
document=20
                     and visible.
                */
                this.showIframe();

                /*
                     Syncronize the size and position of the <iframe> to =
that=20
                     of the Overlay.
                */
                this.syncIframe();
                this.stackIframe();

                // Add event listeners to update the <iframe> when =
necessary
                if (!this._hasIframeEventListeners) {
                    this.showEvent.subscribe(this.showIframe);
                    this.hideEvent.subscribe(this.hideIframe);
                    this.changeContentEvent.subscribe(this.syncIframe);

                    this._hasIframeEventListeners =3D true;
                }
            }

            function onBeforeShow() {
                createIFrame.call(this);
                this.beforeShowEvent.unsubscribe(onBeforeShow);
                this._iframeDeferred =3D false;
            }

            if (bIFrame) { // <iframe> shim is enabled

                if (this.cfg.getProperty("visible")) {
                    createIFrame.call(this);
                } else {
                    if (!this._iframeDeferred) {
                        this.beforeShowEvent.subscribe(onBeforeShow);
                        this._iframeDeferred =3D true;
                    }
                }

            } else {    // <iframe> shim is disabled
                this.hideIframe();

                if (this._hasIframeEventListeners) {
                    this.showEvent.unsubscribe(this.showIframe);
                    this.hideEvent.unsubscribe(this.hideIframe);
                    =
this.changeContentEvent.unsubscribe(this.syncIframe);

                    this._hasIframeEventListeners =3D false;
                }
            }
        },

        /**
         * Set's the container's XY value from DOM if not already set.
         *=20
         * Differs from syncPosition, in that the XY value is only =
sync'd with DOM if=20
         * not already set. The method also refire's the XY config =
property event, so any
         * beforeMove, Move event listeners are invoked.
         *=20
         * @method _primeXYFromDOM
         * @protected
         */
        _primeXYFromDOM : function() {
            if (YAHOO.lang.isUndefined(this.cfg.getProperty("xy"))) {
                // Set CFG XY based on DOM XY
                this.syncPosition();
                // Account for XY being set silently in syncPosition (no =
moveTo fired/called)
                this.cfg.refireEvent("xy");
                this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);
            }
        },

        /**
        * The default event handler fired when the "constraintoviewport" =

        * property is changed.
        * @method configConstrainToViewport
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for=20
        * the property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configConstrainToViewport: function (type, args, obj) {
            var val =3D args[0];

            if (val) {
                if (! Config.alreadySubscribed(this.beforeMoveEvent, =
this.enforceConstraints, this)) {
                    =
this.beforeMoveEvent.subscribe(this.enforceConstraints, this, true);
                }
                if (! Config.alreadySubscribed(this.beforeShowEvent, =
this._primeXYFromDOM)) {
                    =
this.beforeShowEvent.subscribe(this._primeXYFromDOM);
                }
            } else {
                this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);
                =
this.beforeMoveEvent.unsubscribe(this.enforceConstraints, this);
            }
        },

         /**
        * The default event handler fired when the "context" property=20
        * is changed.
        * @method configContext
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        configContext: function (type, args, obj) {
   =20
            var contextArgs =3D args[0],
                contextEl,
                elementMagnetCorner,
                contextMagnetCorner;

            if (contextArgs) {
                contextEl =3D contextArgs[0];
                elementMagnetCorner =3D contextArgs[1];
                contextMagnetCorner =3D contextArgs[2];
               =20
                if (contextEl) {
                    if (typeof contextEl =3D=3D "string") {
                        this.cfg.setProperty("context",=20
                            [document.getElementById(contextEl),=20
                                elementMagnetCorner, =
contextMagnetCorner],=20
                                true);
                    }
                   =20
                    if (elementMagnetCorner && contextMagnetCorner) {
                        this.align(elementMagnetCorner, =
contextMagnetCorner);
                    }
                }
            }
        },

        // END BUILT-IN PROPERTY EVENT HANDLERS //
        /**
        * Aligns the Overlay to its context element using the specified =
corner=20
        * points (represented by the constants TOP_LEFT, TOP_RIGHT, =
BOTTOM_LEFT,=20
        * and BOTTOM_RIGHT.
        * @method align
        * @param {String} elementAlign  The String representing the =
corner of=20
        * the Overlay that should be aligned to the context element
        * @param {String} contextAlign  The corner of the context =
element=20
        * that the elementAlign corner should stick to.
        */
        align: function (elementAlign, contextAlign) {

            var contextArgs =3D this.cfg.getProperty("context"),
                me =3D this,
                context,
                element,
                contextRegion;

            function doAlign(v, h) {
   =20
                switch (elementAlign) {
   =20
                case Overlay.TOP_LEFT:
                    me.moveTo(h, v);
                    break;
   =20
                case Overlay.TOP_RIGHT:
                    me.moveTo((h - element.offsetWidth), v);
                    break;
   =20
                case Overlay.BOTTOM_LEFT:
                    me.moveTo(h, (v - element.offsetHeight));
                    break;
   =20
                case Overlay.BOTTOM_RIGHT:
                    me.moveTo((h - element.offsetWidth),=20
                        (v - element.offsetHeight));
                    break;
                }
            }
   =20
   =20
            if (contextArgs) {
           =20
                context =3D contextArgs[0];
                element =3D this.element;
                me =3D this;
               =20
                if (! elementAlign) {
                    elementAlign =3D contextArgs[1];
                }
               =20
                if (! contextAlign) {
                    contextAlign =3D contextArgs[2];
                }
               =20
                if (element && context) {
                    contextRegion =3D Dom.getRegion(context);

                    switch (contextAlign) {
   =20
                    case Overlay.TOP_LEFT:
                        doAlign(contextRegion.top, contextRegion.left);
                        break;
   =20
                    case Overlay.TOP_RIGHT:
                        doAlign(contextRegion.top, contextRegion.right);
                        break;
   =20
                    case Overlay.BOTTOM_LEFT:
                        doAlign(contextRegion.bottom, =
contextRegion.left);
                        break;
   =20
                    case Overlay.BOTTOM_RIGHT:
                        doAlign(contextRegion.bottom, =
contextRegion.right);
                        break;
                    }
   =20
                }
   =20
            }
           =20
        },

        /**
        * The default event handler executed when the moveEvent is =
fired, if the=20
        * "constraintoviewport" is set to true.
        * @method enforceConstraints
        * @param {String} type The CustomEvent type (usually the =
property name)
        * @param {Object[]} args The CustomEvent arguments. For =
configuration=20
        * handlers, args[0] will equal the newly applied value for the =
property.
        * @param {Object} obj The scope object. For configuration =
handlers,=20
        * this will usually equal the owner.
        */
        enforceConstraints: function (type, args, obj) {
            var pos =3D args[0];
            var cXY =3D this.getConstrainedXY(pos[0], pos[1]);
            this.cfg.setProperty("x", cXY[0], true);
            this.cfg.setProperty("y", cXY[1], true);
            this.cfg.setProperty("xy", cXY, true);
        },

        /**
         * Given x, y coordinate values, returns the calculated =
coordinates required to=20
         * position the Overlay if it is to be constrained to the =
viewport, based on the=20
         * current element size, viewport dimensions and scroll values.
         *
         * @param {Number} x The X coordinate value to be constrained
         * @param {Number} y The Y coordinate value to be constrained
         * @return {Array} The constrained x and y coordinates at index =
0 and 1 respectively;
         */
        getConstrainedXY: function(x, y) {

            var nViewportOffset =3D Overlay.VIEWPORT_OFFSET,
                viewPortWidth =3D Dom.getViewportWidth(),
                viewPortHeight =3D Dom.getViewportHeight(),
                offsetHeight =3D this.element.offsetHeight,
                offsetWidth =3D this.element.offsetWidth,
                scrollX =3D Dom.getDocumentScrollLeft(),
                scrollY =3D Dom.getDocumentScrollTop();

            var xNew =3D x;
            var yNew =3D y;

            if (offsetWidth + nViewportOffset < viewPortWidth) {

                var leftConstraint =3D scrollX + nViewportOffset;
                var rightConstraint =3D scrollX + viewPortWidth - =
offsetWidth - nViewportOffset;

                if (x < leftConstraint) {
                    xNew =3D leftConstraint;
                } else if (x > rightConstraint) {
                    xNew =3D rightConstraint;
                }
            } else {
                xNew =3D nViewportOffset + scrollX;
            }

            if (offsetHeight + nViewportOffset < viewPortHeight) {

                var topConstraint =3D scrollY + nViewportOffset;
                var bottomConstraint =3D scrollY + viewPortHeight - =
offsetHeight - nViewportOffset;

                if (y < topConstraint) {
                    yNew  =3D topConstraint;
                } else if (y  > bottomConstraint) {
                    yNew  =3D bottomConstraint;
                }
            } else {
                yNew =3D nViewportOffset + scrollY;
            }

            return [xNew, yNew];
        },

        /**
        * Centers the container in the viewport.
        * @method center
        */
        center: function () {

            var nViewportOffset =3D Overlay.VIEWPORT_OFFSET,
                elementWidth =3D this.element.offsetWidth,
                elementHeight =3D this.element.offsetHeight,
                viewPortWidth =3D Dom.getViewportWidth(),
                viewPortHeight =3D Dom.getViewportHeight(),
                x,
                y;

            if (elementWidth < viewPortWidth) {
                x =3D (viewPortWidth / 2) - (elementWidth / 2) + =
Dom.getDocumentScrollLeft();
            } else {
                x =3D nViewportOffset + Dom.getDocumentScrollLeft();
            }

            if (elementHeight < viewPortHeight) {
                y =3D (viewPortHeight / 2) - (elementHeight / 2) + =
Dom.getDocumentScrollTop();
            } else {
                y =3D nViewportOffset + Dom.getDocumentScrollTop();
            }

            this.cfg.setProperty("xy", [parseInt(x, 10), parseInt(y, =
10)]);
            this.cfg.refireEvent("iframe");
        },

        /**
        * Synchronizes the Panel's "xy", "x", and "y" properties with =
the=20
        * Panel's position in the DOM. This is primarily used to update  =

        * position information during drag & drop.
        * @method syncPosition
        */
        syncPosition: function () {

            var pos =3D Dom.getXY(this.element);

            this.cfg.setProperty("x", pos[0], true);
            this.cfg.setProperty("y", pos[1], true);
            this.cfg.setProperty("xy", pos, true);

        },

        /**
        * Event handler fired when the resize monitor element is =
resized.
        * @method onDomResize
        * @param {DOMEvent} e The resize DOM event
        * @param {Object} obj The scope object
        */
        onDomResize: function (e, obj) {

            var me =3D this;

            Overlay.superclass.onDomResize.call(this, e, obj);

            setTimeout(function () {
                me.syncPosition();
                me.cfg.refireEvent("iframe");
                me.cfg.refireEvent("context");
            }, 0);
   =20
        },

        /**
        * Places the Overlay on top of all other instances of=20
        * YAHOO.widget.Overlay.
        * @method bringToTop
        */
        bringToTop: function () {

            var aOverlays =3D [],
                oElement =3D this.element;

            function compareZIndexDesc(p_oOverlay1, p_oOverlay2) {

                var sZIndex1 =3D Dom.getStyle(p_oOverlay1, "zIndex"),
                    sZIndex2 =3D Dom.getStyle(p_oOverlay2, "zIndex"),

                    nZIndex1 =3D (!sZIndex1 || isNaN(sZIndex1)) ? 0 : =
parseInt(sZIndex1, 10),
                    nZIndex2 =3D (!sZIndex2 || isNaN(sZIndex2)) ? 0 : =
parseInt(sZIndex2, 10);

                if (nZIndex1 > nZIndex2) {
                    return -1;
                } else if (nZIndex1 < nZIndex2) {
                    return 1;
                } else {
                    return 0;
                }
            }

            function isOverlayElement(p_oElement) {

                var oOverlay =3D Dom.hasClass(p_oElement, =
Overlay.CSS_OVERLAY),
                    Panel =3D YAHOO.widget.Panel;

                if (oOverlay && !Dom.isAncestor(oElement, oOverlay)) {
                    if (Panel && Dom.hasClass(p_oElement, =
Panel.CSS_PANEL)) {
                        aOverlays[aOverlays.length] =3D =
p_oElement.parentNode;
                    } else {
                        aOverlays[aOverlays.length] =3D p_oElement;
                    }
                }
            }

            Dom.getElementsBy(isOverlayElement, "DIV", document.body);

            aOverlays.sort(compareZIndexDesc);

            var oTopOverlay =3D aOverlays[0],
                nTopZIndex;

            if (oTopOverlay) {
                nTopZIndex =3D Dom.getStyle(oTopOverlay, "zIndex");

                if (!isNaN(nTopZIndex)) {
                    var bRequiresBump =3D false;

                    if (oTopOverlay !=3D oElement) {
                        bRequiresBump =3D true;
                    } else if (aOverlays.length > 1) {
                        var nNextZIndex =3D Dom.getStyle(aOverlays[1], =
"zIndex");
                        // Don't rely on DOM order to stack if 2 =
overlays are at the same zindex.
                        if (!isNaN(nNextZIndex) && (nTopZIndex =3D=3D =
nNextZIndex)) {
                            bRequiresBump =3D true;
                        }
                    }
                    if (bRequiresBump) {
                        this.cfg.setProperty("zindex", =
(parseInt(nTopZIndex, 10) + 2));
                    }
                }
            }
        },

        /**
        * Removes the Overlay element from the DOM and sets all child=20
        * elements to null.
        * @method destroy
        */
        destroy: function () {

            if (this.iframe) {
                this.iframe.parentNode.removeChild(this.iframe);
            }

            this.iframe =3D null;
       =20
            Overlay.windowResizeEvent.unsubscribe(
                this.doCenterOnDOMEvent, this);
   =20
            Overlay.windowScrollEvent.unsubscribe(
                this.doCenterOnDOMEvent, this);
       =20
            Overlay.superclass.destroy.call(this);
        },
       =20
        /**
        * Returns a String representation of the object.
        * @method toString
        * @return {String} The string representation of the Overlay.
        */
        toString: function () {
            return "Overlay " + this.id;
        }

    });
}());

(function () {
   =20
    /**
    * OverlayManager is used for maintaining the focus status of=20
    * multiple Overlays.
    * @namespace YAHOO.widget
    * @namespace YAHOO.widget
    * @class OverlayManager
    * @constructor
    * @param {Array} overlays Optional. A collection of Overlays to =
register=20
    * with the manager.
    * @param {Object} userConfig  The object literal representing the =
user=20
    * configuration of the OverlayManager
    */
    YAHOO.widget.OverlayManager =3D function (userConfig) {
        this.init(userConfig);
    };

    var Overlay =3D YAHOO.widget.Overlay,
        Event =3D YAHOO.util.Event,
        Dom =3D YAHOO.util.Dom,
        Config =3D YAHOO.util.Config,
        CustomEvent =3D YAHOO.util.CustomEvent,
        OverlayManager =3D YAHOO.widget.OverlayManager;
   =20
    /**
    * The CSS class representing a focused Overlay
    * @property OverlayManager.CSS_FOCUSED
    * @static
    * @final
    * @type String
    */
    OverlayManager.CSS_FOCUSED =3D "focused";
   =20
    OverlayManager.prototype =3D {
   =20
        /**
        * The class's constructor function
        * @property contructor
        * @type Function
        */
        constructor: OverlayManager,
       =20
        /**
        * The array of Overlays that are currently registered
        * @property overlays
        * @type YAHOO.widget.Overlay[]
        */
        overlays: null,
       =20
        /**
        * Initializes the default configuration of the OverlayManager
        * @method initDefaultConfig
        */
        initDefaultConfig: function () {
       =20
            /**
            * The collection of registered Overlays in use by=20
            * the OverlayManager
            * @config overlays
            * @type YAHOO.widget.Overlay[]
            * @default null
            */
            this.cfg.addProperty("overlays", { suppressEvent: true } );
       =20
            /**
            * The default DOM event that should be used to focus an =
Overlay
            * @config focusevent
            * @type String
            * @default "mousedown"
            */
            this.cfg.addProperty("focusevent", { value: "mousedown" } );

        },

        /**
        * Initializes the OverlayManager
        * @method init
        * @param {Overlay[]} overlays Optional. A collection of Overlays =
to=20
        * register with the manager.
        * @param {Object} userConfig  The object literal representing =
the user=20
        * configuration of the OverlayManager
        */
        init: function (userConfig) {

            /**
            * The OverlayManager's Config object used for monitoring=20
            * configuration properties.
            * @property cfg
            * @type Config
            */
            this.cfg =3D new Config(this);

            this.initDefaultConfig();

            if (userConfig) {
                this.cfg.applyConfig(userConfig, true);
            }
            this.cfg.fireQueue();

            /**
            * The currently activated Overlay
            * @property activeOverlay
            * @private
            * @type YAHOO.widget.Overlay
            */
            var activeOverlay =3D null;

            /**
            * Returns the currently focused Overlay
            * @method getActive
            * @return {Overlay} The currently focused Overlay
            */
            this.getActive =3D function () {
                return activeOverlay;
            };

            /**
            * Focuses the specified Overlay
            * @method focus
            * @param {Overlay} overlay The Overlay to focus
            * @param {String} overlay The id of the Overlay to focus
            */
            this.focus =3D function (overlay) {
                var o =3D this.find(overlay);
                if (o) {
                    if (activeOverlay !=3D o) {
                        if (activeOverlay) {
                            activeOverlay.blur();
                        }
                        this.bringToTop(o);

                        activeOverlay =3D o;

                        Dom.addClass(activeOverlay.element,=20
                            OverlayManager.CSS_FOCUSED);

                        o.focusEvent.fire();
                    }
                }
            };
       =20
            /**
            * Removes the specified Overlay from the manager
            * @method remove
            * @param {Overlay} overlay The Overlay to remove
            * @param {String} overlay The id of the Overlay to remove
            */
            this.remove =3D function (overlay) {
                var o =3D this.find(overlay),=20
                        originalZ;
                if (o) {
                    if (activeOverlay =3D=3D o) {
                        activeOverlay =3D null;
                    }

                    var bDestroyed =3D (o.element =3D=3D=3D null && =
o.cfg =3D=3D=3D null) ? true : false;

                    if (!bDestroyed) {
                        // Set it's zindex so that it's sorted to the =
end.
                        originalZ =3D Dom.getStyle(o.element, "zIndex");
                        o.cfg.setProperty("zIndex", -1000, true);
                    }

                    this.overlays.sort(this.compareZIndexDesc);
                    this.overlays =3D this.overlays.slice(0, =
(this.overlays.length - 1));

                    o.hideEvent.unsubscribe(o.blur);
                    o.destroyEvent.unsubscribe(this._onOverlayDestroy, =
o);

                    if (!bDestroyed) {
                        Event.removeListener(o.element,=20
                                    this.cfg.getProperty("focusevent"),=20
                                    this._onOverlayElementFocus);

                        o.cfg.setProperty("zIndex", originalZ, true);
                        o.cfg.setProperty("manager", null);
                    }

                    o.focusEvent.unsubscribeAll();
                    o.blurEvent.unsubscribeAll();

                    o.focusEvent =3D null;
                    o.blurEvent =3D null;

                    o.focus =3D null;
                    o.blur =3D null;
                }
            };

            /**
            * Removes focus from all registered Overlays in the manager
            * @method blurAll
            */
            this.blurAll =3D function () {
   =20
                var nOverlays =3D this.overlays.length,
                    i;

                if (nOverlays > 0) {
                    i =3D nOverlays - 1;

                    do {
                        this.overlays[i].blur();
                    }
                    while(i--);
                }
            };
       =20
            this._onOverlayBlur =3D function (p_sType, p_aArgs) {
                activeOverlay =3D null;
            };
       =20
            var overlays =3D this.cfg.getProperty("overlays");
       =20
            if (! this.overlays) {
                this.overlays =3D [];
            }
       =20
            if (overlays) {
                this.register(overlays);
                this.overlays.sort(this.compareZIndexDesc);
            }
        },
       =20
       =20
        /**
        * @method _onOverlayElementFocus
        * @description Event handler for the DOM event that is used to =
focus=20
        * the Overlay instance as specified by the "focusevent"=20
        * configuration property.
        * @private
        * @param {Event} p_oEvent Object representing the DOM event=20
        * object passed back by the event utility (Event).
        */
        _onOverlayElementFocus: function (p_oEvent) {
       =20
            var oTarget =3D Event.getTarget(p_oEvent),
                oClose =3D this.close;
           =20
            if (oClose && (oTarget =3D=3D oClose || =
Dom.isAncestor(oClose, oTarget))) {
                this.blur();
            } else {
                this.focus();
            }
        },
       =20
       =20
        /**
        * @method _onOverlayDestroy
        * @description "destroy" event handler for the Overlay.
        * @private
        * @param {String} p_sType String representing the name of the =
event =20
        * that was fired.
        * @param {Array} p_aArgs Array of arguments sent when the event=20
        * was fired.
        * @param {Overlay} p_oOverlay Object representing the menu that=20
        * fired the event.
        */
        _onOverlayDestroy: function (p_sType, p_aArgs, p_oOverlay) {
            this.remove(p_oOverlay);
        },
       =20
        /**
        * Registers an Overlay or an array of Overlays with the manager. =
Upon=20
        * registration, the Overlay receives functions for focus and =
blur,=20
        * along with CustomEvents for each.
        * @method register
        * @param {Overlay} overlay  An Overlay to register with the =
manager.
        * @param {Overlay[]} overlay  An array of Overlays to register =
with=20
        * the manager.
        * @return {Boolean} True if any Overlays are registered.
        */
        register: function (overlay) {
       =20
            var mgr =3D this,
                zIndex,
                regcount,
                i,
                nOverlays;
       =20
            if (overlay instanceof Overlay) {

                overlay.cfg.addProperty("manager", { value: this } );

                overlay.focusEvent =3D overlay.createEvent("focus");
                overlay.focusEvent.signature =3D CustomEvent.LIST;

                overlay.blurEvent =3D overlay.createEvent("blur");
                overlay.blurEvent.signature =3D CustomEvent.LIST;
       =20
                overlay.focus =3D function () {
                    mgr.focus(this);
                };
       =20
                overlay.blur =3D function () {
                    if (mgr.getActive() =3D=3D this) {
                        Dom.removeClass(this.element, =
OverlayManager.CSS_FOCUSED);
                        this.blurEvent.fire();
                    }
                };
       =20
                overlay.blurEvent.subscribe(mgr._onOverlayBlur);
                overlay.hideEvent.subscribe(overlay.blur);
               =20
                overlay.destroyEvent.subscribe(this._onOverlayDestroy, =
overlay, this);
       =20
                Event.on(overlay.element, =
this.cfg.getProperty("focusevent"),=20
                            this._onOverlayElementFocus, null, overlay);
       =20
                zIndex =3D Dom.getStyle(overlay.element, "zIndex");

                if (!isNaN(zIndex)) {
                    overlay.cfg.setProperty("zIndex", parseInt(zIndex, =
10));
                } else {
                    overlay.cfg.setProperty("zIndex", 0);
                }

                this.overlays.push(overlay);
                this.bringToTop(overlay);

                return true;

            } else if (overlay instanceof Array) {

                regcount =3D 0;
                nOverlays =3D overlay.length;

                for (i =3D 0; i < nOverlays; i++) {
                    if (this.register(overlay[i])) {
                        regcount++;
                    }
                }

                if (regcount > 0) {
                    return true;
                }
            } else {
                return false;
            }
        },

        /**
        * Places the specified Overlay instance on top of all other=20
        * Overlay instances.
        * @method bringToTop
        * @param {YAHOO.widget.Overlay} p_oOverlay Object representing =
an=20
        * Overlay instance.
        * @param {String} p_oOverlay String representing the id of an=20
        * Overlay instance.
        */       =20
        bringToTop: function (p_oOverlay) {

            var oOverlay =3D this.find(p_oOverlay),
                nTopZIndex,
                oTopOverlay,
                aOverlays;

            if (oOverlay) {

                aOverlays =3D this.overlays;
                aOverlays.sort(this.compareZIndexDesc);

                oTopOverlay =3D aOverlays[0];

                if (oTopOverlay) {
                    nTopZIndex =3D Dom.getStyle(oTopOverlay.element, =
"zIndex");

                    if (!isNaN(nTopZIndex)) {

                        var bRequiresBump =3D false;

                        if (oTopOverlay !=3D=3D oOverlay) {
                            bRequiresBump =3D true;
                        } else if (aOverlays.length > 1) {
                            var nNextZIndex =3D =
Dom.getStyle(aOverlays[1].element, "zIndex");
                            // Don't rely on DOM order to stack if 2 =
overlays are at the same zindex.
                            if (!isNaN(nNextZIndex) && (nTopZIndex =
=3D=3D nNextZIndex)) {
                                bRequiresBump =3D true;
                            }
                        }

                        if (bRequiresBump) {
                            oOverlay.cfg.setProperty("zindex", =
(parseInt(nTopZIndex, 10) + 2));
                        }
                    }
                    aOverlays.sort(this.compareZIndexDesc);
                }
            }
        },

        /**
        * Attempts to locate an Overlay by instance or ID.
        * @method find
        * @param {Overlay} overlay  An Overlay to locate within the =
manager
        * @param {String} overlay  An Overlay id to locate within the =
manager
        * @return {Overlay} The requested Overlay, if found, or null if =
it=20
        * cannot be located.
        */
        find: function (overlay) {

            var aOverlays =3D this.overlays,
                nOverlays =3D aOverlays.length,
                i;

            if (nOverlays > 0) {
                i =3D nOverlays - 1;

                if (overlay instanceof Overlay) {
                    do {
                        if (aOverlays[i] =3D=3D overlay) {
                            return aOverlays[i];
                        }
                    }
                    while(i--);

                } else if (typeof overlay =3D=3D "string") {
                    do {
                        if (aOverlays[i].id =3D=3D overlay) {
                            return aOverlays[i];
                        }
                    }
                    while(i--);
                }
                return null;
            }
        },
       =20
        /**
        * Used for sorting the manager's Overlays by z-index.
        * @method compareZIndexDesc
        * @private
        * @return {Number} 0, 1, or -1, depending on where the Overlay =
should=20
        * fall in the stacking order.
        */
        compareZIndexDesc: function (o1, o2) {

            var zIndex1 =3D (o1.cfg) ? o1.cfg.getProperty("zIndex") : =
null, // Sort invalid (destroyed)
                zIndex2 =3D (o2.cfg) ? o2.cfg.getProperty("zIndex") : =
null; // objects at bottom.

            if (zIndex1 =3D=3D=3D null && zIndex2 =3D=3D=3D null) {
                return 0;
            } else if (zIndex1 =3D=3D=3D null){
                return 1;
            } else if (zIndex2 =3D=3D=3D null) {
                return -1;
            } else if (zIndex1 > zIndex2) {
                return -1;
            } else if (zIndex1 < zIndex2) {
                return 1;
            } else {
                return 0;
            }
        },
       =20
        /**
        * Shows all Overlays in the manager.
        * @method showAll
        */
        showAll: function () {
       =20
            var aOverlays =3D this.overlays,
                nOverlays =3D aOverlays.length,
                i;

            if (nOverlays > 0) {
                i =3D nOverlays - 1;
                do {
                    aOverlays[i].show();
                }
                while(i--);
            }
        },

        /**
        * Hides all Overlays in the manager.
        * @method hideAll
        */
        hideAll: function () {
       =20
            var aOverlays =3D this.overlays,
                nOverlays =3D aOverlays.length,
                i;

            if (nOverlays > 0) {
                i =3D nOverlays - 1;
                do {
                    aOverlays[i].hide();
                }
                while(i--);
            }
        },

        /**
        * Returns a string representation of the object.
        * @method toString
        * @return {String} The string representation of the =
OverlayManager
        */
        toString: function () {
            return "OverlayManager";
        }
    };

}());

(function () {

    /**
    * ContainerEffect encapsulates animation transitions that are =
executed when=20
    * an Overlay is shown or hidden.
    * @namespace YAHOO.widget
    * @class ContainerEffect
    * @constructor
    * @param {YAHOO.widget.Overlay} overlay The Overlay that the =
animation=20
    * should be associated with
    * @param {Object} attrIn The object literal representing the =
animation=20
    * arguments to be used for the animate-in transition. The arguments =
for=20
    * this literal are: attributes(object, see YAHOO.util.Anim for =
description),=20
    * duration(Number), and method(i.e. Easing.easeIn).
    * @param {Object} attrOut The object literal representing the =
animation=20
    * arguments to be used for the animate-out transition. The arguments =
for =20
    * this literal are: attributes(object, see YAHOO.util.Anim for =
description),=20
    * duration(Number), and method(i.e. Easing.easeIn).
    * @param {HTMLElement} targetElement Optional. The target element =
that =20
    * should be animated during the transition. Defaults to =
overlay.element.
    * @param {class} Optional. The animation class to instantiate. =
Defaults to=20
    * YAHOO.util.Anim. Other options include YAHOO.util.Motion.
    */
    YAHOO.widget.ContainerEffect =3D=20
   =20
        function (overlay, attrIn, attrOut, targetElement, animClass) {
   =20
        if (!animClass) {
            animClass =3D YAHOO.util.Anim;
        }
       =20
        /**
        * The overlay to animate
        * @property overlay
        * @type YAHOO.widget.Overlay
        */
        this.overlay =3D overlay;
   =20
        /**
        * The animation attributes to use when transitioning into view
        * @property attrIn
        * @type Object
        */
        this.attrIn =3D attrIn;
   =20
        /**
        * The animation attributes to use when transitioning out of view
        * @property attrOut
        * @type Object
        */
        this.attrOut =3D attrOut;
   =20
        /**
        * The target element to be animated
        * @property targetElement
        * @type HTMLElement
        */
        this.targetElement =3D targetElement || overlay.element;
   =20
        /**
        * The animation class to use for animating the overlay
        * @property animClass
        * @type class
        */
        this.animClass =3D animClass;
   =20
    };


    var Dom =3D YAHOO.util.Dom,
        CustomEvent =3D YAHOO.util.CustomEvent,
        Easing =3D YAHOO.util.Easing,
        ContainerEffect =3D YAHOO.widget.ContainerEffect;


    /**
    * A pre-configured ContainerEffect instance that can be used for =
fading=20
    * an overlay in and out.
    * @method FADE
    * @static
    * @param {YAHOO.widget.Overlay} overlay The Overlay object to =
animate
    * @param {Number} dur The duration of the animation
    * @return {YAHOO.widget.ContainerEffect} The configured =
ContainerEffect object
    */
    ContainerEffect.FADE =3D function (overlay, dur) {

        var fin =3D {
            attributes: {opacity:{from:0, to:1}},
            duration: dur,
            method: Easing.easeIn
        };

        var fout =3D {
            attributes: {opacity:{to:0}},
            duration: dur,
            method: Easing.easeOut
        };

        var fade =3D new ContainerEffect(overlay, fin, fout, =
overlay.element);

        fade.handleUnderlayStart =3D function() {
            var underlay =3D this.overlay.underlay;
            if (underlay && YAHOO.env.ua.ie) {
                var hasFilters =3D (underlay.filters && =
underlay.filters.length > 0);
                if(hasFilters) {
                    Dom.addClass(overlay.element, "yui-effect-fade");
                }
            }
        };

        fade.handleUnderlayComplete =3D function() {
            var underlay =3D this.overlay.underlay;
            if (underlay && YAHOO.env.ua.ie) {
                Dom.removeClass(overlay.element, "yui-effect-fade");
            }
        };

        fade.handleStartAnimateIn =3D function (type,args,obj) {
            Dom.addClass(obj.overlay.element, "hide-select");

            if (!obj.overlay.underlay) {
                obj.overlay.cfg.refireEvent("underlay");
            }

            obj.handleUnderlayStart();

            Dom.setStyle(obj.overlay.element, "visibility", "visible");
            Dom.setStyle(obj.overlay.element, "opacity", 0);
        };

        fade.handleCompleteAnimateIn =3D function (type,args,obj) {
            Dom.removeClass(obj.overlay.element, "hide-select");

            if (obj.overlay.element.style.filter) {
                obj.overlay.element.style.filter =3D null;
            }

            obj.handleUnderlayComplete();

            obj.overlay.cfg.refireEvent("iframe");
            obj.animateInCompleteEvent.fire();
        };

        fade.handleStartAnimateOut =3D function (type, args, obj) {
            Dom.addClass(obj.overlay.element, "hide-select");
            obj.handleUnderlayStart();
        };

        fade.handleCompleteAnimateOut =3D  function (type, args, obj) {
            Dom.removeClass(obj.overlay.element, "hide-select");
            if (obj.overlay.element.style.filter) {
                obj.overlay.element.style.filter =3D null;
            }
            Dom.setStyle(obj.overlay.element, "visibility", "hidden");
            Dom.setStyle(obj.overlay.element, "opacity", 1);

            obj.handleUnderlayComplete();

            obj.overlay.cfg.refireEvent("iframe");
            obj.animateOutCompleteEvent.fire();
        };

        fade.init();
        return fade;
    };
   =20
   =20
    /**
    * A pre-configured ContainerEffect instance that can be used for =
sliding an=20
    * overlay in and out.
    * @method SLIDE
    * @static
    * @param {YAHOO.widget.Overlay} overlay The Overlay object to =
animate
    * @param {Number} dur The duration of the animation
    * @return {YAHOO.widget.ContainerEffect} The configured =
ContainerEffect object
    */
    ContainerEffect.SLIDE =3D function (overlay, dur) {
   =20
        var x =3D overlay.cfg.getProperty("x") || =
Dom.getX(overlay.element),
   =20
            y =3D overlay.cfg.getProperty("y") || =
Dom.getY(overlay.element),
   =20
            clientWidth =3D Dom.getClientWidth(),
   =20
            offsetWidth =3D overlay.element.offsetWidth,
   =20
            slide =3D new ContainerEffect(overlay,=20
           =20
            { attributes: { points: { to: [x, y] } },
                duration: dur,
                method: Easing.easeIn },
   =20
            { attributes: { points: { to: [(clientWidth + 25), y] } },
                duration: dur,
                method: Easing.easeOut },
   =20
            overlay.element, YAHOO.util.Motion);
       =20
       =20
        slide.handleStartAnimateIn =3D function (type,args,obj) {
            obj.overlay.element.style.left =3D ((-25) - offsetWidth) + =
"px";
            obj.overlay.element.style.top  =3D y + "px";
        };
       =20
        slide.handleTweenAnimateIn =3D function (type, args, obj) {
       =20
            var pos =3D Dom.getXY(obj.overlay.element),
                currentX =3D pos[0],
                currentY =3D pos[1];
       =20
            if (Dom.getStyle(obj.overlay.element, "visibility") =3D=3D=20
                "hidden" && currentX < x) {

                Dom.setStyle(obj.overlay.element, "visibility", =
"visible");

            }
       =20
            obj.overlay.cfg.setProperty("xy", [currentX, currentY], =
true);
            obj.overlay.cfg.refireEvent("iframe");
        };
       =20
        slide.handleCompleteAnimateIn =3D function (type, args, obj) {
            obj.overlay.cfg.setProperty("xy", [x, y], true);
            obj.startX =3D x;
            obj.startY =3D y;
            obj.overlay.cfg.refireEvent("iframe");
            obj.animateInCompleteEvent.fire();
        };
       =20
        slide.handleStartAnimateOut =3D function (type, args, obj) {
   =20
            var vw =3D Dom.getViewportWidth(),
                pos =3D Dom.getXY(obj.overlay.element),
                yso =3D pos[1];
   =20
            obj.animOut.attributes.points.to =3D [(vw + 25), yso];
        };
       =20
        slide.handleTweenAnimateOut =3D function (type, args, obj) {
   =20
            var pos =3D Dom.getXY(obj.overlay.element),
                xto =3D pos[0],
                yto =3D pos[1];
       =20
            obj.overlay.cfg.setProperty("xy", [xto, yto], true);
            obj.overlay.cfg.refireEvent("iframe");
        };
       =20
        slide.handleCompleteAnimateOut =3D function (type, args, obj) {
            Dom.setStyle(obj.overlay.element, "visibility", "hidden");
       =20
            obj.overlay.cfg.setProperty("xy", [x, y]);
            obj.animateOutCompleteEvent.fire();
        };
       =20
        slide.init();
        return slide;
    };
   =20
    ContainerEffect.prototype =3D {
   =20
        /**
        * Initializes the animation classes and events.
        * @method init
        */
        init: function () {

            this.beforeAnimateInEvent =3D =
this.createEvent("beforeAnimateIn");
            this.beforeAnimateInEvent.signature =3D CustomEvent.LIST;
           =20
            this.beforeAnimateOutEvent =3D =
this.createEvent("beforeAnimateOut");
            this.beforeAnimateOutEvent.signature =3D CustomEvent.LIST;
       =20
            this.animateInCompleteEvent =3D =
this.createEvent("animateInComplete");
            this.animateInCompleteEvent.signature =3D CustomEvent.LIST;
       =20
            this.animateOutCompleteEvent =3D=20
                this.createEvent("animateOutComplete");
            this.animateOutCompleteEvent.signature =3D CustomEvent.LIST;
       =20
            this.animIn =3D new this.animClass(this.targetElement,=20
                this.attrIn.attributes, this.attrIn.duration,=20
                this.attrIn.method);

            this.animIn.onStart.subscribe(this.handleStartAnimateIn, =
this);
            this.animIn.onTween.subscribe(this.handleTweenAnimateIn, =
this);

            =
this.animIn.onComplete.subscribe(this.handleCompleteAnimateIn,=20
                this);
       =20
            this.animOut =3D new this.animClass(this.targetElement,=20
                this.attrOut.attributes, this.attrOut.duration,=20
                this.attrOut.method);

            this.animOut.onStart.subscribe(this.handleStartAnimateOut, =
this);
            this.animOut.onTween.subscribe(this.handleTweenAnimateOut, =
this);
            =
this.animOut.onComplete.subscribe(this.handleCompleteAnimateOut,=20
                this);

        },
       =20
        /**
        * Triggers the in-animation.
        * @method animateIn
        */
        animateIn: function () {
            this.beforeAnimateInEvent.fire();
            this.animIn.animate();
        },
       =20
        /**
        * Triggers the out-animation.
        * @method animateOut
        */
        animateOut: function () {
            this.beforeAnimateOutEvent.fire();
            this.animOut.animate();
        },
       =20
        /**
        * The default onStart handler for the in-animation.
        * @method handleStartAnimateIn
        * @param {String} type The CustomEvent type
        * @param {Object[]} args The CustomEvent arguments
        * @param {Object} obj The scope object
        */
        handleStartAnimateIn: function (type, args, obj) { },
   =20
        /**
        * The default onTween handler for the in-animation.
        * @method handleTweenAnimateIn
        * @param {String} type The CustomEvent type
        * @param {Object[]} args The CustomEvent arguments
        * @param {Object} obj The scope object
        */
        handleTweenAnimateIn: function (type, args, obj) { },
   =20
        /**
        * The default onComplete handler for the in-animation.
        * @method handleCompleteAnimateIn
        * @param {String} type The CustomEvent type
        * @param {Object[]} args The CustomEvent arguments
        * @param {Object} obj The scope object
        */
        handleCompleteAnimateIn: function (type, args, obj) { },
       =20
        /**
        * The default onStart handler for the out-animation.
        * @method handleStartAnimateOut
        * @param {String} type The CustomEvent type
        * @param {Object[]} args The CustomEvent arguments
        * @param {Object} obj The scope object
        */
        handleStartAnimateOut: function (type, args, obj) { },
   =20
        /**
        * The default onTween handler for the out-animation.
        * @method handleTweenAnimateOut
        * @param {String} type The CustomEvent type
        * @param {Object[]} args The CustomEvent arguments
        * @param {Object} obj The scope object
        */
        handleTweenAnimateOut: function (type, args, obj) { },
   =20
        /**
        * The default onComplete handler for the out-animation.
        * @method handleCompleteAnimateOut
        * @param {String} type The CustomEvent type
        * @param {Object[]} args The CustomEvent arguments
        * @param {Object} obj The scope object
        */
        handleCompleteAnimateOut: function (type, args, obj) { },
       =20
        /**
        * Returns a string representation of the object.
        * @method toString
        * @return {String} The string representation of the =
ContainerEffect
        */
        toString: function () {
            var output =3D "ContainerEffect";
            if (this.overlay) {
                output +=3D " [" + this.overlay.toString() + "]";
            }
            return output;
        }
   =20
    };

    YAHOO.lang.augmentProto(ContainerEffect, YAHOO.util.EventProvider);

})();

YAHOO.register("containercore", YAHOO.widget.Module, {version: "2.5.1", =
build: "984"});

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/js/vertical_menu.js

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.1
*/


/**
* @module menu
* @description <p>The Menu family of components features a collection of =

* controls that make it easy to add menus to your website or web =
application. =20
* With the Menu Controls you can create website fly-out menus, =
customized=20
* context menus, or application-style menu bars with just a small amount =
of=20
* scripting.</p><p>The Menu family of controls features:</p>
* <ul>
*    <li>Keyboard and mouse navigation.</li>
*    <li>A rich event model that provides access to all of a menu's=20
*    interesting moments.</li>
*    <li>Support for=20
*    <a =
href=3D"http://en.wikipedia.org/wiki/Progressive_Enhancement">Progressive=

*    Enhancement</a>; Menus can be created from simple,=20
*    semantic markup on the page or purely through JavaScript.</li>
* </ul>
* @title Menu
* @namespace YAHOO.widget
* @requires Event, Dom, Container
*/
(function () {

    var Dom =3D YAHOO.util.Dom,
        Event =3D YAHOO.util.Event;


    /**
    * Singleton that manages a collection of all menus and menu items.  =
Listens=20
    * for DOM events at the document level and dispatches the events to =
the=20
    * corresponding menu or menu item.
    *
    * @namespace YAHOO.widget
    * @class MenuManager
    * @static
    */
    YAHOO.widget.MenuManager =3D function () {
   =20
        // Private member variables
   =20
   =20
        // Flag indicating if the DOM event handlers have been attached
   =20
        var m_bInitializedEventHandlers =3D false,
   =20
   =20
        // Collection of menus

        m_oMenus =3D {},


        // Collection of visible menus
   =20
        m_oVisibleMenus =3D {},
   =20
   =20
        //  Collection of menu items=20

        m_oItems =3D {},


        // Map of DOM event types to their equivalent CustomEvent types
       =20
        m_oEventTypes =3D {
            "click": "clickEvent",
            "mousedown": "mouseDownEvent",
            "mouseup": "mouseUpEvent",
            "mouseover": "mouseOverEvent",
            "mouseout": "mouseOutEvent",
            "keydown": "keyDownEvent",
            "keyup": "keyUpEvent",
            "keypress": "keyPressEvent"
        },
   =20
   =20
        m_oFocusedMenuItem =3D null;
   =20
   =20
   =20
   =20
   =20
        // Private methods
   =20
   =20
        /**
        * @method getMenuRootElement
        * @description Finds the root DIV node of a menu or the root LI =
node of=20
        * a menu item.
        * @private
        * @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
        * level-one-html.html#ID-58190037">HTMLElement</a>} p_oElement =
Object=20
        * specifying an HTML element.
        */
        function getMenuRootElement(p_oElement) {
       =20
            var oParentNode;
   =20
            if (p_oElement && p_oElement.tagName) {
           =20
                switch (p_oElement.tagName.toUpperCase()) {
                       =20
                case "DIV":
   =20
                    oParentNode =3D p_oElement.parentNode;
   =20
                    // Check if the DIV is the inner "body" node of a =
menu

                    if (
                        (
                            Dom.hasClass(p_oElement, "hd") ||
                            Dom.hasClass(p_oElement, "bd") ||
                            Dom.hasClass(p_oElement, "ft")
                        ) &&=20
                        oParentNode &&=20
                        oParentNode.tagName &&=20
                        oParentNode.tagName.toUpperCase() =3D=3D "DIV")=20
                    {
                   =20
                        return oParentNode;
                   =20
                    }
                    else {
                   =20
                        return p_oElement;
                   =20
                    }
               =20
                    break;

                case "LI":
   =20
                    return p_oElement;

                default:
   =20
                    oParentNode =3D p_oElement.parentNode;
   =20
                    if (oParentNode) {
                   =20
                        return getMenuRootElement(oParentNode);
                   =20
                    }
               =20
                    break;
               =20
                }
   =20
            }
           =20
        }
   =20
   =20
   =20
        // Private event handlers
   =20
   =20
        /**
        * @method onDOMEvent
        * @description Generic, global event handler for all of a menu's =

        * DOM-based events.  This listens for events against the =
document=20
        * object.  If the target of a given event is a member of a menu =
or=20
        * menu item's DOM, the instance's corresponding Custom Event is =
fired.
        * @private
        * @param {Event} p_oEvent Object representing the DOM event =
object =20
        * passed back by the event utility (YAHOO.util.Event).
        */
        function onDOMEvent(p_oEvent) {
   =20
            // Get the target node of the DOM event
       =20
            var oTarget =3D Event.getTarget(p_oEvent),
               =20
            // See if the target of the event was a menu, or a menu item
   =20
            oElement =3D getMenuRootElement(oTarget),
            sCustomEventType,
            sTagName,
            sId,
            oMenuItem,
            oMenu;=20
   =20
   =20
            if (oElement) {
   =20
                sTagName =3D oElement.tagName.toUpperCase();
       =20
                if (sTagName =3D=3D "LI") {
           =20
                    sId =3D oElement.id;
           =20
                    if (sId && m_oItems[sId]) {
           =20
                        oMenuItem =3D m_oItems[sId];
                        oMenu =3D oMenuItem.parent;
           =20
                    }
               =20
                }
                else if (sTagName =3D=3D "DIV") {
               =20
                    if (oElement.id) {
                   =20
                        oMenu =3D m_oMenus[oElement.id];
                   =20
                    }
               =20
                }
   =20
            }
   =20
   =20
            if (oMenu) {
   =20
                sCustomEventType =3D m_oEventTypes[p_oEvent.type];
   =20
   =20
                // Fire the Custom Event that corresponds the current =
DOM event   =20
       =20
                if (oMenuItem && !oMenuItem.cfg.getProperty("disabled")) =
{
   =20
                    oMenuItem[sCustomEventType].fire(p_oEvent);          =
        =20
   =20
   =20
                    if (
                            p_oEvent.type =3D=3D "keyup" ||=20
                            p_oEvent.type =3D=3D "mousedown")=20
                    {
   =20
                        if (m_oFocusedMenuItem !=3D oMenuItem) {
                       =20
                            if (m_oFocusedMenuItem) {
   =20
                                m_oFocusedMenuItem.blurEvent.fire();
                           =20
                            }
   =20
                            oMenuItem.focusEvent.fire();
                       =20
                        }
                   =20
                    }
   =20
                }
       =20
                oMenu[sCustomEventType].fire(p_oEvent, oMenuItem);
           =20
            }
            else if (p_oEvent.type =3D=3D "mousedown") {
   =20
                if (m_oFocusedMenuItem) {
   =20
                    m_oFocusedMenuItem.blurEvent.fire();
   =20
                    m_oFocusedMenuItem =3D null;
   =20
                }
   =20
   =20
                /*
                    If the target of the event wasn't a menu, hide all=20
                    dynamically positioned menus
                */
               =20
                for (var i in m_oVisibleMenus) {
       =20
                    if (YAHOO.lang.hasOwnProperty(m_oVisibleMenus, i)) {
       =20
                        oMenu =3D m_oVisibleMenus[i];
       =20
                        if (oMenu.cfg.getProperty("clicktohide") &&=20
                            !(oMenu instanceof YAHOO.widget.MenuBar) &&=20
                            oMenu.cfg.getProperty("position") =3D=3D =
"dynamic") {
       =20
                            oMenu.hide();
       =20
                        }
                        else {
   =20
                            oMenu.clearActiveItem(true);
       =20
                        }
       =20
                    }
       =20
                }=20
   =20
            }
            else if (p_oEvent.type =3D=3D "keyup") {=20
   =20
                if (m_oFocusedMenuItem) {
   =20
                    m_oFocusedMenuItem.blurEvent.fire();
   =20
                    m_oFocusedMenuItem =3D null;
   =20
                }
   =20
            }
   =20
        }
   =20
   =20
        /**
        * @method onMenuDestroy
        * @description "destroy" event handler for a menu.
        * @private
        * @param {String} p_sType String representing the name of the =
event=20
        * that was fired.
        * @param {Array} p_aArgs Array of arguments sent when the event=20
        * was fired.
        * @param {YAHOO.widget.Menu} p_oMenu The menu that fired the =
event.
        */
        function onMenuDestroy(p_sType, p_aArgs, p_oMenu) {
   =20
            if (m_oMenus[p_oMenu.id]) {
   =20
                this.removeMenu(p_oMenu);
   =20
            }
   =20
        }
   =20
   =20
        /**
        * @method onMenuFocus
        * @description "focus" event handler for a MenuItem instance.
        * @private
        * @param {String} p_sType String representing the name of the =
event=20
        * that was fired.
        * @param {Array} p_aArgs Array of arguments sent when the event=20
        * was fired.
        */
        function onMenuFocus(p_sType, p_aArgs) {
   =20
            var oItem =3D p_aArgs[0];
   =20
            if (oItem) {
   =20
                m_oFocusedMenuItem =3D oItem;
           =20
            }
   =20
        }
   =20
   =20
        /**
        * @method onMenuBlur
        * @description "blur" event handler for a MenuItem instance.
        * @private
        * @param {String} p_sType String representing the name of the =
event =20
        * that was fired.
        * @param {Array} p_aArgs Array of arguments sent when the event=20
        * was fired.
        */
        function onMenuBlur(p_sType, p_aArgs) {
   =20
            m_oFocusedMenuItem =3D null;
   =20
        }
   =20
   =20
   =20
        /**
        * @method onMenuVisibleConfigChange
        * @description Event handler for when the "visible" =
configuration =20
        * property of a Menu instance changes.
        * @private
        * @param {String} p_sType String representing the name of the =
event =20
        * that was fired.
        * @param {Array} p_aArgs Array of arguments sent when the event=20
        * was fired.
        */
        function onMenuVisibleConfigChange(p_sType, p_aArgs) {
   =20
            var bVisible =3D p_aArgs[0],
                sId =3D this.id;
           =20
            if (bVisible) {
   =20
                m_oVisibleMenus[sId] =3D this;
               =20
           =20
            }
            else if (m_oVisibleMenus[sId]) {
           =20
                delete m_oVisibleMenus[sId];
               =20
           =20
            }
       =20
        }
   =20
   =20
        /**
        * @method onItemDestroy
        * @description "destroy" event handler for a MenuItem instance.
        * @private
        * @param {String} p_sType String representing the name of the =
event =20
        * that was fired.
        * @param {Array} p_aArgs Array of arguments sent when the event=20
        * was fired.
        */
        function onItemDestroy(p_sType, p_aArgs) {
   =20
            removeItem(this);
   =20
        }

   =20
        function removeItem(p_oMenuItem) {

            var sId =3D p_oMenuItem.id;
   =20
            if (sId && m_oItems[sId]) {
   =20
                if (m_oFocusedMenuItem =3D=3D p_oMenuItem) {
   =20
                    m_oFocusedMenuItem =3D null;
   =20
                }
   =20
                delete m_oItems[sId];
               =20
                p_oMenuItem.destroyEvent.unsubscribe(onItemDestroy);
   =20
   =20
            }

        }
   =20
   =20
        /**
        * @method onItemAdded
        * @description "itemadded" event handler for a Menu instance.
        * @private
        * @param {String} p_sType String representing the name of the =
event =20
        * that was fired.
        * @param {Array} p_aArgs Array of arguments sent when the event=20
        * was fired.
        */
        function onItemAdded(p_sType, p_aArgs) {
   =20
            var oItem =3D p_aArgs[0],
                sId;
   =20
            if (oItem instanceof YAHOO.widget.MenuItem) {=20
   =20
                sId =3D oItem.id;
       =20
                if (!m_oItems[sId]) {
           =20
                    m_oItems[sId] =3D oItem;
       =20
                    oItem.destroyEvent.subscribe(onItemDestroy);
       =20
       =20
                }
   =20
            }
       =20
        }
   =20
   =20
        return {
   =20
            // Privileged methods
   =20
   =20
            /**
            * @method addMenu
            * @description Adds a menu to the collection of known menus.
            * @param {YAHOO.widget.Menu} p_oMenu Object specifying the =
Menu =20
            * instance to be added.
            */
            addMenu: function (p_oMenu) {
   =20
                var oDoc;
   =20
                if (p_oMenu instanceof YAHOO.widget.Menu && p_oMenu.id =
&&=20
                    !m_oMenus[p_oMenu.id]) {
       =20
                    m_oMenus[p_oMenu.id] =3D p_oMenu;
               =20
           =20
                    if (!m_bInitializedEventHandlers) {
           =20
                        oDoc =3D document;
               =20
                        Event.on(oDoc, "mouseover", onDOMEvent, this, =
true);
                        Event.on(oDoc, "mouseout", onDOMEvent, this, =
true);
                        Event.on(oDoc, "mousedown", onDOMEvent, this, =
true);
                        Event.on(oDoc, "mouseup", onDOMEvent, this, =
true);
                        Event.on(oDoc, "click", onDOMEvent, this, true);
                        Event.on(oDoc, "keydown", onDOMEvent, this, =
true);
                        Event.on(oDoc, "keyup", onDOMEvent, this, true);
                        Event.on(oDoc, "keypress", onDOMEvent, this, =
true);
   =20
   =20
                        m_bInitializedEventHandlers =3D true;
                       =20
           =20
                    }
           =20
                    p_oMenu.cfg.subscribeToConfigEvent("visible",=20
                        onMenuVisibleConfigChange);

                    p_oMenu.destroyEvent.subscribe(onMenuDestroy, =
p_oMenu,=20
                                            this);
           =20
                    p_oMenu.itemAddedEvent.subscribe(onItemAdded);
                    p_oMenu.focusEvent.subscribe(onMenuFocus);
                    p_oMenu.blurEvent.subscribe(onMenuBlur);
       =20
       =20
                }
       =20
            },
   =20
       =20
            /**
            * @method removeMenu
            * @description Removes a menu from the collection of known =
menus.
            * @param {YAHOO.widget.Menu} p_oMenu Object specifying the =
Menu =20
            * instance to be removed.
            */
            removeMenu: function (p_oMenu) {
   =20
                var sId,
                    aItems,
                    i;
       =20
                if (p_oMenu) {
   =20
                    sId =3D p_oMenu.id;
       =20
                    if (m_oMenus[sId] =3D=3D p_oMenu) {

                        // Unregister each menu item

                        aItems =3D p_oMenu.getItems();

                        if (aItems && aItems.length > 0) {

                            i =3D aItems.length - 1;

                            do {

                                removeItem(aItems[i]);

                            }
                            while (i--);

                        }


                        // Unregister the menu

                        delete m_oMenus[sId];
           =20
       =20

                        /*
                             Unregister the menu from the collection of=20
                             visible menus
                        */

                        if (m_oVisibleMenus[sId] =3D=3D p_oMenu) {
           =20
                            delete m_oVisibleMenus[sId];
                           =20
      =20
                        }


                        // Unsubscribe event listeners

                        if (p_oMenu.cfg) {

                            =
p_oMenu.cfg.unsubscribeFromConfigEvent("visible",=20
                                onMenuVisibleConfigChange);
                           =20
                        }

                        p_oMenu.destroyEvent.unsubscribe(onMenuDestroy,=20
                            p_oMenu);
               =20
                        p_oMenu.itemAddedEvent.unsubscribe(onItemAdded);
                        p_oMenu.focusEvent.unsubscribe(onMenuFocus);
                        p_oMenu.blurEvent.unsubscribe(onMenuBlur);

                    }
               =20
                }
   =20
            },
       =20
       =20
            /**
            * @method hideVisible
            * @description Hides all visible, dynamically positioned =
menus=20
            * (excluding instances of YAHOO.widget.MenuBar).
            */
            hideVisible: function () {
       =20
                var oMenu;
       =20
                for (var i in m_oVisibleMenus) {
       =20
                    if (YAHOO.lang.hasOwnProperty(m_oVisibleMenus, i)) {
       =20
                        oMenu =3D m_oVisibleMenus[i];
       =20
                        if (!(oMenu instanceof YAHOO.widget.MenuBar) &&=20
                            oMenu.cfg.getProperty("position") =3D=3D =
"dynamic") {
       =20
                            oMenu.hide();
       =20
                        }
       =20
                    }
       =20
                }       =20
   =20
            },


            /**
            * @method getVisible
            * @description Returns a collection of all visible menus =
registered
            * with the menu manger.
            * @return {Array}
            */
            getVisible: function () {
           =20
                return m_oVisibleMenus;
           =20
            },

   =20
            /**
            * @method getMenus
            * @description Returns a collection of all menus registered =
with the=20
            * menu manger.
            * @return {Array}
            */
            getMenus: function () {
   =20
                return m_oMenus;
           =20
            },
   =20
   =20
            /**
            * @method getMenu
            * @description Returns a menu with the specified id.
            * @param {String} p_sId String specifying the id of the=20
            * <code>&#60;div&#62;</code> element representing the menu =
to
            * be retrieved.
            * @return {YAHOO.widget.Menu}
            */
            getMenu: function (p_sId) {
   =20
                var oMenu =3D m_oMenus[p_sId];
       =20
                if (oMenu) {
               =20
                    return oMenu;
               =20
                }
           =20
            },
   =20
   =20
            /**
            * @method getMenuItem
            * @description Returns a menu item with the specified id.
            * @param {String} p_sId String specifying the id of the=20
            * <code>&#60;li&#62;</code> element representing the menu =
item to
            * be retrieved.
            * @return {YAHOO.widget.MenuItem}
            */
            getMenuItem: function (p_sId) {
   =20
                var oItem =3D m_oItems[p_sId];
       =20
                if (oItem) {
               =20
                    return oItem;
               =20
                }
           =20
            },


            /**
            * @method getMenuItemGroup
            * @description Returns an array of menu item instances whose =

            * corresponding <code>&#60;li&#62;</code> elements are child =

            * nodes of the <code>&#60;ul&#62;</code> element with the=20
            * specified id.
            * @param {String} p_sId String specifying the id of the=20
            * <code>&#60;ul&#62;</code> element representing the group =
of=20
            * menu items to be retrieved.
            * @return {Array}
            */
            getMenuItemGroup: function (p_sId) {

                var oUL =3D Dom.get(p_sId),
                    aItems,
                    oNode,
                    oItem,
                    sId;
   =20

                if (oUL && oUL.tagName &&=20
                    oUL.tagName.toUpperCase() =3D=3D "UL") {

                    oNode =3D oUL.firstChild;

                    if (oNode) {

                        aItems =3D [];
                       =20
                        do {

                            sId =3D oNode.id;

                            if (sId) {
                           =20
                                oItem =3D this.getMenuItem(sId);
                               =20
                                if (oItem) {
                               =20
                                    aItems[aItems.length] =3D oItem;
                               =20
                                }
                           =20
                            }
                       =20
                        }
                        while ((oNode =3D oNode.nextSibling));


                        if (aItems.length > 0) {

                            return aItems;
                       =20
                        }

                    }
               =20
                }
           =20
            },

   =20
            /**
            * @method getFocusedMenuItem
            * @description Returns a reference to the menu item that =
currently=20
            * has focus.
            * @return {YAHOO.widget.MenuItem}
            */
            getFocusedMenuItem: function () {
   =20
                return m_oFocusedMenuItem;
   =20
            },
   =20
   =20
            /**
            * @method getFocusedMenu
            * @description Returns a reference to the menu that =
currently=20
            * has focus.
            * @return {YAHOO.widget.Menu}
            */
            getFocusedMenu: function () {
   =20
                if (m_oFocusedMenuItem) {
   =20
                    return (m_oFocusedMenuItem.parent.getRoot());
               =20
                }
   =20
            },
   =20
       =20
            /**
            * @method toString
            * @description Returns a string representing the menu =
manager.
            * @return {String}
            */
            toString: function () {
           =20
                return "MenuManager";
           =20
            }
   =20
        };
   =20
    }();

})();



(function () {


/**
* The Menu class creates a container that holds a vertical list =
representing=20
* a set of options or commands.  Menu is the base class for all=20
* menu containers.=20
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;div&#62;</code> element of the menu.
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;select&#62;</code> element to be used as the data source=20
* for the menu.
* @param {<a href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
* level-one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object =

* specifying the <code>&#60;div&#62;</code> element of the menu.
* @param {<a href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
* level-one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement=20
* Object specifying the <code>&#60;select&#62;</code> element to be used =
as=20
* the data source for the menu.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the menu. See configuration class documentation for=20
* more details.
* @namespace YAHOO.widget
* @class Menu
* @constructor
* @extends YAHOO.widget.Overlay
*/
YAHOO.widget.Menu =3D function (p_oElement, p_oConfig) {

    if (p_oConfig) {

        this.parent =3D p_oConfig.parent;
        this.lazyLoad =3D p_oConfig.lazyLoad || p_oConfig.lazyload;
        this.itemData =3D p_oConfig.itemData || p_oConfig.itemdata;

    }


    YAHOO.widget.Menu.superclass.constructor.call(this, p_oElement, =
p_oConfig);

};



/**
* @method checkPosition
* @description Checks to make sure that the value of the "position" =
property=20
* is one of the supported strings. Returns true if the position is =
supported.
* @private
* @param {Object} p_sPosition String specifying the position of the =
menu.
* @return {Boolean}
*/
function checkPosition(p_sPosition) {

    if (typeof p_sPosition =3D=3D "string") {

        return ("dynamic,static".indexOf((p_sPosition.toLowerCase())) =
!=3D -1);

    }

}


var Dom =3D YAHOO.util.Dom,
    Event =3D YAHOO.util.Event,
    Module =3D YAHOO.widget.Module,
    Overlay =3D YAHOO.widget.Overlay,
    Menu =3D YAHOO.widget.Menu,
    MenuManager =3D YAHOO.widget.MenuManager,
    CustomEvent =3D YAHOO.util.CustomEvent,
    Lang =3D YAHOO.lang,
    UA =3D YAHOO.env.ua,
   =20
    m_oShadowTemplate,

    /**
    * Constant representing the name of the Menu's events
    * @property EVENT_TYPES
    * @private
    * @final
    * @type Object
    */
    EVENT_TYPES =3D {
   =20
        "MOUSE_OVER": "mouseover",
        "MOUSE_OUT": "mouseout",
        "MOUSE_DOWN": "mousedown",
        "MOUSE_UP": "mouseup",
        "CLICK": "click",
        "KEY_PRESS": "keypress",
        "KEY_DOWN": "keydown",
        "KEY_UP": "keyup",
        "FOCUS": "focus",
        "BLUR": "blur",
        "ITEM_ADDED": "itemAdded",
        "ITEM_REMOVED": "itemRemoved"
   =20
    },


    /**
    * Constant representing the Menu's configuration properties
    * @property DEFAULT_CONFIG
    * @private
    * @final
    * @type Object
    */
    DEFAULT_CONFIG =3D {

        "VISIBLE": {=20
            key: "visible",=20
            value: false,=20
            validator: Lang.isBoolean
        },=20
   =20
        "CONSTRAIN_TO_VIEWPORT": {
            key: "constraintoviewport",=20
            value: true,=20
            validator: Lang.isBoolean,=20
            supercedes: ["iframe","x","y","xy"]
        },=20
   =20
        "POSITION": {=20
            key: "position",=20
            value: "dynamic",=20
            validator: checkPosition,=20
            supercedes: ["visible", "iframe"]
        },=20
   =20
        "SUBMENU_ALIGNMENT": {=20
            key: "submenualignment",=20
            value: ["tl","tr"],
            suppressEvent: true
        },
   =20
        "AUTO_SUBMENU_DISPLAY": {=20
            key: "autosubmenudisplay",=20
            value: true,=20
            validator: Lang.isBoolean,
            suppressEvent: true
        },=20
   =20
        "SHOW_DELAY": {=20
            key: "showdelay",=20
            value: 250,=20
            validator: Lang.isNumber,=20
            suppressEvent: true
        },=20
   =20
        "HIDE_DELAY": {=20
            key: "hidedelay",=20
            value: 0,=20
            validator: Lang.isNumber,=20
            suppressEvent: true
        },=20
   =20
        "SUBMENU_HIDE_DELAY": {=20
            key: "submenuhidedelay",=20
            value: 250,=20
            validator: Lang.isNumber,
            suppressEvent: true
        },=20
   =20
        "CLICK_TO_HIDE": {=20
            key: "clicktohide",=20
            value: true,=20
            validator: Lang.isBoolean,
            suppressEvent: true
        },
   =20
        "CONTAINER": {=20
            key: "container",
            suppressEvent: true
        },=20

        "SCROLL_INCREMENT": {=20
            key: "scrollincrement",=20
            value: 1,=20
            validator: Lang.isNumber,
            supercedes: ["maxheight"],
            suppressEvent: true
        },

        "MIN_SCROLL_HEIGHT": {=20
            key: "minscrollheight",=20
            value: 90,=20
            validator: Lang.isNumber,
            supercedes: ["maxheight"],
            suppressEvent: true
        },   =20
   =20
        "MAX_HEIGHT": {=20
            key: "maxheight",=20
            value: 0,=20
            validator: Lang.isNumber,
            supercedes: ["iframe"],
            suppressEvent: true
        },=20
   =20
        "CLASS_NAME": {=20
            key: "classname",=20
            value: null,=20
            validator: Lang.isString,
            suppressEvent: true
        },=20
   =20
        "DISABLED": {=20
            key: "disabled",=20
            value: false,=20
            validator: Lang.isBoolean,
            suppressEvent: true
        }
   =20
    };



YAHOO.lang.extend(Menu, Overlay, {


// Constants


/**
* @property CSS_CLASS_NAME
* @description String representing the CSS class(es) to be applied to =
the=20
* menu's <code>&#60;div&#62;</code> element.
* @default "yuimenu"
* @final
* @type String
*/
CSS_CLASS_NAME: "yuimenu",


/**
* @property ITEM_TYPE
* @description Object representing the type of menu item to instantiate =
and=20
* add when parsing the child nodes (either <code>&#60;li&#62;</code> =
element,=20
* <code>&#60;optgroup&#62;</code> element or =
<code>&#60;option&#62;</code>)=20
* of the menu's source HTML element.
* @default YAHOO.widget.MenuItem
* @final
* @type YAHOO.widget.MenuItem
*/
ITEM_TYPE: null,


/**
* @property GROUP_TITLE_TAG_NAME
* @description String representing the tagname of the HTML element used =
to=20
* title the menu's item groups.
* @default H6
* @final
* @type String
*/
GROUP_TITLE_TAG_NAME: "h6",


/**
* @property OFF_SCREEN_POSITION
* @description Array representing the default x and y position that a =
menu=20
* should have when it is positioned outside the viewport by the=20
* "poistionOffScreen" method.
* @default [-10000, -10000]
* @final
* @type Array
*/
OFF_SCREEN_POSITION: [-10000, -10000],


// Private properties


/**=20
* @property _nHideDelayId
* @description Number representing the time-out setting used to cancel =
the=20
* hiding of a menu.
* @default null
* @private
* @type Number
*/
_nHideDelayId: null,


/**=20
* @property _nShowDelayId
* @description Number representing the time-out setting used to cancel =
the=20
* showing of a menu.
* @default null
* @private
* @type Number
*/
_nShowDelayId: null,


/**=20
* @property _nSubmenuHideDelayId
* @description Number representing the time-out setting used to cancel =
the=20
* hiding of a submenu.
* @default null
* @private
* @type Number
*/
_nSubmenuHideDelayId: null,


/**=20
* @property _nBodyScrollId
* @description Number representing the time-out setting used to cancel =
the=20
* scrolling of the menu's body element.
* @default null
* @private
* @type Number
*/
_nBodyScrollId: null,


/**=20
* @property _bHideDelayEventHandlersAssigned
* @description Boolean indicating if the "mouseover" and "mouseout" =
event=20
* handlers used for hiding the menu via a call to "window.setTimeout" =
have=20
* already been assigned.
* @default false
* @private
* @type Boolean
*/
_bHideDelayEventHandlersAssigned: false,


/**
* @property _bHandledMouseOverEvent
* @description Boolean indicating the current state of the menu's=20
* "mouseover" event.
* @default false
* @private
* @type Boolean
*/
_bHandledMouseOverEvent: false,


/**
* @property _bHandledMouseOutEvent
* @description Boolean indicating the current state of the menu's
* "mouseout" event.
* @default false
* @private
* @type Boolean
*/
_bHandledMouseOutEvent: false,


/**
* @property _aGroupTitleElements
* @description Array of HTML element used to title groups of menu items.
* @default []
* @private
* @type Array
*/
_aGroupTitleElements: null,


/**
* @property _aItemGroups
* @description Multi-dimensional Array representing the menu items as =
they
* are grouped in the menu.
* @default []
* @private
* @type Array
*/
_aItemGroups: null,


/**
* @property _aListElements
* @description Array of <code>&#60;ul&#62;</code> elements, each of =
which is=20
* the parent node for each item's <code>&#60;li&#62;</code> element.
* @default []
* @private
* @type Array
*/
_aListElements: null,


/**
* @property _nCurrentMouseX
* @description The current x coordinate of the mouse inside the area of=20
* the menu.
* @default 0
* @private
* @type Number
*/
_nCurrentMouseX: 0,


/**
* @property _bStopMouseEventHandlers
* @description Stops "mouseover," "mouseout," and "mousemove" event =
handlers=20
* from executing.
* @default false
* @private
* @type Boolean
*/
_bStopMouseEventHandlers: false,


/**
* @property _sClassName
* @description The current value of the "classname" configuration =
attribute.
* @default null
* @private
* @type String
*/
_sClassName: null,



// Public properties


/**
* @property lazyLoad
* @description Boolean indicating if the menu's "lazy load" feature is=20
* enabled.  If set to "true," initialization and rendering of the menu's =

* items will be deferred until the first time it is made visible.  This=20
* property should be set via the constructor using the configuration=20
* object literal.
* @default false
* @type Boolean
*/
lazyLoad: false,


/**
* @property itemData
* @description Array of items to be added to the menu.  The array can =
contain=20
* strings representing the text for each item to be created, object =
literals=20
* representing the menu item configuration properties, or MenuItem =
instances. =20
* This property should be set via the constructor using the =
configuration=20
* object literal.
* @default null
* @type Array
*/
itemData: null,


/**
* @property activeItem
* @description Object reference to the item in the menu that has is =
selected.
* @default null
* @type YAHOO.widget.MenuItem
*/
activeItem: null,


/**
* @property parent
* @description Object reference to the menu's parent menu or menu item.  =

* This property can be set via the constructor using the configuration=20
* object literal.
* @default null
* @type YAHOO.widget.MenuItem
*/
parent: null,


/**
* @property srcElement
* @description Object reference to the HTML element (either=20
* <code>&#60;select&#62;</code> or <code>&#60;div&#62;</code>) used to=20
* create the menu.
* @default null
* @type <a href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
* level-one-html.html#ID-94282980">HTMLSelectElement</a>|<a=20
* =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.=

* html#ID-22445964">HTMLDivElement</a>
*/
srcElement: null,



// Events


/**
* @event mouseOverEvent
* @description Fires when the mouse has entered the menu.  Passes back=20
* the DOM Event object as an argument.
*/
mouseOverEvent: null,


/**
* @event mouseOutEvent
* @description Fires when the mouse has left the menu.  Passes back the =
DOM=20
* Event object as an argument.
* @type YAHOO.util.CustomEvent
*/
mouseOutEvent: null,


/**
* @event mouseDownEvent
* @description Fires when the user mouses down on the menu.  Passes back =
the=20
* DOM Event object as an argument.
* @type YAHOO.util.CustomEvent
*/
mouseDownEvent: null,


/**
* @event mouseUpEvent
* @description Fires when the user releases a mouse button while the =
mouse is=20
* over the menu.  Passes back the DOM Event object as an argument.
* @type YAHOO.util.CustomEvent
*/
mouseUpEvent: null,


/**
* @event clickEvent
* @description Fires when the user clicks the on the menu.  Passes back =
the=20
* DOM Event object as an argument.
* @type YAHOO.util.CustomEvent
*/
clickEvent: null,


/**
* @event keyPressEvent
* @description Fires when the user presses an alphanumeric key when one =
of the
* menu's items has focus.  Passes back the DOM Event object as an =
argument.
* @type YAHOO.util.CustomEvent
*/
keyPressEvent: null,


/**
* @event keyDownEvent
* @description Fires when the user presses a key when one of the menu's =
items=20
* has focus.  Passes back the DOM Event object as an argument.
* @type YAHOO.util.CustomEvent
*/
keyDownEvent: null,


/**
* @event keyUpEvent
* @description Fires when the user releases a key when one of the menu's =
items=20
* has focus.  Passes back the DOM Event object as an argument.
* @type YAHOO.util.CustomEvent
*/
keyUpEvent: null,


/**
* @event itemAddedEvent
* @description Fires when an item is added to the menu.
* @type YAHOO.util.CustomEvent
*/
itemAddedEvent: null,


/**
* @event itemRemovedEvent
* @description Fires when an item is removed to the menu.
* @type YAHOO.util.CustomEvent
*/
itemRemovedEvent: null,


/**
* @method init
* @description The Menu class's initialization method. This method is=20
* automatically called by the constructor, and sets up all DOM =
references=20
* for pre-existing markup, and creates required markup if it is not=20
* already present.
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;div&#62;</code> element of the menu.
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;select&#62;</code> element to be used as the data source=20
* for the menu.
* @param {<a href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
* level-one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object =

* specifying the <code>&#60;div&#62;</code> element of the menu.
* @param {<a href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
* level-one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement=20
* Object specifying the <code>&#60;select&#62;</code> element to be used =
as=20
* the data source for the menu.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the menu. See configuration class documentation for=20
* more details.
*/
init: function (p_oElement, p_oConfig) {

    this._aItemGroups =3D [];
    this._aListElements =3D [];
    this._aGroupTitleElements =3D [];

    if (!this.ITEM_TYPE) {

        this.ITEM_TYPE =3D YAHOO.widget.MenuItem;

    }


    var oElement;

    if (typeof p_oElement =3D=3D "string") {

        oElement =3D document.getElementById(p_oElement);

    }
    else if (p_oElement.tagName) {

        oElement =3D p_oElement;

    }


    if (oElement && oElement.tagName) {

        switch(oElement.tagName.toUpperCase()) {
   =20
            case "DIV":

                this.srcElement =3D oElement;

                if (!oElement.id) {

                    oElement.setAttribute("id", Dom.generateId());

                }


                /*=20
                    Note: we don't pass the user config in here yet=20
                    because we only want it executed once, at the lowest =

                    subclass level.
                */=20
           =20
                Menu.superclass.init.call(this, oElement);

                this.beforeInitEvent.fire(Menu);


   =20
            break;
   =20
            case "SELECT":
   =20
                this.srcElement =3D oElement;

   =20
                /*
                    The source element is not something that we can use=20
                    outright, so we need to create a new Overlay

                    Note: we don't pass the user config in here yet=20
                    because we only want it executed once, at the lowest =

                    subclass level.
                */=20

                Menu.superclass.init.call(this, Dom.generateId());

                this.beforeInitEvent.fire(Menu);



            break;

        }

    }
    else {

        /*=20
            Note: we don't pass the user config in here yet=20
            because we only want it executed once, at the lowest=20
            subclass level.
        */=20
   =20
        Menu.superclass.init.call(this, p_oElement);

        this.beforeInitEvent.fire(Menu);



    }


    if (this.element) {

        Dom.addClass(this.element, this.CSS_CLASS_NAME);


        // Subscribe to Custom Events

        this.initEvent.subscribe(this._onInit);
        this.beforeRenderEvent.subscribe(this._onBeforeRender);
        this.renderEvent.subscribe(this._onRender);
        this.renderEvent.subscribe(this.onRender);
        this.beforeShowEvent.subscribe(this._onBeforeShow);
        this.hideEvent.subscribe(this.positionOffScreen);
        this.showEvent.subscribe(this._onShow);
        this.beforeHideEvent.subscribe(this._onBeforeHide);
        this.mouseOverEvent.subscribe(this._onMouseOver);
        this.mouseOutEvent.subscribe(this._onMouseOut);
        this.clickEvent.subscribe(this._onClick);
        this.keyDownEvent.subscribe(this._onKeyDown);
        this.keyPressEvent.subscribe(this._onKeyPress);
       =20

        if (UA.gecko || UA.webkit) {

            this.cfg.subscribeToConfigEvent("y", this._onYChange);

        }


        if (p_oConfig) {
   =20
            this.cfg.applyConfig(p_oConfig, true);
   =20
        }


        // Register the Menu instance with the MenuManager

        MenuManager.addMenu(this);
       =20

        this.initEvent.fire(Menu);

    }

},



// Private methods


/**
* @method _initSubTree
* @description Iterates the childNodes of the source element to find =
nodes=20
* used to instantiate menu and menu items.
* @private
*/
_initSubTree: function () {

    var oSrcElement =3D this.srcElement,
        sSrcElementTagName,
        nGroup,
        sGroupTitleTagName,
        oNode,
        aListElements,
        nListElements,
        i;


    if (oSrcElement) {
   =20
        sSrcElementTagName =3D=20
            (oSrcElement.tagName && oSrcElement.tagName.toUpperCase());


        if (sSrcElementTagName =3D=3D "DIV") {
   =20
            //  Populate the collection of item groups and item group =
titles
   =20
            oNode =3D this.body.firstChild;
   =20

            if (oNode) {
   =20
                nGroup =3D 0;
                sGroupTitleTagName =3D =
this.GROUP_TITLE_TAG_NAME.toUpperCase();
       =20
                do {
       =20

                    if (oNode && oNode.tagName) {
       =20
                        switch (oNode.tagName.toUpperCase()) {
       =20
                            case sGroupTitleTagName:
                           =20
                                this._aGroupTitleElements[nGroup] =3D =
oNode;
       =20
                            break;
       =20
                            case "UL":
       =20
                                this._aListElements[nGroup] =3D oNode;
                                this._aItemGroups[nGroup] =3D [];
                                nGroup++;
       =20
                            break;
       =20
                        }
                   =20
                    }
       =20
                }
                while ((oNode =3D oNode.nextSibling));
       =20
       =20
                /*
                    Apply the "first-of-type" class to the first UL to =
mimic=20
                    the "first-of-type" CSS3 psuedo class.
                */
       =20
                if (this._aListElements[0]) {
       =20
                    Dom.addClass(this._aListElements[0], =
"first-of-type");
       =20
                }
           =20
            }
   =20
        }
   =20
   =20
        oNode =3D null;
   =20
   =20

        if (sSrcElementTagName) {
   =20
            switch (sSrcElementTagName) {
       =20
                case "DIV":

                    aListElements =3D this._aListElements;
                    nListElements =3D aListElements.length;
       =20
                    if (nListElements > 0) {
       =20
       =20
                        i =3D nListElements - 1;
       =20
                        do {
       =20
                            oNode =3D aListElements[i].firstChild;
           =20
                            if (oNode) {

           =20
                                do {
               =20
                                    if (oNode && oNode.tagName &&=20
                                        oNode.tagName.toUpperCase() =
=3D=3D "LI") {
               =20
       =20
                                        this.addItem(new =
this.ITEM_TYPE(oNode,=20
                                                    { parent: this }), =
i);
           =20
                                    }
                       =20
                                }
                                while ((oNode =3D oNode.nextSibling));
                           =20
                            }
                   =20
                        }
                        while (i--);
       =20
                    }
       =20
                break;
       =20
                case "SELECT":
       =20
       =20
                    oNode =3D oSrcElement.firstChild;
       =20
                    do {
       =20
                        if (oNode && oNode.tagName) {
                       =20
                            switch (oNode.tagName.toUpperCase()) {
           =20
                                case "OPTGROUP":
                                case "OPTION":
           =20
           =20
                                    this.addItem(
                                            new this.ITEM_TYPE(
                                                    oNode,=20
                                                    { parent: this }
                                                )
                                            );
           =20
                                break;
           =20
                            }
   =20
                        }
       =20
                    }
                    while ((oNode =3D oNode.nextSibling));
       =20
                break;
       =20
            }
   =20
        }   =20
   =20
    }

},


/**
* @method _getFirstEnabledItem
* @description Returns the first enabled item in the menu.
* @return {YAHOO.widget.MenuItem}
* @private
*/
_getFirstEnabledItem: function () {

    var aItems =3D this.getItems(),
        nItems =3D aItems.length,
        oItem;
   =20
    for(var i=3D0; i<nItems; i++) {

        oItem =3D aItems[i];

        if (oItem && !oItem.cfg.getProperty("disabled") &&=20
            oItem.element.style.display !=3D "none") {

            return oItem;

        }
   =20
    }
   =20
},


/**
* @method _addItemToGroup
* @description Adds a menu item to a group.
* @private
* @param {Number} p_nGroupIndex Number indicating the group to which the =

* item belongs.
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the =
MenuItem=20
* instance to be added to the menu.
* @param {String} p_oItem String specifying the text of the item to be =
added=20
* to the menu.
* @param {Object} p_oItem Object literal containing a set of menu item=20
* configuration properties.
* @param {Number} p_nItemIndex Optional. Number indicating the index at=20
* which the menu item should be added.
* @return {YAHOO.widget.MenuItem}
*/
_addItemToGroup: function (p_nGroupIndex, p_oItem, p_nItemIndex) {

    var oItem,
        nGroupIndex,
        aGroup,
        oGroupItem,
        bAppend,
        oNextItemSibling,
        nItemIndex;

    function getNextItemSibling(p_aArray, p_nStartIndex) {

        return (p_aArray[p_nStartIndex] || getNextItemSibling(p_aArray,=20
                (p_nStartIndex+1)));

    }

    if (p_oItem instanceof this.ITEM_TYPE) {

        oItem =3D p_oItem;
        oItem.parent =3D this;

    }
    else if (typeof p_oItem =3D=3D "string") {

        oItem =3D new this.ITEM_TYPE(p_oItem, { parent: this });
   =20
    }
    else if (typeof p_oItem =3D=3D "object") {

        p_oItem.parent =3D this;

        oItem =3D new this.ITEM_TYPE(p_oItem.text, p_oItem);

    }


    if (oItem) {

        if (oItem.cfg.getProperty("selected")) {

            this.activeItem =3D oItem;
       =20
        }


        nGroupIndex =3D typeof p_nGroupIndex =3D=3D "number" ? =
p_nGroupIndex : 0;
        aGroup =3D this._getItemGroup(nGroupIndex);



        if (!aGroup) {

            aGroup =3D this._createItemGroup(nGroupIndex);

        }


        if (typeof p_nItemIndex =3D=3D "number") {

            bAppend =3D (p_nItemIndex >=3D aGroup.length);           =20


            if (aGroup[p_nItemIndex]) {
   =20
                aGroup.splice(p_nItemIndex, 0, oItem);
   =20
            }
            else {
   =20
                aGroup[p_nItemIndex] =3D oItem;
   =20
            }


            oGroupItem =3D aGroup[p_nItemIndex];

            if (oGroupItem) {

                if (bAppend && (!oGroupItem.element.parentNode ||=20
                        oGroupItem.element.parentNode.nodeType =3D=3D =
11)) {
       =20
                    this._aListElements[nGroupIndex].appendChild(
                        oGroupItem.element);
   =20
                }
                else {
   =20
                    oNextItemSibling =3D getNextItemSibling(aGroup,=20
                        (p_nItemIndex+1));
   =20
                    if (oNextItemSibling && =
(!oGroupItem.element.parentNode ||=20
                            oGroupItem.element.parentNode.nodeType =
=3D=3D 11)) {
           =20
                        this._aListElements[nGroupIndex].insertBefore(
                                oGroupItem.element,=20
                                oNextItemSibling.element);
       =20
                    }
   =20
                }
   =20

                oGroupItem.parent =3D this;
       =20
                this._subscribeToItemEvents(oGroupItem);
   =20
                this._configureSubmenu(oGroupItem);
               =20
                this._updateItemProperties(nGroupIndex);
       =20

                this.itemAddedEvent.fire(oGroupItem);
                this.changeContentEvent.fire();

                return oGroupItem;
   =20
            }

        }
        else {
   =20
            nItemIndex =3D aGroup.length;
   =20
            aGroup[nItemIndex] =3D oItem;

            oGroupItem =3D aGroup[nItemIndex];
   =20

            if (oGroupItem) {
   =20
                if (!Dom.isAncestor(this._aListElements[nGroupIndex],=20
                        oGroupItem.element)) {
   =20
                    this._aListElements[nGroupIndex].appendChild(
                        oGroupItem.element);
   =20
                }
   =20
                oGroupItem.element.setAttribute("groupindex", =
nGroupIndex);
                oGroupItem.element.setAttribute("index", nItemIndex);
       =20
                oGroupItem.parent =3D this;
   =20
                oGroupItem.index =3D nItemIndex;
                oGroupItem.groupIndex =3D nGroupIndex;
       =20
                this._subscribeToItemEvents(oGroupItem);
   =20
                this._configureSubmenu(oGroupItem);
   =20
                if (nItemIndex =3D=3D=3D 0) {
       =20
                    Dom.addClass(oGroupItem.element, "first-of-type");
       =20
                }

       =20

                this.itemAddedEvent.fire(oGroupItem);
                this.changeContentEvent.fire();

                return oGroupItem;
   =20
            }
   =20
        }

    }
   =20
},


/**
* @method _removeItemFromGroupByIndex
* @description Removes a menu item from a group by index.  Returns the =
menu=20
* item that was removed.
* @private
* @param {Number} p_nGroupIndex Number indicating the group to which the =
menu=20
* item belongs.
* @param {Number} p_nItemIndex Number indicating the index of the menu =
item=20
* to be removed.
* @return {YAHOO.widget.MenuItem}
*/
_removeItemFromGroupByIndex: function (p_nGroupIndex, p_nItemIndex) {

    var nGroupIndex =3D typeof p_nGroupIndex =3D=3D "number" ? =
p_nGroupIndex : 0,
        aGroup =3D this._getItemGroup(nGroupIndex),
        aArray,
        oItem,
        oUL;

    if (aGroup) {

        aArray =3D aGroup.splice(p_nItemIndex, 1);
        oItem =3D aArray[0];
   =20
        if (oItem) {
   =20
            // Update the index and className properties of each member  =
     =20
           =20
            this._updateItemProperties(nGroupIndex);
   =20
            if (aGroup.length =3D=3D=3D 0) {
   =20
                // Remove the UL
   =20
                oUL =3D this._aListElements[nGroupIndex];
   =20
                if (this.body && oUL) {
   =20
                    this.body.removeChild(oUL);
   =20
                }
   =20
                // Remove the group from the array of items
   =20
                this._aItemGroups.splice(nGroupIndex, 1);
   =20
   =20
                // Remove the UL from the array of ULs
   =20
                this._aListElements.splice(nGroupIndex, 1);
   =20
   =20
                /*
                     Assign the "first-of-type" class to the new first =
UL=20
                     in the collection
                */
   =20
                oUL =3D this._aListElements[0];
   =20
                if (oUL) {
   =20
                    Dom.addClass(oUL, "first-of-type");
   =20
                }           =20
   =20
            }
   =20

            this.itemRemovedEvent.fire(oItem);
            this.changeContentEvent.fire();


            // Return a reference to the item that was removed
       =20
            return oItem;
   =20
        }

    }
   =20
},


/**
* @method _removeItemFromGroupByValue
* @description Removes a menu item from a group by reference.  Returns =
the=20
* menu item that was removed.
* @private
* @param {Number} p_nGroupIndex Number indicating the group to which the
* menu item belongs.
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the =
MenuItem=20
* instance to be removed.
* @return {YAHOO.widget.MenuItem}
*/   =20
_removeItemFromGroupByValue: function (p_nGroupIndex, p_oItem) {

    var aGroup =3D this._getItemGroup(p_nGroupIndex),
        nItems,
        nItemIndex,
        i;

    if (aGroup) {

        nItems =3D aGroup.length;
        nItemIndex =3D -1;
   =20
        if (nItems > 0) {
   =20
            i =3D nItems-1;
       =20
            do {
       =20
                if (aGroup[i] =3D=3D p_oItem) {
       =20
                    nItemIndex =3D i;
                    break;   =20
       =20
                }
       =20
            }
            while(i--);
       =20
            if (nItemIndex > -1) {
       =20
                return (this._removeItemFromGroupByIndex(p_nGroupIndex,=20
                            nItemIndex));
       =20
            }
   =20
        }
   =20
    }

},


/**
* @method _updateItemProperties
* @description Updates the "index," "groupindex," and "className" =
properties=20
* of the menu items in the specified group.=20
* @private
* @param {Number} p_nGroupIndex Number indicating the group of items to =
update.
*/
_updateItemProperties: function (p_nGroupIndex) {

    var aGroup =3D this._getItemGroup(p_nGroupIndex),
        nItems =3D aGroup.length,
        oItem,
        oLI,
        i;


    if (nItems > 0) {

        i =3D nItems - 1;

        // Update the index and className properties of each member
   =20
        do {

            oItem =3D aGroup[i];

            if (oItem) {
   =20
                oLI =3D oItem.element;

                oItem.index =3D i;
                oItem.groupIndex =3D p_nGroupIndex;

                oLI.setAttribute("groupindex", p_nGroupIndex);
                oLI.setAttribute("index", i);

                Dom.removeClass(oLI, "first-of-type");

            }
   =20
        }
        while(i--);


        if (oLI) {

            Dom.addClass(oLI, "first-of-type");

        }

    }

},


/**
* @method _createItemGroup
* @description Creates a new menu item group (array) and its associated=20
* <code>&#60;ul&#62;</code> element. Returns an aray of menu item =
groups.
* @private
* @param {Number} p_nIndex Number indicating the group to create.
* @return {Array}
*/
_createItemGroup: function (p_nIndex) {

    var oUL;

    if (!this._aItemGroups[p_nIndex]) {

        this._aItemGroups[p_nIndex] =3D [];

        oUL =3D document.createElement("ul");

        this._aListElements[p_nIndex] =3D oUL;

        return this._aItemGroups[p_nIndex];

    }

},


/**
* @method _getItemGroup
* @description Returns the menu item group at the specified index.
* @private
* @param {Number} p_nIndex Number indicating the index of the menu item =
group=20
* to be retrieved.
* @return {Array}
*/
_getItemGroup: function (p_nIndex) {

    var nIndex =3D ((typeof p_nIndex =3D=3D "number") ? p_nIndex : 0);

    return this._aItemGroups[nIndex];

},


/**
* @method _configureSubmenu
* @description Subscribes the menu item's submenu to its parent menu's =
events.
* @private
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the =
MenuItem=20
* instance with the submenu to be configured.
*/
_configureSubmenu: function (p_oItem) {

    var oSubmenu =3D p_oItem.cfg.getProperty("submenu");

    if (oSubmenu) {
           =20
        /*
            Listen for configuration changes to the parent menu=20
            so they they can be applied to the submenu.
        */

        =
this.cfg.configChangedEvent.subscribe(this._onParentMenuConfigChange,=20
                oSubmenu, true);

        this.renderEvent.subscribe(this._onParentMenuRender, oSubmenu, =
true);

        oSubmenu.beforeShowEvent.subscribe(this._onSubmenuBeforeShow);

    }

},




/**
* @method _subscribeToItemEvents
* @description Subscribes a menu to a menu item's event.
* @private
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the =
MenuItem=20
* instance whose events should be subscribed to.
*/
_subscribeToItemEvents: function (p_oItem) {

    p_oItem.focusEvent.subscribe(this._onMenuItemFocus);

    p_oItem.blurEvent.subscribe(this._onMenuItemBlur);

    p_oItem.destroyEvent.subscribe(this._onMenuItemDestroy, p_oItem, =
this);

    =
p_oItem.cfg.configChangedEvent.subscribe(this._onMenuItemConfigChange,
        p_oItem, this);

},


/**
* @method _onVisibleChange
* @description Change event handler for the the menu's "visible" =
configuration
* property.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onVisibleChange: function (p_sType, p_aArgs) {

    var bVisible =3D p_aArgs[0];
   =20
    if (bVisible) {

        Dom.addClass(this.element, "visible");

    }
    else {

        Dom.removeClass(this.element, "visible");

    }

},


/**
* @method _cancelHideDelay
* @description Cancels the call to "hideMenu."
* @private
*/
_cancelHideDelay: function () {

    var oRoot =3D this.getRoot();

    if (oRoot._nHideDelayId) {

        window.clearTimeout(oRoot._nHideDelayId);

    }

},


/**
* @method _execHideDelay
* @description Hides the menu after the number of milliseconds specified =
by=20
* the "hidedelay" configuration property.
* @private
*/
_execHideDelay: function () {

    this._cancelHideDelay();

    var oRoot =3D this.getRoot(),
        me =3D this;

    function hideMenu() {
   =20
        if (oRoot.activeItem) {

            oRoot.clearActiveItem();

        }

        if (oRoot =3D=3D me && !(me instanceof YAHOO.widget.MenuBar) &&=20
            me.cfg.getProperty("position") =3D=3D "dynamic") {

            me.hide();
       =20
        }
   =20
    }


    oRoot._nHideDelayId =3D=20
        window.setTimeout(hideMenu, oRoot.cfg.getProperty("hidedelay"));

},


/**
* @method _cancelShowDelay
* @description Cancels the call to the "showMenu."
* @private
*/
_cancelShowDelay: function () {

    var oRoot =3D this.getRoot();

    if (oRoot._nShowDelayId) {

        window.clearTimeout(oRoot._nShowDelayId);

    }

},


/**
* @method _execShowDelay
* @description Shows the menu after the number of milliseconds specified =
by=20
* the "showdelay" configuration property have ellapsed.
* @private
* @param {YAHOO.widget.Menu} p_oMenu Object specifying the menu that =
should=20
* be made visible.
*/
_execShowDelay: function (p_oMenu) {

    var oRoot =3D this.getRoot();

    function showMenu() {

        if (p_oMenu.parent.cfg.getProperty("selected")) {

            p_oMenu.show();

        }

    }


    oRoot._nShowDelayId =3D=20
        window.setTimeout(showMenu, oRoot.cfg.getProperty("showdelay"));

},


/**
* @method _execSubmenuHideDelay
* @description Hides a submenu after the number of milliseconds =
specified by=20
* the "submenuhidedelay" configuration property have ellapsed.
* @private
* @param {YAHOO.widget.Menu} p_oSubmenu Object specifying the submenu =
that =20
* should be hidden.
* @param {Number} p_nMouseX The x coordinate of the mouse when it left=20
* the specified submenu's parent menu item.
* @param {Number} p_nHideDelay The number of milliseconds that should =
ellapse
* before the submenu is hidden.
*/
_execSubmenuHideDelay: function (p_oSubmenu, p_nMouseX, p_nHideDelay) {

    var me =3D this;

    p_oSubmenu._nSubmenuHideDelayId =3D window.setTimeout(function () {

        if (me._nCurrentMouseX > (p_nMouseX + 10)) {

            p_oSubmenu._nSubmenuHideDelayId =3D =
window.setTimeout(function () {
       =20
                p_oSubmenu.hide();

            }, p_nHideDelay);

        }
        else {

            p_oSubmenu.hide();
       =20
        }

    }, 50);

},



// Protected methods


/**
* @method _disableScrollHeader
* @description Disables the header used for scrolling the body of the =
menu.
* @protected
*/
_disableScrollHeader: function () {

    if (!this._bHeaderDisabled) {

        Dom.addClass(this.header, "topscrollbar_disabled");
        this._bHeaderDisabled =3D true;

    }

},


/**
* @method _disableScrollFooter
* @description Disables the footer used for scrolling the body of the =
menu.
* @protected
*/
_disableScrollFooter: function () {

    if (!this._bFooterDisabled) {

        Dom.addClass(this.footer, "bottomscrollbar_disabled");
        this._bFooterDisabled =3D true;

    }

},


/**
* @method _enableScrollHeader
* @description Enables the header used for scrolling the body of the =
menu.
* @protected
*/
_enableScrollHeader: function () {

    if (this._bHeaderDisabled) {

        Dom.removeClass(this.header, "topscrollbar_disabled");
        this._bHeaderDisabled =3D false;

    }

},


/**
* @method _enableScrollFooter
* @description Enables the footer used for scrolling the body of the =
menu.
* @protected
*/
_enableScrollFooter: function () {

    if (this._bFooterDisabled) {

        Dom.removeClass(this.footer, "bottomscrollbar_disabled");
        this._bFooterDisabled =3D false;

    }

},


/**
* @method _onMouseOver
* @description "mouseover" event handler for the menu.
* @protected
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onMouseOver: function (p_sType, p_aArgs) {

    if (this._bStopMouseEventHandlers) {
   =20
        return false;
   =20
    }


    var oEvent =3D p_aArgs[0],
        oItem =3D p_aArgs[1],
        oTarget =3D Event.getTarget(oEvent),
        oParentMenu,
        nShowDelay,
        bShowDelay,
        oActiveItem,
        oItemCfg,
        oSubmenu;


    if (!this._bHandledMouseOverEvent && (oTarget =3D=3D this.element || =

        Dom.isAncestor(this.element, oTarget))) {

        // Menu mouseover logic

        this._nCurrentMouseX =3D 0;

        Event.on(this.element, "mousemove", this._onMouseMove, this, =
true);


		if (!Dom.isAncestor(oItem.element, Event.getRelatedTarget(oEvent))) {

        	this.clearActiveItem();
       =20
        }


        if (this.parent && this._nSubmenuHideDelayId) {

            window.clearTimeout(this._nSubmenuHideDelayId);

            this.parent.cfg.setProperty("selected", true);

            oParentMenu =3D this.parent.parent;

            oParentMenu._bHandledMouseOutEvent =3D true;
            oParentMenu._bHandledMouseOverEvent =3D false;

        }


        this._bHandledMouseOverEvent =3D true;
        this._bHandledMouseOutEvent =3D false;
   =20
    }


    if (oItem && !oItem.handledMouseOverEvent &&=20
        !oItem.cfg.getProperty("disabled") &&=20
        (oTarget =3D=3D oItem.element || Dom.isAncestor(oItem.element, =
oTarget))) {

        // Menu Item mouseover logic

        nShowDelay =3D this.cfg.getProperty("showdelay");
        bShowDelay =3D (nShowDelay > 0);


        if (bShowDelay) {
       =20
            this._cancelShowDelay();
       =20
        }


        oActiveItem =3D this.activeItem;
   =20
        if (oActiveItem) {
   =20
            oActiveItem.cfg.setProperty("selected", false);
   =20
        }


        oItemCfg =3D oItem.cfg;
   =20
        // Select and focus the current menu item
   =20
        oItemCfg.setProperty("selected", true);


        if (this.hasFocus()) {
       =20
            oItem.focus();
       =20
        }


        if (this.cfg.getProperty("autosubmenudisplay")) {

            // Show the submenu this menu item

            oSubmenu =3D oItemCfg.getProperty("submenu");
       =20
            if (oSubmenu) {
       =20
                if (bShowDelay) {

                    this._execShowDelay(oSubmenu);
       =20
                }
                else {

                    oSubmenu.show();

                }

            }

        }                       =20

        oItem.handledMouseOverEvent =3D true;
        oItem.handledMouseOutEvent =3D false;

    }

},


/**
* @method _onMouseOut
* @description "mouseout" event handler for the menu.
* @protected
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onMouseOut: function (p_sType, p_aArgs) {

    if (this._bStopMouseEventHandlers) {
   =20
        return false;
   =20
    }


    var oEvent =3D p_aArgs[0],
        oItem =3D p_aArgs[1],
        oRelatedTarget =3D Event.getRelatedTarget(oEvent),
        bMovingToSubmenu =3D false,
        oItemCfg,
        oSubmenu,
        nSubmenuHideDelay,
        nShowDelay;


    if (oItem && !oItem.cfg.getProperty("disabled")) {

        oItemCfg =3D oItem.cfg;
        oSubmenu =3D oItemCfg.getProperty("submenu");


        if (oSubmenu && (oRelatedTarget =3D=3D oSubmenu.element ||
                Dom.isAncestor(oSubmenu.element, oRelatedTarget))) {

            bMovingToSubmenu =3D true;

        }


        if (!oItem.handledMouseOutEvent && ((oRelatedTarget !=3D =
oItem.element && =20
            !Dom.isAncestor(oItem.element, oRelatedTarget)) ||=20
            bMovingToSubmenu)) {

            // Menu Item mouseout logic

            if (!bMovingToSubmenu) {

                oItem.cfg.setProperty("selected", false);


                if (oSubmenu) {

                    nSubmenuHideDelay =3D=20
                        this.cfg.getProperty("submenuhidedelay");

                    nShowDelay =3D this.cfg.getProperty("showdelay");

                    if (!(this instanceof YAHOO.widget.MenuBar) &&=20
                        nSubmenuHideDelay > 0 &&=20
                        nShowDelay >=3D nSubmenuHideDelay) {

                        this._execSubmenuHideDelay(oSubmenu,=20
                                Event.getPageX(oEvent),
                                nSubmenuHideDelay);

                    }
                    else {

                        oSubmenu.hide();

                    }

                }

            }


            oItem.handledMouseOutEvent =3D true;
            oItem.handledMouseOverEvent =3D false;
   =20
        }

    }


    if (!this._bHandledMouseOutEvent && ((oRelatedTarget !=3D =
this.element && =20
        !Dom.isAncestor(this.element, oRelatedTarget)) || =
bMovingToSubmenu)) {

        // Menu mouseout logic

        Event.removeListener(this.element, "mousemove", =
this._onMouseMove);

        this._nCurrentMouseX =3D Event.getPageX(oEvent);

        this._bHandledMouseOutEvent =3D true;
        this._bHandledMouseOverEvent =3D false;

    }

},


/**
* @method _onMouseMove
* @description "click" event handler for the menu.
* @protected
* @param {Event} p_oEvent Object representing the DOM event object =
passed=20
* back by the event utility (YAHOO.util.Event).
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that=20
* fired the event.
*/
_onMouseMove: function (p_oEvent, p_oMenu) {

    if (this._bStopMouseEventHandlers) {
   =20
        return false;
   =20
    }

    this._nCurrentMouseX =3D Event.getPageX(p_oEvent);

},


/**
* @method _onClick
* @description "click" event handler for the menu.
* @protected
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onClick: function (p_sType, p_aArgs) {

	var Event =3D YAHOO.util.Event,
		Dom =3D YAHOO.util.Dom,
		oEvent =3D p_aArgs[0],
		oItem =3D p_aArgs[1],
		oSubmenu,
		bInMenuAnchor =3D false,
		oRoot,
		sId,
		sURL,
		nHashPos,
		nLen;


	if (oItem) {
=09
		if (oItem.cfg.getProperty("disabled")) {
	=09
			Event.preventDefault(oEvent);

		}
		else {

			oSubmenu =3D oItem.cfg.getProperty("submenu");
=09
		=09
			/*
				 Check if the URL of the anchor is pointing to an element that is=20
				 a child of the menu.
			*/
		=09
			sURL =3D oItem.cfg.getProperty("url");

	=09
			if (sURL) {
=09
				nHashPos =3D sURL.indexOf("#");
=09
				nLen =3D sURL.length;
=09
=09
				if (nHashPos !=3D -1) {
=09
					sURL =3D sURL.substr(nHashPos, nLen);
	=09
					nLen =3D sURL.length;
=09
=09
					if (nLen > 1) {
=09
						sId =3D sURL.substr(1, nLen);
=09
						bInMenuAnchor =3D Dom.isAncestor(this.element, sId);
					=09
					}
					else if (nLen =3D=3D=3D 1) {
=09
						bInMenuAnchor =3D true;
				=09
					}
=09
				}
		=09
			}


=09
			if (bInMenuAnchor && !oItem.cfg.getProperty("target")) {
=09
				Event.preventDefault(oEvent);
			=09

				if (UA.webkit) {
			=09
					oItem.focus();
			=09
				}
				else {

					oItem.focusEvent.fire();
			=09
				}
		=09
			}
=09
=09
			if (!oSubmenu) {
=09
				oRoot =3D this.getRoot();
			=09
				if (oRoot instanceof YAHOO.widget.MenuBar ||=20
					oRoot.cfg.getProperty("position") =3D=3D "static") {
=09
					oRoot.clearActiveItem();
=09
				}
				else {
=09
					oRoot.hide();
			=09
				}
=09
			}
		=09
		}
=09
	}

},


/**
* @method _onKeyDown
* @description "keydown" event handler for the menu.
* @protected
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onKeyDown: function (p_sType, p_aArgs) {

    var oEvent =3D p_aArgs[0],
        oItem =3D p_aArgs[1],
        me =3D this,
        oSubmenu,
        oItemCfg,
        oParentItem,
        oRoot,
        oNextItem,
        oBody,
        nBodyScrollTop,
        nBodyOffsetHeight,
        aItems,
        nItems,
        nNextItemOffsetTop,
        nScrollTarget,
        oParentMenu;


    /*
        This function is called to prevent a bug in Firefox.  In =
Firefox,
        moving a DOM element into a stationary mouse pointer will cause =
the=20
        browser to fire mouse events.  This can result in the menu mouse
        event handlers being called uncessarily, especially when menus =
are=20
        moved into a stationary mouse pointer as a result of a=20
        key event handler.
    */
    function stopMouseEventHandlers() {

        me._bStopMouseEventHandlers =3D true;
       =20
        window.setTimeout(function () {
       =20
            me._bStopMouseEventHandlers =3D false;
       =20
        }, 10);

    }


    if (oItem && !oItem.cfg.getProperty("disabled")) {

        oItemCfg =3D oItem.cfg;
        oParentItem =3D this.parent;

        switch(oEvent.keyCode) {
   =20
            case 38:    // Up arrow
            case 40:    // Down arrow
   =20
                oNextItem =3D (oEvent.keyCode =3D=3D 38) ?=20
                    oItem.getPreviousEnabledSibling() :=20
                    oItem.getNextEnabledSibling();
       =20
                if (oNextItem) {

                    this.clearActiveItem();

                    oNextItem.cfg.setProperty("selected", true);
                    oNextItem.focus();


                    if (this.cfg.getProperty("maxheight") > 0) {

                        oBody =3D this.body;
                        nBodyScrollTop =3D oBody.scrollTop;
                        nBodyOffsetHeight =3D oBody.offsetHeight;
                        aItems =3D this.getItems();
                        nItems =3D aItems.length - 1;
                        nNextItemOffsetTop =3D =
oNextItem.element.offsetTop;


                        if (oEvent.keyCode =3D=3D 40 ) {    // Down
                      =20
                            if (nNextItemOffsetTop >=3D =
(nBodyOffsetHeight + nBodyScrollTop)) {

                                oBody.scrollTop =3D nNextItemOffsetTop - =
nBodyOffsetHeight;

                            }
                            else if (nNextItemOffsetTop <=3D =
nBodyScrollTop) {
                           =20
                                oBody.scrollTop =3D 0;
                           =20
                            }


                            if (oNextItem =3D=3D aItems[nItems]) {

                                oBody.scrollTop =3D =
oNextItem.element.offsetTop;

                            }

                        }
                        else {  // Up

                            if (nNextItemOffsetTop <=3D nBodyScrollTop) =
{

                                oBody.scrollTop =3D nNextItemOffsetTop - =
oNextItem.element.offsetHeight;
                           =20
                            }
                            else if (nNextItemOffsetTop >=3D =
(nBodyScrollTop + nBodyOffsetHeight)) {
                           =20
                                oBody.scrollTop =3D nNextItemOffsetTop;
                           =20
                            }


                            if (oNextItem =3D=3D aItems[0]) {
                           =20
                                oBody.scrollTop =3D 0;
                           =20
                            }

                        }


                        nBodyScrollTop =3D oBody.scrollTop;
                        nScrollTarget =3D oBody.scrollHeight - =
oBody.offsetHeight;

                        if (nBodyScrollTop =3D=3D=3D 0) {

                            this._disableScrollHeader();
                            this._enableScrollFooter();

                        }
                        else if (nBodyScrollTop =3D=3D nScrollTarget) {

                             this._enableScrollHeader();
                             this._disableScrollFooter();

                        }
                        else {

                            this._enableScrollHeader();
                            this._enableScrollFooter();

                        }

                    }

                }

   =20
                Event.preventDefault(oEvent);

                stopMouseEventHandlers();
   =20
            break;
           =20
   =20
            case 39:    // Right arrow
   =20
                oSubmenu =3D oItemCfg.getProperty("submenu");
   =20
                if (oSubmenu) {
   =20
                    if (!oItemCfg.getProperty("selected")) {
       =20
                        oItemCfg.setProperty("selected", true);
       =20
                    }
   =20
                    oSubmenu.show();
                    oSubmenu.setInitialFocus();
                    oSubmenu.setInitialSelection();
   =20
                }
                else {
   =20
                    oRoot =3D this.getRoot();
                   =20
                    if (oRoot instanceof YAHOO.widget.MenuBar) {
   =20
                        oNextItem =3D =
oRoot.activeItem.getNextEnabledSibling();
   =20
                        if (oNextItem) {
                       =20
                            oRoot.clearActiveItem();
   =20
                            oNextItem.cfg.setProperty("selected", true);
   =20
                            oSubmenu =3D =
oNextItem.cfg.getProperty("submenu");
   =20
                            if (oSubmenu) {
   =20
                                oSubmenu.show();
                           =20
                            }
   =20
                            oNextItem.focus();
                       =20
                        }
                   =20
                    }
               =20
                }
   =20
   =20
                Event.preventDefault(oEvent);

                stopMouseEventHandlers();

            break;
   =20
   =20
            case 37:    // Left arrow
   =20
                if (oParentItem) {
   =20
                    oParentMenu =3D oParentItem.parent;
   =20
                    if (oParentMenu instanceof YAHOO.widget.MenuBar) {
   =20
                        oNextItem =3D=20
                            =
oParentMenu.activeItem.getPreviousEnabledSibling();
   =20
                        if (oNextItem) {
                       =20
                            oParentMenu.clearActiveItem();
   =20
                            oNextItem.cfg.setProperty("selected", true);
   =20
                            oSubmenu =3D =
oNextItem.cfg.getProperty("submenu");
   =20
                            if (oSubmenu) {
                           =20
                                oSubmenu.show();
                           =20
                            }
   =20
                            oNextItem.focus();
                       =20
                        }=20
                   =20
                    }
                    else {
   =20
                        this.hide();
   =20
                        oParentItem.focus();
                   =20
                    }
   =20
                }
   =20
                Event.preventDefault(oEvent);

                stopMouseEventHandlers();

            break;       =20
   =20
        }


    }


    if (oEvent.keyCode =3D=3D 27) { // Esc key

        if (this.cfg.getProperty("position") =3D=3D "dynamic") {
       =20
            this.hide();

            if (this.parent) {

                this.parent.focus();
           =20
            }

        }
        else if (this.activeItem) {

            oSubmenu =3D this.activeItem.cfg.getProperty("submenu");

            if (oSubmenu && oSubmenu.cfg.getProperty("visible")) {
           =20
                oSubmenu.hide();
                this.activeItem.focus();
           =20
            }
            else {

                this.activeItem.blur();
                this.activeItem.cfg.setProperty("selected", false);
       =20
            }
       =20
        }


        Event.preventDefault(oEvent);
   =20
    }
   =20
},


/**
* @method _onKeyPress
* @description "keypress" event handler for a Menu instance.
* @protected
* @param {String} p_sType The name of the event that was fired.
* @param {Array} p_aArgs Collection of arguments sent when the event=20
* was fired.
*/
_onKeyPress: function (p_sType, p_aArgs) {
   =20
    var oEvent =3D p_aArgs[0];


    if (oEvent.keyCode =3D=3D 40 || oEvent.keyCode =3D=3D 38) {

        Event.preventDefault(oEvent);

    }

},


/**
* @method _onYChange
* @description "y" event handler for a Menu instance.
* @protected
* @param {String} p_sType The name of the event that was fired.
* @param {Array} p_aArgs Collection of arguments sent when the event=20
* was fired.
*/
_onYChange: function (p_sType, p_aArgs) {

    var oParent =3D this.parent,
        nScrollTop,
        oIFrame,
        nY;


    if (oParent) {

        nScrollTop =3D oParent.parent.body.scrollTop;


        if (nScrollTop > 0) {
   =20
            nY =3D (this.cfg.getProperty("y") - nScrollTop);
           =20
            Dom.setY(this.element, nY);

            oIFrame =3D this.iframe;           =20
   =20

            if (oIFrame) {
   =20
                Dom.setY(oIFrame, nY);
   =20
            }
           =20
            this.cfg.setProperty("y", nY, true);
       =20
        }
   =20
    }

},


/**
* @method _onScrollTargetMouseOver
* @description "mouseover" event handler for the menu's "header" and =
"footer"=20
* elements.  Used to scroll the body of the menu up and down when the=20
* menu's "maxheight" configuration property is set to a value greater =
than 0.
* @protected
* @param {Event} p_oEvent Object representing the DOM event object =
passed=20
* back by the event utility (YAHOO.util.Event).
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that=20
* fired the event.
*/
_onScrollTargetMouseOver: function (p_oEvent, p_oMenu) {

    this._cancelHideDelay();

    var oTarget =3D Event.getTarget(p_oEvent),
        oBody =3D this.body,
        me =3D this,
        nScrollIncrement =3D this.cfg.getProperty("scrollincrement"),
        nScrollTarget,
        fnScrollFunction;


    function scrollBodyDown() {

        var nScrollTop =3D oBody.scrollTop;


        if (nScrollTop < nScrollTarget) {

            oBody.scrollTop =3D (nScrollTop + nScrollIncrement);

            me._enableScrollHeader();

        }
        else {

            oBody.scrollTop =3D nScrollTarget;
           =20
            window.clearInterval(me._nBodyScrollId);

            me._disableScrollFooter();

        }

    }


    function scrollBodyUp() {

        var nScrollTop =3D oBody.scrollTop;


        if (nScrollTop > 0) {

            oBody.scrollTop =3D (nScrollTop - nScrollIncrement);

            me._enableScrollFooter();

        }
        else {

            oBody.scrollTop =3D 0;
           =20
            window.clearInterval(me._nBodyScrollId);

            me._disableScrollHeader();

        }

    }

   =20
    if (Dom.hasClass(oTarget, "hd")) {

        fnScrollFunction =3D scrollBodyUp;
   =20
    }
    else {

        nScrollTarget =3D oBody.scrollHeight - oBody.offsetHeight;

        fnScrollFunction =3D scrollBodyDown;
   =20
    }


    this._nBodyScrollId =3D window.setInterval(fnScrollFunction, 10);

},


/**
* @method _onScrollTargetMouseOut
* @description "mouseout" event handler for the menu's "header" and =
"footer"=20
* elements.  Used to stop scrolling the body of the menu up and down =
when the=20
* menu's "maxheight" configuration property is set to a value greater =
than 0.
* @protected
* @param {Event} p_oEvent Object representing the DOM event object =
passed=20
* back by the event utility (YAHOO.util.Event).
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that=20
* fired the event.
*/
_onScrollTargetMouseOut: function (p_oEvent, p_oMenu) {

    window.clearInterval(this._nBodyScrollId);

    this._cancelHideDelay();

},



// Private methods


/**
* @method _onInit
* @description "init" event handler for the menu.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onInit: function (p_sType, p_aArgs) {

    this.cfg.subscribeToConfigEvent("visible", this._onVisibleChange);

    var bRootMenu =3D !this.parent,
        bLazyLoad =3D this.lazyLoad;


    /*
        Automatically initialize a menu's subtree if:

        1) This is the root menu and lazyload is off
       =20
        2) This is the root menu, lazyload is on, but the menu is=20
           already visible

        3) This menu is a submenu and lazyload is off
    */



    if (((bRootMenu && !bLazyLoad) ||=20
        (bRootMenu && (this.cfg.getProperty("visible") ||=20
        this.cfg.getProperty("position") =3D=3D "static")) ||=20
        (!bRootMenu && !bLazyLoad)) && this.getItemGroups().length =
=3D=3D=3D 0) {

        if (this.srcElement) {

            this._initSubTree();
       =20
        }


        if (this.itemData) {

            this.addItems(this.itemData);

        }
   =20
    }
    else if (bLazyLoad) {

        this.cfg.fireQueue();
   =20
    }

},


/**
* @method _onBeforeRender
* @description "beforerender" event handler for the menu.  Appends all =
of the=20
* <code>&#60;ul&#62;</code>, <code>&#60;li&#62;</code> and their =
accompanying=20
* title elements to the body element of the menu.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onBeforeRender: function (p_sType, p_aArgs) {

    var oEl =3D this.element,
        nListElements =3D this._aListElements.length,
        bFirstList =3D true,
        i =3D 0,
        oUL,
        oGroupTitle;

    if (nListElements > 0) {

        do {

            oUL =3D this._aListElements[i];

            if (oUL) {

                if (bFirstList) {
       =20
                    Dom.addClass(oUL, "first-of-type");
                    bFirstList =3D false;
       =20
                }


                if (!Dom.isAncestor(oEl, oUL)) {

                    this.appendToBody(oUL);

                }


                oGroupTitle =3D this._aGroupTitleElements[i];

                if (oGroupTitle) {

                    if (!Dom.isAncestor(oEl, oGroupTitle)) {

                        oUL.parentNode.insertBefore(oGroupTitle, oUL);

                    }


                    Dom.addClass(oUL, "hastitle");

                }

            }

            i++;

        }
        while(i < nListElements);

    }

},


/**
* @method _onRender
* @description "render" event handler for the menu.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onRender: function (p_sType, p_aArgs) {

    if (this.cfg.getProperty("position") =3D=3D "dynamic") {=20

        if (!this.cfg.getProperty("visible")) {

            this.positionOffScreen();

        }
   =20
    }

},





/**
* @method _onBeforeShow
* @description "beforeshow" event handler for the menu.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onBeforeShow: function (p_sType, p_aArgs) {

    var nOptions,
        n,
        nViewportHeight,
        oRegion,
        oSrcElement;


    if (this.lazyLoad && this.getItemGroups().length =3D=3D=3D 0) {

        if (this.srcElement) {
       =20
            this._initSubTree();

        }


        if (this.itemData) {

            if (this.parent && this.parent.parent &&=20
                this.parent.parent.srcElement &&=20
                this.parent.parent.srcElement.tagName.toUpperCase() =
=3D=3D=20
                "SELECT") {

                nOptions =3D this.itemData.length;
   =20
                for(n=3D0; n<nOptions; n++) {

                    if (this.itemData[n].tagName) {

                        this.addItem((new =
this.ITEM_TYPE(this.itemData[n])));
   =20
                    }
   =20
                }
           =20
            }
            else {

                this.addItems(this.itemData);
           =20
            }
       =20
        }


        oSrcElement =3D this.srcElement;

        if (oSrcElement) {

            if (oSrcElement.tagName.toUpperCase() =3D=3D "SELECT") {

                if (Dom.inDocument(oSrcElement)) {

                    this.render(oSrcElement.parentNode);
               =20
                }
                else {
               =20
                    this.render(this.cfg.getProperty("container"));
               =20
                }

            }
            else {

                this.render();

            }

        }
        else {

            if (this.parent) {

                this.render(this.parent.element);           =20

            }
            else {

                this.render(this.cfg.getProperty("container"));

            }               =20

        }

    }


    var nMaxHeight =3D this.cfg.getProperty("maxheight"),
        nMinScrollHeight =3D this.cfg.getProperty("minscrollheight"),
        bDynamicPos =3D this.cfg.getProperty("position") =3D=3D =
"dynamic";


    if (!this.parent && bDynamicPos) {

        this.cfg.refireEvent("xy");
  =20
    }


    function clearMaxHeight() {
   =20
        this.cfg.setProperty("maxheight", 0);
   =20
        this.hideEvent.unsubscribe(clearMaxHeight);
   =20
    }


    if (!(this instanceof YAHOO.widget.MenuBar) && bDynamicPos) {


        if (nMaxHeight =3D=3D=3D 0) {

            nViewportHeight =3D Dom.getViewportHeight();
   =20
   =20
            if (this.parent &&=20
                this.parent.parent instanceof YAHOO.widget.MenuBar) {
              =20
                oRegion =3D =
YAHOO.util.Region.getRegion(this.parent.element);
               =20
                nViewportHeight =3D (nViewportHeight - oRegion.bottom);
   =20
            }
   =20
   =20
            if (this.element.offsetHeight >=3D nViewportHeight) {
   =20
                nMaxHeight =3D (nViewportHeight - =
(Overlay.VIEWPORT_OFFSET * 2));

                if (nMaxHeight < nMinScrollHeight) {

                    nMaxHeight =3D nMinScrollHeight;
               =20
                }

                this.cfg.setProperty("maxheight", nMaxHeight);

                this.hideEvent.subscribe(clearMaxHeight);

            }
       =20
        }

    }

},


/**
* @method _onShow
* @description "show" event handler for the menu.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onShow: function (p_sType, p_aArgs) {

    var oParent =3D this.parent,
        oParentMenu,
        aParentAlignment,
        aAlignment;


    function disableAutoSubmenuDisplay(p_oEvent) {

        var oTarget;

        if (p_oEvent.type =3D=3D "mousedown" || (p_oEvent.type =3D=3D =
"keydown" &&=20
            p_oEvent.keyCode =3D=3D 27)) {

            /* =20
                Set the "autosubmenudisplay" to "false" if the user
                clicks outside the menu bar.
            */

            oTarget =3D Event.getTarget(p_oEvent);

            if (oTarget !=3D oParentMenu.element ||=20
                !Dom.isAncestor(oParentMenu.element, oTarget)) {

                oParentMenu.cfg.setProperty("autosubmenudisplay", =
false);

                Event.removeListener(document, "mousedown",=20
                        disableAutoSubmenuDisplay);

                Event.removeListener(document, "keydown",=20
                        disableAutoSubmenuDisplay);

            }
       =20
        }

    }


    if (oParent) {

        oParentMenu =3D oParent.parent;
        aParentAlignment =3D =
oParentMenu.cfg.getProperty("submenualignment");
        aAlignment =3D this.cfg.getProperty("submenualignment");


        if ((aParentAlignment[0] !=3D aAlignment[0]) &&
            (aParentAlignment[1] !=3D aAlignment[1])) {

            this.cfg.setProperty("submenualignment",=20
                [aParentAlignment[0], aParentAlignment[1]]);
       =20
        }


        if (!oParentMenu.cfg.getProperty("autosubmenudisplay") &&=20
            (oParentMenu instanceof YAHOO.widget.MenuBar ||=20
            oParentMenu.cfg.getProperty("position") =3D=3D "static")) {

            oParentMenu.cfg.setProperty("autosubmenudisplay", true);

            Event.on(document, "mousedown", disableAutoSubmenuDisplay);  =
                          =20
            Event.on(document, "keydown", disableAutoSubmenuDisplay);

        }

    }

},


/**
* @method _onBeforeHide
* @description "beforehide" event handler for the menu.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onBeforeHide: function (p_sType, p_aArgs) {

    var oActiveItem =3D this.activeItem,
        oConfig,
        oSubmenu;

    if (oActiveItem) {

        oConfig =3D oActiveItem.cfg;

        oConfig.setProperty("selected", false);

        oSubmenu =3D oConfig.getProperty("submenu");

        if (oSubmenu) {

            oSubmenu.hide();

        }

    }

    if (this.getRoot() =3D=3D this) {

        this.blur();
   =20
    }

},


/**
* @method _onParentMenuConfigChange
* @description "configchange" event handler for a submenu.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu =
that=20
* subscribed to the event.
*/
_onParentMenuConfigChange: function (p_sType, p_aArgs, p_oSubmenu) {
   =20
    var sPropertyName =3D p_aArgs[0][0],
        oPropertyValue =3D p_aArgs[0][1];

    switch(sPropertyName) {

        case "iframe":
        case "constraintoviewport":
        case "hidedelay":
        case "showdelay":
        case "submenuhidedelay":
        case "clicktohide":
        case "effect":
        case "classname":
        case "scrollincrement":
        case "minscrollheight":

            p_oSubmenu.cfg.setProperty(sPropertyName, oPropertyValue);
               =20
        break;       =20
       =20
    }
   =20
},


/**
* @method _onParentMenuRender
* @description "render" event handler for a submenu.  Renders a =20
* submenu in response to the firing of its parent's "render" event.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu =
that=20
* subscribed to the event.
*/
_onParentMenuRender: function (p_sType, p_aArgs, p_oSubmenu) {

    var oParentCfg =3D p_oSubmenu.parent.parent.cfg,

        oConfig =3D {

            constraintoviewport: =
oParentCfg.getProperty("constraintoviewport"),

            xy: [0,0],

            clicktohide: oParentCfg.getProperty("clicktohide"),
               =20
            effect: oParentCfg.getProperty("effect"),

            showdelay: oParentCfg.getProperty("showdelay"),
           =20
            hidedelay: oParentCfg.getProperty("hidedelay"),

            submenuhidedelay: =
oParentCfg.getProperty("submenuhidedelay"),

            classname: oParentCfg.getProperty("classname"),
           =20
            scrollincrement: oParentCfg.getProperty("scrollincrement"),
           =20
            minscrollheight: oParentCfg.getProperty("minscrollheight"),
           =20
            iframe: oParentCfg.getProperty("iframe")

        },
       =20
        oLI;


    p_oSubmenu.cfg.applyConfig(oConfig);


    if (!this.lazyLoad) {

        oLI =3D this.parent.element;

        if (this.element.parentNode =3D=3D oLI) {
   =20
            this.render();
   =20
        }
        else {

            this.render(oLI);
   =20
        }

    }
   =20
},


/**
* @method _onSubmenuBeforeShow
* @description "beforeshow" event handler for a submenu.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onSubmenuBeforeShow: function (p_sType, p_aArgs) {

    var oParent =3D this.parent,
        aAlignment =3D =
oParent.parent.cfg.getProperty("submenualignment");


    if (!this.cfg.getProperty("context")) {
   =20
        this.cfg.setProperty("context",=20
            [oParent.element, aAlignment[0], aAlignment[1]]);

    }
    else {

        this.align();
   =20
    }

},


/**
* @method _onMenuItemFocus
* @description "focus" event handler for the menu's items.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onMenuItemFocus: function (p_sType, p_aArgs) {

    this.parent.focusEvent.fire(this);

},


/**
* @method _onMenuItemBlur
* @description "blur" event handler for the menu's items.
* @private
* @param {String} p_sType String representing the name of the event=20
* that was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
_onMenuItemBlur: function (p_sType, p_aArgs) {

    this.parent.blurEvent.fire(this);

},


/**
* @method _onMenuItemDestroy
* @description "destroy" event handler for the menu's items.
* @private
* @param {String} p_sType String representing the name of the event=20
* that was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu =
item=20
* that fired the event.
*/
_onMenuItemDestroy: function (p_sType, p_aArgs, p_oItem) {

    this._removeItemFromGroupByValue(p_oItem.groupIndex, p_oItem);

},


/**
* @method _onMenuItemConfigChange
* @description "configchange" event handler for the menu's items.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu =
item=20
* that fired the event.
*/
_onMenuItemConfigChange: function (p_sType, p_aArgs, p_oItem) {

    var sPropertyName =3D p_aArgs[0][0],
        oPropertyValue =3D p_aArgs[0][1],
        oSubmenu;


    switch(sPropertyName) {

        case "selected":

            if (oPropertyValue =3D=3D=3D true) {

                this.activeItem =3D p_oItem;
           =20
            }

        break;

        case "submenu":

            oSubmenu =3D p_aArgs[0][1];

            if (oSubmenu) {

                this._configureSubmenu(p_oItem);

            }

        break;

    }

},



// Public event handlers for configuration properties


/**
* @method enforceConstraints
* @description The default event handler executed when the moveEvent is =
fired, =20
* if the "constraintoviewport" configuration property is set to true.
* @param {String} type The name of the event that was fired.
* @param {Array} args Collection of arguments sent when the=20
* event was fired.
* @param {Array} obj Array containing the current Menu instance=20
* and the item that fired the event.
*/
enforceConstraints: function (type, args, obj) {

	YAHOO.widget.Menu.superclass.enforceConstraints.apply(this, arguments);
=09
	var oParent =3D this.parent,
		oParentMenu,
		nParentMenuX,
		nNewX,
		nX;
=09
=09
	if (oParent) {
=09
		oParentMenu =3D oParent.parent;

		if (!(oParentMenu instanceof YAHOO.widget.MenuBar)) {
=09
			nParentMenuX =3D oParentMenu.cfg.getProperty("x");
			nX =3D this.cfg.getProperty("x");
	=09
=09
			if (nX < (nParentMenuX + oParent.element.offsetWidth)) {

				nNewX =3D (nParentMenuX - this.element.offsetWidth);
		=09
				this.cfg.setProperty("x",  nNewX, true);
				this.cfg.setProperty("xy", [nNewX, (this.cfg.getProperty("y"))], =
true);
		=09
			}
	=09
		}
=09
	}

},


/**
* @method configVisible
* @description Event handler for when the "visible" configuration =
property=20
* the menu changes.
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that=20
* fired the event.
*/
configVisible: function (p_sType, p_aArgs, p_oMenu) {

    var bVisible,
        sDisplay;

    if (this.cfg.getProperty("position") =3D=3D "dynamic") {

        Menu.superclass.configVisible.call(this, p_sType, p_aArgs, =
p_oMenu);

    }
    else {

        bVisible =3D p_aArgs[0];
        sDisplay =3D Dom.getStyle(this.element, "display");

        Dom.setStyle(this.element, "visibility", "visible");

        if (bVisible) {

            if (sDisplay !=3D "block") {
                this.beforeShowEvent.fire();
                Dom.setStyle(this.element, "display", "block");
                this.showEvent.fire();
            }
       =20
        }
        else {

			if (sDisplay =3D=3D "block") {
				this.beforeHideEvent.fire();
				Dom.setStyle(this.element, "display", "none");
				this.hideEvent.fire();
			}
       =20
        }

    }

},


/**
* @method configPosition
* @description Event handler for when the "position" configuration =
property=20
* of the menu changes.
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that=20
* fired the event.
*/
configPosition: function (p_sType, p_aArgs, p_oMenu) {

    var oElement =3D this.element,
        sCSSPosition =3D p_aArgs[0] =3D=3D "static" ? "static" : =
"absolute",
        oCfg =3D this.cfg,
        nZIndex;


    Dom.setStyle(oElement, "position", sCSSPosition);


    if (sCSSPosition =3D=3D "static") {

        // Statically positioned menus are visible by default
       =20
        Dom.setStyle(oElement, "display", "block");

        oCfg.setProperty("visible", true);

    }
    else {

        /*
            Even though the "visible" property is queued to=20
            "false" by default, we need to set the "visibility" property =
to=20
            "hidden" since Overlay's "configVisible" implementation =
checks the=20
            element's "visibility" style property before deciding =
whether=20
            or not to show an Overlay instance.
        */

        Dom.setStyle(oElement, "visibility", "hidden");
   =20
    }


    if (sCSSPosition =3D=3D "absolute") {

        nZIndex =3D oCfg.getProperty("zindex");

        if (!nZIndex || nZIndex =3D=3D=3D 0) {

            nZIndex =3D this.parent ?=20
                (this.parent.parent.cfg.getProperty("zindex") + 1) : 1;

            oCfg.setProperty("zindex", nZIndex);

        }

    }

},


/**
* @method configIframe
* @description Event handler for when the "iframe" configuration =
property of=20
* the menu changes.
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that=20
* fired the event.
*/
configIframe: function (p_sType, p_aArgs, p_oMenu) {   =20

    if (this.cfg.getProperty("position") =3D=3D "dynamic") {

        Menu.superclass.configIframe.call(this, p_sType, p_aArgs, =
p_oMenu);

    }

},


/**
* @method configHideDelay
* @description Event handler for when the "hidedelay" configuration =
property=20
* of the menu changes.
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that=20
* fired the event.
*/
configHideDelay: function (p_sType, p_aArgs, p_oMenu) {

    var nHideDelay =3D p_aArgs[0],
        oMouseOutEvent =3D this.mouseOutEvent,
        oMouseOverEvent =3D this.mouseOverEvent,
        oKeyDownEvent =3D this.keyDownEvent;

    if (nHideDelay > 0) {

        /*
            Only assign event handlers once. This way the user change=20
            the value for the hidedelay as many times as they want.
        */

        if (!this._bHideDelayEventHandlersAssigned) {

            oMouseOutEvent.subscribe(this._execHideDelay);
            oMouseOverEvent.subscribe(this._cancelHideDelay);
            oKeyDownEvent.subscribe(this._cancelHideDelay);

            this._bHideDelayEventHandlersAssigned =3D true;
       =20
        }

    }
    else {

        oMouseOutEvent.unsubscribe(this._execHideDelay);
        oMouseOverEvent.unsubscribe(this._cancelHideDelay);
        oKeyDownEvent.unsubscribe(this._cancelHideDelay);

        this._bHideDelayEventHandlersAssigned =3D false;

    }

},


/**
* @method configContainer
* @description Event handler for when the "container" configuration =
property=20
* of the menu changes.
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that=20
* fired the event.
*/
configContainer: function (p_sType, p_aArgs, p_oMenu) {

	var oElement =3D p_aArgs[0];

	if (typeof oElement =3D=3D 'string') {

        this.cfg.setProperty("container", =
document.getElementById(oElement),=20
                true);

	}

},


/**
* @method _setMaxHeight
* @description "renderEvent" handler used to defer the setting of the=20
* "maxheight" configuration property until the menu is rendered in lazy=20
* load scenarios.
* @param {String} p_sType The name of the event that was fired.
* @param {Array} p_aArgs Collection of arguments sent when the event=20
* was fired.
* @param {Number} p_nMaxHeight Number representing the value to set for =
the=20
* "maxheight" configuration property.
* @private
*/
_setMaxHeight: function (p_sType, p_aArgs, p_nMaxHeight) {

    this.cfg.setProperty("maxheight", p_nMaxHeight);
    this.renderEvent.unsubscribe(this._setMaxHeight);

},


/**
* @method configMaxHeight
* @description Event handler for when the "maxheight" configuration =
property of=20
* a Menu changes.
* @param {String} p_sType The name of the event that was fired.
* @param {Array} p_aArgs Collection of arguments sent when the event=20
* was fired.
* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired
* the event.
*/
configMaxHeight: function (p_sType, p_aArgs, p_oMenu) {

    var nMaxHeight =3D p_aArgs[0],
        oElement =3D this.element,
        oBody =3D this.body,
        oHeader =3D this.header,
        oFooter =3D this.footer,
        fnMouseOver =3D this._onScrollTargetMouseOver,
        fnMouseOut =3D this._onScrollTargetMouseOut,
        nMinScrollHeight =3D this.cfg.getProperty("minscrollheight"),
        nHeight,
        nOffsetWidth,
        sWidth;


    if (nMaxHeight !=3D=3D 0 && nMaxHeight < nMinScrollHeight) {
   =20
        nMaxHeight =3D nMinScrollHeight;
   =20
    }


    if (this.lazyLoad && !oBody) {

        this.renderEvent.unsubscribe(this._setMaxHeight);
   =20
        if (nMaxHeight > 0) {

            this.renderEvent.subscribe(this._setMaxHeight, nMaxHeight, =
this);

        }

        return;
   =20
    }


    Dom.setStyle(oBody, "height", "");
    Dom.removeClass(oBody, "yui-menu-body-scrolled");


    /*
        There is a bug in gecko-based browsers where an element whose=20
        "position" property is set to "absolute" and "overflow" property =
is set=20
        to "hidden" will not render at the correct width when its=20
        offsetParent's "position" property is also set to "absolute."  =
It is=20
        possible to work around this bug by specifying a value for the =
width=20
        property in addition to overflow.

		In IE it is also necessary to give the Menu a width when the =
scrollbars are=20
		rendered to prevent the Menu from rendering with a width that is 100% =
of
		the browser viewport.
    */

	var bSetWidth =3D ((UA.gecko && this.parent && this.parent.parent &&=20
        this.parent.parent.cfg.getProperty("position") =3D=3D "dynamic") =
|| UA.ie);


    if (bSetWidth) {

		if (!this.cfg.getProperty("width")) {

			nOffsetWidth =3D oElement.offsetWidth;
=09
			/*
				Measuring the difference of the offsetWidth before and after
				setting the "width" style attribute allows us to compute the=20
				about of padding and borders applied to the element, which in=20
				turn allows us to set the "width" property correctly.
			*/
		=09
			oElement.style.width =3D nOffsetWidth + "px";
=09
			sWidth =3D (nOffsetWidth - (oElement.offsetWidth - nOffsetWidth)) + =
"px";
=09
			this.cfg.setProperty("width", sWidth);
	=09
		}

    }


    if (!oHeader && !oFooter) {

        this.setHeader("&#32;");
        this.setFooter("&#32;");

        oHeader =3D this.header;
        oFooter =3D this.footer;

        Dom.addClass(oHeader, "topscrollbar");
        Dom.addClass(oFooter, "bottomscrollbar");
       =20
        oElement.insertBefore(oHeader, oBody);
        oElement.appendChild(oFooter);
   =20
    }


    nHeight =3D (nMaxHeight - (oHeader.offsetHeight + =
oHeader.offsetHeight));


    if (nHeight > 0 && (oBody.offsetHeight > nMaxHeight)) {

        Dom.addClass(oBody, "yui-menu-body-scrolled");
        Dom.setStyle(oBody, "height", (nHeight + "px"));

        Event.on(oHeader, "mouseover", fnMouseOver, this, true);
        Event.on(oHeader, "mouseout", fnMouseOut, this, true);
        Event.on(oFooter, "mouseover", fnMouseOver, this, true);
        Event.on(oFooter, "mouseout", fnMouseOut, this, true);

        this._disableScrollHeader();
        this._enableScrollFooter();

    }
    else if (oHeader && oFooter) {

		if (bSetWidth) {

			this.cfg.setProperty("width", "");
	=09
		}


        this._enableScrollHeader();
        this._enableScrollFooter();

        Event.removeListener(oHeader, "mouseover", fnMouseOver);
        Event.removeListener(oHeader, "mouseout", fnMouseOut);
        Event.removeListener(oFooter, "mouseover", fnMouseOver);
        Event.removeListener(oFooter, "mouseout", fnMouseOut);

        oElement.removeChild(oHeader);
        oElement.removeChild(oFooter);

        this.header =3D null;
        this.footer =3D null;
   =20
    }

    this.cfg.refireEvent("iframe");

},


/**
* @method configClassName
* @description Event handler for when the "classname" configuration =
property of=20
* a menu changes.
* @param {String} p_sType The name of the event that was fired.
* @param {Array} p_aArgs Collection of arguments sent when the event was =
fired.
* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired the event.
*/
configClassName: function (p_sType, p_aArgs, p_oMenu) {

    var sClassName =3D p_aArgs[0];

    if (this._sClassName) {

        Dom.removeClass(this.element, this._sClassName);

    }

    Dom.addClass(this.element, sClassName);
    this._sClassName =3D sClassName;

},


/**
* @method _onItemAdded
* @description "itemadded" event handler for a Menu instance.
* @private
* @param {String} p_sType The name of the event that was fired.
* @param {Array} p_aArgs Collection of arguments sent when the event=20
* was fired.
*/
_onItemAdded: function (p_sType, p_aArgs) {

    var oItem =3D p_aArgs[0];
   =20
    if (oItem) {

        oItem.cfg.setProperty("disabled", true);
   =20
    }

},


/**
* @method configDisabled
* @description Event handler for when the "disabled" configuration =
property of=20
* a menu changes.
* @param {String} p_sType The name of the event that was fired.
* @param {Array} p_aArgs Collection of arguments sent when the event was =
fired.
* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired the event.
*/
configDisabled: function (p_sType, p_aArgs, p_oMenu) {

    var bDisabled =3D p_aArgs[0],
        aItems =3D this.getItems(),
        nItems,
        i;

    if (Lang.isArray(aItems)) {

        nItems =3D aItems.length;
   =20
        if (nItems > 0) {
       =20
            i =3D nItems - 1;
   =20
            do {
   =20
                aItems[i].cfg.setProperty("disabled", bDisabled);
           =20
            }
            while (i--);
       =20
        }


        if (bDisabled) {

            this.clearActiveItem(true);

            Dom.addClass(this.element, "disabled");

            this.itemAddedEvent.subscribe(this._onItemAdded);

        }
        else {

            Dom.removeClass(this.element, "disabled");

            this.itemAddedEvent.unsubscribe(this._onItemAdded);

        }
       =20
    }

},


/**
* @method onRender
* @description "render" event handler for the menu.
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
*/
onRender: function (p_sType, p_aArgs) {

    function sizeShadow() {

        var oElement =3D this.element,
            oShadow =3D this._shadow;
   =20
        if (oShadow && oElement) {

            oShadow.style.width =3D (oElement.offsetWidth + 6) + "px";
            oShadow.style.height =3D (oElement.offsetHeight + 1) + "px";
           =20
        }
   =20
    }


    function replaceShadow() {

        this.element.appendChild(this._shadow);

    }


    function addShadowVisibleClass() {
   =20
        Dom.addClass(this._shadow, "yui-menu-shadow-visible");
   =20
    }
   =20

    function removeShadowVisibleClass() {

        Dom.removeClass(this._shadow, "yui-menu-shadow-visible");
   =20
    }


    function createShadow() {

        var oShadow =3D this._shadow,
            oElement,
            me;

        if (!oShadow) {

            oElement =3D this.element;
            me =3D this;

            if (!m_oShadowTemplate) {

                m_oShadowTemplate =3D document.createElement("div");
                m_oShadowTemplate.className =3D=20
                    "yui-menu-shadow yui-menu-shadow-visible";
           =20
            }

            oShadow =3D m_oShadowTemplate.cloneNode(false);

            oElement.appendChild(oShadow);
           =20
            this._shadow =3D oShadow;

            this.beforeShowEvent.subscribe(addShadowVisibleClass);
            this.beforeHideEvent.subscribe(removeShadowVisibleClass);

            if (UA.ie) {
       =20
                /*
                     Need to call sizeShadow & syncIframe via setTimeout =
for=20
                     IE 7 Quirks Mode and IE 6 Standards Mode and Quirks =
Mode=20
                     or the shadow and iframe shim will not be sized and =

                     positioned properly.
                */
       =20
                window.setTimeout(function () {=20
       =20
                    sizeShadow.call(me);=20
                    me.syncIframe();
       =20
                }, 0);

                this.cfg.subscribeToConfigEvent("width", sizeShadow);
                this.cfg.subscribeToConfigEvent("height", sizeShadow);
                this.cfg.subscribeToConfigEvent("maxheight", =
sizeShadow);
                this.changeContentEvent.subscribe(sizeShadow);

                Module.textResizeEvent.subscribe(sizeShadow, me, true);
               =20
                this.destroyEvent.subscribe(function () {
               =20
                    Module.textResizeEvent.unsubscribe(sizeShadow, me);
               =20
                });
       =20
            }

            this.cfg.subscribeToConfigEvent("maxheight", replaceShadow);

        }

    }


    function onBeforeShow() {
   =20
        createShadow.call(this);

        this.beforeShowEvent.unsubscribe(onBeforeShow);
   =20
    }


    if (this.cfg.getProperty("position") =3D=3D "dynamic") {

        if (this.cfg.getProperty("visible")) {

            createShadow.call(this);
       =20
        }
        else {

            this.beforeShowEvent.subscribe(onBeforeShow);
       =20
        }
   =20
    }

},


// Public methods


/**
* @method initEvents
* @description Initializes the custom events for the menu.
*/
initEvents: function () {

	Menu.superclass.initEvents.call(this);

    // Create custom events

    var SIGNATURE =3D CustomEvent.LIST;

    this.mouseOverEvent =3D this.createEvent(EVENT_TYPES.MOUSE_OVER);
    this.mouseOverEvent.signature =3D SIGNATURE;

    this.mouseOutEvent =3D this.createEvent(EVENT_TYPES.MOUSE_OUT);
    this.mouseOutEvent.signature =3D SIGNATURE;
   =20
    this.mouseDownEvent =3D this.createEvent(EVENT_TYPES.MOUSE_DOWN);
    this.mouseDownEvent.signature =3D SIGNATURE;

    this.mouseUpEvent =3D this.createEvent(EVENT_TYPES.MOUSE_UP);
    this.mouseUpEvent.signature =3D SIGNATURE;
   =20
    this.clickEvent =3D this.createEvent(EVENT_TYPES.CLICK);
    this.clickEvent.signature =3D SIGNATURE;
   =20
    this.keyPressEvent =3D this.createEvent(EVENT_TYPES.KEY_PRESS);
    this.keyPressEvent.signature =3D SIGNATURE;
   =20
    this.keyDownEvent =3D this.createEvent(EVENT_TYPES.KEY_DOWN);
    this.keyDownEvent.signature =3D SIGNATURE;
   =20
    this.keyUpEvent =3D this.createEvent(EVENT_TYPES.KEY_UP);
    this.keyUpEvent.signature =3D SIGNATURE;
   =20
    this.focusEvent =3D this.createEvent(EVENT_TYPES.FOCUS);
    this.focusEvent.signature =3D SIGNATURE;
   =20
    this.blurEvent =3D this.createEvent(EVENT_TYPES.BLUR);
    this.blurEvent.signature =3D SIGNATURE;
   =20
    this.itemAddedEvent =3D this.createEvent(EVENT_TYPES.ITEM_ADDED);
    this.itemAddedEvent.signature =3D SIGNATURE;
   =20
    this.itemRemovedEvent =3D =
this.createEvent(EVENT_TYPES.ITEM_REMOVED);
    this.itemRemovedEvent.signature =3D SIGNATURE;

},


/**
* @method positionOffScreen
* @description Positions the menu outside of the boundaries of the =
browser's=20
* viewport.  Called automatically when a menu is hidden to ensure that=20
* it doesn't force the browser to render uncessary scrollbars.
*/
positionOffScreen: function () {

    var oIFrame =3D this.iframe,
        aPos =3D this.OFF_SCREEN_POSITION;

    Dom.setXY(this.element, aPos);
   =20
    if (oIFrame) {

        Dom.setXY(oIFrame, aPos);
   =20
    }

},


/**
* @method getRoot
* @description Finds the menu's root menu.
*/
getRoot: function () {

    var oItem =3D this.parent,
        oParentMenu;

    if (oItem) {

        oParentMenu =3D oItem.parent;

        return oParentMenu ? oParentMenu.getRoot() : this;

    }
    else {
   =20
        return this;
   =20
    }

},


/**
* @method toString
* @description Returns a string representing the menu.
* @return {String}
*/
toString: function () {

    var sReturnVal =3D "Menu",
        sId =3D this.id;

    if (sId) {

        sReturnVal +=3D (" " + sId);
   =20
    }

    return sReturnVal;

},


/**
* @method setItemGroupTitle
* @description Sets the title of a group of menu items.
* @param {String} p_sGroupTitle String specifying the title of the =
group.
* @param {Number} p_nGroupIndex Optional. Number specifying the group to =
which
* the title belongs.
*/
setItemGroupTitle: function (p_sGroupTitle, p_nGroupIndex) {

    var nGroupIndex,
        oTitle,
        i,
        nFirstIndex;
       =20
    if (typeof p_sGroupTitle =3D=3D "string" && p_sGroupTitle.length > =
0) {

        nGroupIndex =3D typeof p_nGroupIndex =3D=3D "number" ? =
p_nGroupIndex : 0;
        oTitle =3D this._aGroupTitleElements[nGroupIndex];


        if (oTitle) {

            oTitle.innerHTML =3D p_sGroupTitle;
           =20
        }
        else {

            oTitle =3D =
document.createElement(this.GROUP_TITLE_TAG_NAME);
                   =20
            oTitle.innerHTML =3D p_sGroupTitle;

            this._aGroupTitleElements[nGroupIndex] =3D oTitle;

        }


        i =3D this._aGroupTitleElements.length - 1;

        do {

            if (this._aGroupTitleElements[i]) {

                Dom.removeClass(this._aGroupTitleElements[i], =
"first-of-type");

                nFirstIndex =3D i;

            }

        }
        while(i--);


        if (nFirstIndex !=3D=3D null) {

            Dom.addClass(this._aGroupTitleElements[nFirstIndex],=20
                "first-of-type");

        }

        this.changeContentEvent.fire();

    }

},



/**
* @method addItem
* @description Appends an item to the menu.
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the =
MenuItem=20
* instance to be added to the menu.
* @param {String} p_oItem String specifying the text of the item to be =
added=20
* to the menu.
* @param {Object} p_oItem Object literal containing a set of menu item=20
* configuration properties.
* @param {Number} p_nGroupIndex Optional. Number indicating the group to
* which the item belongs.
* @return {YAHOO.widget.MenuItem}
*/
addItem: function (p_oItem, p_nGroupIndex) {

    if (p_oItem) {

        return this._addItemToGroup(p_nGroupIndex, p_oItem);
       =20
    }

},


/**
* @method addItems
* @description Adds an array of items to the menu.
* @param {Array} p_aItems Array of items to be added to the menu.  The =
array=20
* can contain strings specifying the text for each item to be created, =
object
* literals specifying each of the menu item configuration properties,=20
* or MenuItem instances.
* @param {Number} p_nGroupIndex Optional. Number specifying the group to =

* which the items belongs.
* @return {Array}
*/
addItems: function (p_aItems, p_nGroupIndex) {

    var nItems,
        aItems,
        oItem,
        i;

    if (Lang.isArray(p_aItems)) {

        nItems =3D p_aItems.length;
        aItems =3D [];

        for(i=3D0; i<nItems; i++) {

            oItem =3D p_aItems[i];

            if (oItem) {

                if (Lang.isArray(oItem)) {
   =20
                    aItems[aItems.length] =3D this.addItems(oItem, i);
   =20
                }
                else {
   =20
                    aItems[aItems.length] =3D=20
                        this._addItemToGroup(p_nGroupIndex, oItem);
               =20
                }

            }
   =20
        }


        if (aItems.length) {
       =20
            return aItems;
       =20
        }

    }

},


/**
* @method insertItem
* @description Inserts an item into the menu at the specified index.
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the =
MenuItem=20
* instance to be added to the menu.
* @param {String} p_oItem String specifying the text of the item to be =
added=20
* to the menu.
* @param {Object} p_oItem Object literal containing a set of menu item=20
* configuration properties.
* @param {Number} p_nItemIndex Number indicating the ordinal position at =
which
* the item should be added.
* @param {Number} p_nGroupIndex Optional. Number indicating the group to =
which=20
* the item belongs.
* @return {YAHOO.widget.MenuItem}
*/
insertItem: function (p_oItem, p_nItemIndex, p_nGroupIndex) {
   =20
    if (p_oItem) {

        return this._addItemToGroup(p_nGroupIndex, p_oItem, =
p_nItemIndex);

    }

},


/**
* @method removeItem
* @description Removes the specified item from the menu.
* @param {YAHOO.widget.MenuItem} p_oObject Object reference for the =
MenuItem=20
* instance to be removed from the menu.
* @param {Number} p_oObject Number specifying the index of the item=20
* to be removed.
* @param {Number} p_nGroupIndex Optional. Number specifying the group to =

* which the item belongs.
* @return {YAHOO.widget.MenuItem}
*/
removeItem: function (p_oObject, p_nGroupIndex) {

    var oItem;
   =20
    if (typeof p_oObject !=3D "undefined") {

        if (p_oObject instanceof YAHOO.widget.MenuItem) {

            oItem =3D this._removeItemFromGroupByValue(p_nGroupIndex, =
p_oObject);          =20

        }
        else if (typeof p_oObject =3D=3D "number") {

            oItem =3D this._removeItemFromGroupByIndex(p_nGroupIndex, =
p_oObject);

        }

        if (oItem) {

            oItem.destroy();


            return oItem;

        }

    }

},


/**
* @method getItems
* @description Returns an array of all of the items in the menu.
* @return {Array}
*/
getItems: function () {

    var aGroups =3D this._aItemGroups,
        nGroups,
        aItems =3D [];

    if (Lang.isArray(aGroups)) {

        nGroups =3D aGroups.length;

        return ((nGroups =3D=3D 1) ? aGroups[0] :=20
                    (Array.prototype.concat.apply(aItems, aGroups)));

    }

},


/**
* @method getItemGroups
* @description Multi-dimensional Array representing the menu items as =
they=20
* are grouped in the menu.
* @return {Array}
*/       =20
getItemGroups: function () {

    return this._aItemGroups;

},


/**
* @method getItem
* @description Returns the item at the specified index.
* @param {Number} p_nItemIndex Number indicating the ordinal position of =
the=20
* item to be retrieved.
* @param {Number} p_nGroupIndex Optional. Number indicating the group to =
which=20
* the item belongs.
* @return {YAHOO.widget.MenuItem}
*/
getItem: function (p_nItemIndex, p_nGroupIndex) {
   =20
    var aGroup;
   =20
    if (typeof p_nItemIndex =3D=3D "number") {

        aGroup =3D this._getItemGroup(p_nGroupIndex);

        if (aGroup) {

            return aGroup[p_nItemIndex];
       =20
        }

    }
   =20
},


/**
* @method getSubmenus
* @description Returns an array of all of the submenus that are =
immediate=20
* children of the menu.
* @return {Array}
*/
getSubmenus: function () {

    var aItems =3D this.getItems(),
        nItems =3D aItems.length,
        aSubmenus,
        oSubmenu,
        oItem,
        i;


    if (nItems > 0) {
       =20
        aSubmenus =3D [];

        for(i=3D0; i<nItems; i++) {

            oItem =3D aItems[i];
           =20
            if (oItem) {

                oSubmenu =3D oItem.cfg.getProperty("submenu");
               =20
                if (oSubmenu) {

                    aSubmenus[aSubmenus.length] =3D oSubmenu;

                }
           =20
            }
       =20
        }
   =20
    }

    return aSubmenus;

},


/**
* @method clearContent
* @description Removes all of the content from the menu, including the =
menu=20
* items, group titles, header and footer.
*/
clearContent: function () {

    var aItems =3D this.getItems(),
        nItems =3D aItems.length,
        oElement =3D this.element,
        oBody =3D this.body,
        oHeader =3D this.header,
        oFooter =3D this.footer,
        oItem,
        oSubmenu,
        i;


    if (nItems > 0) {

        i =3D nItems - 1;

        do {

            oItem =3D aItems[i];

            if (oItem) {

                oSubmenu =3D oItem.cfg.getProperty("submenu");

                if (oSubmenu) {

                    this.cfg.configChangedEvent.unsubscribe(
                        this._onParentMenuConfigChange, oSubmenu);

                    =
this.renderEvent.unsubscribe(this._onParentMenuRender,=20
                        oSubmenu);

                }
               =20
                this.removeItem(oItem);

            }
       =20
        }
        while(i--);

    }


    if (oHeader) {

        Event.purgeElement(oHeader);
        oElement.removeChild(oHeader);

    }
   =20

    if (oFooter) {

        Event.purgeElement(oFooter);
        oElement.removeChild(oFooter);
    }


    if (oBody) {

        Event.purgeElement(oBody);

        oBody.innerHTML =3D "";

    }

    this.activeItem =3D null;

    this._aItemGroups =3D [];
    this._aListElements =3D [];
    this._aGroupTitleElements =3D [];

    this.cfg.setProperty("width", null);

},


/**
* @method destroy
* @description Removes the menu's <code>&#60;div&#62;</code> element=20
* (and accompanying child nodes) from the document.
*/
destroy: function () {

    // Remove all items

    this.clearContent();

    this._aItemGroups =3D null;
    this._aListElements =3D null;
    this._aGroupTitleElements =3D null;


    // Continue with the superclass implementation of this method

    Menu.superclass.destroy.call(this);
   =20

},


/**
* @method setInitialFocus
* @description Sets focus to the menu's first enabled item.
*/
setInitialFocus: function () {

    var oItem =3D this._getFirstEnabledItem();
   =20
    if (oItem) {

        oItem.focus();

    }
   =20
},


/**
* @method setInitialSelection
* @description Sets the "selected" configuration property of the menu's =
first=20
* enabled item to "true."
*/
setInitialSelection: function () {

    var oItem =3D this._getFirstEnabledItem();
   =20
    if (oItem) {
   =20
        oItem.cfg.setProperty("selected", true);
    }       =20

},


/**
* @method clearActiveItem
* @description Sets the "selected" configuration property of the menu's =
active
* item to "false" and hides the item's submenu.
* @param {Boolean} p_bBlur Boolean indicating if the menu's active item=20
* should be blurred. =20
*/
clearActiveItem: function (p_bBlur) {

    if (this.cfg.getProperty("showdelay") > 0) {
   =20
        this._cancelShowDelay();
   =20
    }


    var oActiveItem =3D this.activeItem,
        oConfig,
        oSubmenu;

    if (oActiveItem) {

        oConfig =3D oActiveItem.cfg;

        if (p_bBlur) {

            oActiveItem.blur();
       =20
        }

        oConfig.setProperty("selected", false);

        oSubmenu =3D oConfig.getProperty("submenu");

        if (oSubmenu) {

            oSubmenu.hide();

        }

        this.activeItem =3D null;           =20

    }

},


/**
* @method focus
* @description Causes the menu to receive focus and fires the "focus" =
event.
*/
focus: function () {

    if (!this.hasFocus()) {

        this.setInitialFocus();
   =20
    }

},


/**
* @method blur
* @description Causes the menu to lose focus and fires the "blur" event.
*/   =20
blur: function () {

    var oItem;

    if (this.hasFocus()) {
   =20
        oItem =3D MenuManager.getFocusedMenuItem();
       =20
        if (oItem) {

            oItem.blur();

        }

    }

},


/**
* @method hasFocus
* @description Returns a boolean indicating whether or not the menu has =
focus.
* @return {Boolean}
*/
hasFocus: function () {

    return (MenuManager.getFocusedMenu() =3D=3D this.getRoot());

},


/**
* Adds the specified CustomEvent subscriber to the menu and each of=20
* its submenus.
* @method subscribe
* @param p_type     {string}   the type, or name of the event
* @param p_fn       {function} the function to exectute when the event =
fires
* @param p_obj      {Object}   An object to be passed along when the =
event=20
*                              fires
* @param p_override {boolean}  If true, the obj passed in becomes the=20
*                              execution scope of the listener
*/
subscribe: function () {

    function onItemAdded(p_sType, p_aArgs, p_oObject) {

        var oItem =3D p_aArgs[0],
            oSubmenu =3D oItem.cfg.getProperty("submenu");

        if (oSubmenu) {

            oSubmenu.subscribe.apply(oSubmenu, p_oObject);

        }
   =20
    }


    function onSubmenuAdded(p_sType, p_aArgs, p_oObject) {=20
   =20
        var oSubmenu =3D this.cfg.getProperty("submenu");
       =20
        if (oSubmenu) {

            oSubmenu.subscribe.apply(oSubmenu, p_oObject);
       =20
        }
   =20
    }


    Menu.superclass.subscribe.apply(this, arguments);
    Menu.superclass.subscribe.call(this, "itemAdded", onItemAdded, =
arguments);


    var aItems =3D this.getItems(),
        nItems,
        oItem,
        oSubmenu,
        i;
       =20

    if (aItems) {

        nItems =3D aItems.length;
       =20
        if (nItems > 0) {
       =20
            i =3D nItems - 1;
           =20
            do {

                oItem =3D aItems[i];
               =20
                oSubmenu =3D oItem.cfg.getProperty("submenu");
               =20
                if (oSubmenu) {
               =20
                    oSubmenu.subscribe.apply(oSubmenu, arguments);
               =20
                }
                else {
               =20
                    oItem.cfg.subscribeToConfigEvent("submenu", =
onSubmenuAdded, arguments);
               =20
                }

            }
            while (i--);
       =20
        }

    }

},


/**
* @description Initializes the class's configurable properties which can =
be
* changed using the menu's Config object ("cfg").
* @method initDefaultConfig
*/
initDefaultConfig: function () {

    Menu.superclass.initDefaultConfig.call(this);

    var oConfig =3D this.cfg;


    // Module documentation overrides

    /**
    * @config effect
    * @description Object or array of objects representing the =
ContainerEffect=20
    * classes that are active for animating the container.  When set =
this=20
    * property is automatically applied to all submenus.
    * @type Object
    * @default null
    */

    // Overlay documentation overrides


    /**
    * @config x
    * @description Number representing the absolute x-coordinate =
position of=20
    * the Menu.  This property is only applied when the "position"=20
    * configuration property is set to dynamic.
    * @type Number
    * @default null
    */
   =20

    /**
    * @config y
    * @description Number representing the absolute y-coordinate =
position of=20
    * the Menu.  This property is only applied when the "position"=20
    * configuration property is set to dynamic.
    * @type Number
    * @default null
    */


    /**
    * @description Array of the absolute x and y positions of the Menu.  =
This=20
    * property is only applied when the "position" configuration =
property is=20
    * set to dynamic.
    * @config xy
    * @type Number[]
    * @default null
    */
   =20

    /**
    * @config context
    * @description Array of context arguments for context-sensitive =
positioning. =20
    * The format is: [id or element, element corner, context corner].=20
    * For example, setting this property to ["img1", "tl", "bl"] would=20
    * align the Mnu's top left corner to the context element's=20
    * bottom left corner.  This property is only applied when the =
"position"=20
    * configuration property is set to dynamic.
    * @type Array
    * @default null
    */
   =20
   =20
    /**
    * @config fixedcenter
    * @description Boolean indicating if the Menu should be anchored to =
the=20
    * center of the viewport.  This property is only applied when the=20
    * "position" configuration property is set to dynamic.
    * @type Boolean
    * @default false
    */

   =20
    /**
    * @config zindex
    * @description Number representing the CSS z-index of the Menu.  =
This=20
    * property is only applied when the "position" configuration =
property is=20
    * set to dynamic.
    * @type Number
    * @default null
    */
   =20
   =20
    /**
    * @config iframe
    * @description Boolean indicating whether or not the Menu should=20
    * have an IFRAME shim; used to prevent SELECT elements from=20
    * poking through an Overlay instance in IE6.  When set to "true",=20
    * the iframe shim is created when the Menu instance is intially
    * made visible.  This property is only applied when the "position"=20
    * configuration property is set to dynamic and is automatically =
applied=20
    * to all submenus.
    * @type Boolean
    * @default true for IE6 and below, false for all other browsers.
    */


	// Add configuration attributes

    /*
        Change the default value for the "visible" configuration=20
        property to "false" by re-adding the property.
    */

    /**
    * @config visible
    * @description Boolean indicating whether or not the menu is =
visible.  If=20
    * the menu's "position" configuration property is set to "dynamic" =
(the=20
    * default), this property toggles the menu's =
<code>&#60;div&#62;</code>=20
    * element's "visibility" style property between "visible" (true) or=20
    * "hidden" (false).  If the menu's "position" configuration property =
is=20
    * set to "static" this property toggles the menu's=20
    * <code>&#60;div&#62;</code> element's "display" style property=20
    * between "block" (true) or "none" (false).
    * @default false
    * @type Boolean
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.VISIBLE.key,=20
        {
            handler: this.configVisible,=20
            value: DEFAULT_CONFIG.VISIBLE.value,=20
            validator: DEFAULT_CONFIG.VISIBLE.validator
         }
     );


    /*
        Change the default value for the "constraintoviewport" =
configuration=20
        property to "true" by re-adding the property.
    */

    /**
    * @config constraintoviewport
    * @description Boolean indicating if the menu will try to remain =
inside=20
    * the boundaries of the size of viewport.  This property is only =
applied=20
    * when the "position" configuration property is set to dynamic and =
is=20
    * automatically applied to all submenus.
    * @default true
    * @type Boolean
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.key,=20
        {
            handler: this.configConstrainToViewport,=20
            value: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.value,=20
            validator: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.validator,=20
            supercedes: DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercedes=20
        }=20
    );


    /**
    * @config position
    * @description String indicating how a menu should be positioned on =
the=20
    * screen.  Possible values are "static" and "dynamic."  Static menus =
are=20
    * visible by default and reside in the normal flow of the document=20
    * (CSS position: static).  Dynamic menus are hidden by default, =
reside=20
    * out of the normal flow of the document (CSS position: absolute), =
and=20
    * can overlay other elements on the screen.
    * @default dynamic
    * @type String
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.POSITION.key,=20
        {
            handler: this.configPosition,
            value: DEFAULT_CONFIG.POSITION.value,=20
            validator: DEFAULT_CONFIG.POSITION.validator,
            supercedes: DEFAULT_CONFIG.POSITION.supercedes
        }
    );


    /**
    * @config submenualignment
    * @description Array defining how submenus should be aligned to =
their=20
    * parent menu item. The format is: [itemCorner, submenuCorner]. By =
default
    * a submenu's top left corner is aligned to its parent menu item's =
top=20
    * right corner.
    * @default ["tl","tr"]
    * @type Array
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key,=20
        {=20
            value: DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value,
            suppressEvent: =
DEFAULT_CONFIG.SUBMENU_ALIGNMENT.suppressEvent
        }
    );


    /**
    * @config autosubmenudisplay
    * @description Boolean indicating if submenus are automatically made =

    * visible when the user mouses over the menu's items.
    * @default true
    * @type Boolean
    */
	oConfig.addProperty(
	   DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key,=20
	   {=20
	       value: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value,=20
	       validator: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator,
	       suppressEvent: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.suppressEvent
       }=20
    );


    /**
    * @config showdelay
    * @description Number indicating the time (in milliseconds) that =
should=20
    * expire before a submenu is made visible when the user mouses over=20
    * the menu's items.  This property is only applied when the =
"position"=20
    * configuration property is set to dynamic and is automatically =
applied=20
    * to all submenus.
    * @default 250
    * @type Number
    */
	oConfig.addProperty(
	   DEFAULT_CONFIG.SHOW_DELAY.key,=20
	   {=20
	       value: DEFAULT_CONFIG.SHOW_DELAY.value,=20
	       validator: DEFAULT_CONFIG.SHOW_DELAY.validator,
	       suppressEvent: DEFAULT_CONFIG.SHOW_DELAY.suppressEvent
       }=20
    );


    /**
    * @config hidedelay
    * @description Number indicating the time (in milliseconds) that =
should=20
    * expire before the menu is hidden.  This property is only applied =
when=20
    * the "position" configuration property is set to dynamic and is=20
    * automatically applied to all submenus.
    * @default 0
    * @type Number
    */
	oConfig.addProperty(
	   DEFAULT_CONFIG.HIDE_DELAY.key,=20
	   {=20
	       handler: this.configHideDelay,
	       value: DEFAULT_CONFIG.HIDE_DELAY.value,=20
	       validator: DEFAULT_CONFIG.HIDE_DELAY.validator,=20
	       suppressEvent: DEFAULT_CONFIG.HIDE_DELAY.suppressEvent
       }=20
    );


    /**
    * @config submenuhidedelay
    * @description Number indicating the time (in milliseconds) that =
should=20
    * expire before a submenu is hidden when the user mouses out of a =
menu item=20
    * heading in the direction of a submenu.  The value must be greater =
than or=20
    * equal to the value specified for the "showdelay" configuration =
property.
    * This property is only applied when the "position" configuration =
property=20
    * is set to dynamic and is automatically applied to all submenus.
    * @default 250
    * @type Number
    */
	oConfig.addProperty(
	   DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.key,=20
	   {=20
	       value: DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.value,=20
	       validator: DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.validator,
	       suppressEvent: DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.suppressEvent
       }=20
    );


    /**
    * @config clicktohide
    * @description Boolean indicating if the menu will automatically be=20
    * hidden if the user clicks outside of it.  This property is only=20
    * applied when the "position" configuration property is set to =
dynamic=20
    * and is automatically applied to all submenus.
    * @default true
    * @type Boolean
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.CLICK_TO_HIDE.key,
        {
            value: DEFAULT_CONFIG.CLICK_TO_HIDE.value,
            validator: DEFAULT_CONFIG.CLICK_TO_HIDE.validator,
            suppressEvent: DEFAULT_CONFIG.CLICK_TO_HIDE.suppressEvent
        }
    );


	/**
	* @config container
	* @description HTML element reference or string specifying the id=20
	* attribute of the HTML element that the menu's markup should be=20
	* rendered into.
	* @type <a href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
	* level-one-html.html#ID-58190037">HTMLElement</a>|String
	* @default document.body
	*/
	oConfig.addProperty(
	   DEFAULT_CONFIG.CONTAINER.key,=20
	   {=20
	       handler: this.configContainer,
	       value: document.body,
           suppressEvent: DEFAULT_CONFIG.CONTAINER.suppressEvent
       }=20
   );


    /**
    * @config scrollincrement
    * @description Number used to control the scroll speed of a menu.  =
Used to=20
    * increment the "scrollTop" property of the menu's body by when a =
menu's=20
    * content is scrolling.  When set this property is automatically =
applied=20
    * to all submenus.
    * @default 1
    * @type Number
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.SCROLL_INCREMENT.key,=20
        {=20
            value: DEFAULT_CONFIG.SCROLL_INCREMENT.value,=20
            validator: DEFAULT_CONFIG.SCROLL_INCREMENT.validator,
            supercedes: DEFAULT_CONFIG.SCROLL_INCREMENT.supercedes,
            suppressEvent: DEFAULT_CONFIG.SCROLL_INCREMENT.suppressEvent
        }
    );


    /**
    * @config minscrollheight
    * @description Number defining the minimum threshold for the =
"maxheight"=20
    * configuration property.  When set this property is automatically =
applied=20
    * to all submenus.
    * @default 90
    * @type Number
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.MIN_SCROLL_HEIGHT.key,=20
        {=20
            value: DEFAULT_CONFIG.MIN_SCROLL_HEIGHT.value,=20
            validator: DEFAULT_CONFIG.MIN_SCROLL_HEIGHT.validator,
            supercedes: DEFAULT_CONFIG.MIN_SCROLL_HEIGHT.supercedes,
            suppressEvent: =
DEFAULT_CONFIG.MIN_SCROLL_HEIGHT.suppressEvent
        }
    );


    /**
    * @config maxheight
    * @description Number defining the maximum height (in pixels) for a =
menu's=20
    * body element (<code>&#60;div class=3D"bd"&#60;</code>).  Once a =
menu's body=20
    * exceeds this height, the contents of the body are scrolled to =
maintain=20
    * this value.  This value cannot be set lower than the value of the=20
    * "minscrollheight" configuration property.
    * @default 0
    * @type Number
    */
    oConfig.addProperty(
       DEFAULT_CONFIG.MAX_HEIGHT.key,=20
       {
            handler: this.configMaxHeight,
            value: DEFAULT_CONFIG.MAX_HEIGHT.value,
            validator: DEFAULT_CONFIG.MAX_HEIGHT.validator,
            suppressEvent: DEFAULT_CONFIG.MAX_HEIGHT.suppressEvent,
            supercedes: DEFAULT_CONFIG.MAX_HEIGHT.supercedes           =20
       }=20
    );


    /**
    * @config classname
    * @description String representing the CSS class to be applied to =
the=20
    * menu's root <code>&#60;div&#62;</code> element.  The specified =
class(es) =20
    * are appended in addition to the default class as specified by the =
menu's
    * CSS_CLASS_NAME constant. When set this property is automatically=20
    * applied to all submenus.
    * @default null
    * @type String
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.CLASS_NAME.key,=20
        {=20
            handler: this.configClassName,
            value: DEFAULT_CONFIG.CLASS_NAME.value,=20
            validator: DEFAULT_CONFIG.CLASS_NAME.validator,
            supercedes: DEFAULT_CONFIG.CLASS_NAME.supercedes     =20
        }
    );


    /**
    * @config disabled
    * @description Boolean indicating if the menu should be disabled. =20
    * Disabling a menu disables each of its items.  (Disabled menu items =
are=20
    * dimmed and will not respond to user input or fire events.)  =
Disabled
    * menus have a corresponding "disabled" CSS class applied to their =
root
    * <code>&#60;div&#62;</code> element.
    * @default false
    * @type Boolean
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.DISABLED.key,=20
        {=20
            handler: this.configDisabled,
            value: DEFAULT_CONFIG.DISABLED.value,=20
            validator: DEFAULT_CONFIG.DISABLED.validator,
            suppressEvent: DEFAULT_CONFIG.DISABLED.suppressEvent
        }
    );

}

}); // END YAHOO.lang.extend

})();



(function () {


/**
* Creates an item for a menu.
*=20
* @param {String} p_oObject String specifying the text of the menu item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object =
specifying=20
* the <code>&#60;li&#62;</code> element of the menu item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object=20
* specifying the <code>&#60;optgroup&#62;</code> element of the menu =
item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object=20
* specifying the <code>&#60;option&#62;</code> element of the menu item.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the menu item. See configuration class documentation =

* for more details.
* @class MenuItem
* @constructor
*/
YAHOO.widget.MenuItem =3D function (p_oObject, p_oConfig) {

    if (p_oObject) {

        if (p_oConfig) {
   =20
            this.parent =3D p_oConfig.parent;
            this.value =3D p_oConfig.value;
            this.id =3D p_oConfig.id;

        }

        this.init(p_oObject, p_oConfig);

    }

};


var Dom =3D YAHOO.util.Dom,
    Module =3D YAHOO.widget.Module,
    Menu =3D YAHOO.widget.Menu,
    MenuItem =3D YAHOO.widget.MenuItem,
    CustomEvent =3D YAHOO.util.CustomEvent,
    Lang =3D YAHOO.lang,

    m_oMenuItemTemplate,

    /**
    * Constant representing the name of the MenuItem's events
    * @property EVENT_TYPES
    * @private
    * @final
    * @type Object
    */
    EVENT_TYPES =3D {
   =20
        "MOUSE_OVER": "mouseover",
        "MOUSE_OUT": "mouseout",
        "MOUSE_DOWN": "mousedown",
        "MOUSE_UP": "mouseup",
        "CLICK": "click",
        "KEY_PRESS": "keypress",
        "KEY_DOWN": "keydown",
        "KEY_UP": "keyup",
        "ITEM_ADDED": "itemAdded",
        "ITEM_REMOVED": "itemRemoved",
        "FOCUS": "focus",
        "BLUR": "blur",
        "DESTROY": "destroy"
   =20
    },

    /**
    * Constant representing the MenuItem's configuration properties
    * @property DEFAULT_CONFIG
    * @private
    * @final
    * @type Object
    */
    DEFAULT_CONFIG =3D {
   =20
        "TEXT": {=20
            key: "text",=20
            value: "",=20
            validator: Lang.isString,=20
            suppressEvent: true=20
        },=20
   =20
        "HELP_TEXT": {=20
            key: "helptext",
            supercedes: ["text"],=20
            suppressEvent: true=20
        },
   =20
        "URL": {=20
            key: "url",=20
            value: "#",=20
            suppressEvent: true=20
        },=20
   =20
        "TARGET": {=20
            key: "target",=20
            suppressEvent: true=20
        },=20
   =20
        "EMPHASIS": {=20
            key: "emphasis",=20
            value: false,=20
            validator: Lang.isBoolean,=20
            suppressEvent: true,=20
            supercedes: ["text"]
        },=20
   =20
        "STRONG_EMPHASIS": {=20
            key: "strongemphasis",=20
            value: false,=20
            validator: Lang.isBoolean,=20
            suppressEvent: true,
            supercedes: ["text"]
        },
   =20
        "CHECKED": {=20
            key: "checked",=20
            value: false,=20
            validator: Lang.isBoolean,=20
            suppressEvent: true,=20
            supercedes: ["disabled", "selected"]
        },=20

        "SUBMENU": {=20
            key: "submenu",
            suppressEvent: true,
            supercedes: ["disabled", "selected"]
        },
   =20
        "DISABLED": {=20
            key: "disabled",=20
            value: false,=20
            validator: Lang.isBoolean,=20
            suppressEvent: true,
            supercedes: ["text", "selected"]
        },
   =20
        "SELECTED": {=20
            key: "selected",=20
            value: false,=20
            validator: Lang.isBoolean,=20
            suppressEvent: true
        },
   =20
        "ONCLICK": {=20
            key: "onclick",
            suppressEvent: true
        },
   =20
        "CLASS_NAME": {=20
            key: "classname",=20
            value: null,=20
            validator: Lang.isString,
            suppressEvent: true
        }
   =20
    };


MenuItem.prototype =3D {

    /**
    * @property CSS_CLASS_NAME
    * @description String representing the CSS class(es) to be applied =
to the=20
    * <code>&#60;li&#62;</code> element of the menu item.
    * @default "yuimenuitem"
    * @final
    * @type String
    */
    CSS_CLASS_NAME: "yuimenuitem",


    /**
    * @property CSS_LABEL_CLASS_NAME
    * @description String representing the CSS class(es) to be applied =
to the=20
    * menu item's <code>&#60;a&#62;</code> element.
    * @default "yuimenuitemlabel"
    * @final
    * @type String
    */
    CSS_LABEL_CLASS_NAME: "yuimenuitemlabel",


    /**
    * @property SUBMENU_TYPE
    * @description Object representing the type of menu to instantiate =
and=20
    * add when parsing the child nodes of the menu item's source HTML =
element.
    * @final
    * @type YAHOO.widget.Menu
    */
    SUBMENU_TYPE: null,



    // Private member variables
   =20

    /**
    * @property _oAnchor
    * @description Object reference to the menu item's=20
    * <code>&#60;a&#62;</code> element.
    * @default null=20
    * @private
    * @type <a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
    * one-html.html#ID-48250443">HTMLAnchorElement</a>
    */
    _oAnchor: null,
   =20
   =20
    /**
    * @property _oHelpTextEM
    * @description Object reference to the menu item's help text=20
    * <code>&#60;em&#62;</code> element.
    * @default null
    * @private
    * @type <a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
    * one-html.html#ID-58190037">HTMLElement</a>
    */
    _oHelpTextEM: null,
   =20
   =20
    /**
    * @property _oSubmenu
    * @description Object reference to the menu item's submenu.
    * @default null
    * @private
    * @type YAHOO.widget.Menu
    */
    _oSubmenu: null,


    /**=20
    * @property _oOnclickAttributeValue
    * @description Object reference to the menu item's current value for =
the=20
    * "onclick" configuration attribute.
    * @default null
    * @private
    * @type Object
    */
    _oOnclickAttributeValue: null,


    /**
    * @property _sClassName
    * @description The current value of the "classname" configuration =
attribute.
    * @default null
    * @private
    * @type String
    */
    _sClassName: null,



    // Public properties


	/**
    * @property constructor
	* @description Object reference to the menu item's constructor =
function.
    * @default YAHOO.widget.MenuItem
	* @type YAHOO.widget.MenuItem
	*/
	constructor: MenuItem,


    /**
    * @property index
    * @description Number indicating the ordinal position of the menu =
item in=20
    * its group.
    * @default null
    * @type Number
    */
    index: null,


    /**
    * @property groupIndex
    * @description Number indicating the index of the group to which the =
menu=20
    * item belongs.
    * @default null
    * @type Number
    */
    groupIndex: null,


    /**
    * @property parent
    * @description Object reference to the menu item's parent menu.
    * @default null
    * @type YAHOO.widget.Menu
    */
    parent: null,


    /**
    * @property element
    * @description Object reference to the menu item's=20
    * <code>&#60;li&#62;</code> element.
    * @default <a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level
    * -one-html.html#ID-74680021">HTMLLIElement</a>
    * @type <a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
    * one-html.html#ID-74680021">HTMLLIElement</a>
    */
    element: null,


    /**
    * @property srcElement
    * @description Object reference to the HTML element (either=20
    * <code>&#60;li&#62;</code>, <code>&#60;optgroup&#62;</code> or=20
    * <code>&#60;option&#62;</code>) used create the menu item.
    * @default <a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
    * level-one-html.html#ID-74680021">HTMLLIElement</a>|<a =
href=3D"http://www.
    * =
w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247"
    * >HTMLOptGroupElement</a>|<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-
    * =
Level-1-20000929/level-one-html.html#ID-70901257">HTMLOptionElement</a>
    * @type <a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
    * one-html.html#ID-74680021">HTMLLIElement</a>|<a =
href=3D"http://www.w3.
    * =
org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247">
    * HTMLOptGroupElement</a>|<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-
    * =
Level-1-20000929/level-one-html.html#ID-70901257">HTMLOptionElement</a>
    */
    srcElement: null,


    /**
    * @property value
    * @description Object reference to the menu item's value.
    * @default null
    * @type Object
    */
    value: null,


	/**
    * @property browser
    * @deprecated Use YAHOO.env.ua
	* @description String representing the browser.
	* @type String
	*/
	browser: Module.prototype.browser,


    /**
    * @property id
    * @description Id of the menu item's root <code>&#60;li&#62;</code>=20
    * element.  This property should be set via the constructor using =
the=20
    * configuration object literal.  If an id is not specified, then one =
will=20
    * be created using the "generateId" method of the Dom utility.
    * @default null
    * @type String
    */
    id: null,



    // Events


    /**
    * @event destroyEvent
    * @description Fires when the menu item's <code>&#60;li&#62;</code>=20
    * element is removed from its parent <code>&#60;ul&#62;</code> =
element.
    * @type YAHOO.util.CustomEvent
    */
    destroyEvent: null,


    /**
    * @event mouseOverEvent
    * @description Fires when the mouse has entered the menu item.  =
Passes=20
    * back the DOM Event object as an argument.
    * @type YAHOO.util.CustomEvent
    */
    mouseOverEvent: null,


    /**
    * @event mouseOutEvent
    * @description Fires when the mouse has left the menu item.  Passes =
back=20
    * the DOM Event object as an argument.
    * @type YAHOO.util.CustomEvent
    */
    mouseOutEvent: null,


    /**
    * @event mouseDownEvent
    * @description Fires when the user mouses down on the menu item.  =
Passes=20
    * back the DOM Event object as an argument.
    * @type YAHOO.util.CustomEvent
    */
    mouseDownEvent: null,


    /**
    * @event mouseUpEvent
    * @description Fires when the user releases a mouse button while the =
mouse=20
    * is over the menu item.  Passes back the DOM Event object as an =
argument.
    * @type YAHOO.util.CustomEvent
    */
    mouseUpEvent: null,


    /**
    * @event clickEvent
    * @description Fires when the user clicks the on the menu item.  =
Passes=20
    * back the DOM Event object as an argument.
    * @type YAHOO.util.CustomEvent
    */
    clickEvent: null,


    /**
    * @event keyPressEvent
    * @description Fires when the user presses an alphanumeric key when =
the=20
    * menu item has focus.  Passes back the DOM Event object as an =
argument.
    * @type YAHOO.util.CustomEvent
    */
    keyPressEvent: null,


    /**
    * @event keyDownEvent
    * @description Fires when the user presses a key when the menu item =
has=20
    * focus.  Passes back the DOM Event object as an argument.
    * @type YAHOO.util.CustomEvent
    */
    keyDownEvent: null,


    /**
    * @event keyUpEvent
    * @description Fires when the user releases a key when the menu item =
has=20
    * focus.  Passes back the DOM Event object as an argument.
    * @type YAHOO.util.CustomEvent
    */
    keyUpEvent: null,


    /**
    * @event focusEvent
    * @description Fires when the menu item receives focus.
    * @type YAHOO.util.CustomEvent
    */
    focusEvent: null,


    /**
    * @event blurEvent
    * @description Fires when the menu item loses the input focus.
    * @type YAHOO.util.CustomEvent
    */
    blurEvent: null,


    /**
    * @method init
    * @description The MenuItem class's initialization method. This =
method is=20
    * automatically called by the constructor, and sets up all DOM =
references=20
    * for pre-existing markup, and creates required markup if it is not=20
    * already present.
    * @param {String} p_oObject String specifying the text of the menu =
item.
    * @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
    * one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object =
specifying=20
    * the <code>&#60;li&#62;</code> element of the menu item.
    * @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
    * one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject =
Object=20
    * specifying the <code>&#60;optgroup&#62;</code> element of the menu =
item.
    * @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
    * one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object =

    * specifying the <code>&#60;option&#62;</code> element of the menu =
item.
    * @param {Object} p_oConfig Optional. Object literal specifying the=20
    * configuration for the menu item. See configuration class =
documentation=20
    * for more details.
    */
    init: function (p_oObject, p_oConfig) {


        if (!this.SUBMENU_TYPE) {
   =20
            this.SUBMENU_TYPE =3D Menu;
   =20
        }


        // Create the config object

        this.cfg =3D new YAHOO.util.Config(this);

        this.initDefaultConfig();

        var SIGNATURE =3D CustomEvent.LIST,
            oConfig =3D this.cfg,
            sURL =3D "#",
            oAnchor,
            sTarget,
            sText,
            sId;


        if (Lang.isString(p_oObject)) {

            this._createRootNodeStructure();

            oConfig.queueProperty("text", p_oObject);

        }
        else if (p_oObject && p_oObject.tagName) {

            switch(p_oObject.tagName.toUpperCase()) {

                case "OPTION":

                    this._createRootNodeStructure();

                    oConfig.queueProperty("text", p_oObject.text);
                    oConfig.queueProperty("disabled", =
p_oObject.disabled);

                    this.value =3D p_oObject.value;

                    this.srcElement =3D p_oObject;

                break;

                case "OPTGROUP":

                    this._createRootNodeStructure();

                    oConfig.queueProperty("text", p_oObject.label);
                    oConfig.queueProperty("disabled", =
p_oObject.disabled);

                    this.srcElement =3D p_oObject;

                    this._initSubTree();

                break;

                case "LI":

                    // Get the anchor node (if it exists)
                   =20
                    oAnchor =3D Dom.getFirstChild(p_oObject);


                    // Capture the "text" and/or the "URL"

                    if (oAnchor) {

                        sURL =3D oAnchor.getAttribute("href", 2);
                        sTarget =3D oAnchor.getAttribute("target");

                        sText =3D oAnchor.innerHTML;

                    }

                    this.srcElement =3D p_oObject;
                    this.element =3D p_oObject;
                    this._oAnchor =3D oAnchor;

                    /*
                        Set these properties silently to sync up the=20
                        configuration object without making changes to =
the=20
                        element's DOM
                    */=20

                    oConfig.setProperty("text", sText, true);
                    oConfig.setProperty("url", sURL, true);
                    oConfig.setProperty("target", sTarget, true);

                    this._initSubTree();

                break;

            }           =20

        }


        if (this.element) {

            sId =3D (this.srcElement || this.element).id;

            if (!sId) {

                sId =3D this.id || Dom.generateId();

                this.element.id =3D sId;

            }

            this.id =3D sId;


            Dom.addClass(this.element, this.CSS_CLASS_NAME);
            Dom.addClass(this._oAnchor, this.CSS_LABEL_CLASS_NAME);


            // Create custom events

            this.mouseOverEvent =3D =
this.createEvent(EVENT_TYPES.MOUSE_OVER);
            this.mouseOverEvent.signature =3D SIGNATURE;

            this.mouseOutEvent =3D =
this.createEvent(EVENT_TYPES.MOUSE_OUT);
            this.mouseOutEvent.signature =3D SIGNATURE;

            this.mouseDownEvent =3D =
this.createEvent(EVENT_TYPES.MOUSE_DOWN);
            this.mouseDownEvent.signature =3D SIGNATURE;

            this.mouseUpEvent =3D =
this.createEvent(EVENT_TYPES.MOUSE_UP);
            this.mouseUpEvent.signature =3D SIGNATURE;

            this.clickEvent =3D this.createEvent(EVENT_TYPES.CLICK);
            this.clickEvent.signature =3D SIGNATURE;

            this.keyPressEvent =3D =
this.createEvent(EVENT_TYPES.KEY_PRESS);
            this.keyPressEvent.signature =3D SIGNATURE;

            this.keyDownEvent =3D =
this.createEvent(EVENT_TYPES.KEY_DOWN);
            this.keyDownEvent.signature =3D SIGNATURE;

            this.keyUpEvent =3D this.createEvent(EVENT_TYPES.KEY_UP);
            this.keyUpEvent.signature =3D SIGNATURE;

            this.focusEvent =3D this.createEvent(EVENT_TYPES.FOCUS);
            this.focusEvent.signature =3D SIGNATURE;

            this.blurEvent =3D this.createEvent(EVENT_TYPES.BLUR);
            this.blurEvent.signature =3D SIGNATURE;

            this.destroyEvent =3D this.createEvent(EVENT_TYPES.DESTROY);
            this.destroyEvent.signature =3D SIGNATURE;

            if (p_oConfig) {
   =20
                oConfig.applyConfig(p_oConfig);
   =20
            }       =20

            oConfig.fireQueue();

        }

    },



    // Private methods


    /**
    * @method _createRootNodeStructure
    * @description Creates the core DOM structure for the menu item.
    * @private
    */
    _createRootNodeStructure: function () {

        var oElement,
            oAnchor;

        if (!m_oMenuItemTemplate) {

            m_oMenuItemTemplate =3D document.createElement("li");
            m_oMenuItemTemplate.innerHTML =3D "<a href=3D\"#\"></a>";

        }

        oElement =3D m_oMenuItemTemplate.cloneNode(true);
        oElement.className =3D this.CSS_CLASS_NAME;

        oAnchor =3D oElement.firstChild;
        oAnchor.className =3D this.CSS_LABEL_CLASS_NAME;
       =20
        this.element =3D oElement;
        this._oAnchor =3D oAnchor;

    },


    /**
    * @method _initSubTree
    * @description Iterates the source element's childNodes collection =
and uses=20
    * the child nodes to instantiate other menus.
    * @private
    */
    _initSubTree: function () {

        var oSrcEl =3D this.srcElement,
            oConfig =3D this.cfg,
            oNode,
            aOptions,
            nOptions,
            oMenu,
            n;


        if (oSrcEl.childNodes.length > 0) {

            if (this.parent.lazyLoad && this.parent.srcElement &&=20
                this.parent.srcElement.tagName.toUpperCase() =3D=3D =
"SELECT") {

                oConfig.setProperty(
                        "submenu",=20
                        { id: Dom.generateId(), itemdata: =
oSrcEl.childNodes }
                    );

            }
            else {

                oNode =3D oSrcEl.firstChild;
                aOptions =3D [];
   =20
                do {
   =20
                    if (oNode && oNode.tagName) {
   =20
                        switch(oNode.tagName.toUpperCase()) {
               =20
                            case "DIV":
               =20
                                oConfig.setProperty("submenu", oNode);
               =20
                            break;
        =20
                            case "OPTION":
       =20
                                aOptions[aOptions.length] =3D oNode;
       =20
                            break;
              =20
                        }
                   =20
                    }
               =20
                }       =20
                while((oNode =3D oNode.nextSibling));
   =20
   =20
                nOptions =3D aOptions.length;
   =20
                if (nOptions > 0) {
   =20
                    oMenu =3D new this.SUBMENU_TYPE(Dom.generateId());
                   =20
                    oConfig.setProperty("submenu", oMenu);
   =20
                    for(n=3D0; n<nOptions; n++) {
       =20
                        oMenu.addItem((new =
oMenu.ITEM_TYPE(aOptions[n])));
       =20
                    }
       =20
                }
           =20
            }

        }

    },



    // Event handlers for configuration properties


    /**
    * @method configText
    * @description Event handler for when the "text" configuration =
property of=20
    * the menu item changes.
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */
    configText: function (p_sType, p_aArgs, p_oItem) {

        var sText =3D p_aArgs[0],
            oConfig =3D this.cfg,
            oAnchor =3D this._oAnchor,
            sHelpText =3D oConfig.getProperty("helptext"),
            sHelpTextHTML =3D "",
            sEmphasisStartTag =3D "",
            sEmphasisEndTag =3D "";


        if (sText) {


            if (sHelpText) {
                   =20
                sHelpTextHTML =3D "<em class=3D\"helptext\">" + =
sHelpText + "</em>";
           =20
            }


            if (oConfig.getProperty("emphasis")) {

                sEmphasisStartTag =3D "<em>";
                sEmphasisEndTag =3D "</em>";

            }


            if (oConfig.getProperty("strongemphasis")) {

                sEmphasisStartTag =3D "<strong>";
                sEmphasisEndTag =3D "</strong>";
           =20
            }


            oAnchor.innerHTML =3D (sEmphasisStartTag + sText +=20
                sEmphasisEndTag + sHelpTextHTML);

        }

    },


    /**
    * @method configHelpText
    * @description Event handler for when the "helptext" configuration =
property=20
    * of the menu item changes.
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */   =20
    configHelpText: function (p_sType, p_aArgs, p_oItem) {

        this.cfg.refireEvent("text");

    },


    /**
    * @method configURL
    * @description Event handler for when the "url" configuration =
property of=20
    * the menu item changes.
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */   =20
    configURL: function (p_sType, p_aArgs, p_oItem) {

        var sURL =3D p_aArgs[0];

        if (!sURL) {

            sURL =3D "#";

        }

        var oAnchor =3D this._oAnchor;

        if (YAHOO.env.ua.opera) {

            oAnchor.removeAttribute("href");
       =20
        }

        oAnchor.setAttribute("href", sURL);

    },


    /**
    * @method configTarget
    * @description Event handler for when the "target" configuration =
property=20
    * of the menu item changes. =20
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */   =20
    configTarget: function (p_sType, p_aArgs, p_oItem) {

        var sTarget =3D p_aArgs[0],
            oAnchor =3D this._oAnchor;

        if (sTarget && sTarget.length > 0) {

            oAnchor.setAttribute("target", sTarget);

        }
        else {

            oAnchor.removeAttribute("target");
       =20
        }

    },


    /**
    * @method configEmphasis
    * @description Event handler for when the "emphasis" configuration =
property
    * of the menu item changes.
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */   =20
    configEmphasis: function (p_sType, p_aArgs, p_oItem) {

        var bEmphasis =3D p_aArgs[0],
            oConfig =3D this.cfg;


        if (bEmphasis && oConfig.getProperty("strongemphasis")) {

            oConfig.setProperty("strongemphasis", false);

        }


        oConfig.refireEvent("text");

    },


    /**
    * @method configStrongEmphasis
    * @description Event handler for when the "strongemphasis" =
configuration=20
    * property of the menu item changes.
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */   =20
    configStrongEmphasis: function (p_sType, p_aArgs, p_oItem) {

        var bStrongEmphasis =3D p_aArgs[0],
            oConfig =3D this.cfg;


        if (bStrongEmphasis && oConfig.getProperty("emphasis")) {

            oConfig.setProperty("emphasis", false);

        }

        oConfig.refireEvent("text");

    },


    /**
    * @method configChecked
    * @description Event handler for when the "checked" configuration =
property=20
    * of the menu item changes.=20
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */   =20
    configChecked: function (p_sType, p_aArgs, p_oItem) {

        var bChecked =3D p_aArgs[0],
            oElement =3D this.element,
            oAnchor =3D this._oAnchor,
            oConfig =3D this.cfg,
            sState =3D "-checked",
            sClassName =3D this.CSS_CLASS_NAME + sState,
            sLabelClassName =3D this.CSS_LABEL_CLASS_NAME + sState;


        if (bChecked) {

            Dom.addClass(oElement, sClassName);
            Dom.addClass(oAnchor, sLabelClassName);

        }
        else {

            Dom.removeClass(oElement, sClassName);
            Dom.removeClass(oAnchor, sLabelClassName);
       =20
        }


        oConfig.refireEvent("text");


        if (oConfig.getProperty("disabled")) {

            oConfig.refireEvent("disabled");

        }


        if (oConfig.getProperty("selected")) {

            oConfig.refireEvent("selected");

        }

    },



    /**
    * @method configDisabled
    * @description Event handler for when the "disabled" configuration =
property=20
    * of the menu item changes.=20
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */   =20
    configDisabled: function (p_sType, p_aArgs, p_oItem) {

        var bDisabled =3D p_aArgs[0],
            oConfig =3D this.cfg,
            oSubmenu =3D oConfig.getProperty("submenu"),
            bChecked =3D oConfig.getProperty("checked"),
            oElement =3D this.element,
            oAnchor =3D this._oAnchor,
            sState =3D "-disabled",
            sCheckedState =3D "-checked" + sState,
            sSubmenuState =3D "-hassubmenu" + sState,
            sClassName =3D this.CSS_CLASS_NAME + sState,
            sLabelClassName =3D this.CSS_LABEL_CLASS_NAME + sState,
            sCheckedClassName =3D this.CSS_CLASS_NAME + sCheckedState,
            sLabelCheckedClassName =3D this.CSS_LABEL_CLASS_NAME + =
sCheckedState,
            sSubmenuClassName =3D this.CSS_CLASS_NAME + sSubmenuState,
            sLabelSubmenuClassName =3D this.CSS_LABEL_CLASS_NAME + =
sSubmenuState;


        if (bDisabled) {

            if (oConfig.getProperty("selected")) {

                oConfig.setProperty("selected", false);

            }

            Dom.addClass(oElement, sClassName);
            Dom.addClass(oAnchor, sLabelClassName);


            if (oSubmenu) {

                Dom.addClass(oElement, sSubmenuClassName);
                Dom.addClass(oAnchor, sLabelSubmenuClassName);
           =20
            }
           =20

            if (bChecked) {

                Dom.addClass(oElement, sCheckedClassName);
                Dom.addClass(oAnchor, sLabelCheckedClassName);

            }

        }
        else {

            Dom.removeClass(oElement, sClassName);
            Dom.removeClass(oAnchor, sLabelClassName);


            if (oSubmenu) {

                Dom.removeClass(oElement, sSubmenuClassName);
                Dom.removeClass(oAnchor, sLabelSubmenuClassName);
           =20
            }
           =20

            if (bChecked) {

                Dom.removeClass(oElement, sCheckedClassName);
                Dom.removeClass(oAnchor, sLabelCheckedClassName);

            }

        }

    },


    /**
    * @method configSelected
    * @description Event handler for when the "selected" configuration =
property=20
    * of the menu item changes.=20
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */   =20
    configSelected: function (p_sType, p_aArgs, p_oItem) {

        var oConfig =3D this.cfg,
            bSelected =3D p_aArgs[0],
            oElement =3D this.element,
            oAnchor =3D this._oAnchor,
            bChecked =3D oConfig.getProperty("checked"),
            oSubmenu =3D oConfig.getProperty("submenu"),
            sState =3D "-selected",
            sCheckedState =3D "-checked" + sState,
            sSubmenuState =3D "-hassubmenu" + sState,
            sClassName =3D this.CSS_CLASS_NAME + sState,
            sLabelClassName =3D this.CSS_LABEL_CLASS_NAME + sState,
            sCheckedClassName =3D this.CSS_CLASS_NAME + sCheckedState,
            sLabelCheckedClassName =3D this.CSS_LABEL_CLASS_NAME + =
sCheckedState,
            sSubmenuClassName =3D this.CSS_CLASS_NAME + sSubmenuState,
            sLabelSubmenuClassName =3D this.CSS_LABEL_CLASS_NAME + =
sSubmenuState;


        if (YAHOO.env.ua.opera) {

            oAnchor.blur();
       =20
        }


        if (bSelected && !oConfig.getProperty("disabled")) {

            Dom.addClass(oElement, sClassName);
            Dom.addClass(oAnchor, sLabelClassName);


            if (oSubmenu) {

                Dom.addClass(oElement, sSubmenuClassName);
                Dom.addClass(oAnchor, sLabelSubmenuClassName);
           =20
            }


            if (bChecked) {

                Dom.addClass(oElement, sCheckedClassName);
                Dom.addClass(oAnchor, sLabelCheckedClassName);

            }

        }
        else {

            Dom.removeClass(oElement, sClassName);
            Dom.removeClass(oAnchor, sLabelClassName);


            if (oSubmenu) {

                Dom.removeClass(oElement, sSubmenuClassName);
                Dom.removeClass(oAnchor, sLabelSubmenuClassName);
           =20
            }

       =20
            if (bChecked) {

                Dom.removeClass(oElement, sCheckedClassName);
                Dom.removeClass(oAnchor, sLabelCheckedClassName);

            }

        }


        if (this.hasFocus() && YAHOO.env.ua.opera) {
       =20
            oAnchor.focus();
       =20
        }

    },


    /**
    * @method _onSubmenuBeforeHide
    * @description "beforehide" Custom Event handler for a submenu.
    * @private
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    */
    _onSubmenuBeforeHide: function (p_sType, p_aArgs) {

        var oItem =3D this.parent,
            oMenu;

        function onHide() {

            oItem._oAnchor.blur();
            oMenu.beforeHideEvent.unsubscribe(onHide);
       =20
        }


        if (oItem.hasFocus()) {

            oMenu =3D oItem.parent;

            oMenu.beforeHideEvent.subscribe(onHide);
       =20
        }
   =20
    },


    /**
    * @method configSubmenu
    * @description Event handler for when the "submenu" configuration =
property=20
    * of the menu item changes.=20
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */
    configSubmenu: function (p_sType, p_aArgs, p_oItem) {

        var oSubmenu =3D p_aArgs[0],
            oConfig =3D this.cfg,
            oElement =3D this.element,
            oAnchor =3D this._oAnchor,
            bLazyLoad =3D this.parent && this.parent.lazyLoad,
            sState =3D "-hassubmenu",
            sClassName =3D this.CSS_CLASS_NAME + sState,
            sLabelClassName =3D this.CSS_LABEL_CLASS_NAME + sState,
            oMenu,
            sSubmenuId,
            oSubmenuConfig;


        if (oSubmenu) {

            if (oSubmenu instanceof Menu) {

                oMenu =3D oSubmenu;
                oMenu.parent =3D this;
                oMenu.lazyLoad =3D bLazyLoad;

            }
            else if (typeof oSubmenu =3D=3D "object" && oSubmenu.id &&=20
                !oSubmenu.nodeType) {

                sSubmenuId =3D oSubmenu.id;
                oSubmenuConfig =3D oSubmenu;

                oSubmenuConfig.lazyload =3D bLazyLoad;
                oSubmenuConfig.parent =3D this;

                oMenu =3D new this.SUBMENU_TYPE(sSubmenuId, =
oSubmenuConfig);


                // Set the value of the property to the Menu instance

                oConfig.setProperty("submenu", oMenu, true);

            }
            else {

                oMenu =3D new this.SUBMENU_TYPE(oSubmenu,
                                { lazyload: bLazyLoad, parent: this });


                // Set the value of the property to the Menu instance
               =20
                oConfig.setProperty("submenu", oMenu, true);

            }


            if (oMenu) {

                Dom.addClass(oElement, sClassName);
                Dom.addClass(oAnchor, sLabelClassName);

                this._oSubmenu =3D oMenu;

                if (YAHOO.env.ua.opera) {
               =20
                    =
oMenu.beforeHideEvent.subscribe(this._onSubmenuBeforeHide);              =
=20
               =20
                }
           =20
            }

        }
        else {

            Dom.removeClass(oElement, sClassName);
            Dom.removeClass(oAnchor, sLabelClassName);

            if (this._oSubmenu) {

                this._oSubmenu.destroy();

            }

        }


        if (oConfig.getProperty("disabled")) {

            oConfig.refireEvent("disabled");

        }


        if (oConfig.getProperty("selected")) {

            oConfig.refireEvent("selected");

        }

    },


    /**
    * @method configOnClick
    * @description Event handler for when the "onclick" configuration =
property=20
    * of the menu item changes.=20
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */
    configOnClick: function (p_sType, p_aArgs, p_oItem) {

        var oObject =3D p_aArgs[0];

        /*
            Remove any existing listeners if a "click" event handler has =

            already been specified.
        */

        if (this._oOnclickAttributeValue &&=20
            (this._oOnclickAttributeValue !=3D oObject)) {

            this.clickEvent.unsubscribe(this._oOnclickAttributeValue.fn, =

                                this._oOnclickAttributeValue.obj);

            this._oOnclickAttributeValue =3D null;

        }


        if (!this._oOnclickAttributeValue && typeof oObject =3D=3D =
"object" &&=20
            typeof oObject.fn =3D=3D "function") {
           =20
            this.clickEvent.subscribe(oObject.fn,=20
                ((!YAHOO.lang.isUndefined(oObject.obj)) ? oObject.obj : =
this),=20
                oObject.scope);

            this._oOnclickAttributeValue =3D oObject;

        }
   =20
    },


    /**
    * @method configClassName
    * @description Event handler for when the "classname" configuration=20
    * property of a menu item changes.
    * @param {String} p_sType String representing the name of the event =
that=20
    * was fired.
    * @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
    * @param {YAHOO.widget.MenuItem} p_oItem Object representing the =
menu item
    * that fired the event.
    */
    configClassName: function (p_sType, p_aArgs, p_oItem) {
   =20
        var sClassName =3D p_aArgs[0];
   =20
        if (this._sClassName) {
   =20
            Dom.removeClass(this.element, this._sClassName);
   =20
        }
   =20
        Dom.addClass(this.element, sClassName);
        this._sClassName =3D sClassName;
   =20
    },



    // Public methods


	/**
    * @method initDefaultConfig
	* @description Initializes an item's configurable properties.
	*/
	initDefaultConfig : function () {

        var oConfig =3D this.cfg;


        // Define the configuration attributes

        /**
        * @config text
        * @description String specifying the text label for the menu =
item. =20
        * When building a menu from existing HTML the value of this =
property
        * will be interpreted from the menu's markup.
        * @default ""
        * @type String
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.TEXT.key,=20
            {=20
                handler: this.configText,=20
                value: DEFAULT_CONFIG.TEXT.value,=20
                validator: DEFAULT_CONFIG.TEXT.validator,=20
                suppressEvent: DEFAULT_CONFIG.TEXT.suppressEvent=20
            }
        );
       =20

        /**
        * @config helptext
        * @description String specifying additional instructional text =
to=20
        * accompany the text for the menu item.
        * @deprecated Use "text" configuration property to add help text =
markup. =20
        * For example: <code>oMenuItem.cfg.setProperty("text", "Copy =
&#60;em=20
        * class=3D\"helptext\"&#62;Ctrl + C&#60;/em&#62;");</code>
        * @default null
        * @type String|<a href=3D"http://www.w3.org/TR/
        * 2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-58190037">
        * HTMLElement</a>
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.HELP_TEXT.key,
            {
                handler: this.configHelpText,=20
                supercedes: DEFAULT_CONFIG.HELP_TEXT.supercedes,
                suppressEvent: DEFAULT_CONFIG.HELP_TEXT.suppressEvent=20
            }
        );


        /**
        * @config url
        * @description String specifying the URL for the menu item's =
anchor's=20
        * "href" attribute.  When building a menu from existing HTML the =
value=20
        * of this property will be interpreted from the menu's markup.
        * @default "#"
        * @type String
        */       =20
        oConfig.addProperty(
            DEFAULT_CONFIG.URL.key,=20
            {
                handler: this.configURL,=20
                value: DEFAULT_CONFIG.URL.value,=20
                suppressEvent: DEFAULT_CONFIG.URL.suppressEvent
            }
        );


        /**
        * @config target
        * @description String specifying the value for the "target" =
attribute=20
        * of the menu item's anchor element. <strong>Specifying a target =
will=20
        * require the user to click directly on the menu item's anchor =
node in
        * order to cause the browser to navigate to the specified =
URL.</strong>=20
        * When building a menu from existing HTML the value of this =
property=20
        * will be interpreted from the menu's markup.
        * @default null
        * @type String
        */       =20
        oConfig.addProperty(
            DEFAULT_CONFIG.TARGET.key,=20
            {
                handler: this.configTarget,=20
                suppressEvent: DEFAULT_CONFIG.TARGET.suppressEvent
            }
        );


        /**
        * @config emphasis
        * @description Boolean indicating if the text of the menu item =
will be=20
        * rendered with emphasis.
        * @deprecated Use "text" configuration property to add emphasis. =
=20
        * For example: <code>oMenuItem.cfg.setProperty("text", =
"&#60;em&#62;Some=20
        * Text&#60;/em&#62;");</code>
        * @default false
        * @type Boolean
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.EMPHASIS.key,=20
            {=20
                handler: this.configEmphasis,=20
                value: DEFAULT_CONFIG.EMPHASIS.value,=20
                validator: DEFAULT_CONFIG.EMPHASIS.validator,=20
                suppressEvent: DEFAULT_CONFIG.EMPHASIS.suppressEvent,
                supercedes: DEFAULT_CONFIG.EMPHASIS.supercedes
            }
        );


        /**
        * @config strongemphasis
        * @description Boolean indicating if the text of the menu item =
will be=20
        * rendered with strong emphasis.
        * @deprecated Use "text" configuration property to add strong =
emphasis. =20
        * For example: <code>oMenuItem.cfg.setProperty("text", =
"&#60;strong&#62;=20
        * Some Text&#60;/strong&#62;");</code>
        * @default false
        * @type Boolean
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.STRONG_EMPHASIS.key,
            {
                handler: this.configStrongEmphasis,
                value: DEFAULT_CONFIG.STRONG_EMPHASIS.value,
                validator: DEFAULT_CONFIG.STRONG_EMPHASIS.validator,
                suppressEvent: =
DEFAULT_CONFIG.STRONG_EMPHASIS.suppressEvent,
                supercedes: DEFAULT_CONFIG.STRONG_EMPHASIS.supercedes
            }
        );


        /**
        * @config checked
        * @description Boolean indicating if the menu item should be =
rendered=20
        * with a checkmark.
        * @default false
        * @type Boolean
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.CHECKED.key,=20
            {
                handler: this.configChecked,=20
                value: DEFAULT_CONFIG.CHECKED.value,=20
                validator: DEFAULT_CONFIG.CHECKED.validator,=20
                suppressEvent: DEFAULT_CONFIG.CHECKED.suppressEvent,
                supercedes: DEFAULT_CONFIG.CHECKED.supercedes
            }=20
        );


        /**
        * @config disabled
        * @description Boolean indicating if the menu item should be =
disabled. =20
        * (Disabled menu items are  dimmed and will not respond to user =
input=20
        * or fire events.)
        * @default false
        * @type Boolean
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.DISABLED.key,
            {
                handler: this.configDisabled,
                value: DEFAULT_CONFIG.DISABLED.value,
                validator: DEFAULT_CONFIG.DISABLED.validator,
                suppressEvent: DEFAULT_CONFIG.DISABLED.suppressEvent
            }
        );


        /**
        * @config selected
        * @description Boolean indicating if the menu item should=20
        * be highlighted.
        * @default false
        * @type Boolean
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.SELECTED.key,
            {
                handler: this.configSelected,
                value: DEFAULT_CONFIG.SELECTED.value,
                validator: DEFAULT_CONFIG.SELECTED.validator,
                suppressEvent: DEFAULT_CONFIG.SELECTED.suppressEvent
            }
        );


        /**
        * @config submenu
        * @description Object specifying the submenu to be appended to =
the=20
        * menu item.  The value can be one of the following: =
<ul><li>Object=20
        * specifying a Menu instance.</li><li>Object literal specifying =
the
        * menu to be created.  Format: <code>{ id: [menu id], itemdata:=20
        * [<a href=3D"YAHOO.widget.Menu.html#itemData">array of values =
for=20
        * items</a>] }</code>.</li><li>String specifying the id =
attribute=20
        * of the <code>&#60;div&#62;</code> element of the =
menu.</li><li>
        * Object specifying the <code>&#60;div&#62;</code> element of =
the=20
        * menu.</li></ul>
        * @default null
        * @type Menu|String|Object|<a href=3D"http://www.w3.org/TR/2000/
        * WD-DOM-Level-1-20000929/level-one-html.html#ID-58190037">
        * HTMLElement</a>
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.SUBMENU.key,=20
            {
                handler: this.configSubmenu,=20
                supercedes: DEFAULT_CONFIG.SUBMENU.supercedes,
                suppressEvent: DEFAULT_CONFIG.SUBMENU.suppressEvent
            }
        );


        /**
        * @config onclick
        * @description Object literal representing the code to be =
executed when=20
        * the item is clicked.  Format:<br> <code> {<br>=20
        * <strong>fn:</strong> Function,   &#47;&#47; The handler to =
call when=20
        * the event fires.<br> <strong>obj:</strong> Object, &#47;&#47; =
An=20
        * object to  pass back to the handler.<br> =
<strong>scope:</strong>=20
        * Object &#47;&#47; The object to use for the scope of the =
handler.
        * <br> } </code>
        * @type Object
        * @default null
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.ONCLICK.key,=20
            {
                handler: this.configOnClick,=20
                suppressEvent: DEFAULT_CONFIG.ONCLICK.suppressEvent=20
            }
        );


        /**
        * @config classname
        * @description CSS class to be applied to the menu item's root=20
        * <code>&#60;li&#62;</code> element.  The specified class(es) =
are=20
        * appended in addition to the default class as specified by the =
menu=20
        * item's CSS_CLASS_NAME constant.
        * @default null
        * @type String
        */
        oConfig.addProperty(
            DEFAULT_CONFIG.CLASS_NAME.key,=20
            {=20
                handler: this.configClassName,
                value: DEFAULT_CONFIG.CLASS_NAME.value,=20
                validator: DEFAULT_CONFIG.CLASS_NAME.validator,
                suppressEvent: DEFAULT_CONFIG.CLASS_NAME.suppressEvent=20
            }
        );

	},


    /**
    * @method getNextEnabledSibling
    * @description Finds the menu item's next enabled sibling.
    * @return YAHOO.widget.MenuItem
    */
    getNextEnabledSibling: function () {

        var nGroupIndex,
            aItemGroups,
            oNextItem,
            nNextGroupIndex,
            aNextGroup;

        function getNextArrayItem(p_aArray, p_nStartIndex) {

            return p_aArray[p_nStartIndex] ||=20
                getNextArrayItem(p_aArray, (p_nStartIndex+1));

        }

        if (this.parent instanceof Menu) {

            nGroupIndex =3D this.groupIndex;
   =20
            aItemGroups =3D this.parent.getItemGroups();
   =20
            if (this.index < (aItemGroups[nGroupIndex].length - 1)) {
   =20
                oNextItem =3D getNextArrayItem(aItemGroups[nGroupIndex], =

                        (this.index+1));
   =20
            }
            else {
   =20
                if (nGroupIndex < (aItemGroups.length - 1)) {
   =20
                    nNextGroupIndex =3D nGroupIndex + 1;
   =20
                }
                else {
   =20
                    nNextGroupIndex =3D 0;
   =20
                }
   =20
                aNextGroup =3D getNextArrayItem(aItemGroups, =
nNextGroupIndex);
   =20
                // Retrieve the first menu item in the next group
   =20
                oNextItem =3D getNextArrayItem(aNextGroup, 0);
   =20
            }
   =20
            return (oNextItem.cfg.getProperty("disabled") ||=20
                oNextItem.element.style.display =3D=3D "none") ?=20
                oNextItem.getNextEnabledSibling() : oNextItem;

        }

    },


    /**
    * @method getPreviousEnabledSibling
    * @description Finds the menu item's previous enabled sibling.
    * @return {YAHOO.widget.MenuItem}
    */
    getPreviousEnabledSibling: function () {

        var nGroupIndex,
            aItemGroups,
            oPreviousItem,
            nPreviousGroupIndex,
            aPreviousGroup;

        function getPreviousArrayItem(p_aArray, p_nStartIndex) {

            return p_aArray[p_nStartIndex] || =20
                getPreviousArrayItem(p_aArray, (p_nStartIndex-1));

        }

        function getFirstItemIndex(p_aArray, p_nStartIndex) {

            return p_aArray[p_nStartIndex] ? p_nStartIndex :=20
                getFirstItemIndex(p_aArray, (p_nStartIndex+1));

        }

       if (this.parent instanceof Menu) {

            nGroupIndex =3D this.groupIndex;
            aItemGroups =3D this.parent.getItemGroups();

   =20
            if (this.index > getFirstItemIndex(aItemGroups[nGroupIndex], =
0)) {
   =20
                oPreviousItem =3D =
getPreviousArrayItem(aItemGroups[nGroupIndex],=20
                        (this.index-1));
   =20
            }
            else {
   =20
                if (nGroupIndex > getFirstItemIndex(aItemGroups, 0)) {
   =20
                    nPreviousGroupIndex =3D nGroupIndex - 1;
   =20
                }
                else {
   =20
                    nPreviousGroupIndex =3D aItemGroups.length - 1;
   =20
                }
   =20
                aPreviousGroup =3D getPreviousArrayItem(aItemGroups,=20
                    nPreviousGroupIndex);
   =20
                oPreviousItem =3D getPreviousArrayItem(aPreviousGroup,=20
                        (aPreviousGroup.length - 1));
   =20
            }

            return (oPreviousItem.cfg.getProperty("disabled") ||=20
                oPreviousItem.element.style.display =3D=3D "none") ?=20
                oPreviousItem.getPreviousEnabledSibling() : =
oPreviousItem;

        }

    },


    /**
    * @method focus
    * @description Causes the menu item to receive the focus and fires =
the=20
    * focus event.
    */
    focus: function () {

        var oParent =3D this.parent,
            oAnchor =3D this._oAnchor,
            oActiveItem =3D oParent.activeItem,
            me =3D this;


        function setFocus() {

            try {

                if (YAHOO.env.ua.ie && !document.hasFocus()) {
               =20
                    return;
               =20
                }

                if (oActiveItem) {
   =20
                    oActiveItem.blurEvent.fire();
   =20
                }

                oAnchor.focus();
               =20
                me.focusEvent.fire();

            }
            catch(e) {
           =20
            }

        }


        if (!this.cfg.getProperty("disabled") && oParent &&=20
            oParent.cfg.getProperty("visible") &&=20
            this.element.style.display !=3D "none") {


            /*
                Setting focus via a timer fixes a race condition in =
Firefox, IE=20
                and Opera where the browser viewport jumps as it trys to =

                position and focus the menu.
            */

            window.setTimeout(setFocus, 0);

        }

    },


    /**
    * @method blur
    * @description Causes the menu item to lose focus and fires the=20
    * blur event.
    */   =20
    blur: function () {

        var oParent =3D this.parent;

        if (!this.cfg.getProperty("disabled") && oParent &&=20
            oParent.cfg.getProperty("visible")) {


            var me =3D this;
           =20
            window.setTimeout(function () {

                try {
   =20
                    me._oAnchor.blur();
                    me.blurEvent.fire();   =20

                }=20
                catch (e) {
               =20
                }
               =20
            }, 0);

        }

    },


    /**
    * @method hasFocus
    * @description Returns a boolean indicating whether or not the menu =
item
    * has focus.
    * @return {Boolean}
    */
    hasFocus: function () {
   =20
        return (YAHOO.widget.MenuManager.getFocusedMenuItem() =3D=3D =
this);
   =20
    },


	/**
    * @method destroy
	* @description Removes the menu item's <code>&#60;li&#62;</code> =
element=20
	* from its parent <code>&#60;ul&#62;</code> element.
	*/
    destroy: function () {

        var oEl =3D this.element,
            oSubmenu,
            oParentNode;

        if (oEl) {


            // If the item has a submenu, destroy it first

            oSubmenu =3D this.cfg.getProperty("submenu");

            if (oSubmenu) {
           =20
                oSubmenu.destroy();
           =20
            }


            // Remove CustomEvent listeners
   =20
            this.mouseOverEvent.unsubscribeAll();
            this.mouseOutEvent.unsubscribeAll();
            this.mouseDownEvent.unsubscribeAll();
            this.mouseUpEvent.unsubscribeAll();
            this.clickEvent.unsubscribeAll();
            this.keyPressEvent.unsubscribeAll();
            this.keyDownEvent.unsubscribeAll();
            this.keyUpEvent.unsubscribeAll();
            this.focusEvent.unsubscribeAll();
            this.blurEvent.unsubscribeAll();
            this.cfg.configChangedEvent.unsubscribeAll();


            // Remove the element from the parent node

            oParentNode =3D oEl.parentNode;

            if (oParentNode) {

                oParentNode.removeChild(oEl);

                this.destroyEvent.fire();

            }

            this.destroyEvent.unsubscribeAll();

        }

    },


    /**
    * @method toString
    * @description Returns a string representing the menu item.
    * @return {String}
    */
    toString: function () {

        var sReturnVal =3D "MenuItem",
            sId =3D this.id;

        if (sId) {
   =20
            sReturnVal +=3D (" " + sId);
       =20
        }

        return sReturnVal;
   =20
    }

};

Lang.augmentProto(MenuItem, YAHOO.util.EventProvider);

})();
(function () {


/**
* Creates a list of options or commands which are made visible in =
response to=20
* an HTML element's "contextmenu" event ("mousedown" for Opera).
*
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;div&#62;</code> element of the context menu.
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;select&#62;</code> element to be used as the data source =
for the=20
* context menu.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
* html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object =
specifying the=20
* <code>&#60;div&#62;</code> element of the context menu.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
* html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object =
specifying=20
* the <code>&#60;select&#62;</code> element to be used as the data =
source for=20
* the context menu.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the context menu. See configuration class =
documentation=20
* for more details.
* @class ContextMenu
* @constructor
* @extends YAHOO.widget.Menu
* @namespace YAHOO.widget
*/
YAHOO.widget.ContextMenu =3D function(p_oElement, p_oConfig) {

    YAHOO.widget.ContextMenu.superclass.constructor.call(this,=20
            p_oElement, p_oConfig);

};


var Event =3D YAHOO.util.Event,
    ContextMenu =3D YAHOO.widget.ContextMenu,



    /**
    * Constant representing the name of the ContextMenu's events
    * @property EVENT_TYPES
    * @private
    * @final
    * @type Object
    */
    EVENT_TYPES =3D {

        "TRIGGER_CONTEXT_MENU": "triggerContextMenu",
        "CONTEXT_MENU": (YAHOO.env.ua.opera ? "mousedown" : =
"contextmenu"),
        "CLICK": "click"

    },
   =20
   =20
    /**
    * Constant representing the ContextMenu's configuration properties
    * @property DEFAULT_CONFIG
    * @private
    * @final
    * @type Object
    */
    DEFAULT_CONFIG =3D {
   =20
        "TRIGGER": {=20
            key: "trigger",
            suppressEvent: true
        }
   =20
    };


/**
* @method position
* @description "beforeShow" event handler used to position the =
contextmenu.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {Array} p_aPos Array representing the xy position for the =
context menu.
*/
function position(p_sType, p_aArgs, p_aPos) {

    this.cfg.setProperty("xy", p_aPos);
   =20
    this.beforeShowEvent.unsubscribe(position, p_aPos);

}


YAHOO.lang.extend(ContextMenu, YAHOO.widget.Menu, {



// Private properties


/**
* @property _oTrigger
* @description Object reference to the current value of the "trigger"=20
* configuration property.
* @default null
* @private
* @type String|<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/leve
* l-one-html.html#ID-58190037">HTMLElement</a>|Array
*/
_oTrigger: null,


/**
* @property _bCancelled
* @description Boolean indicating if the display of the context menu =
should=20
* be cancelled.
* @default false
* @private
* @type Boolean
*/
_bCancelled: false,



// Public properties


/**
* @property contextEventTarget
* @description Object reference for the HTML element that was the target =
of the
* "contextmenu" DOM event ("mousedown" for Opera) that triggered the =
display of=20
* the context menu.
* @default null
* @type <a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
* html.html#ID-58190037">HTMLElement</a>
*/
contextEventTarget: null,



// Events


/**
* @event triggerContextMenuEvent
* @description Custom Event wrapper for the "contextmenu" DOM event=20
* ("mousedown" for Opera) fired by the element(s) that trigger the =
display of=20
* the context menu.
*/
triggerContextMenuEvent: null,



/**
* @method init
* @description The ContextMenu class's initialization method. This =
method is=20
* automatically called by the constructor, and sets up all DOM =
references for=20
* pre-existing markup, and creates required markup if it is not already =
present.
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;div&#62;</code> element of the context menu.
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;select&#62;</code> element to be used as the data source =
for=20
* the context menu.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
* html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object =
specifying the=20
* <code>&#60;div&#62;</code> element of the context menu.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-
* html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object =
specifying=20
* the <code>&#60;select&#62;</code> element to be used as the data =
source for=20
* the context menu.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the context menu. See configuration class =
documentation=20
* for more details.
*/
init: function(p_oElement, p_oConfig) {


    // Call the init of the superclass (YAHOO.widget.Menu)

    ContextMenu.superclass.init.call(this, p_oElement);


    this.beforeInitEvent.fire(ContextMenu);


    if(p_oConfig) {

        this.cfg.applyConfig(p_oConfig, true);

    }
   =20
   =20
    this.initEvent.fire(ContextMenu);
   =20
},


/**
* @method initEvents
* @description Initializes the custom events for the context menu.
*/
initEvents: function() {

	ContextMenu.superclass.initEvents.call(this);

    // Create custom events

    this.triggerContextMenuEvent =3D=20
        this.createEvent(EVENT_TYPES.TRIGGER_CONTEXT_MENU);

    this.triggerContextMenuEvent.signature =3D =
YAHOO.util.CustomEvent.LIST;

},


/**
* @method cancel
* @description Cancels the display of the context menu.
*/
cancel: function() {

    this._bCancelled =3D true;

},



// Private methods


/**
* @method _removeEventHandlers
* @description Removes all of the DOM event handlers from the HTML =
element(s)=20
* whose "context menu" event ("click" for Opera) trigger the display of=20
* the context menu.
* @private
*/
_removeEventHandlers: function() {

    var oTrigger =3D this._oTrigger;


    // Remove the event handlers from the trigger(s)

    if (oTrigger) {

        Event.removeListener(oTrigger, EVENT_TYPES.CONTEXT_MENU,=20
            this._onTriggerContextMenu);   =20
       =20
        if(YAHOO.env.ua.opera) {
       =20
            Event.removeListener(oTrigger, EVENT_TYPES.CLICK,=20
                this._onTriggerClick);
   =20
        }

    }

},



// Private event handlers



/**
* @method _onTriggerClick
* @description "click" event handler for the HTML element(s) identified =
as the=20
* "trigger" for the context menu.  Used to cancel default behaviors in =
Opera.
* @private
* @param {Event} p_oEvent Object representing the DOM event object =
passed back=20
* by the event utility (YAHOO.util.Event).
* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the =
context=20
* menu that is handling the event.
*/
_onTriggerClick: function(p_oEvent, p_oMenu) {

    if(p_oEvent.ctrlKey) {
   =20
        Event.stopEvent(p_oEvent);

    }
   =20
},


/**
* @method _onTriggerContextMenu
* @description "contextmenu" event handler ("mousedown" for Opera) for =
the HTML=20
* element(s) that trigger the display of the context menu.
* @private
* @param {Event} p_oEvent Object representing the DOM event object =
passed back=20
* by the event utility (YAHOO.util.Event).
* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the =
context=20
* menu that is handling the event.
*/
_onTriggerContextMenu: function(p_oEvent, p_oMenu) {

    if (p_oEvent.type =3D=3D "mousedown" && !p_oEvent.ctrlKey) {

        return;

    }


    var aXY;


    /*
        Prevent the browser's default context menu from appearing and=20
        stop the propagation of the "contextmenu" event so that=20
        other ContextMenu instances are not displayed.
    */

    Event.stopEvent(p_oEvent);


    this.contextEventTarget =3D Event.getTarget(p_oEvent);

    this.triggerContextMenuEvent.fire(p_oEvent);


    // Hide any other Menu instances that might be visible

    YAHOO.widget.MenuManager.hideVisible();
   =20


    if(!this._bCancelled) {

        // Position and display the context menu

        aXY =3D Event.getXY(p_oEvent);


        if (!YAHOO.util.Dom.inDocument(this.element)) {

            this.beforeShowEvent.subscribe(position, aXY);

        }
        else {

            this.cfg.setProperty("xy", aXY);
       =20
        }


        this.show();

    }

    this._bCancelled =3D false;

},



// Public methods


/**
* @method toString
* @description Returns a string representing the context menu.
* @return {String}
*/
toString: function() {

    var sReturnVal =3D "ContextMenu",
        sId =3D this.id;

    if(sId) {

        sReturnVal +=3D (" " + sId);
   =20
    }

    return sReturnVal;

},


/**
* @method initDefaultConfig
* @description Initializes the class's configurable properties which can =
be=20
* changed using the context menu's Config object ("cfg").
*/
initDefaultConfig: function() {

    ContextMenu.superclass.initDefaultConfig.call(this);

    /**
    * @config trigger
    * @description The HTML element(s) whose "contextmenu" event =
("mousedown"=20
    * for Opera) trigger the display of the context menu.  Can be a =
string=20
    * representing the id attribute of the HTML element, an object =
reference=20
    * for the HTML element, or an array of strings or HTML element =
references.
    * @default null
    * @type String|<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/
    * level-one-html.html#ID-58190037">HTMLElement</a>|Array
    */
    this.cfg.addProperty(DEFAULT_CONFIG.TRIGGER.key,=20
        {
            handler: this.configTrigger,=20
            suppressEvent: DEFAULT_CONFIG.TRIGGER.suppressEvent=20
        }
    );

},


/**
* @method destroy
* @description Removes the context menu's <code>&#60;div&#62;</code> =
element=20
* (and accompanying child nodes) from the document.
*/
destroy: function() {

    // Remove the DOM event handlers from the current trigger(s)

    this._removeEventHandlers();


    // Continue with the superclass implementation of this method

    ContextMenu.superclass.destroy.call(this);

},



// Public event handlers for configuration properties


/**
* @method configTrigger
* @description Event handler for when the value of the "trigger" =
configuration=20
* property changes.=20
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the =
context=20
* menu that fired the event.
*/
configTrigger: function(p_sType, p_aArgs, p_oMenu) {
   =20
    var oTrigger =3D p_aArgs[0];

    if(oTrigger) {

        /*
            If there is a current "trigger" - remove the event handlers=20
            from that element(s) before assigning new ones
        */

        if(this._oTrigger) {
       =20
            this._removeEventHandlers();

        }

        this._oTrigger =3D oTrigger;


        /*
            Listen for the "mousedown" event in Opera b/c it does not=20
            support the "contextmenu" event
        */=20
 =20
        Event.on(oTrigger, EVENT_TYPES.CONTEXT_MENU,=20
            this._onTriggerContextMenu, this, true);


        /*
            Assign a "click" event handler to the trigger element(s) for
            Opera to prevent default browser behaviors.
        */

        if(YAHOO.env.ua.opera) {
       =20
            Event.on(oTrigger, EVENT_TYPES.CLICK, this._onTriggerClick,=20
                this, true);

        }

    }
    else {
  =20
        this._removeEventHandlers();
   =20
    }
   =20
}

}); // END YAHOO.lang.extend

}());



/**
* Creates an item for a context menu.
*=20
* @param {String} p_oObject String specifying the text of the context =
menu item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object =
specifying the=20
* <code>&#60;li&#62;</code> element of the context menu item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object=20
* specifying the <code>&#60;optgroup&#62;</code> element of the context=20
* menu item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object =
specifying=20
* the <code>&#60;option&#62;</code> element of the context menu item.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the context menu item. See configuration class=20
* documentation for more details.
* @class ContextMenuItem
* @constructor
* @extends YAHOO.widget.MenuItem
* @deprecated As of version 2.4.0 items for YAHOO.widget.ContextMenu =
instances
* are of type YAHOO.widget.MenuItem.
*/
YAHOO.widget.ContextMenuItem =3D YAHOO.widget.MenuItem;
(function () {


/**
* Horizontal collection of items, each of which can contain a submenu.
*=20
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;div&#62;</code> element of the menu bar.
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;select&#62;</code> element to be used as the data source =
for the=20
* menu bar.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object =
specifying=20
* the <code>&#60;div&#62;</code> element of the menu bar.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object=20
* specifying the <code>&#60;select&#62;</code> element to be used as the =
data=20
* source for the menu bar.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the menu bar. See configuration class documentation =
for
* more details.
* @class MenuBar
* @constructor
* @extends YAHOO.widget.Menu
* @namespace YAHOO.widget
*/
YAHOO.widget.MenuBar =3D function(p_oElement, p_oConfig) {

    YAHOO.widget.MenuBar.superclass.constructor.call(this,=20
        p_oElement, p_oConfig);

};


/**
* @method checkPosition
* @description Checks to make sure that the value of the "position" =
property=20
* is one of the supported strings. Returns true if the position is =
supported.
* @private
* @param {Object} p_sPosition String specifying the position of the =
menu.
* @return {Boolean}
*/
function checkPosition(p_sPosition) {

    if (typeof p_sPosition =3D=3D "string") {

        return ("dynamic,static".indexOf((p_sPosition.toLowerCase())) =
!=3D -1);

    }

}


var Event =3D YAHOO.util.Event,
    MenuBar =3D YAHOO.widget.MenuBar,

    /**
    * Constant representing the MenuBar's configuration properties
    * @property DEFAULT_CONFIG
    * @private
    * @final
    * @type Object
    */
    DEFAULT_CONFIG =3D {
   =20
        "POSITION": {=20
            key: "position",=20
            value: "static",=20
            validator: checkPosition,=20
            supercedes: ["visible"]=20
        },=20
   =20
        "SUBMENU_ALIGNMENT": {=20
            key: "submenualignment",=20
            value: ["tl","bl"],
            suppressEvent: true=20
        },
   =20
        "AUTO_SUBMENU_DISPLAY": {=20
            key: "autosubmenudisplay",=20
            value: false,=20
            validator: YAHOO.lang.isBoolean,
            suppressEvent: true
        }
   =20
    };



YAHOO.lang.extend(MenuBar, YAHOO.widget.Menu, {

/**
* @method init
* @description The MenuBar class's initialization method. This method is =

* automatically called by the constructor, and sets up all DOM =
references for=20
* pre-existing markup, and creates required markup if it is not already =
present.
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;div&#62;</code> element of the menu bar.
* @param {String} p_oElement String specifying the id attribute of the=20
* <code>&#60;select&#62;</code> element to be used as the data source =
for the=20
* menu bar.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object =
specifying=20
* the <code>&#60;div&#62;</code> element of the menu bar.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object=20
* specifying the <code>&#60;select&#62;</code> element to be used as the =
data=20
* source for the menu bar.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the menu bar. See configuration class documentation =
for
* more details.
*/
init: function(p_oElement, p_oConfig) {

    if(!this.ITEM_TYPE) {

        this.ITEM_TYPE =3D YAHOO.widget.MenuBarItem;

    }


    // Call the init of the superclass (YAHOO.widget.Menu)

    MenuBar.superclass.init.call(this, p_oElement);


    this.beforeInitEvent.fire(MenuBar);


    if(p_oConfig) {

        this.cfg.applyConfig(p_oConfig, true);

    }

    this.initEvent.fire(MenuBar);

},



// Constants


/**
* @property CSS_CLASS_NAME
* @description String representing the CSS class(es) to be applied to =
the menu=20
* bar's <code>&#60;div&#62;</code> element.
* @default "yuimenubar"
* @final
* @type String
*/
CSS_CLASS_NAME: "yuimenubar",



// Protected event handlers


/**
* @method _onKeyDown
* @description "keydown" Custom Event handler for the menu bar.
* @private
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu =
bar=20
* that fired the event.
*/
_onKeyDown: function(p_sType, p_aArgs, p_oMenuBar) {

    var oEvent =3D p_aArgs[0],
        oItem =3D p_aArgs[1],
        oSubmenu,
        oItemCfg,
        oNextItem;


    if(oItem && !oItem.cfg.getProperty("disabled")) {

        oItemCfg =3D oItem.cfg;

        switch(oEvent.keyCode) {
   =20
            case 37:    // Left arrow
            case 39:    // Right arrow
   =20
                if(oItem =3D=3D this.activeItem &&=20
                    !oItemCfg.getProperty("selected")) {
   =20
                    oItemCfg.setProperty("selected", true);
   =20
                }
                else {
   =20
                    oNextItem =3D (oEvent.keyCode =3D=3D 37) ?=20
                        oItem.getPreviousEnabledSibling() :=20
                        oItem.getNextEnabledSibling();
           =20
                    if(oNextItem) {
   =20
                        this.clearActiveItem();
   =20
                        oNextItem.cfg.setProperty("selected", true);
   =20
   =20
                        if(this.cfg.getProperty("autosubmenudisplay")) {
                       =20
                            oSubmenu =3D =
oNextItem.cfg.getProperty("submenu");
                           =20
                            if(oSubmenu) {
                       =20
                                oSubmenu.show();
                           =20
                            }
               =20
                        }          =20
   =20
                        oNextItem.focus();
   =20
                    }
   =20
                }
   =20
                Event.preventDefault(oEvent);
   =20
            break;
   =20
            case 40:    // Down arrow
   =20
                if(this.activeItem !=3D oItem) {
   =20
                    this.clearActiveItem();
   =20
                    oItemCfg.setProperty("selected", true);
                    oItem.focus();
               =20
                }
   =20
                oSubmenu =3D oItemCfg.getProperty("submenu");
   =20
                if(oSubmenu) {
   =20
                    if(oSubmenu.cfg.getProperty("visible")) {
   =20
                        oSubmenu.setInitialSelection();
                        oSubmenu.setInitialFocus();
                   =20
                    }
                    else {
   =20
                        oSubmenu.show();
                   =20
                    }
   =20
                }
   =20
                Event.preventDefault(oEvent);
   =20
            break;
   =20
        }

    }


    if(oEvent.keyCode =3D=3D 27 && this.activeItem) { // Esc key

        oSubmenu =3D this.activeItem.cfg.getProperty("submenu");

        if(oSubmenu && oSubmenu.cfg.getProperty("visible")) {
       =20
            oSubmenu.hide();
            this.activeItem.focus();
       =20
        }
        else {

            this.activeItem.cfg.setProperty("selected", false);
            this.activeItem.blur();
   =20
        }

        Event.preventDefault(oEvent);
   =20
    }

},


/**
* @method _onClick
* @description "click" event handler for the menu bar.
* @protected
* @param {String} p_sType String representing the name of the event that =

* was fired.
* @param {Array} p_aArgs Array of arguments sent when the event was =
fired.
* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu =
bar=20
* that fired the event.
*/
_onClick: function(p_sType, p_aArgs, p_oMenuBar) {

    MenuBar.superclass._onClick.call(this, p_sType, p_aArgs, =
p_oMenuBar);

    var oItem =3D p_aArgs[1],
        oEvent,
        oTarget,
        oActiveItem,
        oConfig,
        oSubmenu;
   =20

    if(oItem && !oItem.cfg.getProperty("disabled")) {

        oEvent =3D p_aArgs[0];
        oTarget =3D Event.getTarget(oEvent);
        oActiveItem =3D this.activeItem;
        oConfig =3D this.cfg;


        // Hide any other submenus that might be visible
   =20
        if(oActiveItem && oActiveItem !=3D oItem) {
   =20
            this.clearActiveItem();
   =20
        }

   =20
        oItem.cfg.setProperty("selected", true);
   =20

        // Show the submenu for the item
   =20
        oSubmenu =3D oItem.cfg.getProperty("submenu");


        if(oSubmenu) {
       =20
            if(oSubmenu.cfg.getProperty("visible")) {
           =20
                oSubmenu.hide();
           =20
            }
            else {
           =20
                oSubmenu.show();                   =20
           =20
            }
       =20
        }
   =20
    }

},



// Public methods


/**
* @method toString
* @description Returns a string representing the menu bar.
* @return {String}
*/
toString: function() {

    var sReturnVal =3D "MenuBar",
        sId =3D this.id;

    if(sId) {

        sReturnVal +=3D (" " + sId);
   =20
    }

    return sReturnVal;

},


/**
* @description Initializes the class's configurable properties which can =
be
* changed using the menu bar's Config object ("cfg").
* @method initDefaultConfig
*/
initDefaultConfig: function() {

    MenuBar.superclass.initDefaultConfig.call(this);

    var oConfig =3D this.cfg;

	// Add configuration properties


    /*
        Set the default value for the "position" configuration property
        to "static" by re-adding the property.
    */


    /**
    * @config position
    * @description String indicating how a menu bar should be positioned =
on the=20
    * screen.  Possible values are "static" and "dynamic."  Static menu =
bars=20
    * are visible by default and reside in the normal flow of the =
document=20
    * (CSS position: static).  Dynamic menu bars are hidden by default, =
reside
    * out of the normal flow of the document (CSS position: absolute), =
and can=20
    * overlay other elements on the screen.
    * @default static
    * @type String
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.POSITION.key,=20
        {
            handler: this.configPosition,=20
            value: DEFAULT_CONFIG.POSITION.value,=20
            validator: DEFAULT_CONFIG.POSITION.validator,
            supercedes: DEFAULT_CONFIG.POSITION.supercedes
        }
    );


    /*
        Set the default value for the "submenualignment" configuration =
property
        to ["tl","bl"] by re-adding the property.
    */

    /**
    * @config submenualignment
    * @description Array defining how submenus should be aligned to =
their=20
    * parent menu bar item. The format is: [itemCorner, submenuCorner].
    * @default ["tl","bl"]
    * @type Array
    */
    oConfig.addProperty(
        DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key,=20
        {
            value: DEFAULT_CONFIG.SUBMENU_ALIGNMENT.value,
            suppressEvent: =
DEFAULT_CONFIG.SUBMENU_ALIGNMENT.suppressEvent
        }
    );


    /*
        Change the default value for the "autosubmenudisplay" =
configuration=20
        property to "false" by re-adding the property.
    */

    /**
    * @config autosubmenudisplay
    * @description Boolean indicating if submenus are automatically made =

    * visible when the user mouses over the menu bar's items.
    * @default false
    * @type Boolean
    */
	oConfig.addProperty(
	   DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.key,=20
	   {
	       value: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value,=20
	       validator: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator,
	       suppressEvent: DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.suppressEvent
       }=20
    );

}
=20
}); // END YAHOO.lang.extend

}());



/**
* Creates an item for a menu bar.
*=20
* @param {String} p_oObject String specifying the text of the menu bar =
item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object =
specifying the=20
* <code>&#60;li&#62;</code> element of the menu bar item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object=20
* specifying the <code>&#60;optgroup&#62;</code> element of the menu bar =
item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object =
specifying=20
* the <code>&#60;option&#62;</code> element of the menu bar item.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the menu bar item. See configuration class =
documentation=20
* for more details.
* @class MenuBarItem
* @constructor
* @extends YAHOO.widget.MenuItem
*/
YAHOO.widget.MenuBarItem =3D function(p_oObject, p_oConfig) {

    YAHOO.widget.MenuBarItem.superclass.constructor.call(this,=20
        p_oObject, p_oConfig);

};

YAHOO.lang.extend(YAHOO.widget.MenuBarItem, YAHOO.widget.MenuItem, {



/**
* @method init
* @description The MenuBarItem class's initialization method. This =
method is=20
* automatically called by the constructor, and sets up all DOM =
references for=20
* pre-existing markup, and creates required markup if it is not already =
present.
* @param {String} p_oObject String specifying the text of the menu bar =
item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object =
specifying the=20
* <code>&#60;li&#62;</code> element of the menu bar item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object=20
* specifying the <code>&#60;optgroup&#62;</code> element of the menu bar =
item.
* @param {<a =
href=3D"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object =
specifying=20
* the <code>&#60;option&#62;</code> element of the menu bar item.
* @param {Object} p_oConfig Optional. Object literal specifying the=20
* configuration for the menu bar item. See configuration class =
documentation=20
* for more details.
*/
init: function(p_oObject, p_oConfig) {

    if(!this.SUBMENU_TYPE) {

        this.SUBMENU_TYPE =3D YAHOO.widget.Menu;

    }


    /*=20
        Call the init of the superclass (YAHOO.widget.MenuItem)
        Note: We don't pass the user config in here yet=20
        because we only want it executed once, at the lowest=20
        subclass level.
    */=20

    YAHOO.widget.MenuBarItem.superclass.init.call(this, p_oObject); =20


    var oConfig =3D this.cfg;

    if(p_oConfig) {

        oConfig.applyConfig(p_oConfig, true);

    }

    oConfig.fireQueue();

},



// Constants


/**
* @property CSS_CLASS_NAME
* @description String representing the CSS class(es) to be applied to =
the=20
* <code>&#60;li&#62;</code> element of the menu bar item.
* @default "yuimenubaritem"
* @final
* @type String
*/
CSS_CLASS_NAME: "yuimenubaritem",


/**
* @property CSS_LABEL_CLASS_NAME
* @description String representing the CSS class(es) to be applied to =
the=20
* menu bar item's <code>&#60;a&#62;</code> element.
* @default "yuimenubaritemlabel"
* @final
* @type String
*/
CSS_LABEL_CLASS_NAME: "yuimenubaritemlabel",



// Public methods


/**
* @method toString
* @description Returns a string representing the menu bar item.
* @return {String}
*/
toString: function() {

    var sReturnVal =3D "MenuBarItem";

    if(this.cfg && this.cfg.getProperty("text")) {

        sReturnVal +=3D (": " + this.cfg.getProperty("text"));

    }

    return sReturnVal;

}
   =20
}); // END YAHOO.lang.extend
YAHOO.register("menu", YAHOO.widget.Menu, {version: "2.5.1", build: =
"984"});

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://d8.zedo.com/jsc/d8/fo.js

//  Copyright (c) 2000-2010 ZEDO Inc. All Rights Reserved.=0A=
function U1(){=0A=
var y0=3Dnavigator.userAgent.toLowerCase();var =
w5=3D(y0.indexOf('mac')!=3D-1);var z7=3DparseInt(navigator.appVersion);=0A=
var =
x3=3D(!w5&&(y0.indexOf('opera')=3D=3D-1)&&(y0.indexOf('msie')!=3D-1)&&(z7=
>=3D4)&&(y0.indexOf('webtv')=3D=3D-1)&&(y0.indexOf('msie 4')=3D=3D-1));=0A=
if(x3){=0A=
document.writeln('<scr'+'ipt language=3DVBS'+'cript>');=0A=
document.writeln('on error resume next');=0A=
document.writeln('r0=3DIsObject(CreateObject("ShockwaveFlash.ShockwaveFla=
sh.5"))');=0A=
document.writeln('if(r0<=3D0)then =
r0=3DIsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))');=0A=
document.writeln('</scr'+'ipt>');=0A=
}=0A=
else if(navigator.mimeTypes&&=0A=
navigator.mimeTypes["application/x-shockwave-flash"]&&=0A=
navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){=0A=
if(navigator.plugins&&navigator.plugins["Shockwave Flash"]){=0A=
var p2=3Dnavigator.plugins["Shockwave Flash"].description;=0A=
if(parseInt(p2.substring(p2.indexOf(".")-2))>=3D4){=0A=
r0=3D1;=0A=
}}}=0A=
var a3=3Dnavigator.javaEnabled();var n0=3D1;=0A=
if(a3){n0 |=3D4;}=0A=
if(r0){n0 |=3D8;}=0A=
if(x3){=0A=
if(document.documentElement){=0A=
document.documentElement.style.behavior=3D'url(#default#clientCaps)';=0A=
if(document.documentElement.connectionType=3D=3D'lan'){=0A=
n0 |=3D16;=0A=
}}=0A=
else if(document.body){=0A=
document.body.style.behavior=3D'url(#default#clientCaps)';=0A=
if(document.body.connectionType=3D=3D'lan'){=0A=
n0 |=3D16;=0A=
}}}=0A=
return n0;=0A=
}=0A=
function B1(){=0A=
var z5=3Dnew =
Array('d1','d2','d3','d4','d5','d6','d7','d8','d9','da','db','dc','dd','d=
e','df');=0A=
return z5;=0A=
}=0A=
var o0=3D0;var v0=3D0;var z0=3D'0';var e0=3D0;var d3=3D'';var =
zd_$=3D'';var r0=3D0;var w1=3D'';var d2=3D'';var x2=3D'';var t2=3D"";var =
r5=3D'';var a5=3D'';var x0=3Dnew Array();var q0=3D'';var a7=3D0;=0A=
if(typeof zflag_nid!=3D'undefined'){=0A=
o0=3Dzflag_nid;=0A=
zflag_nid=3D0;=0A=
}=0A=
if(typeof zflag_sid!=3D'undefined'){=0A=
v0=3Dzflag_sid;=0A=
zflag_sid=3D0;=0A=
}=0A=
if(typeof zflag_cid!=3D'undefined'){=0A=
z0=3Dzflag_cid;=0A=
if(z0<0||z0>999999){=0A=
z0=3D0;=0A=
}=0A=
zflag_cid=3D0;=0A=
}=0A=
if(typeof zflag_chanlimits!=3D'undefined'){=0A=
a7=3Dzflag_chanlimits;=0A=
zflag_chanlimits=3D0;=0A=
}=0A=
if(typeof zflag_sz!=3D'undefined'){=0A=
e0=3Dzflag_sz;=0A=
if(e0<0||e0>95){=0A=
e0=3D0;=0A=
}=0A=
zflag_sz=3D0;=0A=
}=0A=
if(typeof zflag_kw!=3D'undefined'){=0A=
zflag_kw=3Dzflag_kw.replace(/&/g,'zzazz');=0A=
d3=3Descape(zflag_kw);=0A=
zflag_kw=3D"";=0A=
}=0A=
if(typeof zflag_$!=3D'undefined'){=0A=
zd_$=3Dzflag_$;=0A=
zflag_$=3D'';=0A=
}=0A=
if(typeof zflag_geo!=3D'undefined'){=0A=
if(!isNaN(zflag_geo)){=0A=
d2=3D"&g=3D"+zflag_geo;=0A=
zflag_geo=3D0;=0A=
}}=0A=
if(typeof zflag_param!=3D'undefined'){=0A=
t2=3D"&p=3D"+zflag_param;=0A=
zflag_param=3D"";=0A=
}=0A=
if(typeof zflag_click!=3D'undefined'){=0A=
zzTrd=3Descape(zflag_click);=0A=
x2=3D'&l=3D'+zzTrd;=0A=
zflag_click=3D"";=0A=
}=0A=
if(typeof zflag_hasAd!=3D'undefined'){=0A=
r5=3D'&y=3D'+zflag_hasAd;=0A=
}=0A=
if(typeof zflag_num!=3D'undefined'){=0A=
a5=3Dzflag_num;=0A=
zflag_num=3D0;=0A=
}=0A=
if(typeof zflag_ck!=3D'undefined'){=0A=
q0=3D'&ck=3D'+zflag_ck;=0A=
zflag_ck=3D0;=0A=
}=0A=
x0=3DB1();=0A=
for(var i=3D0;i<x0.length;i++){=0A=
if(eval('typeof(zflag_'+x0[i]+')!=3D"undefined"')){=0A=
q0=3Dq0+'&'+x0[i]+'=3D'+eval('zflag_'+x0[i]);=0A=
eval('zflag_'+x0[i]+'=3D"";');=0A=
}}=0A=
var zzStr=3D'';=0A=
if(typeof zzCountry=3D=3D'undefined'){=0A=
var zzCountry=3D255;}=0A=
if(typeof zzMetro=3D=3D'undefined'){=0A=
var zzMetro=3D0;}=0A=
if(typeof zzState=3D=3D'undefined'){=0A=
var zzState=3D0;}var zzSection=3Dv0;var zzD=3Dwindow.document;var =
zzRand=3D(Math.floor(Math.random()* 1000000)% 10000);var =
zzCustom=3D'';var zzPat=3D'';var zzSkip=3D'';var zzExp=3D'';var =
zzTrd=3D'';var zzPos=3D0;=0A=
var zzNw=3D0;var zzCh=3D0;var zzDmCodes=3Dnew Array();var =
zzDmValues=3Dnew Array();var zzBr=3D99;var zzLang=3D99;var =
zzAGrp=3D0;var zzAct=3Dnew Array();var zzActVal=3Dnew Array();=0A=
w1=3DU1();=0A=
if(w1<0||w1>31){=0A=
w1=3D1;=0A=
}=0A=
c0=3D'<scr'+'ipt language=3D"JavaScript" =
src=3D"http://d7.zedo.com/bar/v16-201/d8/jsc/fm.js?c=3D'+z0+'&a=3D'+a7+'&=
f=3D'+a5+'&n=3D'+o0+'&r=3D'+w1+'&d=3D'+e0+'&q=3D'+d3+'&$=3D'+zd_$+'&s=3D'=
+v0+d2+t2+x2+r5+q0+'&z=3D'+Math.random()+'"></scr'+'ipt>';=0A=
document.write(c0);=0A=

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://imshare.rediff.com/js/rediff_sharejs_v2.0.js?site=deccanherald&img=7

var SHARE_version=3D 1;=0A=
var SHARE_url =3D "http://imshare.rediff.com/js/";=0A=
var SHARE_navgtr =3D navigator.userAgent.toLowerCase();=0A=
var SHARE_osbr =3D {win:/windows/.test(SHARE_navgtr),xp:/windows nt =
5.1/.test(SHARE_navgtr)||/windows nt 5.2/.test(SHARE_navgtr),osx:/os =
x/.test(SHARE_navgtr),chr:/chrome/.test(SHARE_navgtr),iph:/iphone/.test(S=
HARE_navgtr),ipa:/ipad/.test(SHARE_navgtr),saf:/safari/.test(SHARE_navgtr=
),web:/webkit/.test(SHARE_navgtr),opr:/opera/.test(SHARE_navgtr),msi:(/ms=
ie/.test(SHARE_navgtr))&&!(/opera/.test(SHARE_navgtr)),ffx:/firefox/.test=
(SHARE_navgtr),ff2:/firefox\/2/.test(SHARE_navgtr),ie6:/msie =
6.0/.test(SHARE_navgtr),ie7:/msie 7.0/.test(SHARE_navgtr),mod:-1}=0A=
var SHARE_osbrdata =3D "";=0A=
var SHARE_query =3D "";=0A=
for(var i in SHARE_osbr){if(SHARE_osbr[i] =3D=3D true){SHARE_osbrdata =
+=3D "|"+i;}}=0A=
=0A=
var myScript =3D document.getElementById('share_rediff');=0A=
function SHARE_REDIFF_getparams(myScript,key){=0A=
	var queryString,gy,ft;=0A=
	if(myScript)=0A=
	{	queryString =3D myScript.src.replace(/^[^\?]+\??/,'');=0A=
		gy =3D queryString.split("&");=0A=
		for (i=3D0;i<gy.length;i++) {=0A=
			ft =3D gy[i].split("=3D");=0A=
			if (ft[0] =3D=3D key) {=0A=
			return ft[1];=0A=
			}=0A=
		}=0A=
	}=0A=
	else{=0A=
		return '';=0A=
	}=0A=
}=0A=
if(SHARE_query)=0A=
{	SHARE_query +=3D 'UA=3D' + encodeURIComponent(SHARE_osbrdata);=0A=
}=0A=
document.write('<SC'+'RIPT LANGUAGE=3DJavaScript1.1 =
SRC=3D"'+SHARE_url+'rediff_getshare.js?'+SHARE_query+'"><\/SCRIPT>');
------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: 7bit
Content-Location: http://174.133.94.26/Openads/adpopup.php?n=a2fceaf4&clientid=71


------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.cricbuzz.com/livescore/dh/lv_scag_ren.php


crbz_scag_url =3D '';
crbz_scag_error_handler =3D window.onerror;

function crbz_show_scag() {
  var w =3D window;
  w.onerror =3D w.crbz_scag_error_handler;
  w.crbz_scag_height =3D 150;
  w.crbz_scag_url =3D =
'http://www.cricbuzz.com/livescore/data/crbz-31719180dhp05/2010/2010_ENG_=
PAK/ENG_PAK_AUG26_AUG30/gen_scag.html';
  w.crbz_scag_dtllinknm =3D 'SCORECARD WITH LIVE COMMENTARY';

  document.write('<ifr' + 'ame' +
   		 ' name=3Dcrbz_iframe_scag' +
                 ' width=3D' + w.crbz_scag_width +
                 ' height=3D' + w.crbz_scag_height +
                 ' frameborder=3D' + w.crbz_scag_frameborder +
                 ' src=3D"' + w.crbz_scag_url + '"' +
                 ' marginwidth=3D0' +
                 ' marginheight=3D0' +
                 ' vspace=3D0' +
                 ' hspace=3D0' +
                 ' allowtransparency=3Dtrue' +
                 ' scrolling=3Dno></ifr' + 'ame>');
 document.write('<table width=3D"100%"><tr><td align=3D"right"><a =
href=3D' + w.crbz_scag_dtlpage + ' class=3D"syn_link" style=3D"font: =
bold 9px Verdana;">' +
  		 w.crbz_scag_dtllinknm +
  		 '</a></td></tr></table>');
  w.crbz_scag_frameborder =3D null;
}

function crbz_error_handler(message, url, line) {
  crbz_show_scag();
  return true;
}

window.onerror =3D crbz_error_handler;

if (window.crbz_scag_frameborder =3D=3D null) {
  crbz_scag_frameborder =3D 0;
}

if (window.crbz_scag_dtlpage =3D=3D null) {
  crbz_scag_dtlpage =3D "/";
}

if (window.crbz_scag_dtllinknm =3D=3D null) {
  crbz_scag_dtllinknm =3D "Score Page";
}

if (window.crbz_scag_height =3D=3D null) {
	crbz_scag_height =3D "150";
}

crbz_show_scag();

------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.deccanherald.com/Openads/adx.js

function phpads_deliverActiveX(content)=0A=
{=0A=
	document.write(content);	=0A=
}
------=_NextPart_000_0000_01CB4AF6.0F920870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://pagead2.googlesyndication.com/pagead/show_ads.js

=0A=
(function(){var h=3Dtrue,i=3Dnull,j=3Dfalse,k=3D(new =
Date).getTime(),ca=3Dfunction(a){var b=3D(new =
Date).getTime()-k;b=3D"&dtd=3D"+(b<1E4?b:"M");return a+b};var =
m=3Dthis,da=3Dfunction(a,b,c){a=3Da.split(".");c=3Dc||m;!(a[0]in =
c)&&c.execScript&&c.execScript("var "+a[0]);for(var =
d;a.length&&(d=3Da.shift());)if(!a.length&&b!=3D=3Dundefined)c[d]=3Db;els=
e c=3Dc[d]?c[d]:c[d]=3D{}},ea=3Dfunction(a){var b=3Dtypeof =
a;if(b=3D=3D"object")if(a){if(a instanceof Array||!(a instanceof =
Object)&&Object.prototype.toString.call(a)=3D=3D"[object Array]"||typeof =
a.length=3D=3D"number"&&typeof a.splice!=3D"undefined"&&typeof =
a.propertyIsEnumerable!=3D"undefined"&&!a.propertyIsEnumerable("splice"))=
return"array";=0A=
if(!(a instanceof =
Object)&&(Object.prototype.toString.call(a)=3D=3D"[object =
Function]"||typeof a.call!=3D"undefined"&&typeof =
a.propertyIsEnumerable!=3D"undefined"&&!a.propertyIsEnumerable("call")))r=
eturn"function"}else return"null";else if(b=3D=3D"function"&&typeof =
a.call=3D=3D"undefined")return"object";return b},n=3Dfunction(a){return =
ea(a)=3D=3D"array"},fa=3Dfunction(a){var b=3Dea(a);return =
b=3D=3D"array"||b=3D=3D"object"&&typeof =
a.length=3D=3D"number"},o=3Dfunction(a){return typeof =
a=3D=3D"string"},ga=3Dfunction(a){a=3Dea(a);return a=3D=3D"object"||=0A=
a=3D=3D"array"||a=3D=3D"function"},p=3Dfunction(a,b){var =
c=3Db||m;if(arguments.length>2){var =
d=3DArray.prototype.slice.call(arguments,2);return function(){var =
e=3DArray.prototype.slice.call(arguments);Array.prototype.unshift.apply(e=
,d);return a.apply(c,e)}}else return function(){return =
a.apply(c,arguments)}},ha=3Dfunction(a){var =
b=3DArray.prototype.slice.call(arguments,1);return function(){var =
c=3DArray.prototype.slice.call(arguments);c.unshift.apply(c,b);return =
a.apply(this,c)}},q=3Dfunction(a,b,c){da(a,b,c)},ia=3Dfunction(a,=0A=
b,c){a[b]=3Dc};var r=3Dfunction(a,b){var c=3DparseFloat(a);return =
isNaN(c)||c>1||c<0?b:c},ja=3Dfunction(a,b){if(a=3D=3D"true")return =
h;if(a=3D=3D"false")return j;return =
b},ka=3D/^([\w-]+\.)*([\w-]{2,})(\:[0-9]+)?$/,la=3Dfunction(a,b){if(!a)re=
turn b;var c=3Da.match(ka);return c?c[0]:b};var ma=3Dfunction(){return =
la("","googleads.g.doubleclick.net")},na=3Dfunction(){return =
la("","pagead2.googlesyndication.com")},s=3Dfunction(){return =
la("","pagead2.googlesyndication.com")};var =
ta=3Dfunction(a,b){if(b)return =
a.replace(oa,"&amp;").replace(pa,"&lt;").replace(qa,"&gt;").replace(ra,"&=
quot;");else{if(!sa.test(a))return =
a;if(a.indexOf("&")!=3D-1)a=3Da.replace(oa,"&amp;");if(a.indexOf("<")!=3D=
-1)a=3Da.replace(pa,"&lt;");if(a.indexOf(">")!=3D-1)a=3Da.replace(qa,"&gt=
;");if(a.indexOf('"')!=3D-1)a=3Da.replace(ra,"&quot;");return =
a}},oa=3D/&/g,pa=3D/</g,qa=3D/>/g,ra=3D/\"/g,sa=3D/[&<>\"]/,wa=3Dfunction=
(a){if(a.indexOf("&")!=3D-1)return"document"in =
m&&a.indexOf("<")=3D=3D-1?ua(a):va(a);return a},ua=3Dfunction(a){var b=3D=0A=
m.document.createElement("a");b.innerHTML=3Da;b.normalize&&b.normalize();=
a=3Db.firstChild.nodeValue;b.innerHTML=3D"";return =
a},va=3Dfunction(a){return =
a.replace(/&([^;]+);/g,function(b,c){switch(c){case "amp":return"&";case =
"lt":return"<";case "gt":return">";case =
"quot":return'"';default:if(c.charAt(0)=3D=3D"#"){var =
d=3DNumber("0"+c.substr(1));if(!isNaN(d))return =
String.fromCharCode(d)}return b}})},xa=3Dfunction(a,b){for(var =
c=3Db.length,d=3D0;d<c;d++){var =
e=3Dc=3D=3D1?b:b.charAt(d);if(a.charAt(0)=3D=3De&&a.charAt(a.length-1)=3D=
=3D=0A=
e)return a.substring(1,a.length-1)}return =
a},ya=3D{"\u0000":"\\0","\u0008":"\\b","\u000c":"\\f","\n":"\\n","\r":"\\=
r","\t":"\\t","\u000b":"\\x0B",'"':'\\"',"\\":"\\\\"},za=3D{"'":"\\'"},Ba=
=3Dfunction(a){a=3DString(a);if(a.quote)return a.quote();else{for(var =
b=3D['"'],c=3D0;c<a.length;c++){var =
d=3Da.charAt(c),e=3Dd.charCodeAt(0);b[c+1]=3Dya[d]||(e>31&&e<127?d:Aa(d))=
}b.push('"');return b.join("")}},Aa=3Dfunction(a){if(a in za)return =
za[a];if(a in ya)return za[a]=3Dya[a];var =
b=3Da,c=3Da.charCodeAt(0);if(c>31&&c<127)b=3Da;else{if(c<=0A=
256){b=3D"\\x";if(c<16||c>256)b+=3D"0"}else{b=3D"\\u";if(c<4096)b+=3D"0"}=
b+=3Dc.toString(16).toUpperCase()}return =
za[a]=3Db},Da=3Dfunction(a,b){for(var =
c=3D0,d=3DString(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),e=3DS=
tring(b).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),f=3DMath.max(d.l=
ength,e.length),g=3D0;c=3D=3D0&&g<f;g++){var =
l=3Dd[g]||"",$=3De[g]||"",R=3DRegExp("(\\d*)(\\D*)","g"),Bc=3DRegExp("(\\=
d*)(\\D*)","g");do{var =
aa=3DR.exec(l)||["","",""],ba=3DBc.exec($)||["","",""];if(aa[0].length=3D=
=3D0&&ba[0].length=3D=3D0)break;c=3Daa[1].length=3D=3D=0A=
0?0:parseInt(aa[1],10);var =
Cc=3Dba[1].length=3D=3D0?0:parseInt(ba[1],10);c=3DCa(c,Cc)||Ca(aa[2].leng=
th=3D=3D0,ba[2].length=3D=3D0)||Ca(aa[2],ba[2])}while(c=3D=3D0)}return =
c},Ca=3Dfunction(a,b){if(a<b)return-1;else if(a>b)return 1;return 0};var =
t=3DArray.prototype,Ea=3Dt.indexOf?function(a,b,c){return =
t.indexOf.call(a,b,c)}:function(a,b,c){c=3Dc=3D=3Di?0:c<0?Math.max(0,a.le=
ngth+c):c;if(o(a)){if(!o(b)||b.length!=3D1)return-1;return =
a.indexOf(b,c)}for(c=3Dc;c<a.length;c++)if(c in a&&a[c]=3D=3D=3Db)return =
c;return-1},Fa=3Dt.forEach?function(a,b,c){t.forEach.call(a,b,c)}:functio=
n(a,b,c){for(var d=3Da.length,e=3Do(a)?a.split(""):a,f=3D0;f<d;f++)f in =
e&&b.call(c,e[f],f,a)},Ga=3Dfunction(){return =
t.concat.apply(t,arguments)},Ha=3Dfunction(a){if(n(a))return =
Ga(a);else{for(var b=3D=0A=
[],c=3D0,d=3Da.length;c<d;c++)b[c]=3Da[c];return =
b}},Ia=3Dfunction(a,b,c){return =
arguments.length<=3D2?t.slice.call(a,b):t.slice.call(a,b,c)};var =
Ja=3Dfunction(a,b){this.x=3Da!=3D=3Dundefined?a:0;this.y=3Db!=3D=3Dundefi=
ned?b:0};var =
u=3Dfunction(a,b){this.width=3Da;this.height=3Db};u.prototype.ceil=3Dfunc=
tion(){this.width=3DMath.ceil(this.width);this.height=3DMath.ceil(this.he=
ight);return =
this};u.prototype.floor=3Dfunction(){this.width=3DMath.floor(this.width);=
this.height=3DMath.floor(this.height);return =
this};u.prototype.round=3Dfunction(){this.width=3DMath.round(this.width);=
this.height=3DMath.round(this.height);return =
this};u.prototype.scale=3Dfunction(a){this.width*=3Da;this.height*=3Da;re=
turn this};var Ka=3Dfunction(a,b,c){for(var d in =
a)b.call(c,a[d],d,a)},La=3D["constructor","hasOwnProperty","isPrototypeOf=
","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ma=3Dfunc=
tion(a){for(var b,c,d=3D1;d<arguments.length;d++){c=3Darguments[d];for(b =
in c)a[b]=3Dc[b];for(var =
e=3D0;e<La.length;e++){b=3DLa[e];if(Object.prototype.hasOwnProperty.call(=
c,b))a[b]=3Dc[b]}}};var v,Na,Oa,Pa,Qa,Ra,Sa,Ta,Ua,Va=3Dfunction(){return =
m.navigator?m.navigator.userAgent:i},Wa=3Dfunction(){return =
m.navigator},Xa=3Dfunction(){Qa=3DPa=3DOa=3DNa=3Dv=3Dj;var =
a;if(a=3DVa()){var =
b=3DWa();v=3Da.indexOf("Opera")=3D=3D0;Na=3D!v&&a.indexOf("MSIE")!=3D-1;P=
a=3D(Oa=3D!v&&a.indexOf("WebKit")!=3D-1)&&a.indexOf("Mobile")!=3D-1;Qa=3D=
!v&&!Oa&&b.product=3D=3D"Gecko"}};Xa();=0A=
var Ya=3Dv,w=3DNa,Za=3DQa,x=3DOa,$a=3DPa,ab=3Dfunction(){var =
a=3DWa();return =
a&&a.platform||""},bb=3Dab(),cb=3Dfunction(){Ra=3Dbb.indexOf("Mac")!=3D-1=
;Sa=3Dbb.indexOf("Win")!=3D-1;Ta=3Dbb.indexOf("Linux")!=3D-1;Ua=3D!!Wa()&=
&(Wa().appVersion||"").indexOf("X11")!=3D-1};cb();=0A=
var db=3DRa,eb=3DSa,fb=3DTa,gb=3Dfunction(){var =
a=3D"",b;if(Ya&&m.opera){a=3Dm.opera.version;a=3Dtypeof =
a=3D=3D"function"?a():a}else{if(Za)b=3D/rv\:([^\);]+)(\)|;)/;else =
if(w)b=3D/MSIE\s+([^\);]+)(\)|;)/;else =
if(x)b=3D/WebKit\/(\S+)/;if(b)a=3D(a=3Db.exec(Va()))?a[1]:""}return =
a},hb=3Dgb(),ib=3D{},y=3Dfunction(a){return =
ib[a]||(ib[a]=3DDa(hb,a)>=3D0)};var =
jb,kb=3Dfunction(a){return(a=3Da.className)&&typeof =
a.split=3D=3D"function"?a.split(/\s+/):[]},mb=3Dfunction(a){var =
b=3Dkb(a),c=3DIa(arguments,1);c=3Dlb(b,c);a.className=3Db.join(" =
");return c},lb=3Dfunction(a,b){for(var =
c=3D0,d=3D0;d<b.length;d++)if(!(Ea(a,b[d])>=3D0)){a.push(b[d]);c++}return=
 c=3D=3Db.length};var nb=3Dfunction(a){return a?new =
z(A(a)):jb||(jb=3Dnew z)},ob=3Dfunction(a){return =
o(a)?document.getElementById(a):a},pb=3Dob,rb=3Dfunction(a,b){Ka(b,functi=
on(c,d){if(d=3D=3D"style")a.style.cssText=3Dc;else =
if(d=3D=3D"class")a.className=3Dc;else =
if(d=3D=3D"for")a.htmlFor=3Dc;else if(d in =
qb)a.setAttribute(qb[d],c);else =
a[d]=3Dc})},qb=3D{cellpadding:"cellPadding",cellspacing:"cellSpacing",col=
span:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"w=
idth",usemap:"useMap",frameborder:"frameBorder",type:"type"},sb=3Dfunctio=
n(a){var b=3D=0A=
a.document;if(x&&!y("500")&&!$a){if(typeof =
a.innerHeight=3D=3D"undefined")a=3Dwindow;b=3Da.innerHeight;var =
c=3Da.document.documentElement.scrollHeight;if(a=3D=3Da.top)if(c<b)b-=3D1=
5;return new =
u(a.innerWidth,b)}a=3Db.compatMode=3D=3D"CSS1Compat";if(Ya&&!y("9.50"))a=3D=
j;a=3Da?b.documentElement:b.body;return new =
u(a.clientWidth,a.clientHeight)},tb=3Dfunction(a){a=3D!x&&a.compatMode=3D=
=3D"CSS1Compat"?a.documentElement:a.body;return new =
Ja(a.scrollLeft,a.scrollTop)},vb=3Dfunction(){return =
ub(document,arguments)},ub=3Dfunction(a,b){var c=3D=0A=
b[0],d=3Db[1];if(w&&d&&(d.name||d.type)){c=3D["<",c];d.name&&c.push(' =
name=3D"',ta(d.name),'"');if(d.type){c.push(' =
type=3D"',ta(d.type),'"');var e=3D{};Ma(e,d);d=3De;delete =
d.type}c.push(">");c=3Dc.join("")}c=3Da.createElement(c);if(d)if(o(d))c.c=
lassName=3Dd;else =
n(d)?mb.apply(i,[c].concat(d)):rb(c,d);b.length>2&&wb(a,c,b,2);return =
c},wb=3Dfunction(a,b,c,d){function =
e(g){if(g)b.appendChild(o(g)?a.createTextNode(g):g)}for(d=3Dd;d<c.length;=
d++){var =
f=3Dc[d];fa(f)&&!(ga(f)&&f.nodeType>0)?Fa(xb(f)?Ha(f):f,e):e(f)}},yb=3Dfu=
nction(a,=0A=
b){a.appendChild(b)},zb=3Dfunction(a){wb(A(a),a,arguments,1)},Ab=3Dfuncti=
on(a){return =
a&&a.parentNode?a.parentNode.removeChild(a):i},Bb=3Dfunction(a,b){if(a.co=
ntains&&b.nodeType=3D=3D1)return a=3D=3Db||a.contains(b);if(typeof =
a.compareDocumentPosition!=3D"undefined")return =
a=3D=3Db||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=3Db;)b=3Db.=
parentNode;return b=3D=3Da},A=3Dfunction(a){return =
a.nodeType=3D=3D9?a:a.ownerDocument||a.document},xb=3Dfunction(a){if(a&&t=
ypeof a.length=3D=3D"number")if(ga(a))return typeof =
a.item=3D=3D"function"||=0A=
typeof a.item=3D=3D"string";else if(ea(a)=3D=3D"function")return typeof =
a.item=3D=3D"function";return =
j},z=3Dfunction(a){this.k=3Da||m.document||document};z.prototype.createEl=
ement=3Dfunction(a){return =
this.k.createElement(a)};z.prototype.createTextNode=3Dfunction(a){return =
this.k.createTextNode(a)};z.prototype.T=3Dfunction(){return =
this.k.compatMode=3D=3D"CSS1Compat"};z.prototype.v=3Dfunction(){return =
tb(this.k)};z.prototype.appendChild=3Dyb;z.prototype.append=3Dzb;z.protot=
ype.removeNode=3DAb;z.prototype.contains=3DBb;var =
Cb=3Ddocument,B=3Dwindow,Db=3Dfunction(a){var =
b=3Di;if((a=3Da.getElementsByTagName("script"))&&a.length){b=3Da[a.length=
-1];b=3Db.parentNode}return b},Eb=3DDb(Cb);s();=0A=
var C=3Dfunction(a,b){for(var c in =
a)Object.prototype.hasOwnProperty.call(a,c)&&b.call(i,a[c],c,a)},Fb=3Dfun=
ction(a){return!!a&&typeof =
a=3D=3D"function"&&!!a.call},Gb=3Dfunction(a){return!!a&&(typeof =
a=3D=3D"object"||typeof =
a=3D=3D"function")},Ib=3Dfunction(a,b){if(!a||!Gb(a))return =
h;return!Hb(a,b.prototype)},Hb=3Dfunction(a,b){if(!a)return j;var =
c=3Dh;C(b,function(d,e){if(!c||!(e in a)||typeof d!=3Dtypeof =
a[e])c=3Dj});return c},Jb=3Dfunction(a){if(arguments.length<2)return =
a.length;for(var =
b=3D1,c=3Darguments.length;b<c;++b)a.push(arguments[b]);return a.length};=0A=
function D(a){return typeof =
encodeURIComponent=3D=3D"function"?encodeURIComponent(a):escape(a)}functi=
on Kb(a,b,c){var =
d=3Ddocument.createElement("script");d.type=3D"text/javascript";if(b)d.on=
load=3Db;if(c)d.id=3Dc;d.src=3Da;var =
e=3Ddocument.getElementsByTagName("head")[0];if(!e)return =
j;window.setTimeout(function(){e.appendChild(d)},0);return h}function =
Lb(a,b){if(a.attachEvent){a.attachEvent("onload",b);return =
h}if(a.addEventListener){a.addEventListener("load",b,j);return h}return =
j}=0A=
var Mb=3Dfunction(a){if(!("google_onload_fired"in =
a)){a.google_onload_fired=3Dj;Lb(a,function(){a.google_onload_fired=3Dh})=
}};function =
Nb(a,b){a.google_image_requests||(a.google_image_requests=3D[]);var =
c=3Dnew Image;c.src=3Db;a.google_image_requests.push(c)}function =
Ob(a){if(a in Pb)return Pb[a];return =
Pb[a]=3Dnavigator.userAgent.toLowerCase().indexOf(a)!=3D-1}var Pb=3D{};=0A=
function Qb(){if(navigator.plugins&&navigator.mimeTypes.length){var =
a=3Dnavigator.plugins["Shockwave Flash"];if(a&&a.description)return =
a.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s)+r/,".")}else =
if(navigator.userAgent&&navigator.userAgent.indexOf("Windows =
CE")>=3D0){a=3D3;for(var b=3D1;b;)try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash."+(a+1));a++}catch(c){b=3Di}=
return a.toString()}else if(Ob("msie")&&!window.opera){b=3Di;try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(d){a=3D=0A=
0;try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");a=3D6;b.AllowScriptAcces=
s=3D"always"}catch(e){if(a=3D=3D6)return a.toString()}try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(f){}}if(b){a=3Db.Get=
Variable("$version").split(" ")[1];return =
a.replace(/,/g,".")}}return"0"}function Rb(a){var =
b=3Da.google_ad_format;if(b)return b.indexOf("_0ads")>0;return =
a.google_ad_output!=3D"html"&&a.google_num_radlinks>0}function =
E(a){return!!a&&a.indexOf("_sdo")!=3D-1}=0A=
function Sb(a,b){if(!(Math.random()<1.0E-4)){var =
c=3DMath.random();if(c<b){c=3DMath.floor(c/b*a.length);return =
a[c]}}return""}=0A=
var Tb=3Dfunction(a){a.u_tz=3D-(new =
Date).getTimezoneOffset();a.u_his=3Dwindow.history.length;a.u_java=3Dnavi=
gator.javaEnabled();if(window.screen){a.u_h=3Dwindow.screen.height;a.u_w=3D=
window.screen.width;a.u_ah=3Dwindow.screen.availHeight;a.u_aw=3Dwindow.sc=
reen.availWidth;a.u_cd=3Dwindow.screen.colorDepth}if(navigator.plugins)a.=
u_nplug=3Dnavigator.plugins.length;if(navigator.mimeTypes)a.u_nmime=3Dnav=
igator.mimeTypes.length},Ub=3Dfunction(a,b){var =
c=3Db||B;if(a&&c.top!=3Dc)c=3Dc.top;try{return =
c.document&&!c.document.body?new u(-1,=0A=
-1):sb(c||window)}catch(d){return new =
u(-12245933,-12245933)}},Vb=3Dfunction(a,b){var =
c=3Da.length;if(c=3D=3D0)return 0;for(var =
d=3Db||305419896,e=3D0;e<c;e++){var =
f=3Da.charCodeAt(e);d^=3D(d<<5)+(d>>2)+f&4294967295}return =
d>0?d:4294967296+d},Wb=3Dfunction(a){if(a=3D=3Da.top)return 0;var =
b=3D[];b.push(a.document.URL);a.name&&b.push(a.name);var =
c=3Dh;a=3DUb(!c,a);b.push(a.width.toString());b.push(a.height.toString())=
;return Vb(b.join(""))},Xb=3Dfunction(a){if(!a)return"";var =
b=3D[],c=3D0;for(a=3Da;a&&c<25;a=3Da.parentNode,++c)b.push(a.id||=0A=
"");return =
b.join()},Yb=3Dfunction(a){try{return!!a.document}catch(b){return =
j}};var =
Zb=3D{google_ad_channel:"channel",google_ad_host:"host",google_ad_host_ch=
annel:"h_ch",google_ad_host_tier_id:"ht_id",google_ad_section:"region",go=
ogle_ad_type:"ad_type",google_adtest:"adtest",google_allow_expandable_ads=
:"ea",google_alternate_ad_url:"alternate_ad_url",google_alternate_color:"=
alt_color",google_bid:"bid",google_city:"gcs",google_color_bg:"color_bg",=
google_color_border:"color_border",google_color_line:"color_line",google_=
color_link:"color_link",google_color_text:"color_text",google_color_url:"=
color_url",=0A=
google_contents:"contents",google_country:"gl",google_cpm:"cpm",google_cu=
st_age:"cust_age",google_cust_ch:"cust_ch",google_cust_gender:"cust_gende=
r",google_cust_id:"cust_id",google_cust_interests:"cust_interests",google=
_cust_job:"cust_job",google_cust_l:"cust_l",google_cust_lh:"cust_lh",goog=
le_cust_u_url:"cust_u_url",google_disable_video_autoplay:"disable_video_a=
utoplay",google_ed:"ed",google_encoding:"oe",google_feedback:"feedback_li=
nk",google_flash_version:"flash",google_font_face:"f",google_font_size:"f=
s",=0A=
google_hints:"hints",google_kw:"kw",google_kw_type:"kw_type",google_langu=
age:"hl",google_page_url:"url",google_region:"gr",google_reuse_colors:"re=
use_colors",google_safe:"adsafe",google_tag_info:"gut",google_targeting:"=
targeting",google_targeting_video_doc_id:"tvdi",google_ui_features:"ui",g=
oogle_ui_version:"uiv",google_video_doc_id:"video_doc_id",google_video_pr=
oduct_type:"video_product_type"},$b=3D{google_ad_block:"ad_block",google_=
ad_client:"client",google_ad_format:"format",google_ad_output:"output",=0A=
google_ad_callback:"callback",google_ad_height:"h",google_ad_override:"go=
ogle_ad_override",google_ad_slot:"slotname",google_ad_width:"w",google_ct=
r_threshold:"ctr_t",google_image_size:"image_size",google_last_modified_t=
ime:"lmt",google_max_num_ads:"num_ads",google_max_radlink_len:"max_radlin=
k_len",google_num_radlinks:"num_radlinks",google_num_radlinks_per_unit:"n=
um_radlinks_per_unit",google_only_ads_with_video:"only_ads_with_video",go=
ogle_rl_dest_url:"rl_dest_url",google_rl_filtering:"rl_filtering",=0A=
google_rl_mode:"rl_mode",google_rt:"rt",google_skip:"skip"},ac=3D{google_=
only_pyv_ads:"pyv",google_with_pyv_ads:"withpyv"};var =
bc=3Dr("0",0),cc=3Dr("0",0),dc=3Dr("0.01",0),ec=3Dr("1",0),fc=3Dr("0.02",=
0),gc=3Dr("0.02",0),hc=3Dr("0.02",0),ic=3Dr("0.02",0),jc=3Dr("1",0),kc=3D=
r("0.01",0),lc=3Dr("0.01",0),mc=3Dr("0.008",=0A=
0),nc=3Dr("0.01",0),oc=3Dr("0",0);var pc=3Dfunction(){var =
a=3D"r20100818";return =
a},qc=3Dja("false",j),rc=3Dja("false",h),sc=3Dja("false",j),tc=3Dja("fals=
e",j);var =
uc=3Dfunction(a,b,c){b=3Dp(b,m,a);a=3Dwindow.onerror;window.onerror=3Db;t=
ry{c()}catch(d){c=3Dd.toString();var =
e=3D"";if(d.fileName)e=3Dd.fileName;var =
f=3D-1;if(d.lineNumber)f=3Dd.lineNumber;b=3Db(c,e,f);if(!b)throw =
d;}window.onerror=3Da};q("google_protectAndRun",uc);=0A=
var wc=3Dfunction(a,b,c,d){if(Math.random()<0.01){var =
e=3DCb;a=3D["http://",na(),"/pagead/gen_204","?id=3Djserror","&jscb=3D",q=
c?1:0,"&jscd=3D",sc?1:0,"&context=3D",D(a),"&msg=3D",D(b),"&file=3D",D(c)=
,"&line=3D",D(d.toString()),"&url=3D",D(e.URL.substring(0,512)),"&ref=3D"=
,D(e.referrer.substring(0,512))];a.push(vc());Nb(B,a.join(""))}return!tc}=
;q("google_handleError",wc);=0A=
var yc=3Dfunction(a){xc|=3Da},xc=3D0,vc=3Dfunction(){var =
a=3D["&client=3D",D(B.google_ad_client),"&format=3D",D(B.google_ad_format=
),"&slotname=3D",D(B.google_ad_slot),"&output=3D",D(B.google_ad_output),"=
&ad_type=3D",D(B.google_ad_type)];return a.join("")};var =
zc=3Dfunction(a){var b=3D"google_test";try{var =
c=3Da[b];a[b]=3D!c;if(a[b]=3D=3D=3D!c){a[b]=3Dc;return =
h}}catch(d){}return =
j},Ac=3Dfunction(a){for(;a!=3Da.parent&&zc(a.parent);)a=3Da.parent;return=
 a},Dc=3Di,Ec=3Dfunction(){Dc||(Dc=3DAc(window));return Dc};var =
Fc,F=3Dfunction(a){this.n=3D[];this.s=3Da||window;this.c=3D0;this.m=3Di},=
Gc=3Dfunction(a,b){this.fn=3Da;this.win=3Db};F.prototype.enqueue=3Dfuncti=
on(a,b){if(this.c=3D=3D0&&this.n.length=3D=3D0&&(!b||b=3D=3Dwindow)){this=
.c=3D2;this.G(new Gc(a,window))}else{this.n.push(new =
Gc(a,b||this.s));this.p()}};F.prototype.D=3Dfunction(a){this.c=3D1;if(a)t=
his.m=3Dthis.s.setTimeout(p(this.o,this),a)};F.prototype.o=3Dfunction(){i=
f(this.c=3D=3D1){if(this.m!=3Di){this.s.clearTimeout(this.m);this.m=3Di}t=
his.c=3D0}this.p()};F.prototype.statusz=3Dfunction(){return h};=0A=
ia(F.prototype,"nq",F.prototype.enqueue);ia(F.prototype,"al",F.prototype.=
D);ia(F.prototype,"rl",F.prototype.o);ia(F.prototype,"sz",F.prototype.sta=
tusz);F.prototype.p=3Dfunction(){this.s.setTimeout(p(this.ha,this),0)};F.=
prototype.ha=3Dfunction(){if(this.c=3D=3D0&&this.n.length){var =
a=3Dthis.n.shift();this.c=3D2;a.win.setTimeout(p(this.G,this,a),0);this.p=
()}};F.prototype.G=3Dfunction(a){this.c=3D0;a.fn()};=0A=
var Hc=3Dfunction(a){try{return a.sz()}catch(b){return =
j}},Ic=3Dfunction(a){return =
Gb(a)&&Hc(a)&&Fb(a.nq)&&Fb(a.al)&&Fb(a.rl)},Jc=3Dfunction(){if(Fc&&Hc(Fc)=
)return Fc;var a=3DEc(),b=3Da.google_jobrunner;if(Ic(b))return =
Fc=3Db;return a.google_jobrunner=3DFc=3Dnew =
F(a)},Kc=3Dfunction(a,b){Jc().nq(a,b)},Lc=3Dfunction(a){Jc().al(a)},Mc=3D=
function(){var a=3DEc().google_jobrunner;Ic(a)&&a.rl()};var =
Nc=3Dfunction(a,b,c,d){b=3D"border:none;height:"+c+"px;margin:0;padding:0=
;position:relative;visibility:visible;width:"+b+"px";a=3D['<ins =
style=3D"display:inline-table;',b,'">','<ins id=3D"',a,'" =
style=3D"display:block;',b,'">',d,"</ins></ins>"];return a.join("")};var =
Oc,Pc,Qc,Rc,Sc,Tc,Uc,Vc=3Dfunction(){Uc=3DTc=3DSc=3DRc=3DQc=3DPc=3DOc=3Dj=
;var a=3DVa();if(a)if(a.indexOf("Firefox")!=3D-1)Oc=3Dh;else =
if(a.indexOf("Camino")!=3D-1)Pc=3Dh;else =
if(a.indexOf("iPhone")!=3D-1||a.indexOf("iPod")!=3D-1)Qc=3Dh;else =
if(a.indexOf("iPad")!=3D-1)Rc=3Dh;else =
if(a.indexOf("Android")!=3D-1)Sc=3Dh;else =
if(a.indexOf("Chrome")!=3D-1)Tc=3Dh;else =
if(a.indexOf("Safari")!=3D-1)Uc=3Dh};Vc();var Wc=3DOc,Xc=3DTc;var =
G=3D!!window.google_async_iframe_id,H=3DG&&window.parent||window,I=3Dfunc=
tion(){if(G&&!Yb(H)){for(var =
a=3D"."+Cb.domain;a.split(".").length>2&&!Yb(H);){Cb.domain=3Da=3Da.subst=
r(a.indexOf(".")+1);H=3Dwindow.parent}Yb(H)||(H=3Dwindow)}return =
H},Yc=3Dfunction(a,b,c){var d=3D["<iframe"];for(var e in =
a)Jb(d,e+"=3D"+a[e]);d.push('style=3D"left:0;position:absolute;top:0;"');=
d.push("></iframe>");d=3Dd.join(" ");return =
a=3DNc(a.id+"_anchor",b,c,d)},Zc=3Dfunction(a,b){for(var =
c=3Da.document,d=3Db.id,e=3D0;!d||a.document.getElementById(d);)d=3D=0A=
"aswift_"+e++;b.id=3Dd;e=3Da.google_ad_width;var =
f=3Da.google_ad_height;c.write(Yc(b,e,f));return =
d},$c=3Dfunction(a,b,c){a=3Da.document.getElementById(b).contentWindow;b=3D=
a.document;if(Za)if(b.body.firstChild)return;b.open();a.google_async_ifra=
me_close=3Dh;b.write(c)},ad=3Dfunction(a,b,c){a=3Da.document.getElementBy=
Id(b).contentWindow;c=3D"javascript:"+Ba(c);a.location=3Dc},bd=3Dfunction=
(a,b,c){var =
d=3Da.document.getElementById(b).contentWindow;Yb(d)?$c(a,b,c):ad(a,b,c)}=
,cd=3Dfunction(a){if(G&&a!=3Da.parent){Mc();a.google_async_iframe_close&&=0A=
a.setTimeout(function(){a.document.close()},0)}};function =
dd(a,b){try{return a.top.document=3D=3Db}catch(c){}return j}function =
ed(a,b,c,d){c=3Dc||a.google_ad_width;d=3Dd||a.google_ad_height;if(dd(a,b)=
)return j;var e=3Db.documentElement;if(c&&d){var =
f=3D1,g=3D1;if(a.innerHeight){f=3Da.innerWidth;g=3Da.innerHeight}else =
if(e&&e.clientHeight){f=3De.clientWidth;g=3De.clientHeight}else =
if(b.body){f=3Db.body.clientWidth;g=3Db.body.clientHeight}if(g>2*d||f>2*c=
)return j}return h}function =
fd(a,b){C(b,function(c,d){a["google_"+d]=3Dc})}=0A=
function gd(a,b){if(!b)return a.URL;return a.referrer}function =
hd(a,b){if(!b&&a.google_referrer_url=3D=3Di)return"0";else =
if(b&&a.google_referrer_url=3D=3Di)return"1";else =
if(!b&&a.google_referrer_url!=3Di)return"2";else =
if(b&&a.google_referrer_url!=3Di)return"3";return"4"}function =
id(a,b,c){a.page_url=3Dgd(b,c);a.page_location=3Di}function =
jd(a,b,c,d){a.page_url=3Db.google_page_url;a.page_location=3Dgd(c,d)||"EM=
PTY"}=0A=
function kd(a,b){var =
c=3D{},d=3Ded(I(),b,a.google_ad_width,a.google_ad_height);c.iframing=3Dhd=
(a,d);a.google_page_url?jd(c,a,b,d):id(c,b,d);c.last_modified_time=3Db.UR=
L=3D=3Dc.page_url?Date.parse(b.lastModified)/1E3:i;c.referrer_url=3Dd?a.g=
oogle_referrer_url:a.google_page_url&&a.google_referrer_url?a.google_refe=
rrer_url:b.referrer;return c}function ld(a){var =
b=3D{},c=3Da.URL.substring(a.URL.lastIndexOf("http"));b.iframing=3Di;b.pa=
ge_url=3Dc;b.page_location=3Da.URL;b.last_modified_time=3Di;b.referrer_ur=
l=3Dc;return b}=0A=
function md(a){var b=3Dnd(a,I().document);fd(a,b)}function nd(a,b){var =
c;return c=3Da.google_page_url=3D=3Di&&od[b.domain]?ld(b):kd(a,b)}var =
od=3D{};od["ad.yieldmanager.com"]=3Dh;var =
pd=3D"",sd=3Dfunction(){if(window.google_ad_frameborder=3D=3Di)window.goo=
gle_ad_frameborder=3D0;if(window.google_ad_output=3D=3Di)window.google_ad=
_output=3D"html";if(E(window.google_ad_format)){var =
a=3Dwindow.google_ad_format.match(/^(\d+)x(\d+)_.*/);if(a){window.google_=
ad_width=3DparseInt(a[1],10);window.google_ad_height=3DparseInt(a[2],10);=
window.google_ad_output=3D"html"}}window.google_ad_format=3Dqd(window.goo=
gle_ad_format,String(window.google_ad_output),Number(window.google_ad_wid=
th),Number(window.google_ad_height),=0A=
window.google_ad_slot,!!window.google_override_format);pd=3Dwindow.google=
_ad_client||"";window.google_ad_client=3Drd(window.google_ad_format,windo=
w.google_ad_client);md(window);if(window.google_flash_version=3D=3Di)wind=
ow.google_flash_version=3DQb();window.google_ad_section=3Dwindow.google_a=
d_section||window.google_ad_region||"";window.google_country=3Dwindow.goo=
gle_country||window.google_gl||"";a=3D(new =
Date).getTime();if(n(window.google_color_bg))window.google_color_bg=3DJ(w=
indow.google_color_bg,a);if(n(window.google_color_text))window.google_col=
or_text=3D=0A=
J(window.google_color_text,a);if(n(window.google_color_link))window.googl=
e_color_link=3DJ(window.google_color_link,a);if(n(window.google_color_url=
))window.google_color_url=3DJ(window.google_color_url,a);if(n(window.goog=
le_color_border))window.google_color_border=3DJ(window.google_color_borde=
r,a);if(n(window.google_color_line))window.google_color_line=3DJ(window.g=
oogle_color_line,a)},td=3Dfunction(a){C(Zb,function(b,c){a[c]=3Di});C($b,=
function(b,c){a[c]=3Di});C(ac,function(b,c){a[c]=3Di});a.google_container=
_id=3Di;=0A=
a.google_disable_async=3Di;a.google_eids=3Di;a.google_page_location=3Di;a=
.google_referrer_url=3Di;a.google_ad_region=3Di;a.google_gl=3Di},J=3Dfunc=
tion(a,b){yc(2);return =
a[b%a.length]},rd=3Dfunction(a,b){if(!b)return"";b=3Db.toLowerCase();retu=
rn =
b=3DE(a)?ud(b):vd(b)},vd=3Dfunction(a){if(a&&a.substring(0,3)!=3D"ca-")a=3D=
"ca-"+a;return =
a},ud=3Dfunction(a){if(a&&a.substring(0,7)!=3D"ca-aff-")a=3D"ca-aff-"+a;r=
eturn =
a},qd=3Dfunction(a,b,c,d,e,f){if(!a&&b=3D=3D"html")a=3Dc+"x"+d;return =
a=3Dwd(a,e,f)?a.toLowerCase():""},wd=3Dfunction(a,b,c){if(!a)return j;=0A=
if(!b)return h;return c};var K=3Ddocument,L=3Dnavigator,M=3Dwindow;=0A=
function xd(){var a=3DK.cookie,b=3DMath.round((new =
Date).getTime()/1E3),c=3DM.google_analytics_domain_name;c=3Dtypeof =
c=3D=3D"undefined"?yd("auto"):yd(c);var =
d=3Da.indexOf("__utma=3D"+c+".")>-1,e=3Da.indexOf("__utmb=3D"+c)>-1,f=3Da=
.indexOf("__utmc=3D"+c)>-1,g=3D{},l=3D!!M&&!!M.gaGlobal;if(d){a=3Da.split=
("__utma=3D"+c+".")[1].split(";")[0].split(".");g.sid=3De&&f?a[3]+"":l&&M=
.gaGlobal.sid?M.gaGlobal.sid:b+"";g.vid=3Da[0]+"."+a[1];g.from_cookie=3Dh=
}else{g.sid=3Dl&&M.gaGlobal.sid?M.gaGlobal.sid:b+"";g.vid=3Dl&&M.gaGlobal=
.vid?M.gaGlobal.vid:=0A=
(Math.round(Math.random()*2147483647)^zd()&2147483647)+"."+b;g.from_cooki=
e=3Dj}g.dh=3Dc;g.hid=3Dl&&M.gaGlobal.hid?M.gaGlobal.hid:Math.round(Math.r=
andom()*2147483647);return M.gaGlobal=3Dg}=0A=
function zd(){var =
a=3DK.cookie?K.cookie:"",b=3DM.history.length,c,d=3D[L.appName,L.version,=
L.language?L.language:L.browserLanguage,L.platform,L.userAgent,L.javaEnab=
led()?1:0].join("");if(M.screen)d+=3DM.screen.width+"x"+M.screen.height+M=
.screen.colorDepth;else =
if(M.java){c=3Djava.awt.Toolkit.getDefaultToolkit().getScreenSize();d+=3D=
c.screen.width+"x"+c.screen.height}d+=3Da;d+=3DK.referrer?K.referrer:"";f=
or(a=3Dd.length;b>0;)d+=3Db--^a++;return Ad(d)}=0A=
function Ad(a){var =
b=3D1,c=3D0,d;if(!(a=3D=3Dundefined||a=3D=3D"")){b=3D0;for(d=3Da.length-1=
;d>=3D0;d--){c=3Da.charCodeAt(d);b=3D(b<<6&268435455)+c+(c<<14);c=3Db&266=
338304;b=3Dc!=3D0?b^c>>21:b}}return b}function =
yd(a){if(!a||a=3D=3D""||a=3D=3D"none")return =
1;if("auto"=3D=3Da){a=3DK.domain;if("www."=3D=3Da.substring(0,4))a=3Da.su=
bstring(4,a.length)}return Ad(a.toLowerCase())};var =
Bd=3Dfunction(a,b){var =
c=3DA(a);if(c.defaultView&&c.defaultView.getComputedStyle)if(c=3Dc.defaul=
tView.getComputedStyle(a,""))return c[b];return =
i},N=3Dfunction(a,b){return =
Bd(a,b)||(a.currentStyle?a.currentStyle[b]:i)||a.style[b]},Cd=3Dfunction(=
a){a=3Da?a.nodeType=3D=3D9?a:A(a):document;if(w&&!nb(a).T())return =
a.body;return a.documentElement},Dd=3Dfunction(a){var =
b=3Da.getBoundingClientRect();if(w){a=3Da.ownerDocument;b.left-=3Da.docum=
entElement.clientLeft+a.body.clientLeft;b.top-=3Da.documentElement.client=
Top+a.body.clientTop}return b},=0A=
Ed=3Dfunction(a){if(w)return a.offsetParent;var =
b=3DA(a),c=3DN(a,"position"),d=3Dc=3D=3D"fixed"||c=3D=3D"absolute";for(a=3D=
a.parentNode;a&&a!=3Db;a=3Da.parentNode){c=3DN(a,"position");d=3Dd&&c=3D=3D=
"static"&&a!=3Db.documentElement&&a!=3Db.body;if(!d&&(a.scrollWidth>a.cli=
entWidth||a.scrollHeight>a.clientHeight||c=3D=3D"fixed"||c=3D=3D"absolute=
"))return a}return i},Fd=3Dfunction(a){var =
b,c=3DA(a),d=3DN(a,"position"),e=3DZa&&c.getBoxObjectFor&&!a.getBoundingC=
lientRect&&d=3D=3D"absolute"&&(b=3Dc.getBoxObjectFor(a))&&(b.screenX<0||b=
.screenY<0),f=3Dnew Ja(0,0),=0A=
g=3DCd(c);if(a=3D=3Dg)return =
f;if(a.getBoundingClientRect){b=3DDd(a);a=3Dnb(c).v();f.x=3Db.left+a.x;f.=
y=3Db.top+a.y}else =
if(c.getBoxObjectFor&&!e){b=3Dc.getBoxObjectFor(a);a=3Dc.getBoxObjectFor(=
g);f.x=3Db.screenX-a.screenX;f.y=3Db.screenY-a.screenY}else{b=3Da;do{f.x+=
=3Db.offsetLeft;f.y+=3Db.offsetTop;if(b!=3Da){f.x+=3Db.clientLeft||0;f.y+=
=3Db.clientTop||0}if(x&&N(b,"position")=3D=3D"fixed"){f.x+=3Dc.body.scrol=
lLeft;f.y+=3Dc.body.scrollTop;break}b=3Db.offsetParent}while(b&&b!=3Da);i=
f(Ya||x&&d=3D=3D"absolute")f.y-=3Dc.body.offsetTop;for(b=3Da;(b=3DEd(b))&=
&=0A=
b!=3Dc.body&&b!=3Dg;){f.x-=3Db.scrollLeft;if(!Ya||b.tagName!=3D"TR")f.y-=3D=
b.scrollTop}}return f},Gd=3Dfunction(a){var b=3Dnew =
Ja;if(a.nodeType=3D=3D1)if(a.getBoundingClientRect){var =
c=3DDd(a);b.x=3Dc.left;b.y=3Dc.top}else{c=3Dnb(a).v();a=3DFd(a);b.x=3Da.x=
-c.x;b.y=3Da.y-c.y}else{b.x=3Da.clientX;b.y=3Da.clientY}return =
b},Hd=3Dfunction(a,b,c,d){if(/^\d+px?$/.test(b))return =
parseInt(b,10);else{var =
e=3Da.style[c],f=3Da.runtimeStyle[c];a.runtimeStyle[c]=3Da.currentStyle[c=
];a.style[c]=3Db;b=3Da.style[d];a.style[c]=3De;a.runtimeStyle[c]=3Df;retu=
rn b}},Id=3D=0A=
function(a){var =
b=3DA(a),c=3D"";if(b.body.createTextRange){c=3Db.body.createTextRange();c=
.moveToElementText(a);c=3Dc.queryCommandValue("FontName")}if(!c){c=3DN(a,=
"fontFamily");if(Ya&&fb)c=3Dc.replace(/ =
\[[^\]]*\]/,"")}a=3Dc.split(",");if(a.length>1)c=3Da[0];return =
xa(c,"\"'")},Jd=3D/[^\d]+$/,Kd=3Dfunction(a){return(a=3Da.match(Jd))&&a[0=
]||i},Ld=3D{cm:1,"in":1,mm:1,pc:1,pt:1},Md=3D{em:1,ex:1},Nd=3Dfunction(a)=
{var b=3DN(a,"fontSize"),c=3DKd(b);if(b&&"px"=3D=3Dc)return =
parseInt(b,10);if(w)if(c in Ld)return Hd(a,b,"left","pixelLeft");else =
if(a.parentNode&&=0A=
a.parentNode.nodeType=3D=3D1&&c in =
Md){a=3Da.parentNode;c=3DN(a,"fontSize");return =
Hd(a,b=3D=3Dc?"1em":b,"left","pixelLeft")}c=3Dvb("span",{style:"visibilit=
y:hidden;position:absolute;line-height:0;padding:0;margin:0;border:0;heig=
ht:1em;"});yb(a,c);b=3Dc.offsetHeight;Ab(c);return b};var =
O=3Dfunction(a,b,c,d,e,f){this.V=3Dj;this.ja=3Da;this.F=3De;this.I=3Df;th=
is.ma=3Db;this.i=3D+c;this.h=3D+d;this.j=3D[]};O.prototype.collapse=3Dfun=
ction(){var =
a=3Dthis.z();if(a){this.ia();this.V=3Dj}};O.prototype.g=3Dfunction(a){thi=
s.e(a,"zIndex","999999")};O.prototype.M=3Dfunction(a,b,c){this.e(a,"width=
",b+"px");this.e(a,"height",c+"px");this.g(a)};O.prototype.w=3Dfunction()=
{var a=3D[],b=3Dthis.z();if(!b)return =
a;a.push(b);this.F&&this.I&&a.push(this.F.document.getElementById(this.I)=
);return a};=0A=
O.prototype.expand=3Dfunction(a,b,c){var =
d=3Dthis.w();if(!(d.length<=3D0)){for(var =
e=3D0,f=3Dd.length;e<f;++e)this.M(d[e],a,b);d=3Dd[d.length-1];if(a>this.i=
&&(c=3D=3D0||c=3D=3D3))this.e(d,"left","-"+(a-this.i)+"px");if(b>this.h&&=
(c=3D=3D1||c=3D=3D0))this.e(d,"top","-"+(b-this.h)+"px");a=3Dd.parentNode=
;b=3Da.parentNode;if(a.nodeName.toLowerCase()=3D=3D"ins"){this.g(a);this.=
g(b)}for(a=3Db.parentNode;a&&a.style;a=3Da.parentNode){if(a.nodeName.toLo=
werCase()=3D=3D"body")break;a.style.overflow!=3D"visible"&&this.e(a,"over=
flow","visible")}this.V=3Dh}};=0A=
O.prototype.K=3Dfunction(a,b){var =
c=3Dthis.w();c=3Dc[c.length-1];c=3DGd(c);var =
d=3Dthis.F||window;d=3Dsb(d||window);var =
e=3Da-this.i,f=3Db-this.h,g=3Dc.y;f=3Df>g;var =
l=3Dd.height-(c.y+this.h);g=3Df||l>=3Dg;f=3Dc.x;e=3De>f;c=3Dd.width-(c.x+=
this.i);c=3De||c>=3Df;d=3D2;if(g&&!c)d=3D3;else if(!g&&c)d=3D1;else =
if(!g&&!c)d=3D0;return =
d};O.prototype.z=3Dfunction(){if(!this.R)this.R=3DCb.getElementById(this.=
ja);return this.R};O.prototype.e=3Dfunction(a,b,c){this.j.push(new =
Od(a,b,c))};=0A=
O.prototype.ia=3Dfunction(){for(var =
a=3D0,b=3Dthis.j.length;a<b;a++)this.j[a].undo();this.j.length=3D0};var =
Od=3Dfunction(a,b,c){this.$=3Da;this.ka=3Db;this.la=3Da.style[b];this.$.s=
tyle[b]=3Dc};Od.prototype.undo=3Dfunction(){this.$.style[this.ka]=3Dthis.=
la};var Pd=3Dfunction(a,b){var =
c=3Da.K(b.width,b.height);a.expand(b.width,b.height,c);return{width:b.wid=
th,height:b.height,direction:c}},Qd=3Dfunction(a){a.collapse();return{}},=
Rd=3Dfunction(){iframes.handlers.set("expandable",{open:function(a){var =
b=3Da.openParams.container,c=3Da.openParams.width,d=3Da.openParams.height=
,e=3Da.openParams.id,f=3De+"_anchor";if(a.openParams.friendlyIframeId){b=3D=
document.createElement("div");document.body.appendChild(b)}else{var =
g=3DNc(f,c,d,"");if(b){b.innerHTML=3Dg;b=3Db.firstChild.firstChild}else{d=
ocument.write(g);=0A=
b=3Ddocument.getElementById(f)}}f=3Dnew =
O(e,"",c,d,a.openParams.topMostFriendlyWindow,a.openParams.friendlyIframe=
Id);a.methods.expand=3Dha(Pd,f);a.methods.collapse=3Dha(Qd,f);return =
a=3Da.openInto(b,{id:e,width:c,height:d,style:a.openParams.cssStyle})},on=
ready:function(){},close:function(){}})};var =
P=3Dfunction(){this.defaultBucket=3D[];this.layers=3D{};for(var =
a=3D0,b=3Darguments.length;a<b;++a)this.layers[arguments[a]]=3D""},Sd=3Df=
unction(a){for(var b=3Dnew =
P,c=3D0,d=3Da.defaultBucket.length;c<d;++c)b.defaultBucket.push(a.default=
Bucket[c]);C(a.layers,p(P.prototype.u,b));return =
b};P.prototype.statusz=3Dfunction(){return =
h};P.prototype.u=3Dfunction(a,b){this.layers[b]=3Da};=0A=
P.prototype.ga=3Dfunction(a,b){if(a=3D=3D"")return"";if(!b){this.defaultB=
ucket.push(a);return a}if(this.layers.hasOwnProperty(b))return =
this.layers[b]=3Da;return""};P.prototype.d=3Dfunction(a,b,c){if(this.U(c)=
&&!(Math.random()<1.0E-4)&&Math.random()<b){b=3DMath.floor(Math.random()*=
a.length);return =
this.ga(a[b],c)}return""};P.prototype.U=3Dfunction(a){if(!a)return =
h;return =
this.layers.hasOwnProperty(a)&&this.layers[a]=3D=3D""};P.prototype.b=3Dfu=
nction(a){if(this.layers.hasOwnProperty(a))return =
this.layers[a];return""};=0A=
P.prototype.geil=3DP.prototype.b;P.prototype.Q=3Dfunction(){var =
a=3D[],b=3Dfunction(c){c!=3D""&&a.push(c)};C(this.layers,b);if(this.defau=
ltBucket.length>0&&a.length>0)return =
this.defaultBucket.join(",")+","+a.join(",");return =
this.defaultBucket.join(",")+a.join(",")};var =
Ud=3Dfunction(a){this.a=3Dthis.S=3Da;Td(this)},Vd=3D{};Vd.google_persiste=
nt_state=3Dh;Vd.google_persistent_state_async=3Dh;=0A=
var =
Wd=3D{},Q=3Dfunction(a){a=3Da&&Vd[a]?a:G?"google_persistent_state_async":=
"google_persistent_state";if(Wd[a])return =
Wd[a];if(a=3D=3D"google_persistent_state_async")var b=3DI(),c=3D{};else =
c=3Db=3DI();var d=3Db[a];if(typeof d!=3D"object"||typeof =
d.S!=3D"object")return b[a]=3DWd[a]=3Dnew Ud(c);return =
Wd[a]=3Dd},Td=3Dfunction(a){S(a,1,j);S(a,2,j);S(a,3,i);S(a,4,0);S(a,5,0);=
S(a,6,0);S(a,7,(new =
Date).getTime());S(a,8,{});S(a,9,{});S(a,10,{});S(a,11,[]);S(a,12,0)},Xd=3D=
function(a){switch(a){case 1:return"google_new_domain_enabled";case =
2:return"google_new_domain_checked";=0A=
case 3:return"google_exp_persistent";case =
4:return"google_num_sdo_slots";case 5:return"google_num_0ad_slots";case =
6:return"google_num_ad_slots";case 7:return"google_correlator";case =
8:return"google_prev_ad_formats_by_region";case =
9:return"google_prev_ad_slotnames_by_region";case =
10:return"google_num_slots_by_channel";case =
11:return"google_viewed_host_channels";case =
12:return"google_num_slot_to_show"}},T=3Dfunction(a,b){var =
c=3DXd(b);return c=3Da.S[c]},U=3Dfunction(a,b,c){return =
a.S[Xd(b)]=3Dc},S=3Dfunction(a,=0A=
b,c){a=3Da.S;b=3DXd(b);if(a[b]=3D=3D=3Dundefined)return a[b]=3Dc;return =
a[b]},Yd=3Dfunction(a){if(T(a,1))return h;return =
U(a,1,!!window.google_new_domain_enabled)},Zd=3Dfunction(a,b){return =
U(a,3,b)};var $d,ae,be=3Dfunction(a){try{return =
a.statusz()}catch(b){return j}},V=3Dfunction(){if($d&&be($d))return =
$d;var a=3DQ(),b=3DT(a,3);if(Ib(b,P)||!be(b))return $d=3DZd(a,new =
P(1,2,3,4,5));return $d=3Db},ce=3Dfunction(){ae||(ae=3DSd(V()));return =
ae},de=3D{BLOCKING_LOADER_IE8:"33895266",RELEASE_CANDIDATE_LOADER_IE8:"33=
895268",NO_LOADER_IE8:"33895269",BLOCKING_LOADER_IE7:"33895256",RELEASE_C=
ANDIDATE_LOADER_IE7:"33895258",NO_LOADER_IE7:"33895259",BLOCKING_LOADER_F=
F:"33895276",RELEASE_CANDIDATE_LOADER_FF:"33895278",NO_LOADER_FF:"3389527=
9",=0A=
BLOCKING_LOADER_WK:"33895286",RELEASE_CANDIDATE_LOADER_WK:"33895288",NO_L=
OADER_WK:"33895289",BLOCKING_LOADER_XX:"33895296",RELEASE_CANDIDATE_LOADE=
R_XX:"33895298",NO_LOADER_XX:"33895299",RELEASE_CANDIDATE_PREVIEW:"338951=
25"},ee=3D{BLOCKING_BLOCKING:"33895101",CTRL_ASYNC:"33895106",CTRL_BLOCKI=
NG:"33895107",EXPT_ASYNC:"33895108",EXPT_BLOCKING:"33895109",PREVIEW_ASYN=
C:"33895102",PREVIEW_BLOCKING:"33895103"};var =
W=3Dfunction(){};W.prototype.serialize=3Dfunction(a){var =
b=3D[];this.q(a,b);return =
b.join("")};W.prototype.q=3Dfunction(a,b){switch(typeof a){case =
"string":this.H(a,b);break;case "number":this.ea(a,b);break;case =
"boolean":b.push(a);break;case "undefined":b.push("null");break;case =
"object":if(a=3D=3Di){b.push("null");break}if(a instanceof =
Array){this.da(a,b);break}this.fa(a,b);break;case =
"function":break;default:throw Error("Unknown type: "+typeof a);}};=0A=
var =
fe=3D{'"':'\\"',"\\":"\\\\","/":"\\/","\u0008":"\\b","\u000c":"\\f","\n":=
"\\n","\r":"\\r","\t":"\\t","\u000b":"\\u000b"},ge=3D/\uffff/.test("\ufff=
f")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;W.prototype=
.H=3Dfunction(a,b){b.push('"');b.push(a.replace(ge,function(c){if(c in =
fe)return fe[c];var =
d=3Dc.charCodeAt(0),e=3D"\\u";if(d<16)e+=3D"000";else =
if(d<256)e+=3D"00";else if(d<4096)e+=3D"0";return =
fe[c]=3De+d.toString(16)}));b.push('"')};=0A=
W.prototype.ea=3Dfunction(a,b){b.push(isFinite(a)&&!isNaN(a)?a:"null")};W=
.prototype.da=3Dfunction(a,b){var c=3Da.length;b.push("[");for(var =
d=3D"",e=3D0;e<c;e++){b.push(d);this.q(a[e],b);d=3D","}b.push("]")};W.pro=
totype.fa=3Dfunction(a,b){b.push("{");var c=3D"";for(var d in =
a)if(a.hasOwnProperty(d)){var e=3Da[d];if(typeof =
e!=3D"function"){b.push(c);this.H(d,b);b.push(":");this.q(e,b);c=3D","}}b=
.push("}")};var =
he=3D["google_ad_block","google_ad_channel","google_ad_client","google_ad=
_format","google_ad_height","google_ad_host","google_ad_host_channel","go=
ogle_ad_host_tier_id","google_ad_output","google_ad_override","google_ad_=
region","google_ad_section","google_ad_slot","google_ad_type","google_ad_=
width","google_adtest","google_allow_expandable_ads","google_alternate_ad=
_url","google_alternate_color","google_analytics_domain_name","google_ana=
lytics_uacct","google_bid","google_city","google_color_bg","google_color_=
border",=0A=
"google_color_line","google_color_link","google_color_text","google_color=
_url","google_container_id","google_contents","google_country","google_cp=
m","google_ctr_threshold","google_cust_age","google_cust_ch","google_cust=
_gender","google_cust_id","google_cust_interests","google_cust_job","goog=
le_cust_l","google_cust_lh","google_cust_u_url","google_disable_video_aut=
oplay","google_ed","google_eids","google_enable_osd","google_encoding","g=
oogle_font_face","google_font_size","google_frame_id","google_gl",=0A=
"google_hints","google_image_size","google_kw","google_kw_type","google_l=
anguage","google_max_num_ads","google_max_radlink_len","google_num_radlin=
ks","google_num_radlinks_per_unit","google_num_slots_to_rotate","google_o=
nly_ads_with_video","google_only_pyv_ads","google_override_format","googl=
e_page_url","google_referrer_url","google_region","google_reuse_colors","=
google_rl_dest_url","google_rl_filtering","google_rl_mode","google_rt","g=
oogle_safe","google_skip","google_tag_info","google_targeting",=0A=
"google_ui_features","google_ui_version","google_video_doc_id","google_vi=
deo_product_type","google_with_pyv_ads"],ie=3Dfunction(a){for(var =
b=3D[],c=3D0,d=3Dhe.length;c<d;c++){var e=3Dhe[c];if(a[e]!=3Di){var =
f;try{f=3D(new =
W).serialize(a[e])}catch(g){}f&&Jb(b,e,"=3D",f,";")}}return =
b.join("")},je=3Dfunction(a){for(var b=3D0,c=3Dhe.length;b<c;b++){var =
d=3Dhe[b];a[d]=3Di}};var ke=3Dfunction(a){var =
b=3D"google_unique_id";if(a[b])++a[b];else a[b]=3D1;return =
a[b]},le=3Dfunction(){var a=3D"script";return["<",a,' =
src=3D"http://',s(),,"/pagead/js/",pc(),'/r20100830/show_ads_impl.js"></'=
,a,">"].join("")},me=3Dfunction(){if(window.google_disable_async)return =
j;return(w&&y(7)||Xc||Wc&&!!window.document.body)&&!window.google_contain=
er_id&&=0A=
(!window.google_ad_output||window.google_ad_output=3D=3D"html")},ne=3Dfun=
ction(a){var =
b=3D"script",c=3D{allowtransparency:'"true"',frameborder:'"'+(a.google_ad=
_frameborder||0)+'"',height:'"'+a.google_ad_height+'"',hspace:'"0"',margi=
nwidth:'"0"',marginheight:'"0"',name:'"google_ads_frame"',scrolling:'"no"=
',vspace:'"0"',width:'"'+a.google_ad_width+'"'};a.google_ad_frameborder=3D=
i;var d=3DZc(a,c);c=3Die(a);je(a);var e=3Dk,f=3D(new =
Date).getTime(),g=3D["<!doctype =
html><html><body><",b,">",c,"google_unique_id=3D",a.google_unique_id,=0A=
';google_async_iframe_id=3D"',d,'";google_start_time=3D',e,";google_bpp=3D=
",f>e?f-e:1,";</",b,">",le(),"</body></html>"].join("");Kc(function(){Lc(=
3E4);try{bd(a,d,g)}catch(l){Mc()}})},oe=3Dfunction(){var =
a=3Dde,b=3D[],c=3D0;if(w){b=3Dy(8)?[a.BLOCKING_LOADER_IE8,a.RELEASE_CANDI=
DATE_LOADER_IE8,a.NO_LOADER_IE8]:[a.BLOCKING_LOADER_IE7,a.RELEASE_CANDIDA=
TE_LOADER_IE7,a.NO_LOADER_IE7];c=3Dfc}else =
if(Za){b=3D[a.BLOCKING_LOADER_FF,a.RELEASE_CANDIDATE_LOADER_FF,a.NO_LOADE=
R_FF];c=3Dgc}else =
if(Xc){b=3D[a.BLOCKING_LOADER_WK,a.RELEASE_CANDIDATE_LOADER_WK,=0A=
a.NO_LOADER_WK];c=3Dhc}else{b=3D[a.BLOCKING_LOADER_XX,a.RELEASE_CANDIDATE=
_LOADER_XX,a.NO_LOADER_XX];c=3Dic}if(tc&&pc()!=3D"dev"){b=3D[a.RELEASE_CA=
NDIDATE_PREVIEW];c=3Dec}V().d(b,c,3)},pe=3Dfunction(){if(G){var =
a=3DQ("google_persistent_state"),b=3DT(a,3);a=3D3;if("geil"in =
b){b=3Db.geil(a);V().d([b],1,a)}}},qe=3Dfunction(){var =
a=3DV();return"geil"in a?a.geil(3):""},re=3Dfunction(){var =
a=3Dqe(),b=3Dde;return =
a=3D=3Db.RELEASE_CANDIDATE_PREVIEW},se=3Dfunction(){var =
a=3Dqe(),b=3Dde;return =
a=3D=3Db.RELEASE_CANDIDATE_LOADER_IE8||a=3D=3Db.RELEASE_CANDIDATE_LOADER_=
IE7||=0A=
a=3D=3Db.RELEASE_CANDIDATE_LOADER_FF||a=3D=3Db.RELEASE_CANDIDATE_LOADER_W=
K||a=3D=3Db.RELEASE_CANDIDATE_LOADER_XX},te=3Dfunction(){var =
a=3Dqe(),b=3Dde;return =
a=3D=3Db.BLOCKING_LOADER_IE8||a=3D=3Db.BLOCKING_LOADER_IE7||a=3D=3Db.BLOC=
KING_LOADER_FF||a=3D=3Db.BLOCKING_LOADER_WK||a=3D=3Db.BLOCKING_LOADER_XX}=
,ue=3Dfunction(){G&&pe();if(qe()){var =
a=3Dee,b=3D0;b=3Dte()?a.BLOCKING_BLOCKING:se()?G?a.EXPT_ASYNC:a.EXPT_BLOC=
KING:re()?G?a.PREVIEW_ASYNC:a.PREVIEW_BLOCKING:me()?a.CTRL_ASYNC:a.CTRL_B=
LOCKING;ce().d([b],1,4)}};var =
ve=3D{google:1,googlegroups:1,gmail:1,googlemail:1,googleimages:1,googlep=
rint:1};function =
we(a){a=3Da.google_page_location||a.google_page_url;if(!a)return =
j;a=3Da.toString();if(a.indexOf("http://")=3D=3D0)a=3Da.substring(7,a.len=
gth);else =
if(a.indexOf("https://")=3D=3D0)a=3Da.substring(8,a.length);var =
b=3Da.indexOf("/");if(b=3D=3D-1)b=3Da.length;a=3Da.substring(0,b);a=3Da.s=
plit(".");b=3Dj;if(a.length>=3D3)b=3Da[a.length-3]in =
ve;if(a.length>=3D2)b=3Db||a[a.length-2]in ve;return b}=0A=
function xe(a,b,c){var =
d=3DQ();if(we(a))return!U(d,2,h);if(!T(d,2)){a=3DMath.random();if(a<=3Dc)=
{c=3D"http://"+ma()+"/pagead/test_domain.js";a=3D"script";b.write("<"+a+'=
 src=3D"'+c+'"></'+a+">");return U(d,2,h)}}return j}var =
ye=3Dfunction(a){var b=3DV();if(b.b(1)=3D=3D"44901228")return =
j;if(b.b(1)=3D=3D"44901229"||Math.random()<cc)return =
1=3D=3DMath.floor(a/2)%2;return j};=0A=
function ze(a,b){var c=3DQ();if(!we(a)&&Yd(c))return =
ye(b)?"http://"+la("","googleads2.g.doubleclick.net"):"http://"+ma();retu=
rn"http://"+na()};var =
X=3Dfunction(a){this.f=3Da;this.C=3D[];this.B=3D0;this.l=3D[];this.Z=3D0;=
this.r=3D[];this.X=3Dj;this.J=3Dthis.L=3D"";this.W=3Dj};X.prototype.ba=3D=
function(a,b){var =
c=3Dthis.f[b],d=3Dthis.C;this.f[b]=3Dfunction(e){if(e&&e.length>0){var =
f=3De.length>1?e[1].url:i;d.push([a,wa(e[0].url),f])}c(e)}};X.prototype.a=
a=3Dfunction(){this.B++};X.prototype.ca=3Dfunction(a){this.l.push(a)};var=
 =
Ae=3D"http://"+s()+"/pagead/osd.js";X.prototype.Y=3Dfunction(){if(!this.X=
){Mb(I());Kb(Ae);this.X=3Dh}};=0A=
X.prototype.N=3Dfunction(a){if(this.B>0)for(var =
b=3Dthis.f.document.getElementsByTagName("iframe"),c=3Dthis.W?"google_ads=
_iframe_":"google_ads_frame",d=3D0;d<b.length;d++){var =
e=3Db.item(d);e.src&&e.name&&e.name.indexOf(c)=3D=3D0&&a(e,e.src)}};=0A=
X.prototype.O=3Dfunction(a){var b=3Dthis.C;if(b.length>0)for(var =
c=3Dthis.f.document.getElementsByTagName("a"),d=3D0;d<c.length;d++)for(va=
r e=3D0;e<b.length;e++)if(c.item(d).href=3D=3Db[e][1]){var =
f=3Dc.item(d).parentNode;if(b[e][2])for(var =
g=3Df,l=3D0;l<4;l++){if(g.innerHTML.indexOf(b[e][2])>0){f=3Dg;break}g=3Dg=
.parentNode}a(f,b[e][0]);b.splice(e,1);break}};X.prototype.P=3Dfunction(a=
){for(var b=3D0;b<this.l.length;b++){var =
c=3Dthis.l[b],d=3DBe(c);if(d)(d=3Dthis.f.document.getElementById("google_=
ads_div_"+d))&&a(d,c)}};=0A=
X.prototype.t=3Dfunction(a){this.O(a);this.P(a);this.N(a)};X.prototype.se=
tupOsd=3Dfunction(a,b,c){this.Z=3Da;this.L=3Db;this.J=3Dc};X.prototype.ge=
tOsdMode=3Dfunction(){return =
this.Z};X.prototype.getEid=3Dfunction(){return =
this.L};X.prototype.getCorrelator=3Dfunction(){return =
this.J};X.prototype.A=3Dfunction(){return =
this.C.length+this.B+this.l.length};X.prototype.setValidOutputTypes=3Dfun=
ction(a){this.r=3Da};=0A=
X.prototype.registerAdBlockByType=3Dfunction(a,b,c){if(this.r.length>0){f=
or(var =
d=3D0;d<this.r.length;d++)if(this.r[d]=3D=3Da){this.W=3Dc;if(a=3D=3D"js")=
this.ba(b,"google_ad_request_done");else if(a=3D=3D"html")this.aa();else =
a=3D=3D"json_html"&&this.ca(b)}this.Y()}};var =
Be=3Dfunction(a){if((a=3Da.match(/[&\?](?:slotname)=3D([^&]+)/))&&a.lengt=
h=3D=3D2)return a[1];return""},Ce=3Dfunction(){var =
a=3DI();a.__google_ad_urls||(a.__google_ad_urls=3Dnew X(a));return =
a.__google_ad_urls};q("Goog_AdSense_getAdAdapterInstance",Ce);=0A=
q("Goog_AdSense_OsdAdapter",X);q("Goog_AdSense_OsdAdapter.prototype.numBl=
ocks",X.prototype.A);q("Goog_AdSense_OsdAdapter.prototype.findBlocks",X.p=
rototype.t);q("Goog_AdSense_OsdAdapter.prototype.getOsdMode",X.prototype.=
getOsdMode);q("Goog_AdSense_OsdAdapter.prototype.getEid",X.prototype.getE=
id);q("Goog_AdSense_OsdAdapter.prototype.getCorrelator",X.prototype.getCo=
rrelator);q("Goog_AdSense_OsdAdapter.prototype.setValidOutputTypes",X.pro=
totype.setValidOutputTypes);=0A=
q("Goog_AdSense_OsdAdapter.prototype.setupOsd",X.prototype.setupOsd);q("G=
oog_AdSense_OsdAdapter.prototype.registerAdBlockByType",X.prototype.regis=
terAdBlockByType);var Y=3D{};function De(a){if(a=3D=3D1)return =
h;return!Y[a]}function =
Ee(a,b){if(!(!a||a=3D=3D""))if(b=3D=3D1)if(Y[b])Y[b]+=3D","+a;else =
Y[b]=3Da;else Y[b]=3Da}function Fe(){var =
a=3D[];C(Y,function(b){a.push(b)});return a.join(",")}function =
Ge(a,b){if(n(a))for(var c=3D0;c<a.length;c++)o(a[c])&&Ee(a[c],b)}var =
He=3Dj;=0A=
function Ie(a,b){var =
c=3D"script";He=3DJe(a,b);if(!He)a.google_allow_expandable_ads=3Dj;var =
d=3D!Ke();if(He&&d){if((G?Z(a)=3D=3D1:!Z(a))&&(a.google_ad_output=3D=3D"h=
tml"||a.google_ad_output=3D=3D"")){typeof =
window.iframes!=3D"undefined"&&yc(8);var =
e=3D["30143090","30143091"];V().d(e,dc,5)}ce().b(5)=3D=3D"30143091"&&b.wr=
ite("<"+c+' =
src=3D"http://'+s()+'/pagead/js/iframes.js"></'+c+">");b.write("<"+c+' =
src=3D"http://'+s()+'/pagead/expansion_embed.js"></'+c+">")}e=3Dxe(a,b,jc=
);(d=3Dd||e)&&Ob("msie")&&!window.opera?b.write("<"+c+' src=3D"http://'+=0A=
s()+'/pagead/render_ads.js"></'+c+">"):b.write("<"+c+'>google_protectAndR=
un("ads_core.google_render_ad", google_handleError, =
google_render_ad);</'+c+">")}var =
Z=3Dfunction(a){a=3Da.google_unique_id;if(typeof a=3D=3D"number")return =
a;return 0};function Le(a){return a!=3Di?'"'+a+'"':'""'}var =
Me=3Dfunction(a,b){var =
c=3Db.slice(-1),d=3Dc=3D=3D"?"||c=3D=3D"#"?"":"&",e=3D[b];c=3Dfunction(f,=
g){if(f||f=3D=3D=3D0||f=3D=3D=3Dj){if(typeof =
f=3D=3D"boolean")f=3Df?1:0;Jb(e,d,g,"=3D",D(f));d=3D"&"}};C(a,c);return =
e.join("")};=0A=
function Ne(){var =
a=3Dw&&y("6"),b=3DZa&&y("1.8.1"),c=3Dx&&y("525");if(eb&&(a||b||c))return =
h;else if(db&&(c||b))return h;else if(fb&&b)return h;return j}function =
Ke(){return typeof ExpandableAdSlotFactory=3D=3D"object"&&typeof =
ExpandableAdSlotFactory.createIframe=3D=3D"function"}=0A=
function Je(a,b){var =
c=3Da.google_ad_width,d=3Da.google_ad_height;if(a.google_allow_expandable=
_ads=3D=3D=3Dj||!b.body||a.google_ad_output!=3D"html"||ed(I(),b,c,d)||!Oe=
(a)||isNaN(a.google_ad_height)||isNaN(a.google_ad_width)||!Ne()||b.domain=
!=3Da.location.hostname)return j;return h}function Oe(a){var =
b=3Da.google_ad_format;if(E(b))return =
j;if(Rb(a)&&b!=3D"468x15_0ads_al")return j;return h}=0A=
function Pe(){var =
a;if(B.google_ad_output=3D=3D"html"&&!(Rb(B)||E(B.google_ad_format))&&De(=
0)){a=3D["6083035","6083034"];a=3DSb(a,oc);Ee(a,0)}return =
a=3D=3D"6083035"}function =
Qe(a,b){if(!(G?Z(a)=3D=3D1:!Z(a))||E(a.google_ad_format))return"";var =
c=3D"",d=3DRb(a);if(b=3D=3D"html"||d)c=3DSb(["36815001","36815002"],kc);i=
f(c=3D=3D""&&(b=3D=3D"js"||d))c=3DSb(["36815003","36815004"],lc);if(c=3D=3D=
""&&(b=3D=3D"html"||b=3D=3D"js"))c=3DSb(["36813005","36813006"],mc);retur=
n c}=0A=
function Re(){if(G)return"";var =
a=3DCe(),b=3Dwindow.google_enable_osd,c;if(b=3D=3D=3Dh){c=3D"36813006";Se=
(c,a)}else =
if(b!=3D=3Dj&&De(0)){c=3Da.getEid();if(c=3D=3D"")(c=3DQe(window,String(wi=
ndow.google_ad_output||"")))&&Se(c,a);else =
if(c!=3D"36815001"&&c!=3D"36815002"&&c!=3D"36815003"&&c!=3D"36815004"&&c!=
=3D"36813005"&&c!=3D"36813006")c=3D""}if(c){Ee(c,0);return c}return""}=0A=
function Se(a,b){var c=3Db.getOsdMode(),d=3D[];switch(a){case =
"36815004":c=3D1;d=3D["js"];break;case =
"36815002":c=3D1;d=3D["html"];break;case =
"36813006":c=3D0;d=3D["html","js"];break}d.length>0&&b.setValidOutputType=
s(d);d=3DQ();b.setupOsd(c,a,T(d,7).toString())}=0A=
function Te(a,b,c,d){G||ke(a);var =
e=3DZ(a);c=3DMe({ifi:e},c);c=3Dc.substring(0,1991);c=3Dc.replace(/%\w?$/,=
"");var =
f=3D"script",g=3D"google_ads_frame";if((a.google_ad_output=3D=3D"js"||a.g=
oogle_ad_output=3D=3D"json_html")&&(a.google_ad_request_done||a.google_ra=
dlink_request_done))b.write("<"+f+' language=3D"JavaScript1.1" =
src=3D'+Le(ca(c))+"></"+f+">");else =
if(a.google_ad_output=3D=3D"html"){d=3Da.google_container_id||d||i;if(typ=
eof iframes=3D=3D"object"&&typeof =
iframes.open=3D=3D"function"&&ce().b(5)=3D=3D"30143091"){b=3Dg+e;Rd();ifr=
ames.open(ca(c),=0A=
{style:"expandable",id:b,name:g,width:a.google_ad_width,height:a.google_a=
d_height,cssStyle:"left:0;position:absolute;top:0",topMostFriendlyWindow:=
I(),friendlyIframeId:a.google_async_iframe_id},{})}else =
if(He&&Ke())a["google_expandable_ad_slot"+e]=3DExpandableAdSlotFactory.cr=
eateIframe(g+e,ca(c),a.google_ad_width,a.google_ad_height,d,I(),a.google_=
async_iframe_id);else{g=3D'<iframe name=3D"'+g+'" =
width=3D'+Le(String(a.google_ad_width))+" =
height=3D"+Le(String(a.google_ad_height))+" =
frameborder=3D"+Le(String(a.google_ad_frameborder=3D=3D=0A=
i?"":a.google_ad_frameborder))+" src=3D"+Le(ca(c))+' marginwidth=3D"0" =
marginheight=3D"0" vspace=3D"0" hspace=3D"0" allowtransparency=3D"true" =
scrolling=3D"no"></iframe>';a.google_container_id?Ue(a.google_container_i=
d,b,g):b.write(g)}}return c}function Ve(a){td(a)}function We(a){var =
b=3Dce().b(2)=3D=3D"44901217";if(!Xe(b))return j;b=3DPe();var =
c=3Dze(window,Z(window));a=3DYe(a);b=3Dc+Ze(a.google_ad_format,b);window.=
google_ad_url=3DMe(a,b);return h}=0A=
var =
cf=3Dfunction(a){a.dt=3Dk;if(G&&window.google_bpp)a.bpp=3Dwindow.google_b=
pp;a.shv=3Dpc();a.jsv=3D"/r20100830".replace("/","");var =
b=3DQ(),c=3DT(b,8),d=3Dwindow.google_ad_section,e=3Dwindow.google_ad_form=
at,f=3Dwindow.google_ad_slot;if(c[d])E(e)||(a.prev_fmts=3Dc[d]);var =
g=3DT(b,9);if(g[d])a.prev_slotnames=3Dg[d].toLowerCase();if(e){if(!E(e))i=
f(c[d])c[d]+=3D","+e;else c[d]=3De}else if(f)if(g[d])g[d]+=3D","+f;else =
g[d]=3Df;a.correlator=3DT(b,7);if(T(b,2)&&!Yd(b))a.dblk=3D=0A=
1;if(window.google_ad_channel){c=3DT(b,10);d=3D"";e=3Dwindow.google_ad_ch=
annel.split($e);for(f=3D0;f<e.length;f++){g=3De[f];if(c[g])d+=3Dg+"+";els=
e =
c[g]=3Dh}a.pv_ch=3Dd}if(window.google_ad_host_channel){b=3Daf(window.goog=
le_ad_host_channel,T(b,11));a.pv_h_ch=3Db}if(qc)a.jscb=3D1;if(sc)a.jscd=3D=
1;a.frm=3Dwindow.google_iframing;a.adk=3Dbf();b=3Dxd();a.ga_vid=3Db.vid;a=
.ga_sid=3Db.sid;a.ga_hid=3Db.hid;a.ga_fc=3Db.from_cookie;a.ga_wpids=3Dwin=
dow.google_analytics_uacct},df=3Dfunction(a){var =
b=3Dh;if(b=3DUb(b)){a.biw=3Db.width;a.bih=3Db.height}},bf=3Dfunction(){va=
r a=3D=0A=
[];Jb(a,B.google_ad_slot,B.google_ad_format,B.google_ad_type,B.google_ad_=
width,B.google_ad_height);if(Eb){var =
b=3DXb(Eb);b&&a.push(b)}b=3D0;if(a)b=3DVb(a.join(":"));return =
b.toString()},ef=3Dfunction(a){var =
b=3DWb(I());if(b!=3D0)a.ifk=3Db.toString()};=0A=
function af(a,b){for(var =
c=3Da.split("|"),d=3D-1,e=3D[],f=3D0;f<c.length;f++){var =
g=3Dc[f].split($e);b[f]||(b[f]=3D{});for(var =
l=3D"",$=3D0;$<g.length;$++){var =
R=3Dg[$];if(R!=3D"")if(b[f][R])l+=3D"+"+R;else =
b[f][R]=3Dh}l=3Dl.slice(1);e[f]=3Dl;if(l!=3D"")d=3Df}c=3D"";if(d>-1){for(=
f=3D0;f<d;f++)c+=3De[f]+"|";c+=3De[d]}return c}function ff(){var =
a=3D["44901228","44901229"];V().d(a,bc,1);a=3D["44901218","44901217"];V()=
.d(a,nc,2)}var gf=3Dfunction(){Ec()!=3DI()&&yc(4)};=0A=
function hf(){gf();(G?Z(window)=3D=3D1:!Z(window))&&ff();var =
a=3DRe(),b=3Di,c=3D"",d=3DMath.random()<0.01;if(d)if(b=3Dwindow.google_as=
ync_iframe_id)b=3DI().document.getElementById(b);else{c=3D"google_temp_sp=
an";b=3Djf(c)}d=3DWe(b);b&&b.id=3D=3Dc&&Ab(b);if(d){c=3DTe(window,documen=
t,window.google_ad_url);if(a)Ce().registerAdBlockByType(String(window.goo=
gle_ad_output||""),c,j);Ve(window)}cd(window)}=0A=
var =
kf=3Dfunction(a){C($b,function(b,c){a[b]=3Dwindow[c]});C(Zb,function(b,c)=
{a[b]=3Dwindow[c]});C(ac,function(b,c){a[b]=3Dwindow[c]})},lf=3Dfunction(=
a){Ge(window.google_eids,1);a.eid=3DFe();var =
b=3Dce().Q();if(a.eid.length>0&&b.length>0)a.eid+=3D",";a.eid+=3Db};funct=
ion mf(a,b,c,d){a=3Dwc(a,b,c,d);Ie(window,document);return a}function =
nf(){sd()}=0A=
function of(a){var =
b=3D{};a=3Da.split("?");a=3Da[a.length-1].split("&");for(var =
c=3D0;c<a.length;c++){var =
d=3Da[c].split("=3D");if(d[0])try{b[d[0].toLowerCase()]=3Dd.length>1?wind=
ow.decodeURIComponent?decodeURIComponent(d[1].replace(/\+/g," =
")):unescape(d[1]):""}catch(e){}}return b}function pf(){var =
a=3Dwindow,b=3Dof(document.URL);if(b.google_ad_override){a.google_ad_over=
ride=3Db.google_ad_override;a.google_adtest=3D"on"}}=0A=
function =
Ue(a,b,c){if(a)if((a=3Db.getElementById(a))&&c&&c.length!=3D""){a.style.v=
isibility=3D"visible";a.innerHTML=3Dc}}=0A=
var Ze=3Dfunction(a,b){var c;return =
c=3DE(a)?"/pagead/sdo?":b?"/pagead/render_iframe_ads.html#":"/pagead/ads?=
"},qf=3Dfunction(a,b){b.dff=3DId(a).toLowerCase();b.dfs=3DNd(a)},rf=3Dfun=
ction(a){a.ref=3Dwindow.google_referrer_url;a.loc=3Dwindow.google_page_lo=
cation},Xe=3Dfunction(a){var =
b=3DQ(),c=3DT(b,8),d=3DT(b,9),e=3Dwindow.google_ad_section;if(E(window.go=
ogle_ad_format)){if(U(b,4,T(b,4)+1)>4&&!a)return j}else =
if(Rb(window)){if(U(b,5,T(b,5)+1)>3&&!a)return j}else{var =
f=3DU(b,6,T(b,6)+1);if(window.google_num_slots_to_rotate){yc(1);=0A=
c[e]=3D"";d[e]=3D"";T(b,12)||U(b,12,(new =
Date).getTime()%window.google_num_slots_to_rotate+1);if(T(b,12)!=3Df)retu=
rn j}else if(!a&&f>6&&e=3D=3D"")return j}return h},Ye=3Dfunction(a){var =
b=3D{};kf(b);cf(b);Tb(b);a&&qf(a,b);df(b);ef(b);lf(b);rf(b);b.fu=3Dxc;ret=
urn b},jf=3Dfunction(a){var =
b=3Dwindow.google_container_id,c=3Db&&pb(b)||pb(a);if(!c&&!b&&a){document=
.write("<span id=3D"+a+"></span>");c=3Dpb(a)}return c},$e=3D/[+, =
]/;window.google_render_ad=3Dhf;var sf=3Dfunction(){pf();ue();var =
a=3Dwindow.google_start_time;if(typeof =
a=3D=3D"number"){k=3Da;window.google_start_time=3Di}uc("show_ads.google_i=
nit_globals",mf,nf);Ie(window,document)},tf=3Dfunction(){window.google_st=
art_time=3Dk;document.write(le())},uf=3Dfunction(){if(me()){ke(window);ne=
(window)}else tf()};function vf(){if(tc&&typeof =
B.alternateShowAds=3D=3D"function")B.alternateShowAds.call(i);else =
if(rc)sf();else{Z(window)||oe();if(se()||re())uf();else =
te()?tf():sf()}}uc("show_ads.main",wc,vf);})()=0A=

------=_NextPart_000_0000_01CB4AF6.0F920870--

